UNPKG

@taiga-ui/cdk

Version:

Base library for creating Angular components and applications using Taiga UI principles regarding of actual visual appearance

1 lines 3.87 kB
{"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;;;;"}