{"version":3,"file":"taiga-ui-cdk-pipes-obfuscate.mjs","sources":["../../../projects/cdk/pipes/obfuscate/obfuscate.options.ts","../../../projects/cdk/pipes/obfuscate/obfuscate.pipe.ts","../../../projects/cdk/pipes/obfuscate/taiga-ui-cdk-pipes-obfuscate.ts"],"sourcesContent":["import {tuiCreateOptions} from '@taiga-ui/cdk/utils/di';\nimport {tuiObfuscate} from '@taiga-ui/cdk/utils/miscellaneous';\n\n/**\n * Defines the options for obfuscation.\n */\nexport interface TuiObfuscateOptions {\n    /**\n     * Default function used to obfuscate a string\n     * if no recipe was found.\n     */\n    default(value: string, symbol?: string): string;\n\n    /**\n     * Collection of named recipes for different obfuscation scenarios.\n     */\n    readonly recipes: Record<string, (value: string) => string>;\n}\n\nexport const TUI_OBFUSCATE_DEFAULT_OPTIONS: TuiObfuscateOptions = {\n    default: (value, symbol = '*') => tuiObfuscate(value, symbol),\n    recipes: {},\n};\n\n/**\n * Injection token for obfuscation options.\n */\nexport const [TUI_OBFUSCATE_OPTIONS, tuiObfuscateOptionsProvider] = tuiCreateOptions(\n    TUI_OBFUSCATE_DEFAULT_OPTIONS,\n);\n","import {inject, Pipe, type PipeTransform} from '@angular/core';\n\nimport {TUI_OBFUSCATE_OPTIONS} from './obfuscate.options';\n\n@Pipe({name: 'tuiObfuscate'})\nexport class TuiObfuscatePipe implements PipeTransform {\n    private readonly option = inject(TUI_OBFUSCATE_OPTIONS);\n\n    /**\n     * Transforms the input value by obfuscating it according to the specified recipe or symbol.\n     *\n     * @param value The value to be obfuscated should be a string.\n     * @param recipe The name of the recipe to use for obfuscation or a single character symbol for custom obfuscation.\n     * @returns The obfuscated string.\n     * @throws Will throw an error if the specified recipe is not found.\n     */\n    public transform(value: string, recipe = ''): string {\n        if (!value) {\n            return value;\n        }\n\n        if (!recipe) {\n            return this.option.default(value);\n        }\n\n        const obfuscate = this.option.recipes[recipe];\n\n        if (obfuscate) {\n            return obfuscate(value);\n        }\n\n        if (recipe.length === 1) {\n            return this.option.default(value, recipe[0]);\n        }\n\n        const availableRecipes = Object.keys(this.option.recipes).sort();\n\n        throw new Error(\n            `Obfuscate recipe \"${recipe}\" not found. Available recipes: [${availableRecipes}]`,\n        );\n    }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":";;;;;AAmBO,MAAM,6BAA6B,GAAwB;AAC9D,IAAA,OAAO,EAAE,CAAC,KAAK,EAAE,MAAM,GAAG,GAAG,KAAK,YAAY,CAAC,KAAK,EAAE,MAAM,CAAC;AAC7D,IAAA,OAAO,EAAE,EAAE;;AAGf;;AAEG;AACI,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,CAAC,GAAG,gBAAgB,CAChF,6BAA6B;;MCvBpB,gBAAgB,CAAA;AAD7B,IAAA,WAAA,GAAA;AAEqB,QAAA,IAAA,CAAA,MAAM,GAAG,MAAM,CAAC,qBAAqB,CAAC;AAmC1D,IAAA;AAjCG;;;;;;;AAOG;AACI,IAAA,SAAS,CAAC,KAAa,EAAE,MAAM,GAAG,EAAE,EAAA;QACvC,IAAI,CAAC,KAAK,EAAE;AACR,YAAA,OAAO,KAAK;QAChB;QAEA,IAAI,CAAC,MAAM,EAAE;YACT,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC;QACrC;QAEA,MAAM,SAAS,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,MAAM,CAAC;QAE7C,IAAI,SAAS,EAAE;AACX,YAAA,OAAO,SAAS,CAAC,KAAK,CAAC;QAC3B;AAEA,QAAA,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE;AACrB,YAAA,OAAO,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC,CAAC,CAAC;QAChD;AAEA,QAAA,MAAM,gBAAgB,GAAG,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE;QAEhE,MAAM,IAAI,KAAK,CACX,CAAA,kBAAA,EAAqB,MAAM,CAAA,iCAAA,EAAoC,gBAAgB,CAAA,CAAA,CAAG,CACrF;IACL;+GAnCS,gBAAgB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,IAAA,EAAA,CAAA,CAAA;6GAAhB,gBAAgB,EAAA,YAAA,EAAA,IAAA,EAAA,IAAA,EAAA,cAAA,EAAA,CAAA,CAAA;;4FAAhB,gBAAgB,EAAA,UAAA,EAAA,CAAA;kBAD5B,IAAI;mBAAC,EAAC,IAAI,EAAE,cAAc,EAAC;;;ACJ5B;;AAEG;;;;"}