UNPKG

@justa/mask-directive

Version:

![](https://img.shields.io/bundlephobia/minzip/@justa/mask-directive.svg?style=flat-square) ![](https://img.shields.io/bundlephobia/min/@justa/mask-directive.svg?style=flat-square)

116 lines 7.92 kB
/** * @fileoverview added by tsickle * Generated from: lib/utils/index.ts * @suppress {checkTypes,constantProperty,extraRequire,missingOverride,missingReturn,unusedPrivateMembers,uselessCode} checked by tsc */ /** @type {?} */ const CPF_REGEX = new RegExp(/(?!(\d)\1{2}.\1{3}.\1{3}-\1{2})\d{3}\.\d{3}\.\d{3}\-\d{2}/gm); /** @type {?} */ const CNPJ_REGEX = new RegExp(/^\d{2}.\d{3}.\d{3}\/\d{4}-\d{2}$/g); // CPF Utils (length dot indexes and hyphen index) /** @type {?} */ const CPF_LENGTH = 11; /** @type {?} */ const CPF_DOT_INDEXES = [2, 5]; /** @type {?} */ const CPF_HYPHEN_INDEX = [8]; // CNPJ Utils /** @type {?} */ const CNPJ_LENGTH = 14; /** @type {?} */ const CNPJ_DOT_INDEXES = [1, 4]; /** @type {?} */ const CNPJ_SLASH_INDEXES = [7]; /** @type {?} */ const CNPJ_HYPHEN_INDEX = [11]; /** * \@description Returns a Brazilian CPF formated * @type {?} */ export const formatCpf = (/** * @param {?} cpf * @return {?} */ (cpf) => { /** @type {?} */ const cpfFormated = removeAllSpecialChar(cpf); return cpfFormated .slice(0, CPF_LENGTH) .split('') .reduce((/** * @param {?} acc * @param {?} cpf * @param {?} index * @return {?} */ (acc, cpf, index) => { /** @type {?} */ const result = `${acc}${cpf}`; if (!isLastChar(index, cpfFormated)) { if (CPF_DOT_INDEXES.indexOf(index) >= 0) return `${result}.`; if (CPF_HYPHEN_INDEX.indexOf(index) >= 0) return `${result}-`; } return result; }), ''); }) /** * @description Returns a Brazilian CNPJ formated */ ; /** * \@description Returns a Brazilian CNPJ formated * @type {?} */ export const formatCnpj = (/** * @param {?} cnpj * @return {?} */ (cnpj) => { /** @type {?} */ const digits = removeAllSpecialChar(cnpj); return digits .slice(0, CNPJ_LENGTH) .split('') .reduce((/** * @param {?} acc * @param {?} digit * @param {?} index * @return {?} */ (acc, digit, index) => { /** @type {?} */ const result = `${acc}${digit}`; if (!isLastChar(index, digits)) { if (CNPJ_DOT_INDEXES.includes(index)) return `${result}.`; if (CNPJ_SLASH_INDEXES.includes(index)) return `${result}/`; if (CNPJ_HYPHEN_INDEX.includes(index)) return `${result}-`; } return result; }), ''); }); /** @type {?} */ const removeAllSpecialChar = (/** * @param {?} input * @return {?} */ (input) => { return String(input).replace(/[^\d]/g, ''); }); const ɵ0 = removeAllSpecialChar; /** @type {?} */ const isLastChar = (/** * @param {?} index * @param {?} input * @return {?} */ (index, input) => { return index === input.length - 1; }); const ɵ1 = isLastChar; export { ɵ0, ɵ1 }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5kZXguanMiLCJzb3VyY2VSb290Ijoibmc6Ly9AanVzdGEvbWFzay1kaXJlY3RpdmUvIiwic291cmNlcyI6WyJsaWIvdXRpbHMvaW5kZXgudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6Ijs7Ozs7O01BQU0sU0FBUyxHQUFHLElBQUksTUFBTSxDQUFDLDZEQUE2RCxDQUFDOztNQUNyRixVQUFVLEdBQUcsSUFBSSxNQUFNLENBQUMsbUNBQW1DLENBQUM7OztNQUc1RCxVQUFVLEdBQUcsRUFBRTs7TUFDZixlQUFlLEdBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDOztNQUN4QixnQkFBZ0IsR0FBRyxDQUFDLENBQUMsQ0FBQzs7O01BR3RCLFdBQVcsR0FBRyxFQUFFOztNQUNoQixnQkFBZ0IsR0FBRyxDQUFDLENBQUMsRUFBRSxDQUFDLENBQUM7O01BQ3pCLGtCQUFrQixHQUFHLENBQUMsQ0FBQyxDQUFDOztNQUN4QixpQkFBaUIsR0FBRyxDQUFDLEVBQUUsQ0FBQzs7Ozs7QUFLOUIsTUFBTSxPQUFPLFNBQVM7Ozs7QUFBRyxDQUFDLEdBQVcsRUFBVSxFQUFFOztVQUN6QyxXQUFXLEdBQUcsb0JBQW9CLENBQUMsR0FBRyxDQUFDO0lBQzdDLE9BQU8sV0FBVztTQUNqQixLQUFLLENBQUMsQ0FBQyxFQUFFLFVBQVUsQ0FBQztTQUNwQixLQUFLLENBQUMsRUFBRSxDQUFDO1NBQ1QsTUFBTTs7Ozs7O0lBQUMsQ0FBQyxHQUFHLEVBQUUsR0FBRyxFQUFFLEtBQUssRUFBRSxFQUFFOztjQUNwQixNQUFNLEdBQUcsR0FBRyxHQUFHLEdBQUcsR0FBRyxFQUFFO1FBQzdCLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFLFdBQVcsQ0FBQyxFQUFFO1lBQ25DLElBQUksZUFBZSxDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUFFLE9BQU8sR0FBRyxNQUFNLEdBQUcsQ0FBQztZQUM3RCxJQUFJLGdCQUFnQixDQUFDLE9BQU8sQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDO2dCQUFFLE9BQU8sR0FBRyxNQUFNLEdBQUcsQ0FBQztTQUMvRDtRQUNELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsR0FBRSxFQUFFLENBQUMsQ0FBQTtBQUNSLENBQUMsQ0FBQTtBQUVEOztHQUVHOzs7Ozs7QUFDSCxNQUFNLE9BQU8sVUFBVTs7OztBQUFHLENBQUMsSUFBWSxFQUFVLEVBQUU7O1VBQzNDLE1BQU0sR0FBRyxvQkFBb0IsQ0FBQyxJQUFJLENBQUM7SUFFekMsT0FBTyxNQUFNO1NBQ1YsS0FBSyxDQUFDLENBQUMsRUFBRSxXQUFXLENBQUM7U0FDckIsS0FBSyxDQUFDLEVBQUUsQ0FBQztTQUNULE1BQU07Ozs7OztJQUFDLENBQUMsR0FBRyxFQUFFLEtBQUssRUFBRSxLQUFLLEVBQUUsRUFBRTs7Y0FDdEIsTUFBTSxHQUFHLEdBQUcsR0FBRyxHQUFHLEtBQUssRUFBRTtRQUUvQixJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssRUFBRSxNQUFNLENBQUMsRUFBRTtZQUM5QixJQUFJLGdCQUFnQixDQUFDLFFBQVEsQ0FBQyxLQUFLLENBQUM7Z0JBQUUsT0FBTyxHQUFHLE1BQU0sR0FBRyxDQUFDO1lBQzFELElBQUksa0JBQWtCLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQztnQkFBRSxPQUFPLEdBQUcsTUFBTSxHQUFHLENBQUM7WUFDNUQsSUFBSSxpQkFBaUIsQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDO2dCQUFFLE9BQU8sR0FBRyxNQUFNLEdBQUcsQ0FBQztTQUM1RDtRQUVELE9BQU8sTUFBTSxDQUFDO0lBQ2hCLENBQUMsR0FBRSxFQUFFLENBQUMsQ0FBQztBQUNYLENBQUMsQ0FBQTs7TUFFSyxvQkFBb0I7Ozs7QUFBRyxDQUFDLEtBQXNCLEVBQVUsRUFBRTtJQUM5RCxPQUFPLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxPQUFPLENBQUMsUUFBUSxFQUFFLEVBQUUsQ0FBQyxDQUFDO0FBQzdDLENBQUMsQ0FBQTs7O01BRUssVUFBVTs7Ozs7QUFBRyxDQUFDLEtBQWEsRUFBRSxLQUFhLEVBQVcsRUFBRTtJQUMzRCxPQUFPLEtBQUssS0FBSyxLQUFLLENBQUMsTUFBTSxHQUFHLENBQUMsQ0FBQztBQUNwQyxDQUFDLENBQUEiLCJzb3VyY2VzQ29udGVudCI6WyJjb25zdCBDUEZfUkVHRVggPSBuZXcgUmVnRXhwKC8oPyEoXFxkKVxcMXsyfS5cXDF7M30uXFwxezN9LVxcMXsyfSlcXGR7M31cXC5cXGR7M31cXC5cXGR7M31cXC1cXGR7Mn0vZ20pO1xuY29uc3QgQ05QSl9SRUdFWCA9IG5ldyBSZWdFeHAoL15cXGR7Mn0uXFxkezN9LlxcZHszfVxcL1xcZHs0fS1cXGR7Mn0kL2cpO1xuXG4vLyBDUEYgVXRpbHMgKGxlbmd0aCBkb3QgaW5kZXhlcyBhbmQgaHlwaGVuIGluZGV4KVxuY29uc3QgQ1BGX0xFTkdUSCA9IDExO1xuY29uc3QgQ1BGX0RPVF9JTkRFWEVTID0gWzIsIDVdO1xuY29uc3QgQ1BGX0hZUEhFTl9JTkRFWCA9IFs4XTtcblxuLy8gQ05QSiBVdGlsc1xuY29uc3QgQ05QSl9MRU5HVEggPSAxNDtcbmNvbnN0IENOUEpfRE9UX0lOREVYRVMgPSBbMSwgNF07XG5jb25zdCBDTlBKX1NMQVNIX0lOREVYRVMgPSBbN107XG5jb25zdCBDTlBKX0hZUEhFTl9JTkRFWCA9IFsxMV07XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJldHVybnMgYSBCcmF6aWxpYW4gQ1BGIGZvcm1hdGVkXG4gKi9cbmV4cG9ydCBjb25zdCBmb3JtYXRDcGYgPSAoY3BmOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBjcGZGb3JtYXRlZCA9IHJlbW92ZUFsbFNwZWNpYWxDaGFyKGNwZik7XG4gIHJldHVybiBjcGZGb3JtYXRlZFxuICAuc2xpY2UoMCwgQ1BGX0xFTkdUSClcbiAgLnNwbGl0KCcnKVxuICAucmVkdWNlKChhY2MsIGNwZiwgaW5kZXgpID0+IHtcbiAgICBjb25zdCByZXN1bHQgPSBgJHthY2N9JHtjcGZ9YDtcbiAgICBpZiAoIWlzTGFzdENoYXIoaW5kZXgsIGNwZkZvcm1hdGVkKSkge1xuICAgICAgaWYgKENQRl9ET1RfSU5ERVhFUy5pbmRleE9mKGluZGV4KSA+PSAwKSByZXR1cm4gYCR7cmVzdWx0fS5gO1xuICAgICAgaWYgKENQRl9IWVBIRU5fSU5ERVguaW5kZXhPZihpbmRleCkgPj0gMCkgcmV0dXJuIGAke3Jlc3VsdH0tYDtcbiAgICB9XG4gICAgcmV0dXJuIHJlc3VsdDtcbiAgfSwgJycpXG59XG5cbi8qKlxuICogQGRlc2NyaXB0aW9uIFJldHVybnMgYSBCcmF6aWxpYW4gQ05QSiBmb3JtYXRlZFxuICovXG5leHBvcnQgY29uc3QgZm9ybWF0Q25waiA9IChjbnBqOiBzdHJpbmcpOiBzdHJpbmcgPT4ge1xuICBjb25zdCBkaWdpdHMgPSByZW1vdmVBbGxTcGVjaWFsQ2hhcihjbnBqKTtcblxuICByZXR1cm4gZGlnaXRzXG4gICAgLnNsaWNlKDAsIENOUEpfTEVOR1RIKVxuICAgIC5zcGxpdCgnJylcbiAgICAucmVkdWNlKChhY2MsIGRpZ2l0LCBpbmRleCkgPT4ge1xuICAgICAgY29uc3QgcmVzdWx0ID0gYCR7YWNjfSR7ZGlnaXR9YDtcblxuICAgICAgaWYgKCFpc0xhc3RDaGFyKGluZGV4LCBkaWdpdHMpKSB7XG4gICAgICAgIGlmIChDTlBKX0RPVF9JTkRFWEVTLmluY2x1ZGVzKGluZGV4KSkgcmV0dXJuIGAke3Jlc3VsdH0uYDtcbiAgICAgICAgaWYgKENOUEpfU0xBU0hfSU5ERVhFUy5pbmNsdWRlcyhpbmRleCkpIHJldHVybiBgJHtyZXN1bHR9L2A7XG4gICAgICAgIGlmIChDTlBKX0hZUEhFTl9JTkRFWC5pbmNsdWRlcyhpbmRleCkpIHJldHVybiBgJHtyZXN1bHR9LWA7XG4gICAgICB9XG5cbiAgICAgIHJldHVybiByZXN1bHQ7XG4gICAgfSwgJycpO1xufVxuXG5jb25zdCByZW1vdmVBbGxTcGVjaWFsQ2hhciA9IChpbnB1dDogc3RyaW5nIHwgbnVtYmVyKTogc3RyaW5nID0+IHtcbiAgcmV0dXJuIFN0cmluZyhpbnB1dCkucmVwbGFjZSgvW15cXGRdL2csICcnKTtcbn1cblxuY29uc3QgaXNMYXN0Q2hhciA9IChpbmRleDogbnVtYmVyLCBpbnB1dDogc3RyaW5nKTogYm9vbGVhbiA9PiB7XG4gIHJldHVybiBpbmRleCA9PT0gaW5wdXQubGVuZ3RoIC0gMTtcbn1cbiJdfQ==