UNPKG

@arcgis/core

Version:

ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API

522 lines (517 loc) • 28.7 kB
import type Collection from "../core/Collection.js"; import type CatalogLayer from "../layers/CatalogLayer.js"; import type KnowledgeGraphLayer from "../layers/KnowledgeGraphLayer.js"; import type MapImageLayer from "../layers/MapImageLayer.js"; import type TileLayer from "../layers/TileLayer.js"; import type CatalogLayerList from "./CatalogLayerList.js"; import type TableList from "./TableList.js"; import type Widget from "./Widget.js"; import type LayerListViewModel from "./LayerList/LayerListViewModel.js"; import type LayerListVisibleElements from "./LayerList/LayerListVisibleElements.js"; import type ListItem from "./LayerList/ListItem.js"; import type { Icon } from "@esri/calcite-components/components/calcite-icon"; import type { IdentifiableMixin, IdentifiableMixinProperties } from "../core/Identifiable.js"; import type { MapViewOrSceneView } from "../views/MapViewOrSceneView.js"; import type { CatalogLayerListProperties } from "./CatalogLayerList.js"; import type { TableListProperties } from "./TableList.js"; import type { WidgetProperties } from "./Widget.js"; import type { LayerListViewModelEvents, LayerListViewModelProperties } from "./LayerList/LayerListViewModel.js"; import type { Action, FilterPredicate, ListItemModifier, VisibilityAppearance } from "./LayerList/types.js"; import type { HeadingLevel } from "./support/types.js"; import type { LayerListVisibleElementsProperties } from "./LayerList/LayerListVisibleElements.js"; export interface LayerListProperties extends WidgetProperties, IdentifiableMixinProperties, Partial<Pick<LayerList, "catalogOptions" | "collapsed" | "dragEnabled" | "filterPlaceholder" | "filterPredicate" | "filterText" | "headingLevel" | "knowledgeGraphOptions" | "listItemCreatedFunction" | "minDragEnabledItems" | "minFilterItems" | "operationalItems" | "selectedItems" | "selectionMode" | "view" | "visibilityAppearance">> { /** * Icon which represents the widget. It is typically used when the widget is controlled by another * one (e.g. in the Expand widget). * * @default "layers" * @since 4.27 * @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/) * @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/) */ icon?: Icon["icon"] | null; /** * The widget's default label. * * @since 4.7 */ label?: string | null; /** * The view model for this widget. This is a class that contains all the logic * (properties and methods) that controls this widget's behavior. See the * [LayerListViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/LayerListViewModel/) class to access * all properties and methods on the widget. */ viewModel?: LayerListViewModelProperties; /** * The visible elements that are displayed within the widget. * This property provides the ability to turn individual elements of the widget's display on/off. * * @since 4.15 * @example * layerList.visibleElements = { * catalogLayerList: true, * closeButton: false, * collapseButton: true, * errors: true, * filter: true, * heading: true, * statusIndicators: true * }; */ visibleElements?: LayerListVisibleElementsProperties; } /** * Represents a layer type that supports displaying associated tables within the LayerList. * * @see [openedLayers](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#openedLayers) * @since 5.0 */ export type SubtablesLayer = KnowledgeGraphLayer | MapImageLayer | TileLayer; /** * Represents a layer that can be displayed in a separate flow item within the LayerList. * * @see [openedLayers](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#openedLayers) * @since 5.0 */ export type FlowLayer = SubtablesLayer | CatalogLayer; export interface LayerListEvents extends LayerListViewModelEvents {} /** * The LayerList widget provides a way to display a list of layers, and switch on/off their visibility. * The [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) API provides access to each layer's properties, allows * the developer to configure actions related to the layer, and allows the developer to add content to the item related to the layer. * * > [!WARNING] * > * > **Notes** * > * > The LayerList does not emit an event when the visibility of a layer changes. To respond to layer visibility changes, * > watch the [Layer.visible](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#visible) property or the [Map.allLayers](https://developers.arcgis.com/javascript/latest/references/core/Map/#allLayers) property with [reactiveUtils](https://developers.arcgis.com/javascript/latest/references/core/core/reactiveUtils/). * > To hide layers in the map from the LayerList widget, you must set the [Layer.listMode](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#listMode) property on the desired layers to `hide`. * > When a [KnowledgeGraphLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/) is present in the map, the LayerList widget will display the * > [KnowledgeGraphLayer.tables](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/#tables) as a [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList) [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/). * > When a [CatalogLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/) is present in the map, the LayerList widget will display the * > [CatalogLayer.dynamicGroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#dynamicGroupLayer) in a [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList) [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/). * * @deprecated since version 5.0. Use the [Layer List](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list/) component instead. For information on widget deprecation, read about [Esri's move to web components](https://developers.arcgis.com/javascript/latest/components-transition-plan/). * @since 4.2 * @see [Sample - LayerList widget](https://developers.arcgis.com/javascript/latest/sample-code/widgets-layerlist/) * @see [Sample - LayerList widget with actions](https://developers.arcgis.com/javascript/latest/sample-code/widgets-layerlist-actions/) * @see [LayerListViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/LayerListViewModel/) * @example * const layerList = new LayerList({ * view: view * }); * // Adds widget below other elements in the top left corner of the view * view.ui.add(layerList, { * position: "top-left" * }); */ export default class LayerList extends LayerListSuperclass { /** * @deprecated * Do not directly reference this property. * Use EventNames and EventTypes helpers from \@arcgis/core/Evented */ "@eventTypes": LayerListEvents; /** * @example * // typical usage * const layerlist = new LayerList({ * view * }); */ constructor(properties?: LayerListProperties); /** * The [CatalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/CatalogLayerList/) widget instance that displays a catalog layer's [dynamic group layer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#dynamicGroupLayer). * The catalog layer list will be displayed as an expandable [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) in the LayerList widget. * This property is set when a catalog layer's dynamic group layer is expanded in the LayerList. * Otherwise, it is `null`. * This list item will only be displayed when catalog layers are loaded in the map and will be displayed as a child of the catalog layer. * This property is useful for listening to the [CatalogLayerList.@trigger-action](https://developers.arcgis.com/javascript/latest/references/core/widgets/CatalogLayerList/#event-trigger-action) event and managing selections in catalog layers. * * ![CatalogLayerList](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/catalog-layer-list.png) * * @since 4.30 * @see [catalogOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogOptions) * @example * // Use reactiveUtils to respond to the layerList.catalogLayerList "trigger-action" event * reactiveUtils.on( * () => layerList.catalogLayerList, * "trigger-action", * async (event) => { * if (event.action.id === "add-layer") { * // Get the parent catalog layer * const parentCatalogLayer = catalogUtils.getCatalogLayerForLayer(event.item.layer); * // Get the footprint from the parent catalog layer * const footprint = parentCatalogLayer.createFootprintFromLayer(event.item.layer); * // Get the layer from the footprint * const layerFromFootprint = await parentCatalogLayer.createLayerFromFootprint(footprint); * // Add the layer to the map * map.add(layerFromFootprint); * // back out of the catalog layer list to the main layer list * layerList.openedLayers.pop(); * } * } * ); * * // Use reactiveUtils to watch for a selected item in the layerList.catalogLayerList * reactiveUtils.watch( * () => layerList.catalogLayerList?.selectedItems.at(0)?.layer, * (layer) => { * // When a layer is selected log out its title * if (layer) { * console.log(layer.title); * } * } * ); */ get catalogLayerList(): CatalogLayerList | null | undefined; /** * [CatalogLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/) specific properties. * Catalog layers will display their [CatalogLayer.dynamicGroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#dynamicGroupLayer) as an expandable [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList) in the LayerList widget. * This list item will only be displayed when catalog layers with dynamic group layers are loaded in the map. * These are the properties that are used to configure the [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList). * * @since 4.30 * @see [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList) * @example * const layerList = new LayerList({ * catalogOptions: { * listItemCreatedFunction: (event) => { * const { item } = event; * item.actionsSections = [ * [ * { * title: "Add layer to map", * icon: "add-layer", * id: "add-layer" * } * ] * ]; * }, * selectionMode: "single", * visibleElements: { * filter: true * } * }, * view, * }); */ accessor catalogOptions: CatalogLayerListProperties | null | undefined; /** * Indicates whether the widget is collapsed. * When collapsed, only the collapse button and heading are displayed. * * @default false * @since 4.29 * @see [visibleElements.collapseButton](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements) * @example layerList.collapsed = true; */ accessor collapsed: boolean; /** * Indicates whether [list items](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) may be reordered within the list by dragging and dropping. * MapImageLayer [MapImageLayer.sublayers](https://developers.arcgis.com/javascript/latest/references/core/layers/MapImageLayer/#sublayers) can be reordered only within their parent MapImageLayer and can not be dragged out as a separate layer. * Drag won't be enabled until the number of list items is equal to or greater than than the value set set in [minDragEnabledItems](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#minDragEnabledItems). * * @default false * @since 4.29 * @see [minDragEnabledItems](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#minDragEnabledItems) * @example layerList.dragEnabled = true; */ accessor dragEnabled: boolean; /** * Placeholder text used in the filter input if [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements) is true. * * @default "" * @since 4.29 * @see [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements) * @example layerList.filterPlaceholder = "Filter layers"; */ accessor filterPlaceholder: string; /** * Specifies a function to handle filtering [list items](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/). * * @since 4.32 * @example layerList.filterPredicate = (item) => item.title.toLowerCase().includes("streets"); */ accessor filterPredicate: FilterPredicate | null | undefined; /** * The value of the filter input if [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements) is true. * * @default "" * @since 4.29 * @see [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements) * @example * reactiveUtils.watch( * () => layerList.filterText, * (filterText) => console.log(filterText) * ); */ accessor filterText: string; /** * Indicates the heading level to use for the heading of the widget. * By default, the heading is rendered as a level 2 heading (e.g., `<h2>Layer List</h2>`). * Depending on the widget's placement in your app, you may need to adjust this heading for proper semantics. * This is important for meeting accessibility standards. * * @default 2 * @since 4.29 * @see [visibleElements.heading](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#visibleElements) * @example layerList.headingLevel = 3; */ accessor headingLevel: HeadingLevel; /** * Icon which represents the widget. It is typically used when the widget is controlled by another * one (e.g. in the Expand widget). * * @default "layers" * @since 4.27 * @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/) * @see [Calcite Icon Search](https://developers.arcgis.com/calcite-design-system/icons/) */ get icon(): Icon["icon"]; set icon(value: Icon["icon"] | null | undefined); /** * [KnowledgeGraphLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/) specific properties. * Knowledge graph layers will display [KnowledgeGraphLayer.tables](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/#tables) * as an expandable [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList) in the LayerList widget. * This tables list item will only be displayed when knowledge graph layers with tables are loaded in the map. * These are the properties that are used to configure the [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList). * * @since 4.30 * @see [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList) * @example * layerList.knowledgeGraphOptions = { * filterPlaceholder: "Filter tables", * listItemCreatedFunction: (event) => { * const { item } = event; * item.actionsSections = [ * [ * { * icon: "table", * id: "open-table", * title: "Show table" * }, * { * icon: "information", * id: "information", * title: "Show information" * } * ] * ]; * }, * minFilterItems: 1, * visibleElements: { * errors: true, * filter: true, * statusIndicators: true * } * } */ accessor knowledgeGraphOptions: TableListProperties | null | undefined; /** * The widget's default label. * * @since 4.7 */ get label(): string; set label(value: string | null | undefined); /** * A function that executes each time a [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) is created. * Use this function to add actions and panels to list items, and to override * the default settings of a list item. Actions can be added to list items * using the [ListItem.actionsSections](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/#actionsSections) * property of the ListItem. * * @since 4.4 * @see [Sample - LayerList widget with actions](https://developers.arcgis.com/javascript/latest/sample-code/widgets-layerlist-actions/) * @example * let layerList = new LayerList({ * view: view, * // executes for each ListItem in the LayerList * listItemCreatedFunction: async function (event) { * * // The event object contains properties of the * // layer in the LayerList widget. * * let item = event.item; * * // Wait for the layer to load and the item title to become available * await item.layer.when(); * * 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" * }]]; * } * } * }); */ accessor listItemCreatedFunction: ListItemModifier | null | undefined; /** * The minimum number of list items required to enable drag and drop reordering with [dragEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#dragEnabled). * * @default 2 * @since 4.29 * @see [dragEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#dragEnabled) * @example * layerList.dragEnabled = true; * layerList.minDragEnabledItems = 5; */ accessor minDragEnabledItems: number; /** * The minimum number of list items required to display the [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/LayerListVisibleElements/) input box. * * @default 10 * @since 4.29 * @see [visibleElements.filter](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/LayerListVisibleElements/) * @example * layerList.visibleElements.filter = true; * layerList.minFilterItems = 5; */ accessor minFilterItems: number; /** * A collection of [Layer](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/)s that are opened * in a [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList) or [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList) flow item. * This property is useful for backing out of the catalog layer list or table list * programmatically to the parent layer list. * * @default [] * @since 4.31 * @see [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#catalogLayerList) * @see [tableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#tableList) * @example * // back out of the catalog layer list to the main layer list * layerList.openedLayers.pop(); */ get openedLayers(): Collection<FlowLayer>; /** * A collection of [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/)s representing operational layers. * To hide layers from the LayerList widget, set the * [Layer.listMode](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#listMode) property on the layer(s) to `hide`. * * @see [Layer.listMode](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#listMode) */ accessor operationalItems: Collection<ListItem>; /** * A collection of selected [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/)s representing operational layers * selected by the user. * * @see [selectionMode](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#selectionMode) */ accessor selectedItems: Collection<ListItem>; /** * Specifies the selection mode. * Selected items are available in the [selectedItems](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#selectedItems) property. * * | Value | Description | * | ----- | ----------- | * | multiple | Allows any number of items to be selected at once. This is useful when you want to apply an operation to multiple items at the same time. | * | none | Disables selection. Use this when you want to prevent selecting items. | * | single | Allows only one item to be selected at a time. If another item is selected, the previous selection is cleared. This is useful when you want to ensure that a maximum of one item is selected at a time. | * | single-persist | Allows only one item to be selected at a time and prevents de-selection. Once an item is selected, it remains selected until another item is selected. This is useful when you want to ensure that there is always exactly one selected item. | * * @default "none" * @since 4.29 * @see [selectedItems](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#selectedItems) * @example layerList.selectionMode = "multiple"; */ accessor selectionMode: "multiple" | "single" | "none" | "single-persist"; /** * The [TableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/) widget instance that displays the tables associated with a [KnowledgeGraphLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/). * The table list will be displayed as an expandable [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) in the LayerList widget. * This property is set when a knowledge graph layer's tables [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/) is expanded in the LayerList. * Otherwise, it is `null`. * This list item will only be displayed when knowledge graph layers with tables are loaded in the map and will be displayed as a child of the knowledge graph layer. * This property is useful for listening to the [TableList.@trigger-action](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/#event-trigger-action) event and managing selections in knowledge graph tables. * * ![tableList](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/layer-list-tableList.png) * * @since 4.30 * @see [knowledgeGraphOptions](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#knowledgeGraphOptions) * @example * // Use reactiveUtils to respond to the layerList.tableList "trigger-action" event * reactiveUtils.on( * () => layerList.tableList, * "trigger-action", * (event) => { * if (event.action.id === "open-table") { * // Open the table in the FeatureTable widget * featureTable.layer = event.item.layer; * // Back out of the table list to the layer list * layerList.openedLayers.pop(); * } * } * ); * * // Use reactiveUtils to watch for a selected item in the layerList.tableList * reactiveUtils.watch( * () => layerList.tableList?.selectedItems.at(0)?.layer, * (layer) => { * // When a layer is selected log out its title * if (layer) { * console.log(layer.title); * } * } * ); */ get tableList(): TableList | null | undefined; /** 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/). Set this to link the widget to a specific view. */ accessor view: MapViewOrSceneView | null | undefined; /** * The view model for this widget. This is a class that contains all the logic * (properties and methods) that controls this widget's behavior. See the * [LayerListViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/LayerListViewModel/) class to access * all properties and methods on the widget. */ get viewModel(): LayerListViewModel; set viewModel(value: LayerListViewModelProperties); /** * Determines the icons used to indicate visibility. * * | Value | Description | Example | * | ----- | ----------- | ------- | * | default | Displays view icons on the far side. Icons are hidden except on hover or if they have keyboard focus. See [view-visible](https://developers.arcgis.com/calcite-design-system/icons/?icon=view-visible&library=Calcite%20UI&query=view) and [view-hide](https://developers.arcgis.com/calcite-design-system/icons/?icon=view-hide&library=Calcite%20UI&query=view) calcite icons. | ![visibilityAppearance-default](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/layer-list/visibilityAppearance-default.png) | * | checkbox | Displays checkbox icons on the near side. See [check-square-f](https://developers.arcgis.com/calcite-design-system/icons/?icon=check-square-f&library=Calcite%20UI&query=check) and [square](https://developers.arcgis.com/calcite-design-system/icons/?icon=square&library=Calcite%20UI&query=square) calcite icons. | ![visibilityAppearance-checkbox](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/layer-list/visibilityAppearance-checkbox.png) | * * @default "default" * @since 4.29 * @example layerList.visibilityAppearance = "checkbox"; */ accessor visibilityAppearance: VisibilityAppearance; /** * The visible elements that are displayed within the widget. * This property provides the ability to turn individual elements of the widget's display on/off. * * @since 4.15 * @example * layerList.visibleElements = { * catalogLayerList: true, * closeButton: false, * collapseButton: true, * errors: true, * filter: true, * heading: true, * statusIndicators: true * }; */ get visibleElements(): LayerListVisibleElements; set visibleElements(value: LayerListVisibleElementsProperties); /** * Triggers the [@trigger-action](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/#event-trigger-action) event and executes * the given [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/). * * @param action - The action to execute. * @param item - An item associated with the action. */ triggerAction(action: Action, item: ListItem): void; } declare const LayerListSuperclass: typeof Widget & typeof IdentifiableMixin