See also: Data Tables
Lead: Liav Nadler ONGOING
Description
A dual list selector is a component allowing the user to select multiple items. It is especially useful when the number of available items is large.
The most common use of the dual list selector is a column picker, used in data tables. For this reason, this document describes the structure and function on a column picker.
Usage & Behaviour
General guidelines
The dual list selector appears in a dialog box
It is triggered by clicking the Columns action in the column Action Menu
Structure
The component contains two lists:
Available Columns (on the left): a list of all columns available for the table
Selected Columns (on the right): a list of the currently displayed columns
Between the two lists there is a set of buttons, allowing the user to move items between them
Under the selected columns list there is a set of buttons, allowing the user the reorder selected items
Next to the selected columns title there is an indicator, showing the number of selected items out of the total number of items (for example: 7/22)
At the top of each list a search bar may appear, allowing the user to quickly locate specific items. The search bar is optional, depending on the number of items
In case the list is too long to be displayed in its container, a vertical scroll bar appears
At the bottom-left corner of the dialog box there is a button titled Restore Defaults
Order
The Selected Columns list shows the list of columns in the same order as they appear on the data table
The Available Columns list is sorted alphanumerically
States
The right and left buttons are disabled until the user selected at least one item: selecting items on the right enables the left button, and vice versa
The up and down buttons are disabled until the user selected at least one item on the Selected Columns list:
Selecting the top item will enable only the down button
Selecting the bottom item will enable only the up button
Selecting any other item will enable both the up and down buttons
If the table contain columns that cannot be removed or reordered, the relevant items on the selected columns list will show as disabled
Interaction
Selecting Items
On either list, clicking an item selects it. The user can select more than one item using the Ctrl (or Command) key for discrete selection, or the Shift key for a block selection
Selecting items on one list deselects all items on the other list
Moving items between lists
The user can move selected items between lists using one of two methods:
Clicking the right or left button between the lists
Using Drag and Drop
Items that were moved to the Selected Columns list appears at the bottom of the list
Items that were moved to the Available Columns list appear at their original locations, so the list is always sorted
Items that were moved remain selected
In addition, moved items should be visible. In case the target area is outside of the visible area of the list, it will scroll automatically
Reordering items
On the Selected Columns list, the user can reorder items by selecting them and then clicking the up or down buttons under the list
After the items were ordered they remain selected until the user selects other items
The user can also reorder items using /wiki/spaces/~347593403/pages/918783940
Reordering multiple items will keep their relative locations
If the first item reached the top of the list, the up button will be disabled
If the last item reached the bottom of the list, the down button will be disabled
Restoring Defaults
Clicking the Restore Defaults button restores the dialog box to its original state (“factory default”)
After clicking the button the user can confirm the action by clicking the Done button, or to cancel
Locking columns (optional)
The user can lock any column on the selected columns list by clicking the pin icon, shown on hover. In this case:
The icon changes from idle to selected
The item moves to the top of the list
The item can be ordered only inside the group of locked items
On the actual table the locked columns are anchored to the left. Locked items can be reordered only inside the group of locked items
The user can unlock the column by clicking the lock icon again
Validation and Errors
Removing All Items
If the user removed all items from the selected list:
The search bar and reordering buttons are disabled
A message appears, guiding the user to select at least one item
In this case, clicking the Done button:
Shows an error message
Disables the button
Limiting Number of Items
It is recommended to limit the number of selected items. For example, If the number of available columns is 30 items or more, the user will be able to select no more than 30 items
If the user reached the maximum number of items:
The right arrow button will be disabled
A relevant message will appear at the bottom of the popup
Accessibility compliance
<<In general each component should be A11y complied, please follow the 3 guidelines linked below. At the very least we should document that each component is in compliance with each of the 3>>
Focus management
<<How will the component work with keyboard only - without a mouse. Can be reference if written above
We already set a general guidelines described in /wiki/spaces/UX/pages/308969693 >>
Screen reader support
<<Make sure the components support screen reader for content or behaviour where needed - see /wiki/spaces/UX/pages/308248620 >>
Contrast & size compliance
<<Visual designers must comply with the minimal of /wiki/spaces/UX/pages/301498483 for each component>>
Design
Zeplin link | Screen thumbnail |
---|---|
Code
<<a box containing the code - discuss with Femi>>