API Documentation
ElementBase
ArrowSelection ⇐ Component which adds prominent left and right arrow buttons to a wrapped child such as a carousel.
You can see a live demo of this component applied to a carousel.
Clicking the left/right buttons selects the previous/next item.
Typical usage:
<basic-arrow-selection>
<basic-carousel>
... images, etc. ...
</basic-carousel>
</basic-arrow-selection>
By default, the arrow buttons are shown on devices with a mouse or mouse-like point device. They are not shown on a touch-capable device unless mouse movement is detected. To cause the buttons to always appear, apply the 'showArrows' CSS class.
Kind: global class
Extends: ElementBase
Mixes: ContentFirstChildTarget
, DirectionSelection
, DistributedChildrenAsContent
, ItemsSelection
, Keyboard
, KeyboardDirection
, TargetInCollective
, TargetSelection
- ArrowSelection ⇐
ElementBase
- .applySelection(item, selected)
- .canSelectNext :
boolean
- .canSelectPrevious :
boolean
- .content :
Array.<HTMLElement>
- .goDown()
- .goEnd()
- .goLeft()
- .goRight()
- .goStart()
- .goUp()
- .itemAdded(item)
- .items :
Array.<HTMLElement>
- .itemsChanged()
- .keydown(event) ⇒
boolean
- .navigationAxis :
string
- "selected-index-changed"
- "selected-item-changed"
- .selectedIndex :
number
- .selectedItem :
HTMLElement
- .selectedItem :
object
- .selectFirst()
- .selectionRequired :
boolean
- .selectionWraps :
boolean
- .selectionWraps :
boolean
- .selectLast()
- .selectNext()
- .selectPrevious()
- .target :
HTMLElement
- .target :
HTMLElement
- .target :
HTMLElement
arrowSelection.applySelection(item, selected)
Apply the indicate selection state to the item.
The default implementation of this method does nothing. User-visible effects will typically be handled by other mixins.
Kind: instance method of ArrowSelection
. Defined by ItemsSelection
mixin.
Param | Type | Description |
---|---|---|
item | HTMLElement |
the item being selected/deselected |
selected | boolean |
true if the item is selected, false if not |
boolean
arrowSelection.canSelectNext : True if the selection can be moved to the next item, false if not (the selected item is the last item in the list).
Kind: instance property of ArrowSelection
. Defined by ItemsSelection
mixin.
boolean
arrowSelection.canSelectPrevious : True if the selection can be moved to the previous item, false if not (the selected item is the first one in the list).
Kind: instance property of ArrowSelection
. Defined by ItemsSelection
mixin.
Array.<HTMLElement>
arrowSelection.content : The content of this component, defined to be the flattened array of children distributed to the component.
Kind: instance property of ArrowSelection
. Defined by DistributedChildrenAsContent
mixin.
arrowSelection.goDown()
Invoked when the user wants to go/navigate down. The default implementation of this method does nothing.
Kind: instance method of ArrowSelection
. Defined by KeyboardDirection
mixin.
arrowSelection.goEnd()
Invoked when the user wants to go/navigate to the end (e.g., of a list). The default implementation of this method does nothing.
Kind: instance method of ArrowSelection
. Defined by KeyboardDirection
mixin.
arrowSelection.goLeft()
Invoked when the user wants to go/navigate left. The default implementation of this method does nothing.
Kind: instance method of ArrowSelection
. Defined by KeyboardDirection
mixin.
arrowSelection.goRight()
Invoked when the user wants to go/navigate right. The default implementation of this method does nothing.
Kind: instance method of ArrowSelection
. Defined by KeyboardDirection
mixin.
arrowSelection.goStart()
Invoked when the user wants to go/navigate to the start (e.g., of a list). The default implementation of this method does nothing.
Kind: instance method of ArrowSelection
. Defined by KeyboardDirection
mixin.
arrowSelection.goUp()
Invoked when the user wants to go/navigate up. The default implementation of this method does nothing.
Kind: instance method of ArrowSelection
. Defined by KeyboardDirection
mixin.
arrowSelection.itemAdded(item)
Handle a new item being added to the list.
The default implementation of this method simply sets the item's selection state to false.
Kind: instance method of ArrowSelection
. Defined by ItemsSelection
mixin.
Param | Type | Description |
---|---|---|
item | HTMLElement |
the item being added |
Array.<HTMLElement>
arrowSelection.items : The current set of items in the list.
Kind: instance property of ArrowSelection
. Defined by TargetSelection
mixin.
arrowSelection.itemsChanged()
This method is invoked when the underlying contents change. It is also invoked on component initialization – since the items have "changed" from being nothing.
Kind: instance method of ArrowSelection
. Defined by TargetSelection
mixin.
boolean
arrowSelection.keydown(event) ⇒ Handle the indicated keyboard event.
The default implementation of this method does nothing. This will typically be handled by other mixins.
Kind: instance method of ArrowSelection
. Defined by Keyboard
mixin.
Returns: boolean
- true if the event was handled
Param | Type | Description |
---|---|---|
event | KeyboardEvent |
the keyboard event |
string
arrowSelection.navigationAxis : Indicates the direction of permitted navigation with the keyboard.
Accepted values are "horizontal", "vertical", or "both" (the default). If this property is "horizontal", the Up Arrow and Down Arrow keys will be ignored. Conversely, if this is "vertical", the Left Arrow and Right Arrow keys will be ignored.
Kind: instance property of ArrowSelection
. Defined by KeyboardDirection
mixin.
"selected-index-changed"
Fires when the selectedIndex property changes.
Kind: event emitted by ArrowSelection
. Defined by ItemsSelection
mixin.
Param | Type | Description |
---|---|---|
detail.selectedIndex | number |
The new selected index. |
"selected-item-changed"
Fires when the selectedItem property changes.
Kind: event emitted by ArrowSelection
. Defined by ItemsSelection
mixin.
Param | Type | Description |
---|---|---|
detail.selectedItem | HTMLElement |
The new selected item. |
detail.previousItem | HTMLElement |
The previously selected item. |
number
arrowSelection.selectedIndex : The index of the item which is currently selected.
If selectionWraps
is false, the index is -1 if there is no selection.
In that case, setting the index to -1 will deselect any
currently-selected item.
Kind: instance property of ArrowSelection
. Defined by ItemsSelection
mixin.
HTMLElement
arrowSelection.selectedItem : The currently selected item, or null if there is no selection.
Kind: instance property of ArrowSelection
. Defined by TargetSelection
mixin.
object
arrowSelection.selectedItem : The currently selected item, or null if there is no selection.
Setting this property to null deselects any currently-selected item.
Kind: instance property of ArrowSelection
. Defined by ItemsSelection
mixin.
arrowSelection.selectFirst()
Select the first item in the list.
Kind: instance method of ArrowSelection
. Defined by ItemsSelection
mixin.
boolean
arrowSelection.selectionRequired : True if the list should always have a selection (if it has items).
Kind: instance property of ArrowSelection
. Defined by ItemsSelection
mixin.
Default: false
boolean
arrowSelection.selectionWraps : True if selection navigations wrap from last to first, and vice versa.
Kind: instance property of ArrowSelection
. Defined by TargetSelection
mixin.
Default: {false}
boolean
arrowSelection.selectionWraps : True if selection navigations wrap from last to first, and vice versa.
Kind: instance property of ArrowSelection
. Defined by ItemsSelection
mixin.
Default: false
arrowSelection.selectLast()
Select the last item in the list.
Kind: instance method of ArrowSelection
. Defined by ItemsSelection
mixin.
arrowSelection.selectNext()
Select the next item in the list.
Kind: instance method of ArrowSelection
. Defined by ItemsSelection
mixin.
arrowSelection.selectPrevious()
Select the previous item in the list.
Kind: instance method of ArrowSelection
. Defined by ItemsSelection
mixin.
HTMLElement
arrowSelection.target : Gets/sets the current target of the component.
Set this to point to another element. That target element will be implicitly added to the component's collective. That is, the component and its target will share responsibility for handling keyboard events.
You can set this property yourself, or you can use the ContentFirstChildTarget mixin to automatically set the target to the component's first child.
Kind: instance property of ArrowSelection
. Defined by TargetInCollective
mixin.
HTMLElement
arrowSelection.target : Gets/sets the current target of the component.
Kind: instance property of ArrowSelection
. Defined by ContentFirstChildTarget
mixin.
HTMLElement
arrowSelection.target : Gets/sets the target element to which this component will delegate selection actions.
Kind: instance property of ArrowSelection
. Defined by TargetSelection
mixin.