{"version":3,"sources":["../../src/core/classnames.ts","../../src/core/ellipsis.ts","../../src/angular/index.ts"],"names":["Directive","Input","TachTypographyDirective","_init","NgModule","NzTypographyModule","TachTypographyNzModule"],"mappings":"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","file":"index.cjs","sourcesContent":["import type { TypographyClassOptions } from \"./types\";\n\nconst BASE_CLASS = \"tach-typography\";\n\nconst join = (...parts: Array): string =>\n parts.filter(Boolean).join(\" \");\n\nexport const tachTypographyClassName = ({\n variant = \"Body\",\n color = \"primary\",\n weight = \"normal\",\n clickable = false,\n className,\n}: TypographyClassOptions = {}): string => {\n return join(\n BASE_CLASS,\n `${BASE_CLASS}--${variant}`,\n `${BASE_CLASS}--color-${color}`,\n weight === \"bold\" && `${BASE_CLASS}--bold`,\n clickable && `${BASE_CLASS}--pointer`,\n className,\n );\n};\n\nexport const tachTypographyClassList = (options: TypographyClassOptions = {}): string[] => {\n return tachTypographyClassName(options)\n .split(\" \")\n .filter(Boolean);\n};\n","import type { EllipsisOptions } from \"./types\";\n\ntype StyleRecord = Record;\n\nexport const tachTypographyEllipsisStyle = (\n ellipsis?: EllipsisOptions,\n): StyleRecord | undefined => {\n if (!ellipsis) {\n return undefined;\n }\n\n const rows = typeof ellipsis === \"object\" ? ellipsis.rows ?? 1 : 1;\n\n return {\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n display: \"-webkit-box\",\n WebkitBoxOrient: \"vertical\",\n WebkitLineClamp: rows,\n };\n};\n","import { NgModule } from \"@angular/core\";\nimport { Directive, ElementRef, Input, OnChanges, Renderer2, SimpleChanges } from \"@angular/core\";\nimport { NzTypographyModule } from \"ng-zorro-antd/typography\";\n\nimport {\n tachTypographyClassList,\n tachTypographyClassName,\n tachTypographyEllipsisStyle,\n type EllipsisOptions,\n type TypographyClassOptions,\n type TypographyColor,\n type TypographyRenderOptions,\n type TypographyVariant,\n type TypographyWeight,\n} from \"../core\";\n\nexport type AngularTypographyClassInput = TypographyClassOptions;\n\nexport interface AngularTypographyRenderOptions extends TypographyRenderOptions {\n preserveStyle?: Record;\n}\n\nconst camelToKebab = (value: string): string =>\n value.replace(/[A-Z]/g, match => `-${match.toLowerCase()}`);\n\nconst toCssProperty = (styleKey: string): string => {\n if (styleKey.startsWith(\"Webkit\")) {\n return `-webkit-${camelToKebab(styleKey.slice(6))}`;\n }\n\n return camelToKebab(styleKey);\n};\n\nexport const tachAngularTypographyClassName = (\n options: AngularTypographyClassInput = {},\n): string => {\n return tachTypographyClassName(options);\n};\n\nexport const tachAngularTypographyClassList = (\n options: AngularTypographyClassInput = {},\n): string[] => {\n return tachTypographyClassList(options);\n};\n\nexport const tachAngularTypographyStyles = (\n ellipsis?: EllipsisOptions,\n preserveStyle: Record = {},\n): Record => {\n const ellipsisStyle = tachTypographyEllipsisStyle(ellipsis);\n\n if (!ellipsisStyle) {\n return preserveStyle;\n }\n\n return {\n ...ellipsisStyle,\n ...preserveStyle,\n };\n};\n\n@Directive({\n selector: \"[tachTypography]\",\n standalone: true,\n})\nexport class TachTypographyDirective implements OnChanges {\n @Input() tachTypography: TypographyVariant | \"\" | undefined;\n @Input() tachTypographyVariant: TypographyVariant = \"Body\";\n @Input() tachTypographyColor: TypographyColor = \"primary\";\n @Input() tachTypographyWeight: TypographyWeight = \"normal\";\n @Input() tachTypographyClickable = false;\n @Input() tachTypographyClassName: string | undefined;\n @Input() tachTypographyEllipsis: EllipsisOptions | undefined;\n\n private readonly appliedClasses = new Set();\n private readonly appliedStyleProperties = new Set();\n\n constructor(\n private readonly elementRef: ElementRef,\n private readonly renderer: Renderer2,\n ) {}\n\n ngOnChanges(_changes: SimpleChanges): void {\n this.syncClasses();\n this.syncEllipsisStyles();\n }\n\n private syncClasses(): void {\n const nextClassList = tachTypographyClassList({\n variant: this.tachTypography || this.tachTypographyVariant,\n color: this.tachTypographyColor,\n weight: this.tachTypographyWeight,\n clickable: this.tachTypographyClickable,\n className: this.tachTypographyClassName,\n });\n\n const nextSet = new Set(nextClassList);\n\n for (const className of this.appliedClasses) {\n if (!nextSet.has(className)) {\n this.renderer.removeClass(this.elementRef.nativeElement, className);\n }\n }\n\n for (const className of nextSet) {\n this.renderer.addClass(this.elementRef.nativeElement, className);\n }\n\n this.appliedClasses.clear();\n for (const className of nextSet) {\n this.appliedClasses.add(className);\n }\n }\n\n private syncEllipsisStyles(): void {\n const nextStyles = tachTypographyEllipsisStyle(this.tachTypographyEllipsis) || {};\n const nextStyleKeys = new Set(Object.keys(nextStyles));\n\n for (const styleKey of this.appliedStyleProperties) {\n if (!nextStyleKeys.has(styleKey)) {\n this.renderer.removeStyle(this.elementRef.nativeElement, toCssProperty(styleKey));\n }\n }\n\n for (const [styleKey, styleValue] of Object.entries(nextStyles)) {\n this.renderer.setStyle(this.elementRef.nativeElement, toCssProperty(styleKey), styleValue);\n }\n\n this.appliedStyleProperties.clear();\n for (const styleKey of nextStyleKeys) {\n this.appliedStyleProperties.add(styleKey);\n }\n }\n}\n\n@NgModule({\n imports: [NzTypographyModule, TachTypographyDirective],\n exports: [NzTypographyModule, TachTypographyDirective],\n})\nexport class TachTypographyNzModule {}\n"]}