@arcgis/core
Version:
ArcGIS Maps SDK for JavaScript: A complete 2D and 3D mapping and data visualization API
159 lines (157 loc) • 7.51 kB
TypeScript
import type Accessor from "../../core/Accessor.js";
import type Collection from "../../core/Collection.js";
import type EsriError from "../../core/Error.js";
import type Layer from "../../layers/Layer.js";
import type SubtypeGroupLayer from "../../layers/SubtypeGroupLayer.js";
import type Sublayer from "../../layers/support/Sublayer.js";
import type SubtypeSublayer from "../../layers/support/SubtypeSublayer.js";
import type ListItemPanel from "./ListItemPanel.js";
import type { IdentifiableMixin, IdentifiableMixinProperties } from "../../core/Identifiable.js";
import type { Action } from "../LayerList/types.js";
import type { ActionToggleProperties } from "../../support/actions/ActionToggle.js";
import type { ActionButtonProperties } from "../../support/actions/ActionButton.js";
import type { ReadonlyArrayOrCollection } from "../../core/Collection.js";
import type { ListItemPanelProperties } from "./ListItemPanel.js";
export interface ListItemProperties extends IdentifiableMixinProperties, Partial<Pick<ListItem, "actionsOpen" | "hidden" | "layer" | "listModeDisabled" | "open" | "parent">> {
/** A nested 2-dimensional collection of actions that could be triggered on the item. */
actionsSections?: ReadonlyArrayOrCollection<ReadonlyArrayOrCollection<((ActionButtonProperties & { type: "button" }) | (ActionToggleProperties & { type: "toggle" }))>>;
/**
* When a layer contains sublayers, this property is a Collection of ListItem objects belonging to the given layer.
*
* @since 4.32
*/
children?: ReadonlyArrayOrCollection<ListItemProperties>;
/**
* Allows you to display custom content for each ListItem
* in the [TableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/) widget.
*
* @since 4.29
* @example
* // displays content from the DOM in the LayerList
* const tableList = new TableList({
* view: view,
* listItemCreatedFunction: (event) =>{
* const { item } = event;
* item.panel = {
* content: document.getElementById("myDiv"),
* icon: "graph-bar"
* };
* }
* });
*/
panel?: ListItemPanelProperties;
/** The title of the table. */
title?: string | null;
}
/**
* In the [TableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/)
* widget UI, the ListItem represents a layer's table added to the widget. It provides access to the
* associated properties and allows the developer to configure actions related to the table,
* and allows the developer to add content to the item related to the table.
*
* @since 4.17
* @see [TableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/)
* @see [TableListViewModel](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/TableListViewModel/)
*/
export default class ListItem extends ListItemSuperclass {
constructor(properties?: ListItemProperties);
/**
* Indicates whether the actions panel is open in the TableList.
*
* @default false
*/
accessor actionsOpen: boolean;
/** A nested 2-dimensional collection of actions that could be triggered on the item. */
get actionsSections(): Collection<Collection<Action>>;
set actionsSections(value: ReadonlyArrayOrCollection<ReadonlyArrayOrCollection<((ActionButtonProperties & { type: "button" }) | (ActionToggleProperties & { type: "toggle" }))>>);
/**
* When a layer contains sublayers, this property is a Collection of ListItem objects belonging to the given layer.
*
* @since 4.32
*/
get children(): Collection<ListItem>;
set children(value: ReadonlyArrayOrCollection<ListItemProperties>);
/** The Error object returned if an error occurred. */
get error(): EsriError | null | undefined;
/**
* When `true`, hides the layer from the TableList instance. This is an alternative to
* [Layer.listMode](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#listMode), which hides
* a layer from all instances of TableList that include the layer.
*
* @default false
* @since 4.24
* @example listItem.hidden = true;
*/
accessor hidden: boolean;
/**
* The layer associated with the triggered action. This must be a [FeatureLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/)
* whose [FeatureLayer.isTable](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#isTable) property returns `true`. For more information
* regarding working with tables, please refer to [Map.tables](https://developers.arcgis.com/javascript/latest/references/core/Map/#tables).
*
* @see [FeatureLayer.isTable](https://developers.arcgis.com/javascript/latest/references/core/layers/FeatureLayer/#isTable)
* @see [Map.tables](https://developers.arcgis.com/javascript/latest/references/core/Map/#tables)
*/
accessor layer: Layer | Sublayer | SubtypeSublayer | SubtypeGroupLayer;
/**
* Specifies whether to ignore the [Layer.listMode](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#listMode) property of the child layers in the list item.
* A common use case for `listModeDisabled` is when you want to use the [TableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/) to manage and configure a layer's `listMode` value.
*
* @default false
* @since 4.32
* @see [Layer.listMode](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#listMode)
*/
accessor listModeDisabled: boolean;
/**
* Whether the layer is open in the TableList.
*
* @default false
* @since 4.32
*/
accessor open: boolean;
/**
* Allows you to display custom content for each ListItem
* in the [TableList](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/) widget.
*
* @since 4.29
* @example
* // displays content from the DOM in the LayerList
* const tableList = new TableList({
* view: view,
* listItemCreatedFunction: (event) =>{
* const { item } = event;
* item.panel = {
* content: document.getElementById("myDiv"),
* icon: "graph-bar"
* };
* }
* });
*/
get panel(): ListItemPanel;
set panel(value: ListItemPanelProperties);
/**
* The parent of this item
*
* @since 4.32
*/
accessor parent: ListItem | null | undefined;
/**
* Value is `true` when the [layer](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/ListItem/#layer) is being published.
* Value will be `false` if the [layer](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/ListItem/#layer) is not being published or
* [TableListViewModel.checkPublishStatusEnabled](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/TableListViewModel/#checkPublishStatusEnabled)
* is `false`.
*
* @default false
* @since 4.25
*/
get publishing(): boolean;
/** The title of the table. */
get title(): string;
set title(value: string | null | undefined);
/**
* Creates a deep clone of this object.
*
* @returns A clone of the new [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/TableList/ListItem/) instance.
*/
clone(): ListItem;
}
declare const ListItemSuperclass: typeof Accessor & typeof IdentifiableMixin