@honua/app-platform 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 (236) 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/contract/pmtiles.d.ts +6 -5
  53. package/contract/pmtiles.d.ts.map +1 -1
  54. package/contract/pmtiles.js +30 -5
  55. package/control-plane/generated/admin-operations.d.ts +3 -3
  56. package/control-plane/generated/admin-operations.d.ts.map +1 -1
  57. package/control-plane/generated/admin-operations.js +3 -3
  58. package/controls/catalog.d.ts.map +1 -1
  59. package/controls/catalog.js +110 -0
  60. package/controls/index.d.ts +1 -1
  61. package/controls/index.js +1 -1
  62. package/controls/types.d.ts +1 -1
  63. package/controls/types.js +1 -1
  64. package/core/client.d.ts.map +1 -1
  65. package/core/client.js +87 -19
  66. package/core/deprecation-notice.d.ts +28 -0
  67. package/core/deprecation-notice.d.ts.map +1 -0
  68. package/core/deprecation-notice.js +22 -0
  69. package/core/esri-geojson.d.ts.map +1 -1
  70. package/core/esri-geojson.js +10 -6
  71. package/core/optional-grpc-peer.d.ts +15 -0
  72. package/core/optional-grpc-peer.d.ts.map +1 -0
  73. package/core/optional-grpc-peer.js +60 -0
  74. package/esri-compat/basemap-gallery.d.ts +2 -0
  75. package/esri-compat/basemap-gallery.d.ts.map +1 -1
  76. package/esri-compat/basemap-gallery.js +12 -0
  77. package/esri-compat/basemap.d.ts +4 -0
  78. package/esri-compat/basemap.d.ts.map +1 -1
  79. package/esri-compat/basemap.js +70 -0
  80. package/esri-compat/bookmarks.d.ts +2 -0
  81. package/esri-compat/bookmarks.d.ts.map +1 -1
  82. package/esri-compat/bookmarks.js +12 -0
  83. package/esri-compat/controls.d.ts +18 -0
  84. package/esri-compat/controls.d.ts.map +1 -1
  85. package/esri-compat/controls.js +120 -57
  86. package/esri-compat/directions.d.ts +4 -0
  87. package/esri-compat/directions.d.ts.map +1 -1
  88. package/esri-compat/directions.js +30 -20
  89. package/esri-compat/editor.d.ts +4 -0
  90. package/esri-compat/editor.d.ts.map +1 -1
  91. package/esri-compat/editor.js +16 -0
  92. package/esri-compat/esri-config.d.ts +2 -1
  93. package/esri-compat/esri-config.d.ts.map +1 -1
  94. package/esri-compat/feature-effect.d.ts +23 -0
  95. package/esri-compat/feature-effect.d.ts.map +1 -0
  96. package/esri-compat/feature-effect.js +12 -0
  97. package/esri-compat/feature-form.d.ts +6 -0
  98. package/esri-compat/feature-form.d.ts.map +1 -1
  99. package/esri-compat/feature-form.js +63 -0
  100. package/esri-compat/feature-layer.d.ts +21 -2
  101. package/esri-compat/feature-layer.d.ts.map +1 -1
  102. package/esri-compat/feature-layer.js +172 -1
  103. package/esri-compat/feature-table.d.ts +5 -0
  104. package/esri-compat/feature-table.d.ts.map +1 -1
  105. package/esri-compat/feature-table.js +23 -0
  106. package/esri-compat/identity-manager.d.ts +1 -1
  107. package/esri-compat/identity-manager.js +1 -1
  108. package/esri-compat/legend.d.ts +2 -0
  109. package/esri-compat/legend.d.ts.map +1 -1
  110. package/esri-compat/legend.js +98 -0
  111. package/esri-compat/locator.d.ts +1 -1
  112. package/esri-compat/locator.js +1 -1
  113. package/esri-compat/map-view-mount.d.ts +1 -0
  114. package/esri-compat/map-view-mount.d.ts.map +1 -1
  115. package/esri-compat/map-view-mount.js +46 -25
  116. package/esri-compat/map-view.d.ts +13 -0
  117. package/esri-compat/map-view.d.ts.map +1 -1
  118. package/esri-compat/map-view.js +94 -8
  119. package/esri-compat/map.d.ts +5 -1
  120. package/esri-compat/map.d.ts.map +1 -1
  121. package/esri-compat/map.js +10 -0
  122. package/esri-compat/measurement.d.ts +2 -0
  123. package/esri-compat/measurement.d.ts.map +1 -1
  124. package/esri-compat/measurement.js +14 -0
  125. package/esri-compat/point.d.ts +7 -0
  126. package/esri-compat/point.d.ts.map +1 -1
  127. package/esri-compat/point.js +33 -3
  128. package/esri-compat/popup.d.ts +2 -0
  129. package/esri-compat/popup.d.ts.map +1 -1
  130. package/esri-compat/popup.js +12 -0
  131. package/esri-compat/portal.d.ts +1 -1
  132. package/esri-compat/portal.js +1 -1
  133. package/esri-compat/print.d.ts +3 -0
  134. package/esri-compat/print.d.ts.map +1 -1
  135. package/esri-compat/print.js +15 -0
  136. package/esri-compat/search.d.ts +4 -0
  137. package/esri-compat/search.d.ts.map +1 -1
  138. package/esri-compat/search.js +25 -28
  139. package/esri-compat/sketch.d.ts +2 -0
  140. package/esri-compat/sketch.d.ts.map +1 -1
  141. package/esri-compat/sketch.js +12 -0
  142. package/esri-compat/widget-host.d.ts +46 -17
  143. package/esri-compat/widget-host.d.ts.map +1 -1
  144. package/esri-compat/widget-host.js +84 -20
  145. package/esri-compat/widget-shell-hosts.d.ts +61 -0
  146. package/esri-compat/widget-shell-hosts.d.ts.map +1 -0
  147. package/esri-compat/widget-shell-hosts.js +76 -0
  148. package/kernel/renderer.d.ts +82 -0
  149. package/kernel/renderer.js +1 -0
  150. package/offline/conflict-resolution.d.ts +183 -0
  151. package/offline/conflict-resolution.d.ts.map +1 -0
  152. package/offline/conflict-resolution.js +286 -0
  153. package/offline/credential-screen.d.ts +34 -0
  154. package/offline/credential-screen.d.ts.map +1 -0
  155. package/offline/credential-screen.js +78 -0
  156. package/offline/digest.d.ts +15 -0
  157. package/offline/digest.d.ts.map +1 -0
  158. package/offline/digest.js +58 -0
  159. package/offline/edit-queue.d.ts +403 -0
  160. package/offline/edit-queue.d.ts.map +1 -0
  161. package/offline/edit-queue.js +1807 -0
  162. package/offline/edit-replay.d.ts +116 -0
  163. package/offline/edit-replay.d.ts.map +1 -0
  164. package/offline/edit-replay.js +392 -0
  165. package/offline/fetch-handler.d.ts +12 -0
  166. package/offline/fetch-handler.d.ts.map +1 -0
  167. package/offline/fetch-handler.js +65 -0
  168. package/offline/index.d.ts +52 -0
  169. package/offline/index.d.ts.map +1 -0
  170. package/offline/index.js +34 -0
  171. package/offline/indexeddb.d.ts +135 -0
  172. package/offline/indexeddb.d.ts.map +1 -0
  173. package/offline/indexeddb.js +888 -0
  174. package/offline/memory-store.d.ts +17 -0
  175. package/offline/memory-store.d.ts.map +1 -0
  176. package/offline/memory-store.js +183 -0
  177. package/offline/quota.d.ts +161 -0
  178. package/offline/quota.d.ts.map +1 -0
  179. package/offline/quota.js +370 -0
  180. package/offline/read-gate.d.ts +175 -0
  181. package/offline/read-gate.d.ts.map +1 -0
  182. package/offline/read-gate.js +252 -0
  183. package/offline/read-resource.d.ts +99 -0
  184. package/offline/read-resource.d.ts.map +1 -0
  185. package/offline/read-resource.js +156 -0
  186. package/offline/read.d.ts +50 -0
  187. package/offline/read.d.ts.map +1 -0
  188. package/offline/read.js +65 -0
  189. package/offline/region.d.ts +29 -0
  190. package/offline/region.d.ts.map +1 -0
  191. package/offline/region.js +1007 -0
  192. package/offline/replay-conflict.d.ts +183 -0
  193. package/offline/replay-conflict.d.ts.map +1 -0
  194. package/offline/replay-conflict.js +482 -0
  195. package/offline/selection.d.ts +140 -0
  196. package/offline/selection.d.ts.map +1 -0
  197. package/offline/selection.js +391 -0
  198. package/offline/snapshot.d.ts +132 -0
  199. package/offline/snapshot.d.ts.map +1 -0
  200. package/offline/snapshot.js +312 -0
  201. package/offline/status.d.ts +136 -0
  202. package/offline/status.d.ts.map +1 -0
  203. package/offline/status.js +479 -0
  204. package/offline/store-conformance.d.ts +48 -0
  205. package/offline/store-conformance.d.ts.map +1 -0
  206. package/offline/store-conformance.js +233 -0
  207. package/offline/tile-protocol.d.ts +81 -0
  208. package/offline/tile-protocol.d.ts.map +1 -0
  209. package/offline/tile-protocol.js +119 -0
  210. package/offline/types.d.ts +349 -0
  211. package/offline/types.d.ts.map +1 -0
  212. package/offline/types.js +75 -0
  213. package/package.json +14 -2
  214. package/scene-workspace/index.d.ts +2 -2
  215. package/scene-workspace/index.d.ts.map +1 -1
  216. package/scene-workspace/index.js +1 -1
  217. package/scene-workspace/scene-discovery.d.ts +111 -91
  218. package/scene-workspace/scene-discovery.d.ts.map +1 -1
  219. package/scene-workspace/scene-discovery.js +340 -92
  220. package/scene-workspace/scene-view.d.ts +6 -6
  221. package/scene-workspace/scene-view.d.ts.map +1 -1
  222. package/scene-workspace/scene-view.js +32 -6
  223. package/web-components/elements.d.ts +34 -0
  224. package/web-components/elements.d.ts.map +1 -1
  225. package/web-components/elements.js +82 -8
  226. package/web-components/index.d.ts +2 -0
  227. package/web-components/index.d.ts.map +1 -1
  228. package/web-components/index.js +3 -1
  229. package/web-components/map-chrome.d.ts +103 -0
  230. package/web-components/map-chrome.d.ts.map +1 -0
  231. package/web-components/map-chrome.js +325 -0
  232. package/web-components/widget-shell.d.ts +68 -0
  233. package/web-components/widget-shell.d.ts.map +1 -0
  234. package/web-components/widget-shell.js +224 -0
  235. package/widget-capabilities.d.ts +67 -0
  236. package/widget-capabilities.js +152 -0
@@ -0,0 +1,22 @@
1
+ /**
2
+ * Emits `notice` at most once per process (once per page in a browser), however
3
+ * many copies of the calling module are evaluated. Node routes it through
4
+ * `process.emitWarning` as a `DeprecationWarning`, so `--no-deprecation` and
5
+ * `--trace-deprecation` apply; runtimes without `process` get `console.warn`.
6
+ *
7
+ * Returns true when this call emitted the notice.
8
+ */
9
+ export function emitDeprecationNoticeOnce(notice, runtime = globalThis) {
10
+ const key = Symbol.for(`@honua/sdk-js:deprecation:${notice.code}`);
11
+ const registry = runtime;
12
+ if (registry[key] === true)
13
+ return false;
14
+ registry[key] = true;
15
+ if (typeof runtime.process?.emitWarning === "function") {
16
+ runtime.process.emitWarning(notice.message, { code: notice.code, type: "DeprecationWarning" });
17
+ }
18
+ else {
19
+ runtime.console?.warn?.(`DeprecationWarning [${notice.code}]: ${notice.message}`);
20
+ }
21
+ return true;
22
+ }
@@ -1 +1 @@
1
- {"version":3,"file":"esri-geojson.d.ts","sourceRoot":"","sources":["../../../src/core/esri-geojson.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,YAAY,EAKZ,cAAc,EACd,YAAY,EACZ,qBAAqB,EACtB,MAAM,YAAY,CAAC;AA0MpB;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAClE,eAAe,GAAG,IAAI,CA0ExB;AAkBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAQ1E;AAyBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EAC5C,gBAAgB,CAAC,EAAE,qBAAqB,GACvC,YAAY,GAAG,IAAI,CAuCrB"}
1
+ {"version":3,"file":"esri-geojson.d.ts","sourceRoot":"","sources":["../../../src/core/esri-geojson.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EACV,eAAe,EAIhB,MAAM,uBAAuB,CAAC;AAC/B,OAAO,KAAK,EACV,YAAY,EAKZ,cAAc,EACd,YAAY,EACZ,qBAAqB,EACtB,MAAM,YAAY,CAAC;AA2MpB;;;;;;;;;;;;GAYG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,YAAY,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG,IAAI,GAAG,SAAS,GAClE,eAAe,GAAG,IAAI,CA0ExB;AAkBD;;;;;;;;;;;;GAYG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,YAAY,GAAG,cAAc,CAQ1E;AAyBD;;;;;;;;;;;;;;GAcG;AACH,wBAAgB,qBAAqB,CACnC,QAAQ,EAAE,eAAe,GAAG,IAAI,GAAG,SAAS,EAC5C,gBAAgB,CAAC,EAAE,qBAAqB,GACvC,YAAY,GAAG,IAAI,CAuCrB"}
@@ -62,18 +62,22 @@ function isExteriorRing(ring) {
62
62
  }
63
63
  function isPointOnSegment(point, segmentStart, segmentEnd) {
64
64
  const epsilon = 1e-9;
65
- const crossProduct = (point[0] - segmentStart[0]) * (segmentEnd[1] - segmentStart[1]) -
66
- (point[1] - segmentStart[1]) * (segmentEnd[0] - segmentStart[0]);
65
+ const segmentDeltaX = segmentEnd[0] - segmentStart[0];
66
+ const segmentDeltaY = segmentEnd[1] - segmentStart[1];
67
+ const segmentLengthSquared = segmentDeltaX * segmentDeltaX + segmentDeltaY * segmentDeltaY;
68
+ if (segmentLengthSquared <= epsilon * epsilon) {
69
+ const pointDeltaX = point[0] - segmentStart[0];
70
+ const pointDeltaY = point[1] - segmentStart[1];
71
+ return pointDeltaX * pointDeltaX + pointDeltaY * pointDeltaY <= epsilon * epsilon;
72
+ }
73
+ const crossProduct = (point[0] - segmentStart[0]) * segmentDeltaY - (point[1] - segmentStart[1]) * segmentDeltaX;
67
74
  if (Math.abs(crossProduct) > epsilon) {
68
75
  return false;
69
76
  }
70
- const dotProduct = (point[0] - segmentStart[0]) * (segmentEnd[0] - segmentStart[0]) +
71
- (point[1] - segmentStart[1]) * (segmentEnd[1] - segmentStart[1]);
77
+ const dotProduct = (point[0] - segmentStart[0]) * segmentDeltaX + (point[1] - segmentStart[1]) * segmentDeltaY;
72
78
  if (dotProduct < -epsilon) {
73
79
  return false;
74
80
  }
75
- const segmentLengthSquared = (segmentEnd[0] - segmentStart[0]) * (segmentEnd[0] - segmentStart[0]) +
76
- (segmentEnd[1] - segmentStart[1]) * (segmentEnd[1] - segmentStart[1]);
77
81
  return dotProduct - segmentLengthSquared <= epsilon;
78
82
  }
79
83
  function isPointInsideRing(point, ring) {
@@ -0,0 +1,15 @@
1
+ /**
2
+ * Optional gRPC-Web peers are not part of a REST install. Resolution failures
3
+ * for those packages become an actionable error only after `transport:
4
+ * "grpc-web"` has actually loaded them. Connect/RPC failures are returned
5
+ * unchanged so a real gRPC error is not relabeled as a missing install.
6
+ */
7
+ declare const OPTIONAL_GRPC_PACKAGES: readonly ["@connectrpc/connect-web", "@connectrpc/connect", "@bufbuild/protobuf"];
8
+ export type OptionalGrpcPackage = (typeof OPTIONAL_GRPC_PACKAGES)[number];
9
+ export declare class HonuaOptionalGrpcPeerError extends Error {
10
+ readonly peer: OptionalGrpcPackage;
11
+ constructor(peer: OptionalGrpcPackage, cause: unknown);
12
+ }
13
+ export declare function explainOptionalGrpcLoadFailure(error: unknown): unknown;
14
+ export {};
15
+ //# sourceMappingURL=optional-grpc-peer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"optional-grpc-peer.d.ts","sourceRoot":"","sources":["../../../src/core/optional-grpc-peer.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,QAAA,MAAM,sBAAsB,mFAAoF,CAAC;AAKjH,MAAM,MAAM,mBAAmB,GAAG,CAAC,OAAO,sBAAsB,CAAC,CAAC,MAAM,CAAC,CAAC;AAE1E,qBAAa,0BAA2B,SAAQ,KAAK;IACnD,SAAgB,IAAI,EAAE,mBAAmB,CAAC;gBAEvB,IAAI,EAAE,mBAAmB,EAAE,KAAK,EAAE,OAAO;CAU7D;AAkCD,wBAAgB,8BAA8B,CAAC,KAAK,EAAE,OAAO,GAAG,OAAO,CAItE"}
@@ -0,0 +1,60 @@
1
+ /**
2
+ * Optional gRPC-Web peers are not part of a REST install. Resolution failures
3
+ * for those packages become an actionable error only after `transport:
4
+ * "grpc-web"` has actually loaded them. Connect/RPC failures are returned
5
+ * unchanged so a real gRPC error is not relabeled as a missing install.
6
+ */
7
+ const OPTIONAL_GRPC_PACKAGES = ["@connectrpc/connect-web", "@connectrpc/connect", "@bufbuild/protobuf"];
8
+ const RESOLUTION_FAILURE = /ERR_MODULE_NOT_FOUND|ERR_PACKAGE_PATH_NOT_EXPORTED|Failed to resolve module specifier|Failed to fetch dynamically imported module|Cannot find package|Cannot find module/;
9
+ export class HonuaOptionalGrpcPeerError extends Error {
10
+ peer;
11
+ constructor(peer, cause) {
12
+ const message = [
13
+ `HonuaClient transport "grpc-web" could not load the optional peer "${peer}".`,
14
+ "Install @bufbuild/protobuf, @connectrpc/connect, and @connectrpc/connect-web.",
15
+ "REST, including createHonua, does not load them.",
16
+ ].join(" ");
17
+ super(message, cause instanceof Error ? { cause } : undefined);
18
+ this.name = "HonuaOptionalGrpcPeerError";
19
+ this.peer = peer;
20
+ }
21
+ }
22
+ function isRecord(value) {
23
+ return typeof value === "object" && value !== null;
24
+ }
25
+ function isGenuineGrpcFailure(error) {
26
+ if (!isRecord(error))
27
+ return false;
28
+ if (error instanceof Error && error.name === "HonuaGrpcError")
29
+ return true;
30
+ return typeof error.code === "number";
31
+ }
32
+ function peerNamedByResolutionFailure(error) {
33
+ if (!(error instanceof Error))
34
+ return undefined;
35
+ const code = "code" in error && (typeof error.code === "string" || typeof error.code === "number") ? String(error.code) : "";
36
+ const message = `${code}\n${error.message}`;
37
+ if (!RESOLUTION_FAILURE.test(message))
38
+ return undefined;
39
+ return OPTIONAL_GRPC_PACKAGES.find((name) => message.includes(name));
40
+ }
41
+ function missingOptionalGrpcPeer(error) {
42
+ const seen = new Set();
43
+ let current = error;
44
+ while (isRecord(current) && !seen.has(current)) {
45
+ seen.add(current);
46
+ if (isGenuineGrpcFailure(current))
47
+ return undefined;
48
+ const peer = peerNamedByResolutionFailure(current);
49
+ if (peer)
50
+ return peer;
51
+ current = current.cause;
52
+ }
53
+ return undefined;
54
+ }
55
+ export function explainOptionalGrpcLoadFailure(error) {
56
+ const peer = missingOptionalGrpcPeer(error);
57
+ if (!peer)
58
+ return error;
59
+ return new HonuaOptionalGrpcPeerError(peer, error);
60
+ }
@@ -23,6 +23,7 @@ export declare class BasemapGalleryCompat {
23
23
  activeBasemap: unknown;
24
24
  private readonly subscriptions;
25
25
  private readonly watchListeners;
26
+ private readonly widgetHost;
26
27
  constructor(options?: BasemapGalleryCompatOptions);
27
28
  load(): Promise<BasemapGalleryCompat>;
28
29
  when(callback?: (widget: BasemapGalleryCompat) => void): Promise<BasemapGalleryCompat>;
@@ -33,6 +34,7 @@ export declare class BasemapGalleryCompat {
33
34
  refresh(): unknown;
34
35
  destroy(): void;
35
36
  private resolveBasemap;
37
+ private pushWidgetHost;
36
38
  private notifyWatchers;
37
39
  }
38
40
  //# sourceMappingURL=basemap-gallery.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"basemap-gallery.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/basemap-gallery.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,8BAA8B,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjF,MAAM,WAAW,0BAA0B;IACzC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,oBAAoB;IAC/B,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,GAAG,EAAE,OAAO,CAAC;IAC7B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,WAAW,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,8BAA8B,CAAC;IAC3C,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,2BAAgC;IAwB/C,IAAI,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAiBrC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQ5F,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,0BAA0B;IAelG,IAAW,QAAQ,IAAI,SAAS,OAAO,EAAE,CAExC;IAEM,WAAW,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAM/C,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAcrC,OAAO,IAAI,OAAO;IAOlB,OAAO,IAAI,IAAI;IAOtB,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"basemap-gallery.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/basemap-gallery.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;AAGxB,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5B,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,MAAM,8BAA8B,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEjF,MAAM,WAAW,0BAA0B;IACzC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,oBAAoB;IAC/B,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,GAAG,EAAE,OAAO,CAAC;IAC7B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,WAAW,EAAE,OAAO,CAAC;IAC9B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,8BAA8B,CAAC;IAC3C,MAAM,EAAE,OAAO,EAAE,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IAE9B,OAAO,CAAC,QAAQ,CAAC,aAAa,CAA4B;IAC1D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,2BAAgC;IA0B/C,IAAI,IAAI,OAAO,CAAC,oBAAoB,CAAC;IAiBrC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,oBAAoB,KAAK,IAAI,GAAG,OAAO,CAAC,oBAAoB,CAAC;IAQ5F,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,0BAA0B;IAelG,IAAW,QAAQ,IAAI,SAAS,OAAO,EAAE,CAExC;IAEM,WAAW,CAAC,QAAQ,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAO/C,MAAM,CAAC,WAAW,EAAE,OAAO,GAAG,OAAO;IAcrC,OAAO,IAAI,OAAO;IAOlB,OAAO,IAAI,IAAI;IAOtB,OAAO,CAAC,cAAc;IAiBtB,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 BasemapGalleryCompat {
3
4
  view;
4
5
  map;
@@ -11,6 +12,7 @@ export class BasemapGalleryCompat {
11
12
  activeBasemap;
12
13
  subscriptions;
13
14
  watchListeners;
15
+ widgetHost;
14
16
  constructor(options = {}) {
15
17
  this.view = options.view;
16
18
  this.map = options.map ?? extractViewMap(options.view);
@@ -23,6 +25,8 @@ export class BasemapGalleryCompat {
23
25
  this.activeBasemap = extractMapBasemap(this.map);
24
26
  this.subscriptions = [];
25
27
  this.watchListeners = new Map();
28
+ this.widgetHost = bindHonuaWidgetHost("honua-basemap-control", this.container, this.eventBus);
29
+ this.pushWidgetHost();
26
30
  if (this.autoRefresh) {
27
31
  this.subscriptions.push(this.eventBus.on("map.basemap-changed", (event) => {
28
32
  this.activeBasemap = extractPayloadBasemap(event.payload);
@@ -73,6 +77,7 @@ export class BasemapGalleryCompat {
73
77
  this.source = [...basemaps];
74
78
  this.notifyWatchers("source", this.source);
75
79
  this.eventBus.emit("basemap-gallery.updated", { basemapCount: this.source.length }, this);
80
+ this.pushWidgetHost();
76
81
  }
77
82
  select(basemapOrId) {
78
83
  const basemap = this.resolveBasemap(basemapOrId);
@@ -112,6 +117,13 @@ export class BasemapGalleryCompat {
112
117
  }
113
118
  return undefined;
114
119
  }
120
+ pushWidgetHost() {
121
+ pushWidgetHostState(this.widgetHost, {
122
+ view: this.view,
123
+ mode: "gallery",
124
+ basemaps: this.source,
125
+ });
126
+ }
115
127
  notifyWatchers(propertyName, value) {
116
128
  const listeners = this.watchListeners.get(propertyName);
117
129
  if (!listeners) {
@@ -4,6 +4,8 @@ export interface BasemapCompatOptions {
4
4
  title?: string;
5
5
  baseLayers?: readonly unknown[];
6
6
  referenceLayers?: readonly unknown[];
7
+ /** ArcGIS portal item, `{ id }` or a portal item id string. `load` fills the tiled layers from its data. */
8
+ portalItem?: unknown;
7
9
  eventBus?: CompatEventBus;
8
10
  }
9
11
  export type BasemapLoadStatusCompat = "not-loaded" | "loading" | "loaded";
@@ -14,6 +16,7 @@ export declare class BasemapCompat {
14
16
  readonly eventBus: CompatEventBus;
15
17
  id: string | undefined;
16
18
  title: string | undefined;
19
+ portalItem: unknown;
17
20
  baseLayers: unknown[];
18
21
  referenceLayers: unknown[];
19
22
  loaded: boolean;
@@ -27,6 +30,7 @@ export declare class BasemapCompat {
27
30
  when(callback?: (basemap: BasemapCompat) => void): Promise<BasemapCompat>;
28
31
  watch(propertyName: string, listener: (value: unknown) => void): BasemapHandleCompat;
29
32
  destroy(): void;
33
+ private populateFromPortalItem;
30
34
  private notifyWatchers;
31
35
  }
32
36
  //# sourceMappingURL=basemap.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"basemap.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/basemap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAEjG,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACrC,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,aAAa;IACxB,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,uBAAuB,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,oBAAyB;WAYvC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa;IAOxC,aAAa,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAM/C,kBAAkB,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAM9C,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;IAgB9B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;IAQ/E,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,mBAAmB;IAepF,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"basemap.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/basemap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAGjG,MAAM,WAAW,oBAAoB;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAChC,eAAe,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACrC,4GAA4G;IAC5G,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,MAAM,uBAAuB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE1E,MAAM,WAAW,mBAAmB;IAClC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,aAAa;IACxB,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,EAAE,EAAE,MAAM,GAAG,SAAS,CAAC;IACvB,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,OAAO,EAAE,CAAC;IACtB,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,uBAAuB,CAAC;IAC3C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,oBAAyB;WAavC,MAAM,CAAC,EAAE,EAAE,MAAM,GAAG,aAAa;IAOxC,aAAa,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAM/C,kBAAkB,CAAC,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAM9C,IAAI,IAAI,OAAO,CAAC,aAAa,CAAC;IAiB9B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,OAAO,EAAE,aAAa,KAAK,IAAI,GAAG,OAAO,CAAC,aAAa,CAAC;IAQ/E,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,mBAAmB;IAepF,OAAO,IAAI,IAAI;YAIR,sBAAsB;IA2BpC,OAAO,CAAC,cAAc;CAUvB"}
@@ -1,8 +1,10 @@
1
1
  import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
2
+ import { PortalCompat } from "./portal.js";
2
3
  export class BasemapCompat {
3
4
  eventBus;
4
5
  id;
5
6
  title;
7
+ portalItem;
6
8
  baseLayers;
7
9
  referenceLayers;
8
10
  loaded;
@@ -13,6 +15,7 @@ export class BasemapCompat {
13
15
  options.eventBus ?? resolveCompatEventBus(options.baseLayers, options.referenceLayers) ?? new CompatEventBus();
14
16
  this.id = options.id;
15
17
  this.title = options.title ?? options.id;
18
+ this.portalItem = options.portalItem;
16
19
  this.baseLayers = options.baseLayers ? [...options.baseLayers] : [];
17
20
  this.referenceLayers = options.referenceLayers ? [...options.referenceLayers] : [];
18
21
  this.loaded = false;
@@ -42,6 +45,7 @@ export class BasemapCompat {
42
45
  this.loadStatus = "loading";
43
46
  this.notifyWatchers("loadStatus", this.loadStatus);
44
47
  this.eventBus.emit("basemap.loading", { id: this.id }, this);
48
+ await this.populateFromPortalItem();
45
49
  this.loaded = true;
46
50
  this.notifyWatchers("loaded", this.loaded);
47
51
  this.loadStatus = "loaded";
@@ -72,6 +76,33 @@ export class BasemapCompat {
72
76
  destroy() {
73
77
  this.watchListeners.clear();
74
78
  }
79
+ async populateFromPortalItem() {
80
+ if (this.baseLayers.length > 0 || this.portalItem === undefined || this.portalItem === null) {
81
+ return;
82
+ }
83
+ const portalItem = readPortalItem(this.portalItem);
84
+ if (!portalItem) {
85
+ return;
86
+ }
87
+ const portal = new PortalCompat({ portalUrl: portalItem.portalUrl });
88
+ try {
89
+ const data = await portal.getItemData(portalItem.id);
90
+ const layers = tiledLayersFromPortalData(data);
91
+ if (layers.title && (this.title === undefined || this.title === this.id)) {
92
+ this.title = layers.title;
93
+ this.notifyWatchers("title", this.title);
94
+ }
95
+ if (layers.base.length > 0) {
96
+ this.setBaseLayers(layers.base);
97
+ }
98
+ if (layers.reference.length > 0) {
99
+ this.setReferenceLayers(layers.reference);
100
+ }
101
+ }
102
+ catch {
103
+ // A private item or a missing data document leaves the basemap without tiles.
104
+ }
105
+ }
75
106
  notifyWatchers(propertyName, value) {
76
107
  const listeners = this.watchListeners.get(propertyName);
77
108
  if (!listeners) {
@@ -82,3 +113,42 @@ export class BasemapCompat {
82
113
  }
83
114
  }
84
115
  }
116
+ function readPortalItem(value) {
117
+ if (typeof value === "string" && value.length > 0) {
118
+ return { id: value };
119
+ }
120
+ if (!value || typeof value !== "object") {
121
+ return undefined;
122
+ }
123
+ const record = value;
124
+ if (typeof record.id !== "string" || record.id.length === 0) {
125
+ return undefined;
126
+ }
127
+ const portalUrl = typeof record.portal?.url === "string" ? record.portal.url : undefined;
128
+ return { id: record.id, portalUrl };
129
+ }
130
+ function tiledLayersFromPortalData(data) {
131
+ if (!data || typeof data !== "object") {
132
+ return { base: [], reference: [] };
133
+ }
134
+ const record = data;
135
+ const basemap = record.baseMap ?? record.basemap;
136
+ if (!basemap || typeof basemap !== "object") {
137
+ return { base: [], reference: [] };
138
+ }
139
+ const source = basemap;
140
+ const title = typeof source.title === "string" ? source.title : typeof record.title === "string" ? record.title : undefined;
141
+ return {
142
+ title,
143
+ base: portalLayers(source.baseMapLayers ?? source.baseLayers),
144
+ reference: portalLayers(source.referenceLayers),
145
+ };
146
+ }
147
+ function portalLayers(value) {
148
+ if (!Array.isArray(value)) {
149
+ return [];
150
+ }
151
+ return value.filter((layer) => {
152
+ return Boolean(layer) && typeof layer === "object" && typeof layer.url === "string";
153
+ });
154
+ }
@@ -23,6 +23,7 @@ export declare class BookmarksCompat {
23
23
  bookmarks: BookmarkCompatItem[];
24
24
  activeBookmark: BookmarkCompatItem | undefined;
25
25
  private readonly watchListeners;
26
+ private readonly widgetHost;
26
27
  constructor(options?: BookmarksCompatOptions);
27
28
  load(): Promise<BookmarksCompat>;
28
29
  when(callback?: (widget: BookmarksCompat) => void): Promise<BookmarksCompat>;
@@ -31,6 +32,7 @@ export declare class BookmarksCompat {
31
32
  remove(nameOrBookmark: string | BookmarkCompatItem): boolean;
32
33
  goTo(nameOrBookmark: string | BookmarkCompatItem): Promise<BookmarkCompatItem | undefined>;
33
34
  destroy(): void;
35
+ private pushWidgetHost;
34
36
  private notifyWatchers;
35
37
  }
36
38
  //# sourceMappingURL=bookmarks.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"bookmarks.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/bookmarks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAEjG,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;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,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,yBAAyB,CAAC;IACtC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,cAAc,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,sBAA2B;IAW1C,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAgBhC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;IAQlF,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,qBAAqB;IAetF,GAAG,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAMvC,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB,GAAG,OAAO;IAmBtD,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAiBhG,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"bookmarks.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/bookmarks.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAGjG,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,MAAM,WAAW,sBAAsB;IACrC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,SAAS,CAAC,EAAE,SAAS,kBAAkB,EAAE,CAAC;IAC1C,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;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,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,yBAAyB,CAAC;IACtC,SAAS,EAAE,kBAAkB,EAAE,CAAC;IAChC,cAAc,EAAE,kBAAkB,GAAG,SAAS,CAAC;IACtD,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,sBAA2B;IAa1C,IAAI,IAAI,OAAO,CAAC,eAAe,CAAC;IAgBhC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,eAAe,KAAK,IAAI,GAAG,OAAO,CAAC,eAAe,CAAC;IAQlF,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,qBAAqB;IAetF,GAAG,CAAC,QAAQ,EAAE,kBAAkB,GAAG,IAAI;IAOvC,MAAM,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB,GAAG,OAAO;IAmBtD,IAAI,CAAC,cAAc,EAAE,MAAM,GAAG,kBAAkB,GAAG,OAAO,CAAC,kBAAkB,GAAG,SAAS,CAAC;IAiBhG,OAAO,IAAI,IAAI;IAKtB,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 BookmarksCompat {
3
4
  view;
4
5
  container;
@@ -8,6 +9,7 @@ export class BookmarksCompat {
8
9
  bookmarks;
9
10
  activeBookmark;
10
11
  watchListeners;
12
+ widgetHost;
11
13
  constructor(options = {}) {
12
14
  this.view = options.view;
13
15
  this.container = options.container;
@@ -17,6 +19,8 @@ export class BookmarksCompat {
17
19
  this.bookmarks = options.bookmarks ? [...options.bookmarks] : [];
18
20
  this.activeBookmark = undefined;
19
21
  this.watchListeners = new Map();
22
+ this.widgetHost = bindHonuaWidgetHost("honua-bookmarks", this.container, this.eventBus);
23
+ this.pushWidgetHost();
20
24
  }
21
25
  async load() {
22
26
  if (this.loaded) {
@@ -56,6 +60,7 @@ export class BookmarksCompat {
56
60
  this.bookmarks.push(bookmark);
57
61
  this.notifyWatchers("bookmarks", this.bookmarks);
58
62
  this.eventBus.emit("bookmarks.updated", { bookmarkCount: this.bookmarks.length }, this);
63
+ this.pushWidgetHost();
59
64
  }
60
65
  remove(nameOrBookmark) {
61
66
  const index = typeof nameOrBookmark === "string"
@@ -89,6 +94,13 @@ export class BookmarksCompat {
89
94
  }
90
95
  destroy() {
91
96
  this.watchListeners.clear();
97
+ this.widgetHost?.destroy();
98
+ }
99
+ pushWidgetHost() {
100
+ pushWidgetHostState(this.widgetHost, {
101
+ view: this.view,
102
+ bookmarkList: this.bookmarks,
103
+ });
92
104
  }
93
105
  notifyWatchers(propertyName, value) {
94
106
  const listeners = this.watchListeners.get(propertyName);
@@ -53,10 +53,12 @@ export declare class BaseControlCompat {
53
53
  }
54
54
  export declare class HomeCompat extends BaseControlCompat {
55
55
  viewpoint: HomeViewpointCompat;
56
+ private widgetHost;
56
57
  protected get controlName(): string;
57
58
  constructor(options?: HomeCompatOptions);
58
59
  go(): Promise<void>;
59
60
  reset(): void;
61
+ private pushWidgetHost;
60
62
  }
61
63
  export interface BasemapToggleCompatOptions {
62
64
  view?: unknown;
@@ -69,9 +71,11 @@ export declare class BasemapToggleCompat extends BaseControlCompat {
69
71
  readonly map: unknown;
70
72
  activeBasemap: unknown;
71
73
  nextBasemap: unknown;
74
+ private widgetHost;
72
75
  protected get controlName(): string;
73
76
  constructor(options?: BasemapToggleCompatOptions);
74
77
  toggle(): unknown;
78
+ private pushWidgetHost;
75
79
  }
76
80
  export type ScaleBarUnitCompat = "metric" | "imperial" | "dual";
77
81
  export interface ScaleBarCompatOptions {
@@ -84,10 +88,12 @@ export declare class ScaleBarCompat extends BaseControlCompat {
84
88
  unit: ScaleBarUnitCompat;
85
89
  scale: number | undefined;
86
90
  text: string;
91
+ private widgetHost;
87
92
  protected get controlName(): string;
88
93
  constructor(options?: ScaleBarCompatOptions);
89
94
  protected onLoad(): void;
90
95
  refresh(): string;
96
+ private pushWidgetHost;
91
97
  }
92
98
  export interface LocateCompatOptions {
93
99
  view?: unknown;
@@ -113,10 +119,12 @@ export declare class LocateCompat extends BaseControlCompat {
113
119
  /** The latest locate result, so a directions stop can clone it. */
114
120
  graphic: GraphicCompat | undefined;
115
121
  private readonly locateProvider;
122
+ private widgetHost;
116
123
  protected get controlName(): string;
117
124
  constructor(options?: LocateCompatOptions);
118
125
  attachContainer(element: HTMLElement): void;
119
126
  locate(): Promise<LocatePositionCompat>;
127
+ private pushWidgetHost;
120
128
  }
121
129
  export interface CompassCompatOptions {
122
130
  view?: unknown;
@@ -125,9 +133,12 @@ export interface CompassCompatOptions {
125
133
  }
126
134
  export declare class CompassCompat extends BaseControlCompat {
127
135
  orientation: number;
136
+ private widgetHost;
128
137
  protected get controlName(): string;
129
138
  constructor(options?: CompassCompatOptions);
139
+ attachContainer(element: HTMLElement): void;
130
140
  rotateTo(rotation: number): number;
141
+ private pushWidgetHost;
131
142
  reset(): number;
132
143
  goToNorth(): number;
133
144
  }
@@ -139,12 +150,14 @@ export interface ZoomCompatOptions {
139
150
  }
140
151
  export declare class ZoomCompat extends BaseControlCompat {
141
152
  readonly layout: "vertical" | "horizontal";
153
+ private widgetHost;
142
154
  protected get controlName(): string;
143
155
  constructor(options?: ZoomCompatOptions);
144
156
  attachContainer(element: HTMLElement): void;
145
157
  zoomIn(step?: number): number | undefined;
146
158
  zoomOut(step?: number): number | undefined;
147
159
  private adjustZoom;
160
+ private pushWidgetHost;
148
161
  }
149
162
  export interface FullscreenCompatOptions {
150
163
  view?: unknown;
@@ -155,10 +168,12 @@ export interface FullscreenCompatOptions {
155
168
  export declare class FullscreenCompat extends BaseControlCompat {
156
169
  readonly element: HTMLElement | null;
157
170
  active: boolean;
171
+ private widgetHost;
158
172
  protected get controlName(): string;
159
173
  constructor(options?: FullscreenCompatOptions);
160
174
  enter(): void;
161
175
  exit(): void;
176
+ private pushWidgetHost;
162
177
  toggle(force?: boolean): boolean;
163
178
  }
164
179
  export interface AttributionCompatOptions {
@@ -173,10 +188,13 @@ export declare class AttributionCompat extends BaseControlCompat {
173
188
  readonly map: unknown;
174
189
  itemDelimiter: string;
175
190
  attributions: string[];
191
+ private widgetHost;
176
192
  protected get controlName(): string;
177
193
  constructor(options?: AttributionCompatOptions);
194
+ attachContainer(element: HTMLElement): void;
178
195
  addAttribution(value: string): void;
179
196
  removeAttribution(value: string): boolean;
197
+ private pushWidgetHost;
180
198
  getText(): string;
181
199
  }
182
200
  export {};
@@ -1 +1 @@
1
- {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/controls.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/controls.ts"],"names":[],"mappings":"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"}