@keycloakify/angular-email 0.0.1-rc.3 → 0.0.1-rc.4
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.
|
@@ -530,17 +530,20 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
530
530
|
|
|
531
531
|
class PreviewComponent {
|
|
532
532
|
$preview = input('', { alias: 'preview' });
|
|
533
|
+
maxLength = 150;
|
|
533
534
|
$text = computed(() => {
|
|
534
535
|
const preview = this.$preview();
|
|
535
|
-
|
|
536
|
-
|
|
536
|
+
if (preview.length >= this.maxLength)
|
|
537
|
+
return null;
|
|
538
|
+
const whiteSpaceCodes = '\u00A0\u200C\u200B\u200D\u200E\u200F\uFEFF';
|
|
539
|
+
return whiteSpaceCodes.repeat(this.maxLength - preview.length);
|
|
537
540
|
});
|
|
538
541
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: PreviewComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
539
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.
|
|
542
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "17.0.0", version: "19.1.5", type: PreviewComponent, isStandalone: true, selector: "ng-email-preview", inputs: { $preview: { classPropertyName: "$preview", publicName: "preview", isSignal: true, isRequired: false, transformFunction: null } }, ngImport: i0, template: "@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 <span [attr.data-html]=\"text\"></span>\n }\n</div>\n", changeDetection: i0.ChangeDetectionStrategy.OnPush });
|
|
540
543
|
}
|
|
541
544
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImport: i0, type: PreviewComponent, decorators: [{
|
|
542
545
|
type: Component,
|
|
543
|
-
args: [{ selector: 'ng-email-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "<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</div>\n" }]
|
|
546
|
+
args: [{ selector: 'ng-email-preview', changeDetection: ChangeDetectionStrategy.OnPush, template: "@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 <span [attr.data-html]=\"text\"></span>\n }\n</div>\n" }]
|
|
544
547
|
}] });
|
|
545
548
|
|
|
546
549
|
class SectionComponent {
|
|
@@ -586,6 +589,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
586
589
|
args: [{ selector: 'ng-email-text', imports: [], changeDetection: ChangeDetectionStrategy.OnPush, template: "<p\n [style]=\"$textStyle()\"\n [class]=\"$styleClass()\"\n>\n <ng-content></ng-content>\n</p>\n" }]
|
|
587
590
|
}] });
|
|
588
591
|
|
|
592
|
+
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
589
593
|
/**
|
|
590
594
|
* Renders an Angular component to HTML and applies transformations.
|
|
591
595
|
*
|
|
@@ -595,8 +599,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "19.1.5", ngImpor
|
|
|
595
599
|
*
|
|
596
600
|
* @returns {Promise<string>} The rendered HTML or plain text.
|
|
597
601
|
*/
|
|
598
|
-
const render = async ({ component, selector, options }) => {
|
|
599
|
-
const normalizedHtml = await renderNgComponent(component, selector);
|
|
602
|
+
const render = async ({ component, selector, props, options }) => {
|
|
603
|
+
const normalizedHtml = await renderNgComponent(component, selector, props);
|
|
600
604
|
const html = applyHtmlTransformations(normalizedHtml, options?.cssFilePaths);
|
|
601
605
|
if (options?.plainText) {
|
|
602
606
|
return renderAsPlainText(html);
|
|
@@ -632,10 +636,21 @@ const renderAsPlainText = (markup) => {
|
|
|
632
636
|
* @param selector - The CSS selector for the component.
|
|
633
637
|
* @returns A promise that resolves to the rendered HTML string.
|
|
634
638
|
*/
|
|
635
|
-
const renderNgComponent = async (component, selector) => {
|
|
636
|
-
const bootstrap = () =>
|
|
637
|
-
|
|
638
|
-
|
|
639
|
+
const renderNgComponent = async (component, selector, props) => {
|
|
640
|
+
const bootstrap = async () => {
|
|
641
|
+
const appRef = await bootstrapApplication(component, {
|
|
642
|
+
providers: [provideExperimentalZonelessChangeDetection(), provideServerRendering()],
|
|
643
|
+
});
|
|
644
|
+
appRef.components.forEach((componentRef) => {
|
|
645
|
+
Object.entries(props ?? {}).forEach(([key, value]) => {
|
|
646
|
+
if (key in componentRef.instance) {
|
|
647
|
+
componentRef.instance[key] = value;
|
|
648
|
+
}
|
|
649
|
+
});
|
|
650
|
+
componentRef.changeDetectorRef.detectChanges();
|
|
651
|
+
});
|
|
652
|
+
return appRef;
|
|
653
|
+
};
|
|
639
654
|
const ngHtml = await renderApplication(bootstrap, {
|
|
640
655
|
document: `<${selector}></${selector}>`,
|
|
641
656
|
});
|
|
@@ -671,7 +686,7 @@ const applyHtmlTransformations = (html, cssFilePaths) => {
|
|
|
671
686
|
const $ = cheerio.load(html, { xml: { lowerCaseAttributeNames: false, lowerCaseTags: false } });
|
|
672
687
|
replacePlaceholders($);
|
|
673
688
|
applyStyles($, cssFilePaths ?? []);
|
|
674
|
-
return $.html().replaceAll('<', '<').replaceAll('>', '>');
|
|
689
|
+
return $.html().replaceAll('<', '<').replaceAll('>', '>').replaceAll('&nbsp;', ' ');
|
|
675
690
|
};
|
|
676
691
|
/**
|
|
677
692
|
* Replaces elements with the `data-html` attribute with their corresponding HTML content.
|
|
@@ -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/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<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 = '<!--[if !mso]><!-->';\n noMsoInnerHtmlPost = '<!--<![endif]-->';\n\n $msoInnerHtmlPre = computed(() => `<!--[if ${this.$expression() ?? 'mso'}]>`);\n msoInnerHtmlPost = '<![endif]-->';\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]; // Total of 116 (excluding non-html5 and also comments, which are \"<!-- [comment] -->\").\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, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-preview',\n templateUrl: 'preview.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\n})\nexport class PreviewComponent {\n $preview = input('', { alias: 'preview' });\n $text = computed(() => {\n const preview = this.$preview();\n const whiteSpaceCodes = '\\xa0\\u200C\\u200B\\u200D\\u200E\\u200F\\uFEFF';\n return whiteSpaceCodes.repeat(150 - preview.length);\n });\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</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","import { 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';\nimport { convert } from 'html-to-text';\nimport { readFileSync } from 'node:fs';\nimport { Config } from 'tailwindcss';\nimport { HTMLElements } from './utils';\n\ntype Render = {\n component: Type<unknown>;\n /** Component selector */\n selector: string;\n options?: {\n plainText?: boolean;\n pretty?: boolean;\n cssFilePaths?: string[];\n /** path or configuration object */\n tailwindConfig?: string | Partial<Config>;\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, options }: Render) => {\n const normalizedHtml = await renderNgComponent(component, selector);\n const html = applyHtmlTransformations(normalizedHtml, options?.cssFilePaths);\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 = await getTailwindConfig(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 selectors: [\n { selector: 'img', format: 'skip' },\n { selector: '#__angular-email-preview', format: 'skip' },\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 (component: Type<unknown>, selector: string) => {\n const bootstrap = () =>\n bootstrapApplication(component, {\n providers: [provideExperimentalZonelessChangeDetection(), provideServerRendering()],\n });\n const ngHtml = await renderApplication(bootstrap, {\n document: `<${selector}></${selector}>`,\n });\n return normalizeNgHtml(ngHtml, selector);\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(`.+<${selector}[\\\\s\\\\S]*?>([\\\\s\\\\S]*?)<\\\\/${selector}>.+`, '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, cssFilePaths?: string[]) => {\n const $ = cheerio.load(html, { xml: { lowerCaseAttributeNames: false, lowerCaseTags: false } });\n replacePlaceholders($);\n applyStyles($, cssFilePaths ?? []);\n return $.html().replaceAll('<', '<').replaceAll('>', '>');\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/**\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, cssFilePaths: string[]) => {\n (cssFilePaths ?? []).forEach((path) => {\n const styleContent = readFileSync(path, { encoding: 'utf-8' });\n $('head').append(`<style>${styleContent}</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 css: {\n shorthand: true,\n inline: {\n applyWidthAttributes: true,\n applyHeightAttributes: true,\n },\n purge: {\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: pretty,\n minify: !pretty,\n })\n ).html;\n};\n\n/**\n * Asynchronously retrieves the Tailwind CSS configuration.\n *\n * @param tailwindConfig - The path to the Tailwind CSS configuration file or a partial configuration object.\n * @returns A promise that resolves to a partial Tailwind CSS configuration object, or `undefined` if no configuration is provided.\n */\nconst getTailwindConfig = async (tailwindConfig?: string | Partial<Config>) => {\n let config: Partial<Config> | undefined;\n if (tailwindConfig) {\n if (typeof tailwindConfig === 'string') {\n config = (await import(tailwindConfig)).default;\n } else {\n config = tailwindConfig;\n }\n }\n return config;\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/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/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<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 = '<!--[if !mso]><!-->';\n noMsoInnerHtmlPost = '<!--<![endif]-->';\n\n $msoInnerHtmlPre = computed(() => `<!--[if ${this.$expression() ?? 'mso'}]>`);\n msoInnerHtmlPost = '<![endif]-->';\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]; // Total of 116 (excluding non-html5 and also comments, which are \"<!-- [comment] -->\").\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, input } from '@angular/core';\n\n@Component({\n selector: 'ng-email-preview',\n templateUrl: 'preview.component.html',\n changeDetection: ChangeDetectionStrategy.OnPush,\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 = '\\u00A0\\u200C\\u200B\\u200D\\u200E\\u200F\\uFEFF';\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 <span [attr.data-html]=\"text\"></span>\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';\nimport { convert } from 'html-to-text';\nimport { readFileSync } from 'node:fs';\nimport { Config } from 'tailwindcss';\nimport { HTMLElements } 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 cssFilePaths?: string[];\n /** path or configuration object */\n tailwindConfig?: string | Partial<Config>;\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 normalizedHtml = await renderNgComponent(component, selector, props);\n const html = applyHtmlTransformations(normalizedHtml, options?.cssFilePaths);\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 = await getTailwindConfig(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 selectors: [\n { selector: 'img', format: 'skip' },\n { selector: '#__angular-email-preview', format: 'skip' },\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 (component: Type<unknown>, selector: string, props?: Record<string, any>) => {\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) {\n componentRef.instance[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 return normalizeNgHtml(ngHtml, selector);\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(`.+<${selector}[\\\\s\\\\S]*?>([\\\\s\\\\S]*?)<\\\\/${selector}>.+`, '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, cssFilePaths?: string[]) => {\n const $ = cheerio.load(html, { xml: { lowerCaseAttributeNames: false, lowerCaseTags: false } });\n replacePlaceholders($);\n applyStyles($, cssFilePaths ?? []);\n return $.html().replaceAll('<', '<').replaceAll('>', '>').replaceAll('&nbsp;', ' ');\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/**\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, cssFilePaths: string[]) => {\n (cssFilePaths ?? []).forEach((path) => {\n const styleContent = readFileSync(path, { encoding: 'utf-8' });\n $('head').append(`<style>${styleContent}</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 css: {\n shorthand: true,\n inline: {\n applyWidthAttributes: true,\n applyHeightAttributes: true,\n },\n purge: {\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: pretty,\n minify: !pretty,\n })\n ).html;\n};\n\n/**\n * Asynchronously retrieves the Tailwind CSS configuration.\n *\n * @param tailwindConfig - The path to the Tailwind CSS configuration file or a partial configuration object.\n * @returns A promise that resolves to a partial Tailwind CSS configuration object, or `undefined` if no configuration is provided.\n */\nconst getTailwindConfig = async (tailwindConfig?: string | Partial<Config>) => {\n let config: Partial<Config> | undefined;\n if (tailwindConfig) {\n if (typeof tailwindConfig === 'string') {\n config = (await import(tailwindConfig)).default;\n } else {\n config = tailwindConfig;\n }\n }\n return config;\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/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,7 +1,8 @@
|
|
|
1
1
|
import * as i0 from "@angular/core";
|
|
2
2
|
export declare class PreviewComponent {
|
|
3
3
|
$preview: import("@angular/core").InputSignal<string>;
|
|
4
|
-
|
|
4
|
+
maxLength: number;
|
|
5
|
+
$text: import("@angular/core").Signal<string | null>;
|
|
5
6
|
static ɵfac: i0.ɵɵFactoryDeclaration<PreviewComponent, never>;
|
|
6
7
|
static ɵcmp: i0.ɵɵComponentDeclaration<PreviewComponent, "ng-email-preview", never, { "$preview": { "alias": "preview"; "required": false; "isSignal": true; }; }, {}, never, never, true, never>;
|
|
7
8
|
}
|
package/lib/render.d.ts
CHANGED
|
@@ -4,6 +4,7 @@ type Render = {
|
|
|
4
4
|
component: Type<unknown>;
|
|
5
5
|
/** Component selector */
|
|
6
6
|
selector: string;
|
|
7
|
+
props?: Record<string, any>;
|
|
7
8
|
options?: {
|
|
8
9
|
plainText?: boolean;
|
|
9
10
|
pretty?: boolean;
|
|
@@ -21,5 +22,5 @@ type Render = {
|
|
|
21
22
|
*
|
|
22
23
|
* @returns {Promise<string>} The rendered HTML or plain text.
|
|
23
24
|
*/
|
|
24
|
-
export declare const render: ({ component, selector, options }: Render) => Promise<string>;
|
|
25
|
+
export declare const render: ({ component, selector, props, options }: Render) => Promise<string>;
|
|
25
26
|
export {};
|