@honua/react 0.1.11-beta.0 → 0.1.13

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 (193) hide show
  1. package/columnar/apache-arrow.d.ts +17 -0
  2. package/columnar/apache-arrow.d.ts.map +1 -0
  3. package/columnar/apache-arrow.js +1036 -0
  4. package/columnar/batch-cache-conformance.d.ts +66 -0
  5. package/columnar/batch-cache-conformance.d.ts.map +1 -0
  6. package/columnar/batch-cache-conformance.js +317 -0
  7. package/columnar/batch-cache-indexeddb.d.ts +31 -0
  8. package/columnar/batch-cache-indexeddb.d.ts.map +1 -0
  9. package/columnar/batch-cache-indexeddb.js +148 -0
  10. package/columnar/batch-cache.d.ts +298 -0
  11. package/columnar/batch-cache.d.ts.map +1 -0
  12. package/columnar/batch-cache.js +757 -0
  13. package/columnar/geoarrow-aggregate.d.ts +178 -0
  14. package/columnar/geoarrow-aggregate.d.ts.map +1 -0
  15. package/columnar/geoarrow-aggregate.js +976 -0
  16. package/columnar/geoarrow-patch.d.ts +382 -0
  17. package/columnar/geoarrow-patch.d.ts.map +1 -0
  18. package/columnar/geoarrow-patch.js +1656 -0
  19. package/columnar/geoarrow-reproject.d.ts +22 -0
  20. package/columnar/geoarrow-reproject.d.ts.map +1 -0
  21. package/columnar/geoarrow-reproject.js +119 -0
  22. package/columnar/geoarrow-serialization.d.ts +68 -0
  23. package/columnar/geoarrow-serialization.d.ts.map +1 -0
  24. package/columnar/geoarrow-serialization.js +331 -0
  25. package/columnar/geoarrow-types.d.ts +271 -0
  26. package/columnar/geoarrow-types.d.ts.map +1 -0
  27. package/columnar/geoarrow-types.js +15 -0
  28. package/columnar/geoarrow.d.ts +52 -0
  29. package/columnar/geoarrow.d.ts.map +1 -0
  30. package/columnar/geoarrow.js +1469 -0
  31. package/columnar/index.d.ts +43 -0
  32. package/columnar/index.d.ts.map +1 -0
  33. package/columnar/index.js +29 -0
  34. package/columnar/operators.d.ts +70 -0
  35. package/columnar/operators.d.ts.map +1 -0
  36. package/columnar/operators.js +307 -0
  37. package/columnar/result.d.ts +369 -0
  38. package/columnar/result.d.ts.map +1 -0
  39. package/columnar/result.js +815 -0
  40. package/columnar/telemetry.d.ts +152 -0
  41. package/columnar/telemetry.d.ts.map +1 -0
  42. package/columnar/telemetry.js +265 -0
  43. package/columnar/transfer.d.ts +28 -0
  44. package/columnar/transfer.d.ts.map +1 -0
  45. package/columnar/transfer.js +669 -0
  46. package/columnar/types.d.ts +175 -0
  47. package/columnar/types.d.ts.map +1 -0
  48. package/columnar/types.js +22 -0
  49. package/columnar/worker.d.ts +157 -0
  50. package/columnar/worker.d.ts.map +1 -0
  51. package/columnar/worker.js +1059 -0
  52. package/connect-url-safety.d.ts +53 -0
  53. package/connect-url-safety.js +189 -0
  54. package/contract/pmtiles.d.ts +6 -5
  55. package/contract/pmtiles.d.ts.map +1 -1
  56. package/contract/pmtiles.js +30 -5
  57. package/control-plane/generated/admin-operations.d.ts +3 -3
  58. package/control-plane/generated/admin-operations.d.ts.map +1 -1
  59. package/control-plane/generated/admin-operations.js +3 -3
  60. package/core/client.d.ts.map +1 -1
  61. package/core/client.js +87 -19
  62. package/core/deprecation-notice.d.ts +28 -0
  63. package/core/deprecation-notice.d.ts.map +1 -0
  64. package/core/deprecation-notice.js +22 -0
  65. package/core/esri-geojson.d.ts.map +1 -1
  66. package/core/esri-geojson.js +10 -6
  67. package/core/optional-grpc-peer.d.ts +15 -0
  68. package/core/optional-grpc-peer.d.ts.map +1 -0
  69. package/core/optional-grpc-peer.js +60 -0
  70. package/esri-compat/basemap-gallery.d.ts +2 -0
  71. package/esri-compat/basemap-gallery.d.ts.map +1 -1
  72. package/esri-compat/basemap-gallery.js +12 -0
  73. package/esri-compat/basemap.d.ts +4 -0
  74. package/esri-compat/basemap.d.ts.map +1 -1
  75. package/esri-compat/basemap.js +70 -0
  76. package/esri-compat/bookmarks.d.ts +2 -0
  77. package/esri-compat/bookmarks.d.ts.map +1 -1
  78. package/esri-compat/bookmarks.js +12 -0
  79. package/esri-compat/controls.d.ts +18 -0
  80. package/esri-compat/controls.d.ts.map +1 -1
  81. package/esri-compat/controls.js +120 -57
  82. package/esri-compat/directions.d.ts +4 -0
  83. package/esri-compat/directions.d.ts.map +1 -1
  84. package/esri-compat/directions.js +30 -20
  85. package/esri-compat/editor.d.ts +4 -0
  86. package/esri-compat/editor.d.ts.map +1 -1
  87. package/esri-compat/editor.js +16 -0
  88. package/esri-compat/esri-config.d.ts +2 -1
  89. package/esri-compat/esri-config.d.ts.map +1 -1
  90. package/esri-compat/feature-effect.d.ts +23 -0
  91. package/esri-compat/feature-effect.d.ts.map +1 -0
  92. package/esri-compat/feature-effect.js +12 -0
  93. package/esri-compat/feature-form.d.ts +6 -0
  94. package/esri-compat/feature-form.d.ts.map +1 -1
  95. package/esri-compat/feature-form.js +63 -0
  96. package/esri-compat/feature-layer.d.ts +21 -2
  97. package/esri-compat/feature-layer.d.ts.map +1 -1
  98. package/esri-compat/feature-layer.js +172 -1
  99. package/esri-compat/feature-table.d.ts +5 -0
  100. package/esri-compat/feature-table.d.ts.map +1 -1
  101. package/esri-compat/feature-table.js +23 -0
  102. package/esri-compat/identity-manager.d.ts +1 -1
  103. package/esri-compat/identity-manager.js +1 -1
  104. package/esri-compat/legend.d.ts +2 -0
  105. package/esri-compat/legend.d.ts.map +1 -1
  106. package/esri-compat/legend.js +98 -0
  107. package/esri-compat/locator.d.ts +1 -1
  108. package/esri-compat/locator.js +1 -1
  109. package/esri-compat/map-view-mount.d.ts +1 -0
  110. package/esri-compat/map-view-mount.d.ts.map +1 -1
  111. package/esri-compat/map-view-mount.js +46 -25
  112. package/esri-compat/map-view.d.ts +13 -0
  113. package/esri-compat/map-view.d.ts.map +1 -1
  114. package/esri-compat/map-view.js +94 -8
  115. package/esri-compat/map.d.ts +5 -1
  116. package/esri-compat/map.d.ts.map +1 -1
  117. package/esri-compat/map.js +10 -0
  118. package/esri-compat/measurement.d.ts +2 -0
  119. package/esri-compat/measurement.d.ts.map +1 -1
  120. package/esri-compat/measurement.js +14 -0
  121. package/esri-compat/point.d.ts +7 -0
  122. package/esri-compat/point.d.ts.map +1 -1
  123. package/esri-compat/point.js +33 -3
  124. package/esri-compat/popup.d.ts +2 -0
  125. package/esri-compat/popup.d.ts.map +1 -1
  126. package/esri-compat/popup.js +12 -0
  127. package/esri-compat/portal.d.ts +1 -1
  128. package/esri-compat/portal.js +1 -1
  129. package/esri-compat/print.d.ts +3 -0
  130. package/esri-compat/print.d.ts.map +1 -1
  131. package/esri-compat/print.js +15 -0
  132. package/esri-compat/search.d.ts +4 -0
  133. package/esri-compat/search.d.ts.map +1 -1
  134. package/esri-compat/search.js +25 -28
  135. package/esri-compat/sketch.d.ts +2 -0
  136. package/esri-compat/sketch.d.ts.map +1 -1
  137. package/esri-compat/sketch.js +12 -0
  138. package/esri-compat/widget-host.d.ts +46 -17
  139. package/esri-compat/widget-host.d.ts.map +1 -1
  140. package/esri-compat/widget-host.js +84 -20
  141. package/esri-compat/widget-shell-hosts.d.ts +61 -0
  142. package/esri-compat/widget-shell-hosts.d.ts.map +1 -0
  143. package/esri-compat/widget-shell-hosts.js +76 -0
  144. package/geocoding/index.d.ts +114 -0
  145. package/geocoding/index.d.ts.map +1 -0
  146. package/geocoding/index.js +293 -0
  147. package/geocoding/provider-http.d.ts +37 -0
  148. package/geocoding/provider-http.d.ts.map +1 -0
  149. package/geocoding/provider-http.js +93 -0
  150. package/geocoding/provider.d.ts +145 -0
  151. package/geocoding/provider.d.ts.map +1 -0
  152. package/geocoding/provider.js +41 -0
  153. package/geocoding/providers/honua.d.ts +28 -0
  154. package/geocoding/providers/honua.d.ts.map +1 -0
  155. package/geocoding/providers/honua.js +68 -0
  156. package/geocoding/providers/nominatim.d.ts +47 -0
  157. package/geocoding/providers/nominatim.d.ts.map +1 -0
  158. package/geocoding/providers/nominatim.js +105 -0
  159. package/geocoding/providers/pelias.d.ts +40 -0
  160. package/geocoding/providers/pelias.d.ts.map +1 -0
  161. package/geocoding/providers/pelias.js +115 -0
  162. package/geocoding/providers/photon.d.ts +39 -0
  163. package/geocoding/providers/photon.d.ts.map +1 -0
  164. package/geocoding/providers/photon.js +107 -0
  165. package/geometry/convert.d.ts +13 -0
  166. package/geometry/convert.d.ts.map +1 -0
  167. package/geometry/convert.js +12 -0
  168. package/geometry/index.d.ts +17 -0
  169. package/geometry/index.d.ts.map +1 -0
  170. package/geometry/index.js +15 -0
  171. package/geometry/internal.d.ts +25 -0
  172. package/geometry/internal.d.ts.map +1 -0
  173. package/geometry/internal.js +40 -0
  174. package/geometry/ops.d.ts +71 -0
  175. package/geometry/ops.d.ts.map +1 -0
  176. package/geometry/ops.js +147 -0
  177. package/geometry/project.d.ts +40 -0
  178. package/geometry/project.d.ts.map +1 -0
  179. package/geometry/project.js +88 -0
  180. package/geometry/types.d.ts +36 -0
  181. package/geometry/types.d.ts.map +1 -0
  182. package/geometry/types.js +12 -0
  183. package/kernel/renderer.d.ts +82 -0
  184. package/kernel/renderer.js +1 -0
  185. package/offline/digest.d.ts +15 -0
  186. package/offline/digest.js +58 -0
  187. package/offline/quota.d.ts +161 -0
  188. package/offline/quota.js +370 -0
  189. package/offline/types.d.ts +349 -0
  190. package/offline/types.js +75 -0
  191. package/package.json +14 -2
  192. package/widget-capabilities.d.ts +67 -0
  193. package/widget-capabilities.js +152 -0
@@ -12,6 +12,9 @@ export type MapLoadStatusCompat = "not-loaded" | "loading" | "loaded";
12
12
  export interface MapCompatHandle {
13
13
  remove(): void;
14
14
  }
15
+ type MapLayerCollection = readonly unknown[] & {
16
+ add(layer: unknown, index?: number): MapLayerCollection;
17
+ };
15
18
  export declare class MapCompat {
16
19
  basemap: unknown;
17
20
  ground: unknown;
@@ -27,7 +30,7 @@ export declare class MapCompat {
27
30
  load(): Promise<MapCompat>;
28
31
  when(callback?: (map: MapCompat) => void): Promise<MapCompat>;
29
32
  watch(propertyName: string, listener: (value: unknown) => void): MapCompatHandle;
30
- get layers(): readonly unknown[];
33
+ get layers(): MapLayerCollection;
31
34
  get allLayers(): readonly unknown[];
32
35
  add(layer: unknown, index?: number): void;
33
36
  addMany(layers: readonly unknown[], index?: number): void;
@@ -44,4 +47,5 @@ export declare class MapCompat {
44
47
  setSpatialReference(spatialReference: unknown): void;
45
48
  private notifyWatchers;
46
49
  }
50
+ export {};
47
51
  //# sourceMappingURL=map.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAEjG,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,SAAS;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,mBAAmB,CAAC;IACvC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAY;gBAExB,OAAO,GAAE,gBAAqB;IAapC,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAgB1B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAQnE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,eAAe;IAevF,IAAW,MAAM,IAAI,SAAS,OAAO,EAAE,CAEtC;IAED,IAAW,SAAS,IAAI,SAAS,OAAO,EAAE,CAOzC;IAEM,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBzC,OAAO,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAqBzD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAa/B,UAAU,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM;IAU9C,SAAS,IAAI,IAAI;IAQjB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAe/C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAUlC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMlC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMhC,SAAS,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAM3C,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAMxC,OAAO,IAAI,IAAI;IAKf,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI;IAM3D,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"map.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/map.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAEjG,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,OAAO,EAAE,CAAC;IACnB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,MAAM,mBAAmB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtE,MAAM,WAAW,eAAe;IAC9B,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,KAAK,kBAAkB,GAAG,SAAS,OAAO,EAAE,GAAG;IAC7C,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,kBAAkB,CAAC;CACzD,CAAC;AAEF,qBAAa,SAAS;IACb,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,UAAU,EAAE,OAAO,CAAC;IACpB,gBAAgB,EAAE,OAAO,CAAC;IAC1B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,mBAAmB,CAAC;IACvC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAY;gBAExB,OAAO,GAAE,gBAAqB;IAuBpC,IAAI,IAAI,OAAO,CAAC,SAAS,CAAC;IAgB1B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,GAAG,EAAE,SAAS,KAAK,IAAI,GAAG,OAAO,CAAC,SAAS,CAAC;IAQnE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,eAAe;IAevF,IAAW,MAAM,IAAI,kBAAkB,CAEtC;IAED,IAAW,SAAS,IAAI,SAAS,OAAO,EAAE,CAOzC;IAEM,GAAG,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAgBzC,OAAO,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,IAAI;IAqBzD,MAAM,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO;IAa/B,UAAU,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,MAAM;IAU9C,SAAS,IAAI,IAAI;IAQjB,OAAO,CAAC,KAAK,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,GAAG,OAAO;IAe/C,aAAa,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO;IAUlC,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAMlC,SAAS,CAAC,MAAM,EAAE,OAAO,GAAG,IAAI;IAMhC,SAAS,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAM3C,aAAa,CAAC,UAAU,EAAE,OAAO,GAAG,IAAI;IAMxC,OAAO,IAAI,IAAI;IAKf,mBAAmB,CAAC,gBAAgB,EAAE,OAAO,GAAG,IAAI;IAM3D,OAAO,CAAC,cAAc;CAUvB"}
@@ -19,6 +19,16 @@ export class MapCompat {
19
19
  this.loaded = false;
20
20
  this.loadStatus = "not-loaded";
21
21
  this.layersInternal = Array.isArray(options.layers) ? [...options.layers] : [];
22
+ // Callers chain this, as in layers.add(first).add(second).
23
+ Object.defineProperty(this.layersInternal, "add", {
24
+ configurable: true,
25
+ enumerable: false,
26
+ writable: false,
27
+ value: (layer, index) => {
28
+ this.add(layer, index);
29
+ return this.layers;
30
+ },
31
+ });
22
32
  this.eventBus = options.eventBus ?? resolveCompatEventBus(options.layers) ?? new CompatEventBus();
23
33
  this.watchListeners = new Map();
24
34
  }
@@ -30,6 +30,7 @@ export declare class MeasurementCompat {
30
30
  areaUnit: AreaUnitCompat;
31
31
  lastMeasurement: MeasurementResultCompat | undefined;
32
32
  private readonly watchListeners;
33
+ private readonly widgetHost;
33
34
  constructor(options?: MeasurementCompatOptions);
34
35
  load(): Promise<MeasurementCompat>;
35
36
  when(callback?: (widget: MeasurementCompat) => void): Promise<MeasurementCompat>;
@@ -40,6 +41,7 @@ export declare class MeasurementCompat {
40
41
  measureDistance(points: readonly [number, number][]): MeasurementResultCompat;
41
42
  measureArea(ring: readonly [number, number][]): MeasurementResultCompat;
42
43
  destroy(): void;
44
+ private pushWidgetHost;
43
45
  private notifyWatchers;
44
46
  }
45
47
  //# sourceMappingURL=measurement.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"measurement.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/measurement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAEjG,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,MAAM,GAAG,aAAa,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAC1E,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,mBAAmB,GAAG,aAAa,GAAG,cAAc,CAAC;AAEpG,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAAC;CACzC;AAED,MAAM,MAAM,2BAA2B,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9E,MAAM,WAAW,uBAAuB;IACtC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,2BAA2B,CAAC;IACxC,UAAU,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC9C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,wBAA6B;IAa5C,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAgBlC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQtF,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,uBAAuB;IAexF,KAAK,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAMxC,IAAI,IAAI,IAAI;IAUZ,KAAK,IAAI,IAAI;IAMb,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,uBAAuB;IAc7E,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,uBAAuB;IAcvE,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"measurement.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/measurement.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAGjG,MAAM,MAAM,qBAAqB,GAAG,UAAU,GAAG,MAAM,GAAG,aAAa,CAAC;AACxE,MAAM,MAAM,gBAAgB,GAAG,QAAQ,GAAG,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAC1E,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,mBAAmB,GAAG,aAAa,GAAG,cAAc,CAAC;AAEpG,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,UAAU,CAAC,EAAE,qBAAqB,CAAC;IACnC,UAAU,CAAC,EAAE,gBAAgB,CAAC;IAC9B,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,uBAAuB;IACtC,IAAI,EAAE,qBAAqB,CAAC;IAC5B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,gBAAgB,GAAG,cAAc,CAAC;CACzC;AAED,MAAM,MAAM,2BAA2B,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9E,MAAM,WAAW,uBAAuB;IACtC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,2BAA2B,CAAC;IACxC,UAAU,EAAE,qBAAqB,GAAG,SAAS,CAAC;IAC9C,UAAU,EAAE,gBAAgB,CAAC;IAC7B,QAAQ,EAAE,cAAc,CAAC;IACzB,eAAe,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC5D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,wBAA6B;IAe5C,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAgBlC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQtF,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,uBAAuB;IAexF,KAAK,CAAC,IAAI,EAAE,qBAAqB,GAAG,IAAI;IAOxC,IAAI,IAAI,IAAI;IAWZ,KAAK,IAAI,IAAI;IAMb,eAAe,CAAC,MAAM,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,uBAAuB;IAc7E,WAAW,CAAC,IAAI,EAAE,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC,EAAE,GAAG,uBAAuB;IAcvE,OAAO,IAAI,IAAI;IAKtB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,cAAc;CAUvB"}
@@ -1,4 +1,5 @@
1
1
  import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
2
+ import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
2
3
  export class MeasurementCompat {
3
4
  view;
4
5
  container;
@@ -10,6 +11,7 @@ export class MeasurementCompat {
10
11
  areaUnit;
11
12
  lastMeasurement;
12
13
  watchListeners;
14
+ widgetHost;
13
15
  constructor(options = {}) {
14
16
  this.view = options.view;
15
17
  this.container = options.container;
@@ -21,6 +23,8 @@ export class MeasurementCompat {
21
23
  this.areaUnit = options.areaUnit ?? "square-meters";
22
24
  this.lastMeasurement = undefined;
23
25
  this.watchListeners = new Map();
26
+ this.widgetHost = bindHonuaWidgetHost("honua-measurement", this.container, this.eventBus);
27
+ this.pushWidgetHost();
24
28
  }
25
29
  async load() {
26
30
  if (this.loaded) {
@@ -60,6 +64,7 @@ export class MeasurementCompat {
60
64
  this.activeTool = tool;
61
65
  this.notifyWatchers("activeTool", this.activeTool);
62
66
  this.eventBus.emit("measurement.started", { tool }, this);
67
+ this.pushWidgetHost();
63
68
  }
64
69
  stop() {
65
70
  if (!this.activeTool) {
@@ -69,6 +74,7 @@ export class MeasurementCompat {
69
74
  this.activeTool = undefined;
70
75
  this.notifyWatchers("activeTool", this.activeTool);
71
76
  this.eventBus.emit("measurement.stopped", { tool }, this);
77
+ this.pushWidgetHost();
72
78
  }
73
79
  clear() {
74
80
  this.lastMeasurement = undefined;
@@ -103,6 +109,14 @@ export class MeasurementCompat {
103
109
  }
104
110
  destroy() {
105
111
  this.watchListeners.clear();
112
+ this.widgetHost?.destroy();
113
+ }
114
+ pushWidgetHost() {
115
+ const tool = this.activeTool === "direct-line" ? "distance" : this.activeTool;
116
+ pushWidgetHostState(this.widgetHost, {
117
+ view: this.view,
118
+ activeTool: tool,
119
+ });
106
120
  }
107
121
  notifyWatchers(propertyName, value) {
108
122
  const listeners = this.watchListeners.get(propertyName);
@@ -3,6 +3,8 @@ export interface PointCompatOptions {
3
3
  y?: number;
4
4
  z?: number;
5
5
  m?: number;
6
+ longitude?: number;
7
+ latitude?: number;
6
8
  spatialReference?: unknown;
7
9
  }
8
10
  export type PointLoadStatusCompat = "not-loaded" | "loading" | "loaded";
@@ -18,6 +20,10 @@ export declare class PointCompat {
18
20
  m: number | undefined;
19
21
  spatialReference: unknown;
20
22
  private readonly watchListeners;
23
+ /** Geographic longitude. Present when the spatial reference is geographic. */
24
+ get longitude(): number | undefined;
25
+ /** Geographic latitude. Present when the spatial reference is geographic. */
26
+ get latitude(): number | undefined;
21
27
  constructor(options?: PointCompatOptions);
22
28
  load(): Promise<PointCompat>;
23
29
  when(callback?: (point: PointCompat) => void): Promise<PointCompat>;
@@ -26,6 +32,7 @@ export declare class PointCompat {
26
32
  clone(): PointCompat;
27
33
  toJSON(): PointCompatOptions;
28
34
  destroy(): void;
35
+ private isGeographic;
29
36
  private notifyWatchers;
30
37
  }
31
38
  //# sourceMappingURL=point.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/point.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,kBAAkB;IACjC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,WAAW;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,CAAC;IAClC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,kBAAuB;IAWtC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAc5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAQzE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,iBAAiB;IAelF,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAuBzC,KAAK,IAAI,WAAW;IAIpB,MAAM,IAAI,kBAAkB;IAU5B,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"point.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/point.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,kBAAkB;IACjC,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,CAAC,CAAC,EAAE,MAAM,CAAC;IACX,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,gBAAgB,CAAC,EAAE,OAAO,CAAC;CAC5B;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,WAAW;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,CAAC;IAClC,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC;IACtB,gBAAgB,EAAE,OAAO,CAAC;IACjC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAE5E,8EAA8E;IAC9E,IAAW,SAAS,IAAI,MAAM,GAAG,SAAS,CAEzC;IAED,6EAA6E;IAC7E,IAAW,QAAQ,IAAI,MAAM,GAAG,SAAS,CAExC;gBAEkB,OAAO,GAAE,kBAAuB;IActC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAc5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAQzE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,iBAAiB;IAelF,MAAM,CAAC,OAAO,EAAE,kBAAkB,GAAG,IAAI;IAoCzC,KAAK,IAAI,WAAW;IAIpB,MAAM,IAAI,kBAAkB;IAU5B,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,YAAY;IAMpB,OAAO,CAAC,cAAc;CAUvB"}
@@ -8,14 +8,25 @@ export class PointCompat {
8
8
  m;
9
9
  spatialReference;
10
10
  watchListeners;
11
+ /** Geographic longitude. Present when the spatial reference is geographic. */
12
+ get longitude() {
13
+ return this.isGeographic() ? this.x : undefined;
14
+ }
15
+ /** Geographic latitude. Present when the spatial reference is geographic. */
16
+ get latitude() {
17
+ return this.isGeographic() ? this.y : undefined;
18
+ }
11
19
  constructor(options = {}) {
12
20
  this.loaded = false;
13
21
  this.loadStatus = "not-loaded";
14
- this.x = normalizeFiniteNumber(options.x);
15
- this.y = normalizeFiniteNumber(options.y);
22
+ const longitude = normalizeFiniteNumber(options.longitude);
23
+ const latitude = normalizeFiniteNumber(options.latitude);
24
+ this.x = normalizeFiniteNumber(options.x) ?? longitude;
25
+ this.y = normalizeFiniteNumber(options.y) ?? latitude;
16
26
  this.z = normalizeFiniteNumber(options.z);
17
27
  this.m = normalizeFiniteNumber(options.m);
18
- this.spatialReference = options.spatialReference;
28
+ this.spatialReference =
29
+ options.spatialReference ?? (longitude !== undefined || latitude !== undefined ? { wkid: 4326 } : undefined);
19
30
  this.watchListeners = new Map();
20
31
  }
21
32
  async load() {
@@ -67,10 +78,24 @@ export class PointCompat {
67
78
  this.m = normalizeFiniteNumber(options.m);
68
79
  this.notifyWatchers("m", this.m);
69
80
  }
81
+ if (options.longitude !== undefined && options.x === undefined) {
82
+ this.x = normalizeFiniteNumber(options.longitude);
83
+ this.notifyWatchers("x", this.x);
84
+ this.notifyWatchers("longitude", this.longitude);
85
+ }
86
+ if (options.latitude !== undefined && options.y === undefined) {
87
+ this.y = normalizeFiniteNumber(options.latitude);
88
+ this.notifyWatchers("y", this.y);
89
+ this.notifyWatchers("latitude", this.latitude);
90
+ }
70
91
  if (options.spatialReference !== undefined) {
71
92
  this.spatialReference = options.spatialReference;
72
93
  this.notifyWatchers("spatialReference", this.spatialReference);
73
94
  }
95
+ else if ((options.longitude !== undefined || options.latitude !== undefined) && !this.isGeographic()) {
96
+ this.spatialReference = { wkid: 4326 };
97
+ this.notifyWatchers("spatialReference", this.spatialReference);
98
+ }
74
99
  }
75
100
  clone() {
76
101
  return new PointCompat(this.toJSON());
@@ -87,6 +112,11 @@ export class PointCompat {
87
112
  destroy() {
88
113
  this.watchListeners.clear();
89
114
  }
115
+ isGeographic() {
116
+ const reference = this.spatialReference;
117
+ const wkid = reference?.latestWkid ?? reference?.wkid;
118
+ return wkid === 4326 || wkid === 4269;
119
+ }
90
120
  notifyWatchers(propertyName, value) {
91
121
  const listeners = this.watchListeners.get(propertyName);
92
122
  if (!listeners) {
@@ -35,6 +35,7 @@ export declare class PopupCompat {
35
35
  selectedFeatureIndex: number;
36
36
  private readonly subscriptions;
37
37
  private readonly watchListeners;
38
+ private readonly widgetHost;
38
39
  constructor(options?: PopupCompatOptions);
39
40
  load(): Promise<PopupCompat>;
40
41
  when(callback?: (widget: PopupCompat) => void): Promise<PopupCompat>;
@@ -49,6 +50,7 @@ export declare class PopupCompat {
49
50
  private applyOpenOptions;
50
51
  private syncFromViewPopup;
51
52
  private applySelection;
53
+ private pushWidgetHost;
52
54
  private notifyWatchers;
53
55
  }
54
56
  //# sourceMappingURL=popup.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/popup.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,qBAAa,WAAW;IACtB,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAEpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,kBAAuB;IA6BtC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAiB5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ1E,IAAI,CAAC,OAAO,GAAE,sBAA2B,GAAG,IAAI;IAwBhD,KAAK,IAAI,IAAI;IA+Bb,KAAK,IAAI,IAAI;IAIb,aAAa,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO;IAoBxD,IAAI,IAAI,OAAO;IAgBf,QAAQ,IAAI,OAAO;IAgBnB,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,iBAAiB;IAelF,OAAO,IAAI,IAAI;IAOtB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,iBAAiB;IAmDzB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/popup.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,sBAAsB;IACrC,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,QAAQ,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,qBAAa,WAAW;IACtB,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,OAAO,CAAC;IAClB,QAAQ,EAAE,OAAO,EAAE,CAAC;IACpB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,OAAO,EAAE,OAAO,CAAC;IACjB,eAAe,EAAE,OAAO,CAAC;IACzB,WAAW,EAAE,OAAO,CAAC;IACrB,WAAW,EAAE,OAAO,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;IACzB,oBAAoB,EAAE,MAAM,CAAC;IAEpC,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,kBAAuB;IA+BtC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAiB5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ1E,IAAI,CAAC,OAAO,GAAE,sBAA2B,GAAG,IAAI;IAyBhD,KAAK,IAAI,IAAI;IA+Bb,KAAK,IAAI,IAAI;IAIb,aAAa,CAAC,cAAc,EAAE,OAAO,GAAG,MAAM,GAAG,OAAO;IAoBxD,IAAI,IAAI,OAAO;IAgBf,QAAQ,IAAI,OAAO;IAgBnB,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,iBAAiB;IAelF,OAAO,IAAI,IAAI;IAOtB,OAAO,CAAC,gBAAgB;IAOxB,OAAO,CAAC,iBAAiB;IAmDzB,OAAO,CAAC,cAAc;IAoBtB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,cAAc;CAUvB"}
@@ -1,4 +1,5 @@
1
1
  import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener, } from "./event-bus.js";
2
+ import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
2
3
  export class PopupCompat {
3
4
  view;
4
5
  container;
@@ -17,6 +18,7 @@ export class PopupCompat {
17
18
  selectedFeatureIndex;
18
19
  subscriptions;
19
20
  watchListeners;
21
+ widgetHost;
20
22
  constructor(options = {}) {
21
23
  this.view = options.view;
22
24
  this.container = options.container;
@@ -34,6 +36,7 @@ export class PopupCompat {
34
36
  this.selectedFeature = undefined;
35
37
  this.selectedFeatureIndex = -1;
36
38
  this.watchListeners = new Map();
39
+ this.widgetHost = bindHonuaWidgetHost("honua-feature-inspection", this.container, this.eventBus);
37
40
  this.subscriptions = [
38
41
  this.eventBus.on("popup.open", () => {
39
42
  this.syncFromViewPopup();
@@ -43,6 +46,7 @@ export class PopupCompat {
43
46
  }),
44
47
  ];
45
48
  this.syncFromViewPopup();
49
+ this.pushWidgetHost();
46
50
  }
47
51
  async load() {
48
52
  if (this.loaded) {
@@ -87,6 +91,7 @@ export class PopupCompat {
87
91
  this.notifyWatchers("selectedFeature", this.selectedFeature);
88
92
  this.notifyWatchers("selectedFeatureIndex", this.selectedFeatureIndex);
89
93
  this.eventBus.emit("popup.open", options, this);
94
+ this.pushWidgetHost();
90
95
  }
91
96
  close() {
92
97
  const viewPopup = resolveViewPopup(this.view);
@@ -249,6 +254,13 @@ export class PopupCompat {
249
254
  selectedFeatureIndex: this.selectedFeatureIndex,
250
255
  }, this);
251
256
  }
257
+ pushWidgetHost() {
258
+ pushWidgetHostState(this.widgetHost, {
259
+ view: this.view,
260
+ selectedFeature: this.selectedFeature,
261
+ template: this.content ?? (this.title !== undefined ? { title: this.title } : undefined),
262
+ });
263
+ }
252
264
  notifyWatchers(propertyName, value) {
253
265
  const listeners = this.watchListeners.get(propertyName);
254
266
  if (!listeners) {
@@ -142,7 +142,7 @@ export declare class PortalError extends Error {
142
142
  *
143
143
  * @example
144
144
  * ```ts
145
- * import { PortalCompat } from "@honua/sdk-js/esri-compat";
145
+ * import { PortalCompat } from "@honua/sdk-js/client-compat";
146
146
  *
147
147
  * const portal = new PortalCompat({ portalUrl: "https://honua.example" });
148
148
  * await portal.generateToken({ username: "u", password: "p" });
@@ -23,7 +23,7 @@ export class PortalError extends Error {
23
23
  *
24
24
  * @example
25
25
  * ```ts
26
- * import { PortalCompat } from "@honua/sdk-js/esri-compat";
26
+ * import { PortalCompat } from "@honua/sdk-js/client-compat";
27
27
  *
28
28
  * const portal = new PortalCompat({ portalUrl: "https://honua.example" });
29
29
  * await portal.generateToken({ username: "u", password: "p" });
@@ -35,13 +35,16 @@ export declare class PrintCompat {
35
35
  templateOptions: PrintTemplateOptionsCompat;
36
36
  lastResult: PrintResultCompat | undefined;
37
37
  private readonly watchListeners;
38
+ private readonly widgetHost;
38
39
  constructor(options?: PrintCompatOptions);
40
+ setFormat(format: PrintTemplateOptionsCompat["format"]): void;
39
41
  load(): Promise<PrintCompat>;
40
42
  when(callback?: (widget: PrintCompat) => void): Promise<PrintCompat>;
41
43
  watch(propertyName: string, listener: (value: unknown) => void): PrintHandleCompat;
42
44
  setTemplateOptions(nextOptions: PrintTemplateOptionsCompat): void;
43
45
  execute(options?: PrintExecuteOptionsCompat): Promise<PrintResultCompat>;
44
46
  destroy(): void;
47
+ private pushWidgetHost;
45
48
  private notifyWatchers;
46
49
  }
47
50
  //# sourceMappingURL=print.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/print.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAEjG,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC9C;AAED,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;CAAG;AAEhF,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,0BAA0B,CAAC;IAC5C,UAAU,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,kBAAuB;IAYtC,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAgB5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ1E,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,iBAAiB;IAelF,kBAAkB,CAAC,WAAW,EAAE,0BAA0B,GAAG,IAAI;IAS3D,OAAO,CAAC,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8BlF,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"print.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/print.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAGjG,MAAM,WAAW,0BAA0B;IACzC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;IACjC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAED,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,eAAe,CAAC,EAAE,0BAA0B,CAAC;CAC9C;AAED,MAAM,WAAW,yBAA0B,SAAQ,0BAA0B;CAAG;AAEhF,MAAM,WAAW,iBAAiB;IAChC,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;IACf,GAAG,EAAE,MAAM,CAAC;CACb;AAED,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,WAAW;IACtB,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,CAAC;IAClC,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,0BAA0B,CAAC;IAC5C,UAAU,EAAE,iBAAiB,GAAG,SAAS,CAAC;IACjD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,kBAAuB;IAc5C,SAAS,CAAC,MAAM,EAAE,0BAA0B,CAAC,QAAQ,CAAC,GAAG,IAAI;IAMvD,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAgB5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAQ1E,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,iBAAiB;IAelF,kBAAkB,CAAC,WAAW,EAAE,0BAA0B,GAAG,IAAI;IAS3D,OAAO,CAAC,OAAO,GAAE,yBAA8B,GAAG,OAAO,CAAC,iBAAiB,CAAC;IA8BlF,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;IAOtB,OAAO,CAAC,cAAc;CAUvB"}
@@ -1,4 +1,5 @@
1
1
  import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
2
+ import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
2
3
  export class PrintCompat {
3
4
  view;
4
5
  container;
@@ -9,6 +10,7 @@ export class PrintCompat {
9
10
  templateOptions;
10
11
  lastResult;
11
12
  watchListeners;
13
+ widgetHost;
12
14
  constructor(options = {}) {
13
15
  this.view = options.view;
14
16
  this.container = options.container;
@@ -19,6 +21,13 @@ export class PrintCompat {
19
21
  this.templateOptions = { ...(options.templateOptions ?? {}) };
20
22
  this.lastResult = undefined;
21
23
  this.watchListeners = new Map();
24
+ this.widgetHost = bindHonuaWidgetHost("honua-print-export", this.container, this.eventBus);
25
+ this.pushWidgetHost();
26
+ }
27
+ setFormat(format) {
28
+ this.templateOptions = { ...this.templateOptions, format };
29
+ this.notifyWatchers("templateOptions", this.templateOptions);
30
+ this.pushWidgetHost();
22
31
  }
23
32
  async load() {
24
33
  if (this.loaded) {
@@ -93,6 +102,12 @@ export class PrintCompat {
93
102
  destroy() {
94
103
  this.watchListeners.clear();
95
104
  }
105
+ pushWidgetHost() {
106
+ pushWidgetHostState(this.widgetHost, {
107
+ view: this.view,
108
+ format: this.templateOptions.format,
109
+ });
110
+ }
96
111
  notifyWatchers(propertyName, value) {
97
112
  const listeners = this.watchListeners.get(propertyName);
98
113
  if (!listeners) {
@@ -71,6 +71,7 @@ export declare class SearchCompat {
71
71
  loaded: boolean;
72
72
  loadStatus: SearchLoadStatusCompat;
73
73
  sources: SearchSourceCompat[];
74
+ activeSource: SearchSourceCompat | undefined;
74
75
  searchTerm: string;
75
76
  results: SearchResultCompat[];
76
77
  suggestions: SearchSuggestionCompat[];
@@ -88,8 +89,10 @@ export declare class SearchCompat {
88
89
  private readonly subscriptions;
89
90
  private readonly watchListeners;
90
91
  private customSources;
92
+ private widgetHost;
91
93
  constructor(options?: SearchCompatOptions);
92
94
  attachContainer(element: HTMLElement): void;
95
+ setActiveSource(source: SearchSourceCompat | undefined): void;
93
96
  load(): Promise<SearchCompat>;
94
97
  when(callback?: (widget: SearchCompat) => void): Promise<SearchCompat>;
95
98
  watch(propertyName: string, listener: (value: unknown) => void): SearchHandleCompat;
@@ -108,6 +111,7 @@ export declare class SearchCompat {
108
111
  private navigateToSelectedResult;
109
112
  private rebuildSources;
110
113
  private refreshSourceSubscriptions;
114
+ private pushWidgetHost;
111
115
  private notifyWatchers;
112
116
  }
113
117
  //# sourceMappingURL=search.d.ts.map
@@ -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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"}
@@ -1,4 +1,5 @@
1
1
  import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener, } from "./event-bus.js";
2
+ import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
2
3
  const DEFAULT_SEARCH_SOURCE_MAX_FEATURE_CANDIDATES = 200;
3
4
  const DEFAULT_SEARCH_SOURCE_MAX_RESULTS = 10;
4
5
  const DEFAULT_SEARCH_SOURCE_MAX_SUGGESTIONS = 5;
@@ -12,6 +13,7 @@ export class SearchCompat {
12
13
  loaded;
13
14
  loadStatus;
14
15
  sources;
16
+ activeSource;
15
17
  searchTerm;
16
18
  results;
17
19
  suggestions;
@@ -29,6 +31,7 @@ export class SearchCompat {
29
31
  subscriptions;
30
32
  watchListeners;
31
33
  customSources;
34
+ widgetHost;
32
35
  constructor(options = {}) {
33
36
  this.view = options.view;
34
37
  this.container = options.container ?? null;
@@ -40,6 +43,8 @@ export class SearchCompat {
40
43
  this.loadStatus = "not-loaded";
41
44
  this.customSources = [...(options.sources ?? [])];
42
45
  this.sources = [];
46
+ this.activeSource = undefined;
47
+ this.widgetHost = bindHonuaWidgetHost("honua-search", this.container, this.eventBus);
43
48
  this.searchTerm = "";
44
49
  this.results = [];
45
50
  this.suggestions = [];
@@ -58,11 +63,16 @@ export class SearchCompat {
58
63
  this.watchListeners = new Map();
59
64
  this.refreshSourceSubscriptions();
60
65
  this.rebuildSources(false);
61
- mountSearchBox(this);
62
66
  }
63
67
  attachContainer(element) {
64
68
  this.container = element;
65
- mountSearchBox(this);
69
+ this.widgetHost ??= bindHonuaWidgetHost("honua-search", element, this.eventBus);
70
+ this.pushWidgetHost();
71
+ }
72
+ setActiveSource(source) {
73
+ this.activeSource = source;
74
+ this.notifyWatchers("activeSource", this.activeSource);
75
+ this.pushWidgetHost();
66
76
  }
67
77
  async load() {
68
78
  if (this.loaded) {
@@ -264,6 +274,8 @@ export class SearchCompat {
264
274
  subscription.remove();
265
275
  }
266
276
  this.watchListeners.clear();
277
+ this.widgetHost?.destroy();
278
+ this.widgetHost = undefined;
267
279
  }
268
280
  async navigateToSelectedResult() {
269
281
  if (!this.selectedResult) {
@@ -290,7 +302,11 @@ export class SearchCompat {
290
302
  })
291
303
  : []),
292
304
  ];
305
+ if (!this.sources.includes(this.activeSource)) {
306
+ this.activeSource = this.sources[0];
307
+ }
293
308
  this.notifyWatchers("sources", this.sources);
309
+ this.pushWidgetHost();
294
310
  if (emitChange) {
295
311
  this.eventBus.emit("search.sources-changed", { sourceCount: this.sources.length }, this);
296
312
  }
@@ -319,6 +335,13 @@ export class SearchCompat {
319
335
  }));
320
336
  }
321
337
  }
338
+ pushWidgetHost() {
339
+ pushWidgetHostState(this.widgetHost, {
340
+ view: this.view,
341
+ sources: this.sources,
342
+ activeSource: this.activeSource,
343
+ });
344
+ }
322
345
  notifyWatchers(propertyName, value) {
323
346
  const listeners = this.watchListeners.get(propertyName);
324
347
  if (!listeners) {
@@ -463,32 +486,6 @@ const COMMON_SEARCH_FIELD_NAMES = [
463
486
  ];
464
487
  const MAX_SERVER_SEARCH_FIELDS = 6;
465
488
  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
- }
492
489
  function createFallbackLayerSearchQueryOptions(maxFeatureCandidates, normalizedTerm, outFields) {
493
490
  return {
494
491
  where: "1=1",
@@ -84,6 +84,7 @@ export declare class SketchCompat {
84
84
  snappingOptions: SnappingOptionsCompat;
85
85
  private readonly watchListeners;
86
86
  private readonly sketchBinding;
87
+ private readonly widgetHost;
87
88
  constructor(options?: SketchCompatOptions);
88
89
  /** Whether tool modes delegate to a terra-draw sketch binding. @experimental */
89
90
  delegatesToSketchBinding(): boolean;
@@ -102,6 +103,7 @@ export declare class SketchCompat {
102
103
  reset(): void;
103
104
  private clearActiveState;
104
105
  destroy(): void;
106
+ private pushWidgetHost;
105
107
  private notifyWatchers;
106
108
  }
107
109
  //# sourceMappingURL=sketch.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"sketch.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/sketch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,KAAK,qBAAqB,EAAmC,MAAM,eAAe,CAAC;AAE5F,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;AAC1E,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEzF;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IACvC,MAAM,CAAC,IAAI,IAAI,CAAC;IAChB,MAAM,CAAC,IAAI,IAAI,CAAC;CACjB;AAUD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAKlG;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;CACxC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC1D,oBAAoB,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC1D,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,YAAY;IACvB,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,KAAK,EAAE,OAAO,CAAC;IAC/B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,oBAAoB,EAAE,OAAO,CAAC;IAC9C,SAAgB,YAAY,EAAE,wBAAwB,CAAC;IACvD,SAAgB,oBAAoB,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACzE,SAAgB,oBAAoB,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAClE,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACzC,mBAAmB,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,SAAS,CAAC;IACpE,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChD,mBAAmB,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,SAAS,CAAC;IACpE,eAAe,EAAE,qBAAqB,CAAC;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;gBAEjD,OAAO,GAAE,mBAAwB;IAqBpD,gFAAgF;IACzE,wBAAwB,IAAI,OAAO;IAI1C,sEAAsE;IAC/D,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAM/D,sEAAsE;IAC/D,cAAc,IAAI,cAAc;IAI1B,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAgB7B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ5E,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,kBAAkB;IAenF,MAAM,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,IAAI;IAsBlF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,wBAAwB,GAAG,SAAS;IA0BjF,MAAM,IAAI,wBAAwB,GAAG,SAAS;IAe9C,MAAM,CACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACtE,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAC3C,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAqB9B,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,MAAM;IA6BvD,KAAK,IAAI,IAAI;IAUpB,OAAO,CAAC,gBAAgB;IASjB,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"sketch.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/sketch.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACjE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AACnE,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AACjG,OAAO,EAAE,KAAK,qBAAqB,EAAmC,MAAM,eAAe,CAAC;AAG5F,MAAM,MAAM,wBAAwB,GAAG,QAAQ,GAAG,QAAQ,GAAG,YAAY,CAAC;AAC1E,MAAM,MAAM,gBAAgB,GAAG,OAAO,GAAG,UAAU,GAAG,SAAS,GAAG,WAAW,GAAG,QAAQ,CAAC;AAEzF;;;;;;;;GAQG;AACH,MAAM,WAAW,uBAAuB;IACtC,OAAO,CAAC,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IACvC,MAAM,CAAC,IAAI,IAAI,CAAC;IAChB,MAAM,CAAC,IAAI,IAAI,CAAC;CACjB;AAUD;;;;;;;GAOG;AACH,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,uBAAuB,GAAG,SAAS,CAKlG;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,OAAO,GAAG,UAAU,GAAG,QAAQ,CAAC;CACxC;AAED,MAAM,WAAW,yBAAyB;IACxC,IAAI,CAAC,EAAE,MAAM,GAAG,WAAW,GAAG,SAAS,CAAC;IACxC,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,wBAAwB,CAAC,EAAE,OAAO,CAAC;IACnC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,oBAAoB,CAAC,EAAE,OAAO,CAAC;IAC/B,YAAY,CAAC,EAAE,wBAAwB,CAAC;IACxC,oBAAoB,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC1D,oBAAoB,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAC1D,eAAe,CAAC,EAAE,qBAAqB,CAAC;IACxC;;;;;;OAMG;IACH,aAAa,CAAC,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,EAAE,UAAU,GAAG,QAAQ,CAAC;IAC7B,IAAI,EAAE,gBAAgB,CAAC;IACvB,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,CAAC;CAC1C;AAED,MAAM,MAAM,sBAAsB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEzE,MAAM,WAAW,kBAAkB;IACjC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,YAAY;IACvB,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,KAAK,EAAE,OAAO,CAAC;IAC/B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,oBAAoB,EAAE,OAAO,CAAC;IAC9C,SAAgB,YAAY,EAAE,wBAAwB,CAAC;IACvD,SAAgB,oBAAoB,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IACzE,SAAgB,oBAAoB,EAAE,OAAO,CAAC,yBAAyB,CAAC,CAAC;IAClE,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,EAAE,OAAO,GAAG,QAAQ,CAAC;IAC1B,UAAU,EAAE,gBAAgB,GAAG,SAAS,CAAC;IACzC,mBAAmB,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,SAAS,CAAC;IACpE,oBAAoB,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,CAAC;IAChD,mBAAmB,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,SAAS,CAAC;IACpE,eAAe,EAAE,qBAAqB,CAAC;IAC9C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,aAAa,CAAsC;IACpE,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,mBAAwB;IAuBpD,gFAAgF;IACzE,wBAAwB,IAAI,OAAO;IAI1C,sEAAsE;IAC/D,kBAAkB,CAAC,OAAO,EAAE,qBAAqB,GAAG,IAAI;IAO/D,sEAAsE;IAC/D,cAAc,IAAI,cAAc;IAI1B,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAgB7B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,YAAY,KAAK,IAAI,GAAG,OAAO,CAAC,YAAY,CAAC;IAQ5E,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,kBAAkB;IAenF,MAAM,CAAC,IAAI,EAAE,gBAAgB,EAAE,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAAG,IAAI;IAsBlF,QAAQ,CAAC,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,wBAAwB,GAAG,SAAS;IA0BjF,MAAM,IAAI,wBAAwB,GAAG,SAAS;IAe9C,MAAM,CACX,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,EACtE,OAAO,CAAC,EAAE,OAAO,CAAC,yBAAyB,CAAC,GAC3C,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE;IAqB9B,MAAM,CAAC,QAAQ,CAAC,EAAE,OAAO,GAAG,SAAS,OAAO,EAAE,GAAG,MAAM;IA6BvD,KAAK,IAAI,IAAI;IAUpB,OAAO,CAAC,gBAAgB;IASjB,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;IAQtB,OAAO,CAAC,cAAc;CAUvB"}
@@ -1,5 +1,6 @@
1
1
  import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
2
2
  import { snappingOptionsToSnappingConfig } from "./snapping.js";
3
+ import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
3
4
  const SKETCH_COMPAT_TOOL_TO_EDIT_TOOL = Object.freeze({
4
5
  point: "point",
5
6
  polyline: "line",
@@ -40,6 +41,7 @@ export class SketchCompat {
40
41
  snappingOptions;
41
42
  watchListeners;
42
43
  sketchBinding;
44
+ widgetHost;
43
45
  constructor(options = {}) {
44
46
  this.view = options.view;
45
47
  this.layer = options.layer;
@@ -59,6 +61,8 @@ export class SketchCompat {
59
61
  this.snappingOptions = { ...(options.snappingOptions ?? {}) };
60
62
  this.watchListeners = new Map();
61
63
  this.sketchBinding = resolveSketchToolBindingCompat(options.sketchBinding);
64
+ this.widgetHost = bindHonuaWidgetHost("honua-sketch-control", this.container, this.eventBus);
65
+ this.pushWidgetHost();
62
66
  }
63
67
  /** Whether tool modes delegate to a terra-draw sketch binding. @experimental */
64
68
  delegatesToSketchBinding() {
@@ -69,6 +73,7 @@ export class SketchCompat {
69
73
  this.snappingOptions = { ...options };
70
74
  this.notifyWatchers("snappingOptions", this.snappingOptions);
71
75
  this.eventBus.emit("sketch.snapping-options-changed", { options: this.snappingOptions }, this);
76
+ this.pushWidgetHost();
72
77
  }
73
78
  /** The snapping options mapped onto the contract `SnappingConfig`. */
74
79
  snappingConfig() {
@@ -215,6 +220,13 @@ export class SketchCompat {
215
220
  destroy() {
216
221
  this.watchListeners.clear();
217
222
  }
223
+ pushWidgetHost() {
224
+ pushWidgetHostState(this.widgetHost, {
225
+ view: this.view,
226
+ layer: this.layer,
227
+ snappingOptions: this.snappingOptions,
228
+ });
229
+ }
218
230
  notifyWatchers(propertyName, value) {
219
231
  const listeners = this.watchListeners.get(propertyName);
220
232
  if (!listeners) {