@keycloakify/angular-email 0.0.1-rc.9 → 0.0.1

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.
@@ -1 +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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"}
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/row/row.component.ts","../../../projects/angular-email/src/lib/components/row/row.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()}px`,\n display: 'inline-block',\n fontSize: `${this.$fontSize()}px`,\n lineHeight: `${this.$lineHeight()}px`,\n maxWidth: `${this.$width()}px`,\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: borderRadius ? borderRadius + 'px' : undefined,\n }\"\n >\n <tr>\n <td\n [attr.bgcolor]=\"$backgroundColor()\"\n [width]=\"width\"\n [height]=\"height\"\n [style]=\"{\n borderRadius: borderRadius ? borderRadius + 'px' : undefined,\n height: height ? height + 'px' : undefined,\n width: width ? width + 'px' : undefined,\n maxWidth: width ? width + 'px' : undefined,\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, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-row',\n templateUrl: 'row.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n imports: [],\n})\nexport class RowComponent {\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(false, { alias: 'disableDefaultStyle' });\n}\n","<table\n align=\"center\"\n width=\"100%\"\n [class]=\"$styleClass()\"\n [style]=\"$style()\"\n role=\"presentation\"\n cellSpacing=\"0\"\n cellPadding=\"0\"\n border=\"0\"\n>\n <tbody [style]=\"$disableDefaultStyle() ? {} : { width: '100%' }\">\n <tr [style]=\"$disableDefaultStyle() ? {} : { width: '100%' }\">\n <ng-content />\n </tr>\n </tbody>\n</table>\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 * as cheerio from 'cheerio/slim';\nimport { convert } from 'html-to-text';\nimport juice from 'juice';\nimport postcss from 'postcss';\nimport prettyPrint from 'pretty';\nimport tailwindcss, { Config } from 'tailwindcss';\nimport { HTMLElements, unescapeForRawComponent } from './utils';\n\ntype Render<Input extends Record<string, any>> = {\n component: Type<unknown>;\n /** Component selector */\n selector: string;\n props?: Input;\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 <Input extends Record<string, any>>({\n component,\n selector,\n props,\n options,\n}: Render<Input>) => {\n console.log = (\n (log) =>\n (...args) => {\n if (args[0] !== 'Angular is running in development mode.') log(...args);\n }\n )(console.log);\n const { style, html: normalizedHtml } = await renderNgComponent(\n component,\n selector,\n props,\n options?.signalInputsPrefix,\n );\n const html = applyHtmlTransformations(normalizedHtml);\n\n if (options?.plainText) {\n return renderAsPlainText(html);\n }\n const tailwindConfig = options?.tailwindConfig;\n const css = await parseStyles(html, style, tailwindConfig);\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\n const markup = await inlineCss(html, css, !!options?.pretty);\n const document = `${doctype}${markup}`;\n return document;\n};\n\nexport type RenderToHtml<Input extends Record<string, any>> = (props?: Input) => ReturnType<typeof render>;\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 let style: string = '';\n $('style').each(function () {\n const content = $(this).html();\n if (content) {\n style += `\\n${content}`;\n }\n });\n const html = normalizeNgHtml(ngHtml, selector);\n return { style, 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('|')})(?![-\\\\w])))[^>]+>`, '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) => {\n const $ = cheerio.load(html, {\n xml: { lowerCaseAttributeNames: false, lowerCaseTags: false },\n });\n replacePlaceholders($);\n\n return $.html()\n .replace(/\\s+/g, ' ')\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 html - The HTML string to process.\n * @param style - The raw content of <style> tags\n * @param tailwindConfig - Optional Tailwind CSS configuration to use. If not provided, the `tailwindcss-preset-email` preset will be used.\n *\n */\nconst parseStyles = async (html: string, style: string, tailwindConfig?: Partial<Config>) => {\n //@ts-expect-error: missing exports\n const tailwindcssPresetEmail = (await import('tailwindcss-preset-email')).default;\n\n const result = await postcss(\n tailwindcss({\n presets: tailwindConfig ? [tailwindConfig] : [tailwindcssPresetEmail],\n content: [\n {\n raw: html,\n extension: 'html',\n },\n ],\n }),\n ).process(style, { map: false, from: undefined });\n return result.css;\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 css - The CSS to inline.\n * @param pretty - Whether to prettify the output HTML. Defaults to `false`.\n * @returns A promise that resolves to the processed HTML string with inlined CSS.\n */\n\nconst inlineCss = async (html: string, css: string, pretty: boolean = false) => {\n juice.styleToAttribute = {};\n juice.excludedProperties.push(...[]);\n juice.widthElements = ['img', 'video'].map((i) => i.toUpperCase() as unknown as HTMLElement);\n juice.heightElements = ['img', 'video'].map((i) => i.toUpperCase() as unknown as HTMLElement);\n\n const inlined = unescapeForRawComponent(\n juice\n .inlineContent(html, css, {\n applyWidthAttributes: true,\n applyHeightAttributes: true,\n removeStyleTags: false,\n })\n .replace(/\\s+/g, ' ')\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(inlined);\n return inlined;\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/row/row.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":[],"mappings":"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"}
package/index.d.ts CHANGED
@@ -13,6 +13,7 @@ export * from './lib/components/img/img.component';
13
13
  export * from './lib/components/link/link.component';
14
14
  export * from './lib/components/preview/preview.component';
15
15
  export * from './lib/components/raw/raw.component';
16
+ export * from './lib/components/row/row.component';
16
17
  export * from './lib/components/section/section.component';
17
18
  export * from './lib/components/text/text.component';
18
19
  export * from './lib/render';
@@ -24,11 +24,11 @@ export declare class ButtonComponent {
24
24
  color?: string | undefined;
25
25
  backgroundColor?: string | undefined;
26
26
  '-webkit-text-size-adjust': string;
27
- borderRadius: number;
27
+ borderRadius: string;
28
28
  display: string;
29
- fontSize: number;
29
+ fontSize: string;
30
30
  lineHeight: string;
31
- maxWidth: number | undefined;
31
+ maxWidth: string;
32
32
  textAlign: string;
33
33
  textDecoration: string;
34
34
  width: string;
@@ -40,11 +40,11 @@ export declare class ButtonComponent {
40
40
  border?: string | undefined;
41
41
  msoBorderAlt?: string | undefined;
42
42
  '-webkit-text-size-adjust': string;
43
- borderRadius: number;
43
+ borderRadius: string;
44
44
  display: string;
45
- fontSize: number;
45
+ fontSize: string;
46
46
  lineHeight: string;
47
- maxWidth: number | undefined;
47
+ maxWidth: string;
48
48
  textAlign: string;
49
49
  textDecoration: string;
50
50
  width: string;
@@ -0,0 +1,8 @@
1
+ import * as i0 from "@angular/core";
2
+ export declare class RowComponent {
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
+ static ɵfac: i0.ɵɵFactoryDeclaration<RowComponent, never>;
7
+ static ɵcmp: i0.ɵɵComponentDeclaration<RowComponent, "ng-email-row", 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>;
8
+ }
package/lib/render.d.ts CHANGED
@@ -1,10 +1,10 @@
1
1
  import { Type } from '@angular/core';
2
2
  import { Config } from 'tailwindcss';
3
- type Render = {
3
+ type Render<Input extends Record<string, any>> = {
4
4
  component: Type<unknown>;
5
5
  /** Component selector */
6
6
  selector: string;
7
- props?: Record<string, any>;
7
+ props?: Input;
8
8
  options?: {
9
9
  plainText?: boolean;
10
10
  pretty?: boolean;
@@ -22,5 +22,6 @@ type Render = {
22
22
  *
23
23
  * @returns {Promise<string>} The rendered HTML or plain text.
24
24
  */
25
- export declare const render: ({ component, selector, props, options }: Render) => Promise<string>;
25
+ export declare const render: <Input extends Record<string, any>>({ component, selector, props, options, }: Render<Input>) => Promise<string>;
26
+ export type RenderToHtml<Input extends Record<string, any>> = (props?: Input) => ReturnType<typeof render>;
26
27
  export {};
package/node/index.cjs ADDED
@@ -0,0 +1 @@
1
+ var m=Object.defineProperty;var x=Object.getOwnPropertyDescriptor;var j=Object.getOwnPropertyNames;var T=Object.prototype.hasOwnProperty;var y=(o,t)=>{for(var e in t)m(o,e,{get:t[e],enumerable:!0})},v=(o,t,e,s)=>{if(t&&typeof t=="object"||typeof t=="function")for(let n of j(t))!T.call(o,n)&&n!==e&&m(o,n,{get:()=>t[n],enumerable:!(s=x(t,n))||s.enumerable});return o};var k=o=>v(m({},"__esModule",{value:!0}),o);var F={};y(F,{toHTML:()=>D});module.exports=k(F);var u=require("@keycloakify/angular-email/esbuild"),p=require("esbuild"),g=require("node:fs/promises"),l=require("node:path"),a=require("node:process"),d=require("node:url"),D=async o=>{let t=console.log;console.log=function(...r){if(r[0]!=="Angular is running in development mode.")return console.info(...r)};let{filePath:e,props:s,root:n}=o;try{let r=new Date,i=n??(0,a.cwd)(),c=(0,l.join)(i,".tmp/emails"),f=await(0,p.build)({logLevel:"warning",entryPoints:[e],bundle:!0,outdir:c,absWorkingDir:i,platform:"node",sourcemap:!1,minify:!0,packages:"bundle",external:["juice","postcss"],format:"cjs",outExtension:{".js":".cjs"},target:"node20",plugins:[(0,u.angularEsbuildPlugin)(i)],metafile:!0}),b=Object.entries(f.metafile.outputs)[0],h=await(await import((0,d.pathToFileURL)((0,l.resolve)(i,b[0])).toString())).renderToHtml(s);await(0,g.rm)(c,{recursive:!0,force:!0});let w=(new Date().getTime()-r.getTime())/1e3,P=e.split("/").pop();return console.log("\x1B[36m%s\x1B[0m",`rendered ${P} to html in ${w}s`),console.log=t,h}catch(r){console.log=t,console.error(r),(0,a.exit)(1)}};0&&(module.exports={toHTML});
@@ -0,0 +1,5 @@
1
+ export declare const toHTML: <Input extends Record<string, any>>(options: {
2
+ filePath: string;
3
+ props?: Input;
4
+ root?: string;
5
+ }) => Promise<string>;
package/node/index.js ADDED
@@ -0,0 +1 @@
1
+ import{angularEsbuildPlugin as g}from"@keycloakify/angular-email/esbuild";import{build as d}from"esbuild";import{rm as f}from"node:fs/promises";import{join as b,resolve as h}from"node:path";import{cwd as w,exit as P}from"node:process";import{pathToFileURL as x}from"node:url";var L=async s=>{let e=console.log;console.log=function(...t){if(t[0]!=="Angular is running in development mode.")return console.info(...t)};let{filePath:n,props:i,root:l}=s;try{let t=new Date,o=l??w(),r=b(o,".tmp/emails"),a=await d({logLevel:"warning",entryPoints:[n],bundle:!0,outdir:r,absWorkingDir:o,platform:"node",sourcemap:!1,minify:!0,packages:"bundle",external:["juice","postcss"],format:"cjs",outExtension:{".js":".cjs"},target:"node20",plugins:[g(o)],metafile:!0}),m=Object.entries(a.metafile.outputs)[0],c=await(await import(x(h(o,m[0])).toString())).renderToHtml(i);await f(r,{recursive:!0,force:!0});let u=(new Date().getTime()-t.getTime())/1e3,p=n.split("/").pop();return console.log("\x1B[36m%s\x1B[0m",`rendered ${p} to html in ${u}s`),console.log=e,c}catch(t){console.log=e,console.error(t),P(1)}};export{L as toHTML};
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@keycloakify/angular-email",
3
- "version": "0.0.1-rc.9",
3
+ "version": "0.0.1",
4
4
  "license": "MIT",
5
5
  "type": "module",
6
6
  "description": "Angular Email Builder",
@@ -29,8 +29,10 @@
29
29
  "cheerio": "^1.0.0",
30
30
  "@angular/build": "^19.1.0",
31
31
  "@angular/platform-server": "^19.1.0",
32
- "@maizzle/framework": "^5.0.0",
33
32
  "tailwindcss-preset-email": "^1.4.0",
33
+ "juice": "^11.0.1",
34
+ "postcss": "^8.5.3",
35
+ "pretty": "^2.0.0",
34
36
  "termost": "^1.4.0"
35
37
  },
36
38
  "sideEffects": false,
@@ -38,7 +40,7 @@
38
40
  "access": "public"
39
41
  },
40
42
  "bin": {
41
- "keycloakify-angular-email": "bin/build.js"
43
+ "keycloakify-angular-email": "bin/build.mjs"
42
44
  },
43
45
  "module": "fesm2022/keycloakify-angular-email.mjs",
44
46
  "typings": "index.d.ts",
@@ -53,6 +55,12 @@
53
55
  "./esbuild": {
54
56
  "types": "./esbuild/index.d.ts",
55
57
  "default": "./fesm2022/keycloakify-angular-email-esbuild.mjs"
58
+ },
59
+ "./node": {
60
+ "types": "./node/index.d.ts",
61
+ "import": "./node/index.js",
62
+ "require": "./node/index.cjs",
63
+ "default": "./node/index.cjs"
56
64
  }
57
65
  }
58
- }
66
+ }