2
0
mirror of https://github.com/tenrok/maska.git synced 2026-05-15 11:59:38 +03:00
Files
maska/src/directive.js
T
Alexander Shabunevich 558b1a60d2 Add dynamic mask
2019-12-07 21:44:32 +03:00

36 lines
788 B
JavaScript

import Maska from './maska'
import { isString } from './utils'
function getOpts (mask) {
const opts = {}
if (mask.mask) {
opts.mask = Array.isArray(mask.mask) ? JSON.stringify(mask.mask) : mask.mask
opts.tokens = mask.tokens ? { ...mask.tokens } : {}
} else {
opts.mask = Array.isArray(mask) ? JSON.stringify(mask) : mask
}
return opts
}
function needUpdate (mask) {
if (isString(mask.value) && isString(mask.oldValue) && mask.value === mask.oldValue) {
return false
}
if (mask.value && mask.oldValue && mask.value.mask === mask.oldValue.mask) {
return false
}
return true
}
export default function directive (el, mask) {
if (!mask.value) return
if (mask.value && needUpdate(mask)) {
return new Maska(el, getOpts(mask.value))
}
}