@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,50 @@
1
+ export interface ClassBreakInfoCompat {
2
+ maxValue: number;
3
+ minValue?: number;
4
+ symbol?: unknown;
5
+ label?: string;
6
+ description?: string;
7
+ }
8
+ export interface ClassBreaksRendererCompatOptions {
9
+ field?: string;
10
+ normalizationField?: string;
11
+ normalizationTotal?: number;
12
+ minValue?: number;
13
+ defaultSymbol?: unknown;
14
+ defaultLabel?: string;
15
+ legendOptions?: unknown;
16
+ valueExpression?: string;
17
+ valueExpressionTitle?: string;
18
+ classBreakInfos?: ClassBreakInfoCompat[];
19
+ }
20
+ export type ClassBreaksRendererLoadStatusCompat = "not-loaded" | "loading" | "loaded";
21
+ export interface ClassBreaksRendererHandleCompat {
22
+ remove(): void;
23
+ }
24
+ export declare class ClassBreaksRendererCompat {
25
+ loaded: boolean;
26
+ loadStatus: ClassBreaksRendererLoadStatusCompat;
27
+ field: string | undefined;
28
+ normalizationField: string | undefined;
29
+ normalizationTotal: number | undefined;
30
+ minValue: number | undefined;
31
+ defaultSymbol: unknown;
32
+ defaultLabel: string | undefined;
33
+ legendOptions: unknown;
34
+ valueExpression: string | undefined;
35
+ valueExpressionTitle: string | undefined;
36
+ classBreakInfos: ClassBreakInfoCompat[];
37
+ private readonly watchListeners;
38
+ constructor(options?: ClassBreaksRendererCompatOptions);
39
+ load(): Promise<ClassBreaksRendererCompat>;
40
+ when(callback?: (renderer: ClassBreaksRendererCompat) => void): Promise<ClassBreaksRendererCompat>;
41
+ watch(propertyName: string, listener: (value: unknown) => void): ClassBreaksRendererHandleCompat;
42
+ update(options: ClassBreaksRendererCompatOptions): void;
43
+ addClassBreakInfo(info: ClassBreakInfoCompat): void;
44
+ removeClassBreakInfo(maxValue: number): boolean;
45
+ clone(): ClassBreaksRendererCompat;
46
+ toJSON(): ClassBreaksRendererCompatOptions;
47
+ destroy(): void;
48
+ private notifyWatchers;
49
+ }
50
+ //# sourceMappingURL=class-breaks-renderer.d.ts.map
@@ -0,0 +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"}
@@ -0,0 +1,164 @@
1
+ import { safeInvokeCompatListener } from "./event-bus.js";
2
+ export class ClassBreaksRendererCompat {
3
+ loaded;
4
+ loadStatus;
5
+ field;
6
+ normalizationField;
7
+ normalizationTotal;
8
+ minValue;
9
+ defaultSymbol;
10
+ defaultLabel;
11
+ legendOptions;
12
+ valueExpression;
13
+ valueExpressionTitle;
14
+ classBreakInfos;
15
+ watchListeners;
16
+ constructor(options = {}) {
17
+ this.loaded = false;
18
+ this.loadStatus = "not-loaded";
19
+ this.field = options.field;
20
+ this.normalizationField = options.normalizationField;
21
+ this.normalizationTotal =
22
+ typeof options.normalizationTotal === "number" && Number.isFinite(options.normalizationTotal)
23
+ ? options.normalizationTotal
24
+ : undefined;
25
+ this.minValue =
26
+ typeof options.minValue === "number" && Number.isFinite(options.minValue) ? options.minValue : undefined;
27
+ this.defaultSymbol = options.defaultSymbol;
28
+ this.defaultLabel = options.defaultLabel;
29
+ this.legendOptions = options.legendOptions;
30
+ this.valueExpression = options.valueExpression;
31
+ this.valueExpressionTitle = options.valueExpressionTitle;
32
+ this.classBreakInfos = options.classBreakInfos ? options.classBreakInfos.map(cloneClassBreakInfo) : [];
33
+ this.watchListeners = new Map();
34
+ }
35
+ async load() {
36
+ if (this.loaded) {
37
+ return this;
38
+ }
39
+ this.loadStatus = "loading";
40
+ this.notifyWatchers("loadStatus", this.loadStatus);
41
+ this.loaded = true;
42
+ this.notifyWatchers("loaded", this.loaded);
43
+ this.loadStatus = "loaded";
44
+ this.notifyWatchers("loadStatus", this.loadStatus);
45
+ return this;
46
+ }
47
+ async when(callback) {
48
+ const renderer = await this.load();
49
+ if (callback) {
50
+ callback(renderer);
51
+ }
52
+ return renderer;
53
+ }
54
+ watch(propertyName, listener) {
55
+ let listeners = this.watchListeners.get(propertyName);
56
+ if (!listeners) {
57
+ listeners = new Set();
58
+ this.watchListeners.set(propertyName, listeners);
59
+ }
60
+ listeners.add(listener);
61
+ return {
62
+ remove: () => {
63
+ listeners?.delete(listener);
64
+ },
65
+ };
66
+ }
67
+ update(options) {
68
+ if (options.field !== undefined) {
69
+ this.field = options.field;
70
+ this.notifyWatchers("field", this.field);
71
+ }
72
+ if (options.normalizationField !== undefined) {
73
+ this.normalizationField = options.normalizationField;
74
+ this.notifyWatchers("normalizationField", this.normalizationField);
75
+ }
76
+ if (options.normalizationTotal !== undefined) {
77
+ this.normalizationTotal =
78
+ typeof options.normalizationTotal === "number" && Number.isFinite(options.normalizationTotal)
79
+ ? options.normalizationTotal
80
+ : undefined;
81
+ this.notifyWatchers("normalizationTotal", this.normalizationTotal);
82
+ }
83
+ if (options.minValue !== undefined) {
84
+ this.minValue =
85
+ typeof options.minValue === "number" && Number.isFinite(options.minValue) ? options.minValue : undefined;
86
+ this.notifyWatchers("minValue", this.minValue);
87
+ }
88
+ if (options.defaultSymbol !== undefined) {
89
+ this.defaultSymbol = options.defaultSymbol;
90
+ this.notifyWatchers("defaultSymbol", this.defaultSymbol);
91
+ }
92
+ if (options.defaultLabel !== undefined) {
93
+ this.defaultLabel = options.defaultLabel;
94
+ this.notifyWatchers("defaultLabel", this.defaultLabel);
95
+ }
96
+ if (options.legendOptions !== undefined) {
97
+ this.legendOptions = options.legendOptions;
98
+ this.notifyWatchers("legendOptions", this.legendOptions);
99
+ }
100
+ if (options.valueExpression !== undefined) {
101
+ this.valueExpression = options.valueExpression;
102
+ this.notifyWatchers("valueExpression", this.valueExpression);
103
+ }
104
+ if (options.valueExpressionTitle !== undefined) {
105
+ this.valueExpressionTitle = options.valueExpressionTitle;
106
+ this.notifyWatchers("valueExpressionTitle", this.valueExpressionTitle);
107
+ }
108
+ if (options.classBreakInfos !== undefined) {
109
+ this.classBreakInfos = options.classBreakInfos.map(cloneClassBreakInfo);
110
+ this.notifyWatchers("classBreakInfos", this.classBreakInfos);
111
+ }
112
+ }
113
+ addClassBreakInfo(info) {
114
+ this.classBreakInfos.push(cloneClassBreakInfo(info));
115
+ this.notifyWatchers("classBreakInfos", this.classBreakInfos);
116
+ }
117
+ removeClassBreakInfo(maxValue) {
118
+ const index = this.classBreakInfos.findIndex((item) => item.maxValue === maxValue);
119
+ if (index < 0) {
120
+ return false;
121
+ }
122
+ this.classBreakInfos.splice(index, 1);
123
+ this.notifyWatchers("classBreakInfos", this.classBreakInfos);
124
+ return true;
125
+ }
126
+ clone() {
127
+ return new ClassBreaksRendererCompat(this.toJSON());
128
+ }
129
+ toJSON() {
130
+ return {
131
+ field: this.field,
132
+ normalizationField: this.normalizationField,
133
+ normalizationTotal: this.normalizationTotal,
134
+ minValue: this.minValue,
135
+ defaultSymbol: this.defaultSymbol,
136
+ defaultLabel: this.defaultLabel,
137
+ legendOptions: this.legendOptions,
138
+ valueExpression: this.valueExpression,
139
+ valueExpressionTitle: this.valueExpressionTitle,
140
+ classBreakInfos: this.classBreakInfos.map(cloneClassBreakInfo),
141
+ };
142
+ }
143
+ destroy() {
144
+ this.watchListeners.clear();
145
+ }
146
+ notifyWatchers(propertyName, value) {
147
+ const listeners = this.watchListeners.get(propertyName);
148
+ if (!listeners) {
149
+ return;
150
+ }
151
+ for (const listener of listeners) {
152
+ safeInvokeCompatListener(listener, value);
153
+ }
154
+ }
155
+ }
156
+ function cloneClassBreakInfo(info) {
157
+ return {
158
+ maxValue: info.maxValue,
159
+ minValue: info.minValue,
160
+ symbol: info.symbol,
161
+ label: info.label,
162
+ description: info.description,
163
+ };
164
+ }
@@ -0,0 +1,22 @@
1
+ export type ColorCompatInput = string | number[] | Record<string, unknown>;
2
+ export type ColorLoadStatusCompat = "not-loaded" | "loading" | "loaded";
3
+ export interface ColorHandleCompat {
4
+ remove(): void;
5
+ }
6
+ export declare class ColorCompat {
7
+ loaded: boolean;
8
+ loadStatus: ColorLoadStatusCompat;
9
+ private value;
10
+ private readonly watchListeners;
11
+ constructor(input?: ColorCompatInput);
12
+ load(): Promise<ColorCompat>;
13
+ when(callback?: (color: ColorCompat) => void): Promise<ColorCompat>;
14
+ watch(propertyName: string, listener: (value: unknown) => void): ColorHandleCompat;
15
+ set(input: ColorCompatInput): void;
16
+ clone(): ColorCompat;
17
+ toJSON(): ColorCompatInput;
18
+ toCss(includeAlpha?: boolean): string;
19
+ destroy(): void;
20
+ private notifyWatchers;
21
+ }
22
+ //# sourceMappingURL=color.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"color.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/color.ts"],"names":[],"mappings":"AACA,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE3E,MAAM,MAAM,qBAAqB,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAExE,MAAM,WAAW,iBAAiB;IAChC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,WAAW;IACf,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,qBAAqB,CAAC;IACzC,OAAO,CAAC,KAAK,CAAmB;IAChC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;gBAEzD,KAAK,GAAE,gBAA+B;IAO5C,IAAI,IAAI,OAAO,CAAC,WAAW,CAAC;IAc5B,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,WAAW,KAAK,IAAI,GAAG,OAAO,CAAC,WAAW,CAAC;IAQzE,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,iBAAiB;IAelF,GAAG,CAAC,KAAK,EAAE,gBAAgB,GAAG,IAAI;IAKlC,KAAK,IAAI,WAAW;IAIpB,MAAM,IAAI,gBAAgB;IAU1B,KAAK,CAAC,YAAY,UAAO,GAAG,MAAM;IAwBlC,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
@@ -0,0 +1,106 @@
1
+ import { safeInvokeCompatListener } from "./event-bus.js";
2
+ export class ColorCompat {
3
+ loaded;
4
+ loadStatus;
5
+ value;
6
+ watchListeners;
7
+ constructor(input = [0, 0, 0, 1]) {
8
+ this.loaded = false;
9
+ this.loadStatus = "not-loaded";
10
+ this.value = normalizeInput(input);
11
+ this.watchListeners = new Map();
12
+ }
13
+ async load() {
14
+ if (this.loaded) {
15
+ return this;
16
+ }
17
+ this.loadStatus = "loading";
18
+ this.notifyWatchers("loadStatus", this.loadStatus);
19
+ this.loaded = true;
20
+ this.notifyWatchers("loaded", this.loaded);
21
+ this.loadStatus = "loaded";
22
+ this.notifyWatchers("loadStatus", this.loadStatus);
23
+ return this;
24
+ }
25
+ async when(callback) {
26
+ const color = await this.load();
27
+ if (callback) {
28
+ callback(color);
29
+ }
30
+ return color;
31
+ }
32
+ watch(propertyName, listener) {
33
+ let listeners = this.watchListeners.get(propertyName);
34
+ if (!listeners) {
35
+ listeners = new Set();
36
+ this.watchListeners.set(propertyName, listeners);
37
+ }
38
+ listeners.add(listener);
39
+ return {
40
+ remove: () => {
41
+ listeners?.delete(listener);
42
+ },
43
+ };
44
+ }
45
+ set(input) {
46
+ this.value = normalizeInput(input);
47
+ this.notifyWatchers("value", this.toJSON());
48
+ }
49
+ clone() {
50
+ return new ColorCompat(this.toJSON());
51
+ }
52
+ toJSON() {
53
+ if (Array.isArray(this.value)) {
54
+ return [...this.value];
55
+ }
56
+ if (typeof this.value === "object") {
57
+ return { ...this.value };
58
+ }
59
+ return this.value;
60
+ }
61
+ toCss(includeAlpha = true) {
62
+ if (typeof this.value === "string") {
63
+ return this.value;
64
+ }
65
+ if (Array.isArray(this.value)) {
66
+ const [r = 0, g = 0, b = 0, a = 1] = this.value;
67
+ if (includeAlpha) {
68
+ return `rgba(${r}, ${g}, ${b}, ${a})`;
69
+ }
70
+ return `rgb(${r}, ${g}, ${b})`;
71
+ }
72
+ const record = this.value;
73
+ const r = toFiniteNumber(record.r, 0);
74
+ const g = toFiniteNumber(record.g, 0);
75
+ const b = toFiniteNumber(record.b, 0);
76
+ const a = toFiniteNumber(record.a, 1);
77
+ if (includeAlpha) {
78
+ return `rgba(${r}, ${g}, ${b}, ${a})`;
79
+ }
80
+ return `rgb(${r}, ${g}, ${b})`;
81
+ }
82
+ destroy() {
83
+ this.watchListeners.clear();
84
+ }
85
+ notifyWatchers(propertyName, value) {
86
+ const listeners = this.watchListeners.get(propertyName);
87
+ if (!listeners) {
88
+ return;
89
+ }
90
+ for (const listener of listeners) {
91
+ safeInvokeCompatListener(listener, value);
92
+ }
93
+ }
94
+ }
95
+ function normalizeInput(input) {
96
+ if (typeof input === "string") {
97
+ return input;
98
+ }
99
+ if (Array.isArray(input)) {
100
+ return input.filter((value) => typeof value === "number" && Number.isFinite(value));
101
+ }
102
+ return { ...input };
103
+ }
104
+ function toFiniteNumber(value, fallback) {
105
+ return typeof value === "number" && Number.isFinite(value) ? value : fallback;
106
+ }
@@ -0,0 +1,174 @@
1
+ import { CompatEventBus, type CompatEventSubscription } from "./event-bus.js";
2
+ /** Structural type for viewpoint-like objects used by controls. */
3
+ export interface ControlViewpointLike {
4
+ targetGeometry?: Record<string, unknown>;
5
+ scale?: number;
6
+ rotation?: number;
7
+ }
8
+ export interface HomeCompatOptions {
9
+ view?: unknown;
10
+ container?: HTMLElement | string | null;
11
+ eventBus?: CompatEventBus;
12
+ viewpoint?: HomeViewpointCompat;
13
+ }
14
+ export interface HomeViewpointCompat {
15
+ center?: unknown;
16
+ zoom?: number;
17
+ }
18
+ export type ControlLoadStatusCompat = "not-loaded" | "loading" | "loaded";
19
+ export interface ControlHandleCompat {
20
+ remove(): void;
21
+ }
22
+ interface BaseControlCompatOptions {
23
+ view?: unknown;
24
+ container?: HTMLElement | string | null;
25
+ eventBus?: CompatEventBus;
26
+ }
27
+ export declare class BaseControlCompat {
28
+ readonly view: unknown;
29
+ readonly container: HTMLElement | string | null;
30
+ readonly eventBus: CompatEventBus;
31
+ loaded: boolean;
32
+ loadStatus: ControlLoadStatusCompat;
33
+ protected readonly subscriptions: CompatEventSubscription[];
34
+ private readonly watchListeners;
35
+ protected constructor(options: BaseControlCompatOptions, ...extraEventBusCandidates: unknown[]);
36
+ /**
37
+ * Subclasses override to provide the event-name prefix used in load(), e.g.
38
+ * `"home"` yields `"home.loading"` / `"home.loaded"`.
39
+ */
40
+ protected get controlName(): string;
41
+ load(): Promise<this>;
42
+ /** Hook for subclasses to perform work during load (e.g. ScaleBarCompat.refresh). */
43
+ protected onLoad(): void;
44
+ when(callback?: (widget: this) => void): Promise<this>;
45
+ watch(propertyName: "visible", listener: (value: boolean) => void): ControlHandleCompat;
46
+ watch(propertyName: "disabled", listener: (value: boolean) => void): ControlHandleCompat;
47
+ watch(propertyName: "loaded", listener: (value: boolean) => void): ControlHandleCompat;
48
+ watch(propertyName: "loadStatus", listener: (value: ControlLoadStatusCompat) => void): ControlHandleCompat;
49
+ watch(propertyName: string, listener: (value: unknown) => void): ControlHandleCompat;
50
+ destroy(): void;
51
+ protected notifyWatchers(propertyName: string, value: unknown): void;
52
+ }
53
+ export declare class HomeCompat extends BaseControlCompat {
54
+ viewpoint: HomeViewpointCompat;
55
+ protected get controlName(): string;
56
+ constructor(options?: HomeCompatOptions);
57
+ go(): Promise<void>;
58
+ reset(): void;
59
+ }
60
+ export interface BasemapToggleCompatOptions {
61
+ view?: unknown;
62
+ map?: unknown;
63
+ container?: HTMLElement | string | null;
64
+ nextBasemap?: unknown;
65
+ eventBus?: CompatEventBus;
66
+ }
67
+ export declare class BasemapToggleCompat extends BaseControlCompat {
68
+ readonly map: unknown;
69
+ activeBasemap: unknown;
70
+ nextBasemap: unknown;
71
+ protected get controlName(): string;
72
+ constructor(options?: BasemapToggleCompatOptions);
73
+ toggle(): unknown;
74
+ }
75
+ export type ScaleBarUnitCompat = "metric" | "imperial" | "dual";
76
+ export interface ScaleBarCompatOptions {
77
+ view?: unknown;
78
+ container?: HTMLElement | string | null;
79
+ unit?: ScaleBarUnitCompat;
80
+ eventBus?: CompatEventBus;
81
+ }
82
+ export declare class ScaleBarCompat extends BaseControlCompat {
83
+ unit: ScaleBarUnitCompat;
84
+ scale: number | undefined;
85
+ text: string;
86
+ protected get controlName(): string;
87
+ constructor(options?: ScaleBarCompatOptions);
88
+ protected onLoad(): void;
89
+ refresh(): string;
90
+ }
91
+ export interface LocateCompatOptions {
92
+ view?: unknown;
93
+ container?: HTMLElement | string | null;
94
+ eventBus?: CompatEventBus;
95
+ zoom?: number;
96
+ locateProvider?: () => Promise<LocatePositionCompat>;
97
+ }
98
+ export interface LocatePositionCompat {
99
+ coords: {
100
+ latitude: number;
101
+ longitude: number;
102
+ accuracy?: number;
103
+ };
104
+ }
105
+ export declare class LocateCompat extends BaseControlCompat {
106
+ readonly zoom: number | undefined;
107
+ lastPosition: LocatePositionCompat | undefined;
108
+ private readonly locateProvider;
109
+ protected get controlName(): string;
110
+ constructor(options?: LocateCompatOptions);
111
+ locate(): Promise<LocatePositionCompat>;
112
+ }
113
+ export interface CompassCompatOptions {
114
+ view?: unknown;
115
+ container?: HTMLElement | string | null;
116
+ eventBus?: CompatEventBus;
117
+ }
118
+ export declare class CompassCompat extends BaseControlCompat {
119
+ orientation: number;
120
+ protected get controlName(): string;
121
+ constructor(options?: CompassCompatOptions);
122
+ rotateTo(rotation: number): number;
123
+ reset(): number;
124
+ goToNorth(): number;
125
+ }
126
+ export interface ZoomCompatOptions {
127
+ view?: unknown;
128
+ container?: HTMLElement | string | null;
129
+ eventBus?: CompatEventBus;
130
+ layout?: "vertical" | "horizontal";
131
+ }
132
+ export declare class ZoomCompat extends BaseControlCompat {
133
+ readonly layout: "vertical" | "horizontal";
134
+ protected get controlName(): string;
135
+ constructor(options?: ZoomCompatOptions);
136
+ zoomIn(step?: number): number | undefined;
137
+ zoomOut(step?: number): number | undefined;
138
+ private adjustZoom;
139
+ }
140
+ export interface FullscreenCompatOptions {
141
+ view?: unknown;
142
+ container?: HTMLElement | string | null;
143
+ element?: HTMLElement | null;
144
+ eventBus?: CompatEventBus;
145
+ }
146
+ export declare class FullscreenCompat extends BaseControlCompat {
147
+ readonly element: HTMLElement | null;
148
+ active: boolean;
149
+ protected get controlName(): string;
150
+ constructor(options?: FullscreenCompatOptions);
151
+ enter(): void;
152
+ exit(): void;
153
+ toggle(force?: boolean): boolean;
154
+ }
155
+ export interface AttributionCompatOptions {
156
+ view?: unknown;
157
+ map?: unknown;
158
+ container?: HTMLElement | string | null;
159
+ eventBus?: CompatEventBus;
160
+ itemDelimiter?: string;
161
+ attributions?: readonly string[];
162
+ }
163
+ export declare class AttributionCompat extends BaseControlCompat {
164
+ readonly map: unknown;
165
+ itemDelimiter: string;
166
+ attributions: string[];
167
+ protected get controlName(): string;
168
+ constructor(options?: AttributionCompatOptions);
169
+ addAttribution(value: string): void;
170
+ removeAttribution(value: string): boolean;
171
+ getText(): string;
172
+ }
173
+ export {};
174
+ //# sourceMappingURL=controls.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"controls.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/controls.ts"],"names":[],"mappings":"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"}