File: /var/www/vhost/disk-apps/magento.bikenow.co/lib/web/mage/trim-input.js
/**
* Copyright © Magento, Inc. All rights reserved.
* See COPYING.txt for license details.
*/
define([
'jquery'
], function ($) {
'use strict';
$.widget('mage.trimInput', {
options: {
cache: {}
},
/**
* Widget initialization
* @private
*/
_create: function () {
this.options.cache.input = $(this.element);
this._bind();
},
/**
* Event binding, will monitor change, keyup and paste events.
* @private
*/
_bind: function () {
if (this.options.cache.input.length) {
this._on(this.options.cache.input, {
'change': this._trimInput,
'keyup': this._trimInput,
'paste': this._trimInput
});
}
},
/**
* Trim value
* @private
*/
_trimInput: function () {
// Safari caret position workaround: storing carter position
var caretStart, caretEnd, input;
caretStart = this.options.cache.input.get(0).selectionStart;
caretEnd = this.options.cache.input.get(0).selectionEnd;
input = this._getInputValue().trim();
this.options.cache.input.val(input);
// Safari caret position workaround: setting caret position to previously stored values
if (caretStart !== null && caretEnd !== null) {
this.options.cache.input.get(0).setSelectionRange(caretStart, caretEnd);
}
},
/**
* Get input value
* @returns {*}
* @private
*/
_getInputValue: function () {
return this.options.cache.input.val();
}
});
return $.mage.trimInput;
});