new PopupTagMultiselectWidget(config)
PopupTagMultiselectWidget is a OO.ui.TagMultiselectWidget intended to use a popup. The popup can be configured to have a default input to insert values into the widget.
Parameters:
Name | Type | Description | ||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
config |
Object | Configuration object Properties
|
- Mixes In:
- Source:
Example
// Example: A basic PopupTagMultiselectWidget.
var widget = new OO.ui.PopupTagMultiselectWidget();
$( 'body' ).append( widget.$element );
// Example: A PopupTagMultiselectWidget with an external popup.
var popupInput = new OO.ui.TextInputWidget(),
widget = new OO.ui.PopupTagMultiselectWidget( {
popupInput: popupInput,
popup: {
$content: popupInput.$element
}
} );
$( 'body' ).append( widget.$element );
Extends
Methods
addAllowedValue(value)
Add a value to the allowed values list
Parameters:
Name | Type | Description |
---|---|---|
value |
string | Allowed data value |
- Inherited From:
- Source:
addTag(data, labelopt) → {boolean}
Add tag to the display area
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
data |
string | Object | Tag data |
|
label |
string |
<optional> |
Tag label. If no label is provided, the stringified version of the data will be used instead. |
- Inherited From:
- Source:
Returns:
Item was added successfully
- Type
- boolean
addTagByPopupValue(data, labelopt)
Add a tag by the popup value. Whatever is responsible for setting the value in the popup should call this method to add a tag, or use the regular methods like #addTag or
#setValue directly.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
data |
string | The value of item |
|
label |
string |
<optional> |
The label of the tag. If not given, the data is used. |
addTagFromInput()
Add tag from input value
- Inherited From:
- Source:
checkValidity() → {boolean}
Check whether all items in the widget are valid
- Inherited From:
- Source:
Returns:
Widget is valid
- Type
- boolean
clearInput()
Clear the input
- Inherited From:
- Source:
(protected) createTagItemWidget(data, label) → {OO.ui.TagItemWidget}
Construct a OO.ui.TagItemWidget (or a subclass thereof) from given label and data.
Parameters:
Name | Type | Description |
---|---|---|
data |
string | Item data |
label |
string | The label text. |
- Inherited From:
- Source:
Returns:
- Type
- OO.ui.TagItemWidget
doInputArrow(e, direction, withMetaKeyopt)
Perform an action after the arrow key on the input, select the previous or next item from the input. See #getPreviousItem and #getNextItem
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
e |
jQuery.Event | Event data |
|
direction |
string | Direction of the movement; forwards or backwards |
|
withMetaKey |
boolean |
<optional> |
Whether this key was pressed with a meta key like 'ctrl' |
- Inherited From:
- Source:
doInputBackspace(e, withMetaKeyopt) → {boolean}
Perform an action responding to the enter key on the input
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
e |
jQuery.Event | Event data |
|
withMetaKey |
boolean |
<optional> |
Whether this key was pressed with a meta key like 'ctrl' |
- Inherited From:
- Source:
Returns:
Whether to prevent defaults
- Type
- boolean
doInputEnter(e, withMetaKeyopt) → {boolean}
Perform an action after the enter key on the input
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
e |
jQuery.Event | Event data |
|
withMetaKey |
boolean |
<optional> |
Whether this key was pressed with a meta key like 'ctrl' |
- Inherited From:
- Source:
Returns:
Whether to prevent defaults
- Type
- boolean
doInputEscape(e)
Perform an action after the escape key on the input
Parameters:
Name | Type | Description |
---|---|---|
e |
jQuery.Event | Event data |
- Inherited From:
- Source:
getAllowedValues() → {Array.<string>}
Get the allowed values list
- Inherited From:
- Source:
Returns:
Allowed data values
- Type
- Array.<string>
getClosestScrollableElementContainer() → {HTMLElement}
Get closest scrollable container.
- Inherited From:
- Source:
Returns:
Closest scrollable container
- Type
- HTMLElement
getData() → {Mixed}
Get element data.
- Inherited From:
- Source:
Returns:
Element data
- Type
- Mixed
getElementDocument() → {HTMLDocument}
Get the DOM document.
- Inherited From:
- Source:
Returns:
Document object
- Type
- HTMLDocument
getElementGroup() → {OO.ui.mixin.GroupElement|null}
Get group element is in.
- Inherited From:
- Source:
Returns:
Group element, null if none
- Type
- OO.ui.mixin.GroupElement | null
getElementId() → {string}
Ensure that the element has an 'id' attribute, setting it to an unique value if it's missing, and return its value.
- Inherited From:
- Source:
Returns:
- Type
- string
getElementWindow() → {Window}
Get the DOM window.
- Inherited From:
- Source:
Returns:
Window object
- Type
- Window
getInputId() → {string|null}
Get an ID of a labelable node which is part of this widget, if any, to be used for <label for>
value.
If this function returns null, the widget should have a meaningful #simulateLabelClick method instead.
- Inherited From:
- Source:
Returns:
The ID of the labelable element
- Type
- string | null
(protected) getNextItem(itemopt) → {OO.ui.Widget}
Given an item, returns the item after it. If the item is already the
last item, return this.input
. If no item is passed, returns the
very first item.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
item |
OO.ui.TagItemWidget |
<optional> |
Tag item |
- Inherited From:
- Source:
Returns:
The next widget available.
- Type
- OO.ui.Widget
(protected) getPreviousItem(itemopt) → {OO.ui.Widget}
Given an item, returns the item before it. If the item is already the
first item, return this.input
. If no item is passed, returns the
very last item.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
item |
OO.ui.TagItemWidget |
<optional> |
Tag item |
- Inherited From:
- Source:
Returns:
The previous widget available.
- Type
- OO.ui.Widget
getTagName() → {string}
Get the HTML tag name.
Override this method to base the result on instance information.
- Inherited From:
- Source:
Returns:
HTML tag name
- Type
- string
getValue() → {Array.<string>|Array.<Object>}
Get the datas of the currently selected items
- Inherited From:
- Source:
Returns:
Datas of currently selected items
- Type
- Array.<string> | Array.<Object>
isAllowedData(data) → {boolean}
Check whether a given value is allowed to be added
Parameters:
Name | Type | Description |
---|---|---|
data |
string | Object | Requested value |
- Inherited From:
- Source:
Returns:
Value is allowed
- Type
- boolean
isDisabled() → {boolean}
Check if the widget is disabled.
- Inherited From:
- Source:
Returns:
Widget is disabled
- Type
- boolean
isDuplicateData(data) → {boolean}
Check whether the given value is a duplicate of an existing tag already in the list.
Parameters:
Name | Type | Description |
---|---|---|
data |
string | Object | Requested value |
- Inherited From:
- Source:
Returns:
Value is duplicate
- Type
- boolean
isElementAttached() → {boolean}
Check if the element is attached to the DOM
- Inherited From:
- Source:
Returns:
The element is attached to the DOM
- Type
- boolean
isValid() → {boolean}
Get the current valid state of the widget
- Inherited From:
- Source:
Returns:
Widget is valid
- Type
- boolean
isVisible() → {boolean}
Check if element is visible.
- Inherited From:
- Source:
Returns:
element is visible
- Type
- boolean
onChangeTags()
Respond to change event, where items were added, removed, or cleared.
- Inherited From:
- Source:
onInputBlur()
Respond to input blur event
- Inherited From:
- Source:
onInputFocus()
Respond to input focus event
- Inherited From:
- Source:
onPopupInputEnter()
Respond to popup input enter event
onPopupToggle(isVisible)
Respond to popup toggle event
Parameters:
Name | Type | Description |
---|---|---|
isVisible |
boolean | Popup is visible |
onTagNavigate(item, direction)
Respond to navigate event on the tag
Parameters:
Name | Type | Description |
---|---|---|
item |
OO.ui.TagItemWidget | Removed tag |
direction |
string | Direction of movement; 'forwards' or 'backwards' |
- Inherited From:
- Source:
onTagRemove(item)
Respond to tag remove event
Parameters:
Name | Type | Description |
---|---|---|
item |
OO.ui.TagItemWidget | Removed tag |
- Inherited From:
- Source:
onTagSelect(item)
Respond to item select event
Parameters:
Name | Type | Description |
---|---|---|
item |
OO.ui.TagItemWidget | Selected item |
- Overrides:
- Source:
removeTagByData(data)
Remove tag by its data property.
Parameters:
Name | Type | Description |
---|---|---|
data |
string | Object | Tag data |
- Inherited From:
- Source:
(protected) restorePreInfuseState(state)
Restore the pre-infusion dynamic state for this widget.
This method is called after #$element has been inserted into DOM. The parameter is the return value of #gatherPreInfuseState.
Parameters:
Name | Type | Description |
---|---|---|
state |
Object |
- Inherited From:
- Source:
scrollElementIntoView(configopt) → {jQuery.Promise}
Scroll element into view.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
config |
Object |
<optional> |
Configuration options |
- Inherited From:
- Source:
Returns:
Promise which resolves when the scroll is complete
- Type
- jQuery.Promise
setData(data)
Set element data.
Parameters:
Name | Type | Description |
---|---|---|
data |
Mixed | Element data |
- Inherited From:
- Source:
setDisabled(disabled)
Set the 'disabled' state of the widget.
When a widget is disabled, it cannot be used and its appearance is updated to reflect this state.
Parameters:
Name | Type | Description |
---|---|---|
disabled |
boolean | Disable widget |
- Inherited From:
- Source:
setElementGroup(group)
Set group element is in.
Parameters:
Name | Type | Description |
---|---|---|
group |
OO.ui.mixin.GroupElement | null | Group element, null if none |
- Inherited From:
- Source:
setElementId(id)
Set the element has an 'id' attribute.
Parameters:
Name | Type | Description |
---|---|---|
id |
string |
- Inherited From:
- Source:
setValue(valueObject)
Set the value of this widget by datas.
Parameters:
Name | Type | Description |
---|---|---|
valueObject |
string | Array.<string> | Object | Array.<Object> | An object representing the data and label of the value. If the widget allows arbitrary values, the items will be added as-is. Otherwise, the data value will be checked against allowedValues. This object must contain at least a data key. Example: { data: 'foo', label: 'Foo item' } For multiple items, use an array of objects. For example: [ { data: 'foo', label: 'Foo item' }, { data: 'bar', label: 'Bar item' } ] Value can also be added with plaintext array, for example: [ 'foo', 'bar', 'bla' ] or a single string, like 'foo' |
- Inherited From:
- Source:
simulateLabelClick()
Simulate the behavior of clicking on a label (a HTML <label>
element) bound to this input.
HTML only allows <label>
to act on specific "labelable" elements; complex widgets might need to
override this method to provide intuitive, accessible behavior.
By default, this does nothing. OO.ui.mixin.TabIndexedElement overrides it for focusable widgets. Individual widgets may override it too.
This method is called by OO.ui.LabelWidget and OO.ui.FieldLayout. It should not be called directly.
- Inherited From:
- Source:
supports(methods) → {boolean}
Check if element supports one or more methods.
Parameters:
Name | Type | Description |
---|---|---|
methods |
string | Array.<string> | Method or list of methods to check |
- Inherited From:
- Source:
Returns:
All methods are supported
- Type
- boolean
toggle(showopt)
Toggle visibility of an element.
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
show |
boolean |
<optional> |
Make element visible, omit to toggle visibility |
- Inherited From:
- Source:
Fires:
- event:visible
toggleValid(validopt)
Set the valid state of this item
Parameters:
Name | Type | Attributes | Description |
---|---|---|---|
valid |
boolean |
<optional> |
Item is valid |
- Inherited From:
- Source:
Fires:
updateDisabled()
Update the disabled state, in case of changes in parent widget.
- Inherited From:
- Source:
updateThemeClasses()
Update the theme-provided classes.
- Inherited From:
- Source: