{"version":3,"file":"shival99-z-ui-pipes.mjs","sources":["../../../../libs/core-ui/pipes/z-capitalize.pipe.ts","../../../../libs/core-ui/pipes/z-content-type.pipe.ts","../../../../libs/core-ui/pipes/z-format-num.pipe.ts","../../../../libs/core-ui/pipes/z-highlight.pipe.ts","../../../../libs/core-ui/pipes/z-safe-html.pipe.ts","../../../../libs/core-ui/pipes/z-safe-resource-url.pipe.ts","../../../../libs/core-ui/pipes/shival99-z-ui-pipes.ts"],"sourcesContent":["import { Pipe, PipeTransform } from '@angular/core';\nimport { zCapitalCase, type ZCapitalizeType } from '@shival99/z-ui/utils';\n\n@Pipe({\n  name: 'zCapitalize',\n  standalone: true,\n})\nexport class ZCapitalizePipe implements PipeTransform {\n  public transform(value: string | null | undefined, type: ZCapitalizeType = 'first'): string {\n    return zCapitalCase(value ?? '', type);\n  }\n}\n","import { Pipe, PipeTransform, TemplateRef } from '@angular/core';\nimport { ZContentType } from './types';\n\n@Pipe({\n  name: 'zContentType',\n  standalone: true,\n})\nexport class ZContentTypePipe implements PipeTransform {\n  transform(value: string | TemplateRef<unknown> | null | undefined): ZContentType {\n    if (!value) {\n      return 'string';\n    }\n\n    if (value instanceof TemplateRef) {\n      return 'template';\n    }\n\n    if (typeof value === 'string' && this._containsHtml(value)) {\n      return 'html';\n    }\n\n    return 'string';\n  }\n\n  private _containsHtml(str: string): boolean {\n    const htmlTagPattern = /<[a-z][\\s\\S]*>/i;\n    return htmlTagPattern.test(str);\n  }\n}\n","import { inject, Pipe, PipeTransform } from '@angular/core';\nimport { ZTranslateService } from '@shival99/z-ui/services';\nimport { zFormatNum, type ZFormatNumOptions } from '@shival99/z-ui/utils';\n\n@Pipe({\n  name: 'zFormatNum',\n  standalone: true,\n  pure: false,\n})\nexport class ZFormatNumPipe implements PipeTransform {\n  private _zTranslateService = inject(ZTranslateService);\n\n  public transform(value: unknown, options: ZFormatNumOptions = {}): string {\n    options.locale = (options.locale ?? this._zTranslateService.getLang()) as string;\n    return zFormatNum(value, options);\n  }\n}\n","import { Pipe, PipeTransform } from '@angular/core';\nimport { zRemoveVietnamese } from '@shival99/z-ui/utils';\n\n@Pipe({\n  name: 'zHighlight',\n  standalone: true,\n})\nexport class ZHighlightPipe implements PipeTransform {\n  transform(value: string, searchText: string, klass = 'text-primary'): string {\n    if (!searchText?.trim() || !value) {\n      return value;\n    }\n\n    const normalizedValue = zRemoveVietnamese(value.toLowerCase());\n    const normalizedSearch = zRemoveVietnamese(searchText.toLowerCase().trim());\n\n    const matchIndex = normalizedValue.indexOf(normalizedSearch);\n    if (matchIndex === -1) {\n      return value;\n    }\n\n    const before = value.substring(0, matchIndex);\n    const match = value.substring(matchIndex, matchIndex + searchText.length);\n    const after = value.substring(matchIndex + searchText.length);\n\n    return `${before}<span class=\"${klass}\">${match}</span>${after}`;\n  }\n}\n","import { inject, Pipe, type PipeTransform } from '@angular/core';\nimport { DomSanitizer, type SafeHtml } from '@angular/platform-browser';\nimport DOMPurify from 'dompurify';\n\n@Pipe({\n  name: 'zSafeHtml',\n  standalone: true,\n})\nexport class ZSafeHtmlPipe implements PipeTransform {\n  private _sanitizer = inject(DomSanitizer);\n\n  transform(value: string | null | undefined): SafeHtml {\n    if (!value) {\n      return '';\n    }\n\n    return this._sanitizer.bypassSecurityTrustHtml(DOMPurify.sanitize(value));\n  }\n}\n","import { inject, Pipe, type PipeTransform } from '@angular/core';\nimport { DomSanitizer, type SafeResourceUrl } from '@angular/platform-browser';\n\n/**\n * Pipe to sanitize URLs for resource contexts (iframe src, video src, etc.)\n *\n * Usage:\n * ```html\n * <iframe [src]=\"url | zSafeResourceUrl\"></iframe>\n * <video [src]=\"videoUrl | zSafeResourceUrl\"></video>\n * ```\n *\n * Note: Only use this pipe with trusted URLs. Do not use with user-provided URLs\n * without proper validation, as it bypasses Angular's security.\n */\n@Pipe({\n  name: 'zSafeResourceUrl',\n  standalone: true,\n})\nexport class ZSafeResourceUrlPipe implements PipeTransform {\n  private readonly _sanitizer = inject(DomSanitizer);\n  private readonly _allowedProtocols = new Set(['http:', 'https:', 'blob:']);\n\n  transform(value: string | null | undefined): SafeResourceUrl | null {\n    if (!value) {\n      return null;\n    }\n\n    if (!this._isAllowedResourceUrl(value)) {\n      return null;\n    }\n\n    return this._sanitizer.bypassSecurityTrustResourceUrl(value);\n  }\n\n  private _isAllowedResourceUrl(value: string): boolean {\n    const normalized = value.trim();\n    if (!normalized) {\n      return false;\n    }\n\n    const baseUrl = globalThis.location?.origin ?? 'http://localhost';\n\n    try {\n      const parsed = new URL(normalized, baseUrl);\n      return this._allowedProtocols.has(parsed.protocol);\n    } catch {\n      return false;\n    }\n  }\n}\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":[],"mappings":"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"}