UNPKG

@v4fire/client

Version:

V4Fire client core library

54 lines (42 loc) 1.13 kB
/*! * V4Fire Client Core * https://github.com/V4Fire/Client * * Released under the MIT license * https://github.com/V4Fire/Client/blob/master/LICENSE */ import type iInputText from 'super/i-input-text/i-input-text'; /** * Initializes the component mask * @param component */ export function init<C extends iInputText>(component: C): CanPromise<void> { const { unsafe, unsafe: {async: $a, $refs: {input}} } = component; const group = { group: 'mask' }; $a.off(group); if (unsafe.mask == null) { unsafe.compiledMask = undefined; return; } const h = (key) => (<Function>unsafe[key]).bind(unsafe); $a.on(input, 'mousedown keydown', h('onMaskNavigate'), group); $a.on(input, 'mousedown keydown', h('onMaskValueReady'), group); $a.on(input, 'mouseup keyup', h('onMaskValueReady'), { options: { capture: true }, ...group }); $a.on(input, 'keydown', h('onMaskDelete'), group); $a.on(input, 'keydown', h('onMaskKeyPress'), group); $a.on(input, 'input', h('onMaskInput'), group); $a.on(input, 'blur', h('onMaskBlur'), group); unsafe.compileMask(); return unsafe.syncMaskWithText(); }