var _callbackKeyDown = null;
var _callbackKeyPress = null;
var _callbackKeyUp = null;
+ var _callbackPaste = null;
var _callbackRemoveItem = null;
var _callbackBlur = null;
_callbackKeyDown = this._keyDown.bind(this);
_callbackKeyPress = this._keyPress.bind(this);
_callbackKeyUp = this._keyUp.bind(this);
+ _callbackPaste = this._paste.bind(this);
_callbackRemoveItem = this._removeItem.bind(this);
_callbackBlur = this._blur.bind(this);
},
element.addEventListener('keydown', _callbackKeyDown);
element.addEventListener('keypress', _callbackKeyPress);
element.addEventListener('keyup', _callbackKeyUp);
+ element.addEventListener('paste', _callbackPaste);
element.addEventListener('blur', _callbackBlur);
element.parentNode.insertBefore(list, element);
/**
* Handles the `[ENTER]` and `[,]` key to add an item to the list unless it is restricted.
*
- * @param {object} event event object
+ * @param {Event} event event object
*/
_keyPress: function(event) {
if (EventKey.Enter(event) || EventKey.Comma(event)) {
}
},
+ /**
+ * Splits comma-separated values being pasted into the input field.
+ *
+ * @param {Event} event
+ * @protected
+ */
+ _paste: function (event) {
+ var text = '';
+ if (typeof window.clipboardData === 'object') {
+ // IE11
+ text = window.clipboardData.getData('Text');
+ }
+ else {
+ text = event.clipboardData.getData('text/plain');
+ }
+
+ text.split(/,/).forEach((function(item) {
+ item = item.trim();
+ if (item.length !== 0) {
+ this._addItem(event.currentTarget.id, { objectId: 0, value: item });
+ }
+ }).bind(this));
+
+ event.preventDefault();
+ },
+
/**
* Handles the keyup event to unmark an item for deletion.
*