Provides the logic for the LayerList widget.
To hide layers in the map from the LayerList widget, set the
listMode property on the layer(s) to hide
.
Constructors
-
new LayerListViewModel(properties)
-
Parameterproperties Objectoptional
See the properties for a list of all the properties that may be passed into the constructor.
Property Overview
Name | Type | Summary | Class |
---|---|---|---|
Boolean | Whether to provide an indication if a layer is being published in the LayerList. more details | LayerListViewModel | |
String | The name of the class. more details | Accessor | |
ListItemCreatedHandler | Specifies a function that accesses each ListItem. more details | LayerListViewModel | |
Collection<ListItem> | A collection of ListItems representing operational layers. more details | LayerListViewModel | |
String | The view model's state. more details | LayerListViewModel | |
MapView|SceneView | The view from which the widget will operate. more details | LayerListViewModel |
Property Details
-
checkPublishStatusEnabled BooleanSince: ArcGIS Maps SDK for JavaScript 4.25
-
Whether to provide an indication if a layer is being published in the LayerList. When a layer is publishing, a rotating square will appear to the right of the list item title. The list item publishing property will be
false
ifcheckPublishStatusEnabled
isfalse
.- Default Value:false
-
Since: ArcGIS Maps SDK for JavaScript 4.7
-
The name of the class. The declared class name is formatted as
esri.folder.className
.
-
listItemCreatedFunction ListItemCreatedHandlerSince: ArcGIS Maps SDK for JavaScript 4.4
-
Specifies a function that accesses each ListItem. Each list item can be modified according to its modifiable propeties. Actions can be added to list items using the actionsSections property of the ListItem.
ExamplelayerListViewModel.listItemCreatedFunction = function (event) { // The event object contains properties of the // layer in the LayerList widget. let item = event.item; if (item.title === "US Demographics") { // open the list item in the LayerList item.open = true; // change the title to something more descriptive item.title = "Population by county"; // set an action for zooming to the full extent of the layer item.actionsSections = [[{ title: "Go to full extent", className: "esri-icon-zoom-out-fixed", id: "full-extent" }]]; } });
-
operationalItems Collection<ListItem>readonly
-
A collection of ListItems representing operational layers. To hide layers from the LayerList widget, set the listMode property on the layer(s) to
hide
.- See also
-
state Stringreadonly
-
The view model's state.
Possible Values:"loading"|"ready"|"disabled"
- Default Value:disabled
-
The view from which the widget will operate.
Method Overview
Name | Return Type | Summary | Class |
---|---|---|---|
Adds one or more handles which are to be tied to the lifecycle of the object. more details | Accessor | ||
Boolean | Returns true if a named group of handles exist. more details | Accessor | |
Moves a list item from one position to another in the LayerList widget. more details | LayerListViewModel | ||
Removes a group of handles owned by the object. more details | Accessor | ||
Triggers the trigger-action event and executes the given action or action toggle. more details | LayerListViewModel |
Method Details
-
addHandles(handleOrHandles, groupKey)inheritedSince: ArcGIS Maps SDK for JavaScript 4.25
-
Adds one or more handles which are to be tied to the lifecycle of the object. The handles will be removed when the object is destroyed.
// Manually manage handles const handle = reactiveUtils.when( () => !view.updating, () => { wkidSelect.disabled = false; }, { once: true } ); this.addHandles(handle); // Destroy the object this.destroy();
ParametershandleOrHandles WatchHandle|WatchHandle[]Handles marked for removal once the object is destroyed.
groupKey *optionalKey identifying the group to which the handles should be added. All the handles in the group can later be removed with Accessor.removeHandles(). If no key is provided the handles are added to a default group.
-
Since: ArcGIS Maps SDK for JavaScript 4.25
-
Returns true if a named group of handles exist.
ParametergroupKey *optionalA group key.
ReturnsType Description Boolean Returns true
if a named group of handles exist.Example// Remove a named group of handles if they exist. if (obj.hasHandles("watch-view-updates")) { obj.removeHandles("watch-view-updates"); }
-
moveListItem(targetItem, fromParentItem, toParentItem, newIndex)Since: ArcGIS Maps SDK for JavaScript 4.16
-
Moves a list item from one position to another in the LayerList widget. This allows the user to reorder the operational layers in a map or even reorganize sublayers of GroupLayers. You cannot move a GroupLayer as a sublayer to another GroupLayer. You also cannot move MapImageLayer sublayers outside of a MapImageLayer.
For the purposes of the documentation below, an item (or list item) refers to a layer in a map. A parent item refers to a GroupLayer or MapImageLayer, and a child item refers to a sublayer of a GroupLayer or MapImageLayer.
ParameterstargetItem ListItemThe list item (or layer) to move.
fromParentItem ListItemIf the
targetItem
is a child of a parent list item and you want to move it out of the parentItem, then use this parameter to indicate the parent item to move from.toParentItem ListItemThe parent list item to move the
targetItem
to if moving it as a child to another parent item.newIndex NumberThe new index to move the
targetItem
to. If moving the item as a child to a parent item, then specify the index of the item within that parent.Examples// Moves the first layer to the final position in the map const viewModel = layerList.viewModel; const item = layerList.operationalItems.at(0); const lastIndex = layerList.operationalItems.length - 1; viewModel.moveListItem(item, null, null, lastIndex);
// Moves the first sublayer in the first group layer // to the first position in the second group layer const viewModel = layerList.viewModel; const parentItem1 = layerList.operationalItems.at(0); const subItem1 = parentItem1.children.at(0); const parentItem2 = layerList.operationalItems.at(1); viewModel.moveListItem(subItem1, parentItem1, parentItem2, 0);
-
removeHandles(groupKey)inheritedSince: ArcGIS Maps SDK for JavaScript 4.25
-
Removes a group of handles owned by the object.
ParametergroupKey *optionalA group key or an array or collection of group keys to remove.
Exampleobj.removeHandles(); // removes handles from default group obj.removeHandles("handle-group"); obj.removeHandles("other-handle-group");
-
triggerAction(action, item)
-
Triggers the trigger-action event and executes the given action or action toggle.
Parametersaction ActionButton|ActionToggleThe action to execute.
item ListItemAn item associated with the action.
Event Overview
Name | Type | Summary | Class |
---|---|---|---|
{action: ActionButton|ActionToggle,item: ListItem} |
Fires after the user clicks on an action or action toggle inside the LayerList widget. more details |
LayerListViewModel |
Event Details
-
trigger-action
-
Fires after the user clicks on an action or action toggle inside the LayerList widget. This event may be used to define a custom function to execute when particular actions are clicked.
- Properties
-
action ActionButton|ActionToggle
The action clicked by the user.
item ListItemAn item associated with the action.