{"version":3,"file":"seniorsistemas-angular-components-mask.mjs","sources":["../../projects/angular-components/mask/src/lib/mask/mask-formatter.pipe.ts","../../projects/angular-components/mask/src/lib/mask/mask-formatter.module.ts","../../projects/angular-components/mask/src/seniorsistemas-angular-components-mask.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\r\n\r\n/**\r\n * @description Pipe que aplica uma máscara de formatação a uma string,\r\n * suportando os tokens `9` (dígito), `a` (letra) e `*` (alfanumérico),\r\n * além de suporte a posições opcionais com `?`.\r\n *\r\n * @example\r\n * ```html\r\n * {{ '12345678901' | sMaskFormatter:'999.999.999-99' }}\r\n * ```\r\n *\r\n * @category Data\r\n */\r\n@Pipe({\r\n    name: 'sMaskFormatter',\r\n    standalone: true,\r\n})\r\nexport class MaskFormatterPipe implements PipeTransform {\r\n    private _defs: any = {\r\n        '9': '[0-9]',\r\n        a: '[A-Za-z]',\r\n        '*': '[A-Za-z]|[0-9]',\r\n    };\r\n\r\n    public transform(value: string, maskFormat: string): any {\r\n        const buffer = [];\r\n        let opcionalPos = -1;\r\n        let pos = 0;\r\n        const maskTokens = maskFormat.split('');\r\n        const symbolsPosAfterOpcional = [];\r\n        const hasOpcional = maskFormat.includes('?');\r\n\r\n        for (let i = 0; i < maskTokens.length; i++) {\r\n            const token = maskTokens[i];\r\n\r\n            if (token !== '?') {\r\n                if (this._defs[token]) {\r\n                    const tokenRegex = this._defs[token];\r\n                    const charAtPos = value.charAt(pos);\r\n                    const isValidChar = new RegExp(tokenRegex).test(charAtPos);\r\n                    if (isValidChar) {\r\n                        buffer.push(charAtPos);\r\n                        pos++;\r\n                    } else {\r\n                        throw new Error(\"Value doesn't match mask format\");\r\n                    }\r\n                } else {\r\n                    buffer.push(token);\r\n                    if (hasOpcional && opcionalPos !== -1 && i > opcionalPos) {\r\n                        symbolsPosAfterOpcional.push(i);\r\n                    }\r\n                }\r\n            } else {\r\n                opcionalPos = i;\r\n            }\r\n        }\r\n\r\n        if (buffer[buffer.length - 1] !== value.charAt(value.length - 1) && symbolsPosAfterOpcional.length) {\r\n            let formattedValue = buffer.join('');\r\n\r\n            for (let i = 0; i < symbolsPosAfterOpcional.length; i++) {\r\n                const symbolPos = symbolsPosAfterOpcional[i];\r\n\r\n                const beforeSymbol = formattedValue.substring(0, symbolPos - 1);\r\n                const symbol = formattedValue.substring(symbolPos - 1, symbolPos);\r\n                const firstAfterSymbol = formattedValue.substring(symbolPos, symbolPos + 1);\r\n                const endOfString = formattedValue.substring(symbolPos + 1);\r\n\r\n                formattedValue = `${beforeSymbol}${firstAfterSymbol}${symbol}${endOfString}`;\r\n            }\r\n            return `${formattedValue}${value.substr(value.length - symbolsPosAfterOpcional.length)}`;\r\n        }\r\n\r\n        return buffer.join('');\r\n    }\r\n}\r\n","import { NgModule } from '@angular/core';\r\n\r\nimport { MaskFormatterPipe } from './mask-formatter.pipe';\r\n\r\n@NgModule({\r\n    imports: [MaskFormatterPipe],\r\n    exports: [MaskFormatterPipe],\r\n})\r\nexport class MaskFormatterModule {}\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}