mirror of
https://github.com/tenrok/maska.git
synced 2026-06-14 18:42:27 +03:00
Callback onMaska now can accept array
To make it possible use callback with binded value
This commit is contained in:
+8
-1
@@ -17,11 +17,18 @@ export const vMaska: MaskaDirective = (el, binding) => {
|
||||
|
||||
if (binding.value != null) {
|
||||
const binded = binding.value
|
||||
opts.onMaska = (detail: MaskaDetail) => {
|
||||
const onMaska = (detail: MaskaDetail): void => {
|
||||
binded.masked = detail.masked
|
||||
binded.unmasked = detail.unmasked
|
||||
binded.completed = detail.completed
|
||||
}
|
||||
|
||||
opts.onMaska =
|
||||
opts.onMaska == null
|
||||
? onMaska
|
||||
: Array.isArray(opts.onMaska)
|
||||
? [...opts.onMaska, onMaska]
|
||||
: [opts.onMaska, onMaska]
|
||||
}
|
||||
|
||||
masks.set(input, new MaskInput(input, opts))
|
||||
|
||||
+8
-2
@@ -1,8 +1,10 @@
|
||||
import { Mask, MaskOptions } from './mask'
|
||||
import { parseMask, parseOpts, parseTokens } from './parser'
|
||||
|
||||
type OnMaskaType = (detail: MaskaDetail) => void
|
||||
|
||||
export interface MaskInputOptions extends MaskOptions {
|
||||
onMaska?: (detail: MaskaDetail) => void
|
||||
onMaska?: OnMaskaType | OnMaskaType[]
|
||||
preProcess?: (value: string) => string
|
||||
postProcess?: (value: string) => string
|
||||
}
|
||||
@@ -142,7 +144,11 @@ export class MaskInput {
|
||||
}
|
||||
|
||||
if (this.options.onMaska != null) {
|
||||
this.options.onMaska(detail)
|
||||
if (Array.isArray(this.options.onMaska)) {
|
||||
this.options.onMaska.forEach((f) => f(detail))
|
||||
} else {
|
||||
this.options.onMaska(detail)
|
||||
}
|
||||
}
|
||||
input.dispatchEvent(new CustomEvent<MaskaDetail>('maska', { detail }))
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user