vue-mask-directive
Version:
Simple input mask lib for vue.js
62 lines (45 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = function (Vue) {
Vue.directive('mask', {
bind: function bind(el, _ref) {
var value = _ref.value;
updateMask(el, value);
updateValue(el);
},
componentUpdated: function componentUpdated(el, _ref2) {
var value = _ref2.value,
oldValue = _ref2.oldValue;
var isMaskChanged = value !== oldValue;
if (isMaskChanged) {
updateMask(el, value);
}
updateValue(el, isMaskChanged);
}
});
};
var _format = require('./format.js');
var _format2 = _interopRequireDefault(_format);
var _utils = require('./utils');
function _interopRequireDefault(obj) {
return obj && obj.__esModule ? obj : {default: obj};
}
function updateValue(el) {
var force = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : false;
var value = el.value,
_el$dataset = el.dataset,
// previousValue = _el$dataset.previousValue,
mask = _el$dataset.mask;
// if (previousValue.length && force || value && value !== previousValue && value.length > previousValue.length) {
if (force || value && value.length) {
el.value = (0, _format2.default)(value, mask);
(0, _utils.trigger)(el, 'input');
}
//el.dataset.previousValue = value;
}
function updateMask(el, mask) {
el.dataset.mask = mask;
}
;