UNPKG

@maskito/vue

Version:

The Vue-specific Maskito's library

34 lines (30 loc) 962 B
'use strict'; var core = require('@maskito/core'); const teardown = new Map(); const predicates = new Map(); async function update(element, options) { const predicate = options?.elementPredicate ?? core.MASKITO_DEFAULT_ELEMENT_PREDICATE; predicates.set(element, predicate); const predicateResult = await predicate(element); if (predicates.get(element) !== predicate) { return; } teardown.get(element)?.destroy(); if (options) { teardown.set(element, new core.Maskito(predicateResult, options)); } } const maskito = { unmounted: (element) => { teardown.get(element)?.destroy(); teardown.delete(element); predicates.delete(element); }, mounted: async (element, { value }) => update(element, value), updated: async (element, { value, oldValue }) => { if (value !== oldValue) { await update(element, value); } }, }; exports.maskito = maskito;