@honua/app-platform 0.1.7-beta.0 → 0.1.10-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (326) hide show
  1. package/control-plane/admin-client.d.ts +89 -0
  2. package/control-plane/admin-client.d.ts.map +1 -0
  3. package/control-plane/admin-client.js +200 -0
  4. package/control-plane/client.d.ts +1 -1
  5. package/control-plane/client.d.ts.map +1 -1
  6. package/control-plane/client.js +145 -11
  7. package/control-plane/commands/catalog.d.ts +133 -0
  8. package/control-plane/commands/catalog.d.ts.map +1 -0
  9. package/control-plane/commands/catalog.js +365 -0
  10. package/control-plane/commands/errors.d.ts +96 -0
  11. package/control-plane/commands/errors.d.ts.map +1 -0
  12. package/control-plane/commands/errors.js +130 -0
  13. package/control-plane/commands/identity.d.ts +71 -0
  14. package/control-plane/commands/identity.d.ts.map +1 -0
  15. package/control-plane/commands/identity.js +0 -0
  16. package/control-plane/commands/index.d.ts +39 -0
  17. package/control-plane/commands/index.d.ts.map +1 -0
  18. package/control-plane/commands/index.js +34 -0
  19. package/control-plane/commands/runtime.d.ts +146 -0
  20. package/control-plane/commands/runtime.d.ts.map +1 -0
  21. package/control-plane/commands/runtime.js +330 -0
  22. package/control-plane/commands/types.d.ts +228 -0
  23. package/control-plane/commands/types.d.ts.map +1 -0
  24. package/control-plane/commands/types.js +30 -0
  25. package/control-plane/commands/validate.d.ts +27 -0
  26. package/control-plane/commands/validate.d.ts.map +1 -0
  27. package/control-plane/commands/validate.js +132 -0
  28. package/control-plane/generated/admin-api.d.ts +30265 -0
  29. package/control-plane/generated/admin-api.d.ts.map +1 -0
  30. package/control-plane/generated/admin-api.js +5 -0
  31. package/control-plane/generated/admin-operations.d.ts +4053 -0
  32. package/control-plane/generated/admin-operations.d.ts.map +1 -0
  33. package/control-plane/generated/admin-operations.js +820 -0
  34. package/control-plane/index.d.ts +11 -0
  35. package/control-plane/index.d.ts.map +1 -1
  36. package/control-plane/index.js +8 -0
  37. package/control-plane/types.d.ts +14 -0
  38. package/control-plane/types.d.ts.map +1 -1
  39. package/controls/catalog.d.ts.map +1 -1
  40. package/controls/catalog.js +12 -1
  41. package/controls/qualification.d.ts.map +1 -1
  42. package/controls/qualification.js +71 -8
  43. package/core/client.d.ts.map +1 -1
  44. package/core/client.js +29 -31
  45. package/core/credential-redaction.d.ts +163 -0
  46. package/core/credential-redaction.d.ts.map +1 -0
  47. package/core/credential-redaction.js +389 -0
  48. package/core/error-classifications.d.ts +15 -0
  49. package/core/error-classifications.d.ts.map +1 -1
  50. package/core/error-classifications.js +15 -0
  51. package/core/error-code-registry.d.ts +15 -0
  52. package/core/error-code-registry.d.ts.map +1 -1
  53. package/core/error-code-registry.js +15 -0
  54. package/core/error-envelope.d.ts +31 -0
  55. package/core/error-envelope.d.ts.map +1 -1
  56. package/core/error-envelope.js +11 -0
  57. package/core/errors.d.ts +15 -3
  58. package/core/errors.d.ts.map +1 -1
  59. package/core/errors.js +254 -2
  60. package/core/geometry-input-sr.d.ts +3 -0
  61. package/core/geometry-input-sr.d.ts.map +1 -0
  62. package/core/geometry-input-sr.js +28 -0
  63. package/core/geoservices.d.ts.map +1 -1
  64. package/core/geoservices.js +33 -6
  65. package/core/grpc-adapter.d.ts +2 -2
  66. package/core/grpc-adapter.d.ts.map +1 -1
  67. package/core/grpc-adapter.js +41 -9
  68. package/core/job-run-errors.d.ts +10 -0
  69. package/core/job-run-errors.d.ts.map +1 -0
  70. package/core/job-run-errors.js +14 -0
  71. package/core/job-run-lifecycle.d.ts +34 -0
  72. package/core/job-run-lifecycle.d.ts.map +1 -0
  73. package/core/job-run-lifecycle.js +193 -0
  74. package/core/ogc-processes.d.ts +38 -31
  75. package/core/ogc-processes.d.ts.map +1 -1
  76. package/core/ogc-processes.js +123 -173
  77. package/core/pbf-decoder.d.ts.map +1 -1
  78. package/core/pbf-decoder.js +16 -4
  79. package/core/process-runner.js +15 -100
  80. package/core/protocol-transport.d.ts +6 -1
  81. package/core/protocol-transport.d.ts.map +1 -1
  82. package/core/request-pipeline.d.ts +6 -3
  83. package/core/request-pipeline.d.ts.map +1 -1
  84. package/core/request-pipeline.js +28 -11
  85. package/core/spatial-filter.d.ts +4 -4
  86. package/core/spatial-filter.d.ts.map +1 -1
  87. package/core/spatial-filter.js +7 -7
  88. package/core/surfaces.d.ts +2 -8
  89. package/core/surfaces.d.ts.map +1 -1
  90. package/core/surfaces.js +21 -112
  91. package/core/types.d.ts +21 -9
  92. package/core/types.d.ts.map +1 -1
  93. package/custom-elements.json +341 -0
  94. package/esri-compat/class-breaks-renderer.d.ts +2 -0
  95. package/esri-compat/class-breaks-renderer.d.ts.map +1 -1
  96. package/esri-compat/class-breaks-renderer.js +7 -0
  97. package/esri-compat/controls.d.ts +10 -1
  98. package/esri-compat/controls.d.ts.map +1 -1
  99. package/esri-compat/controls.js +86 -2
  100. package/esri-compat/directions.d.ts +35 -0
  101. package/esri-compat/directions.d.ts.map +1 -1
  102. package/esri-compat/directions.js +153 -2
  103. package/esri-compat/expand.d.ts +1 -0
  104. package/esri-compat/expand.d.ts.map +1 -1
  105. package/esri-compat/expand.js +61 -0
  106. package/esri-compat/feature-layer.d.ts +29 -4
  107. package/esri-compat/feature-layer.d.ts.map +1 -1
  108. package/esri-compat/feature-layer.js +335 -13
  109. package/esri-compat/geometry-engine.d.ts +4 -0
  110. package/esri-compat/geometry-engine.d.ts.map +1 -1
  111. package/esri-compat/geometry-engine.js +8 -1
  112. package/esri-compat/graphic.d.ts +7 -4
  113. package/esri-compat/graphic.d.ts.map +1 -1
  114. package/esri-compat/legend.d.ts +2 -1
  115. package/esri-compat/legend.d.ts.map +1 -1
  116. package/esri-compat/legend.js +15 -0
  117. package/esri-compat/map-view-mount.d.ts +48 -0
  118. package/esri-compat/map-view-mount.d.ts.map +1 -0
  119. package/esri-compat/map-view-mount.js +344 -0
  120. package/esri-compat/map-view.d.ts +38 -6
  121. package/esri-compat/map-view.d.ts.map +1 -1
  122. package/esri-compat/map-view.js +467 -33
  123. package/esri-compat/portal.d.ts +2 -0
  124. package/esri-compat/portal.d.ts.map +1 -1
  125. package/esri-compat/portal.js +7 -2
  126. package/esri-compat/renderer-objects.d.ts +7 -2
  127. package/esri-compat/renderer-objects.d.ts.map +1 -1
  128. package/esri-compat/renderer-objects.js +16 -5
  129. package/esri-compat/route-layer.d.ts +8 -0
  130. package/esri-compat/route-layer.d.ts.map +1 -1
  131. package/esri-compat/route-layer.js +24 -4
  132. package/esri-compat/route-task.d.ts +5 -1
  133. package/esri-compat/route-task.d.ts.map +1 -1
  134. package/esri-compat/route-task.js +119 -7
  135. package/esri-compat/scene-view.d.ts.map +1 -1
  136. package/esri-compat/scene-view.js +1 -0
  137. package/esri-compat/search.d.ts +2 -1
  138. package/esri-compat/search.d.ts.map +1 -1
  139. package/esri-compat/search.js +52 -2
  140. package/esri-compat/unique-value-renderer.d.ts +2 -0
  141. package/esri-compat/unique-value-renderer.d.ts.map +1 -1
  142. package/esri-compat/unique-value-renderer.js +7 -0
  143. package/esri-compat/web-map.d.ts +10 -0
  144. package/esri-compat/web-map.d.ts.map +1 -1
  145. package/esri-compat/web-map.js +102 -0
  146. package/gen/geospatial/v1/common_pb.d.ts +514 -0
  147. package/gen/geospatial/v1/common_pb.d.ts.map +1 -0
  148. package/gen/geospatial/v1/common_pb.js +335 -0
  149. package/gen/geospatial/v1/execution_types_pb.d.ts +1186 -0
  150. package/gen/geospatial/v1/execution_types_pb.d.ts.map +1 -0
  151. package/gen/geospatial/v1/execution_types_pb.js +396 -0
  152. package/gen/geospatial/v1/feature_service_pb.d.ts +403 -0
  153. package/gen/geospatial/v1/feature_service_pb.d.ts.map +1 -0
  154. package/gen/geospatial/v1/feature_service_pb.js +47 -0
  155. package/gen/geospatial/v1/index.d.ts +5 -0
  156. package/gen/geospatial/v1/index.d.ts.map +1 -0
  157. package/gen/geospatial/v1/index.js +9 -0
  158. package/gen/geospatial/v1/spatial_types_pb.d.ts +285 -0
  159. package/gen/geospatial/v1/spatial_types_pb.d.ts.map +1 -0
  160. package/gen/geospatial/v1/spatial_types_pb.js +58 -0
  161. package/gen/geospatial/v1/workspace_artifact_types_pb.d.ts +379 -0
  162. package/gen/geospatial/v1/workspace_artifact_types_pb.d.ts.map +1 -0
  163. package/gen/geospatial/v1/workspace_artifact_types_pb.js +151 -0
  164. package/generated-app/projection.d.ts.map +1 -1
  165. package/generated-app/projection.js +10 -1
  166. package/geocoding/index.d.ts +1 -0
  167. package/geocoding/index.d.ts.map +1 -1
  168. package/geocoding/index.js +18 -8
  169. package/geocoding/provider-http.d.ts.map +1 -1
  170. package/geocoding/provider-http.js +3 -1
  171. package/map/webmap-maplibre.d.ts +2 -1
  172. package/map/webmap-maplibre.d.ts.map +1 -1
  173. package/map/webmap-maplibre.js +3 -0
  174. package/operate/client.d.ts +11 -1
  175. package/operate/client.d.ts.map +1 -1
  176. package/operate/client.js +39 -2
  177. package/operate/index.d.ts +1 -1
  178. package/operate/index.d.ts.map +1 -1
  179. package/operate/types.d.ts +40 -6
  180. package/operate/types.d.ts.map +1 -1
  181. package/package.json +6 -4
  182. package/query-planner/geoservices.d.ts.map +1 -1
  183. package/query-planner/geoservices.js +2 -0
  184. package/query-planner/grpc.d.ts +4 -4
  185. package/query-planner/grpc.d.ts.map +1 -1
  186. package/query-planner/grpc.js +11 -11
  187. package/query-planner/types.d.ts +6 -4
  188. package/query-planner/types.d.ts.map +1 -1
  189. package/realtime/honua-server.d.ts +4 -0
  190. package/realtime/honua-server.d.ts.map +1 -1
  191. package/realtime/honua-server.js +10 -0
  192. package/realtime/resumable.js +9 -0
  193. package/realtime/types.d.ts +8 -0
  194. package/realtime/types.d.ts.map +1 -1
  195. package/runtime/errors.d.ts +1 -1
  196. package/runtime/errors.d.ts.map +1 -1
  197. package/runtime/errors.js +2 -0
  198. package/runtime/generated/map-package-schema-meta.d.ts +11 -0
  199. package/runtime/generated/map-package-schema-meta.d.ts.map +1 -0
  200. package/runtime/generated/map-package-schema-meta.js +12 -0
  201. package/runtime/generated/map-package-schema-validator.d.ts +16 -0
  202. package/runtime/generated/map-package-schema-validator.d.ts.map +1 -0
  203. package/runtime/generated/map-package-schema-validator.js +1422 -0
  204. package/runtime/index.d.ts +5 -1
  205. package/runtime/index.d.ts.map +1 -1
  206. package/runtime/index.js +6 -0
  207. package/runtime/map-package-export.d.ts +151 -0
  208. package/runtime/map-package-export.d.ts.map +1 -0
  209. package/runtime/map-package-export.js +636 -0
  210. package/runtime/map-package-validation.d.ts +21 -1
  211. package/runtime/map-package-validation.d.ts.map +1 -1
  212. package/runtime/map-package-validation.js +132 -95
  213. package/runtime/map-package.d.ts +80 -0
  214. package/runtime/map-package.d.ts.map +1 -1
  215. package/scene-workspace/cesium-adapter.d.ts +8 -8
  216. package/scene-workspace/cesium-adapter.d.ts.map +1 -1
  217. package/scene-workspace/cesium-adapter.js +31 -18
  218. package/scene-workspace/index.d.ts +2 -2
  219. package/scene-workspace/index.d.ts.map +1 -1
  220. package/scene-workspace/index.js +1 -1
  221. package/scene-workspace/maplibre-state-sync.d.ts.map +1 -1
  222. package/scene-workspace/maplibre-state-sync.js +35 -3
  223. package/scene-workspace/primitives.d.ts +37 -5
  224. package/scene-workspace/primitives.d.ts.map +1 -1
  225. package/scene-workspace/primitives.js +55 -18
  226. package/scene-workspace/source-to-cesium.js +1 -1
  227. package/scene-workspace/state-sync-port-kit.d.ts +1 -1
  228. package/scene-workspace/state-sync-port-kit.d.ts.map +1 -1
  229. package/studio/capability-manifest.d.ts +10 -0
  230. package/studio/capability-manifest.d.ts.map +1 -1
  231. package/studio/capability-manifest.js +38 -0
  232. package/studio/chart-spec.d.ts +6 -6
  233. package/studio/chart-spec.d.ts.map +1 -1
  234. package/studio/chart-spec.js +6 -6
  235. package/studio/command-adapter.d.ts +35 -0
  236. package/studio/command-adapter.d.ts.map +1 -0
  237. package/studio/command-adapter.js +36 -0
  238. package/studio/generated/studio-api.d.ts +1062 -0
  239. package/studio/generated/studio-api.d.ts.map +1 -0
  240. package/studio/generated/studio-api.js +4 -0
  241. package/studio/index.d.ts +25 -13
  242. package/studio/index.d.ts.map +1 -1
  243. package/studio/index.js +21 -10
  244. package/studio/lifecycle-client.d.ts +262 -22
  245. package/studio/lifecycle-client.d.ts.map +1 -1
  246. package/studio/lifecycle-client.js +543 -24
  247. package/studio/lifecycle-errors.d.ts +8 -2
  248. package/studio/lifecycle-errors.d.ts.map +1 -1
  249. package/studio/lifecycle-errors.js +6 -1
  250. package/studio/lifecycle-types.d.ts +237 -38
  251. package/studio/lifecycle-types.d.ts.map +1 -1
  252. package/studio/lifecycle-types.js +5 -12
  253. package/studio/publication-status.d.ts +55 -0
  254. package/studio/publication-status.d.ts.map +1 -0
  255. package/studio/publication-status.js +103 -0
  256. package/studio/types.d.ts +37 -7
  257. package/studio/types.d.ts.map +1 -1
  258. package/studio/types.js +5 -3
  259. package/studio/validate.d.ts.map +1 -1
  260. package/studio/validate.js +104 -7
  261. package/style/renderers.d.ts +6 -1
  262. package/style/renderers.d.ts.map +1 -1
  263. package/style/renderers.js +11 -6
  264. package/style/visual-variables.d.ts +43 -0
  265. package/style/visual-variables.d.ts.map +1 -0
  266. package/style/visual-variables.js +183 -0
  267. package/web-components/application-context.d.ts +186 -0
  268. package/web-components/application-context.d.ts.map +1 -0
  269. package/web-components/application-context.js +429 -0
  270. package/web-components/elements.d.ts +10 -1
  271. package/web-components/elements.d.ts.map +1 -1
  272. package/web-components/elements.js +187 -7
  273. package/web-components/export-redaction.d.ts +11 -102
  274. package/web-components/export-redaction.d.ts.map +1 -1
  275. package/web-components/export-redaction.js +7 -260
  276. package/web-components/feature-editor-offline.d.ts +32 -0
  277. package/web-components/feature-editor-offline.d.ts.map +1 -0
  278. package/web-components/feature-editor-offline.js +115 -0
  279. package/web-components/feature-editor-workflow.d.ts +85 -22
  280. package/web-components/feature-editor-workflow.d.ts.map +1 -1
  281. package/web-components/feature-editor-workflow.js +240 -0
  282. package/web-components/feature-editor.d.ts +20 -6
  283. package/web-components/feature-editor.d.ts.map +1 -1
  284. package/web-components/feature-editor.js +159 -7
  285. package/web-components/feature-inspection.d.ts +287 -0
  286. package/web-components/feature-inspection.d.ts.map +1 -0
  287. package/web-components/feature-inspection.js +1464 -0
  288. package/web-components/feature-mutation.d.ts +77 -0
  289. package/web-components/feature-mutation.d.ts.map +1 -0
  290. package/web-components/feature-mutation.js +137 -0
  291. package/web-components/feature-table-engine.d.ts +94 -4
  292. package/web-components/feature-table-engine.d.ts.map +1 -1
  293. package/web-components/feature-table-engine.js +365 -18
  294. package/web-components/feature-table-view.d.ts +35 -1
  295. package/web-components/feature-table-view.d.ts.map +1 -1
  296. package/web-components/feature-table-view.js +128 -12
  297. package/web-components/index.d.ts +16 -7
  298. package/web-components/index.d.ts.map +1 -1
  299. package/web-components/index.js +9 -2
  300. package/web-components/map-pointer-claim.d.ts +24 -0
  301. package/web-components/map-pointer-claim.d.ts.map +1 -0
  302. package/web-components/map-pointer-claim.js +40 -0
  303. package/web-components/maplibre-renderer.d.ts.map +1 -1
  304. package/web-components/maplibre-renderer.js +5 -1
  305. package/web-components/measurement-units.d.ts +88 -0
  306. package/web-components/measurement-units.d.ts.map +1 -0
  307. package/web-components/measurement-units.js +278 -0
  308. package/web-components/measurement.d.ts +75 -4
  309. package/web-components/measurement.d.ts.map +1 -1
  310. package/web-components/measurement.js +227 -28
  311. package/web-components/types.d.ts +58 -3
  312. package/web-components/types.d.ts.map +1 -1
  313. package/webmap/convert-layer.d.ts +2 -1
  314. package/webmap/convert-layer.d.ts.map +1 -1
  315. package/webmap/convert-layer.js +20 -3
  316. package/webmap/convert-renderer.d.ts +10 -3
  317. package/webmap/convert-renderer.d.ts.map +1 -1
  318. package/webmap/convert-renderer.js +190 -36
  319. package/webmap/index.d.ts +1 -0
  320. package/webmap/index.d.ts.map +1 -1
  321. package/webmap/parse.d.ts +2 -1
  322. package/webmap/parse.d.ts.map +1 -1
  323. package/webmap/parse.js +1 -1
  324. package/gen/honua/v1/feature_service_pb.d.ts +0 -918
  325. package/gen/honua/v1/feature_service_pb.d.ts.map +0 -1
  326. package/gen/honua/v1/feature_service_pb.js +0 -375
@@ -0,0 +1,341 @@
1
+ {
2
+ "schemaVersion": "1.0.0",
3
+ "readme": "",
4
+ "modules": [
5
+ {
6
+ "kind": "javascript-module",
7
+ "path": "web-components/measurement.js",
8
+ "declarations": [
9
+ {
10
+ "kind": "class",
11
+ "customElement": true,
12
+ "tagName": "honua-measurement",
13
+ "name": "HonuaMeasurementElement",
14
+ "description": "Distance and area measurement drawn directly on a MapLibre map.",
15
+ "superclass": {
16
+ "name": "HTMLElement",
17
+ "package": "global:"
18
+ },
19
+ "members": [
20
+ {
21
+ "kind": "method",
22
+ "name": "addVertex",
23
+ "privacy": "public",
24
+ "description": "Adds a vertex programmatically (same as a map click). Returns `false`, changing nothing, when no mode is active or the position is not a usable WGS84 vertex (non-finite, or latitude outside `[-90, 90]`).",
25
+ "parameters": [
26
+ {
27
+ "name": "lngLat",
28
+ "type": {
29
+ "text": "readonly [number, number]"
30
+ }
31
+ }
32
+ ],
33
+ "return": {
34
+ "type": {
35
+ "text": "boolean"
36
+ }
37
+ }
38
+ },
39
+ {
40
+ "kind": "field",
41
+ "name": "areaUnit",
42
+ "privacy": "public",
43
+ "description": "Displayed area unit. `\"auto\"` (default) keeps the metric auto-scaling behavior. Changing this reformats the existing full-precision result — it never recomputes from a rounded display value.",
44
+ "type": {
45
+ "text": "\"auto\" | \"square-meters\" | \"hectares\" | \"square-kilometers\" | \"square-feet\" | \"acres\" | \"square-miles\""
46
+ }
47
+ },
48
+ {
49
+ "kind": "method",
50
+ "name": "cancel",
51
+ "privacy": "public",
52
+ "description": "Cancels the in-progress sketch (same as Escape); the mode stays active.",
53
+ "return": {
54
+ "type": {
55
+ "text": "void"
56
+ }
57
+ }
58
+ },
59
+ {
60
+ "kind": "method",
61
+ "name": "connect",
62
+ "privacy": "public",
63
+ "description": "Wires the widget to a MapLibre map. Equivalent to setting `.map`.",
64
+ "parameters": [
65
+ {
66
+ "name": "map",
67
+ "type": {
68
+ "text": "HonuaMeasurementMap"
69
+ }
70
+ }
71
+ ],
72
+ "return": {
73
+ "type": {
74
+ "text": "void"
75
+ }
76
+ }
77
+ },
78
+ {
79
+ "kind": "field",
80
+ "name": "crs",
81
+ "privacy": "public",
82
+ "readonly": true,
83
+ "description": "CRS vertices are recorded in. Always WGS84 (`\"EPSG:4326\"`): vertices come from map click events, which report geographic lng/lat regardless of the map's own projection. Exposed so a consumer never has to assume it.",
84
+ "type": {
85
+ "text": "\"EPSG:4326\""
86
+ }
87
+ },
88
+ {
89
+ "kind": "field",
90
+ "name": "fidelity",
91
+ "privacy": "public",
92
+ "description": "Which math computes `result.distance` / `result.area`: `\"geodesic\"` (default, great-circle over WGS84) or `\"planar\"` (Euclidean, in the `planarCrs` frame — see `./measurement-units.js`). Changing this recomputes from the drawn vertices, since it changes which math produces the canonical value.",
93
+ "type": {
94
+ "text": "\"geodesic\" | \"planar\""
95
+ }
96
+ },
97
+ {
98
+ "kind": "method",
99
+ "name": "finish",
100
+ "privacy": "public",
101
+ "description": "Finishes the in-progress sketch (same as double-click).",
102
+ "return": {
103
+ "type": {
104
+ "text": "void"
105
+ }
106
+ }
107
+ },
108
+ {
109
+ "kind": "field",
110
+ "name": "map",
111
+ "privacy": "public",
112
+ "description": "The MapLibre map this widget draws on.",
113
+ "type": {
114
+ "text": "HonuaMeasurementMap | undefined"
115
+ }
116
+ },
117
+ {
118
+ "kind": "field",
119
+ "name": "messages",
120
+ "privacy": "public",
121
+ "description": "Caller-supplied labels, statuses, and ARIA text; unset entries keep the English defaults.",
122
+ "type": {
123
+ "text": "HonuaMeasurementMessages"
124
+ }
125
+ },
126
+ {
127
+ "kind": "field",
128
+ "name": "mode",
129
+ "privacy": "public",
130
+ "readonly": true,
131
+ "description": "The active measure mode.",
132
+ "type": {
133
+ "text": "\"off\" | \"distance\" | \"area\""
134
+ }
135
+ },
136
+ {
137
+ "kind": "field",
138
+ "name": "planarCrs",
139
+ "privacy": "public",
140
+ "description": "Planar frame used when `fidelity` is `\"planar\"`: `\"local\"` (default, flat-earth meters around the sketch) or `\"EPSG:3857\"` (Web Mercator meters, not scale-corrected). Recomputes like `fidelity` does.",
141
+ "type": {
142
+ "text": "\"local\" | \"EPSG:3857\""
143
+ }
144
+ },
145
+ {
146
+ "kind": "field",
147
+ "name": "precision",
148
+ "privacy": "public",
149
+ "description": "Decimal digits for the displayed value. `undefined` (default) uses a per-unit default.",
150
+ "type": {
151
+ "text": "number | undefined"
152
+ }
153
+ },
154
+ {
155
+ "kind": "field",
156
+ "name": "result",
157
+ "privacy": "public",
158
+ "readonly": true,
159
+ "description": "The current (or last finished) measurement result.",
160
+ "type": {
161
+ "text": "HonuaMeasureResult | undefined"
162
+ }
163
+ },
164
+ {
165
+ "kind": "method",
166
+ "name": "setMode",
167
+ "privacy": "public",
168
+ "description": "Activates a measure mode; `\"off\"` cancels any in-progress sketch.",
169
+ "parameters": [
170
+ {
171
+ "name": "mode",
172
+ "type": {
173
+ "text": "\"off\" | \"distance\" | \"area\""
174
+ }
175
+ }
176
+ ],
177
+ "return": {
178
+ "type": {
179
+ "text": "void"
180
+ }
181
+ }
182
+ },
183
+ {
184
+ "kind": "field",
185
+ "name": "unit",
186
+ "privacy": "public",
187
+ "description": "Displayed distance unit. `\"auto\"` (default) keeps the metric auto-scaling behavior. Changing this reformats the existing full-precision result — it never recomputes from a rounded display value.",
188
+ "type": {
189
+ "text": "\"auto\" | \"meters\" | \"kilometers\" | \"feet\" | \"yards\" | \"miles\" | \"nauticalmiles\""
190
+ }
191
+ },
192
+ {
193
+ "kind": "field",
194
+ "name": "vertices",
195
+ "privacy": "public",
196
+ "readonly": true,
197
+ "description": "The in-progress vertex list (`[lng, lat]` positions).",
198
+ "type": {
199
+ "text": "readonly (readonly [number, number])[]"
200
+ }
201
+ }
202
+ ],
203
+ "attributes": [
204
+ {
205
+ "name": "for",
206
+ "description": "`id` of the `<honua-map>` (or any element exposing `.map`) to measure on.",
207
+ "type": {
208
+ "text": "string"
209
+ }
210
+ },
211
+ {
212
+ "name": "label",
213
+ "description": "Heading and accessible name of the panel; `messages.label` wins when set.",
214
+ "type": {
215
+ "text": "string"
216
+ }
217
+ },
218
+ {
219
+ "name": "unit",
220
+ "fieldName": "unit",
221
+ "description": "Displayed distance unit. `\"auto\"` (default) keeps the metric auto-scaling behavior. Changing this reformats the existing full-precision result — it never recomputes from a rounded display value.",
222
+ "type": {
223
+ "text": "\"auto\" | \"meters\" | \"kilometers\" | \"feet\" | \"yards\" | \"miles\" | \"nauticalmiles\""
224
+ }
225
+ },
226
+ {
227
+ "name": "area-unit",
228
+ "fieldName": "areaUnit",
229
+ "description": "Displayed area unit. `\"auto\"` (default) keeps the metric auto-scaling behavior. Changing this reformats the existing full-precision result — it never recomputes from a rounded display value.",
230
+ "type": {
231
+ "text": "\"auto\" | \"square-meters\" | \"hectares\" | \"square-kilometers\" | \"square-feet\" | \"acres\" | \"square-miles\""
232
+ }
233
+ },
234
+ {
235
+ "name": "precision",
236
+ "fieldName": "precision",
237
+ "description": "Decimal digits for the displayed value. `undefined` (default) uses a per-unit default.",
238
+ "type": {
239
+ "text": "number"
240
+ }
241
+ },
242
+ {
243
+ "name": "fidelity",
244
+ "fieldName": "fidelity",
245
+ "description": "Which math computes `result.distance` / `result.area`: `\"geodesic\"` (default, great-circle over WGS84) or `\"planar\"` (Euclidean, in the `planarCrs` frame — see `./measurement-units.js`). Changing this recomputes from the drawn vertices, since it changes which math produces the canonical value.",
246
+ "type": {
247
+ "text": "\"geodesic\" | \"planar\""
248
+ }
249
+ },
250
+ {
251
+ "name": "planar-crs",
252
+ "fieldName": "planarCrs",
253
+ "description": "Planar frame used when `fidelity` is `\"planar\"`: `\"local\"` (default, flat-earth meters around the sketch) or `\"EPSG:3857\"` (Web Mercator meters, not scale-corrected). Recomputes like `fidelity` does.",
254
+ "type": {
255
+ "text": "\"local\" | \"EPSG:3857\""
256
+ }
257
+ }
258
+ ],
259
+ "events": [
260
+ {
261
+ "name": "honua-measure-change",
262
+ "description": "A mode, vertex, result, fidelity, or planar CRS change. Bubbles and is composed.",
263
+ "type": {
264
+ "text": "CustomEvent<HonuaMeasureChangeDetail>"
265
+ }
266
+ }
267
+ ],
268
+ "cssParts": [
269
+ {
270
+ "name": "panel",
271
+ "description": "The measurement panel."
272
+ },
273
+ {
274
+ "name": "mode",
275
+ "description": "Each mode toggle button."
276
+ },
277
+ {
278
+ "name": "value",
279
+ "description": "The live result readout (`role=\"status\"`)."
280
+ },
281
+ {
282
+ "name": "finish",
283
+ "description": "The Finish button."
284
+ },
285
+ {
286
+ "name": "cancel",
287
+ "description": "The Cancel button."
288
+ }
289
+ ],
290
+ "cssProperties": [
291
+ {
292
+ "name": "--honua-ui-bg",
293
+ "default": "#ffffff"
294
+ },
295
+ {
296
+ "name": "--honua-ui-fg",
297
+ "default": "#172033"
298
+ },
299
+ {
300
+ "name": "--honua-ui-muted",
301
+ "default": "#667085"
302
+ },
303
+ {
304
+ "name": "--honua-ui-border",
305
+ "default": "#d0d5dd"
306
+ },
307
+ {
308
+ "name": "--honua-ui-accent",
309
+ "default": "#1d4ed8"
310
+ },
311
+ {
312
+ "name": "--honua-ui-accent-fg",
313
+ "default": "#ffffff"
314
+ }
315
+ ],
316
+ "source": {
317
+ "href": "https://github.com/honua-io/honua-sdk-js/blob/trunk/src/web-components/measurement.ts"
318
+ }
319
+ }
320
+ ],
321
+ "exports": [
322
+ {
323
+ "kind": "js",
324
+ "name": "HonuaMeasurementElement",
325
+ "declaration": {
326
+ "name": "HonuaMeasurementElement",
327
+ "module": "web-components/measurement.js"
328
+ }
329
+ },
330
+ {
331
+ "kind": "custom-element-definition",
332
+ "name": "honua-measurement",
333
+ "declaration": {
334
+ "name": "HonuaMeasurementElement",
335
+ "module": "web-components/measurement.js"
336
+ }
337
+ }
338
+ ]
339
+ }
340
+ ]
341
+ }
@@ -6,6 +6,7 @@ export interface ClassBreakInfoCompat {
6
6
  description?: string;
7
7
  }
8
8
  export interface ClassBreaksRendererCompatOptions {
9
+ visualVariables?: unknown[];
9
10
  field?: string;
10
11
  normalizationField?: string;
11
12
  normalizationTotal?: number;
@@ -22,6 +23,7 @@ export interface ClassBreaksRendererHandleCompat {
22
23
  remove(): void;
23
24
  }
24
25
  export declare class ClassBreaksRendererCompat {
26
+ visualVariables: unknown[];
25
27
  loaded: boolean;
26
28
  loadStatus: ClassBreaksRendererLoadStatusCompat;
27
29
  field: string | undefined;
@@ -1 +1 @@
1
- {"version":3,"file":"class-breaks-renderer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/class-breaks-renderer.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,mCAAmC,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtF,MAAM,WAAW,+BAA+B;IAC9C,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,yBAAyB;IAC7B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,mCAAmC,CAAC;IAChD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,eAAe,EAAE,oBAAoB,EAAE,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,gCAAqC;IAoBpD,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAc1C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAQxG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,+BAA+B;IAehG,MAAM,CAAC,OAAO,EAAE,gCAAgC,GAAG,IAAI;IA+CvD,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI;IAKnD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAW/C,KAAK,IAAI,yBAAyB;IAIlC,MAAM,IAAI,gCAAgC;IAe1C,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"class-breaks-renderer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/class-breaks-renderer.ts"],"names":[],"mappings":"AACA,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,gCAAgC;IAC/C,eAAe,CAAC,EAAE,OAAO,EAAE,CAAC;IAC5B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,eAAe,CAAC,EAAE,oBAAoB,EAAE,CAAC;CAC1C;AAED,MAAM,MAAM,mCAAmC,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAEtF,MAAM,WAAW,+BAA+B;IAC9C,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,yBAAyB;IAC7B,eAAe,EAAE,OAAO,EAAE,CAAC;IAC3B,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,mCAAmC,CAAC;IAChD,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,kBAAkB,EAAE,MAAM,GAAG,SAAS,CAAC;IACvC,QAAQ,EAAE,MAAM,GAAG,SAAS,CAAC;IAC7B,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,aAAa,EAAE,OAAO,CAAC;IACvB,eAAe,EAAE,MAAM,GAAG,SAAS,CAAC;IACpC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,eAAe,EAAE,oBAAoB,EAAE,CAAC;IAC/C,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,OAAO,GAAE,gCAAqC;IAqBpD,IAAI,IAAI,OAAO,CAAC,yBAAyB,CAAC;IAc1C,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,QAAQ,EAAE,yBAAyB,KAAK,IAAI,GAAG,OAAO,CAAC,yBAAyB,CAAC;IAQxG,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,+BAA+B;IAehG,MAAM,CAAC,OAAO,EAAE,gCAAgC,GAAG,IAAI;IAmDvD,iBAAiB,CAAC,IAAI,EAAE,oBAAoB,GAAG,IAAI;IAKnD,oBAAoB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAW/C,KAAK,IAAI,yBAAyB;IAIlC,MAAM,IAAI,gCAAgC;IAgB1C,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
@@ -1,5 +1,6 @@
1
1
  import { safeInvokeCompatListener } from "./event-bus.js";
2
2
  export class ClassBreaksRendererCompat {
3
+ visualVariables;
3
4
  loaded;
4
5
  loadStatus;
5
6
  field;
@@ -14,6 +15,7 @@ export class ClassBreaksRendererCompat {
14
15
  classBreakInfos;
15
16
  watchListeners;
16
17
  constructor(options = {}) {
18
+ this.visualVariables = structuredClone(options.visualVariables ?? []);
17
19
  this.loaded = false;
18
20
  this.loadStatus = "not-loaded";
19
21
  this.field = options.field;
@@ -65,6 +67,10 @@ export class ClassBreaksRendererCompat {
65
67
  };
66
68
  }
67
69
  update(options) {
70
+ if (options.visualVariables !== undefined) {
71
+ this.visualVariables = structuredClone(options.visualVariables);
72
+ this.notifyWatchers("visualVariables", this.visualVariables);
73
+ }
68
74
  if (options.field !== undefined) {
69
75
  this.field = options.field;
70
76
  this.notifyWatchers("field", this.field);
@@ -128,6 +134,7 @@ export class ClassBreaksRendererCompat {
128
134
  }
129
135
  toJSON() {
130
136
  return {
137
+ visualVariables: structuredClone(this.visualVariables),
131
138
  field: this.field,
132
139
  normalizationField: this.normalizationField,
133
140
  normalizationTotal: this.normalizationTotal,
@@ -1,4 +1,5 @@
1
1
  import { CompatEventBus, type CompatEventSubscription } from "./event-bus.js";
2
+ import { GraphicCompat } from "./graphic.js";
2
3
  /** Structural type for viewpoint-like objects used by controls. */
3
4
  export interface ControlViewpointLike {
4
5
  targetGeometry?: Record<string, unknown>;
@@ -26,7 +27,7 @@ interface BaseControlCompatOptions {
26
27
  }
27
28
  export declare class BaseControlCompat {
28
29
  readonly view: unknown;
29
- readonly container: HTMLElement | string | null;
30
+ container: HTMLElement | string | null;
30
31
  readonly eventBus: CompatEventBus;
31
32
  loaded: boolean;
32
33
  loadStatus: ControlLoadStatusCompat;
@@ -105,9 +106,16 @@ export interface LocatePositionCompat {
105
106
  export declare class LocateCompat extends BaseControlCompat {
106
107
  readonly zoom: number | undefined;
107
108
  lastPosition: LocatePositionCompat | undefined;
109
+ /** Mirrors the Esri Locate view model state watched by `watchUtils.init`. */
110
+ readonly viewModel: {
111
+ state: "ready" | "disabled";
112
+ };
113
+ /** The latest locate result, so a directions stop can clone it. */
114
+ graphic: GraphicCompat | undefined;
108
115
  private readonly locateProvider;
109
116
  protected get controlName(): string;
110
117
  constructor(options?: LocateCompatOptions);
118
+ attachContainer(element: HTMLElement): void;
111
119
  locate(): Promise<LocatePositionCompat>;
112
120
  }
113
121
  export interface CompassCompatOptions {
@@ -133,6 +141,7 @@ export declare class ZoomCompat extends BaseControlCompat {
133
141
  readonly layout: "vertical" | "horizontal";
134
142
  protected get controlName(): string;
135
143
  constructor(options?: ZoomCompatOptions);
144
+ attachContainer(element: HTMLElement): void;
136
145
  zoomIn(step?: number): number | undefined;
137
146
  zoomOut(step?: number): number | undefined;
138
147
  private adjustZoom;
@@ -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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"}
@@ -1,4 +1,5 @@
1
1
  import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener, } from "./event-bus.js";
2
+ import { GraphicCompat } from "./graphic.js";
2
3
  export class BaseControlCompat {
3
4
  view;
4
5
  container;
@@ -193,6 +194,10 @@ export class ScaleBarCompat extends BaseControlCompat {
193
194
  export class LocateCompat extends BaseControlCompat {
194
195
  zoom;
195
196
  lastPosition;
197
+ /** Mirrors the Esri Locate view model state watched by `watchUtils.init`. */
198
+ viewModel;
199
+ /** The latest locate result, so a directions stop can clone it. */
200
+ graphic;
196
201
  locateProvider;
197
202
  get controlName() {
198
203
  return "locate";
@@ -201,14 +206,26 @@ export class LocateCompat extends BaseControlCompat {
201
206
  super(options);
202
207
  this.zoom = options.zoom;
203
208
  this.lastPosition = undefined;
209
+ this.graphic = undefined;
210
+ this.viewModel = { state: "ready" };
204
211
  this.locateProvider = options.locateProvider ?? getDefaultLocateProvider();
212
+ mountLocateButton(this);
213
+ }
214
+ attachContainer(element) {
215
+ this.container = element;
216
+ mountLocateButton(this);
205
217
  }
206
218
  async locate() {
219
+ this.viewModel.state = "disabled";
207
220
  this.eventBus.emit("locate.start", undefined, this);
208
221
  try {
209
222
  const position = await this.locateProvider();
210
223
  this.lastPosition = position;
224
+ this.graphic = new GraphicCompat({
225
+ geometry: { x: position.coords.longitude, y: position.coords.latitude },
226
+ });
211
227
  this.notifyWatchers("lastPosition", this.lastPosition);
228
+ this.notifyWatchers("graphic", this.graphic);
212
229
  const center = [position.coords.longitude, position.coords.latitude];
213
230
  const target = {
214
231
  center,
@@ -225,9 +242,11 @@ export class LocateCompat extends BaseControlCompat {
225
242
  center,
226
243
  zoom: this.zoom,
227
244
  }, this);
245
+ this.viewModel.state = "ready";
228
246
  return position;
229
247
  }
230
248
  catch (error) {
249
+ this.viewModel.state = "ready";
231
250
  this.eventBus.emit("locate.error", { error }, this);
232
251
  throw error;
233
252
  }
@@ -269,6 +288,11 @@ export class ZoomCompat extends BaseControlCompat {
269
288
  constructor(options = {}) {
270
289
  super(options);
271
290
  this.layout = options.layout ?? "vertical";
291
+ mountZoomButtons(this);
292
+ }
293
+ attachContainer(element) {
294
+ this.container = element;
295
+ mountZoomButtons(this);
272
296
  }
273
297
  zoomIn(step = 1) {
274
298
  return this.adjustZoom(Math.abs(step));
@@ -277,16 +301,76 @@ export class ZoomCompat extends BaseControlCompat {
277
301
  return this.adjustZoom(-Math.abs(step));
278
302
  }
279
303
  adjustZoom(delta) {
280
- if (!isRecord(this.view) || typeof this.view.zoom !== "number" || !Number.isFinite(this.view.zoom)) {
304
+ if (!isRecord(this.view)) {
281
305
  return undefined;
282
306
  }
283
- const next = this.view.zoom + delta;
307
+ const current = typeof this.view.zoom === "number" && Number.isFinite(this.view.zoom) ? this.view.zoom : 2;
308
+ const next = current + delta;
284
309
  this.view.zoom = next;
310
+ const goTo = this.view.goTo;
311
+ if (typeof goTo === "function") {
312
+ void goTo.call(this.view, { zoom: next });
313
+ }
285
314
  this.notifyWatchers("zoom", next);
286
315
  this.eventBus.emit("zoom.changed", { zoom: next, delta }, this);
287
316
  return next;
288
317
  }
289
318
  }
319
+ function mountZoomButtons(zoom) {
320
+ const container = zoom.container;
321
+ const element = typeof HTMLElement !== "undefined" && container instanceof HTMLElement
322
+ ? container
323
+ : typeof container === "string" && typeof document !== "undefined"
324
+ ? document.getElementById(container)
325
+ : null;
326
+ if (!element) {
327
+ return;
328
+ }
329
+ element.querySelector(":scope > .honua-zoom")?.remove();
330
+ const bar = document.createElement("div");
331
+ bar.className = "honua-zoom";
332
+ bar.style.display = "flex";
333
+ bar.style.flexDirection = zoom.layout === "horizontal" ? "row" : "column";
334
+ bar.style.gap = "4px";
335
+ for (const [label, step] of [
336
+ ["+", 1],
337
+ ["−", -1],
338
+ ]) {
339
+ const button = document.createElement("button");
340
+ button.type = "button";
341
+ button.textContent = label;
342
+ button.addEventListener("click", () => {
343
+ if (step > 0) {
344
+ zoom.zoomIn();
345
+ }
346
+ else {
347
+ zoom.zoomOut();
348
+ }
349
+ });
350
+ bar.append(button);
351
+ }
352
+ element.append(bar);
353
+ }
354
+ function mountLocateButton(locate) {
355
+ const container = locate.container;
356
+ const element = typeof HTMLElement !== "undefined" && container instanceof HTMLElement
357
+ ? container
358
+ : typeof container === "string" && typeof document !== "undefined"
359
+ ? document.getElementById(container)
360
+ : null;
361
+ if (!element) {
362
+ return;
363
+ }
364
+ element.querySelector(":scope > .honua-locate")?.remove();
365
+ const button = document.createElement("button");
366
+ button.type = "button";
367
+ button.className = "honua-locate";
368
+ button.textContent = "Locate";
369
+ button.addEventListener("click", () => {
370
+ void locate.locate();
371
+ });
372
+ element.append(button);
373
+ }
290
374
  export class FullscreenCompat extends BaseControlCompat {
291
375
  element;
292
376
  active;
@@ -1,11 +1,14 @@
1
1
  import { CompatEventBus } from "./event-bus.js";
2
2
  import { RouteLayerCompat, type RouteLayerCompatOptions, type RouteSolveResultCompat, type RouteStopCompat } from "./route-layer.js";
3
+ import { type RouteTaskSolveResultCompat } from "./route-task.js";
3
4
  export interface DirectionsCompatOptions {
4
5
  view?: unknown;
5
6
  container?: unknown;
6
7
  layer?: RouteLayerCompat;
7
8
  eventBus?: CompatEventBus;
8
9
  routeProvider?: RouteLayerCompatOptions["routeProvider"];
10
+ routeServiceUrl?: string;
11
+ apiKey?: string;
9
12
  stops?: readonly RouteStopCompat[];
10
13
  useDefaultRouteLayer?: boolean;
11
14
  showSaveAsButton?: boolean;
@@ -42,4 +45,36 @@ export declare class DirectionsCompat {
42
45
  destroy(): void;
43
46
  private notifyWatchers;
44
47
  }
48
+ /**
49
+ * The Esri `DirectionsViewModel` shape used by webpack 4.x apps: a view, a stop
50
+ * collection, `load`, `getDirections`, and `reset`. With no custom route
51
+ * provider, `load` reads travel modes and `getDirections` solves
52
+ * `routeServiceUrl` (the Esri world route service by default).
53
+ */
54
+ export declare class DirectionsViewModelCompat {
55
+ view: unknown;
56
+ loaded: boolean;
57
+ selectedTravelMode: unknown;
58
+ readonly routeServiceUrl: string;
59
+ /** Filled from the route service during `load`. `find` returns undefined until then. */
60
+ readonly travelModes: Array<{
61
+ name?: string;
62
+ }>;
63
+ readonly layer: RouteLayerCompat;
64
+ readonly stops: {
65
+ removeAll(): void;
66
+ addMany(stops: readonly unknown[]): void;
67
+ };
68
+ private readonly apiKey;
69
+ private readonly routeProvider;
70
+ constructor(options?: {
71
+ view?: unknown;
72
+ routeServiceUrl?: string;
73
+ apiKey?: string;
74
+ routeProvider?: RouteLayerCompatOptions["routeProvider"];
75
+ });
76
+ load(): Promise<this>;
77
+ getDirections(): Promise<RouteTaskSolveResultCompat | undefined>;
78
+ reset(): void;
79
+ }
45
80
  //# sourceMappingURL=directions.d.ts.map