{"version":3,"file":"js/main.89b3aa16bdc937dea00b.bundle.js","mappings":"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","sources":["webpack://@geo/geo-map/webpack/runtime/chunk loaded","webpack://@geo/geo-map/webpack/runtime/load script","webpack://@geo/geo-map/./node_modules/@stencil/core/internal/client/ lazy ^\\.\\/.*\\.entry\\.js.*$ include: \\.entry\\.js$ exclude: \\.system\\.entry\\.js$ strict namespace object","webpack://@geo/geo-map/./src/components/app/api.ts","webpack://@geo/geo-map/./src/components/app/app-mobx.ts","webpack://@geo/geo-map/./src/components/app/app.tsx","webpack://@geo/geo-map/./src/components/app/footer/footer.tsx","webpack://@geo/geo-map/./src/components/app/graphic.ts","webpack://@geo/geo-map/./src/components/app/index.ts","webpack://@geo/geo-map/./src/components/app/map/features/feature-highlight.tsx","webpack://@geo/geo-map/./src/components/app/map/features/feature-selection.tsx","webpack://@geo/geo-map/./src/config/map-viewer-configuration.ts","webpack://@geo/geo-map/./src/config/topic-configuration.ts","webpack://@geo/geo-map/./src/core/authentication.ts","webpack://@geo/geo-map/./src/core/components/attribution/attribution.tsx","webpack://@geo/geo-map/./src/core/components/coordinate/coordinate.tsx","webpack://@geo/geo-map/./src/core/components/error-boundary/error-boundary.tsx","webpack://@geo/geo-map/./src/core/components/icon/icon.tsx","webpack://@geo/geo-map/./src/core/components/maintenance/maintenance.tsx","webpack://@geo/geo-map/./src/core/components/map/map.tsx","webpack://@geo/geo-map/./src/core/components/message-block/message-block.tsx","webpack://@geo/geo-map/./src/core/components/scalebar/scalebar.tsx","webpack://@geo/geo-map/./src/core/components/scene/scene.tsx","webpack://@geo/geo-map/./src/core/components/search/search.tsx","webpack://@geo/geo-map/./src/core/components/sketch/sketch.tsx","webpack://@geo/geo-map/./src/core/components/styled-container/styled-container.tsx","webpack://@geo/geo-map/./src/core/components/web-map/web-map.tsx","webpack://@geo/geo-map/./src/core/components/web-scene/web-scene.tsx","webpack://@geo/geo-map/./src/core/config/action-configuration.ts","webpack://@geo/geo-map/./src/core/config/app-configuration.ts","webpack://@geo/geo-map/./src/core/config/attribution-configuration.ts","webpack://@geo/geo-map/./src/core/config/basemap-gallery-configuration.ts","webpack://@geo/geo-map/./src/core/config/basemap-toggle-configuration.ts","webpack://@geo/geo-map/./src/core/config/callout-configuration.ts","webpack://@geo/geo-map/./src/core/config/color-configuration.ts","webpack://@geo/geo-map/./src/core/config/content-configuration.ts","webpack://@geo/geo-map/./src/core/config/editor-configuration.ts","webpack://@geo/geo-map/./src/core/config/editor-visible-elements-configuration.ts","webpack://@geo/geo-map/./src/core/config/feature-filter-configuration.ts","webpack://@geo/geo-map/./src/core/config/font-configuration.ts","webpack://@geo/geo-map/./src/core/config/geometry-configuration.ts","webpack://@geo/geo-map/./src/core/config/layer-list-configuration.ts","webpack://@geo/geo-map/./src/core/config/legend-configuration.ts","webpack://@geo/geo-map/./src/core/config/maintenance-configuration.ts","webpack://@geo/geo-map/./src/core/config/map-configuration.ts","webpack://@geo/geo-map/./src/core/config/metadata-configuration.ts","webpack://@geo/geo-map/./src/core/config/module-configuration.ts","webpack://@geo/geo-map/./src/core/config/popup-configuration.ts","webpack://@geo/geo-map/./src/core/config/portal-configuration.ts","webpack://@geo/geo-map/./src/core/config/portal-item-configuration.ts","webpack://@geo/geo-map/./src/core/config/proxy-configuration.ts","webpack://@geo/geo-map/./src/core/config/scalebar-configuration.ts","webpack://@geo/geo-map/./src/core/config/search-configuration.ts","webpack://@geo/geo-map/./src/core/config/sketch-configuration.ts","webpack://@geo/geo-map/./src/core/config/sketch-label-options-properties-configuration.ts","webpack://@geo/geo-map/./src/core/config/sketch-tooltip-options-properties-configuration.ts","webpack://@geo/geo-map/./src/core/config/snapping-options-properties-configuration.ts","webpack://@geo/geo-map/./src/core/config/spatial-reference-configuration.ts","webpack://@geo/geo-map/./src/core/config/symbol-configuration.ts","webpack://@geo/geo-map/./src/core/config/time-info-configration.ts","webpack://@geo/geo-map/./src/core/config/view-configuration.ts","webpack://@geo/geo-map/./src/core/config/visible-elements-snapping-controls-elements-configuration.ts","webpack://@geo/geo-map/./src/core/config/web-map-configuration.ts","webpack://@geo/geo-map/./src/core/config/widget-configuration.ts","webpack://@geo/geo-map/./src/core/events.ts","webpack://@geo/geo-map/./src/core/geo-proxy.ts","webpack://@geo/geo-map/./src/core/geo.ts","webpack://@geo/geo-map/./src/core/map-state.ts","webpack://@geo/geo-map/./src/core/stores/abstract-app-store.tsx","webpack://@geo/geo-map/./src/core/stores/compare-store-mobx.ts","webpack://@geo/geo-map/./src/core/stores/layer-list-store-mobx.ts","webpack://@geo/geo-map/./src/core/stores/layer-selector-store-mobx.ts","webpack://@geo/geo-map/./src/core/stores/map-finder-store-mobx.ts","webpack://@geo/geo-map/./src/core/stores/popup-store-mobx.ts","webpack://@geo/geo-map/./src/core/stores/search-store-mobx.ts","webpack://@geo/geo-map/./src/core/stores/topic-switcher-store-mobx.ts","webpack://@geo/geo-map/./src/core/ui-state.ts","webpack://@geo/geo-map/./src/index.tsx","webpack://@geo/geo-map/./src/search/search-station.ts","webpack://@geo/geo-map/./src/stores/map-viewer-store-mobx.ts","webpack://@geo/geo-map/./src/utils/evaluate.ts","webpack://@geo/geo-map/./src/utils/format-utils.ts","webpack://@geo/geo-map/./src/utils/map-utils.ts","webpack://@geo/geo-map/./src/utils/object-utils.ts","webpack://@geo/geo-map/./src/utils/path-utils.ts","webpack://@geo/geo-map/./src/assets/stylesheets/main.scss?ebdc","webpack://@geo/geo-map/./src/components/app/app.scss?43f6","webpack://@geo/geo-map/./src/components/app/footer/footer.scss?ca48","webpack://@geo/geo-map/./src/core/components/attribution/attribution.scss?3fd8","webpack://@geo/geo-map/./src/core/components/coordinate/coordinate.scss?9c58","webpack://@geo/geo-map/./src/core/components/maintenance/maintenance.scss?0caa","webpack://@geo/geo-map/./src/core/components/message-block/message-block.scss?9170","webpack://@geo/geo-map/./src/core/components/search/search.scss?79c0","webpack://@geo/geo-map/./src/core/components/sketch/sketch.scss","webpack://@geo/geo-map/./src/index.scss?9853","webpack://@geo/geo-map/webpack/bootstrap","webpack://@geo/geo-map/webpack/runtime/compat get default export","webpack://@geo/geo-map/webpack/runtime/define property getters","webpack://@geo/geo-map/webpack/runtime/ensure chunk","webpack://@geo/geo-map/webpack/runtime/get javascript update chunk filename","webpack://@geo/geo-map/webpack/runtime/get mini-css chunk filename","webpack://@geo/geo-map/webpack/runtime/get update manifest filename","webpack://@geo/geo-map/webpack/runtime/getFullHash","webpack://@geo/geo-map/webpack/runtime/hasOwnProperty shorthand","webpack://@geo/geo-map/webpack/runtime/make namespace object","webpack://@geo/geo-map/webpack/runtime/node module decorator","webpack://@geo/geo-map/webpack/runtime/runtimeId","webpack://@geo/geo-map/webpack/runtime/hot module replacement","webpack://@geo/geo-map/webpack/runtime/publicPath","webpack://@geo/geo-map/webpack/runtime/css loading","webpack://@geo/geo-map/webpack/runtime/jsonp chunk loading","webpack://@geo/geo-map/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (result, chunkIds, fn, priority) => {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar [chunkIds, fn, priority] = deferred[i];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every((key) => (__webpack_require__.O[key](chunkIds[j])))) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","var inProgress = {};\nvar dataWebpackPrefix = \"@geo/geo-map:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t\tif (script.src.indexOf(window.location.origin + '/') !== 0) {\n\t\t\tscript.crossOrigin = \"anonymous\";\n\t\t}\n\t\tscript.integrity = __webpack_require__.sriHashes[chunkId];\n\t\tscript.crossOrigin = \"anonymous\";\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","function webpackEmptyAsyncContext(req) {\n\t// Here Promise.resolve().then() is used instead of new Promise() to prevent\n\t// uncaught exception popping up in devtools\n\treturn Promise.resolve().then(() => {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t});\n}\nwebpackEmptyAsyncContext.keys = () => ([]);\nwebpackEmptyAsyncContext.resolve = webpackEmptyAsyncContext;\nwebpackEmptyAsyncContext.id = 54140;\nmodule.exports = webpackEmptyAsyncContext;","import { action } from \"mobx\";\r\nimport {AppState, LayerFilter, LayerSelection, Mode} from \"./app-mobx\";\r\nimport {MapState} from \"../../core/map-state\";\r\n\r\n/**\r\n * Encapsulate all functions as an API to configure this map\r\n */\r\nexport class Api {\r\n appStore: AppState;\r\n mapStore: MapState;\r\n handleUnmount: (renderFlag: boolean | void) => void;\r\n defaultExtent: () => void;\r\n\r\n constructor(store: AppState, mapStore: MapState,\r\n handleUnmount: (renderFlag: boolean | void) => void, defaultExtent: () => void) {\r\n this.appStore = store;\r\n this.mapStore = mapStore;\r\n this.handleUnmount = handleUnmount;\r\n this.defaultExtent = defaultExtent;\r\n }\r\n\r\n /**\r\n * Set the mode for the application (e.g. \"raster\" or \"sketch\")\r\n *\r\n * @param mode: The mode as a typed string\r\n */\r\n @action setMode(mode: Mode): void {\r\n this.appStore.setMode(mode);\r\n }\r\n\r\n /**\r\n * Set the list of visible layers by layer ids. The ids are build with the metauid of the service object\r\n *\r\n * @param layers: A list of layer ids as strings (metauid or title)\r\n * @param {number} [layerId]: Only allowed if layers is a string.\r\n */\r\n @action setVisibleLayers(layers: string | Array, layerId?: number | number[]): void {\r\n if (typeof layers === \"undefined\") {\r\n layers = [];\r\n }\r\n this.appStore.setMapFilters([]);\r\n this.appStore.setVisibleLayers(layers, layerId);\r\n }\r\n\r\n /**\r\n * Set the list of visible background layers by layer ids. The ids are build with the metauid of the service object\r\n *\r\n * @param layers: A list of layer ids as strings (metauid or title)\r\n * @param {number} [layerId]: Only allowed if layers is a string.\r\n */\r\n @action setBackgroundLayers(layers: string | Array, layerId?: number | number[]): void {\r\n if (typeof layers === \"undefined\") {\r\n layers = [];\r\n }\r\n this.appStore.setBackgroundLayers(layers, layerId);\r\n }\r\n\r\n /**\r\n * Set the list of visible layers by layer ids. The ids are build with the metauid of the service object\r\n *\r\n * @param {string} [metauid]: metauid of the layer\r\n * @param {number} [layerId]: Only allowed if layers is a string.\r\n * @param {string} [query]: Filter qeury\r\n */\r\n @action setLayerFilter(metauid?: string, layerId?: number, query?: string): void {\r\n const filters: LayerFilter[] = [];\r\n if (typeof metauid !== \"undefined\" && typeof layerId !== \"undefined\" && typeof query !== \"undefined\") {\r\n filters.push({metauid, layerId, query});\r\n }\r\n this.appStore.setMapFilters(filters);\r\n }\r\n\r\n /**\r\n * Set Basemap\r\n *\r\n * @param url: The URL to the REST endpoint of the map service.\r\n * @param {string} [title]: Only allowed if layers is a string.\r\n */\r\n @action setBasemap(url: string, title?: string): void {\r\n this.mapStore.setBasemap(url, title);\r\n }\r\n\r\n /**\r\n * Set the current available sketch create tools\r\n *\r\n * @param toolNames: A list of create tool names (e.g. [\"polygon\"]\r\n */\r\n @action setSketchCreateTools(toolNames: string[]): void {\r\n this.appStore.setSketchCreateTools(toolNames);\r\n }\r\n\r\n /**\r\n * Set the current available sketch select tools\r\n *\r\n * @param toolNames: A list of select tool names (e.g. [\"lasso-selection\"]\r\n */\r\n @action setSketchSelectTools(toolNames: string[]): void {\r\n this.appStore.setSketchSelectTools(toolNames);\r\n }\r\n /**\r\n * Set limit of the maximum object count\r\n *\r\n * @param [count]: if empty it will use 999 as limit\r\n */\r\n @action setMaxObject(count?: number): void {\r\n this.appStore.setMaxObject(count);\r\n }\r\n\r\n /**\r\n * Add a handler function listening on sketch actions\r\n *\r\n * @param handler: The handler function being assigned to the sketch actions\r\n */\r\n @action setSketchHandler(handler: (graphics: string) => void): void {\r\n this.appStore.setSketchHandler(handler);\r\n }\r\n /**\r\n * Completes the active sketch operation.\r\n */\r\n @action completeSketch(): void {\r\n this.appStore.completeSketch();\r\n }\r\n /**\r\n * Add Esri geometry JSON objects to the map\r\n */\r\n @action addGraphics(layerName: string, geometryJson: JSON | JSON[]): void {\r\n this.appStore.addGraphicsByJson(layerName, geometryJson);\r\n }\r\n /**\r\n * Empty a layer by deleting all graphic objects.\r\n *\r\n * @param [layerName]: The layerName on which the graphics should be removed\r\n */\r\n @action emptyGraphics(layerName?: string): void {\r\n this.appStore.emptyGraphics(layerName);\r\n }\r\n /**\r\n * Get all graphic object of a layer, ignore labels if no layerName provided\r\n *\r\n * @param [layerName]: The layerName on which the graphics should retrieved\r\n */\r\n getGraphics(layerName?: string): string {\r\n return this.appStore.dumpGraphics(layerName);\r\n }\r\n redraw(): void {\r\n this.handleUnmount();\r\n this.handleUnmount(true);\r\n }\r\n unmount(): void {\r\n this.handleUnmount();\r\n }\r\n mount(): void {\r\n this.handleUnmount(true);\r\n }\r\n defaultExtend(): void {\r\n this.defaultExtent();\r\n }\r\n}\r\n","import {action, computed, observable, makeObservable} from \"mobx\";\r\nimport {TopicConfiguration} from \"../../config/topic-configuration\";\r\nimport EsriGraphic from \"@arcgis/core/Graphic\";\r\nimport {Graphic} from \"./graphic\";\r\nimport * as geometryEngine from \"@arcgis/core/geometry/geometryEngine\";\r\nimport {Authentication} from \"../../core/authentication\";\r\n\r\nexport type Mode = \"raster\" | \"sketch\";\r\nexport interface LayerSelection {\r\n metauid: string;\r\n layerId?: number;\r\n layerIds?: number[];\r\n}\r\nexport interface LayerFilter {\r\n metauid: string;\r\n layerId: number;\r\n query: string;\r\n}\r\nexport interface CurrentLabel {\r\n layerName: string;\r\n esriGraphics: __esri.Graphic[];\r\n}\r\nexport interface MessageBoxProps {\r\n type?: MessageBoxType;\r\n title: string;\r\n message: string;\r\n subTitle?: string;\r\n hasProgress?: boolean;\r\n percent?: number;\r\n okButton?: boolean;\r\n cancelButton?: boolean;\r\n}\r\nexport enum MessageBoxType {\r\n Standard = \"standard\",\r\n Info = \"info\",\r\n Success = \"success\",\r\n Warning = \"warning\",\r\n Error = \"error\"\r\n}\r\n\r\nexport class AppState {\r\n @observable topic?: TopicConfiguration;\r\n @observable subtopic?: TopicConfiguration;\r\n @observable mode: Mode = \"sketch\";\r\n @observable maxObject = 999;\r\n @observable visibleLayers: Array = [];\r\n @observable backgroundLayers: Array = [];\r\n @observable mapFilters: Array = [];\r\n @observable currentLabel: CurrentLabel;\r\n @observable sketchComplete = false;\r\n @observable sketchCreateTools: string[] = [];\r\n @observable sketchSelectTools: string[] = [];\r\n @observable sketchHandler: (graphics: string) => void;\r\n @observable graphics = observable.array([]);\r\n @observable authentication: Authentication;\r\n /**\r\n * If user is logged in to portal\r\n * is checked at application startup with IdentityManager\r\n */\r\n @observable loggedIn: boolean;\r\n @observable esriCredential: __esri.Credential | null;\r\n @observable messageBox = {\r\n type: MessageBoxType.Standard,\r\n show: false,\r\n title: \"\",\r\n message: \"\",\r\n subTitle: \"\",\r\n hasProgress: false,\r\n percent: 0,\r\n okButton: true,\r\n cancelButton: false,\r\n };\r\n constructor() {\r\n makeObservable(this);\r\n }\r\n\r\n /**\r\n * Set the current mode. All graphics will be deleted.\r\n *\r\n * @param mode The mode by name\r\n */\r\n @action setMode(mode: Mode): void {\r\n this.mode = mode;\r\n this.graphics.clear();\r\n if (this.mode === \"sketch\") {\r\n this.setVisibleLayers([]);\r\n this.setMapFilters([]);\r\n }\r\n }\r\n\r\n /**\r\n * Set the list of visible layers by layer ids. The ids are build with the metauid of the service object\r\n *\r\n * @param layers A list of layer ids or one single layer\r\n * @param {number} [layerId]: Only allowed if layers is a string.\r\n */\r\n @action setVisibleLayers(layers: string | Array, layerId?: number | number[]): void {\r\n if (Array.isArray(layerId) || typeof layerId === \"number\"){\r\n if (typeof layers === \"string\") {\r\n if (Array.isArray(layerId)){\r\n const layer = layers;\r\n layers = [];\r\n layerId.forEach((lId)=>{\r\n if (typeof layers !== \"string\") {\r\n layers.push({metauid: layer, layerId: lId} as LayerSelection);\r\n }\r\n });\r\n } else {\r\n layers = [{ metauid: layers, layerId}];\r\n }\r\n } else {\r\n console.warn(\r\n \"Layer ID (\" + (Array.isArray(layerId)? layerId.join(\", \"): layerId) + \") wird ignoriert!\");\r\n }\r\n }\r\n this.visibleLayers = Array.isArray(layers) ? layers : [layers];\r\n }\r\n /**\r\n * Set the list of visible background layers by layer ids. The ids are build with the metauid of the service object\r\n *\r\n * @param layers A list of layer ids or one single layer\r\n * @param {number} [layerId]: Only allowed if layers is a string.\r\n */\r\n @action setBackgroundLayers(layers: string | Array, layerId?: number | number[]): void {\r\n if (Array.isArray(layerId) || typeof layerId === \"number\"){\r\n if (typeof layers === \"string\") {\r\n if (Array.isArray(layerId)){\r\n const layer = layers;\r\n layers = [];\r\n layerId.forEach((lId)=>{\r\n if (typeof layers !== \"string\") {\r\n layers.push({metauid: layer, layerId: lId} as LayerSelection);\r\n }\r\n });\r\n } else {\r\n layers = [{ metauid: layers, layerId}];\r\n }\r\n } else {\r\n console.warn(\r\n \"Layer ID (\" + (Array.isArray(layerId)? layerId.join(\", \"): layerId) + \") wird ignoriert!\");\r\n }\r\n }\r\n this.backgroundLayers = Array.isArray(layers) ? layers : [layers];\r\n }\r\n\r\n @action setMapFilters( mapFilters: LayerFilter[]){\r\n this.mapFilters = mapFilters;\r\n }\r\n /**\r\n *\r\n *\r\n *\r\n */\r\n @action setSketchCreateTools(toolNames: string[]): void {\r\n this.sketchCreateTools = Array.isArray(toolNames) ? toolNames : [toolNames];\r\n }\r\n\r\n /**\r\n *\r\n *\r\n *\r\n */\r\n @action setSketchSelectTools(toolNames: string[]): void {\r\n this.sketchSelectTools = Array.isArray(toolNames) ? toolNames : [toolNames];\r\n }\r\n @action setMaxObject(count?: number) {\r\n if (typeof count === \"number\") {\r\n this.maxObject = count;\r\n } else {\r\n this.maxObject = 999;\r\n }\r\n // shorten graphics array to maxObject from the beginning\r\n if (this.graphics.length > this.maxObject) {\r\n this.graphics.splice(0, this.graphics.length - this.maxObject);\r\n if (this.sketchHandler) {\r\n this.sketchHandler(this.dumpGraphics());\r\n }\r\n }\r\n }\r\n /**\r\n * Add a handler function listening on sketch actions.\r\n *\r\n * @param handler: The handler function being used to call after sketch actions.\r\n */\r\n @action setSketchHandler(handler: (graphics: string) => void): void {\r\n this.sketchHandler = handler;\r\n }\r\n @action completeSketch(complete?: boolean): void {\r\n if (typeof complete !== \"undefined\"){\r\n this.sketchComplete = complete;\r\n } else {\r\n this.sketchComplete = true;\r\n }\r\n }\r\n /**\r\n * Calculate and return a list of all layers used by the graphic objects.\r\n *\r\n * @returns A list of layer names currently in use in the store of graphics.\r\n */\r\n @computed get usedLayers(): string[] {\r\n const layerNames: string[] = [];\r\n this.graphics.forEach((g: Graphic) => {\r\n if (!layerNames.includes(g.layerName)) {\r\n layerNames.push(g.layerName);\r\n layerNames.push(g.labelLayerName);\r\n }\r\n });\r\n return layerNames;\r\n }\r\n\r\n /**\r\n * Calculate and return a list of all layers used by the graphic objects.\r\n *\r\n * @returns count of graphics currently in the store.\r\n */\r\n @computed get graphicsCount(): number {\r\n return this.graphics.length;\r\n }\r\n\r\n /**\r\n * Add one or multiple graphic objects to the list of graphics.\r\n * Call the sketch handler if defined.\r\n *\r\n * @param layerName: The layer name on which the graphic will be positioned\r\n * @param esriGraphics: The Esri graphic objects as list of objects.\r\n * @param callback: Indicates, if a callback to the bind function should be done. Default is true.\r\n */\r\n @action addGraphic(layerName: string, esriGraphics: __esri.Graphic | __esri.Graphic[], toggle=false, callback = true): void {\r\n const graphicList = Array.isArray(esriGraphics) ? esriGraphics : [esriGraphics];\r\n graphicList.forEach((esriGraphic: __esri.Graphic) => {\r\n const graphic = new Graphic(layerName, esriGraphic);\r\n const index = this.graphics.findIndex((g: Graphic) => g.equals(graphic));\r\n if (index === -1) {\r\n this.graphics.push(graphic);\r\n }\r\n else if (toggle) {\r\n this.graphics.splice(index, 1);\r\n }\r\n });\r\n // shorten graphics array to maxObject from the beginning\r\n if (this.graphics.length > this.maxObject) {\r\n this.graphics.splice(0, this.graphics.length - this.maxObject);\r\n }\r\n if (this.sketchHandler && callback) {\r\n this.sketchHandler(this.dumpGraphics(layerName));\r\n }\r\n }\r\n\r\n /**\r\n * Reset a layer by deleting and resetting all graphic objects.\r\n *\r\n * @param layerName: The layerName on which the graphics should be updated\r\n * @param esriGraphics: The list of graphic objects to update.\r\n */\r\n @action resetGraphics(layerName: string, esriGraphics: __esri.Graphic[]): void {\r\n this.graphics.replace(this.graphics.filter((g: Graphic) => g.layerName !== layerName));\r\n this.addGraphic(layerName, esriGraphics);\r\n }\r\n @action updateGraphicLabel(layerName: string, esriGraphics: __esri.Graphic[]): void {\r\n this.currentLabel = {layerName, esriGraphics}\r\n }\r\n /**\r\n * Empty a layer by deleting all graphic objects.\r\n *\r\n * @param [layerName]: The layerName on which the graphics should be removed\r\n * @param callback: Indicates, if a callback to the bind function should be done. Default is true.\r\n */\r\n @action emptyGraphics(layerName?: string, callback = true): void {\r\n if (typeof layerName !== \"undefined\"){\r\n this.graphics.replace(this.graphics.filter((g: Graphic) => g.layerName !== layerName));\r\n } else {\r\n this.graphics.clear();\r\n }\r\n if (this.sketchHandler && callback) {\r\n this.sketchHandler(this.dumpGraphics(layerName));\r\n }\r\n }\r\n /**\r\n * Add one or multiple Esri graphic JSON objects to the stored graphics.\r\n * Can be used from external to import some graphics.\r\n *\r\n * @param layerName: The name of the layer to add the graphic object\r\n * @param graphicJson: One graphic JSON or a list of JSON objects\r\n */\r\n addGraphicsByJson(layerName: string, graphicJson: JSON | JSON[]): void {\r\n graphicJson = Array.isArray(graphicJson) ? graphicJson : [graphicJson];\r\n const graphics: __esri.Graphic[] = [];\r\n graphicJson.forEach((graphic: JSON) => {\r\n graphics.push(EsriGraphic.fromJSON(graphic));\r\n });\r\n\r\n this.addGraphic(layerName, graphics, false, false);\r\n }\r\n\r\n /**\r\n * Dump all graphics of a layer as JSON string.\r\n *\r\n * @param [layerName]: The layer name to search for all graphics.\r\n */\r\n dumpGraphics(layerName?: string): string {\r\n const graphicsJSON: string[] = [];\r\n if (typeof layerName !== \"undefined\") {\r\n this.graphics.filter((g: Graphic) => g.layerName === layerName).forEach((g: Graphic) => {\r\n g.graphic.setAttribute(\"area\",\r\n geometryEngine.planarArea(g.graphic.geometry as __esri.Polygon, \"square-meters\"));\r\n graphicsJSON.push(g.graphic.toJSON());\r\n });\r\n } else {\r\n this.graphics.filter((g: Graphic) => g.layerName.indexOf(\"_text\") <= 0).forEach((g: Graphic) => {\r\n g.graphic.setAttribute(\"area\",\r\n geometryEngine.planarArea(g.graphic.geometry as __esri.Polygon, \"square-meters\"));\r\n graphicsJSON.push(g.graphic.toJSON());\r\n });\r\n }\r\n return JSON.stringify(graphicsJSON);\r\n }\r\n\r\n @action setAuthentication(authentication: Authentication): void {\r\n this.authentication = authentication;\r\n }\r\n @action setLoggedIn(loggedIn: boolean, credential?: __esri.Credential): void {\r\n this.loggedIn = loggedIn;\r\n this.esriCredential = credential ? credential : null;\r\n }\r\n /**\r\n * Show a message box\r\n *\r\n * @param props MessageBoxProps\r\n */\r\n @action showMessageBox(props: MessageBoxProps): void {\r\n this.messageBox.show = true;\r\n\r\n const {title, message, subTitle, hasProgress, percent} = props;\r\n this.messageBox.title = title;\r\n this.messageBox.message = message;\r\n if (subTitle) {\r\n this.messageBox.subTitle = subTitle;\r\n }\r\n this.messageBox.hasProgress = hasProgress || false;\r\n if (percent) {\r\n this.messageBox.percent = percent;\r\n }\r\n\r\n if (props.hasOwnProperty(\"type\") && props.type !== undefined) {\r\n this.messageBox.type = props.type;\r\n }\r\n if (props.hasOwnProperty(\"okButton\") && props.okButton !== undefined) {\r\n this.messageBox.okButton = props.okButton;\r\n }\r\n if (props.hasOwnProperty(\"cancelButton\") && props.cancelButton !== undefined) {\r\n this.messageBox.cancelButton = props.cancelButton;\r\n }\r\n }\r\n\r\n /**\r\n * Close the message box\r\n */\r\n @action closeMessageBox(): void {\r\n this.messageBox.type = MessageBoxType.Standard;\r\n this.messageBox.show = false;\r\n this.messageBox.title = \"\";\r\n this.messageBox.message = \"\";\r\n this.messageBox.subTitle = \"\";\r\n this.messageBox.hasProgress = false;\r\n this.messageBox.percent = 0;\r\n this.messageBox.okButton = true;\r\n this.messageBox.cancelButton = false;\r\n }\r\n\r\n /**\r\n * Update progress on message box\r\n * Use 'hasProgress = true' to show progress bar on message box\r\n *\r\n * @param percent\r\n */\r\n @action progressMessageBox(percent: number): void {\r\n if (percent < 0) {\r\n percent = 0;\r\n }\r\n if (percent > 100) {\r\n percent = 100;\r\n }\r\n this.messageBox.percent = percent;\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport {observer} from \"mobx-react\";\r\nimport {autorun, configure} from \"mobx\"; configure({ enforceActions: \"never\" });\r\n\r\nimport \"./app.scss\";\r\n\r\nimport {AppConfiguration} from \"../../core/config/app-configuration\";\r\nimport {ModuleConfiguration} from \"../../core/config/module-configuration\";\r\nimport {MapViewerConfiguration} from \"../../config/map-viewer-configuration\";\r\n\r\nimport {ErrorBoundary} from \"../../core/components/error-boundary/error-boundary\";\r\nimport esriConfig from \"@arcgis/core/config\";\r\n\r\nimport {MapState} from \"../../core/map-state\";\r\nimport {UiState} from \"../../core/ui-state\";\r\nimport {AppState} from \"./app-mobx\";\r\n\r\nimport {Sketch} from \"../../core/components/sketch/sketch\";\r\nimport {Footer} from \"./footer/footer\";\r\nimport Maintenance from \"../../core/components/maintenance/maintenance\";\r\nimport {GeoProxy} from \"../../core/geo-proxy\";\r\n\r\nimport MessageBlock from \"../../core/components/message-block/message-block\";\r\nimport EsriCompass from \"@arcgis/core/widgets/Compass\";\r\n\r\nimport {FeatureHighlight} from \"./map/features/feature-highlight\";\r\nimport {FeatureSelection} from \"./map/features/feature-selection\";\r\n\r\nimport {Api} from \"./api\";\r\n\r\nimport {WebMap} from \"../../core/geo\";\r\nimport {Search} from \"../../core/components/search/search\";\r\nimport IdentityManager from \"@arcgis/core/identity/IdentityManager\";\r\nimport {CSSProperties} from \"react\";\r\n\r\nimport {MapViewerStore} from \"../../stores/map-viewer-store-mobx\";\r\nimport {AppStoreProvider} from \"../../core/stores/abstract-app-store\";\r\n\r\nconfigure({ enforceActions: \"never\" });\r\n\r\nexport interface AppProps {\r\n config: AppConfiguration;\r\n moduleConfig: ModuleConfiguration;\r\n appStore: AppState;\r\n}\r\n\r\n/**\r\n * Main App class containing the map\r\n */\r\n@observer\r\nexport class App extends React.Component {\r\n mapViewerStore: MapViewerStore;\r\n\r\n autorunDisposers: any[] = [];\r\n appStore: AppState;\r\n uiStore: UiState;\r\n mapStore: MapState;\r\n\r\n mapViewerConfig: MapViewerConfiguration;\r\n appConfig: AppConfiguration;\r\n\r\n appUiRef = React.createRef();\r\n api: Api;\r\n\r\n defaultScale?: number;\r\n\r\n constructor(props: AppProps) {\r\n super(props);\r\n this.appStore = this.props.appStore;\r\n this.uiStore = new UiState();\r\n this.mapStore = new MapState();\r\n this.state = {\r\n northFacing: true,\r\n renderFlag: true\r\n };\r\n\r\n this.uiStore.setUiSize(window.innerWidth, window.innerHeight);\r\n\r\n this.mapViewerConfig = this.props.moduleConfig as MapViewerConfiguration;\r\n this.appConfig = props.config as AppConfiguration;\r\n this.defaultScale = this.appConfig.mapView.scale;\r\n\r\n // initialize the core application store\r\n this.mapViewerStore = new MapViewerStore({\r\n appConfig: this.appConfig,\r\n mapViewerConfig: this.mapViewerConfig,\r\n appStore: this.appStore,\r\n mapStore: this.mapStore,\r\n uiStore: this.uiStore\r\n });\r\n\r\n // configure proxy page\r\n const geoProxy = new GeoProxy(this.appConfig.proxy);\r\n geoProxy.loadRules();\r\n esriConfig.request.proxyUrl = this.appConfig.proxy.url;\r\n\r\n // configure assets path\r\n if (this.appConfig.assetsPath) {\r\n esriConfig.assetsPath = this.appConfig.assetsPath;\r\n }\r\n // configure fonts URL\r\n if (this.appConfig.fontsUrl) {\r\n esriConfig.fontsUrl = this.appConfig.fontsUrl;\r\n }\r\n // configure GeometryService URL\r\n if (this.appConfig.geometryServiceUrl) {\r\n esriConfig.geometryServiceUrl = this.appConfig.geometryServiceUrl;\r\n }\r\n // configure portal\r\n if (this.appConfig.portalUrl) {\r\n esriConfig.portalUrl = this.appConfig.portalUrl;\r\n // Esri Anmeldedialog unterdrücken\r\n // eslint-disable-next-line max-len\r\n // https://community.esri.com/t5/arcgis-api-for-javascript-questions/detect-or-prevent-the-arcgis-authentication-dialog/td-p/1047565\r\n IdentityManager.on(\"dialog-create\", () => {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"Ungenügende Berechtigung (IdentityManager dialog-create)\");\r\n IdentityManager.dialog.destroy();\r\n });\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"No portal connection defined.\");\r\n }\r\n this.mapStore.setAppConfig(this.appConfig);\r\n\r\n this.handleMapLoad = this.handleMapLoad.bind(this);\r\n this.handleUnmount = this.handleUnmount.bind(this);\r\n this.handleResize = this.handleResize.bind(this);\r\n this.goToDefaultExtent = this.goToDefaultExtent.bind(this);\r\n\r\n this.api = new Api(this.props.appStore, this.mapStore, this.handleUnmount, this.goToDefaultExtent);\r\n }\r\n handleUnmount(renderFlag: boolean | void): void {\r\n if (typeof renderFlag === \"boolean\"){\r\n this.setState({renderFlag});\r\n } else {\r\n this.setState({renderFlag: false});\r\n }\r\n if (!this.state.renderFlag) {\r\n this.props.appStore.setMode(\"sketch\");\r\n this.props.appStore.setVisibleLayers([]);\r\n }\r\n this.forceUpdate();\r\n }\r\n handleResize(): void {\r\n this.checkUiSize();\r\n }\r\n checkUiSize(): void {\r\n const uiHeight = this.appUiRef.current?.clientHeight;\r\n const uiWidth = this.appUiRef.current?.clientWidth;\r\n const isSmallDevice = (window.innerWidth <= this.mapViewerConfig.breakpoints.md);\r\n this.uiStore.setUiSize(uiWidth, uiHeight, isSmallDevice);\r\n }\r\n goToDefaultExtent(): void {\r\n this.mapStore.view?.goTo({\r\n target: (this.appConfig.mapView.center as number[]),\r\n scale: this.defaultScale} as __esri.GoToTarget2D).catch((error) => {\r\n if (error.name !== \"view:goto-interrupted\") {\r\n // eslint-disable-next-line no-console\r\n console.error(error);\r\n }\r\n });\r\n }\r\n componentDidMount(): void {\r\n this.mapStore.setWebMap(this.mapViewerConfig.webMap);\r\n autorun((reaction: any) => {\r\n const view = this.mapStore.view;\r\n if (!view) {\r\n return;\r\n }\r\n this.checkUiSize();\r\n reaction.dispose(); // stop autorun\r\n });\r\n this.checkUiSize();\r\n window.addEventListener(\"resize\", this.handleResize);\r\n }\r\n componentWillUnmount(): void {\r\n window.removeEventListener(\"resize\", this.handleResize);\r\n }\r\n render(): JSX.Element | null {\r\n let mapProperties: __esri.WebMapProperties | undefined;\r\n const messages: JSX.Element[] = [];\r\n const {maintenance} = this.appConfig;\r\n const {uiHeight} = this.uiStore;\r\n const {northFacing, renderFlag} = this.state;\r\n const {status, webMap} = this.mapStore;\r\n const {appStore} = this.props;\r\n if (!renderFlag) {\r\n return null;\r\n }\r\n if (webMap){\r\n mapProperties = webMap as __esri.WebMapProperties;\r\n if (this.mapViewerConfig.meta && Array.isArray(this.mapViewerConfig.meta.alerts)) {\r\n this.mapViewerConfig.meta.alerts.forEach((message, index) => {\r\n // quick and dirty!\r\n const alertContent =

;\r\n messages.push(\r\n \r\n );\r\n });\r\n }\r\n }\r\n const cssProperties = { \"--uiHeight\": uiHeight + \"px\" } as CSSProperties;\r\n let addClass = \"geo-app-body \" + status;\r\n addClass += (northFacing? \" geo-north-facing\": \" geo-not-north-facing\");\r\n addClass += (appStore.maxObject===1? \" geo-sketch-only_one\": \"\");\r\n return(\r\n \r\n \r\n

\r\n\r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n
\r\n
\r\n
\r\n
\r\n
\r\n \r\n
\r\n
\r\n { messages.length > 0 &&
{messages}
}\r\n
\r\n
\r\n
\r\n
\r\n
\r\n\r\n
\r\n
\r\n \r\n \r\n );\r\n }\r\n\r\n handleMapLoad(map: __esri.Map, view: __esri.MapView | __esri.SceneView): void {\r\n const compassWidget = new EsriCompass({\r\n view\r\n });\r\n view.ui.add(compassWidget, \"bottom-left\");\r\n view.watch(\"rotation\", (newValue: number)=>{\r\n this.setState({northFacing: newValue === 0});\r\n });\r\n view.ui.move(\"zoom\", \"bottom-left\");\r\n view.popupEnabled = false;\r\n view.closePopup();\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport {Component } from \"react\";\r\n\r\nimport \"./footer.scss\";\r\n\r\nimport {AppState} from \"../app-mobx\";\r\nimport {MapState} from \"../../../core/map-state\";\r\nimport {UiState} from \"../../../core/ui-state\";\r\nimport {observer} from \"mobx-react\";\r\nimport {ScaleBar} from \"../../../core/components/scalebar/scalebar\";\r\nimport {Attribution} from \"../../../core/components/attribution/attribution\";\r\nimport {Coordinate} from \"../../../core/components/coordinate/coordinate\";\r\nimport {AppConfiguration} from \"../../../core/config/app-configuration\";\r\nimport MediaQuery from \"react-responsive\";\r\nimport {MapViewerConfiguration} from \"../../../config/map-viewer-configuration\";\r\n\r\n\r\nexport interface FooterProps {\r\n view: __esri.MapView | __esri.SceneView | undefined;\r\n appStore: AppState;\r\n uiStore: UiState;\r\n mapStore: MapState;\r\n appConfig: AppConfiguration;\r\n mapViewerConfig: MapViewerConfiguration;\r\n}\r\n\r\n@observer\r\nexport class Footer extends Component {\r\n\r\n constructor(props: FooterProps) {\r\n super(props);\r\n this.state = {\r\n search: null\r\n };\r\n }\r\n\r\n render(): JSX.Element | null {\r\n const {appConfig, appStore, mapStore, uiStore, mapViewerConfig} = this.props;\r\n return(\r\n
\r\n
\r\n \r\n \r\n \r\n\r\n \r\n
\r\n \r\n
\r\n );\r\n }\r\n}\r\n","import { equals } from \"@arcgis/core/geometry/geometryEngine\";\r\n\r\n/**\r\n * Wrapper class around __esri.Graphic to store additional information (e.g. residential layer, id, etc.)\r\n */\r\nexport class Graphic {\r\n layerName: string;\r\n labelLayerName: string;\r\n graphic: __esri.Graphic;\r\n\r\n\r\n constructor(layerName: string, graphic: __esri.Graphic) {\r\n this.layerName = layerName;\r\n this.labelLayerName = layerName + \"_text\";\r\n this.graphic = graphic;\r\n }\r\n\r\n /**\r\n * Check equality of two graphic objects by uuid.\r\n *\r\n * @param other The other Graphic object\r\n */\r\n equals(other: Graphic): boolean {\r\n return this.layerName === other.layerName && equals(this.graphic.geometry, other.graphic.geometry);\r\n }\r\n\r\n /**\r\n * Return the esri Graphic object as JSON string\r\n */\r\n toJSON(): string {\r\n return this.graphic.toJSON();\r\n }\r\n}\r\n","export {App} from \"./app\";\r\n","import * as React from \"react\";\r\nimport {observer} from \"mobx-react\";\r\nimport {autorun} from \"mobx\";\r\nimport EsriGraphicsLayer from \"@arcgis/core/layers/GraphicsLayer\";\r\nimport EsriGraphic from \"@arcgis/core/Graphic\";\r\nimport EsriPoint from \"@arcgis/core/geometry/Point\";\r\nimport {Graphic} from \"../../graphic\";\r\nimport {SymbolConfiguration} from \"../../../../config/map-viewer-configuration\";\r\nimport { planarArea } from \"@arcgis/core/geometry/geometryEngine\";\r\nimport * as reactiveUtils from \"@arcgis/core/core/reactiveUtils\";\r\nimport {AppConfiguration} from \"../../../../core/config/app-configuration\";\r\nimport {MapUtils} from \"../../../../utils/map-utils\";\r\nimport {IAppStore, withStore} from \"../../../../core/stores/abstract-app-store\";\r\n\r\nexport interface FeatureHighlightProps {\r\n appConfig: AppConfiguration;\r\n symbols: SymbolConfiguration;\r\n store?: IAppStore; // this is injected by withStore\r\n}\r\n\r\n/**\r\n * Component to draw sketched or API provided features on the map\r\n */\r\n@observer\r\nclass FeatureHighlightBase extends React.Component {\r\n watchHandles: any[] = [];\r\n autorunDisposers: any[] = [];\r\n appConfig: AppConfiguration;\r\n constructor(props: FeatureHighlightProps) {\r\n super(props);\r\n this.appConfig = props.appConfig;\r\n }\r\n\r\n /**\r\n * Waiting for the map being ready before creating graphic layers.\r\n * For every graphic layer name in the app store a new graphic layer will be added to the map.\r\n */\r\n componentDidMount(): void {\r\n const {store, symbols} = this.props;\r\n this.autorunDisposers.push(autorun(() => {\r\n const {view} = store?.mapStore;\r\n const {graphics, usedLayers} = store?.appStore;\r\n if (!view || !view.map || !graphics || graphics.length === 0) {\r\n return;\r\n }\r\n // Remove all graphics from all layers before repainting\r\n this.clear(usedLayers, view);\r\n\r\n // Add all graphics to the corresponding layer\r\n graphics.forEach((g: Graphic, index: number) => {\r\n const layer = this.getLayer(g.layerName, view);\r\n g.graphic.symbol = this.getSymbol(g.layerName, symbols);\r\n if (typeof g.graphic.attributes === \"undefined\" || g.graphic.attributes === null) {\r\n g.graphic.attributes = {index};\r\n } else {\r\n g.graphic.attributes.index = index;\r\n }\r\n layer.graphics.add(g.graphic);\r\n\r\n const textSymbol = this.getSymbol(g.labelLayerName, symbols);\r\n if (textSymbol) {\r\n const textLayer = this.getLayer(g.labelLayerName, view);\r\n const area = planarArea(g.graphic.geometry as __esri.Polygon, \"square-meters\");\r\n textSymbol.text = Intl.NumberFormat(\"de-CH\",\r\n {maximumFractionDigits: 2}).format(area / 10000) + \" ha\";\r\n const lblGra = new EsriGraphic();\r\n lblGra.geometry = (g.graphic.geometry as __esri.Polygon).centroid;\r\n lblGra.symbol = textSymbol;\r\n textLayer.visible = true;\r\n textLayer.graphics.add(lblGra);\r\n }\r\n });\r\n\r\n // Zooming the layers\r\n this.zoomLayers(view);\r\n }));\r\n this.autorunDisposers.push(autorun(() => {\r\n const {view} = store?.mapStore;\r\n const {currentLabel} = store?.appStore;\r\n if (!view || !currentLabel) {\r\n return;\r\n }\r\n // Update all labels to the corresponding graphic\r\n currentLabel.esriGraphics.forEach((g: __esri.Graphic) => {\r\n const textSymbol = this.getSymbol(currentLabel.layerName + \"_text\", symbols);\r\n const textLayer = this.getLayer(currentLabel.layerName + \"_text\", view);\r\n const graphic = textLayer.graphics.getItemAt(g.attributes.index);\r\n const area = planarArea(g.geometry as __esri.Polygon, \"square-meters\");\r\n textSymbol.text = Intl.NumberFormat(\"de-CH\",\r\n {maximumFractionDigits: 2}).format(area / 10000) + \" ha\";\r\n graphic.symbol = textSymbol;\r\n graphic.geometry = (g.geometry as __esri.Polygon).centroid;\r\n });\r\n }));\r\n }\r\n componentWillUnmount(): void {\r\n this.watchHandles.forEach((handle: any) => {\r\n handle.remove();\r\n });\r\n this.watchHandles.length = 0;\r\n this.autorunDisposers.forEach((disposer: any) => {\r\n disposer();\r\n });\r\n this.autorunDisposers.length = 0;\r\n }\r\n /**\r\n * Get the symbol configuration per layer name. Return default symbol if not configured.\r\n *\r\n * @param layerName: The layer name\r\n */\r\n getSymbol(layerName: string, symbols: SymbolConfiguration): any {\r\n const symbolProps = symbols[layerName];\r\n if (!symbolProps && layerName.indexOf(\"_text\") <= 0) {\r\n console.log(\"No symbology properties found for layer \" + layerName);\r\n }\r\n\r\n return symbolProps;\r\n }\r\n\r\n /**\r\n * Remove all graphics on all graphics layers\r\n *\r\n * @param layerNames: A list of layer names to clear.\r\n * @param view: The view to clear the layers.\r\n */\r\n clear(layerNames: string[], view: __esri.MapView | __esri.SceneView): void {\r\n layerNames.forEach((layerName: string) => {\r\n const layer = view.map.layers.find(\r\n (l: __esri.GraphicsLayer) => l.title === layerName) as __esri.GraphicsLayer;\r\n if (layer) {\r\n layer.removeAll();\r\n }\r\n });\r\n }\r\n\r\n /**\r\n * Get existing graphics layer by title. The layer will be created if not existing.\r\n *\r\n * @param layerName: The unique name of the graphics layer\r\n * @param view: The view to look for the graphics layer\r\n */\r\n getLayer(layerName: string, view: __esri.MapView | __esri.SceneView): __esri.GraphicsLayer {\r\n let layer = view.map.layers.find((l: __esri.GraphicsLayer) => l.title === layerName) as __esri.GraphicsLayer;\r\n if (!layer) {\r\n layer = new EsriGraphicsLayer({listMode: \"hide\", title: layerName});\r\n view.map.layers.push(layer);\r\n }\r\n return layer;\r\n }\r\n\r\n /**\r\n * Zoom features within all graphics layers in app store.\r\n * Esri doesn't provide a method to zoom the whole extent of multiple graphics layers at once.\r\n * The idea here is to produce extent graphics for every graphics layers and zoom the list of extents\r\n *\r\n * @param view: The map view or the scene view to calculate the zoom extent\r\n */\r\n zoomLayers(view: __esri.MapView | __esri.SceneView): void {\r\n const geometries: __esri.Geometry[] = [];\r\n view.map.layers.forEach((layer: __esri.GraphicsLayer) => {\r\n if (layer.graphics) {\r\n layer.graphics.forEach((g: __esri.Graphic) => {\r\n const graphicClone = g.geometry.clone();\r\n geometries.push(graphicClone);\r\n });\r\n }\r\n });\r\n // Der Extent in der View-Konfiguration setzten, damit dieser nicht etwa den Extent der \"Graphic\" überschreibt\r\n if(!this.appConfig.mapView?.extent){\r\n if(this.appConfig.mapView.viewpoint){\r\n delete this.appConfig.mapView.viewpoint;\r\n }\r\n if(this.appConfig.mapView.center){\r\n delete this.appConfig.mapView.center;\r\n\r\n }\r\n this.appConfig.mapView.extent = MapUtils.calculateMinExtent(geometries, 50).toJSON();\r\n }\r\n // Zoom graphics\r\n this.watchHandles.push(reactiveUtils.when(\r\n () => view.ready,\r\n () => {\r\n view.goTo(geometries).catch((error) => {\r\n if (error.name !== \"view:goto-interrupted\") {\r\n // eslint-disable-next-line no-console\r\n console.error(error);\r\n }\r\n });\r\n },\r\n { initial: true, once: true }\r\n ));\r\n }\r\n\r\n render(): JSX.Element | null {\r\n return null;\r\n }\r\n}\r\nexport const FeatureHighlight = withStore(FeatureHighlightBase);\r\n","import * as React from \"react\";\r\nimport {observer} from \"mobx-react\";\r\nimport {LayerSelection, LayerFilter} from \"../../app-mobx\";\r\nimport {autorun} from \"mobx\";\r\nimport {SymbolConfiguration} from \"../../../../config/map-viewer-configuration\";\r\nimport {PathUtils} from \"../../../../utils/path-utils\";\r\nimport ViewClickEvent = __esri.ViewClickEvent;\r\nimport FeatureLayer from \"@arcgis/core/layers/FeatureLayer\";\r\nimport {IAppStore, withStore} from \"../../../../core/stores/abstract-app-store\";\r\n\r\nexport interface FeatureSelectionProps {\r\n symbols: SymbolConfiguration;\r\n store?: IAppStore; // this is injected by withStore\r\n}\r\n\r\n@observer\r\nclass FeatureSelectionBase extends React.Component {\r\n watchHandles: any[] = [];\r\n autorunDisposers: any[] = [];\r\n layerName: string;\r\n constructor(props: FeatureSelectionProps) {\r\n super(props);\r\n this.layerName = \"highlight\";\r\n }\r\n\r\n /**\r\n * Waiting for the map being ready before selecting features on layers.\r\n */\r\n componentDidMount(): void {\r\n const { store} = this.props;\r\n this.autorunDisposers.push(autorun(() => {\r\n if(!store){\r\n return;\r\n }\r\n const {backgroundLayers, mode, visibleLayers, usedLayers} = store.appStore;\r\n const {map, view} = store.mapStore;\r\n if (!map || ! view) {\r\n return;\r\n }\r\n map.layers.flatten((layer: __esri.Layer) =>\r\n (layer as __esri.MapImageLayer).allSublayers\r\n ).forEach((layer: __esri.FeatureLayer | __esri.Sublayer) => {\r\n layer.visible = (usedLayers.includes(layer.title)\r\n || visibleLayers.some(\r\n (x) => {\r\n return this.layerInArray(x, layer);\r\n }\r\n )\r\n || backgroundLayers.some(\r\n (x) => {\r\n return this.layerInArray(x, layer);\r\n }\r\n )\r\n );\r\n });\r\n if (mode === \"raster\") {\r\n if(this.watchHandles.length === 0) {\r\n this.watchHandles.push(view.on(\"click\", (evt: ViewClickEvent) => {\r\n map.layers.flatten((layer: __esri.Layer) =>\r\n (layer as any).allSublayers\r\n ).forEach((layer: __esri.FeatureLayer | __esri.MapImageLayer) => {\r\n if ((layer.type === \"feature\"\r\n || (layer as __esri.Sublayer).layer?.type === \"map-image\")\r\n && layer.visible && !backgroundLayers.some(\r\n (x) => { return this.layerInArray(x, layer); }\r\n )) {\r\n const query = (layer as FeatureLayer).createQuery();\r\n query.outFields = [\"*\"];\r\n query.geometry = evt.mapPoint;\r\n (layer as FeatureLayer).queryFeatures(query).then((result: __esri.FeatureSet) => {\r\n result.features.forEach((graphic: __esri.Graphic) => {\r\n store?.appStore.addGraphic(this.layerName, [graphic], true);\r\n });\r\n });\r\n }\r\n });\r\n }));\r\n }\r\n this.applyFilters(map, store.appStore.mapFilters, store);\r\n } else {\r\n const layer = view.map.layers.find(\r\n (l: __esri.GraphicsLayer) => l.title === this.layerName) as __esri.GraphicsLayer;\r\n if (layer) {\r\n view.map.remove(layer);\r\n }\r\n const textLayer = view.map.layers.find(\r\n (l: __esri.GraphicsLayer) => l.title === this.layerName + \"_text\") as __esri.GraphicsLayer;\r\n if (textLayer) {\r\n view.map.remove(textLayer);\r\n }\r\n }\r\n }));\r\n this.autorunDisposers.push(autorun(() => {\r\n if(!store){\r\n return;\r\n }\r\n const {mapFilters, visibleLayers} = store.appStore;\r\n const {map, view} = store.mapStore;\r\n if (!map || ! view || visibleLayers?.length === 0) {\r\n return;\r\n }\r\n this.applyFilters(map, mapFilters, store);\r\n }));\r\n }\r\n applyFilters(map: __esri.Map, mapFilters: LayerFilter[], store: IAppStore){\r\n map.layers.flatten((layer: __esri.Layer) =>\r\n (layer as __esri.MapImageLayer).allSublayers\r\n ).forEach((layer: __esri.FeatureLayer | __esri.Sublayer) => {\r\n if(layer.hasOwnProperty(\"definitionExpression\")){\r\n (layer as __esri.Sublayer).definitionExpression = \"1=1\";\r\n }\r\n });\r\n mapFilters.forEach((filter: LayerFilter) => {\r\n const targetLayers = store?.mapStore.getLayersByMetauid(filter.metauid, [filter.layerId]);\r\n if(targetLayers?.length===1) {\r\n (targetLayers[0] as __esri.MapImageLayer).findSublayerById(\r\n filter.layerId).definitionExpression = filter.query;\r\n }\r\n });\r\n }\r\n layerInArray(selection: string | LayerSelection,\r\n layer: __esri.FeatureLayer | __esri.MapImageLayer | __esri.Sublayer): boolean {\r\n let url = (layer as any)?.parsedUrl?.path;\r\n if (!url) {\r\n url = layer.url; // MapImageLayer Service\r\n }\r\n const uid: string | null =\r\n (typeof url === \"string\")? PathUtils.getMetaId(url).toLowerCase(): null;\r\n const layerId: number | null =\r\n (typeof url === \"string\")? PathUtils.getLayerId(url): (layer as any).layerId;\r\n return (typeof selection === \"string\" && (uid === selection.toLowerCase()\r\n || layer.title.toLowerCase().includes(selection.toLowerCase())))\r\n || (typeof selection === \"object\" && uid === selection.metauid.toLowerCase() &&\r\n ((typeof selection.layerId !== \"undefined\" && selection.layerId === layerId)\r\n || (Array.isArray(selection.layerIds) && typeof layerId === \"number\"\r\n && selection.layerIds.includes(layerId))\r\n || (layer as any).allSublayers));\r\n }\r\n componentWillUnmount(): void {\r\n this.watchHandles.forEach((handle: any) => {\r\n handle.remove();\r\n });\r\n this.watchHandles.length = 0;\r\n this.autorunDisposers.forEach((disposer: any) => {\r\n disposer();\r\n });\r\n this.autorunDisposers.length = 0;\r\n }\r\n\r\n render(): JSX.Element | null {\r\n return null;\r\n }\r\n}\r\nexport const FeatureSelection = withStore(FeatureSelectionBase);\r\n","/*\r\n Module configuration file\r\n */\r\nimport { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {ModuleConfiguration} from \"../core/config/module-configuration\";\r\nimport {TopicConfiguration} from \"./topic-configuration\";\r\nimport {FeatureLayerConfiguration} from \"../core/config/layer-configuration\";\r\nimport {PopupConfiguration} from \"../core/config/popup-configuration\";\r\nimport {LayerListConfiguration} from \"../core/config/layer-list-configuration\";\r\nimport {WebMapConfiguration} from \"../core/config/web-map-configuration\";\r\nimport {\r\n FillSymbolConfiguration,\r\n PictureMarkerSymbolConfiguration\r\n} from \"../core/config/symbol-configuration\";\r\nimport {MaintenanceConfiguration} from \"../core/config/maintenance-configuration\";\r\nimport {MessageConfiguration} from \"../core/config/message-configuration\";\r\nimport {BookmarkConfiguration} from \"../core/config/bookmark-configuration\";\r\n\r\n@JsonObject()\r\nexport class WebMapMetaConfiguration extends ModuleConfiguration {\r\n @JsonProperty()\r\n declare alerts?: MessageConfiguration[];\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class SymbolConfiguration {\r\n @JsonProperty()\r\n declare highlight: __esri.SimpleFillSymbolProperties;\r\n\r\n @JsonProperty()\r\n declare highlight_text: __esri.TextSymbolProperties;\r\n\r\n @JsonProperty()\r\n declare sketch: __esri.SimpleFillSymbolProperties;\r\n\r\n @JsonProperty()\r\n declare sketch_text: __esri.TextSymbolProperties;\r\n\r\n constructor() {\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class MapViewerConfiguration extends ModuleConfiguration {\r\n @JsonProperty()\r\n declare bookmarks: BookmarkConfiguration[];\r\n\r\n @JsonProperty()\r\n declare breakpoints: {\r\n [key: string]: number;\r\n };\r\n // the topic activated on application's start\r\n @JsonProperty()\r\n declare initialTopic: string;\r\n\r\n /**\r\n * Layer list configuration\r\n */\r\n @JsonProperty()\r\n declare layerList: LayerListConfiguration;\r\n\r\n /**\r\n * Layer configurations (e.g. station layer)\r\n */\r\n @JsonProperty()\r\n declare layers: FeatureLayerConfiguration[];\r\n\r\n /**\r\n * Information about maintenance work on the application\r\n */\r\n @JsonProperty({ type: MaintenanceConfiguration})\r\n declare maintenance?: MaintenanceConfiguration[];\r\n\r\n // Objektabfrage Popup\r\n @JsonProperty()\r\n declare popup: PopupConfiguration;\r\n\r\n // Visualizing of features\r\n @JsonProperty()\r\n declare symbols: SymbolConfiguration;\r\n\r\n // Objektabfrage Highlight\r\n @JsonProperty()\r\n declare highlightSymbol: FillSymbolConfiguration;\r\n\r\n @JsonProperty()\r\n declare pointerSymbols?: HashMap;\r\n\r\n @JsonProperty()\r\n declare webMap: WebMapConfiguration;\r\n\r\n @JsonProperty()\r\n declare meta: WebMapMetaConfiguration;\r\n\r\n @JsonProperty()\r\n declare htmlContent: HashMap>;\r\n /**\r\n * Enable or disable search field in locate button\r\n *\r\n * @default true\r\n */\r\n @JsonProperty()\r\n locateButtonEnabled = true;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import {JsonObject, JsonProperty} from \"typescript-json-serializer\";\r\nimport {FeatureFilterConfiguration} from \"../core/config/feature-filter-configuration\";\r\nimport {GeoICONS} from \"../core/components/icon/icon\";\r\nimport {MapViewConfiguration} from \"../core/config/view-configuration\";\r\n\r\n@JsonObject()\r\nexport class TopicLayerConfiguration {\r\n @JsonProperty()\r\n declare id: string;\r\n @JsonProperty()\r\n declare layerId?: number;\r\n @JsonProperty()\r\n declare layerIds?: number[];\r\n constructor() {\r\n }\r\n}\r\nexport class TopicLayersConfiguration {\r\n @JsonProperty()\r\n declare open?: TopicLayerConfiguration[];\r\n @JsonProperty()\r\n declare visible: TopicLayerConfiguration[];\r\n @JsonProperty()\r\n declare hide: TopicLayerConfiguration[];\r\n constructor() {\r\n }\r\n}\r\n@JsonObject()\r\nexport class TopicBasemapConfiguration {\r\n @JsonProperty()\r\n declare default?: string;\r\n @JsonProperty()\r\n declare opacity?: number;\r\n constructor() {\r\n }\r\n}\r\n@JsonObject() // \"LayerConfiguration\"\r\nexport class TopicConfiguration {\r\n\r\n /**\r\n * Identifier\r\n */\r\n @JsonProperty()\r\n declare id: string;\r\n\r\n @JsonProperty()\r\n declare parentId?: string;\r\n /**\r\n * Short name ( used in site title)\r\n */\r\n @JsonProperty()\r\n declare name?: string;\r\n\r\n /**\r\n * Label for displaying\r\n */\r\n @JsonProperty()\r\n declare label: string;\r\n\r\n /**\r\n * Icon type\r\n */\r\n @JsonProperty()\r\n declare icon: GeoICONS;\r\n\r\n /**\r\n * Ids of layers to apply the filter\r\n */\r\n @JsonProperty()\r\n declare layers: TopicLayersConfiguration;\r\n\r\n /**\r\n * filter to use for this topic\r\n */\r\n @JsonProperty()\r\n declare filter: FeatureFilterConfiguration;\r\n\r\n /**\r\n * Base IDs contained within this topic\r\n * Used to find stations when addressed by url (station no is not unique)\r\n */\r\n @JsonProperty()\r\n declare baseIds: number[];\r\n\r\n /**\r\n * BasemapConfiguration\r\n */\r\n @JsonProperty()\r\n declare basemap?: TopicBasemapConfiguration;\r\n /**\r\n * View settings\r\n */\r\n @JsonProperty()\r\n declare mapView?: MapViewConfiguration;\r\n\r\n /**\r\n * Routes to access this topic\r\n * Add \"/\" to load the topic at startup\r\n */\r\n @JsonProperty()\r\n declare routes: string[];\r\n\r\n revision = \"initial\";\r\n\r\n constructor() {}\r\n}\r\n","import OAuthInfo from \"@arcgis/core/identity/OAuthInfo\";\r\nimport IdentityManager from \"@arcgis/core/identity/IdentityManager\";\r\nimport {AppConfiguration} from \"./config/app-configuration\";\r\n\r\n\r\nexport interface AuthenticationProps {\r\n appConfig: AppConfiguration;\r\n\r\n /**\r\n * Namspace legt fest, ob die Login-Session (Token) auch für andere Anwendungen verwendet werden darf.\r\n * Einen beliebigen String verwenden, um die Session für diese Anwendung einzuschränken.\r\n */\r\n appNamespace: string;\r\n}\r\n\r\nexport class Authentication {\r\n appConfig: AppConfiguration;\r\n /**\r\n * Namspace legt fest, ob die Login-Session (Token) auch für andere Anwendungen verwendet werden darf.\r\n * Einen beliebigen String verwenden, um die Session für diese Anwendung einzuschränken.\r\n */\r\n appNamespace: string;\r\n oAuthInfo: OAuthInfo;\r\n\r\n constructor(props: AuthenticationProps) {\r\n if (props) {\r\n Object.assign(this, props);\r\n }\r\n this.oAuthInfo = this.initOAuth();\r\n }\r\n\r\n /**\r\n * Sharing endpoint of portal\r\n */\r\n get sharedPortalEndpoint(): string {\r\n return `${this.appConfig.portalUrl}/sharing`;\r\n }\r\n\r\n /**\r\n * Register a token received from a backend to the IdentityManager\r\n * https://developers.arcgis.com/javascript/latest/api-reference/esri-identity-IdentityManager.html#registerToken\r\n * @param token\r\n * @param portalUrl URL of the portal (e.g. https://test.geo.lu.ch/geoshare)\r\n * @param userId The user ID associated with the token (e.g. \"app_xxxxxxxxx\")\r\n */\r\n static registerToken(token: string, portalUrl: string, userId: string): void {\r\n IdentityManager.registerToken({\r\n server: `${portalUrl}/sharing/rest`,\r\n token,\r\n userId,\r\n ssl: true\r\n });\r\n\r\n }\r\n\r\n /**\r\n * Login\r\n */\r\n login(): Promise<__esri.Credential> {\r\n return new Promise((resolve, reject) =>{\r\n IdentityManager.checkSignInStatus(this.sharedPortalEndpoint).then((credential: __esri.Credential) => {\r\n resolve(credential);\r\n }).catch(() => {\r\n reject(\"Error while checking sign-in status\");\r\n // user will be redirected to OAuth sign-in page\r\n IdentityManager.getCredential(this.sharedPortalEndpoint);\r\n });\r\n });\r\n }\r\n\r\n logout(): void {\r\n IdentityManager.destroyCredentials();\r\n }\r\n\r\n initOAuth() {\r\n if (!this.appConfig.appId || !this.appConfig.portalUrl) {\r\n throw new Error(\"AppId or PortalUrl undefined.\");\r\n }\r\n\r\n const oInfo = new OAuthInfo({\r\n // Use application ID of registered app\r\n appId: this.appConfig.appId,\r\n // use local portal\r\n portalUrl: this.appConfig.portalUrl,\r\n // Prevent the user's signed in state from being shared with other apps on the same domain\r\n // with the same authNamespace value.\r\n authNamespace: this.appNamespace,\r\n flowType: \"auto\", // default that uses two-step flow\r\n popup: false\r\n });\r\n IdentityManager.registerOAuthInfos([oInfo]);\r\n return oInfo;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {autorun} from \"mobx\";\r\nimport {observer} from \"mobx-react\";\r\n\r\nimport \"./attribution.scss\";\r\n\r\nimport EsriAttributionViewModel from \"@arcgis/core/widgets/Attribution/AttributionViewModel\";\r\nimport {AttributionConfiguration, AttributionTextItemConfiguration} from \"../../config/attribution-configuration\";\r\n\r\nimport {Icon} from \"../icon/icon\";\r\nimport {IAppStore, withStore} from \"../../stores/abstract-app-store\";\r\n\r\ninterface AttributionProps {\r\n config: AttributionConfiguration;\r\n onLoad?: (attributionViewModel: EsriAttributionViewModel) => any;\r\n store?: IAppStore; // this is injected by withStore\r\n}\r\n\r\n@observer\r\nclass AttributionBase extends React.Component {\r\n watchHandles: any[] = [];\r\n mainCopyright: string[] = [];\r\n\r\n constructor(props: AttributionProps) {\r\n super(props);\r\n this.state = {\r\n viewModel: null,\r\n items: null,\r\n attributionText: \"\",\r\n isLoading: true,\r\n mapLoading: true\r\n };\r\n const mainCopyrightItem = this.props.config.textItems.find((item) => item.id === \"copyright\");\r\n if (mainCopyrightItem) {\r\n this.mainCopyright.push(mainCopyrightItem.text);\r\n if(mainCopyrightItem.title) {\r\n this.mainCopyright.push(mainCopyrightItem.title);\r\n }\r\n }\r\n }\r\n\r\n componentDidMount(): void {\r\n const {config, onLoad, store} = this.props;\r\n\r\n // rerun until map view is ready and layer list view model is loaded\r\n autorun((reaction: any) => {\r\n if (store?.uiStore.widgets.has(\"attribution\")) {\r\n reaction.dispose(); // stop autorun\r\n return;\r\n }\r\n\r\n if (!store?.mapStore.view) {\r\n return;\r\n }\r\n\r\n const viewModel = this.loadViewModel(config, store?.mapStore.view);\r\n if (!viewModel) {\r\n return;\r\n }\r\n\r\n this.watchHandles.push(\r\n viewModel.watch(\"items.length\",\r\n (newValue: any, oldValue: any, propertyName: string, target: any) => {\r\n const {items} = target;\r\n const textItems: string[] = [];\r\n const pattern = RegExp(\"^©(| )(\\\\d{0,4})(|,)(|Daten:) \"\r\n + this.mainCopyright.join(\"$|^©(| )(\\\\d{0,4})(|,)(|Daten:) \") + \"$\", \"ui\");\r\n // jeder Text nur einmal und er darf nicht mit dem copyright aus der config übereinstimmen\r\n items.forEach((item: __esri.AttributionItem) => {\r\n if (!textItems.includes(item.text) && !pattern.test(item.text)) {\r\n textItems.push(item.text);\r\n }\r\n });\r\n this.setState({\r\n items: textItems\r\n });\r\n })\r\n );\r\n\r\n this.watchHandles.push(\r\n viewModel.watch(\"attributionText\", (attributionText: any) => {\r\n this.setState({attributionText});\r\n })\r\n );\r\n this.watchHandles.push(store?.mapStore.view.watch(\"updating\", (newValue: any) => {\r\n this.setState({mapLoading: newValue});\r\n }));\r\n\r\n this.setState({\r\n isLoading: false,\r\n viewModel\r\n });\r\n store?.uiStore.addWidget(\"attribution\", this);\r\n\r\n if (onLoad) {\r\n // call the hook\r\n onLoad(viewModel);\r\n }\r\n reaction.dispose();\r\n });\r\n }\r\n\r\n componentWillUnmount(): void {\r\n // TODO remove watches\r\n this.watchHandles.forEach((handle: any) => {\r\n handle.remove();\r\n });\r\n this.watchHandles.length = 0;\r\n }\r\n\r\n loadViewModel(attrConfig: AttributionConfiguration,\r\n view: __esri.MapView | __esri.SceneView): EsriAttributionViewModel {\r\n\r\n const config = attrConfig as __esri.AttributionProperties;\r\n const props = {\r\n view,\r\n ...config\r\n };\r\n return new EsriAttributionViewModel(props);\r\n }\r\n\r\n render(): React.ReactElement | null {\r\n const {config, store} = this.props;\r\n if (!config) {\r\n return null;\r\n }\r\n\r\n const {items, mapLoading} = this.state;\r\n\r\n let layerItems;\r\n if (items) {\r\n layerItems = items.join(config.itemDelimiter);\r\n }\r\n\r\n const year = new Date().getFullYear();\r\n const textItems = config.textItems.map((textItem: AttributionTextItemConfiguration, index: number) => {\r\n let href = textItem.url;\r\n if(store?.appStore.topic) {\r\n href = href.replace(\"{topic_label}\", store?.appStore.topic.label);\r\n href = href.replace(\"{topic_name}\", store?.appStore.topic.name ? store?.appStore.topic.name : \"\");\r\n href = href.replace(\"{subtopic_label}\", store?.appStore.subtopic?.label ? store?.appStore.subtopic.label : \"\");\r\n href = href.replace(\"{subtopic_name}\", store?.appStore.subtopic?.name ? store?.appStore.subtopic.name : \"\");\r\n }\r\n return \r\n {index === 0 &&\r\n © {year}\r\n }\r\n {textItem.text}\r\n {index !== config.textItems.length - 1 &&\r\n config.textDelimiter\r\n }\r\n ;\r\n });\r\n\r\n return (\r\n
\r\n
{layerItems}
\r\n
{textItems}
\r\n \r\n
\r\n );\r\n }\r\n\r\n}\r\n\r\nexport const Attribution = withStore(AttributionBase);\r\n","import React from \"react\";\r\nimport {autorun} from \"mobx\";\r\nimport {observer} from \"mobx-react\";\r\n\r\nimport \"./coordinate.scss\";\r\n\r\nimport { Icon } from \"../icon/icon\";\r\n\r\nimport * as reactiveUtils from \"@arcgis/core/core/reactiveUtils\";\r\nimport Extent from \"@arcgis/core/geometry/Extent\";\r\nimport {IAppStore, withStore} from \"../../stores/abstract-app-store\";\r\n\r\ninterface CoordinateProps {\r\n store?: IAppStore; // this is injected by withStore\r\n}\r\n\r\n@observer\r\nclass CoordinateBase extends React.Component {\r\n autorunDisposers: any[] = [];\r\n elevationLayerIndex = -1;\r\n elevationSampler: Promise<__esri.ElevationSampler> | null = null;\r\n watchHandles: any[] = [];\r\n widgetKey = \"coordinate\";\r\n cursorTimeout = 250;\r\n cursorTimeoutId: number | null = null;\r\n titleElevationLayer: string;\r\n constructor(props: CoordinateProps) {\r\n super(props);\r\n this.state = {\r\n isLoading: true,\r\n coordinate: null,\r\n titleElevationLayer: null\r\n };\r\n }\r\n resetCursorTimer(): void {\r\n if (this.cursorTimeoutId) {\r\n window.clearTimeout(this.cursorTimeoutId);\r\n }\r\n }\r\n loadElevationLayer(view: __esri.MapView | __esri.SceneView | undefined, store: IAppStore): void {\r\n if (!view) {\r\n return;\r\n }\r\n if (view.map.ground.layers.length > 0) {\r\n // Suche Layer mit der id \"dom\", ansonsten erster Layer in der ground Liste\r\n this.elevationLayerIndex =\r\n Math.max(0, view.map.ground.layers.findIndex((e)=> e.id===\"dom\" ));\r\n if (view.map.ground.layers.getItemAt(this.elevationLayerIndex).title\r\n !== this.titleElevationLayer) {\r\n this.updateElevationSampler(store);\r\n }\r\n }\r\n }\r\n componentDidMount(): void {\r\n const {store} = this.props;\r\n\r\n // rerun until map view is ready and layer list view model is loaded\r\n this.autorunDisposers.push(autorun((reaction: any) => {\r\n if (store?.uiStore.widgets.has(this.widgetKey)) {\r\n reaction.dispose(); // stop autorun\r\n return;\r\n }\r\n\r\n if (!store?.mapStore.view) {\r\n return;\r\n }\r\n this.setState({\r\n coordinate: null,\r\n elevation: null\r\n });\r\n this.watchHandles.push(\r\n store?.mapStore.view.watch(\"stationary\",\r\n () => {\r\n this.resetCursorTimer();\r\n this.setState({\r\n coordinate: null,\r\n elevation: null\r\n });\r\n })\r\n );\r\n this.watchHandles.push(\r\n reactiveUtils.when(\r\n () => store?.mapStore.view?.stationary === true,\r\n () => {\r\n if (this.elevationLayerIndex >= 0) {\r\n this.updateElevationSampler(store);\r\n }\r\n })\r\n );\r\n this.loadElevationLayer(store?.mapStore.view, store);\r\n this.watchHandles.push(\r\n store?.mapStore.view.watch(\"map.ground.layers.length\",\r\n () => {\r\n this.loadElevationLayer(store?.mapStore.view, store);\r\n })\r\n );\r\n this.watchHandles.push(\r\n store?.mapStore.view.on(\"pointer-move\", (evt) => {\r\n this.resetCursorTimer();\r\n this.setState({\r\n coordinate: store?.mapStore.view?.toMap({ x: evt.x, y: evt.y }),\r\n elevation: store?.mapStore.view?.map.ground? -1: null\r\n });\r\n const mapPoint = store?.mapStore.view?.toMap(evt);\r\n if (this.elevationSampler && mapPoint) {\r\n this.elevationSampler.then((elevationSampler)=> {\r\n const mapPointZ = elevationSampler.queryElevation(mapPoint) as __esri.Point;\r\n this.setState({elevation: mapPointZ.z});\r\n });\r\n }\r\n\r\n })\r\n );\r\n this.watchHandles.push(\r\n store?.mapStore.view.on(\"pointer-leave\", () => {\r\n this.resetCursorTimer();\r\n this.setState({\r\n coordinate: null,\r\n elevation: store?.mapStore.view?.map.ground? -1: null\r\n });\r\n })\r\n );\r\n this.setState({\r\n isLoading: false\r\n });\r\n store?.uiStore.addWidget(this.widgetKey, this);\r\n\r\n reaction.dispose();\r\n }));\r\n }\r\n updateElevationSampler(store: IAppStore) {\r\n if (!store?.mapStore.view) {\r\n return;\r\n }\r\n this.titleElevationLayer = store?.mapStore.view.map.ground.layers.getItemAt(this.elevationLayerIndex).title;\r\n this.setState({\r\n titleElevationLayer: this.titleElevationLayer\r\n });\r\n if(store?.mapStore.view.extent){\r\n // Extent als kopie übergeben damit veränderungen innerhalb des ElevationSampler keinen Einfluss auf die\r\n // Karte haben. Ansonsten funktioniert die Druckfunktion in der Grenzregion nicht korrekt.\r\n this.elevationSampler =\r\n store?.mapStore.view.map.ground.layers.getItemAt(this.elevationLayerIndex)\r\n .createElevationSampler(new Extent(store?.mapStore.view.extent.toJSON()));\r\n }else{\r\n this.elevationSampler = null;\r\n }\r\n }\r\n\r\n componentWillUnmount() {\r\n const {store} = this.props;\r\n this.watchHandles.forEach((handle: any) => {\r\n handle.remove();\r\n });\r\n this.watchHandles.length = 0;\r\n this.autorunDisposers.forEach((disposer: any) => {\r\n disposer();\r\n });\r\n this.autorunDisposers.length = 0;\r\n store?.uiStore.removeWidget(this.widgetKey);\r\n }\r\n render(): React.ReactElement | null {\r\n const {coordinate, elevation, titleElevationLayer} = this.state;\r\n let coords = \"\";\r\n let elevationElement: React.ReactElement | null = null;\r\n let className: string;\r\n if(coordinate){\r\n className =\"show\";\r\n coords =\r\n \"E \" +\r\n new Intl.NumberFormat(\"de-CH\").format(Math.round(coordinate.x)) +\r\n \" / N \" +\r\n new Intl.NumberFormat(\"de-CH\").format(Math.round(coordinate.y));\r\n if (elevation !== null) {\r\n if (elevation === -1) {\r\n elevationElement = \r\n Höhe: \r\n m.ü.M\r\n \r\n ;\r\n } else {\r\n // coords += new Intl.NumberFormat(\"de-CH\").format(Math.round(elevation)) + \" m.ü.M\";\r\n elevationElement = \r\n Höhe: { (elevation === 0)? \"?\":\r\n new Intl.NumberFormat(\"de-CH\").format(Math.round(elevation))\r\n } m.ü.M ({titleElevationLayer});\r\n }\r\n }\r\n } else {\r\n className =\"hide\";\r\n }\r\n return (\r\n
\r\n {coords}{elevationElement}
\r\n );\r\n }\r\n}\r\n\r\nexport const Coordinate = withStore(CoordinateBase);\r\n","import * as React from \"react\";\r\n\r\nexport interface ErrorBoundaryProps {}\r\n\r\nexport interface ErrorInfo {\r\n componentStack: string;\r\n}\r\n\r\nexport interface State {\r\n error: Error | null;\r\n errorInfo: ErrorInfo | null;\r\n}\r\n\r\nexport class ErrorBoundary extends React.Component {\r\n constructor(props: ErrorBoundaryProps) {\r\n super(props);\r\n this.state = {\r\n error: null,\r\n errorInfo: null\r\n };\r\n }\r\n\r\n componentDidCatch(error: Error, errorInfo: ErrorInfo) {\r\n // Catch errors in any components below and re-render with error message\r\n this.setState({\r\n error,\r\n errorInfo\r\n });\r\n // You can also log error messages to an error reporting service here\r\n }\r\n\r\n render() {\r\n if (this.state.errorInfo) {\r\n // Error path\r\n return (\r\n
\r\n

Etwas ist schief gelaufen.

\r\n
\r\n {this.state.error && this.state.error.toString()}\r\n
\r\n {this.state.errorInfo.componentStack}\r\n
\r\n
\r\n );\r\n }\r\n // Normally, just render children\r\n return this.props.children;\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport {MouseEventHandler} from \"react\";\r\n\r\nimport SVG from \"react-inlinesvg\";\r\n\r\nexport type GeoICONS =\r\n \"3d_glasses\" |\r\n \"about\" |\r\n \"add\" |\r\n \"address_book2\" |\r\n \"adhesive_tape\" |\r\n \"air_tube_carrier\" |\r\n \"airbrush\" |\r\n \"airplane\" |\r\n \"airplane2\" |\r\n \"airplane2_landing\" |\r\n \"airplane2_starting\" |\r\n \"airship\" |\r\n \"alarm\" |\r\n \"alarmclock\" |\r\n \"ambulance\" |\r\n \"ammunition_box_closed\" |\r\n \"ammunition_box_open\" |\r\n \"anchor\" |\r\n \"angel\" |\r\n \"antenna\" |\r\n \"apple\" |\r\n \"apple_bite\" |\r\n \"armour\" |\r\n \"army_knife\" |\r\n \"arrow_around\" |\r\n \"arrow_barrier\" |\r\n \"arrow_circle\" |\r\n \"arrow_circle2\" |\r\n \"arrow_cross\" |\r\n \"arrow_curve_left\" |\r\n \"arrow_down\" |\r\n \"arrow_down_left\" |\r\n \"arrow_down_right\" |\r\n \"arrow_fork\" |\r\n \"arrow_fork2\" |\r\n \"arrow_from\" |\r\n \"arrow_into\" |\r\n \"arrow_join\" |\r\n \"arrow_join2\" |\r\n \"arrow_junction\" |\r\n \"arrow_left\" |\r\n \"arrow_loop\" |\r\n \"arrow_loop2\" |\r\n \"arrow_loop3\" |\r\n \"arrow_merge\" |\r\n \"arrow_merge2\" |\r\n \"arrow_mix\" |\r\n \"arrow_out\" |\r\n \"arrow_over\" |\r\n \"arrow_right\" |\r\n \"arrow_shuffle\" |\r\n \"arrow_spread\" |\r\n \"arrow_spread2\" |\r\n \"arrow_squiggly\" |\r\n \"arrow_through\" |\r\n \"arrow_to\" |\r\n \"arrow_turn_left\" |\r\n \"arrow_u_turn\" |\r\n \"arrow_up\" |\r\n \"arrow_up_left\" |\r\n \"arrow_up_right\" |\r\n \"ashtray_cigarette\" |\r\n \"astrologer\" |\r\n \"astronaut\" |\r\n \"athlete\" |\r\n \"atm\" |\r\n \"atom\" |\r\n \"atom2\" |\r\n \"auction_hammer\" |\r\n \"audio_cassette\" |\r\n \"axe\" |\r\n \"baby\" |\r\n \"back\" |\r\n \"backpack\" |\r\n \"bacon\" |\r\n \"bacteria\" |\r\n \"badminton_racket\" |\r\n \"bag\" |\r\n \"bags\" |\r\n \"balloon\" |\r\n \"balloons\" |\r\n \"ballpen\" |\r\n \"banana\" |\r\n \"band_aid\" |\r\n \"bank_building\" |\r\n \"barcode\" |\r\n \"barcode_scanner\" |\r\n \"barrel\" |\r\n \"barrels\" |\r\n \"barrier_closed\" |\r\n \"barrier_open\" |\r\n \"baseball\" |\r\n \"baseball_bat\" |\r\n \"basketball\" |\r\n \"basketball_hoop\" |\r\n \"battery_charge\" |\r\n \"battery_plus_minus\" |\r\n \"battery_status0\" |\r\n \"battery_status1\" |\r\n \"battery_status2\" |\r\n \"battery_status3\" |\r\n \"battery_status4\" |\r\n \"battery_status5\" |\r\n \"beaker\" |\r\n \"beaker2\" |\r\n \"bear\" |\r\n \"bed\" |\r\n \"bed_empty\" |\r\n \"beer_bottle\" |\r\n \"beer_garden_table\" |\r\n \"beer_glass\" |\r\n \"beer_mug\" |\r\n \"bell\" |\r\n \"bell2\" |\r\n \"beverage_can\" |\r\n \"beverage_can_empty\" |\r\n \"bible\" |\r\n \"bicycle\" |\r\n \"bicyclist\" |\r\n \"billboard_empty\" |\r\n \"binocular\" |\r\n \"bird\" |\r\n \"blackboard\" |\r\n \"blender\" |\r\n \"blood_bag\" |\r\n \"blot\" |\r\n \"body_scale\" |\r\n \"bolt\" |\r\n \"bomb\" |\r\n \"bomb2\" |\r\n \"bone\" |\r\n \"book\" |\r\n \"book2\" |\r\n \"book_bookmark\" |\r\n \"book_headphones\" |\r\n \"book_open\" |\r\n \"book_telephone\" |\r\n \"bookkeeper\" |\r\n \"bookmark\" |\r\n \"bookmarks\" |\r\n \"books\" |\r\n \"boombox\" |\r\n \"bottle\" |\r\n \"bottle_bubbles\" |\r\n \"bottle_crate\" |\r\n \"bottle_of_pills\" |\r\n \"bow_tie\" |\r\n \"bowl\" |\r\n \"bowling_ball\" |\r\n \"bowling_pin\" |\r\n \"bowling_pins\" |\r\n \"box_closed\" |\r\n \"box_into\" |\r\n \"box_open\" |\r\n \"box_out\" |\r\n \"box_software\" |\r\n \"box_surprise\" |\r\n \"box_tall\" |\r\n \"boxing_glove\" |\r\n \"boy\" |\r\n \"brain\" |\r\n \"breakfast_egg\" |\r\n \"breakpoint\" |\r\n \"breakpoint_selection\" |\r\n \"breakpoints\" |\r\n \"breakpoints_selection\" |\r\n \"brick_trowel\" |\r\n \"brickwall\" |\r\n \"bridge\" |\r\n \"briefcase\" |\r\n \"briefcase2\" |\r\n \"briefcase2_document\" |\r\n \"briefcase_document\" |\r\n \"brush\" |\r\n \"bucket\" |\r\n \"bug\" |\r\n \"bug2\" |\r\n \"building_block\" |\r\n \"bull\" |\r\n \"bulldozer\" |\r\n \"bullet_train\" |\r\n \"bullets\" |\r\n \"buoy\" |\r\n \"bus\" |\r\n \"bus2\" |\r\n \"businessmen\" |\r\n \"businesspeople\" |\r\n \"businesspeople2\" |\r\n \"businessperson\" |\r\n \"businessperson2\" |\r\n \"businesswoman\" |\r\n \"businesswomen\" |\r\n \"button\" |\r\n \"c_clamp\" |\r\n \"cabinet\" |\r\n \"cabinet2\" |\r\n \"cabinet_flash\" |\r\n \"cabinet_open\" |\r\n \"cabinet_warning\" |\r\n \"cactus\" |\r\n \"caesar\" |\r\n \"cake\" |\r\n \"cake2\" |\r\n \"cake_slice\" |\r\n \"calculator\" |\r\n \"calendar\" |\r\n \"calendar_1\" |\r\n \"calendar_3\" |\r\n \"calendar_31\" |\r\n \"calendar_5\" |\r\n \"calendar_52\" |\r\n \"calendar_7\" |\r\n \"calendar_clock\" |\r\n \"calibration_mark\" |\r\n \"caliper\" |\r\n \"camera\" |\r\n \"can_closed\" |\r\n \"can_open\" |\r\n \"candle\" |\r\n \"candle_holder\" |\r\n \"cannon\" |\r\n \"car_compact\" |\r\n \"car_compact2\" |\r\n \"car_convertible2\" |\r\n \"car_sedan\" |\r\n \"car_sedan2\" |\r\n \"car_sports\" |\r\n \"carabiner\" |\r\n \"card_terminal\" |\r\n \"card_terminal2\" |\r\n \"cargo_container\" |\r\n \"cash_flow\" |\r\n \"cash_register\" |\r\n \"cashier\" |\r\n \"cask\" |\r\n \"castle\" |\r\n \"cd\" |\r\n \"cd_burn\" |\r\n \"cd_case\" |\r\n \"cd_drive\" |\r\n \"cd_music\" |\r\n \"cd_pirated\" |\r\n \"cd_window\" |\r\n \"central_bank\" |\r\n \"central_bank_dollar\" |\r\n \"central_bank_euro\" |\r\n \"central_bank_pound\" |\r\n \"central_bank_yen\" |\r\n \"central_bank_yuan\" |\r\n \"chainsaw\" |\r\n \"chalk\" |\r\n \"champagne_bottle\" |\r\n \"champagne_glass\" |\r\n \"chart_area\" |\r\n \"chart_bar\" |\r\n \"chart_bubble\" |\r\n \"chart_candlestick\" |\r\n \"chart_column\" |\r\n \"chart_column_stacked\" |\r\n \"chart_donut\" |\r\n \"chart_dot\" |\r\n \"chart_funnel\" |\r\n \"chart_gantt\" |\r\n \"chart_hi_lo\" |\r\n \"chart_line\" |\r\n \"chart_pie\" |\r\n \"chart_pyramid\" |\r\n \"chart_radar\" |\r\n \"chart_renko\" |\r\n \"chart_spline\" |\r\n \"chart_step\" |\r\n \"check\" |\r\n \"checkbook\" |\r\n \"checkbox\" |\r\n \"checkbox_selected\" |\r\n \"checkbox_unchecked\" |\r\n \"checkbox_unselected\" |\r\n \"checks\" |\r\n \"chess_piece_bishop\" |\r\n \"chess_piece_king\" |\r\n \"chess_piece_knight\" |\r\n \"chess_piece_pawn\" |\r\n \"chess_piece_queen\" |\r\n \"chess_piece_rook\" |\r\n \"chest\" |\r\n \"chest_into\" |\r\n \"chest_open\" |\r\n \"chest_open_full\" |\r\n \"chest_out\" |\r\n \"chocolate\" |\r\n \"christian_cross\" |\r\n \"christmas_ball\" |\r\n \"church\" |\r\n \"cigarette\" |\r\n \"cigarette_packet\" |\r\n \"cigarette_packet_empty\" |\r\n \"circus\" |\r\n \"clapperboard\" |\r\n \"clapperboard_closed\" |\r\n \"cleaver\" |\r\n \"clef\" |\r\n \"client_network\" |\r\n \"clients\" |\r\n \"clipboard\" |\r\n \"clipboard_check_edit\" |\r\n \"clipboard_checks\" |\r\n \"clipboard_empty\" |\r\n \"clipboard_paste\" |\r\n \"clipboard_paste_no_format\" |\r\n \"clock\" |\r\n \"clock_back\" |\r\n \"clock_forward\" |\r\n \"close\" |\r\n \"clothes_pin\" |\r\n \"cloud\" |\r\n \"cloud_dark\" |\r\n \"cloud_download\" |\r\n \"cloud_flash\" |\r\n \"cloud_hail\" |\r\n \"cloud_moon\" |\r\n \"cloud_network\" |\r\n \"cloud_rain\" |\r\n \"cloud_refresh\" |\r\n \"cloud_snow\" |\r\n \"cloud_sun\" |\r\n \"cloud_updown\" |\r\n \"cloud_upload\" |\r\n \"clown\" |\r\n \"coathanger\" |\r\n \"cocktail\" |\r\n \"cocktail2\" |\r\n \"code\" |\r\n \"code_beanshell\" |\r\n \"code_c\" |\r\n \"code_cplusplus\" |\r\n \"code_csharp\" |\r\n \"code_java\" |\r\n \"code_javascript\" |\r\n \"code_line\" |\r\n \"code_php\" |\r\n \"code_ruby\" |\r\n \"code_vbasic\" |\r\n \"codes_of_law\" |\r\n \"coffee_bean\" |\r\n \"coffee_beans\" |\r\n \"coffee_machine\" |\r\n \"coffin\" |\r\n \"comb\" |\r\n \"compact_camera\" |\r\n \"compass\" |\r\n \"compasses\" |\r\n \"compress\" |\r\n \"compress2\" |\r\n \"console\" |\r\n \"console_network\" |\r\n \"construction_barrier\" |\r\n \"containership\" |\r\n \"contract\" |\r\n \"contrast\" |\r\n \"contrast_low\" |\r\n \"control_panel\" |\r\n \"control_panel2\" |\r\n \"control_tower\" |\r\n \"cook\" |\r\n \"cookies\" |\r\n \"cooling_tower\" |\r\n \"cooling_tower_smoke\" |\r\n \"copy\" |\r\n \"corkscrew\" |\r\n \"correction_fluid\" |\r\n \"courthouse\" |\r\n \"cow\" |\r\n \"cpu\" |\r\n \"cpu2\" |\r\n \"cpu_flash\" |\r\n \"crack\" |\r\n \"crash_test_dummy\" |\r\n \"credit_card\" |\r\n \"credit_card2\" |\r\n \"credit_cards\" |\r\n \"criminal\" |\r\n \"crossbow\" |\r\n \"crown\" |\r\n \"cruise_ship\" |\r\n \"crutch\" |\r\n \"crystal_ball\" |\r\n \"cube_molecule\" |\r\n \"cube_molecule2\" |\r\n \"cubes\" |\r\n \"cup\" |\r\n \"currency_dollar\" |\r\n \"currency_euro\" |\r\n \"currency_plain\" |\r\n \"currency_won\" |\r\n \"currency_yen\" |\r\n \"currency_yuan\" |\r\n \"cut\" |\r\n \"dagger\" |\r\n \"dart\" |\r\n \"data\" |\r\n \"data_cloud\" |\r\n \"data_copy\" |\r\n \"data_floppy_disk\" |\r\n \"data_network\" |\r\n \"data_scroll\" |\r\n \"data_shared\" |\r\n \"data_table\" |\r\n \"debug\" |\r\n \"deck_chair\" |\r\n \"delete\" |\r\n \"delivery_man\" |\r\n \"delivery_note\" |\r\n \"delivery_truck\" |\r\n \"denture\" |\r\n \"desk\" |\r\n \"desk_lamp\" |\r\n \"desktop\" |\r\n \"detergent\" |\r\n \"devil\" |\r\n \"diamond\" |\r\n \"diamond_ring\" |\r\n \"dice\" |\r\n \"dictation_microphone\" |\r\n \"dictionary\" |\r\n \"die\" |\r\n \"disability\" |\r\n \"disinfection\" |\r\n \"diving_mask\" |\r\n \"dna\" |\r\n \"doctor\" |\r\n \"document_attachment\" |\r\n \"document_center\" |\r\n \"document_center_horizontal\" |\r\n \"document_center_vertical\" |\r\n \"document_chart\" |\r\n \"document_cup\" |\r\n \"document_empty\" |\r\n \"document_empty_landscape\" |\r\n \"document_footer\" |\r\n \"document_gear\" |\r\n \"document_header\" |\r\n \"document_heart\" |\r\n \"document_height\" |\r\n \"document_information\" |\r\n \"document_music\" |\r\n \"document_notebook\" |\r\n \"document_orientation_landscape\" |\r\n \"document_orientation_portrait\" |\r\n \"document_page_number\" |\r\n \"document_pinned\" |\r\n \"document_pulse\" |\r\n \"document_selection\" |\r\n \"document_size\" |\r\n \"document_stop\" |\r\n \"document_tag\" |\r\n \"document_text\" |\r\n \"document_width\" |\r\n \"document_zip\" |\r\n \"document_zoom_in\" |\r\n \"document_zoom_out\" |\r\n \"documents_empty\" |\r\n \"documents_exchange\" |\r\n \"dog\" |\r\n \"dome_camera\" |\r\n \"door_closed\" |\r\n \"door_exit\" |\r\n \"door_open\" |\r\n \"dot_matrix\" |\r\n \"download\" |\r\n \"dram\" |\r\n \"drink\" |\r\n \"drop\" |\r\n \"drop_down_list\" |\r\n \"drum\" |\r\n \"dude1\" |\r\n \"dude2\" |\r\n \"dude3\" |\r\n \"dude4\" |\r\n \"dude5\" |\r\n \"dude6\" |\r\n \"dug_well\" |\r\n \"dumbbell\" |\r\n \"dump_truck\" |\r\n \"dynamite\" |\r\n \"ear\" |\r\n \"earth\" |\r\n \"earth2\" |\r\n \"earth_link\" |\r\n \"earth_location\" |\r\n \"earth_music\" |\r\n \"earth_network\" |\r\n \"easel\" |\r\n \"easel_empty\" |\r\n \"edit\" |\r\n \"eightball\" |\r\n \"electric_iron\" |\r\n \"element\" |\r\n \"element_branch2\" |\r\n \"element_copy\" |\r\n \"element_selection\" |\r\n \"elements\" |\r\n \"elements2\" |\r\n \"elements3\" |\r\n \"elements4\" |\r\n \"elements_branch\" |\r\n \"elements_cascade\" |\r\n \"elements_hierarchy\" |\r\n \"elements_selection\" |\r\n \"elements_tree\" |\r\n \"emergency_stop_button\" |\r\n \"emoticon_angry\" |\r\n \"emoticon_blink\" |\r\n \"emoticon_clown\" |\r\n \"emoticon_confused\" |\r\n \"emoticon_cool\" |\r\n \"emoticon_cry\" |\r\n \"emoticon_frown\" |\r\n \"emoticon_grin\" |\r\n \"emoticon_kiss\" |\r\n \"emoticon_smile\" |\r\n \"emoticon_straight_face\" |\r\n \"emoticon_surprised\" |\r\n \"emoticon_tongue\" |\r\n \"engineer\" |\r\n \"envelope2\" |\r\n \"environment\" |\r\n \"environment_network\" |\r\n \"equalizer\" |\r\n \"erase\" |\r\n \"error\" |\r\n \"escalator\" |\r\n \"escalator_down\" |\r\n \"escalator_up\" |\r\n \"excavator\" |\r\n \"explosion\" |\r\n \"eye\" |\r\n \"eye_blind\" |\r\n \"eye_scan\" |\r\n \"eyeglasses\" |\r\n \"face_scan\" |\r\n \"factory\" |\r\n \"fan\" |\r\n \"fancy_cake\" |\r\n \"fax_machine\" |\r\n \"feeding_bottle\" |\r\n \"fence\" |\r\n \"film\" |\r\n \"film_cartridge\" |\r\n \"filter_and_sort\" |\r\n \"find_again\" |\r\n \"find_replace\" |\r\n \"find_text\" |\r\n \"fingerprint\" |\r\n \"fingerprint_scan\" |\r\n \"fire\" |\r\n \"fire_extinguisher\" |\r\n \"fire_hydrant\" |\r\n \"fire_truck\" |\r\n \"firefighter\" |\r\n \"firewall\" |\r\n \"firewall2\" |\r\n \"first_aid\" |\r\n \"first_aid_box\" |\r\n \"fish_bowl\" |\r\n \"fit_to_height\" |\r\n \"fit_to_size\" |\r\n \"fit_to_width\" |\r\n \"flame\" |\r\n \"flash\" |\r\n \"flashlight\" |\r\n \"flatscreen_tv\" |\r\n \"floppy_disk\" |\r\n \"floppy_disk_window\" |\r\n \"floppy_disks\" |\r\n \"floppy_drive\" |\r\n \"flower\" |\r\n \"folder\" |\r\n \"folder2\" |\r\n \"folder3\" |\r\n \"folder3_document\" |\r\n \"folder3_mail\" |\r\n \"folder3_movie\" |\r\n \"folder3_music\" |\r\n \"folder_cubes\" |\r\n \"folder_document\" |\r\n \"folder_document2\" |\r\n \"folder_into\" |\r\n \"folder_movie\" |\r\n \"folder_music\" |\r\n \"folder_network\" |\r\n \"folder_open\" |\r\n \"folder_out\" |\r\n \"folder_shared\" |\r\n \"folder_window\" |\r\n \"folder_zip\" |\r\n \"folders\" |\r\n \"folders2\" |\r\n \"folding_rule\" |\r\n \"font\" |\r\n \"font_style_bold\" |\r\n \"font_style_italics\" |\r\n \"font_style_normal\" |\r\n \"font_style_strikethrough\" |\r\n \"font_style_subscript\" |\r\n \"font_style_superscript\" |\r\n \"font_style_underline\" |\r\n \"football\" |\r\n \"forklift\" |\r\n \"form\" |\r\n \"formula\" |\r\n \"fortress_tower\" |\r\n \"fountain_pen\" |\r\n \"fried_egg\" |\r\n \"fried_egg_bacon\" |\r\n \"front\" |\r\n \"fuel_dispenser\" |\r\n \"funnel\" |\r\n \"gallows\" |\r\n \"gambling_chip\" |\r\n \"gambling_chips\" |\r\n \"gambling_chips2\" |\r\n \"gamepad\" |\r\n \"garbage\" |\r\n \"garbage2\" |\r\n \"garbage_can\" |\r\n \"garbage_container\" |\r\n \"garbage_full\" |\r\n \"garbage_half_full\" |\r\n \"garbage_make_empty\" |\r\n \"garbage_overflow\" |\r\n \"gas_cylinder\" |\r\n \"gauge\" |\r\n \"gauntlet\" |\r\n \"gauze_bandage\" |\r\n \"gearwheel\" |\r\n \"gearwheels\" |\r\n \"geiger_counter\" |\r\n \"genius\" |\r\n \"ghost\" |\r\n \"gift\" |\r\n \"girl\" |\r\n \"glass_cracked\" |\r\n \"glass_fork\" |\r\n \"globe\" |\r\n \"goal\" |\r\n \"goal_ball\" |\r\n \"goblet\" |\r\n \"gold_bar\" |\r\n \"gold_bars\" |\r\n \"goldfish\" |\r\n \"golf_ball\" |\r\n \"golf_club_iron\" |\r\n \"golf_club_putter\" |\r\n \"golf_club_wood\" |\r\n \"golf_flag\" |\r\n \"gps\" |\r\n \"graduate\" |\r\n \"graduation_hat\" |\r\n \"graduation_hat2\" |\r\n \"grand_piano\" |\r\n \"graph\" |\r\n \"graph_claw\" |\r\n \"graph_connection\" |\r\n \"graph_connection_directed\" |\r\n \"graph_fork\" |\r\n \"graph_fork2\" |\r\n \"graph_from\" |\r\n \"graph_node\" |\r\n \"graph_self_loop\" |\r\n \"graph_square\" |\r\n \"graph_star\" |\r\n \"graph_to\" |\r\n \"graph_triangle\" |\r\n \"graphics_tablet\" |\r\n \"grenade\" |\r\n \"guard\" |\r\n \"guillotine\" |\r\n \"guitar\" |\r\n \"gun\" |\r\n \"hair_dryer\" |\r\n \"hamburger\" |\r\n \"hammer\" |\r\n \"hammer2\" |\r\n \"hand_card\" |\r\n \"hand_count_four\" |\r\n \"hand_count_one\" |\r\n \"hand_count_three\" |\r\n \"hand_count_zero\" |\r\n \"hand_drill\" |\r\n \"hand_fist2\" |\r\n \"hand_four\" |\r\n \"hand_gun\" |\r\n \"hand_money\" |\r\n \"hand_offer\" |\r\n \"hand_paper\" |\r\n \"hand_point_left\" |\r\n \"hand_point_left2\" |\r\n \"hand_point_right\" |\r\n \"hand_point_right2\" |\r\n \"hand_point_up\" |\r\n \"hand_point_up2\" |\r\n \"hand_pump\" |\r\n \"hand_spread\" |\r\n \"hand_stop2\" |\r\n \"hand_thumb_down\" |\r\n \"hand_thumb_up\" |\r\n \"hand_touch\" |\r\n \"hand_truck\" |\r\n \"hand_truck_bag\" |\r\n \"hand_truck_box\" |\r\n \"hand_truck_suitcase\" |\r\n \"handbag\" |\r\n \"handcuffs\" |\r\n \"handheld_device\" |\r\n \"handsaw\" |\r\n \"handshake\" |\r\n \"hard_drive\" |\r\n \"hard_drive_network\" |\r\n \"hardhat\" |\r\n \"hat\" |\r\n \"hat2\" |\r\n \"headphones\" |\r\n \"headset\" |\r\n \"headstone\" |\r\n \"heart\" |\r\n \"heart_broken\" |\r\n \"heartbeat\" |\r\n \"helicopter\" |\r\n \"helmet\" |\r\n \"help_earth\" |\r\n \"history\" |\r\n \"history2\" |\r\n \"hockey_puck\" |\r\n \"hockey_stick\" |\r\n \"hole_punch\" |\r\n \"holmes\" |\r\n \"home\" |\r\n \"home_fire\" |\r\n \"home_lock\" |\r\n \"home_water\" |\r\n \"horse\" |\r\n \"hospital\" |\r\n \"hot_air_balloon\" |\r\n \"hotel\" |\r\n \"hourglass\" |\r\n \"house_framework\" |\r\n \"houses\" |\r\n \"html_tag\" |\r\n \"html_tag2\" |\r\n \"i-beam\" |\r\n \"i-beams\" |\r\n \"ice_cream\" |\r\n \"ice_cream2\" |\r\n \"icecube\" |\r\n \"id_badge\" |\r\n \"id_card\" |\r\n \"id_cards\" |\r\n \"igloo\" |\r\n \"inbox\" |\r\n \"inbox_empty\" |\r\n \"inbox_full\" |\r\n \"inbox_into\" |\r\n \"inbox_out\" |\r\n \"indent_decrease\" |\r\n \"indent_increase\" |\r\n \"index\" |\r\n \"index2\" |\r\n \"industrial_machine\" |\r\n \"industrial_robot\" |\r\n \"information\" |\r\n \"infusion_drip\" |\r\n \"injection\" |\r\n \"inkpot\" |\r\n \"install\" |\r\n \"invoice\" |\r\n \"invoice_dollar\" |\r\n \"invoice_euro\" |\r\n \"jackhammer\" |\r\n \"jar\" |\r\n \"jar_coffee_bean\" |\r\n \"jar_cookies\" |\r\n \"jar_earth\" |\r\n \"jerrycan\" |\r\n \"joystick\" |\r\n \"judge\" |\r\n \"key\" |\r\n \"key2\" |\r\n \"key3\" |\r\n \"keyboard\" |\r\n \"keyboard_key_0\" |\r\n \"keyboard_key_1\" |\r\n \"keyboard_key_2\" |\r\n \"keyboard_key_3\" |\r\n \"keyboard_key_4\" |\r\n \"keyboard_key_5\" |\r\n \"keyboard_key_6\" |\r\n \"keyboard_key_7\" |\r\n \"keyboard_key_8\" |\r\n \"keyboard_key_9\" |\r\n \"keyboard_key_a\" |\r\n \"keyboard_key_b\" |\r\n \"keyboard_key_c\" |\r\n \"keyboard_key_clock\" |\r\n \"keyboard_key_d\" |\r\n \"keyboard_key_down\" |\r\n \"keyboard_key_e\" |\r\n \"keyboard_key_empty\" |\r\n \"keyboard_key_enter\" |\r\n \"keyboard_key_f\" |\r\n \"keyboard_key_g\" |\r\n \"keyboard_key_h\" |\r\n \"keyboard_key_i\" |\r\n \"keyboard_key_j\" |\r\n \"keyboard_key_k\" |\r\n \"keyboard_key_l\" |\r\n \"keyboard_key_left\" |\r\n \"keyboard_key_m\" |\r\n \"keyboard_key_minus\" |\r\n \"keyboard_key_n\" |\r\n \"keyboard_key_o\" |\r\n \"keyboard_key_p\" |\r\n \"keyboard_key_plus\" |\r\n \"keyboard_key_q\" |\r\n \"keyboard_key_r\" |\r\n \"keyboard_key_right\" |\r\n \"keyboard_key_s\" |\r\n \"keyboard_key_shift\" |\r\n \"keyboard_key_speaker\" |\r\n \"keyboard_key_t\" |\r\n \"keyboard_key_u\" |\r\n \"keyboard_key_up\" |\r\n \"keyboard_key_v\" |\r\n \"keyboard_key_w\" |\r\n \"keyboard_key_x\" |\r\n \"keyboard_key_y\" |\r\n \"keyboard_key_z\" |\r\n \"keyboard_wireless\" |\r\n \"keyhole\" |\r\n \"keypad\" |\r\n \"keys\" |\r\n \"kidney_dish\" |\r\n \"knife\" |\r\n \"knife_fork\" |\r\n \"knife_fork_spoon\" |\r\n \"knot\" |\r\n \"ladder\" |\r\n \"lantern\" |\r\n \"lantern_on\" |\r\n \"laptop\" |\r\n \"laser_pointer\" |\r\n \"laundry_machine\" |\r\n \"laurel_wreath\" |\r\n \"layout\" |\r\n \"layout_center\" |\r\n \"layout_east\" |\r\n \"layout_horizontal\" |\r\n \"layout_north\" |\r\n \"layout_northeast\" |\r\n \"layout_northwest\" |\r\n \"layout_south\" |\r\n \"layout_southeast\" |\r\n \"layout_southwest\" |\r\n \"layout_vertical\" |\r\n \"layout_west\" |\r\n \"leaf\" |\r\n \"lectern\" |\r\n \"lecture\" |\r\n \"led\" |\r\n \"lemon\" |\r\n \"lemonade_glass\" |\r\n \"lifebelt\" |\r\n \"lightbulb_off\" |\r\n \"lightbulb_on\" |\r\n \"lighthouse\" |\r\n \"line_break\" |\r\n \"line_spacing_paragraph\" |\r\n \"line_spacing_text\" |\r\n \"link\" |\r\n \"link_broken\" |\r\n \"lipstick\" |\r\n \"list_style_bullets\" |\r\n \"list_style_numbered\" |\r\n \"list_style_roman\" |\r\n \"location_pin\" |\r\n \"lock\" |\r\n \"lock2\" |\r\n \"lock3\" |\r\n \"lock_open\" |\r\n \"log\" |\r\n \"log_in\" |\r\n \"log_out\" |\r\n \"logic_and\" |\r\n \"logic_not\" |\r\n \"logic_or\" |\r\n \"logic_xor\" |\r\n \"logs\" |\r\n \"lollipop\" |\r\n \"loudspeaker\" |\r\n \"loudspeaker2\" |\r\n \"loudspeaker3\" |\r\n \"loudspeaker4\" |\r\n \"loudspeaker_box\" |\r\n \"loudspeaker_network\" |\r\n \"loudspeaker_off\" |\r\n \"magazine_folder\" |\r\n \"magazine_folder_empty\" |\r\n \"magic_wand\" |\r\n \"magician\" |\r\n \"magnet\" |\r\n \"magnifying_glass\" |\r\n \"mail\" |\r\n \"mail2\" |\r\n \"mail_attachment\" |\r\n \"mail_bug\" |\r\n \"mail_cloud\" |\r\n \"mail_earth\" |\r\n \"mail_exchange\" |\r\n \"mail_filter\" |\r\n \"mail_forward\" |\r\n \"mail_into\" |\r\n \"mail_open\" |\r\n \"mail_open2\" |\r\n \"mail_out\" |\r\n \"mail_reply\" |\r\n \"mail_reply_all\" |\r\n \"mail_sealed\" |\r\n \"mail_virus\" |\r\n \"mail_write\" |\r\n \"mailbox_empty\" |\r\n \"mailbox_full\" |\r\n \"mails\" |\r\n \"maneki_neko\" |\r\n \"map\" |\r\n \"map_location\" |\r\n \"map_location2\" |\r\n \"map_roads\" |\r\n \"map_route\" |\r\n \"marionette\" |\r\n \"marker\" |\r\n \"market_stand\" |\r\n \"mask\" |\r\n \"masks\" |\r\n \"matryoshka\" |\r\n \"maximize\" |\r\n \"mda\" |\r\n \"measuring_cup\" |\r\n \"medal\" |\r\n \"medal2\" |\r\n \"media_beginning\" |\r\n \"media_eject\" |\r\n \"media_end\" |\r\n \"media_fast_forward\" |\r\n \"media_pause\" |\r\n \"media_play\" |\r\n \"media_record\" |\r\n \"media_rewind\" |\r\n \"media_step_back\" |\r\n \"media_step_forward\" |\r\n \"media_stop\" |\r\n \"medical_bag\" |\r\n \"megaphone\" |\r\n \"memory\" |\r\n \"memory_stick\" |\r\n \"menora\" |\r\n \"message\" |\r\n \"messages\" |\r\n \"microphone\" |\r\n \"microphone2\" |\r\n \"microscope\" |\r\n \"microwave_oven\" |\r\n \"milk\" |\r\n \"minibus\" |\r\n \"minimize\" |\r\n \"minus\" |\r\n \"mirror_horizontally\" |\r\n \"mirror_vertically\" |\r\n \"missile\" |\r\n \"missile2\" |\r\n \"mobile_crane\" |\r\n \"mobile_phone\" |\r\n \"mobilephone2\" |\r\n \"mobilephone3\" |\r\n \"modem\" |\r\n \"modem_earth\" |\r\n \"molecule_h2o\" |\r\n \"money\" |\r\n \"money2\" |\r\n \"money_bill_cut\" |\r\n \"money_bill_fire\" |\r\n \"money_bills\" |\r\n \"money_coin\" |\r\n \"money_coins\" |\r\n \"money_coins2\" |\r\n \"money_dollar\" |\r\n \"money_euro\" |\r\n \"money_interest\" |\r\n \"money_refund\" |\r\n \"moneybag\" |\r\n \"moneybag_coins\" |\r\n \"moneybag_dollar\" |\r\n \"moneybag_euro\" |\r\n \"monitor\" |\r\n \"monitor_brush\" |\r\n \"monitor_height\" |\r\n \"monitor_size\" |\r\n \"monitor_sleep\" |\r\n \"monitor_test_card\" |\r\n \"monitor_touch\" |\r\n \"monitor_width\" |\r\n \"moon\" |\r\n \"moon_half\" |\r\n \"mosque\" |\r\n \"mosquito\" |\r\n \"motor_scooter\" |\r\n \"motorbike\" |\r\n \"motorcycle_helmet\" |\r\n \"motorcyclist\" |\r\n \"mouse\" |\r\n \"mouse2\" |\r\n \"mouse2_left_button\" |\r\n \"mouse2_right_button\" |\r\n \"mouse_left_button\" |\r\n \"mouse_pointer\" |\r\n \"mouse_right_button\" |\r\n \"mousetrap\" |\r\n \"movie\" |\r\n \"movie_camera\" |\r\n \"movies\" |\r\n \"moving_truck\" |\r\n \"mug\" |\r\n \"mug_tea\" |\r\n \"multimeter\" |\r\n \"multimeter_analog\" |\r\n \"mushroom\" |\r\n \"music\" |\r\n \"nail\" |\r\n \"nav_down\" |\r\n \"nav_down_left\" |\r\n \"nav_down_right\" |\r\n \"nav_left\" |\r\n \"nav_plain\" |\r\n \"nav_redo\" |\r\n \"nav_refresh\" |\r\n \"nav_right\" |\r\n \"nav_undo\" |\r\n \"nav_up\" |\r\n \"nav_up_left\" |\r\n \"nav_up_right\" |\r\n \"navigate_beginning\" |\r\n \"navigate_check\" |\r\n \"navigate_close\" |\r\n \"navigate_cross\" |\r\n \"navigate_down\" |\r\n \"navigate_down2\" |\r\n \"navigate_end\" |\r\n \"navigate_left\" |\r\n \"navigate_left2\" |\r\n \"navigate_minus\" |\r\n \"navigate_open\" |\r\n \"navigate_plus\" |\r\n \"navigate_right\" |\r\n \"navigate_right2\" |\r\n \"navigate_up\" |\r\n \"navigate_up2\" |\r\n \"network_node\" |\r\n \"network_node2\" |\r\n \"newspaper\" |\r\n \"newtons_cradle\" |\r\n \"nonprofit\" |\r\n \"nose\" |\r\n \"note\" |\r\n \"note_block\" |\r\n \"note_pinned\" |\r\n \"note_text\" |\r\n \"notebook\" |\r\n \"notebook2\" |\r\n \"notebook3\" |\r\n \"numeric_keypad\" |\r\n \"object_alignment_bottom\" |\r\n \"object_alignment_center\" |\r\n \"object_alignment_horizontal\" |\r\n \"object_alignment_left\" |\r\n \"object_alignment_right\" |\r\n \"object_alignment_top\" |\r\n \"object_alignment_vertical\" |\r\n \"object_ball\" |\r\n \"object_cone\" |\r\n \"object_cube\" |\r\n \"object_cylinder\" |\r\n \"objects\" |\r\n \"objects2\" |\r\n \"objects3\" |\r\n \"objects4\" |\r\n \"objects_exchange\" |\r\n \"objects_transform\" |\r\n \"objects_transform2\" |\r\n \"odometer\" |\r\n \"office_building\" |\r\n \"office_building2\" |\r\n \"office_chair\" |\r\n \"oil_platform\" |\r\n \"oil_pump\" |\r\n \"ok\" |\r\n \"orange\" |\r\n \"pacemaker\" |\r\n \"pacifier\" |\r\n \"package\" |\r\n \"packaging_paper\" |\r\n \"packaging_tape\" |\r\n \"pager\" |\r\n \"pagoda\" |\r\n \"paint_brush\" |\r\n \"paint_bucket\" |\r\n \"paint_roller\" |\r\n \"painters_palette\" |\r\n \"painters_palette2\" |\r\n \"painters_palette_brush\" |\r\n \"painters_palette_empty\" |\r\n \"painting_landscape\" |\r\n \"painting_portrait\" |\r\n \"palm_tree\" |\r\n \"pan_flute\" |\r\n \"paper_fan\" |\r\n \"paper_jet\" |\r\n \"paper_jet2\" |\r\n \"paper_lantern\" |\r\n \"paper_roll\" |\r\n \"paperclip\" |\r\n \"paperclip2\" |\r\n \"parasol\" |\r\n \"parking_meter\" |\r\n \"passport\" |\r\n \"password_field\" |\r\n \"pastor\" |\r\n \"pawn\" |\r\n \"pci_card\" |\r\n \"pci_card_network\" |\r\n \"pda\" |\r\n \"pda_write\" |\r\n \"pencil\" |\r\n \"pens\" |\r\n \"pentagram\" |\r\n \"perfume\" |\r\n \"person\" |\r\n \"pet_bottle\" |\r\n \"petri_dish\" |\r\n \"phone_conference\" |\r\n \"phone_hang_up\" |\r\n \"phone_pick_up\" |\r\n \"phone_receiver\" |\r\n \"phone_receiver2\" |\r\n \"phone_speaker\" |\r\n \"phone_speech_bubble\" |\r\n \"photo_landscape\" |\r\n \"photo_portrait\" |\r\n \"photographic_filter\" |\r\n \"photographic_filters\" |\r\n \"photos\" |\r\n \"piece\" |\r\n \"piece2\" |\r\n \"pieces\" |\r\n \"pig\" |\r\n \"piggy_bank\" |\r\n \"pill\" |\r\n \"pill2\" |\r\n \"pilot\" |\r\n \"pin\" |\r\n \"pin2\" |\r\n \"pineapple\" |\r\n \"pipette\" |\r\n \"pipette_test\" |\r\n \"pirates_ship\" |\r\n \"plane_tool\" |\r\n \"planet\" |\r\n \"plank\" |\r\n \"planks\" |\r\n \"plant\" |\r\n \"platform_truck_box\" |\r\n \"platform_truck_empty\" |\r\n \"platform_truck_suitcase\" |\r\n \"playing_card_clubs\" |\r\n \"playing_card_diamonds\" |\r\n \"playing_card_hearts\" |\r\n \"playing_card_spades\" |\r\n \"playing_cards\" |\r\n \"playing_cards_deck\" |\r\n \"pliers\" |\r\n \"plug\" |\r\n \"plug2\" |\r\n \"plug_cinch\" |\r\n \"plug_lan\" |\r\n \"plug_usb\" |\r\n \"plus\" |\r\n \"podium\" |\r\n \"podium2\" |\r\n \"poison\" |\r\n \"police_car\" |\r\n \"policeman\" |\r\n \"policeman_bobby\" |\r\n \"pontifex\" |\r\n \"pool_balls\" |\r\n \"portable_barcode_scanner\" |\r\n \"portfolio_folder\" |\r\n \"post_horn\" |\r\n \"postage_stamp\" |\r\n \"power\" |\r\n \"power_drill\" |\r\n \"precision_knife\" |\r\n \"precision_square\" |\r\n \"presentation2\" |\r\n \"presentation_chart\" |\r\n \"presentation_empty\" |\r\n \"press\" |\r\n \"pressure_sprayer\" |\r\n \"pretzel\" |\r\n \"price_sticker\" |\r\n \"print_calculator\" |\r\n \"print_layout_continous\" |\r\n \"print_layout_single\" |\r\n \"printer\" |\r\n \"printer3\" |\r\n \"printer_network\" |\r\n \"progress_bar\" |\r\n \"projector\" |\r\n \"pumpkin\" |\r\n \"pumpkin_halloween\" |\r\n \"punching_bag\" |\r\n \"purchase_order\" |\r\n \"purse\" |\r\n \"pylon\" |\r\n \"quad\" |\r\n \"question\" |\r\n \"question_and_answer\" |\r\n \"quotation_mark\" |\r\n \"quotation_mark2\" |\r\n \"quotation_marks\" |\r\n \"rack_server\" |\r\n \"rack_server_network\" |\r\n \"rack_servers\" |\r\n \"radar\" |\r\n \"radiation\" |\r\n \"radio\" |\r\n \"radio_button_group\" |\r\n \"radio_button_selected\" |\r\n \"radio_button_unselected\" |\r\n \"rain_drops\" |\r\n \"razor\" |\r\n \"reactor\" |\r\n \"receipt\" |\r\n \"receipt_book\" |\r\n \"receipt_printer\" |\r\n \"record\" |\r\n \"record_player\" |\r\n \"recycle\" |\r\n \"redo\" |\r\n \"refresh\" |\r\n \"registry\" |\r\n \"remote_control\" |\r\n \"remotecontrol2\" |\r\n \"repeat\" |\r\n \"resize\" |\r\n \"reticle\" |\r\n \"rfid_chip\" |\r\n \"rfq\" |\r\n \"road_roller\" |\r\n \"robot\" |\r\n \"rocket\" |\r\n \"rocking_horse\" |\r\n \"rotate_left\" |\r\n \"rotate_right\" |\r\n \"roulette_wheel\" |\r\n \"route_sign\" |\r\n \"router\" |\r\n \"rss\" |\r\n \"rubber_stamp\" |\r\n \"safe\" |\r\n \"safe_into\" |\r\n \"safe_open_empty\" |\r\n \"safe_open_full\" |\r\n \"safe_out\" |\r\n \"safety_glasses\" |\r\n \"safety_pin\" |\r\n \"safety_pin_open\" |\r\n \"sailboat\" |\r\n \"sales_quotation\" |\r\n \"satellite\" |\r\n \"satellite_dish\" |\r\n \"sausage\" |\r\n \"save_as\" |\r\n \"scales\" |\r\n \"scalpel\" |\r\n \"scanner\" |\r\n \"school\" |\r\n \"schoolboy\" |\r\n \"schoolbus\" |\r\n \"schoolbus2\" |\r\n \"scientist\" |\r\n \"scooter\" |\r\n \"score_board\" |\r\n \"screwdriver\" |\r\n \"scroll\" |\r\n \"scroll2\" |\r\n \"scroll_bar_horizontal\" |\r\n \"scroll_bar_vertical\" |\r\n \"sd_card\" |\r\n \"security_agent\" |\r\n \"security_badge\" |\r\n \"selection\" |\r\n \"selection_delete\" |\r\n \"selection_find\" |\r\n \"selection_recycle\" |\r\n \"selection_refresh\" |\r\n \"selection_view\" |\r\n \"senior_citizen\" |\r\n \"senior_citizen2\" |\r\n \"server\" |\r\n \"server2\" |\r\n \"server_client\" |\r\n \"server_client_exchange\" |\r\n \"server_cloud\" |\r\n \"server_document\" |\r\n \"server_earth\" |\r\n \"server_from_client\" |\r\n \"server_id_card\" |\r\n \"server_into\" |\r\n \"server_mail\" |\r\n \"server_mail_download\" |\r\n \"server_mail_upload\" |\r\n \"server_network\" |\r\n \"server_out\" |\r\n \"server_to_client\" |\r\n \"service_bell\" |\r\n \"set_square\" |\r\n \"sewing_machine\" |\r\n \"shape_circle\" |\r\n \"shape_ellipse\" |\r\n \"shape_hexagon\" |\r\n \"shape_octagon\" |\r\n \"shape_pentagon\" |\r\n \"shape_rectangle\" |\r\n \"shape_rhomb\" |\r\n \"shape_square\" |\r\n \"shape_triangle\" |\r\n \"shapes\" |\r\n \"share\" |\r\n \"shelf_empty\" |\r\n \"shelf_full\" |\r\n \"shield\" |\r\n \"ship1\" |\r\n \"ship2\" |\r\n \"ships_wheel\" |\r\n \"shopping_bag\" |\r\n \"shopping_bag_full\" |\r\n \"shopping_basket\" |\r\n \"shopping_basket_full\" |\r\n \"shopping_cart\" |\r\n \"shopping_cart2\" |\r\n \"shopping_cart_full\" |\r\n \"shower_gel\" |\r\n \"shredder\" |\r\n \"shutter\" |\r\n \"shuttlecock\" |\r\n \"sickle\" |\r\n \"sign_forbidden\" |\r\n \"sign_stop\" |\r\n \"sign_warning\" |\r\n \"sign_warning_biohazard\" |\r\n \"sign_warning_flammable\" |\r\n \"sign_warning_harmful\" |\r\n \"sign_warning_radiation\" |\r\n \"sign_warning_toxic\" |\r\n \"sign_warning_voltage\" |\r\n \"sign_yield\" |\r\n \"signal_flag\" |\r\n \"signal_flag_checkered\" |\r\n \"signal_strength_0\" |\r\n \"signal_strength_1\" |\r\n \"signal_strength_2\" |\r\n \"signal_strength_3\" |\r\n \"signal_strength_4\" |\r\n \"signal_strength_5\" |\r\n \"signaling_disc\" |\r\n \"signboard_closed\" |\r\n \"signboard_empty\" |\r\n \"signboard_for_rent\" |\r\n \"signboard_for_sale\" |\r\n \"signboard_open\" |\r\n \"signboard_sold\" |\r\n \"signpost\" |\r\n \"signpost2\" |\r\n \"signpost3\" |\r\n \"sim_card\" |\r\n \"singer\" |\r\n \"sixpack_beer\" |\r\n \"sizes\" |\r\n \"skateboard\" |\r\n \"skin_cow\" |\r\n \"skin_tiger\" |\r\n \"skull\" |\r\n \"skull2\" |\r\n \"sledge\" |\r\n \"slider\" |\r\n \"slingshot\" |\r\n \"small_truck\" |\r\n \"smartcard\" |\r\n \"smartphone\" |\r\n \"smartphone_cloud\" |\r\n \"sms\" |\r\n \"snowflake\" |\r\n \"snowman\" |\r\n \"soap_dispenser\" |\r\n \"soccer_ball\" |\r\n \"solar_panel\" |\r\n \"sort_19_ascending\" |\r\n \"sort_19_descending\" |\r\n \"sort_ascending\" |\r\n \"sort_ascending2\" |\r\n \"sort_az_ascending\" |\r\n \"sort_az_ascending2\" |\r\n \"sort_az_descending\" |\r\n \"sort_az_descending2\" |\r\n \"sort_descending\" |\r\n \"sort_descending2\" |\r\n \"sort_down\" |\r\n \"sort_down_minus\" |\r\n \"sort_down_plus\" |\r\n \"sort_up\" |\r\n \"sort_up_down\" |\r\n \"sort_up_down2\" |\r\n \"sort_up_down_question\" |\r\n \"sort_up_minus\" |\r\n \"sort_up_plus\" |\r\n \"spade\" |\r\n \"spam\" |\r\n \"speech_balloon\" |\r\n \"speech_balloon_answer\" |\r\n \"speech_balloon_question\" |\r\n \"spellcheck\" |\r\n \"spellcheck2\" |\r\n \"spider\" |\r\n \"spirit_level\" |\r\n \"sponge\" |\r\n \"spray_can\" |\r\n \"spreadsheed\" |\r\n \"spreadsheed_cell\" |\r\n \"spreadsheed_chart\" |\r\n \"spreadsheed_column\" |\r\n \"spreadsheed_data\" |\r\n \"spreadsheed_row\" |\r\n \"spreadsheed_sort_ascending\" |\r\n \"spreadsheed_sort_descending\" |\r\n \"spreadsheed_sum\" |\r\n \"spy\" |\r\n \"ssd_drive\" |\r\n \"stairs_down\" |\r\n \"stairs_up\" |\r\n \"standby\" |\r\n \"stapler\" |\r\n \"star\" |\r\n \"star2\" |\r\n \"star_and_crescent\" |\r\n \"star_of_david\" |\r\n \"steering_wheel\" |\r\n \"step\" |\r\n \"stethoscope\" |\r\n \"sticky_note\" |\r\n \"sticky_note_text\" |\r\n \"stock_ticker\" |\r\n \"stockbroker\" |\r\n \"stockbroker2\" |\r\n \"stopwatch\" |\r\n \"stopwatch2\" |\r\n \"store\" |\r\n \"stroller\" |\r\n \"submarine\" |\r\n \"suitcase\" |\r\n \"suitcase2\" |\r\n \"sum\" |\r\n \"sun\" |\r\n \"sun_dimmed\" |\r\n \"sun_half\" |\r\n \"sunglasses\" |\r\n \"surgeon\" |\r\n \"surveillance_camera\" |\r\n \"surveillance_camera2\" |\r\n \"switch2_off\" |\r\n \"switch2_on\" |\r\n \"switch3_off\" |\r\n \"switch3_on\" |\r\n \"switch_off\" |\r\n \"switch_on\" |\r\n \"sword\" |\r\n \"symbol_at\" |\r\n \"symbol_copyright\" |\r\n \"symbol_dollar\" |\r\n \"symbol_dollar_euro\" |\r\n \"symbol_euro\" |\r\n \"symbol_female\" |\r\n \"symbol_hash\" |\r\n \"symbol_male\" |\r\n \"symbol_paragraph\" |\r\n \"symbol_percent\" |\r\n \"symbol_pound\" |\r\n \"symbol_q\" |\r\n \"symbol_questionmark\" |\r\n \"symbol_yen\" |\r\n \"symbol_yuan\" |\r\n \"synagogue\" |\r\n \"system\" |\r\n \"tab_pane\" |\r\n \"table\" |\r\n \"table_selection_all\" |\r\n \"table_selection_block\" |\r\n \"table_selection_cell\" |\r\n \"table_selection_column\" |\r\n \"table_selection_range\" |\r\n \"table_selection_row\" |\r\n \"table_tennis_racket\" |\r\n \"tables\" |\r\n \"tablet_computer\" |\r\n \"tablet_computer_touch\" |\r\n \"tag\" |\r\n \"tags\" |\r\n \"tank\" |\r\n \"tank_truck\" |\r\n \"tape_measure\" |\r\n \"tape_measure2\" |\r\n \"target\" |\r\n \"taxi\" |\r\n \"tea_bag\" |\r\n \"teacher\" |\r\n \"teddy_bear\" |\r\n \"telephone\" |\r\n \"telephone2\" |\r\n \"telephone_box\" |\r\n \"telescope\" |\r\n \"temple\" |\r\n \"tennis_ball\" |\r\n \"tennis_racket\" |\r\n \"tent\" |\r\n \"terrorist\" |\r\n \"test_card\" |\r\n \"text\" |\r\n \"text_align_center\" |\r\n \"text_align_justified\" |\r\n \"text_align_left\" |\r\n \"text_align_right\" |\r\n \"text_binary\" |\r\n \"text_braille\" |\r\n \"text_field\" |\r\n \"text_speaker\" |\r\n \"text_tree\" |\r\n \"thermometer\" |\r\n \"thermometer2\" |\r\n \"thought\" |\r\n \"thread\" |\r\n \"ticket\" |\r\n \"timer\" |\r\n \"toaster\" |\r\n \"tobacco_pipe\" |\r\n \"toilet\" |\r\n \"toilet_paper\" |\r\n \"tool_tip\" |\r\n \"toolbox\" |\r\n \"tools\" |\r\n \"tooth\" |\r\n \"tooth_carious\" |\r\n \"torii\" |\r\n \"torpedo\" |\r\n \"touch\" |\r\n \"tower_crane\" |\r\n \"tractor\" |\r\n \"trafficlight_green\" |\r\n \"trafficlight_off\" |\r\n \"trafficlight_on\" |\r\n \"trafficlight_red\" |\r\n \"trafficlight_red_yellow\" |\r\n \"trafficlight_yellow\" |\r\n \"tram\" |\r\n \"tree\" |\r\n \"trojan_horse\" |\r\n \"trophy\" |\r\n \"truck\" |\r\n \"truck2\" |\r\n \"truck_container\" |\r\n \"truck_trailer\" |\r\n \"tv\" |\r\n \"tweezers\" |\r\n \"typewriter\" |\r\n \"ufo\" |\r\n \"umbrella_closed\" |\r\n \"umbrella_open\" |\r\n \"undo\" |\r\n \"uninstall\" |\r\n \"university\" |\r\n \"upload\" |\r\n \"user\" |\r\n \"user_earth\" |\r\n \"user_glasses\" |\r\n \"user_headphones\" |\r\n \"user_headset\" |\r\n \"user_message\" |\r\n \"user_mobilephone\" |\r\n \"user_monitor\" |\r\n \"user_smartphone\" |\r\n \"user_telephone\" |\r\n \"users\" |\r\n \"users2\" |\r\n \"users3\" |\r\n \"users4\" |\r\n \"users5\" |\r\n \"users_crowd\" |\r\n \"users_family\" |\r\n \"users_meeting\" |\r\n \"users_relation\" |\r\n \"users_relation2\" |\r\n \"utility_knife\" |\r\n \"vacuum_cleaner\" |\r\n \"van\" |\r\n \"vector_circle\" |\r\n \"vector_curve_cubic\" |\r\n \"vector_curve_quadratic\" |\r\n \"vector_ellipse\" |\r\n \"vector_line\" |\r\n \"vector_square\" |\r\n \"vector_triangle\" |\r\n \"vending_machine\" |\r\n \"video_camera\" |\r\n \"video_chat\" |\r\n \"video_chat2\" |\r\n \"videotape\" |\r\n \"view_1_1\" |\r\n \"violin\" |\r\n \"virus\" |\r\n \"voice_recorder\" |\r\n \"voodoo_doll\" |\r\n \"walkie_talkie\" |\r\n \"wall_barbed_wire\" |\r\n \"wallet\" |\r\n \"wallet_empty\" |\r\n \"warehouse\" |\r\n \"washing_powder\" |\r\n \"water\" |\r\n \"water_fish\" |\r\n \"water_tap\" |\r\n \"watering_can\" |\r\n \"watering_can_half\" |\r\n \"wax_seal\" |\r\n \"wax_seal_broken\" |\r\n \"web\" |\r\n \"webcam\" |\r\n \"wedding_rings\" |\r\n \"weight\" |\r\n \"weight2\" |\r\n \"wheat\" |\r\n \"wheel\" |\r\n \"wheel_loader\" |\r\n \"wheelbarrow\" |\r\n \"wheelbarrow_full\" |\r\n \"wheelchair\" |\r\n \"whistle\" |\r\n \"whistle_noise\" |\r\n \"wind_engine\" |\r\n \"wind_engine_offshore\" |\r\n \"wind_engines\" |\r\n \"windmill\" |\r\n \"window\" |\r\n \"window_cd\" |\r\n \"window_close\" |\r\n \"window_dialog\" |\r\n \"window_earth\" |\r\n \"window_environment\" |\r\n \"window_equalizer\" |\r\n \"window_explorer\" |\r\n \"window_font\" |\r\n \"window_gear\" |\r\n \"window_height\" |\r\n \"window_information\" |\r\n \"window_key\" |\r\n \"window_logon\" |\r\n \"window_network\" |\r\n \"window_oscillograph\" |\r\n \"window_sidebar\" |\r\n \"window_size\" |\r\n \"window_split_hor\" |\r\n \"window_split_ver\" |\r\n \"window_star\" |\r\n \"window_test_card\" |\r\n \"window_time\" |\r\n \"window_touch\" |\r\n \"window_warning\" |\r\n \"window_width\" |\r\n \"windows\" |\r\n \"windows_close\" |\r\n \"windsock\" |\r\n \"windup_key\" |\r\n \"wine\" |\r\n \"wine_bottle\" |\r\n \"wine_glass\" |\r\n \"wlan_antenna\" |\r\n \"wlan_router\" |\r\n \"woman\" |\r\n \"woman2\" |\r\n \"woman3\" |\r\n \"wooden_pallet\" |\r\n \"wooden_pallet_box\" |\r\n \"worker\" |\r\n \"worker2\" |\r\n \"workplace\" |\r\n \"workstation\" |\r\n \"workstation_network\" |\r\n \"worm\" |\r\n \"wrench\" |\r\n \"wristwatch\" |\r\n \"x-ray\" |\r\n \"yinyang\" |\r\n \"zoom_in\" |\r\n \"zoom_out\";\r\n\r\nexport interface IconProps {\r\n name: GeoICONS;\r\n selected?: boolean | undefined;\r\n className?: string;\r\n onClick?: MouseEventHandler;\r\n title?: string;\r\n}\r\n\r\nexport class Icon extends React.Component {\r\n\r\n constructor(props: IconProps) {\r\n super(props);\r\n }\r\n\r\n render(): React.ReactElement | null {\r\n const {className, name, selected, title} = this.props;\r\n let iconFile = __CONFIG_APPBASE__ + \"images/icons/\";\r\n if (selected){\r\n iconFile += \"selected/\";\r\n } else {\r\n iconFile += \"plain/\";\r\n }\r\n iconFile += name + \".svg\";\r\n const titleString = (typeof title === \"string\")? title: \" \";\r\n return(\r\n \r\n );\r\n }\r\n}\r\n","import * as React from \"react\";\r\nimport {Cookies, withCookies} from \"react-cookie\";\r\n\r\nimport \"./maintenance.scss\";\r\n\r\nimport {MaintenanceConfiguration} from \"../../config/maintenance-configuration\";\r\nimport {Icon} from \"../icon/icon\";\r\nimport {instanceOf} from \"prop-types\";\r\nimport {IAppStore, withStore} from \"../../stores/abstract-app-store\";\r\n\r\nexport interface MaintenanceProps {\r\n config: MaintenanceConfiguration[];\r\n store?: IAppStore; // this is injected by withStore\r\n}\r\n\r\nclass Maintenance extends React.Component {\r\n static propTypes = {\r\n cookies: instanceOf(Cookies).isRequired\r\n };\r\n state = { visible: true};\r\n messageId;\r\n dismiss: string[] = [];\r\n maintenanceUiRef = React.createRef();\r\n\r\n constructor(props: MaintenanceProps) {\r\n super(props);\r\n const { cookies, config } = this.props;\r\n const cookieString = cookies.get(\"m-dismiss\");\r\n this.messageId = \"\"+Math.min(...config.map((m) => m.from.getTime()))\r\n +\"-\"+Math.max(...config.map((m) => m.to.getTime()));\r\n this.dismiss = cookieString? cookieString.split(\";\"): [];\r\n this.state = {\r\n visible: !this.dismiss.includes(this.messageId)\r\n };\r\n this.handleDismiss = this.handleDismiss.bind(this);\r\n }\r\n handleDismiss = () => {\r\n const { cookies, store } = this.props;\r\n this.setState({ visible: false });\r\n store?.uiStore.setUiOffsetTop();\r\n this.dismiss.push(this.messageId);\r\n cookies.set(\"m-dismiss\", this.dismiss.join(\";\"), { path: \"/\", sameSite: \"lax\" });\r\n };\r\n componentDidMount(): void {\r\n const {store} = this.props;\r\n store?.uiStore.setUiOffsetTop(this.maintenanceUiRef.current?.clientHeight);\r\n }\r\n render(): React.ReactElement | null {\r\n if (!this.state.visible) {\r\n return null;\r\n }\r\n const now = new Date();\r\n const maintenance = this.props.config.filter((m: MaintenanceConfiguration) =>\r\n // only display message in configured time frame\r\n now > m.from && now < m.to\r\n );\r\n\r\n const message: React.ReactElement[] = [];\r\n maintenance.forEach((m: MaintenanceConfiguration, index) => {\r\n message.push(

);\r\n });\r\n\r\n if (message.length === 0) {\r\n return null;\r\n }\r\n return(\r\n

\r\n {message}\r\n \r\n
\r\n );\r\n }\r\n}\r\nexport default withCookies(withStore(Maintenance));\r\n","/*\r\nCopied and adapted from https://github.com/Esri/react-arcgis/blob/master/src/ts/components/MapComposites.tsx\r\n\r\nCopyright © 2017-2019 Esri\r\n\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance\r\nwith the License. You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on\r\nan \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the\r\nspecific language governing permissions and limitations under the License.\r\n\r\nA copy of the license is available in the repository's LICENSE file.\r\nTODO: Refactor\r\n */\r\nimport * as React from \"react\";\r\nimport { BaseProps } from \"../../props\";\r\nimport { eventMap } from \"../../events\";\r\nimport {StyledContainer} from \"../styled-container/styled-container\";\r\nimport EsriMap from \"@arcgis/core/Map\";\r\nimport EsriMapView from \"@arcgis/core/views/MapView\";\r\n\r\n\r\nexport interface MapProps extends BaseProps {\r\n mapProperties?: __esri.MapProperties;\r\n viewProperties?: __esri.MapViewProperties;\r\n}\r\n\r\nexport class Map extends React.Component {\r\n constructor(props: MapProps) {\r\n super(props);\r\n this.state = {\r\n mapContainerId: this.props.containerId,\r\n status: \"loading\"\r\n };\r\n }\r\n\r\n render(): React.ReactElement | null {\r\n const centerStyle = {\r\n left: \"50%\",\r\n marginRight: \"-50%\",\r\n position: \"absolute\",\r\n top: \"50%\",\r\n transform: \"translate(-50%, -50%)\"\r\n };\r\n\r\n const mapStyle = this.props.className ?\r\n this.props.style :\r\n {\r\n height: \"100%\",\r\n position: \"relative\",\r\n width: \"100%\",\r\n ...this.props.style\r\n };\r\n\r\n const loadElement = (\r\n this.props.loadElement ? this.props.loadElement :\r\n

Wird geladen...

\r\n );\r\n\r\n const failElement = (\r\n this.props.failElement ? this.props.failElement :\r\n

Laden des ArcGIS API fehlgeschlagen.

\r\n );\r\n\r\n if (this.state.status === \"loaded\") {\r\n if (!!this.props.childrenAsFunction) {\r\n return this.props.childrenAsFunction(this.state.map, this.state.view);\r\n }\r\n const childrenWithProps = React.Children.map(this.props.children, (child) => {\r\n const childEl = child as React.ReactElement;\r\n return React.cloneElement(childEl, {\r\n map: this.state.map,\r\n view: this.state.view\r\n }\r\n );\r\n });\r\n return (\r\n
\r\n \r\n {childrenWithProps}\r\n
\r\n );\r\n } else if (this.state.status === \"loading\") {\r\n return (\r\n
\r\n \r\n
\r\n {loadElement}\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n {failElement}\r\n
\r\n
\r\n );\r\n }\r\n\r\n loadMap(): Promise {\r\n const mapData = new Promise((resolve, reject) => {\r\n try {\r\n const map: __esri.Map = new EsriMap(this.props.mapProperties); // Make the map\r\n const viewProperties: any = {\r\n map,\r\n container: this.props.containerId,\r\n ...this.props.viewProperties\r\n };\r\n const view: __esri.View = new EsriMapView(viewProperties); // Make the view\r\n const typedView = view as __esri.MapView;\r\n Object.keys(eventMap).forEach((key) => { // Set view events to any user defined callbacks\r\n if ((this.props as any)[key]) {\r\n typedView.on((eventMap as any)[key], (this.props as any)[key]);\r\n }\r\n });\r\n view.when(() => {\r\n resolve({ map, view });\r\n }, (err: Error) => {\r\n reject(err);\r\n });\r\n } catch (err) {\r\n reject(err);\r\n }\r\n });\r\n return mapData;\r\n }\r\n\r\n componentDidMount(): void {\r\n // load the map after the component was mounted\r\n this.loadMap()\r\n .then(\r\n ({map, view}) => {\r\n this.setState({\r\n map,\r\n view,\r\n status: \"loaded\"\r\n });\r\n if (this.props.onLoad) {\r\n this.props.onLoad(map, view);\r\n }\r\n })\r\n .catch((e: Error) => {\r\n throw e;\r\n });\r\n }\r\n componentWillUnmount(): void {\r\n\r\n }\r\n}\r\n","import React from \"react\";\r\nimport { Message, MessageProps } from \"semantic-ui-react\";\r\nimport { instanceOf } from \"prop-types\";\r\nimport { withCookies, Cookies } from \"react-cookie\";\r\n\r\nimport \"./message-block.scss\";\r\nimport {Icon} from \"../icon/icon\";\r\n\r\nclass MessageBlock extends React.Component {\r\n static propTypes = {\r\n cookies: instanceOf(Cookies).isRequired\r\n };\r\n state = { visible: true};\r\n messageId;\r\n dismiss: string[] = [];\r\n constructor(props: MessageProps) {\r\n super(props);\r\n const { cookies, topic, subtopic, index } = this.props;\r\n const cookieString = cookies.get(\"mv-dismiss\");\r\n this.messageId = topic +(subtopic? \"_\"+subtopic:\"\")+ \"_\" + index;\r\n this.dismiss = cookieString? cookieString.split(\";\"): [];\r\n this.state = {\r\n visible: !this.dismiss.includes(this.messageId)\r\n };\r\n this.handleDismiss = this.handleDismiss.bind(this);\r\n }\r\n handleDismiss = (): void => {\r\n const { cookies } = this.props;\r\n this.setState({ visible: false });\r\n this.dismiss.push(this.messageId);\r\n cookies.set(\"mv-dismiss\", this.dismiss.join(\";\"), { path: \"/\", sameSite: \"lax\" });\r\n };\r\n\r\n render(): React.ReactElement | null {\r\n if (this.state.visible && this.props.content) {\r\n let className = \"geo-component\";\r\n if (this.props.className) {\r\n className += \" \" + this.props.className;\r\n }\r\n // quick and dirty!\r\n const content = (\r\n
\r\n \r\n

\r\n

\r\n );\r\n return (\r\n \r\n );\r\n }\r\n\r\n return null;\r\n }\r\n}\r\nexport default withCookies(MessageBlock);\r\n","import React from \"react\";\r\nimport {observer} from \"mobx-react\";\r\nimport {autorun} from \"mobx\";\r\n\r\nimport EsriScaleBar from \"@arcgis/core/widgets/ScaleBar\";\r\nimport EsriScaleBarViewModel from \"@arcgis/core/widgets/ScaleBar/ScaleBarViewModel\";\r\nimport {ScaleBarConfiguration} from \"../../config/scalebar-configuration\";\r\nimport {IAppStore, withStore} from \"../../stores/abstract-app-store\";\r\n\r\n\r\ninterface ScalebarProps {\r\n config: ScaleBarConfiguration;\r\n onLoad?: (scaleBarViewModel: EsriScaleBarViewModel) => any;\r\n store?: IAppStore; // this is injected by withStore\r\n}\r\n\r\n@observer\r\nclass ScaleBarBase extends React.Component {\r\n watchHandles: any[] = [];\r\n autorunDisposers: any[] = [];\r\n scaleBar: any;\r\n scaleBarRef: any;\r\n constructor(props: ScalebarProps) {\r\n super(props);\r\n this.state = {\r\n viewModel: null,\r\n isLoading: true\r\n };\r\n this.scaleBarRef = React.createRef();\r\n }\r\n\r\n componentDidMount(): void {\r\n const {config, onLoad, store} = this.props;\r\n\r\n // rerun until map view is ready and layer list view model is loaded\r\n this.autorunDisposers.push(autorun((reaction: any) => {\r\n if (store?.uiStore.widgets.has(\"scalebar\")) {\r\n reaction.dispose(); // stop autorun\r\n return;\r\n }\r\n\r\n if (!store?.mapStore.view) {\r\n return;\r\n }\r\n const scaleBar = this.loadScaleBar(config, store.mapStore.view);\r\n if (!scaleBar) {\r\n return;\r\n }\r\n /* console.log(scaleBar);\r\n this.watchHandles.push(\r\n scaleBar.viewModel.watch(\"view.zoom\",\r\n (newValue: any, oldValue: any, propertyName: string, target: any) => {\r\n this.setState({viewModel: target});\r\n console.log('handle view');\r\n console.log(target);\r\n })\r\n );*/\r\n this.setState({\r\n isLoading: false,\r\n viewModel: scaleBar.viewModel\r\n });\r\n store?.uiStore.addWidget(\"scalebar\", this);\r\n\r\n if (onLoad) {\r\n // call the hook\r\n onLoad(scaleBar.viewModel);\r\n }\r\n reaction.dispose();\r\n }));\r\n }\r\n\r\n componentWillUnmount(): void {\r\n const {store} = this.props;\r\n this.watchHandles.forEach((handle: any) => {\r\n handle.remove();\r\n });\r\n this.watchHandles.length = 0;\r\n this.autorunDisposers.forEach((disposer: any) => {\r\n disposer();\r\n });\r\n this.autorunDisposers.length = 0;\r\n store?.uiStore.removeWidget(\"scalebar\");\r\n }\r\n\r\n loadScaleBar(scaleBarConfig: ScaleBarConfiguration,\r\n view: __esri.MapView | __esri.SceneView): __esri.ScaleBar {\r\n\r\n const config = scaleBarConfig as __esri.ScaleBarProperties;\r\n config.container = this.scaleBarRef.current;\r\n const props = {\r\n view,\r\n ...config\r\n };\r\n return new EsriScaleBar(props);\r\n }\r\n\r\n render(): React.ReactElement | null {\r\n return (\r\n
\r\n );\r\n }\r\n}\r\n\r\nexport const ScaleBar = withStore(ScaleBarBase);\r\n","/*\r\nCopied and adapted from https://github.com/Esri/react-arcgis/blob/master/src/ts/components/MapComposites.tsx\r\n\r\nCopyright © 2017-2019 Esri\r\n\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance\r\nwith the License. You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on\r\nan \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the\r\nspecific language governing permissions and limitations under the License.\r\n\r\nA copy of the license is available in the repository's LICENSE file.\r\nTODO: Refactor\r\n */\r\nimport * as React from \"react\";\r\nimport { BaseProps } from \"../../props\";\r\nimport { eventMap } from \"../../events\";\r\nimport {StyledContainer} from \"../styled-container/styled-container\";\r\nimport EsriMap from \"@arcgis/core/Map\";\r\nimport EsriSceneView from \"@arcgis/core/views/SceneView\";\r\n\r\nexport interface SceneProps extends BaseProps {\r\n mapProperties?: __esri.MapProperties;\r\n viewProperties?: __esri.SceneViewProperties;\r\n}\r\n\r\nexport class Scene extends React.Component {\r\n constructor(props: SceneProps) {\r\n super(props);\r\n this.state = {\r\n mapContainerId: this.props.containerId,\r\n status: \"loading\"\r\n };\r\n }\r\n\r\n render(): React.ReactElement | null {\r\n const centerStyle = {\r\n left: \"50%\",\r\n marginRight: \"-50%\",\r\n position: \"absolute\",\r\n top: \"50%\",\r\n transform: \"translate(-50%, -50%)\"\r\n };\r\n\r\n const mapStyle = this.props.className ?\r\n this.props.style :\r\n {\r\n height: \"100%\",\r\n position: \"relative\",\r\n width: \"100%\",\r\n ...this.props.style\r\n };\r\n\r\n const loadElement = (\r\n this.props.loadElement ? this.props.loadElement :\r\n

Wird geladen...

\r\n );\r\n\r\n const failElement = (\r\n this.props.failElement ? this.props.failElement :\r\n

Laden des ArcGIS API fehlgeschlagen.

\r\n );\r\n\r\n if (this.state.status === \"loaded\") {\r\n if (!!this.props.childrenAsFunction) {\r\n return this.props.childrenAsFunction(this.state.map, this.state.view);\r\n }\r\n const childrenWithProps = React.Children.map(this.props.children, (child) => {\r\n const childEl = child as React.ReactElement;\r\n return React.cloneElement(childEl, {\r\n map: this.state.map,\r\n view: this.state.view\r\n }\r\n );\r\n });\r\n return (\r\n
\r\n \r\n {childrenWithProps}\r\n
\r\n );\r\n } else if (this.state.status === \"loading\") {\r\n return (\r\n
\r\n \r\n
\r\n {loadElement}\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n {failElement}\r\n
\r\n
\r\n );\r\n }\r\n\r\n loadMap() {\r\n const mapData = new Promise((resolve, reject) => {\r\n try {\r\n const map: __esri.Map = new EsriMap(this.props.mapProperties); // Make the map\r\n const viewProperties: any = {\r\n map,\r\n container: this.props.containerId,\r\n ...this.props.viewProperties\r\n };\r\n const view: __esri.View = new EsriSceneView(viewProperties); // Make the view\r\n const typedView = view as __esri.SceneView;\r\n Object.keys(eventMap).forEach((key) => { // Set view events to any user defined callbacks\r\n if (this.props[key]) {\r\n typedView.on(eventMap[key], this.props[key]);\r\n }\r\n });\r\n view.when(() => {\r\n resolve({ map, view });\r\n }, (err: Error) => {\r\n reject(err);\r\n });\r\n } catch (err) {\r\n reject(err);\r\n }\r\n });\r\n return mapData;\r\n }\r\n\r\n componentDidMount() {\r\n // load the map after the component was mounted\r\n this.loadMap()\r\n .then(\r\n ({map, view}) => {\r\n this.setState({\r\n map,\r\n view,\r\n status: \"loaded\"\r\n });\r\n if (this.props.onLoad) {\r\n this.props.onLoad(map, view);\r\n }\r\n })\r\n .catch((e: Error) => {\r\n throw e;\r\n });\r\n }\r\n}\r\n\r\n","import * as React from \"react\";\r\nimport {autorun, runInAction} from \"mobx\";\r\nimport {observer} from \"mobx-react\";\r\n\r\nimport \"./search.scss\";\r\n\r\nimport {\r\n SearchConfiguration,\r\n CustomSearchSourceConfiguration,\r\n LayerSearchSourceConfiguration,\r\n LocatorSearchSourceConfiguration,\r\n SearchSourceType,\r\n SearchSourceQueryConfiguration,\r\n CoordinateSearchSourceConfiguration, SearchSourceConfiguration\r\n} from \"../../config/search-configuration\";\r\n\r\nimport EsriSearchViewModel from \"@arcgis/core/widgets/Search/SearchViewModel\";\r\nimport EsriCollection from \"@arcgis/core/core/Collection\";\r\nimport {Input, Menu, Label} from \"semantic-ui-react\";\r\nimport Autosuggest, {\r\n ChangeEvent,\r\n RenderSuggestionParams,\r\n SuggestionSelectedEventData,\r\n SuggestionsFetchRequestedParams\r\n} from \"react-autosuggest\";\r\nimport AutosuggestHighlightMatch from \"autosuggest-highlight/match\";\r\nimport AutosuggestHighlightParse from \"autosuggest-highlight/parse\";\r\nimport {SearchStation} from \"../../../search/search-station\";\r\nimport {PathUtils} from \"../../../utils/path-utils\";\r\nimport _ from \"lodash\";\r\nimport SearchSource from \"@arcgis/core/widgets/Search/SearchSource\";\r\nimport \"../../../utils/evaluate\";\r\nimport EsriGraphic from \"@arcgis/core/Graphic\";\r\nimport FeatureLayer from \"@arcgis/core/layers/FeatureLayer\";\r\nimport {\r\n FillSymbolConfiguration,\r\n PictureMarkerSymbolConfiguration,\r\n SimpleLineSymbolConfiguration\r\n} from \"../../config/symbol-configuration\";\r\n// https://github.com/Esri/arcgis-webpack-plugin/issues/88\r\nimport * as geometryEngine from \"@arcgis/core/geometry/geometryEngine\";\r\nimport * as projection from \"@arcgis/core/geometry/projection\";\r\nimport MatomoTracker from \"@datapunt/matomo-tracker-js\";\r\nimport {Icon} from \"../icon/icon\";\r\nimport * as arcade from \"@arcgis/core/arcade\";\r\nimport FeatureSet from \"@arcgis/core/rest/support/FeatureSet\";\r\nimport {FormatUtils} from \"../../../utils/format-utils\";\r\nimport {ExtentConfiguration, PointConfiguration} from \"../../config/geometry-configuration\";\r\nimport Extent from \"@arcgis/core/geometry/Extent\";\r\nimport {MapUtils} from \"../../../utils/map-utils\";\r\nimport {IAppStore, withStore} from \"../../stores/abstract-app-store\";\r\nimport SearchViewModel from \"@arcgis/core/widgets/Search/SearchViewModel\";\r\n\r\nexport interface SearchProps {\r\n config: SearchConfiguration; // widgetsSearch is also the type for configuration object\r\n onLoad?: (searchViewModel: EsriSearchViewModel) => any;\r\n tracker?: MatomoTracker | undefined;\r\n keyAppend?: string | undefined;\r\n store?: IAppStore; // this is injected by withStore\r\n}\r\ninterface featureResult {\r\n feature: __esri.Graphic;\r\n sourceIndex: number;\r\n}\r\ninterface ExtendedSearchViewModelEventHandler extends __esri.SearchViewModelSearchCompleteEventHandler {\r\n feature?: __esri.Graphic;\r\n}\r\nexport class ExtendedSearchViewModel extends SearchViewModel {\r\n constructor(properties?: __esri.SearchViewModelProperties) {\r\n super(properties);\r\n }\r\n on(name: \"suggestion-selected\" | \"result-found\" | \"result-detail-found\",\r\n eventHandler: ExtendedSearchViewModelEventHandler): IHandle;\r\n // TODO: Variante ohne den Code von interface.d.ts class SearchViewModel zu duplizieren\r\n on(name: \"search-clear\", eventHandler: __esri.SearchViewModelSearchClearEventHandler): IHandle;\r\n on(name: \"search-start\", eventHandler: __esri.SearchViewModelSearchStartEventHandler): IHandle;\r\n on(name: \"suggest-start\", eventHandler: __esri.SearchViewModelSuggestStartEventHandler): IHandle;\r\n on(name: \"search-complete\", eventHandler: __esri.SearchViewModelSearchCompleteEventHandler): IHandle;\r\n on(name: \"select-result\", eventHandler: __esri.SearchViewModelSelectResultEventHandler): IHandle;\r\n // @ts-expect-error TODO: Lösung für Error TS2391 finden\r\n on(name: \"suggest-complete\", eventHandler: __esri.SearchViewModelSuggestCompleteEventHandler): IHandle;\r\n}\r\n\r\n// When suggestion is clicked, Autosuggest needs to populate the input\r\n// based on the clicked suggestion. Teach Autosuggest how to calculate the\r\n// input value for every given suggestion.\r\n// Result is of type ESRI SuggestResult\r\n// https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchViewModel.html#SuggestResult\r\nconst getSuggestionValue = (suggestion: __esri.SuggestResult) => suggestion.text;\r\n\r\n// React 18: getSectionSuggestions is called with undefined after selecting suggestion on mobile device\r\n// https://github.com/moroshko/react-autosuggest/issues/853\r\nconst getSectionSuggestions = (section: any | undefined) => section?.suggestions? section.suggestions: [];\r\n\r\n\r\n@observer\r\nexport class SearchBase extends React.Component {\r\n autorunDisposers: any[] = [];\r\n popupEnabled: number[] = [];\r\n autoNavigate: number[] = [];\r\n suggestions: any[] = [];\r\n suggestionKeyMap: Map> = new Map();\r\n widgetKey = \"search\";\r\n config: SearchConfiguration;\r\n\r\n constructor(props: SearchProps) {\r\n super(props);\r\n this.config = _.cloneDeep(props.config);\r\n // Autosuggest is a controlled component.\r\n // This means that you need to provide an input value\r\n // and an onChange handler that updates this value (see below).\r\n // Suggestions also need to be provided to the Autosuggest,\r\n // and they are initially empty because the Autosuggest is closed.\r\n this.state = {\r\n isLoading: true,\r\n layersLoaded: 0,\r\n placeholder: \"\",\r\n viewModel: null,\r\n value: \"\",\r\n searchTerm: \"\",\r\n suggestions: [],\r\n sectionShowAll: Array(this.config.sources.length).fill(false)\r\n };\r\n if (props.keyAppend) {\r\n this.widgetKey += \"-\" + props.keyAppend;\r\n }\r\n this.handleShowAll = this.handleShowAll.bind(this);\r\n this.onChange = this.onChange.bind(this);\r\n this.onSuggestionsFetchRequested = this.onSuggestionsFetchRequested.bind(this);\r\n this.onSuggestionsClearRequested = this.onSuggestionsClearRequested.bind(this);\r\n this.onSuggestionSelected = this.onSuggestionSelected.bind(this);\r\n this.renderSectionTitle = this.renderSectionTitle.bind(this);\r\n this.renderSuggestion = this.renderSuggestion.bind(this);\r\n this.clearInputField = this.clearInputField.bind(this);\r\n }\r\n\r\n onChange(event: React.FormEvent, changeEvent: ChangeEvent): void {\r\n this.setState({\r\n value: changeEvent.newValue\r\n });\r\n }\r\n\r\n // Autosuggest will call this function every time you need to update suggestions.\r\n onSuggestionsFetchRequested(params: SuggestionsFetchRequestedParams): void {\r\n // get suggestions asynchronously\r\n this.getSuggestions(params.value);\r\n }\r\n\r\n // Autosuggest will call this function every time you need to clear suggestions.\r\n onSuggestionsClearRequested(): void {\r\n const {sectionShowAll} = this.state;\r\n sectionShowAll.fill(false);\r\n this.setState({\r\n sectionShowAll,\r\n suggestions: []\r\n });\r\n }\r\n\r\n // called when suggestion is selected by mouse or keyboard\r\n onSuggestionSelected(event: React.FormEvent, data: SuggestionSelectedEventData): void {\r\n const {viewModel, searchTerm, suggestions} = this.state;\r\n if (!viewModel) {\r\n // search not fully loaded yet\r\n return;\r\n }\r\n const {tracker, store} = this.props;\r\n if (tracker) {\r\n tracker.trackSiteSearch({\r\n keyword: searchTerm,\r\n count: suggestions.reduce((a: number, s: any)=> a + s.numResults, 0)});\r\n }\r\n const profile: __esri.Profile = {\r\n variables: [{\r\n name: \"$feature\",\r\n type: \"feature\"\r\n }]\r\n };\r\n // quick & dirty fix für EGID Suche\r\n if (data.sectionIndex && this.config.sources[data.sectionIndex].sourceType === SearchSourceType.Locator) {\r\n const sConfig = this.config.sources[data.sectionIndex] as LocatorSearchSourceConfiguration;\r\n if (sConfig.categories && sConfig.categories.includes(\"EGID\")){\r\n data.suggestion.text = data.suggestion.text.substring(0, data.suggestion.text.indexOf(\" \"));\r\n }\r\n }\r\n viewModel.emit(\"suggestion-selected\", {data});\r\n viewModel.search(data.suggestion).then((searchResponse: __esri.SearchResponse) => {\r\n // add graphic to map with marker\r\n searchResponse.results.forEach((result: __esri.SearchViewModelSearchResponseResults) => {\r\n const feature = result.results[0].feature;\r\n const extent = result.results[0].extent;\r\n runInAction(()=> {\r\n const sourceConfig = this.config.sources[result.sourceIndex];\r\n viewModel.emit(\"result-found\", {sourceConfig, feature});\r\n if (!store?.PopupStore.disabled) {\r\n store?.PopupStore.setVisible(false);\r\n }\r\n if (!sourceConfig.resultGraphicEnabled) {\r\n return;\r\n }\r\n let queryConfigs: SearchSourceQueryConfiguration[] = [];\r\n if (sourceConfig.queries && feature.attributes.id) {\r\n const ids = feature.attributes.id.split(\", \");\r\n ids.forEach((id: string)=>{\r\n // Version und Typ Postfix entfernen\r\n const metaid = id.replace(/_v(\\d+)(_PY|_PT|_LI|)(\\d{0,1})$/i, \"\");\r\n let queryConfig;\r\n if (sourceConfig.query?.id === metaid) {\r\n queryConfig = sourceConfig.query;\r\n } else if(sourceConfig.queries) {\r\n queryConfig = sourceConfig.queries.find((q) => q.id === metaid);\r\n }\r\n if (queryConfig) {\r\n queryConfigs.push(queryConfig);\r\n }\r\n });\r\n }\r\n if (queryConfigs.length === 0 && sourceConfig.query) {\r\n queryConfigs = [sourceConfig.query];\r\n }\r\n if (queryConfigs.length > 0) {\r\n let firstFlag = true;\r\n queryConfigs.forEach((queryConfig)=>{\r\n let searchLayer: FeatureLayer | __esri.Sublayer | undefined;\r\n if (\"sourceLayer\" in feature && (feature as any)?.sourceLayer){\r\n searchLayer = (feature as any)?.sourceLayer;\r\n } else if (sourceConfig.sourceType === SearchSourceType.Layer && queryConfig.id === \"self\"\r\n && sourceConfig.hasOwnProperty(\"layer\")) {\r\n searchLayer =\r\n (sourceConfig as LayerSearchSourceConfiguration).layer as __esri.FeatureLayer;\r\n } else if (queryConfig.portalItem){\r\n let popupTemplate;\r\n if (queryConfig.popupTemplate) {\r\n if (typeof queryConfig.popupTemplate === \"string\") {\r\n if (!store?.PopupStore.disabled) {\r\n // TODO: use from mapViewerConfig\r\n popupTemplate\r\n = store?.mapViewerConfig.getLayerTemplate(\r\n queryConfig.popupTemplate)?.template;\r\n }\r\n if (!popupTemplate) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"Kein Template für \"\r\n + queryConfig.id+(queryConfig.layerId ?\" (\"+queryConfig.layerId+\")\": \"\")\r\n + \" mit Bezeichung \" + queryConfig.popupTemplate\r\n + \" gefunden\");\r\n }\r\n } else {\r\n popupTemplate = queryConfig.popupTemplate;\r\n }\r\n }\r\n const layerConfig = {\r\n layerType: \"feature\",\r\n layerId: (queryConfig.layerId) ? queryConfig.layerId : undefined,\r\n portalItem: queryConfig.portalItem,\r\n opacity: 1,\r\n listMode: \"hide\",\r\n legendEnabled: false,\r\n popupTemplate,\r\n title: (queryConfig.title) ? queryConfig.title : undefined\r\n };\r\n searchLayer = new FeatureLayer(layerConfig as __esri.FeatureLayerProperties);\r\n }\r\n if (searchLayer) {\r\n const arcadeExecutor = arcade.createArcadeExecutor(queryConfig.expression, profile);\r\n arcadeExecutor.then((ae) => {\r\n let where = ae.execute({\r\n $feature: feature\r\n });\r\n if (typeof where === \"string\" && searchLayer) {\r\n // definitionExpression in Suche berücksichtigen, falls diese definiert ist.\r\n if (searchLayer.definitionExpression) {\r\n where = \"(\" + where + \") AND (\" + searchLayer.definitionExpression + \")\";\r\n }\r\n const query = searchLayer.createQuery();\r\n query.where = where;\r\n // outFields setzen, falls in der Konfiguration vorhanden\r\n // oder alle Felder falls Popup aktiviert\r\n if (queryConfig?.outFields?.length\r\n || (!store?.PopupStore.disabled\r\n && this.popupEnabled.includes(result.sourceIndex))) {\r\n query.outFields = (queryConfig?.outFields?.length)?\r\n queryConfig.outFields : [\"*\"];\r\n }\r\n searchLayer.queryFeatures(query)\r\n .then((response: __esri.FeatureSet) => {\r\n viewModel.emit(\"result-detail-found\",\r\n {sourceConfig, response});\r\n if(response.features.length === 0) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"Kein detail Resultat gefunden\");\r\n return;\r\n }\r\n if (this.config.resultSymbol\r\n && this.autoNavigate.includes(result.sourceIndex)) {\r\n if (firstFlag) {\r\n store?.mapStore?.view?.graphics.removeAll();\r\n }\r\n if (!store?.PopupStore.disabled\r\n && this.popupEnabled.includes(result.sourceIndex)) {\r\n let popupPoint = feature.geometry as __esri.Point;\r\n // check if point is within the result geometry\r\n if (!geometryEngine.within(popupPoint,\r\n response.features[0].geometry)) {\r\n // set buffer and get a point inside the result geometry\r\n const buffer = geometryEngine.buffer(\r\n response.features[0].geometry, -1, \"meters\" );\r\n popupPoint = geometryEngine.nearestCoordinate(\r\n buffer as __esri.Geometry, popupPoint).coordinate;\r\n }\r\n if (firstFlag) {\r\n runInAction(()=>{\r\n store?.PopupStore.setMapPoint(popupPoint);\r\n store?.PopupStore.setFeatures(\r\n response.features);\r\n });\r\n } else {\r\n store?.PopupStore.addFeatures(response.features);\r\n }\r\n } else {\r\n let highlightSymbol:\r\n FillSymbolConfiguration\r\n | PictureMarkerSymbolConfiguration\r\n | SimpleLineSymbolConfiguration;\r\n if (response.features[0].geometry.type === \"polygon\"){\r\n highlightSymbol = this.config.resultSymbol.highlight;\r\n } else if (response.features[0].geometry.type === \"polyline\"){\r\n highlightSymbol = this.config.resultSymbol.line;\r\n } else {\r\n highlightSymbol = this.config.resultSymbol.pointer;\r\n }\r\n const geometries: __esri.Geometry[] = [];\r\n response.features.forEach((item) => {\r\n geometries.push(item.geometry);\r\n });\r\n if (response.features[0].geometry.type === \"polyline\") {\r\n store?.mapStore?.view?.graphics.push(\r\n new EsriGraphic({\r\n geometry: geometryEngine.union(geometries),\r\n symbol: highlightSymbol\r\n })\r\n );\r\n } else {\r\n response.features.forEach((item) => {\r\n store?.mapStore?.view?.graphics.push(\r\n new EsriGraphic({\r\n geometry: item.geometry,\r\n symbol: highlightSymbol\r\n })\r\n );\r\n });\r\n }\r\n if (response.features.length > 1\r\n || this.autoNavigate.includes(result.sourceIndex)) {\r\n viewModel.clear();\r\n if(store?.mapStore?.view) {\r\n store.mapStore.view.goTo(\r\n MapUtils.calculateMinExtent(geometries)\r\n ).catch((error) => {\r\n if (error.name !== \"view:goto-interrupted\") {\r\n // eslint-disable-next-line no-console\r\n console.error(error);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n firstFlag = false;\r\n }\r\n });\r\n }\r\n });\r\n }\r\n });\r\n } else {\r\n if (this.config.resultSymbol) {\r\n const highlightSymbol = this.config.resultSymbol.pointer;\r\n store?.mapStore?.view?.graphics.push(\r\n new EsriGraphic({\r\n geometry: feature.geometry,\r\n symbol: highlightSymbol\r\n })\r\n );\r\n if(store?.mapStore?.view) {\r\n store.mapStore.view.goTo(MapUtils.calculateMinExtent(extent)).catch((error) => {\r\n if (error.name !== \"view:goto-interrupted\") {\r\n // eslint-disable-next-line no-console\r\n console.error(error);\r\n }\r\n });\r\n }\r\n }\r\n }\r\n });\r\n /* const symbol = result.source.resultSymbol;\r\n const feature = response.results[0].results[0].feature;\r\n feature.symbol = symbol;\r\n geometries.push(feature.geometry);\r\n view.add(feature);*/\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Register, that a layer has to be loaded\r\n */\r\n registerLayerLoading(): void {\r\n this.setState((state: any) => ({ layersLoaded: state.layersLoaded - 1 }));\r\n }\r\n\r\n /**\r\n * Mark a layer as loaded\r\n */\r\n layerLoaded(): void {\r\n this.setState((state: any) => ({ layersLoaded: state.layersLoaded + 1 }));\r\n }\r\n handleShowAll(e: React.MouseEvent, sourceIndex: number): void {\r\n const {sectionShowAll, suggestions} = this.state;\r\n const index = this.suggestions.findIndex((item) => item.sourceIndex === sourceIndex);\r\n // clone wird benötigt, da sonst Autosuggest die Resultate nicht neu rendert\r\n let newSuggestions = _.cloneDeep(suggestions);\r\n const oldValue = sectionShowAll[sourceIndex];\r\n sectionShowAll.fill(false);\r\n // falls vorher nicht alle Resultate gelistet werden, alle anzeigen\r\n if (!oldValue) {\r\n sectionShowAll[sourceIndex] = true;\r\n newSuggestions[index].suggestions = this.suggestions[index].suggestions;\r\n }\r\n // limitieren der Resultate\r\n newSuggestions = newSuggestions.map((section: any) => {\r\n const sourceConfig = this.config.sources[section.sourceIndex];\r\n if ((sourceIndex !== section.sourceIndex || oldValue)\r\n && sourceConfig.maxResults\r\n && section.suggestions.length > sourceConfig.maxResults) {\r\n section.suggestions.length = sourceConfig.maxResults;\r\n }\r\n return section;\r\n });\r\n this.setState({sectionShowAll, suggestions: newSuggestions});\r\n e.preventDefault();\r\n }\r\n renderSectionTitle(section: any): React.ReactElement | null {\r\n const {sectionShowAll} = this.state;\r\n // hide title if no suggestion for the section is available\r\n if (section.suggestions.length === 0) {\r\n return null;\r\n }\r\n const sourceConfig = this.config.sources[section.sourceIndex];\r\n let matches = section.numResults;\r\n let addClass = \"\";\r\n if (typeof sourceConfig.maxSuggestions === \"number\") {\r\n if(section.numResults >= sourceConfig.maxSuggestions) {\r\n matches = \"> \" + (section.numResults -1);\r\n addClass += \" hasmore\";\r\n }\r\n }\r\n if (typeof sourceConfig.maxResults !== \"number\") {\r\n sourceConfig.maxResults = 8;\r\n }\r\n if(section.numResults > sourceConfig.maxResults) {\r\n addClass += \" handle-showall\";\r\n if (sectionShowAll[section.sourceIndex]) {\r\n addClass += \" showall\";\r\n }\r\n }\r\n return (\r\n {\r\n this.handleShowAll(event, section.sourceIndex);\r\n }}\r\n className={addClass}>\r\n {section.title}\r\n {(section.numResults > sourceConfig.maxResults)? <>\r\n \r\n \r\n : \"\"}\r\n \r\n );\r\n }\r\n renderSuggestion(suggestion: __esri.SuggestResult, params: RenderSuggestionParams): React.ReactElement {\r\n const suggestionText = suggestion.text;\r\n const matches = AutosuggestHighlightMatch(suggestionText, params.query);\r\n const parts = AutosuggestHighlightParse(suggestionText, matches);\r\n return (\r\n \r\n \r\n {\r\n parts.map((part, index) => (\r\n {part.text}\r\n ))\r\n }\r\n \r\n \r\n );\r\n };\r\n clearInputField(): void {\r\n this.setState({value: \"\"});\r\n }\r\n render(): React.ReactElement {\r\n const { value, suggestions, isLoading, placeholder } = this.state;\r\n let searchField;\r\n if (isLoading) {\r\n // show disabled placeholder field\r\n searchField = ;\r\n } else {\r\n // Autosuggest will pass through all these props to the input.\r\n const inputProps = {\r\n placeholder,\r\n value,\r\n onChange: this.onChange,\r\n };\r\n searchField =
\r\n \r\n \r\n \r\n
;\r\n }\r\n\r\n return (\r\n \r\n {searchField}\r\n \r\n );\r\n }\r\n\r\n loadSearch(): Promise {\r\n const {config, store} = this.props;\r\n const {layersLoaded} = this.state;\r\n\r\n return new Promise((resolve, reject) => {\r\n try {\r\n // rerun until map view is ready and search view model is loaded\r\n this.autorunDisposers.push(autorun((reaction: any) => {\r\n if (!store?.mapStore.view ||\r\n (config?.waitForTocReady && !store?.mapStore.tocReady)) {\r\n return;\r\n }\r\n\r\n const sourcesWithLayers = config.sources.filter((s: SearchSourceConfiguration) =>\r\n s.sourceType === SearchSourceType.Layer ||\r\n (s.sourceType === SearchSourceType.Custom && (s as any).layerId));\r\n if (sourcesWithLayers.length) {\r\n // wait for layers to load\r\n const allLayersLoaded = sourcesWithLayers.every((s: SearchSourceConfiguration) =>\r\n store?.mapStore.layers.get((s as any).layerId));\r\n if (!allLayersLoaded) {\r\n return;\r\n }\r\n }\r\n const searchViewModel =\r\n this.loadViewModel(config, store, !!store?.mapStore.tocReady,\r\n layersLoaded);\r\n if (searchViewModel) {\r\n reaction.dispose(); // stop autorun\r\n resolve({ viewModel: searchViewModel });\r\n }\r\n }));\r\n } catch (err) {\r\n reject(err);\r\n }\r\n });\r\n }\r\n\r\n loadViewModel(searchConfig: SearchConfiguration,\r\n store: IAppStore,\r\n tocReady: boolean,\r\n layersLoaded: number): SearchViewModel | null {\r\n if (!store || (!tocReady && searchConfig?.waitForTocReady)) {\r\n return null;\r\n }\r\n\r\n const sources = this.initializeSources(store);\r\n if (!sources || layersLoaded < 0) {\r\n return null;\r\n }\r\n const config = searchConfig as __esri.widgetsSearchProperties;\r\n const props = {\r\n view: store.mapStore.view,\r\n sources,\r\n container: \"search-input\",\r\n ...config\r\n };\r\n return new SearchViewModel(props);\r\n }\r\n\r\n /**\r\n * Initialize search sources\r\n */\r\n initializeSources(store?: IAppStore):\r\n __esri.Collection<__esri.LayerSearchSource | __esri.LocatorSearchSource | __esri.SearchSource> | null {\r\n if (!this.config.sources || !store) {\r\n return new EsriCollection();\r\n }\r\n\r\n if (!Array.isArray(this.config.sources)) {\r\n throw new Error(\"Error in search configuration. 'sources' is not an array.\");\r\n }\r\n\r\n const sources = new EsriCollection();\r\n let sourceIndex = 0;\r\n this.popupEnabled.length = 0;\r\n this.autoNavigate.length = 0;\r\n for (const source of this.config.sources) {\r\n if (source.popupEnabled) {\r\n // suppress Esri Popup\r\n this.popupEnabled.push(sourceIndex);\r\n source.popupEnabled = false;\r\n }\r\n if (!source.hasOwnProperty(\"autoNavigate\") || source.autoNavigate) {\r\n this.autoNavigate.push(sourceIndex);\r\n // Falls autoNavigate auf \"true\" gesetzt ist, wird diese erst nach der Geometrie-Rückgabe ausgelöst.\r\n if (source.autoNavigate) {\r\n source.autoNavigate = false;\r\n }\r\n }\r\n source.maxSuggestions = (typeof source.maxSuggestions === \"number\")? source.maxSuggestions + 1: 9;\r\n if (this.config.resultSymbol?.pointer) {\r\n source.resultSymbol = this.config.resultSymbol.pointer;\r\n }\r\n if (source.sourceType === SearchSourceType.Locator) {\r\n sources.add(source);\r\n } else if (source.sourceType === SearchSourceType.Layer) {\r\n const layerSource = this.initializeLayerSource(source as LayerSearchSourceConfiguration, store);\r\n if (layerSource) {\r\n sources.add(layerSource);\r\n }\r\n }else if (source.sourceType === SearchSourceType.Custom) {\r\n const customSource = this.initializeCustomSource(source as CustomSearchSourceConfiguration, store);\r\n if (customSource) {\r\n sources.add(customSource);\r\n }\r\n }else if (source.sourceType === SearchSourceType.Coordinate) {\r\n const customSource = this.initializeCoordinateSource(source as CoordinateSearchSourceConfiguration);\r\n if (customSource) {\r\n sources.add(customSource);\r\n }\r\n }\r\n sourceIndex++;\r\n }\r\n return sources;\r\n }\r\n componentDidMount(): void {\r\n const {onLoad, store} = this.props;\r\n if (store?.uiStore.widgets.has(this.widgetKey)) {\r\n return;\r\n }\r\n store?.SearchStore.setViewReady(this.widgetKey, false);\r\n this.loadSearch().then((result: any) => {\r\n const viewModel = result.viewModel;\r\n this.setState({\r\n isLoading: false,\r\n placeholder: viewModel.placeholder,\r\n viewModel\r\n });\r\n runInAction(()=> {\r\n store?.uiStore.addWidget(this.widgetKey, this);\r\n store?.SearchStore.setViewReady(this.widgetKey, true);\r\n store?.SearchStore.setViewModel(this.widgetKey, viewModel);\r\n });\r\n this.autorunDisposers.push(autorun(\r\n () => {\r\n if ( !store) {\r\n return;\r\n }\r\n this.config = _.cloneDeep(store?.appConfig.search) as SearchConfiguration;\r\n viewModel.sources = this.initializeSources(store);\r\n this.setState({\r\n placeholder: store?.appConfig.search.allPlaceholder,\r\n viewModel\r\n });\r\n }\r\n ));\r\n if (onLoad) {\r\n // call the hook\r\n onLoad(viewModel);\r\n }\r\n });\r\n }\r\n // componentDidUpdate() {\r\n // // sync the observable from props\r\n // this.mapStore = this.props.store?.mapStore;\r\n // }\r\n componentWillUnmount(): void {\r\n const {store} = this.props;\r\n this.autorunDisposers.forEach((disposer: any) => {\r\n disposer();\r\n });\r\n this.autorunDisposers.length = 0;\r\n store?.uiStore.removeWidget(this.widgetKey);\r\n store?.SearchStore.setViewReady(this.widgetKey, false);\r\n }\r\n\r\n /**\r\n * Pass suggestions from autosuggest to search view model\r\n *\r\n * @param value\r\n */\r\n getSuggestions(value: string): void {\r\n const {viewModel, sectionShowAll} = this.state;\r\n if (!viewModel) {\r\n // search not fully loaded yet\r\n return;\r\n }\r\n const inputValue = value.trim().toLowerCase();\r\n const inputLength = inputValue.length;\r\n\r\n if (inputLength === 0) {\r\n return;\r\n }\r\n viewModel.suggest(inputValue).then((response: __esri.SuggestResponse) => {\r\n // TODO auf autosuggest sections verteilen\r\n // Siehe https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchViewModel.html#SearchResponse\r\n // TODO: eventuell muss suggestions noch gefiltert werden, wenn asynchrone resultate eintreffen, damit\r\n // nur die treffer mit mind. der Länge des eingegegbenen Worts angezeigt werden\r\n // z.B. .filter((sug:any) => sug.text.toLowerCase().slice(0, inputLength) === inputValue )\r\n // TODO: response.errors auswerten und darstellen\r\n let sections = response.results.map((result: __esri.SuggestResponseResults) => ({\r\n title: result.source.name,\r\n numResults: result.results.length,\r\n suggestions: result.results,\r\n sourceIndex: result.sourceIndex\r\n }));\r\n // leere Seketionen rausfiltern\r\n sections = sections.filter((section: any) => section.numResults > 0);\r\n this.suggestions = _.cloneDeep(sections); // clone aller Resultate\r\n // limitieren der dargestellten Resultate\r\n sections = sections.map((section: any) => {\r\n const sourceConfig = this.config.sources[section.sourceIndex];\r\n if (!sectionShowAll[section.sourceIndex]\r\n && sourceConfig.maxResults\r\n && section.suggestions.length > sourceConfig.maxResults) {\r\n section.suggestions.length = sourceConfig.maxResults;\r\n }\r\n return section;\r\n });\r\n this.setState({\r\n searchTerm: response.searchTerm,\r\n suggestions: sections\r\n });\r\n });\r\n }\r\n\r\n private initializeLayerSource(source: LayerSearchSourceConfiguration, store: IAppStore) {\r\n if (!source || (!source.layerId && !source.metauid && !source.layer)) {\r\n return null;\r\n }\r\n let layer: any;\r\n if(source.layerId && !source.metauid) {\r\n layer = store.mapStore?.layers.get(source.layerId) as __esri.FeatureLayer;\r\n if(!layer) {\r\n layer = store.mapStore?.groupLayers.get(source.layerId) as __esri.FeatureLayer;\r\n }\r\n }\r\n if (!layer && source.metauid && store.mapStore?.map?.allLayers) {\r\n layer = store.mapStore?.map?.allLayers.flatten((subL: __esri.Layer) =>\r\n (subL as __esri.MapImageLayer)?.allSublayers as unknown as __esri.Collection<__esri.Layer>)\r\n .find((l: __esri.Layer) => {\r\n let metaId = (l as any).metauid;\r\n let layerId: number | null = null;\r\n if (!metaId){\r\n const url = PathUtils.getLayerPath(l);\r\n if (typeof url === \"string\") {\r\n metaId = PathUtils.getMetaId(url);\r\n layerId = PathUtils.getLayerId(url);\r\n }\r\n }\r\n if (metaId) {\r\n if(source.metauid === metaId &&\r\n (!source.hasOwnProperty(\"layerId\") || layerId === parseInt(source.layerId, 10))) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n });\r\n }\r\n if (!layer && source.layer) {\r\n layer = new FeatureLayer(source.layer as __esri.FeatureLayerProperties);\r\n }\r\n if (layer) {\r\n source.layer = layer as FeatureLayer;\r\n if (((layer.sublayers || source.returnDistinctValues || source.exactMatch === false)\r\n && source.searchFields) || source.customQuery) {\r\n if(typeof source.searchLayers === \"undefined\"){\r\n source.searchLayers = [];\r\n }\r\n if (layer.children) {\r\n // Sicherstellen das der Layer geladen wurde\r\n layer.load().then(()=>{\r\n const mapImageLayer = layer.parent as __esri.MapImageLayer;\r\n layer.children.forEach((layerId: number)=> {\r\n // Sublayer laden, damit \"fields\" vorhanden ist\r\n mapImageLayer.findSublayerById(layerId).load()\r\n .then((fl) => {\r\n if(typeof source.searchLayers === \"undefined\"){\r\n source.searchLayers = [];\r\n }\r\n source.searchLayers.push(fl);\r\n });\r\n\r\n });\r\n });\r\n\r\n } else if (layer.sublayers) {\r\n source.searchLayers = layer.sublayers.toArray();\r\n } else if (layer.type === \"group\") {\r\n source.searchLayers = layer.layers.toArray();\r\n } else {\r\n source.searchLayers.push(layer as FeatureLayer);\r\n }\r\n source.getSuggestions = async (params) => {\r\n const queryPromises: Array> = [];\r\n const resultFeatures: featureResult[] = [];\r\n if(typeof source.searchLayers === \"undefined\"){\r\n source.searchLayers = [];\r\n }\r\n const profile: __esri.Profile = {\r\n variables: [{\r\n name: \"$feature\",\r\n type: \"feature\"\r\n }]\r\n };\r\n source.searchLayers.forEach((sLayer, index)=>{\r\n queryPromises.push(new Promise((resolve) => {\r\n if(sLayer) {\r\n const query = (sLayer as FeatureLayer).createQuery();\r\n const whereArray: string[] = [];\r\n if (source.customQuery) {\r\n if (source.customNumericQuery && !isNaN(params.suggestTerm)) {\r\n const num = parseInt(params.suggestTerm, 10);\r\n whereArray.push(source.customNumericQuery.replaceAll(\r\n \"{}\", num.toString()));\r\n } else {\r\n whereArray.push(source.customQuery.replaceAll(\r\n \"{}\",FormatUtils.encodeForSQL(params.suggestTerm.toUpperCase())));\r\n }\r\n } else {\r\n source.searchFields?.forEach((fieldName) => {\r\n const field = (sLayer as FeatureLayer).getField(fieldName);\r\n if (field) {\r\n if (fieldName === \"OBJECTID\"\r\n || field.type === \"integer\" || field.type === \"double\"\r\n || field.type === \"small-integer\") {\r\n if (!isNaN(params.suggestTerm)) {\r\n // Nummer startet mit Sucheingabe, falls exactMatch definiert und\r\n // auf false\r\n if (source.exactMatch === false) {\r\n whereArray.push(\"CAST(\" + fieldName + \" AS VARCHAR(20)) LIKE '\"\r\n + parseInt(params.suggestTerm, 10) + \"%'\");\r\n } else {\r\n whereArray.push(fieldName + \" = \"\r\n + parseInt(params.suggestTerm, 10));\r\n }\r\n }\r\n } else {\r\n let wClase = \"UPPER(\" + fieldName + \") LIKE '%\"\r\n + FormatUtils.encodeForSQLLike(params.suggestTerm.toUpperCase())\r\n + \"%'\";\r\n if (wClase.indexOf(\"\\\\\") > 0) {\r\n wClase += \" ESCAPE '\\\\'\";\r\n }\r\n whereArray.push(wClase);\r\n }\r\n }\r\n });\r\n }\r\n if (whereArray.length === 0) {\r\n resolve(new FeatureSet());\r\n return;\r\n }\r\n if (source.filter?.where) {\r\n query.where = \"(\" + whereArray.join(\" OR \")+\") AND (\"+source.filter.where+\")\";\r\n } else {\r\n query.where = whereArray.join(\" OR \");\r\n }\r\n if (source.orderByFields) {\r\n query.orderByFields = source.orderByFields;\r\n }\r\n query.outFields = (source.outFields?.length)? source.outFields: [\"*\"];\r\n query.returnDistinctValues = !!source.returnDistinctValues;\r\n query.num = source.maxSuggestions? source.maxSuggestions: 99;\r\n query.returnGeometry = false;\r\n sLayer.queryFeatures(query).then((response: __esri.FeatureSet) => {\r\n if (response.features.length > 0) {\r\n response.features.forEach((feature)=>{\r\n resultFeatures.push({feature, sourceIndex: index});\r\n });\r\n }\r\n resolve(response);\r\n });\r\n }\r\n }));\r\n });\r\n return Promise.all(queryPromises).then(async () => {\r\n if (resultFeatures.length === 0) {\r\n return [];\r\n }\r\n if (!this.suggestionKeyMap.has(params.sourceIndex)) {\r\n this.suggestionKeyMap.set(params.sourceIndex, new Map());\r\n } else {\r\n this.suggestionKeyMap.get(params.sourceIndex)?.clear();\r\n }\r\n let features: any = [];\r\n resultFeatures.forEach((r)=>{\r\n features.push({...r.feature.attributes, feature: r.feature, layerIndex: r.sourceIndex});\r\n });\r\n if (source.orderByFields) {\r\n const orderby: string[] = [];\r\n const orders: Array<\"asc\" | \"desc\"> = [];\r\n source.orderByFields.forEach((o) => {\r\n // nach Sortierrichtung suchen\r\n const arr = o.split(\" \");\r\n orderby.push(arr[0]);\r\n orders.push((arr[1] && arr[1].toLowerCase()===\"desc\")? \"desc\": \"asc\");\r\n });\r\n features = _.orderBy(features, orderby, orders);\r\n }\r\n features = features.slice(0,source.maxSuggestions? source.maxSuggestions: 99);\r\n return await Promise.all(features.map(async (resultFeature: any) => {\r\n const feature = resultFeature.feature;\r\n let suggestionPromise: Promise;\r\n let text = \"\";\r\n if (source.suggestionTemplate) {\r\n if(source.suggestionTemplate?.indexOf(\"`\")>-1){\r\n suggestionPromise = new Promise((resolve) => {\r\n const arcadeExecutor = arcade.createArcadeExecutor(\r\n source.suggestionTemplate || \"\", profile);\r\n arcadeExecutor.then((ae) => {\r\n text = ae.execute({\r\n $feature: feature\r\n });\r\n resolve(text? text: \"\");\r\n });\r\n });\r\n }else{\r\n const outFields = (source.outFields?.length)? source.outFields: [\"*\"];\r\n text = source.suggestionTemplate;\r\n outFields.forEach((fieldName: string) => {\r\n const fieldVal = (feature.attributes[fieldName] === null)?\r\n \"\": feature.attributes[fieldName];\r\n text = text.replace(\"{\" + fieldName + \"}\", fieldVal);\r\n });\r\n suggestionPromise = new Promise((resolve) => {\r\n resolve(text);\r\n });\r\n }\r\n } else if (source.displayField) {\r\n text += feature.attributes[source.displayField];\r\n suggestionPromise = new Promise((resolve) => {\r\n resolve(text);\r\n });\r\n }else{\r\n suggestionPromise = new Promise((resolve) => {\r\n resolve(text);\r\n });\r\n }\r\n const keyArray: string[] = [];\r\n source.outFields?.forEach((fieldName) => {\r\n const searchLayer = source.searchLayers?\r\n (source.searchLayers[resultFeature.layerIndex] as FeatureLayer): null;\r\n const field = (searchLayer as FeatureLayer).getField(fieldName);\r\n if (feature.attributes[fieldName] !== undefined) {\r\n if (feature.attributes[fieldName] === null) {\r\n keyArray.push(\"\" + fieldName + \" IS NULL\");\r\n } else if (field && (fieldName===\"OBJECTID\"\r\n || field.type === \"integer\" || field.type === \"double\"\r\n || field.type === \"small-integer\")) {\r\n if (!isNaN(feature.attributes[fieldName])) {\r\n keyArray.push(fieldName + \" = \"\r\n + parseInt(feature.attributes[fieldName], 10));\r\n }\r\n } else {\r\n const wClase = \"\" + fieldName + \" = '\"\r\n + FormatUtils.encodeForSQL(feature.attributes[fieldName]) + \"'\";\r\n keyArray.push(wClase);\r\n }\r\n }\r\n });\r\n const key = Math.random().toString(36).substring(2); // Einfacher Zufallsschlüssel\r\n this.suggestionKeyMap.get(params.sourceIndex)?.set(key, [\r\n resultFeature.layerIndex.toString(),\r\n keyArray.join(\" AND \")]);\r\n return await suggestionPromise.then((t)=>({\r\n text: t,\r\n key,\r\n sourceIndex: params.sourceIndex\r\n }));\r\n }));\r\n });\r\n };\r\n source.getResults = (params) => {\r\n const where = this.suggestionKeyMap.get(params.sourceIndex)?.get(params.suggestResult.key);\r\n if (!where) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"Key nicht gefunden\");\r\n return new Promise((resolve) => resolve([]));\r\n }\r\n const searchLayer = source.searchLayers?\r\n (source.searchLayers[parseInt(where[0], 10)] as FeatureLayer): null;\r\n if(!searchLayer){\r\n // eslint-disable-next-line no-console\r\n console.warn(\"Layer in getResults nicht gefunden\");\r\n return new Promise((resolve) => resolve([]));\r\n }\r\n const query = searchLayer.createQuery();\r\n query.where = where[1];\r\n\r\n if (source.orderByFields) {\r\n query.orderByFields = source.orderByFields;\r\n }\r\n query.outFields = (source.outFields?.length)? source.outFields: [\"*\"];\r\n query.num = source.maxResults? source.maxResults: 99;\r\n return searchLayer.queryFeatures(query).then((response) =>\r\n // Return results\r\n response.features.map((feature) => {\r\n let text = \"\";\r\n if (source.suggestionTemplate) {\r\n text = source.suggestionTemplate;\r\n query.outFields.forEach((fieldName: string) => {\r\n const fieldVal = (feature.attributes[fieldName] === null)?\r\n \"\": feature.attributes[fieldName];\r\n text = text.replace(\"{\" + fieldName + \"}\", fieldVal);\r\n });\r\n } else if (source.displayField) {\r\n text += feature.attributes[source.displayField];\r\n }\r\n let extent = feature.geometry.extent;\r\n // Extent mit mindestens 100x100 Meter sicherstellen\r\n if (!extent) {\r\n const buffer = geometryEngine.buffer(feature.geometry, 50, \"meters\");\r\n if(Array.isArray(buffer)) {\r\n extent = buffer[0].extent;\r\n } else if (buffer.extent) {\r\n extent = buffer.extent;\r\n }\r\n }else if(extent.width < 100 || extent.height < 100) {\r\n if(extent.width < 100){\r\n const xPadding = Math.ceil((100 - extent.width)/2);\r\n extent.xmin-=xPadding;\r\n extent.xmax+=xPadding;\r\n }\r\n if(extent.height < 100){\r\n const yPadding = Math.ceil((100 - extent.height)/2);\r\n extent.ymin-=yPadding;\r\n extent.ymax+=yPadding;\r\n }\r\n }\r\n return {\r\n extent,\r\n feature,\r\n name: text,\r\n sourceIndex: params.sourceIndex,\r\n target: feature\r\n };\r\n })\r\n );\r\n };\r\n }\r\n return source;\r\n } else {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"Layer not found for LayerSearchSource\");\r\n return null;\r\n }\r\n }\r\n\r\n private initializeCustomSource(source: CustomSearchSourceConfiguration, store: IAppStore) {\r\n if (!source || !source.layerId) {\r\n return null;\r\n }\r\n const layer = store.mapStore?.layers.get(source.layerId) as __esri.FeatureLayer;\r\n if (!layer) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"Layer not found for CustomSearchSource\");\r\n }\r\n source.layer = layer;\r\n\r\n // TODO define the class to use for custom search in configuration file\r\n const stationSearch = new SearchStation(source);\r\n return new SearchSource(stationSearch);\r\n }\r\n private initializeCoordinateSource(source: CoordinateSearchSourceConfiguration) {\r\n source.getSuggestions = (params) => new Promise((resolve, reject) => {\r\n try {\r\n let coordString = params.suggestTerm;\r\n coordString = coordString.replaceAll(\"/\", \" \");\r\n coordString = coordString.replaceAll(\",\", \" \");\r\n coordString = coordString.replaceAll(/[a-z]/ig, \"\");\r\n coordString = coordString.replaceAll(/[ ]+/g, \" \");\r\n coordString = coordString.trim();\r\n const coord: number[] = [];\r\n if(params.suggestTerm.indexOf(\"°\")>=0){\r\n const parts = coordString.split(/[^\\d .]+/);\r\n if(parts.length >= 6) {\r\n coord[0]=this.convertDMSToDD(parts[0], parts[1], parts[2]);\r\n coord[1]=this.convertDMSToDD(parts[3], parts[4], parts[5]);\r\n }\r\n }else{\r\n coordString = coordString.replaceAll(/[^0-9. ]/ig,\"\");\r\n coordString = coordString.trim();\r\n const parts = coordString.split(\" \");\r\n coord[0]=parseFloat(parts[0]);\r\n coord[1]=parseFloat(parts[1]);\r\n }\r\n if(coord.length === 2) {\r\n let graphic: __esri.Graphic | undefined;\r\n if(coord[0] < 100){ // wgs84\r\n coord.sort((a: number, b: number) => a - b);\r\n if(this.checkExtent(coord[0], coord[1], source.maxExtent?.wgs84)) {\r\n graphic = new EsriGraphic({\r\n geometry: {\r\n spatialReference: {wkid: 4326},\r\n type: \"point\",\r\n longitude: coord[0], latitude: coord[1]\r\n } as PointConfiguration\r\n });\r\n }\r\n }else if(coord[0] < 1000000){ // lv03\r\n coord.sort((a: number, b: number) => b - a);\r\n if(this.checkExtent(coord[0], coord[1], source.maxExtent?.lv03)){\r\n graphic = new EsriGraphic({\r\n geometry: {\r\n spatialReference: { wkid: 21781 },\r\n type: \"point\",\r\n x: coord[0], y: coord[1]} as PointConfiguration\r\n });\r\n }\r\n }else{ // lv95\r\n coord.sort((a: number, b: number) => b - a);\r\n if(this.checkExtent(coord[0], coord[1], source.maxExtent?.lv95)){\r\n resolve([{\r\n text: new Intl.NumberFormat(\"de-CH\").format(Math.round(coord[0]))\r\n + \" / \"+ new Intl.NumberFormat(\"de-CH\").format(Math.round(coord[1])),\r\n key: coord[0]+ \"_\"+ coord[1],\r\n sourceIndex: params.sourceIndex}]);\r\n }\r\n }\r\n if(graphic){\r\n projection.load().then(()=> {\r\n if(graphic) {\r\n const projectedPoint = projection.project(graphic.geometry, {wkid: 2056});\r\n let point: __esri.Point;\r\n if (Array.isArray(projectedPoint)) {\r\n point = projectedPoint[0] as __esri.Point;\r\n } else {\r\n point = projectedPoint as __esri.Point;\r\n }\r\n coord[0] = point.x;\r\n coord[1] = point.y;\r\n resolve([{\r\n text: new Intl.NumberFormat(\"de-CH\").format(Math.round(coord[0]))\r\n + \" / \" + new Intl.NumberFormat(\"de-CH\").format(Math.round(coord[1])),\r\n key: coord[0] + \"_\" + coord[1],\r\n sourceIndex: params.sourceIndex\r\n }]);\r\n }\r\n });\r\n } else {\r\n resolve([]);\r\n }\r\n\r\n } else {\r\n resolve([]);\r\n }\r\n } catch (err) {\r\n reject(err);\r\n }\r\n });\r\n source.getResults = (params) => new Promise((resolve) => {\r\n const coord = params.suggestResult.key.split(\"_\");\r\n const x = parseInt(coord[0], 10);\r\n const y= parseInt(coord[1], 10);\r\n const graphic = new EsriGraphic({\r\n geometry: {\r\n spatialReference: { wkid: 2056 },\r\n type: \"point\",\r\n x, y} as PointConfiguration\r\n });\r\n resolve([{\r\n extent: new Extent({\r\n spatialReference: {wkid: 2056},\r\n xmax: x+100,\r\n xmin: x-100,\r\n ymax: y+100,\r\n ymin: y-100\r\n }),\r\n feature: graphic,\r\n name: params.suggestResult.text,\r\n // @ts-expect-error Bug in SDK 4.29\r\n sourceIndex: params.sourceIndex, // TODO: wird sourceIndex noch benötigt? Bug in SDK 4.29.?\r\n target: graphic\r\n }]);\r\n\r\n });\r\n return source;\r\n }\r\n // https://stackoverflow.com/questions/1140189/converting-latitude-and-longitude-to-decimal-values\r\n private convertDMSToDD(degrees: string, minutes: string, seconds: string): number {\r\n return parseFloat(degrees) + parseFloat(minutes)/60 + parseFloat(seconds)/(60*60);\r\n }\r\n private checkExtent(x: number, y: number, maxExtent?: ExtentConfiguration): boolean {\r\n if(!maxExtent) { return true; }\r\n if(!maxExtent.xmax || !maxExtent.xmin || !maxExtent.ymax || !maxExtent.ymin) { return false; }\r\n return x > maxExtent.xmin && x < maxExtent.xmax && y > maxExtent.ymin && y < maxExtent.ymax;\r\n }\r\n}\r\n\r\nexport const Search = withStore(SearchBase);\r\n","import React from \"react\";\r\nimport {autorun} from \"mobx\";\r\nimport {observer} from \"mobx-react\";\r\n\r\nimport \"./sketch.scss\";\r\n\r\nimport EsriSketch from \"@arcgis/core/widgets/Sketch\";\r\nimport EsriSketchViewModel from \"@arcgis/core/widgets/Sketch/SketchViewModel\";\r\nimport EsriGraphicsLayer from \"@arcgis/core/layers/GraphicsLayer\";\r\nimport {SketchConfiguration} from \"../../config/sketch-configuration\";\r\nimport * as reactiveUtils from \"@arcgis/core/core/reactiveUtils\";\r\nimport {IAppStore, withStore} from \"../../stores/abstract-app-store\";\r\n\r\ninterface SketchProps {\r\n config: SketchConfiguration;\r\n onLoad?: (sketchViewModel: EsriSketchViewModel) => any;\r\n store?: IAppStore; // this is injected by withStore\r\n}\r\n\r\n@observer\r\nclass SketchBase extends React.Component {\r\n watchHandles: any[] = [];\r\n autorunDisposers: any[] = [];\r\n position: string;\r\n layer: __esri.GraphicsLayer ;\r\n layerName: string;\r\n availableCreateTools = [\"point\", \"polyline\", \"polygon\", \"rectangle\", \"circle\"];\r\n disableUpdate = false;\r\n sketch: EsriSketch;\r\n store: IAppStore;\r\n\r\n constructor(props: SketchProps) {\r\n super(props);\r\n this.position = this.props.config.position || \"top-left\";\r\n this.state = {\r\n sketch: null,\r\n layer: null\r\n };\r\n if (this.props.store?.appStore) {\r\n // set default create tools\r\n this.props.store.appStore.setSketchCreateTools(\r\n this.availableCreateTools.filter((tool: string) => {\r\n const {createTools} = this.props.config.visibleElements;\r\n return typeof createTools === \"undefined\"\r\n || createTools[tool] || typeof createTools[tool] === \"undefined\";\r\n }));\r\n this.props.store.appStore.setMaxObject(this.props.config.maxObject);\r\n }\r\n this.layerName = \"sketch\";\r\n }\r\n\r\n componentDidMount(): void {\r\n const {config, store} = this.props;\r\n // rerun until map view is ready and layer list view model is loaded\r\n this.autorunDisposers.push(autorun(() => {\r\n if (!store) {\r\n return;\r\n }\r\n this.store = store;\r\n const {\r\n maxObject,\r\n mode,\r\n sketchComplete,\r\n sketchCreateTools, sketchSelectTools, graphicsCount} = store.appStore;\r\n\r\n if (!config || !store.mapStore.view) {\r\n return;\r\n }\r\n if (mode !== \"sketch\") {\r\n this.disable();\r\n this.setState({\r\n sketch: null,\r\n layer: null\r\n });\r\n } else {\r\n if(this.watchHandles.length === 0) {\r\n this.watchHandles.push(reactiveUtils.when(\r\n () => !store.mapStore.view?.updating,\r\n () => {\r\n this.layer = this.prepareSketchLayer(store.mapStore.view);\r\n if (!this.sketch) {\r\n this.sketch = this.loadSketch(store.mapStore.view, this.layer, config);\r\n if (config.symbols?.activeFill) {\r\n this.sketch.viewModel.set(\"activeFillSymbol\", config.symbols.activeFill);\r\n }\r\n if (config.symbols?.polygon) {\r\n this.sketch.viewModel.set(\"polygonSymbol\", config.symbols.polygon);\r\n }\r\n if (config.symbols?.polyline) {\r\n this.sketch.viewModel.set(\"polylineSymbol\", config.symbols.polyline);\r\n }\r\n store.uiStore.addWidget(this.layerName, this);\r\n store.mapStore.view.ui.add(this.sketch, this.position);\r\n } else {\r\n if (this.sketch.activeTool && !sketchComplete) {\r\n // Zweiter autorun durchlauf durch sketch.cancel() unterdrücken.\r\n this.disableUpdate = true;\r\n this.sketch.cancel();\r\n }\r\n }\r\n this.updateSettings(store, sketchComplete, graphicsCount, maxObject,\r\n sketchCreateTools, sketchSelectTools);\r\n this.watchHandles.push(\r\n this.sketch.viewModel.on(\"create\", (evt: __esri.SketchViewModelCreateEvent) => {\r\n if (evt.state === \"complete\") {\r\n if (!this.disableUpdate) {\r\n store.appStore.addGraphic(this.layerName, evt.graphic);\r\n }\r\n this.disableUpdate = false;\r\n }\r\n })\r\n );\r\n this.watchHandles.push(\r\n this.sketch.viewModel.on(\"update\", (evt: __esri.SketchViewModelUpdateEvent) => {\r\n if (evt.state === \"complete\") {\r\n if (!this.disableUpdate) {\r\n store.appStore.resetGraphics(this.layerName, this.layer.graphics.toArray());\r\n }\r\n this.disableUpdate = false;\r\n } else if (evt.state === \"active\") {\r\n // kann für live update der Labels verwendet werden\r\n store.appStore.updateGraphicLabel(this.layerName, evt.graphics);\r\n }\r\n })\r\n );\r\n },\r\n { initial: true, once: true }\r\n ));\r\n }else{\r\n this.updateSettings(store, sketchComplete, graphicsCount, maxObject,\r\n sketchCreateTools, sketchSelectTools)\r\n }\r\n }\r\n }));\r\n }\r\n updateSettings(store: IAppStore,\r\n sketchComplete: boolean,\r\n graphicsCount: number,\r\n maxObject: number,\r\n sketchCreateTools: string[], sketchSelectTools: string[]): void {\r\n if (sketchComplete) {\r\n this.sketch.complete();\r\n store.appStore.completeSketch(false);\r\n }\r\n if (graphicsCount < maxObject){\r\n this.setCreateTools(this.sketch, sketchCreateTools);\r\n } else {\r\n const tools: any = {};\r\n this.sketch.availableCreateTools.forEach((v: string) => {\r\n tools[v]=false;\r\n });\r\n this.sketch.visibleElements.createTools = tools;\r\n }\r\n this.setSelectionTools(this.sketch, sketchSelectTools);\r\n\r\n this.setState({\r\n sketch: this.sketch,\r\n layer: this.layer\r\n });\r\n }\r\n\r\n prepareSketchLayer(view: __esri.MapView | __esri.SceneView): __esri.GraphicsLayer {\r\n let layer = view.map.layers.find(\r\n (l: __esri.GraphicsLayer) => l.title === this.layerName) as __esri.GraphicsLayer;\r\n if (!layer) {\r\n layer = new EsriGraphicsLayer({title: this.layerName});\r\n view.map.layers.push(layer);\r\n }\r\n return layer;\r\n }\r\n\r\n disable(): void {\r\n this.watchHandles.forEach((handle: any) => {\r\n handle.remove();\r\n });\r\n this.watchHandles.length = 0;\r\n\r\n if (this.store?.mapStore.view) {\r\n this.store.mapStore.view.ui.remove(this.sketch);\r\n this.store.mapStore.view.map.remove(this.layer);\r\n const textLayer = this.store.mapStore.view.map.layers.find(\r\n (l: __esri.GraphicsLayer) => l.title === this.layerName + \"_text\") as __esri.GraphicsLayer;\r\n if (textLayer) {\r\n this.store.mapStore.view.map.remove(textLayer);\r\n }\r\n }\r\n this.store?.uiStore.removeWidget(this.layerName);\r\n delete this.sketch;\r\n delete this.layer;\r\n }\r\n\r\n componentWillUnmount(): void {\r\n this.disable();\r\n this.autorunDisposers.forEach((disposer: any) => {\r\n disposer();\r\n });\r\n this.autorunDisposers.length = 0;\r\n }\r\n\r\n loadSketch(view: __esri.MapView | __esri.SceneView,\r\n layer: __esri.GraphicsLayer, config: __esri.SketchProperties): EsriSketch {\r\n const props = {\r\n view,\r\n layer,\r\n ...config\r\n };\r\n return new EsriSketch(props);\r\n }\r\n\r\n /**\r\n * Turn on or off sketch create tool according a list of tool names.\r\n *\r\n * @param toolNames: The List of tool names.\r\n * @param sketch: The sketch widget\r\n */\r\n setCreateTools(sketch: __esri.Sketch, toolNames: string[]): void {\r\n if (toolNames.length !== 0 && sketch && sketch.visibleElements) {\r\n this.availableCreateTools.forEach((tool: string) => {\r\n if(sketch.visibleElements.createTools) {\r\n sketch.visibleElements.createTools[tool] = toolNames.includes(tool);\r\n }\r\n });\r\n }\r\n }\r\n\r\n /**\r\n * Turn on or off sketch selection tools according a list of tool names.\r\n *\r\n * @param toolNames: The List of tool names.\r\n * @param sketch: The sketch widget\r\n */\r\n setSelectionTools(sketch: __esri.Sketch, toolNames: string[]): void {\r\n if (toolNames.length !== 0 && sketch && sketch.visibleElements && sketch.visibleElements.selectionTools) {\r\n sketch.visibleElements.selectionTools[\"lasso-selection\"] = toolNames.includes(\"lasso-selection\");\r\n sketch.visibleElements.selectionTools[\"rectangle-selection\"] = toolNames.includes(\"rectangle-selection\");\r\n }\r\n }\r\n\r\n /**\r\n * Renders the sketch widget. It is only visible in sketch mode\r\n */\r\n render(): null {\r\n const { sketch } = this.state;\r\n if (sketch) {\r\n sketch.renderNow();\r\n }\r\n return null;\r\n }\r\n}\r\n\r\nexport const Sketch = withStore(SketchBase);\r\n","/*\r\nCopied and adapted from https://raw.githubusercontent.com/Esri/react-arcgis/master/src/ts/components/ArcContainer.tsx\r\n\r\nCopyright © 2017-2019 Esri\r\n\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance\r\nwith the License. You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on\r\nan \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the\r\nspecific language governing permissions and limitations under the License.\r\n\r\nA copy of the license is available in the repository's LICENSE file.\r\n*/\r\nimport * as React from \"react\";\r\n\r\nexport interface StyledContainerProps {\r\n id: string;\r\n style?: {\r\n [propName: string]: any;\r\n };\r\n}\r\n\r\nexport interface StyledContainerState {};\r\n\r\nexport class StyledContainer extends React.Component {\r\n constructor(props: StyledContainerProps) {\r\n super(props);\r\n }\r\n\r\n render(): React.ReactElement | null {\r\n return
;\r\n }\r\n\r\n shouldComponentUpdate() {\r\n return false;\r\n }\r\n}\r\n","/*\r\nCopied and adapted from https://github.com/Esri/react-arcgis/blob/master/src/ts/components/WebComposites.tsx\r\n\r\nCopyright © 2017-2019 Esri\r\n\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance\r\nwith the License. You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on\r\nan \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the\r\nspecific language governing permissions and limitations under the License.\r\n\r\nA copy of the license is available in the repository's LICENSE file.\r\nTODO: Refactor\r\n */\r\nimport * as React from \"react\";\r\nimport {observer} from \"mobx-react\";\r\n\r\nimport { BaseProps} from \"../../props\";\r\nimport { eventMap } from \"../../events\";\r\nimport {StyledContainer} from \"../styled-container/styled-container\";\r\n\r\nimport EsriElevationLayer from \"@arcgis/core/layers/ElevationLayer\";\r\nimport EsriWebMap from \"@arcgis/core/WebMap\";\r\nimport EsriMapView from \"@arcgis/core/views/MapView\";\r\nimport EsriPoint from \"@arcgis/core/geometry/Point\";\r\nimport {autorun, runInAction} from \"mobx\";\r\nimport {PathUtils} from \"../../../utils/path-utils\";\r\nimport _ from \"lodash\";\r\nimport Extent from \"@arcgis/core/geometry/Extent\";\r\nimport Viewpoint from \"@arcgis/core/Viewpoint\";\r\nimport {FormatUtils} from \"../../../utils/format-utils\";\r\nimport {IAppStore, withStore} from \"../../stores/abstract-app-store\";\r\nimport {MapState} from \"../../map-state\";\r\n\r\nexport interface MapProps extends BaseProps {\r\n mapProperties?: __esri.WebMapProperties | undefined;\r\n viewProperties: __esri.MapViewProperties;\r\n proxyUrl?: string;\r\n store?: IAppStore; // this is injected by withStore\r\n}\r\n\r\n@observer\r\nclass WebMapBase extends React.Component {\r\n watchHandles: any[] = [];\r\n autorunDisposers: any[] = [];\r\n constructor(props: MapProps) {\r\n super(props);\r\n this.state = {\r\n containerId: props.viewProperties.container ? props.viewProperties.container : \"view\"\r\n };\r\n }\r\n\r\n render(): React.ReactElement | null {\r\n const {store} = this.props;\r\n if (!store) {\r\n return null;\r\n }\r\n\r\n const centerStyle = {\r\n left: \"50%\",\r\n marginRight: \"-50%\",\r\n position: \"absolute\",\r\n top: \"50%\",\r\n transform: \"translate(-50%, -50%)\"\r\n };\r\n\r\n const mapStyle = this.props.className ?\r\n this.props.style :\r\n {\r\n height: \"100%\",\r\n position: \"absolute\",\r\n width: \"100%\",\r\n ...this.props.style\r\n };\r\n\r\n const loadElement = (\r\n this.props.loadElement ? this.props.loadElement :\r\n

Karte wird geladen...

\r\n );\r\n\r\n const failElement = (\r\n this.props.failElement ? this.props.failElement :\r\n
\r\n

Laden der Karte fehlgeschlagen.

\r\n

Bitte versuchen Sie es zu einem späteren Zeitpunkt nochmals

\r\n
\r\n );\r\n\r\n if (store.mapStore.status === \"loaded\") {\r\n if (!!this.props.childrenAsFunction) {\r\n return this.props.childrenAsFunction(store.mapStore.map, store.mapStore.view);\r\n }\r\n const childrenWithProps = React.Children.map(this.props.children, (child) => {\r\n const childEl = child as React.ReactElement;\r\n return React.cloneElement(childEl, {\r\n map: store.mapStore.map,\r\n view: store.mapStore.view\r\n }\r\n );\r\n });\r\n return (\r\n
\r\n \r\n {childrenWithProps}\r\n
\r\n );\r\n } else if (store.mapStore.status === \"loading\") {\r\n return (\r\n
\r\n \r\n
\r\n {loadElement}\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n {failElement}\r\n
\r\n
\r\n );\r\n }\r\n updateVisibleLayers(): void {\r\n const {store} = this.props;\r\n if (!store) {\r\n return;\r\n }\r\n\r\n const visibleLayers: Map = new Map();\r\n const metauids: string[] = [];\r\n store.mapStore?.map?.allLayers.flatten((subL: __esri.Layer) =>\r\n (subL as __esri.MapImageLayer).allSublayers as unknown as __esri.Collection<__esri.Layer>\r\n ).toArray().forEach((layer: __esri.Layer) => {\r\n if (layer.visible) {\r\n let metauid: string = \"\";\r\n let pathMetauid = \"\";\r\n let layerId: number | undefined;\r\n if (\"metauid\" in layer) {\r\n metauid = layer.metauid as string;\r\n // Layer aus CompareWidget ignorieren\r\n if(metauid === \"[compare]\"){\r\n return;\r\n }\r\n }\r\n if (typeof layer.id === \"number\" && layer.id >= 0) {\r\n layerId = layer.id;\r\n }\r\n const url = PathUtils.getLayerPath(layer);\r\n if (typeof url === \"string\") {\r\n pathMetauid = PathUtils.getMetaId(url);\r\n if (!metauid) {\r\n metauid = pathMetauid;\r\n }\r\n const pathLayerId = PathUtils.getLayerId(url);\r\n if (typeof pathLayerId === \"number\" && pathLayerId >= 0) {\r\n layerId = pathLayerId;\r\n }\r\n }\r\n if (pathMetauid) {\r\n let visibleLayerIds = visibleLayers.get(pathMetauid);\r\n if (!visibleLayerIds) {\r\n visibleLayerIds = [];\r\n }\r\n if (typeof layerId === \"number\" && layerId >= 0) {\r\n visibleLayerIds.push(layerId);\r\n }\r\n visibleLayers.set(pathMetauid, visibleLayerIds);\r\n }\r\n if (metauid) {\r\n if (metauids.indexOf(metauid)<0) {\r\n metauids.push(metauid);\r\n }\r\n }\r\n }\r\n });\r\n store.mapStore.setActiveLayers(visibleLayers);\r\n store.mapStore.setActiveLayerMetauids(metauids);\r\n }\r\n loadMap(mapProperties: __esri.WebMapProperties,\r\n mapStore: MapState,\r\n proxyUrl: string | undefined,\r\n viewProperties: __esri.MapViewProperties,\r\n props: MapProps): Promise {\r\n const mapData = new Promise((resolve, reject) => {\r\n try {\r\n const map: __esri.WebMap = new EsriWebMap(mapProperties);\r\n\r\n const appConfig = mapStore.appConfig;\r\n map.load()\r\n .then(() => map.basemap.load())\r\n .then(() => {\r\n // get opacity and title if set in basemap of the webmap\r\n if (map.basemap.baseLayers.length > 0) {\r\n if(typeof appConfig.basemapGallery.opacity !== \"undefined\"\r\n && appConfig.basemapGallery.opacity !== null){\r\n mapStore.setBasemapOpacity(Math.round(appConfig.basemapGallery.opacity * 100));\r\n }else{\r\n const minOpacity = map.basemap.baseLayers.reduce((o, l) => Math.min(o, l.opacity), 1);\r\n mapStore.setBasemapOpacity(Math.round(minOpacity * 100));\r\n }\r\n if(typeof appConfig.basemapGallery.default !== \"undefined\"\r\n && appConfig.basemapGallery.default !== null){\r\n mapStore.setDefaultBasemapTitle(appConfig.basemapGallery.default);\r\n if(FormatUtils.formatTitle(map.basemap.title)\r\n !== FormatUtils.formatTitle(appConfig.basemapGallery.default)){\r\n mapStore.setBasemap(\"\", appConfig.basemapGallery.default);\r\n }\r\n }else{\r\n mapStore.setDefaultBasemapTitle(map.basemap.title);\r\n map.basemap.thumbnailUrl\r\n = (proxyUrl)? `${proxyUrl}?${map.thumbnailUrl}`: map.thumbnailUrl;\r\n }\r\n }\r\n const allLayers = map.allLayers;\r\n\r\n const promises = allLayers.map((layer) => layer.load());\r\n return Promise.all(promises.toArray());\r\n })\r\n .then(() => {\r\n const viewProps = {\r\n container: this.state.containerId,\r\n map,\r\n ...viewProperties\r\n };\r\n if(viewProps?.zoom===null){\r\n delete viewProps.zoom;\r\n }\r\n if(viewProps?.scale===null){\r\n delete viewProps.scale;\r\n }\r\n const view = new EsriMapView(viewProps);\r\n // Set view events to any user defined callbacks\r\n Object.keys(eventMap).forEach((key) => {\r\n if (props[key as keyof MapProps]) {\r\n view.on(eventMap[key], props[key as keyof MapProps]);\r\n }\r\n });\r\n if (appConfig.elevationLayers && appConfig.elevationLayers.length > 0) {\r\n appConfig.elevationLayers.forEach((eProps) => {\r\n const elevation =\r\n new EsriElevationLayer(eProps as __esri.ElevationLayerProperties);\r\n elevation.load().then(() => view.map.ground.layers.add(elevation));\r\n });\r\n }\r\n resolve({ map, view });\r\n }).catch((err) => {\r\n reject(err);\r\n });\r\n } catch (err) {\r\n reject(err);\r\n }\r\n });\r\n return mapData;\r\n }\r\n\r\n componentDidMount(): void {\r\n const {proxyUrl, onLoad, viewProperties, store} = this.props;\r\n const props = this.props;\r\n if (!store) {\r\n return;\r\n }\r\n\r\n store.mapStore.setStatus(\"loading\");\r\n this.autorunDisposers.push(autorun((reaction: any) => {\r\n const mapProperties = store.mapStore.webMap;\r\n if (!mapProperties) {\r\n return;\r\n }\r\n // load the map after the component was mounted\r\n this.loadMap(mapProperties as __esri.WebMapProperties, store.mapStore, proxyUrl, viewProperties, props)\r\n .then(\r\n ({ map, view }) => {\r\n const preparedLayers: string[] = [];\r\n map.allLayers.watch(\"length\",\r\n (newValue: number, oldValue: number, propertyName: string,\r\n target: __esri.Collection<__esri.Layer>) => {\r\n this.updateVisibleLayers();\r\n target.flatten((layer: __esri.Layer) => (layer as __esri.MapImageLayer)\r\n .allSublayers as unknown as __esri.Collection<__esri.Layer>\r\n ).forEach((layer) => {\r\n if (preparedLayers.indexOf((layer as any).uid) === -1) {\r\n preparedLayers.push((layer as any).uid);\r\n layer.watch(\"visible\", () => {\r\n this.updateVisibleLayers();\r\n });\r\n }\r\n });\r\n });\r\n view.when(()=>{\r\n this.goTo(undefined, view);\r\n });\r\n runInAction(() => {\r\n store.mapStore.setMap(map);\r\n store.mapStore.setView(view);\r\n store.mapStore.setStatus(\"loaded\");\r\n });\r\n if (onLoad) {\r\n onLoad(map, view);\r\n }\r\n })\r\n .catch((e) => {\r\n runInAction(() => {\r\n store.mapStore.setStatus(\"error\");\r\n });\r\n throw e;\r\n });\r\n reaction.dispose();\r\n }));\r\n }\r\n componentDidUpdate(prevProps: Readonly): void {\r\n const {viewProperties, store} = this.props;\r\n if (!store) {\r\n return;\r\n }\r\n\r\n if(prevProps.viewProperties.zoom !== viewProperties.zoom\r\n || prevProps.viewProperties.scale !== viewProperties.scale\r\n || !_.isEqual(prevProps.viewProperties.center, viewProperties.center)\r\n || !_.isEqual(prevProps.viewProperties.extent, viewProperties.extent)\r\n || !_.isEqual(prevProps.viewProperties.viewpoint, viewProperties.viewpoint)\r\n || !_.isEqual(prevProps.viewProperties.constraints, viewProperties.constraints)){\r\n if(store.mapStore.view) {\r\n const scale = viewProperties.scale as number;\r\n const zoom = viewProperties.zoom as number;\r\n if(scale > 0) {\r\n store.mapStore.view.scale = scale;\r\n }else if(zoom > 0) {\r\n store.mapStore.view.zoom = zoom;\r\n }\r\n this.goTo(prevProps);\r\n if(!_.isEqual(prevProps.viewProperties.constraints, viewProperties.constraints)){\r\n if(viewProperties.constraints){\r\n store.mapStore.view.constraints = viewProperties.constraints;\r\n }else{\r\n // TODO: Es ist nicht klar, ob dies funktioniert\r\n store.mapStore.view.constraints = {};\r\n }\r\n }\r\n }\r\n }\r\n }\r\n goTo(prevProps?: Readonly, view?: __esri.MapView | __esri.SceneView): void {\r\n const {viewProperties, store} = this.props;\r\n if(typeof view === \"undefined\"){\r\n view = store?.mapStore.view;\r\n }\r\n let target: EsriPoint | Extent | Viewpoint | null = null;\r\n if(viewProperties.center\r\n && (!prevProps || !_.isEqual(prevProps.viewProperties.center, viewProperties.center))) {\r\n target = new Viewpoint({\r\n scale: viewProperties.scale,\r\n targetGeometry: new EsriPoint(viewProperties.center as __esri.PointProperties)\r\n });\r\n }else if(viewProperties.extent\r\n && (!prevProps || !_.isEqual(prevProps.viewProperties.extent, viewProperties.extent))) {\r\n target = new Extent(viewProperties.extent as __esri.ExtentProperties);\r\n }else if(viewProperties.viewpoint\r\n && (!prevProps || !_.isEqual(prevProps.viewProperties.viewpoint, viewProperties.viewpoint))) {\r\n target=new Viewpoint(viewProperties.viewpoint as __esri.ViewpointProperties);\r\n }\r\n if(target && view){\r\n view.goTo(target, {animate: false}).catch((error) => {\r\n if (error.name !== \"view:goto-interrupted\") {\r\n if(error instanceof TypeError && error.message===\"this.animationManager is undefined\"){\r\n // Neuer Versuch, falls der animationManager noch nicht bereit ist\r\n setTimeout(() => {\r\n this.goTo(prevProps, view);\r\n },100);\r\n }else{\r\n // eslint-disable-next-line no-console\r\n console.error(error);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n componentWillUnmount(): void {\r\n const {store} = this.props;\r\n this.watchHandles.forEach((handle: any) => {\r\n handle.remove();\r\n });\r\n this.watchHandles.length = 0;\r\n this.autorunDisposers.forEach((disposer: any) => {\r\n disposer();\r\n });\r\n this.autorunDisposers.length = 0;\r\n store?.mapStore.map?.destroy();\r\n store?.mapStore.setMap();\r\n store?.mapStore.setView();\r\n store?.mapStore.setStatus(\"no-map\");\r\n }\r\n}\r\n\r\nexport const WebMap = withStore(WebMapBase);\r\n","/*\r\nCopied and adapted from https://github.com/Esri/react-arcgis/blob/master/src/ts/components/WebComposites.tsx\r\n\r\nCopyright © 2017-2019 Esri\r\n\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance\r\nwith the License. You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on\r\nan \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the\r\nspecific language governing permissions and limitations under the License.\r\n\r\nA copy of the license is available in the repository's LICENSE file.\r\nTODO: Refactor\r\n */\r\nimport * as React from \"react\";\r\nimport { BaseProps} from \"../../props\";\r\nimport { eventMap } from \"../../events\";\r\n\r\nimport {StyledContainer} from \"../styled-container/styled-container\";\r\n\r\nimport EsriWebScene from \"@arcgis/core/WebScene\";\r\nimport EsriSceneView from \"@arcgis/core/views/SceneView\";\r\n\r\nexport interface SceneProps extends BaseProps {\r\n id: string;\r\n mapProperties?: __esri.WebSceneProperties;\r\n viewProperties?: __esri.SceneViewProperties;\r\n}\r\n\r\nexport class WebScene extends React.Component {\r\n constructor(props: SceneProps) {\r\n super(props);\r\n this.state = {\r\n mapContainerId: this.props.containerId,\r\n status: \"loading\"\r\n };\r\n }\r\n\r\n render(): React.ReactElement | null {\r\n const centerStyle = {\r\n left: \"50%\",\r\n marginRight: \"-50%\",\r\n position: \"absolute\",\r\n top: \"50%\",\r\n transform: \"translate(-50%, -50%)\"\r\n };\r\n\r\n const mapStyle = this.props.className ?\r\n this.props.style :\r\n {\r\n height: \"100%\",\r\n position: \"relative\",\r\n width: \"100%\",\r\n ...this.props.style\r\n };\r\n\r\n const loadElement = (\r\n this.props.loadElement ? this.props.loadElement :\r\n

Wird geladen...

\r\n );\r\n\r\n const failElement = (\r\n this.props.failElement ? this.props.failElement :\r\n

Laden des ArcGIS API fehlgeschlagen.

\r\n );\r\n\r\n if (this.state.status === \"loaded\") {\r\n if (!!this.props.childrenAsFunction) {\r\n return this.props.childrenAsFunction(this.state.map, this.state.view);\r\n }\r\n const childrenWithProps = React.Children.map(this.props.children, (child) => {\r\n const childEl = child as React.ReactElement;\r\n return React.cloneElement(childEl, {\r\n map: this.state.map,\r\n view: this.state.view\r\n }\r\n );\r\n });\r\n return (\r\n
\r\n \r\n {childrenWithProps}\r\n
\r\n );\r\n } else if (this.state.status === \"loading\") {\r\n return (\r\n
\r\n \r\n
\r\n {loadElement}\r\n
\r\n
\r\n );\r\n }\r\n return (\r\n
\r\n \r\n
\r\n {failElement}\r\n
\r\n
\r\n );\r\n }\r\n\r\n loadMap() {\r\n const mapData = new Promise((resolve, reject) => {\r\n try {\r\n const map: __esri.WebScene = new EsriWebScene({\r\n portalItem: {\r\n id: this.props.id\r\n },\r\n ...this.props.mapProperties\r\n });\r\n map.load()\r\n .then(() => map.basemap.load())\r\n .then(() => {\r\n const allLayers = map.allLayers;\r\n const promises = allLayers.map((layer) => layer.load());\r\n return Promise.all(promises.toArray());\r\n })\r\n .then((layers) => {\r\n const view = new EsriSceneView({\r\n container: this.props.containerId,\r\n map,\r\n ...this.props.viewProperties\r\n });\r\n // Set view events to any user defined callbacks\r\n Object.keys(eventMap).forEach((key) => {\r\n if (this.props[key]) {\r\n view.on(eventMap[key], this.props[key]);\r\n }\r\n });\r\n resolve({ map, view });\r\n }).catch((err) => {\r\n reject(err);\r\n });\r\n } catch (err) {\r\n reject(err);\r\n }\r\n });\r\n return mapData;\r\n }\r\n\r\n componentDidMount() {\r\n // load th map after the component was mounted\r\n this.loadMap()\r\n .then(\r\n ({ map, view }) => {\r\n this.setState({\r\n map,\r\n view,\r\n status: \"loaded\"\r\n });\r\n if (this.props.onLoad) {\r\n this.props.onLoad(map, view);\r\n }\r\n })\r\n .catch((e) => {\r\n throw e;\r\n });\r\n }\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {GeoICONS} from \"../components/icon/icon\";\r\nimport {SearchSourceQueryConfiguration} from \"./search-configuration\";\r\n\r\n\r\n@JsonObject()\r\nexport class ActionBaseConfiguration {\r\n /**\r\n * Set this property to `true` to display a spinner icon.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionBase.html#active)\r\n */\r\n @JsonProperty()\r\n declare active?: boolean;\r\n /**\r\n * This adds a CSS class to the [ActionButton's]\r\n * (https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionButton.html) node.\r\n *\r\n * [Read more...]\r\n * (https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionBase.html#className)\r\n */\r\n @JsonProperty()\r\n declare className?: string;\r\n /**\r\n * Indicates whether this action is disabled.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionBase.html#disabled)\r\n */\r\n @JsonProperty()\r\n declare disabled?: boolean;\r\n\r\n /**\r\n * Calcite icon used for the action.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionBase.html#icon)\r\n */\r\n @JsonProperty()\r\n declare icon?: string;\r\n\r\n /**\r\n * The name of the ID assigned to this action.\r\n *\r\n * [Read more...]\r\n * (https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionBase.html#id)\r\n */\r\n @JsonProperty()\r\n declare id?: string;\r\n /**\r\n * The title of the action.\r\n *\r\n * [Read more...]\r\n * (https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionBase.html#title)\r\n */\r\n @JsonProperty()\r\n declare title: string;\r\n /**\r\n * Specifies the type of action.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionBase.html#type)\r\n */\r\n @JsonProperty()\r\n declare type: \"button\" | \"slider\" | \"toggle\";\r\n /**\r\n * Indicates if the action is visible.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionBase.html#visible)\r\n */\r\n @JsonProperty()\r\n declare visible: boolean;\r\n /**\r\n * *Geo.js Property*\r\n * Target url\r\n */\r\n @JsonProperty()\r\n declare url?: string;\r\n\r\n /**\r\n * *Geo.js Property*\r\n * Query for additional data\r\n */\r\n @JsonProperty()\r\n declare query?: SearchSourceQueryConfiguration;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class ActionButtonConfiguration extends ActionBaseConfiguration {\r\n /**\r\n * The URL to an image that will be used to represent the action.\r\n *\r\n * [Read more...]\r\n * (https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionButton.html#image)\r\n */\r\n @JsonProperty()\r\n declare image?: string;\r\n\r\n /**\r\n * *Geo.js Property*\r\n * Icon name\r\n */\r\n @JsonProperty()\r\n declare icon?: GeoICONS;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class ActionToggleConfiguration extends ActionBaseConfiguration {\r\n /**\r\n * Indicates the value of whether the action is toggled on/off.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionToggle.html#value)\r\n */\r\n @JsonProperty()\r\n declare value: boolean;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class ActionSliderConfiguration extends ActionBaseConfiguration {\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","/*\r\n Core configuration files\r\n */\r\nimport { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {ProxyConfiguration} from \"./proxy-configuration\";\r\nimport {SearchConfiguration} from \"./search-configuration\";\r\nimport {WebMapConfiguration} from \"./web-map-configuration\";\r\nimport {MapViewConfiguration} from \"./view-configuration\";\r\nimport {BasemapGalleryConfiguration} from \"./basemap-gallery-configuration\";\r\nimport {BasemapToggleConfiguration} from \"./basemap-toggle-configuration\";\r\nimport {AttributionConfiguration} from \"./attribution-configuration\";\r\nimport {MaintenanceConfiguration} from \"./maintenance-configuration\";\r\nimport {ScaleBarConfiguration} from \"./scalebar-configuration\";\r\nimport {LegendConfiguration} from \"./legend-configuration\";\r\nimport {ExternalServiceConfiguration} from \"./external-service-configuration\";\r\nimport {ActionButtonConfiguration} from \"./action-configuration\";\r\nimport {SketchConfiguration} from \"./sketch-configuration\";\r\nimport {LayerConfiguration} from \"./layer-configuration\";\r\nimport {EditorConfiguration} from \"./editor-configuration\";\r\n\r\n@JsonObject()\r\nexport class AppConfiguration {\r\n\r\n /**\r\n * Attribution (copyright, legal notice)\r\n */\r\n @JsonProperty()\r\n declare attribution: AttributionConfiguration;\r\n\r\n /**\r\n * Basisname der Anwendung\r\n */\r\n @JsonProperty()\r\n declare appBasename: string;\r\n\r\n /**\r\n * Basisname der Anwendung in den meisten Fällen identisch mit appBasename\r\n */\r\n @JsonProperty()\r\n declare basename: string;\r\n\r\n /**\r\n * The base url for configuration files\r\n */\r\n @JsonProperty()\r\n declare configRoot: string;\r\n\r\n /**\r\n * application mode (development | test | production)\r\n */\r\n @JsonProperty()\r\n declare mode: string;\r\n\r\n /**\r\n * Information about maintenance work on the application\r\n */\r\n @JsonProperty({ type: MaintenanceConfiguration})\r\n declare maintenance: MaintenanceConfiguration[];\r\n\r\n /**\r\n * Proxy URL\r\n */\r\n @JsonProperty({ type: ProxyConfiguration })\r\n declare proxy: ProxyConfiguration;\r\n\r\n /**\r\n * URL des Portal for ArcGIS oder AOL\r\n */\r\n @JsonProperty()\r\n declare portalUrl: string;\r\n\r\n /**\r\n * App ID.\r\n * ID you get when registering the App on Portal for ArcGIS\r\n * Needed when using OAuth2 with ESRI IdentityManager\r\n */\r\n @JsonProperty()\r\n declare appId?: string;\r\n\t\r\n\t/**\r\n * User ID.\r\n * ID of the APP user to connect to the Portal for ArcGIS\r\n * Needed when using APP user with ESRI IdentityManager\r\n */\r\n @JsonProperty()\r\n declare userId?: string;\r\n\r\n /**\r\n * Overrides the URL for loading the API assets when using local builds of the `@arcgis/core` and `arcgis-js-api` NPM packages.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-config.html#assetsPath)\r\n */\r\n @JsonProperty()\r\n declare assetsPath: string;\r\n /**\r\n * The URL for font resources used by the Font class in FeatureLayer and CSVLayer labels. To use your own hosted fonts, the font files need to be in .pbf format, and you must follow the kebab-case naming convention (e.g. \"arial-unicode-ms-bold\").\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-config.html#fontsUrl)\r\n */\r\n @JsonProperty()\r\n declare fontsUrl: string;\r\n /**\r\n * The default [GeometryService](https://developers.arcgis.com/javascript/latest/api-reference/esri-tasks-GeometryService.html) used by widgets and other operations, such as on-the-fly projections.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-config.html#geometryServiceUrl)\r\n */\r\n @JsonProperty()\r\n declare geometryServiceUrl: string;\r\n\r\n /**\r\n * WebMap\r\n */\r\n @JsonProperty()\r\n declare webMap: WebMapConfiguration;\r\n\r\n /**\r\n * View settings\r\n */\r\n @JsonProperty()\r\n declare mapView: MapViewConfiguration;\r\n\r\n /**\r\n * next base map\r\n */\r\n @JsonProperty()\r\n declare nextBasemap: string;\r\n\r\n /**\r\n * search widget\r\n */\r\n @JsonProperty({ type: SearchConfiguration})\r\n declare search: SearchConfiguration;\r\n\r\n /**\r\n * basemap gallery widget\r\n */\r\n @JsonProperty({ type: BasemapGalleryConfiguration})\r\n declare basemapGallery: BasemapGalleryConfiguration;\r\n\r\n @JsonProperty()\r\n declare basemapToggle: BasemapToggleConfiguration;\r\n\r\n\t@JsonProperty()\r\n declare editor: EditorConfiguration;\r\n\r\n @JsonProperty()\r\n declare elevationLayers?: LayerConfiguration[];\r\n\r\n @JsonProperty()\r\n declare legend: LegendConfiguration;\r\n\r\n @JsonProperty()\r\n declare scaleBar: ScaleBarConfiguration;\r\n\r\n @JsonProperty()\r\n declare sketch: SketchConfiguration;\r\n\r\n @JsonProperty()\r\n declare externalServices: ExternalServiceConfiguration[];\r\n\r\n @JsonProperty()\r\n declare predefinedActions: ActionButtonConfiguration[];\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\n\r\n@JsonObject()\r\nexport class AttributionTextItemConfiguration {\r\n /**\r\n * ID\r\n */\r\n @JsonProperty()\r\n declare id: string;\r\n\r\n /**\r\n * The attribution text.\r\n */\r\n @JsonProperty()\r\n declare text: string;\r\n /**\r\n * The link title.\r\n */\r\n @JsonProperty()\r\n declare title?: string;\r\n /**\r\n * The url for a link.\r\n */\r\n @JsonProperty()\r\n declare url: string;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class AttributionConfiguration {\r\n /**\r\n * Text used to split attribution by [layers](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-Layer.html)\r\n *\r\n * @default |\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Attribution.html#itemDelimiter)\r\n */\r\n @JsonProperty()\r\n declare itemDelimiter: string;\r\n\r\n /**\r\n * *Geo.js Property*\r\n * Delimiter for text items\r\n */\r\n @JsonProperty()\r\n declare textDelimiter: string;\r\n\r\n /**\r\n * *Geo.js Property*\r\n * Text items\r\n */\r\n @JsonProperty()\r\n declare textItems: AttributionTextItemConfiguration[];\r\n /**\r\n * A reference to the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html) or [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Attribution.html#view)\r\n */\r\n // @JsonProperty()\r\n // declare view?: (MapViewProperties & { type: \"2d\" }) | (SceneViewProperties & { type: \"3d\" });\r\n /**\r\n * The view model for this widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Attribution.html#viewModel)\r\n */\r\n // @JsonProperty()\r\n // declare viewModel?: AttributionViewModelProperties;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\n\r\nimport {WidgetConfiguration} from \"./widget-configuration\";\r\nimport {MapViewConfiguration} from \"./view-configuration\";\r\nimport {PortalConfiguration} from \"./portal-configuration\";\r\nimport {BasemapConfiguration} from \"./map-configuration\";\r\n\r\n@JsonObject()\r\nexport class LocalBasemapsSourceConfiguration {\r\n /**\r\n * A collection of [Basemap](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html)s.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery-support-LocalBasemapsSource.html#basemaps)\r\n */\r\n // @JsonProperty()\r\n // basemaps?: CollectionProperties;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class PortalBasemapsSourceConfiguration extends LocalBasemapsSourceConfiguration {\r\n /**\r\n * Function used to filter basemaps after being fetched from the Portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery-support-PortalBasemapsSource.html#filterFunction)\r\n */\r\n // filterFunction: BasemapFilter;\r\n /**\r\n * The Portal from which to fetch basemaps.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery-support-PortalBasemapsSource.html#portal)\r\n */\r\n @JsonProperty()\r\n declare portal?: PortalConfiguration;\r\n /**\r\n * An object with key-value pairs used to create a custom basemap gallery group query.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery-support-PortalBasemapsSource.html#query)\r\n */\r\n @JsonProperty()\r\n declare query?: any | string;\r\n\r\n /**\r\n * The source's state.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery-support-PortalBasemapsSource.html#state)\r\n *\r\n * @default not-loaded\r\n */\r\n @JsonProperty()\r\n declare state: \"not-loaded\" | \"loading\" | \"ready\";\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\nconst localOrPortalConfiguration = (source: LocalBasemapsSourceConfiguration | PortalBasemapsSourceConfiguration) => {\r\n return source && (source as any).query !== undefined\r\n ? PortalBasemapsSourceConfiguration: PortalBasemapsSourceConfiguration;\r\n};\r\n\r\n/**\r\n * *Geo.js Properties*\r\n */\r\n@JsonObject()\r\nexport class BasemapStyleConfiguration {\r\n\r\n @JsonProperty()\r\n declare itemId: string;\r\n\r\n @JsonProperty()\r\n declare url?: string;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class BasemapGalleryConfiguration extends WidgetConfiguration {\r\n /**\r\n * The map's [basemap](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html#basemap).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html#activeBasemap)\r\n */\r\n @JsonProperty()\r\n declare activeBasemap?: BasemapConfiguration;\r\n\r\n /**\r\n * When `true`, sets the widget to a disabled state so the user cannot interact with it.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html#disabled)\r\n */\r\n @JsonProperty()\r\n declare disabled: boolean;\r\n\r\n /**\r\n * Indicates the heading level to use for the message \"No basemaps available\" when no basemaps are available in the BasemapGallery.\r\n *\r\n * @default 2\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html#headingLevel)\r\n */\r\n @JsonProperty()\r\n declare headingLevel?: number;\r\n /**\r\n * The source for basemaps that the widget will display.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html#source)\r\n */\r\n @JsonProperty({type: localOrPortalConfiguration})\r\n declare source?: LocalBasemapsSourceConfiguration | PortalBasemapsSourceConfiguration;\r\n /**\r\n * The view from which the widget will operate. This view provides access to the active [basemap](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html#basemap) via the view's [map](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#map) property.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html#view)\r\n */\r\n @JsonProperty()\r\n declare view?: (MapViewConfiguration & { type: \"2d\" }); // | (SceneViewConfiguration & { type: \"3d\" });\r\n\r\n /**\r\n * *Geo.js Properties*\r\n * Enable or disable search field in BasemapGalleryWidget\r\n */\r\n @JsonProperty()\r\n declare searchEnabled?: boolean;\r\n\r\n /**\r\n * *Geo.js Properties*\r\n * Defines the set of Basemaps available in the application as an Array of Basemap titles. If defined, exludeApplicationBasemaps and excludeTags are ignored.\r\n * Basemaps can be selected from the global Basemaps Group: https://www.geo.lu.ch/geoshare/home/group.html?id=d621f41867994b0aa1207612ad5fcc76\r\n */\r\n @JsonProperty()\r\n declare applicationBasemaps?: string[] | \"none\";\r\n\r\n /**\r\n * *Geo.js Properties*\r\n * Defines the set of Basemaps excluded in the application as an Array of Basemap titles.\r\n * Basemaps can be selected from the global Basemaps Group: https://www.geo.lu.ch/geoshare/home/group.html?id=d621f41867994b0aa1207612ad5fcc76\r\n */\r\n @JsonProperty()\r\n declare excludeApplicationBasemaps?: string[];\r\n\r\n /**\r\n * *Geo.js Properties*\r\n * Defines the default Basemap title. If defined, Basemap of Geoshare Webmap is ignored\r\n * Basemaps can be selected from the global Basemaps Group: https://www.geo.lu.ch/geoshare/home/group.html?id=d621f41867994b0aa1207612ad5fcc76\r\n */\r\n @JsonProperty()\r\n declare default?: string | null;\r\n\r\n /**\r\n * *Geo.js Properties*\r\n * Defines a list of tags. Basemaps with one of these tags are ignored.\r\n * Basemaps can be selected from the global Basemaps Group: https://www.geo.lu.ch/geoshare/home/group.html?id=d621f41867994b0aa1207612ad5fcc76\r\n */\r\n @JsonProperty()\r\n declare excludeTags?: string[];\r\n\r\n /**\r\n * *Geo.js Properties*\r\n * The opacity of the basemap-layer. This value can range between 1 and 0, where 0 is 100 percent transparent\r\n * and 1 is completely opaque. If defined, Basemap opacity in the Geoshare Webmap is ignored\r\n * https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-Layer.html#opacity\r\n */\r\n @JsonProperty()\r\n declare opacity?: number | null;\r\n\r\n /**\r\n * *Geo.js Properties*\r\n * Custom Basmap Styles\r\n */\r\n @JsonProperty()\r\n declare styles?: Map;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {BasemapConfiguration} from \"./map-configuration\";\r\nimport {WidgetConfiguration} from \"./widget-configuration\";\r\n\r\n@JsonObject()\r\nexport class BasemapToggleVisibleElementsConfiguration {\r\n /**\r\n * Indicates whether to the title will be displayed. Default is false.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapToggle.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare title: boolean;\r\n}\r\n\r\n@JsonObject()\r\nexport class BasemapToggleConfiguration extends WidgetConfiguration {\r\n /**\r\n * *Geo.js Property*\r\n * property to place the widget in one of the Esri UI corners.\r\n */\r\n @JsonProperty()\r\n declare position: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\";\r\n\r\n /**\r\n * The next basemap for toggling.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapToggle.html#nextBasemap)\r\n */\r\n @JsonProperty()\r\n declare nextBasemap?: BasemapConfiguration | string;\r\n /**\r\n * A reference to the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html) or [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapToggle.html#view)\r\n */\r\n // @JsonProperty()\r\n // declare view?: (MapViewConfiguration & { type: \"2d\" }); // | (SceneViewProperties & { type: \"3d\" });\r\n /**\r\n * The view model for this widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapToggle.html#viewModel)\r\n */\r\n // @JsonProperty()\r\n // declare viewModel?: BasemapToggleViewModelProperties;\r\n /**\r\n * The visible elements that are displayed within the widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapToggle.html#visibleElements)\r\n */\r\n @JsonProperty()\r\n declare visibleElements?: BasemapToggleVisibleElementsConfiguration;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {ColorConfiguration} from \"./color-configuration\";\r\n\r\n@JsonObject()\r\nexport class LineCallout3DBorderConfiguration {\r\n /**\r\n * The color of the callout line border.\r\n *\r\n * @default white\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-callouts-LineCallout3D.html#border)\r\n */\r\n @JsonProperty()\r\n declare color?: ColorConfiguration | number[] | string;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class Callout3DConfiguration {\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class LineCallout3DConfiguration extends Callout3DConfiguration {\r\n /**\r\n * The border settings of the callout line. The border of the callout line can be used to improve the contrast of\r\n * the callout line color against various background colors. If the border is `null`, then no border will\r\n * be visible.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-callouts-LineCallout3D.html#border)\r\n */\r\n @JsonProperty()\r\n declare border?: LineCallout3DBorderConfiguration;\r\n /**\r\n * The color of the callout line.\r\n *\r\n * @default \"black\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-callouts-LineCallout3D.html#color)\r\n */\r\n @JsonProperty()\r\n declare color?: ColorConfiguration | number[] | string;\r\n /**\r\n * The width of the callout line in points.\r\n *\r\n * @default 1px\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-callouts-LineCallout3D.html#size)\r\n */\r\n @JsonProperty()\r\n declare size?: number | string;\r\n /**\r\n * For LineCallout3D the type is always `line`.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-callouts-LineCallout3D.html#type)\r\n */\r\n @JsonProperty()\r\n declare type?: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\n\r\n@JsonObject()\r\nexport class ColorConfiguration {\r\n /**\r\n * The alpha value. This value can be any number between `0` and `1` and represents the opacity of the Color.\r\n * `0` indicates the color is fully transparent and `1` indicates it is fully opaque.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Color.html#a)\r\n */\r\n @JsonProperty()\r\n declare a: number;\r\n\r\n /**\r\n * The blue value. This value can range between `0` and `255`.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Color.html#b)\r\n */\r\n @JsonProperty()\r\n declare b: number;\r\n\r\n /**\r\n * The green value. This value can range between `0` and `255`.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Color.html#g)\r\n */\r\n @JsonProperty()\r\n declare g: number;\r\n\r\n /**\r\n * The red value. This value can range between `0` and `255`.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Color.html#r)\r\n */\r\n @JsonProperty()\r\n declare r: number;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class ColorBackgroundConfiguration {\r\n /**\r\n * The color of the background.\r\n *\r\n * @default \"black\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-webmap-background-ColorBackground.html#color)\r\n */\r\n @JsonProperty()\r\n declare color?: ColorConfiguration | number[] | string;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {FieldInfoConfiguration} from \"./field-info-configuration\";\r\n\r\n/**\r\n * Content elements define what should display within the\r\n * [PopupTemplate](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html) content.\r\n * There are five specific element types:\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-Content.html)\r\n */\r\n@JsonObject()\r\nexport class ContentConfiguration {\r\n /**\r\n * The type of popup element displayed.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-Content.html#type)\r\n */\r\n @JsonProperty()\r\n declare type: \"text\" | \"fields\" | \"media\" | \"attachments\" | \"custom\" | \"expression\" | \"relationship\";\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class CustomContentConfiguration extends ContentConfiguration {\r\n /**\r\n * The function that is called to create the custom content element.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-CustomContent.html#creator)\r\n */\r\n // creator?: | PopupTemplateContentCreator\r\n // | string\r\n // | HTMLElement\r\n // | WidgetProperties\r\n // | Promise;\r\n /**\r\n * The called function to cleanup custom content when it is no longer necessary.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-CustomContent.html#destroyer)\r\n */\r\n // declare destroyer: PopupTemplateContentDestroyer;\r\n /**\r\n * An array of field names used in the [PopupTemplate](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-CustomContent.html#outFields)\r\n */\r\n @JsonProperty()\r\n declare outFields: string[];\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class FieldsContentConfiguration extends ContentConfiguration {\r\n /**\r\n * Array of [fieldInfos](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-FieldInfo.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-FieldsContent.html#fieldInfos)\r\n */\r\n @JsonProperty()\r\n declare fieldInfos: FieldInfoConfiguration[];\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class MediaContentConfiguration extends ContentConfiguration {\r\n /**\r\n * Index of the current active media within the popup's media content.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-MediaContent.html#activeMediaInfoIndex)\r\n */\r\n @JsonProperty()\r\n declare activeMediaInfoIndex?: number;\r\n /**\r\n * Describes the media's content in detail.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-MediaContent.html#description)\r\n */\r\n @JsonProperty()\r\n declare description?: string;\r\n /**\r\n * Contains the media elements representing images or charts to display within the [PopupTemplate]\r\n * (https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-MediaContent.html#mediaInfos)\r\n */\r\n // @JsonProperty()\r\n // declare mediaInfos:\r\n // | BarChartMediaInfo\r\n // | ColumnChartMediaInfo\r\n // | ImageMediaInfo\r\n // | LineChartMediaInfo\r\n // | PieChartMediaInfo\r\n // | any[];\r\n /**\r\n * Heading indicating what the media's content represents.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-MediaContent.html#title)\r\n */\r\n @JsonProperty()\r\n declare title?: string;\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class TextContentConfiguration extends ContentConfiguration {\r\n /**\r\n * The formatted string content to display.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-TextContent.html#text)\r\n */\r\n @JsonProperty()\r\n declare text: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class AttachmentsContentConfiguration extends ContentConfiguration {\r\n /**\r\n * Describes the attachment's content in detail.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-AttachmentsContent.html#description)\r\n */\r\n @JsonProperty()\r\n declare description?: string;\r\n /**\r\n * A string value indicating how to display an attachment.\r\n *\r\n * @default \"auto\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-AttachmentsContent.html#displayType)\r\n */\r\n @JsonProperty()\r\n declare displayType: \"auto\" | \"preview\" | \"list\";\r\n /**\r\n * A heading indicating what the attachment's content represents.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-AttachmentsContent.html#title)\r\n */\r\n @JsonProperty()\r\n declare title?: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n@JsonObject()\r\nexport class ElementExpressionInfoConfiguration {\r\n /**\r\n * The [Arcade](https://developers.arcgis.com/javascript/latest/arcade/) expression evaluating to a dictionary.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-ElementExpressionInfo.html#expression)\r\n */\r\n @JsonProperty()\r\n declare expression?: string;\r\n /**\r\n * The return type of the expression.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-ElementExpressionInfo.html#returnType)\r\n */\r\n returnType?: \"dictionary\";\r\n /**\r\n * The title used to describe the popup element returned by the expression.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-ElementExpressionInfo.html#title)\r\n */\r\n @JsonProperty()\r\n declare title?: string;\r\n}\r\n@JsonObject()\r\nexport class ExpressionContentConfiguration extends ContentConfiguration {\r\n /**\r\n * Contains the Arcade expression used to create a popup content element.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-ExpressionContent.html#expressionInfo)\r\n */\r\n @JsonProperty()\r\n declare expressionInfo?: ElementExpressionInfoConfiguration;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n@JsonObject()\r\nexport class RelatedRecordsInfoFieldOrderProperties {\r\n /**\r\n * The attribute value of the field selected that will drive the sorting of related records.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-support-RelatedRecordsInfoFieldOrder.html#field)\r\n */\r\n @JsonProperty()\r\n declare field?: string;\r\n /**\r\n * Set the ascending or descending sort order of the returned related records.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-support-RelatedRecordsInfoFieldOrder.html#order)\r\n */\r\n @JsonProperty()\r\n declare order?: \"asc\" | \"desc\";\r\n}\r\n@JsonObject()\r\nexport class RelationshipContentConfiguration extends ContentConfiguration {\r\n /**\r\n * Describes the relationship's content in detail.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-RelationshipContent.html#description)\r\n */\r\n @JsonProperty()\r\n declare description?: string;\r\n /**\r\n * A numeric value indicating the maximum number of related features to display in the list of related records.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-RelationshipContent.html#displayCount)\r\n */\r\n @JsonProperty()\r\n declare displayCount?: number;\r\n /**\r\n * A string value indicating how to display related records within the relationship content.\r\n *\r\n * @default \"list\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-RelationshipContent.html#displayType)\r\n */\r\n @JsonProperty()\r\n declare displayType?: \"list\";\r\n /**\r\n * An array of [RelatedRecordsInfoFieldOrder](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-support-RelatedRecordsInfoFieldOrder.html) indicating the display order for the related records, and whether they should be sorted in ascending `asc` or descending `desc` order.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-RelationshipContent.html#orderByFields)\r\n */\r\n @JsonProperty()\r\n declare orderByFields?: RelatedRecordsInfoFieldOrderProperties[];\r\n /**\r\n * The numeric id value for the defined relationship.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-RelationshipContent.html#relationshipId)\r\n */\r\n @JsonProperty()\r\n declare relationshipId?: number;\r\n /**\r\n * A heading indicating what the relationship's content represents.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-content-RelationshipContent.html#title)\r\n */\r\n @JsonProperty()\r\n declare title?: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n@JsonObject()\r\nexport class CustomChartXYConfiguration {\r\n @JsonProperty()\r\n declare labels?: Map;\r\n @JsonProperty()\r\n declare min?: number;\r\n @JsonProperty()\r\n declare max?: number;\r\n}\r\n@JsonObject()\r\nexport class CustomChartAxisConfiguration {\r\n @JsonProperty()\r\n declare x?: CustomChartXYConfiguration;\r\n @JsonProperty()\r\n declare y?: CustomChartXYConfiguration;\r\n}\r\n@JsonObject()\r\nexport class CustomChartTooltipConfiguration {\r\n @JsonProperty()\r\n declare content: string;\r\n @JsonProperty()\r\n declare specialContent?: string[];\r\n}\r\n@JsonObject()\r\nexport class CustomChartConfiguration extends CustomContentConfiguration {\r\n @JsonProperty()\r\n declare labels: string[];\r\n @JsonProperty()\r\n declare axis: CustomChartAxisConfiguration;\r\n @JsonProperty()\r\n declare tooltip?: CustomChartTooltipConfiguration;\r\n @JsonProperty()\r\n declare mediaInfos: __esri.MediaInfo[];\r\n\r\n constructor() {\r\n super();\r\n }\r\n}","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {WidgetConfiguration} from \"./widget-configuration\";\r\nimport {SnappingOptionsPropertiesConfiguration} from \"./snapping-options-properties-configuration\";\r\nimport {SketchTooltipOptionsPropertiesConfiguration} from \"./sketch-tooltip-options-properties-configuration\";\r\nimport {SketchLabelOptionsPropertiesConfiguration} from \"./sketch-label-options-properties-configuration\";\r\nimport {EditorVisibleElementsConfiguration} from \"./editor-visible-elements-configuration\";\r\nimport {SketchValueOptionsConfiguration} from \"./sketch-configuration\";\r\nimport {EditorLayerInfoConfiguration} from \"./editor-layer-info-configuration\";\r\n\r\n\r\n@JsonObject()\r\nexport class EditorConfiguration extends WidgetConfiguration {\r\n\r\n /**\r\n * An array of string values which specifies what end users are allowed to edit.\r\n *\r\n * @deprecated since version 4.29. Use {@link module:esri/widgets/Editor#visibleElements Editor.visibleElements} instead.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#allowedWorkflows)\r\n */\r\n @JsonProperty()\r\n declare allowedWorkflows?: \"create-features\" | \"update\";\r\n /**\r\n * Indicates the heading level to use for title of the widget.\r\n *\r\n * @default 4\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#headingLevel)\r\n */\r\n @JsonProperty()\r\n declare headingLevel?: number;\r\n /**\r\n * Options to configure the sketch labels shown next to each segment of the geometry being created or updated.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#labelOptions)\r\n */\r\n @JsonProperty()\r\n declare labelOptions?: SketchLabelOptionsPropertiesConfiguration;\r\n /**\r\n * An array of editing configurations for individual layers.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#layerInfos)\r\n */\r\n @JsonProperty()\r\n declare layerInfos?: EditorLayerInfoConfiguration[];\r\n /**\r\n * The [SnappingOptions](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html) for editing.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#snappingOptions)\r\n */\r\n @JsonProperty()\r\n declare snappingOptions?: SnappingOptionsPropertiesConfiguration;\r\n /**\r\n * This property allows customization of supporting Editor widgets and their default behavior.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#supportingWidgetDefaults)\r\n */\r\n // @JsonProperty()\r\n // declare supportingWidgetDefaults?: SupportingWidgetDefaults;\r\n /**\r\n * Options to configure the tooltip shown next to the cursor when creating or updating graphics.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#tooltipOptions)\r\n */\r\n @JsonProperty()\r\n declare tooltipOptions?: SketchTooltipOptionsPropertiesConfiguration;\r\n /**\r\n * Options to configure how values are displayed and input when creating or updating graphics.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#valueOptions)\r\n */\r\n @JsonProperty()\r\n declare valueOptions?: SketchValueOptionsConfiguration;\r\n /**\r\n * Indicates whether the Editor should default to use the deprecated [CreateWorkflow](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor-CreateWorkflow.html).\r\n *\r\n * @default false\r\n * @deprecated since version 4.23. Although new at 4.23, this property was introduced to help migrate from the legacy {@link module:esri/widgets/Editor/CreateWorkflow} to the updated {@link module:esri/widgets/Editor/CreateFeaturesWorkflow}. Once {@link module:esri/widgets/Editor/CreateWorkflow} is fully removed, this property will no longer be necessary.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#useDeprecatedCreateWorkflow)\r\n */\r\n @JsonProperty()\r\n declare useDeprecatedCreateWorkflow?: boolean;\r\n\r\n /**\r\n * The visible elements that are displayed within the widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#visibleElements)\r\n */\r\n @JsonProperty()\r\n declare visibleElements?: EditorVisibleElementsConfiguration;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import {JsonObject, JsonProperty} from \"typescript-json-serializer\";\r\nimport {\r\n\tVisibleElementsSnappingControlsElementsConfiguration\r\n} from \"./visible-elements-snapping-controls-elements-configuration\";\r\n\r\n@JsonObject()\r\nexport class EditorVisibleElementsConfiguration {\r\n /**\r\n * _Since 4.28_.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare createFeaturesSection?: boolean;\r\n /**\r\n * _Since 4.28_.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare editFeaturesSection?: boolean;\r\n /**\r\n * _Since 4.29_.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare labelsToggle?: boolean;\r\n /**\r\n * _Since 4.29_.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare tooltipsToggle?: boolean;\r\n /**\r\n * _Since 4.30_.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare settingsMenu?: boolean;\r\n /**\r\n * Indicates whether to display the `SnappingControls` widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare snappingControls?: boolean;\r\n /**\r\n * The available [SnappingControls](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-support-SnappingControls.html) elements within the widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare snappingControlsElements?: VisibleElementsSnappingControlsElementsConfiguration;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {GeometryConfiguration} from \"./geometry-configuration\";\r\nimport {TimeExtentConfiguration} from \"./time-info-configration\";\r\n\r\n@JsonObject()\r\nexport class FeatureFilterConfiguration {\r\n /**\r\n * Specifies a search distance from a given [geometry](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-support-FeatureFilter.html#geometry) in a spatial filter.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-support-FeatureFilter.html#distance)\r\n */\r\n @JsonProperty()\r\n declare distance: number;\r\n /**\r\n * The geometry to apply to the spatial filter.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-support-FeatureFilter.html#geometry)\r\n */\r\n @JsonProperty()\r\n declare geometry: GeometryConfiguration;\r\n /**\r\n * An array of objectIds of the features to be filtered.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-support-FeatureFilter.html#objectIds)\r\n */\r\n @JsonProperty()\r\n declare objectIds: number[];\r\n /**\r\n * For spatial filters, this parameter defines the spatial relationship to filter features in the layer view against the filter [geometry](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-FeatureFilter.html#geometry).\r\n *\r\n * @default \"intersects\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-FeatureFilter.html#spatialRelationship)\r\n */\r\n @JsonProperty()\r\n declare spatialRelationship: string;\r\n /**\r\n * A range of time with start and end date.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-support-FeatureFilter.html#timeExtent)\r\n */\r\n @JsonProperty()\r\n declare timeExtent: TimeExtentConfiguration;\r\n /**\r\n * The unit for calculating the buffer distance when [distance](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-support-FeatureFilter.html#distance) is specified in a spatial filter.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-support-FeatureFilter.html#units)\r\n */\r\n @JsonProperty()\r\n declare units?: \"feet\" | \"miles\" | \"nautical-miles\" | \"us-nautical-miles\" | \"meters\" | \"kilometers\";\r\n /**\r\n * A where clause for the feature filter.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-support-FeatureFilter.html#where)\r\n */\r\n @JsonProperty()\r\n declare where: string;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\n@JsonObject()\r\nexport class FontConfiguration {\r\n /**\r\n * The text decoration.\r\n *\r\n * @default \"none\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Font.html#decoration)\r\n */\r\n @JsonProperty()\r\n declare decoration?: \"underline\" | \"line-through\" | \"none\";\r\n /**\r\n * The font family of the text.\r\n *\r\n * @default \"sans-serif\"\r\n *\r\n * The font family of the text. The possible values are dependent upon the layer type, and if you are working with a [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html) or a [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html). See the [Labeling guide page](https://developers.arcgis.com/javascript/latest/labeling/) for detailed explanation, or click the `Read more` below. >>> esri-read-more **Font families for 3D SceneViews** The supported font families for 3D [SceneViews](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html) are dependent upon the fonts installed on the user's computer and web browser. If an app uses a font that is not installed, the Font class implements a fallback mechanism that will use the default font family value, which is `sans-serif`. See these references for instructions on how to install a new font on [Windows](https://support.microsoft.com/en-us/help/314960/how-to-install-or-remove-a-font-in-windows) or [macOS](https://support.apple.com/en-us/ht201749). Fonts that are not installed locally can also be loaded from a url by defining a [@font-face](https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face) in a css file and referencing it from the `family` property in a symbol layer. **Font families for 2D MapImageLayer** The supported font families for [MapImageLayers](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-MapImageLayer.html) in a [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html) are dependent upon the fonts installed on the [ArcGIS Server](https://enterprise.arcgis.com/en/server/latest/get-started/windows/what-is-arcgis-for-server-.htm) that published the layer. If an app uses a font that is not installed, the Font class implements a fallback mechanism that will use the default font family value, which is `sans-serif`. **Font families for 2D FeatureLayer**, CSVLayer, StreamLayer, and TextSymbol The supported font families are based on hosted fonts files in `.pbf` format. By default, the fonts available are mostly the same ones used by the Esri Vector Basemaps. These fonts are available via `https://static.arcgis.com/fonts`. The URL can be configured to point to your own font resources by setting the [esriConfig.fontsUrl](https://developers.arcgis.com/javascript/latest/api-reference/esri-config.html#fontsUrl) property. If an app uses a font that is not installed, the Font class implements a fallback mechanism that will use the default font family value, which is `sans-serif`. This uses the `Arial Unicode MS` font file. > A preview of the fonts listed in the following table are available in the [Labeling](https://developers.arcgis.com/javascript/latest/labeling/) overview page. List of fonts currently supported in a 2D MapView: [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Font.html#family)\r\n */\r\n @JsonProperty()\r\n declare family?: string;\r\n /**\r\n * The font size in points.\r\n *\r\n * @default 9\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Font.html#size)\r\n */\r\n @JsonProperty()\r\n declare size?: number | string;\r\n /**\r\n * The text style.\r\n *\r\n * @default \"normal\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Font.html#style)\r\n */\r\n @JsonProperty()\r\n declare style?: \"normal\" | \"italic\" | \"oblique\";\r\n /**\r\n * The text weight.\r\n *\r\n * @default \"normal\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Font.html#weight)\r\n */\r\n @JsonProperty()\r\n declare weight?: \"normal\" | \"bold\" | \"bolder\" | \"lighter\";\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {SpatialReferenceConfiguration} from \"./spatial-reference-configuration\";\r\n\r\n@JsonObject()\r\nexport class GeometryConfiguration {\r\n /**\r\n * Indicates if the geometry has M values.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Geometry.html#hasM)\r\n */\r\n @JsonProperty()\r\n declare hasM?: boolean;\r\n\r\n /**\r\n * Indicates if the geometry has z-values (elevation).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Geometry.html#hasZ)\r\n */\r\n @JsonProperty()\r\n declare hasZ?: boolean;\r\n\r\n /**\r\n * The spatial reference of the geometry.\r\n *\r\n * @default SpatialReference.WGS84 // wkid: 4326\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Geometry.html#spatialReference)\r\n */\r\n @JsonProperty({type: SpatialReferenceConfiguration})\r\n declare spatialReference?: SpatialReferenceConfiguration;\r\n\r\n /**\r\n * The geometry type.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Geometry.html#type)\r\n */\r\n @JsonProperty()\r\n declare type: \"point\" | \"multipoint\" | \"polyline\" | \"polygon\" | \"extent\" | \"mesh\";\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class ExtentConfiguration extends GeometryConfiguration {\r\n /**\r\n * The maximum possible `m` value in an extent envelope.\r\n *\r\n * @default undefined\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html#mmax)\r\n */\r\n @JsonProperty()\r\n declare mmax?: number;\r\n\r\n /**\r\n * The minimum possible `m` value of an extent envelope.\r\n *\r\n * @default undefined\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html#mmin)\r\n */\r\n @JsonProperty()\r\n declare mmin?: number;\r\n\r\n /**\r\n * The maximum X-coordinate of an extent envelope.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html#xmax)\r\n */\r\n @JsonProperty()\r\n declare xmax?: number;\r\n\r\n /**\r\n * The minimum X-coordinate of an extent envelope.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html#xmin)\r\n */\r\n @JsonProperty()\r\n declare xmin?: number;\r\n\r\n /**\r\n * The maximum Y-coordinate of an extent envelope.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html#ymax)\r\n */\r\n @JsonProperty()\r\n declare ymax?: number;\r\n\r\n /**\r\n * The minimum Y-coordinate of an extent envelope.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html#ymin)\r\n */\r\n @JsonProperty()\r\n declare ymin?: number;\r\n\r\n /**\r\n * The maximum possible `z`, or elevation, value in an extent envelope.\r\n *\r\n * @default undefined\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html#zmax)\r\n */\r\n @JsonProperty()\r\n declare zmax?: number;\r\n\r\n /**\r\n * The minimum possible `z`, or elevation, value of an extent envelope.\r\n *\r\n * @default undefined\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html#zmin)\r\n */\r\n @JsonProperty()\r\n declare zmin?: number;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class PointConfiguration extends GeometryConfiguration {\r\n /**\r\n * The latitude of the point.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Point.html#latitude)\r\n */\r\n @JsonProperty()\r\n declare latitude?: number;\r\n /**\r\n * The longitude of the point.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Point.html#longitude)\r\n */\r\n @JsonProperty()\r\n declare longitude?: number;\r\n /**\r\n * The m-coordinate of the point in map units.\r\n *\r\n * @default undefined\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Point.html#m)\r\n */\r\n @JsonProperty()\r\n declare m?: number;\r\n /**\r\n * The x-coordinate (easting) of the point in map units.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Point.html#x)\r\n */\r\n @JsonProperty()\r\n declare x?: number;\r\n /**\r\n * The y-coordinate (northing) of the point in map units.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Point.html#y)\r\n */\r\n @JsonProperty()\r\n declare y?: number;\r\n /**\r\n * The z-coordinate (or elevation) of the point in map units.\r\n *\r\n * @default undefined\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Point.html#z)\r\n */\r\n @JsonProperty()\r\n declare z?: number;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {MetadataConfiguration} from \"./metadata-configuration\";\r\nimport {ListItemConfiguration} from \"./list-item-configuration\";\r\nimport {MessageConfiguration} from \"./message-configuration\";\r\n\r\n@JsonObject()\r\nexport class LayerListConfiguration {\r\n\r\n /**\r\n * *Geo.js Property*\r\n * Groups to add to the layer list\r\n * --> added to operationalLayers\r\n */\r\n @JsonProperty()\r\n declare groups: ListItemConfiguration[];\r\n\r\n /**\r\n * *Geo.js Property*\r\n * Hide items, add actions to items, override settings from webmap (e.g. if item is open)\r\n * --> goes to operationalLayers\r\n */\r\n @JsonProperty()\r\n declare items: ListItemConfiguration[];\r\n\r\n /**\r\n * *Geo.js Property*\r\n * Metadata for layers\r\n */\r\n @JsonProperty()\r\n declare metadata: MetadataConfiguration;\r\n\r\n /**\r\n * *Geo.js Property*\r\n * Limit the tree levels. e.g. limitLevel: 1 would list only root level.\r\n *\r\n * @default 0 // no limit\r\n */\r\n @JsonProperty() limitLevel = 0;\r\n /**\r\n * *Geo.js Property*\r\n * Rebuild the TOC if true.\r\n *\r\n * @default false\r\n */\r\n @JsonProperty() rebuild = false;\r\n /**\r\n * *Geo.js Property*\r\n * Start the tree at level. e.g. limitLevel: 1 would hide the root level.\r\n *\r\n * @default 0 // root Level\r\n */\r\n @JsonProperty() startLevel = 0;\r\n\r\n /**\r\n * *Geo.js Property*\r\n * If list with layers is hidden.\r\n * Only shows messages and legend (if configured)\r\n */\r\n @JsonProperty()\r\n declare hideList: boolean;\r\n\r\n /**\r\n * *Geo.js Property*\r\n * Metadata for layers\r\n */\r\n @JsonProperty()\r\n declare preContent?: MessageConfiguration[];\r\n /**\r\n * *Geo.js Property*\r\n * Metadata for layers\r\n */\r\n @JsonProperty()\r\n declare postContent?: MessageConfiguration[];\r\n\r\n /**\r\n * [CatalogLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-CatalogLayer.html) specific properties.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#catalogOptions)\r\n */\r\n //catalogOptions?: LayerListCatalogOptions;\r\n /**\r\n * Indicates whether the widget is collapsed.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#collapsed)\r\n */\r\n @JsonProperty()\r\n declare collapsed?: boolean;\r\n /**\r\n * Indicates whether [list items](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList-ListItem.html) may be reordered within the list by dragging and dropping.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#dragEnabled)\r\n */\r\n @JsonProperty()\r\n declare dragEnabled?: boolean;\r\n /**\r\n * Placeholder text used in the filter input if [visibleElements.filter](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#visibleElements) is true.\r\n *\r\n * @default \"\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#filterPlaceholder)\r\n */\r\n @JsonProperty()\r\n declare filterPlaceholder?: string;\r\n /**\r\n * The value of the filter input if [visibleElements.filter](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#visibleElements) is true.\r\n *\r\n * @default \"\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#filterText)\r\n */\r\n @JsonProperty()\r\n declare filterText?: string;\r\n /**\r\n * Indicates the heading level to use for the heading of the widget.\r\n *\r\n * @default 2\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#headingLevel)\r\n */\r\n @JsonProperty()\r\n declare headingLevel?: number;\r\n /**\r\n * [KnowledgeGraphLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-KnowledgeGraphLayer.html) specific properties.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#knowledgeGraphOptions)\r\n */\r\n // knowledgeGraphOptions?: LayerListKnowledgeGraphOptions;\r\n /**\r\n * A function that executes each time a [ListItem](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList-ListItem.html) is created.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#listItemCreatedFunction)\r\n */\r\n // @JsonProperty()\r\n // declare listItemCreatedFunction?: ListItemCreatedHandler;\r\n /**\r\n * The minimum number of list items required to enable drag and drop reordering with [dragEnabled](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#dragEnabled).\r\n *\r\n * @default 2\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#minDragEnabledItems)\r\n */\r\n @JsonProperty()\r\n declare minDragEnabledItems?: number;\r\n /**\r\n * The minimum number of list items required to display the visibleElements.filter input box.\r\n *\r\n * @default 10\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#minFilterItems)\r\n */\r\n @JsonProperty()\r\n declare minFilterItems?: number;\r\n /**\r\n * Indicates whether more than one list item may be selected by the user at a single time.\r\n *\r\n * @default false\r\n * @deprecated since 4.29. Use {@link module:esri/widgets/LayerList#selectionMode selectionMode} instead.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#multipleSelectionEnabled)\r\n */\r\n @JsonProperty()\r\n declare multipleSelectionEnabled?: boolean;\r\n /**\r\n * A collection of [Layer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-Layer.html)s that are opened in a [catalogLayerList](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#catalogLayerList) or [tableList](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#tableList) flow item.\r\n *\r\n * @default []\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#openedLayers)\r\n */\r\n // @JsonProperty()\r\n // declare openedLayers?: CollectionConfi;\r\n /**\r\n * A collection of selected\r\n * [ListItem](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList-ListItem.html)s\r\n * representing operational layers selected by the user.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#selectedItems)\r\n */\r\n // declare selectedItems?: CollectionProperties;\r\n /**\r\n * Indicates whether list items may be selected by the user.\r\n *\r\n * @default false\r\n * @deprecated since 4.29. Use {@link module:esri/widgets/LayerList#selectionMode selectionMode} and {@link module:esri/widgets/LayerList#dragEnabled dragEnabled} instead.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#selectionEnabled)\r\n */\r\n @JsonProperty()\r\n declare selectionEnabled?: boolean;\r\n /**\r\n * Specifies the selection mode.\r\n *\r\n * @default \"none\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#selectionMode)\r\n */\r\n @JsonProperty()\r\n declare selectionMode?: \"multiple\" | \"none\" | \"single\" | \"single-persist\";\r\n /**\r\n * A reference to the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html) or [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#view)\r\n */\r\n // @JsonProperty()\r\n // declare view?: (MapViewConfiguration & { type: \"2d\" }); // | (SceneViewProperties & { type: \"3d\" });\r\n /**\r\n * The view model for this widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#viewModel)\r\n */\r\n // @JsonProperty()\r\n // declare viewModel?: LayerListViewModelProperties;\r\n /**\r\n * Determines the icons used to indicate visibility.\r\n *\r\n * @default \"default\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#visibilityAppearance)\r\n */\r\n @JsonProperty()\r\n declare visibilityAppearance?: \"default\" | \"checkbox\";\r\n /**\r\n * The visible elements that are displayed within the widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-LayerList.html#visibleElements)\r\n */\r\n // declare visibleElements?: LayerListVisibleElements;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {WidgetConfiguration} from \"./widget-configuration\";\r\nimport {MapViewConfiguration} from \"./view-configuration\";\r\n\r\n// *Geo.js Properties*\r\n@JsonObject()\r\nexport class OverwriteConfiguration {\r\n /**\r\n * label text überschreiben\r\n */\r\n @JsonProperty()\r\n declare labels?: HashMap;\r\n /**\r\n * label entfernen\r\n */\r\n @JsonProperty()\r\n declare removeLabels?: string[];\r\n\r\n @JsonProperty()\r\n declare reorder?: string[];\r\n\r\n /**\r\n * label anhängen\r\n */\r\n @JsonProperty()\r\n declare append?: __esri.SymbolTableElementInfo[];\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class LegendConfiguration extends WidgetConfiguration {\r\n /**\r\n * Collection of [ActiveLayerInfo](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend-support-ActiveLayerInfo.html) objects used by the legend view to display data in the legend.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html#activeLayerInfos)\r\n */\r\n // @JsonProperty()\r\n // activeLayerInfos?: CollectionProperties;\r\n /**\r\n * Indicates whether to show the [Basemap](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html) layers in the Legend.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html#basemapLegendVisible)\r\n */\r\n @JsonProperty()\r\n declare basemapLegendVisible?: boolean;\r\n /**\r\n * Indicates the heading level to use for the legend title.\r\n *\r\n * @default 3\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html#headingLevel)\r\n */\r\n @JsonProperty()\r\n declare headingLevel?: number;\r\n /**\r\n * When `true`, layers will only be shown in the legend if they are visible in the view's extent.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html#hideLayersNotInCurrentView)\r\n */\r\n @JsonProperty()\r\n declare hideLayersNotInCurrentView?: boolean;\r\n /**\r\n * Specifies a subset of the layers to display in the legend.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html#layerInfos)\r\n */\r\n @JsonProperty()\r\n declare layerInfos?: __esri.LegendLayerInfos[];\r\n /**\r\n * If a layer uses a unique value render, only features that satisfy the layer's [definition expression](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html#definitionExpression) will be displayed in the legend when set to true.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html#respectLayerDefinitionExpression)\r\n */\r\n @JsonProperty()\r\n declarerespectLayerDefinitionExpression?: boolean;\r\n /**\r\n * Determines whether to respect the properties of the layers in the map that control the legend's visibility (`minScale`, `maxScale`, `legendEnabled`).\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html#respectLayerVisibility)\r\n */\r\n @JsonProperty()\r\n declare respectLayerVisibility: boolean;\r\n /**\r\n * Indicates the style of the legend.\r\n *\r\n * @default \"classic\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html#style)\r\n */\r\n declare style?: string | __esri.LegendStyle;\r\n /**\r\n * A reference to the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html) or [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html#view)\r\n */\r\n declare view?: (MapViewConfiguration & { type: \"2d\" }); // | (SceneViewConfiguration & { type: \"3d\" });\r\n /**\r\n * The view model for this widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Legend.html#viewModel)\r\n */\r\n // viewModel?: LegendViewModelProperties;\r\n\r\n /**\r\n * *Geo.js Properties*\r\n * MapViewer specific template configuration per layer\r\n */\r\n @JsonProperty()\r\n declare overwriteLayerInfos?: HashMap;\r\n /**\r\n * *Geo.js Properties*\r\n * MapViewer specific template configuration per layer\r\n */\r\n @JsonProperty()\r\n declare reorder?: string[];\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\n\r\n\r\n@JsonObject()\r\nexport class MaintenanceConfiguration {\r\n\r\n /**\r\n * Start displaying the maintenance information\r\n *\r\n * @example: \"2020-11-20T07:00:00.000+01:00\"\r\n */\r\n @JsonProperty()\r\n declare from: Date;\r\n\r\n /**\r\n * End displaying the maintenance information\r\n *\r\n * @example: \"2020-11-27T18:30:00.000+01:00\"\r\n */\r\n @JsonProperty()\r\n declare to: Date;\r\n\r\n /**\r\n * Message to display\r\n */\r\n @JsonProperty()\r\n declare message: string;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {LayerConfiguration} from \"./layer-configuration\";\r\nimport {PortalItemConfiguration} from \"./portal-item-configuration\";\r\nimport {SpatialReferenceConfiguration} from \"./spatial-reference-configuration\";\r\nimport {ColorConfiguration} from \"./color-configuration\";\r\n\r\n@JsonObject()\r\nexport class BasemapStyleConfiguration {\r\n /**\r\n * An authorization string used to access a resource or service.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-BasemapStyle.html#apiKey)\r\n */\r\n @JsonProperty()\r\n declare apiKey?: string;\r\n\r\n /**\r\n * The id of the basemap style.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-BasemapStyle.html#id)\r\n */\r\n @JsonProperty()\r\n declare id?: string;\r\n /**\r\n * The language of the place labels in the basemap style.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-BasemapStyle.html#language)\r\n */\r\n @JsonProperty()\r\n declare language?: string;\r\n /**\r\n * Indicates whether to display [places](https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-places.html) with the basemap style.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-BasemapStyle.html#places)\r\n */\r\n @JsonProperty()\r\n declare places?: \"all\" | \"attributed\" | \"none\";\r\n /**\r\n * The [URL](https://developers.arcgis.com/rest/basemap-styles/#service-url) to the basemap styles service.\r\n *\r\n * @default \"https://basemapstyles-api.arcgis.com/arcgis/rest/services/styles/v2/webmaps\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-BasemapStyle.html#serviceUrl)\r\n */\r\n @JsonProperty()\r\n declare serviceUrl?: string;\r\n /**\r\n * Displays country boundaries and labels based on a specific view of a country.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-BasemapStyle.html#worldview)\r\n */\r\n @JsonProperty()\r\n declare worldview?: string;\r\n}\r\n\r\n@JsonObject()\r\nexport class BasemapConfiguration {\r\n /**\r\n * A collection of tile layers that make up the basemap's features.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html#baseLayers)\r\n */\r\n @JsonProperty()\r\n declare baseLayers: LayerConfiguration[];\r\n\r\n /**\r\n * An identifier used to refer to the basemap when referencing it elsewhere.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html#id)\r\n */\r\n @JsonProperty()\r\n declare id: string;\r\n\r\n /**\r\n * The portal item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html#portalItem)\r\n */\r\n @JsonProperty()\r\n declare portalItem: PortalItemConfiguration;\r\n\r\n /**\r\n * A collection of reference layers which are displayed over the [base layers](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html#baseLayers) and all other layers in the map.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html#referenceLayers)\r\n */\r\n @JsonProperty()\r\n declare referenceLayers: LayerConfiguration[];\r\n\r\n /**\r\n * The spatial reference of the Basemap.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html#spatialReference)\r\n */\r\n @JsonProperty()\r\n declare spatialReference: SpatialReferenceConfiguration;\r\n\r\n /**\r\n * The style of the basemap from the [basemap styles service (v2)](https://developers.arcgis.com/rest/basemap-styles/).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html#style)\r\n */\r\n @JsonProperty()\r\n declare style?: BasemapStyleConfiguration;\r\n\r\n /**\r\n * The URL pointing to an image that represents the basemap.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html#thumbnailUrl)\r\n */\r\n @JsonProperty()\r\n declare thumbnailUrl: string;\r\n\r\n /**\r\n * The title of the basemap.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html#title)\r\n */\r\n @JsonProperty()\r\n declare title: string;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class GroundConfiguration {\r\n /**\r\n * A collection of [ElevationLayers](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ElevationLayer.html) that define the elevation or terrain that makes up the ground surface.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Ground.html#layers)\r\n */\r\n // layers?: CollectionProperties<\r\n // (ElevationLayerProperties & { type: \"elevation\" }) | (BaseElevationLayerProperties & { type: \"base-elevation\" })\r\n // >;\r\n /**\r\n * Specifies the user navigation constraints relative to the ground surface.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Ground.html#navigationConstraint)\r\n */\r\n // navigationConstraint?: GroundNavigationConstraintProperties;\r\n /**\r\n * Opacity of the ground, including surface default color and the basemap (without reference layers).\r\n *\r\n * @default 1\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Ground.html#opacity)\r\n */\r\n @JsonProperty()\r\n declare opacity?: number;\r\n /**\r\n * The color of the ground surface, displayed underneath the basemap.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Ground.html#surfaceColor)\r\n */\r\n @JsonProperty()\r\n declare surfaceColor?: ColorConfiguration | number[] | string;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class MapConfiguration {\r\n /**\r\n * Specifies a basemap for the map. The basemap is a set of tile layers that give geographic context to the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html) or [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html) and the other [operational layers](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html#layers) in the map. This value can be an instance of [Basemap](https://developers.arcgis.com/javascript/latest/api-reference/esri-Basemap.html) or one of the strings listed in the table below.\r\n *\r\n * Value | Source | Thumbnail\r\n * ------|------- |----------\r\n * `topo` | https://services.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer | ![basemap-topo](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/topo.jpg)\r\n * `streets` | https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer | ![basemap-streets](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/streets.jpg)\r\n * `satellite` | https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer | ![basemap-satellite](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/satellite.jpg)\r\n * `hybrid` | https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Boundaries_and_Places/MapServer and https://services.arcgisonline.com/ArcGIS/rest/services/World_Imagery/MapServer | ![basemap-hybrid](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/hybrid.jpg)\r\n * `dark-gray` | https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Reference/MapServer and https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Dark_Gray_Base/MapServer | ![basemap-dark-gray](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/dark-gray.jpg)\r\n * `gray` | https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Reference/MapServer and https://services.arcgisonline.com/ArcGIS/rest/services/Canvas/World_Light_Gray_Base/MapServer | ![basemap-gray](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/gray.jpg)\r\n * `national-geographic` | https://services.arcgisonline.com/ArcGIS/rest/services/NatGeo_World_Map/MapServer | ![basemap-national-geographic](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/national-geographic.jpg)\r\n * `oceans` | https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Reference/MapServer and https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer | ![basemap-oceans](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/oceans.jpg)\r\n * `osm` | [OpenStreetMapLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-OpenStreetMapLayer.html) | ![basemap-osm](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/osm.jpg)\r\n * `terrain` | https://services.arcgisonline.com/ArcGIS/rest/services/Reference/World_Reference_Overlay/MapServer and https://services.arcgisonline.com/ArcGIS/rest/services/World_Terrain_Base/MapServer | ![basemap-terrain](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/terrain.jpg)\r\n * `dark-gray-vector` | [Dark Gray Canvas [v2]](https://www.arcgis.com/home/item.html?id=c11ce4f7801740b2905eb03ddc963ac8) | ![dark-gray-vector](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/dark-gray.jpg)\r\n * `gray-vector` | [Light Gray Canvas [v2]](https://www.arcgis.com/home/item.html?id=8a2cba3b0ebf4140b7c0dc5ee149549a) | ![gray-vector](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/gray.jpg)\r\n * `streets-vector` | [World Street Map [v2]](https://www.arcgis.com/home/item.html?id=de26a3cf4cc9451298ea173c4b324736) | ![streets-vector](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/streets.jpg)\r\n * `streets-night-vector` | [World Street Map (Night) [v2]](https://www.arcgis.com/home/item.html?id=86f556a2d1fd468181855a35e344567f) | ![streets-night-vector](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/streets-night.jpg)\r\n * `streets-navigation-vector` | [World Navigation Map [v2]](https://www.arcgis.com/home/item.html?id=63c47b7177f946b49902c24129b87252) | ![streets-navigation-vector](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/streets-navigation.jpg)\r\n * `topo-vector` | https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer and [World Topographic Map [v2]](https://www.arcgis.com/home/item.html?id=7dc6cea0b1764a1f9af2e679f642f0f5) | ![topo-vector](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/topo.jpg)\r\n * `streets-relief-vector` | https://services.arcgisonline.com/arcgis/rest/services/Elevation/World_Hillshade/MapServer and [World Street Map (with Relief) [v2]](https://www.arcgis.com/home/item.html?id=b266e6d17fc345b498345613930fbd76) | ![streets-relief-vector](https://developers.arcgis.com/javascript/assets/img/apiref/basemap/streets-relief.jpg)\r\n *\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html#basemap)\r\n */\r\n @JsonProperty()\r\n declare basemap: BasemapConfiguration;\r\n\r\n /**\r\n * Specifies the surface properties for the map. This property is only relevant when adding the map to a 3D [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html). It renders the terrain or topographical variations in the real world on the map's surface with a collection of [ElevationLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-ElevationLayer.html). This value can be an instance of [Ground](https://developers.arcgis.com/javascript/latest/api-reference/esri-Ground.html), or one of the following strings:\r\n * * `world-elevation` for a default instance of ground using the [Terrain3D Service](https://www.arcgis.com/home/item.html?id=7029fb60158543ad845c7e1527af11e4).\r\n * * `world-topobathymetry` for an instance of ground that combines surface elevation and bathymetry using the [TopoBathy3D Service](https://www.arcgis.com/home/item.html?id=0c69ba5a5d254118841d43f03aa3e97d).\r\n *\r\n *\r\n * The ground may not be set to `null` or `undefined`, it is guaranteed to always contain an instance of type [Ground](https://developers.arcgis.com/javascript/latest/api-reference/esri-Ground.html). The elevation can be removed from the ground by setting the ground property to a new empty [Ground](https://developers.arcgis.com/javascript/latest/api-reference/esri-Ground.html) instance or by removing all the ground layers.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html#ground)\r\n */\r\n @JsonProperty()\r\n declare ground: GroundConfiguration | string;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\n// *Geo.js Properties*\r\n@JsonObject()\r\nexport class MetadataConfiguration {\r\n\r\n /**\r\n * URL template to get metadata for layers\r\n */\r\n @JsonProperty()\r\n declare urlTemplate: string;\r\n\r\n /**\r\n * METAUID for each layer\r\n * Object dictionary with layer name as key and metauid as value\r\n * To overwrite layer metauid, use metauid as key and new metauid as value or an object with layer ID as key\r\n * and new metauid as value\r\n * {\r\n * \"MFNKSTAO_DS\": \"MFNKSTAO_COL\",\r\n * \"MFNKSTAO_DS\": {\"0\": \"MFNKSTAO_COL\"},\r\n * \"Bauinventar (BILU)\": \"BILUKDVX_COL\"\r\n * }\r\n */\r\n @JsonProperty()\r\n declare metauid: any;\r\n\r\n constructor() {}\r\n}\r\n","/*\r\n Module configuration file\r\n */\r\nimport { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {ObjectUtils} from \"../../utils/object-utils\";\r\n// *Geo.js Properties*\r\n@JsonObject()\r\nexport class ModuleConfiguration {\r\n // the type of the custom configuration class as string\r\n // the custom class has to be derived from ModuleConfiguration\r\n @JsonProperty()\r\n declare configType: string;\r\n\r\n @JsonProperty()\r\n declare appName: string;\r\n\r\n @JsonProperty()\r\n declare title: string;\r\n\r\n constructor() {}\r\n\r\n updateConfig(topicConfig: ModuleConfiguration): void {\r\n for (const key in topicConfig) {\r\n if(topicConfig[key as keyof ModuleConfiguration] == null){\r\n this[key] = topicConfig[key as keyof ModuleConfiguration];\r\n } else if(this.hasOwnProperty(key) && !Array.isArray(topicConfig[key as keyof ModuleConfiguration])){\r\n this[key as keyof ModuleConfiguration] = ObjectUtils.mergeDeep(\r\n this[key as keyof ModuleConfiguration], topicConfig[key as keyof ModuleConfiguration]);\r\n }else{\r\n this[key] = topicConfig[key as keyof ModuleConfiguration];\r\n }\r\n }\r\n }\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {GraphicConfiguration} from \"./graphic-configuration\";\r\nimport {PointConfiguration} from \"./geometry-configuration\";\r\nimport {WidgetConfiguration} from \"./widget-configuration\";\r\nimport {\r\n ContentConfiguration,\r\n AttachmentsContentConfiguration,\r\n FieldsContentConfiguration,\r\n MediaContentConfiguration,\r\n TextContentConfiguration,\r\n CustomContentConfiguration, ExpressionContentConfiguration, RelationshipContentConfiguration\r\n} from \"./content-configuration\";\r\nimport {ActionButtonConfiguration, ActionSliderConfiguration, ActionToggleConfiguration} from \"./action-configuration\";\r\nimport {TextSymbolConfiguration, PictureMarkerSymbolConfiguration} from \"./symbol-configuration\";\r\nimport {FeatureLayerConfiguration} from \"./layer-configuration\";\r\nimport {FillSymbolConfiguration} from \"./symbol-configuration\";\r\nimport Collection from \"@arcgis/core/core/Collection\";\r\n\r\n\r\n// A predicate function use to determine what is the symbol type\r\nconst contentTypePredicate = (content: any) => {\r\n if (content.type === \"text\") {\r\n return TextContentConfiguration;\r\n }\r\n if (content.type === \"fields\") {\r\n return FieldsContentConfiguration;\r\n }\r\n if (content.type === \"media\") {\r\n return MediaContentConfiguration;\r\n }\r\n if (content.type === \"attachments\") {\r\n return AttachmentsContentConfiguration;\r\n }\r\n if (content.type === \"custom\") {\r\n return CustomContentConfiguration;\r\n }\r\n if (content.type === \"expression\") {\r\n return ExpressionContentConfiguration;\r\n }\r\n if (content.type === \"relationship\") {\r\n return RelationshipContentConfiguration;\r\n }\r\n\r\n return TextContentConfiguration;\r\n};\r\n\r\n// A predicate function use to determine what is the symbol type\r\nconst actionTypePredicate = (action: any) => {\r\n if (action.type === \"button\") {\r\n return ActionButtonConfiguration;\r\n }\r\n if (action.type === \"toggle\") {\r\n return ActionToggleConfiguration;\r\n }\r\n if (action.type === \"slider\") {\r\n return ActionSliderConfiguration;\r\n }\r\n return ActionButtonConfiguration;\r\n};\r\n\r\n@JsonObject()\r\nexport class PopupDockOptionsBreakpointConfiguration {\r\n /**\r\n * The maximum width of the [View](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html) at which the popup will be set to dockEnabled automatically.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#dockOptions)\r\n */\r\n @JsonProperty()\r\n declare width?: number;\r\n /**\r\n * The maximum height of the [View](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html) at which the popup will be set to dockEnabled automatically.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#dockOptions)\r\n */\r\n @JsonProperty()\r\n declare height?: number;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class PopupDockOptionsConfiguration {\r\n /**\r\n * Defines the dimensions of the [View](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html) at which to dock the popup.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#dockOptions)\r\n */\r\n @JsonProperty()\r\n declare breakpoint?: boolean | PopupDockOptionsBreakpointConfiguration;\r\n /**\r\n * If `true`, displays the dock button.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#dockOptions)\r\n */\r\n @JsonProperty()\r\n declare buttonEnabled?: boolean;\r\n /**\r\n * The position in the view at which to dock the popup.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#dockOptions)\r\n */\r\n @JsonProperty()\r\n declare position?: string | Function;\r\n\r\n constructor() {}\r\n}\r\n@JsonObject()\r\nexport class PopupVisibleElementsConfiguration {\r\n /**\r\n * **Since 4.29.** Indicates whether to display the action bar that holds the feature's [actions](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#actions).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare actionBar?: boolean;\r\n /**\r\n * Indicates whether to display a close button on the widget dialog.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare closeButton?: boolean;\r\n /**\r\n * **Since 4.29.** Indicates whether to display the collapse button on the widget dialog.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare collapseButton?: boolean;\r\n /**\r\n * Indicates whether pagination for feature navigation will be displayed.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare featureNavigation: boolean;\r\n /**\r\n * **Since 4.30.** Indicates whether to display the group heading for a list of multiple features.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare featureListLayerTitle?: boolean;\r\n /**\r\n * **Since 4.29.** Indicates whether to display the widget heading.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare heading?: boolean;\r\n /**\r\n * **Since 4.29.** Indicates whether to display the widget's loading spinner.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare spinner?: boolean;\r\n\r\n /**\r\n * *Geo.js Property*\r\n * Display coordinates at the bottom\r\n */\r\n @JsonProperty()\r\n coordinates = true;\r\n\r\n constructor() {}\r\n}\r\n@JsonObject()\r\nexport class LayerTemplate {\r\n // *Geo.js Properties*\r\n declare metauid?: string;\r\n declare layerIds?: number[];\r\n declare mode: \"append\" | \"prepend\" | \"replace\";\r\n declare template: PopupTemplateConfiguration | string;\r\n declare title?: string;\r\n /**\r\n * *Geo.js Property*\r\n * Show data exclusive for one feature.\r\n */\r\n @JsonProperty()\r\n declare exclusiveFeature?: boolean;\r\n}\r\n// *Geo.js Properties*\r\n@JsonObject()\r\nexport class PopupLayerGroupConfiguration {\r\n @JsonProperty()\r\n declare title?: string;\r\n @JsonProperty()\r\n declare metauid: string;\r\n @JsonProperty()\r\n declare layerIds?: number[];\r\n /**\r\n * Show data exclusive for one feature.\r\n */\r\n @JsonProperty()\r\n declare exclusiveFeature?: boolean;\r\n /**\r\n * Merge field name\r\n */\r\n @JsonProperty()\r\n declare mergeBy?: string;\r\n constructor() {\r\n }\r\n}\r\n@JsonObject()\r\nexport class PopupConfiguration extends WidgetConfiguration {\r\n /**\r\n * [Collection](https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Collection.html) of [action](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionButton.html) or [action toggle](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionToggle.html) objects.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#actions)\r\n */\r\n @JsonProperty({type: actionTypePredicate})\r\n declare actions?: Collection<\r\n (ActionButtonConfiguration & { type: \"button\" }) | (ActionToggleConfiguration & { type: \"toggle\" })\r\n >;\r\n\r\n /**\r\n * Position of the popup in relation to the selected feature.\r\n *\r\n * @default \"auto\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#alignment)\r\n */\r\n @JsonProperty()\r\n declare alignment: \"auto\" | \"top-center\" | \"top-right\" | \"bottom-left\" | \"bottom-center\" | \"bottom-right\" | Function;\r\n /**\r\n * This closes the popup when the [View](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html) camera or [Viewpoint](https://developers.arcgis.com/javascript/latest/api-reference/esri-Viewpoint.html) changes.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#autoCloseEnabled)\r\n */\r\n @JsonProperty()\r\n declare autoCloseEnabled: boolean;\r\n /**\r\n * Indicates whether to enable collapse functionality for the popup.\r\n *\r\n * @default true\r\n * @deprecated since 4.29. Use {@link module:esri/widgets/Popup~VisibleElements PopupVisibleElements.collapseButton} instead.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#collapseEnabled)\r\n */\r\n @JsonProperty()\r\n declare collapseEnabled: boolean;\r\n /**\r\n * The content of the popup.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#content)\r\n */\r\n @JsonProperty()\r\n declare content: string | HTMLElement | WidgetConfiguration;\r\n\r\n /**\r\n * Enables automatic creation of a popup template for layers that have popups enabled but no popupTemplate defined.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#defaultPopupTemplateEnabled)\r\n */\r\n @JsonProperty()\r\n declare defaultPopupTemplateEnabled: boolean;\r\n /**\r\n * Indicates whether the placement of the popup is docked to the side of the view.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#dockEnabled)\r\n */\r\n @JsonProperty()\r\n declare dockEnabled: boolean;\r\n /**\r\n * Docking the popup allows for a better user experience, particularly when opening popups in apps on mobile devices.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#dockOptions)\r\n */\r\n @JsonProperty()\r\n declare dockOptions: PopupDockOptionsConfiguration;\r\n /**\r\n * An array of features associated with the popup.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#features)\r\n */\r\n @JsonProperty()\r\n declare features: GraphicConfiguration[];\r\n /**\r\n * Indicates the heading level to use for the [title](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#title) of the popup.\r\n *\r\n * @default 2\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#headingLevel)\r\n */\r\n @JsonProperty()\r\n declare headingLevel?: number;\r\n /**\r\n * Highlight the selected popup feature using the [highlightOptions](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#highlightOptions) set on the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html) or the [highlightOptions](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#highlightOptions) set on the [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#highlightEnabled)\r\n */\r\n @JsonProperty()\r\n declare highlightEnabled: boolean;\r\n /**\r\n * Point used to position the popup.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#location)\r\n */\r\n @JsonProperty()\r\n declare location: PointConfiguration;\r\n\r\n /**\r\n * Defines the maximum icons displayed at one time in the action area.\r\n *\r\n * @default 3\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#maxInlineActions)\r\n */\r\n @JsonProperty()\r\n declare maxInlineActions?: number | null;\r\n\r\n /**\r\n * An array of pending Promises that have not yet been fulfilled.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#promises)\r\n */\r\n @JsonProperty()\r\n declare promises: Array>;\r\n\r\n /**\r\n * Index of the feature that is [selected](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#selectedFeature).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#selectedFeatureIndex)\r\n */\r\n @JsonProperty()\r\n declare selectedFeatureIndex: number;\r\n /**\r\n * Indicates whether to display a spinner at the popup location prior to its display when it has pending promises.\r\n *\r\n * @deprecated since 4.29. Use {@link module:esri/widgets/Popup~VisibleElements PopupVisibleElements.spinner} instead.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#spinnerEnabled)\r\n */\r\n @JsonProperty()\r\n declare spinnerEnabled: boolean;\r\n /**\r\n * The title of the popup.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#title)\r\n */\r\n @JsonProperty()\r\n declare title: string;\r\n /**\r\n * A reference to the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html) or [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#view)\r\n */\r\n // @JsonProperty()\r\n // declare view?: (MapViewConfiguration & { type: \"2d\" }) | (SceneViewConfiguration & { type: \"3d\" });\r\n /**\r\n * This is a class that contains all the logic (properties and methods) that controls this widget's behavior.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#viewModel)\r\n */\r\n // @JsonProperty()\r\n // declare viewModel: PopupViewModelConfiguration;\r\n /**\r\n * The visible elements that are displayed within the widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#visibleElements)\r\n */\r\n @JsonProperty()\r\n declare visibleElements: PopupVisibleElementsConfiguration;\r\n /**\r\n * *Geo.js Property*\r\n * Disable Popup.\r\n */\r\n @JsonProperty()\r\n declare disabled?: boolean;\r\n /**\r\n * *Geo.js Property*\r\n * Show data exclusive for one feature.\r\n */\r\n @JsonProperty()\r\n declare exclusiveFeature?: boolean;\r\n /**\r\n * *Geo.js Property*\r\n * Show data exclusive for one feature.\r\n */\r\n @JsonProperty()\r\n declare highlightSymbol?: FillSymbolConfiguration;\r\n /**\r\n * *Geo.js Properties*\r\n * Popup query feature layer\r\n * avls: AV Liegenschaften\r\n */\r\n @JsonProperty()\r\n declare layers?: HashMap;\r\n /**\r\n * *Geo.js Properties*\r\n * MapViewer specific template configuration per layer\r\n */\r\n @JsonProperty()\r\n declare layerGroups?: PopupLayerGroupConfiguration[];\r\n /**\r\n * *Geo.js Properties*\r\n * MapViewer specific template configuration per layer\r\n */\r\n @JsonProperty()\r\n declare layerTemplates?: LayerTemplate[];\r\n /**\r\n * *Geo.js Property*\r\n * Show data exclusive for one feature.\r\n */\r\n @JsonProperty()\r\n declare pointerSymbol: PictureMarkerSymbolConfiguration | TextSymbolConfiguration;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class PopupExpressionInfoConfiguration {\r\n /**\r\n * An [Arcade](https://developers.arcgis.com/javascript/latest/arcade/) expression following the specification defined by the [Arcade Popup Profile](https://developers.arcgis.com/javascript/latest/arcade/#popup).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-ExpressionInfo.html#expression)\r\n */\r\n @JsonProperty()\r\n declare expression: string;\r\n /**\r\n * The name of the expression.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-ExpressionInfo.html#name)\r\n */\r\n @JsonProperty()\r\n declare name: string;\r\n /**\r\n * Indicates the return type of the Arcade expression.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-ExpressionInfo.html#returnType)\r\n */\r\n @JsonProperty()\r\n declare returnType?: \"string\" | \"number\";\r\n /**\r\n * The title used to describe the value returned by the expression in the popup.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-ExpressionInfo.html#title)\r\n */\r\n @JsonProperty()\r\n declare title: string;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class PopupTemplateConfiguration {\r\n /**\r\n * A [Collection](https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Collection.html) of [action](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionButton.html) or [action toggle](https://developers.arcgis.com/javascript/latest/api-reference/esri-support-actions-ActionToggle.html) objects.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html#actions)\r\n */\r\n @JsonProperty({type: actionTypePredicate})\r\n declare actions?: Collection<\r\n (ActionButtonConfiguration & { type: \"button\" }) | (ActionToggleConfiguration & { type: \"toggle\" })\r\n >;\r\n /**\r\n * The template for defining and formatting a popup's content.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html#content)\r\n */\r\n @JsonProperty({ type: contentTypePredicate })\r\n declare content: ContentConfiguration[] | string | Function | Promise;\r\n /**\r\n * An array of objects or [ExpressionInfo[]](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-ExpressionInfo.html) that reference [Arcade](https://developers.arcgis.com/javascript/latest/arcade/) expressions following the specification defined by the [Arcade Popup Profile](https://developers.arcgis.com/javascript/latest/arcade/#popup).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html#expressionInfos)\r\n */\r\n @JsonProperty()\r\n declare expressionInfos: PopupExpressionInfoConfiguration[];\r\n /**\r\n * An array of [FieldInfo](https://developers.arcgis.com/javascript/latest/api-reference/esri-popup-FieldInfo.html) that defines how fields in the dataset or values from [Arcade](https://developers.arcgis.com/javascript/latest/arcade/) expressions participate in a popup.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html#fieldInfos)\r\n */\r\n // @JsonProperty()\r\n // declare fieldInfos: FieldInfoConfiguration[];\r\n /**\r\n * Indicates whether or not editor tracking should display.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html#lastEditInfoEnabled)\r\n */\r\n @JsonProperty()\r\n declare lastEditInfoEnabled: boolean;\r\n /**\r\n * Additional options that can be defined for the popup layer.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html#layerOptions)\r\n */\r\n // @JsonProperty()\r\n // declare layerOptions: LayerOptionsConfiguration;\r\n /**\r\n * An array of field names used in the PopupTemplate.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html#outFields)\r\n */\r\n @JsonProperty()\r\n declare outFields: string[];\r\n /**\r\n * Indicates whether actions should replace existing [popup actions](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html#actions).\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html#overwriteActions)\r\n */\r\n @JsonProperty()\r\n declare overwriteActions: boolean;\r\n /**\r\n * Indicates whether to include the feature's geometry for use by the template.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html#returnGeometry)\r\n */\r\n @JsonProperty()\r\n declare returnGeometry?: boolean;\r\n /**\r\n * The template for defining how to format the title used in a popup.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html#title)\r\n */\r\n @JsonProperty()\r\n declare title: string | Function | Promise;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {ExtentConfiguration} from \"./geometry-configuration\";\r\nimport {BasemapConfiguration} from \"./map-configuration\";\r\n\r\n@JsonObject()\r\nexport class PortalConfiguration {\r\n /**\r\n * The access level of the organization.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#access)\r\n */\r\n @JsonProperty()\r\n declare access: \"public\" | \"private\";\r\n\r\n /**\r\n * When `true`, access to the organization's Portal resources must occur over SSL.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#allSSL)\r\n */\r\n @JsonProperty()\r\n declare allSSL: boolean;\r\n\r\n /**\r\n * The authentication mode for handling authentication when the user attempts to access a secure resource.\r\n *\r\n * @default \"auto\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#authMode)\r\n */\r\n @JsonProperty()\r\n declare authMode?: \"anonymous\" | \"auto\" | \"immediate\" | \"no-prompt\";\r\n\r\n /**\r\n * Array of trusted servers to send credentials to when making Cross-Origin Resource Sharing (CORS) requests to\r\n * access services secured with web-tier authentication.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#authorizedCrossOriginDomains)\r\n */\r\n @JsonProperty()\r\n declare authorizedCrossOriginDomains: string[];\r\n\r\n /**\r\n * The query that defines the basemaps that should be displayed in the\r\n * [BasemapGallery](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html)\r\n * when [useVectorBasemaps]\r\n * (https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#useVectorBasemaps)\r\n * is not true.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#basemapGalleryGroupQuery)\r\n */\r\n @JsonProperty()\r\n declare basemapGalleryGroupQuery: string;\r\n\r\n /**\r\n * The query that defines the 3D basemaps that should be displayed in the [BasemapGallery](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#basemapGalleryGroupQuery3D)\r\n */\r\n @JsonProperty()\r\n declare basemapGalleryGroupQuery3D?: string;\r\n\r\n /**\r\n * The Bing key to use for web maps using Bing Maps.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#bingKey)\r\n */\r\n @JsonProperty()\r\n declare bingKey: string;\r\n\r\n /**\r\n * Indicates whether an organization can list applications in the marketplace.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#canListApps)\r\n */\r\n @JsonProperty()\r\n declare canListApps: boolean;\r\n\r\n /**\r\n * Indicates whether an organization can list data services in the marketplace.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#canListData)\r\n */\r\n @JsonProperty()\r\n declare canListData: boolean;\r\n\r\n /**\r\n * Indicates whether an organization can list pre-provisioned items in the marketplace.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#canListPreProvisionedItems)\r\n */\r\n @JsonProperty()\r\n declare canListPreProvisionedItems: boolean;\r\n\r\n /**\r\n * Indicates whether an organization can provision direct purchases in the marketplace without customer request.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#canProvisionDirectPurchase)\r\n */\r\n @JsonProperty()\r\n declare canProvisionDirectPurchase: boolean;\r\n\r\n /**\r\n * When `true`, the organization's public items, groups and users are included in search queries.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#canSearchPublic)\r\n */\r\n @JsonProperty()\r\n declare canSearchPublic: boolean;\r\n\r\n /**\r\n * The Bing key can be shared to the public and is returned as part of a portal's description call (`/sharing/rest/portals/`).\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#canShareBingPublic)\r\n */\r\n @JsonProperty()\r\n declare canShareBingPublic: boolean;\r\n\r\n /**\r\n * When `true`, members of the organization can share resources outside the organization.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#canSharePublic)\r\n */\r\n @JsonProperty()\r\n declare canSharePublic: boolean;\r\n\r\n /**\r\n * Indicates whether to allow an organization with an enterprise IDP configured to be able to turn on or off the ArcGIS sign in.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#canSignInArcGIS)\r\n */\r\n @JsonProperty()\r\n declare canSignInArcGIS: boolean;\r\n\r\n /**\r\n * Indicates whether to allow an organization with an enterprise IDP configured to be able to turn on or off the enterprise sign in.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#canSignInIDP)\r\n */\r\n @JsonProperty()\r\n declare canSignInIDP: boolean;\r\n\r\n /**\r\n * The query that identifies the group containing the color sets used for rendering in the map viewer.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#colorSetsGroupQuery)\r\n */\r\n @JsonProperty()\r\n declare colorSetsGroupQuery: string;\r\n\r\n /**\r\n * Indicates whether to allow the organization to disable commenting.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#commentsEnabled)\r\n */\r\n @JsonProperty()\r\n declare commentsEnabled: boolean;\r\n\r\n /**\r\n * Date the organization was created.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#created)\r\n */\r\n @JsonProperty()\r\n declare created: Date;\r\n\r\n /**\r\n * The default locale (language and country) information.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#culture)\r\n */\r\n @JsonProperty()\r\n declare culture: string;\r\n\r\n /**\r\n * The custom base URL for the portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#customBaseUrl)\r\n */\r\n @JsonProperty()\r\n declare customBaseUrl: string;\r\n\r\n /**\r\n * The query that defines the default 3d basemap to use in scene views for the portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#default3DBasemapQuery)\r\n */\r\n @JsonProperty()\r\n declare default3DBasemapQuery?: string;\r\n\r\n /**\r\n * The default basemap to use for the portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#defaultBasemap)\r\n */\r\n @JsonProperty()\r\n declare defaultBasemap: BasemapConfiguration;\r\n /**\r\n * The default developer basemap to use for the portal when an [apiKey](https://developers.arcgis.com/javascript/latest/api-reference/esri-config.html#apiKey) is defined.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#defaultDevBasemap)\r\n */\r\n @JsonProperty()\r\n declare defaultDevBasemap?: BasemapConfiguration;\r\n\r\n /**\r\n * The default extent to use for the portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#defaultExtent)\r\n */\r\n @JsonProperty()\r\n declare defaultExtent: ExtentConfiguration;\r\n\r\n /**\r\n * The default vector basemap to use for the portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#defaultVectorBasemap)\r\n */\r\n @JsonProperty()\r\n declare defaultVectorBasemap: BasemapConfiguration;\r\n\r\n /**\r\n * A description of the organization/portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#description)\r\n */\r\n @JsonProperty()\r\n declare description: string;\r\n\r\n /**\r\n * The query that defines the basemaps that should be displayed in the [BasemapGallery](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html) when an [apiKey](https://developers.arcgis.com/javascript/latest/api-reference/esri-config.html#apiKey) is defined.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#devBasemapGalleryGroupQuery)\r\n */\r\n @JsonProperty()\r\n declare devBasemapGalleryGroupQuery?: string;\r\n\r\n /**\r\n * Boolean value indicating whether to opt-in to the [Esri User Experience Improvement (EUEI) program](https://doc.arcgis.com/en/arcgis-online/reference/faq.htm#ESRI_QUESTIONANSWER_AED97F28DCD84F7682623C2FA9E5CE49).\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#eueiEnabled)\r\n */\r\n @JsonProperty()\r\n declare eueiEnabled: boolean;\r\n\r\n /**\r\n * The featured groups for the portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#featuredGroups)\r\n */\r\n // @JsonProperty()\r\n // declare featuredGroups: PortalFeaturedGroups[];\r\n\r\n /**\r\n * The query that defines the featured group.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#featuredItemsGroupQuery)\r\n */\r\n @JsonProperty()\r\n declare featuredItemsGroupQuery: string;\r\n\r\n /**\r\n * The query that identifies the group containing features items for the gallery.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#galleryTemplatesGroupQuery)\r\n */\r\n @JsonProperty()\r\n declare galleryTemplatesGroupQuery: string;\r\n\r\n /**\r\n * Indicates whether the organization has content categories.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#hasCategorySchema)\r\n */\r\n @JsonProperty()\r\n declare hasCategorySchema: boolean;\r\n\r\n /**\r\n * Indicates whether the organization has classification schema.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#hasClassificationSchema)\r\n */\r\n @JsonProperty()\r\n declare hasClassificationSchema?: boolean;\r\n\r\n /**\r\n * This class contains properties to obtain information for various web services available on the portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#helperServices)\r\n */\r\n @JsonProperty()\r\n declare helperServices: any;\r\n\r\n /**\r\n * The group that contains featured content to be displayed on the home page.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#homePageFeaturedContent)\r\n */\r\n @JsonProperty()\r\n declare homePageFeaturedContent: string;\r\n\r\n /**\r\n * The number of featured items that can be displayed on the home page.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#homePageFeaturedContentCount)\r\n */\r\n @JsonProperty()\r\n declare homePageFeaturedContentCount: number;\r\n\r\n /**\r\n * The port used by the portal for HTTP communication.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#httpPort)\r\n */\r\n @JsonProperty()\r\n declare httpPort: number;\r\n\r\n /**\r\n * The port used by the portal for HTTPS communication.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#httpsPort)\r\n */\r\n @JsonProperty()\r\n declare httpsPort: number;\r\n\r\n /**\r\n * The id of the organization that owns this portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#id)\r\n */\r\n @JsonProperty()\r\n declare id: string;\r\n\r\n /**\r\n * The country code of the calling IP (ArcGIS Online only).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#ipCntryCode)\r\n */\r\n @JsonProperty()\r\n declare ipCntryCode: string;\r\n\r\n /**\r\n * Indicates whether the portal is an organization.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#isOrganization)\r\n */\r\n @JsonProperty()\r\n declare isOrganization: boolean;\r\n\r\n /**\r\n * Indicates if the portal is on-premises.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#isPortal)\r\n */\r\n @JsonProperty()\r\n declare isPortal: boolean;\r\n\r\n /**\r\n * Indicates if the portal is in read-only mode.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#isReadOnly)\r\n */\r\n @JsonProperty()\r\n declare isReadOnly: boolean;\r\n\r\n /**\r\n * The query that identifies the group containing editing templates.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#layerTemplatesGroupQuery)\r\n */\r\n @JsonProperty()\r\n declare layerTemplatesGroupQuery: string;\r\n\r\n /**\r\n * Indicates whether the portal's resources have loaded.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#loaded)\r\n */\r\n @JsonProperty()\r\n declare readonly loaded: boolean;\r\n\r\n /**\r\n * The maximum validity in minutes of tokens issued for users of the organization.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#maxTokenExpirationMinutes)\r\n */\r\n @JsonProperty()\r\n declare maxTokenExpirationMinutes: number;\r\n\r\n /**\r\n * Date the organization was last modified.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#modified)\r\n */\r\n @JsonProperty()\r\n declare modified: Date;\r\n\r\n /**\r\n * Name of the organization.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#name)\r\n */\r\n @JsonProperty()\r\n declare name: string;\r\n\r\n /**\r\n * URL of the portal host.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#portalHostname)\r\n */\r\n @JsonProperty()\r\n declare portalHostname: string;\r\n\r\n /**\r\n * The portal mode.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#portalMode)\r\n */\r\n @JsonProperty()\r\n declare portalMode: \"multitenant\" | \"singletenant\";\r\n\r\n /**\r\n * Properties specific to the organization, for example the \"contact us\" link.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#portalProperties)\r\n */\r\n @JsonProperty()\r\n declare portalProperties: any;\r\n\r\n /**\r\n * Indicates whether the recycle bin is enabled for the organization.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#recycleBinEnabled)\r\n */\r\n @JsonProperty()\r\n declare recycleBinEnabled?: boolean;\r\n\r\n /**\r\n * The region for the organization.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#region)\r\n */\r\n @JsonProperty()\r\n declare region: string;\r\n\r\n /**\r\n * The REST URL for the portal, for example \"https://www.arcgis.com/sharing/rest\" for ArcGIS Online and \"https://www.example.com/arcgis/sharing/rest\" for your in-house portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#restUrl)\r\n */\r\n @JsonProperty()\r\n declare readonly restUrl: string;\r\n\r\n /**\r\n * Custom HTML for the home page.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#rotatorPanels)\r\n */\r\n @JsonProperty()\r\n declare rotatorPanels: any[];\r\n\r\n /**\r\n * Indicates whether the description of your organization displays on the home page.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#showHomePageDescription)\r\n */\r\n @JsonProperty()\r\n declare showHomePageDescription: boolean;\r\n\r\n /**\r\n * The JSON used to create the property values when the `Portal` is loaded.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#sourceJSON)\r\n */\r\n @JsonProperty()\r\n declare sourceJSON: any;\r\n\r\n /**\r\n * Indicates whether hosted services are supported.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#supportsHostedServices)\r\n */\r\n @JsonProperty()\r\n declare supportsHostedServices: boolean;\r\n\r\n /**\r\n * The query that defines the symbols sets.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#symbolSetsGroupQuery)\r\n */\r\n @JsonProperty()\r\n declare symbolSetsGroupQuery: string;\r\n\r\n /**\r\n * The query that defines the collection of templates that will appear in the template gallery.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#templatesGroupQuery)\r\n */\r\n @JsonProperty()\r\n declare templatesGroupQuery: string;\r\n\r\n /**\r\n * The URL to the thumbnail of the organization.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#thumbnailUrl)\r\n */\r\n @JsonProperty()\r\n declare readonly thumbnailUrl: string;\r\n\r\n /**\r\n * Sets the units of measure for the organization's users.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#units)\r\n */\r\n @JsonProperty()\r\n declare units: \"english\" | \"metric\";\r\n\r\n /**\r\n * The URL to the portal instance.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#url)\r\n */\r\n @JsonProperty()\r\n declare url: string;\r\n\r\n /**\r\n * The prefix selected by the organization's administrator to be used with the customBaseURL.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#urlKey)\r\n */\r\n @JsonProperty()\r\n declare urlKey: string;\r\n\r\n /**\r\n * When `false`, 3D basemaps are hidden from the [BasemapGallery](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html), regardless of the type of the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#use3dBasemaps)\r\n */\r\n @JsonProperty()\r\n declare use3dBasemaps?: boolean;\r\n\r\n /**\r\n * When `false`, The default 3d basemap is not used in the SceneViewer.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#useDefault3dBasemap)\r\n */\r\n @JsonProperty()\r\n declare useDefault3dBasemap?: boolean;\r\n\r\n /**\r\n * Information representing a registered user of the portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#user)\r\n */\r\n // @JsonProperty()\r\n // declare user: PortalUser;\r\n\r\n /**\r\n * When `true`, only simple where clauses that are compliant with SQL92 can be used when querying layers and tables.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#useStandardizedQuery)\r\n */\r\n @JsonProperty()\r\n declare useStandardizedQuery: boolean;\r\n\r\n /**\r\n * When `true`, the organization has opted in to use the vector tile basemaps, and (a) [vectorBasemapGalleryGroupQuery](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#vectorBasemapGalleryGroupQuery) should be used instead of [basemapGalleryGroupQuery](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#basemapGalleryGroupQuery), while (b) [defaultVectorBasemap](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#defaultVectorBasemap) should be used instead of [defaultBasemap](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#defaultBasemap).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#useVectorBasemaps)\r\n */\r\n @JsonProperty()\r\n declare useVectorBasemaps: boolean;\r\n\r\n /**\r\n * The query that defines the vector tiles basemaps that should be displayed in the [BasemapGallery](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-BasemapGallery.html) when [useVectorBasemaps](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#useVectorBasemaps) is true.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-Portal.html#vectorBasemapGalleryGroupQuery)\r\n */\r\n @JsonProperty()\r\n declare vectorBasemapGalleryGroupQuery: string;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport { ExtentConfiguration } from \"./geometry-configuration\";\r\nimport {PortalConfiguration} from \"./portal-configuration\";\r\n\r\n@JsonObject()\r\nexport class PortalItemConfiguration {\r\n /**\r\n * Indicates the level of access to this item: `private`, `shared`, `org`, or `public`.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#access)\r\n */\r\n @JsonProperty()\r\n access: \"private\" | \"shared\" | \"org\" | \"public\";\r\n\r\n /**\r\n * Information on the source of the item and its copyright status.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#accessInformation)\r\n */\r\n @JsonProperty()\r\n declare accessInformation: string;\r\n\r\n /**\r\n * An authorization string used to access the portal item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#apiKey)\r\n */\r\n @JsonProperty()\r\n declare apiKey?: string;\r\n\r\n /**\r\n * Contains an array of objects containing proxy information for premium platform services.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#applicationProxies)\r\n */\r\n // @JsonProperty()\r\n // declare readonly applicationProxies: PortalItemApplicationProxies[];\r\n\r\n /**\r\n * Average rating.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#avgRating)\r\n */\r\n @JsonProperty()\r\n declare avgRating: number;\r\n\r\n /**\r\n * An array of organization categories that are set on the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#categories)\r\n */\r\n @JsonProperty()\r\n declare categories: string[];\r\n\r\n /**\r\n * The classification information for the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#classification)\r\n */\r\n @JsonProperty()\r\n declare classification?: HashMap;\r\n\r\n /**\r\n * The date the item was created.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#created)\r\n */\r\n @JsonProperty()\r\n declare created: Date;\r\n\r\n /**\r\n * The item's locale information (language and country).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#culture)\r\n */\r\n @JsonProperty()\r\n declare culture: string;\r\n\r\n /**\r\n * The detailed description of the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#description)\r\n */\r\n @JsonProperty()\r\n declare description: string;\r\n\r\n /**\r\n * The geographic extent, or bounding rectangle, of the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#extent)\r\n */\r\n @JsonProperty()\r\n declare extent: ExtentConfiguration;\r\n\r\n /**\r\n * An array of group categories set on the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#groupCategories)\r\n */\r\n @JsonProperty()\r\n declare groupCategories: string[];\r\n\r\n /**\r\n * The unique id for the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#id)\r\n */\r\n @JsonProperty()\r\n declare id: string;\r\n\r\n /**\r\n * Indicates whether a layer can be created from this item using [Layer.fromPortalItem()](esri-layers-Layer.html#fromPortalItem).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#isLayer)\r\n */\r\n @JsonProperty()\r\n declare readonly isLayer: boolean;\r\n\r\n /**\r\n * Indicates whether an item can be updated and deleted.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#itemControl)\r\n */\r\n @JsonProperty()\r\n declare readonly itemControl: \"admin\" | \"update\" | \"null\";\r\n\r\n /**\r\n * The URL to the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#itemUrl)\r\n */\r\n @JsonProperty()\r\n declare readonly itemUrl: string;\r\n\r\n /**\r\n * Information on license or restrictions related to the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#licenseInfo)\r\n */\r\n @JsonProperty()\r\n declare licenseInfo: string;\r\n\r\n /**\r\n * Indicates whether the item's resources have loaded from the portal.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#loaded)\r\n */\r\n @JsonProperty()\r\n declare readonly loaded: boolean;\r\n\r\n /**\r\n * The date the item was last modified.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#modified)\r\n */\r\n @JsonProperty()\r\n declare modified: Date;\r\n\r\n /**\r\n * The name of the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#name)\r\n */\r\n @JsonProperty()\r\n declare name: string;\r\n\r\n /**\r\n * Number of comments on the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#numComments)\r\n */\r\n @JsonProperty()\r\n declare numComments: number;\r\n\r\n /**\r\n * Number of ratings on the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#numRatings)\r\n */\r\n @JsonProperty()\r\n declare numRatings: number;\r\n\r\n /**\r\n * Number of views on the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#numViews)\r\n */\r\n @JsonProperty()\r\n declare numViews: number;\r\n\r\n /**\r\n * The username of the user who owns this item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#owner)\r\n */\r\n @JsonProperty()\r\n declare owner: string;\r\n\r\n /**\r\n * The ID of the folder in which the owner has stored the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#ownerFolder)\r\n */\r\n @JsonProperty()\r\n declare ownerFolder: string;\r\n\r\n /**\r\n * The portal that contains the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#portal)\r\n */\r\n @JsonProperty()\r\n declare portal: PortalConfiguration;\r\n\r\n /**\r\n * An array of string URLs.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#screenshots)\r\n */\r\n @JsonProperty()\r\n declare screenshots: string[];\r\n\r\n /**\r\n * The size of the item (in bytes).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#size)\r\n */\r\n @JsonProperty()\r\n declare size: number;\r\n\r\n /**\r\n * A summary description of the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#snippet)\r\n */\r\n @JsonProperty()\r\n declare snippet: string;\r\n\r\n /**\r\n * The JSON used to create the property values when the `PortalItem` is loaded.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#sourceJSON)\r\n */\r\n @JsonProperty()\r\n declare sourceJSON: any;\r\n\r\n /**\r\n * User defined tags that describe the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#tags)\r\n */\r\n @JsonProperty()\r\n declare tags: string[];\r\n\r\n /**\r\n * The URL to the thumbnail used for the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#thumbnailUrl)\r\n */\r\n declare readonly thumbnailUrl: string;\r\n\r\n /**\r\n * The title for the item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#title)\r\n */\r\n @JsonProperty()\r\n declare title: string;\r\n\r\n /**\r\n * The GIS content type of this item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#type)\r\n */\r\n @JsonProperty()\r\n declare type: string;\r\n\r\n /**\r\n * Type keywords that describe the type of content of this item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#typeKeywords)\r\n */\r\n @JsonProperty()\r\n declare typeKeywords: string[];\r\n\r\n /**\r\n * The service URL of this item.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-portal-PortalItem.html#url)\r\n */\r\n @JsonProperty()\r\n declare url: string;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\n// *Geo.js Properties*\r\n@JsonObject()\r\nexport class ProxyConfiguration {\r\n @JsonProperty()\r\n declare url: string;\r\n\r\n @JsonProperty()\r\n declare urlPrefixes: string[];\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {WidgetConfiguration} from \"./widget-configuration\";\r\nimport {MapViewConfiguration} from \"./view-configuration\";\r\n\r\n@JsonObject()\r\nexport class ScaleBarConfiguration extends WidgetConfiguration {\r\n /**\r\n * The style for the scale bar.\r\n *\r\n * @default \"line\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ScaleBar.html#style)\r\n */\r\n @JsonProperty()\r\n declare style: \"ruler\" | \"line\";\r\n\r\n /**\r\n * Units to use for the scale bar.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ScaleBar.html#unit)\r\n */\r\n @JsonProperty()\r\n declare unit?: \"metric\" | \"imperial\" | \"dual\";\r\n\r\n /**\r\n * A reference to the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ScaleBar.html#view)\r\n */\r\n @JsonProperty()\r\n declare view?: MapViewConfiguration;\r\n /**\r\n * The view model for this widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-ScaleBar.html#viewModel)\r\n */\r\n // @JsonProperty()\r\n // declare viewModel?: ScaleBarViewModelProperties;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","/*\r\n Core configuration files\r\n */\r\nimport { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {ExtentConfiguration, GeometryConfiguration} from \"./geometry-configuration\";\r\nimport {\r\n FillSymbolConfiguration,\r\n PictureMarkerSymbolConfiguration, SimpleLineSymbolConfiguration,\r\n SimpleMarkerSymbolConfiguration\r\n} from \"./symbol-configuration\";\r\nimport {PopupTemplateConfiguration} from \"./popup-configuration\";\r\nimport {PortalItemConfiguration} from \"./portal-item-configuration\";\r\nimport {FeatureLayerConfiguration} from \"./layer-configuration\";\r\nimport FeatureLayer from \"@arcgis/core/layers/FeatureLayer\";\r\n\r\n@JsonObject()\r\nexport class SearchSourceFilterConfiguration {\r\n /**\r\n * The where clause specified for filtering suggests or search results.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#filter)\r\n */\r\n @JsonProperty()\r\n declare where?: string;\r\n\r\n /**\r\n * The filter geometry for suggests or search results.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#filter)\r\n */\r\n @JsonProperty({ type: GeometryConfiguration })\r\n declare geometry?: GeometryConfiguration;\r\n\r\n constructor() {}\r\n}\r\n\r\n// A predicate function use to determine what is the symbol type\r\nconst symbolTypePredicate = (symbol: any) => {\r\n if (symbol.type === \"picture-marker\") {\r\n return PictureMarkerSymbolConfiguration;\r\n }\r\n if (symbol.type === \"simple-marker\") {\r\n return SimpleMarkerSymbolConfiguration;\r\n }\r\n return SimpleMarkerSymbolConfiguration;\r\n};\r\n\r\n// A predicate function use to determine what is the right searchSource type\r\nconst searchSourcePredicate = (searchSource: any) =>\r\n (searchSource[\"url\"] !== undefined || searchSource[\"locator\"] !== undefined )?\r\n LocatorSearchSourceConfiguration : (searchSource[\"maxExtent\"] !== undefined)?\r\n CoordinateSearchSourceConfiguration: LayerSearchSourceConfiguration;\r\n\r\n\r\nexport enum SearchSourceType {\r\n Locator = \"locator\",\r\n Layer = \"layer\",\r\n Custom = \"custom\",\r\n Coordinate = \"coordinate\"\r\n}\r\n/**\r\n * *Geo.js Property*\r\n * Query for additional data\r\n */\r\n@JsonObject()\r\nexport class SearchSourceQueryConfiguration {\r\n @JsonProperty()\r\n declare expression: string;\r\n @JsonProperty()\r\n declare id: string;\r\n @JsonProperty()\r\n declare layerId?: number;\r\n @JsonProperty()\r\n declare outFields?: string[];\r\n @JsonProperty()\r\n declare popupTemplate?: PopupTemplateConfiguration | string;\r\n @JsonProperty()\r\n declare portalItem?: PortalItemConfiguration;\r\n @JsonProperty()\r\n declare title?: string;\r\n constructor() {}\r\n}\r\n/**\r\n * *Geo.js Property*\r\n * Query for additional data\r\n */\r\n@JsonObject()\r\nexport class SearchResultSymbolConfiguration {\r\n @JsonProperty()\r\n declare highlight: FillSymbolConfiguration;\r\n @JsonProperty()\r\n declare line: SimpleLineSymbolConfiguration;\r\n @JsonProperty()\r\n declare pointer: PictureMarkerSymbolConfiguration;\r\n constructor() {}\r\n}\r\n@JsonObject()\r\nexport class SearchSourceConfiguration {\r\n /**\r\n * *Geo.js Property*\r\n * Query for additional data\r\n */\r\n @JsonProperty()\r\n declare name?: string;\r\n /**\r\n * *Geo.js Property*\r\n * Type of search source.\r\n * For internal use only.\r\n */\r\n @JsonProperty()\r\n declare sourceType: SearchSourceType;\r\n /**\r\n * *Geo.js Property*\r\n * Query for additional data\r\n */\r\n @JsonProperty()\r\n declare query?: SearchSourceQueryConfiguration;\r\n /**\r\n * *Geo.js Property*\r\n * Query for additional data\r\n */\r\n @JsonProperty()\r\n declare queries?: SearchSourceQueryConfiguration[];\r\n\r\n /**\r\n * Indicates whether to automatically navigate to the selected result once selected.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#autoNavigate)\r\n */\r\n @JsonProperty()\r\n declare autoNavigate?: boolean;\r\n\r\n /**\r\n * For filtering suggests or search results.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#filter)\r\n */\r\n @JsonProperty({ type: SearchSourceFilterConfiguration })\r\n declare filter?: SearchSourceFilterConfiguration;\r\n /**\r\n * Function used to get search results.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#getResults)\r\n */\r\n declare getResults?: (params: any) => Promise<__esri.SearchResult[]>;\r\n /**\r\n * Function used to get search suggestions.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#getSuggestions)\r\n */\r\n declare getSuggestions?: (params: any) => Promise<__esri.SuggestResult[]>;\r\n /**\r\n * Indicates the maximum number of search results to return.\r\n *\r\n * @default 6\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#maxResults)\r\n */\r\n @JsonProperty()\r\n declare maxResults?: number;\r\n\r\n /**\r\n * Indicates the maximum number of suggestions to return for the widget's input.\r\n *\r\n * @default 6\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#maxSuggestions)\r\n */\r\n @JsonProperty()\r\n declare maxSuggestions?: number;\r\n\r\n /**\r\n * Indicates the minimum number of characters required before querying for a suggestion.\r\n *\r\n * @default 1\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#minSuggestCharacters)\r\n */\r\n @JsonProperty()\r\n declare minSuggestCharacters?: number;\r\n\r\n /**\r\n * Specifies the fields returned with the search results.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#outFields)\r\n */\r\n @JsonProperty()\r\n declare outFields?: string[];\r\n\r\n /**\r\n * Used as a hint for the source input text.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#placeholder)\r\n */\r\n @JsonProperty()\r\n declare placeholder?: string;\r\n\r\n /**\r\n * Indicates whether to display a [Popup](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html) when a selected result is clicked.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#popupEnabled)\r\n */\r\n @JsonProperty()\r\n declare popupEnabled?: boolean;\r\n\r\n /**\r\n * The popup template used to display search results.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#popupTemplate)\r\n */\r\n @JsonProperty()\r\n declare popupTemplate?: PopupTemplateConfiguration;\r\n\r\n /**\r\n * Specify this to prefix the user's input of the search text.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#prefix)\r\n */\r\n @JsonProperty()\r\n declare prefix?: string;\r\n\r\n /**\r\n * Indicates whether to show a graphic on the map for the selected source using the [resultSymbol](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#resultSymbol).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#resultGraphicEnabled)\r\n */\r\n @JsonProperty()\r\n declare resultGraphicEnabled?: boolean;\r\n\r\n /**\r\n * The symbol used to display the result.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#resultSymbol)\r\n */\r\n @JsonProperty({ type: symbolTypePredicate })\r\n declare resultSymbol?: PictureMarkerSymbolConfiguration | SimpleMarkerSymbolConfiguration;\r\n\r\n /**\r\n * Specify this to add a suffix to the user's input for the search value.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#suffix)\r\n */\r\n @JsonProperty()\r\n declare suffix?: string;\r\n\r\n /**\r\n * Indicates whether to display suggestions as the user enters input text in the widget.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#suggestionsEnabled)\r\n */\r\n @JsonProperty()\r\n declare suggestionsEnabled?: boolean;\r\n\r\n /**\r\n * Indicates whether to constrain the search results to the view's extent.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#withinViewEnabled)\r\n */\r\n @JsonProperty()\r\n declare withinViewEnabled?: boolean;\r\n\r\n /**\r\n * The set zoom scale for the resulting search result.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchSource.html#zoomScale)\r\n */\r\n @JsonProperty()\r\n declare zoomScale?: number;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class LocatorSearchSourceConfiguration extends SearchSourceConfiguration {\r\n /**\r\n * An authorization string used to access a resource or service.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LocatorSearchSource.html#apiKey)\r\n */\r\n @JsonProperty()\r\n declare apiKey?: string;\r\n /**\r\n * A string array which limits the results to one or more categories.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LocatorSearchSource.html#categories)\r\n */\r\n @JsonProperty()\r\n declare categories?: string[];\r\n\r\n /**\r\n * Constricts search results to a specified country code.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LocatorSearchSource.html#countryCode)\r\n */\r\n @JsonProperty()\r\n declare countryCode?: string;\r\n\r\n /**\r\n * Sets the scale of the [MapView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#scale) or [SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html#scale) for the resulting search result, if the locator service doesn’t return an extent with a scale.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LocatorSearchSource.html#defaultZoomScale)\r\n */\r\n @JsonProperty()\r\n declare defaultZoomScale: number;\r\n /**\r\n * This property controls prioritization of [Search](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html) widget result candidates depending on the view scale.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LocatorSearchSource.html#localSearchDisabled)\r\n */\r\n @JsonProperty()\r\n declare localSearchDisabled?: boolean;\r\n /**\r\n * Defines the type of location, either `street` or `rooftop`, of the point returned from the [World Geocoding Service](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-category-filtering.htm).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LocatorSearchSource.html#locationType)\r\n */\r\n @JsonProperty()\r\n declare locationType: \"rooftop\" | \"street\";\r\n\r\n /**\r\n * The name of the source for display.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LocatorSearchSource.html#name)\r\n */\r\n @JsonProperty()\r\n declare name: string;\r\n\r\n /**\r\n * A template string used to display multiple fields in a defined order when results are displayed.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LocatorSearchSource.html#searchTemplate)\r\n */\r\n @JsonProperty()\r\n declare searchTemplate: string;\r\n\r\n /**\r\n * The field name of the Single Line Address Field in the REST services directory for the locator service.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LocatorSearchSource.html#singleLineFieldName)\r\n */\r\n @JsonProperty()\r\n declare singleLineFieldName: string;\r\n\r\n /**\r\n * URL to the ArcGIS Server REST resource that represents a locator service.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LocatorSearchSource.html#url)\r\n */\r\n @JsonProperty()\r\n declare url?: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class LayerSearchSourceConfiguration extends SearchSourceConfiguration {\r\n /**\r\n * *Geo.js Property*\r\n * Query for additional data\r\n */\r\n @JsonProperty()\r\n declare metauid?: string;\r\n\r\n /**\r\n * *Geo.js Property*\r\n * If true then the query returns distinct values based on the field(s) specified in outFields.\r\n * https://developers.arcgis.com/javascript/latest/api-reference/esri-rest-support-Query.html#returnDistinctValues\r\n */\r\n @JsonProperty()\r\n declare returnDistinctValues?: boolean;\r\n /**\r\n * *Geo.js Property*\r\n */\r\n @JsonProperty()\r\n declare searchLayers?: Array;\r\n /**\r\n * *Geo.js Property*\r\n */\r\n @JsonProperty()\r\n declare customQuery?: string;\r\n @JsonProperty()\r\n declare customNumericQuery?: string;\r\n /**\r\n * The results are displayed using this field. Defaults to the layer's `displayField` or the first string field.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LayerSearchSource.html#displayField)\r\n */\r\n @JsonProperty()\r\n declare displayField?: string;\r\n\r\n /**\r\n * Indicates to only return results that match the search value exactly.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LayerSearchSource.html#exactMatch)\r\n */\r\n @JsonProperty()\r\n declare exactMatch?: boolean;\r\n\r\n /**\r\n * The layer queried in the search. This is **required**.\r\n * > Layers created from client-side graphics are not supported.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LayerSearchSource.html#layer)\r\n */\r\n @JsonProperty()\r\n declare layer?: FeatureLayerConfiguration | __esri.FeatureLayer;\r\n\r\n /**\r\n * Id of the search layer.\r\n * This is the id used to\r\n */\r\n @JsonProperty()\r\n declare layerId: string;\r\n\r\n /**\r\n * The name of the source for display.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LayerSearchSource.html#name)\r\n */\r\n @JsonProperty()\r\n declare name?: string;\r\n /**\r\n * One or more field names used to order the query results.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LayerSearchSource.html#orderByFields)\r\n */\r\n @JsonProperty()\r\n declare orderByFields?: string[];\r\n /**\r\n * An array of string values representing the names of fields in the feature layer to search.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LayerSearchSource.html#searchFields)\r\n */\r\n @JsonProperty()\r\n declare searchFields?: string[];\r\n\r\n /**\r\n * A template string used to display multiple fields in a defined order when results are displayed.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LayerSearchSource.html#searchTemplate)\r\n */\r\n @JsonProperty()\r\n declare searchTemplate?: string;\r\n\r\n /**\r\n * A template string used to display multiple fields in a defined order when suggestions are displayed.\r\n * This takes precedence over `displayField`. Field names in the template must have the following format:\r\n * `{FieldName}`. An example suggestionTemplate could look something like: `Name: {OWNER}, Parcel: {PARCEL_ID}`.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LayerSearchSource.html#suggestionTemplate)\r\n */\r\n @JsonProperty()\r\n declare suggestionTemplate?: string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class CustomSearchSourceConfiguration extends SearchSourceConfiguration {\r\n /**\r\n * The name of the source for display.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LayerSearchSource.html#name)\r\n */\r\n @JsonProperty()\r\n declare name?: string;\r\n\r\n /**\r\n * The layer queried in the search.\r\n */\r\n @JsonProperty()\r\n declare layer: __esri.FeatureLayer;\r\n\r\n /**\r\n * Id of the search layer.\r\n */\r\n @JsonProperty()\r\n declare layerId: string;\r\n\r\n /**\r\n * Order suggestions by field\r\n * Specify ASC or DESC after the field name to control order\r\n *\r\n * @example: \"NUMBER ASC\"\r\n */\r\n @JsonProperty()\r\n declare orderByFields: string[];\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n@JsonObject()\r\nexport class MaxExtentConfiguration {\r\n /**\r\n * Maximaler LV95 Extent\r\n */\r\n @JsonProperty()\r\n declare lv95?: ExtentConfiguration;\r\n /**\r\n * Maximaler WGS84 Extent\r\n */\r\n @JsonProperty()\r\n declare lv03?: ExtentConfiguration;\r\n /**\r\n * Maximaler LV03 Extent\r\n */\r\n @JsonProperty()\r\n declare wgs84?: ExtentConfiguration;\r\n\r\n constructor() {}\r\n}\r\n@JsonObject()\r\nexport class CoordinateSearchSourceConfiguration extends SearchSourceConfiguration {\r\n /**\r\n * The name of the source for display.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LayerSearchSource.html#name)\r\n */\r\n @JsonProperty()\r\n declare maxExtent?: MaxExtentConfiguration;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class SearchConfiguration {\r\n /**\r\n * The current active menu of the Search widget. **Possible Values:** none | suggestion | source | warning\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#activeMenu)\r\n *\r\n * @default none\r\n */\r\n @JsonProperty()\r\n declare activeMenu?: string;\r\n\r\n /**\r\n * String value used as a hint for input text when searching on multiple sources. See the image below to\r\n * view the location and style of this text in the context of the widget.\r\n * ![search-allPlaceholder](https://developers.arcgis.com/javascript/assets/img/apiref/widgets/search-allplaceholder.png)\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#allPlaceholder)\r\n *\r\n * @default \"Find address or place\"\r\n */\r\n @JsonProperty()\r\n declare allPlaceholder?: string;\r\n\r\n /**\r\n * Indicates whether to automatically select and zoom to the first geocoded result. If `false`,\r\n * the [findAddressCandidates](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-find-address-candidates.htm)\r\n * operation will still geocode the input string, but the top result will not be selected.\r\n * To work with the geocoded results, you can set up a\r\n * [search-complete](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#event:search-complete)\r\n * event handler and get the results through the event object.\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#autoSelect)\r\n *\r\n * @default true\r\n */\r\n @JsonProperty()\r\n declare autoSelect?: boolean;\r\n\r\n /**\r\n * The widget's default CSS icon class.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#iconClass)\r\n */\r\n @JsonProperty()\r\n declare iconClass?: string;\r\n /**\r\n * Indicates whether or not to include\r\n * [defaultSources](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchViewModel.html#defaultSources)\r\n * in the Search UI. This can be a boolean value or a function that returns an array of Search\r\n * [sources](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-SearchViewModel.html#sources).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#includeDefaultSources)\r\n *\r\n * @default true\r\n */\r\n @JsonProperty()\r\n declare includeDefaultSources?: boolean | Function;\r\n\r\n /**\r\n * Enables location services within the widget.\r\n * ![locationEnabled](https://developers.arcgis.com/javascript/assets/img/apiref/widgets/search-locationEnabled.png)\r\n * > The use of this property is only supported on secure origins. To use it, switch your application to a secure\r\n * origin, such as HTTPS. Note that localhost is considered \"potentially secure\" and can be used for easy testing\r\n * in browsers that supports [Window.isSecureContext](https://developer.mozilla.org/en-US/docs/Web/API/Window/isSecureContext#Browser_compatibility) (currently Chrome and Firefox).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#locationEnabled)\r\n *\r\n * @default true\r\n */\r\n @JsonProperty()\r\n declare locationEnabled?: boolean;\r\n\r\n /**\r\n * The maximum number of results returned by the widget if not specified by the source.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#maxResults)\r\n *\r\n * @default 6\r\n */\r\n @JsonProperty()\r\n declare maxResults?: number;\r\n\r\n /**\r\n * The maximum number of suggestions returned by the widget if not specified by the source.\r\n * If working with the default [ArcGIS Online Geocoding service](https://developers.arcgis.com/rest/geocode/api-reference/overview-world-geocoding-service.htm), the default remains at `5`.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#maxSuggestions)\r\n *\r\n * @default 6\r\n */\r\n @JsonProperty()\r\n declare maxSuggestions?: number;\r\n\r\n /**\r\n * The minimum number of characters needed for the search if not specified by the source.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#minSuggestCharacters)\r\n *\r\n * @default 1\r\n */\r\n @JsonProperty()\r\n declare minSuggestCharacters?: number;\r\n\r\n /**\r\n * Indicates whether to display the [Popup](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html) on feature click. The graphic can be clicked to display a [Popup](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#popupEnabled)\r\n *\r\n * @default true\r\n */\r\n @JsonProperty()\r\n declare popupEnabled?: boolean;\r\n\r\n /**\r\n * A customized [PopupTemplate](https://developers.arcgis.com/javascript/latest/api-reference/esri-PopupTemplate.html) for the selected feature. Note that any templates defined on [allSources](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#allSources) take precedence over those defined directly on the template.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#popupTemplate)\r\n */\r\n // @JsonProperty()\r\n // declare popupTemplate?: PopupTemplateProperties;\r\n\r\n /**\r\n * It is possible to search a specified portal instance's [locator services](http://enterprise.arcgis.com/en/portal/latest/administer/windows/configure-portal-to-geocode-addresses.htm) Use this property to set this [ArcGIS Portal](https://enterprise.arcgis.com/en/portal/) instance to search.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#portal)\r\n */\r\n // @JsonProperty()\r\n // declare portal?: PortalProperties;\r\n\r\n /**\r\n * Indicates if the [resultGraphic](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#resultGraphic) will display at the location of the selected feature.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#resultGraphicEnabled)\r\n *\r\n * @default true\r\n */\r\n @JsonProperty()\r\n declare resultGraphicEnabled?: boolean;\r\n\r\n /**\r\n * Indicates whether to display the option to search all sources. When `true`, the \"All\" option is displayed by default: ![search-searchAllEnabled-true](https://developers.arcgis.com/javascript/assets/img/apiref/widgets/search-enablesearchingall-true.png) When `false`, no option to search all sources at once is available: ![search-searchAllEnabled-false](https://developers.arcgis.com/javascript/assets/img/apiref/widgets/search-enablesearchingall-false.png)\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#searchAllEnabled)\r\n *\r\n * @default true\r\n */\r\n @JsonProperty()\r\n declare searchAllEnabled?: boolean;\r\n\r\n /**\r\n * The value of the search box input text string.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#searchTerm)\r\n */\r\n @JsonProperty()\r\n declare searchTerm?: string;\r\n\r\n /**\r\n * The Search widget may be used to search features in a [FeatureLayer]\r\n * (https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html) or [table]\r\n * (https://developers.arcgis.com/javascript/latest/api-reference/esri-webdoc-applicationProperties-SearchTable.html\r\n * ), or geocode locations with a [Locator]\r\n * (https://developers.arcgis.com/javascript/latest/api-reference/esri-tasks-Locator.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#sources)\r\n */\r\n @JsonProperty({ type: searchSourcePredicate })\r\n declare sources: SearchSourceConfiguration[];\r\n\r\n // /**\r\n // * The Search widget may be used to search features in a\r\n // * [FeatureLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html) or\r\n // * geocode locations with a\r\n // * [Locator](https://developers.arcgis.com/javascript/latest/api-reference/esri-tasks-Locator.html).\r\n // * The `sources` property defines the sources from which to search for the\r\n // * [view](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#view) specified\r\n // * by the Search widget instance. There are two types of sources:\r\n // * * [LocatorSearchSource](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LocatorSearchSource.html)\r\n // *\r\n // * Any combination of these sources may be used together in the same instance of the Search widget.\r\n // * > Feature layers created from client-side graphics are not supported.\r\n // *\r\n // * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#sources)\r\n // */\r\n // @JsonProperty({ type: LocatorSearchSourceConfiguration })\r\n // declare locatorSources?: Array;\r\n //\r\n // /**\r\n // * The Search widget may be used to search features in a\r\n // * [FeatureLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-FeatureLayer.html) or\r\n // * geocode locations with a\r\n // * [Locator](https://developers.arcgis.com/javascript/latest/api-reference/esri-tasks-Locator.html).\r\n // * The `sources` property defines the sources from which to search for the\r\n // * [view](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#view) specified\r\n // * by the Search widget instance. There are two types of sources:\r\n // * * [LayerSearchSource](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search-LayerSearchSource.html)\r\n // *\r\n // * Any combination of these sources may be used together in the same instance of the Search widget.\r\n // * > Feature layers created from client-side graphics are not supported.\r\n // *\r\n // * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#sources)\r\n // */\r\n // @JsonProperty({ type: LayerSearchSourceConfiguration })\r\n // declare layerSources?: Array;\r\n\r\n /**\r\n * Enable suggestions for the widget. This is only available if working with a 10.3 or greater geocoding service that has [suggest capability loaded](https://developers.arcgis.com/rest/geocode/api-reference/geocoding-suggest.htm) or a 10.3 or greater feature layer that supports pagination, i.e. `supportsPagination = true`.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Search.html#suggestionsEnabled)\r\n *\r\n * @default true\r\n */\r\n @JsonProperty()\r\n declare suggestionsEnabled?: boolean;\r\n\r\n /**\r\n * *Geo.js Property*\r\n * The symbols (pointer and highlight) used to display the result\r\n */\r\n @JsonProperty()\r\n declare resultSymbol?: SearchResultSymbolConfiguration;\r\n\r\n /**\r\n * *Geo.js Property*\r\n * Auf \"tocReady\" Status warten, bevor SearchSource initialisiert werden.\r\n */\r\n @JsonProperty()\r\n declare waitForTocReady?: boolean;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {WidgetConfiguration} from \"./widget-configuration\";\r\nimport Collection from \"@arcgis/core/core/Collection\";\r\n\r\n@JsonObject()\r\nexport class SketchDefaultUpdateOptionsConfiguration implements __esri.SketchDefaultUpdateOptions {\r\n /**\r\n * Name of the update tool.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultUpdateOptions)\r\n */\r\n @JsonProperty()\r\n declare tool?: \"move\" | \"transform\" | \"reshape\";\r\n /**\r\n * Indicates if the `rotation` operation will be enabled when updating graphics.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultUpdateOptions)\r\n */\r\n @JsonProperty()\r\n declare enableRotation?: boolean;\r\n /**\r\n * Indicates if the `scale` operation will be enabled when updating graphics.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultUpdateOptions)\r\n */\r\n @JsonProperty()\r\n declare enableScaling?: boolean;\r\n /**\r\n * Indicates if z-values can be modified when updating the graphic.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultUpdateOptions)\r\n */\r\n @JsonProperty()\r\n declare enableZ?: boolean;\r\n /**\r\n * Indicates whether more than one selection can be made at once.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultUpdateOptions)\r\n */\r\n @JsonProperty()\r\n declare multipleSelectionEnabled?: boolean;\r\n /**\r\n * Indicates if the uniform scale operation will be enabled when updating graphics.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultUpdateOptions)\r\n */\r\n @JsonProperty()\r\n declare preserveAspectRatio?: boolean;\r\n /**\r\n * Indicates if the graphic being updated can be toggled between `transform` and `reshape` update options.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultUpdateOptions)\r\n */\r\n @JsonProperty()\r\n declare toggleToolOnClick?: boolean;\r\n /**\r\n * Changes the behavior for the `reshape` tool.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultUpdateOptions)\r\n */\r\n // @JsonProperty()\r\n // declare reshapeOptions?: SketchDefaultUpdateOptionsReshapeOptions;\r\n /**\r\n * Options that control when to display or hide highlights for update operations.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultUpdateOptions)\r\n */\r\n // @JsonProperty()\r\n // declare highlightOptions?: SketchDefaultUpdateOptionsHighlightOptions;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class SketchDefaultCreateOptionsConfiguration implements __esri.SketchDefaultCreateOptions {\r\n /**\r\n * Create operation mode how the graphic can be created.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultCreateOptions)\r\n */\r\n @JsonProperty()\r\n declare mode?: \"hybrid\" | \"freehand\" | \"click\";\r\n /**\r\n * Controls whether the created geometry has z-values or not.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultCreateOptions)\r\n */\r\n @JsonProperty()\r\n declare hasZ?: boolean;\r\n /**\r\n * The default z-value of the newly created geometry.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultCreateOptions)\r\n */\r\n @JsonProperty()\r\n declare defaultZ?: number;\r\n\r\n constructor() {}\r\n}\r\n@JsonObject()\r\nexport class SketchLabelOptionsConfiguration {\r\n /**\r\n * Whether labels are shown next to each segment of the graphic being sketched.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchLabelOptions.html#enabled)\r\n */\r\n @JsonProperty()\r\n declare enabled?: boolean;\r\n}\r\n/**\r\n * The elements that are displayed within the tooltip while sketching and editing.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n@JsonObject()\r\nexport class VisibleElementsConfiguration {\r\n /**\r\n * When set to `false`, the area is not shown in the tooltip.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare area?: boolean;\r\n /**\r\n * When set to `false`, the coordinate is not shown in the tooltip.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare coordinates?: boolean;\r\n /**\r\n * When set to `false`, the direction (or deflection angle) is not shown in the tooltip.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare direction?: boolean;\r\n /**\r\n * When set to `false`, the distance is not shown in the tooltip.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare distance?: boolean;\r\n /**\r\n * When set to `false`, the elevation is not shown in the tooltip.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare elevation?: boolean;\r\n /**\r\n * When set to `false`, the header at the top of the tooltip is not shown, when in input mode.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare header?: boolean;\r\n /**\r\n * When set to `false`, the help message at the bottom of the tooltip is not shown.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare helpMessage?: boolean;\r\n /**\r\n * When set to `false`, the orientation is not shown in the tooltip.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare orientation?: boolean;\r\n /**\r\n * When set to `false`, the radius is not shown in the tooltip.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare radius?: boolean;\r\n /**\r\n * When set to `false`, the rotation is not shown in the tooltip.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare rotation?: boolean;\r\n /**\r\n * When set to `false`, the scale is not shown in the tooltip.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare scale?: boolean;\r\n /**\r\n * When set to `false`, the size is not shown in the tooltip.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare size?: boolean;\r\n /**\r\n * When set to `false`, the total length is not shown in the tooltip.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare totalLength?: boolean;\r\n}\r\n\r\n@JsonObject()\r\nexport class SketchValueOptionsConfiguration {\r\n /**\r\n * How direction values are displayed and, in case of input, how they are interpreted.\r\n *\r\n * @default \"relative\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchValueOptions.html#directionMode)\r\n */\r\n @JsonProperty()\r\n declare directionMode?: \"relative\" | \"absolute\";\r\n\r\n /**\r\n * Units used for displaying values in the UI.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchValueOptions.html#displayUnits)\r\n */\r\n @JsonProperty()\r\n declare displayUnits?: __esri.Units;\r\n /**\r\n * Units used for interpreting input values.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchValueOptions.html#inputUnits)\r\n */\r\n @JsonProperty()\r\n declare inputUnits?: __esri.Units;\r\n}\r\n@JsonObject()\r\nexport class SketchTooltipOptionsConfiguration {\r\n /**\r\n * Whether tooltips are shown while sketching and editing.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#enabled)\r\n */\r\n @JsonProperty()\r\n declare enabled?: boolean;\r\n /**\r\n * A custom help message that is displayed at the bottom of the tooltip.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#helpMessage)\r\n */\r\n @JsonProperty()\r\n declare helpMessage?: string;\r\n /**\r\n * An icon that is displayed next to the help message at the bottom of the tooltip.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#helpMessageIcon)\r\n */\r\n @JsonProperty()\r\n declare helpMessageIcon?: string;\r\n /**\r\n * Whether users can focus the tooltip and input constraint values.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#inputEnabled)\r\n */\r\n @JsonProperty()\r\n declare inputEnabled?: boolean;\r\n /**\r\n * The elements that are displayed within the tooltip while sketching.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#visibleElements)\r\n */\r\n @JsonProperty()\r\n declare visibleElements?: VisibleElementsConfiguration;\r\n}\r\n@JsonObject()\r\nexport class VisibleElementsCreateToolsConfiguration {\r\n /**\r\n * Indicates whether to display the point sketch tool.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare point?: boolean;\r\n /**\r\n * Indicates whether to display the polyline sketch tool.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare polyline?: boolean;\r\n /**\r\n * Indicates whether to display the polygon sketch tool.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare polygon?: boolean;\r\n /**\r\n * Indicates whether to display the rectangle sketch tool.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare rectangle?: boolean;\r\n /**\r\n * Indicates whether to display the circle sketch tool.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare circle?: boolean;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class VisibleElementsSelectionToolsConfiguration {\r\n /**\r\n * Indicates whether to display the `\"rectangle-selection\"` tool.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare \"rectangle-selection\"?: boolean;\r\n /**\r\n * Indicates whether to display the `\"lasso-selection\"` tool.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare \"lasso-selection\"?: boolean;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class SketchVisibleElementsConfiguration {\r\n /**\r\n * The available sketch tools within the widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare createTools?: VisibleElementsCreateToolsConfiguration;\r\n /**\r\n * Indicates whether to display the 'duplicate' button while a graphic is selected.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare duplicateButton?: boolean;\r\n /**\r\n * The available selection tools within the widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare selectionTools?: VisibleElementsSelectionToolsConfiguration;\r\n /**\r\n * Indicates whether to display the settings menu.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare settingsMenu?: boolean;\r\n /**\r\n * _Since 4.29_.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare labelsToggle?: boolean;\r\n /**\r\n * _Since 4.29_.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare tooltipsToggle?: boolean;\r\n /**\r\n * Indicates whether to display the `SnappingControls` widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare snappingControls?: boolean;\r\n /**\r\n * The available [SnappingControls](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-support-SnappingControls.html) elements within the widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n //snappingControlsElements?: SketchVisibleElementsSnappingControlsElements;\r\n /**\r\n * Indicates whether to display the undo/redo menu within the widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare undoRedoMenu?: boolean;\r\n constructor() {}\r\n}\r\nexport class FeatureSnappingLayerSourceConfiguration {\r\n /**\r\n * Indicates whether feature snapping is turned on or off.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-FeatureSnappingLayerSource.html#enabled)\r\n */\r\n @JsonProperty()\r\n declare enabled?: boolean;\r\n /**\r\n * The source layer used for snapping.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-FeatureSnappingLayerSource.html#layer)\r\n */\r\n /* layer?: | (BuildingSceneLayerProperties & { type: \"building-scene\" })\r\n | (CSVLayerProperties & { type: \"csv\" })\r\n | (FeatureLayerProperties & { type: \"feature\" })\r\n | (GeoJSONLayerProperties & { type: \"geojson\" })\r\n | (GraphicsLayerProperties & { type: \"graphics\" })\r\n | (MapNotesLayerProperties & { type: \"map-notes\" })\r\n | (SceneLayerProperties & { type: \"scene\" })\r\n | (WFSLayerProperties & { type: \"wfs\" }); */\r\n}\r\n@JsonObject()\r\nexport class SnappingOptionsConfiguration {\r\n /**\r\n * Snapping distance for snapping in pixels.\r\n *\r\n * @default 5\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#distance)\r\n */\r\n @JsonProperty()\r\n declare distance?: number;\r\n /**\r\n * Global configuration to turn snapping on or off.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#enabled)\r\n */\r\n @JsonProperty()\r\n declare enabled?: boolean;\r\n /**\r\n * Global configuration option to turn feature snapping on or off.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#featureEnabled)\r\n */\r\n @JsonProperty()\r\n declare featureEnabled?: boolean;\r\n /**\r\n * List of sources for feature snapping.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#featureSources)\r\n */\r\n @JsonProperty()\r\n declare featureSources?: Collection;\r\n\r\n /**\r\n * Turns the grid on or off.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#gridEnabled)\r\n */\r\n @JsonProperty()\r\n declare gridEnabled?: boolean;\r\n\r\n /**\r\n * Global configuration option to turn self snapping (within one feature while either drawing or reshaping) on or off.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#selfEnabled)\r\n */\r\n @JsonProperty()\r\n declare selfEnabled?: boolean;\r\n}\r\n@JsonObject()\r\nexport class SymbolConfiguration {\r\n @JsonProperty()\r\n declare activeFill: __esri.SimpleFillSymbolProperties;\r\n\r\n @JsonProperty()\r\n declare polygon: __esri.SimpleFillSymbolProperties;\r\n\r\n @JsonProperty()\r\n declare polyline: __esri.SimpleLineSymbolProperties;\r\n\r\n constructor() {\r\n }\r\n}\r\n@JsonObject()\r\nexport class SketchConfiguration extends WidgetConfiguration {\r\n /**\r\n * Geo.js property to place the widget in one of the Esri UI corners.\r\n */\r\n @JsonProperty()\r\n declare position: \"top-left\" | \"top-right\" | \"bottom-left\" | \"bottom-right\";\r\n /**\r\n * Geo.js property to limit the maximum object count.\r\n */\r\n @JsonProperty()\r\n declare maxObject?: number;\r\n @JsonProperty()\r\n declare symbols?: SymbolConfiguration;\r\n\r\n /**\r\n * When creating new graphics (for example after create() has been called), this property reflects the create tool being used.\r\n * When updating graphics (for example after update() has been called), this property reflects the update tool being used.\r\n * If no create or update operation is in progress, this is null.\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#activeTool)\r\n */\r\n @JsonProperty()\r\n declare activeTool: \"point\" | \"polyline\" | \"polygon\" | \"circle\" | \"rectangle\" | \"move\" | \"transform\" | \"reshape\" | \"rectangle-selection\" | \"lasso-selection\";\r\n\r\n /**\r\n * Property controlling the visibility and order of create tool buttons.\r\n *\r\n * @default [\"point\", \"polyline\", \"polygon\", \"rectangle\", \"circle\"]\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#availableCreateTools)\r\n */\r\n @JsonProperty()\r\n declare availableCreateTools: string[];\r\n\r\n /**\r\n * Defines the default behavior once the [create](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#create) operation is completed.\r\n *\r\n * @default \"continuous\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#creationMode)\r\n */\r\n @JsonProperty()\r\n declare creationMode?: \"single\" | \"continuous\" | \"update\";\r\n\r\n /**\r\n * Default create options set for the Sketch widget.\r\n * Possible Values: \"hybrid\" | \"freehand\" | \"click\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultCreateOptions)\r\n */\r\n @JsonProperty()\r\n declare defaultCreateOptions: SketchDefaultCreateOptionsConfiguration;\r\n\r\n /**\r\n * Default update options set for the Sketch widget. Update options set on this property will be overwritten\r\n * if the update options are changed when update() method is called.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#defaultUpdateOptions)\r\n */\r\n @JsonProperty()\r\n declare defaultUpdateOptions?: SketchDefaultUpdateOptionsConfiguration;\r\n\r\n /**\r\n * Options to configure the sketch labels shown next to each segment of the geometry being created or updated.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#labelOptions)\r\n */\r\n @JsonProperty()\r\n declare labelOptions?: SketchLabelOptionsConfiguration;\r\n\r\n /**\r\n * Determines the layout/orientation of the Sketch widget.\r\n *\r\n * @default \"horizontal\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#layout)\r\n */\r\n @JsonProperty()\r\n declare layout?: \"vertical\" | \"horizontal\";\r\n /**\r\n * The [SnappingOptions](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html) for sketching.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#snappingOptions)\r\n */\r\n @JsonProperty()\r\n declare snappingOptions?: SnappingOptionsConfiguration;\r\n /**\r\n * Options to configure the tooltip shown next to the cursor when creating or updating graphics.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#tooltipOptions)\r\n */\r\n @JsonProperty()\r\n declare tooltipOptions?: SketchTooltipOptionsConfiguration;\r\n /**\r\n * Options to configure how values are displayed and input when creating or updating graphics.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#valueOptions)\r\n */\r\n @JsonProperty()\r\n declare valueOptions?: SketchValueOptionsConfiguration;\r\n /**\r\n * The Sketch widget's state.\r\n * Possible Values: \"ready\" | \"disabled\" | \"active\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#state)\r\n */\r\n @JsonProperty()\r\n declare state: string;\r\n\r\n /**\r\n * The visible elements that are displayed within the widget.\r\n * This property provides the ability to turn individual elements of the widget's display on/off.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Sketch.html#visibleElements)\r\n */\r\n @JsonProperty()\r\n declare visibleElements: SketchVisibleElementsConfiguration;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import {JsonObject, JsonProperty} from \"typescript-json-serializer\";\r\n\r\n@JsonObject()\r\nexport class SketchLabelOptionsPropertiesConfiguration {\r\n /**\r\n * Whether labels are shown next to each segment of the graphic being sketched.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchLabelOptions.html#enabled)\r\n */\r\n @JsonProperty()\r\n declare enabled?: boolean;\r\n\r\n constructor() {}\r\n}\r\n","import {JsonObject, JsonProperty} from \"typescript-json-serializer\";\r\n\r\n@JsonObject()\r\nexport class SketchTooltipOptionsPropertiesConfiguration {\r\n /**\r\n * Whether tooltips are shown while sketching and editing.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-sketch-SketchTooltipOptions.html#enabled)\r\n */\r\n @JsonProperty()\r\n declare enabled?: boolean;\r\n\r\n constructor() {}\r\n}","import {JsonObject, JsonProperty} from \"typescript-json-serializer\";\r\n\r\n@JsonObject()\r\nexport class SnappingOptionsPropertiesConfiguration {\r\n /**\r\n * When true, enables support for attribute rule-based snapping.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#attributeRulesEnabled)\r\n */\r\n @JsonProperty()\r\n declare attributeRulesEnabled?: boolean;\r\n /**\r\n * Snapping distance for snapping in pixels.\r\n *\r\n * @default 5\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#distance)\r\n */\r\n @JsonProperty()\r\n declare distance?: number;\r\n /**\r\n * Global configuration to turn snapping on or off.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#enabled)\r\n */\r\n @JsonProperty()\r\n declare enabled?: boolean;\r\n /**\r\n * Global configuration option to turn feature snapping on or off.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#featureEnabled)\r\n */\r\n @JsonProperty()\r\n declare featureEnabled?: boolean;\r\n /**\r\n * List of sources for feature snapping.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#featureSources)\r\n */\r\n //@JsonProperty()\r\n //declare featureSources?: CollectionProperties;\r\n /**\r\n * Global configuration option to turn self snapping (within one feature while either drawing or reshaping) on or off.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-SnappingOptions.html#selfEnabled)\r\n */\r\n @JsonProperty()\r\n declare selfEnabled?: boolean;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\n\r\n@JsonObject()\r\nexport class SpatialReferenceConfiguration {\r\n /**\r\n * An [image coordinate system](https://developers.arcgis.com/rest/services-reference/raster-ics.htm) defines the spatial reference used to display the image in its original coordinates without distortion, map transformations or ortho-rectification.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-SpatialReference.html#imageCoordinateSystem)\r\n */\r\n @JsonProperty()\r\n declare imageCoordinateSystem: any;\r\n\r\n /**\r\n * The well-known ID of a spatial reference.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-SpatialReference.html#wkid)\r\n */\r\n @JsonProperty()\r\n declare wkid: number;\r\n\r\n /**\r\n * The well-known text that defines a spatial reference.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-SpatialReference.html#wkt)\r\n */\r\n @JsonProperty()\r\n declare wkt: string;\r\n\r\n /**\r\n * The well-known text of the coordinate system as defined by OGC standard for well-known text strings.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-SpatialReference.html#wkt2)\r\n */\r\n @JsonProperty()\r\n declare wkt2?: string;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {FontConfiguration} from \"./font-configuration\";\r\nimport {Callout3DConfiguration} from \"./callout-configuration\";\r\nimport Color from \"@arcgis/core/Color\";\r\n\r\n@JsonObject()\r\nexport class Symbol3DVerticalOffsetConfiguration {\r\n /**\r\n * The maximum vertical symbol offset in world units.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-support-Symbol3DVerticalOffset.html#maxWorldLength)\r\n */\r\n @JsonProperty()\r\n declare screenLength?: number | string;\r\n /**\r\n * The minimum vertical symbol offset in world units.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-support-Symbol3DVerticalOffset.html#minWorldLength)\r\n */\r\n @JsonProperty()\r\n declare minWorldLength?: number;\r\n /**\r\n * Vertical symbol offset in screen size.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-support-Symbol3DVerticalOffset.html#screenLength)\r\n */\r\n @JsonProperty()\r\n declare maxWorldLength?: number;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class SymbolConfiguration {\r\n /**\r\n * The color of the symbol.\r\n *\r\n * @default \"black\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Symbol.html#color)\r\n */\r\n @JsonProperty()\r\n declare color: Color | number[] | string;\r\n\r\n /**\r\n * The symbol type.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Symbol.html#type)\r\n */\r\n @JsonProperty()\r\n declare type:\r\n | \"simple-marker\"\r\n | \"picture-marker\"\r\n | \"simple-line\"\r\n | \"simple-fill\"\r\n | \"picture-fill\"\r\n | \"text\"\r\n | \"shield-label-symbol\"\r\n | \"point-3d\"\r\n | \"line-3d\"\r\n | \"polygon-3d\"\r\n | \"web-style\"\r\n | \"mesh-3d\"\r\n | \"label-3d\"\r\n | \"cim\";\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class LineSymbolConfiguration extends SymbolConfiguration {\r\n /**\r\n * The symbol type.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-LineSymbol.html#type)\r\n */\r\n @JsonProperty()\r\n declare type: \"simple-line\";\r\n\r\n /**\r\n * The width of the symbol in points.\r\n *\r\n * @default 0.75\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-LineSymbol.html#width)\r\n */\r\n @JsonProperty()\r\n declare width: number | string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class LineSymbolMarkerConfiguration {\r\n /**\r\n * The color of the marker.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-LineSymbolMarker.html#color)\r\n */\r\n @JsonProperty()\r\n declare color: Color;\r\n\r\n /**\r\n * The placement of the marker(s) on the line.\r\n *\r\n * @default \"begin-end\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-LineSymbolMarker.html#placement)\r\n */\r\n @JsonProperty()\r\n declare placement: \"begin\" | \"end\" | \"begin-end\";\r\n\r\n /**\r\n * The marker style.\r\n *\r\n * @default \"arrow\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-LineSymbolMarker.html#style)\r\n */\r\n @JsonProperty()\r\n declare style: \"arrow\" | \"circle\" | \"square\" | \"diamond\" | \"cross\" | \"x\";\r\n /**\r\n * The symbol type.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-LineSymbolMarker.html#type)\r\n */\r\n declare type: \"line-marker\";\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class SimpleLineSymbolConfiguration extends LineSymbolConfiguration {\r\n /**\r\n * Specifies the cap style.\r\n *\r\n * @default \"round\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleLineSymbol.html#cap)\r\n */\r\n @JsonProperty()\r\n declare cap: \"butt\" | \"round\" | \"square\";\r\n\r\n /**\r\n * Specifies the join style.\r\n *\r\n * @default \"round\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleLineSymbol.html#join)\r\n */\r\n @JsonProperty()\r\n declare join: \"miter\" | \"round\" | \"bevel\";\r\n\r\n /**\r\n * Specifies the color, style, and placement of a symbol marker on the line.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleLineSymbol.html#marker)\r\n */\r\n @JsonProperty()\r\n declare marker?: LineSymbolMarkerConfiguration;\r\n\r\n /**\r\n * Maximum allowed ratio of the width of a miter join to the line width.\r\n *\r\n * @default 2\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleLineSymbol.html#miterLimit)\r\n */\r\n @JsonProperty()\r\n declare miterLimit: number;\r\n\r\n /**\r\n * Specifies the line style.\r\n *\r\n * @default \"solid\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleLineSymbol.html#style)\r\n */\r\n @JsonProperty()\r\n declare style:\r\n | \"dash\"\r\n | \"dash-dot\"\r\n | \"dot\"\r\n | \"long-dash\"\r\n | \"long-dash-dot\"\r\n | \"long-dash-dot-dot\"\r\n | \"none\"\r\n | \"short-dash\"\r\n | \"short-dash-dot\"\r\n | \"short-dash-dot-dot\"\r\n | \"short-dot\"\r\n | \"solid\";\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class FillSymbolConfiguration extends SymbolConfiguration {\r\n /**\r\n * The outline of the polygon.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-FillSymbol.html#outline)\r\n */\r\n @JsonProperty()\r\n declare outline: SimpleLineSymbolConfiguration;\r\n\r\n /**\r\n * The symbol type.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-FillSymbol.html#type)\r\n */\r\n @JsonProperty()\r\n declare type: \"simple-fill\" | \"picture-fill\";\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class MarkerSymbolConfiguration extends SymbolConfiguration {\r\n /**\r\n * The angle of the marker relative to the screen in degrees.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-MarkerSymbol.html#angle)\r\n */\r\n @JsonProperty()\r\n declare angle: number;\r\n\r\n /**\r\n * The symbol type.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-MarkerSymbol.html#type)\r\n */\r\n @JsonProperty()\r\n declare type: \"simple-marker\" | \"picture-marker\";\r\n\r\n /**\r\n * The offset on the x-axis in points.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-MarkerSymbol.html#xoffset)\r\n */\r\n @JsonProperty()\r\n declare xoffset: number;\r\n\r\n /**\r\n * The offset on the y-axis in points.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-MarkerSymbol.html#yoffset)\r\n */\r\n @JsonProperty()\r\n declare yoffset: number;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class PictureMarkerSymbolConfiguration extends MarkerSymbolConfiguration {\r\n /**\r\n * The height of the image in points.\r\n *\r\n * @default 12\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-PictureMarkerSymbol.html#height)\r\n */\r\n @JsonProperty()\r\n declare height: number;\r\n\r\n /**\r\n * The symbol type.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-PictureMarkerSymbol.html#type)\r\n */\r\n @JsonProperty()\r\n declare readonly type: \"picture-marker\";\r\n\r\n /**\r\n * The URL to an image or SVG document.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-PictureMarkerSymbol.html#url)\r\n */\r\n @JsonProperty()\r\n declare url: string;\r\n\r\n /**\r\n * The width of the image in points.\r\n *\r\n * @default 12\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-PictureMarkerSymbol.html#width)\r\n */\r\n @JsonProperty()\r\n declare width: number;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class SimpleMarkerSymbolConfiguration extends MarkerSymbolConfiguration {\r\n /**\r\n * The outline of the marker symbol.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleMarkerSymbol.html#outline)\r\n */\r\n @JsonProperty()\r\n declare outline: SimpleLineSymbolConfiguration;\r\n\r\n /**\r\n * The SVG path of the icon.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleMarkerSymbol.html#path)\r\n */\r\n @JsonProperty()\r\n declare path: string;\r\n\r\n /**\r\n * The size of the marker in points.\r\n *\r\n * @default 12\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleMarkerSymbol.html#size)\r\n */\r\n @JsonProperty()\r\n declare size: number;\r\n\r\n /**\r\n * The marker style.\r\n *\r\n * @default \"circle\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleMarkerSymbol.html#style)\r\n */\r\n @JsonProperty()\r\n declare style: \"circle\" | \"square\" | \"cross\" | \"x\" | \"diamond\" | \"triangle\" | \"path\";\r\n\r\n /**\r\n * The symbol type.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-SimpleMarkerSymbol.html#type)\r\n */\r\n @JsonProperty()\r\n declare readonly type: \"simple-marker\";\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class TextSymbolConfiguration extends SymbolConfiguration {\r\n /**\r\n * The angle of the text.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#angle)\r\n */\r\n @JsonProperty()\r\n declare angle?: number;\r\n /**\r\n * The background color of the label's bounding box.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#backgroundColor)\r\n */\r\n @JsonProperty()\r\n declare backgroundColor?: Color | number[] | string;\r\n /**\r\n * The border color of the label's bounding box.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#borderLineColor)\r\n */\r\n @JsonProperty()\r\n declare borderLineColor?: Color | number[] | string;\r\n /**\r\n * The border size or width of the label's bounding box.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#borderLineSize)\r\n */\r\n @JsonProperty()\r\n declare borderLineSize?: number;\r\n /**\r\n * The [Font](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Font.html) used to style the text.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#font)\r\n */\r\n @JsonProperty()\r\n declare font?: FontConfiguration;\r\n /**\r\n * The color of the text symbol's halo.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#haloColor)\r\n */\r\n @JsonProperty()\r\n declare haloColor?: Color | number[] | string;\r\n /**\r\n * The size in points of the text symbol's halo.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#haloSize)\r\n */\r\n @JsonProperty()\r\n declare haloSize?: number | string;\r\n /**\r\n * Adjusts the horizontal alignment of the text in multi-lines.\r\n *\r\n * @default \"center\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#horizontalAlignment)\r\n */\r\n @JsonProperty()\r\n declare horizontalAlignment?: \"left\" | \"right\" | \"center\";\r\n /**\r\n * Determines whether to adjust the spacing between characters in the text string.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#kerning)\r\n */\r\n @JsonProperty()\r\n declare kerning?: boolean;\r\n /**\r\n * The height of the space between each line of text.\r\n *\r\n * @default 1.0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#lineHeight)\r\n */\r\n @JsonProperty()\r\n declare lineHeight: number;\r\n /**\r\n * The maximum length in points for each line of text.\r\n *\r\n * @default 192\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#lineWidth)\r\n */\r\n @JsonProperty()\r\n declare lineWidth: number;\r\n /**\r\n * Determines whether every character in the text string is rotated.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#rotated)\r\n */\r\n @JsonProperty()\r\n declare rotated?: boolean;\r\n /**\r\n * The text string to display in the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#text)\r\n */\r\n @JsonProperty()\r\n declare text?: string;\r\n\r\n @JsonProperty()\r\n declare readonly type: \"text\";\r\n\r\n /**\r\n * Adjusts the vertical alignment of the text.\r\n *\r\n * @default \"baseline\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#verticalAlignment)\r\n */\r\n @JsonProperty()\r\n declare verticalAlignment?: \"baseline\" | \"top\" | \"middle\" | \"bottom\";\r\n /**\r\n * The offset on the x-axis in points.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#xoffset)\r\n */\r\n @JsonProperty()\r\n declare xoffset?: number | string;\r\n /**\r\n * The offset on the y-axis in points.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-TextSymbol.html#yoffset)\r\n */\r\n @JsonProperty()\r\n declare yoffset?: number | string;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n\r\n@JsonObject()\r\nexport class Symbol3DStyleOriginConfiguration {\r\n /**\r\n * a well-known esri-provided style, such as `EsriThematicShapesStyle`.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Symbol3D.html#styleOrigin)\r\n */\r\n @JsonProperty()\r\n declare styleName?: string;\r\n /**\r\n * url to a style definition.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Symbol3D.html#styleOrigin)\r\n */\r\n @JsonProperty()\r\n declare styleUrl?: string;\r\n /**\r\n * name of the symbol in the style referenced by styleName or styleUrl.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Symbol3D.html#styleOrigin)\r\n */\r\n @JsonProperty()\r\n declare name: string;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class Symbol3DConfiguration extends SymbolConfiguration {\r\n /**\r\n * The origin of the style from which the symbol was originally referenced.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Symbol3D.html#styleOrigin)\r\n */\r\n @JsonProperty()\r\n declare styleOrigin: Symbol3DStyleOriginConfiguration;\r\n /**\r\n * A Collection of [Symbol3DLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Symbol3DLayer.html) objects used to visualize the graphic or feature.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Symbol3D.html#symbolLayers)\r\n */\r\n // @JsonProperty()\r\n // symbolLayers: Symbol3DLayerConfiguration[];\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class PolygonSymbol3DConfiguration extends Symbol3DConfiguration {\r\n /**\r\n * The symbol type.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-PolygonSymbol3D.html#type)\r\n */\r\n @JsonProperty()\r\n declare readonly type: \"polygon-3d\";\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class LabelSymbol3DConfiguration extends Symbol3DConfiguration {\r\n /**\r\n * Settings for adding a callout visualization to the symbol.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-LabelSymbol3D.html#callout)\r\n */\r\n @JsonProperty()\r\n declare callout?: Callout3DConfiguration;\r\n /**\r\n * A Collection of [Symbol3DLayer](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-Symbol3DLayer.html) objects used to visualize the graphic or feature.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-LabelSymbol3D.html#symbolLayers)\r\n */\r\n // @JsonProperty()\r\n //declare symbolLayers?: Collection;\r\n /**\r\n * The symbol type.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-LabelSymbol3D.html#type)\r\n */\r\n declare readonly type: \"label-3d\";\r\n /**\r\n * Shifts the symbol along the vertical world axis by a given height.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-LabelSymbol3D.html#verticalOffset)\r\n */\r\n @JsonProperty()\r\n declare verticalOffset?: Symbol3DVerticalOffsetConfiguration;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class CIMSymbolConfiguration extends SymbolConfiguration {\r\n /**\r\n * The JSON payload of the [CIMSymbolReference](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#CIMSymbolReference).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-symbols-CIMSymbol.html#data)\r\n */\r\n @JsonProperty()\r\n declare data?: __esri.CIMSymbolReference;\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\n\r\ntype DateProperties = number | string | Date;\r\n\r\n@JsonObject()\r\nexport class TimeExtentConfiguration {\r\n /**\r\n * The end time of the time extent.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-time-TimeExtent.html#end)\r\n */\r\n @JsonProperty()\r\n declare end?: DateProperties;\r\n /**\r\n * The start time of the time extent.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-time-TimeExtent.html#start)\r\n */\r\n @JsonProperty()\r\n declare start: DateProperties;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class TimeIntervalConfiguration {\r\n /**\r\n * Temporal units.\r\n *\r\n * @default \"milliseconds\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-time-TimeInterval.html#unit)\r\n */\r\n @JsonProperty()\r\n declare unit?: | \"milliseconds\"\r\n | \"seconds\"\r\n | \"minutes\"\r\n | \"hours\"\r\n | \"days\"\r\n | \"weeks\"\r\n | \"months\"\r\n | \"years\"\r\n | \"decades\"\r\n | \"centuries\";\r\n\r\n /**\r\n * The numerical value of the time extent.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-time-TimeInterval.html#value)\r\n */\r\n @JsonProperty()\r\n declare value?: number;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class TimeInfoConfiguration {\r\n /**\r\n * The name of the field containing the end time information.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-TimeInfo.html#endField)\r\n */\r\n @JsonProperty()\r\n declare endField?: string;\r\n\r\n /**\r\n * The time extent defines the start time and end time for all data in the layer.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-TimeInfo.html#fullTimeExtent)\r\n */\r\n @JsonProperty()\r\n declare fullTimeExtent?: TimeExtentConfiguration;\r\n\r\n /**\r\n * The time interval defines the granularity of the temporal data and allows you to visualize the data at specified intervals using the [time slider widget](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-TimeSlider.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-TimeInfo.html#interval)\r\n */\r\n @JsonProperty()\r\n declare interval?: TimeIntervalConfiguration;\r\n\r\n /**\r\n * The name of the field containing the start time information.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-TimeInfo.html#startField)\r\n */\r\n @JsonProperty()\r\n declare startField?: string;\r\n\r\n /**\r\n * Indicates the time instants that the layer has data for.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-TimeInfo.html#stops)\r\n */\r\n @JsonProperty()\r\n declare stops?: Array;\r\n /**\r\n * The IANA time zone that dates are stored in.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-TimeInfo.html#timeZone)\r\n */\r\n @JsonProperty()\r\n declare timeZone?: string;\r\n\r\n /**\r\n * The name of the field used to join or group discrete locations.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-TimeInfo.html#trackIdField)\r\n */\r\n @JsonProperty()\r\n declare trackIdField: string;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {SpatialReferenceConfiguration} from \"./spatial-reference-configuration\";\r\nimport {GeometryConfiguration, ExtentConfiguration, PointConfiguration} from \"./geometry-configuration\";\r\nimport {ColorConfiguration, ColorBackgroundConfiguration} from \"./color-configuration\";\r\nimport {MapConfiguration} from \"./map-configuration\";\r\nimport {LODConfiguration} from \"./lod-configuration\";\r\nimport {PopupConfiguration} from \"./popup-configuration\";\r\nimport {TimeExtentConfiguration} from \"./time-info-configration\";\r\nimport Collection from \"@arcgis/core/core/Collection\";\r\n@JsonObject()\r\nexport class ThemeConfiguration {\r\n /**\r\n * The base color used to render temporary graphics in the [View](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-Theme.html#accentColor)\r\n */\r\n @JsonProperty()\r\n declare accentColor?: ColorConfiguration | number[] | string;\r\n /**\r\n * The base color used to render temporary labels in the [View](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-Theme.html#textColor)\r\n */\r\n @JsonProperty()\r\n declare textColor?: ColorConfiguration | number[] | string;\r\n}\r\n@JsonObject()\r\nexport class ViewConfiguration {\r\n /** --- from DOMContainer ---*/\r\n\r\n /**\r\n * The `id` or node representing the DOM element containing the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-DOMContainer.html#container)\r\n */\r\n @JsonProperty()\r\n declare container: HTMLDivElement;\r\n\r\n /**\r\n * Indicates if the browser focus is on the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-DOMContainer.html#focused)\r\n */\r\n @JsonProperty()\r\n declare focused: boolean;\r\n /**\r\n * The height of the view in pixels read from the view container element.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-DOMContainer.html#height)\r\n */\r\n @JsonProperty()\r\n declare height: number;\r\n\r\n\r\n /**\r\n * Exposes the default widgets available in the view and allows you to toggle them on and off.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-DOMContainer.html#ui)\r\n */\r\n // @JsonProperty()\r\n // ui: DefaultUI;\r\n\r\n /**\r\n * The width of the view in pixels read from the view container element.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-DOMContainer.html#width)\r\n */\r\n @JsonProperty()\r\n declare width: number;\r\n\r\n /** --- end from DOMContainer ---*/\r\n\r\n /**\r\n * Collection containing a flat list of all the created [LayerViews](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html) related to the basemap, operational layers, and group layers in this view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#allLayerViews)\r\n */\r\n // @JsonProperty()\r\n // declare allLayerViews: Collection;\r\n /**\r\n * Represents an ongoing view animation initialized by [goTo()](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#goTo).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#animation)\r\n */\r\n // @JsonProperty()\r\n // declare animation: ViewAnimation;\r\n /**\r\n * Represents the view for a single basemap after it has been added to the map.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#basemapView)\r\n */\r\n // declare basemapView: BasemapView;\r\n /**\r\n * A fatal [error](https://developers.arcgis.com/javascript/latest/api-reference/esri-core-Error.html) returned when the view loses its WebGL context.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#fatalError)\r\n */\r\n // fatalError: Error;\r\n /**\r\n * Allows for adding [graphics](https://developers.arcgis.com/javascript/latest/api-reference/esri-Graphic.html) directly to the default graphics in the View.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#graphics)\r\n */\r\n // @JsonProperty()\r\n // declare graphics: Collection;\r\n\r\n /**\r\n * A collection containing a hierarchical list of all the created [LayerViews](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-layers-LayerView.html) of the [operational layers](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html#layers) in the map.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#layerViews)\r\n */\r\n // @JsonProperty()\r\n // declare layerViews: Collection;\r\n /**\r\n * An instance of a [Map](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html) object to display in the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#map)\r\n */\r\n @JsonProperty()\r\n declare map: MapConfiguration;\r\n\r\n /**\r\n * Use the padding property to make the [center](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#center), and [extent](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#extent), etc.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#padding)\r\n */\r\n // @JsonProperty()\r\n // declare navigation: NavigationConfiguration;\r\n\r\n /**\r\n * Use the padding property to make the [center](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#center), and [extent](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#extent), etc.\r\n *\r\n * @default {left: 0, top: 0, right: 0, bottom: 0}\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#padding)\r\n */\r\n // @JsonProperty()\r\n // declare padding: ViewPadding;\r\n\r\n /**\r\n * The spatial reference of the view.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#spatialReference)\r\n */\r\n @JsonProperty()\r\n declare spatialReference: SpatialReferenceConfiguration;\r\n\r\n /**\r\n * This property specifies the base colors used by some widgets and components to render graphics and labels.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#theme)\r\n */\r\n @JsonProperty()\r\n declare theme?: ThemeConfiguration;\r\n\r\n /**\r\n * The view's time extent.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#timeExtent)\r\n */\r\n @JsonProperty()\r\n declare timeExtent: TimeExtentConfiguration;\r\n /** --- from PopupViewProperties --- */\r\n /**\r\n * A [Popup](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html) object that displays general content or attributes from [layers](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html#layers) in the [map](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-PopupView.html#map).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-PopupView.html#popup)\r\n */\r\n @JsonProperty()\r\n declare popup?: PopupConfiguration;\r\n /**\r\n * Controls whether the popup opens when users click on the view.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-PopupView.html#popupEnabled)\r\n */\r\n @JsonProperty()\r\n declare popupEnabled?: boolean;\r\n /** --- end from PopupViewProperties --- */\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class MapViewConstraintsConfiguration {\r\n /**\r\n * An array of [LODs](https://developers.arcgis.com/javascript/latest/api-reference/esri-layers-support-LOD.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare lods?: LODConfiguration[];\r\n /**\r\n * The area in which the user is allowed to navigate laterally.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare geometry?: GeometryConfiguration;\r\n /**\r\n * The minimum [scale](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#scale) the user is allowed to zoom to within the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare minScale?: number;\r\n /**\r\n * The maximum [scale](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#scale) the user is allowed to zoom to within the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare maxScale?: number;\r\n /**\r\n * The minimum [zoom](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#zoom) level the user is allowed to zoom to within the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare minZoom?: number;\r\n /**\r\n * The maximum [zoom](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#zoom) level the user is allowed to zoom to within the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare maxZoom?: number;\r\n /**\r\n * When `true`, the view snaps to the next LOD when zooming in or out.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare snapToZoom?: boolean;\r\n /**\r\n * Indicates whether the user can rotate the map.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare rotationEnabled?: boolean;\r\n /**\r\n * A read-only property that specifies the levels of detail (LODs) read from the [Map](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare effectiveLODs?: LODConfiguration[];\r\n /**\r\n * A read-only property that specifies the minimum [zoom](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#zoom) level the user is allowed to zoom to within the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare effectiveMinZoom?: number;\r\n /**\r\n * A read-only property that specifies the maximum [zoom](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#zoom) level the user is allowed to zoom to within the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare effectiveMaxZoom?: number;\r\n /**\r\n * A read-only property that specifies the minimum [scale](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#scale) the user is allowed to zoom to within the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare effectiveMinScale?: number;\r\n /**\r\n * A read-only property that specifies the maximum [scale](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#scale) the user is allowed to zoom to within the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare effectiveMaxScale?: number;\r\n\r\n constructor() {}\r\n}\r\n@JsonObject()\r\nexport class CameraLayoutConfiguration {\r\n /**\r\n * The active column a display client renders to in a tiled display setup.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-CameraLayout.html#column)\r\n */\r\n @JsonProperty()\r\n declare column?: number;\r\n /**\r\n * The number of columns to decompose the camera in a tiled display setup.\r\n *\r\n * @default 1\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-CameraLayout.html#columns)\r\n */\r\n @JsonProperty()\r\n declare columns?: number;\r\n /**\r\n * The active row a display client renders to in a tiled display setup.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-CameraLayout.html#row)\r\n */\r\n @JsonProperty()\r\n declare row?: number;\r\n /**\r\n * The number of rows to decompose the camera in a tiled display setup.\r\n *\r\n * @default 1\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-CameraLayout.html#rows)\r\n */\r\n @JsonProperty()\r\n declare rows?: number;\r\n}\r\n@JsonObject()\r\nexport class CameraConfiguration {\r\n /**\r\n * The diagonal field of view (fov) angle for the camera.\r\n *\r\n * @default 55\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Camera.html#fov)\r\n */\r\n @JsonProperty()\r\n declare fov?: number;\r\n /**\r\n * The compass heading of the camera in degrees.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Camera.html#heading)\r\n */\r\n @JsonProperty()\r\n declare heading?: number;\r\n /**\r\n * The layout defines which sub-region of the camera is rendered.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Camera.html#layout)\r\n */\r\n @JsonProperty()\r\n declare layout?: CameraLayoutConfiguration;\r\n /**\r\n * The position of the camera defined by a map point.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Camera.html#position)\r\n */\r\n @JsonProperty()\r\n declare position?: PointConfiguration;\r\n /**\r\n * The tilt of the camera in degrees with respect to the surface as projected down from the camera position.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Camera.html#tilt)\r\n */\r\n @JsonProperty()\r\n declare tilt?: number;\r\n\r\n constructor() {}\r\n}\r\n\r\n@JsonObject()\r\nexport class ViewpointConfiguration {\r\n /**\r\n * The viewpoint camera (3D only).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Viewpoint.html#camera)\r\n */\r\n @JsonProperty()\r\n declare camera?: CameraConfiguration;\r\n /**\r\n * The rotation of due north in relation to the top of the view in degrees.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Viewpoint.html#rotation)\r\n */\r\n @JsonProperty()\r\n declare rotation?: number;\r\n /**\r\n * The scale of the viewpoint.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Viewpoint.html#scale)\r\n */\r\n @JsonProperty()\r\n declare scale?: number;\r\n /**\r\n * The target geometry framed by the viewpoint.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-Viewpoint.html#targetGeometry)\r\n */\r\n @JsonProperty()\r\n declare targetGeometry?: GeometryConfiguration;\r\n\r\n constructor() {}\r\n}\r\n@JsonObject()\r\nexport class HighlightOptionsConfiguration {\r\n /**\r\n * The color of the highlight fill.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#HighlightOptions)\r\n */\r\n @JsonProperty()\r\n declare color?: ColorConfiguration | number[] | string;\r\n\r\n /**\r\n * The color of the halo surrounding the highlight.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#HighlightOptions)\r\n */\r\n @JsonProperty()\r\n declare haloColor?: ColorConfiguration | number[] | string;\r\n\r\n /**\r\n * The opacity of the highlight halo.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#HighlightOptions)\r\n */\r\n @JsonProperty()\r\n declare haloOpacity?: number;\r\n\r\n /**\r\n * The opacity of the fill (area within the halo).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#HighlightOptions)\r\n */\r\n @JsonProperty()\r\n declare fillOpacity?: number;\r\n\r\n /**\r\n * The color of the highlighted feature's shadow in [3D SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#HighlightOptions)\r\n */\r\n @JsonProperty()\r\n declare shadowColor?: ColorConfiguration;\r\n /**\r\n * The opacity of the highlighted feature's shadow.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#HighlightOptions)\r\n */\r\n @JsonProperty()\r\n declare shadowOpacity?: number;\r\n /**\r\n * Defines the intensity of the shadow area obtained by overlapping the shadow of the highlighted feature and the shadow of other objects in [3D SceneView](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-SceneView.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View.html#HighlightOptions)\r\n */\r\n @JsonProperty()\r\n declare shadowDifference?: number;\r\n\r\n constructor() {}\r\n}\r\n@JsonObject()\r\nexport class MapViewConfiguration extends ViewConfiguration {\r\n /** --- from View2DProperties --- */\r\n /**\r\n * The background color of the MapView.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#background)\r\n */\r\n @JsonProperty()\r\n declare background: ColorBackgroundConfiguration;\r\n /**\r\n * Represents the view's center point; when setting the center, you may pass a [Point](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Point.html) instance or an array of numbers representing a longitude/latitude pair (`[-100.4593, 36.9014]`).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#center)\r\n */\r\n @JsonProperty()\r\n declare center?: (PointConfiguration & { type: \"point\" }) | number[];\r\n /**\r\n * Specifies constraints to [scale](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#scale), [zoom](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#zoom), and [rotation](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#rotation) that may be applied to the MapView.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#constraints)\r\n */\r\n @JsonProperty()\r\n declare constraints: MapViewConstraintsConfiguration;\r\n /**\r\n * The extent represents the visible portion of a [map](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html) within the view as an instance of [Extent](https://developers.arcgis.com/javascript/latest/api-reference/esri-geometry-Extent.html).\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#extent)\r\n */\r\n @JsonProperty()\r\n declare extent: ExtentConfiguration;\r\n /**\r\n * Applies a display filter on the view for a specific set of floor levels.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#floors)\r\n */\r\n @JsonProperty()\r\n declare floors?: Collection;\r\n /**\r\n * Options for configuring the highlight.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#highlightOptions)\r\n */\r\n @JsonProperty()\r\n declare highlightOptions: HighlightOptionsConfiguration;\r\n /**\r\n * Defines which anchor stays still while resizing the browser window.\r\n *\r\n * @default \"center\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#resizeAlign)\r\n */\r\n @JsonProperty()\r\n declare resizeAlign?: | \"center\"\r\n | \"left\"\r\n | \"right\"\r\n | \"top\"\r\n | \"bottom\"\r\n | \"top-left\"\r\n | \"top-right\"\r\n | \"bottom-left\"\r\n | \"bottom-right\";\r\n /**\r\n * The clockwise rotation of due north in relation to the top of the view in degrees.\r\n *\r\n * @default 0\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#rotation)\r\n */\r\n @JsonProperty()\r\n declare rotation?: number;\r\n /**\r\n * Represents the map scale at the center of the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#scale)\r\n */\r\n @JsonProperty()\r\n declare scale?: number;\r\n /**\r\n * Indicates if the MapView's [spatialReference](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#spatialReference) can be changed after it is initialized.\r\n *\r\n * @default false\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#spatialReferenceLocked)\r\n */\r\n @JsonProperty()\r\n declare spatialReferenceLocked?: boolean;\r\n /**\r\n * Defines the time zone of the view.\r\n *\r\n * @default \"system\"\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#timeZone)\r\n */\r\n @JsonProperty()\r\n declare timeZone?: string;\r\n\r\n /**\r\n * Represents the current view as a [Viewpoint](https://developers.arcgis.com/javascript/latest/api-reference/esri-Viewpoint.html) or point of observation on the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-MapView.html#viewpoint)\r\n */\r\n @JsonProperty()\r\n declare viewpoint?: ViewpointConfiguration;\r\n /**\r\n * Represents the level of detail (LOD) at the center of the view.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-View2D.html#zoom)\r\n */\r\n @JsonProperty()\r\n declare zoom?: number;\r\n /** --- end from View2DProperties --- */\r\n\r\n /** --- from PopupViewProperties --- */\r\n /**\r\n * A [Popup](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Popup.html) object that displays general content or attributes from [layers](https://developers.arcgis.com/javascript/latest/api-reference/esri-Map.html#layers) in the [map](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-PopupView.html#map).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-PopupView.html#popup)\r\n */\r\n @JsonProperty()\r\n declare popup?: PopupConfiguration;\r\n /**\r\n * Controls whether the popup opens when users click on the view.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-PopupView.html#popupEnabled)\r\n */\r\n @JsonProperty()\r\n declare popupEnabled?: boolean;\r\n /** --- end from PopupViewProperties --- */\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n\r\n@JsonObject()\r\nexport class InitialViewConfiguration {\r\n /**\r\n * The background color of the [WebMap](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebMap.html).\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-webmap-InitialViewProperties.html#background)\r\n */\r\n @JsonProperty()\r\n declare background: ColorBackgroundConfiguration;\r\n /**\r\n * The spatial reference of the [WebMap](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebMap.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-webmap-InitialViewProperties.html#spatialReference)\r\n */\r\n @JsonProperty()\r\n declare spatialReference: SpatialReferenceConfiguration;\r\n\r\n /**\r\n * The initial [time extent](https://developers.arcgis.com/javascript/latest/api-reference/esri-time-TimeExtent.html) of the [WebMap](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebMap.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-webmap-InitialViewProperties.html#timeExtent)\r\n */\r\n @JsonProperty()\r\n declare timeExtent: TimeExtentConfiguration;\r\n\r\n /**\r\n * The initial time zone of the [WebMap](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebMap.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-webmap-InitialViewProperties.html#timeZone)\r\n */\r\n @JsonProperty()\r\n declare timeZone: string;\r\n\r\n /**\r\n * The initial viewpoint of the [WebMap](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebMap.html).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-webmap-InitialViewProperties.html#viewpoint)\r\n */\r\n @JsonProperty()\r\n declare viewpoint: ViewpointConfiguration;\r\n\r\n constructor() {}\r\n}\r\n","import {JsonObject, JsonProperty} from \"typescript-json-serializer\";\r\n\r\n@JsonObject()\r\nexport class VisibleElementsSnappingControlsElementsConfiguration {\r\n /**\r\n * Indicates whether to display the header.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare header?: boolean;\r\n /**\r\n * Indicates whether to display the `enabledToggle` (Enable snapping).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare enabledToggle?: boolean;\r\n /**\r\n * Indicates whether to display the `selfEnabledToggle` (Geometry guides).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare selfEnabledToggle?: boolean;\r\n /**\r\n * Indicates whether to display the `featureEnabledToggle` (Feature to feature).\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare featureEnabledToggle?: boolean;\r\n /**\r\n * Indicates whether to display the [FeatureSnappingLayerSource](https://developers.arcgis.com/javascript/latest/api-reference/esri-views-interactive-snapping-FeatureSnappingLayerSource.html) layerList.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare layerList?: boolean;\r\n /**\r\n * Indicates whether to display the “Enable all” or “Disable all” button to enable / disable snapping for all the layers in the list.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Editor.html#VisibleElements)\r\n */\r\n @JsonProperty()\r\n declare layerListToggleLayersButton?: boolean;\r\n\r\n constructor() {}\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\nimport {MapConfiguration} from \"./map-configuration\";\r\nimport {PortalItemConfiguration} from \"./portal-item-configuration\";\r\nimport {InitialViewConfiguration} from \"./view-configuration\";\r\n\r\n@JsonObject()\r\nexport class WebMapConfiguration extends MapConfiguration {\r\n /**\r\n * Information relating to a list of Geotriggers.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebMap.html#geotriggersInfo)\r\n */\r\n // @JsonProperty()\r\n // declare geotriggersInfo?: GeotriggersInfoProperties;\r\n\r\n /**\r\n * Contains indoor positioning system information for the map.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebMap.html#ipsInfo)\r\n */\r\n // @JsonProperty()\r\n // declare ipsInfo?: IPSInfoProperties;\r\n\r\n /**\r\n * Provides multiple slides.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebMap.html#presentation)\r\n */\r\n @JsonProperty()\r\n declare presentation: any;\r\n\r\n /**\r\n * The utilityNetworks object contains a collection of [UtilityNetworks](https://developers.arcgis.com/javascript/latest/api-reference/esri-networks-UtilityNetwork.html) saved on the web map.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebMap.html#utilityNetworks)\r\n */\r\n // @JsonProperty()\r\n // declare utilityNetworks?: CollectionProperties;\r\n\r\n /** --- from WebDocument2DProperties --- */\r\n /**\r\n * The applicationProperties contains the viewing properties of the WebMap.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebDocument2D.html#applicationProperties)\r\n */\r\n @JsonProperty()\r\n declare applicationProperties: any;\r\n\r\n /**\r\n * The name of the application that authored the WebMap.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebDocument2D.html#authoringApp)\r\n */\r\n @JsonProperty()\r\n declare authoringApp: string;\r\n /**\r\n * The version of the application that authored the WebMap.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebDocument2D.html#authoringAppVersion)\r\n */\r\n @JsonProperty()\r\n declare authoringAppVersion: string;\r\n\r\n /**\r\n * An array of saved geographic extents that allow end users to quickly navigate to a particular area of interest.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebDocument2D.html#bookmarks)\r\n */\r\n // @JsonProperty()\r\n // bookmarks: BookmarkConfiguration[];\r\n /**\r\n * When a web map is configured as floor-aware, it has a floorInfo property defined.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebDocument2D.html#floorInfo)\r\n */\r\n // @JsonProperty()\r\n // declare floorInfo?: MapFloorInfoProperties;\r\n /**\r\n * The initial view of the WebMap.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebDocument2D.html#initialViewProperties)\r\n */\r\n @JsonProperty()\r\n declare initialViewProperties: InitialViewConfiguration;\r\n\r\n /**\r\n * The portal item from which the WebMap is loaded.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebDocument2D.html#portalItem)\r\n */\r\n @JsonProperty()\r\n declare portalItem: PortalItemConfiguration;\r\n\r\n /**\r\n * The URL to the thumbnail used for the webmap.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebDocument2D.html#thumbnailUrl)\r\n */\r\n @JsonProperty()\r\n declare thumbnailUrl?: string;\r\n\r\n /**\r\n * The widgets object contains widgets that are exposed to the user.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-WebDocument2D.html#widgets)\r\n */\r\n @JsonProperty()\r\n declare widgets?: any;\r\n /** --- end from WebDocument2DProperties --- */\r\n\r\n constructor() {\r\n super();\r\n }\r\n}\r\n","import { JsonObject, JsonProperty } from \"typescript-json-serializer\";\r\n\r\n@JsonObject()\r\nexport class WidgetConfiguration {\r\n /**\r\n * The ID or node representing the DOM element containing the widget.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Widget.html#container)\r\n */\r\n @JsonProperty()\r\n declare container: string | HTMLElement;\r\n\r\n /**\r\n * Icon which represents the widget.\r\n *\r\n * @default null\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Widget.html#icon)\r\n */\r\n @JsonProperty()\r\n declare icon?: string;\r\n\r\n /**\r\n * The unique ID assigned to the widget when the widget is created.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Widget.html#id)\r\n */\r\n @JsonProperty()\r\n declare id: string;\r\n\r\n /**\r\n * The widget's label.\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Widget.html#label)\r\n */\r\n @JsonProperty()\r\n declare label: string;\r\n /**\r\n * Indicates whether the widget is visible.\r\n *\r\n * @default true\r\n *\r\n * [Read more...](https://developers.arcgis.com/javascript/latest/api-reference/esri-widgets-Widget.html#visible)\r\n */\r\n @JsonProperty()\r\n declare visible?: boolean;\r\n\r\n constructor() {}\r\n}\r\n","export const eventMap: {[index: string]: \"click\"\r\n| \"double-click\"\r\n| \"drag\"\r\n| \"hold\"\r\n| \"key-down\"\r\n| \"key-up\"\r\n| \"layerview-create\"\r\n| \"layerview-destroy\"\r\n| \"mouse-wheel\"\r\n| \"pointer-down\"\r\n| \"pointer-move\"\r\n| \"pointer-up\"\r\n| \"resize\";\r\n} = {\r\n onClick: \"click\",\r\n onDoubleClick: \"double-click\",\r\n onDrag: \"drag\",\r\n onHold: \"hold\",\r\n onKeyDown: \"key-down\",\r\n onKeyUp: \"key-up\",\r\n onLayerViewCreate: \"layerview-create\",\r\n onLayerViewDestroy: \"layerview-destroy\",\r\n onMouseWheel: \"mouse-wheel\",\r\n onPointerDown: \"pointer-down\",\r\n onPointerMove: \"pointer-move\",\r\n onPointerUp: \"pointer-up\",\r\n onResize: \"resize\"\r\n};\r\n","import urlUtils = require(\"@arcgis/core/core/urlUtils\"); // import statement with from is not working\r\nimport {ProxyConfiguration} from \"./config/proxy-configuration\";\r\n\r\nexport class GeoProxy {\r\n config: ProxyConfiguration;\r\n\r\n constructor(config: ProxyConfiguration) {\r\n this.config = config;\r\n }\r\n\r\n loadRules() {\r\n if (!this.config) {\r\n return false;\r\n }\r\n\r\n this.config.urlPrefixes.forEach((prefix) => {\r\n urlUtils.addProxyRule({\r\n proxyUrl: this.config.url,\r\n urlPrefix: prefix\r\n });\r\n });\r\n }\r\n}\r\n","/*\r\nCopied and adapted from https://github.com/Esri/react-arcgis/blob/master/src/ts/index.ts\r\n\r\nCopyright © 2017-2019 Esri\r\n\r\nLicensed under the Apache License, Version 2.0 (the \"License\"); you may not use this file except in compliance\r\nwith the License. You may obtain a copy of the License at\r\n\r\n http://www.apache.org/licenses/LICENSE-2.0\r\n\r\nUnless required by applicable law or agreed to in writing, software distributed under the License is distributed on\r\nan \"AS IS\" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the\r\nspecific language governing permissions and limitations under the License.\r\n\r\nA copy of the license is available in the repository's LICENSE file.\r\n*/\r\nimport * as GeoMap from \"./components/map/map\";\r\nimport * as GeoScene from \"./components/scene/scene\";\r\nimport * as GeoWebMap from \"./components/web-map/web-map\";\r\nimport * as GeoWebScene from \"./components/web-scene/web-scene\";\r\n\r\nconst Geo = {\r\n Map: GeoMap.Map,\r\n Scene: GeoScene.Scene,\r\n WebMap: GeoWebMap.WebMap,\r\n WebScene: GeoWebScene.WebScene\r\n};\r\n\r\nexport default Geo;\r\n\r\nexport const WebMap = GeoWebMap.WebMap;\r\nexport const WebScene = GeoWebScene.WebScene;\r\nexport const Map = GeoMap.Map;\r\nexport const Scene = GeoScene.Scene;\r\n","import {action, observable, makeObservable, runInAction, autorun} from \"mobx\";\r\nimport {AppConfiguration} from \"./config/app-configuration\";\r\nimport EsriMap from \"@arcgis/core/Map\";\r\nimport {WebMapConfiguration} from \"./config/web-map-configuration\";\r\nimport Portal from \"@arcgis/core/portal/Portal\";\r\nimport Basemap from \"@arcgis/core/Basemap\";\r\nimport {PortalBasemapsSourceConfiguration} from \"./config/basemap-gallery-configuration\";\r\nimport {FormatUtils} from \"../utils/format-utils\";\r\nimport {PathUtils} from \"../utils/path-utils\";\r\nimport _ from \"lodash\";\r\n\r\nexport interface BasemapProps {\r\n id: string;\r\n title?: string;\r\n tags?: string[];\r\n}\r\n\r\nexport class MapState {\r\n status: string;\r\n map: EsriMap | undefined;\r\n view: __esri.MapView | __esri.SceneView | undefined;\r\n layers = observable.map();\r\n groupLayers = observable.map();\r\n visibleFilterlayers = observable.map();\r\n layerViews = observable.map();\r\n highlightedFeature: __esri.Handle | null;\r\n activeLayers = observable.map();\r\n activeLayerMetauids: string[];\r\n selectedFeature: __esri.Graphic | null;\r\n basemap: BasemapProps | null;\r\n basemapOpacity: number;\r\n defaultBasemapTitle: string;\r\n basemapAttribution: string;\r\n webMap: WebMapConfiguration;\r\n tocReady = false;\r\n\r\n featureInfo: string;\r\n\r\n appConfig: AppConfiguration;\r\n defaultBasemap: BasemapProps;\r\n\r\n constructor() {\r\n makeObservable(this, {\r\n status: observable,\r\n map: observable,\r\n view: observable,\r\n layers: observable,\r\n groupLayers: observable,\r\n visibleFilterlayers: observable,\r\n layerViews: observable,\r\n highlightedFeature: observable,\r\n activeLayers: observable,\r\n activeLayerMetauids: observable,\r\n selectedFeature: observable,\r\n basemap: observable,\r\n basemapOpacity: observable,\r\n defaultBasemapTitle: observable,\r\n basemapAttribution: observable,\r\n webMap: observable,\r\n tocReady: observable,\r\n featureInfo: observable,\r\n\r\n setStatus: action,\r\n setMap: action,\r\n setView: action,\r\n setFeatureInfo: action,\r\n clearFeatureInfo: action,\r\n addLayer: action,\r\n removeLayer: action,\r\n addGroupLayer: action,\r\n removeGroupLayer: action,\r\n addVisibleFilterLayer: action,\r\n removeVisibleFilterLayer: action,\r\n addLayerView: action,\r\n removeLayerView: action,\r\n selectFeature: action,\r\n setActiveLayers: action,\r\n setActiveLayerMetauids: action,\r\n highlightFeature: action,\r\n unhighlightFeature: action,\r\n setBasemap: action,\r\n setBasemapById: action,\r\n removeBasemap: action,\r\n setBasemapOpacity: action,\r\n setBasemapAttribution: action,\r\n setDefaultBasemapTitle: action,\r\n setDefaultBasemap: action,\r\n setWebMap: action,\r\n setTocReady: action\r\n });\r\n this.setStatus(\"loading\");\r\n this.setBasemapOpacity(100);\r\n }\r\n\r\n setStatus(status: string): void {\r\n this.status = status;\r\n }\r\n\r\n setMap(map?: EsriMap): void {\r\n this.map = map;\r\n }\r\n\r\n setView(view?: __esri.MapView | __esri.SceneView): void {\r\n this.view = view;\r\n }\r\n\r\n setFeatureInfo(info: string): void {\r\n this.featureInfo = info;\r\n }\r\n clearFeatureInfo(): void {\r\n this.featureInfo = \"\";\r\n }\r\n\r\n addLayer(key: string, layer: __esri.Layer): void {\r\n this.layers.set(key, layer);\r\n }\r\n removeLayer(key: string): void {\r\n this.layers.delete(key);\r\n }\r\n addGroupLayer(key: string, layer: __esri.Layer): void {\r\n this.groupLayers.set(key, layer);\r\n }\r\n removeGroupLayer(key: string): void {\r\n this.groupLayers.delete(key);\r\n }\r\n addVisibleFilterLayer(key: string, layer: __esri.Layer): void {\r\n this.visibleFilterlayers.set(key, layer);\r\n }\r\n removeVisibleFilterLayer(key: string): void {\r\n this.visibleFilterlayers.delete(key);\r\n }\r\n\r\n addLayerView(key: string, layerView: __esri.FeatureLayerView): void {\r\n this.layerViews.set(key, layerView);\r\n }\r\n removeLayerView(key: string): void {\r\n this.layerViews.delete(key);\r\n }\r\n\r\n selectFeature(feature: __esri.Graphic | null): void {\r\n this.selectedFeature = feature;\r\n }\r\n setActiveLayers(layers: Map): void {\r\n this.activeLayers.replace(layers);\r\n }\r\n setActiveLayerMetauids(metauids: string[]): void {\r\n if (_.isEqual(this.activeLayerMetauids, metauids)) {\r\n return;\r\n }\r\n this.activeLayerMetauids = metauids;\r\n }\r\n\r\n /**\r\n * Highlighted feature in the map\r\n * At the moment, only one feature can be highlighted at the same time\r\n *\r\n * @param feature\r\n */\r\n highlightFeature(feature: __esri.Handle): void {\r\n this.highlightedFeature = feature;\r\n }\r\n /**\r\n * Remove highlight from feature\r\n */\r\n unhighlightFeature(): void {\r\n if (!this.highlightedFeature) {\r\n return;\r\n }\r\n this.highlightedFeature.remove();\r\n this.highlightedFeature = null;\r\n }\r\n\r\n /**\r\n * Set Basemap\r\n *\r\n * @param {string} [urlOrTag]: A Tag or the URL to the REST endpoint of the map service.\r\n * @param {string} [title]: Only allowed if layers is a string.\r\n */\r\n setBasemap(urlOrTag: string, title?: string): void {\r\n if (urlOrTag.indexOf(\"http\") === -1) {\r\n const portal = new Portal();\r\n portal.load().then(()=> {\r\n runInAction(()=>{\r\n const {basemapGallery} = this.appConfig;\r\n // TODO: Query sollte auch als Objekt funktionieren\r\n portal.fetchBasemaps(basemapGallery?.source\r\n ? (basemapGallery?.source as PortalBasemapsSourceConfiguration).query\r\n : undefined).then((basemaps)=>{\r\n let basemapItem;\r\n // Grundkarte anhand Tag suchen\r\n if(urlOrTag!==\"\"){\r\n basemapItem = basemaps.find((b) => b.portalItem.tags.includes(urlOrTag));\r\n // Grundkarte nach Titel suchen\r\n } else if (title){\r\n basemapItem = basemaps.find((b) => FormatUtils.formatTitle(b.portalItem.title)\r\n === FormatUtils.formatTitle(title)\r\n && b.portalItem.tags.filter(\r\n tag => basemapGallery.excludeTags?.includes(tag)).length === 0);\r\n }\r\n if (basemapItem && this.basemap?.id !== basemapItem.portalItem.id) {\r\n const itemId = basemapItem.portalItem.id;\r\n const basemap: BasemapProps = {\r\n id: itemId,\r\n title: FormatUtils.formatTitle(basemapItem.portalItem.title),\r\n tags: basemapItem.portalItem.tags\r\n };\r\n this.setBasemapById(basemap);\r\n autorun((reaction: any) => {\r\n if (!this.map) {\r\n return;\r\n }\r\n reaction.dispose(); // stop autorun\r\n runInAction(()=>{\r\n if(this.map && this.basemap) {\r\n this.map.basemap = new Basemap({\r\n portalItem: {\r\n id: this.basemap.id\r\n }\r\n });\r\n this.map.basemap.load().then(() => {\r\n this.map?.basemap.baseLayers.forEach((layer: __esri.Layer) => {\r\n layer.opacity = this.basemapOpacity / 100;\r\n });\r\n });\r\n }\r\n });\r\n });\r\n }\r\n });\r\n });\r\n });\r\n } else {\r\n this.basemap = {\r\n id: urlOrTag,\r\n title: title? title: undefined\r\n };\r\n }\r\n }\r\n removeBasemap(): void {\r\n if(this.map?.basemap){\r\n this.map.basemap.destroy();\r\n }\r\n this.basemap=null;\r\n this.setBasemapOpacity(0);\r\n }\r\n\r\n /**\r\n * Set Basemap\r\n *\r\n * @param {string|BasemapProps} [basemapId]: Portal Id of basemap item.\r\n * @param {string} [title]\r\n * @param {array} [tags]\r\n */\r\n setBasemapById(basemapId: string | BasemapProps, title?: string, tags?: string[]): void {\r\n if (typeof basemapId !== \"string\") {\r\n this.basemap = basemapId as BasemapProps;\r\n } else {\r\n this.basemap = {\r\n id: basemapId,\r\n title: title? title: undefined,\r\n tags: tags? tags: undefined,\r\n };\r\n }\r\n }\r\n setBasemapOpacity(basemapOpacity: number): void {\r\n this.basemapOpacity = basemapOpacity;\r\n }\r\n setBasemapAttribution(attribution: string): void {\r\n this.basemapAttribution = attribution;\r\n }\r\n setDefaultBasemapTitle(title: string): void {\r\n this.defaultBasemapTitle = FormatUtils.formatTitle(title);\r\n }\r\n setDefaultBasemap(basemap: BasemapProps): void {\r\n this.defaultBasemap = basemap;\r\n if(basemap.title){\r\n if(this.defaultBasemapTitle !== FormatUtils.formatTitle(basemap.title)){\r\n this.defaultBasemapTitle = FormatUtils.formatTitle(basemap.title);\r\n }\r\n this.defaultBasemap.title = this.defaultBasemapTitle;\r\n }\r\n }\r\n\r\n setWebMap(webMap: WebMapConfiguration): void {\r\n if (typeof this.webMap !== \"undefined\" && this.webMap.portalItem.id === webMap.portalItem.id) {\r\n return;\r\n }\r\n this.webMap = webMap;\r\n }\r\n setTocReady(){\r\n this.tocReady = true;\r\n }\r\n setAppConfig(appConfig: AppConfiguration): void {\r\n this.appConfig = appConfig;\r\n }\r\n\r\n /**\r\n * Get layer views by METAUID and layerIds\r\n * Flatten group layers to get all layer views\r\n * @param metauid\r\n * @param layerIds\r\n */\r\n getLayerViewsByMetauid(metauid: string, layerIds?: number[]): __esri.LayerView[] {\r\n if (!this.view) {\r\n // eslint-disable-next-line no-console\r\n console.error(\"View not available\");\r\n return [];\r\n }\r\n const layerViews = this.view.layerViews.filter((layerView: __esri.LayerView) => {\r\n return !!(\r\n (\r\n (layerView.layer as any).metauid === metauid ||\r\n PathUtils.getMetaId(PathUtils.getLayerPath(layerView.layer)) === metauid\r\n ) &&\r\n (\r\n typeof layerIds === \"undefined\" ||\r\n // feature layer\r\n layerIds?.includes((layerView.layer as any).layerId) ||\r\n // map image layer\r\n (layerView.layer as __esri.MapImageLayer).sublayers?.map((l: any) => l.id)\r\n .some((id: number) => layerIds?.includes(id))\r\n )\r\n );\r\n });\r\n return layerViews.toArray();\r\n }\r\n\r\n /**\r\n * Get layers by METAUID and layerIds\r\n * Flatten group layers to get all layer views\r\n * @param metauid\r\n * @param layerIds\r\n */\r\n getLayersByMetauid(metauid: string, layerIds?: number[]): __esri.Layer[] {\r\n if (!this.view) {\r\n console.error(\"View not available\");\r\n return [];\r\n }\r\n const layers = this.map?.allLayers.flatten((subL: __esri.Layer) => {\r\n return (subL as __esri.MapImageLayer).allSublayers as unknown as __esri.Collection<__esri.Layer>;\r\n }).filter((layer: __esri.Layer) => {\r\n const layerMetauid = (layer as any).metauid || PathUtils.getMetaId(PathUtils.getLayerPath(layer));\r\n return !!(\r\n layerMetauid === metauid &&\r\n (\r\n !layerIds ||\r\n // feature layer\r\n layerIds?.includes((layer as any).layerId) ||\r\n // map image layer\r\n (layer as __esri.MapImageLayer).sublayers?.map((l: any) => l.id).some((id: number) =>\r\n layerIds?.includes(id))\r\n )\r\n );\r\n });\r\n return layers?.toArray() || [];\r\n }\r\n}\r\n","import React, { ComponentType, createContext } from \"react\";\r\nimport {AppConfiguration} from \"../config/app-configuration\";\r\nimport {MapViewerConfiguration} from \"../../config/map-viewer-configuration\";\r\nimport {AppState} from \"../../components/app/app-mobx\";\r\nimport {MapState} from \"../map-state\";\r\nimport {UiState} from \"../ui-state\";\r\n\r\nimport {CompareStore} from \"./compare-store-mobx\";\r\nimport {LayerListStore} from \"./layer-list-store-mobx\";\r\nimport {MapFinderStore} from \"./map-finder-store-mobx\";\r\nimport {PopupStore} from \"./popup-store-mobx\";\r\nimport {TopicSwitcherStore} from \"./topic-switcher-store-mobx\";\r\nimport {SearchStore} from \"./search-store-mobx\";\r\nimport {LayerSelectorStore} from \"./layer-selector-store-mobx\";\r\nimport {PathUtils} from \"../../utils/path-utils\";\r\nimport FeatureLayer from \"@arcgis/core/layers/FeatureLayer\";\r\nimport {FormatUtils} from \"../../utils/format-utils\";\r\nimport {\r\n FillSymbolConfiguration,\r\n PictureMarkerSymbolConfiguration,\r\n SimpleLineSymbolConfiguration\r\n} from \"../config/symbol-configuration\";\r\nimport EsriGraphic from \"@arcgis/core/Graphic\";\r\nimport EsriPoint from \"@arcgis/core/geometry/Point\";\r\nimport * as geometryEngine from \"@arcgis/core/geometry/geometryEngine\";\r\nimport {autorun, runInAction} from \"mobx\";\r\nimport {MapUtils} from \"../../utils/map-utils\";\r\nimport * as reactiveUtils from \"@arcgis/core/core/reactiveUtils\";\r\nimport Viewpoint from \"@arcgis/core/Viewpoint\";\r\nimport {SearchSourceConfiguration, SearchSourceQueryConfiguration} from \"../config/search-configuration\";\r\nimport {PopupBase} from \"../components/popup/popup\";\r\n\r\nexport type StoreType = CompareStore | LayerListStore | LayerSelectorStore | MapFinderStore | PopupStore |\r\n SearchStore | TopicSwitcherStore;\r\nexport type DataStoreType = any;\r\n\r\n\r\nexport interface IAppStore {\r\n /* add functions when adding abstract functions on AbstractAppStore */\r\n appConfig: AppConfiguration;\r\n mapViewerConfig: MapViewerConfiguration;\r\n appStore: AppState;\r\n mapStore: MapState;\r\n uiStore: UiState;\r\n\r\n CompareStore: CompareStore;\r\n LayerListStore: LayerListStore;\r\n LayerSelectorStore: LayerSelectorStore;\r\n MapFinderStore: MapFinderStore;\r\n PopupStore: PopupStore;\r\n SearchStore: SearchStore;\r\n TopicSwitcherStore: TopicSwitcherStore;\r\n}\r\n\r\nexport interface AbstractAppStoreProps {\r\n appConfig: AppConfiguration;\r\n mapViewerConfig: MapViewerConfiguration;\r\n appStore: AppState;\r\n mapStore: MapState;\r\n uiStore: UiState;\r\n}\r\n\r\nexport abstract class AbstractAppStore implements IAppStore {\r\n appConfig: AppConfiguration;\r\n mapViewerConfig: MapViewerConfiguration;\r\n appStore: AppState;\r\n mapStore: MapState;\r\n uiStore: UiState;\r\n\r\n componentsStores: Map = new Map();\r\n geoDataStores: Map; // add data stores here\r\n\r\n focusArgs: number[] = [];\r\n\r\n protected constructor(props: AbstractAppStoreProps) {\r\n // do not use makeObservable here. Not supported for derived classes\r\n // use makeObservable in constructor in each derived class\r\n // make sure you include all properties and functions of this abstract base class!\r\n // !! add observable, action, computed in derived classes when new functionality is added to this class !!\r\n this.appConfig = props.appConfig;\r\n this.mapViewerConfig = props.mapViewerConfig;\r\n this.appStore = props.appStore;\r\n this.mapStore = props.mapStore;\r\n this.uiStore = props.uiStore;\r\n }\r\n\r\n /* add abstract functions here. Do not forget to add these functions in IAppStore */\r\n\r\n get CompareStore(): CompareStore {\r\n if(!this.componentsStores.has(\"compare\")){\r\n this.componentsStores.set(\r\n \"compare\",\r\n new CompareStore()\r\n );\r\n }\r\n return this.componentsStores.get(\"compare\") as CompareStore;\r\n }\r\n get LayerListStore(): LayerListStore {\r\n if(!this.componentsStores.has(\"layer-list\")){\r\n this.componentsStores.set(\r\n \"layer-list\",\r\n new LayerListStore()\r\n );\r\n }\r\n return this.componentsStores.get(\"layer-list\") as LayerListStore;\r\n }\r\n get LayerSelectorStore(): LayerSelectorStore {\r\n const config = this.mapViewerConfig.layerSelector;\r\n if(!this.componentsStores.has(\"layer-selector\")) {\r\n this.componentsStores.set(\r\n \"layer-selector\",\r\n new LayerSelectorStore(this, config)\r\n );\r\n }\r\n return this.componentsStores.get(\"layer-selector\") as LayerSelectorStore;\r\n }\r\n get MapFinderStore(): MapFinderStore {\r\n if(!this.componentsStores.has(\"map-finder\")){\r\n this.componentsStores.set(\r\n \"map-finder\",\r\n new MapFinderStore()\r\n );\r\n }\r\n return this.componentsStores.get(\"map-finder\") as MapFinderStore;\r\n }\r\n get PopupStore(): PopupStore {\r\n if(!this.componentsStores.has(\"popup\")){\r\n this.componentsStores.set(\r\n \"popup\",\r\n new PopupStore()\r\n );\r\n }\r\n return this.componentsStores.get(\"popup\") as PopupStore;\r\n }\r\n get SearchStore(): SearchStore {\r\n if(!this.componentsStores.has(\"search\")){\r\n this.componentsStores.set(\r\n \"search\",\r\n new SearchStore()\r\n );\r\n }\r\n return this.componentsStores.get(\"search\") as SearchStore;\r\n }\r\n get TopicSwitcherStore(): TopicSwitcherStore {\r\n if(!this.componentsStores.has(\"topic-switcher\")){\r\n this.componentsStores.set(\r\n \"topic-switcher\",\r\n new TopicSwitcherStore()\r\n );\r\n }\r\n return this.componentsStores.get(\"topic-switcher\") as TopicSwitcherStore;\r\n }\r\n\r\n showObject(layerObjectId: string): void {\r\n const [layerMetaId, objectId] = layerObjectId.split(\"|\");\r\n this.PopupStore.setSelected();\r\n const searchLayer = this.mapStore.map?.allLayers.flatten((subL: __esri.Layer) => {\r\n return (subL as __esri.MapImageLayer).allSublayers as unknown as __esri.Collection<__esri.Layer>;\r\n }).find((l: __esri.Layer) => {\r\n let metaId = (l as any).metauid;\r\n if (!metaId){\r\n const url = PathUtils.getLayerPath(l);\r\n if (typeof url === \"string\") {\r\n metaId = PathUtils.getMetaId(url);\r\n }\r\n }\r\n // selber definierte Gruppen ignorieren (id >= 1000)\r\n return layerMetaId === metaId && !(typeof l.id === \"number\" && l.id >= 1000);\r\n });\r\n if (!searchLayer) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"Kein passenden Layer für URL Parameter \"+layerMetaId+\" gefunden\");\r\n return;\r\n }\r\n\r\n const searchLayers: Array = [];\r\n const queryPromises: Array> = [];\r\n let resultFeatures: __esri.Graphic[] = [];\r\n const query = (searchLayer as FeatureLayer).createQuery();\r\n if((searchLayer as any).anchorField) {\r\n if((searchLayer as any).anchorFieldType === \"integer\"){\r\n query.where = (searchLayer as any).anchorField + \" = \" + parseInt(objectId, 10);\r\n }else{\r\n query.where = (searchLayer as any).anchorField + \" = '\" + FormatUtils.encodeForSQL(objectId) + \"'\";\r\n }\r\n } else {\r\n query.where = \"objectid = \"+ objectId;\r\n }\r\n query.outFields = [\"*\"];\r\n searchLayers.push(searchLayer as FeatureLayer);\r\n searchLayers.forEach((sLayer)=>{\r\n queryPromises.push(new Promise((resolve) => {\r\n if(sLayer) {\r\n sLayer.queryFeatures(query).then((response: __esri.FeatureSet) => {\r\n if (response.features.length > 0) {\r\n resultFeatures = resultFeatures.concat(response.features);\r\n }\r\n resolve(response);\r\n });\r\n }\r\n }));\r\n });\r\n Promise.all(queryPromises).then(() => {\r\n if (resultFeatures.length === 0) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"Kein Resultat für URL Parameter gefunden\");\r\n return;\r\n }\r\n this.PopupStore.setSelected(objectId);\r\n if (this.appConfig.search.resultSymbol) {\r\n let highlightSymbol:\r\n FillSymbolConfiguration\r\n | PictureMarkerSymbolConfiguration\r\n | SimpleLineSymbolConfiguration;\r\n if (resultFeatures[0].geometry.type === \"polygon\"){\r\n highlightSymbol = this.appConfig.search.resultSymbol.highlight;\r\n } else if (resultFeatures[0].geometry.type === \"polyline\"){\r\n highlightSymbol = this.appConfig.search.resultSymbol.line;\r\n } else {\r\n highlightSymbol = this.appConfig.search.resultSymbol.pointer;\r\n }\r\n this.mapStore?.view?.graphics.removeAll();\r\n const geometries: __esri.Geometry[] = [];\r\n resultFeatures.forEach((item) => {\r\n this.mapStore?.view?.graphics.push(\r\n new EsriGraphic({\r\n geometry: item.geometry,\r\n symbol: highlightSymbol\r\n })\r\n );\r\n geometries.push(item.geometry);\r\n });\r\n this.goToGeometries(geometries);\r\n if (!this.PopupStore.disabled\r\n && (searchLayer as any).popupEnabled && (searchLayer as any).popupTemplate) {\r\n let popupPoint: __esri.Point;\r\n if (resultFeatures[0].geometry.type === \"polygon\"){\r\n popupPoint = (resultFeatures[0].geometry as __esri.Polygon)?.centroid as EsriPoint;\r\n } else if (resultFeatures[0].geometry.type === \"polyline\"){\r\n popupPoint = geometryEngine.nearestCoordinate(\r\n resultFeatures[0].geometry as __esri.Geometry,\r\n popupPoint=resultFeatures[0].geometry.extent.center).coordinate;\r\n } else {\r\n popupPoint=resultFeatures[0].geometry as EsriPoint;\r\n }\r\n runInAction(()=> {\r\n this.PopupStore.setFeatures(resultFeatures);\r\n this.PopupStore.setMapPoint(popupPoint);\r\n });\r\n }\r\n }\r\n });\r\n }\r\n\r\n goToGeometries(geometries: __esri.Geometry | __esri.Geometry[]): void {\r\n if(!this.mapStore.view){\r\n return;\r\n }\r\n this.mapStore.view.goTo(MapUtils.calculateMinExtent(geometries)).catch((error) => {\r\n if (error.name !== \"view:goto-interrupted\") {\r\n // eslint-disable-next-line no-console\r\n console.error(error);\r\n }\r\n });\r\n }\r\n\r\n processAdditionalParams(searchParams: URLSearchParams): void {\r\n const {additionalParameter} = this.mapViewerConfig;\r\n if (!additionalParameter) {\r\n return;\r\n }\r\n const searchParamsLower = new URLSearchParams();\r\n for (const [name, value] of searchParams) {\r\n searchParamsLower.append(name.toLowerCase(), value);\r\n }\r\n const focus = searchParamsLower.get(\"focus\");\r\n const marker = searchParamsLower.get(\"marker\");\r\n const basemap = searchParamsLower.get(\"basemap\");\r\n const bfs = searchParamsLower.get(\"bfs\");\r\n const egrid = searchParamsLower.get(\"egrid\");\r\n const parcel = searchParamsLower.get(\"parcel\");\r\n const gvlNo = searchParamsLower.get(\"gvl\")? searchParamsLower.get(\"gvl\"): searchParamsLower.get(\"building\");\r\n const egid = searchParamsLower.get(\"egid\");\r\n if (focus) {\r\n const focusArgs = focus.split(/\\D/);\r\n if (focusArgs.length === 3 ) {\r\n this.focusArgs = [parseInt(focusArgs[0], 10),\r\n parseInt(focusArgs[1], 10),\r\n parseInt(focusArgs[2], 10)\r\n ];\r\n delete this.appConfig.mapView.zoom;\r\n delete this.appConfig.mapView.viewpoint;\r\n this.appConfig.mapView.center = new EsriPoint({\r\n x: this.focusArgs[0],\r\n y: this.focusArgs[1],\r\n spatialReference: this.appConfig.mapView.spatialReference\r\n });\r\n this.appConfig.mapView.scale = this.focusArgs[2];\r\n reactiveUtils.when(\r\n () => this.mapStore?.view?.ready,\r\n () => {\r\n if (!this.mapStore.view) {\r\n return;\r\n }\r\n\r\n const geometry = new EsriPoint({\r\n x: this.focusArgs[0],\r\n y: this.focusArgs[1],\r\n spatialReference: this.appConfig.mapView.spatialReference\r\n });\r\n this.mapStore.view.scale = this.focusArgs[2];\r\n const target = new Viewpoint({\r\n scale: this.focusArgs[2],\r\n targetGeometry: geometry\r\n });\r\n this.mapStore.view.goTo(target).catch((error) => {\r\n if (error.name !== \"view:goto-interrupted\") {\r\n // eslint-disable-next-line no-console\r\n console.error(error);\r\n }\r\n });\r\n if (marker !== null) {\r\n let symbol;\r\n if (additionalParameter.marker\r\n && additionalParameter.marker[marker.toLowerCase()]) {\r\n symbol = additionalParameter.marker[marker.toLowerCase()];\r\n } else {\r\n symbol = this.appConfig.search.resultSymbol?.pointer;\r\n }\r\n if (symbol) {\r\n this.mapStore.view.graphics.push(\r\n new EsriGraphic({\r\n geometry,\r\n symbol\r\n })\r\n );\r\n }\r\n }\r\n },\r\n {initial: true, once: true}\r\n );\r\n }\r\n } else if (bfs || egrid || parcel || gvlNo || egid) {\r\n // TODO: Code überarbeiten und mit Search abstimmen\r\n const sourceConfig = this.appConfig.search.sources.find(\r\n (s: SearchSourceConfiguration) =>\r\n s.name === (bfs? \"Gemeinden, Orte, Flurnamen\" : gvlNo?\r\n \"Gebäudeversicherungsnummern GVL\" : parcel?\r\n \"Grundstücke\" : egid?\r\n \"Eidg. Gebäudeidentifikator EGID\": \"Eidg. Grundstückidentifikator EGRID\"));\r\n autorun((r: any) => {\r\n const popup = this.uiStore.widgets.get(\"popup\") as PopupBase;\r\n r.dispose(); // stop autorun\r\n if (sourceConfig) {\r\n let searchLayer: FeatureLayer | __esri.Sublayer | undefined;\r\n let queryConfig: SearchSourceQueryConfiguration | undefined;\r\n if (bfs && sourceConfig.queries) {\r\n queryConfig = sourceConfig.queries.find((q) => q.id === \"GRZGEMLU\");\r\n }\r\n if (!queryConfig && sourceConfig.query) {\r\n queryConfig = sourceConfig.query;\r\n }\r\n const searchLayerPromises: Array> = [];\r\n if (sourceConfig.query?.id === \"AVLSPRZX\" && popup && popup.avlsLayer) {\r\n searchLayerPromises.push(new Promise((resolve) => {\r\n popup.avlsLayer?.load().then(()=> {\r\n if (popup.avlsLayer?.hasOwnProperty(\"allSublayers\")) {\r\n searchLayer = (popup.avlsLayer as __esri.MapImageLayer).allSublayers.getItemAt(0);\r\n } else {\r\n searchLayer = popup.avlsLayer as FeatureLayer;\r\n }\r\n resolve(searchLayer);\r\n });\r\n }));\r\n } else if (queryConfig?.portalItem){\r\n const layerConfig = {\r\n layerType: \"feature\",\r\n layerId: (queryConfig.layerId) ? queryConfig.layerId : undefined,\r\n portalItem: queryConfig.portalItem,\r\n opacity: 1,\r\n listMode: \"hide\",\r\n legendEnabled: false\r\n };\r\n searchLayerPromises.push(new Promise((resolve) => {\r\n searchLayer = new FeatureLayer(layerConfig as __esri.FeatureLayerProperties);\r\n resolve(searchLayer);\r\n }));\r\n if (!bfs && sourceConfig.queries) {\r\n sourceConfig.queries.forEach((q)=>{\r\n searchLayerPromises.push(new Promise((resolve) => {\r\n if (q.portalItem) {\r\n layerConfig.layerId = (q.layerId) ? q.layerId : undefined;\r\n layerConfig.portalItem = q.portalItem;\r\n searchLayer = new FeatureLayer(layerConfig as __esri.FeatureLayerProperties);\r\n resolve(searchLayer);\r\n }\r\n }));\r\n });\r\n }\r\n }\r\n Promise.all(searchLayerPromises).then((searchLayers) => {\r\n if (searchLayer && queryConfig) {\r\n let where;\r\n if (parcel) {\r\n where = parcel.split(/[^\\d.]/).map(\r\n (no) => {\r\n const [gbcode, prznr] = no.split(\".\");\r\n return prznr? queryConfig?.expression.replace(\"$feature.gbcode\",\r\n \"\"+parseInt(gbcode, 10)).replace(\"$feature.prznr\", \"\"+parseInt(prznr, 10))\r\n .replace(/[$`{}]/g,\"\") : null;\r\n }\r\n ).join(\" OR \");\r\n } else if (egrid) {\r\n where = egrid.split(/\\DCH/i).map(\r\n (no) => queryConfig?.expression.replace(\"$feature.egrid\",\r\n \"CH\" + parseInt(no.replace(/\\D/g, \"\"), 10))\r\n .replace(/[$`{}]/g,\"\")\r\n ).join(\" OR \");\r\n } else if (bfs) {\r\n where = bfs.split(/\\D/i).map(\r\n (no) => queryConfig?.expression.replace(\"$feature.bfsnr\",\r\n \"\"+parseInt(no, 10))\r\n .replace(/[$`{}]/g,\"\")\r\n ).join(\" OR \");\r\n } else if (egid) {\r\n where = egid.split(/\\D/i).map(\r\n (no) => queryConfig?.expression.replace(\"$feature.egid\",\r\n \"\"+parseInt(no, 10))\r\n .replace(/[$`{}]/g,\"\")\r\n ).join(\" OR \");\r\n } else if (gvlNo) {\r\n where = gvlNo.split(/[^\\d.a-z]/i).map(\r\n (no) => {\r\n const [gbcode, gvnr] = no.split(\".\");\r\n return gvnr? queryConfig?.expression.replace(\"$feature.gbcode\",\r\n \"\"+parseInt(gbcode, 10)).replace(\"$feature.gvnr\", gvnr)\r\n .replace(/[$`{}]/g,\"\") : null;\r\n }\r\n ).join(\" OR \");\r\n }\r\n if (typeof where === \"string\") {\r\n const queryPromises: Array> = [];\r\n let resultFeatures: __esri.Graphic[] = [];\r\n const query = searchLayer.createQuery();\r\n query.where = where;\r\n searchLayers.forEach((sLayer)=>{\r\n queryPromises.push(new Promise((resolve) => {\r\n if(sLayer) {\r\n sLayer.queryFeatures(query).then((response) => {\r\n if (response.features.length > 0) {\r\n resultFeatures = resultFeatures.concat(response.features);\r\n }\r\n resolve(response);\r\n });\r\n }\r\n }));\r\n });\r\n Promise.all(queryPromises).then(() => {\r\n if (resultFeatures.length === 0) {\r\n // eslint-disable-next-line no-console\r\n console.warn(\"Kein Resultat für URL Parameter gefunden\");\r\n return;\r\n }\r\n if (this.appConfig.search.resultSymbol) {\r\n let highlightSymbol: FillSymbolConfiguration | PictureMarkerSymbolConfiguration;\r\n if (resultFeatures[0].geometry.type === \"polygon\"){\r\n highlightSymbol = this.appConfig.search.resultSymbol.highlight;\r\n } else {\r\n highlightSymbol = this.appConfig.search.resultSymbol.pointer;\r\n }\r\n const geometries: __esri.Geometry[] = [];\r\n resultFeatures.forEach((item) => {\r\n this.mapStore?.view?.graphics.push(\r\n new EsriGraphic({\r\n geometry: item.geometry,\r\n symbol: highlightSymbol\r\n })\r\n );\r\n geometries.push(item.geometry);\r\n });\r\n this.goToGeometries(geometries);\r\n }\r\n });\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n if (basemap) {\r\n let basemapTag: string;\r\n if (additionalParameter?.basemap && additionalParameter.basemap[basemap]) {\r\n basemapTag = additionalParameter.basemap[basemap];\r\n } else {\r\n basemapTag = \"MV6:\" + basemap.replace(/mv6:/i, \"\").toLowerCase();\r\n }\r\n autorun((r: any) => {\r\n if (!this.mapStore.view || !this.mapStore.map) {\r\n return;\r\n }\r\n r.dispose(); // stop autorun\r\n this.mapStore.setBasemap(basemapTag);\r\n });\r\n }\r\n }\r\n\r\n}\r\n\r\n\r\n/* Store helpers */\r\ntype AppStoreContextType = IAppStore | null;\r\nconst AppStoreContext = createContext(null);\r\n\r\ninterface AppStoreProviderProps {\r\n children: React.ReactNode;\r\n store: IAppStore;\r\n}\r\n\r\nexport const AppStoreProvider = ({ children, store }: AppStoreProviderProps) => {\r\n return (\r\n {children}\r\n );\r\n};\r\n\r\n/* Hook to use store in any functional component */\r\nexport const useStore = () => {\r\n return React.useContext(AppStoreContext);\r\n};\r\n\r\n/* Higher order component (HOC) to inject store to any functional or class component */\r\n// eslint-disable-next-line react/display-name\r\nexport const withStore = (Component: ComponentType) => (props: any) => {\r\n return ;\r\n};\r\n","import {action, observable, makeObservable} from \"mobx\";\r\nimport {TopicLayerConfiguration} from \"../../config/topic-configuration\";\r\n\r\nexport class CompareStore {\r\n enabled: boolean;\r\n layers = observable.map();\r\n layersLeading: TopicLayerConfiguration[];\r\n layersTrailing: TopicLayerConfiguration[];\r\n matrixSelect: string[];\r\n matrixSelectTrailing: string[];\r\n constructor() {\r\n makeObservable(this, {\r\n enabled: observable,\r\n layers: observable,\r\n layersLeading: observable,\r\n layersTrailing: observable,\r\n matrixSelect: observable,\r\n matrixSelectTrailing: observable,\r\n\r\n setEnabled: action,\r\n setLayersLeading: action,\r\n setLayers: action,\r\n setLayersTrailing: action,\r\n setMatrixSelect: action,\r\n setMatrixSelectTrailing: action\r\n });\r\n this.setEnabled(false);\r\n this.setLayersLeading([]);\r\n }\r\n setEnabled(enabled: boolean) {\r\n this.enabled = enabled;\r\n }\r\n setLayersLeading(layersLeading: TopicLayerConfiguration[]) {\r\n this.layersLeading = layersLeading;\r\n }\r\n setLayers(layers: Map) {\r\n this.layers = observable.map();\r\n layers.forEach((layerIds, key)=>{\r\n this.layers.set(key, layerIds);\r\n });\r\n }\r\n setLayersTrailing(layersTrailing: TopicLayerConfiguration[]){\r\n this.layersTrailing = layersTrailing;\r\n }\r\n setMatrixSelect(matrixSelect: string[]){\r\n this.matrixSelect = matrixSelect;\r\n }\r\n setMatrixSelectTrailing(matrixSelectTrailing: string[]){\r\n this.matrixSelectTrailing = matrixSelectTrailing;\r\n }\r\n}\r\n","import {action, observable, makeObservable} from \"mobx\";\r\nimport ListItem from \"@arcgis/core/widgets/LayerList/ListItem\";\r\n\r\nexport class LayerListStore {\r\n hasGroups: boolean;\r\n isLoading: null | boolean;\r\n processing: boolean;\r\n regroupedItems = observable.map();\r\n viewModel: __esri.LayerListViewModel;\r\n operationalItemsArray: ListItem[] = [];\r\n constructor() {\r\n makeObservable(this, {\r\n hasGroups: observable,\r\n isLoading: observable,\r\n processing: observable,\r\n regroupedItems: observable,\r\n operationalItemsArray: observable,\r\n\r\n setHasGroups: action,\r\n setIsLoading: action,\r\n setProcessing: action,\r\n setOperationalItemsArray: action\r\n });\r\n this.setIsLoading(null);\r\n }\r\n addRegroupedItem(key: string, regroupedItem: ListItem){\r\n this.regroupedItems.set(key, regroupedItem);\r\n }\r\n setHasGroups(hasGroups: boolean) {\r\n this.hasGroups = hasGroups;\r\n }\r\n setIsLoading(isLoading: boolean | null) {\r\n this.isLoading = isLoading;\r\n }\r\n setProcessing(processing: boolean) {\r\n this.processing = processing;\r\n }\r\n setViewModel(viewModel: __esri.LayerListViewModel) {\r\n this.viewModel = viewModel;\r\n }\r\n setOperationalItemsArray(operationalItemsArray: ListItem[]) {\r\n this.operationalItemsArray = operationalItemsArray;\r\n }\r\n}\r\n","import {action, computed, IReactionDisposer, makeObservable, observable, reaction, when} from \"mobx\";\r\nimport {\r\n LayerSelectorConfiguration,\r\n LayerSelectorGroupConfiguration,\r\n LayerSelectorGroupFilterConfiguration,\r\n LayerSelectorGroupRendererFieldConfiguration\r\n} from \"../config/layer-selector-configuration\";\r\nimport {TopicConfiguration, TopicLayerConfiguration} from \"../../config/topic-configuration\";\r\nimport _ from \"lodash\";\r\nimport EsriFeatureFilter from \"@arcgis/core/layers/support/FeatureFilter\";\r\nimport {LayerRules, ServiceRules} from \"../components/layer-selector/layer-selector\";\r\nimport {PathUtils} from \"../../utils/path-utils\";\r\nimport {DropdownItemProps} from \"semantic-ui-react/dist/commonjs/modules/Dropdown/DropdownItem\";\r\nimport EsriFeatureLayer from \"@arcgis/core/layers/FeatureLayer\";\r\nimport EsriMapImageLayer from \"@arcgis/core/layers/MapImageLayer\";\r\nimport LayerView from \"@arcgis/core/views/layers/LayerView\";\r\nimport Layer from \"@arcgis/core/layers/Layer\";\r\nimport Swipe from \"@arcgis/core/widgets/Swipe\";\r\nimport {IAppStore} from \"./abstract-app-store\";\r\n\r\nexport class LayerSelectorStore {\r\n /**\r\n * If the selected options are initialized per subtopic\r\n */\r\n initialized = observable.map();\r\n comparisonEnabled: boolean;\r\n config: LayerSelectorConfiguration[] | undefined;\r\n\r\n store: IAppStore | undefined;\r\n\r\n /**\r\n * Selected subtopic\r\n */\r\n subtopicId: string = \"\";\r\n subtopic: TopicConfiguration | undefined;\r\n\r\n /**\r\n * Dropdown options for each group and topic\r\n */\r\n dropDownOptions = observable.map>();\r\n\r\n /**\r\n * The selected options for the leading map, per topic and group\r\n */\r\n selectedOptionsLeading = observable.map>();\r\n /**\r\n * The selected options for the trailing map, per topic and group\r\n */\r\n selectedOptionsTrailing = observable.map>();\r\n\r\n disposeSelectionInitializer: IReactionDisposer | undefined;\r\n\r\n /**\r\n * Layers used for comparison (trailing layers)\r\n * Duplicated from leading layers\r\n */\r\n comparisonLayers: __esri.Layer[] | undefined;\r\n\r\n /**\r\n * Layer views of comparison (trailing layers)\r\n */\r\n comparisonLayerViews: __esri.LayerView[] | undefined;\r\n\r\n swipeWidget: Swipe | undefined;\r\n\r\n constructor(store: IAppStore, config: LayerSelectorConfiguration[]) {\r\n makeObservable(this, {\r\n initialized: observable,\r\n comparisonEnabled: observable,\r\n subtopicId: observable,\r\n dropDownOptions: observable,\r\n selectedOptionsLeading: observable,\r\n selectedOptionsTrailing: observable,\r\n\r\n setInitialized: action,\r\n setComparisonState: action,\r\n setSubtopic: action,\r\n setDropdownOptions: action,\r\n setSelectedOption: action,\r\n matrixConfig: computed,\r\n isInitialized: computed,\r\n dropdownOptionsForCurrentTopic: computed\r\n });\r\n this.setComparisonState(false);\r\n this.store = store;\r\n this.config = config;\r\n\r\n this.disposeSelectionInitializer = reaction(\r\n () => this.subtopicId,\r\n () => {\r\n if (!this.subtopicId || !this.matrixConfig || !this.store?.mapStore.view) {\r\n return;\r\n }\r\n\r\n this.initialize(this.matrixConfig);\r\n if (!this.isInitiallyLoading) {\r\n // only apply rules directly when not first app start\r\n // on the first app start, the rules are applied when initialized\r\n this.applyMatrixRules();\r\n if (this.comparisonEnabled) {\r\n // disable and re-enable comparison to apply rules\r\n this.disableComparison().then(() => {\r\n this.enableComparison();\r\n });\r\n }\r\n }\r\n }\r\n );\r\n when(\r\n () => this.isInitialized,\r\n () => {\r\n // apply rules when initialized. is only called once\r\n this.applyMatrixRules();\r\n }\r\n );\r\n }\r\n\r\n get matrixConfig(): LayerSelectorConfiguration | undefined {\r\n if (!this.config || !this.subtopicId) {\r\n return;\r\n }\r\n return this.config.find((c: LayerSelectorConfiguration) =>\r\n c.topicIds.includes(this.subtopicId));\r\n }\r\n\r\n /**\r\n * If the selected options are initialized for the current subtopic\r\n */\r\n get isInitialized(): boolean {\r\n if (!this.subtopicId) {\r\n return false;\r\n }\r\n return !!this.initialized.get(this.subtopicId);\r\n }\r\n\r\n get isInitiallyLoading(): boolean {\r\n return this.initialized.size === 0;\r\n }\r\n\r\n get dropdownOptionsForCurrentTopic(): Map | undefined {\r\n if (!this.dropDownOptions || this.dropDownOptions.size === 0) {\r\n return;\r\n }\r\n\r\n if (!this.dropDownOptions.has(this.subtopicId)) {\r\n return;\r\n }\r\n return this.dropDownOptions.get(this.subtopicId);\r\n }\r\n\r\n setInitialized(initialized: boolean) {\r\n if (!this.subtopicId) {\r\n console.warn(\"LayerSelector: No subtopic set\");\r\n return;\r\n }\r\n this.initialized.set(this.subtopicId, initialized);\r\n }\r\n setComparisonState(enabled: boolean) {\r\n this.comparisonEnabled = enabled;\r\n }\r\n setSubtopic(subtopic: TopicConfiguration) {\r\n this.subtopic = subtopic;\r\n this.subtopicId = subtopic.id;\r\n }\r\n\r\n setSelectedOption(group: string, selectedOptions: string, trailing: boolean = false){\r\n if (!this.subtopicId) {\r\n console.warn(\"LayerSelector: No subtopic set\");\r\n return;\r\n }\r\n const storedOptions = trailing ? this.selectedOptionsTrailing : this.selectedOptionsLeading;\r\n\r\n if (storedOptions.has(this.subtopicId) && storedOptions.get(this.subtopicId) !== undefined) {\r\n const storedTopicOptions = storedOptions.get(this.subtopicId);\r\n // @ts-expect-error TS2532\r\n storedTopicOptions.set(group, selectedOptions);\r\n } else {\r\n const groupOptions = new Map();\r\n groupOptions.set(group, selectedOptions);\r\n storedOptions.set(this.subtopicId, groupOptions);\r\n }\r\n }\r\n\r\n /**\r\n * Get selected options by current subtopic.\r\n * Leading options are returned by default.\r\n */\r\n getSelectedOptions(trailing: boolean = false): Map | undefined {\r\n const storedOptions = trailing ?\r\n this.selectedOptionsTrailing : this.selectedOptionsLeading;\r\n if (!storedOptions || storedOptions.size === 0) {\r\n return;\r\n }\r\n\r\n return storedOptions.get(this.subtopicId);\r\n }\r\n\r\n /**\r\n * Store options for dropdowns in groups to optimize loading\r\n * @param group\r\n * @param dropdownOptions\r\n */\r\n setDropdownOptions(group: string, dropdownOptions: DropdownItemProps[]){\r\n if (!this.subtopicId) {\r\n console.warn(\"LayerSelector: No subtopic set\");\r\n return;\r\n }\r\n\r\n let groupOptions: Map;\r\n if (this.dropDownOptions.has(this.subtopicId) && this.dropDownOptions.get(this.subtopicId) !== undefined) {\r\n // @ts-expect-error TS2532\r\n groupOptions = this.dropDownOptions.get(this.subtopicId);\r\n groupOptions.set(group, dropdownOptions);\r\n } else {\r\n groupOptions = new Map();\r\n groupOptions.set(group, dropdownOptions);\r\n }\r\n this.dropDownOptions.set(this.subtopicId, groupOptions);\r\n }\r\n\r\n /**\r\n * Get dropdown options by current subtopic.\r\n */\r\n getDropdownOptions(groupId: string): DropdownItemProps[] | undefined {\r\n if (!this.dropDownOptions || this.dropDownOptions.size === 0) {\r\n return;\r\n }\r\n\r\n if (!this.dropDownOptions.has(this.subtopicId) || this.dropDownOptions.get(this.subtopicId) === undefined) {\r\n return;\r\n }\r\n else {\r\n const storedTopicOptions = this.dropDownOptions.get(this.subtopicId);\r\n return storedTopicOptions?.get(groupId);\r\n }\r\n }\r\n\r\n /**\r\n * Get selected options for a specific group\r\n * @private\r\n */\r\n getSelectedGroupOptions(groupConfig: LayerSelectorGroupConfiguration, trailing: boolean): string[] | undefined {\r\n const selectedOptions = this.getSelectedOptions(trailing);\r\n if (!selectedOptions) {\r\n return;\r\n }\r\n\r\n if (selectedOptions.has(groupConfig.id)) {\r\n // already selected an option before\r\n // @ts-expect-error undefined, because TS does not respect the test if the key exists\r\n return selectedOptions.get(groupConfig.id);\r\n }\r\n else {\r\n // return default options\r\n return groupConfig.options\r\n .filter((gc) => trailing ? gc.defaultTrailing : gc.default)\r\n .map((gc) => gc.id);\r\n }\r\n }\r\n\r\n /**\r\n * Apply the rules of all selected matrix options\r\n * Set visible layers and apply filters specified by matrix configuration\r\n * @private\r\n */\r\n applyMatrixRules(trailing: boolean = false): void {\r\n if (!this.store?.mapStore.activeLayers || !this.matrixConfig) {\r\n return;\r\n }\r\n\r\n const rules = this.prepareServiceRules(trailing);\r\n if (rules) {\r\n this.applyRendererAndFilters(rules, trailing);\r\n }\r\n const visibilities = this.prepareVisibilities(trailing);\r\n if (visibilities) {\r\n this.applyLayerVisibility(visibilities, trailing);\r\n }\r\n }\r\n\r\n /**\r\n * Load options for dynamic dropdowns and store to the state\r\n * @private\r\n */\r\n loadDropdownOptions(): void {\r\n if (!this.store || !this.matrixConfig) {\r\n return;\r\n }\r\n\r\n // load dropdown options\r\n this.matrixConfig.layerMatrix.forEach((groupConfig: LayerSelectorGroupConfiguration) => {\r\n if (groupConfig.formFieldType !== \"dropdown\" || !groupConfig.store) {\r\n return;\r\n }\r\n\r\n const storedOptions = this.getDropdownOptions(groupConfig.id);\r\n if (storedOptions) {\r\n return storedOptions;\r\n }\r\n\r\n // not loaded yet. Load from data store\r\n const dataStore = this.store?.geoDataStores.get(groupConfig.store);\r\n dataStore?.loadItems(undefined).then((items: any) => {\r\n const options = items.map((feature: any) => {\r\n return {\r\n key: feature.guid,\r\n text: feature.displayLabel,\r\n value: feature.guid,\r\n data: groupConfig.dataField ? feature[groupConfig.dataField] : null\r\n };\r\n });\r\n this.setDropdownOptions(groupConfig.id, options);\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Get relevant layers for the selected options\r\n * @param trailing\r\n */\r\n relevantLayers(trailing: boolean = false): __esri.Layer[] | undefined {\r\n const rules = this.prepareServiceRules(trailing);\r\n if (!rules) {\r\n return;\r\n }\r\n return this.getLayersByRules(rules);\r\n }\r\n\r\n /**\r\n * Enable comparison mode and duplicate layers\r\n */\r\n enableComparison(): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (!this.store || !this.store.mapStore.view || !this.store.appStore.subtopic) {\r\n return;\r\n }\r\n const {mapStore, uiStore} = this.store;\r\n const view = mapStore.view as __esri.MapView;\r\n\r\n const matrixConfig = this.matrixConfig;\r\n if (!matrixConfig) {\r\n reject();\r\n return;\r\n }\r\n\r\n // find layers relevant for selected leading and trailing options\r\n const leadingLayers = this.relevantLayers();\r\n const trailingLayers = this.relevantLayers(true);\r\n\r\n if (!leadingLayers || !trailingLayers) {\r\n reject();\r\n return;\r\n }\r\n\r\n this.duplicateTrailingLayers(trailingLayers).then((clonedTrailingLayers) => {\r\n // here, the layerViews are ready but not yet present in the view.layerViews Array!!!\r\n if (!clonedTrailingLayers) {\r\n reject();\r\n throw new Error(\"Failed to duplicate leading layers\");\r\n }\r\n\r\n this.applyMatrixRules(true);\r\n\r\n const swipeProps: __esri.SwipeViewModelProperties = {\r\n // @ts-expect-error invalid id\r\n id: \"compare-widget\",\r\n view,\r\n leadingLayers,\r\n trailingLayers: clonedTrailingLayers,\r\n direction: uiStore.uiOrientation === \"portrait\" ? \"vertical\" : \"horizontal\",\r\n // Let space for sidebar in \"landscape\" mode\r\n position: ((uiStore.uiOrientation === \"landscape\") ? 55 : 50)\r\n };\r\n this.swipeWidget = new Swipe(swipeProps);\r\n mapStore.view?.ui.add(this.swipeWidget);\r\n\r\n this.setComparisonState(true);\r\n\r\n resolve();\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Disable comparison mode and cleanup\r\n */\r\n disableComparison(): Promise {\r\n return new Promise((resolve, reject) => {\r\n if (!this.comparisonEnabled || !this.comparisonLayers) {\r\n reject();\r\n return;\r\n }\r\n\r\n // destroy all comparison layers\r\n this.comparisonLayers.forEach((layer) => {\r\n this.store?.mapStore.map?.remove(layer);\r\n layer.destroy();\r\n });\r\n this.comparisonLayers = undefined;\r\n this.comparisonLayerViews = undefined;\r\n\r\n this.setComparisonState(false);\r\n\r\n if (this.swipeWidget) {\r\n this.store?.mapStore.view?.ui.remove(this.swipeWidget);\r\n this.swipeWidget.destroy();\r\n }\r\n\r\n resolve();\r\n });\r\n }\r\n\r\n /**\r\n * Duplicate the layers used as trailing layers\r\n * This enables comparison of the same layers with different filters\r\n * Add to a special group layer to support comparison\r\n * @private\r\n */\r\n duplicateTrailingLayers(leadingLayers: __esri.Layer[]): Promise<__esri.Layer[] | undefined> {\r\n return new Promise((resolve, reject) => {\r\n if (!this.store || !this.store.mapStore.view || !this.store?.appStore.subtopic) {\r\n reject();\r\n return;\r\n }\r\n const {mapStore} = this.store;\r\n const {view} = mapStore;\r\n\r\n const selectedTrailingOptions = this.getSelectedOptions(true);\r\n if (!selectedTrailingOptions) {\r\n reject();\r\n return;\r\n }\r\n\r\n // do not add layers when already added\r\n const layers = mapStore.getLayersByMetauid(\"[compare]\");\r\n\r\n const layerLoadedPromises = leadingLayers.map((layer) => {\r\n const url = PathUtils.getLayerPath(layer);\r\n if (!url) {\r\n // skip graphics layers\r\n return;\r\n }\r\n const metauid = PathUtils.getMetaId(url);\r\n\r\n const layerFound = layers.find((l) => {\r\n return (l as any).sourceMetauid === metauid && (l as any).layerId === (layer as any).layerId;\r\n });\r\n if (layerFound) {\r\n return;\r\n }\r\n\r\n const tConfig = {\r\n // take over properties from leading layer\r\n blendMode: (layer as any).blendMode ? (layer as any).blendMode : \"normal\",\r\n url,\r\n legendEnabled: false,\r\n // hide layer in layer list\r\n //listMode: \"hide\",\r\n visible: false, // visibility is applied later when rules are applied\r\n title: `[compare] ${layer.title}`\r\n };\r\n\r\n let trailingLayer;\r\n if (layer.type === \"feature\") {\r\n trailingLayer = new EsriFeatureLayer(tConfig as __esri.FeatureLayerProperties);\r\n }\r\n else if (layer.type === \"map-image\") {\r\n trailingLayer = new EsriMapImageLayer(tConfig as __esri.MapImageLayerProperties);\r\n }\r\n if (!trailingLayer) {\r\n return;\r\n }\r\n\r\n return trailingLayer.load();\r\n });\r\n\r\n // wait until all layers are loaded\r\n Promise.all(layerLoadedPromises).then((duplicatedLayers: Layer[]) => {\r\n this.comparisonLayers = duplicatedLayers;\r\n\r\n const layerViewPromises = duplicatedLayers.map((layer) => {\r\n // complete layer properties\r\n const url = PathUtils.getLayerPath(layer);\r\n const metauid = PathUtils.getMetaId(url);\r\n\r\n layer.set(\"metauid\", \"[compare]\");\r\n layer.set(\"sourceMetauid\", metauid); // remember original layer metauid\r\n if ((layer as any).sublayers) {\r\n (layer as any).sublayers.forEach((l: any) => {\r\n l.set(\"metauid\", \"[compare]\");\r\n l.set(\"sourceMetauid\", metauid);\r\n l.name = `[compare] ${l.name}`;\r\n l.legendEnabled = false;\r\n });\r\n }\r\n\r\n mapStore.map?.add(layer);\r\n\r\n // @ts-expect-error view undefined\r\n return view.whenLayerView(layer);\r\n });\r\n\r\n // wait until all layer views are ready\r\n Promise.all(layerViewPromises).then((layerViews: LayerView[]) => {\r\n this.comparisonLayerViews = layerViews;\r\n resolve(duplicatedLayers);\r\n });\r\n });\r\n });\r\n }\r\n\r\n /**\r\n * Update orientation of Swipe widget\r\n */\r\n updateOrientation(direction: \"vertical\" | \"horizontal\"): void {\r\n if(!this.comparisonEnabled || !this.swipeWidget){\r\n return;\r\n }\r\n this.swipeWidget.direction = direction;\r\n }\r\n\r\n private applyLayerVisibility(visibleLayers: TopicLayerConfiguration[], trailing: boolean = false) {\r\n if (!this.store || !this.subtopic) {\r\n return;\r\n }\r\n if (visibleLayers.length === 0) {\r\n console.debug(\"LayerSelector: No visible layers\");\r\n return;\r\n }\r\n const {subtopic} = this;\r\n\r\n if (!trailing) {\r\n // manipulate active layers of current topic and reapply\r\n // clone active layers to avoid setting the same object reference\r\n const mapActiveLayers = _.cloneDeep(subtopic?.layers);\r\n if (mapActiveLayers) {\r\n mapActiveLayers.visible = visibleLayers;\r\n this.store.appStore.setSubtopicLayers(mapActiveLayers);\r\n }\r\n }\r\n else {\r\n // // trailing layers cannot be handled by topic functions\r\n // const trailingLayers = this.store.mapStore?.getLayersByMetauid(\"[compare]\");\r\n\r\n if (!this.comparisonLayers) {\r\n return;\r\n }\r\n\r\n this.comparisonLayers.forEach((layer) => {\r\n const metauid = (layer as any).sourceMetauid;\r\n\r\n if (layer.type === \"feature\") {\r\n layer.visible = !!visibleLayers?.find((c) => {\r\n const layerId = (layer as any).layerId;\r\n return !!(metauid === c.id && c.layerIds?.includes(layerId));\r\n });\r\n }\r\n else if ((layer as any).type === \"sublayer\") {\r\n layer.visible = !!visibleLayers?.find((c) => {\r\n const layerId = (layer as any).id;\r\n return !!(metauid === c.id && c.layerIds?.includes(layerId));\r\n });\r\n }\r\n else if (layer.type === \"map-image\") {\r\n let anySubLayerVisible = false;\r\n (layer as EsriMapImageLayer).sublayers?.forEach((subLayer) => {\r\n const isSublayerVisible = visibleLayers?.find((c) => {\r\n return metauid === c.id && c.layerIds?.includes(subLayer.id);\r\n });\r\n if (isSublayerVisible) {\r\n subLayer.visible = true;\r\n anySubLayerVisible = true;\r\n } else {\r\n subLayer.visible = false;\r\n }\r\n });\r\n layer.visible = anySubLayerVisible;\r\n }\r\n });\r\n }\r\n }\r\n\r\n private applyRendererAndFilters(serviceRules: ServiceRules, trailing: boolean = false): void {\r\n if (!this.store || !this.store.mapStore.view || serviceRules.size === 0) {\r\n return;\r\n }\r\n\r\n // if tailing, only apply to layers with METAUID \"[compare]\"\r\n serviceRules.forEach((layerRules: Map, serviceId: string) => {\r\n const layerIds = Array.from(layerRules.keys());\r\n\r\n // find layer views for this rule\r\n const layerViews = trailing?\r\n this.comparisonLayerViews : this.store?.mapStore.getLayerViewsByMetauid(serviceId, layerIds);\r\n\r\n if (!layerViews || layerViews.length === 0) {\r\n // do not throw error here. In some cases renderer and filters are applied twice (why?) and in\r\n // second turn the layerViews are not found. But the filters and renderers are applied correctly\r\n // in the first turn.\r\n return;\r\n }\r\n\r\n layerRules.forEach((rules: LayerRules, layerId: number) => {\r\n const layerView = this.getLayerView(layerViews, serviceId, layerId, trailing);\r\n if (!layerView) {\r\n throw new Error(`Layer view not found ${serviceId} ${layerId}`);\r\n }\r\n\r\n if (layerView.layer.type === \"feature\") {\r\n // change renderer field\r\n if (rules.renderField) {\r\n (layerView.layer.renderer as any).field = rules.renderField;\r\n }\r\n\r\n // apply filter\r\n if (!layerView.filter) {\r\n layerView.filter = new EsriFeatureFilter();\r\n }\r\n if (rules.filter && rules.filter.length > 0) {\r\n // replace {renderField} in filter if exists\r\n const filter = rules.filter.replace(\"{renderField}\", (layerView.layer.renderer as any).field);\r\n layerView.filter.where = filter;\r\n } else {\r\n layerView.filter.where = \"1=1\";\r\n }\r\n }\r\n else if (layerView.layer.type === \"map-image\") {\r\n // apply filter\r\n const mapImageLayer = layerView.layer as __esri.MapImageLayer;\r\n const subLayer = mapImageLayer?.sublayers.find((l) =>\r\n l.id === layerId\r\n );\r\n if (!subLayer) {\r\n return;\r\n }\r\n subLayer.definitionExpression = rules.filter || \"1=1\";\r\n }\r\n });\r\n\r\n });\r\n }\r\n\r\n private getLayerView(layerViews: __esri.LayerView[], metauid: string, layerId: number, trailing: boolean = false) {\r\n // get layer view\r\n // for trailing layers, the METAUID of the source layer is stored in property \"sourceMetauid\"\r\n const layerView: any = layerViews.find((lw) =>\r\n (\r\n trailing ? (lw.layer as any).sourceMetauid : (lw.layer as any).metauid === metauid ||\r\n PathUtils.getMetaId(PathUtils.getLayerPath(lw.layer)) === metauid\r\n ) &&\r\n (\r\n (lw.layer as __esri.FeatureLayer).layerId === layerId ||\r\n (lw.layer as __esri.MapImageLayer).sublayers?.map((l) => l.id).includes(layerId)\r\n )\r\n );\r\n return layerView;\r\n }\r\n\r\n /**\r\n * Prepare rules for selected options\r\n * Summarize all rules per service and layer\r\n * @private\r\n */\r\n private prepareServiceRules(trailing?: boolean): ServiceRules | undefined {\r\n if (!this.store || !this.matrixConfig) {\r\n return;\r\n }\r\n\r\n const selectedOptions= this.getSelectedOptions(trailing);\r\n if (!selectedOptions) {\r\n return;\r\n }\r\n\r\n const {matrixConfig} = this;\r\n\r\n // loop through selected options and extract rules per service and layer\r\n const rules: ServiceRules = new Map>();\r\n selectedOptions.forEach((value: string, groupId: string) => {\r\n // get config\r\n const groupConfig: LayerSelectorGroupConfiguration | undefined =\r\n matrixConfig.layerMatrix.find((gc: LayerSelectorGroupConfiguration) => gc.id === groupId);\r\n const groupOptionConfigs = groupConfig?.options.find((o) => {\r\n return o.id === value || o.type === \"template\";\r\n });\r\n if (!groupOptionConfigs) {\r\n return;\r\n }\r\n\r\n // add rules for layers\r\n if (groupOptionConfigs.layers) {\r\n groupOptionConfigs.layers.forEach((layerConfig: TopicLayerConfiguration) => {\r\n // initialize rules for service\r\n rules.has(layerConfig.id) || rules.set(layerConfig.id, new Map());\r\n const layerRules = rules.get(layerConfig.id);\r\n\r\n layerConfig.layerIds?.forEach((layerId) => {\r\n const layerRule = layerRules?.get(layerId) || {};\r\n layerRule.visible = true;\r\n layerRules?.set(layerId, layerRule);\r\n });\r\n });\r\n }\r\n // add filter rules\r\n if (groupOptionConfigs.filters) {\r\n groupOptionConfigs.filters.forEach((filterConfig: LayerSelectorGroupFilterConfiguration) => {\r\n // initialize rules for service\r\n rules.has(filterConfig.id) || rules.set(filterConfig.id, new Map());\r\n const layerRules = rules.get(filterConfig.id);\r\n\r\n filterConfig.layerIds?.forEach((layerId) => {\r\n const layerRule = layerRules?.get(layerId) || {};\r\n\r\n let whereClause: string ;\r\n if (filterConfig.where.includes(\"{value}\")) {\r\n // replace value if needed. Value is replaced for dynamically loaded options\r\n // where value is not known at configuration time\r\n if (value) {\r\n whereClause = filterConfig.where.replace(\"{value}\", value);\r\n }\r\n else {\r\n // no value selected, remove filter for this option\r\n whereClause = \"\";\r\n }\r\n }\r\n else {\r\n // no dynamic field, use filter as is\r\n whereClause = filterConfig.where;\r\n }\r\n // concat filters if already set\r\n if (layerRule && layerRule.filter && layerRule.filter.length > 0) {\r\n if (whereClause.length > 0) {\r\n layerRule.filter += ` AND ${whereClause}`;\r\n }\r\n }\r\n else {\r\n layerRule.filter = whereClause;\r\n }\r\n layerRules?.set(layerId, layerRule);\r\n });\r\n });\r\n }\r\n // add render field rules\r\n if (groupOptionConfigs.rendererFields) {\r\n groupOptionConfigs.rendererFields.forEach((rendererFieldConfig: LayerSelectorGroupRendererFieldConfiguration) => {\r\n // initialize rules for service\r\n rules.has(rendererFieldConfig.id) || rules.set(rendererFieldConfig.id, new Map());\r\n const layerRules = rules.get(rendererFieldConfig.id);\r\n\r\n rendererFieldConfig.layerIds?.forEach((layerId) => {\r\n const layerRule = layerRules?.get(layerId) || {};\r\n layerRule.renderField = rendererFieldConfig.fieldName;\r\n layerRules?.set(layerId, layerRule);\r\n });\r\n });\r\n }\r\n });\r\n console.debug(\"Rules\", rules);\r\n return rules;\r\n }\r\n\r\n /**\r\n * Prepare visibilities for selected options separately, because these are needed as TopicLayerConfiguration[]\r\n * @param trailing\r\n * @private\r\n */\r\n private prepareVisibilities(trailing?: boolean): TopicLayerConfiguration[] | undefined {\r\n if (!this.store || !this.matrixConfig) {\r\n return;\r\n }\r\n const selectedOptions = this.getSelectedOptions(trailing);\r\n if (!selectedOptions) {\r\n return;\r\n }\r\n\r\n const {matrixConfig} = this;\r\n\r\n // loop through selected options and extract rules per service and layer\r\n let visibilities: TopicLayerConfiguration[] = [];\r\n selectedOptions.forEach((value: string, groupId: string) => {\r\n // get config\r\n const groupConfig: LayerSelectorGroupConfiguration | undefined =\r\n matrixConfig.layerMatrix.find((gc: LayerSelectorGroupConfiguration) => gc.id === groupId);\r\n const groupOptionConfigs = groupConfig?.options.find((o) => o.id === value);\r\n if (!groupOptionConfigs) {\r\n return;\r\n }\r\n if (groupOptionConfigs.layers) {\r\n visibilities = visibilities.concat(groupOptionConfigs.layers);\r\n }\r\n });\r\n return visibilities;\r\n }\r\n\r\n /**\r\n * Initialize the selected options based on the default options.\r\n * Initialize the rules for all subtopics the first time a subtopic is set\r\n * @param matrixConfig\r\n * @private\r\n */\r\n private initialize(matrixConfig: LayerSelectorConfiguration) {\r\n if (this.isInitialized) {\r\n return;\r\n }\r\n matrixConfig.layerMatrix.forEach((groupConfig: LayerSelectorGroupConfiguration) => {\r\n const leadingOption = groupConfig.options.find((o) => o.default)?.id;\r\n if (leadingOption) {\r\n this.setSelectedOption(groupConfig.id, leadingOption);\r\n }\r\n const trailingOption = groupConfig.options.find((o) => o.defaultTrailing)?.id;\r\n if (trailingOption) {\r\n this.setSelectedOption(groupConfig.id, trailingOption, true);\r\n }\r\n });\r\n\r\n const rules = this.prepareServiceRules();\r\n if (!rules) {\r\n return;\r\n }\r\n const layers = this.getLayersByRules(rules);\r\n\r\n const view = this.store?.mapStore.view;\r\n if (!view) {\r\n return;\r\n }\r\n\r\n const viewReadyHandles = layers.map((layer) => {\r\n return view.whenLayerView(layer);\r\n });\r\n // wait for all layer views to be ready until setting initialized to true\r\n // matrix rules will be applied in the reaction (see constructor)\r\n Promise.all(viewReadyHandles).then(() => {\r\n this.setInitialized(true);\r\n }).catch((e) => {\r\n console.error(\"Error waiting for layer views\", e);\r\n });\r\n }\r\n\r\n /**\r\n * Get all layers handled by the rules. This is needed to wait for all layer views to be ready\r\n * @param rules\r\n * @private\r\n */\r\n private getLayersByRules(rules: Map>) {\r\n // get all layers from selected options and wait for layer views to be ready\r\n let layers: __esri.Layer[] = [];\r\n rules.forEach((layerRules: Map, serviceId: string) => {\r\n const layerIds = Array.from(layerRules.keys());\r\n // find layer views for this rule\r\n const serviceLayers: __esri.Layer[] | undefined =\r\n this.store?.mapStore.getLayersByMetauid(serviceId, layerIds);\r\n\r\n if (!serviceLayers || serviceLayers.length === 0) {\r\n console.error(\"No layer views found. Layer views not ready yet?\");\r\n return;\r\n }\r\n layers = layers.concat(serviceLayers);\r\n });\r\n return layers;\r\n }\r\n}\r\n","import {action, observable, makeObservable} from \"mobx\";\r\n\r\nexport class MapFinderStore {\r\n visible: boolean;\r\n constructor() {\r\n makeObservable(this, {\r\n visible: observable,\r\n setVisible: action\r\n });\r\n this.setVisible(false);\r\n }\r\n setVisible(visible: boolean) {\r\n this.visible = visible;\r\n }\r\n}\r\n","import {action, observable, makeObservable} from \"mobx\";\r\nimport FieldInfoFormat from \"@arcgis/core/popup/support/FieldInfoFormat\";\r\n\r\nexport interface PopupPanelInfo {\r\n graphics: __esri.Graphic[];\r\n title: string;\r\n index?: number;\r\n order?: number;\r\n}\r\n\r\nexport class PopupStore {\r\n disabled: boolean;\r\n selected: string | undefined;\r\n visible: boolean;\r\n selectedPanelIndex: number;\r\n activeIndex: number[];\r\n activePages: number[];\r\n lastItemTitle: string = \"\";\r\n valueUnitMap: Map> = new Map();\r\n defaultFormatMap: Map> = new Map();\r\n panels: PopupPanelInfo[] = [];\r\n panelIndex: number = 1;\r\n features: __esri.Graphic[];\r\n mapPoint?: __esri.Point;\r\n timeoutMap: Map = new Map();\r\n peparedFields: string[] = [];\r\n constructor() {\r\n // set before making observable\r\n this.setSelectedPanelIndex(1);\r\n this.setActiveIndex([1]);\r\n this.setActivePages([0, 1]);\r\n this.setFeatures([]);\r\n\r\n makeObservable(this, {\r\n disabled: observable,\r\n selected: observable,\r\n visible: observable,\r\n selectedPanelIndex: observable,\r\n activeIndex: observable,\r\n activePages: observable,\r\n lastItemTitle: observable,\r\n panels: observable,\r\n panelIndex: observable,\r\n features: observable,\r\n mapPoint: observable,\r\n\r\n setDisabled: action,\r\n setSelected: action,\r\n setVisible: action,\r\n setSelectedPanelIndex: action,\r\n setActiveIndex: action,\r\n setActivePage: action,\r\n setActivePages: action,\r\n setLastItemTitle: action,\r\n addFeatures: action,\r\n setFeatures: action,\r\n setMapPoint: action,\r\n addPanel: action,\r\n clearPanels: action\r\n });\r\n this.setDisabled(false);\r\n this.setVisible(false);\r\n }\r\n setDisabled(disabled: boolean) {\r\n this.disabled = disabled;\r\n }\r\n setSelected(selected?: string) {\r\n this.selected = selected;\r\n }\r\n setVisible(visible: boolean) {\r\n this.visible = visible;\r\n if(!visible){\r\n this.setSelected();\r\n }\r\n }\r\n setSelectedPanelIndex(index: number) {\r\n this.selectedPanelIndex = index;\r\n }\r\n setActiveIndex(index: number[]) {\r\n this.activeIndex = index;\r\n }\r\n setActivePage(panelIndex: number, page: number) {\r\n this.activePages[panelIndex] = page;\r\n }\r\n getActivePage(panelIndex: number) {\r\n return this.activePages[panelIndex];\r\n }\r\n setActivePages(index: number[]) {\r\n this.activePages = index;\r\n }\r\n setLastItemTitle(title: string) {\r\n this.lastItemTitle = title;\r\n }\r\n addFeatures(features: __esri.Graphic | __esri.Graphic[]){\r\n if(!Array.isArray(features)){\r\n features = [features];\r\n }\r\n this.features = this.features.concat(features);\r\n }\r\n setFeatures(features: __esri.Graphic[]){\r\n this.features = features;\r\n }\r\n setMapPoint(mapPoint?: __esri.Point) {\r\n this.mapPoint = mapPoint;\r\n }\r\n addPanel(panel: PopupPanelInfo) {\r\n panel.index = this.panelIndex;\r\n if(typeof panel.order === \"undefined\"){\r\n panel.order = 0;\r\n }\r\n this.panels.push(panel);\r\n this.panels.sort((a, b) => b.order - a.order || a.index - b.index).map((p, index) => {\r\n p.index = index + 1;\r\n });\r\n this.panelIndex++;\r\n }\r\n setTimeoutID(key: string, timeoutID: number){\r\n this.clearTimeout(key);\r\n this.timeoutMap.set(key, timeoutID);\r\n }\r\n getTimeoutID(key: string){\r\n return this.timeoutMap.get(key);\r\n }\r\n clearTimeout(key: string){\r\n const timeoutID = this.getTimeoutID(key);\r\n if(timeoutID){\r\n clearTimeout(timeoutID);\r\n }\r\n this.timeoutMap.delete(key);\r\n }\r\n clearTimeouts(){\r\n const keys = this.timeoutMap.keys();\r\n for (const key of keys) {\r\n this.clearTimeout(key);\r\n }\r\n this.timeoutMap.clear();\r\n }\r\n clearPanels() {\r\n this.panels = [];\r\n this.panelIndex = 1;\r\n }\r\n}\r\n","import {action, observable, makeObservable} from \"mobx\";\r\nimport {ExtendedSearchViewModel} from \"../components/search/search\";\r\n\r\nexport class SearchStore {\r\n viewReady = observable.map();\r\n viewModels: Map = new Map();\r\n constructor() {\r\n makeObservable(this, {\r\n viewReady: observable,\r\n setViewReady: action\r\n });\r\n }\r\n setViewReady(key: string, ready: boolean) {\r\n this.viewReady.set(key, ready);\r\n }\r\n getViewModel(key: string): ExtendedSearchViewModel | undefined {\r\n return this.viewModels.get(key);\r\n }\r\n setViewModel(key: string, viewModel: ExtendedSearchViewModel) {\r\n this.viewModels.set(key, viewModel);\r\n }\r\n}\r\n","import {action, observable, makeObservable} from \"mobx\";\r\n\r\nexport class TopicSwitcherStore {\r\n visible: boolean;\r\n constructor() {\r\n makeObservable(this, {\r\n visible: observable,\r\n setVisible: action\r\n });\r\n this.setVisible(false);\r\n }\r\n setVisible(visible: boolean) {\r\n this.visible = visible;\r\n }\r\n}\r\n","import React from \"react\";\r\nimport {action, observable, computed, makeObservable} from \"mobx\";\r\n\r\nexport class UiState {\r\n activeTool: string;\r\n language: string;\r\n menuVisible: boolean;\r\n pendingRequestCount: number;\r\n sidebarSelectOpen: boolean;\r\n sidebarVisible: boolean;\r\n sidebarHigh: boolean;\r\n filterActive: boolean;\r\n widgets = observable.map();\r\n\r\n /**\r\n * App window size\r\n */\r\n uiWidth: number | undefined;\r\n uiHeight: number | undefined;\r\n uiOffsetTop: number | undefined;\r\n uiOrientation: \"landscape\" | \"portrait\" | undefined;\r\n isSmallDevice: boolean | undefined;\r\n\r\n /**\r\n * Remember selected tab per station\r\n */\r\n selectedTabs = observable.map();\r\n\r\n /**\r\n * Resizing state of a popup window\r\n */\r\n resizing = observable.box(false);\r\n toolGraphic: __esri.Graphic | null = null;\r\n\r\n sublayerMap = new Map();\r\n\r\n constructor() {\r\n makeObservable(this, {\r\n activeTool: observable,\r\n language: observable,\r\n menuVisible: observable,\r\n pendingRequestCount: observable,\r\n sidebarSelectOpen: observable,\r\n sidebarVisible: observable,\r\n sidebarHigh: observable,\r\n filterActive: observable,\r\n widgets: observable,\r\n uiWidth: observable,\r\n uiHeight: observable,\r\n uiOffsetTop: observable,\r\n uiOrientation: observable,\r\n isSmallDevice: observable,\r\n selectedTabs: observable,\r\n resizing: observable,\r\n toolGraphic: observable,\r\n\r\n appIsInSync: computed,\r\n isSidebarVisible: computed,\r\n isResizing: computed,\r\n\r\n addWidget: action,\r\n removeWidget: action,\r\n setActiveTool: action,\r\n setLanguage: action,\r\n setUiSize: action,\r\n setUiOffsetTop: action,\r\n resetPendingRequestCount: action,\r\n setMenuVisible: action,\r\n setFilterActive: action,\r\n setSidebarSelectOpen: action,\r\n setSidebarVisible: action,\r\n setToolGraphic: action,\r\n toggleSidebarVisible: action,\r\n setSidebarHigh: action,\r\n startResizing: action,\r\n stopResizing: action\r\n });\r\n this.setActiveTool(\"\");\r\n this.setLanguage(\"de-CH\");\r\n this.resetPendingRequestCount();\r\n this.setSidebarVisible(false);\r\n this.setUiOffsetTop();\r\n this.handleWindowResizeWhenSidebarOpen = this.handleWindowResizeWhenSidebarOpen.bind(this);\r\n }\r\n\r\n get appIsInSync() {\r\n return this.pendingRequestCount === 0;\r\n }\r\n get isResizing(): boolean {\r\n return this.resizing.get();\r\n }\r\n get isSidebarVisible() {\r\n return this.sidebarVisible;\r\n }\r\n\r\n addWidget(key: string, widget: React.Component) {\r\n this.widgets.set(key, widget);\r\n }\r\n removeWidget(key: string) {\r\n this.widgets.delete(key);\r\n }\r\n\r\n setActiveTool(tool: string, graphic?: __esri.Graphic | null) {\r\n this.setToolGraphic(graphic);\r\n this.activeTool = tool;\r\n }\r\n\r\n setLanguage(lang: string) {\r\n this.language = lang;\r\n }\r\n\r\n setUiSize(width: number | undefined, height: number | undefined, isSmallDevice?: boolean) {\r\n if(typeof width === \"number\" && typeof height === \"number\") {\r\n this.uiWidth = width;\r\n this.uiHeight = height;\r\n this.uiOrientation = height > width? \"portrait\": \"landscape\";\r\n this.isSmallDevice = isSmallDevice;\r\n }\r\n }\r\n setUiOffsetTop(uiOffsetTop?: number) {\r\n this.uiOffsetTop = uiOffsetTop? uiOffsetTop: 0;\r\n }\r\n\r\n resetPendingRequestCount() {\r\n this.pendingRequestCount = 0;\r\n }\r\n\r\n setMenuVisible(visible: boolean) {\r\n this.menuVisible = visible;\r\n }\r\n setFilterActive(active: boolean) {\r\n this.filterActive = active;\r\n }\r\n\r\n setSidebarSelectOpen(open: boolean) {\r\n this.sidebarSelectOpen = open;\r\n }\r\n\r\n setSidebarVisible(visible: boolean) {\r\n if (visible) {\r\n // add listener when menu open\r\n window.addEventListener(\"resize\", this.handleWindowResizeWhenSidebarOpen);\r\n } else {\r\n window.removeEventListener(\"resize\", this.handleWindowResizeWhenSidebarOpen);\r\n }\r\n this.sidebarVisible = visible;\r\n }\r\n toggleSidebarVisible() {\r\n this.setSidebarVisible(!this.sidebarVisible);\r\n }\r\n setSidebarHigh(isHigh: boolean){\r\n this.sidebarHigh = isHigh;\r\n }\r\n\r\n setToolGraphic(toolGraphic?: __esri.Graphic | null) {\r\n if(typeof toolGraphic === \"undefined\"){\r\n toolGraphic = null;\r\n }\r\n this.toolGraphic = toolGraphic;\r\n }\r\n\r\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\r\n handleWindowResizeWhenSidebarOpen() {\r\n if (this.isSidebarVisible) {\r\n this.setSidebarVisible(false);\r\n }\r\n // only resize once\r\n window.removeEventListener(\"resize\", this.handleWindowResizeWhenSidebarOpen);\r\n }\r\n\r\n /**\r\n * Start resizing\r\n */\r\n startResizing() {\r\n this.resizing.set(true);\r\n }\r\n\r\n /**\r\n * Stop resizing\r\n */\r\n stopResizing() {\r\n this.resizing.set(false);\r\n }\r\n\r\n}\r\n","import \"./index.scss\";\r\n\r\nimport * as React from \"react\";\r\nimport { createRoot } from \"react-dom/client\";\r\n\r\nimport {App} from \"./components/app\";\r\nimport {AppConfiguration} from \"./core/config/app-configuration\";\r\nimport {MapViewerConfiguration} from \"./config/map-viewer-configuration\";\r\n\r\nimport { JsonSerializer } from \"typescript-json-serializer\";\r\n\r\nimport esriRequest from \"@arcgis/core/request\";\r\n\r\nimport {AppState} from \"./components/app/app-mobx\";\r\nimport {Api} from \"./components/app/api\";\r\nimport RequestResponse = __esri.RequestResponse;\r\n\r\ndeclare global {\r\n interface Window { mapAPI: Api | undefined }\r\n}\r\n\r\nconst loadConfig = (url: string, file: string): Promise => {\r\n const path = url + \"/\" + file;\r\n return esriRequest(path, {\r\n responseType: \"json\"\r\n });\r\n};\r\n\r\n// TODO: auf APP_ROOT umstellen bzw. auf unterschiedliche URL pro Zielumgebung (Target)\r\n// TODO: In JSON die Pfade auf Icons ersetzen je nach Target\r\nconst loadConfigs = async (url: string) =>\r\n // use typescript dynamic import to load the config json files\r\n await Promise.all([\r\n loadConfig(url, \"core.json\"),\r\n loadConfig(url, \"mapviewer.json\")\r\n ]);\r\n\r\n// Map to the country class\r\ntry {\r\n // __CONFIG_ROOT__ is replaced by Webpack build process\r\n // see config/environments\r\n // noinspection UnnecessaryLocalVariableJS\r\n const configRoot = __CONFIG_ROOT__;\r\n loadConfigs(configRoot).then(([appJson, mapviewerJson]) => {\r\n const defaultSerializer = new JsonSerializer();\r\n const appConfig = defaultSerializer.deserializeObject(appJson.data, AppConfiguration);\r\n\r\n // deserialize as specific configuration type, but pass it to the App as generic base class type\r\n const mapViewerConfig =\r\n defaultSerializer.deserializeObject(mapviewerJson.data, MapViewerConfiguration);\r\n if (appConfig && mapViewerConfig) {\r\n const appStore = new AppState();\r\n const container = document.getElementById(\"map-root\");\r\n const root = createRoot(container!);\r\n root.render(\r\n \r\n {\r\n window.mapAPI = app?.api;\r\n }} // allows to access react app from outside react\r\n />\r\n \r\n );\r\n }\r\n }).catch((e) => {\r\n // eslint-disable-next-line no-console\r\n console.error(e);\r\n });\r\n} catch (e) {\r\n // eslint-disable-next-line no-console\r\n console.error(e);\r\n}\r\n","import {CustomSearchSourceConfiguration} from \"../core/config/search-configuration\";\r\n\r\n/**\r\n * Custom search class to search for measurement stations\r\n */\r\nexport class SearchStation {\r\n\r\n placeholder: \"Suche Station\";\r\n lyr: __esri.FeatureLayer;\r\n searchFields: string[];\r\n outFields: string[];\r\n maxSuggestions: number;\r\n maxResults: number;\r\n orderByFields: string[];\r\n\r\n constructor(props?: CustomSearchSourceConfiguration) {\r\n if (props) {\r\n props.maxSuggestions = props.hasOwnProperty(\"maxSuggestions\") ? props.maxSuggestions : 6;\r\n props.maxResults = props.hasOwnProperty(\"maxResults\") ? props.maxResults : 6;\r\n Object.assign(this, props);\r\n }\r\n }\r\n\r\n /**\r\n * Provide a getSuggestions method\r\n * to provide suggestions to the Search widget\r\n */\r\n getSuggestions(params: any): Promise<__esri.SuggestResult[]> {\r\n // query layer attributes\r\n // TODO: query for each field in searchField\r\n const promises: any[] = [];\r\n this.searchFields.forEach((field) => {\r\n const promise = this.lyr.queryFeatures({\r\n where: `${field} = '${params.suggestTerm}'`,\r\n returnGeometry: false,\r\n outFields: this.outFields,\r\n num: params.maxSuggestions,\r\n orderByFields: this.orderByFields\r\n }).then((results: any) =>\r\n // Return Suggestion results to display\r\n // in the Search widget\r\n results.features.map((feature: any) => ({\r\n key: field,\r\n text: feature.properties.label,\r\n sourceIndex: params.sourceIndex\r\n }))\r\n );\r\n promises.push(promise);\r\n });\r\n\r\n return Promise.all(promises);\r\n }\r\n\r\n /**\r\n * Provide a getResults method to find\r\n * results from the suggestions\r\n *\r\n * @param params\r\n */\r\n getResults(params: any): Promise<__esri.SearchResult[]> {\r\n // If the Search widget passes the current location,\r\n // you can use this in your own custom source\r\n // const operation = params.location ? \"reverse/\" : \"search/\";\r\n // const query = {};\r\n // // You can perform a different query if a location\r\n // // is provided\r\n // if (params.location) {\r\n // query.lat = params.location.latitude;\r\n // query.lon = params.location.longitude;\r\n // } else {\r\n // query.q = params.suggestResult.text.replace(/ /g, \"+\");\r\n // query.limit = 6;\r\n // }\r\n console.log(params);\r\n return this.lyr.queryFeatures({\r\n // where: `${field} = '${params.suggestTerm}'`,\r\n returnGeometry: true,\r\n outFields: this.outFields,\r\n num: params.maxResults,\r\n orderByFields: this.orderByFields\r\n }).then( (results: any) =>\r\n // Parse the results of your custom search\r\n // Return an array of Search Results\r\n results.features.map((feature: any) => {\r\n // Optionally, you can provide an extent for\r\n // a point result, so the view can zoom to it\r\n const buffer = __esri.geometryEngine.geodesicBuffer(feature.geometry, 100, \"meters\");\r\n // Return a Search Result\r\n return {\r\n extent: buffer[0].extent,\r\n feature,\r\n name: feature.properties.label\r\n };\r\n })\r\n );\r\n }\r\n}\r\n","import {makeObservable} from \"mobx\";\r\n\r\nimport {AppConfiguration} from \"../core/config/app-configuration\";\r\nimport {MapViewerConfiguration} from \"../config/map-viewer-configuration\";\r\nimport {AppState} from \"../components/app/app-mobx\";\r\nimport {MapState} from \"../core/map-state\";\r\nimport {UiState} from \"../core/ui-state\";\r\nimport {AbstractAppStore} from \"../core/stores/abstract-app-store\";\r\n\r\nexport interface MapViewerStoreProps {\r\n appConfig: AppConfiguration;\r\n mapViewerConfig: MapViewerConfiguration;\r\n appStore: AppState;\r\n mapStore: MapState;\r\n uiStore: UiState;\r\n}\r\n\r\nexport class MapViewerStore extends AbstractAppStore {\r\n /* stores are injected by abstract app store. Do not add them here! */\r\n\r\n /* add app specific properties here. Do not forget to add as observable in constructor */\r\n\r\n constructor(props: MapViewerStoreProps) {\r\n\r\n super(props);\r\n makeObservable(this, {\r\n /* add app specific observables here */\r\n });\r\n\r\n /* add app specific functions here */\r\n }\r\n\r\n}\r\n\r\n\r\n","/**\r\n * Replace variables in a template string with properties of an object\r\n * and executes the resulting string\r\n *\r\n * @param params\r\n * @returns {never}\r\n * @example:\r\n * const template = \"${text} == 'Foo Boo'\";\r\n * const result = template.evaluate({\r\n * text: 'Foo Boo'\r\n * });\r\n * console.log(result);\r\n */\r\nString.prototype.evaluate = function(this: string, params: object): boolean | string | null {\r\n const names = Object.keys(params);\r\n const values = Object.values(params);\r\n try {\r\n const expression = new Function(...names, `return \\`${this}\\`;`)(...values);\r\n return new Function(\"return \" + expression)();\r\n } catch (e) {\r\n console.warn(e);\r\n if (e instanceof ReferenceError) {\r\n // fields specified in expression not found in object\r\n return null;\r\n }\r\n throw e;\r\n }\r\n};\r\n","import {FieldInfoFormatConfiguration} from \"../core/config/field-info-configuration\";\r\n\r\nexport class FormatUtils {\r\n constructor() {}\r\n\r\n /**\r\n * Format a value based on format configuration\r\n */\r\n static formatValue(value: any, format: FieldInfoFormatConfiguration) {\r\n if (!format) {\r\n return value;\r\n }\r\n if (!value) {\r\n return \"-\";\r\n }\r\n if (format.places) {\r\n // use toString to remove insignificant trailing zeros\r\n value = (+value).toFixed(format.places).replace(/([0-9]+(\\.[0-9]+[1-9])?)(\\.?0+$)/, \"$1\");\r\n }\r\n if (format.digitSeparator) {\r\n value = Number(value).toLocaleString(\"de-CH\");\r\n }\r\n if (format.dateFormat) {\r\n throw new Error(\"Not implemented.\");\r\n }\r\n return value;\r\n }\r\n /**\r\n * Führende Zahlen im Title entfernen (Basemap Gallery)\r\n */\r\n static formatTitle(title: string) {\r\n return title.replace(/^(\\d){2,3} /,\"\");\r\n }\r\n /**\r\n * Styling based on color variable\r\n *\r\n * @param value The value\r\n * @param colorVariable Color variable specifications\r\n * @param useColorVariableLabel Indicator whether the label of the color variable specification should be\r\n * displayed instead of the value\r\n */\r\n static visualFormat(value: number, colorVariable: __esri.ColorVariable, useColorVariableLabel: boolean) {\r\n for (let i = 0; i < colorVariable.stops.length; i++) {\r\n const stop = colorVariable.stops[i];\r\n if (value < stop.value) {\r\n return {\r\n backgroundColor: stop.color,\r\n colorLabel: stop.label,\r\n textAlign: useColorVariableLabel ? \"center\" : \"inherit\"\r\n };\r\n }\r\n }\r\n }\r\n\r\n /**\r\n * Pad text with zeros\r\n *\r\n * @param text Input text\r\n * @param length The result length\r\n */\r\n static padZero(text: string, length: number | undefined | null) {\r\n length = length || 2;\r\n const zeros = new Array(length).join(\"0\");\r\n return (zeros + text).slice(-length);\r\n }\r\n\r\n /**\r\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Guide/Regular_Expressions#escaping\r\n * @param regexString\r\n */\r\n static escapeRegExp(regexString: string): string {\r\n return regexString.replace(/[.*+?^${}()|[\\]\\\\]/g, \"\\\\$&\"); // $& means the whole matched string\r\n }\r\n // https://stackoverflow.com/a/7760578\r\n // https://cheatsheetseries.owasp.org/cheatsheets/SQL_Injection_Prevention_Cheat_Sheet.html\r\n static encodeForSQL(str: string): string {\r\n return str.replace(/[\\0\\x08\\x09\\x1a\\n\\r\"']/g, (char) => {\r\n switch (char) {\r\n case \"\\0\":\r\n case \"\\x08\":\r\n case \"\\x09\":\r\n case \"\\x1a\":\r\n case \"\\n\":\r\n case \"\\r\":\r\n return \"\";\r\n case \"'\":\r\n return \"''\";\r\n default:\r\n return char;\r\n }\r\n });\r\n }\r\n static encodeForSQLLike(str: string): string {\r\n str = this.encodeForSQL(str);\r\n return str.replace(/[_\\\\%]/g, (char) => {\r\n switch (char) {\r\n case \"\\\\\":\r\n case \"%\":\r\n case \"_\":\r\n return \"\\\\\"+char; // prepends a backslash to backslash, percent, and double/single quotes\r\n default:\r\n return char;\r\n }\r\n });\r\n }\r\n\r\n}\r\n\r\n","import * as geometryEngine from \"@arcgis/core/geometry/geometryEngine\";\r\n\r\nexport class MapUtils {\r\n constructor() {}\r\n\r\n /**\r\n * Berechnet den Minimalen Extent\r\n *\r\n * @param {__esri.Geometry | __esri.Geometry[]} geometries: Einzelne Geometry oder Array mit Geometrien\r\n * @param {number} length: Minimale Länge/Breite des Extent, default 100 Meter\r\n * @returns {Extent}: Minimaler Extent\r\n */\r\n static calculateMinExtent(geometries: __esri.Geometry | __esri.Geometry[], length?: number): __esri.Extent {\r\n const geometry = Array.isArray(geometries)? geometryEngine.union(geometries): geometries;\r\n let extent = geometry.extent;\r\n // Extent mit mindestens 100x100 Meter sicherstellen\r\n // TODO: In config verschieben\r\n const x = length? length: 100;\r\n if (!extent) {\r\n const buffer = geometryEngine.buffer(geometry, x/2, \"meters\");\r\n if(Array.isArray(buffer)) {\r\n extent = buffer[0].extent;\r\n } else if (buffer.extent) {\r\n extent = buffer.extent;\r\n }\r\n }else if(extent.width < 100 || extent.height < 100) {\r\n if(extent.width < 100){\r\n const xPadding = Math.ceil((x - extent.width)/2);\r\n extent.xmin-=xPadding;\r\n extent.xmax+=xPadding;\r\n }\r\n if(extent.height < 100){\r\n const yPadding = Math.ceil((x - extent.height)/2);\r\n extent.ymin-=yPadding;\r\n extent.ymax+=yPadding;\r\n }\r\n }\r\n return extent;\r\n }\r\n\r\n}\r\n\r\n","export class ObjectUtils {\r\n constructor() {}\r\n\r\n /**\r\n * Performs a deep merge of objects and returns new object. Does not modify\r\n * objects (immutable) and merges arrays via concatenation.\r\n * See https://stackoverflow.com/questions/27936772/how-to-deep-merge-instead-of-shallow-merge\r\n *\r\n * @param {...object} objects - Objects to merge\r\n * @returns {object} New object with merged key/values\r\n */\r\n static mergeDeep(...objects: any[]) {\r\n const isObject = (obj: any) => obj && typeof obj === \"object\";\r\n\r\n return objects.reduce((prev, obj) => {\r\n Object.keys(obj).forEach((key) => {\r\n const pVal = prev[key];\r\n const oVal = obj[key];\r\n\r\n if (Array.isArray(pVal) && Array.isArray(oVal)) {\r\n // unique value arrays\r\n // prev[key] = [...pVal, ...oVal].filter((element, index, array) => array.indexOf(element) === index);\r\n // Ausnahme für layerTemplates TODO: bessere Lösung finden\r\n if(key===\"layerTemplates\"){\r\n prev[key] = pVal.concat(...oVal); // non unique arrays\r\n }else{\r\n prev[key] = oVal; // don't merge arrays\r\n }\r\n }\r\n else if (isObject(pVal) && isObject(oVal)) {\r\n prev[key] = ObjectUtils.mergeDeep(pVal, oVal);\r\n }\r\n else {\r\n prev[key] = oVal;\r\n }\r\n });\r\n\r\n return prev;\r\n }, {});\r\n }\r\n\r\n}\r\n\r\n","export class PathUtils {\r\n constructor() {}\r\n\r\n /**\r\n * Joins arguments to a path\r\n * joinPath(\"http://google.com/\", \"my\", \"path\") will return \"http://google.com/my/path\"\r\n * joinPath(\"//a\", \"\", \"/\", \"/b/\") will return \"//a/b\"\r\n * joinPath() will return \"\"\r\n *\r\n * @param args\r\n */\r\n static joinPath(...args: any[]): string {\r\n return args.map((part, i) => {\r\n if (i === 0) {\r\n return part.trim().replace(/[\\/]*$/g, \"\");\r\n } else {\r\n return part.trim().replace(/(^[\\/]*|[\\/]*$)/g, \"\");\r\n }\r\n }).filter((x) => x.length).join(\"/\");\r\n }\r\n static getLayerPath(layer: __esri.Layer\r\n | __esri.MapImageLayer | __esri.FeatureLayer | __esri.Sublayer | __esri.TileLayer | null): string | null {\r\n // parsedUrl on Layer is not documented!\r\n if (!layer) {\r\n return null;\r\n }\r\n let url = (layer as any).parsedUrl?.path;\r\n if (!url && \"url\" in layer) {\r\n url = (layer as __esri.MapImageLayer).url; // MapImageLayer Service\r\n }\r\n return url;\r\n }\r\n static getMetaId( path: string | null): string {\r\n if(typeof path !== \"string\"){\r\n return \"\";\r\n }\r\n path = path.replace(/\\/(FeatureServer|MapServer|ImageServer|VectorTileServer)(|\\/|\\/(\\d+))$/i, \"\");\r\n path = path.replace(/\\/VectorTileServer\\/(.+)\\.json$/i, \"\");\r\n path = path.substring(path.lastIndexOf(\"/\") + 1);\r\n path = path.replace(/_map$/i, \"\");\r\n path = path.replace(/_v(\\d+)(_FT|_MP|_IM|_VT|$)/i, \"\"); // Version und Feature/Map Services Postfix entfernen\r\n return path;\r\n }\r\n static getLayerId( path: string): number | null {\r\n let layerId = null;\r\n const matches = path.match(/\\/(FeatureServer|MapServer|ImageServer)(|\\/|\\/(\\d+))$/i);\r\n path = path.replace(/\\/VectorTileServer\\/(.+)\\.json$/i, \"\");\r\n if(matches && matches.length === 4 && typeof matches[3] !== \"undefined\"){\r\n layerId = parseInt(matches[3], 10);\r\n }\r\n return layerId;\r\n }\r\n static getVersion( path: string | null): number | null {\r\n let version = null;\r\n if(typeof path === \"string\") {\r\n const matches = path.match(/_v(\\d+)(_FT|_MP|_IM|_VT|$)/i);\r\n if (matches && matches.length === 3 && typeof matches[1] !== \"undefined\") {\r\n version = parseInt(matches[1], 10);\r\n }\r\n }\r\n return version;\r\n }\r\n static readableUrl(url: string): string {\r\n const addr = new URL(url);\r\n url = addr.hostname;\r\n url = url.replace(/^www\\./i, \"\");\r\n if (addr.pathname !== \"/\" || addr.search !==\"\" || addr.hash !==\"\"){\r\n url += addr.pathname + addr.search + addr.hash;\r\n }\r\n return url;\r\n }\r\n // https://stackoverflow.com/questions/1053902/how-to-convert-a-title-to-a-url-slug-in-jquery\r\n static slug(str: string): string {\r\n str = str.replace(/^\\s+|\\s+$/g, \"\"); // trim\r\n str = str.toLowerCase();\r\n\r\n // remove accents, swap ñ for n, etc\r\n const from = \"ÁÄÂÀÃÅČÇĆĎÉĚËÈÊẼĔȆĞÍÌÎÏİŇÑÓÖÒÔÕØŘŔŠŞŤÚŮÜÙÛÝŸŽ\"\r\n + \"áäâàãåčçćďéěëèêẽĕȇğíìîïıňñóöòôõøðřŕšşťúůüùûýÿžþÞĐđßÆa·/_,:;\";\r\n const to = \"AAAAAACCCDEEEEEEEEGIIIIINNOOOOOORRSSTUUUUUYYZ\"\r\n + \"aaaaaacccdeeeeeeeegiiiiinnooooooorrsstuuuuuyyzbBDdBAa------\";\r\n for (let i=0, l=from.length ; iGary Court\r\n * @see http://github.com/garycourt/murmurhash-js\r\n * @author Austin Appleby\r\n * @see http://sites.google.com/site/murmurhash/\r\n *\r\n * @param {string} key ASCII only\r\n * @param {number} seed Positive integer only, default 42\r\n * @return {number} 32-bit positive integer hash\r\n */\r\n\r\n static murmurhash3(key: string, seed?: number) {\r\n let h1b; let k1; let i;\r\n\r\n const remainder: number = key.length & 3; // key.length % 4\r\n const bytes: number = key.length - remainder;\r\n let h1: number = typeof seed === \"undefined\"? 42: seed;\r\n const c1: number = 0xcc9e2d51;\r\n const c2: number = 0x1b873593;\r\n i = 0;\r\n\r\n while (i < bytes) {\r\n k1 =\r\n ((key.charCodeAt(i) & 0xff)) |\r\n ((key.charCodeAt(++i) & 0xff) << 8) |\r\n ((key.charCodeAt(++i) & 0xff) << 16) |\r\n ((key.charCodeAt(++i) & 0xff) << 24);\r\n ++i;\r\n\r\n k1 = ((((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16))) & 0xffffffff;\r\n k1 = (k1 << 15) | (k1 >>> 17);\r\n k1 = ((((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16))) & 0xffffffff;\r\n\r\n h1 ^= k1;\r\n h1 = (h1 << 13) | (h1 >>> 19);\r\n h1b = ((((h1 & 0xffff) * 5) + ((((h1 >>> 16) * 5) & 0xffff) << 16))) & 0xffffffff;\r\n h1 = (((h1b & 0xffff) + 0x6b64) + ((((h1b >>> 16) + 0xe654) & 0xffff) << 16));\r\n }\r\n\r\n k1 = 0;\r\n\r\n switch (remainder) {\r\n case 3: k1 ^= (key.charCodeAt(i + 2) & 0xff) << 16;\r\n case 2: k1 ^= (key.charCodeAt(i + 1) & 0xff) << 8;\r\n case 1: k1 ^= (key.charCodeAt(i) & 0xff);\r\n\r\n k1 = (((k1 & 0xffff) * c1) + ((((k1 >>> 16) * c1) & 0xffff) << 16)) & 0xffffffff;\r\n k1 = (k1 << 15) | (k1 >>> 17);\r\n k1 = (((k1 & 0xffff) * c2) + ((((k1 >>> 16) * c2) & 0xffff) << 16)) & 0xffffffff;\r\n h1 ^= k1;\r\n }\r\n\r\n h1 ^= key.length;\r\n\r\n h1 ^= h1 >>> 16;\r\n h1 = (((h1 & 0xffff) * 0x85ebca6b) + ((((h1 >>> 16) * 0x85ebca6b) & 0xffff) << 16)) & 0xffffffff;\r\n h1 ^= h1 >>> 13;\r\n h1 = ((((h1 & 0xffff) * 0xc2b2ae35) + ((((h1 >>> 16) * 0xc2b2ae35) & 0xffff) << 16))) & 0xffffffff;\r\n h1 ^= h1 >>> 16;\r\n\r\n return h1 >>> 0;\r\n }\r\n}\r\n\r\n","// extracted by mini-css-extract-plugin\nexport {};\n if(module.hot) {\n (function() {\n var localsJsonString = undefined;\n // 1738676766121\n var cssReload = require(\"../../../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {});\n // only invalidate when locals change\n if (\n module.hot.data &&\n module.hot.data.value &&\n module.hot.data.value !== localsJsonString\n ) {\n module.hot.invalidate();\n } else {\n module.hot.accept();\n }\n module.hot.dispose(function(data) {\n data.value = localsJsonString;\n cssReload();\n });\n })();\n }\n ","// extracted by mini-css-extract-plugin\nexport {};\n if(module.hot) {\n (function() {\n var localsJsonString = undefined;\n // 1738676757839\n var cssReload = require(\"../../../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {});\n // only invalidate when locals change\n if (\n module.hot.data &&\n module.hot.data.value &&\n module.hot.data.value !== localsJsonString\n ) {\n module.hot.invalidate();\n } else {\n module.hot.accept();\n }\n module.hot.dispose(function(data) {\n data.value = localsJsonString;\n cssReload();\n });\n })();\n }\n ","// extracted by mini-css-extract-plugin\nexport {};\n if(module.hot) {\n (function() {\n var localsJsonString = undefined;\n // 1738676758228\n var cssReload = require(\"../../../../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {});\n // only invalidate when locals change\n if (\n module.hot.data &&\n module.hot.data.value &&\n module.hot.data.value !== localsJsonString\n ) {\n module.hot.invalidate();\n } else {\n module.hot.accept();\n }\n module.hot.dispose(function(data) {\n data.value = localsJsonString;\n cssReload();\n });\n })();\n }\n ","// extracted by mini-css-extract-plugin\nexport {};\n if(module.hot) {\n (function() {\n var localsJsonString = undefined;\n // 1738676758987\n var cssReload = require(\"../../../../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {});\n // only invalidate when locals change\n if (\n module.hot.data &&\n module.hot.data.value &&\n module.hot.data.value !== localsJsonString\n ) {\n module.hot.invalidate();\n } else {\n module.hot.accept();\n }\n module.hot.dispose(function(data) {\n data.value = localsJsonString;\n cssReload();\n });\n })();\n }\n ","// extracted by mini-css-extract-plugin\nexport {};\n if(module.hot) {\n (function() {\n var localsJsonString = undefined;\n // 1738676758995\n var cssReload = require(\"../../../../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {});\n // only invalidate when locals change\n if (\n module.hot.data &&\n module.hot.data.value &&\n module.hot.data.value !== localsJsonString\n ) {\n module.hot.invalidate();\n } else {\n module.hot.accept();\n }\n module.hot.dispose(function(data) {\n data.value = localsJsonString;\n cssReload();\n });\n })();\n }\n ","// extracted by mini-css-extract-plugin\nexport {};\n if(module.hot) {\n (function() {\n var localsJsonString = undefined;\n // 1738676758235\n var cssReload = require(\"../../../../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {});\n // only invalidate when locals change\n if (\n module.hot.data &&\n module.hot.data.value &&\n module.hot.data.value !== localsJsonString\n ) {\n module.hot.invalidate();\n } else {\n module.hot.accept();\n }\n module.hot.dispose(function(data) {\n data.value = localsJsonString;\n cssReload();\n });\n })();\n }\n ","// extracted by mini-css-extract-plugin\nexport {};\n if(module.hot) {\n (function() {\n var localsJsonString = undefined;\n // 1738676758245\n var cssReload = require(\"../../../../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {});\n // only invalidate when locals change\n if (\n module.hot.data &&\n module.hot.data.value &&\n module.hot.data.value !== localsJsonString\n ) {\n module.hot.invalidate();\n } else {\n module.hot.accept();\n }\n module.hot.dispose(function(data) {\n data.value = localsJsonString;\n cssReload();\n });\n })();\n }\n ","// extracted by mini-css-extract-plugin\nexport {};\n if(module.hot) {\n (function() {\n var localsJsonString = undefined;\n // 1738676758237\n var cssReload = require(\"../../../../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {});\n // only invalidate when locals change\n if (\n module.hot.data &&\n module.hot.data.value &&\n module.hot.data.value !== localsJsonString\n ) {\n module.hot.invalidate();\n } else {\n module.hot.accept();\n }\n module.hot.dispose(function(data) {\n data.value = localsJsonString;\n cssReload();\n });\n })();\n }\n ","// extracted by mini-css-extract-plugin\nexport {};\n if(module.hot) {\n (function() {\n var localsJsonString = undefined;\n // 1738676758230\n var cssReload = require(\"../../../../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {});\n // only invalidate when locals change\n if (\n module.hot.data &&\n module.hot.data.value &&\n module.hot.data.value !== localsJsonString\n ) {\n module.hot.invalidate();\n } else {\n module.hot.accept();\n }\n module.hot.dispose(function(data) {\n data.value = localsJsonString;\n cssReload();\n });\n })();\n }\n ","// extracted by mini-css-extract-plugin\nexport {};\n if(module.hot) {\n (function() {\n var localsJsonString = undefined;\n // 1738676754538\n var cssReload = require(\"../node_modules/mini-css-extract-plugin/dist/hmr/hotModuleReplacement.js\")(module.id, {});\n // only invalidate when locals change\n if (\n module.hot.data &&\n module.hot.data.value &&\n module.hot.data.value !== localsJsonString\n ) {\n module.hot.invalidate();\n } else {\n module.hot.accept();\n }\n module.hot.dispose(function(data) {\n data.value = localsJsonString;\n cssReload();\n });\n })();\n }\n ","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\tif (cachedModule.error !== undefined) throw cachedModule.error;\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\ttry {\n\t\tvar execOptions = { id: moduleId, module: module, factory: __webpack_modules__[moduleId], require: __webpack_require__ };\n\t\t__webpack_require__.i.forEach(function(handler) { handler(execOptions); });\n\t\tmodule = execOptions.module;\n\t\texecOptions.factory.call(module.exports, module, module.exports, execOptions.require);\n\t} catch(e) {\n\t\tmodule.error = e;\n\t\tthrow e;\n\t}\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n// expose the module cache\n__webpack_require__.c = __webpack_module_cache__;\n\n// expose the module execution interceptor\n__webpack_require__.i = [];\n\n","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (exports, definition) => {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","// The chunk loading function for additional chunks\n// Since all referenced chunks are already included\n// in this file, this function is empty here.\n__webpack_require__.e = () => (Promise.resolve());","// This function allow to reference all chunks\n__webpack_require__.hu = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \".\" + __webpack_require__.h() + \".hot-update.js\";\n};","// This function allow to reference async chunks\n__webpack_require__.miniCssF = (chunkId) => {\n\t// return url for filenames based on template\n\treturn undefined;\n};","__webpack_require__.hmrF = () => (\"main.\" + __webpack_require__.h() + \".hot-update.json\");","__webpack_require__.h = () => (\"7f64b6978e3b156aa4e5\")","__webpack_require__.o = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (exports) => {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 792;","var currentModuleData = {};\nvar installedModules = __webpack_require__.c;\n\n// module and require creation\nvar currentChildModule;\nvar currentParents = [];\n\n// status\nvar registeredStatusHandlers = [];\nvar currentStatus = \"idle\";\n\n// while downloading\nvar blockingPromises = 0;\nvar blockingPromisesWaiting = [];\n\n// The update info\nvar currentUpdateApplyHandlers;\nvar queuedInvalidatedModules;\n\n__webpack_require__.hmrD = currentModuleData;\n\n__webpack_require__.i.push(function (options) {\n\tvar module = options.module;\n\tvar require = createRequire(options.require, options.id);\n\tmodule.hot = createModuleHotObject(options.id, module);\n\tmodule.parents = currentParents;\n\tmodule.children = [];\n\tcurrentParents = [];\n\toptions.require = require;\n});\n\n__webpack_require__.hmrC = {};\n__webpack_require__.hmrI = {};\n\nfunction createRequire(require, moduleId) {\n\tvar me = installedModules[moduleId];\n\tif (!me) return require;\n\tvar fn = function (request) {\n\t\tif (me.hot.active) {\n\t\t\tif (installedModules[request]) {\n\t\t\t\tvar parents = installedModules[request].parents;\n\t\t\t\tif (parents.indexOf(moduleId) === -1) {\n\t\t\t\t\tparents.push(moduleId);\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tcurrentParents = [moduleId];\n\t\t\t\tcurrentChildModule = request;\n\t\t\t}\n\t\t\tif (me.children.indexOf(request) === -1) {\n\t\t\t\tme.children.push(request);\n\t\t\t}\n\t\t} else {\n\t\t\tconsole.warn(\n\t\t\t\t\"[HMR] unexpected require(\" +\n\t\t\t\t\trequest +\n\t\t\t\t\t\") from disposed module \" +\n\t\t\t\t\tmoduleId\n\t\t\t);\n\t\t\tcurrentParents = [];\n\t\t}\n\t\treturn require(request);\n\t};\n\tvar createPropertyDescriptor = function (name) {\n\t\treturn {\n\t\t\tconfigurable: true,\n\t\t\tenumerable: true,\n\t\t\tget: function () {\n\t\t\t\treturn require[name];\n\t\t\t},\n\t\t\tset: function (value) {\n\t\t\t\trequire[name] = value;\n\t\t\t}\n\t\t};\n\t};\n\tfor (var name in require) {\n\t\tif (Object.prototype.hasOwnProperty.call(require, name) && name !== \"e\") {\n\t\t\tObject.defineProperty(fn, name, createPropertyDescriptor(name));\n\t\t}\n\t}\n\tfn.e = function (chunkId, fetchPriority) {\n\t\treturn trackBlockingPromise(require.e(chunkId, fetchPriority));\n\t};\n\treturn fn;\n}\n\nfunction createModuleHotObject(moduleId, me) {\n\tvar _main = currentChildModule !== moduleId;\n\tvar hot = {\n\t\t// private stuff\n\t\t_acceptedDependencies: {},\n\t\t_acceptedErrorHandlers: {},\n\t\t_declinedDependencies: {},\n\t\t_selfAccepted: false,\n\t\t_selfDeclined: false,\n\t\t_selfInvalidated: false,\n\t\t_disposeHandlers: [],\n\t\t_main: _main,\n\t\t_requireSelf: function () {\n\t\t\tcurrentParents = me.parents.slice();\n\t\t\tcurrentChildModule = _main ? undefined : moduleId;\n\t\t\t__webpack_require__(moduleId);\n\t\t},\n\n\t\t// Module API\n\t\tactive: true,\n\t\taccept: function (dep, callback, errorHandler) {\n\t\t\tif (dep === undefined) hot._selfAccepted = true;\n\t\t\telse if (typeof dep === \"function\") hot._selfAccepted = dep;\n\t\t\telse if (typeof dep === \"object\" && dep !== null) {\n\t\t\t\tfor (var i = 0; i < dep.length; i++) {\n\t\t\t\t\thot._acceptedDependencies[dep[i]] = callback || function () {};\n\t\t\t\t\thot._acceptedErrorHandlers[dep[i]] = errorHandler;\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\thot._acceptedDependencies[dep] = callback || function () {};\n\t\t\t\thot._acceptedErrorHandlers[dep] = errorHandler;\n\t\t\t}\n\t\t},\n\t\tdecline: function (dep) {\n\t\t\tif (dep === undefined) hot._selfDeclined = true;\n\t\t\telse if (typeof dep === \"object\" && dep !== null)\n\t\t\t\tfor (var i = 0; i < dep.length; i++)\n\t\t\t\t\thot._declinedDependencies[dep[i]] = true;\n\t\t\telse hot._declinedDependencies[dep] = true;\n\t\t},\n\t\tdispose: function (callback) {\n\t\t\thot._disposeHandlers.push(callback);\n\t\t},\n\t\taddDisposeHandler: function (callback) {\n\t\t\thot._disposeHandlers.push(callback);\n\t\t},\n\t\tremoveDisposeHandler: function (callback) {\n\t\t\tvar idx = hot._disposeHandlers.indexOf(callback);\n\t\t\tif (idx >= 0) hot._disposeHandlers.splice(idx, 1);\n\t\t},\n\t\tinvalidate: function () {\n\t\t\tthis._selfInvalidated = true;\n\t\t\tswitch (currentStatus) {\n\t\t\t\tcase \"idle\":\n\t\t\t\t\tcurrentUpdateApplyHandlers = [];\n\t\t\t\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\t\t\tmoduleId,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tsetStatus(\"ready\");\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"ready\":\n\t\t\t\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\t\t\tmoduleId,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t\t\t);\n\t\t\t\t\t});\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"prepare\":\n\t\t\t\tcase \"check\":\n\t\t\t\tcase \"dispose\":\n\t\t\t\tcase \"apply\":\n\t\t\t\t\t(queuedInvalidatedModules = queuedInvalidatedModules || []).push(\n\t\t\t\t\t\tmoduleId\n\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\t// ignore requests in error states\n\t\t\t\t\tbreak;\n\t\t\t}\n\t\t},\n\n\t\t// Management API\n\t\tcheck: hotCheck,\n\t\tapply: hotApply,\n\t\tstatus: function (l) {\n\t\t\tif (!l) return currentStatus;\n\t\t\tregisteredStatusHandlers.push(l);\n\t\t},\n\t\taddStatusHandler: function (l) {\n\t\t\tregisteredStatusHandlers.push(l);\n\t\t},\n\t\tremoveStatusHandler: function (l) {\n\t\t\tvar idx = registeredStatusHandlers.indexOf(l);\n\t\t\tif (idx >= 0) registeredStatusHandlers.splice(idx, 1);\n\t\t},\n\n\t\t// inherit from previous dispose call\n\t\tdata: currentModuleData[moduleId]\n\t};\n\tcurrentChildModule = undefined;\n\treturn hot;\n}\n\nfunction setStatus(newStatus) {\n\tcurrentStatus = newStatus;\n\tvar results = [];\n\n\tfor (var i = 0; i < registeredStatusHandlers.length; i++)\n\t\tresults[i] = registeredStatusHandlers[i].call(null, newStatus);\n\n\treturn Promise.all(results).then(function () {});\n}\n\nfunction unblock() {\n\tif (--blockingPromises === 0) {\n\t\tsetStatus(\"ready\").then(function () {\n\t\t\tif (blockingPromises === 0) {\n\t\t\t\tvar list = blockingPromisesWaiting;\n\t\t\t\tblockingPromisesWaiting = [];\n\t\t\t\tfor (var i = 0; i < list.length; i++) {\n\t\t\t\t\tlist[i]();\n\t\t\t\t}\n\t\t\t}\n\t\t});\n\t}\n}\n\nfunction trackBlockingPromise(promise) {\n\tswitch (currentStatus) {\n\t\tcase \"ready\":\n\t\t\tsetStatus(\"prepare\");\n\t\t/* fallthrough */\n\t\tcase \"prepare\":\n\t\t\tblockingPromises++;\n\t\t\tpromise.then(unblock, unblock);\n\t\t\treturn promise;\n\t\tdefault:\n\t\t\treturn promise;\n\t}\n}\n\nfunction waitForBlockingPromises(fn) {\n\tif (blockingPromises === 0) return fn();\n\treturn new Promise(function (resolve) {\n\t\tblockingPromisesWaiting.push(function () {\n\t\t\tresolve(fn());\n\t\t});\n\t});\n}\n\nfunction hotCheck(applyOnUpdate) {\n\tif (currentStatus !== \"idle\") {\n\t\tthrow new Error(\"check() is only allowed in idle status\");\n\t}\n\treturn setStatus(\"check\")\n\t\t.then(__webpack_require__.hmrM)\n\t\t.then(function (update) {\n\t\t\tif (!update) {\n\t\t\t\treturn setStatus(applyInvalidatedModules() ? \"ready\" : \"idle\").then(\n\t\t\t\t\tfunction () {\n\t\t\t\t\t\treturn null;\n\t\t\t\t\t}\n\t\t\t\t);\n\t\t\t}\n\n\t\t\treturn setStatus(\"prepare\").then(function () {\n\t\t\t\tvar updatedModules = [];\n\t\t\t\tcurrentUpdateApplyHandlers = [];\n\n\t\t\t\treturn Promise.all(\n\t\t\t\t\tObject.keys(__webpack_require__.hmrC).reduce(function (\n\t\t\t\t\t\tpromises,\n\t\t\t\t\t\tkey\n\t\t\t\t\t) {\n\t\t\t\t\t\t__webpack_require__.hmrC[key](\n\t\t\t\t\t\t\tupdate.c,\n\t\t\t\t\t\t\tupdate.r,\n\t\t\t\t\t\t\tupdate.m,\n\t\t\t\t\t\t\tpromises,\n\t\t\t\t\t\t\tcurrentUpdateApplyHandlers,\n\t\t\t\t\t\t\tupdatedModules\n\t\t\t\t\t\t);\n\t\t\t\t\t\treturn promises;\n\t\t\t\t\t}, [])\n\t\t\t\t).then(function () {\n\t\t\t\t\treturn waitForBlockingPromises(function () {\n\t\t\t\t\t\tif (applyOnUpdate) {\n\t\t\t\t\t\t\treturn internalApply(applyOnUpdate);\n\t\t\t\t\t\t}\n\t\t\t\t\t\treturn setStatus(\"ready\").then(function () {\n\t\t\t\t\t\t\treturn updatedModules;\n\t\t\t\t\t\t});\n\t\t\t\t\t});\n\t\t\t\t});\n\t\t\t});\n\t\t});\n}\n\nfunction hotApply(options) {\n\tif (currentStatus !== \"ready\") {\n\t\treturn Promise.resolve().then(function () {\n\t\t\tthrow new Error(\n\t\t\t\t\"apply() is only allowed in ready status (state: \" +\n\t\t\t\t\tcurrentStatus +\n\t\t\t\t\t\")\"\n\t\t\t);\n\t\t});\n\t}\n\treturn internalApply(options);\n}\n\nfunction internalApply(options) {\n\toptions = options || {};\n\n\tapplyInvalidatedModules();\n\n\tvar results = currentUpdateApplyHandlers.map(function (handler) {\n\t\treturn handler(options);\n\t});\n\tcurrentUpdateApplyHandlers = undefined;\n\n\tvar errors = results\n\t\t.map(function (r) {\n\t\t\treturn r.error;\n\t\t})\n\t\t.filter(Boolean);\n\n\tif (errors.length > 0) {\n\t\treturn setStatus(\"abort\").then(function () {\n\t\t\tthrow errors[0];\n\t\t});\n\t}\n\n\t// Now in \"dispose\" phase\n\tvar disposePromise = setStatus(\"dispose\");\n\n\tresults.forEach(function (result) {\n\t\tif (result.dispose) result.dispose();\n\t});\n\n\t// Now in \"apply\" phase\n\tvar applyPromise = setStatus(\"apply\");\n\n\tvar error;\n\tvar reportError = function (err) {\n\t\tif (!error) error = err;\n\t};\n\n\tvar outdatedModules = [];\n\tresults.forEach(function (result) {\n\t\tif (result.apply) {\n\t\t\tvar modules = result.apply(reportError);\n\t\t\tif (modules) {\n\t\t\t\tfor (var i = 0; i < modules.length; i++) {\n\t\t\t\t\toutdatedModules.push(modules[i]);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t});\n\n\treturn Promise.all([disposePromise, applyPromise]).then(function () {\n\t\t// handle errors in accept handlers and self accepted module load\n\t\tif (error) {\n\t\t\treturn setStatus(\"fail\").then(function () {\n\t\t\t\tthrow error;\n\t\t\t});\n\t\t}\n\n\t\tif (queuedInvalidatedModules) {\n\t\t\treturn internalApply(options).then(function (list) {\n\t\t\t\toutdatedModules.forEach(function (moduleId) {\n\t\t\t\t\tif (list.indexOf(moduleId) < 0) list.push(moduleId);\n\t\t\t\t});\n\t\t\t\treturn list;\n\t\t\t});\n\t\t}\n\n\t\treturn setStatus(\"idle\").then(function () {\n\t\t\treturn outdatedModules;\n\t\t});\n\t});\n}\n\nfunction applyInvalidatedModules() {\n\tif (queuedInvalidatedModules) {\n\t\tif (!currentUpdateApplyHandlers) currentUpdateApplyHandlers = [];\n\t\tObject.keys(__webpack_require__.hmrI).forEach(function (key) {\n\t\t\tqueuedInvalidatedModules.forEach(function (moduleId) {\n\t\t\t\t__webpack_require__.hmrI[key](\n\t\t\t\t\tmoduleId,\n\t\t\t\t\tcurrentUpdateApplyHandlers\n\t\t\t\t);\n\t\t\t});\n\t\t});\n\t\tqueuedInvalidatedModules = undefined;\n\t\treturn true;\n\t}\n}","__webpack_require__.p = \"/datenshop-map/\";","if (typeof document === \"undefined\") return;\nvar createStylesheet = (chunkId, fullhref, oldTag, resolve, reject) => {\n\tvar linkTag = document.createElement(\"link\");\n\n\tlinkTag.rel = \"stylesheet\";\n\tlinkTag.type = \"text/css\";\n\tif (__webpack_require__.nc) {\n\t\tlinkTag.nonce = __webpack_require__.nc;\n\t}\n\tvar onLinkComplete = (event) => {\n\t\t// avoid mem leaks.\n\t\tlinkTag.onerror = linkTag.onload = null;\n\t\tif (event.type === 'load') {\n\t\t\tresolve();\n\t\t} else {\n\t\t\tvar errorType = event && event.type;\n\t\t\tvar realHref = event && event.target && event.target.href || fullhref;\n\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + errorType + \": \" + realHref + \")\");\n\t\t\terr.name = \"ChunkLoadError\";\n\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n\t\t\terr.type = errorType;\n\t\t\terr.request = realHref;\n\t\t\tif (linkTag.parentNode) linkTag.parentNode.removeChild(linkTag)\n\t\t\treject(err);\n\t\t}\n\t}\n\tlinkTag.onerror = linkTag.onload = onLinkComplete;\n\tlinkTag.href = fullhref;\n\tif (linkTag.href.indexOf(window.location.origin + '/') !== 0) {\n\t\tlinkTag.crossOrigin = \"anonymous\";\n\t}\n\n\tif (oldTag) {\n\t\toldTag.parentNode.insertBefore(linkTag, oldTag.nextSibling);\n\t} else {\n\t\tdocument.head.appendChild(linkTag);\n\t}\n\treturn linkTag;\n};\nvar findStylesheet = (href, fullhref) => {\n\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n\tfor(var i = 0; i < existingLinkTags.length; i++) {\n\t\tvar tag = existingLinkTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return tag;\n\t}\n\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n\tfor(var i = 0; i < existingStyleTags.length; i++) {\n\t\tvar tag = existingStyleTags[i];\n\t\tvar dataHref = tag.getAttribute(\"data-href\");\n\t\tif(dataHref === href || dataHref === fullhref) return tag;\n\t}\n};\nvar loadStylesheet = (chunkId) => {\n\treturn new Promise((resolve, reject) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tif(findStylesheet(href, fullhref)) return resolve();\n\t\tcreateStylesheet(chunkId, fullhref, null, resolve, reject);\n\t});\n}\n// no chunk loading\n\nvar oldTags = [];\nvar newTags = [];\nvar applyHandler = (options) => {\n\treturn { dispose: () => {\n\t\tfor(var i = 0; i < oldTags.length; i++) {\n\t\t\tvar oldTag = oldTags[i];\n\t\t\tif(oldTag.parentNode) oldTag.parentNode.removeChild(oldTag);\n\t\t}\n\t\toldTags.length = 0;\n\t}, apply: () => {\n\t\tfor(var i = 0; i < newTags.length; i++) newTags[i].rel = \"stylesheet\";\n\t\tnewTags.length = 0;\n\t} };\n}\n__webpack_require__.hmrC.miniCss = (chunkIds, removedChunks, removedModules, promises, applyHandlers, updatedModulesList) => {\n\tapplyHandlers.push(applyHandler);\n\tchunkIds.forEach((chunkId) => {\n\t\tvar href = __webpack_require__.miniCssF(chunkId);\n\t\tvar fullhref = __webpack_require__.p + href;\n\t\tvar oldTag = findStylesheet(href, fullhref);\n\t\tif(!oldTag) return;\n\t\tpromises.push(new Promise((resolve, reject) => {\n\t\t\tvar tag = createStylesheet(chunkId, fullhref, oldTag, () => {\n\t\t\t\ttag.as = \"style\";\n\t\t\t\ttag.rel = \"preload\";\n\t\t\t\tresolve();\n\t\t\t}, reject);\n\t\t\toldTags.push(oldTag);\n\t\t\tnewTags.push(tag);\n\t\t}));\n\t});\n}\n\n// no prefetching\n\n// no preloaded","// no baseURI\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = __webpack_require__.hmrS_jsonp = __webpack_require__.hmrS_jsonp || {\n\t792: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\nvar currentUpdatedModulesList;\nvar waitingUpdateResolves = {};\nfunction loadUpdateChunk(chunkId, updatedModulesList) {\n\tcurrentUpdatedModulesList = updatedModulesList;\n\treturn new Promise((resolve, reject) => {\n\t\twaitingUpdateResolves[chunkId] = resolve;\n\t\t// start update chunk loading\n\t\tvar url = __webpack_require__.p + __webpack_require__.hu(chunkId);\n\t\t// create error before stack unwound to get useful stacktrace later\n\t\tvar error = new Error();\n\t\tvar loadingEnded = (event) => {\n\t\t\tif(waitingUpdateResolves[chunkId]) {\n\t\t\t\twaitingUpdateResolves[chunkId] = undefined\n\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\terror.message = 'Loading hot update chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\terror.type = errorType;\n\t\t\t\terror.request = realSrc;\n\t\t\t\treject(error);\n\t\t\t}\n\t\t};\n\t\t__webpack_require__.l(url, loadingEnded);\n\t});\n}\n\nself[\"webpackHotUpdate_geo_geo_map\"] = (chunkId, moreModules, runtime) => {\n\tfor(var moduleId in moreModules) {\n\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\tcurrentUpdate[moduleId] = moreModules[moduleId];\n\t\t\tif(currentUpdatedModulesList) currentUpdatedModulesList.push(moduleId);\n\t\t}\n\t}\n\tif(runtime) currentUpdateRuntime.push(runtime);\n\tif(waitingUpdateResolves[chunkId]) {\n\t\twaitingUpdateResolves[chunkId]();\n\t\twaitingUpdateResolves[chunkId] = undefined;\n\t}\n};\n\nvar currentUpdateChunks;\nvar currentUpdate;\nvar currentUpdateRemovedChunks;\nvar currentUpdateRuntime;\nfunction applyHandler(options) {\n\tif (__webpack_require__.f) delete __webpack_require__.f.jsonpHmr;\n\tcurrentUpdateChunks = undefined;\n\tfunction getAffectedModuleEffects(updateModuleId) {\n\t\tvar outdatedModules = [updateModuleId];\n\t\tvar outdatedDependencies = {};\n\n\t\tvar queue = outdatedModules.map(function (id) {\n\t\t\treturn {\n\t\t\t\tchain: [id],\n\t\t\t\tid: id\n\t\t\t};\n\t\t});\n\t\twhile (queue.length > 0) {\n\t\t\tvar queueItem = queue.pop();\n\t\t\tvar moduleId = queueItem.id;\n\t\t\tvar chain = queueItem.chain;\n\t\t\tvar module = __webpack_require__.c[moduleId];\n\t\t\tif (\n\t\t\t\t!module ||\n\t\t\t\t(module.hot._selfAccepted && !module.hot._selfInvalidated)\n\t\t\t)\n\t\t\t\tcontinue;\n\t\t\tif (module.hot._selfDeclined) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"self-declined\",\n\t\t\t\t\tchain: chain,\n\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (module.hot._main) {\n\t\t\t\treturn {\n\t\t\t\t\ttype: \"unaccepted\",\n\t\t\t\t\tchain: chain,\n\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t};\n\t\t\t}\n\t\t\tfor (var i = 0; i < module.parents.length; i++) {\n\t\t\t\tvar parentId = module.parents[i];\n\t\t\t\tvar parent = __webpack_require__.c[parentId];\n\t\t\t\tif (!parent) continue;\n\t\t\t\tif (parent.hot._declinedDependencies[moduleId]) {\n\t\t\t\t\treturn {\n\t\t\t\t\t\ttype: \"declined\",\n\t\t\t\t\t\tchain: chain.concat([parentId]),\n\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\tparentId: parentId\n\t\t\t\t\t};\n\t\t\t\t}\n\t\t\t\tif (outdatedModules.indexOf(parentId) !== -1) continue;\n\t\t\t\tif (parent.hot._acceptedDependencies[moduleId]) {\n\t\t\t\t\tif (!outdatedDependencies[parentId])\n\t\t\t\t\t\toutdatedDependencies[parentId] = [];\n\t\t\t\t\taddAllToSet(outdatedDependencies[parentId], [moduleId]);\n\t\t\t\t\tcontinue;\n\t\t\t\t}\n\t\t\t\tdelete outdatedDependencies[parentId];\n\t\t\t\toutdatedModules.push(parentId);\n\t\t\t\tqueue.push({\n\t\t\t\t\tchain: chain.concat([parentId]),\n\t\t\t\t\tid: parentId\n\t\t\t\t});\n\t\t\t}\n\t\t}\n\n\t\treturn {\n\t\t\ttype: \"accepted\",\n\t\t\tmoduleId: updateModuleId,\n\t\t\toutdatedModules: outdatedModules,\n\t\t\toutdatedDependencies: outdatedDependencies\n\t\t};\n\t}\n\n\tfunction addAllToSet(a, b) {\n\t\tfor (var i = 0; i < b.length; i++) {\n\t\t\tvar item = b[i];\n\t\t\tif (a.indexOf(item) === -1) a.push(item);\n\t\t}\n\t}\n\n\t// at begin all updates modules are outdated\n\t// the \"outdated\" status can propagate to parents if they don't accept the children\n\tvar outdatedDependencies = {};\n\tvar outdatedModules = [];\n\tvar appliedUpdate = {};\n\n\tvar warnUnexpectedRequire = function warnUnexpectedRequire(module) {\n\t\tconsole.warn(\n\t\t\t\"[HMR] unexpected require(\" + module.id + \") to disposed module\"\n\t\t);\n\t};\n\n\tfor (var moduleId in currentUpdate) {\n\t\tif (__webpack_require__.o(currentUpdate, moduleId)) {\n\t\t\tvar newModuleFactory = currentUpdate[moduleId];\n\t\t\t/** @type {TODO} */\n\t\t\tvar result = newModuleFactory\n\t\t\t\t? getAffectedModuleEffects(moduleId)\n\t\t\t\t: {\n\t\t\t\t\t\ttype: \"disposed\",\n\t\t\t\t\t\tmoduleId: moduleId\n\t\t\t\t\t};\n\t\t\t/** @type {Error|false} */\n\t\t\tvar abortError = false;\n\t\t\tvar doApply = false;\n\t\t\tvar doDispose = false;\n\t\t\tvar chainInfo = \"\";\n\t\t\tif (result.chain) {\n\t\t\t\tchainInfo = \"\\nUpdate propagation: \" + result.chain.join(\" -> \");\n\t\t\t}\n\t\t\tswitch (result.type) {\n\t\t\t\tcase \"self-declined\":\n\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n\t\t\t\t\tif (!options.ignoreDeclined)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because of self decline: \" +\n\t\t\t\t\t\t\t\tresult.moduleId +\n\t\t\t\t\t\t\t\tchainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"declined\":\n\t\t\t\t\tif (options.onDeclined) options.onDeclined(result);\n\t\t\t\t\tif (!options.ignoreDeclined)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because of declined dependency: \" +\n\t\t\t\t\t\t\t\tresult.moduleId +\n\t\t\t\t\t\t\t\t\" in \" +\n\t\t\t\t\t\t\t\tresult.parentId +\n\t\t\t\t\t\t\t\tchainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"unaccepted\":\n\t\t\t\t\tif (options.onUnaccepted) options.onUnaccepted(result);\n\t\t\t\t\tif (!options.ignoreUnaccepted)\n\t\t\t\t\t\tabortError = new Error(\n\t\t\t\t\t\t\t\"Aborted because \" + moduleId + \" is not accepted\" + chainInfo\n\t\t\t\t\t\t);\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"accepted\":\n\t\t\t\t\tif (options.onAccepted) options.onAccepted(result);\n\t\t\t\t\tdoApply = true;\n\t\t\t\t\tbreak;\n\t\t\t\tcase \"disposed\":\n\t\t\t\t\tif (options.onDisposed) options.onDisposed(result);\n\t\t\t\t\tdoDispose = true;\n\t\t\t\t\tbreak;\n\t\t\t\tdefault:\n\t\t\t\t\tthrow new Error(\"Unexception type \" + result.type);\n\t\t\t}\n\t\t\tif (abortError) {\n\t\t\t\treturn {\n\t\t\t\t\terror: abortError\n\t\t\t\t};\n\t\t\t}\n\t\t\tif (doApply) {\n\t\t\t\tappliedUpdate[moduleId] = newModuleFactory;\n\t\t\t\taddAllToSet(outdatedModules, result.outdatedModules);\n\t\t\t\tfor (moduleId in result.outdatedDependencies) {\n\t\t\t\t\tif (__webpack_require__.o(result.outdatedDependencies, moduleId)) {\n\t\t\t\t\t\tif (!outdatedDependencies[moduleId])\n\t\t\t\t\t\t\toutdatedDependencies[moduleId] = [];\n\t\t\t\t\t\taddAllToSet(\n\t\t\t\t\t\t\toutdatedDependencies[moduleId],\n\t\t\t\t\t\t\tresult.outdatedDependencies[moduleId]\n\t\t\t\t\t\t);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t\tif (doDispose) {\n\t\t\t\taddAllToSet(outdatedModules, [result.moduleId]);\n\t\t\t\tappliedUpdate[moduleId] = warnUnexpectedRequire;\n\t\t\t}\n\t\t}\n\t}\n\tcurrentUpdate = undefined;\n\n\t// Store self accepted outdated modules to require them later by the module system\n\tvar outdatedSelfAcceptedModules = [];\n\tfor (var j = 0; j < outdatedModules.length; j++) {\n\t\tvar outdatedModuleId = outdatedModules[j];\n\t\tvar module = __webpack_require__.c[outdatedModuleId];\n\t\tif (\n\t\t\tmodule &&\n\t\t\t(module.hot._selfAccepted || module.hot._main) &&\n\t\t\t// removed self-accepted modules should not be required\n\t\t\tappliedUpdate[outdatedModuleId] !== warnUnexpectedRequire &&\n\t\t\t// when called invalidate self-accepting is not possible\n\t\t\t!module.hot._selfInvalidated\n\t\t) {\n\t\t\toutdatedSelfAcceptedModules.push({\n\t\t\t\tmodule: outdatedModuleId,\n\t\t\t\trequire: module.hot._requireSelf,\n\t\t\t\terrorHandler: module.hot._selfAccepted\n\t\t\t});\n\t\t}\n\t}\n\n\tvar moduleOutdatedDependencies;\n\n\treturn {\n\t\tdispose: function () {\n\t\t\tcurrentUpdateRemovedChunks.forEach(function (chunkId) {\n\t\t\t\tdelete installedChunks[chunkId];\n\t\t\t});\n\t\t\tcurrentUpdateRemovedChunks = undefined;\n\n\t\t\tvar idx;\n\t\t\tvar queue = outdatedModules.slice();\n\t\t\twhile (queue.length > 0) {\n\t\t\t\tvar moduleId = queue.pop();\n\t\t\t\tvar module = __webpack_require__.c[moduleId];\n\t\t\t\tif (!module) continue;\n\n\t\t\t\tvar data = {};\n\n\t\t\t\t// Call dispose handlers\n\t\t\t\tvar disposeHandlers = module.hot._disposeHandlers;\n\t\t\t\tfor (j = 0; j < disposeHandlers.length; j++) {\n\t\t\t\t\tdisposeHandlers[j].call(null, data);\n\t\t\t\t}\n\t\t\t\t__webpack_require__.hmrD[moduleId] = data;\n\n\t\t\t\t// disable module (this disables requires from this module)\n\t\t\t\tmodule.hot.active = false;\n\n\t\t\t\t// remove module from cache\n\t\t\t\tdelete __webpack_require__.c[moduleId];\n\n\t\t\t\t// when disposing there is no need to call dispose handler\n\t\t\t\tdelete outdatedDependencies[moduleId];\n\n\t\t\t\t// remove \"parents\" references from all children\n\t\t\t\tfor (j = 0; j < module.children.length; j++) {\n\t\t\t\t\tvar child = __webpack_require__.c[module.children[j]];\n\t\t\t\t\tif (!child) continue;\n\t\t\t\t\tidx = child.parents.indexOf(moduleId);\n\t\t\t\t\tif (idx >= 0) {\n\t\t\t\t\t\tchild.parents.splice(idx, 1);\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// remove outdated dependency from module children\n\t\t\tvar dependency;\n\t\t\tfor (var outdatedModuleId in outdatedDependencies) {\n\t\t\t\tif (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) {\n\t\t\t\t\tmodule = __webpack_require__.c[outdatedModuleId];\n\t\t\t\t\tif (module) {\n\t\t\t\t\t\tmoduleOutdatedDependencies =\n\t\t\t\t\t\t\toutdatedDependencies[outdatedModuleId];\n\t\t\t\t\t\tfor (j = 0; j < moduleOutdatedDependencies.length; j++) {\n\t\t\t\t\t\t\tdependency = moduleOutdatedDependencies[j];\n\t\t\t\t\t\t\tidx = module.children.indexOf(dependency);\n\t\t\t\t\t\t\tif (idx >= 0) module.children.splice(idx, 1);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\t\t},\n\t\tapply: function (reportError) {\n\t\t\t// insert new code\n\t\t\tfor (var updateModuleId in appliedUpdate) {\n\t\t\t\tif (__webpack_require__.o(appliedUpdate, updateModuleId)) {\n\t\t\t\t\t__webpack_require__.m[updateModuleId] = appliedUpdate[updateModuleId];\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// run new runtime modules\n\t\t\tfor (var i = 0; i < currentUpdateRuntime.length; i++) {\n\t\t\t\tcurrentUpdateRuntime[i](__webpack_require__);\n\t\t\t}\n\n\t\t\t// call accept handlers\n\t\t\tfor (var outdatedModuleId in outdatedDependencies) {\n\t\t\t\tif (__webpack_require__.o(outdatedDependencies, outdatedModuleId)) {\n\t\t\t\t\tvar module = __webpack_require__.c[outdatedModuleId];\n\t\t\t\t\tif (module) {\n\t\t\t\t\t\tmoduleOutdatedDependencies =\n\t\t\t\t\t\t\toutdatedDependencies[outdatedModuleId];\n\t\t\t\t\t\tvar callbacks = [];\n\t\t\t\t\t\tvar errorHandlers = [];\n\t\t\t\t\t\tvar dependenciesForCallbacks = [];\n\t\t\t\t\t\tfor (var j = 0; j < moduleOutdatedDependencies.length; j++) {\n\t\t\t\t\t\t\tvar dependency = moduleOutdatedDependencies[j];\n\t\t\t\t\t\t\tvar acceptCallback =\n\t\t\t\t\t\t\t\tmodule.hot._acceptedDependencies[dependency];\n\t\t\t\t\t\t\tvar errorHandler =\n\t\t\t\t\t\t\t\tmodule.hot._acceptedErrorHandlers[dependency];\n\t\t\t\t\t\t\tif (acceptCallback) {\n\t\t\t\t\t\t\t\tif (callbacks.indexOf(acceptCallback) !== -1) continue;\n\t\t\t\t\t\t\t\tcallbacks.push(acceptCallback);\n\t\t\t\t\t\t\t\terrorHandlers.push(errorHandler);\n\t\t\t\t\t\t\t\tdependenciesForCallbacks.push(dependency);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t\tfor (var k = 0; k < callbacks.length; k++) {\n\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\tcallbacks[k].call(null, moduleOutdatedDependencies);\n\t\t\t\t\t\t\t} catch (err) {\n\t\t\t\t\t\t\t\tif (typeof errorHandlers[k] === \"function\") {\n\t\t\t\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\t\t\t\terrorHandlers[k](err, {\n\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k]\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t} catch (err2) {\n\t\t\t\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\t\t\t\ttype: \"accept-error-handler-errored\",\n\t\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k],\n\t\t\t\t\t\t\t\t\t\t\t\terror: err2,\n\t\t\t\t\t\t\t\t\t\t\t\toriginalError: err\n\t\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\t\t\t\treportError(err2);\n\t\t\t\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t} else {\n\t\t\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\t\t\ttype: \"accept-errored\",\n\t\t\t\t\t\t\t\t\t\t\tmoduleId: outdatedModuleId,\n\t\t\t\t\t\t\t\t\t\t\tdependencyId: dependenciesForCallbacks[k],\n\t\t\t\t\t\t\t\t\t\t\terror: err\n\t\t\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\t// Load self accepted modules\n\t\t\tfor (var o = 0; o < outdatedSelfAcceptedModules.length; o++) {\n\t\t\t\tvar item = outdatedSelfAcceptedModules[o];\n\t\t\t\tvar moduleId = item.module;\n\t\t\t\ttry {\n\t\t\t\t\titem.require(moduleId);\n\t\t\t\t} catch (err) {\n\t\t\t\t\tif (typeof item.errorHandler === \"function\") {\n\t\t\t\t\t\ttry {\n\t\t\t\t\t\t\titem.errorHandler(err, {\n\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\tmodule: __webpack_require__.c[moduleId]\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t} catch (err1) {\n\t\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\t\ttype: \"self-accept-error-handler-errored\",\n\t\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\t\terror: err1,\n\t\t\t\t\t\t\t\t\toriginalError: err\n\t\t\t\t\t\t\t\t});\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\t\treportError(err1);\n\t\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t} else {\n\t\t\t\t\t\tif (options.onErrored) {\n\t\t\t\t\t\t\toptions.onErrored({\n\t\t\t\t\t\t\t\ttype: \"self-accept-errored\",\n\t\t\t\t\t\t\t\tmoduleId: moduleId,\n\t\t\t\t\t\t\t\terror: err\n\t\t\t\t\t\t\t});\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif (!options.ignoreErrored) {\n\t\t\t\t\t\t\treportError(err);\n\t\t\t\t\t\t}\n\t\t\t\t\t}\n\t\t\t\t}\n\t\t\t}\n\n\t\t\treturn outdatedModules;\n\t\t}\n\t};\n}\n__webpack_require__.hmrI.jsonp = function (moduleId, applyHandlers) {\n\tif (!currentUpdate) {\n\t\tcurrentUpdate = {};\n\t\tcurrentUpdateRuntime = [];\n\t\tcurrentUpdateRemovedChunks = [];\n\t\tapplyHandlers.push(applyHandler);\n\t}\n\tif (!__webpack_require__.o(currentUpdate, moduleId)) {\n\t\tcurrentUpdate[moduleId] = __webpack_require__.m[moduleId];\n\t}\n};\n__webpack_require__.hmrC.jsonp = function (\n\tchunkIds,\n\tremovedChunks,\n\tremovedModules,\n\tpromises,\n\tapplyHandlers,\n\tupdatedModulesList\n) {\n\tapplyHandlers.push(applyHandler);\n\tcurrentUpdateChunks = {};\n\tcurrentUpdateRemovedChunks = removedChunks;\n\tcurrentUpdate = removedModules.reduce(function (obj, key) {\n\t\tobj[key] = false;\n\t\treturn obj;\n\t}, {});\n\tcurrentUpdateRuntime = [];\n\tchunkIds.forEach(function (chunkId) {\n\t\tif (\n\t\t\t__webpack_require__.o(installedChunks, chunkId) &&\n\t\t\tinstalledChunks[chunkId] !== undefined\n\t\t) {\n\t\t\tpromises.push(loadUpdateChunk(chunkId, updatedModulesList));\n\t\t\tcurrentUpdateChunks[chunkId] = true;\n\t\t} else {\n\t\t\tcurrentUpdateChunks[chunkId] = false;\n\t\t}\n\t});\n\tif (__webpack_require__.f) {\n\t\t__webpack_require__.f.jsonpHmr = function (chunkId, promises) {\n\t\t\tif (\n\t\t\t\tcurrentUpdateChunks &&\n\t\t\t\t__webpack_require__.o(currentUpdateChunks, chunkId) &&\n\t\t\t\t!currentUpdateChunks[chunkId]\n\t\t\t) {\n\t\t\t\tpromises.push(loadUpdateChunk(chunkId));\n\t\t\t\tcurrentUpdateChunks[chunkId] = true;\n\t\t\t}\n\t\t};\n\t}\n};\n\n__webpack_require__.hmrM = () => {\n\tif (typeof fetch === \"undefined\") throw new Error(\"No browser support: need fetch API\");\n\treturn fetch(__webpack_require__.p + __webpack_require__.hmrF()).then((response) => {\n\t\tif(response.status === 404) return; // no update available\n\t\tif(!response.ok) throw new Error(\"Failed to fetch update manifest \" + response.statusText);\n\t\treturn response.json();\n\t});\n};\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (parentChunkLoadingFunction, data) => {\n\tvar [chunkIds, moreModules, runtime] = data;\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some((id) => (installedChunks[id] !== 0))) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunk_geo_geo_map\"] = self[\"webpackChunk_geo_geo_map\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","// module cache are used so entry inlining is disabled\n// startup\n// Load entry module and return exports\n__webpack_require__.O(undefined, [121], () => (__webpack_require__(85035)))\nvar __webpack_exports__ = __webpack_require__.O(undefined, [121], () => (__webpack_require__(36767)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","webpackEmptyAsyncContext","req","Promise","resolve","then","e","Error","code","keys","id","module","exports","Api","constructor","store","mapStore","handleUnmount","defaultExtent","Object","defineProperty","this","appStore","setMode","mode","setVisibleLayers","layers","layerId","setMapFilters","setBackgroundLayers","setLayerFilter","metauid","query","filters","push","setBasemap","url","title","setSketchCreateTools","toolNames","setSketchSelectTools","setMaxObject","count","setSketchHandler","handler","completeSketch","addGraphics","layerName","geometryJson","addGraphicsByJson","emptyGraphics","getGraphics","dumpGraphics","redraw","unmount","mount","defaultExtend","tslib_1","__decorate","mobx_1","action","app_mobx_1","Mode","_a","MessageBoxType","AppState","observable","array","type","Standard","show","message","subTitle","hasProgress","percent","okButton","cancelButton","makeObservable","graphics","clear","Array","isArray","layer","forEach","lId","console","warn","join","visibleLayers","backgroundLayers","mapFilters","sketchCreateTools","sketchSelectTools","maxObject","length","splice","sketchHandler","complete","sketchComplete","usedLayers","layerNames","g","includes","labelLayerName","graphicsCount","addGraphic","esriGraphics","toggle","arguments","undefined","callback","esriGraphic","graphic","graphic_1","Graphic","index","findIndex","equals","resetGraphics","replace","filter","updateGraphicLabel","currentLabel","graphicJson","Graphic_1","default","fromJSON","graphicsJSON","setAttribute","geometryEngine","planarArea","geometry","toJSON","indexOf","JSON","stringify","setAuthentication","authentication","setLoggedIn","loggedIn","credential","esriCredential","showMessageBox","props","messageBox","hasOwnProperty","closeMessageBox","progressMessageBox","topic_configuration_1","TopicConfiguration","_b","_c","_d","_e","authentication_1","Authentication","_f","computed","_l","__esri","Credential","_m","configure","enforceActions","App","React","Component","super","createRef","uiStore","ui_state_1","UiState","map_state_1","MapState","state","northFacing","renderFlag","setUiSize","window","innerWidth","innerHeight","mapViewerConfig","moduleConfig","appConfig","config","defaultScale","mapView","scale","mapViewerStore","map_viewer_store_mobx_1","MapViewerStore","geo_proxy_1","GeoProxy","proxy","loadRules","config_1","request","proxyUrl","assetsPath","fontsUrl","geometryServiceUrl","portalUrl","IdentityManager_1","on","dialog","destroy","setAppConfig","handleMapLoad","bind","handleResize","goToDefaultExtent","api","api_1","setState","forceUpdate","checkUiSize","uiHeight","appUiRef","current","clientHeight","uiWidth","clientWidth","isSmallDevice","breakpoints","md","view","goTo","target","center","catch","error","name","componentDidMount","setWebMap","webMap","autorun","reaction","dispose","addEventListener","componentWillUnmount","removeEventListener","render","mapProperties","messages","maintenance","status","meta","alerts","alertContent","createElement","dangerouslySetInnerHTML","__html","content","message_block_1","topic","header","className","class","cssProperties","addClass","error_boundary_1","ErrorBoundary","abstract_app_store_1","AppStoreProvider","style","geo_1","WebMap","viewProperties","onLoad","sketch_1","Sketch","sketch","feature_selection_1","FeatureSelection","symbols","feature_highlight_1","FeatureHighlight","ref","maintenance_1","search_1","Search","key","search","footer_1","Footer","map","compassWidget","Compass_1","ui","add","watch","newValue","move","popupEnabled","closePopup","mobx_react_1","observer","react_1","scalebar_1","ScaleBar","scaleBar","react_responsive_1","minWidth","coordinate_1","Coordinate","attribution_1","Attribution","attribution","other","geometryEngine_1","enumerable","get","app_1","FeatureHighlightBase","autorunDisposers","getLayer","symbol","getSymbol","attributes","textSymbol","textLayer","area","text","Intl","NumberFormat","maximumFractionDigits","format","lblGra","centroid","visible","zoomLayers","getItemAt","watchHandles","handle","remove","disposer","symbolProps","log","find","l","removeAll","GraphicsLayer_1","listMode","geometries","graphicClone","clone","extent","viewpoint","map_utils_1","MapUtils","calculateMinExtent","reactiveUtils","when","ready","initial","once","withStore","FeatureSelectionBase","flatten","allSublayers","some","x","layerInArray","evt","createQuery","outFields","mapPoint","queryFeatures","result","features","applyFilters","definitionExpression","targetLayers","getLayersByMetauid","findSublayerById","selection","parsedUrl","path","uid","path_utils_1","PathUtils","getMetaId","toLowerCase","getLayerId","layerIds","WebMapMetaConfiguration","module_configuration_1","ModuleConfiguration","typescript_json_serializer_1","JsonProperty","JsonObject","SymbolConfiguration","SimpleFillSymbolProperties","TextSymbolProperties","MapViewerConfiguration","layer_list_configuration_1","LayerListConfiguration","maintenance_configuration_1","MaintenanceConfiguration","popup_configuration_1","PopupConfiguration","symbol_configuration_1","FillSymbolConfiguration","_g","HashMap","_h","web_map_configuration_1","WebMapConfiguration","_j","_k","TopicLayerConfiguration","TopicLayersConfiguration","TopicBasemapConfiguration","icon_1","GeoICONS","feature_filter_configuration_1","FeatureFilterConfiguration","view_configuration_1","MapViewConfiguration","assign","oAuthInfo","initOAuth","sharedPortalEndpoint","registerToken","token","userId","server","ssl","login","reject","checkSignInStatus","getCredential","logout","destroyCredentials","appId","oInfo","OAuthInfo_1","authNamespace","appNamespace","flowType","popup","registerOAuthInfos","AttributionBase","viewModel","items","attributionText","isLoading","mapLoading","mainCopyrightItem","textItems","item","mainCopyright","widgets","has","loadViewModel","oldValue","propertyName","pattern","RegExp","test","addWidget","attrConfig","AttributionViewModel_1","layerItems","itemDelimiter","year","Date","getFullYear","textItem","href","label","subtopic","rel","textDelimiter","Icon","CoordinateBase","coordinate","titleElevationLayer","resetCursorTimer","cursorTimeoutId","clearTimeout","loadElevationLayer","ground","elevationLayerIndex","Math","max","updateElevationSampler","widgetKey","elevation","stationary","toMap","y","elevationSampler","mapPointZ","queryElevation","z","createElevationSampler","Extent_1","removeWidget","coords","elevationElement","round","errorInfo","componentDidCatch","whiteSpace","toString","componentStack","children","selected","iconFile","__CONFIG_APPBASE__","titleString","onClick","react_inlinesvg_1","src","Maintenance","value","cookies","setUiOffsetTop","dismiss","messageId","set","sameSite","cookieString","min","m","from","getTime","to","split","handleDismiss","maintenanceUiRef","now","prop_types_1","instanceOf","react_cookie_1","Cookies","isRequired","withCookies","Map","mapContainerId","containerId","centerStyle","left","marginRight","position","top","transform","mapStyle","height","width","loadElement","failElement","childrenAsFunction","childrenWithProps","Children","child","childEl","cloneElement","styled_container_1","StyledContainer","loadMap","Map_1","container","MapView_1","typedView","events_1","eventMap","err","_ref","MessageBlock","semantic_ui_react_1","Message","floating","info","ScaleBarBase","scaleBarRef","loadScaleBar","scaleBarConfig","ScaleBar_1","Scene","SceneView_1","ExtendedSearchViewModel","SearchViewModel_1","properties","getSuggestionValue","suggestion","getSectionSuggestions","section","suggestions","SearchBase","lodash_1","cloneDeep","layersLoaded","placeholder","searchTerm","sectionShowAll","sources","fill","keyAppend","handleShowAll","onChange","onSuggestionsFetchRequested","onSuggestionsClearRequested","onSuggestionSelected","renderSectionTitle","renderSuggestion","clearInputField","event","changeEvent","params","getSuggestions","data","tracker","trackSiteSearch","keyword","reduce","a","s","numResults","profile","variables","sectionIndex","sourceType","search_configuration_1","SearchSourceType","Locator","sConfig","categories","substring","emit","searchResponse","results","feature","runInAction","sourceConfig","sourceIndex","PopupStore","disabled","setVisible","resultGraphicEnabled","queryConfigs","queries","metaid","queryConfig","q","firstFlag","searchLayer","sourceLayer","Layer","portalItem","popupTemplate","getLayerTemplate","template","layerConfig","layerType","opacity","legendEnabled","FeatureLayer_1","arcade","createArcadeExecutor","expression","ae","where","execute","$feature","response","resultSymbol","autoNavigate","popupPoint","within","buffer","nearestCoordinate","setMapPoint","setFeatures","addFeatures","highlightSymbol","highlight","line","pointer","union","registerLayerLoading","layerLoaded","newSuggestions","maxResults","preventDefault","matches","maxSuggestions","Label","horizontal","Fragment","suggestionText","match_1","parts","parse_1","slug","part","searchField","Input","loading","inputProps","react_autosuggest_1","highlightFirstSuggestion","multiSection","focusInputOnSuggestionClick","Menu","Item","loadSearch","waitForTocReady","tocReady","sourcesWithLayers","Custom","every","searchViewModel","searchConfig","initializeSources","Collection_1","source","layerSource","initializeLayerSource","customSource","initializeCustomSource","initializeCoordinateSource","SearchStore","setViewReady","setViewModel","allPlaceholder","inputValue","trim","suggest","sections","groupLayers","allLayers","subL","metaId","getLayerPath","parseInt","sublayers","returnDistinctValues","exactMatch","searchFields","customQuery","searchLayers","load","mapImageLayer","parent","fl","toArray","__awaiter","queryPromises","resultFeatures","sLayer","whereArray","customNumericQuery","isNaN","suggestTerm","num","replaceAll","format_utils_1","FormatUtils","encodeForSQL","toUpperCase","fieldName","field","getField","wClase","encodeForSQLLike","FeatureSet_1","orderByFields","returnGeometry","all","suggestionKeyMap","r","layerIndex","orderby","orders","o","arr","orderBy","slice","resultFeature","suggestionPromise","suggestionTemplate","fieldVal","displayField","keyArray","random","t","getResults","suggestResult","xPadding","ceil","xmin","xmax","yPadding","ymin","ymax","stationSearch","search_station_1","SearchStation","SearchSource_1","coordString","coord","convertDMSToDD","parseFloat","sort","b","checkExtent","maxExtent","wgs84","spatialReference","wkid","longitude","latitude","lv03","lv95","projection","projectedPoint","project","point","degrees","minutes","seconds","SketchBase","availableCreateTools","tool","createTools","visibleElements","disable","updating","prepareSketchLayer","activeTool","disableUpdate","cancel","loadSketch","activeFill","polygon","polyline","updateSettings","setCreateTools","tools","v","setSelectionTools","Sketch_1","selectionTools","renderNow","shouldComponentUpdate","WebMapBase","updateVisibleLayers","metauids","pathMetauid","pathLayerId","visibleLayerIds","setActiveLayers","setActiveLayerMetauids","WebMap_1","basemap","baseLayers","basemapGallery","setBasemapOpacity","minOpacity","setDefaultBasemapTitle","formatTitle","thumbnailUrl","promises","viewProps","zoom","elevationLayers","eProps","ElevationLayer_1","setStatus","preparedLayers","setMap","setView","componentDidUpdate","prevProps","isEqual","constraints","Viewpoint_1","targetGeometry","Point_1","animate","TypeError","setTimeout","WebScene","WebScene_1","ActionBaseConfiguration","SearchSourceQueryConfiguration","ActionButtonConfiguration","ActionToggleConfiguration","ActionSliderConfiguration","AppConfiguration","attribution_configuration_1","AttributionConfiguration","proxy_configuration_1","ProxyConfiguration","SearchConfiguration","basemap_gallery_configuration_1","BasemapGalleryConfiguration","basemap_toggle_configuration_1","BasemapToggleConfiguration","editor_configuration_1","EditorConfiguration","legend_configuration_1","LegendConfiguration","scalebar_configuration_1","ScaleBarConfiguration","sketch_configuration_1","SketchConfiguration","AttributionTextItemConfiguration","LocalBasemapsSourceConfiguration","PortalBasemapsSourceConfiguration","portal_configuration_1","PortalConfiguration","BasemapStyleConfiguration","widget_configuration_1","WidgetConfiguration","map_configuration_1","BasemapConfiguration","BasemapToggleVisibleElementsConfiguration","LineCallout3DBorderConfiguration","Callout3DConfiguration","LineCallout3DConfiguration","ColorConfiguration","ColorBackgroundConfiguration","ContentConfiguration","CustomContentConfiguration","FieldsContentConfiguration","MediaContentConfiguration","TextContentConfiguration","AttachmentsContentConfiguration","ElementExpressionInfoConfiguration","ExpressionContentConfiguration","RelatedRecordsInfoFieldOrderProperties","RelationshipContentConfiguration","CustomChartXYConfiguration","CustomChartAxisConfiguration","CustomChartTooltipConfiguration","CustomChartConfiguration","sketch_label_options_properties_configuration_1","SketchLabelOptionsPropertiesConfiguration","snapping_options_properties_configuration_1","SnappingOptionsPropertiesConfiguration","sketch_tooltip_options_properties_configuration_1","SketchTooltipOptionsPropertiesConfiguration","SketchValueOptionsConfiguration","editor_visible_elements_configuration_1","EditorVisibleElementsConfiguration","visible_elements_snapping_controls_elements_configuration_1","VisibleElementsSnappingControlsElementsConfiguration","geometry_configuration_1","GeometryConfiguration","time_info_configration_1","TimeExtentConfiguration","FontConfiguration","spatial_reference_configuration_1","SpatialReferenceConfiguration","ExtentConfiguration","PointConfiguration","metadata_configuration_1","MetadataConfiguration","OverwriteConfiguration","portal_item_configuration_1","PortalItemConfiguration","GroundConfiguration","MapConfiguration","updateConfig","topicConfig","object_utils_1","ObjectUtils","mergeDeep","actionTypePredicate","action_configuration_1","PopupDockOptionsBreakpointConfiguration","PopupDockOptionsConfiguration","PopupVisibleElementsConfiguration","LayerTemplate","PopupLayerGroupConfiguration","PopupExpressionInfoConfiguration","PopupTemplateConfiguration","content_configuration_1","SearchSourceFilterConfiguration","SearchResultSymbolConfiguration","SimpleLineSymbolConfiguration","PictureMarkerSymbolConfiguration","SearchSourceConfiguration","SimpleMarkerSymbolConfiguration","LocatorSearchSourceConfiguration","LayerSearchSourceConfiguration","CustomSearchSourceConfiguration","FeatureLayer","_o","MaxExtentConfiguration","_p","_q","_r","CoordinateSearchSourceConfiguration","searchSource","SketchDefaultUpdateOptionsConfiguration","SketchDefaultCreateOptionsConfiguration","SketchLabelOptionsConfiguration","VisibleElementsConfiguration","Units","SketchTooltipOptionsConfiguration","VisibleElementsCreateToolsConfiguration","VisibleElementsSelectionToolsConfiguration","SketchVisibleElementsConfiguration","FeatureSnappingLayerSourceConfiguration","SnappingOptionsConfiguration","SimpleLineSymbolProperties","Symbol3DVerticalOffsetConfiguration","LineSymbolConfiguration","LineSymbolMarkerConfiguration","Color_1","MarkerSymbolConfiguration","TextSymbolConfiguration","font_configuration_1","Symbol3DStyleOriginConfiguration","Symbol3DConfiguration","PolygonSymbol3DConfiguration","LabelSymbol3DConfiguration","callout_configuration_1","CIMSymbolConfiguration","CIMSymbolReference","DateProperties","TimeIntervalConfiguration","TimeInfoConfiguration","ThemeConfiguration","ViewConfiguration","HTMLDivElement","MapViewConstraintsConfiguration","CameraLayoutConfiguration","CameraConfiguration","ViewpointConfiguration","HighlightOptionsConfiguration","color_configuration_1","_s","_t","InitialViewConfiguration","_u","_v","_w","onDoubleClick","onDrag","onHold","onKeyDown","onKeyUp","onLayerViewCreate","onLayerViewDestroy","onMouseWheel","onPointerDown","onPointerMove","onPointerUp","onResize","urlPrefixes","prefix","urlUtils","addProxyRule","urlPrefix","Geo","GeoMap","GeoScene","GeoWebMap","GeoWebScene","visibleFilterlayers","layerViews","highlightedFeature","activeLayers","activeLayerMetauids","selectedFeature","basemapOpacity","defaultBasemapTitle","basemapAttribution","featureInfo","setFeatureInfo","clearFeatureInfo","addLayer","removeLayer","addGroupLayer","removeGroupLayer","addVisibleFilterLayer","removeVisibleFilterLayer","addLayerView","removeLayerView","selectFeature","highlightFeature","unhighlightFeature","setBasemapById","removeBasemap","setBasemapAttribution","setDefaultBasemap","setTocReady","delete","layerView","urlOrTag","portal","Portal_1","fetchBasemaps","basemaps","basemapItem","tags","tag","excludeTags","Basemap_1","basemapId","defaultBasemap","getLayerViewsByMetauid","AbstractAppStore","CompareStore","componentsStores","compare_store_mobx_1","LayerListStore","layer_list_store_mobx_1","LayerSelectorStore","layerSelector","layer_selector_store_mobx_1","MapFinderStore","map_finder_store_mobx_1","popup_store_mobx_1","search_store_mobx_1","TopicSwitcherStore","topic_switcher_store_mobx_1","showObject","layerObjectId","layerMetaId","objectId","setSelected","anchorField","anchorFieldType","concat","goToGeometries","processAdditionalParams","searchParams","additionalParameter","searchParamsLower","URLSearchParams","append","focus","marker","bfs","egrid","parcel","gvlNo","egid","focusArgs","searchLayerPromises","avlsLayer","no","gbcode","prznr","gvnr","basemapTag","AppStoreContext","createContext","Provider","useStore","useContext","enabled","layersLeading","layersTrailing","matrixSelect","matrixSelectTrailing","setEnabled","setLayersLeading","setLayers","setLayersTrailing","setMatrixSelect","setMatrixSelectTrailing","hasGroups","processing","regroupedItems","operationalItemsArray","setHasGroups","setIsLoading","setProcessing","setOperationalItemsArray","addRegroupedItem","regroupedItem","initialized","comparisonEnabled","subtopicId","dropDownOptions","selectedOptionsLeading","selectedOptionsTrailing","setInitialized","setComparisonState","setSubtopic","setDropdownOptions","setSelectedOption","matrixConfig","isInitialized","dropdownOptionsForCurrentTopic","disposeSelectionInitializer","initialize","isInitiallyLoading","applyMatrixRules","disableComparison","enableComparison","c","topicIds","size","group","selectedOptions","trailing","storedOptions","groupOptions","getSelectedOptions","dropdownOptions","getDropdownOptions","groupId","storedTopicOptions","getSelectedGroupOptions","groupConfig","options","gc","defaultTrailing","rules","prepareServiceRules","applyRendererAndFilters","visibilities","prepareVisibilities","applyLayerVisibility","loadDropdownOptions","layerMatrix","formFieldType","dataStore","geoDataStores","loadItems","guid","displayLabel","dataField","relevantLayers","getLayersByRules","leadingLayers","trailingLayers","duplicateTrailingLayers","clonedTrailingLayers","swipeProps","direction","uiOrientation","swipeWidget","Swipe_1","comparisonLayers","comparisonLayerViews","layerLoadedPromises","sourceMetauid","tConfig","blendMode","trailingLayer","MapImageLayer_1","duplicatedLayers","layerViewPromises","whenLayerView","updateOrientation","debug","anySubLayerVisible","subLayer","isSublayerVisible","mapActiveLayers","setSubtopicLayers","serviceRules","layerRules","serviceId","getLayerView","renderField","renderer","FeatureFilter_1","lw","groupOptionConfigs","layerRule","filterConfig","whereClause","rendererFields","rendererFieldConfig","leadingOption","trailingOption","viewReadyHandles","serviceLayers","setSelectedPanelIndex","setActiveIndex","setActivePages","selectedPanelIndex","activeIndex","activePages","lastItemTitle","panels","panelIndex","setDisabled","setActivePage","setLastItemTitle","addPanel","clearPanels","page","getActivePage","panel","order","p","setTimeoutID","timeoutID","timeoutMap","getTimeoutID","clearTimeouts","viewReady","getViewModel","viewModels","box","language","menuVisible","pendingRequestCount","sidebarSelectOpen","sidebarVisible","sidebarHigh","filterActive","uiOffsetTop","selectedTabs","resizing","toolGraphic","appIsInSync","isSidebarVisible","isResizing","setActiveTool","setLanguage","resetPendingRequestCount","setMenuVisible","setFilterActive","setSidebarSelectOpen","setSidebarVisible","setToolGraphic","toggleSidebarVisible","setSidebarHigh","startResizing","stopResizing","handleWindowResizeWhenSidebarOpen","widget","lang","active","open","isHigh","loadConfig","file","request_1","responseType","__CONFIG_ROOT__","appJson","mapviewerJson","defaultSerializer","JsonSerializer","deserializeObject","app_configuration_1","map_viewer_configuration_1","document","getElementById","client_1","createRoot","StrictMode","app","mapAPI","promise","lyr","geodesicBuffer","String","prototype","evaluate","names","values","Function","ReferenceError","formatValue","places","toFixed","digitSeparator","Number","toLocaleString","dateFormat","visualFormat","colorVariable","useColorVariableLabel","i","stops","stop","backgroundColor","color","colorLabel","textAlign","padZero","escapeRegExp","regexString","str","char","isObject","obj","_len","objects","_key","prev","pVal","oVal","joinPath","args","lastIndexOf","match","getVersion","version","readableUrl","addr","URL","hostname","pathname","hash","charAt","murmurhash3","seed","h1b","k1","remainder","bytes","h1","c1","c2","charCodeAt","localsJsonString","cssReload","hot","invalidate","accept","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","loaded","execOptions","factory","__webpack_modules__","require","call","O","chunkIds","fn","priority","notFulfilled","Infinity","fulfilled","j","n","getter","__esModule","d","definition","hu","chunkId","h","miniCssF","hmrF","prop","done","script","needAttach","scripts","getElementsByTagName","getAttribute","charset","timeout","nc","location","origin","crossOrigin","integrity","sriHashes","onScriptComplete","onerror","onload","doneFns","parentNode","removeChild","head","appendChild","Symbol","toStringTag","nmd","paths","currentChildModule","currentUpdateApplyHandlers","queuedInvalidatedModules","currentModuleData","installedModules","currentParents","registeredStatusHandlers","currentStatus","blockingPromises","blockingPromisesWaiting","newStatus","unblock","list","hotCheck","applyOnUpdate","hmrM","update","updatedModules","hmrC","waitForBlockingPromises","internalApply","applyInvalidatedModules","hotApply","errors","Boolean","disposePromise","applyPromise","reportError","outdatedModules","apply","modules","hmrI","hmrD","createRequire","me","parents","createPropertyDescriptor","configurable","fetchPriority","trackBlockingPromise","createModuleHotObject","_main","_acceptedDependencies","_acceptedErrorHandlers","_declinedDependencies","_selfAccepted","_selfDeclined","_selfInvalidated","_disposeHandlers","_requireSelf","dep","errorHandler","decline","addDisposeHandler","removeDisposeHandler","idx","check","addStatusHandler","removeStatusHandler","createStylesheet","fullhref","oldTag","linkTag","nonce","errorType","realHref","insertBefore","nextSibling","findStylesheet","existingLinkTags","dataHref","existingStyleTags","oldTags","newTags","applyHandler","miniCss","removedChunks","removedModules","applyHandlers","updatedModulesList","as","currentUpdatedModulesList","currentUpdateChunks","currentUpdate","currentUpdateRemovedChunks","currentUpdateRuntime","installedChunks","hmrS_jsonp","waitingUpdateResolves","loadUpdateChunk","realSrc","getAffectedModuleEffects","updateModuleId","outdatedDependencies","queue","chain","queueItem","pop","parentId","addAllToSet","f","jsonpHmr","appliedUpdate","warnUnexpectedRequire","newModuleFactory","abortError","doApply","doDispose","chainInfo","onDeclined","ignoreDeclined","onUnaccepted","ignoreUnaccepted","onAccepted","onDisposed","moduleOutdatedDependencies","outdatedSelfAcceptedModules","outdatedModuleId","dependency","disposeHandlers","callbacks","errorHandlers","dependenciesForCallbacks","acceptCallback","k","dependencyId","err2","onErrored","originalError","ignoreErrored","err1","self","moreModules","runtime","jsonp","fetch","ok","statusText","json","webpackJsonpCallback","parentChunkLoadingFunction","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}