@agentic-ui-experience/ui-arcgis 0.0.1-beta.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +228 -0
- package/dist/ArcGISMapView.d.ts +51 -0
- package/dist/ArcGISMapView.js +1 -0
- package/dist/api.d.ts +1563 -0
- package/dist/api.js +1 -0
- package/dist/catalog.d.ts +1211 -0
- package/dist/catalog.js +1 -0
- package/dist/controller/api.d.ts +692 -0
- package/dist/controller/api.js +1 -0
- package/dist/controller/createArcGISMapController.d.ts +16 -0
- package/dist/controller/createArcGISMapController.js +1 -0
- package/dist/controller/useArcGISMapController.d.ts +13 -0
- package/dist/controller/useArcGISMapController.js +1 -0
- package/dist/index.d.ts +7 -0
- package/dist/index.js +1 -0
- package/dist/prompt.d.ts +2 -0
- package/dist/prompt.js +1 -0
- package/package.json +54 -0
- package/styles.css +1 -0
package/README.md
ADDED
|
@@ -0,0 +1,228 @@
|
|
|
1
|
+
# @agentic-ui-experience/ui-arcgis
|
|
2
|
+
|
|
3
|
+
Optional ArcGIS extension for `@agentic-ui-experience/ui-core`,
|
|
4
|
+
`@agentic-ui-experience/ui-runtime`, and
|
|
5
|
+
`@agentic-ui-experience/ui-react`.
|
|
6
|
+
|
|
7
|
+
The package provides the `ArcGISMapView` component, its schema and Agent
|
|
8
|
+
metadata, and ready-made catalog projections. It does not proxy or re-export
|
|
9
|
+
the generic APIs from the foundational UI packages.
|
|
10
|
+
|
|
11
|
+
## Package role
|
|
12
|
+
|
|
13
|
+
```text
|
|
14
|
+
ui-core / ui-runtime / ui-react
|
|
15
|
+
↑
|
|
16
|
+
ui-arcgis
|
|
17
|
+
↑
|
|
18
|
+
application
|
|
19
|
+
```
|
|
20
|
+
|
|
21
|
+
Applications continue to create Agent tools, runtimes, and React renderers
|
|
22
|
+
from the foundational packages. They import only ArcGIS-specific components
|
|
23
|
+
and catalog projections from `ui-arcgis`.
|
|
24
|
+
|
|
25
|
+
## Exports
|
|
26
|
+
|
|
27
|
+
| Export | Consumer | Purpose |
|
|
28
|
+
| --- | --- | --- |
|
|
29
|
+
| `ArcGISMapViewApi` | Agent/runtime | Component name and Zod props schema; source of truth for the other projections |
|
|
30
|
+
| `ArcGISMapView` | React renderer | React implementation backed by ArcGIS Map Components |
|
|
31
|
+
| `useArcGISMapController` | Host React app | Attach snapshot and presentation-command APIs to a host-owned map element |
|
|
32
|
+
| `arcgisPromptDescriptor` | Agent tools | Static component schema, description, and style-guide projection |
|
|
33
|
+
| `arcgisRuntimeCatalog` | `ui-runtime` | Props validation and surface-state processing |
|
|
34
|
+
| `arcgisReactCatalog` | `ui-react` | Props validation and React renderer binding |
|
|
35
|
+
|
|
36
|
+
The three catalog exports share `ARCGIS_CATALOG_ID`, but have different types
|
|
37
|
+
and consumers. A prompt descriptor is not an executable runtime catalog and is
|
|
38
|
+
not UI output generated by an Agent.
|
|
39
|
+
|
|
40
|
+
## Install and load styles
|
|
41
|
+
|
|
42
|
+
Install this package alongside the foundational UI packages used by the host.
|
|
43
|
+
Install `@arcgis/core` directly when the host configures the ArcGIS SDK:
|
|
44
|
+
|
|
45
|
+
```bash
|
|
46
|
+
pnpm add @agentic-ui-experience/ui-arcgis @arcgis/core
|
|
47
|
+
```
|
|
48
|
+
|
|
49
|
+
Load the ArcGIS Map Components styles once in the application:
|
|
50
|
+
|
|
51
|
+
```ts
|
|
52
|
+
import "@agentic-ui-experience/ui-arcgis/styles.css";
|
|
53
|
+
```
|
|
54
|
+
|
|
55
|
+
## Configure the portal in the host
|
|
56
|
+
|
|
57
|
+
Portal configuration belongs to the host application, not to an
|
|
58
|
+
`ArcGISMapView` prop. Initialize the global ArcGIS SDK before rendering maps:
|
|
59
|
+
|
|
60
|
+
```ts
|
|
61
|
+
import esriConfig from "@arcgis/core/config.js";
|
|
62
|
+
|
|
63
|
+
esriConfig.portalUrl = "https://example.arcgis.com";
|
|
64
|
+
```
|
|
65
|
+
|
|
66
|
+
If the application uses OAuth, the host must also register OAuth information
|
|
67
|
+
and complete sign-in. Do not use a custom-portal token as a production Basemap
|
|
68
|
+
Styles API token.
|
|
69
|
+
|
|
70
|
+
Use the configured portal's default basemap with:
|
|
71
|
+
|
|
72
|
+
```json
|
|
73
|
+
{
|
|
74
|
+
"source": {
|
|
75
|
+
"type": "basemap",
|
|
76
|
+
"basemap": "portal/default",
|
|
77
|
+
"center": { "latitude": 39.9, "longitude": 116.4 },
|
|
78
|
+
"zoom": 10
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
```
|
|
82
|
+
|
|
83
|
+
## Use the ready-made ArcGIS catalogs
|
|
84
|
+
|
|
85
|
+
When the application only needs the A2UI basic components and
|
|
86
|
+
`ArcGISMapView`, use the provided projections directly:
|
|
87
|
+
|
|
88
|
+
```ts
|
|
89
|
+
import {
|
|
90
|
+
arcgisPromptDescriptor,
|
|
91
|
+
arcgisRuntimeCatalog,
|
|
92
|
+
arcgisReactCatalog
|
|
93
|
+
} from "@agentic-ui-experience/ui-arcgis";
|
|
94
|
+
```
|
|
95
|
+
|
|
96
|
+
- Register `arcgisPromptDescriptor` with the Agent-side catalog registry.
|
|
97
|
+
- Register `arcgisRuntimeCatalog` with a non-React runtime.
|
|
98
|
+
- Pass `arcgisReactCatalog` to `useUIRuntime({ catalogs: [...] })` in a React
|
|
99
|
+
application.
|
|
100
|
+
|
|
101
|
+
All three projections include the A2UI basic catalog capabilities.
|
|
102
|
+
|
|
103
|
+
## Attach to a host-owned map
|
|
104
|
+
|
|
105
|
+
Applications that keep a primary map mounted outside A2UI can attach the
|
|
106
|
+
controller hook to their own ArcGIS Map Component:
|
|
107
|
+
|
|
108
|
+
```tsx
|
|
109
|
+
import React, { useRef } from "react";
|
|
110
|
+
import type { ArcgisMap } from "@arcgis/map-components/components/arcgis-map";
|
|
111
|
+
import { useArcGISMapController } from "@agentic-ui-experience/ui-arcgis";
|
|
112
|
+
|
|
113
|
+
const mapRef = useRef<ArcgisMap | null>(null);
|
|
114
|
+
const { status, controller } = useArcGISMapController(mapRef);
|
|
115
|
+
|
|
116
|
+
return React.createElement("arcgis-map", {
|
|
117
|
+
ref: mapRef,
|
|
118
|
+
"item-id": webMapItemId
|
|
119
|
+
});
|
|
120
|
+
```
|
|
121
|
+
|
|
122
|
+
The hook waits for the component view, exposes serializable snapshots plus
|
|
123
|
+
`goTo` and `setLayerVisibility`, and removes its watches on unmount. It does
|
|
124
|
+
not render or destroy the host element. This controller API is separate from
|
|
125
|
+
the A2UI `ArcGISMapView`, which remains a display-only catalog component.
|
|
126
|
+
|
|
127
|
+
### Reference application
|
|
128
|
+
|
|
129
|
+
[Map Workspace](../../apps/map-workspace/README.md) demonstrates the controller
|
|
130
|
+
with a persistent host WebMap, compact agent context, semantic layer retrieval,
|
|
131
|
+
and explicit map tools. WebMap embedding resources and semantic retrieval are
|
|
132
|
+
application-local responsibilities; they are not capabilities of
|
|
133
|
+
`ui-arcgis`.
|
|
134
|
+
|
|
135
|
+
## Compose with application components
|
|
136
|
+
|
|
137
|
+
If an application also owns custom components, it must create one application
|
|
138
|
+
catalog ID and derive all three projections from the combined component set:
|
|
139
|
+
|
|
140
|
+
```ts
|
|
141
|
+
import { defineCatalogPromptDescriptor } from "@agentic-ui-experience/ui-core";
|
|
142
|
+
import { defineCatalog as defineRuntimeCatalog } from "@agentic-ui-experience/ui-runtime";
|
|
143
|
+
import { defineReactCatalog } from "@agentic-ui-experience/ui-react";
|
|
144
|
+
import {
|
|
145
|
+
ArcGISMapView,
|
|
146
|
+
ArcGISMapViewApi,
|
|
147
|
+
arcGISMapViewDescription,
|
|
148
|
+
arcgisStyleGuide
|
|
149
|
+
} from "@agentic-ui-experience/ui-arcgis";
|
|
150
|
+
import {
|
|
151
|
+
Weather,
|
|
152
|
+
WeatherApi,
|
|
153
|
+
weatherDescription,
|
|
154
|
+
weatherStyleGuide
|
|
155
|
+
} from "./weather.js";
|
|
156
|
+
|
|
157
|
+
const id = "com.example.application.v1";
|
|
158
|
+
const componentApis = [WeatherApi, ArcGISMapViewApi] as const;
|
|
159
|
+
|
|
160
|
+
export const promptDescriptor = defineCatalogPromptDescriptor({
|
|
161
|
+
id,
|
|
162
|
+
components: componentApis,
|
|
163
|
+
descriptions: {
|
|
164
|
+
Weather: weatherDescription,
|
|
165
|
+
ArcGISMapView: arcGISMapViewDescription
|
|
166
|
+
},
|
|
167
|
+
styleGuide: [weatherStyleGuide, arcgisStyleGuide].join("\n\n")
|
|
168
|
+
});
|
|
169
|
+
|
|
170
|
+
export const runtimeCatalog = defineRuntimeCatalog({
|
|
171
|
+
id,
|
|
172
|
+
components: componentApis
|
|
173
|
+
});
|
|
174
|
+
|
|
175
|
+
export const reactCatalog = defineReactCatalog({
|
|
176
|
+
id,
|
|
177
|
+
components: [Weather, ArcGISMapView]
|
|
178
|
+
});
|
|
179
|
+
```
|
|
180
|
+
|
|
181
|
+
A surface selects one `createSurface.catalogId`, so the application owns the
|
|
182
|
+
final composition. `ui-arcgis` does not guess which other components an
|
|
183
|
+
application needs.
|
|
184
|
+
|
|
185
|
+
## `ArcGISMapView` props
|
|
186
|
+
|
|
187
|
+
- `title?`, `description?`
|
|
188
|
+
- `source`: required `webmap` or `basemap` source
|
|
189
|
+
- `controls?`: `zoom`, `legend`, `layerList`, and `search`
|
|
190
|
+
- `height?`: 180–640 pixels; defaults to 280
|
|
191
|
+
- `openInArcGIS?`: show the open-in-ArcGIS action
|
|
192
|
+
|
|
193
|
+
Web map source:
|
|
194
|
+
|
|
195
|
+
```json
|
|
196
|
+
{
|
|
197
|
+
"source": {
|
|
198
|
+
"type": "webmap",
|
|
199
|
+
"itemId": "0123456789abcdef0123456789abcdef"
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
```
|
|
203
|
+
|
|
204
|
+
Basemap source:
|
|
205
|
+
|
|
206
|
+
```json
|
|
207
|
+
{
|
|
208
|
+
"source": {
|
|
209
|
+
"type": "basemap",
|
|
210
|
+
"basemap": "portal/default",
|
|
211
|
+
"center": { "latitude": 39.9, "longitude": 116.4 },
|
|
212
|
+
"zoom": 10
|
|
213
|
+
}
|
|
214
|
+
}
|
|
215
|
+
```
|
|
216
|
+
|
|
217
|
+
Other basemap values are `arcgis/topographic`, `arcgis/streets`,
|
|
218
|
+
`arcgis/navigation`, `arcgis/light-gray`, `arcgis/dark-gray`,
|
|
219
|
+
`arcgis/imagery`, and `arcgis/outdoor`. Omitting `basemap` defaults to
|
|
220
|
+
`arcgis/topographic`.
|
|
221
|
+
|
|
222
|
+
## Verify
|
|
223
|
+
|
|
224
|
+
```bash
|
|
225
|
+
pnpm --filter @agentic-ui-experience/ui-arcgis test
|
|
226
|
+
pnpm --filter @agentic-ui-experience/map-workspace exec tsc --noEmit
|
|
227
|
+
pnpm --filter @agentic-ui-experience/map-workspace build
|
|
228
|
+
```
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
import { type ReactComponentImplementation } from "@agentic-ui-experience/ui-react";
|
|
2
|
+
import { type ArcGISMapViewProps, normalizeArcGISMapViewProps } from "./api.js";
|
|
3
|
+
type ArcGISMapFailure = "registration" | "load";
|
|
4
|
+
type NormalizedArcGISMapViewProps = ReturnType<typeof normalizeArcGISMapViewProps>;
|
|
5
|
+
type ArcGISMapSource = NormalizedArcGISMapViewProps["source"];
|
|
6
|
+
type ArcGISPortalWithDefaultBasemap = {
|
|
7
|
+
defaultBasemap: unknown | null;
|
|
8
|
+
load(): Promise<unknown>;
|
|
9
|
+
};
|
|
10
|
+
type GetDefaultArcGISPortal = () => Promise<ArcGISPortalWithDefaultBasemap>;
|
|
11
|
+
type ArcGISMapFailureState = {
|
|
12
|
+
sourceKey: string;
|
|
13
|
+
failure: ArcGISMapFailure | null;
|
|
14
|
+
};
|
|
15
|
+
export declare function applyPortalDefaultBasemap(mapElement: {
|
|
16
|
+
basemap?: unknown;
|
|
17
|
+
}, getPortal?: GetDefaultArcGISPortal, isCurrent?: () => boolean): Promise<void>;
|
|
18
|
+
export declare function observeArcGISComponentRegistration(registration: Promise<unknown>, onFailure: (failure: ArcGISMapFailure) => void): Promise<void>;
|
|
19
|
+
export declare function createArcGISMapLoadErrorHandler(onFailure: (failure: ArcGISMapFailure) => void): () => void;
|
|
20
|
+
export declare function observeArcGISMapLoadError(mapElement: EventTarget, onFailure: (failure: ArcGISMapFailure) => void): () => void;
|
|
21
|
+
export declare function getArcGISMapSourceKey(source: ArcGISMapSource): string;
|
|
22
|
+
export declare function createArcGISMapElementProps(props: NormalizedArcGISMapViewProps, sourceKey: string): {
|
|
23
|
+
style: {
|
|
24
|
+
display: string;
|
|
25
|
+
height: string;
|
|
26
|
+
width: string;
|
|
27
|
+
};
|
|
28
|
+
"item-id": string;
|
|
29
|
+
key: string;
|
|
30
|
+
} | {
|
|
31
|
+
style: {
|
|
32
|
+
display: string;
|
|
33
|
+
height: string;
|
|
34
|
+
width: string;
|
|
35
|
+
};
|
|
36
|
+
zoom?: string | undefined;
|
|
37
|
+
center: string;
|
|
38
|
+
basemap?: "arcgis/topographic" | "arcgis/streets" | "arcgis/navigation" | "arcgis/light-gray" | "arcgis/dark-gray" | "arcgis/imagery" | "arcgis/outdoor" | undefined;
|
|
39
|
+
"item-id"?: undefined;
|
|
40
|
+
key: string;
|
|
41
|
+
};
|
|
42
|
+
export declare function getArcGISMapFailureForSource(state: ArcGISMapFailureState, sourceKey: string): ArcGISMapFailure | null;
|
|
43
|
+
export declare function resetArcGISMapFailureForSource(state: ArcGISMapFailureState, sourceKey: string): ArcGISMapFailureState;
|
|
44
|
+
export declare const ArcGISMapView: ReactComponentImplementation;
|
|
45
|
+
export declare function ArcGISMapViewContent({ props }: {
|
|
46
|
+
props: ArcGISMapViewProps;
|
|
47
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
48
|
+
export declare function ArcGISMapFailureFallback({ failure }: {
|
|
49
|
+
failure: ArcGISMapFailure;
|
|
50
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
51
|
+
export {};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
const _0x4b247b=_0x1a78;(function(_0x342ac1,_0x2b76e9){const _0x13f1c5=_0x1a78,_0x50c366=_0x342ac1();while(!![]){try{const _0x575495=-parseInt(_0x13f1c5(0x1b8))/0x1+-parseInt(_0x13f1c5(0x1a5))/0x2*(-parseInt(_0x13f1c5(0x1bc))/0x3)+parseInt(_0x13f1c5(0x1b6))/0x4+-parseInt(_0x13f1c5(0x19f))/0x5+-parseInt(_0x13f1c5(0x1c5))/0x6*(-parseInt(_0x13f1c5(0x19a))/0x7)+parseInt(_0x13f1c5(0x1ab))/0x8+parseInt(_0x13f1c5(0x18c))/0x9*(-parseInt(_0x13f1c5(0x1b9))/0xa);if(_0x575495===_0x2b76e9)break;else _0x50c366['push'](_0x50c366['shift']());}catch(_0x445d85){_0x50c366['push'](_0x50c366['shift']());}}}(_0x29d3,0x7a650));function _0x29d3(){const _0x570efc=['search','portalUrl','load','top-right','div','toFixed','type','3487164CWHnrj','then','820042zGTWos','22590jnwQOm','useState','arcgis-search','1418397VRNCoZ','webmap','arcgis-layer-list','hidden','zoom','current','/home/webmap/viewer.html?webmap=','catch','createElement','12iCOXXg','useRef','#fff5f5','latitude','registration','Open\x20in\x20ArcGIS','&level=','useEffect','1px\x20solid\x20rgba(226,\x20232,\x20240,\x200.9)','5634Weosha','undefined','The\x20configured\x20ArcGIS\x20portal\x20has\x20no\x20default\x20basemap.','itemId','addEventListener','#2563eb','source','controls','12px\x2014px','defaultBasemap','100%','header','height','top-left','2122890mPHMDL','arcgisLoadError','bottom-left','arcgis-map','block','3172710HHhCYl','ArcGIS\x20map\x20could\x20not\x20be\x20loaded.','sourceKey','resolve','flex','description','4REuhMC','stringify','longitude','title','basemap','#ffffff','7568936Cwggwq','alert','center','portal/default'];_0x29d3=function(){return _0x570efc;};return _0x29d3();}function _0x1a78(_0x141619,_0x535bc4){_0x141619=_0x141619-0x186;const _0x29d36e=_0x29d3();let _0x1a781c=_0x29d36e[_0x141619];return _0x1a781c;}import{jsx,jsxs,Fragment}from'react/jsx-runtime';import _0x309a9e from'react';import _0x48cbef from'@arcgis/core/config.js';import{createComponentImplementation}from'@agentic-ui-experience/ui-react';import{ArcGISMapViewApi,normalizeArcGISMapViewProps}from'./api.js';let arcgisComponentsRegistration;async function getDefaultArcGISPortal(){const {default:_0x551831}=await import('@arcgis/core/portal/Portal.js');return _0x551831['getDefault']();}async function applyPortalDefaultBasemap(_0x4d1f4d,_0x1dd79d=getDefaultArcGISPortal,_0x306316=()=>!![]){const _0x2a01be=_0x1a78,_0x451a3a=await _0x1dd79d();await _0x451a3a[_0x2a01be(0x1b1)]();if(!_0x451a3a['defaultBasemap'])throw new Error(_0x2a01be(0x18e));_0x306316()&&(_0x4d1f4d['basemap']=_0x451a3a[_0x2a01be(0x195)]);}function ensureArcGISMapComponents(){const _0x5a2e7e=_0x1a78;if(typeof window===_0x5a2e7e(0x18d))return Promise[_0x5a2e7e(0x1a2)]();return!arcgisComponentsRegistration&&(arcgisComponentsRegistration=Promise['all']([import('@arcgis/map-components/components/arcgis-map'),import('@arcgis/map-components/components/arcgis-zoom'),import('@arcgis/map-components/components/arcgis-legend'),import('@arcgis/map-components/components/arcgis-layer-list'),import('@arcgis/map-components/components/arcgis-search')])[_0x5a2e7e(0x1b7)](()=>void 0x0)[_0x5a2e7e(0x1c3)](_0x370655=>{arcgisComponentsRegistration=void 0x0;throw _0x370655;})),arcgisComponentsRegistration;}function observeArcGISComponentRegistration(_0x1a8c74,_0x39ff11){const _0x4dafd3=_0x1a78;return _0x1a8c74[_0x4dafd3(0x1b7)](()=>void 0x0,()=>{_0x39ff11('registration');});}function createArcGISMapLoadErrorHandler(_0x58d6e2){return()=>{const _0x2e64f1=_0x1a78;_0x58d6e2(_0x2e64f1(0x1b1));};}function observeArcGISMapLoadError(_0x4f3fa8,_0x1a4970){const _0x58f87d=_0x1a78,_0x21b3be=createArcGISMapLoadErrorHandler(_0x1a4970);return _0x4f3fa8[_0x58f87d(0x190)]('arcgisLoadError',_0x21b3be),()=>{const _0x24441b=_0x58f87d;_0x4f3fa8['removeEventListener'](_0x24441b(0x19b),_0x21b3be);};}function getArcGISMapSourceKey(_0x1284dc){const _0x21ce1a=_0x1a78;if(_0x1284dc['type']===_0x21ce1a(0x1bd))return JSON[_0x21ce1a(0x1a6)]([_0x1284dc['type'],_0x1284dc[_0x21ce1a(0x18f)]]);return JSON[_0x21ce1a(0x1a6)]([_0x1284dc['type'],_0x1284dc['basemap'],_0x1284dc['center'][_0x21ce1a(0x1a7)],_0x1284dc['center'][_0x21ce1a(0x186)],_0x1284dc[_0x21ce1a(0x1c0)]??null]);}function createArcGISMapElementProps(_0x11f5e,_0x16be61){const _0x25a798=_0x1a78,_0x1b3be8=_0x11f5e['source'][_0x25a798(0x1b5)]===_0x25a798(0x1bd)?{'item-id':_0x11f5e[_0x25a798(0x192)]['itemId']}:{..._0x11f5e[_0x25a798(0x192)][_0x25a798(0x1a9)]==='portal/default'?{}:{'basemap':_0x11f5e['source'][_0x25a798(0x1a9)]},'center':_0x11f5e['source']['center']['longitude']+','+_0x11f5e[_0x25a798(0x192)][_0x25a798(0x1ad)]['latitude'],..._0x11f5e[_0x25a798(0x192)][_0x25a798(0x1c0)]===void 0x0?{}:{'zoom':String(_0x11f5e[_0x25a798(0x192)][_0x25a798(0x1c0)])}};return{'key':_0x16be61,..._0x1b3be8,'style':{'display':_0x25a798(0x19e),'height':_0x11f5e[_0x25a798(0x198)]+'px','width':_0x25a798(0x196)}};}function getArcGISMapFailureForSource(_0x46c5ae,_0x451109){return _0x46c5ae['sourceKey']===_0x451109?_0x46c5ae['failure']:null;}function resetArcGISMapFailureForSource(_0x42c114,_0xa2cf3f){const _0x3da5e4=_0x1a78;if(_0x42c114[_0x3da5e4(0x1a1)]===_0xa2cf3f&&_0x42c114['failure']===null)return _0x42c114;return{'sourceKey':_0xa2cf3f,'failure':null};}function createOpenUrl(_0x566de6){const _0x59be03=_0x1a78,_0x57a326=_0x48cbef[_0x59be03(0x1b0)]['replace'](/\/+$/,'');if(_0x566de6[_0x59be03(0x192)][_0x59be03(0x1b5)]==='webmap')return _0x57a326+_0x59be03(0x1c2)+encodeURIComponent(_0x566de6['source'][_0x59be03(0x18f)]);const {latitude:_0x515da4,longitude:_0x5c9758}=_0x566de6['source'][_0x59be03(0x1ad)],_0x61fd11=_0x566de6[_0x59be03(0x192)]['zoom']??0xb,_0x2a5df9=_0x5c9758[_0x59be03(0x1b4)](0x5)+','+_0x515da4['toFixed'](0x5);return _0x57a326+'/home/webmap/viewer.html?center='+encodeURIComponent(_0x2a5df9)+_0x59be03(0x189)+_0x61fd11;}const ArcGISMapView=createComponentImplementation(ArcGISMapViewApi,({props:_0x17f34f})=>jsx(ArcGISMapViewContent,{'props':_0x17f34f}));function ArcGISMapViewContent({props:_0x114415}){const _0x1d3ca2=_0x1a78,_0x5e9946=normalizeArcGISMapViewProps(_0x114415),_0x4e05ce=_0x5e9946[_0x1d3ca2(0x1a8)]??'ArcGIS\x20map',_0x3d9357=createOpenUrl(_0x5e9946);if(_0x5e9946[_0x1d3ca2(0x192)][_0x1d3ca2(0x1b5)]===_0x1d3ca2(0x1a9)&&(!Number['isFinite'](_0x5e9946[_0x1d3ca2(0x192)][_0x1d3ca2(0x1ad)]['latitude'])||!Number['isFinite'](_0x5e9946[_0x1d3ca2(0x192)][_0x1d3ca2(0x1ad)][_0x1d3ca2(0x1a7)])))return jsx('div',{'style':fallbackStyle,'children':'ArcGISMapView\x20needs\x20valid\x20finite\x20latitude\x20and\x20longitude.'});return jsxs('section',{'style':shellStyle,'aria-label':_0x4e05ce,'children':[jsxs(_0x1d3ca2(0x197),{'style':headerStyle,'children':[jsxs(_0x1d3ca2(0x1b3),{'style':{'minWidth':0x0},'children':[jsx(_0x1d3ca2(0x1b3),{'style':titleStyle,'children':_0x4e05ce}),_0x5e9946['description']?jsx(_0x1d3ca2(0x1b3),{'style':descriptionStyle,'children':_0x5e9946[_0x1d3ca2(0x1a4)]}):null]}),_0x5e9946['openInArcGIS']&&_0x3d9357?jsx('a',{'href':_0x3d9357,'target':'_blank','rel':'noopener\x20noreferrer','style':linkStyle,'children':_0x1d3ca2(0x188)}):null]}),jsx(ArcGISMapBody,{'props':_0x5e9946})]});}function ArcGISMapBody({props:_0x3c6d39}){const _0x112876=_0x1a78,_0x3f7664=getArcGISMapSourceKey(_0x3c6d39['source']),_0x2d2891=_0x309a9e[_0x112876(0x1c6)](null),[_0x1e6203,_0x216b9c]=_0x309a9e[_0x112876(0x1ba)]({'sourceKey':_0x3f7664,'failure':null}),_0x5d490e=getArcGISMapFailureForSource(_0x1e6203,_0x3f7664);_0x309a9e[_0x112876(0x18a)](()=>{let _0x4d2cc5=!![];_0x216b9c(_0xdb8f91=>resetArcGISMapFailureForSource(_0xdb8f91,_0x3f7664));const _0x5d213a=_0x203ffb=>{_0x4d2cc5&&_0x216b9c({'sourceKey':_0x3f7664,'failure':_0x203ffb});};return void ensureArcGISMapComponents()['then'](()=>{const _0x862d3e=_0x1a78;if(!_0x4d2cc5||_0x3c6d39[_0x862d3e(0x192)]['type']!=='basemap'||_0x3c6d39[_0x862d3e(0x192)][_0x862d3e(0x1a9)]!==_0x862d3e(0x1ae))return;const _0x3ec4a3=_0x2d2891[_0x862d3e(0x1c1)];if(!_0x3ec4a3){_0x5d213a('load');return;}void applyPortalDefaultBasemap(_0x3ec4a3,getDefaultArcGISPortal,()=>_0x4d2cc5&&_0x2d2891['current']===_0x3ec4a3)['catch'](()=>{const _0xce50d2=_0x862d3e;_0x5d213a(_0xce50d2(0x1b1));});},()=>{const _0x3ac99e=_0x1a78;_0x5d213a(_0x3ac99e(0x187));}),()=>{_0x4d2cc5=![];};},[_0x3f7664]),_0x309a9e['useEffect'](()=>{const _0x218ebb=_0x2d2891['current'];if(!_0x218ebb)return;return observeArcGISMapLoadError(_0x218ebb,_0x59bf6c=>{_0x216b9c({'sourceKey':_0x3f7664,'failure':_0x59bf6c});});},[_0x3f7664]);if(_0x5d490e)return jsx(ArcGISMapFailureFallback,{'failure':_0x5d490e});return _0x309a9e['createElement'](_0x112876(0x19d),{...createArcGISMapElementProps(_0x3c6d39,_0x3f7664),'ref':_0x2d2891},jsxs(Fragment,{'children':[_0x3c6d39['controls'][_0x112876(0x1c0)]?_0x309a9e[_0x112876(0x1c4)]('arcgis-zoom',{'slot':_0x112876(0x199)}):null,_0x3c6d39[_0x112876(0x193)][_0x112876(0x1af)]?_0x309a9e['createElement'](_0x112876(0x1bb),{'slot':_0x112876(0x1b2)}):null,_0x3c6d39['controls']['legend']?_0x309a9e['createElement']('arcgis-legend',{'slot':_0x112876(0x19c)}):null,_0x3c6d39[_0x112876(0x193)]['layerList']?_0x309a9e['createElement'](_0x112876(0x1be),{'slot':_0x112876(0x1b2)}):null]}));}function ArcGISMapFailureFallback({failure:_0x4db332}){const _0x2a3c25=_0x1a78;return jsx(_0x2a3c25(0x1b3),{'role':_0x2a3c25(0x1ac),'style':mapFailureStyle,'children':_0x4db332==='registration'?'ArcGIS\x20map\x20components\x20could\x20not\x20be\x20loaded.':_0x2a3c25(0x1a0)});}const shellStyle={'width':'100%','borderRadius':0x8,'border':'1px\x20solid\x20rgba(148,\x20163,\x20184,\x200.45)','background':_0x4b247b(0x1aa),'overflow':_0x4b247b(0x1bf)},headerStyle={'display':_0x4b247b(0x1a3),'alignItems':'center','justifyContent':'space-between','gap':0xa,'padding':'10px\x2012px','borderBottom':_0x4b247b(0x18b)},titleStyle={'color':'#111827','fontSize':0xd,'fontWeight':0x2bc,'lineHeight':1.2,'overflow':'hidden','textOverflow':'ellipsis','whiteSpace':'nowrap'},descriptionStyle={'color':'#64748b','fontSize':0xc,'lineHeight':1.3,'marginTop':0x4},linkStyle={'color':_0x4b247b(0x191),'flexShrink':0x0,'fontSize':0xc,'fontWeight':0x2bc,'textDecoration':'none'},fallbackStyle={'width':_0x4b247b(0x196),'borderRadius':0x8,'border':'1px\x20solid\x20rgba(220,\x2038,\x2038,\x200.25)','background':_0x4b247b(0x1c7),'color':'#991b1b','fontSize':0xd,'padding':_0x4b247b(0x194)},mapFailureStyle={...fallbackStyle,'border':0x0,'borderRadius':0x0};export{ArcGISMapFailureFallback,ArcGISMapView,ArcGISMapViewContent,applyPortalDefaultBasemap,createArcGISMapElementProps,createArcGISMapLoadErrorHandler,getArcGISMapFailureForSource,getArcGISMapSourceKey,observeArcGISComponentRegistration,observeArcGISMapLoadError,resetArcGISMapFailureForSource};
|