Skip to content
This plugin is new and currently in beta. For the stable version, please use the previous version of the plugin.

TemplateModifier

Interface for managing template modifications in the Stripo Email Editor Extensions SDK.

typescript
interface TemplateModifier<HtmlNodeModifier, CssNodeModifier>

Description

The TemplateModifier interface provides a unified API for modifying both HTML and CSS nodes in email templates. It follows a fluent interface pattern, allowing method chaining for multiple modifications before applying them as a single transaction.

Import

typescript
import { TemplateModifier } from '@stripoinc/ui-editor-extensions';

Properties

None

Methods

modifyHtml()

Sets the HTML node for modification and returns an HtmlNodeModifier instance.

typescript
modifyHtml(node: ImmutableHtmlNode): HtmlNodeModifier

Parameters

ParameterTypeDescription
nodeImmutableHtmlNodeThe HTML node to modify

Returns

HtmlNodeModifier - Interface for chaining HTML modifications

Usage Notes

  • Call this method to begin modifying an HTML element
  • Multiple HTML nodes can be modified in a single transaction
  • Changes are not applied until apply() is called

Example

typescript
const modifier = this.api.getDocumentModifier();
modifier.modifyHtml(buttonNode)
    .setStyle('background', 'blue')
    .apply(description);

modifyCss()

Sets the CSS node for modification and returns a CssNodeModifier instance.

typescript
modifyCss(node: ImmutableCssNode): CssNodeModifier

Parameters

ParameterTypeDescription
nodeImmutableCssNodeThe CSS node to modify

Returns

CssNodeModifier - Interface for chaining CSS modifications

Usage Notes

  • Use this method to modify CSS rules and properties
  • Can be combined with HTML modifications in the same transaction
  • Supports media queries and nested rules

Example

typescript
modifier.modifyCss(cssNode)
    .setProperty('color', 'red')
    .setProperty('font-size', '16px')
    .apply(description);

apply()

Applies all accumulated modifications as a single transaction.

typescript
apply(description: ModificationDescription): void

Parameters

ParameterTypeDescription
descriptionModificationDescriptionDescription object providing context about the modifications

Returns

void

Usage Notes

  • This method executes all queued modifications
  • Modifications are applied atomically
  • The description is used for version history and undo/redo

Example

typescript
modifier
    .modifyHtml(htmlNode)
        .setInnerHtml('New content')
    .modifyCss(cssNode)
        .setProperty('margin', '10px')
    .apply(new ModificationDescription('Updated content and styling'));