@arcgis/core 5.1.0-next.61 → 5.1.0-next.63

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 (31) hide show
  1. package/assets/esri/core/workers/RemoteClient.js +1 -1
  2. package/assets/esri/core/workers/chunks/4dbbf59c79d9e72f20ee.js +1 -0
  3. package/assets/esri/core/workers/chunks/71326d16b5cc35c3ff7f.js +1 -0
  4. package/assets/esri/core/workers/chunks/{c69fefe9d51ac7c2b0a6.js → 75f7c1f600c4051bc905.js} +1 -1
  5. package/assets/esri/core/workers/chunks/ed60b5eaa5765bfcb99c.js +1 -0
  6. package/config.js +1 -1
  7. package/interfaces.d.ts +14 -0
  8. package/kernel.js +1 -1
  9. package/layers/mixins/ArcGISImageService.js +1 -1
  10. package/layers/raster/datasets/BaseRaster.js +1 -1
  11. package/layers/raster/datasets/ImageAuxRaster.js +1 -1
  12. package/layers/raster/datasets/ImageServerRaster.js +1 -1
  13. package/layers/raster/formats/ImageCanvasDecoder.js +1 -1
  14. package/layers/raster/formats/JpgPlus.js +1 -1
  15. package/layers/raster/formats/RasterCodec.js +1 -1
  16. package/package.json +1 -1
  17. package/popup/Feature.d.ts +8 -3
  18. package/popup/Feature.js +1 -1
  19. package/popup/Features.d.ts +663 -0
  20. package/popup/Features.js +2 -0
  21. package/popup/support/FeatureAbilities.d.ts +30 -0
  22. package/popup/support/FeatureAbilities.js +2 -0
  23. package/support/revision.js +1 -1
  24. package/views/2d/engine/webgl/shaders/sources/shaderRepository.js +1 -1
  25. package/widgets/Feature/FeatureViewModel.d.ts +2 -1
  26. package/widgets/Feature/FeatureViewModel.js +1 -1
  27. package/widgets/Feature.js +1 -1
  28. package/widgets/Popup/actionUtils.js +1 -1
  29. package/assets/esri/core/workers/chunks/5f3f50fec18d1642fdf9.js +0 -1
  30. package/assets/esri/core/workers/chunks/b42487c6a989e11a2559.js +0 -1
  31. package/assets/esri/core/workers/chunks/dba479176db0a23c8034.js +0 -1
@@ -0,0 +1,663 @@
1
+ import type Graphic from "../Graphic.js";
2
+ import type EsriMap from "../Map.js";
3
+ import type Collection from "../core/Collection.js";
4
+ import type Point from "../geometry/Point.js";
5
+ import type SpatialReference from "../geometry/SpatialReference.js";
6
+ import type Feature from "./Feature.js";
7
+ import type FeatureAbilities from "./support/FeatureAbilities.js";
8
+ import type { EventedAccessor } from "../core/Evented.js";
9
+ import type { ScreenPoint } from "../core/types.js";
10
+ import type { SpatialReferenceProperties } from "../geometry/SpatialReference.js";
11
+ import type { State, FetchFeaturesOptions } from "./types.js";
12
+ import type { TimeZone } from "../time/types.js";
13
+ import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js";
14
+ import type { FetchPopupFeaturesResult } from "../views/types.js";
15
+ import type { ActionEvent, InitialDisplayOptions, PopupAction } from "../widgets/Popup/types.js";
16
+ import type { GoTo, GoToProperties } from "../widgets/support/GoTo.js";
17
+ import type { GoToParameters } from "../widgets/support/types.js";
18
+ import type { ActionToggleProperties } from "../support/actions/ActionToggle.js";
19
+ import type { ActionButtonProperties } from "../support/actions/ActionButton.js";
20
+ import type { ReadonlyArrayOrCollection } from "../core/Collection.js";
21
+ import type { FeatureAbilitiesProperties } from "./support/FeatureAbilities.js";
22
+ import type { PointProperties } from "../geometry/Point.js";
23
+
24
+ export interface FeaturesProperties extends GoToProperties, Partial<Pick<Features, "activeFeature" | "browseClusterEnabled" | "content" | "defaultPopupTemplateEnabled" | "featureMenuOpen" | "featureMenuTitle" | "featurePage" | "features" | "featuresPerPage" | "heading" | "highlightEnabled" | "includeDefaultActions" | "initialDisplayMode" | "map" | "open" | "promises" | "selectedFeatureIndex" | "updateLocationEnabled" | "view" | "zoomFactor">> {
25
+ /**
26
+ * [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/) of [action](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionButton/) or [action toggle](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionToggle/) objects.
27
+ * Each action may be executed by clicking the icon or image symbolizing them.
28
+ * By default, every popup and Features widget has a `Zoom To` action styled with a magnifying glass icon ![popupTemplate-zoom-action](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/popup/popuptemplate-zoom-action.png).
29
+ * When this icon is clicked, the view zooms in four LODs and centers on the selected feature.
30
+ *
31
+ * You may remove this default action by setting [includeDefaultActions](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#includeDefaultActions) to `false`, or by setting the
32
+ * [PopupTemplate.overwriteActions](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/#overwriteActions) property to `true` in a [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/).
33
+ * The order of each action is the order in which they appear in the actions [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/).
34
+ *
35
+ * The [@trigger-action](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#event-trigger-action) event fires each time an action is clicked.
36
+ *
37
+ * Actions are defined with the properties listed in the [ActionButton](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionButton/) or [ActionToggle](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionToggle/) class.
38
+ *
39
+ * @see [@trigger-action](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#event-trigger-action)
40
+ * @see [Sample - Popup actions](https://developers.arcgis.com/javascript/latest/sample-code/popup-actions/)
41
+ * @example
42
+ * // Defines an action button to zoom out from the selected feature
43
+ * const zoomOutAction = new ActionButton({
44
+ * // This text is displayed as a tooltip
45
+ * title: "Zoom out",
46
+ * // The ID by which to reference the action in the event handler
47
+ * id: "zoom-out",
48
+ * // Sets the icon used to style the action button
49
+ * icon: "magnifying-glass-minus"
50
+ * });
51
+ * // Adds the custom action to the popup.
52
+ * view.popup.viewModel.actions.push(zoomOutAction);
53
+ *
54
+ * // Adds the custom action to the Features widget
55
+ * featuresWidget.viewModel.actions.push(zoomOutAction);
56
+ */
57
+ actions?: ReadonlyArrayOrCollection<((ActionButtonProperties & { type: "button" }) | (ActionToggleProperties & { type: "toggle" }))>;
58
+ /** Defines the specific [Abilities](https://developers.arcgis.com/javascript/latest/references/core/widgets/Feature/types/#Abilities) that can be used when querying and displaying content. */
59
+ featureItemAbilities?: FeatureAbilitiesProperties | null;
60
+ /**
61
+ * Geometry used to show the location of the feature. This is automatically set when selecting a feature. If displaying content not related
62
+ * to features in the map, such as the results from a task, then you must set this
63
+ * property before making the widget [open](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#open) to the user.
64
+ *
65
+ * @see [Get started with popups](https://developers.arcgis.com/javascript/latest/sample-code/intro-popup/)
66
+ * @example
67
+ * // Sets the location of the popup to the center of the view
68
+ * view.popup.viewModel.location = view.center;
69
+ * // Displays the popup
70
+ * view.popup.visible = true;
71
+ * @example
72
+ * // Display a popup when and where the user clicks the view.
73
+ * reactiveUtils.on(()=>view, "click", ({ mapPoint })=>{
74
+ * view.popup.viewModel.location = mapPoint;
75
+ * view.popup.visible = true;
76
+ * });
77
+ */
78
+ location?: PointProperties | null;
79
+ /**
80
+ * The spatial reference used for [Arcade](https://developers.arcgis.com/arcade) operations.
81
+ * This property should be set if Arcade expressions are executed that contain [geometry functions](https://developers.arcgis.com/arcade/function-reference/geometry_functions/).
82
+ *
83
+ * Alternatively, the [view](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#view) property can be used to provide the spatial reference instance for this property.
84
+ *
85
+ * @since 4.30
86
+ * @see [Type system](https://developers.arcgis.com/arcade/guide/types/#featuresetcollection)
87
+ * @see [Arcade Profiles: Popup](https://developers.arcgis.com/arcade/profiles/popup/)
88
+ */
89
+ spatialReference?: SpatialReferenceProperties | null;
90
+ /**
91
+ * Dates and times will be displayed in this time zone. By default this time zone is
92
+ * inherited from [MapView.timeZone](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#timeZone) if the [view](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#view) property is set. When a MapView is not associated with the widget view model,
93
+ * then the property will fallback to the `system` time zone.
94
+ *
95
+ * **Possible Values**
96
+ *
97
+ * Value | Description |
98
+ * ----- | ----------- |
99
+ * system | Dates and times will be displayed in the timezone of the device or browser.
100
+ * unknown | Dates and time are not adjusted for any timezone.
101
+ * Specified IANA timezone | Dates and times will be displayed in the specified IANA time zone. See [wikipedia - List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
102
+ *
103
+ * @since 4.30
104
+ */
105
+ timeZone?: TimeZone | null;
106
+ }
107
+
108
+ export interface FeaturesEvents {
109
+ /**
110
+ * Fires after the user clicks on an [action](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionButton/) or [action toggle](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionToggle/) in the action bar. This
111
+ * event may be used to define a custom function to execute when particular
112
+ * actions are clicked. See the example below for details of how this works.
113
+ *
114
+ * @see [Popup.actions](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/#actions)
115
+ * @see [PopupTemplate.actions](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/#actions)
116
+ * @see [open](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#open)
117
+ * @example
118
+ * featuresWidget.open({
119
+ * location: event.mapPoint,
120
+ * fetchFeatures: true,
121
+ * featureMenuOpen: true,
122
+ * actions: [new ActionButton({
123
+ * // This text is displayed as a tooltip
124
+ * title: "Zoom out",
125
+ * // The ID used to reference this action in the event handler
126
+ * id: "zoom-out",
127
+ * // Sets the icon for the action button
128
+ * icon: "magnifying-glass"
129
+ * }),
130
+ * new ActionButton({
131
+ * title: "Delete Feature",
132
+ * id: "delete-feature-action",
133
+ * icon: "trash"
134
+ * })]
135
+ * });
136
+ *
137
+ * // Fires each time an action is clicked
138
+ * reactiveUtils.on(()=> featuresWidget, "trigger-action", (event)=>{
139
+ * // If the zoom-out action is clicked, execute the following code
140
+ * if(event.action.id === "zoom-out"){
141
+ * // Zoom out two levels (LODs)
142
+ * view.goTo({
143
+ * center: view.center,
144
+ * zoom: view.zoom - 2
145
+ * });
146
+ * }
147
+ * });
148
+ * @example
149
+ * // Defines an action button to zoom out from the selected feature
150
+ * const zoomOutAction = new ActionButton({
151
+ * // This text is displayed as a tooltip
152
+ * title: "Zoom out",
153
+ * // The ID by which to reference the action in the event handler
154
+ * id: "zoom-out",
155
+ * // Sets the icon used to style the action button
156
+ * icon: "magnifying-glass-minus"
157
+ * });
158
+ * // Adds the custom action to the popup.
159
+ * view.popup.actions.push(zoomOutAction);
160
+ *
161
+ * // This event fires for each click on any action
162
+ * reactiveUtils.on(()=>view.popup?.viewModel, "trigger-action", (event)=>{
163
+ * // If the zoom-out action is clicked, fire the zoomOut() function
164
+ * if(event.action.id === "zoom-out"){
165
+ * // in this case the view zooms out two LODs on each click
166
+ * view.goTo({
167
+ * center: view.center,
168
+ * zoom: view.zoom - 2
169
+ * });
170
+ * }
171
+ * });
172
+ * @example
173
+ * // Defines an action button to zoom out from the selected feature
174
+ * const zoomOutAction = new ActionButton({
175
+ * // This text is displayed as a tooltip
176
+ * title: "Zoom out",
177
+ * // The ID by which to reference the action in the event handler
178
+ * id: "zoom-out",
179
+ * // Sets the icon used to style the action button
180
+ * icon: "magnifying-glass-minus"
181
+ * });
182
+ * // Adds the custom action to the popup.
183
+ * view.popup.actions.push(zoomOutAction);
184
+ *
185
+ * // This event fires for each click on any action
186
+ * reactiveUtils.on(()=>view.popup?.popupViewModel, "trigger-action", (event)=>{
187
+ * // If the zoom-out action is clicked, fire the zoomOut() function
188
+ * if(event.action.id === "zoom-out"){
189
+ * // in this case the view zooms out two LODs on each click
190
+ * view.goTo({
191
+ * center: view.center,
192
+ * zoom: view.zoom - 2
193
+ * });
194
+ * }
195
+ * });
196
+ */
197
+ "trigger-action": ActionEvent;
198
+ }
199
+
200
+ /**
201
+ * Provides the logic for the [Features](https://developers.arcgis.com/javascript/latest/references/core/widgets/Features/) widget and [component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-features/).
202
+ *
203
+ * @since 4.27
204
+ * @see [Features](https://developers.arcgis.com/javascript/latest/references/core/widgets/Features/) widget - _Deprecated since 4.34. Use the [Features component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-features) instead._
205
+ * @see [Features component](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-features/)
206
+ * @see [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/)
207
+ */
208
+ export default class Features extends FeaturesSuperclass {
209
+ /**
210
+ * @deprecated
211
+ * Do not directly reference this property.
212
+ * Use EventNames and EventTypes helpers from \@arcgis/core/Evented
213
+ */
214
+ "@eventTypes": FeaturesEvents;
215
+ constructor(properties?: FeaturesProperties);
216
+ /**
217
+ * [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/) of [action](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionButton/) or [action toggle](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionToggle/) objects.
218
+ * Each action may be executed by clicking the icon or image symbolizing them.
219
+ * By default, every popup and Features widget has a `Zoom To` action styled with a magnifying glass icon ![popupTemplate-zoom-action](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/popup/popuptemplate-zoom-action.png).
220
+ * When this icon is clicked, the view zooms in four LODs and centers on the selected feature.
221
+ *
222
+ * You may remove this default action by setting [includeDefaultActions](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#includeDefaultActions) to `false`, or by setting the
223
+ * [PopupTemplate.overwriteActions](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/#overwriteActions) property to `true` in a [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/).
224
+ * The order of each action is the order in which they appear in the actions [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/).
225
+ *
226
+ * The [@trigger-action](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#event-trigger-action) event fires each time an action is clicked.
227
+ *
228
+ * Actions are defined with the properties listed in the [ActionButton](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionButton/) or [ActionToggle](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionToggle/) class.
229
+ *
230
+ * @see [@trigger-action](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#event-trigger-action)
231
+ * @see [Sample - Popup actions](https://developers.arcgis.com/javascript/latest/sample-code/popup-actions/)
232
+ * @example
233
+ * // Defines an action button to zoom out from the selected feature
234
+ * const zoomOutAction = new ActionButton({
235
+ * // This text is displayed as a tooltip
236
+ * title: "Zoom out",
237
+ * // The ID by which to reference the action in the event handler
238
+ * id: "zoom-out",
239
+ * // Sets the icon used to style the action button
240
+ * icon: "magnifying-glass-minus"
241
+ * });
242
+ * // Adds the custom action to the popup.
243
+ * view.popup.viewModel.actions.push(zoomOutAction);
244
+ *
245
+ * // Adds the custom action to the Features widget
246
+ * featuresWidget.viewModel.actions.push(zoomOutAction);
247
+ */
248
+ get actions(): Collection<PopupAction>;
249
+ set actions(value: ReadonlyArrayOrCollection<((ActionButtonProperties & { type: "button" }) | (ActionToggleProperties & { type: "toggle" }))>);
250
+ /**
251
+ * Indicates if the view model is open and is not [waiting for results](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#waitingForResult).
252
+ *
253
+ * @see [waitingForResult](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#waitingForResult)
254
+ * @see [open](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#open)
255
+ */
256
+ get active(): boolean;
257
+ /**
258
+ * The highlighted feature on the map that is either hovered over or in focus within the feature menu.
259
+ *
260
+ * @since 4.32
261
+ */
262
+ accessor activeFeature: Graphic | null | undefined;
263
+ /** A collection of [actions](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionButton/) or [action toggles](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionToggle/). */
264
+ get allActions(): Collection<PopupAction>;
265
+ /**
266
+ * Indicates if the "Browse features" experience is active in a
267
+ * [cluster](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FeatureReductionCluster/) popup. This value becomes
268
+ * `true` when the user enables feature browsing with the "Browse features" cluster
269
+ * [action button](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionButton/).
270
+ * It becomes `false` when the view scale changes, when the widget is closed, or when the user disables
271
+ * the "Browse features" action. This should only be set programmatically when the
272
+ * [selectedFeature](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#selectedFeature) is
273
+ * an [aggregate graphic](https://developers.arcgis.com/javascript/latest/references/core/Graphic/#isAggregate) and represents a cluster.
274
+ *
275
+ * @default false
276
+ * @example
277
+ * // open the browse features experience for a cluster graphic
278
+ * featuresWidget.viewModel.browseClusterEnabled = featuresWidget.viewModel.selectedFeature?.isAggregate;
279
+ *
280
+ * view.popup.viewModel.browseClusterEnabled = view.popup.viewModel.selectedFeature?.isAggregate;
281
+ */
282
+ accessor browseClusterEnabled: boolean;
283
+ /**
284
+ * The information to display. When this property is set, this content may
285
+ * only be static and cannot use fields to set content templates. To set a template
286
+ * for the content based on field or attribute names, see
287
+ * [PopupTemplate.content](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/#content).
288
+ *
289
+ * @see [Sample - Popup Docking](https://developers.arcgis.com/javascript/latest/sample-code/popup-docking-position/)
290
+ * @example
291
+ * // This sets generic instructions in the popup that will always be displayed
292
+ * // unless it is overridden by a PopupTemplate.
293
+ * // This can be set on the Features widget view model
294
+ * featuresWidget.viewModel.content = "Click a feature on the map to view its attributes";
295
+ *
296
+ * // Or set on the Popup widget view model.
297
+ * view.popup.viewModel.content = "Click a feature on the map to view its attributes";
298
+ */
299
+ accessor content: string | HTMLElement | null | undefined;
300
+ /**
301
+ * A read-only property that specifies a [Collection](https://developers.arcgis.com/javascript/latest/references/core/core/Collection/) of action [buttons](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionButton/) and/or [toggles](https://developers.arcgis.com/javascript/latest/references/core/support/actions/ActionToggle/).
302
+ * By default, there is a "Zoom to" action that allows users to zoom to the selected feature.
303
+ *
304
+ * > [!WARNING]
305
+ * >
306
+ * > In order to disable any default actions, it is necessary to set [includeDefaultActions](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#includeDefaultActions) to `false`.
307
+ */
308
+ get defaultActions(): Collection<PopupAction>;
309
+ /**
310
+ * Enables automatic creation of a popup template for layers that have popups enabled but no
311
+ * popupTemplate defined. Automatic popup templates are supported for layers that
312
+ * support the `createPopupTemplate` method. (Supported for
313
+ * [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/),
314
+ * [GeoJSONLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/GeoJSONLayer/),
315
+ * [OGCFeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/OGCFeatureLayer/),
316
+ * [SceneLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/SceneLayer/),
317
+ * [CSVLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CSVLayer/),
318
+ * [PointCloudLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/PointCloudLayer/),
319
+ * [StreamLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/StreamLayer/), and
320
+ * [ImageryLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/ImageryLayer/)).
321
+ *
322
+ * @default false
323
+ */
324
+ accessor defaultPopupTemplateEnabled: boolean;
325
+ /**
326
+ * The number of selected [features](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#features) available.
327
+ *
328
+ * @default 0
329
+ */
330
+ get featureCount(): number;
331
+ /** Defines the specific [Abilities](https://developers.arcgis.com/javascript/latest/references/core/widgets/Feature/types/#Abilities) that can be used when querying and displaying content. */
332
+ get featureItemAbilities(): FeatureAbilities | null | undefined;
333
+ set featureItemAbilities(value: FeatureAbilitiesProperties | null | undefined);
334
+ /** An array of [Feature](https://developers.arcgis.com/javascript/latest/references/core/popup/Feature/) item view model(s). */
335
+ get featureItems(): Feature[];
336
+ /**
337
+ * This property enables showing the list of features.
338
+ * Setting this to `true` allows the user to scroll through the list of features.
339
+ * This value will only be honored if [initialDisplayMode](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#initialDisplayMode) is set to `feature`.
340
+ *
341
+ * @default false
342
+ * @since 4.32
343
+ */
344
+ accessor featureMenuOpen: boolean;
345
+ /** The title to display on the widget while viewing the feature menu. */
346
+ accessor featureMenuTitle: string | null | undefined;
347
+ /**
348
+ * The current page number in the feature browsing menu. If the feature menu is not open, this value is `null`.
349
+ * This value is dependent on the [featuresPerPage](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#featuresPerPage).
350
+ *
351
+ * @since 4.32
352
+ */
353
+ accessor featurePage: number | null | undefined;
354
+ /**
355
+ * An array of features. Each graphic in this array must
356
+ * have a valid [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) set. They may share the same
357
+ * [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) or have unique
358
+ * [PopupTemplates](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) depending on their attributes.
359
+ * The [content](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#content) and [heading](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#heading) properties
360
+ * are set based on the `content` and `heading` properties of each graphic's respective
361
+ * [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/).
362
+ *
363
+ * When more than one graphic exists in this array, the current content of the
364
+ * Popup is set based on the value of the [selected feature](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#selectedFeature).
365
+ *
366
+ * This value is `null` if there are no features associated with the view model.
367
+ *
368
+ * @example
369
+ * // When setting the features property, the graphics pushed to this property
370
+ * // must have a PopupTemplate set.
371
+ * let g1 = new Graphic();
372
+ * g1.popupTemplate = new PopupTemplate({
373
+ * title: "Results title",
374
+ * content: "Results: {ATTRIBUTE_NAME}"
375
+ * });
376
+ * // Create an array of graphics and set this to the features property. The content and heading of
377
+ * // will be set depending on the PopupTemplate of the graphics.
378
+ * // Each graphic may share the same PopupTemplate or have a unique PopupTemplate.
379
+ * let graphics = [g1, g2, g3, g4, g5];
380
+ * // This value can be set on the popup or Features view model.
381
+ * view.popup.viewModel.features = graphics;
382
+ * featuresWidget.viewModel.features = graphics;
383
+ */
384
+ accessor features: Graphic[];
385
+ /**
386
+ * The number of features to fetch at one time.
387
+ *
388
+ * @default 20
389
+ */
390
+ accessor featuresPerPage: number;
391
+ /**
392
+ * The heading of the widget. This can be set to any string value no
393
+ * matter the features that are selected. If the [selected feature](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#selectedFeature)
394
+ * has a [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/), then the heading set in the
395
+ * corresponding template is used here.
396
+ *
397
+ * @example
398
+ * // This heading will display in the popup unless a selected feature's
399
+ * // PopupTemplate overrides it.
400
+ * view.popup.viewModel.heading = "Population by zip codes in Southern California";
401
+ */
402
+ accessor heading: string | null | undefined;
403
+ /**
404
+ * Highlight the selected feature using one of the [HighlightOptions](https://developers.arcgis.com/javascript/latest/references/core/views/support/HighlightOptions/) defined in the view's
405
+ * [View.highlights](https://developers.arcgis.com/javascript/latest/references/core/views/View/#highlights) collection.
406
+ *
407
+ * @default true
408
+ */
409
+ accessor highlightEnabled: boolean;
410
+ /**
411
+ * Indicates whether or not to include [defaultActions](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#defaultActions).
412
+ *
413
+ * > [!WARNING]
414
+ * >
415
+ * > In order to disable any [default actions](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#defaultActions), it is necessary to set [includeDefaultActions](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#includeDefaultActions) to `false`.
416
+ *
417
+ * @default true
418
+ * @example
419
+ * // Removes the default actions
420
+ * viewModel.includeDefaultActions = false;
421
+ */
422
+ accessor includeDefaultActions: boolean;
423
+ /**
424
+ * Indicates whether to initially display a list of features, or the content for one feature.
425
+ *
426
+ * @default "feature"
427
+ * @since 4.32
428
+ */
429
+ accessor initialDisplayMode: InitialDisplayOptions;
430
+ /**
431
+ * Geometry used to show the location of the feature. This is automatically set when selecting a feature. If displaying content not related
432
+ * to features in the map, such as the results from a task, then you must set this
433
+ * property before making the widget [open](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#open) to the user.
434
+ *
435
+ * @see [Get started with popups](https://developers.arcgis.com/javascript/latest/sample-code/intro-popup/)
436
+ * @example
437
+ * // Sets the location of the popup to the center of the view
438
+ * view.popup.viewModel.location = view.center;
439
+ * // Displays the popup
440
+ * view.popup.visible = true;
441
+ * @example
442
+ * // Display a popup when and where the user clicks the view.
443
+ * reactiveUtils.on(()=>view, "click", ({ mapPoint })=>{
444
+ * view.popup.viewModel.location = mapPoint;
445
+ * view.popup.visible = true;
446
+ * });
447
+ */
448
+ get location(): Point | null | undefined;
449
+ set location(value: PointProperties | null | undefined);
450
+ /**
451
+ * A map is required when the input [features](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#features) have a popupTemplate that contains [Arcade](https://developers.arcgis.com/arcade) expressions in [ExpressionInfo](https://developers.arcgis.com/javascript/latest/references/core/popup/ExpressionInfo/) or [ExpressionContent](https://developers.arcgis.com/javascript/latest/references/core/popup/content/ExpressionContent/) that may use the `$map` profile variable to access data from layers within a map. Without a map, expressions that use `$map` will throw an error.
452
+ *
453
+ * Alternatively, the [view](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#view) property can be used to provide the map instance for this property.
454
+ *
455
+ * @since 4.30
456
+ * @see [Type system](https://developers.arcgis.com/arcade/guide/types/#featuresetcollection)
457
+ * @see [Arcade Profiles: Popup](https://developers.arcgis.com/arcade/profiles/popup/)
458
+ * @example
459
+ * // The building footprints represent the buildings that intersect a clicked parcel
460
+ * let buildingFootprints = Intersects($feature, FeatureSetByName($map, "Building Footprints"));
461
+ */
462
+ accessor map: EsriMap | null | undefined;
463
+ /**
464
+ * Indicates whether the widget is open. This property is `true` when the widget is querying for results, even if it is not open in the view.
465
+ * Use the [active](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#active) property to check if the widget is open and is not [waiting for results](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#waitingForResult).
466
+ *
467
+ * @default false
468
+ * @see [active](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#active)
469
+ */
470
+ accessor open: boolean;
471
+ /**
472
+ * The number of [promises](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#promises) remaining to be resolved.
473
+ *
474
+ * @default 0
475
+ * @see [promises property](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#promises)
476
+ */
477
+ get pendingPromisesCount(): number;
478
+ /**
479
+ * The number of selected [promises](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#promises) available.
480
+ *
481
+ * @default 0
482
+ */
483
+ get promiseCount(): number;
484
+ /**
485
+ * An array of pending Promises that have not yet been fulfilled. If there are
486
+ * no pending Promises, the value is `null`. When the pending Promises are
487
+ * resolved they are removed from this array and the features they return
488
+ * are pushed into the [features](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#features) array.
489
+ */
490
+ accessor promises: Promise<Graphic[]>[];
491
+ /**
492
+ * The graphic used to represent the cluster extent when the `Browse features` action
493
+ * is active. Only applies when a PopupTemplate is set on
494
+ * a [FeatureReductionCluster](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FeatureReductionCluster/) instance.
495
+ */
496
+ get selectedClusterBoundaryFeature(): Graphic;
497
+ /**
498
+ * The selected feature accessed. The [content](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#content) is
499
+ * determined based on the [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) assigned to
500
+ * this feature.
501
+ */
502
+ get selectedFeature(): Graphic | null;
503
+ /**
504
+ * Index of the feature that is [selected](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#selectedFeature). When [features](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#features) are set,
505
+ * the first index is automatically selected.
506
+ */
507
+ accessor selectedFeatureIndex: number;
508
+ /**
509
+ * The selected [Feature](https://developers.arcgis.com/javascript/latest/references/core/popup/Feature/) item view model.
510
+ *
511
+ * @since 4.32
512
+ */
513
+ get selectedFeatureItem(): Feature;
514
+ /**
515
+ * The spatial reference used for [Arcade](https://developers.arcgis.com/arcade) operations.
516
+ * This property should be set if Arcade expressions are executed that contain [geometry functions](https://developers.arcgis.com/arcade/function-reference/geometry_functions/).
517
+ *
518
+ * Alternatively, the [view](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#view) property can be used to provide the spatial reference instance for this property.
519
+ *
520
+ * @since 4.30
521
+ * @see [Type system](https://developers.arcgis.com/arcade/guide/types/#featuresetcollection)
522
+ * @see [Arcade Profiles: Popup](https://developers.arcgis.com/arcade/profiles/popup/)
523
+ */
524
+ get spatialReference(): SpatialReference | null | undefined;
525
+ set spatialReference(value: SpatialReferenceProperties | null | undefined);
526
+ /**
527
+ * The view model's state.
528
+ *
529
+ * @default "disabled"
530
+ */
531
+ get state(): State;
532
+ /**
533
+ * Dates and times will be displayed in this time zone. By default this time zone is
534
+ * inherited from [MapView.timeZone](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#timeZone) if the [view](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#view) property is set. When a MapView is not associated with the widget view model,
535
+ * then the property will fallback to the `system` time zone.
536
+ *
537
+ * **Possible Values**
538
+ *
539
+ * Value | Description |
540
+ * ----- | ----------- |
541
+ * system | Dates and times will be displayed in the timezone of the device or browser.
542
+ * unknown | Dates and time are not adjusted for any timezone.
543
+ * Specified IANA timezone | Dates and times will be displayed in the specified IANA time zone. See [wikipedia - List of tz database time zones](https://en.wikipedia.org/wiki/List_of_tz_database_time_zones).
544
+ *
545
+ * @since 4.30
546
+ */
547
+ get timeZone(): TimeZone;
548
+ set timeZone(value: TimeZone | null | undefined);
549
+ /**
550
+ * Indicates whether to update the [location](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#location) when the [selectedFeatureIndex](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#selectedFeatureIndex) changes.
551
+ *
552
+ * @default false
553
+ * @since 4.32
554
+ */
555
+ accessor updateLocationEnabled: boolean;
556
+ /**
557
+ * A reference to the [MapView](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/) or [SceneView](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/).
558
+ *
559
+ * > [!WARNING]
560
+ * >
561
+ * > The FeaturesViewModel requires a view if the user expects it to display content in any of the following situations:
562
+ * > - The [features](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#features) have a popupTemplate containing Arcade expressions in [ExpressionInfo](https://developers.arcgis.com/javascript/latest/references/core/popup/ExpressionInfo/) or [ExpressionContent](https://developers.arcgis.com/javascript/latest/references/core/popup/content/ExpressionContent/) that may use [geometry functions](https://developers.arcgis.com/arcade/function-reference/geometry_functions/) or reference the `$map` profile variable (i.e. access data from layers within a map).
563
+ * > - Content is displayed from the popup template of an [aggregate feature](https://developers.arcgis.com/javascript/latest/references/core/Graphic/#isAggregate) (i.e. a [cluster](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FeatureReductionCluster/) or [bin](https://developers.arcgis.com/javascript/latest/references/core/layers/support/FeatureReductionBinning/)).
564
+ * > - Values from `date` and `timestamp-offset` [fields](https://developers.arcgis.com/javascript/latest/references/core/layers/support/Field/#type) should respect the view's [time zone](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#timeZone).
565
+ * > - When using the [fetchFeatures()](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#fetchFeatures) method or the `fetchFeatures` option in the [open](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#open) method.
566
+ */
567
+ accessor view: MapViewOrSceneView | null | undefined;
568
+ /**
569
+ * Indicates whether the widget is waiting for content to be resolved.
570
+ *
571
+ * @since 4.32
572
+ */
573
+ get waitingForContents(): boolean;
574
+ /**
575
+ * Indicates whether a feature was found while resolving [promises](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#promises).
576
+ *
577
+ * @default false
578
+ * @see [active](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#active)
579
+ */
580
+ get waitingForResult(): boolean;
581
+ /**
582
+ * Number of levels of detail (LOD) to zoom in on the [selected feature](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#selectedFeature).
583
+ *
584
+ * @default 4
585
+ * @since 4.34
586
+ * @example
587
+ * // Restricts the zooming to two LODS when the zoom in action is clicked.
588
+ * features.viewModel.zoomFactor = 2;
589
+ */
590
+ accessor zoomFactor: number;
591
+ /**
592
+ * Removes all [promises](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#promises), [features](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#features), [content](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#content), and
593
+ * [heading](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#heading).
594
+ */
595
+ clear(): void;
596
+ /**
597
+ * Use this method to return feature(s) at a given screen location.
598
+ * These features are fetched from all of the
599
+ * [LayerViews](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/) in the
600
+ * [View](https://developers.arcgis.com/javascript/latest/references/core/views/View/). In order to use this, a layer must already have an
601
+ * associated [PopupTemplate](https://developers.arcgis.com/javascript/latest/references/core/PopupTemplate/) and have its
602
+ * [FeatureLayer.popupEnabled](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#popupEnabled).
603
+ * These features can then be used within a custom [Popup](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/), [Features](https://developers.arcgis.com/javascript/latest/references/core/widgets/Features/),
604
+ * or [Feature](https://developers.arcgis.com/javascript/latest/references/core/widgets/Feature/) widget experience.
605
+ * One example could be a custom side panel that displays feature-specific information based on
606
+ * an end user's click location. This method allows a developer the ability to
607
+ * control how the input location is handled, and then subsequently, what to do with the results.
608
+ *
609
+ * @param screenPoint - An object representing a point on the screen. This point can be in either the
610
+ * [ScreenPoint](https://developers.arcgis.com/javascript/latest/references/core/core/types/#ScreenPoint) or
611
+ * [ScreenPoint](https://developers.arcgis.com/javascript/latest/references/core/core/types/#ScreenPoint).
612
+ * @param options - The [options](https://developers.arcgis.com/javascript/latest/references/core/widgets/Popup/types/#FetchFeaturesOptions)
613
+ * to pass into the `fetchFeatures` method.
614
+ * @returns Resolves with the selected `hitTest`
615
+ * location. In addition, it also returns an array of [graphics](https://developers.arcgis.com/javascript/latest/references/core/Graphic/) if the `hitTest` is
616
+ * performed directly on the [View](https://developers.arcgis.com/javascript/latest/references/core/views/View/), a single Promise containing an array of all resulting
617
+ * [graphics](https://developers.arcgis.com/javascript/latest/references/core/Graphic/), or an array of objects containing this array of resulting [graphics](https://developers.arcgis.com/javascript/latest/references/core/Graphic/) in addition to its associated
618
+ * [LayerView](https://developers.arcgis.com/javascript/latest/references/core/views/layers/LayerView/).
619
+ *
620
+ * Most commonly if accessing all features, use the single promise returned in the
621
+ * [result's allGraphicsPromise](https://developers.arcgis.com/javascript/latest/references/core/views/types/#FetchPopupFeaturesResult) and call `.then()` as seen in
622
+ * the example snippet.
623
+ * @example
624
+ * // Get view's click event
625
+ * reactiveUtils.on(()=>view, "click", (event) => {
626
+ * // Call fetchFeatures and pass in the click event screenPoint
627
+ * viewModel.fetchFeatures(event.screenPoint).then((response) => {
628
+ * // Access the response from fetchFeatures
629
+ * response.allGraphicsPromise.then((graphics) => {
630
+ * // Do something with the returned graphic from fetchFeatures such as setting this to the
631
+ * // Features widget graphic property.
632
+ * featureWidget.graphic = graphics[0];
633
+ * });
634
+ * });
635
+ * });
636
+ */
637
+ fetchFeatures(screenPoint: ScreenPoint | null | undefined, options?: FetchFeaturesOptions): Promise<FetchPopupFeaturesResult>;
638
+ /**
639
+ * Selects the feature at the next index in relation to the selected feature.
640
+ *
641
+ * @returns Returns an instance of the popup's view model.
642
+ * @see [selectedFeatureIndex](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#selectedFeatureIndex)
643
+ */
644
+ next(): Features;
645
+ /**
646
+ * Selects the feature at the previous index in relation to the selected feature.
647
+ *
648
+ * @returns Returns an instance of the popup's view model.
649
+ * @see [selectedFeatureIndex](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#selectedFeatureIndex)
650
+ */
651
+ previous(): Features;
652
+ /**
653
+ * Sets the view to a given target. If [goToOverride](https://developers.arcgis.com/javascript/latest/references/core/popup/Features/#goToOverride) is set, `goToOverride()` will be called with the current view and specified `params`.
654
+ * Otherwise, the view will be set using the provided `params`.
655
+ *
656
+ * @param params - The parameters to pass to the `zoomTo()` method.
657
+ * @returns A promise that resolves when the view's extent updates to the value defined in `params.target`.
658
+ * @since 4.32
659
+ * @see [MapView.goTo()](https://developers.arcgis.com/javascript/latest/references/core/views/MapView/#goTo) or [SceneView.goTo()](https://developers.arcgis.com/javascript/latest/references/core/views/SceneView/#goTo)
660
+ */
661
+ zoomTo(params: GoToParameters): Promise<void>;
662
+ }
663
+ declare const FeaturesSuperclass: typeof EventedAccessor & typeof GoTo