-
Notifications
You must be signed in to change notification settings - Fork 3
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
- Loading branch information
Denis Forveille
committed
Aug 22, 2019
1 parent
155b3b7
commit a881c8e
Showing
20 changed files
with
304 additions
and
687 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
export default function dynamicMask(maskit: any, masks: any, tokens: any): (value: any, mask: any, masked?: boolean) => any; | ||
export default function dynamicMask(maskit: any, masks: any, tokens: any): (value: any, mask: any, masked?: boolean) => any; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,20 +1,20 @@ | ||
"use strict"; | ||
exports.__esModule = true; | ||
function dynamicMask(maskit, masks, tokens) { | ||
masks = masks.slice().sort(function (a, b) { return a.length - b.length; }); | ||
return function (value, mask, masked) { | ||
if (masked === void 0) { masked = true; } | ||
var i = 0; | ||
while (i < masks.length) { | ||
var currentMask = masks[i]; | ||
i++; | ||
var nextMask = masks[i]; | ||
// tslint:disable-next-line: max-line-length | ||
if (!(nextMask && maskit(value, nextMask, true, tokens).length > currentMask.length)) { | ||
return maskit(value, currentMask, masked, tokens); | ||
} | ||
} | ||
return ''; // empty masks | ||
}; | ||
} | ||
exports["default"] = dynamicMask; | ||
"use strict"; | ||
exports.__esModule = true; | ||
function dynamicMask(maskit, masks, tokens) { | ||
masks = masks.slice().sort(function (a, b) { return a.length - b.length; }); | ||
return function (value, mask, masked) { | ||
if (masked === void 0) { masked = true; } | ||
var i = 0; | ||
while (i < masks.length) { | ||
var currentMask = masks[i]; | ||
i++; | ||
var nextMask = masks[i]; | ||
// tslint:disable-next-line: max-line-length | ||
if (!(nextMask && maskit(value, nextMask, true, tokens).length > currentMask.length)) { | ||
return maskit(value, currentMask, masked, tokens); | ||
} | ||
} | ||
return ''; // empty masks | ||
}; | ||
} | ||
exports["default"] = dynamicMask; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,3 +1,3 @@ | ||
export declare const mask: { | ||
bind(el: any, binding: any, vnode: any): void; | ||
}; | ||
export declare const mask: { | ||
bind(el: any, binding: any, vnode: any): void; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,84 +1,70 @@ | ||
"use strict"; | ||
exports.__esModule = true; | ||
var masker_1 = require("./masker"); | ||
var tokens_1 = require("./tokens"); | ||
var preDefined = new Map(); | ||
preDefined.set('credit-card', '#### - #### - #### - ####'); | ||
preDefined.set('date', '##/##/####'); | ||
preDefined.set('date-with-time', '##/##/#### ##:##'); | ||
preDefined.set('phone', '(###) ### - ####'); | ||
preDefined.set('social', '###-##-####'); | ||
preDefined.set('time', '##:##'); | ||
preDefined.set('time-with-seconds', '##:##:##'); | ||
preDefined.set('postalcode-ca', 'A#A #A#'); | ||
var defaultDelimiters = /[-!$%^&*()_+|~=`{}[\]:";'<>?,.\\ ]/; | ||
var re = new RegExp(defaultDelimiters, 'g'); | ||
var unmaskText = function (text) { | ||
return text ? String(text).replace(re, '') : text; | ||
}; | ||
function event(name) { | ||
var evt = document.createEvent('Event'); | ||
evt.initEvent(name, true, true); | ||
return evt; | ||
} | ||
exports.mask = { | ||
bind: function (el, binding, vnode) { | ||
// console.log ('bind'); | ||
var config = binding.value || {}; | ||
if (Array.isArray(config) || typeof config === 'string') { | ||
config = { | ||
masked: true, | ||
mask: config, | ||
unmaskedVar: null, | ||
tokens: tokens_1["default"] | ||
}; | ||
} | ||
var m = preDefined.get(config.mask); | ||
config.mask = m || config.mask || ''; | ||
if (el.tagName.toLocaleUpperCase() !== 'INPUT') { | ||
var els = el.getElementsByTagName('input'); | ||
if (els.length !== 1) { | ||
throw new Error('v-mask directive requires 1 input, found ' | ||
+ els.length); | ||
} | ||
else { | ||
el = els[0]; | ||
} | ||
} | ||
el.oninput = function (evt) { | ||
if (!evt.isTrusted) { | ||
return; | ||
} // avoid infinite loop | ||
// by default, keep cursor at same position as before the mask | ||
var position = el.selectionEnd; | ||
// save the character just inserted | ||
var digit = el.value[position - 1]; | ||
el.value = masker_1["default"](el.value, config.mask, config.masked, config.tokens); | ||
// if the digit was changed, increment position until find the digit again | ||
while (position < el.value.length && | ||
el.value.charAt(position - 1) !== digit) { | ||
position++; | ||
} | ||
if (el === document.activeElement) { | ||
el.setSelectionRange(position, position); | ||
setTimeout(function () { | ||
el.setSelectionRange(position, position); | ||
}, 0); | ||
} | ||
if (config.unmaskedVar) { | ||
var uv = unmaskText(el.value); | ||
vnode.context[config.unmaskedVar] = uv; | ||
} | ||
el.dispatchEvent(event('input')); | ||
}; | ||
var newDisplay = masker_1["default"](el.value, config.mask, config.masked, config.tokens); | ||
if (newDisplay !== el.value) { | ||
el.value = newDisplay; | ||
if (config.unmaskedVar) { | ||
var uv = unmaskText(el.value); | ||
vnode.context[config.unmaskedVar] = uv; | ||
} | ||
el.dispatchEvent(event('input')); | ||
} | ||
} | ||
}; | ||
"use strict"; | ||
exports.__esModule = true; | ||
var lodash_1 = require("lodash"); | ||
var masker_1 = require("./masker"); | ||
var predefined_1 = require("./predefined"); | ||
var utils_1 = require("./utils"); | ||
var tokens_1 = require("./tokens"); | ||
function event(name) { | ||
var evt = document.createEvent('Event'); | ||
evt.initEvent(name, true, true); | ||
return evt; | ||
} | ||
exports.mask = { | ||
bind: function (el, binding, vnode) { | ||
// console.log ('bind'); | ||
var config = binding.value || {}; | ||
if (Array.isArray(config) || typeof config === 'string') { | ||
config = { | ||
masked: true, | ||
mask: config, | ||
unmaskedVar: null, | ||
tokens: tokens_1["default"] | ||
}; | ||
} | ||
config.mask = predefined_1["default"](config.mask) || config.mask || ''; | ||
if (el.tagName.toLocaleUpperCase() !== 'INPUT') { | ||
var els = el.getElementsByTagName('input'); | ||
if (els.length !== 1) { | ||
throw new Error('v-mask directive requires 1 input, found ' | ||
+ els.length); | ||
} | ||
else { | ||
el = els[0]; | ||
} | ||
} | ||
el.oninput = function (evt) { | ||
if (!evt.isTrusted) { | ||
return; | ||
} // avoid infinite loop | ||
// by default, keep cursor at same position as before the mask | ||
var position = el.selectionEnd; | ||
// save the character just inserted | ||
var digit = el.value[position - 1]; | ||
el.value = masker_1["default"](el.value, config.mask, config.masked, config.tokens); | ||
// if the digit was changed, increment position until find the digit again | ||
while (position < el.value.length && | ||
el.value.charAt(position - 1) !== digit) { | ||
position++; | ||
} | ||
if (el === document.activeElement) { | ||
el.setSelectionRange(position, position); | ||
setTimeout(function () { | ||
el.setSelectionRange(position, position); | ||
}, 0); | ||
} | ||
if (config.unmaskedVar) { | ||
lodash_1.set(vnode.context, config.unmaskedVar, utils_1.unmaskText(el.value)); | ||
} | ||
el.dispatchEvent(event('input')); | ||
}; | ||
var newDisplay = masker_1["default"](el.value, config.mask, config.masked, config.tokens); | ||
if (newDisplay !== el.value) { | ||
el.value = newDisplay; | ||
if (config.unmaskedVar) { | ||
lodash_1.set(vnode.context, config.unmaskedVar, utils_1.unmaskText(el.value)); | ||
} | ||
el.dispatchEvent(event('input')); | ||
} | ||
} | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,22 +1,22 @@ | ||
export default function (value: string, mask: string, masked?: boolean, tokens?: { | ||
'#': { | ||
pattern: RegExp; | ||
}; | ||
'X': { | ||
pattern: RegExp; | ||
}; | ||
'S': { | ||
pattern: RegExp; | ||
}; | ||
'A': { | ||
pattern: RegExp; | ||
transform: (v: string) => string; | ||
}; | ||
'a': { | ||
pattern: RegExp; | ||
transform: (v: string) => string; | ||
}; | ||
'!': { | ||
escape: boolean; | ||
}; | ||
}): string | ((value: any, mask: any, masked?: boolean) => any); | ||
export default function (value: string, mask: string, masked?: boolean, tokens?: { | ||
'#': { | ||
pattern: RegExp; | ||
}; | ||
'X': { | ||
pattern: RegExp; | ||
}; | ||
'S': { | ||
pattern: RegExp; | ||
}; | ||
'A': { | ||
pattern: RegExp; | ||
transform: (v: string) => string; | ||
}; | ||
'a': { | ||
pattern: RegExp; | ||
transform: (v: string) => string; | ||
}; | ||
'!': { | ||
escape: boolean; | ||
}; | ||
}): string | ((value: any, mask: any, masked?: boolean) => any); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,18 +1,18 @@ | ||
"use strict"; | ||
exports.__esModule = true; | ||
var maskit_1 = require("./maskit"); | ||
var dynamic_mask_1 = require("./dynamic-mask"); | ||
var tokens_1 = require("./tokens"); | ||
// Facade to maskit/dynamicMask when mask is String or Array | ||
function default_1(value, mask, masked, tokens) { | ||
if (masked === void 0) { masked = true; } | ||
if (tokens === void 0) { tokens = tokens_1["default"]; } | ||
// disable on empty mask | ||
if (!mask) { | ||
return value; | ||
} | ||
return Array.isArray(mask) | ||
? dynamic_mask_1["default"](maskit_1["default"], mask, tokens) | ||
: maskit_1["default"](value, mask, masked, tokens); | ||
} | ||
exports["default"] = default_1; | ||
"use strict"; | ||
exports.__esModule = true; | ||
var maskit_1 = require("./maskit"); | ||
var dynamic_mask_1 = require("./dynamic-mask"); | ||
var tokens_1 = require("./tokens"); | ||
// Facade to maskit/dynamicMask when mask is String or Array | ||
function default_1(value, mask, masked, tokens) { | ||
if (masked === void 0) { masked = true; } | ||
if (tokens === void 0) { tokens = tokens_1["default"]; } | ||
// disable on empty mask | ||
if (!mask) { | ||
return value; | ||
} | ||
return Array.isArray(mask) | ||
? dynamic_mask_1["default"](maskit_1["default"], mask, tokens) | ||
: maskit_1["default"](value, mask, masked, tokens); | ||
} | ||
exports["default"] = default_1; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1 +1 @@ | ||
export default function maskit(value: string, mask: string, masked: boolean | undefined, tokens: any): string; | ||
export default function maskit(value: string, mask: string, masked: boolean | undefined, tokens: any): string; |
Oops, something went wrong.