@honua/react 0.1.9-beta.0 → 0.1.11-beta.0

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.
Files changed (156) hide show
  1. package/control-plane/admin-client.d.ts +2 -0
  2. package/control-plane/admin-client.d.ts.map +1 -1
  3. package/control-plane/admin-client.js +32 -1
  4. package/control-plane/client.d.ts +1 -1
  5. package/control-plane/client.d.ts.map +1 -1
  6. package/control-plane/client.js +124 -8
  7. package/control-plane/commands/catalog.d.ts +7 -7
  8. package/control-plane/commands/catalog.d.ts.map +1 -1
  9. package/control-plane/commands/catalog.js +27 -15
  10. package/control-plane/commands/runtime.d.ts +6 -6
  11. package/control-plane/commands/runtime.d.ts.map +1 -1
  12. package/control-plane/commands/runtime.js +26 -14
  13. package/control-plane/commands/types.d.ts +4 -2
  14. package/control-plane/commands/types.d.ts.map +1 -1
  15. package/control-plane/generated/admin-api.d.ts +6 -4
  16. package/control-plane/generated/admin-api.d.ts.map +1 -1
  17. package/control-plane/generated/admin-api.js +2 -2
  18. package/control-plane/generated/admin-operations.d.ts +7 -7
  19. package/control-plane/generated/admin-operations.d.ts.map +1 -1
  20. package/control-plane/generated/admin-operations.js +9 -9
  21. package/control-plane/index.d.ts +1 -1
  22. package/control-plane/index.d.ts.map +1 -1
  23. package/control-plane/index.js +1 -1
  24. package/core/client.d.ts.map +1 -1
  25. package/core/client.js +28 -30
  26. package/core/error-envelope.d.ts +31 -0
  27. package/core/error-envelope.d.ts.map +1 -1
  28. package/core/error-envelope.js +11 -0
  29. package/core/errors.d.ts +15 -3
  30. package/core/errors.d.ts.map +1 -1
  31. package/core/errors.js +254 -2
  32. package/core/geometry-input-sr.d.ts +3 -0
  33. package/core/geometry-input-sr.d.ts.map +1 -0
  34. package/core/geometry-input-sr.js +28 -0
  35. package/core/geoservices.d.ts.map +1 -1
  36. package/core/geoservices.js +33 -6
  37. package/core/grpc-adapter.d.ts.map +1 -1
  38. package/core/grpc-adapter.js +11 -3
  39. package/core/pbf-decoder.d.ts.map +1 -1
  40. package/core/pbf-decoder.js +16 -4
  41. package/core/protocol-transport.d.ts +6 -1
  42. package/core/protocol-transport.d.ts.map +1 -1
  43. package/core/request-pipeline.d.ts +6 -3
  44. package/core/request-pipeline.d.ts.map +1 -1
  45. package/core/request-pipeline.js +28 -11
  46. package/core/spatial-filter.d.ts +4 -4
  47. package/core/spatial-filter.d.ts.map +1 -1
  48. package/core/spatial-filter.js +7 -7
  49. package/core/types.d.ts +14 -3
  50. package/core/types.d.ts.map +1 -1
  51. package/esri-compat/class-breaks-renderer.d.ts +2 -0
  52. package/esri-compat/class-breaks-renderer.d.ts.map +1 -1
  53. package/esri-compat/class-breaks-renderer.js +7 -0
  54. package/esri-compat/controls.d.ts +10 -1
  55. package/esri-compat/controls.d.ts.map +1 -1
  56. package/esri-compat/controls.js +86 -2
  57. package/esri-compat/directions.d.ts +35 -0
  58. package/esri-compat/directions.d.ts.map +1 -1
  59. package/esri-compat/directions.js +153 -2
  60. package/esri-compat/expand.d.ts +1 -0
  61. package/esri-compat/expand.d.ts.map +1 -1
  62. package/esri-compat/expand.js +61 -0
  63. package/esri-compat/feature-layer.d.ts +29 -4
  64. package/esri-compat/feature-layer.d.ts.map +1 -1
  65. package/esri-compat/feature-layer.js +335 -13
  66. package/esri-compat/geometry-engine.d.ts +4 -0
  67. package/esri-compat/geometry-engine.d.ts.map +1 -1
  68. package/esri-compat/geometry-engine.js +8 -1
  69. package/esri-compat/graphic.d.ts +7 -4
  70. package/esri-compat/graphic.d.ts.map +1 -1
  71. package/esri-compat/legend.d.ts +2 -1
  72. package/esri-compat/legend.d.ts.map +1 -1
  73. package/esri-compat/legend.js +15 -0
  74. package/esri-compat/map-view-mount.d.ts +48 -0
  75. package/esri-compat/map-view-mount.d.ts.map +1 -0
  76. package/esri-compat/map-view-mount.js +344 -0
  77. package/esri-compat/map-view.d.ts +38 -6
  78. package/esri-compat/map-view.d.ts.map +1 -1
  79. package/esri-compat/map-view.js +471 -33
  80. package/esri-compat/portal.d.ts +2 -0
  81. package/esri-compat/portal.d.ts.map +1 -1
  82. package/esri-compat/portal.js +7 -2
  83. package/esri-compat/renderer-objects.d.ts +7 -2
  84. package/esri-compat/renderer-objects.d.ts.map +1 -1
  85. package/esri-compat/renderer-objects.js +16 -5
  86. package/esri-compat/route-layer.d.ts +8 -0
  87. package/esri-compat/route-layer.d.ts.map +1 -1
  88. package/esri-compat/route-layer.js +24 -4
  89. package/esri-compat/route-task.d.ts +5 -1
  90. package/esri-compat/route-task.d.ts.map +1 -1
  91. package/esri-compat/route-task.js +119 -7
  92. package/esri-compat/scene-view.d.ts.map +1 -1
  93. package/esri-compat/scene-view.js +1 -0
  94. package/esri-compat/search.d.ts +2 -1
  95. package/esri-compat/search.d.ts.map +1 -1
  96. package/esri-compat/search.js +52 -2
  97. package/esri-compat/unique-value-renderer.d.ts +2 -0
  98. package/esri-compat/unique-value-renderer.d.ts.map +1 -1
  99. package/esri-compat/unique-value-renderer.js +7 -0
  100. package/esri-compat/web-map.d.ts +10 -0
  101. package/esri-compat/web-map.d.ts.map +1 -1
  102. package/esri-compat/web-map.js +102 -0
  103. package/map/webmap-maplibre.d.ts +2 -1
  104. package/map/webmap-maplibre.d.ts.map +1 -1
  105. package/map/webmap-maplibre.js +3 -0
  106. package/package.json +3 -3
  107. package/query-planner/geoservices.d.ts.map +1 -1
  108. package/query-planner/geoservices.js +2 -0
  109. package/query-planner/types.d.ts +2 -0
  110. package/query-planner/types.d.ts.map +1 -1
  111. package/realtime/honua-server.d.ts +4 -0
  112. package/realtime/honua-server.d.ts.map +1 -1
  113. package/realtime/honua-server.js +10 -0
  114. package/realtime/resumable.js +9 -0
  115. package/realtime/types.d.ts +8 -0
  116. package/realtime/types.d.ts.map +1 -1
  117. package/studio/capability-manifest.d.ts +10 -0
  118. package/studio/capability-manifest.d.ts.map +1 -1
  119. package/studio/capability-manifest.js +38 -0
  120. package/studio/command-adapter.d.ts +35 -0
  121. package/studio/command-adapter.d.ts.map +1 -0
  122. package/studio/command-adapter.js +36 -0
  123. package/studio/generated/studio-api.d.ts +1062 -0
  124. package/studio/generated/studio-api.d.ts.map +1 -0
  125. package/studio/generated/studio-api.js +4 -0
  126. package/studio/index.d.ts +8 -6
  127. package/studio/index.d.ts.map +1 -1
  128. package/studio/index.js +6 -5
  129. package/studio/lifecycle-client.d.ts +3 -3
  130. package/studio/lifecycle-client.d.ts.map +1 -1
  131. package/studio/lifecycle-client.js +41 -22
  132. package/studio/lifecycle-types.d.ts +56 -77
  133. package/studio/lifecycle-types.d.ts.map +1 -1
  134. package/studio/lifecycle-types.js +5 -12
  135. package/studio/types.d.ts +37 -7
  136. package/studio/types.d.ts.map +1 -1
  137. package/studio/types.js +5 -3
  138. package/studio/validate.d.ts.map +1 -1
  139. package/studio/validate.js +104 -7
  140. package/style/renderers.d.ts +6 -1
  141. package/style/renderers.d.ts.map +1 -1
  142. package/style/renderers.js +11 -6
  143. package/style/visual-variables.d.ts +43 -0
  144. package/style/visual-variables.d.ts.map +1 -0
  145. package/style/visual-variables.js +183 -0
  146. package/webmap/convert-layer.d.ts +2 -1
  147. package/webmap/convert-layer.d.ts.map +1 -1
  148. package/webmap/convert-layer.js +20 -3
  149. package/webmap/convert-renderer.d.ts +10 -3
  150. package/webmap/convert-renderer.d.ts.map +1 -1
  151. package/webmap/convert-renderer.js +190 -36
  152. package/webmap/index.d.ts +1 -0
  153. package/webmap/index.d.ts.map +1 -1
  154. package/webmap/parse.d.ts +2 -1
  155. package/webmap/parse.d.ts.map +1 -1
  156. package/webmap/parse.js +1 -1
@@ -11,8 +11,11 @@
11
11
  * @module
12
12
  */
13
13
  import type { ClassBreaksRenderer, UniqueValueRenderer } from "../style/renderers.js";
14
+ import type { RendererConversionOptions } from "../style/visual-variables.js";
15
+ import { type RendererConversionResult } from "../webmap/convert-renderer.js";
14
16
  import type { WarningCollector } from "../webmap/warnings.js";
15
17
  import type { ClassBreaksRendererCompat } from "./class-breaks-renderer.js";
18
+ import type { SimpleRendererCompat } from "./simple-renderer.js";
16
19
  import type { UniqueValueRendererCompat } from "./unique-value-renderer.js";
17
20
  /** Result of projecting a compat renderer to a renderer object. @experimental */
18
21
  export interface CompatRendererProjection<R> {
@@ -29,12 +32,14 @@ export interface CompatRendererProjection<R> {
29
32
  *
30
33
  * @experimental
31
34
  */
32
- export declare function rendererObjectFromClassBreaksCompat(compat: ClassBreaksRendererCompat): CompatRendererProjection<ClassBreaksRenderer>;
35
+ export declare function rendererObjectFromClassBreaksCompat(compat: ClassBreaksRendererCompat, options?: RendererConversionOptions): CompatRendererProjection<ClassBreaksRenderer>;
33
36
  /**
34
37
  * Emit a first-class {@link UniqueValueRenderer} from a
35
38
  * `UniqueValueRendererCompat` shim.
36
39
  *
37
40
  * @experimental
38
41
  */
39
- export declare function rendererObjectFromUniqueValueCompat(compat: UniqueValueRendererCompat): CompatRendererProjection<UniqueValueRenderer>;
42
+ export declare function rendererObjectFromUniqueValueCompat(compat: UniqueValueRendererCompat, options?: RendererConversionOptions): CompatRendererProjection<UniqueValueRenderer>;
43
+ /** Convert a simple compatibility renderer with the shared WebMap compiler. */
44
+ export declare function convertSimpleRendererCompat(compat: SimpleRendererCompat, options?: RendererConversionOptions): CompatRendererProjection<RendererConversionResult>;
40
45
  //# sourceMappingURL=renderer-objects.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"renderer-objects.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/renderer-objects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AAGtF,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE5E,iFAAiF;AACjF,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,yBAAyB,GAChC,wBAAwB,CAAC,mBAAmB,CAAC,CAmB/C;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,yBAAyB,GAChC,wBAAwB,CAAC,mBAAmB,CAAC,CAmB/C"}
1
+ {"version":3,"file":"renderer-objects.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/renderer-objects.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,OAAO,KAAK,EAAE,mBAAmB,EAAE,mBAAmB,EAAE,MAAM,uBAAuB,CAAC;AACtF,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,8BAA8B,CAAC;AAC9E,OAAO,EACL,KAAK,wBAAwB,EAI9B,MAAM,+BAA+B,CAAC;AAEvC,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,uBAAuB,CAAC;AAE9D,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAC5E,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,sBAAsB,CAAC;AACjE,OAAO,KAAK,EAAE,yBAAyB,EAAE,MAAM,4BAA4B,CAAC;AAE5E,iFAAiF;AACjF,MAAM,WAAW,wBAAwB,CAAC,CAAC;IACzC,gFAAgF;IAChF,QAAQ,CAAC,QAAQ,EAAE,CAAC,GAAG,SAAS,CAAC;IACjC,uEAAuE;IACvE,QAAQ,CAAC,QAAQ,EAAE,gBAAgB,CAAC,UAAU,CAAC,CAAC;CACjD;AAED;;;;;;;GAOG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,yBAAyB,EACjC,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAAC,mBAAmB,CAAC,CAwB/C;AAED;;;;;GAKG;AACH,wBAAgB,mCAAmC,CACjD,MAAM,EAAE,yBAAyB,EACjC,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAAC,mBAAmB,CAAC,CAqB/C;AAED,+EAA+E;AAC/E,wBAAgB,2BAA2B,CACzC,MAAM,EAAE,oBAAoB,EAC5B,OAAO,GAAE,yBAA8B,GACtC,wBAAwB,CAAC,wBAAwB,CAAC,CAQpD"}
@@ -10,7 +10,7 @@
10
10
  *
11
11
  * @module
12
12
  */
13
- import { classBreaksRendererFromWebMap, uniqueValueRendererFromWebMap } from "../webmap/convert-renderer.js";
13
+ import { classBreaksRendererFromWebMap, convertRenderer, uniqueValueRendererFromWebMap, } from "../webmap/convert-renderer.js";
14
14
  import { createWarningCollector } from "../webmap/warnings.js";
15
15
  /**
16
16
  * Emit a first-class {@link ClassBreaksRenderer} from a
@@ -20,10 +20,14 @@ import { createWarningCollector } from "../webmap/warnings.js";
20
20
  *
21
21
  * @experimental
22
22
  */
23
- export function rendererObjectFromClassBreaksCompat(compat) {
23
+ export function rendererObjectFromClassBreaksCompat(compat, options = {}) {
24
24
  const warn = createWarningCollector();
25
25
  const renderer = classBreaksRendererFromWebMap({
26
26
  type: "classBreaks",
27
+ visualVariables: compat.visualVariables,
28
+ valueExpression: compat.valueExpression,
29
+ normalizationField: compat.normalizationField,
30
+ normalizationTotal: compat.normalizationTotal,
27
31
  field: compat.field,
28
32
  minValue: compat.minValue,
29
33
  defaultSymbol: compat.defaultSymbol,
@@ -34,7 +38,7 @@ export function rendererObjectFromClassBreaksCompat(compat) {
34
38
  label: info.label,
35
39
  symbol: info.symbol,
36
40
  })),
37
- }, warn);
41
+ }, warn, options);
38
42
  return { renderer, warnings: warn.warnings };
39
43
  }
40
44
  /**
@@ -43,10 +47,11 @@ export function rendererObjectFromClassBreaksCompat(compat) {
43
47
  *
44
48
  * @experimental
45
49
  */
46
- export function rendererObjectFromUniqueValueCompat(compat) {
50
+ export function rendererObjectFromUniqueValueCompat(compat, options = {}) {
47
51
  const warn = createWarningCollector();
48
52
  const renderer = uniqueValueRendererFromWebMap({
49
53
  type: "uniqueValue",
54
+ visualVariables: compat.visualVariables,
50
55
  field1: compat.field,
51
56
  field2: compat.field2,
52
57
  field3: compat.field3,
@@ -57,6 +62,12 @@ export function rendererObjectFromUniqueValueCompat(compat) {
57
62
  label: info.label,
58
63
  symbol: info.symbol,
59
64
  })),
60
- }, warn);
65
+ }, warn, options);
66
+ return { renderer, warnings: warn.warnings };
67
+ }
68
+ /** Convert a simple compatibility renderer with the shared WebMap compiler. */
69
+ export function convertSimpleRendererCompat(compat, options = {}) {
70
+ const warn = createWarningCollector();
71
+ const renderer = convertRenderer({ ...compat.toJSON(), type: "simple", symbol: compat.symbol }, warn, options);
61
72
  return { renderer, warnings: warn.warnings };
62
73
  }
@@ -3,10 +3,17 @@ export interface RouteStopCompat {
3
3
  name?: string;
4
4
  location: [number, number];
5
5
  }
6
+ export interface RouteDirectionStepCompat {
7
+ text: string;
8
+ lengthKilometers: number;
9
+ timeMinutes: number;
10
+ }
6
11
  export interface RouteSolveResultCompat {
7
12
  path: [number, number][];
8
13
  totalLengthMeters: number;
9
14
  totalTimeSeconds: number;
15
+ /** Turn-by-turn steps from a route service. Absent results use the path geometry. */
16
+ directionFeatures?: readonly RouteDirectionStepCompat[];
10
17
  }
11
18
  export interface RouteLayerCompatOptions {
12
19
  id?: string;
@@ -56,4 +63,5 @@ export declare class RouteLayerCompat {
56
63
  setOpacity(opacity: number): void;
57
64
  private notifyWatchers;
58
65
  }
66
+ export declare function routeStopFromUnknown(stop: unknown): RouteStopCompat;
59
67
  //# sourceMappingURL=route-layer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-layer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/route-layer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-layer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/route-layer.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
2
+ import { lonLatFromUnknown } from "./map-view-mount.js";
2
3
  export class RouteLayerCompat {
3
4
  type;
4
5
  id;
@@ -126,6 +127,7 @@ export class RouteLayerCompat {
126
127
  path: result.path.map((point) => [point[0], point[1]]),
127
128
  totalLengthMeters: result.totalLengthMeters,
128
129
  totalTimeSeconds: result.totalTimeSeconds,
130
+ ...(result.directionFeatures ? { directionFeatures: result.directionFeatures } : {}),
129
131
  };
130
132
  this.notifyWatchers("route", this.route);
131
133
  this.eventBus.emit("route-layer.solve-completed", { layerId: this.id, route: this.route }, this);
@@ -176,11 +178,29 @@ export class RouteLayerCompat {
176
178
  }
177
179
  }
178
180
  }
181
+ export function routeStopFromUnknown(stop) {
182
+ if (!stop || typeof stop !== "object") {
183
+ throw new Error("Route stop is missing a location.");
184
+ }
185
+ const record = stop;
186
+ const fromPair = coordinatePair(record.location);
187
+ const fromGeometry = record.geometry === undefined ? undefined : lonLatFromUnknown(record.geometry);
188
+ const location = fromPair ?? fromGeometry;
189
+ if (!location) {
190
+ throw new Error("Route stop is missing a location.");
191
+ }
192
+ const attributeName = record.attributes?.Name ?? record.attributes?.name;
193
+ const name = typeof record.name === "string" ? record.name : typeof attributeName === "string" ? attributeName : undefined;
194
+ return { name, location: [location[0], location[1]] };
195
+ }
196
+ function coordinatePair(value) {
197
+ if (Array.isArray(value) && value.length >= 2 && typeof value[0] === "number" && typeof value[1] === "number") {
198
+ return [value[0], value[1]];
199
+ }
200
+ return undefined;
201
+ }
179
202
  function cloneRouteStop(stop) {
180
- return {
181
- name: stop.name,
182
- location: [stop.location[0], stop.location[1]],
183
- };
203
+ return routeStopFromUnknown(stop);
184
204
  }
185
205
  function defaultRouteProvider(stops) {
186
206
  const path = stops.map((stop) => [stop.location[0], stop.location[1]]);
@@ -1,5 +1,5 @@
1
1
  import { CompatEventBus } from "./event-bus.js";
2
- import { type RouteLayerCompatOptions, type RouteStopCompat } from "./route-layer.js";
2
+ import { type RouteLayerCompatOptions, type RouteSolveResultCompat, type RouteStopCompat } from "./route-layer.js";
3
3
  export interface RouteTaskCompatOptions {
4
4
  url?: string;
5
5
  apiKey?: string;
@@ -22,6 +22,8 @@ export interface RouteTaskStopsFeatureSetCompat {
22
22
  export interface RouteTaskSolveParametersCompat {
23
23
  stops?: readonly RouteStopCompat[] | RouteTaskStopsFeatureSetCompat;
24
24
  returnDirections?: boolean;
25
+ /** ArcGIS travel mode name or the mode object returned by retrieveTravelModes. */
26
+ travelMode?: unknown;
25
27
  }
26
28
  export interface RouteTaskDirectionsFeatureCompat {
27
29
  attributes: {
@@ -85,4 +87,6 @@ export declare class RouteTaskCompat {
85
87
  destroy(): void;
86
88
  private notifyWatchers;
87
89
  }
90
+ export declare function buildRouteTaskSolveResult(route: RouteSolveResultCompat, stops: readonly RouteStopCompat[], includeDirections: boolean): RouteTaskSolveResultCompat;
91
+ export declare function arcGisRouteServiceProvider(url: string, apiKey: string | undefined, travelMode?: unknown): NonNullable<RouteLayerCompatOptions["routeProvider"]>;
88
92
  //# sourceMappingURL=route-task.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"route-task.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/route-task.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"route-task.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/route-task.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAA4B,MAAM,gBAAgB,CAAC;AAG1E,OAAO,EAEL,KAAK,uBAAuB,EAC5B,KAAK,sBAAsB,EAC3B,KAAK,eAAe,EAErB,MAAM,kBAAkB,CAAC;AAE1B,MAAM,WAAW,sBAAsB;IACrC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACzC,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,uBAAuB,CAAC,eAAe,CAAC,CAAC;CAC1D;AAED,MAAM,WAAW,0BAA0B;IACzC,QAAQ,CAAC,EAAE;QACT,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,CAAC,CAAC,EAAE,MAAM,CAAC;QACX,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;KACnB,CAAC;IACF,UAAU,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACtC;AAED,MAAM,WAAW,8BAA8B;IAC7C,QAAQ,CAAC,EAAE,SAAS,0BAA0B,EAAE,CAAC;CAClD;AAED,MAAM,WAAW,8BAA8B;IAC7C,KAAK,CAAC,EAAE,SAAS,eAAe,EAAE,GAAG,8BAA8B,CAAC;IACpE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,kFAAkF;IAClF,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,UAAU,EAAE;QACV,IAAI,EAAE,MAAM,CAAC;QACb,MAAM,EAAE,MAAM,CAAC;QACf,IAAI,EAAE,MAAM,CAAC;KACd,CAAC;IACF,QAAQ,EAAE;QACR,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QAC5B,gBAAgB,EAAE;YAChB,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;CACH;AAED,MAAM,WAAW,gCAAgC;IAC/C,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,QAAQ,EAAE,SAAS,gCAAgC,EAAE,CAAC;CACvD;AAED,MAAM,WAAW,4BAA4B;IAC3C,QAAQ,EAAE;QACR,KAAK,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,EAAE,CAAC;QAC5B,gBAAgB,EAAE;YAChB,IAAI,EAAE,MAAM,CAAC;SACd,CAAC;KACH,CAAC;IACF,UAAU,EAAE;QACV,gBAAgB,EAAE,MAAM,CAAC;QACzB,WAAW,EAAE,MAAM,CAAC;QACpB,gBAAgB,EAAE,MAAM,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,0BAA0B;IACzC,KAAK,EAAE,4BAA4B,CAAC;IACpC,UAAU,CAAC,EAAE,gCAAgC,CAAC;IAC9C,KAAK,EAAE,SAAS,eAAe,EAAE,CAAC;CACnC;AAED,MAAM,WAAW,0BAA0B;IACzC,YAAY,EAAE,SAAS,0BAA0B,EAAE,CAAC;CACrD;AAED,MAAM,MAAM,yBAAyB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE5E,MAAM,WAAW,qBAAqB;IACpC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,eAAe;IAC1B,SAAgB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,SAAgB,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3C,SAAgB,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,GAAG,SAAS,CAAC;IAC9E,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,yBAAyB,CAAC;IACtC,eAAe,EAAE,0BAA0B,GAAG,SAAS,CAAC;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAE5E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAuD;gBAElE,OAAO,GAAE,sBAAsB,GAAG,MAAW;IAyBnD,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAgBhC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;IAQhF,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,qBAAqB;IAehF,KAAK,CAAC,MAAM,GAAE,8BAAmC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAqC7F,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB;AA0CD,wBAAgB,yBAAyB,CACvC,KAAK,EAAE,sBAAsB,EAC7B,KAAK,EAAE,SAAS,eAAe,EAAE,EACjC,iBAAiB,EAAE,OAAO,GACzB,0BAA0B,CAE5B;AAED,wBAAgB,0BAA0B,CACxC,GAAG,EAAE,MAAM,EACX,MAAM,EAAE,MAAM,GAAG,SAAS,EAC1B,UAAU,CAAC,EAAE,OAAO,GACnB,WAAW,CAAC,uBAAuB,CAAC,eAAe,CAAC,CAAC,CAwEvD"}
@@ -1,5 +1,8 @@
1
+ import { esriConfig } from "./esri-config.js";
1
2
  import { CompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
2
- import { RouteLayerCompat, } from "./route-layer.js";
3
+ import { identityManager } from "./identity-manager.js";
4
+ import { coordinateToLonLat } from "./map-view-mount.js";
5
+ import { RouteLayerCompat, routeStopFromUnknown, } from "./route-layer.js";
3
6
  export class RouteTaskCompat {
4
7
  url;
5
8
  apiKey;
@@ -78,7 +81,10 @@ export class RouteTaskCompat {
78
81
  try {
79
82
  const layer = new RouteLayerCompat({
80
83
  stops,
81
- routeProvider: this.routeProvider,
84
+ routeProvider: this.routeProvider ??
85
+ (this.url && hasRouteService(this.url)
86
+ ? arcGisRouteServiceProvider(this.url, this.apiKey, params.travelMode)
87
+ : undefined),
82
88
  eventBus: this.eventBus,
83
89
  });
84
90
  const route = await layer.solve();
@@ -111,16 +117,22 @@ export class RouteTaskCompat {
111
117
  }
112
118
  }
113
119
  }
120
+ function hasRouteService(url) {
121
+ try {
122
+ // `example.test` is the reserved placeholder host used by migrated fixture
123
+ // apps. It has no service to call, so retain the local route fallback.
124
+ return new URL(url).hostname.toLowerCase() !== "example.test";
125
+ }
126
+ catch {
127
+ return true;
128
+ }
129
+ }
114
130
  function normalizeStops(rawStops) {
115
131
  if (!rawStops) {
116
132
  return [];
117
133
  }
118
134
  if (Array.isArray(rawStops)) {
119
- const arrayStops = rawStops;
120
- return arrayStops.map((stop) => ({
121
- name: stop.name,
122
- location: [stop.location[0], stop.location[1]],
123
- }));
135
+ return rawStops.map((stop) => routeStopFromUnknown(stop));
124
136
  }
125
137
  const featureSet = rawStops;
126
138
  const features = featureSet.features ?? [];
@@ -143,6 +155,92 @@ function normalizeStops(rawStops) {
143
155
  }
144
156
  return stops;
145
157
  }
158
+ export function buildRouteTaskSolveResult(route, stops, includeDirections) {
159
+ return buildSolveResult(route, stops, includeDirections);
160
+ }
161
+ export function arcGisRouteServiceProvider(url, apiKey, travelMode) {
162
+ return async (stops) => {
163
+ const solveUrl = new URL(`${url.replace(/\/$/, "")}/solve`);
164
+ solveUrl.searchParams.set("f", "json");
165
+ solveUrl.searchParams.set("outSR", "4326");
166
+ solveUrl.searchParams.set("returnDirections", "true");
167
+ solveUrl.searchParams.set("directionsLengthUnits", "esriNAUKilometers");
168
+ solveUrl.searchParams.set("stops", JSON.stringify({
169
+ features: stops.map((stop) => ({
170
+ geometry: stopGeometry(stop),
171
+ attributes: { Name: stop.name ?? "" },
172
+ })),
173
+ }));
174
+ if (travelMode !== undefined && travelMode !== null) {
175
+ solveUrl.searchParams.set("travelMode", typeof travelMode === "string" ? travelMode : JSON.stringify(travelMode));
176
+ }
177
+ const token = apiKey ?? esriConfig.apiKey ?? identityManager.findCredential(url)?.token;
178
+ if (token) {
179
+ solveUrl.searchParams.set("token", token);
180
+ }
181
+ const response = await fetch(solveUrl);
182
+ const json = (await response.json());
183
+ if (!response.ok || json.error) {
184
+ throw new Error(json.error?.message ?? `Route solve failed (${response.status}).`);
185
+ }
186
+ const feature = json.routes?.features?.[0];
187
+ const pathWkid = feature?.geometry?.spatialReference?.wkid;
188
+ const path = (feature?.geometry?.paths ?? []).flatMap((ring) => ring
189
+ .filter((point) => point.length >= 2)
190
+ .map((point) => coordinateToLonLat([point[0] ?? 0, point[1] ?? 0], pathWkid))
191
+ .filter((point) => point !== undefined));
192
+ const kilometers = numberAttribute(feature?.attributes, "Total_Kilometers");
193
+ const minutes = numberAttribute(feature?.attributes, "Total_TravelTime");
194
+ const metersFromPath = pathLengthMeters(path);
195
+ const directionFeatures = (json.directions?.[0]?.features ?? [])
196
+ .map((step) => {
197
+ const text = step.attributes?.text;
198
+ if (typeof text !== "string" || text.length === 0) {
199
+ return undefined;
200
+ }
201
+ const length = step.attributes?.length;
202
+ const time = step.attributes?.time;
203
+ return {
204
+ text,
205
+ lengthKilometers: typeof length === "number" && Number.isFinite(length) ? length : 0,
206
+ timeMinutes: typeof time === "number" && Number.isFinite(time) ? time : 0,
207
+ };
208
+ })
209
+ .filter((step) => step !== undefined);
210
+ return {
211
+ path: path.length > 0 ? path : stops.map((stop) => [stop.location[0], stop.location[1]]),
212
+ totalLengthMeters: kilometers !== undefined ? kilometers * 1000 : metersFromPath,
213
+ totalTimeSeconds: minutes !== undefined ? minutes * 60 : metersFromPath / 13.4112,
214
+ ...(directionFeatures.length > 0 ? { directionFeatures } : {}),
215
+ };
216
+ };
217
+ }
218
+ function stopGeometry(stop) {
219
+ const [x, y] = stop.location;
220
+ const webMercator = Math.abs(x) > 180 || Math.abs(y) > 90;
221
+ return { x, y, spatialReference: { wkid: webMercator ? 102100 : 4326 } };
222
+ }
223
+ function numberAttribute(attributes, name) {
224
+ const value = attributes?.[name];
225
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
226
+ }
227
+ function pathLengthMeters(path) {
228
+ let total = 0;
229
+ for (let index = 1; index < path.length; index += 1) {
230
+ const previous = path[index - 1];
231
+ const current = path[index];
232
+ if (!previous || !current) {
233
+ continue;
234
+ }
235
+ const dLon = ((current[0] - previous[0]) * Math.PI) / 180;
236
+ const dLat = ((current[1] - previous[1]) * Math.PI) / 180;
237
+ const lat1 = (previous[1] * Math.PI) / 180;
238
+ const lat2 = (current[1] * Math.PI) / 180;
239
+ const a = Math.sin(dLat / 2) ** 2 + Math.cos(lat1) * Math.cos(lat2) * Math.sin(dLon / 2) ** 2;
240
+ total += 6371000 * 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1 - a));
241
+ }
242
+ return total;
243
+ }
146
244
  function buildSolveResult(route, stops, includeDirections) {
147
245
  const kilometers = route.totalLengthMeters / 1000;
148
246
  const miles = route.totalLengthMeters * 0.000621371;
@@ -176,6 +274,20 @@ function buildSolveResult(route, stops, includeDirections) {
176
274
  };
177
275
  }
178
276
  function buildDirectionFeatures(route) {
277
+ if (route.directionFeatures && route.directionFeatures.length > 0) {
278
+ const path = route.path.map((point) => [point[0], point[1]]);
279
+ return route.directionFeatures.map((step) => ({
280
+ attributes: {
281
+ text: step.text,
282
+ length: step.lengthKilometers,
283
+ time: step.timeMinutes,
284
+ },
285
+ geometry: {
286
+ paths: [path],
287
+ spatialReference: { wkid: 4326 },
288
+ },
289
+ }));
290
+ }
179
291
  if (route.path.length < 2 || route.totalLengthMeters <= 0) {
180
292
  return [];
181
293
  }
@@ -1 +1 @@
1
- {"version":3,"file":"scene-view.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/scene-view.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"scene-view.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/scene-view.ts"],"names":[],"mappings":"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"}
@@ -5,6 +5,7 @@ export class SceneViewCompat extends MapViewCompat {
5
5
  camera;
6
6
  constructor(options = {}) {
7
7
  super(options);
8
+ this.mountRenderer = false;
8
9
  this.viewingMode = options.viewingMode ?? "global";
9
10
  this.qualityProfile = options.qualityProfile;
10
11
  this.camera = options.camera;
@@ -63,7 +63,7 @@ export interface SearchHandleCompat {
63
63
  }
64
64
  export declare class SearchCompat {
65
65
  readonly view: unknown;
66
- readonly container: HTMLElement | string | null;
66
+ container: HTMLElement | string | null;
67
67
  readonly eventBus: CompatEventBus;
68
68
  readonly autoNavigate: boolean;
69
69
  includeDefaultSources: boolean;
@@ -89,6 +89,7 @@ export declare class SearchCompat {
89
89
  private readonly watchListeners;
90
90
  private customSources;
91
91
  constructor(options?: SearchCompatOptions);
92
+ attachContainer(element: HTMLElement): void;
92
93
  load(): Promise<SearchCompat>;
93
94
  when(callback?: (widget: SearchCompat) => void): Promise<SearchCompat>;
94
95
  watch(propertyName: string, listener: (value: unknown) => void): SearchHandleCompat;
@@ -1 +1 @@
1
- {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/search.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"search.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/search.ts"],"names":[],"mappings":"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"}
@@ -58,6 +58,11 @@ export class SearchCompat {
58
58
  this.watchListeners = new Map();
59
59
  this.refreshSourceSubscriptions();
60
60
  this.rebuildSources(false);
61
+ mountSearchBox(this);
62
+ }
63
+ attachContainer(element) {
64
+ this.container = element;
65
+ mountSearchBox(this);
61
66
  }
62
67
  async load() {
63
68
  if (this.loaded) {
@@ -350,11 +355,21 @@ function resolveViewSearchSources(view, limits) {
350
355
  }
351
356
  catch {
352
357
  fieldSearchUnsupported = true;
353
- response = await layer.queryFeatures(fallbackQueryOptions);
358
+ try {
359
+ response = await layer.queryFeatures(fallbackQueryOptions);
360
+ }
361
+ catch {
362
+ response = await layer.queryFeatures(createLocalSearchQueryOptions(fieldSearchConfig.searchableFields, normalizedTerm));
363
+ }
354
364
  }
355
365
  }
356
366
  else {
357
- response = await layer.queryFeatures(fallbackQueryOptions);
367
+ try {
368
+ response = await layer.queryFeatures(fallbackQueryOptions);
369
+ }
370
+ catch {
371
+ response = await layer.queryFeatures(createLocalSearchQueryOptions(fieldSearchConfig.searchableFields, normalizedTerm));
372
+ }
358
373
  }
359
374
  return extractFeatures(response);
360
375
  });
@@ -448,6 +463,32 @@ const COMMON_SEARCH_FIELD_NAMES = [
448
463
  ];
449
464
  const MAX_SERVER_SEARCH_FIELDS = 6;
450
465
  const MAX_SERVER_OUT_FIELDS = 16;
466
+ function mountSearchBox(search) {
467
+ const container = search.container;
468
+ const element = typeof HTMLElement !== "undefined" && container instanceof HTMLElement
469
+ ? container
470
+ : typeof container === "string" && typeof document !== "undefined"
471
+ ? document.getElementById(container)
472
+ : undefined;
473
+ if (typeof HTMLElement === "undefined" || typeof document === "undefined" || !(element instanceof HTMLElement)) {
474
+ return;
475
+ }
476
+ element.querySelector(":scope > .honua-search")?.remove();
477
+ const form = document.createElement("form");
478
+ form.className = "honua-search";
479
+ const input = document.createElement("input");
480
+ input.type = "search";
481
+ input.placeholder = search.allPlaceholder || "Search";
482
+ const button = document.createElement("button");
483
+ button.type = "submit";
484
+ button.textContent = "Search";
485
+ form.addEventListener("submit", (event) => {
486
+ event.preventDefault();
487
+ void search.search(input.value);
488
+ });
489
+ form.append(input, button);
490
+ element.append(form);
491
+ }
451
492
  function createFallbackLayerSearchQueryOptions(maxFeatureCandidates, normalizedTerm, outFields) {
452
493
  return {
453
494
  where: "1=1",
@@ -471,6 +512,15 @@ function createOptimizedLayerSearchQueryOptions(config, normalizedTerm, maxFeatu
471
512
  },
472
513
  };
473
514
  }
515
+ function createLocalSearchQueryOptions(searchableFields, normalizedTerm) {
516
+ const field = searchableFields[0] ?? "name";
517
+ const escaped = normalizedTerm.replace(/'/g, "''");
518
+ return {
519
+ where: `${field} LIKE '%${escaped}%'`,
520
+ returnGeometry: true,
521
+ outFields: ["*"],
522
+ };
523
+ }
474
524
  function createSearchWhereClause(searchableFields, normalizedTerm) {
475
525
  const escapedTerm = escapeSqlLiteral(normalizedTerm.toUpperCase());
476
526
  return searchableFields.map((field) => `UPPER(${field}) LIKE '%${escapedTerm}%' ESCAPE '\\\\'`).join(" OR ");
@@ -5,6 +5,7 @@ export interface UniqueValueInfoCompat {
5
5
  description?: string;
6
6
  }
7
7
  export interface UniqueValueRendererCompatOptions {
8
+ visualVariables?: unknown[];
8
9
  field?: string;
9
10
  field2?: string;
10
11
  field3?: string;
@@ -17,6 +18,7 @@ export interface UniqueValueRendererHandleCompat {
17
18
  remove(): void;
18
19
  }
19
20
  export declare class UniqueValueRendererCompat {
21
+ visualVariables: unknown[];
20
22
  loaded: boolean;
21
23
  loadStatus: UniqueValueRendererLoadStatusCompat;
22
24
  field: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"unique-value-renderer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/unique-value-renderer.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,mCAAmC,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtF,MAAM,WAAW,+BAA+B;IAC9C,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,yBAAyB;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,mCAAmC,CAAC;IAChD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,gCAAqC;IAYpD,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAc1C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAQxG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,+BAA+B;IAehG,MAAM,CAAC,OAAO,EAAE,gCAAgC,GAAG,IAAI;IA2BvD,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAKrD,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAUtD,KAAK,IAAI,yBAAyB;IAIlC,MAAM,IAAI,gCAAgC;IAW1C,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"unique-value-renderer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/unique-value-renderer.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,qBAAqB;IACpC,KAAK,EAAE,MAAM,GAAG,MAAM,CAAC;IACvB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,gBAAgB,CAAC,EAAE,qBAAqB,EAAE,CAAC;CAC5C;AAED,MAAM,MAAM,mCAAmC,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtF,MAAM,WAAW,+BAA+B;IAC9C,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,yBAAyB;IAC7B,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,mCAAmC,CAAC;IAChD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;IAC3B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,gBAAgB,EAAE,qBAAqB,EAAE,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,gCAAqC;IAapD,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAc1C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAQxG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,+BAA+B;IAehG,MAAM,CAAC,OAAO,EAAE,gCAAgC,GAAG,IAAI;IA+BvD,kBAAkB,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAKrD,qBAAqB,CAAC,KAAK,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO;IAUtD,KAAK,IAAI,yBAAyB;IAIlC,MAAM,IAAI,gCAAgC;IAY1C,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
@@ -1,5 +1,6 @@
1
1
  import { safeInvokeCompatListener } from "./event-bus.js";
2
2
  export class UniqueValueRendererCompat {
3
+ visualVariables;
3
4
  loaded;
4
5
  loadStatus;
5
6
  field;
@@ -10,6 +11,7 @@ export class UniqueValueRendererCompat {
10
11
  uniqueValueInfos;
11
12
  watchListeners;
12
13
  constructor(options = {}) {
14
+ this.visualVariables = structuredClone(options.visualVariables ?? []);
13
15
  this.loaded = false;
14
16
  this.loadStatus = "not-loaded";
15
17
  this.field = options.field;
@@ -53,6 +55,10 @@ export class UniqueValueRendererCompat {
53
55
  };
54
56
  }
55
57
  update(options) {
58
+ if (options.visualVariables !== undefined) {
59
+ this.visualVariables = structuredClone(options.visualVariables);
60
+ this.notifyWatchers("visualVariables", this.visualVariables);
61
+ }
56
62
  if (options.field !== undefined) {
57
63
  this.field = options.field;
58
64
  this.notifyWatchers("field", this.field);
@@ -96,6 +102,7 @@ export class UniqueValueRendererCompat {
96
102
  }
97
103
  toJSON() {
98
104
  return {
105
+ visualVariables: structuredClone(this.visualVariables),
99
106
  field: this.field,
100
107
  field2: this.field2,
101
108
  field3: this.field3,
@@ -5,8 +5,18 @@ export interface WebMapCompatOptions extends MapCompatOptions {
5
5
  export type WebMapLoadStatusCompat = MapLoadStatusCompat;
6
6
  export type WebMapHandleCompat = MapCompatHandle;
7
7
  export declare class WebMapCompat extends MapCompat {
8
+ initialExtent: {
9
+ xmin: number;
10
+ ymin: number;
11
+ xmax: number;
12
+ ymax: number;
13
+ spatialReference?: {
14
+ wkid?: number;
15
+ };
16
+ } | undefined;
8
17
  constructor(options?: WebMapCompatOptions);
9
18
  load(): Promise<WebMapCompat>;
19
+ private populateFromPortalItem;
10
20
  when(callback?: (map: WebMapCompat) => void): Promise<WebMapCompat>;
11
21
  watch(propertyName: string, listener: (value: unknown) => void): WebMapHandleCompat;
12
22
  setPortalItem(portalItem: unknown): void;
@@ -1 +1 @@
1
- {"version":3,"file":"web-map.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/web-map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAE5G,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD,qBAAa,YAAa,SAAQ,SAAS;gBACtB,OAAO,GAAE,mBAAwB;IAIvC,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAK7B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAQzE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,kBAAkB;IAInF,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;CAIhD"}
1
+ {"version":3,"file":"web-map.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/web-map.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,SAAS,EAAE,KAAK,eAAe,EAAE,KAAK,gBAAgB,EAAE,KAAK,mBAAmB,EAAE,MAAM,UAAU,CAAC;AAG5G,MAAM,WAAW,mBAAoB,SAAQ,gBAAgB;IAC3D,UAAU,CAAC,EAAE,OAAO,CAAC;CACtB;AAED,MAAM,MAAM,sBAAsB,GAAG,mBAAmB,CAAC;AACzD,MAAM,MAAM,kBAAkB,GAAG,eAAe,CAAC;AAEjD,qBAAa,YAAa,SAAQ,SAAS;IAClC,aAAa,EAChB;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAC;QAAC,gBAAgB,CAAC,EAAE;YAAE,IAAI,CAAC,EAAE,MAAM,CAAA;SAAE,CAAA;KAAE,GAChG,SAAS,CAAC;gBAEK,OAAO,GAAE,mBAAwB;IAK9B,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;YASrC,sBAAsB;IA0BvB,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAQzE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,kBAAkB;IAInF,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;CAIhD"}