@honua/react 0.1.12 → 0.1.13

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (190) hide show
  1. package/columnar/apache-arrow.d.ts +17 -0
  2. package/columnar/apache-arrow.d.ts.map +1 -0
  3. package/columnar/apache-arrow.js +1036 -0
  4. package/columnar/batch-cache-conformance.d.ts +66 -0
  5. package/columnar/batch-cache-conformance.d.ts.map +1 -0
  6. package/columnar/batch-cache-conformance.js +317 -0
  7. package/columnar/batch-cache-indexeddb.d.ts +31 -0
  8. package/columnar/batch-cache-indexeddb.d.ts.map +1 -0
  9. package/columnar/batch-cache-indexeddb.js +148 -0
  10. package/columnar/batch-cache.d.ts +298 -0
  11. package/columnar/batch-cache.d.ts.map +1 -0
  12. package/columnar/batch-cache.js +757 -0
  13. package/columnar/geoarrow-aggregate.d.ts +178 -0
  14. package/columnar/geoarrow-aggregate.d.ts.map +1 -0
  15. package/columnar/geoarrow-aggregate.js +976 -0
  16. package/columnar/geoarrow-patch.d.ts +382 -0
  17. package/columnar/geoarrow-patch.d.ts.map +1 -0
  18. package/columnar/geoarrow-patch.js +1656 -0
  19. package/columnar/geoarrow-reproject.d.ts +22 -0
  20. package/columnar/geoarrow-reproject.d.ts.map +1 -0
  21. package/columnar/geoarrow-reproject.js +119 -0
  22. package/columnar/geoarrow-serialization.d.ts +68 -0
  23. package/columnar/geoarrow-serialization.d.ts.map +1 -0
  24. package/columnar/geoarrow-serialization.js +331 -0
  25. package/columnar/geoarrow-types.d.ts +271 -0
  26. package/columnar/geoarrow-types.d.ts.map +1 -0
  27. package/columnar/geoarrow-types.js +15 -0
  28. package/columnar/geoarrow.d.ts +52 -0
  29. package/columnar/geoarrow.d.ts.map +1 -0
  30. package/columnar/geoarrow.js +1469 -0
  31. package/columnar/index.d.ts +43 -0
  32. package/columnar/index.d.ts.map +1 -0
  33. package/columnar/index.js +29 -0
  34. package/columnar/operators.d.ts +70 -0
  35. package/columnar/operators.d.ts.map +1 -0
  36. package/columnar/operators.js +307 -0
  37. package/columnar/result.d.ts +369 -0
  38. package/columnar/result.d.ts.map +1 -0
  39. package/columnar/result.js +815 -0
  40. package/columnar/telemetry.d.ts +152 -0
  41. package/columnar/telemetry.d.ts.map +1 -0
  42. package/columnar/telemetry.js +265 -0
  43. package/columnar/transfer.d.ts +28 -0
  44. package/columnar/transfer.d.ts.map +1 -0
  45. package/columnar/transfer.js +669 -0
  46. package/columnar/types.d.ts +175 -0
  47. package/columnar/types.d.ts.map +1 -0
  48. package/columnar/types.js +22 -0
  49. package/columnar/worker.d.ts +157 -0
  50. package/columnar/worker.d.ts.map +1 -0
  51. package/columnar/worker.js +1059 -0
  52. package/connect-url-safety.d.ts +53 -0
  53. package/connect-url-safety.js +189 -0
  54. package/contract/pmtiles.d.ts +6 -5
  55. package/contract/pmtiles.d.ts.map +1 -1
  56. package/contract/pmtiles.js +30 -5
  57. package/core/client.d.ts.map +1 -1
  58. package/core/client.js +87 -19
  59. package/core/deprecation-notice.d.ts +28 -0
  60. package/core/deprecation-notice.d.ts.map +1 -0
  61. package/core/deprecation-notice.js +22 -0
  62. package/core/esri-geojson.d.ts.map +1 -1
  63. package/core/esri-geojson.js +10 -6
  64. package/core/optional-grpc-peer.d.ts +15 -0
  65. package/core/optional-grpc-peer.d.ts.map +1 -0
  66. package/core/optional-grpc-peer.js +60 -0
  67. package/esri-compat/basemap-gallery.d.ts +2 -0
  68. package/esri-compat/basemap-gallery.d.ts.map +1 -1
  69. package/esri-compat/basemap-gallery.js +12 -0
  70. package/esri-compat/basemap.d.ts +4 -0
  71. package/esri-compat/basemap.d.ts.map +1 -1
  72. package/esri-compat/basemap.js +70 -0
  73. package/esri-compat/bookmarks.d.ts +2 -0
  74. package/esri-compat/bookmarks.d.ts.map +1 -1
  75. package/esri-compat/bookmarks.js +12 -0
  76. package/esri-compat/controls.d.ts +18 -0
  77. package/esri-compat/controls.d.ts.map +1 -1
  78. package/esri-compat/controls.js +120 -57
  79. package/esri-compat/directions.d.ts +4 -0
  80. package/esri-compat/directions.d.ts.map +1 -1
  81. package/esri-compat/directions.js +30 -20
  82. package/esri-compat/editor.d.ts +4 -0
  83. package/esri-compat/editor.d.ts.map +1 -1
  84. package/esri-compat/editor.js +16 -0
  85. package/esri-compat/esri-config.d.ts +2 -1
  86. package/esri-compat/esri-config.d.ts.map +1 -1
  87. package/esri-compat/feature-effect.d.ts +23 -0
  88. package/esri-compat/feature-effect.d.ts.map +1 -0
  89. package/esri-compat/feature-effect.js +12 -0
  90. package/esri-compat/feature-form.d.ts +6 -0
  91. package/esri-compat/feature-form.d.ts.map +1 -1
  92. package/esri-compat/feature-form.js +63 -0
  93. package/esri-compat/feature-layer.d.ts +21 -2
  94. package/esri-compat/feature-layer.d.ts.map +1 -1
  95. package/esri-compat/feature-layer.js +172 -1
  96. package/esri-compat/feature-table.d.ts +5 -0
  97. package/esri-compat/feature-table.d.ts.map +1 -1
  98. package/esri-compat/feature-table.js +23 -0
  99. package/esri-compat/identity-manager.d.ts +1 -1
  100. package/esri-compat/identity-manager.js +1 -1
  101. package/esri-compat/legend.d.ts +2 -0
  102. package/esri-compat/legend.d.ts.map +1 -1
  103. package/esri-compat/legend.js +98 -0
  104. package/esri-compat/locator.d.ts +1 -1
  105. package/esri-compat/locator.js +1 -1
  106. package/esri-compat/map-view-mount.d.ts +1 -0
  107. package/esri-compat/map-view-mount.d.ts.map +1 -1
  108. package/esri-compat/map-view-mount.js +46 -25
  109. package/esri-compat/map-view.d.ts +13 -0
  110. package/esri-compat/map-view.d.ts.map +1 -1
  111. package/esri-compat/map-view.js +94 -8
  112. package/esri-compat/map.d.ts +5 -1
  113. package/esri-compat/map.d.ts.map +1 -1
  114. package/esri-compat/map.js +10 -0
  115. package/esri-compat/measurement.d.ts +2 -0
  116. package/esri-compat/measurement.d.ts.map +1 -1
  117. package/esri-compat/measurement.js +14 -0
  118. package/esri-compat/point.d.ts +7 -0
  119. package/esri-compat/point.d.ts.map +1 -1
  120. package/esri-compat/point.js +33 -3
  121. package/esri-compat/popup.d.ts +2 -0
  122. package/esri-compat/popup.d.ts.map +1 -1
  123. package/esri-compat/popup.js +12 -0
  124. package/esri-compat/portal.d.ts +1 -1
  125. package/esri-compat/portal.js +1 -1
  126. package/esri-compat/print.d.ts +3 -0
  127. package/esri-compat/print.d.ts.map +1 -1
  128. package/esri-compat/print.js +15 -0
  129. package/esri-compat/search.d.ts +4 -0
  130. package/esri-compat/search.d.ts.map +1 -1
  131. package/esri-compat/search.js +25 -28
  132. package/esri-compat/sketch.d.ts +2 -0
  133. package/esri-compat/sketch.d.ts.map +1 -1
  134. package/esri-compat/sketch.js +12 -0
  135. package/esri-compat/widget-host.d.ts +46 -17
  136. package/esri-compat/widget-host.d.ts.map +1 -1
  137. package/esri-compat/widget-host.js +84 -20
  138. package/esri-compat/widget-shell-hosts.d.ts +61 -0
  139. package/esri-compat/widget-shell-hosts.d.ts.map +1 -0
  140. package/esri-compat/widget-shell-hosts.js +76 -0
  141. package/geocoding/index.d.ts +114 -0
  142. package/geocoding/index.d.ts.map +1 -0
  143. package/geocoding/index.js +293 -0
  144. package/geocoding/provider-http.d.ts +37 -0
  145. package/geocoding/provider-http.d.ts.map +1 -0
  146. package/geocoding/provider-http.js +93 -0
  147. package/geocoding/provider.d.ts +145 -0
  148. package/geocoding/provider.d.ts.map +1 -0
  149. package/geocoding/provider.js +41 -0
  150. package/geocoding/providers/honua.d.ts +28 -0
  151. package/geocoding/providers/honua.d.ts.map +1 -0
  152. package/geocoding/providers/honua.js +68 -0
  153. package/geocoding/providers/nominatim.d.ts +47 -0
  154. package/geocoding/providers/nominatim.d.ts.map +1 -0
  155. package/geocoding/providers/nominatim.js +105 -0
  156. package/geocoding/providers/pelias.d.ts +40 -0
  157. package/geocoding/providers/pelias.d.ts.map +1 -0
  158. package/geocoding/providers/pelias.js +115 -0
  159. package/geocoding/providers/photon.d.ts +39 -0
  160. package/geocoding/providers/photon.d.ts.map +1 -0
  161. package/geocoding/providers/photon.js +107 -0
  162. package/geometry/convert.d.ts +13 -0
  163. package/geometry/convert.d.ts.map +1 -0
  164. package/geometry/convert.js +12 -0
  165. package/geometry/index.d.ts +17 -0
  166. package/geometry/index.d.ts.map +1 -0
  167. package/geometry/index.js +15 -0
  168. package/geometry/internal.d.ts +25 -0
  169. package/geometry/internal.d.ts.map +1 -0
  170. package/geometry/internal.js +40 -0
  171. package/geometry/ops.d.ts +71 -0
  172. package/geometry/ops.d.ts.map +1 -0
  173. package/geometry/ops.js +147 -0
  174. package/geometry/project.d.ts +40 -0
  175. package/geometry/project.d.ts.map +1 -0
  176. package/geometry/project.js +88 -0
  177. package/geometry/types.d.ts +36 -0
  178. package/geometry/types.d.ts.map +1 -0
  179. package/geometry/types.js +12 -0
  180. package/kernel/renderer.d.ts +82 -0
  181. package/kernel/renderer.js +1 -0
  182. package/offline/digest.d.ts +15 -0
  183. package/offline/digest.js +58 -0
  184. package/offline/quota.d.ts +161 -0
  185. package/offline/quota.js +370 -0
  186. package/offline/types.d.ts +349 -0
  187. package/offline/types.js +75 -0
  188. package/package.json +14 -2
  189. package/widget-capabilities.d.ts +67 -0
  190. package/widget-capabilities.js +152 -0
@@ -1,9 +1,11 @@
1
+ import { type FormExpressionResult } from "../widget-capabilities.js";
1
2
  import { CompatEventBus } from "./event-bus.js";
2
3
  export interface FeatureFormCompatOptions {
3
4
  view?: unknown;
4
5
  layer?: unknown;
5
6
  container?: unknown;
6
7
  feature?: unknown;
8
+ formTemplate?: unknown;
7
9
  fieldConfig?: readonly unknown[];
8
10
  groupDisplay?: string;
9
11
  headingLevel?: number;
@@ -35,17 +37,21 @@ export declare class FeatureFormCompat {
35
37
  loaded: boolean;
36
38
  loadStatus: FeatureFormLoadStatusCompat;
37
39
  feature: unknown;
40
+ formTemplate: unknown;
41
+ expressionResult: FormExpressionResult | undefined;
38
42
  fieldConfig: readonly unknown[];
39
43
  groupDisplay: string | undefined;
40
44
  headingLevel: number | undefined;
41
45
  visibleElements: unknown;
42
46
  validationFunction: FeatureFormValidationFn | undefined;
43
47
  private readonly watchListeners;
48
+ private readonly widgetHost;
44
49
  constructor(options?: FeatureFormCompatOptions);
45
50
  load(): Promise<FeatureFormCompat>;
46
51
  when(callback?: (widget: FeatureFormCompat) => void): Promise<FeatureFormCompat>;
47
52
  watch(propertyName: string, listener: (value: unknown) => void): FeatureFormHandleCompat;
48
53
  setFeature(feature: unknown): void;
54
+ private pushWidgetHost;
49
55
  submit(values?: Readonly<Record<string, unknown>>): Promise<FeatureFormSubmitResultCompat>;
50
56
  /**
51
57
  * Runs validation against the provided values (or empty object)
@@ -1 +1 @@
1
- {"version":3,"file":"feature-form.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/feature-form.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-form.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/feature-form.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,KAAK,oBAAoB,EAE1B,MAAM,2BAA2B,CAAC;AACnC,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAGjG,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACjC,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,kBAAkB,CAAC,EAAE,uBAAuB,CAAC;IAC7C,QAAQ,CAAC,EAAE,cAAc,CAAC;CAC3B;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,OAAO,CAAC;IACf,MAAM,EAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC,CAAC;IAC1C,OAAO,EAAE,OAAO,CAAC;IACjB,MAAM,CAAC,EAAE,SAAS,2BAA2B,EAAE,CAAC;CACjD;AAED,MAAM,WAAW,2BAA2B;IAC1C,SAAS,EAAE,MAAM,CAAC;IAClB,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,UAAU,GAAG,OAAO,GAAG,SAAS,GAAG,QAAQ,CAAC;CACnD;AAED,MAAM,MAAM,uBAAuB,GAAG,CAAC,SAAS,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,KAAK,2BAA2B,GAAG,SAAS,CAAC;AAErH,MAAM,MAAM,2BAA2B,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;AAE9E,MAAM,WAAW,uBAAuB;IACtC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,iBAAiB;IAC5B,SAAgB,IAAI,EAAE,OAAO,CAAC;IAC9B,SAAgB,KAAK,EAAE,OAAO,CAAC;IAC/B,SAAgB,SAAS,EAAE,OAAO,CAAC;IACnC,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAClC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,2BAA2B,CAAC;IACxC,OAAO,EAAE,OAAO,CAAC;IACjB,YAAY,EAAE,OAAO,CAAC;IACtB,gBAAgB,EAAE,oBAAoB,GAAG,SAAS,CAAC;IACnD,WAAW,EAAE,SAAS,OAAO,EAAE,CAAC;IAChC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,eAAe,EAAE,OAAO,CAAC;IACzB,kBAAkB,EAAE,uBAAuB,GAAG,SAAS,CAAC;IAC/D,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,wBAA6B;IAoB5C,IAAI,IAAI,OAAO,CAAC,iBAAiB,CAAC;IAgBlC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,MAAM,EAAE,iBAAiB,KAAK,IAAI,GAAG,OAAO,CAAC,iBAAiB,CAAC;IAQtF,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,uBAAuB;IAexF,UAAU,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IASzC,OAAO,CAAC,cAAc;IAST,MAAM,CAAC,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAe3G;;;OAGG;IACI,QAAQ,CAAC,MAAM,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,GAAG,SAAS,2BAA2B,EAAE;IAcvG;;;OAGG;IACI,SAAS,CAAC,SAAS,GAAE,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAW/F,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,uBAAuB;IAalF,OAAO,IAAI,IAAI;IAItB,OAAO,CAAC,cAAc;CAUvB"}
@@ -1,4 +1,6 @@
1
+ import { evaluateFormExpressions, } from "../widget-capabilities.js";
1
2
  import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
3
+ import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
2
4
  export class FeatureFormCompat {
3
5
  view;
4
6
  layer;
@@ -7,12 +9,15 @@ export class FeatureFormCompat {
7
9
  loaded;
8
10
  loadStatus;
9
11
  feature;
12
+ formTemplate;
13
+ expressionResult;
10
14
  fieldConfig;
11
15
  groupDisplay;
12
16
  headingLevel;
13
17
  visibleElements;
14
18
  validationFunction;
15
19
  watchListeners;
20
+ widgetHost;
16
21
  constructor(options = {}) {
17
22
  this.view = options.view;
18
23
  this.layer = options.layer;
@@ -21,12 +26,16 @@ export class FeatureFormCompat {
21
26
  this.loaded = false;
22
27
  this.loadStatus = "not-loaded";
23
28
  this.feature = options.feature;
29
+ this.formTemplate = options.formTemplate;
24
30
  this.fieldConfig = options.fieldConfig ? [...options.fieldConfig] : [];
25
31
  this.groupDisplay = options.groupDisplay;
26
32
  this.headingLevel = options.headingLevel;
27
33
  this.visibleElements = options.visibleElements;
28
34
  this.validationFunction = options.validationFunction;
35
+ this.expressionResult = evaluateStoredForm(this.formTemplate, this.feature);
29
36
  this.watchListeners = new Map();
37
+ this.widgetHost = bindHonuaWidgetHost("honua-feature-editor", this.container, this.eventBus);
38
+ this.pushWidgetHost();
30
39
  }
31
40
  async load() {
32
41
  if (this.loaded) {
@@ -64,8 +73,19 @@ export class FeatureFormCompat {
64
73
  }
65
74
  setFeature(feature) {
66
75
  this.feature = feature;
76
+ this.expressionResult = evaluateStoredForm(this.formTemplate, this.feature);
67
77
  this.notifyWatchers("feature", this.feature);
78
+ this.notifyWatchers("expressionResult", this.expressionResult);
68
79
  this.eventBus.emit("feature-form.feature-changed", { feature }, this);
80
+ this.pushWidgetHost();
81
+ }
82
+ pushWidgetHost() {
83
+ pushWidgetHostState(this.widgetHost, {
84
+ feature: this.feature,
85
+ layer: this.layer,
86
+ formTemplate: this.formTemplate,
87
+ expressionResult: this.expressionResult,
88
+ });
69
89
  }
70
90
  async submit(values = {}) {
71
91
  const errors = this.validate(values);
@@ -135,3 +155,46 @@ export class FeatureFormCompat {
135
155
  }
136
156
  }
137
157
  }
158
+ function evaluateStoredForm(formTemplate, feature) {
159
+ return evaluateFormExpressions(formFields(formTemplate), { attributes: featureAttributes(feature) });
160
+ }
161
+ function featureAttributes(feature) {
162
+ if (!feature || typeof feature !== "object")
163
+ return {};
164
+ const attributes = feature.attributes;
165
+ return attributes && typeof attributes === "object" ? attributes : {};
166
+ }
167
+ function formFields(formTemplate) {
168
+ if (!formTemplate || typeof formTemplate !== "object")
169
+ return [];
170
+ const fields = formTemplate.fields;
171
+ if (!Array.isArray(fields))
172
+ return [];
173
+ return fields.flatMap((field) => {
174
+ if (!field || typeof field !== "object")
175
+ return [];
176
+ const record = field;
177
+ const name = typeof record.name === "string"
178
+ ? record.name
179
+ : typeof record.fieldName === "string"
180
+ ? record.fieldName
181
+ : undefined;
182
+ if (!name)
183
+ return [];
184
+ return [
185
+ {
186
+ name,
187
+ visibleExpression: expressionText(record.visibleExpression) ?? expressionText(record.visibilityExpression),
188
+ valueExpression: expressionText(record.valueExpression) ?? expressionText(record.valueExpressionInfo),
189
+ },
190
+ ];
191
+ });
192
+ }
193
+ function expressionText(value) {
194
+ if (typeof value === "string")
195
+ return value;
196
+ if (!value || typeof value !== "object")
197
+ return undefined;
198
+ const expression = value.expression;
199
+ return typeof expression === "string" ? expression : undefined;
200
+ }
@@ -1,11 +1,16 @@
1
1
  import { HonuaClient } from "../core/client.js";
2
2
  import type { HonuaAddAttachmentResponse, HonuaApplyEditsResponse, HonuaAttachmentListResponse, HonuaDeleteAttachmentsResponse, HonuaExtent, HonuaFeature, HonuaFieldInfo, HonuaQueryAttachmentsResponse, HonuaQueryResponse, HonuaRelatedRecordsResponse, HonuaUpdateAttachmentResponse, QueryMethod } from "../core/types.js";
3
+ import { applyToFeatures as applyFeatureEdits } from "../widget-capabilities.js";
3
4
  import { CompatEventBus } from "./event-bus.js";
4
5
  export interface FeatureLayerCompatOptions {
5
6
  /** Service layer URL. Omit when {@link source} holds the features in memory. */
6
7
  url?: string;
7
- /** In-memory graphics. When set without {@link url}, the layer does not call a service. */
8
- source?: readonly unknown[];
8
+ /**
9
+ * In-memory graphics. When set without {@link url}, the layer does not call
10
+ * a service. A non-iterable value such as `{}` is an empty client collection,
11
+ * which is how some ArcGIS apps start a layer before `applyEdits`.
12
+ */
13
+ source?: readonly unknown[] | object;
9
14
  fields?: readonly unknown[];
10
15
  objectIdField?: string;
11
16
  geometryType?: string;
@@ -23,6 +28,7 @@ export interface FeatureLayerCompatOptions {
23
28
  maxScale?: number;
24
29
  legendEnabled?: boolean;
25
30
  listMode?: string;
31
+ featureEffect?: unknown;
26
32
  maxAttachmentBytes?: number;
27
33
  client?: HonuaClient;
28
34
  eventBus?: CompatEventBus;
@@ -128,6 +134,7 @@ export declare class FeatureLayerCompat {
128
134
  definitionExpression: string | undefined;
129
135
  renderer: unknown;
130
136
  popupTemplate: unknown;
137
+ private featureEffectValue;
131
138
  labelingInfo: unknown[];
132
139
  labelsVisible: boolean;
133
140
  opacity: number;
@@ -151,6 +158,14 @@ export declare class FeatureLayerCompat {
151
158
  private readonly eventListeners;
152
159
  private readonly maxAttachmentBytes;
153
160
  constructor(options: FeatureLayerCompatOptions);
161
+ get featureEffect(): unknown;
162
+ set featureEffect(value: unknown);
163
+ /**
164
+ * Symbol the view should paint for one feature. A feature's own symbol wins.
165
+ * Otherwise the renderer supplies it, and an excluded feature effect replaces
166
+ * the color.
167
+ */
168
+ symbolForFeature(feature: unknown): unknown | undefined;
154
169
  load(): Promise<FeatureLayerCompat>;
155
170
  when(callback?: (layer: FeatureLayerCompat) => void): Promise<FeatureLayerCompat>;
156
171
  refresh(): void;
@@ -188,6 +203,10 @@ export declare class FeatureLayerCompat {
188
203
  queryFeatureCount(options?: FeatureLayerQueryCountOptions): Promise<number>;
189
204
  queryExtent(options?: FeatureLayerQueryCountOptions): Promise<FeatureLayerQueryExtentResult>;
190
205
  applyEdits(options: FeatureLayerEditsOptions): Promise<HonuaApplyEditsResponse>;
206
+ /** Applies one attribute change to each feature through {@link applyEdits}. A named edit error rejects that feature only. */
207
+ applyToFeatures(features: readonly {
208
+ attributes?: Record<string, unknown>;
209
+ }[], change: Record<string, unknown>): ReturnType<typeof applyFeatureEdits>;
191
210
  queryRelatedFeatures(options: FeatureLayerQueryRelatedFeaturesOptions): Promise<HonuaRelatedRecordsResponse>;
192
211
  queryRelatedRecords(options: FeatureLayerQueryRelatedFeaturesOptions): Promise<HonuaRelatedRecordsResponse>;
193
212
  queryAttachments(options?: FeatureLayerQueryAttachmentsOptions): Promise<HonuaQueryAttachmentsResponse>;
@@ -1 +1 @@
1
- {"version":3,"file":"feature-layer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/feature-layer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAGhD,OAAO,KAAK,EAEV,0BAA0B,EAC1B,uBAAuB,EACvB,2BAA2B,EAC3B,8BAA8B,EAC9B,WAAW,EACX,YAAY,EACZ,cAAc,EACd,6BAA6B,EAC7B,kBAAkB,EAClB,2BAA2B,EAC3B,6BAA6B,EAC7B,WAAW,EACZ,MAAM,kBAAkB,CAAC;AAE1B,OAAO,EAAE,cAAc,EAAmD,MAAM,gBAAgB,CAAC;AAKjG,MAAM,WAAW,yBAAyB;IACxC,gFAAgF;IAChF,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,2FAA2F;IAC3F,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5B,MAAM,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,EAAE,GAAG,OAAO,CAAC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,QAAQ,CAAC,EAAE,cAAc,CAAC;IAC1B,uFAAuF;IACvF,CAAC,KAAK,EAAE,MAAM,GAAG,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,wBAAwB;IACvC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;IACxD,8EAA8E;IAC9E,MAAM,CAAC,EAAE,WAAW,CAAC;CACtB;AAED,MAAM,MAAM,2BAA2B,GAAG,wBAAwB,GAAG;IACnE,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB,CAAC;AAEF,MAAM,WAAW,wBAAwB;IACvC,IAAI,CAAC,EAAE,OAAO,EAAE,CAAC;IACjB,4DAA4D;IAC5D,WAAW,CAAC,EAAE,OAAO,EAAE,CAAC;IACxB,OAAO,CAAC,EAAE,OAAO,EAAE,CAAC;IACpB,+DAA+D;IAC/D,cAAc,CAAC,EAAE,OAAO,EAAE,CAAC;IAC3B,OAAO,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,GAAG,SAAS;QAAE,QAAQ,CAAC,EAAE,MAAM,CAAA;KAAE,EAAE,CAAC;IAC/D,+DAA+D;IAC/D,cAAc,CAAC,EAAE,SAAS,OAAO,EAAE,CAAC;IACpC,iBAAiB,CAAC,EAAE,OAAO,CAAC;CAC7B;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,EAAE,MAAM,CAAC;IACd,SAAS,EAAE,MAAM,EAAE,CAAC;IACpB,cAAc,EAAE,OAAO,CAAC;CACzB;AAED,MAAM,WAAW,6BAA6B;IAC5C,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,uCAAuC;IACtD,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM,EAAE,CAAC;IAC9B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,mCAAmC;IAClD,SAAS,CAAC,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,WAAW,CAAC;IACrB,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,kCAAkC;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,oCAAoC;IACnD,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC;IACjC,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACzD;AAED,MAAM,MAAM,0BAA0B,GAAG,IAAI,GAAG,WAAW,GAAG,eAAe,GAAG,cAAc,CAAC,UAAU,CAAC,GAAG,MAAM,CAAC;AAEpH,MAAM,WAAW,gCAAgC;IAC/C,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,0BAA0B,CAAC;IACvC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,cAAc,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC;IAClC,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,GAAG,OAAO,CAAC,CAAC;CACzD;AAED,MAAM,WAAW,mCAAoC,SAAQ,gCAAgC;IAC3F,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,6BAA6B;IAC5C,MAAM,EAAE,WAAW,GAAG,IAAI,CAAC;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,4BAA4B,GAAG,YAAY,GAAG,SAAS,GAAG,QAAQ,GAAG,QAAQ,CAAC;AAE1F,MAAM,WAAW,wBAAwB;IACvC,MAAM,IAAI,IAAI,CAAC;CAChB;AAED,qBAAa,kBAAkB;IAC7B,SAAgB,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;IACxC,SAAgB,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;IACvD,SAAgB,MAAM,EAAE,SAAS,OAAO,EAAE,GAAG,SAAS,CAAC;IACvD,SAAgB,aAAa,EAAE,MAAM,GAAG,SAAS,CAAC;IAClD,SAAgB,YAAY,EAAE,MAAM,GAAG,SAAS,CAAC;IAC1C,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,GAAG,SAAS,CAAC;IACjC,SAAgB,SAAS,EAAE,MAAM,CAAC;IAClC,SAAgB,OAAO,EAAE,MAAM,CAAC;IACzB,SAAS,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;IAChC,oBAAoB,EAAE,MAAM,GAAG,SAAS,CAAC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,aAAa,EAAE,OAAO,CAAC;IACvB,YAAY,EAAE,OAAO,EAAE,CAAC;IACxB,aAAa,EAAE,OAAO,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,OAAO,CAAC;IACvB,QAAQ,EAAE,MAAM,CAAC;IACxB,yEAAyE;IAClE,UAAU,EAAE,WAAW,GAAG,SAAS,CAAC;IACpC,MAAM,EAAE,OAAO,CAAC;IAChB,UAAU,EAAE,4BAA4B,CAAC;IACzC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS,CAAC;IAC1D,SAAgB,QAAQ,EAAE,cAAc,CAAC;IAEzC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAc;IACrC,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,cAAc,CAA6C;IAC5E,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAS;gBAEzB,OAAO,EAAE,yBAAyB;IA6CxC,IAAI,IAAI,OAAO,CAAC,kBAAkB,CAAC;IA6CnC,IAAI,CAAC,QAAQ,CAAC,EAAE,CAAC,KAAK,EAAE,kBAAkB,KAAK,IAAI,GAAG,OAAO,CAAC,kBAAkB,CAAC;IASvF,OAAO,IAAI,IAAI;IAgBf,KAAK,CACV,YAAY,EAAE,SAAS,GAAG,QAAQ,GAAG,eAAe,GAAG,eAAe,EACtE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GACjC,wBAAwB;IACpB,KAAK,CACV,YAAY,EAAE,SAAS,GAAG,UAAU,GAAG,UAAU,EACjD,QAAQ,EAAE,CAAC,KAAK,EAAE,MAAM,KAAK,IAAI,GAChC,wBAAwB;IACpB,KAAK,CACV,YAAY,EAAE,YAAY,EAC1B,QAAQ,EAAE,CAAC,KAAK,EAAE,4BAA4B,KAAK,IAAI,GACtD,wBAAwB;IACpB,KAAK,CAAC,YAAY,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,wBAAwB;IAgBzF,aAAa,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI;IAUrC,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,IAAI;IAUjC,WAAW,CAAC,QAAQ,EAAE,OAAO,GAAG,IAAI;IAMpC,gBAAgB,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAM9C,eAAe,CAAC,YAAY,EAAE,SAAS,OAAO,EAAE,GAAG,IAAI;IAMvD,uBAAuB,CAAC,oBAAoB,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAMvE,YAAY,CAAC,SAAS,EAAE,MAAM,GAAG,SAAS,MAAM,EAAE,GAAG,SAAS,GAAG,IAAI;IAMrE,gBAAgB,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAM9C,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,SAAS,EAAE,QAAQ,EAAE,MAAM,GAAG,SAAS,GAAG,IAAI;IAY/E,gBAAgB,CAAC,aAAa,EAAE,OAAO,GAAG,IAAI;IAM9C,aAAa,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,IAAI,CAAC;QAAC,GAAG,EAAE,IAAI,CAAA;KAAE,GAAG,SAAS,GAAG,IAAI;IAQnE,OAAO,IAAI,IAAI;IAMf,EAAE,CAAC,SAAS,EAAE,MAAM,EAAE,QAAQ,EAAE,CAAC,KAAK,EAAE,OAAO,KAAK,IAAI,GAAG,wBAAwB;IAqBnF,UAAU,IAAI,SAAS,cAAc,EAAE;IAIvC,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,cAAc,GAAG,SAAS;IAWvD,QAAQ,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO;IAIpC,WAAW,IAAI,6BAA6B;IAQnD,OAAO,KAAK,UAAU,GAErB;IAED,OAAO,CAAC,0BAA0B;YAepB,WAAW;IAiClB,aAAa,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,kBAAkB,CAAC;IAe5E,gBAAgB,CAAC,OAAO,GAAE,2BAAgC,GAAG,OAAO,CAAC,YAAY,EAAE,CAAC;IAsCnF,mBAAmB,CAC/B,OAAO,GAAE,2BAAgC,GACxC,cAAc,CAAC,YAAY,EAAE,EAAE,IAAI,EAAE,SAAS,CAAC;IAmCrC,cAAc,CAAC,OAAO,GAAE,6BAAkC,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;IAiC9E,iBAAiB,CAAC,OAAO,GAAE,6BAAkC,GAAG,OAAO,CAAC,MAAM,CAAC;IAqB/E,WAAW,CAAC,OAAO,GAAE,6BAAkC,GAAG,OAAO,CAAC,6BAA6B,CAAC;IA4DhG,UAAU,CAAC,OAAO,EAAE,wBAAwB,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAyBrF,oBAAoB,CAAC,OAAO,EAAE,uCAAuC,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAc5G,mBAAmB,CAAC,OAAO,EAAE,uCAAuC,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAI3G,gBAAgB,CAAC,OAAO,GAAE,mCAAwC,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAiB3G,eAAe,CAAC,OAAO,EAAE,kCAAkC,GAAG,OAAO,CAAC,2BAA2B,CAAC;IAWlG,iBAAiB,CAAC,OAAO,EAAE,oCAAoC,GAAG,OAAO,CAAC,8BAA8B,CAAC;IAyBzG,aAAa,CAAC,OAAO,EAAE,gCAAgC,GAAG,OAAO,CAAC,0BAA0B,CAAC;IAuB7F,gBAAgB,CAAC,OAAO,EAAE,mCAAmC,GAAG,OAAO,CAAC,6BAA6B,CAAC;IAyB7G,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"feature-layer.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/feature-layer.ts"],"names":[],"mappings":"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"}
@@ -2,6 +2,7 @@ import { HonuaClient } from "../core/client.js";
2
2
  import { HonuaCapabilityNotSupportedError } from "../core/errors.js";
3
3
  import { encodeServiceIdPath } from "../core/path-utils.js";
4
4
  import { responseExceededTransferLimit } from "../core/wire-shared.js";
5
+ import { applyToFeatures as applyFeatureEdits } from "../widget-capabilities.js";
5
6
  import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
6
7
  import { parseFeatureLayerUrl } from "./url.js";
7
8
  const DEFAULT_MAX_ATTACHMENT_BYTES = 25 * 1024 * 1024;
@@ -19,6 +20,7 @@ export class FeatureLayerCompat {
19
20
  definitionExpression;
20
21
  renderer;
21
22
  popupTemplate;
23
+ featureEffectValue;
22
24
  labelingInfo;
23
25
  labelsVisible;
24
26
  opacity;
@@ -42,7 +44,7 @@ export class FeatureLayerCompat {
42
44
  const inMemory = options.source !== undefined && options.url === undefined;
43
45
  const parsed = inMemory ? undefined : parseFeatureLayerUrl(options.url ?? "");
44
46
  this.url = options.url;
45
- this.source = options.source === undefined ? undefined : [...options.source];
47
+ this.source = normalizeFeatureSource(options.source);
46
48
  this.fields = options.fields === undefined ? undefined : [...options.fields];
47
49
  this.objectIdField = options.objectIdField;
48
50
  this.geometryType = options.geometryType;
@@ -58,6 +60,7 @@ export class FeatureLayerCompat {
58
60
  : [options.outFields];
59
61
  this.definitionExpression = options.definitionExpression;
60
62
  this.renderer = options.renderer;
63
+ this.featureEffectValue = options.featureEffect;
61
64
  this.popupTemplate = options.popupTemplate;
62
65
  this.labelingInfo = Array.isArray(options.labelingInfo)
63
66
  ? [...options.labelingInfo]
@@ -82,6 +85,31 @@ export class FeatureLayerCompat {
82
85
  this.eventListeners = new Map();
83
86
  this.maxAttachmentBytes = normalizeAttachmentSizeLimit(options.maxAttachmentBytes);
84
87
  }
88
+ get featureEffect() {
89
+ return this.featureEffectValue;
90
+ }
91
+ set featureEffect(value) {
92
+ this.featureEffectValue = value;
93
+ this.notifyWatchers("featureEffect", value);
94
+ this.eventBus.emit("feature-layer.feature-effect-changed", { featureEffect: value }, this);
95
+ }
96
+ /**
97
+ * Symbol the view should paint for one feature. A feature's own symbol wins.
98
+ * Otherwise the renderer supplies it, and an excluded feature effect replaces
99
+ * the color.
100
+ */
101
+ symbolForFeature(feature) {
102
+ if (feature && typeof feature === "object" && feature.symbol) {
103
+ return feature.symbol;
104
+ }
105
+ const base = symbolFromRenderer(this.renderer, feature);
106
+ const where = effectWhere(this.featureEffectValue);
107
+ const excludedEffect = effectString(this.featureEffectValue, "excludedEffect");
108
+ if (where && !featureMatchesWhere(feature, where) && excludedEffect) {
109
+ return excludedSymbol(base, excludedEffect);
110
+ }
111
+ return base;
112
+ }
85
113
  async load() {
86
114
  if (!this.loaded) {
87
115
  this.loadStatus = "loading";
@@ -496,6 +524,18 @@ export class FeatureLayerCompat {
496
524
  this.eventBus.emit("feature-layer.edits", { result, layerId: this.id }, this);
497
525
  return result;
498
526
  }
527
+ /** Applies one attribute change to each feature through {@link applyEdits}. A named edit error rejects that feature only. */
528
+ applyToFeatures(features, change) {
529
+ return applyFeatureEdits(features, change, async (edit) => {
530
+ const result = await this.applyEdits({ updates: [edit.update] });
531
+ const updates = result.updateFeatureResults ?? result.updateResults ?? [];
532
+ const failed = updates.find((item) => item.success === false || item.error);
533
+ if (!failed)
534
+ return {};
535
+ const reason = failed.error?.description ?? "rejected";
536
+ return { error: reason, reason };
537
+ });
538
+ }
499
539
  queryRelatedFeatures(options) {
500
540
  return this.client.queryRelatedRecords({
501
541
  serviceId: this.serviceId,
@@ -814,6 +854,137 @@ function copyToArrayBuffer(chunk) {
814
854
  copy.set(chunk);
815
855
  return copy.buffer;
816
856
  }
857
+ function normalizeFeatureSource(source) {
858
+ if (source === undefined) {
859
+ return undefined;
860
+ }
861
+ if (Array.isArray(source)) {
862
+ return [...source];
863
+ }
864
+ if (source && typeof source === "object") {
865
+ const record = source;
866
+ if (typeof record.toArray === "function") {
867
+ const items = record.toArray();
868
+ return Array.isArray(items) ? [...items] : [];
869
+ }
870
+ if (Array.isArray(record.items)) {
871
+ return [...record.items];
872
+ }
873
+ if (typeof record.length === "number" && Number.isFinite(record.length)) {
874
+ return Array.from(source);
875
+ }
876
+ }
877
+ return [];
878
+ }
879
+ function symbolFromRenderer(renderer, feature) {
880
+ if (!renderer || typeof renderer !== "object") {
881
+ return undefined;
882
+ }
883
+ const record = renderer;
884
+ const type = typeof record.type === "string" ? record.type : record.symbol ? "simple" : "";
885
+ if (type === "simple") {
886
+ return record.symbol;
887
+ }
888
+ if (type === "unique-value" && Array.isArray(record.uniqueValueInfos)) {
889
+ const field = typeof record.field === "string" ? record.field : undefined;
890
+ const value = field ? featureAttributes(feature)[field] : undefined;
891
+ for (const info of record.uniqueValueInfos) {
892
+ if (!info || typeof info !== "object") {
893
+ continue;
894
+ }
895
+ const entry = info;
896
+ if (entry.value === value || String(entry.value) === String(value)) {
897
+ return entry.symbol ?? record.defaultSymbol;
898
+ }
899
+ }
900
+ return record.defaultSymbol ?? record.symbol;
901
+ }
902
+ if (type === "class-breaks" && Array.isArray(record.classBreakInfos)) {
903
+ const field = typeof record.field === "string" ? record.field : undefined;
904
+ const raw = field ? featureAttributes(feature)[field] : undefined;
905
+ const value = typeof raw === "number" ? raw : typeof raw === "string" ? Number(raw) : Number.NaN;
906
+ if (!Number.isFinite(value)) {
907
+ return record.defaultSymbol ?? record.symbol;
908
+ }
909
+ for (const info of record.classBreakInfos) {
910
+ if (!info || typeof info !== "object") {
911
+ continue;
912
+ }
913
+ const entry = info;
914
+ const min = typeof entry.minValue === "number" ? entry.minValue : Number.NEGATIVE_INFINITY;
915
+ const max = typeof entry.maxValue === "number" ? entry.maxValue : Number.POSITIVE_INFINITY;
916
+ if (value >= min && value <= max) {
917
+ return entry.symbol ?? record.defaultSymbol;
918
+ }
919
+ }
920
+ return record.defaultSymbol ?? record.symbol;
921
+ }
922
+ return record.symbol;
923
+ }
924
+ function effectWhere(effect) {
925
+ if (!effect || typeof effect !== "object") {
926
+ return undefined;
927
+ }
928
+ const filter = effect.filter;
929
+ if (!filter || typeof filter !== "object") {
930
+ return undefined;
931
+ }
932
+ const where = filter.where;
933
+ return typeof where === "string" ? where : undefined;
934
+ }
935
+ function effectString(effect, key) {
936
+ if (!effect || typeof effect !== "object") {
937
+ return undefined;
938
+ }
939
+ const value = effect[key];
940
+ return typeof value === "string" && value.length > 0 ? value : undefined;
941
+ }
942
+ function excludedSymbol(base, excludedEffect) {
943
+ const opacity = opacityFromEffect(excludedEffect);
944
+ const grayscale = /grayscale\(/i.test(excludedEffect);
945
+ const alpha = Math.round((opacity ?? 1) * 255);
946
+ const color = grayscale || opacity !== undefined ? [158, 158, 158, alpha] : undefined;
947
+ if (!color) {
948
+ return base;
949
+ }
950
+ if (grayscale) {
951
+ const symbol = base && typeof base === "object" ? { ...base } : { type: "simple-marker", size: 12 };
952
+ return { ...symbol, color: [158, 158, 158, alpha] };
953
+ }
954
+ const rgb = rgbFromColor(base && typeof base === "object" ? base.color : undefined);
955
+ const next = rgb ? [rgb[0], rgb[1], rgb[2], alpha] : [158, 158, 158, alpha];
956
+ const symbol = base && typeof base === "object" ? { ...base } : { type: "simple-marker", size: 12 };
957
+ return { ...symbol, color: next };
958
+ }
959
+ function opacityFromEffect(effect) {
960
+ const match = /opacity\(\s*(\d+(?:\.\d+)?)\s*(%?)\s*\)/i.exec(effect);
961
+ if (!match) {
962
+ return undefined;
963
+ }
964
+ const amount = Number(match[1]);
965
+ if (!Number.isFinite(amount)) {
966
+ return undefined;
967
+ }
968
+ const ratio = match[2] === "%" || amount > 1 ? amount / 100 : amount;
969
+ return Math.min(1, Math.max(0, ratio));
970
+ }
971
+ function rgbFromColor(value) {
972
+ if (Array.isArray(value) && value.length >= 3 && value.every((part) => typeof part === "number")) {
973
+ return [value[0], value[1], value[2]];
974
+ }
975
+ if (typeof value !== "string") {
976
+ return undefined;
977
+ }
978
+ const hex = /^#?([0-9a-f]{6})$/i.exec(value.trim());
979
+ if (!hex?.[1]) {
980
+ return undefined;
981
+ }
982
+ return [
983
+ Number.parseInt(hex[1].slice(0, 2), 16),
984
+ Number.parseInt(hex[1].slice(2, 4), 16),
985
+ Number.parseInt(hex[1].slice(4, 6), 16),
986
+ ];
987
+ }
817
988
  function featureAttributes(feature) {
818
989
  if (!feature || typeof feature !== "object") {
819
990
  return {};
@@ -103,8 +103,11 @@ export declare class FeatureTableCompat {
103
103
  private readonly watchListeners;
104
104
  private refreshRevision;
105
105
  private layerInternal;
106
+ private readonly widgetHost;
106
107
  get size(): number;
107
108
  get layer(): FeatureLayerCompat | undefined;
109
+ /** Field names the host pushes into `<honua-feature-table>`. */
110
+ get visibleFields(): readonly string[];
108
111
  set layer(layer: FeatureLayerCompat | undefined);
109
112
  get loaded(): boolean;
110
113
  constructor(options?: FeatureTableCompatOptions);
@@ -113,6 +116,7 @@ export declare class FeatureTableCompat {
113
116
  watch(propertyName: string, listener: (value: unknown) => void): FeatureTableHandleCompat;
114
117
  refresh(): Promise<readonly FeatureTableRowCompat[]>;
115
118
  setLayer(layer: FeatureLayerCompat | undefined): void;
119
+ setVisibleFields(fields: readonly string[]): void;
116
120
  setWhere(where: string): void;
117
121
  setFilterGeometry(filterGeometry: Record<string, unknown> | null): void;
118
122
  selectRows(objectIds: readonly number[]): void;
@@ -135,6 +139,7 @@ export declare class FeatureTableCompat {
135
139
  findRowByObjectId(objectId: number): FeatureTableRowCompat | undefined;
136
140
  destroy(): void;
137
141
  queryRelatedRecords(options: FeatureTableQueryRelatedRecordsOptions): Promise<HonuaRelatedRecordsResponse>;
142
+ private pushWidgetHost;
138
143
  private notifyWatchers;
139
144
  private nextRefreshRevision;
140
145
  }
@@ -1 +1 @@
1
- {"version":3,"file":"feature-table.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/feature-table.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"feature-table.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/feature-table.ts"],"names":[],"mappings":"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"}
@@ -1,4 +1,5 @@
1
1
  import { CompatEventBus, resolveCompatEventBus, safeInvokeCompatListener } from "./event-bus.js";
2
+ import { bindHonuaWidgetHost, pushWidgetHostState } from "./widget-host.js";
2
3
  export class FeatureTableHighlightIdsCompat {
3
4
  values;
4
5
  listeners;
@@ -151,12 +152,20 @@ export class FeatureTableCompat {
151
152
  watchListeners;
152
153
  refreshRevision;
153
154
  layerInternal;
155
+ widgetHost;
154
156
  get size() {
155
157
  return this.rows.length;
156
158
  }
157
159
  get layer() {
158
160
  return this.layerInternal;
159
161
  }
162
+ /** Field names the host pushes into `<honua-feature-table>`. */
163
+ get visibleFields() {
164
+ return (this.fieldConfigs ?? []).flatMap((config) => {
165
+ const name = config.name ?? config.field ?? config.fieldName;
166
+ return typeof name === "string" ? [name] : [];
167
+ });
168
+ }
160
169
  set layer(layer) {
161
170
  this.setLayer(layer);
162
171
  }
@@ -197,6 +206,8 @@ export class FeatureTableCompat {
197
206
  this.rows = [];
198
207
  this.watchListeners = new Map();
199
208
  this.refreshRevision = 0;
209
+ this.widgetHost = bindHonuaWidgetHost("honua-feature-table", this.container, this.eventBus);
210
+ this.pushWidgetHost();
200
211
  this.highlightIds.on("change", (event) => {
201
212
  this.notifyWatchers("highlightIds", this.highlightIds.toArray());
202
213
  this.eventBus.emit("feature-table.selection-changed", {
@@ -303,6 +314,12 @@ export class FeatureTableCompat {
303
314
  this.layerInternal = layer;
304
315
  this.notifyWatchers("layer", this.layerInternal);
305
316
  this.eventBus.emit("feature-table.layer-changed", { hasLayer: Boolean(layer) }, this);
317
+ this.pushWidgetHost();
318
+ }
319
+ setVisibleFields(fields) {
320
+ this.fieldConfigs = fields.map((name) => ({ name }));
321
+ this.notifyWatchers("fieldConfigs", this.fieldConfigs);
322
+ this.pushWidgetHost();
306
323
  }
307
324
  setWhere(where) {
308
325
  this.where = where;
@@ -395,6 +412,12 @@ export class FeatureTableCompat {
395
412
  extraParams: options.extraParams,
396
413
  });
397
414
  }
415
+ pushWidgetHost() {
416
+ pushWidgetHostState(this.widgetHost, {
417
+ layer: this.layer,
418
+ visibleFields: this.visibleFields,
419
+ });
420
+ }
398
421
  notifyWatchers(propertyName, value) {
399
422
  const listeners = this.watchListeners.get(propertyName);
400
423
  if (!listeners) {
@@ -44,7 +44,7 @@ declare class IdentityManagerCompatStore {
44
44
  * @example
45
45
  * ```ts
46
46
  * import { oauth2 } from "@honua/sdk-js/auth";
47
- * import { identityManager, OAuthInfoCompat } from "@honua/sdk-js/esri-compat";
47
+ * import { identityManager, OAuthInfoCompat } from "@honua/sdk-js/client-compat";
48
48
  *
49
49
  * const info = new OAuthInfoCompat({ appId: "app", portalUrl: "https://portal.example" });
50
50
  * identityManager.registerOAuthInfos([info]);
@@ -71,7 +71,7 @@ class IdentityManagerCompatStore {
71
71
  * @example
72
72
  * ```ts
73
73
  * import { oauth2 } from "@honua/sdk-js/auth";
74
- * import { identityManager, OAuthInfoCompat } from "@honua/sdk-js/esri-compat";
74
+ * import { identityManager, OAuthInfoCompat } from "@honua/sdk-js/client-compat";
75
75
  *
76
76
  * const info = new OAuthInfoCompat({ appId: "app", portalUrl: "https://portal.example" });
77
77
  * identityManager.registerOAuthInfos([info]);
@@ -16,6 +16,8 @@ export interface LegendItemCompat {
16
16
  contentType: string | undefined;
17
17
  width: number | undefined;
18
18
  height: number | undefined;
19
+ /** CSS color for a renderer swatch when the layer has no legend image. */
20
+ color?: string;
19
21
  }
20
22
  export interface LegendLayerGroupCompat {
21
23
  layer: unknown;
@@ -1 +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;AAGxB,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;IACtB,SAAS,EAAE,OAAO,CAAC;IAC1B,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;IAChC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,mBAAwB;IAyCvC,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;IAqC3D,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAS3C,OAAO,IAAI,IAAI;IAQtB,4EAA4E;YAC9D,gBAAgB;IAe9B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,cAAc;CAUvB"}
1
+ {"version":3,"file":"legend.d.ts","sourceRoot":"","sources":["../../../src/esri-compat/legend.ts"],"names":[],"mappings":"AAAA,OAAO,EACL,cAAc,EAIf,MAAM,gBAAgB,CAAC;AAGxB,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;IAC3B,0EAA0E;IAC1E,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;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;IACtB,SAAS,EAAE,OAAO,CAAC;IAC1B,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;IAChC;;;;;;OAMG;IACH,OAAO,CAAC,QAAQ,CAAC,UAAU,CAA8B;gBAEtC,OAAO,GAAE,mBAAwB;IAyCvC,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;IAqC3D,eAAe,CAAC,OAAO,EAAE,WAAW,GAAG,IAAI;IAS3C,OAAO,IAAI,IAAI;IAQtB,4EAA4E;YAC9D,gBAAgB;IAgB9B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;IAK3B,OAAO,CAAC,cAAc;CAUvB"}