@arcgis/map-components
Version:
ArcGIS Map Components
79 lines (75 loc) • 4.28 kB
TypeScript
/**
* @internal
* @since
* 5.1
*
* The minimum API required for components being slotted into [arcgis-value-picker](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-value-picker/). Value Picker will automatically
* create an internal reference to the slotted component, so the properties on this interface can be directly referenced without requiring
* the the Value Picker component to be aware of the slotted component's unique API. For example, if the user presses play and eventually Value Picker
* determines that `slottedComponent.canNext` is false but [arcgis-value-picker.loop](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-value-picker/#loop) is true, Value Picker will call `slottedComponent.reset()`
* to reset the slotted component's current value to the first index of its dataset. This will allow playback to continue looping seamlessly.
*/
export interface ArcgisValuePickerSubcomponent extends HTMLElement {
/**
* Indicates whether the component may advance to the next index of its data set. This value is recalculated after the component is interacted with
* so the [arcgis-value-picker](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-value-picker/) buttons give the user immediate feedback regarding what interactions are permitted next.
*/
canNext: boolean;
/**
* Indicates whether the component may begin playing. This value is recalculated after the component is interacted with
* so the [arcgis-value-picker](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-value-picker/) buttons give the user immediate feedback regarding what interactions are permitted next.
*/
canPlay: boolean;
/**
* Indicates whether the component may step backwards to the previous index of its data set. This value is recalculated after the component is interacted with
* so the [arcgis-value-picker](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-value-picker/) buttons give the user immediate feedback regarding what interactions are permitted next.
*/
canPrevious: boolean;
/**
* Function used to change the currently selected value. Pressing the next button will call step("next"), and pressing the previous button will call step("previous").
*
* @param direction - Indicates whether the next element selected by [arcgis-value-picker](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-value-picker/)
* should be the next or previous index of the slotted component's dataset.
*/
step: (direction: "next" | "previous") => void;
/**
* Function used to reset the currently selected value to the first element of the slotted component's dataset. This method is called automatically
* when [arcgis-value-picker.loop](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-value-picker/#loop) is `true` and the selected value index reaches the end of the dataset. Additionally, if [arcgis-value-picker.loop](https://developers.arcgis.com/javascript/latest/references/map-components/components/arcgis-value-picker/#loop)
* is `false` and the play button is clicked while the index is at the last element of the slotted component's dataset, Value Picker will call `reset()` on the slotted component
* and play through all elements once.
*/
reset: () => void;
}
/** @internal */
export interface AnimateEvent {
/** Denotes whether the event is firing for the first time since the play button was pressed. */
first: boolean;
}
/**
* Object used to define the label items.
*
* @internal
*/
export interface LabelItem {
/** The value of the item. */
value: string;
/** The label users will see for this item. */
label: string;
}
/**
* Object used to define the combobox items.
*
* @internal
*/
export interface ComboboxItem {
/** The value of the item. */
value: string;
/** The label users will see for this item. */
label: string;
}
/**
* Indicates the axis the component should be oriented along.
*
* @internal
*/
export type Layout = "horizontal" | "vertical";