@keycloakify/angular-email 0.0.1-rc.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (30) hide show
  1. package/LICENSE.md +21 -0
  2. package/README.md +130 -0
  3. package/bin/build.js +153 -0
  4. package/esbuild/esbuild.d.ts +2 -0
  5. package/esbuild/index.d.ts +1 -0
  6. package/fesm2022/keycloakify-angular-email-esbuild.mjs +28 -0
  7. package/fesm2022/keycloakify-angular-email-esbuild.mjs.map +1 -0
  8. package/fesm2022/keycloakify-angular-email.mjs +829 -0
  9. package/fesm2022/keycloakify-angular-email.mjs.map +1 -0
  10. package/index.d.ts +19 -0
  11. package/lib/components/background/background.component.d.ts +15 -0
  12. package/lib/components/body/body.component.d.ts +7 -0
  13. package/lib/components/button/button.component.d.ts +55 -0
  14. package/lib/components/color-scheme/color-scheme.component.d.ts +34 -0
  15. package/lib/components/column/column.component.d.ts +9 -0
  16. package/lib/components/conditional/conditional.component.d.ts +12 -0
  17. package/lib/components/container/container.component.d.ts +20 -0
  18. package/lib/components/head/head.component.d.ts +7 -0
  19. package/lib/components/heading/heading.component.d.ts +16 -0
  20. package/lib/components/hr/hr.component.d.ts +13 -0
  21. package/lib/components/html/html.component.d.ts +10 -0
  22. package/lib/components/img/img.component.d.ts +18 -0
  23. package/lib/components/link/link.component.d.ts +14 -0
  24. package/lib/components/preview/preview.component.d.ts +8 -0
  25. package/lib/components/raw/raw.component.d.ts +8 -0
  26. package/lib/components/section/section.component.d.ts +8 -0
  27. package/lib/components/text/text.component.d.ts +13 -0
  28. package/lib/render.d.ts +26 -0
  29. package/lib/utils.d.ts +18 -0
  30. package/package.json +58 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"keycloakify-angular-email.mjs","sources":["../../../projects/angular-email/src/lib/components/background/background.component.ts","../../../projects/angular-email/src/lib/components/background/background.component.html","../../../projects/angular-email/src/lib/components/body/body.component.ts","../../../projects/angular-email/src/lib/components/body/body.component.html","../../../projects/angular-email/src/lib/components/button/button.component.ts","../../../projects/angular-email/src/lib/components/button/button.component.html","../../../projects/angular-email/src/lib/components/color-scheme/color-scheme.component.ts","../../../projects/angular-email/src/lib/components/color-scheme/color-scheme.component.html","../../../projects/angular-email/src/lib/components/column/column.component.ts","../../../projects/angular-email/src/lib/components/column/column.component.html","../../../projects/angular-email/src/lib/components/conditional/conditional.component.ts","../../../projects/angular-email/src/lib/components/conditional/conditional.component.html","../../../projects/angular-email/src/lib/components/container/container.component.ts","../../../projects/angular-email/src/lib/components/container/container.component.html","../../../projects/angular-email/src/lib/components/head/head.component.ts","../../../projects/angular-email/src/lib/components/head/head.component.html","../../../projects/angular-email/src/lib/utils.ts","../../../projects/angular-email/src/lib/components/heading/heading.component.ts","../../../projects/angular-email/src/lib/components/heading/heading.component.html","../../../projects/angular-email/src/lib/components/hr/hr.component.ts","../../../projects/angular-email/src/lib/components/hr/hr.component.html","../../../projects/angular-email/src/lib/components/html/html.component.ts","../../../projects/angular-email/src/lib/components/html/html.component.html","../../../projects/angular-email/src/lib/components/img/img.component.ts","../../../projects/angular-email/src/lib/components/img/img.component.html","../../../projects/angular-email/src/lib/components/link/link.component.ts","../../../projects/angular-email/src/lib/components/link/link.component.html","../../../projects/angular-email/src/lib/components/raw/raw.component.ts","../../../projects/angular-email/src/lib/components/raw/raw.component.html","../../../projects/angular-email/src/lib/components/preview/preview.component.ts","../../../projects/angular-email/src/lib/components/preview/preview.component.html","../../../projects/angular-email/src/lib/components/section/section.component.ts","../../../projects/angular-email/src/lib/components/section/section.component.html","../../../projects/angular-email/src/lib/components/text/text.component.ts","../../../projects/angular-email/src/lib/components/text/text.component.html","../../../projects/angular-email/src/lib/render.ts","../../../projects/angular-email/src/index.ts","../../../projects/angular-email/src/keycloakify-angular-email.ts"],"sourcesContent":["import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-background',\n templateUrl: 'background.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n})\nexport class BackgroundComponent {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | undefined>(undefined, { alias: 'styleClass' });\n\n $width = input<number>(0, { alias: 'width' });\n $height = input<number>(0, { alias: 'height' });\n $src = input<string>(undefined, { alias: 'src' });\n $bgRepeat = input<'repeat' | 'no-repeat'>('no-repeat', { alias: 'bgRepeat' });\n $bgColor = input<string>(undefined, { alias: 'bgColor' });\n\n $bgStyle = computed(() => ({ backgroundRepeat: this.$bgRepeat(), ...(this.$style() ?? {}) }));\n}\n","@let width = $width();\n@let height = $height();\n\n<table\n [cellPadding]=\"0\"\n [cellSpacing]=\"0\"\n [border]=\"0\"\n width=\"100%\"\n [attr.height]=\"height\"\n role=\"presentation\"\n>\n <tr>\n <td\n [align]=\"'top'\"\n [width]=\"width\"\n [height]=\"height && width ? height : undefined\"\n [attr.bgcolor]=\"$bgColor()\"\n [attr.background]=\"$src()\"\n [style]=\"$bgStyle()\"\n [class]=\"$styleClass()\"\n >\n <ng-content />\n </td>\n </tr>\n</table>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-body',\n templateUrl: 'body.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class BodyComponent {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | undefined>(undefined, { alias: 'styleClass' });\n}\n","<body\n [style]=\"$style()\"\n [class]=\"$styleClass()\"\n>\n <ng-content />\n</body>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-button',\n templateUrl: 'button.component.html',\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ButtonComponent {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | null>(null, { alias: 'styleClass' });\n\n $href = input<string>(undefined, { alias: 'href' });\n $textContent = input.required<string>({ alias: 'textContent' });\n $width = input<number>(undefined, { alias: 'width' });\n $height = input<number>(undefined, { alias: 'height' });\n $borderRadius = input(0, { alias: 'borderRadius' });\n $textColor = input<string>(undefined, { alias: 'textColor' });\n $backgroundColor = input<string>(undefined, { alias: 'backgroundColor' });\n $borderColor = input<string>(undefined, { alias: 'borderColor' });\n $borderSize = input(1, { alias: 'borderSize' });\n $fontSize = input(16, { alias: 'fontSize' });\n $align = input<string>('left', { alias: 'align' });\n $withBackground = input(false, { alias: 'withBackground' });\n\n $arcsize = computed(() => Math.floor((this.$borderRadius() / (this.$height() ?? 1)) * 100));\n $lineHeight = computed(() =>\n this.$borderSize() ? (this.$height() ?? 0) - 2 * this.$borderSize() : (this.$height() ?? 0),\n );\n\n private $baseStyle = computed(() => ({\n '-webkit-text-size-adjust': 'none',\n borderRadius: this.$borderRadius(),\n display: 'inline-block',\n fontSize: this.$fontSize(),\n lineHeight: `${this.$lineHeight()}px`,\n maxWidth: this.$width(),\n textAlign: 'center',\n textDecoration: 'none',\n width: '100%',\n }));\n\n private $borderStyles = computed(() => ({\n border: `${this.$borderSize()}px solid ${this.$borderColor()}`,\n msoBorderAlt: 'none',\n }));\n\n private $propStyles = computed(() => ({\n // border styles\n ...(this.$borderColor() ? this.$borderStyles() : {}),\n // background styles\n ...(this.$backgroundColor() ? { backgroundColor: this.$backgroundColor() } : {}),\n // text styles\n ...(this.$textColor() ? { color: this.$textColor() } : {}),\n }));\n\n $withBackgroundStyle = computed(() => ({\n ...this.$baseStyle(),\n // background styles\n ...(this.$backgroundColor() ? { backgroundColor: this.$backgroundColor() } : {}),\n // text styles\n ...(this.$textColor() ? { color: this.$textColor() } : {}),\n ...(this.$style() ?? {}),\n ...(this.$withBackground() ? {} : { msoHide: 'all' }),\n }));\n\n $withoutBackgroundStyle = computed(() => ({\n ...this.$baseStyle(),\n // background styles\n ...this.$propStyles(),\n ...(this.$style() ?? {}),\n ...(this.$withBackground() ? {} : { msoHide: 'all' }),\n }));\n\n $noBgInnerHtml = computed(() => {\n const href = this.$href();\n const borderColor = this.$borderColor();\n const borderSize = this.$borderSize();\n const height = this.$height();\n const width = this.$width();\n const arcsize = this.$arcsize();\n const backgroundColor = this.$backgroundColor();\n const fontSize = this.$fontSize();\n const textColor = this.$textColor();\n const textContent = this.$textContent();\n return `<!--[if mso]>\n <v:roundrect href=\"${href}\" xmlns:v=\"urn:schemas-microsoft-com:vml\" xmlns:w=\"urn:schemas-microsoft-com:office:word\" style=\"${height !== undefined ? `height:${height}px` : ''};v-text-anchor:middle;${width !== undefined ? `height:${width}px` : ''};\" arcsize=\"${arcsize}%\" ${\n borderColor ? `strokecolor=${borderColor}` : ''\n } ${borderSize ? `strokeweight=\"${borderSize}px\"` : `stroke=\"false\"`} ${\n backgroundColor ? `fillcolor=${backgroundColor}` : `fill=\"false\"`\n }>\n <w:anchorlock/>\n <center style=\"font-size:${fontSize}px;${textColor ? `color:${textColor};` : ''}\">\n ${textContent}\n </center></v:roundrect>\n <![endif]-->`;\n });\n}\n","@let withBackground = $withBackground();\n@let align = $align();\n@let href = $href();\n@let height = $height();\n@let width = $width();\n@let borderRadius = $borderRadius();\n\n<ng-template #child><ng-content></ng-content></ng-template>\n\n<table\n [width]=\"'100%'\"\n [border]=\"0\"\n [cellPadding]=\"0\"\n [cellSpacing]=\"0\"\n style=\"border-collapse: collapse\"\n role=\"presentation\"\n>\n <tr>\n <td [align]=\"align\">\n @if (withBackground) {\n <table\n [align]=\"align\"\n [width]=\"width\"\n [border]=\"0\"\n [cellPadding]=\"0\"\n [cellSpacing]=\"0\"\n role=\"presentation\"\n [style]=\"{\n border: $borderSize() + 'px solid ' + ($borderColor() ?? 'inherit'),\n borderRadius,\n }\"\n >\n <tr>\n <td\n [attr.bgcolor]=\"$backgroundColor()\"\n [width]=\"width\"\n [height]=\"height\"\n [style]=\"{\n borderRadius,\n height,\n width,\n maxWidth: width,\n textAlign: 'center',\n }\"\n >\n <a\n [href]=\"href\"\n [class]=\"$styleClass()\"\n [style]=\"$withBackgroundStyle()\"\n >\n <ng-container [ngTemplateOutlet]=\"child\"></ng-container>\n </a>\n </td>\n </tr>\n </table>\n } @else {\n <noscript [attr.data-html]=\"$noBgInnerHtml()\"></noscript>\n <a\n [href]=\"href\"\n [class]=\"$styleClass()\"\n [style]=\"$withoutBackgroundStyle()\"\n >\n <ng-container [ngTemplateOutlet]=\"child\"></ng-container>\n </a>\n }\n </td>\n </tr>\n</table>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\nexport type ColorSchemeMode =\n | 'dark'\n /**\n * The email client will only ever render the content in the dark color scheme and forbids the\n * email client from overriding the color scheme.\n */\n | 'dark only'\n | 'light'\n /**\n * The email client will choose the light or dark theme to match the user’s preference.\n * If the user’s preference does not match something in the list, the email client will choose\n * which mode to display.\n */\n | 'light dark'\n /**\n * The email client will choose the first of the listed schemes that it supports taking user\n * preference into account and forbids the email client from overriding the color scheme.\n */\n | 'light dark only'\n /**\n * The email client will only ever render the content in the light color scheme and forbids the\n * email client from overriding the color scheme.\n */\n | 'light only'\n /**\n * Indicates that the email supports the page’s supported color schemes, if they are set, or\n * that it supports no color schemes at all otherwise.\n */\n | 'normal';\n\n@Component({\n selector: 'ng-email-color-scheme',\n templateUrl: 'color-scheme.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ColorSchemeComponent {\n $mode = input<ColorSchemeMode>('normal', { alias: 'mode' });\n $style = computed(\n () => `<style>:root { color-scheme: ${this.$mode()}; supported-color-schemes: ${this.$mode()}; }</style>`,\n );\n}\n","@let mode = $mode();\n\n<meta\n name=\"color-scheme\"\n [content]=\"mode\"\n/>\n<meta\n name=\"supported-color-schemes\"\n [content]=\"mode\"\n/>\n\n<noscript [attr.data-html]=\"$style()\"></noscript>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-column',\n templateUrl: 'column.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n})\nexport class ColumnComponent {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | undefined>(undefined, { alias: 'styleClass' });\n $bgImage = input<string>(undefined, { alias: 'bgImage' });\n $bgColor = input<string>(undefined, { alias: 'bgColor' });\n}\n","<td\n [attr.background]=\"$bgImage()\"\n [attr.bgcolor]=\"$bgColor()\"\n [style]=\"$style()\"\n [class]=\"$styleClass()\"\n role=\"presentation\"\n>\n <ng-content />\n</td>\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, effect, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-conditional',\n templateUrl: 'conditional.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [NgTemplateOutlet],\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class ConditionalComponent {\n $expression = input(undefined, { alias: 'expression' });\n $mso = input<boolean>(undefined, { alias: 'mso' });\n\n noMsoInnerHtmlPre = '&lt;!--[if !mso]&gt;&lt;!--&gt;';\n noMsoInnerHtmlPost = '&lt;!--&lt;![endif]--&gt;';\n\n $msoInnerHtmlPre = computed(() => `&lt;!--[if ${this.$expression() ?? 'mso'}]&gt;`);\n msoInnerHtmlPost = '&lt;![endif]--&gt;';\n\n constructor() {\n effect(() => {\n if (typeof this.$expression() === 'undefined' && typeof this.$mso() === 'undefined')\n throw new RangeError('angular-email: Conditional expects the `expression` or `mso` prop to be defined');\n\n if (typeof this.$expression() !== 'undefined' && typeof this.$mso() !== 'undefined')\n throw new RangeError(\n 'angular-email: Conditional expects the `expression` or `mso` prop to be defined, not both',\n );\n });\n }\n}\n","@let mso = $mso();\n\n@if (!mso) {\n <noscript [attr.data-html]=\"noMsoInnerHtmlPre\"></noscript>\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n <noscript [attr.data-html]=\"noMsoInnerHtmlPost\"></noscript>\n} @else {\n <noscript [attr.data-html]=\"$msoInnerHtmlPre()\"></noscript>\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n <noscript [attr.data-html]=\"msoInnerHtmlPost\"></noscript>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n","import { DOCUMENT } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, inject, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-container',\n templateUrl: 'container.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n})\nexport class ContainerComponent {\n random = Math.random();\n document = inject(DOCUMENT);\n\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | undefined>(undefined, { alias: 'styleClass' });\n $alignment = input('center', { alias: 'alignment' });\n $disableDefaultStyle = input(false, { alias: 'disableDefaultStyle' });\n $containerWidth = input(600, { alias: 'containerWidth' });\n\n $containerStyle = computed(() => ({\n ...(this.$disableDefaultStyle() ? {} : { maxWidth: `${this.$containerWidth()}px` }),\n ...this.$style(),\n }));\n\n $trStyle = computed(() => ({\n ...(this.$disableDefaultStyle() ? {} : { width: '100%' }),\n }));\n\n $innerHtmlPre = computed(\n () =>\n `<!--[if mso]><table align=\"${this.$alignment()}\" width=\"${this.$containerWidth()}\" style=\"border-spacing: 0; width:${this.$containerWidth()}px;\" role=\"presentation\"><tr><td><![endif]-->`,\n );\n\n $innerHtmlPost = computed(() => `<!--[if mso]></td></tr></table><![endif]-->`);\n}\n","@let containerWidth = $containerWidth();\n@let alignment = $alignment();\n\n<div [style]=\"{ tableLayout: 'fixed', width: '100%' }\">\n <div [style]=\"{ margin: '0 auto', maxWidth: containerWidth }\">\n <noscript [attr.data-html]=\"$innerHtmlPre()\"></noscript>\n <table\n [align]=\"alignment\"\n [width]=\"'100%'\"\n role=\"presentation\"\n [cellSpacing]=\"0\"\n [cellPadding]=\"0\"\n [border]=\"0\"\n [style]=\"$containerStyle()\"\n [class]=\"$styleClass()\"\n >\n <tbody>\n <tr [style]=\"$trStyle()\">\n <td [align]=\"alignment\">\n <ng-content></ng-content>\n </td>\n </tr>\n </tbody>\n </table>\n <noscript [attr.data-html]=\"$innerHtmlPost()\"></noscript>\n </div>\n</div>\n","import { ChangeDetectionStrategy, Component, input, NO_ERRORS_SCHEMA } from '@angular/core';\nimport { ConditionalComponent } from '../conditional/conditional.component';\n\n@Component({\n selector: 'ng-email-head',\n templateUrl: 'head.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [ConditionalComponent],\n schemas: [NO_ERRORS_SCHEMA],\n})\nexport class HeadComponent {\n $enableFormatDetection = input(false, { alias: 'enableFormatDetection' });\n xml = `\\n<xml><o:OfficeDocumentSettings><o:AllowPNG /><o:PixelsPerInch>96</o:PixelsPerInch></o:OfficeDocumentSettings></xml>\\n`;\n}\n","@let enableFormatDetection = $enableFormatDetection();\n\n<head>\n <meta\n http-equiv=\"content-type\"\n content=\"text/html; charset=UTF-8\"\n />\n <meta\n name=\"viewport\"\n content=\"width=device-width, initial-scale=1, user-scalable=yes\"\n />\n <meta name=\"x-apple-disable-message-reformatting\" />\n @if (!enableFormatDetection) {\n <meta\n name=\"format-detection\"\n content=\"telephone=no, date=no, address=no, email=no, url=no\"\n />\n }\n <ng-content></ng-content>\n <ng-email-conditional [mso]=\"true\">\n <noscript [attr.data-html]=\"xml\"></noscript>\n </ng-email-conditional>\n</head>\n","export const copyTextToClipboard = async (text: string) => {\n try {\n await navigator.clipboard.writeText(text);\n } catch {\n throw new Error('Not able to copy');\n }\n};\n\nexport const pxToPt = (px: string): number | null => (isNaN(Number(px)) ? null : (parseInt(px, 10) * 3) / 4);\n\nexport interface Margin {\n m?: string;\n mx?: string;\n my?: string;\n mt?: string;\n mr?: string;\n mb?: string;\n ml?: string;\n}\n\nexport const withMargin = (props: Margin) =>\n [\n withSpace(props.m, ['margin']),\n withSpace(props.mx, ['marginLeft', 'marginRight']),\n withSpace(props.my, ['marginTop', 'marginBottom']),\n withSpace(props.mt, ['marginTop']),\n withSpace(props.mr, ['marginRight']),\n withSpace(props.mb, ['marginBottom']),\n withSpace(props.ml, ['marginLeft']),\n ].filter((s) => Object.keys(s).length)[0];\n\nconst withSpace = (value: string | undefined, properties: string[]) => {\n return properties.reduce((styles, property) => {\n if (value) {\n return { ...styles, [property]: `${value}px` };\n }\n return styles;\n }, {});\n};\n\n// https://stackoverflow.com/a/61410824\n\nexport const styleToString = (style: Record<string, string | number | null> | undefined | null) => {\n if (!style) return '';\n return Object.keys(style).reduce(\n (acc, key) =>\n acc +\n key\n .split(/(?=[A-Z])/)\n .join('-')\n .toLowerCase() +\n ':' +\n style[key] +\n ';',\n '',\n );\n};\n\n// eslint-disable-next-line @typescript-eslint/no-explicit-any\nexport const classToString = (style: string | string[] | Set<string> | Record<string, any> | null | undefined) => {\n if (!style) return '';\n if (typeof style === 'string') return style;\n if (Array.isArray(style)) return style.join(' ');\n return Object.keys(style).reduce(\n (acc, key) =>\n acc +\n key\n .split(/(?=[A-Z])/)\n .join('-')\n .toLowerCase() +\n ':' +\n style[key as keyof typeof style] +\n ';',\n '',\n );\n};\n\nexport const unreachable = (\n condition: never,\n message = `Entered unreachable code. Received '${condition}'.`,\n): never => {\n throw new TypeError(message);\n};\n\nexport const HTMLElements = [\n '!DOCTYPE',\n 'a',\n 'abbr',\n 'abbr',\n //\"acronym\", // NOT HTML5\n 'address',\n //\"applet\", // NOT HTML5 (NOT MAJORLY SUPPORTED)\n 'area',\n 'article',\n 'aside',\n 'audio',\n 'b',\n 'base',\n //\"basefont\", // NOT HTML5\n 'bdi',\n 'bdo',\n //\"big\", // NOT HTML5\n 'blockquote',\n 'body',\n 'br',\n 'button',\n 'canvas',\n 'caption',\n //\"center\", // NOT HTML5\n 'cite',\n 'code',\n 'col',\n 'colgroup',\n 'data',\n 'datalist',\n 'dd',\n 'del',\n 'details',\n 'dfn',\n 'dialog',\n //\"dir\", NOT HTML5 (use \"ul\" instead)\n 'div',\n 'dl',\n 'dt',\n 'em',\n 'embed',\n 'fieldset',\n 'figcaption',\n 'figure',\n //\"font\", // NOT HTML5 (use CSS)\n 'footer',\n 'form',\n //\"frame\", // NOT HTML5\n //\"frameset\", // NOT HTML5\n 'h1',\n 'h2',\n 'h3',\n 'h4',\n 'h5',\n 'h6',\n 'head',\n 'header',\n 'hr',\n 'html',\n 'i',\n 'iframe',\n 'img',\n 'input',\n 'ins',\n 'kbd',\n 'label',\n 'legend',\n 'li',\n 'link',\n 'main',\n 'map',\n 'mark',\n 'meta',\n 'meter',\n 'nav',\n //\"noframes\", // NOT HTML5\n 'noscript',\n 'object',\n 'ol',\n 'optgroup',\n 'option',\n 'output',\n 'p',\n 'param',\n 'picture',\n 'pre',\n 'progress',\n 'q',\n 'rp',\n 'rt',\n 'ruby',\n 's',\n 'samp',\n 'script',\n 'section',\n 'select',\n 'small',\n 'source',\n 'span',\n //\"strike\", NOT HTML5 (Use <del> or <s> instead)\n 'strong',\n 'style',\n 'sub',\n 'summary',\n 'sup',\n 'svg',\n 'table',\n 'tbody',\n 'td',\n 'template',\n 'textarea',\n 'tfoot',\n 'th',\n 'thead',\n 'time',\n 'title',\n 'tr',\n 'track',\n //\"tt\", // NOT HTML5 (Use CSS)\n 'u',\n 'ul',\n 'var',\n 'video',\n 'wbr',\n // xml\n 'xml',\n 'o:OfficeDocumentSettings',\n 'o:AllowPNG',\n 'o:PixelsPerInch',\n 'angular-email-raw',\n];\n\nconst START_TAG = '__COMMENT_START';\nconst END_TAG = '__COMMENT_END';\nexport function escapeForRawComponent(input: string): string {\n // escape comment sequences\n return input.replace(/<!--/g, START_TAG).replace(/-->/g, END_TAG);\n}\n\nexport function unescapeForRawComponent(input: string): string {\n return input.replace(new RegExp(START_TAG, 'g'), '<!--').replace(new RegExp(END_TAG, 'g'), '-->');\n}\n","import { NgTemplateOutlet } from '@angular/common';\nimport { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { styleToString, withMargin } from '../../utils';\n\n@Component({\n selector: 'ng-email-heading',\n templateUrl: 'heading.component.html',\n imports: [NgTemplateOutlet],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HeadingComponent {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | undefined>(undefined, { alias: 'styleClass' });\n $as = input<'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'>('h1', { alias: 'as' });\n $m = input<string>(undefined, { alias: 'm' });\n $mx = input<string>(undefined, { alias: 'mx' });\n $my = input<string>(undefined, { alias: 'my' });\n $mt = input<string>(undefined, { alias: 'mt' });\n $mr = input<string>(undefined, { alias: 'mr' });\n $mb = input<string>(undefined, { alias: 'mb' });\n $ml = input<string>(undefined, { alias: 'ml' });\n $headingStyle = computed(() => {\n return styleToString({\n ...withMargin({\n m: this.$m(),\n mx: this.$mx(),\n my: this.$my(),\n mt: this.$mt(),\n mr: this.$mr(),\n mb: this.$mb(),\n ml: this.$ml(),\n }),\n ...(this.$style() ?? {}),\n });\n });\n}\n","@let heading = $as();\n@let style = $headingStyle();\n@let styleClass = $styleClass();\n@if (heading === 'h1') {\n <h1\n [style]=\"style\"\n [class]=\"styleClass\"\n >\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h1>\n} @else if (heading === 'h2') {\n <h2\n [style]=\"style\"\n [class]=\"styleClass\"\n >\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h2>\n} @else if (heading === 'h3') {\n <h3\n [style]=\"style\"\n [class]=\"styleClass\"\n >\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h3>\n} @else if (heading === 'h4') {\n <h4\n [style]=\"style\"\n [class]=\"styleClass\"\n >\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h4>\n} @else if (heading === 'h5') {\n <h5\n [style]=\"style\"\n [class]=\"styleClass\"\n >\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h5>\n} @else if (heading === 'h6') {\n <h6\n [style]=\"style\"\n [class]=\"styleClass\"\n >\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n </h6>\n} @else {\n <ng-container [ngTemplateOutlet]=\"content\"></ng-container>\n}\n<ng-template #content><ng-content></ng-content></ng-template>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-hr',\n templateUrl: 'hr.component.html',\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HrComponent {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | undefined>(undefined, { alias: 'styleClass' });\n $disableDefaultStyle = input<boolean>(false, { alias: 'disableDefaultStyle' });\n $hrStyle = computed(() => {\n return {\n ...(this.$disableDefaultStyle()\n ? {}\n : {\n width: '100%',\n border: 'none',\n borderTop: '1px solid #eaeaea',\n }),\n ...(this.$style() ?? {}),\n };\n });\n}\n","<hr\n [style]=\"$hrStyle()\"\n [class]=\"$styleClass()\"\n/>\n","import { ChangeDetectionStrategy, Component, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-html',\n templateUrl: 'html.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class HtmlComponent {\n $lang = input('en', { alias: 'lang' });\n $dir = input('ltr', { alias: 'dir' });\n $enableVML = input(true, { alias: 'enableVML' });\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | undefined>(undefined, { alias: 'styleClass' });\n}\n","@let enableVML = $enableVML();\n@let lang = $lang();\n@let dir = $dir();\n\n<html\n id=\"__angular-email\"\n [lang]=\"lang\"\n [dir]=\"dir\"\n [attr.xmlns:o]=\"enableVML ? 'urn:schemas-microsoft-com:office:office' : undefined\"\n [attr.xmlns:v]=\"enableVML ? 'urn:schemas-microsoft-com:vml' : undefined\"\n [style]=\"$style()\"\n [class]=\"$styleClass()\"\n>\n <ng-content />\n</html>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-img',\n templateUrl: 'img.component.html',\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class ImgComponent {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | undefined>(undefined, { alias: 'styleClass' });\n $disableDefaultStyle = input<boolean>(false, { alias: 'disableDefaultStyle' });\n $alt = input('', { alias: 'alt' });\n $src = input('', { alias: 'src' });\n $width = input('0', { alias: 'width' });\n $height = input('0', { alias: 'height' });\n $imageStyle = computed(() => {\n return {\n ...(this.$disableDefaultStyle()\n ? {}\n : {\n display: 'block',\n outline: 'none',\n border: 'none',\n textDecoration: 'none',\n }),\n ...(this.$style() ?? {}),\n };\n });\n}\n","<img\n [style]=\"$imageStyle()\"\n [class]=\"$styleClass()\"\n [alt]=\"$alt()\"\n [src]=\"$src()\"\n [width]=\"$width()\"\n [height]=\"$height()\"\n/>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-link',\n templateUrl: 'link.component.html',\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class LinkComponent {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | undefined>(undefined, { alias: 'styleClass' });\n $disableDefaultStyle = input<boolean>(false, { alias: 'disableDefaultStyle' });\n $href = input('', { alias: 'href' });\n $target = input('_blank', { alias: 'target' });\n $linkStyle = computed(() => {\n return {\n ...(this.$disableDefaultStyle()\n ? {}\n : {\n color: '#067df7',\n textDecoration: 'none',\n }),\n ...(this.$style() ?? {}),\n };\n });\n}\n","<a\n [style]=\"$linkStyle()\"\n [class]=\"$styleClass()\"\n [href]=\"$href()\"\n [target]=\"$target()\"\n ><ng-content></ng-content\n></a>\n","import { ChangeDetectionStrategy, Component, computed, CUSTOM_ELEMENTS_SCHEMA, input } from '@angular/core';\nimport { escapeForRawComponent } from '../../utils';\n\n@Component({\n selector: 'ng-email-raw',\n templateUrl: 'raw.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n schemas: [CUSTOM_ELEMENTS_SCHEMA],\n})\nexport class RawComponent {\n $disablePlainTextOutput = input(false, { alias: 'disablePlainTextOutput' });\n $content = input('', { alias: 'content' });\n $escapingContent = computed(() => `<!--${escapeForRawComponent(this.$content())}-->`);\n}\n","<angular-email-raw [attr.data-skip]=\"$disablePlainTextOutput()\">\n <noscript [attr.data-html]=\"$escapingContent()\"></noscript>\n</angular-email-raw>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { RawComponent } from '../raw/raw.component';\n\n@Component({\n selector: 'ng-email-preview',\n templateUrl: 'preview.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [RawComponent],\n})\nexport class PreviewComponent {\n $preview = input('', { alias: 'preview' });\n\n maxLength = 150;\n $text = computed(() => {\n const preview = this.$preview();\n if (preview.length >= this.maxLength) return null;\n const whiteSpaceCodes = '&nbsp;&#x200c;&#x200b;&#x200d;&#x200e;&#x200f;&#xfeff;';\n return whiteSpaceCodes.repeat(this.maxLength - preview.length);\n });\n}\n","@let text = $text();\n\n<div\n id=\"__angular-email-preview\"\n style=\"display: none; overflow: hidden; line-height: 1px; opacity: 0; max-height: 0; max-width: 0\"\n>\n {{ $preview() }}\n @if (text) {\n <ng-email-raw\n [content]=\"text\"\n [disablePlainTextOutput]=\"false\"\n ></ng-email-raw>\n }\n</div>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\nimport { styleToString } from '../../utils';\n\n@Component({\n selector: 'ng-email-section',\n templateUrl: 'section.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n})\nexport class SectionComponent {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | undefined>(undefined, { alias: 'styleClass' });\n $sectionStyle = computed(() => {\n return styleToString({\n width: '100%',\n ...(this.$style() ?? {}),\n });\n });\n}\n","<table\n [align]=\"'center'\"\n [border]=\"0\"\n [cellPadding]=\"0\"\n [cellSpacing]=\"0\"\n width=\"100%\"\n role=\"presentation\"\n [style]=\"$sectionStyle()\"\n [class]=\"$styleClass()\"\n>\n <tbody>\n <tr>\n <td>\n <ng-content />\n </td>\n </tr>\n </tbody>\n</table>\n","import { ChangeDetectionStrategy, Component, computed, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-text',\n templateUrl: 'text.component.html',\n imports: [],\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class TextComponent {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n $style = input<Record<string, any> | null | undefined>(null, { alias: 'style' });\n $styleClass = input<string | undefined>(undefined, { alias: 'styleClass' });\n $disableDefaultStyle = input<boolean>(false, { alias: 'disableDefaultStyle' });\n $textStyle = computed(() => {\n return {\n ...(this.$disableDefaultStyle()\n ? {}\n : {\n fontSize: '14px',\n lineHeight: '24px',\n margin: '16px 0',\n }),\n ...(this.$style() ?? {}),\n };\n });\n}\n","<p\n [style]=\"$textStyle()\"\n [class]=\"$styleClass()\"\n>\n <ng-content></ng-content>\n</p>\n","/* eslint-disable @typescript-eslint/no-explicit-any */\nimport { provideExperimentalZonelessChangeDetection, Type } from '@angular/core';\nimport { bootstrapApplication } from '@angular/platform-browser';\nimport { provideServerRendering, renderApplication } from '@angular/platform-server';\nimport { render as maizzleRender } from '@maizzle/framework';\nimport * as cheerio from 'cheerio/slim';\nimport { convert } from 'html-to-text';\nimport prettyPrint from 'pretty';\nimport { Config } from 'tailwindcss';\nimport { HTMLElements, unescapeForRawComponent } from './utils';\n\ntype Render = {\n component: Type<unknown>;\n /** Component selector */\n selector: string;\n props?: Record<string, any>;\n options?: {\n plainText?: boolean;\n pretty?: boolean;\n /** tailwind configuration object */\n tailwindConfig?: Partial<Config>;\n signalInputsPrefix?: string;\n };\n};\n\n/**\n * Renders an Angular component to HTML and applies transformations.\n *\n * @param component - The Angular component to render.\n * @param selector - The Component selector.\n * @param options - Optional rendering options.\n *\n * @returns {Promise<string>} The rendered HTML or plain text.\n */\nexport const render = async ({ component, selector, props, options }: Render) => {\n const { styles, html: normalizedHtml } = await renderNgComponent(\n component,\n selector,\n props,\n options?.signalInputsPrefix,\n );\n const html = applyHtmlTransformations(normalizedHtml, styles);\n if (options?.plainText) {\n return renderAsPlainText(html);\n }\n const doctype =\n '<!DOCTYPE html PUBLIC \"-//W3C//DTD XHTML 1.0 Transitional//EN\" \"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd\">';\n const tailwindConfig = options?.tailwindConfig;\n const markup = await inlineCss(html, !!options?.pretty, tailwindConfig);\n const document = `${doctype}${markup}`;\n return document;\n};\n\n/**\n * Converts the given markup string to plain text while skipping certain elements.\n *\n * @param markup - The HTML markup string to be converted to plain text.\n * @returns The plain text representation of the given markup.\n *\n * The conversion skips the following elements:\n * - `<img>` tags\n * - Elements with the ID `__angular-email-preview`\n */\nconst renderAsPlainText = (markup: string) => {\n return convert(markup, {\n decodeEntities: true,\n formatters: {\n raw: (elem, _walk, builder) => {\n if (elem.children.length && elem.children[0].type === 'comment') {\n builder.addInline(unescapeForRawComponent(elem.children[0].data!.trim()));\n }\n },\n },\n selectors: [\n { selector: '[data-skip=\"true\"]', format: 'skip' },\n { selector: 'img', format: 'skip' },\n { selector: '#__angular-email-preview', format: 'skip' },\n {\n format: 'raw',\n options: {},\n selector: 'angular-email-raw',\n },\n ],\n });\n};\n\n/**\n * Renders an Angular component to html.\n *\n * @param component - The Angular component to render.\n * @param selector - The CSS selector for the component.\n * @returns A promise that resolves to the rendered HTML string.\n */\nconst renderNgComponent = async (\n component: Type<unknown>,\n selector: string,\n props?: Record<string, any>,\n signalInputsPrefix?: string,\n) => {\n const bootstrap = async () => {\n const appRef = await bootstrapApplication(component, {\n providers: [provideExperimentalZonelessChangeDetection(), provideServerRendering()],\n });\n appRef.components.forEach((componentRef) => {\n Object.entries(props ?? {}).forEach(([key, value]) => {\n if (key in componentRef.instance || `${signalInputsPrefix ?? ''}${key}` in componentRef.instance) {\n componentRef.setInput(key, value);\n }\n });\n componentRef.changeDetectorRef.detectChanges();\n });\n return appRef;\n };\n const ngHtml = await renderApplication(bootstrap, {\n document: `<${selector}></${selector}>`,\n });\n const $ = cheerio.load(ngHtml, {\n xml: { lowerCaseAttributeNames: false, lowerCaseTags: false },\n });\n const styles: string[] = [];\n $('style').each(function () {\n const content = $(this).html();\n if (content) {\n styles.push(content);\n }\n });\n const html = normalizeNgHtml(ngHtml, selector);\n return { styles, html };\n};\n\n/**\n * Normalizes the provided HTML string by extracting the content within the specified selector\n * and removing any non-standard HTML elements.\n *\n * @param html - The HTML string to be normalized.\n * @param selector - The CSS selector used to identify the content to be extracted.\n * @returns The normalized HTML string with the content of the specified selector and without non-standard HTML elements.\n */\nconst normalizeNgHtml = (html: string, selector: string): string => {\n const nsHtmlRegex = new RegExp(`<(?!(\\\\/?(${HTMLElements.join('|')})))[^>]+>`, 'gm');\n return html\n .replace(new RegExp(`[\\\\s\\\\S]*?<${selector}[\\\\s\\\\S]*?>([\\\\s\\\\S]*?)<\\\\/${selector}>[\\\\s\\\\S]*?`, 'gm'), '$1')\n .replace(nsHtmlRegex, '');\n};\n\n/**\n * Applies HTML transformations to the provided HTML string.\n *\n * This function uses Cheerio to load the HTML and perform transformations such as\n * replacing placeholders and applying styles from the provided CSS file paths.\n * It also ensures that certain HTML entities are replaced with their corresponding\n * characters.\n *\n * @param html - The HTML string to transform.\n * @param cssFilePaths - An optional array of CSS file paths to apply styles from.\n * @returns The transformed HTML string.\n */\nconst applyHtmlTransformations = (html: string, styles: string[]) => {\n const $ = cheerio.load(html, {\n xml: { lowerCaseAttributeNames: false, lowerCaseTags: false },\n });\n replacePlaceholders($);\n applyStyles($, styles);\n return $.html()\n .replaceAll('\\n', '')\n .replace(/\\s+/g, ' ')\n .replaceAll('&lt;', '<')\n .replaceAll('&gt;', '>')\n .replaceAll('&#x24;', '$');\n};\n\n/**\n * Replaces elements with the `data-html` attribute with their corresponding HTML content.\n *\n * This function iterates over all elements that have the `data-html` attribute,\n * retrieves the value of the attribute, and replaces the element with the HTML content\n * specified in the attribute.\n *\n * @param $ - The Cheerio API instance used to manipulate the HTML.\n */\nconst replacePlaceholders = ($: cheerio.CheerioAPI) => {\n $('[data-html]').each(function () {\n const content = $(this).attr('data-html');\n if (content) {\n $(this).replaceWith(`${content}`);\n }\n });\n};\n\n/**\n * Applies the styles from the specified CSS file paths to the HTML document.\n *\n * @param $ - The Cheerio API instance used to manipulate the HTML document.\n * @param cssFilePaths - An array of file paths to the CSS files to be applied.\n */\nconst applyStyles = ($: cheerio.CheerioAPI, styles: string[]) => {\n styles.forEach((style) => {\n $('head').append(`<style>${style}</style>`);\n });\n};\n\n/**\n * Inlines CSS into the provided HTML string using Maizzle and Tailwind CSS.\n *\n * @param html - The HTML string to process.\n * @param pretty - Whether to prettify the output HTML. Defaults to `false`.\n * @param tailwindConfig - Optional Tailwind CSS configuration to use. If not provided, the `tailwindcss-preset-email` preset will be used.\n * @returns A promise that resolves to the processed HTML string with inlined CSS.\n */\nconst inlineCss = async (html: string, pretty: boolean = false, tailwindConfig?: Partial<Config>) => {\n //@ts-expect-error: missing exports\n const tailwindcssPresetEmail = (await import('tailwindcss-preset-email')).default;\n return (\n await maizzleRender(html, {\n afterTransformers: ({ html }) => {\n const renderedHtml = unescapeForRawComponent(\n html\n .replaceAll('\\n', '')\n .replace(/\\s+/g, ' ')\n .replaceAll('&#x24;', '$')\n .replace(/<angular-email-raw[\\s\\S]*?><!--(.*?)--><\\/angular-email-raw>/gm, `$1`),\n );\n if (pretty) return prettyPrint(renderedHtml);\n return renderedHtml;\n },\n css: {\n shorthand: true,\n inline: {\n applyWidthAttributes: true,\n applyHeightAttributes: true,\n },\n purge: {\n doNotRemoveHTMLCommentsWhoseOpeningTagContains: ['[if', '[endif', '<#if', '</#if', '<#else', '<#elseif'],\n removeHTMLComments: false,\n },\n tailwind: {\n presets: tailwindConfig ? [tailwindConfig] : [tailwindcssPresetEmail],\n content: [\n {\n raw: html,\n extension: 'html',\n },\n ],\n },\n },\n prettify: false,\n minify: true,\n })\n ).html;\n};\n","/*\n * Public API Surface of angular-email\n */\n\nexport * from './lib/components/background/background.component';\nexport * from './lib/components/body/body.component';\nexport * from './lib/components/button/button.component';\nexport * from './lib/components/color-scheme/color-scheme.component';\nexport * from './lib/components/column/column.component';\nexport * from './lib/components/conditional/conditional.component';\nexport * from './lib/components/container/container.component';\nexport * from './lib/components/head/head.component';\nexport * from './lib/components/heading/heading.component';\nexport * from './lib/components/hr/hr.component';\nexport * from './lib/components/html/html.component';\nexport * from './lib/components/img/img.component';\nexport * from './lib/components/link/link.component';\nexport * from './lib/components/preview/preview.component';\nexport * from './lib/components/raw/raw.component';\nexport * from './lib/components/section/section.component';\nexport * from './lib/components/text/text.component';\nexport * from './lib/render';\nexport * from './lib/utils';\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './index';\n"],"names":["maizzleRender"],"mappings":"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"}
package/index.d.ts ADDED
@@ -0,0 +1,19 @@
1
+ export * from './lib/components/background/background.component';
2
+ export * from './lib/components/body/body.component';
3
+ export * from './lib/components/button/button.component';
4
+ export * from './lib/components/color-scheme/color-scheme.component';
5
+ export * from './lib/components/column/column.component';
6
+ export * from './lib/components/conditional/conditional.component';
7
+ export * from './lib/components/container/container.component';
8
+ export * from './lib/components/head/head.component';
9
+ export * from './lib/components/heading/heading.component';
10
+ export * from './lib/components/hr/hr.component';
11
+ export * from './lib/components/html/html.component';
12
+ export * from './lib/components/img/img.component';
13
+ export * from './lib/components/link/link.component';
14
+ export * from './lib/components/preview/preview.component';
15
+ export * from './lib/components/raw/raw.component';
16
+ export * from './lib/components/section/section.component';
17
+ export * from './lib/components/text/text.component';
18
+ export * from './lib/render';
19
+ export * from './lib/utils';
@@ -0,0 +1,15 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class BackgroundComponent {
3
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
4
+ $styleClass: import("@angular/core").InputSignal<string | undefined>;
5
+ $width: import("@angular/core").InputSignal<number>;
6
+ $height: import("@angular/core").InputSignal<number>;
7
+ $src: import("@angular/core").InputSignal<string | undefined>;
8
+ $bgRepeat: import("@angular/core").InputSignal<"repeat" | "no-repeat">;
9
+ $bgColor: import("@angular/core").InputSignal<string | undefined>;
10
+ $bgStyle: import("@angular/core").Signal<{
11
+ backgroundRepeat: "repeat" | "no-repeat";
12
+ }>;
13
+ static ɵfac: i0.ɵɵFactoryDeclaration<BackgroundComponent, never>;
14
+ static ɵcmp: i0.ɵɵComponentDeclaration<BackgroundComponent, "ng-email-background", never, { "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "$width": { "alias": "width"; "required": false; "isSignal": true; }; "$height": { "alias": "height"; "required": false; "isSignal": true; }; "$src": { "alias": "src"; "required": false; "isSignal": true; }; "$bgRepeat": { "alias": "bgRepeat"; "required": false; "isSignal": true; }; "$bgColor": { "alias": "bgColor"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
15
+ }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class BodyComponent {
3
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
4
+ $styleClass: import("@angular/core").InputSignal<string | undefined>;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<BodyComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<BodyComponent, "ng-email-body", never, { "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
7
+ }
@@ -0,0 +1,55 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ButtonComponent {
3
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
4
+ $styleClass: import("@angular/core").InputSignal<string | null>;
5
+ $href: import("@angular/core").InputSignal<string | undefined>;
6
+ $textContent: import("@angular/core").InputSignal<string>;
7
+ $width: import("@angular/core").InputSignal<number | undefined>;
8
+ $height: import("@angular/core").InputSignal<number | undefined>;
9
+ $borderRadius: import("@angular/core").InputSignal<number>;
10
+ $textColor: import("@angular/core").InputSignal<string | undefined>;
11
+ $backgroundColor: import("@angular/core").InputSignal<string | undefined>;
12
+ $borderColor: import("@angular/core").InputSignal<string | undefined>;
13
+ $borderSize: import("@angular/core").InputSignal<number>;
14
+ $fontSize: import("@angular/core").InputSignal<number>;
15
+ $align: import("@angular/core").InputSignal<string>;
16
+ $withBackground: import("@angular/core").InputSignal<boolean>;
17
+ $arcsize: import("@angular/core").Signal<number>;
18
+ $lineHeight: import("@angular/core").Signal<number>;
19
+ private $baseStyle;
20
+ private $borderStyles;
21
+ private $propStyles;
22
+ $withBackgroundStyle: import("@angular/core").Signal<{
23
+ msoHide?: string | undefined;
24
+ color?: string | undefined;
25
+ backgroundColor?: string | undefined;
26
+ '-webkit-text-size-adjust': string;
27
+ borderRadius: number;
28
+ display: string;
29
+ fontSize: number;
30
+ lineHeight: string;
31
+ maxWidth: number | undefined;
32
+ textAlign: string;
33
+ textDecoration: string;
34
+ width: string;
35
+ }>;
36
+ $withoutBackgroundStyle: import("@angular/core").Signal<{
37
+ msoHide?: string | undefined;
38
+ color?: string | undefined;
39
+ backgroundColor?: string | undefined;
40
+ border?: string | undefined;
41
+ msoBorderAlt?: string | undefined;
42
+ '-webkit-text-size-adjust': string;
43
+ borderRadius: number;
44
+ display: string;
45
+ fontSize: number;
46
+ lineHeight: string;
47
+ maxWidth: number | undefined;
48
+ textAlign: string;
49
+ textDecoration: string;
50
+ width: string;
51
+ }>;
52
+ $noBgInnerHtml: import("@angular/core").Signal<string>;
53
+ static ɵfac: i0.ɵɵFactoryDeclaration<ButtonComponent, never>;
54
+ static ɵcmp: i0.ɵɵComponentDeclaration<ButtonComponent, "ng-email-button", never, { "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "$href": { "alias": "href"; "required": false; "isSignal": true; }; "$textContent": { "alias": "textContent"; "required": true; "isSignal": true; }; "$width": { "alias": "width"; "required": false; "isSignal": true; }; "$height": { "alias": "height"; "required": false; "isSignal": true; }; "$borderRadius": { "alias": "borderRadius"; "required": false; "isSignal": true; }; "$textColor": { "alias": "textColor"; "required": false; "isSignal": true; }; "$backgroundColor": { "alias": "backgroundColor"; "required": false; "isSignal": true; }; "$borderColor": { "alias": "borderColor"; "required": false; "isSignal": true; }; "$borderSize": { "alias": "borderSize"; "required": false; "isSignal": true; }; "$fontSize": { "alias": "fontSize"; "required": false; "isSignal": true; }; "$align": { "alias": "align"; "required": false; "isSignal": true; }; "$withBackground": { "alias": "withBackground"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
55
+ }
@@ -0,0 +1,34 @@
1
+ import * as i0 from "@angular/core";
2
+ export type ColorSchemeMode = 'dark'
3
+ /**
4
+ * The email client will only ever render the content in the dark color scheme and forbids the
5
+ * email client from overriding the color scheme.
6
+ */
7
+ | 'dark only' | 'light'
8
+ /**
9
+ * The email client will choose the light or dark theme to match the user’s preference.
10
+ * If the user’s preference does not match something in the list, the email client will choose
11
+ * which mode to display.
12
+ */
13
+ | 'light dark'
14
+ /**
15
+ * The email client will choose the first of the listed schemes that it supports taking user
16
+ * preference into account and forbids the email client from overriding the color scheme.
17
+ */
18
+ | 'light dark only'
19
+ /**
20
+ * The email client will only ever render the content in the light color scheme and forbids the
21
+ * email client from overriding the color scheme.
22
+ */
23
+ | 'light only'
24
+ /**
25
+ * Indicates that the email supports the page’s supported color schemes, if they are set, or
26
+ * that it supports no color schemes at all otherwise.
27
+ */
28
+ | 'normal';
29
+ export declare class ColorSchemeComponent {
30
+ $mode: import("@angular/core").InputSignal<ColorSchemeMode>;
31
+ $style: import("@angular/core").Signal<string>;
32
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColorSchemeComponent, never>;
33
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColorSchemeComponent, "ng-email-color-scheme", never, { "$mode": { "alias": "mode"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
34
+ }
@@ -0,0 +1,9 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ColumnComponent {
3
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
4
+ $styleClass: import("@angular/core").InputSignal<string | undefined>;
5
+ $bgImage: import("@angular/core").InputSignal<string | undefined>;
6
+ $bgColor: import("@angular/core").InputSignal<string | undefined>;
7
+ static ɵfac: i0.ɵɵFactoryDeclaration<ColumnComponent, never>;
8
+ static ɵcmp: i0.ɵɵComponentDeclaration<ColumnComponent, "ng-email-column", never, { "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "$bgImage": { "alias": "bgImage"; "required": false; "isSignal": true; }; "$bgColor": { "alias": "bgColor"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
9
+ }
@@ -0,0 +1,12 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ConditionalComponent {
3
+ $expression: import("@angular/core").InputSignal<undefined>;
4
+ $mso: import("@angular/core").InputSignal<boolean | undefined>;
5
+ noMsoInnerHtmlPre: string;
6
+ noMsoInnerHtmlPost: string;
7
+ $msoInnerHtmlPre: import("@angular/core").Signal<string>;
8
+ msoInnerHtmlPost: string;
9
+ constructor();
10
+ static ɵfac: i0.ɵɵFactoryDeclaration<ConditionalComponent, never>;
11
+ static ɵcmp: i0.ɵɵComponentDeclaration<ConditionalComponent, "ng-email-conditional", never, { "$expression": { "alias": "expression"; "required": false; "isSignal": true; }; "$mso": { "alias": "mso"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
12
+ }
@@ -0,0 +1,20 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ContainerComponent {
3
+ random: number;
4
+ document: Document;
5
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
6
+ $styleClass: import("@angular/core").InputSignal<string | undefined>;
7
+ $alignment: import("@angular/core").InputSignal<string>;
8
+ $disableDefaultStyle: import("@angular/core").InputSignal<boolean>;
9
+ $containerWidth: import("@angular/core").InputSignal<number>;
10
+ $containerStyle: import("@angular/core").Signal<{
11
+ maxWidth?: string | undefined;
12
+ }>;
13
+ $trStyle: import("@angular/core").Signal<{
14
+ width?: string | undefined;
15
+ }>;
16
+ $innerHtmlPre: import("@angular/core").Signal<string>;
17
+ $innerHtmlPost: import("@angular/core").Signal<string>;
18
+ static ɵfac: i0.ɵɵFactoryDeclaration<ContainerComponent, never>;
19
+ static ɵcmp: i0.ɵɵComponentDeclaration<ContainerComponent, "ng-email-container", never, { "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "$alignment": { "alias": "alignment"; "required": false; "isSignal": true; }; "$disableDefaultStyle": { "alias": "disableDefaultStyle"; "required": false; "isSignal": true; }; "$containerWidth": { "alias": "containerWidth"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
20
+ }
@@ -0,0 +1,7 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class HeadComponent {
3
+ $enableFormatDetection: import("@angular/core").InputSignal<boolean>;
4
+ xml: string;
5
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeadComponent, never>;
6
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeadComponent, "ng-email-head", never, { "$enableFormatDetection": { "alias": "enableFormatDetection"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
7
+ }
@@ -0,0 +1,16 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class HeadingComponent {
3
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
4
+ $styleClass: import("@angular/core").InputSignal<string | undefined>;
5
+ $as: import("@angular/core").InputSignal<"h1" | "h2" | "h3" | "h4" | "h5" | "h6">;
6
+ $m: import("@angular/core").InputSignal<string | undefined>;
7
+ $mx: import("@angular/core").InputSignal<string | undefined>;
8
+ $my: import("@angular/core").InputSignal<string | undefined>;
9
+ $mt: import("@angular/core").InputSignal<string | undefined>;
10
+ $mr: import("@angular/core").InputSignal<string | undefined>;
11
+ $mb: import("@angular/core").InputSignal<string | undefined>;
12
+ $ml: import("@angular/core").InputSignal<string | undefined>;
13
+ $headingStyle: import("@angular/core").Signal<string>;
14
+ static ɵfac: i0.ɵɵFactoryDeclaration<HeadingComponent, never>;
15
+ static ɵcmp: i0.ɵɵComponentDeclaration<HeadingComponent, "ng-email-heading", never, { "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "$as": { "alias": "as"; "required": false; "isSignal": true; }; "$m": { "alias": "m"; "required": false; "isSignal": true; }; "$mx": { "alias": "mx"; "required": false; "isSignal": true; }; "$my": { "alias": "my"; "required": false; "isSignal": true; }; "$mt": { "alias": "mt"; "required": false; "isSignal": true; }; "$mr": { "alias": "mr"; "required": false; "isSignal": true; }; "$mb": { "alias": "mb"; "required": false; "isSignal": true; }; "$ml": { "alias": "ml"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
16
+ }
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class HrComponent {
3
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
4
+ $styleClass: import("@angular/core").InputSignal<string | undefined>;
5
+ $disableDefaultStyle: import("@angular/core").InputSignal<boolean>;
6
+ $hrStyle: import("@angular/core").Signal<{
7
+ width?: string | undefined;
8
+ border?: string | undefined;
9
+ borderTop?: string | undefined;
10
+ }>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<HrComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<HrComponent, "ng-email-hr", never, { "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "$disableDefaultStyle": { "alias": "disableDefaultStyle"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
13
+ }
@@ -0,0 +1,10 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class HtmlComponent {
3
+ $lang: import("@angular/core").InputSignal<string>;
4
+ $dir: import("@angular/core").InputSignal<string>;
5
+ $enableVML: import("@angular/core").InputSignal<boolean>;
6
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
7
+ $styleClass: import("@angular/core").InputSignal<string | undefined>;
8
+ static ɵfac: i0.ɵɵFactoryDeclaration<HtmlComponent, never>;
9
+ static ɵcmp: i0.ɵɵComponentDeclaration<HtmlComponent, "ng-email-html", never, { "$lang": { "alias": "lang"; "required": false; "isSignal": true; }; "$dir": { "alias": "dir"; "required": false; "isSignal": true; }; "$enableVML": { "alias": "enableVML"; "required": false; "isSignal": true; }; "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
10
+ }
@@ -0,0 +1,18 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class ImgComponent {
3
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
4
+ $styleClass: import("@angular/core").InputSignal<string | undefined>;
5
+ $disableDefaultStyle: import("@angular/core").InputSignal<boolean>;
6
+ $alt: import("@angular/core").InputSignal<string>;
7
+ $src: import("@angular/core").InputSignal<string>;
8
+ $width: import("@angular/core").InputSignal<string>;
9
+ $height: import("@angular/core").InputSignal<string>;
10
+ $imageStyle: import("@angular/core").Signal<{
11
+ display?: string | undefined;
12
+ outline?: string | undefined;
13
+ border?: string | undefined;
14
+ textDecoration?: string | undefined;
15
+ }>;
16
+ static ɵfac: i0.ɵɵFactoryDeclaration<ImgComponent, never>;
17
+ static ɵcmp: i0.ɵɵComponentDeclaration<ImgComponent, "ng-email-img", never, { "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "$disableDefaultStyle": { "alias": "disableDefaultStyle"; "required": false; "isSignal": true; }; "$alt": { "alias": "alt"; "required": false; "isSignal": true; }; "$src": { "alias": "src"; "required": false; "isSignal": true; }; "$width": { "alias": "width"; "required": false; "isSignal": true; }; "$height": { "alias": "height"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
18
+ }
@@ -0,0 +1,14 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class LinkComponent {
3
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
4
+ $styleClass: import("@angular/core").InputSignal<string | undefined>;
5
+ $disableDefaultStyle: import("@angular/core").InputSignal<boolean>;
6
+ $href: import("@angular/core").InputSignal<string>;
7
+ $target: import("@angular/core").InputSignal<string>;
8
+ $linkStyle: import("@angular/core").Signal<{
9
+ color?: string | undefined;
10
+ textDecoration?: string | undefined;
11
+ }>;
12
+ static ɵfac: i0.ɵɵFactoryDeclaration<LinkComponent, never>;
13
+ static ɵcmp: i0.ɵɵComponentDeclaration<LinkComponent, "ng-email-link", never, { "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "$disableDefaultStyle": { "alias": "disableDefaultStyle"; "required": false; "isSignal": true; }; "$href": { "alias": "href"; "required": false; "isSignal": true; }; "$target": { "alias": "target"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
14
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class PreviewComponent {
3
+ $preview: import("@angular/core").InputSignal<string>;
4
+ maxLength: number;
5
+ $text: import("@angular/core").Signal<string | null>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<PreviewComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<PreviewComponent, "ng-email-preview", never, { "$preview": { "alias": "preview"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class RawComponent {
3
+ $disablePlainTextOutput: import("@angular/core").InputSignal<boolean>;
4
+ $content: import("@angular/core").InputSignal<string>;
5
+ $escapingContent: import("@angular/core").Signal<string>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<RawComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<RawComponent, "ng-email-raw", never, { "$disablePlainTextOutput": { "alias": "disablePlainTextOutput"; "required": false; "isSignal": true; }; "$content": { "alias": "content"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
8
+ }
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class SectionComponent {
3
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
4
+ $styleClass: import("@angular/core").InputSignal<string | undefined>;
5
+ $sectionStyle: import("@angular/core").Signal<string>;
6
+ static ɵfac: i0.ɵɵFactoryDeclaration<SectionComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<SectionComponent, "ng-email-section", never, { "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
8
+ }
@@ -0,0 +1,13 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class TextComponent {
3
+ $style: import("@angular/core").InputSignal<Record<string, any> | null | undefined>;
4
+ $styleClass: import("@angular/core").InputSignal<string | undefined>;
5
+ $disableDefaultStyle: import("@angular/core").InputSignal<boolean>;
6
+ $textStyle: import("@angular/core").Signal<{
7
+ fontSize?: string | undefined;
8
+ lineHeight?: string | undefined;
9
+ margin?: string | undefined;
10
+ }>;
11
+ static ɵfac: i0.ɵɵFactoryDeclaration<TextComponent, never>;
12
+ static ɵcmp: i0.ɵɵComponentDeclaration<TextComponent, "ng-email-text", never, { "$style": { "alias": "style"; "required": false; "isSignal": true; }; "$styleClass": { "alias": "styleClass"; "required": false; "isSignal": true; }; "$disableDefaultStyle": { "alias": "disableDefaultStyle"; "required": false; "isSignal": true; }; }, {}, never, ["*"], true, never>;
13
+ }
@@ -0,0 +1,26 @@
1
+ import { Type } from '@angular/core';
2
+ import { Config } from 'tailwindcss';
3
+ type Render = {
4
+ component: Type<unknown>;
5
+ /** Component selector */
6
+ selector: string;
7
+ props?: Record<string, any>;
8
+ options?: {
9
+ plainText?: boolean;
10
+ pretty?: boolean;
11
+ /** tailwind configuration object */
12
+ tailwindConfig?: Partial<Config>;
13
+ signalInputsPrefix?: string;
14
+ };
15
+ };
16
+ /**
17
+ * Renders an Angular component to HTML and applies transformations.
18
+ *
19
+ * @param component - The Angular component to render.
20
+ * @param selector - The Component selector.
21
+ * @param options - Optional rendering options.
22
+ *
23
+ * @returns {Promise<string>} The rendered HTML or plain text.
24
+ */
25
+ export declare const render: ({ component, selector, props, options }: Render) => Promise<string>;
26
+ export {};
package/lib/utils.d.ts ADDED
@@ -0,0 +1,18 @@
1
+ export declare const copyTextToClipboard: (text: string) => Promise<void>;
2
+ export declare const pxToPt: (px: string) => number | null;
3
+ export interface Margin {
4
+ m?: string;
5
+ mx?: string;
6
+ my?: string;
7
+ mt?: string;
8
+ mr?: string;
9
+ mb?: string;
10
+ ml?: string;
11
+ }
12
+ export declare const withMargin: (props: Margin) => {};
13
+ export declare const styleToString: (style: Record<string, string | number | null> | undefined | null) => string;
14
+ export declare const classToString: (style: string | string[] | Set<string> | Record<string, any> | null | undefined) => string;
15
+ export declare const unreachable: (condition: never, message?: string) => never;
16
+ export declare const HTMLElements: string[];
17
+ export declare function escapeForRawComponent(input: string): string;
18
+ export declare function unescapeForRawComponent(input: string): string;