vue-dni
Version:
Vue utility functions for validating and formatting DNIs
60 lines (48 loc) • 1.77 kB
JavaScript
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.rutInputDirective = undefined;
exports.rutValidator = rutValidator;
exports.rutFilter = rutFilter;
var _rutHelpers = require('rut-helpers');
var rutHelpers = _interopRequireWildcard(_rutHelpers);
function _interopRequireWildcard(obj) { if (obj && obj.__esModule) { return obj; } else { var newObj = {}; if (obj != null) { for (var key in obj) { if (Object.prototype.hasOwnProperty.call(obj, key)) newObj[key] = obj[key]; } } newObj.default = obj; return newObj; } }
function createEvent(eventName, bubbles) {
var event = void 0;
if ('CustomEvent' in window && typeof window.CustomEvent === 'function') {
event = new CustomEvent(eventName, {
bubbles: bubbles
});
} else {
event = document.createEvent('Events');
event.initEvent(eventName, bubbles);
}
return event;
}
function rutValidator(value) {
return rutHelpers.rutValidate(value);
}
function rutFilter(value) {
return rutHelpers.rutFormat(value);
}
var rutInputDirective = exports.rutInputDirective = {
bind: function bind(el, binding) {
var inputEvent = binding.arg === 'live' ? ['blur', 'keyup'] : ['blur'];
function formatInput(e) {
var oldValue = e.target.value;
var newValue = rutHelpers.rutFormat(e.target.value) || '';
if (oldValue !== newValue) {
var forceUpdate = createEvent('input', true);
e.target.value = rutHelpers.rutFormat(e.target.value) || '';
el.dispatchEvent(forceUpdate);
}
}
inputEvent.forEach(function (event) {
el.addEventListener(event, formatInput);
});
el.addEventListener('focus', function (e) {
e.target.value = rutHelpers.rutClean(e.target.value) || '';
});
}
};
;