ems-web-app-pipes
Version:
This angular.io module includes three pipes freuently used in our web applications.
1 lines • 8.36 kB
Source Map (JSON)
{"version":3,"file":"ems-web-app-pipes.mjs","sources":["../../src/lib/props.pipe.ts","../../src/lib/classes.pipes.ts","../../src/lib/safe.pipe.ts","../../src/lib/tokens.pipe.ts","../../src/lib/pipes.module.ts","../../src/public-api.ts","../../src/ems-web-app-pipes.ts"],"sourcesContent":["import { Injectable, Pipe, PipeTransform } from '@angular/core';\n/*\n Filters a list using comparison operators.\n e.g., \n <div *ngFor=\"let item of items:props:'id':'>=':3\">{{ item.label }}</div>\n Also supports dot notation for nesting\n e.g.,\n <div *ngFor=\"let item of items:props:'info.value':'>=':3\">{{ item.label }}</div>\n*/\n@Pipe({\n name: 'props',\n pure: false\n})\n@Injectable()\nexport class PropsPipe implements PipeTransform {\n transform(content: any[], property: string, operator: string, comparisonProperty: any): any[] {\n \tconst output = [] as any[];\n\n \tcontent.forEach(item => {\n\n const props = property.split(\".\");\n let value = item, comparison = item;\n props.forEach((p:any) => value = value[p]);\n comparison = comparisonProperty;\n\n \t\tswitch(operator) {\n \t\t\tcase \"=\":\n \t\t\tcase \"==\":\n \t\t\tcase \"===\":\n \t\t\t\tif(value === comparison) output.push(item);\n \t\t\tbreak;\n \t\t\tcase \">\":\n \t\t\t\tif(value > comparison) output.push(item);\n \t\t\tbreak;\n \t\t\tcase \">=\":\n \t\t\t\tif(value >= comparison) output.push(item);\n \t\t\tbreak;\n \t\t\tcase \"<\":\n \t\t\t\tif(value < comparison) output.push(item);\n \t\t\tbreak;\n \t\t\tcase \"<=\":\n \t\t\t\tif(value <= comparison) output.push(item);\n \t\t\tbreak;\n case \"!=\":\n case \"!==\":\n if(value !== comparison) output.push(item);\n break;\n \t\t\tdefault:\n \t\t}\n \t});\n \treturn output;\n }\n}\n","export enum SanitizerType {\n\tHtml = \"html\",\n\tUrl = \"url\",\n\tStyle = \"style\",\n\tResourceUrl = \"resourceUrl\",\n\tScript = \"script\"\n}","import { Injectable, Pipe, PipeTransform } from '@angular/core';\nimport { DomSanitizer, SafeHtml, SafeUrl, SafeResourceUrl, SafeStyle, SafeScript } from '@angular/platform-browser';\nimport { SanitizerType } from \"./classes.pipes\";\n\n@Pipe({\n name: 'safe'\n})\n@Injectable()\nexport class SafePipe implements PipeTransform {\n \n constructor(private sanitizer: DomSanitizer) {}\n\n transform(content: string, type: SanitizerType = SanitizerType.Html): SafeHtml | SafeUrl | SafeResourceUrl | SafeStyle | SafeScript {\n \tif(type === SanitizerType.ResourceUrl) return this.sanitizer.bypassSecurityTrustResourceUrl(content);\n \telse if(type === SanitizerType.Url) return this.sanitizer.bypassSecurityTrustUrl(content);\n \telse if(type === SanitizerType.Style) return this.sanitizer.bypassSecurityTrustStyle(content);\n \telse if(type === SanitizerType.Script) return this.sanitizer.bypassSecurityTrustScript(content);\n return this.sanitizer.bypassSecurityTrustHtml(content);\n }\n}\n","import { Injectable, Pipe, PipeTransform } from '@angular/core';\n\n@Pipe({\n name: 'tokens'\n})\n@Injectable()\nexport class TokensPipe implements PipeTransform {\n\n transform(content: string, token: string, replacement: string | number | Record<string,string>): string {\n const regex = new RegExp(\"\\\\$\\\\{\" + token + \"\\\\}\", \"gim\");\n if(!content) return content;\n\n //if a hashed lookup of terms is provided for replacement, return the matching value of the kv pair\n if(typeof replacement === \"object\") return content.replace(regex, replacement[token] ?? \"\");\n return content.replace(regex,replacement.toString());\n }\n}\n","import { NgModule } from '@angular/core';\nimport { SafePipe, TokensPipe, PropsPipe } from '.';\n\nexport * from \"./classes.pipes\";\n\n@NgModule({\n declarations: [\n SafePipe, TokensPipe, PropsPipe\n ],\n imports: [\n ],\n exports: [\n SafePipe, TokensPipe, PropsPipe\n ]\n})\nexport class PipesModule { }\n","/*\n * Public API Surface of pipes\n */\n\nexport * from './lib/pipes.module';\nexport * from './lib/props.pipe';\nexport * from \"./lib/safe.pipe\";\nexport * from \"./lib/tokens.pipe\";\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":"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"}