@honua/sdk-esri-compat 0.0.6-alpha.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 (289) hide show
  1. package/README.md +5 -0
  2. package/contract/edit-session.d.ts +203 -0
  3. package/contract/edit-session.d.ts.map +1 -0
  4. package/contract/edit-session.js +717 -0
  5. package/contract/index.d.ts +20 -0
  6. package/contract/index.d.ts.map +1 -0
  7. package/contract/index.js +15 -0
  8. package/contract/jobs.d.ts +115 -0
  9. package/contract/jobs.d.ts.map +1 -0
  10. package/contract/jobs.js +22 -0
  11. package/contract/source.d.ts +138 -0
  12. package/contract/source.d.ts.map +1 -0
  13. package/contract/source.js +3364 -0
  14. package/contract/spatial-aggregation.d.ts +312 -0
  15. package/contract/spatial-aggregation.d.ts.map +1 -0
  16. package/contract/spatial-aggregation.js +196 -0
  17. package/contract/types.d.ts +542 -0
  18. package/contract/types.d.ts.map +1 -0
  19. package/contract/types.js +171 -0
  20. package/core/batch.d.ts +37 -0
  21. package/core/batch.d.ts.map +1 -0
  22. package/core/batch.js +78 -0
  23. package/core/cache-state.d.ts +76 -0
  24. package/core/cache-state.d.ts.map +1 -0
  25. package/core/cache-state.js +84 -0
  26. package/core/client.d.ts +289 -0
  27. package/core/client.d.ts.map +1 -0
  28. package/core/client.js +2625 -0
  29. package/core/errors.d.ts +68 -0
  30. package/core/errors.d.ts.map +1 -0
  31. package/core/errors.js +116 -0
  32. package/core/grpc-adapter.d.ts +23 -0
  33. package/core/grpc-adapter.d.ts.map +1 -0
  34. package/core/grpc-adapter.js +704 -0
  35. package/core/odata.d.ts +347 -0
  36. package/core/odata.d.ts.map +1 -0
  37. package/core/odata.js +837 -0
  38. package/core/ogc-conformance.d.ts +35 -0
  39. package/core/ogc-conformance.d.ts.map +1 -0
  40. package/core/ogc-conformance.js +121 -0
  41. package/core/ogc-maps.d.ts +45 -0
  42. package/core/ogc-maps.d.ts.map +1 -0
  43. package/core/ogc-maps.js +53 -0
  44. package/core/ogc-processes.d.ts +92 -0
  45. package/core/ogc-processes.d.ts.map +1 -0
  46. package/core/ogc-processes.js +325 -0
  47. package/core/ogc-tiles.d.ts +55 -0
  48. package/core/ogc-tiles.d.ts.map +1 -0
  49. package/core/ogc-tiles.js +81 -0
  50. package/core/pbf-decoder.d.ts +28 -0
  51. package/core/pbf-decoder.d.ts.map +1 -0
  52. package/core/pbf-decoder.js +627 -0
  53. package/core/query-builder.d.ts +261 -0
  54. package/core/query-builder.d.ts.map +1 -0
  55. package/core/query-builder.js +538 -0
  56. package/core/spatial-filter.d.ts +93 -0
  57. package/core/spatial-filter.d.ts.map +1 -0
  58. package/core/spatial-filter.js +153 -0
  59. package/core/stac.d.ts +43 -0
  60. package/core/stac.d.ts.map +1 -0
  61. package/core/stac.js +116 -0
  62. package/core/surfaces.d.ts +464 -0
  63. package/core/surfaces.d.ts.map +1 -0
  64. package/core/surfaces.js +1322 -0
  65. package/core/types.d.ts +1238 -0
  66. package/core/types.d.ts.map +1 -0
  67. package/core/types.js +13 -0
  68. package/core/wfs-capabilities.d.ts +143 -0
  69. package/core/wfs-capabilities.d.ts.map +1 -0
  70. package/core/wfs-capabilities.js +478 -0
  71. package/core/wfs-filter.d.ts +118 -0
  72. package/core/wfs-filter.d.ts.map +1 -0
  73. package/core/wfs-filter.js +586 -0
  74. package/core/wfs.d.ts +219 -0
  75. package/core/wfs.d.ts.map +1 -0
  76. package/core/wfs.js +406 -0
  77. package/core/wms-capabilities.d.ts +110 -0
  78. package/core/wms-capabilities.d.ts.map +1 -0
  79. package/core/wms-capabilities.js +566 -0
  80. package/core/wms-types.d.ts +128 -0
  81. package/core/wms-types.d.ts.map +1 -0
  82. package/core/wms-types.js +32 -0
  83. package/core/wms.d.ts +108 -0
  84. package/core/wms.d.ts.map +1 -0
  85. package/core/wms.js +182 -0
  86. package/core/wmts-capabilities.d.ts +82 -0
  87. package/core/wmts-capabilities.d.ts.map +1 -0
  88. package/core/wmts-capabilities.js +409 -0
  89. package/core/wmts.d.ts +80 -0
  90. package/core/wmts.d.ts.map +1 -0
  91. package/core/wmts.js +173 -0
  92. package/esri-compat/basemap-gallery.d.ts +38 -0
  93. package/esri-compat/basemap-gallery.d.ts.map +1 -0
  94. package/esri-compat/basemap-gallery.js +159 -0
  95. package/esri-compat/basemap-layer-list.d.ts +35 -0
  96. package/esri-compat/basemap-layer-list.d.ts.map +1 -0
  97. package/esri-compat/basemap-layer-list.js +139 -0
  98. package/esri-compat/basemap.d.ts +32 -0
  99. package/esri-compat/basemap.d.ts.map +1 -0
  100. package/esri-compat/basemap.js +84 -0
  101. package/esri-compat/bookmarks.d.ts +36 -0
  102. package/esri-compat/bookmarks.d.ts.map +1 -0
  103. package/esri-compat/bookmarks.js +108 -0
  104. package/esri-compat/class-breaks-renderer.d.ts +50 -0
  105. package/esri-compat/class-breaks-renderer.d.ts.map +1 -0
  106. package/esri-compat/class-breaks-renderer.js +164 -0
  107. package/esri-compat/color.d.ts +22 -0
  108. package/esri-compat/color.d.ts.map +1 -0
  109. package/esri-compat/color.js +106 -0
  110. package/esri-compat/controls.d.ts +174 -0
  111. package/esri-compat/controls.d.ts.map +1 -0
  112. package/esri-compat/controls.js +479 -0
  113. package/esri-compat/coordinate-conversion.d.ts +41 -0
  114. package/esri-compat/coordinate-conversion.d.ts.map +1 -0
  115. package/esri-compat/coordinate-conversion.js +125 -0
  116. package/esri-compat/directions.d.ts +45 -0
  117. package/esri-compat/directions.d.ts.map +1 -0
  118. package/esri-compat/directions.js +123 -0
  119. package/esri-compat/editor.d.ts +47 -0
  120. package/esri-compat/editor.d.ts.map +1 -0
  121. package/esri-compat/editor.js +170 -0
  122. package/esri-compat/esri-config.d.ts +16 -0
  123. package/esri-compat/esri-config.d.ts.map +1 -0
  124. package/esri-compat/esri-config.js +23 -0
  125. package/esri-compat/esri-request.d.ts +17 -0
  126. package/esri-compat/esri-request.d.ts.map +1 -0
  127. package/esri-compat/esri-request.js +66 -0
  128. package/esri-compat/event-bus.d.ts +106 -0
  129. package/esri-compat/event-bus.d.ts.map +1 -0
  130. package/esri-compat/event-bus.js +90 -0
  131. package/esri-compat/expand.d.ts +36 -0
  132. package/esri-compat/expand.d.ts.map +1 -0
  133. package/esri-compat/expand.js +97 -0
  134. package/esri-compat/extent.d.ts +43 -0
  135. package/esri-compat/extent.d.ts.map +1 -0
  136. package/esri-compat/extent.js +140 -0
  137. package/esri-compat/feature-form.d.ts +64 -0
  138. package/esri-compat/feature-form.d.ts.map +1 -0
  139. package/esri-compat/feature-form.js +137 -0
  140. package/esri-compat/feature-layer.d.ts +173 -0
  141. package/esri-compat/feature-layer.d.ts.map +1 -0
  142. package/esri-compat/feature-layer.js +655 -0
  143. package/esri-compat/feature-set.d.ts +32 -0
  144. package/esri-compat/feature-set.d.ts.map +1 -0
  145. package/esri-compat/feature-set.js +80 -0
  146. package/esri-compat/feature-table.d.ts +141 -0
  147. package/esri-compat/feature-table.d.ts.map +1 -0
  148. package/esri-compat/feature-table.js +500 -0
  149. package/esri-compat/feature-templates.d.ts +41 -0
  150. package/esri-compat/feature-templates.d.ts.map +1 -0
  151. package/esri-compat/feature-templates.js +97 -0
  152. package/esri-compat/feature.d.ts +33 -0
  153. package/esri-compat/feature.d.ts.map +1 -0
  154. package/esri-compat/feature.js +83 -0
  155. package/esri-compat/graphic.d.ts +46 -0
  156. package/esri-compat/graphic.d.ts.map +1 -0
  157. package/esri-compat/graphic.js +103 -0
  158. package/esri-compat/graphics-layer.d.ts +49 -0
  159. package/esri-compat/graphics-layer.d.ts.map +1 -0
  160. package/esri-compat/graphics-layer.js +185 -0
  161. package/esri-compat/group-layer.d.ts +48 -0
  162. package/esri-compat/group-layer.d.ts.map +1 -0
  163. package/esri-compat/group-layer.js +212 -0
  164. package/esri-compat/identify.d.ts +71 -0
  165. package/esri-compat/identify.d.ts.map +1 -0
  166. package/esri-compat/identify.js +299 -0
  167. package/esri-compat/identity-manager.d.ts +31 -0
  168. package/esri-compat/identity-manager.d.ts.map +1 -0
  169. package/esri-compat/identity-manager.js +115 -0
  170. package/esri-compat/label-class.d.ts +31 -0
  171. package/esri-compat/label-class.d.ts.map +1 -0
  172. package/esri-compat/label-class.js +102 -0
  173. package/esri-compat/layer-list.d.ts +77 -0
  174. package/esri-compat/layer-list.d.ts.map +1 -0
  175. package/esri-compat/layer-list.js +342 -0
  176. package/esri-compat/legend.d.ts +53 -0
  177. package/esri-compat/legend.d.ts.map +1 -0
  178. package/esri-compat/legend.js +254 -0
  179. package/esri-compat/map-image-layer.d.ts +162 -0
  180. package/esri-compat/map-image-layer.d.ts.map +1 -0
  181. package/esri-compat/map-image-layer.js +704 -0
  182. package/esri-compat/map-view.d.ts +315 -0
  183. package/esri-compat/map-view.d.ts.map +1 -0
  184. package/esri-compat/map-view.js +1110 -0
  185. package/esri-compat/map.d.ts +47 -0
  186. package/esri-compat/map.d.ts.map +1 -0
  187. package/esri-compat/map.js +209 -0
  188. package/esri-compat/measurement-2d.d.ts +61 -0
  189. package/esri-compat/measurement-2d.d.ts.map +1 -0
  190. package/esri-compat/measurement-2d.js +184 -0
  191. package/esri-compat/measurement.d.ts +45 -0
  192. package/esri-compat/measurement.d.ts.map +1 -0
  193. package/esri-compat/measurement.js +193 -0
  194. package/esri-compat/oauth-info.d.ts +35 -0
  195. package/esri-compat/oauth-info.d.ts.map +1 -0
  196. package/esri-compat/oauth-info.js +115 -0
  197. package/esri-compat/picture-marker-symbol.d.ts +35 -0
  198. package/esri-compat/picture-marker-symbol.d.ts.map +1 -0
  199. package/esri-compat/picture-marker-symbol.js +126 -0
  200. package/esri-compat/point.d.ts +31 -0
  201. package/esri-compat/point.d.ts.map +1 -0
  202. package/esri-compat/point.js +102 -0
  203. package/esri-compat/polygon.d.ts +31 -0
  204. package/esri-compat/polygon.d.ts.map +1 -0
  205. package/esri-compat/polygon.js +107 -0
  206. package/esri-compat/polyline.d.ts +31 -0
  207. package/esri-compat/polyline.d.ts.map +1 -0
  208. package/esri-compat/polyline.js +107 -0
  209. package/esri-compat/popup-template.d.ts +55 -0
  210. package/esri-compat/popup-template.d.ts.map +1 -0
  211. package/esri-compat/popup-template.js +128 -0
  212. package/esri-compat/popup.d.ts +54 -0
  213. package/esri-compat/popup.d.ts.map +1 -0
  214. package/esri-compat/popup.js +312 -0
  215. package/esri-compat/print.d.ts +47 -0
  216. package/esri-compat/print.d.ts.map +1 -0
  217. package/esri-compat/print.js +105 -0
  218. package/esri-compat/query.d.ts +46 -0
  219. package/esri-compat/query.d.ts.map +1 -0
  220. package/esri-compat/query.js +119 -0
  221. package/esri-compat/reactive-utils.d.ts +23 -0
  222. package/esri-compat/reactive-utils.d.ts.map +1 -0
  223. package/esri-compat/reactive-utils.js +178 -0
  224. package/esri-compat/request.d.ts +41 -0
  225. package/esri-compat/request.d.ts.map +1 -0
  226. package/esri-compat/request.js +253 -0
  227. package/esri-compat/route-layer.d.ts +59 -0
  228. package/esri-compat/route-layer.d.ts.map +1 -0
  229. package/esri-compat/route-layer.js +223 -0
  230. package/esri-compat/route-task.d.ts +88 -0
  231. package/esri-compat/route-task.d.ts.map +1 -0
  232. package/esri-compat/route-task.js +225 -0
  233. package/esri-compat/scene-view.d.ts +41 -0
  234. package/esri-compat/scene-view.d.ts.map +1 -0
  235. package/esri-compat/scene-view.js +68 -0
  236. package/esri-compat/search.d.ts +112 -0
  237. package/esri-compat/search.d.ts.map +1 -0
  238. package/esri-compat/search.js +820 -0
  239. package/esri-compat/simple-fill-symbol.d.ts +27 -0
  240. package/esri-compat/simple-fill-symbol.d.ts.map +1 -0
  241. package/esri-compat/simple-fill-symbol.js +85 -0
  242. package/esri-compat/simple-line-symbol.d.ts +27 -0
  243. package/esri-compat/simple-line-symbol.d.ts.map +1 -0
  244. package/esri-compat/simple-line-symbol.js +85 -0
  245. package/esri-compat/simple-marker-symbol.d.ts +29 -0
  246. package/esri-compat/simple-marker-symbol.d.ts.map +1 -0
  247. package/esri-compat/simple-marker-symbol.js +92 -0
  248. package/esri-compat/simple-renderer.d.ts +29 -0
  249. package/esri-compat/simple-renderer.d.ts.map +1 -0
  250. package/esri-compat/simple-renderer.js +92 -0
  251. package/esri-compat/sketch.d.ts +64 -0
  252. package/esri-compat/sketch.d.ts.map +1 -0
  253. package/esri-compat/sketch.js +227 -0
  254. package/esri-compat/spatial-reference.d.ts +31 -0
  255. package/esri-compat/spatial-reference.d.ts.map +1 -0
  256. package/esri-compat/spatial-reference.js +102 -0
  257. package/esri-compat/swipe.d.ts +34 -0
  258. package/esri-compat/swipe.d.ts.map +1 -0
  259. package/esri-compat/swipe.js +93 -0
  260. package/esri-compat/table-list.d.ts +36 -0
  261. package/esri-compat/table-list.d.ts.map +1 -0
  262. package/esri-compat/table-list.js +126 -0
  263. package/esri-compat/text-symbol.d.ts +37 -0
  264. package/esri-compat/text-symbol.d.ts.map +1 -0
  265. package/esri-compat/text-symbol.js +123 -0
  266. package/esri-compat/tile-layer.d.ts +52 -0
  267. package/esri-compat/tile-layer.d.ts.map +1 -0
  268. package/esri-compat/tile-layer.js +167 -0
  269. package/esri-compat/time-slider.d.ts +70 -0
  270. package/esri-compat/time-slider.d.ts.map +1 -0
  271. package/esri-compat/time-slider.js +208 -0
  272. package/esri-compat/track.d.ts +51 -0
  273. package/esri-compat/track.d.ts.map +1 -0
  274. package/esri-compat/track.js +174 -0
  275. package/esri-compat/unique-value-renderer.d.ts +41 -0
  276. package/esri-compat/unique-value-renderer.d.ts.map +1 -0
  277. package/esri-compat/unique-value-renderer.js +127 -0
  278. package/esri-compat/url.d.ts +12 -0
  279. package/esri-compat/url.d.ts.map +1 -0
  280. package/esri-compat/url.js +54 -0
  281. package/esri-compat/web-map.d.ts +14 -0
  282. package/esri-compat/web-map.d.ts.map +1 -0
  283. package/esri-compat/web-map.js +24 -0
  284. package/gen/honua/v1/feature_service_pb.d.ts +918 -0
  285. package/gen/honua/v1/feature_service_pb.d.ts.map +1 -0
  286. package/gen/honua/v1/feature_service_pb.js +375 -0
  287. package/index.d.ts +130 -0
  288. package/index.js +65 -0
  289. package/package.json +22 -0
@@ -0,0 +1,53 @@
1
+ import { CompatEventBus } from "./event-bus.js";
2
+ export interface LegendCompatOptions {
3
+ view?: unknown;
4
+ map?: unknown;
5
+ layers?: readonly unknown[];
6
+ container?: unknown;
7
+ eventBus?: CompatEventBus;
8
+ includeHidden?: boolean;
9
+ autoRefresh?: boolean;
10
+ }
11
+ export interface LegendItemCompat {
12
+ layerId: number | undefined;
13
+ layerName: string | undefined;
14
+ label: string;
15
+ imageData: string | undefined;
16
+ contentType: string | undefined;
17
+ width: number | undefined;
18
+ height: number | undefined;
19
+ }
20
+ export interface LegendLayerGroupCompat {
21
+ layer: unknown;
22
+ title: string;
23
+ entries: LegendItemCompat[];
24
+ }
25
+ export type LegendLoadStatusCompat = "not-loaded" | "loading" | "loaded";
26
+ export interface LegendHandleCompat {
27
+ remove(): void;
28
+ }
29
+ export declare class LegendCompat {
30
+ readonly view: unknown;
31
+ readonly map: unknown;
32
+ readonly container: unknown;
33
+ readonly eventBus: CompatEventBus;
34
+ readonly includeHidden: boolean;
35
+ loaded: boolean;
36
+ loadStatus: LegendLoadStatusCompat;
37
+ items: LegendLayerGroupCompat[];
38
+ private readonly explicitLayers;
39
+ private readonly autoRefresh;
40
+ private readonly watchListeners;
41
+ private subscriptions;
42
+ private refreshRevision;
43
+ constructor(options?: LegendCompatOptions);
44
+ load(): Promise<LegendCompat>;
45
+ when(callback?: (widget: LegendCompat) => void): Promise<LegendCompat>;
46
+ watch(propertyName: string, listener: (value: unknown) => void): LegendHandleCompat;
47
+ refresh(): Promise<readonly LegendLayerGroupCompat[]>;
48
+ destroy(): void;
49
+ private resolveLegendLayers;
50
+ private nextRefreshRevision;
51
+ private notifyWatchers;
52
+ }
53
+ //# sourceMappingURL=legend.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"legend.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/legend.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;AAExB,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5B,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,WAAW,CAAC,EAAE,OAAO,CAAC;CACvB;AAED,MAAM,WAAW,gBAAgB;IAC/B,OAAO,EAAE,MAAM,GAAG,SAAS,CAAC;IAC5B,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,GAAG,SAAS,CAAC;IAC9B,WAAW,EAAE,MAAM,GAAG,SAAS,CAAC;IAChC,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1B,MAAM,EAAE,MAAM,GAAG,SAAS,CAAC;CAC5B;AAED,MAAM,WAAW,sBAAsB;IACrC,KAAK,EAAE,OAAO,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,gBAAgB,EAAE,CAAC;CAC7B;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,GAAG,EAAE,OAAO,CAAC;IAC7B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IACzC,SAAgB,aAAa,EAAE,OAAO,CAAC;IAChC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,sBAAsB,CAAC;IACnC,KAAK,EAAE,sBAAsB,EAAE,CAAC;IAEvC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAAiC;IAChE,OAAO,CAAC,QAAQ,CAAC,WAAW,CAAU;IACtC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,aAAa,CAA4B;IACjD,OAAO,CAAC,eAAe,CAAS;gBAEb,OAAO,GAAE,mBAAwB;IA+BvC,IAAI,IAAI,OAAO,CAAC,YAAY,CAAC;IAiB7B,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;IAe7E,OAAO,IAAI,OAAO,CAAC,SAAS,sBAAsB,EAAE,CAAC;IAoC3D,OAAO,IAAI,IAAI;IAOtB,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,cAAc;CAUvB"}
@@ -0,0 +1,254 @@
1
+ import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener, } from "./event-bus.js";
2
+ export class LegendCompat {
3
+ view;
4
+ map;
5
+ container;
6
+ eventBus;
7
+ includeHidden;
8
+ loaded;
9
+ loadStatus;
10
+ items;
11
+ explicitLayers;
12
+ autoRefresh;
13
+ watchListeners;
14
+ subscriptions;
15
+ refreshRevision;
16
+ constructor(options = {}) {
17
+ this.view = options.view;
18
+ this.map = options.map ?? extractMapFromView(options.view);
19
+ this.container = options.container;
20
+ this.explicitLayers = options.layers;
21
+ this.eventBus =
22
+ options.eventBus ?? resolveCompatEventBus(this.view, this.map, options.layers) ?? new CompatEventBus();
23
+ this.includeHidden = options.includeHidden ?? false;
24
+ this.loaded = false;
25
+ this.loadStatus = "not-loaded";
26
+ this.autoRefresh = options.autoRefresh ?? true;
27
+ this.items = [];
28
+ this.watchListeners = new Map();
29
+ this.subscriptions = [];
30
+ this.refreshRevision = 0;
31
+ if (this.autoRefresh) {
32
+ this.subscriptions.push(this.eventBus.on("map.layer-added", () => void this.refresh()));
33
+ this.subscriptions.push(this.eventBus.on("map.layer-removed", () => void this.refresh()));
34
+ this.subscriptions.push(this.eventBus.on("map.layers-added", () => void this.refresh()));
35
+ this.subscriptions.push(this.eventBus.on("map.layers-cleared", () => void this.refresh()));
36
+ this.subscriptions.push(this.eventBus.on("map.layer-reordered", () => void this.refresh()));
37
+ this.subscriptions.push(this.eventBus.on("group-layer.layer-added", () => void this.refresh()));
38
+ this.subscriptions.push(this.eventBus.on("group-layer.layer-removed", () => void this.refresh()));
39
+ this.subscriptions.push(this.eventBus.on("group-layer.layers-added", () => void this.refresh()));
40
+ this.subscriptions.push(this.eventBus.on("group-layer.layers-cleared", () => void this.refresh()));
41
+ this.subscriptions.push(this.eventBus.on("layer.visibility-changed", () => void this.refresh()));
42
+ this.subscriptions.push(this.eventBus.on("layer.legend-updated", () => void this.refresh()));
43
+ }
44
+ }
45
+ async load() {
46
+ if (this.loaded) {
47
+ return this;
48
+ }
49
+ this.loadStatus = "loading";
50
+ this.notifyWatchers("loadStatus", this.loadStatus);
51
+ this.eventBus.emit("legend.loading", undefined, this);
52
+ await this.refresh();
53
+ this.loaded = true;
54
+ this.notifyWatchers("loaded", this.loaded);
55
+ this.loadStatus = "loaded";
56
+ this.notifyWatchers("loadStatus", this.loadStatus);
57
+ this.eventBus.emit("legend.loaded", { layerCount: this.items.length }, this);
58
+ return this;
59
+ }
60
+ async when(callback) {
61
+ const widget = await this.load();
62
+ if (callback) {
63
+ callback(widget);
64
+ }
65
+ return widget;
66
+ }
67
+ watch(propertyName, listener) {
68
+ let listeners = this.watchListeners.get(propertyName);
69
+ if (!listeners) {
70
+ listeners = new Set();
71
+ this.watchListeners.set(propertyName, listeners);
72
+ }
73
+ listeners.add(listener);
74
+ return {
75
+ remove: () => {
76
+ listeners?.delete(listener);
77
+ },
78
+ };
79
+ }
80
+ async refresh() {
81
+ const refreshRevision = this.nextRefreshRevision();
82
+ const layers = this.resolveLegendLayers();
83
+ const groups = [];
84
+ for (const layer of layers) {
85
+ if (!this.includeHidden && !isLayerVisible(layer)) {
86
+ continue;
87
+ }
88
+ let entries;
89
+ try {
90
+ entries = await extractLegendEntries(layer);
91
+ }
92
+ catch (error) {
93
+ this.eventBus.emit("legend.layer-failed", { layer, error }, this);
94
+ continue;
95
+ }
96
+ if (entries.length === 0) {
97
+ continue;
98
+ }
99
+ groups.push({
100
+ layer,
101
+ title: toLayerTitle(layer, groups.length),
102
+ entries,
103
+ });
104
+ }
105
+ if (refreshRevision !== this.refreshRevision) {
106
+ return this.items;
107
+ }
108
+ this.items = groups;
109
+ this.notifyWatchers("items", this.items);
110
+ this.eventBus.emit("legend.updated", { layerCount: groups.length }, this);
111
+ return this.items;
112
+ }
113
+ destroy() {
114
+ for (const subscription of this.subscriptions.splice(0)) {
115
+ subscription.remove();
116
+ }
117
+ this.watchListeners.clear();
118
+ }
119
+ resolveLegendLayers() {
120
+ if (this.explicitLayers) {
121
+ return [...this.explicitLayers];
122
+ }
123
+ return getAllLegendLayers(this.map);
124
+ }
125
+ nextRefreshRevision() {
126
+ this.refreshRevision += 1;
127
+ return this.refreshRevision;
128
+ }
129
+ notifyWatchers(propertyName, value) {
130
+ const listeners = this.watchListeners.get(propertyName);
131
+ if (!listeners) {
132
+ return;
133
+ }
134
+ for (const listener of listeners) {
135
+ safeInvokeCompatListener(listener, value);
136
+ }
137
+ }
138
+ }
139
+ async function extractLegendEntries(layer) {
140
+ const response = await callLegendProvider(layer);
141
+ if (!isRecord(response) || !Array.isArray(response.layers)) {
142
+ return [];
143
+ }
144
+ const entries = [];
145
+ for (const layerEntry of response.layers) {
146
+ if (!isRecord(layerEntry) || !Array.isArray(layerEntry.legend)) {
147
+ continue;
148
+ }
149
+ for (const legendEntry of layerEntry.legend) {
150
+ if (!isRecord(legendEntry)) {
151
+ continue;
152
+ }
153
+ const label = typeof legendEntry.label === "string" ? legendEntry.label : "Legend";
154
+ entries.push({
155
+ layerId: toOptionalNumber(layerEntry.layerId),
156
+ layerName: toOptionalString(layerEntry.layerName),
157
+ label,
158
+ imageData: toOptionalString(legendEntry.imageData),
159
+ contentType: toOptionalString(legendEntry.contentType),
160
+ width: toOptionalNumber(legendEntry.width),
161
+ height: toOptionalNumber(legendEntry.height),
162
+ });
163
+ }
164
+ }
165
+ return entries;
166
+ }
167
+ async function callLegendProvider(layer) {
168
+ if (hasMethod(layer, "getLegend")) {
169
+ return layer.getLegend();
170
+ }
171
+ if (hasMethod(layer, "legend")) {
172
+ return layer.legend();
173
+ }
174
+ return undefined;
175
+ }
176
+ function extractMapFromView(view) {
177
+ if (!isRecord(view)) {
178
+ return undefined;
179
+ }
180
+ return view.map;
181
+ }
182
+ function getRootLayers(map) {
183
+ if (!isRecord(map) || !Array.isArray(map.layers)) {
184
+ return [];
185
+ }
186
+ return [...map.layers];
187
+ }
188
+ function getAllLegendLayers(map) {
189
+ if (!isRecord(map)) {
190
+ return [];
191
+ }
192
+ const candidates = Array.isArray(map.allLayers) ? map.allLayers : getRootLayers(map);
193
+ const layers = [];
194
+ const seen = new Set();
195
+ for (const candidate of candidates) {
196
+ collectLegendLayer(candidate, layers, seen);
197
+ }
198
+ return layers;
199
+ }
200
+ function collectLegendLayer(layer, layers, seen) {
201
+ if (seen.has(layer)) {
202
+ return;
203
+ }
204
+ seen.add(layer);
205
+ layers.push(layer);
206
+ for (const child of getChildLayers(layer)) {
207
+ collectLegendLayer(child, layers, seen);
208
+ }
209
+ }
210
+ function getChildLayers(layer) {
211
+ if (!isRecord(layer)) {
212
+ return [];
213
+ }
214
+ if (Array.isArray(layer.layers)) {
215
+ return [...layer.layers];
216
+ }
217
+ if (Array.isArray(layer.allSublayers)) {
218
+ return [...layer.allSublayers];
219
+ }
220
+ if (Array.isArray(layer.sublayers)) {
221
+ return [...layer.sublayers];
222
+ }
223
+ return [];
224
+ }
225
+ function isLayerVisible(layer) {
226
+ if (!isRecord(layer) || typeof layer.visible !== "boolean") {
227
+ return true;
228
+ }
229
+ return layer.visible;
230
+ }
231
+ function toLayerTitle(layer, index) {
232
+ if (!isRecord(layer)) {
233
+ return `Layer ${index + 1}`;
234
+ }
235
+ if (typeof layer.title === "string" && layer.title.trim().length > 0) {
236
+ return layer.title;
237
+ }
238
+ if (typeof layer.id === "string" && layer.id.trim().length > 0) {
239
+ return layer.id;
240
+ }
241
+ return `Layer ${index + 1}`;
242
+ }
243
+ function hasMethod(value, methodName) {
244
+ return isRecord(value) && typeof value[methodName] === "function";
245
+ }
246
+ function toOptionalString(value) {
247
+ return typeof value === "string" ? value : undefined;
248
+ }
249
+ function toOptionalNumber(value) {
250
+ return typeof value === "number" && Number.isFinite(value) ? value : undefined;
251
+ }
252
+ function isRecord(value) {
253
+ return typeof value === "object" && value !== null;
254
+ }
@@ -0,0 +1,162 @@
1
+ import { HonuaClient } from "../core/client.js";
2
+ import type { ExportMapRequest, HonuaApplyEditsResponse, HonuaExportMapResponse, HonuaFeature, HonuaFieldInfo, HonuaFindResponse, HonuaIdentifyResponse, HonuaLegendResponse, HonuaQueryResponse, HonuaRelatedRecordsResponse, MapFindRequest, MapIdentifyRequest, MapLayerQueryRequest, MapLegendRequest, MapRelatedRecordsRequest } from "../core/types.js";
3
+ import { CompatEventBus } from "./event-bus.js";
4
+ export interface MapImageLayerCompatOptions {
5
+ url: string;
6
+ id?: string;
7
+ title?: string;
8
+ sublayers?: readonly Record<string, unknown>[];
9
+ opacity?: number;
10
+ visible?: boolean;
11
+ minScale?: number;
12
+ maxScale?: number;
13
+ listMode?: string;
14
+ legendEnabled?: boolean;
15
+ client?: HonuaClient;
16
+ eventBus?: CompatEventBus;
17
+ }
18
+ export interface MapImageLayerExportOptions extends Omit<ExportMapRequest, "serviceId"> {
19
+ }
20
+ export interface MapImageLayerLegendOptions extends Omit<MapLegendRequest, "serviceId"> {
21
+ }
22
+ export interface MapImageLayerIdentifyOptions extends Omit<MapIdentifyRequest, "serviceId"> {
23
+ }
24
+ export interface MapImageLayerFindOptions extends Omit<MapFindRequest, "serviceId"> {
25
+ }
26
+ export interface MapImageLayerQueryOptions extends Omit<MapLayerQueryRequest, "serviceId"> {
27
+ }
28
+ export type MapImageLayerQueryAllOptions = MapImageLayerQueryOptions & {
29
+ pageSize?: number;
30
+ maxPages?: number;
31
+ };
32
+ export type MapImageLayerCreateQueryResult = MapImageLayerQueryOptions;
33
+ export type MapImageLayerQueryCountOptions = Pick<MapImageLayerQueryOptions, "layerId" | "where" | "method"> & {
34
+ extraParams?: Record<string, string | number | boolean>;
35
+ };
36
+ export type MapImageLayerQueryObjectIdsOptions = Pick<MapImageLayerQueryOptions, "layerId" | "where" | "method"> & {
37
+ extraParams?: Record<string, string | number | boolean>;
38
+ };
39
+ export type MapImageLayerQueryExtentOptions = Pick<MapImageLayerQueryOptions, "layerId" | "where" | "method"> & {
40
+ extraParams?: Record<string, string | number | boolean>;
41
+ };
42
+ export type MapImageLayerQueryRelatedFeaturesOptions = Omit<MapRelatedRecordsRequest, "serviceId">;
43
+ export interface MapImageLayerQueryExtentResponse {
44
+ extent: Record<string, unknown> | null;
45
+ count?: number;
46
+ }
47
+ export type MapImageSublayerQueryOptions = Omit<MapImageLayerQueryOptions, "layerId">;
48
+ export type MapImageSublayerQueryAllOptions = Omit<MapImageLayerQueryAllOptions, "layerId">;
49
+ export type MapImageSublayerCreateQueryResult = MapImageSublayerQueryOptions;
50
+ export type MapImageSublayerQueryCountOptions = Omit<MapImageLayerQueryCountOptions, "layerId">;
51
+ export type MapImageSublayerQueryObjectIdsOptions = Omit<MapImageLayerQueryObjectIdsOptions, "layerId">;
52
+ export type MapImageSublayerQueryExtentOptions = Omit<MapImageLayerQueryExtentOptions, "layerId">;
53
+ export type MapImageSublayerQueryRelatedFeaturesOptions = Omit<MapImageLayerQueryRelatedFeaturesOptions, "layerId">;
54
+ export interface MapImageLayerApplyEditsOptions {
55
+ layerId: number;
56
+ adds?: HonuaFeature[];
57
+ updates?: HonuaFeature[];
58
+ deletes?: number[] | string;
59
+ rollbackOnFailure?: boolean;
60
+ }
61
+ export type MapImageSublayerApplyEditsOptions = Omit<MapImageLayerApplyEditsOptions, "layerId">;
62
+ export type MapImageLayerSublayerLookupId = number | string;
63
+ export type MapImageLayerLoadStatusCompat = "not-loaded" | "loading" | "loaded" | "failed";
64
+ export interface MapImageLayerHandleCompat {
65
+ remove(): void;
66
+ }
67
+ export interface MapImageSublayerCompatOptions {
68
+ layer: MapImageLayerCompat;
69
+ layerId: number;
70
+ source?: Record<string, unknown>;
71
+ }
72
+ export declare class MapImageLayerCompat {
73
+ readonly url: string;
74
+ id: string;
75
+ title: string | undefined;
76
+ readonly serviceId: string;
77
+ opacity: number;
78
+ visible: boolean;
79
+ minScale: number;
80
+ maxScale: number;
81
+ listMode: string;
82
+ legendEnabled: boolean;
83
+ loaded: boolean;
84
+ loadStatus: MapImageLayerLoadStatusCompat;
85
+ metadata: Record<string, unknown> | undefined;
86
+ readonly eventBus: CompatEventBus;
87
+ private readonly client;
88
+ private readonly watchListeners;
89
+ private readonly eventListeners;
90
+ private readonly sublayerWrappersById;
91
+ private sublayerSources;
92
+ constructor(options: MapImageLayerCompatOptions);
93
+ load(): Promise<MapImageLayerCompat>;
94
+ when(callback?: (layer: MapImageLayerCompat) => void): Promise<MapImageLayerCompat>;
95
+ refresh(): void;
96
+ watch(propertyName: "visible" | "loaded" | "legendEnabled", listener: (value: boolean) => void): MapImageLayerHandleCompat;
97
+ watch(propertyName: "opacity" | "minScale" | "maxScale", listener: (value: number) => void): MapImageLayerHandleCompat;
98
+ watch(propertyName: "loadStatus", listener: (value: MapImageLayerLoadStatusCompat) => void): MapImageLayerHandleCompat;
99
+ watch(propertyName: string, listener: (value: unknown) => void): MapImageLayerHandleCompat;
100
+ get sublayers(): readonly MapImageSublayerCompat[];
101
+ set sublayers(sublayers: readonly (Record<string, unknown> | MapImageSublayerCompat)[]);
102
+ get allSublayers(): readonly MapImageSublayerCompat[];
103
+ exportImage(options: MapImageLayerExportOptions): Promise<HonuaExportMapResponse>;
104
+ getLegend(options?: MapImageLayerLegendOptions): Promise<HonuaLegendResponse>;
105
+ legend(options?: MapImageLayerLegendOptions): Promise<HonuaLegendResponse>;
106
+ identify(options: MapImageLayerIdentifyOptions): Promise<HonuaIdentifyResponse>;
107
+ find(options: MapImageLayerFindOptions): Promise<HonuaFindResponse>;
108
+ createQuery(layerId: number): MapImageLayerCreateQueryResult;
109
+ queryFeatures(options: MapImageLayerQueryOptions): Promise<HonuaQueryResponse>;
110
+ queryFeaturesAll(options: MapImageLayerQueryAllOptions): Promise<unknown[]>;
111
+ queryFeaturesStream(options: MapImageLayerQueryAllOptions): AsyncGenerator<unknown[], void, undefined>;
112
+ queryFeatureCount(options: MapImageLayerQueryCountOptions): Promise<number>;
113
+ queryObjectIds(options: MapImageLayerQueryObjectIdsOptions): Promise<number[]>;
114
+ queryExtent(options: MapImageLayerQueryExtentOptions): Promise<MapImageLayerQueryExtentResponse>;
115
+ queryRelatedRecords(options: MapImageLayerQueryRelatedFeaturesOptions): Promise<HonuaRelatedRecordsResponse>;
116
+ queryRelatedFeatures(options: MapImageLayerQueryRelatedFeaturesOptions): Promise<HonuaRelatedRecordsResponse>;
117
+ applyEdits(options: MapImageLayerApplyEditsOptions): Promise<HonuaApplyEditsResponse>;
118
+ setVisibility(visible: boolean): void;
119
+ setOpacity(opacity: number): void;
120
+ setSublayers(sublayers: readonly (Record<string, unknown> | MapImageSublayerCompat)[]): void;
121
+ findSublayerById(id: MapImageLayerSublayerLookupId): MapImageSublayerCompat | undefined;
122
+ sublayer(id: MapImageLayerSublayerLookupId): MapImageSublayerCompat | undefined;
123
+ setScaleRange(minScale: number | undefined, maxScale: number | undefined): void;
124
+ setListMode(listMode: string): void;
125
+ on(eventName: string, listener: (event: unknown) => void): MapImageLayerHandleCompat;
126
+ destroy(): void;
127
+ setLegendEnabled(legendEnabled: boolean): void;
128
+ listFields(): readonly HonuaFieldInfo[];
129
+ getField(fieldName: string): HonuaFieldInfo | undefined;
130
+ private hydrateSublayersFromMetadataIfNeeded;
131
+ getOrCreateSublayerWrapper(layerId: number, source: Record<string, unknown>): MapImageSublayerCompat;
132
+ private synchronizeSublayerWrapperCache;
133
+ private notifyWatchers;
134
+ }
135
+ export declare class MapImageSublayerCompat {
136
+ readonly layer: MapImageLayerCompat;
137
+ readonly layerId: number;
138
+ source: Record<string, unknown>;
139
+ constructor(options: MapImageSublayerCompatOptions);
140
+ setSource(source: Record<string, unknown>): void;
141
+ get id(): number;
142
+ get visible(): boolean;
143
+ set visible(visible: boolean);
144
+ get title(): string | undefined;
145
+ get definitionExpression(): string | undefined;
146
+ set definitionExpression(definitionExpression: string | undefined);
147
+ setVisibility(visible: boolean): void;
148
+ createQuery(): MapImageSublayerCreateQueryResult;
149
+ queryFeatures(options?: MapImageSublayerQueryOptions): Promise<HonuaQueryResponse>;
150
+ queryFeaturesAll(options?: MapImageSublayerQueryAllOptions): Promise<unknown[]>;
151
+ queryFeatureCount(options?: MapImageSublayerQueryCountOptions): Promise<number>;
152
+ queryObjectIds(options?: MapImageSublayerQueryObjectIdsOptions): Promise<number[]>;
153
+ queryExtent(options?: MapImageSublayerQueryExtentOptions): Promise<MapImageLayerQueryExtentResponse>;
154
+ queryRelatedRecords(options: MapImageSublayerQueryRelatedFeaturesOptions): Promise<HonuaRelatedRecordsResponse>;
155
+ queryRelatedFeatures(options: MapImageSublayerQueryRelatedFeaturesOptions): Promise<HonuaRelatedRecordsResponse>;
156
+ applyEdits(options?: MapImageSublayerApplyEditsOptions): Promise<HonuaApplyEditsResponse>;
157
+ get sublayers(): readonly MapImageSublayerCompat[];
158
+ get allSublayers(): readonly MapImageSublayerCompat[];
159
+ findSublayerById(id: MapImageLayerSublayerLookupId): MapImageSublayerCompat | undefined;
160
+ sublayer(id: MapImageLayerSublayerLookupId): MapImageSublayerCompat | undefined;
161
+ }
162
+ //# sourceMappingURL=map-image-layer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"map-image-layer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/map-image-layer.ts"],"names":[],"mappings":"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"}