UNPKG

@arcgis/map-components

Version:
592 lines (591 loc) • 31.4 kB
/// <reference path="../../index.d.ts" /> import type ListItem from "@arcgis/core/widgets/LayerList/ListItem.js"; import type Collection from "@arcgis/core/core/Collection.js"; import type TableListListItem from "@arcgis/core/widgets/TableList/ListItem.js"; import type { VisibilityAppearance } from "../../utils/action-utils.js"; import type { CanSortFunction, TableSupportedLayers } from "../../utils/layer-list-utils.js"; import type { LayerListViewModelEvents } from "@arcgis/core/widgets/LayerList/LayerListViewModel.js"; import type { PublicLitElement as LitElement } from "@arcgis/lumina"; import type { ArcgisCatalogLayerList } from "../arcgis-catalog-layer-list/customElement.js"; import type { ArcgisTableList } from "../arcgis-table-list/customElement.js"; import type { ArcgisReferenceElement, HeadingLevel, IconName } from "../types.js"; import type { CatalogLayerListParams, FlowLayer, TableListParams } from "./types.js"; import type { T9nMeta } from "@arcgis/lumina/controllers"; import type { MapViewOrSceneView } from "@arcgis/core/views/MapViewOrSceneView.js"; import type { ListItemModifier, State } from "@arcgis/core/widgets/LayerList/types.js"; import type { List as List } from "@esri/calcite-components/components/calcite-list"; /** * > [!WARNING] * > The Layer List (next) component is the successor to the Layer List component, provided to you early for testing and feedback. In version 6.0, the implementation of [arcgis-layer-list](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list/) will be updated under the hood to that of [arcgis-layer-list-next](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/), and this component will be removed. There is a breaking change in how events for [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#catalogLayerList) and [tableList](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#tableList) are handled compared to Layer List. To update at version 6.0, simply remove `-next` from the component name. * * The Layer List (next) provides a way to display a list of layers and switch on/off their visibility. * The [listItemCreatedFunction](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#listItemCreatedFunction) and 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. * * > **Notes** * > * > - The Layer List does not emit an event when the visibility of a layer changes. To respond to layer visibility changes, watch the [visible](https://developers.arcgis.com/javascript/latest/references/core/layers/Layer/#visible) property of layers in the [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 Layer List, you must set the [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 Layer List will display the [tables](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/#tables) as a [tableList](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#tableList) ListItem. * > - When a [CatalogLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/) is present in the map, the Layer List will display the [dynamicGroupLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/CatalogLayer/#dynamicGroupLayer) in a [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#catalogLayerList) ListItem. * * > **Keyboard Navigation** * > * > - The Layer List supports keyboard navigation using the [Treegrid Pattern](https://www.w3.org/WAI/ARIA/apg/patterns/treegrid/) for improved accessibility. Refer to the Calcite List component documentation for detailed keyboard interaction guidelines: [Calcite List Keyboard Navigation](https://developers.arcgis.com/calcite-design-system/components/list/#keyboard-navigation). * * @since 5.1 * @beta */ export abstract class ArcgisLayerListNext extends LitElement { /** * If true, the component will not be destroyed automatically when it is * disconnected from the document. This is useful when you want to move the * component to a different place on the page, or temporarily hide it. If this * is set, make sure to call the [destroy()](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#destroy) method when you are done to * prevent memory leaks. * * @default false */ accessor autoDestroyDisabled: boolean; /** * The CatalogLayerList 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 in the root of the layer list when a CatalogLayer is present in the map. * This property is set when a catalog layer's dynamic group layer is expanded in the LayerList. Otherwise, it is `null`. * This property is useful for listening to the [arcgisTriggerAction](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-catalog-layer-list/#event-arcgisTriggerAction) event and managing selections in catalog layers. * * ![CatalogLayerList](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/catalog-layer-list.avif) * * @example * ```js * // Use reactiveUtils to respond to the layerListElement.catalogLayerList "arcgisTriggerAction" event * const catalogLayerListActionHandle = reactiveUtils.on( * () => layerListElement.catalogLayerList, * "arcgisTriggerAction", * async (event) => { * const { action, item } = event.detail; * if (action.id === "add-layer") { * try { * const parentCatalogLayer = getCatalogLayerForLayer(item.layer); * if (!parentCatalogLayer) { * return; * } * await addLayerFromDynamicGroup(item.layer); * alert(`Added ${item.layer.title} to the map`); * } catch (error) { * console.error("Failed to add layer from dynamic group", error); * alert(`Unable to add ${item.layer.title} to the map`); * } * layerListElement?.openedLayers?.pop(); * } * }, * ); * layerListHandles.push(catalogLayerListActionHandle); * * // Use reactiveUtils to watch for a selected item in the layerListElement.catalogLayerList * const catalogSelectionWatchHandle = reactiveUtils.watch( * () => * layerListElement.catalogLayerList?.selectedItems?.at(0)?.layer as Layer, * (layer) => { * layer && handleLayerSelection(layer); * }, * ); * layerListHandles.push(catalogSelectionWatchHandle); * ``` */ get catalogLayerList(): ArcgisCatalogLayerList | 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 [arcgis-catalog-layer-list](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-catalog-layer-list/) in the Layer List component. * 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 [arcgis-catalog-layer-list](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-catalog-layer-list/). * * @see [arcgis-catalog-layer-list](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-catalog-layer-list/) for more details on the catalog layer list and its properties. * @example * ```js * layerListElement.catalogOptions = { * listItemCreatedFunction: (event) => { * const { item } = event; * item.actionsSections = [ * [ * { * title: "Add layer to map", * icon: "add-layer", * id: "add-layer" * } * ] * ]; * }, * selectionMode: "single" * }; * ``` */ accessor catalogOptions: CatalogLayerListParams | undefined; /** * Indicates whether a component is closed. When `true`, the component will be hidden. * * @default false */ accessor closed: boolean; /** * Indicates whether the component is collapsed. * When collapsed, only the collapse button and heading are displayed. * * @default false * @see [showCollapseButton](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#showCollapseButton) * @example * ```js * layerListElement.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/map-components/components/arcgis-layer-list-next/#minDragEnabledItems). * * @default false * @see [minDragEnabledItems](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#minDragEnabledItems) * @example * ```js * layerListElement.dragEnabled = true; * ``` */ accessor dragEnabled: boolean; /** * Placeholder text used in the filter input if [showFilter](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#showFilter) is true. * * @default "" * @see [showFilter](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#showFilter) * @example * ```js * layerListElement.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/). * * @example * ```js * layerListElement.filterPredicate = (item) => item.title.toLowerCase().includes("streets"); * ``` */ accessor filterPredicate: ((item: ListItem | TableListListItem) => boolean) | undefined; /** * The value of the filter input if [showFilter](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#showFilter) is true. * * @default "" * @see [showFilter](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#showFilter) * @example * ```js * reactiveUtils.watch( * () => layerListElement.filterText, * (filterText) => console.log(filterText) * ); * ``` */ accessor filterText: string; /** * Indicates the heading level to use for the heading of the component. * By default, the heading is rendered as a level 2 heading (e.g., `<h2>Layer List</h2>`). * Depending on the component's placement in your app, you may need to adjust this heading for proper semantics. * This is important for meeting accessibility standards. * * @default 2 * @see [showHeading](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#showHeading) * @example * ```js * layerListElement.headingLevel = 3; * ``` */ accessor headingLevel: HeadingLevel; /** * This property provides the ability to show or hide the catalog layer list. * * @default false */ accessor hideCatalogLayerList: boolean; /** * This property provides the ability to show or hide status indicators. * * @default false */ accessor hideStatusIndicators: boolean; /** * Icon which represents the component. * Typically used when the component is controlled by another component (e.g. by the Expand component). * * @default "layers" * @see [Calcite Icons](https://developers.arcgis.com/calcite-design-system/icons/) */ accessor icon: IconName; /** * [KnowledgeGraphLayer](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/) specific properties. * [KnowledgeGraphLayer#tables](https://developers.arcgis.com/javascript/latest/references/core/layers/KnowledgeGraphLayer/#tables) * as an expandable [arcgis-table-list](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-table-list/) in the Layer List component and can be accessed with the [tableList](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#tableList) property. * 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 [arcgis-table-list](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-table-list/). * * @see [arcgis-table-list](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-table-list/) for more details on the table list and its properties. * @example * ```js * layerListElement.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 * } * ``` */ accessor knowledgeGraphOptions: TableListParams | undefined; /** The component's default label. */ accessor label: string | undefined; /** @internal */ accessor layerTablesAvailable: Collection<TableSupportedLayers>; /** @internal */ accessor listItemCanGiveFunction: CanSortFunction | undefined; /** @internal */ accessor listItemCanReceiveFunction: CanSortFunction | 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. * * @see [Sample - LayerList component with actions](https://developers.arcgis.com/javascript/latest/sample-code/layer-list-actions/) * @example * ```js * layerListElement.listItemCreatedFunction = async function (event) { * // The event object contains an item property. * // It is a ListItem referencing the associated layer * // and other properties. You can control the visibility of the * // item, its title, and actions using this object. * const item = event.item; * * await item.layer.when(); * * if (item.title === "US Demographics") { * // An array of objects defining actions to place in the LayerList. * // By making this array two-dimensional, you can separate similar * // actions into separate groups with a breaking line. * item.actionsSections = [ * [ * { * title: "Go to full extent", * icon: "zoom-out-fixed", * id: "full-extent", * }, * { * title: "Layer information", * icon: "information", * id: "information", * }, * ], * [ * { * title: "Increase opacity", * icon: "chevron-up", * id: "increase-opacity", * }, * { * title: "Decrease opacity", * icon: "chevron-down", * id: "decrease-opacity", * }, * ], * ]; * } * } * ``` */ accessor listItemCreatedFunction: ListItemModifier | null | undefined; /** * Overwrite localized strings for this component * * @internal */ accessor messageOverrides: { componentLabel?: string | undefined; back?: string | undefined; noItemsToDisplay?: string | undefined; layerInvisibleAtScale?: string | undefined; layerInvisibleAtTime?: string | undefined; layerError?: string | undefined; untitledLayer?: string | undefined; untitledTable?: string | undefined; layerVisibility?: string | undefined; menu?: string | undefined; options?: string | undefined; showLayer?: string | undefined; hideLayer?: string | undefined; layerIncompatible?: string | undefined; layerIncompatibleTooltip?: string | undefined; tableError?: string | undefined; temporary?: string | undefined; tables?: string | undefined; catalogLayers?: string | undefined; connectionStatus?: string | undefined; updating?: string | undefined; publishing?: string | undefined; connected?: string | undefined; disconnected?: string | undefined; paused?: string | undefined; }; /** @internal */ protected messages: Partial<{ componentLabel: string; back: string; noItemsToDisplay: string; layerInvisibleAtScale: string; layerInvisibleAtTime: string; layerError: string; untitledLayer: string; untitledTable: string; layerVisibility: string; menu: string; options: string; showLayer: string; hideLayer: string; layerIncompatible: string; layerIncompatibleTooltip: string; tableError: string; temporary: string; tables: string; catalogLayers: string; connectionStatus: string; updating: string; publishing: string; connected: string; disconnected: string; paused: string; }> & T9nMeta<{ componentLabel: string; back: string; noItemsToDisplay: string; layerInvisibleAtScale: string; layerInvisibleAtTime: string; layerError: string; untitledLayer: string; untitledTable: string; layerVisibility: string; menu: string; options: string; showLayer: string; hideLayer: string; layerIncompatible: string; layerIncompatibleTooltip: string; tableError: string; temporary: string; tables: string; catalogLayers: string; connectionStatus: string; updating: string; publishing: string; connected: string; disconnected: string; paused: string; }>; /** * The minimum number of list items required to enable drag and drop reordering with [dragEnabled](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#dragEnabled). * * @default 2 * @see [dragEnabled](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#dragEnabled) * @example * ```js * layerListElement.dragEnabled = true; * layerListElement.minDragEnabledItems = 5; * ``` */ accessor minDragEnabledItems: number; /** * The minimum number of list items required to display the [showFilter](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#showFilter) input box. * * @default 10 * @see [showFilter](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#showFilter) * @example * ```js * layerListElement.showFilter = true; * layerListElement.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/map-components/components/arcgis-layer-list-next/#catalogLayerList) or [tableList](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#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 [] * @see [catalogLayerList](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#catalogLayerList) * @see [tableList](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#tableList) * @example * ```js * // back out of the catalog layer list to the main layer list * layerListElement.openedLayers.pop(); * ``` */ get openedLayers(): Collection<FlowLayer>; /** A collection of [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/)s representing the operational layers in the layer list. */ get operationalItems(): Collection<ListItem>; /** * By assigning the `id` attribute of the Map or Scene component to this property, you can position a child component anywhere in the DOM while still maintaining a connection to the Map or Scene. * * @see [Associate components with a Map or Scene component](https://developers.arcgis.com/javascript/latest/programming-patterns/#associate-components-with-a-map-or-scene-component) */ accessor referenceElement: ArcgisReferenceElement | string | undefined; /** * A collection of selected [ListItem](https://developers.arcgis.com/javascript/latest/references/core/widgets/LayerList/ListItem/)s representing operational layers * selected by the user in the layer list. * * @see [selectionMode](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#selectionMode) */ accessor selectedItems: Collection<ListItem>; /** * Specifies the selection mode. * Selected items are available in the [selectedItems](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#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" * @see [selectedItems](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#selectedItems) * @example * ```js * layerListElement.selectionMode = "multiple"; * ``` */ accessor selectionMode: List["selectionMode"]; /** * This property provides the ability to show or hide the close button. * * @default false */ accessor showCloseButton: boolean; /** * This property provides the ability to show or hide the collapse button. * * @default false */ accessor showCollapseButton: boolean; /** * This property provides the ability to show or hide error indicators. * * @default false */ accessor showErrors: boolean; /** * This property provides the ability to show or hide the filter input. * * @default false */ accessor showFilter: boolean; /** * This property provides the ability to show or hide the heading. * * @default false */ accessor showHeading: boolean; /** * This property provides the ability to show or hide temporary layer indicators. * * @default false */ accessor showTemporaryLayerIndicators: boolean; /** * The current state of the component. * * @default "disabled" */ get state(): State; /** * The [arcgis-table-list](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-table-list/) component 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 list item. * This property is set when a knowledge graph layer's tables list item 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 [arcgisTriggerAction](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-table-list/#event-arcgisTriggerAction) event and managing selections in knowledge graph tables. * * ![tableList](https://developers.arcgis.com/javascript/latest/assets/references/core/widgets/layer-list-tableList.avif) * * @see [knowledgeGraphOptions](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-layer-list-next/#knowledgeGraphOptions) for configuring the table list and its items. * @example * // Use reactiveUtils to respond to the layerListElement.tableList "arcgisTriggerAction" event * const tableListActionHandle = reactiveUtils.on( * () => layerListElement.tableList, * "arcgisTriggerAction", * (event: any) => { * const { action, item } = event.detail; * if (action.id === "information") { * alert(`${item.layer?.title}`); * } * }, * ); * layerListHandles.push(tableListActionHandle); * * // Use reactiveUtils to watch for a selected item in the layerListElement.tableList * const tableSelectionWatchHandle = reactiveUtils.watch( * () => layerListElement.tableList?.selectedItems?.at(0)?.layer, * (layer) => { * layer && handleLayerSelection(layer); * }, * ); * layerListHandles.push(tableSelectionWatchHandle); */ get tableList(): ArcgisTableList | undefined; /** * The view associated with the component. * > **Note:** The recommended approach is to fully migrate applications to use map and scene components and avoid using MapView and SceneView directly. However, if you are migrating a large application from widgets to components, you might prefer a more gradual transition. To support this use case, the SDK includes this `view` property which connects a component to a MapView or SceneView. Ultimately, once migration is complete, the arcgis-layer-list-next component will be associated with a map or scene component rather than using the `view` property. */ accessor view: MapViewOrSceneView | null | undefined; /** * 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.avif) | * | 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.avif) | * * @default "default" * @example * ```js * layerListElement.visibilityAppearance = "checkbox"; * ``` */ accessor visibilityAppearance: VisibilityAppearance; /** Permanently destroy the component. */ destroy(): Promise<void>; /** Emitted when the component's close button is clicked. */ readonly arcgisClose: import("@arcgis/lumina").TargetedEvent<this, void>; /** Emitted when the value of a property is changed. Use this to listen to changes to properties. */ readonly arcgisPropertyChange: import("@arcgis/lumina").TargetedEvent<this, { name: "state"; }>; /** Emitted when the component associated with a map or scene view is ready to be interacted with. */ readonly arcgisReady: import("@arcgis/lumina").TargetedEvent<this, void>; /** Emitted when an action is triggered on the component. */ readonly arcgisTriggerAction: import("@arcgis/lumina").TargetedEvent<this, LayerListViewModelEvents["trigger-action"]>; readonly "@eventTypes": { arcgisClose: ArcgisLayerListNext["arcgisClose"]["detail"]; arcgisPropertyChange: ArcgisLayerListNext["arcgisPropertyChange"]["detail"]; arcgisReady: ArcgisLayerListNext["arcgisReady"]["detail"]; arcgisTriggerAction: ArcgisLayerListNext["arcgisTriggerAction"]["detail"]; }; }