@justa/mask-directive
Version:
 
116 lines • 7.92 kB
JavaScript
/**
* @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==