Big News: Socket raises $60M Series C at a $1B valuation to secure software supply chains for AI-driven development.Announcement
Sign In

@squarespace/template-engine

Package Overview
Dependencies
Maintainers
13
Versions
147
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@squarespace/template-engine - npm Package Compare versions

Comparing version
2.8.38
to
2.8.39
+1
-3
lib-es/plugins/formatters.content.js

@@ -420,5 +420,3 @@ var __extends = (this && this.__extends) || (function () {

export { SquarespaceThumbnailForHeightFormatter };
var numberToFixed = function (num, places) {
return Number.isInteger(num) ? String(num) : num.toFixed(places);
};
var numberToFixed = function (num, places) { return parseFloat(num.toFixed(places)); };
var WebsiteColorFormatter = /** @class */ (function (_super) {

@@ -425,0 +423,0 @@ __extends(WebsiteColorFormatter, _super);

@@ -1,1 +0,1 @@

{"version":3,"file":"formatters.content.js","sourceRoot":"","sources":["../../src/plugins/formatters.content.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context } from '../context';\nimport { isTruthy, MISSING_NODE, Node } from '../node';\nimport { Formatter, FormatterTable } from '../plugin';\nimport { executeTemplate } from '../exec';\nimport { Variable } from '../variable';\nimport { RootCode } from '../instructions';\n\nimport { RecordType } from './enums';\nimport { isOnSale, isSoldOut } from './util.commerce';\nimport {\n getAltText,\n getFocalPoint,\n outputImageMeta,\n splitDimensions\n} from './util.content';\nimport { pad } from './util.date';\nimport { escapeHtmlAttributes, slugify } from './util.string';\nimport { hexColorToInt } from './util.color';\n\n// Template imports\nimport audioPlayerTemplate from './templates/audio-player.json';\n\nconst SQUARESPACE_SIZES = ['100w', '300w', '500w', '750w', '1000w', '1500w', '2500w'];\n\nexport class AbsUrlFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const url = ctx.resolve(['base-url']).asString();\n const value = first.node.asString();\n first.set(url + '/' + value);\n }\n}\n\nexport class AudioPlayerFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const text = executeTemplate(ctx, audioPlayerTemplate as unknown as RootCode, first.node, true);\n first.set(text);\n }\n}\n\nexport class CapitalizeFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const value = first.node.asString();\n first.set(value.toUpperCase());\n }\n}\n\nexport class ChildImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const index = args.length === 0 ? 0 : parseInt(args[0], 10);\n const child = first.node.path(['items', index]);\n first.set(outputImageMeta(child, ctx));\n }\n}\n\nexport class CoverImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node.get('coverImage');\n first.set(outputImageMeta(image, ctx));\n }\n}\n\nconst HALFBRIGHT = 0xFFFFFF / 2;\n\nexport class ColorWeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const hex = first.node.asString();\n const color = hexColorToInt(hex);\n if (color === -1) {\n first.set(MISSING_NODE);\n return;\n }\n const weight = color > HALFBRIGHT ? 'light' : 'dark';\n first.set(weight);\n }\n}\n\nexport class HeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const parts = splitDimensions(first.node);\n if (parts === null) {\n first.set(MISSING_NODE);\n } else {\n const height = parseInt(parts[1], 10);\n first.set(height);\n }\n }\n}\n\nexport class HumanizeDurationFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const ms = first.node.asNumber() / 1000 | 0;\n const mins = ms / 60 | 0;\n const secs = ms - (mins * 60);\n const res = `${mins}:${pad(`${secs}`, '0', 2)}`;\n first.set(res);\n }\n}\n\nexport class ImageFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const node = first.node;\n const cls = args.length === 1 ? args[0] : 'thumb-image';\n\n const id = node.get('id').asString();\n const altText = escapeHtmlAttributes(getAltText(ctx, node));\n const assetUrl = node.get('assetUrl').asString();\n\n let res = '<noscript>';\n res += `<img src=\"${assetUrl}\" `;\n res += `alt=\"${altText}\" `;\n res += '/></noscript>';\n\n res += `<img class=\"${cls}\" `;\n res += outputImageMeta(node, ctx, altText);\n\n res += 'data-load=\"false\" ';\n res += `data-image-id=\"${id}\" `;\n res += 'data-type=\"image\" />';\n first.set(res);\n }\n\n}\n\nconst IMAGE_COLOR_POSITIONS = [\n 'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'center'\n];\n\nexport class ImageColorFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const colorData = first.node.get('colorData');\n\n if (colorData.isMissing()) {\n first.set(MISSING_NODE);\n return;\n }\n\n let res = '';\n if (args.length > 0) {\n const key = args[0];\n const color = colorData.get(key + 'Average').asString();\n if (color.length > 0) {\n if (args.length > 1) {\n res += `${args[1]}: `;\n }\n res += `#${color}`;\n } else {\n res += `\"${key}\" not found.`;\n }\n } else {\n const len = IMAGE_COLOR_POSITIONS.length;\n for (let i = 0; i < len; i++) {\n const key = IMAGE_COLOR_POSITIONS[i];\n const value = colorData.get(key + 'Average').asString();\n res += `data-color-${key}=\"#${value}\" `;\n }\n }\n first.set(res);\n }\n}\n\nexport class ImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node;\n first.set(outputImageMeta(image, ctx));\n }\n}\n\nexport class ImageMetaSrcSetFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node;\n if (image.isMissing()) {\n return;\n }\n\n const assetUrl = image.get('assetUrl').asString();\n let variants = image.get('systemDataVariants').asString().split(',');\n variants = variants.filter(v => v[v.length - 1] === 'w');\n if (!variants.length) {\n return;\n }\n\n let originalImageFormatVariant = '';\n const lastVariant = variants[variants.length - 1];\n if (lastVariant !== SQUARESPACE_SIZES[SQUARESPACE_SIZES.length - 1]) {\n // If the largest variant is not the largest available resolution.\n for (let i = SQUARESPACE_SIZES.length - 2; i >= 0; i--) {\n if (lastVariant === SQUARESPACE_SIZES[i]) {\n // Append the original image as the next size up\n originalImageFormatVariant = `,${assetUrl}?format=original ${SQUARESPACE_SIZES[i + 1]}`;\n break;\n }\n }\n }\n\n const _variants = variants.map(v => `${assetUrl}?format=${v} ${v}`).join(',');\n const text = ` srcset=\"${_variants}${originalImageFormatVariant}\"`;\n first.set(text);\n }\n}\n\nconst slugifyClasses = (prefix: string, node: Node) => {\n let res = '';\n const size = node.size();\n for (let i = 0; i < size; i++) {\n const text = slugify(node.get(i).asString());\n res += ` ${prefix}-${text}`;\n }\n return res;\n};\n\nexport class ItemClassesFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const value = first.node;\n\n let res = 'hentry';\n let node = ctx.resolve(['promotedBlockType']);\n if (isTruthy(node)) {\n const text = slugify(node.asString());\n res += ` promoted promoted-block-${text}`;\n }\n\n node = ctx.resolve(['categories']);\n if (isTruthy(node)) {\n res += slugifyClasses('category', node);\n }\n\n node = ctx.resolve(['tags']);\n if (isTruthy(node)) {\n res += slugifyClasses('tag', node);\n }\n\n node = ctx.resolve(['author']);\n const displayName = node.get('displayName');\n if (isTruthy(node) && isTruthy(displayName)) {\n const text = slugify(displayName.asString());\n res += ` author-${text}`;\n }\n\n node = ctx.resolve(['recordTypeLabel']);\n res += ` post-type-${node.asString()}`;\n\n node = ctx.resolve(['@index']);\n if (!node.isMissing()) {\n res += ` article-index-${node.asNumber()}`;\n }\n\n node = ctx.resolve(['starred']);\n if (isTruthy(node)) {\n res += ' featured';\n }\n\n node = value.get('recordType');\n if (RecordType.STORE_ITEM.code === node.asNumber()) {\n if (isOnSale(value)) {\n res += ' on-sale';\n }\n if (isSoldOut(value)) {\n res += ' sold-out';\n }\n }\n\n first.set(res);\n }\n}\n\nconst resize = (ctx: Context, node: Node, resizeWidth: boolean, requested: number) => {\n const parts = splitDimensions(node);\n if (parts === null || parts.length !== 2) {\n return \"Invalid source parameter. Pass in 'originalSize'\";\n }\n const width = parseInt(parts[0], 10);\n const height = parseInt(parts[1], 10);\n let value = 0;\n if (resizeWidth) {\n value = width * (requested / height);\n } else {\n value = height * (requested / width);\n }\n return value | 0;\n};\n\nexport class ResizedHeightForWidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const requested = parseInt(args[0], 10);\n const first = vars[0];\n const text = resize(ctx, first.node, false, requested);\n first.set(text);\n }\n}\n\nexport class ResizedWidthForHeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const requested = parseInt(args[0], 10);\n const first = vars[0];\n const text = resize(ctx, first.node, true, requested);\n first.set(text);\n }\n}\n\nconst getSquarespaceSizeForWidth = (width: number) => {\n if (width > 1000) {\n return '1500w';\n } else if (width > 750) {\n return '1000w';\n } else if (width > 500) {\n return '750w';\n } else if (width > 300) {\n return '500w';\n } else if (width > 100) {\n return '300w';\n }\n return '100w';\n};\n\nexport class SquarespaceThumbnailForWidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const width = parseInt(args[0], 10);\n const first = vars[0];\n first.set(getSquarespaceSizeForWidth(width));\n }\n}\n\nexport class SquarespaceThumbnailForHeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const height = parseInt(args[0], 10);\n const first = vars[0];\n const resized = resize(ctx, first.node, true, height);\n if (typeof resized === 'number') {\n first.set(getSquarespaceSizeForWidth(resized));\n } else {\n first.set(resized);\n }\n }\n}\n\n\nconst numberToFixed = (num: number, places: number): String =>\n Number.isInteger(num) ? String(num) : num.toFixed(places);\n\nexport class WebsiteColorFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n let hasAlphaValue = false;\n let errorMessage = '';\n\n const hueNode = first.node.get('hue');\n const saturationNode = first.node.get('saturation');\n const lightnessNode = first.node.get('lightness');\n\n if (\n hueNode.isMissing() ||\n saturationNode.isMissing() ||\n lightnessNode.isMissing()\n ) {\n first.set('Missing an H/S/L value.');\n return;\n }\n\n const hue = hueNode.asNumber();\n let saturation = saturationNode.asNumber();\n let lightness = lightnessNode.asNumber();\n const alphaNode = first.node.get('alpha');\n let alpha = null;\n if (!alphaNode.isMissing()) {\n hasAlphaValue = true;\n alpha = alphaNode.asNumber();\n }\n\n if (hue < 0 || hue > 360) {\n errorMessage += 'Hue out of bounds. ';\n }\n\n if (saturation >= 0 && saturation <= 1) {\n saturation *= 100;\n } else {\n errorMessage += 'Saturation out of bounds. ';\n }\n\n if (lightness >= 0 && lightness <= 1) {\n lightness *= 100;\n } else {\n errorMessage += 'Lightness out of bounds. ';\n }\n\n if (alpha != null && (alpha < 0 || alpha > 1)) {\n errorMessage += 'Alpha out of bounds.';\n }\n\n if (isTruthy(errorMessage)) {\n first.set(errorMessage);\n return;\n }\n\n let res = '';\n if (hasAlphaValue) {\n res += 'hsla(';\n } else {\n res += 'hsl(';\n }\n\n res += numberToFixed(hue, 1);\n res += ', ';\n res += numberToFixed(saturation, 1);\n res += '%, ';\n res += numberToFixed(lightness, 1);\n\n if (hasAlphaValue) {\n res += '%, ';\n res += numberToFixed(alpha!, 1);\n res += ')';\n } else {\n res += '%)';\n }\n\n first.set(res);\n }\n}\n\nexport class WidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const parts = splitDimensions(first.node);\n if (parts === null) {\n first.set(MISSING_NODE);\n } else {\n const height = parseInt(parts[0], 10);\n first.set(height);\n }\n }\n}\n\nconst COLOR_LOCATIONS = [\n { attr: 'topleft', key: 'topLeftAverage' },\n { attr: 'topright', key: 'topRightAverage' },\n { attr: 'bottomleft', key: 'bottomLeftAverage' },\n { attr: 'bottomright', key: 'bottomRightAverage' },\n { attr: 'center', key: 'centerAverage' },\n];\n\nexport class VideoFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const node = first.node;\n\n const oEmbed = node.get('oembed');\n const colorData = node.get('colorData');\n const assetUrl = node.get('assetUrl').asString();\n const focalPoint = getFocalPoint(node);\n const originalSize = node.get('originalSize').asString();\n const html = escapeHtmlAttributes(oEmbed.get('html').asString());\n const providerName = oEmbed.get('providerName').asString();\n\n let loadFalse = false;\n let useColorData = false;\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (arg === 'load-false') {\n loadFalse = true;\n } else if (arg === 'color-data') {\n useColorData = true;\n }\n }\n\n let res = '<div class=\"sqs-video-wrapper\" ';\n if (loadFalse) {\n res += ' data-load=\"false\" ';\n }\n res += `data-html=\"${html}\" data-provider-name=\"${providerName}\">`;\n\n if (isTruthy(node.get('overlay'))) {\n res += '<div class=\"sqs-video-overlay';\n if (isTruthy(node.get('mainImageId')) || isTruthy(node.get('systemDataId'))) {\n res += '\" style=\"opacity: 0;\">';\n res += `<img data-load=\"false\" data-src=\"${assetUrl}\" `;\n res += `data-image-dimensions=\"${originalSize}\" `;\n res += `data-image-focal-point=\"${focalPoint}\" `;\n\n if (useColorData && isTruthy(colorData)) {\n for (let j = 0; j < COLOR_LOCATIONS.length; j++) {\n const loc = COLOR_LOCATIONS[j];\n const value = colorData.get(loc.key).asString();\n res += `data-color-${loc.attr}=\"#${value}\" `;\n }\n }\n res += '/>';\n } else {\n res += ' no-thumb\" style=\"opacity: 0;\">';\n }\n res += '<div class=\"sqs-video-opaque\"> </div><div class=\"sqs-video-icon\"></div>';\n res += '</div>';\n }\n res += '</div>';\n first.set(res);\n }\n}\n\nexport const CONTENT_FORMATTERS: FormatterTable = {\n 'AbsUrl': new AbsUrlFormatter(),\n 'audio-player': new AudioPlayerFormatter(),\n 'capitalize': new CapitalizeFormatter(),\n 'child-image-meta': new ChildImageMetaFormatter(),\n 'cover-image-meta': new CoverImageMetaFormatter(),\n 'color-weight': new ColorWeightFormatter(),\n 'height': new HeightFormatter(),\n 'humanizeDuration': new HumanizeDurationFormatter(),\n 'image': new ImageFormatter(),\n 'image-color': new ImageColorFormatter(),\n 'image-meta': new ImageMetaFormatter(),\n 'image-srcset': new ImageMetaSrcSetFormatter(),\n 'item-classes': new ItemClassesFormatter(),\n 'resizedHeightForWidth': new ResizedHeightForWidthFormatter(),\n 'resizedWidthForHeight': new ResizedWidthForHeightFormatter(),\n 'squarespaceThumbnailForHeight': new SquarespaceThumbnailForHeightFormatter(),\n 'squarespaceThumbnailForWidth': new SquarespaceThumbnailForWidthFormatter(),\n 'website-color': new WebsiteColorFormatter(),\n 'width': new WidthFormatter(),\n 'video': new VideoFormatter(),\n};\n"]}
{"version":3,"file":"formatters.content.js","sourceRoot":"","sources":["../../src/plugins/formatters.content.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context } from '../context';\nimport { isTruthy, MISSING_NODE, Node } from '../node';\nimport { Formatter, FormatterTable } from '../plugin';\nimport { executeTemplate } from '../exec';\nimport { Variable } from '../variable';\nimport { RootCode } from '../instructions';\n\nimport { RecordType } from './enums';\nimport { isOnSale, isSoldOut } from './util.commerce';\nimport {\n getAltText,\n getFocalPoint,\n outputImageMeta,\n splitDimensions\n} from './util.content';\nimport { pad } from './util.date';\nimport { escapeHtmlAttributes, slugify } from './util.string';\nimport { hexColorToInt } from './util.color';\n\n// Template imports\nimport audioPlayerTemplate from './templates/audio-player.json';\n\nconst SQUARESPACE_SIZES = ['100w', '300w', '500w', '750w', '1000w', '1500w', '2500w'];\n\nexport class AbsUrlFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const url = ctx.resolve(['base-url']).asString();\n const value = first.node.asString();\n first.set(url + '/' + value);\n }\n}\n\nexport class AudioPlayerFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const text = executeTemplate(ctx, audioPlayerTemplate as unknown as RootCode, first.node, true);\n first.set(text);\n }\n}\n\nexport class CapitalizeFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const value = first.node.asString();\n first.set(value.toUpperCase());\n }\n}\n\nexport class ChildImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const index = args.length === 0 ? 0 : parseInt(args[0], 10);\n const child = first.node.path(['items', index]);\n first.set(outputImageMeta(child, ctx));\n }\n}\n\nexport class CoverImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node.get('coverImage');\n first.set(outputImageMeta(image, ctx));\n }\n}\n\nconst HALFBRIGHT = 0xFFFFFF / 2;\n\nexport class ColorWeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const hex = first.node.asString();\n const color = hexColorToInt(hex);\n if (color === -1) {\n first.set(MISSING_NODE);\n return;\n }\n const weight = color > HALFBRIGHT ? 'light' : 'dark';\n first.set(weight);\n }\n}\n\nexport class HeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const parts = splitDimensions(first.node);\n if (parts === null) {\n first.set(MISSING_NODE);\n } else {\n const height = parseInt(parts[1], 10);\n first.set(height);\n }\n }\n}\n\nexport class HumanizeDurationFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const ms = first.node.asNumber() / 1000 | 0;\n const mins = ms / 60 | 0;\n const secs = ms - (mins * 60);\n const res = `${mins}:${pad(`${secs}`, '0', 2)}`;\n first.set(res);\n }\n}\n\nexport class ImageFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const node = first.node;\n const cls = args.length === 1 ? args[0] : 'thumb-image';\n\n const id = node.get('id').asString();\n const altText = escapeHtmlAttributes(getAltText(ctx, node));\n const assetUrl = node.get('assetUrl').asString();\n\n let res = '<noscript>';\n res += `<img src=\"${assetUrl}\" `;\n res += `alt=\"${altText}\" `;\n res += '/></noscript>';\n\n res += `<img class=\"${cls}\" `;\n res += outputImageMeta(node, ctx, altText);\n\n res += 'data-load=\"false\" ';\n res += `data-image-id=\"${id}\" `;\n res += 'data-type=\"image\" />';\n first.set(res);\n }\n\n}\n\nconst IMAGE_COLOR_POSITIONS = [\n 'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'center'\n];\n\nexport class ImageColorFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const colorData = first.node.get('colorData');\n\n if (colorData.isMissing()) {\n first.set(MISSING_NODE);\n return;\n }\n\n let res = '';\n if (args.length > 0) {\n const key = args[0];\n const color = colorData.get(key + 'Average').asString();\n if (color.length > 0) {\n if (args.length > 1) {\n res += `${args[1]}: `;\n }\n res += `#${color}`;\n } else {\n res += `\"${key}\" not found.`;\n }\n } else {\n const len = IMAGE_COLOR_POSITIONS.length;\n for (let i = 0; i < len; i++) {\n const key = IMAGE_COLOR_POSITIONS[i];\n const value = colorData.get(key + 'Average').asString();\n res += `data-color-${key}=\"#${value}\" `;\n }\n }\n first.set(res);\n }\n}\n\nexport class ImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node;\n first.set(outputImageMeta(image, ctx));\n }\n}\n\nexport class ImageMetaSrcSetFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node;\n if (image.isMissing()) {\n return;\n }\n\n const assetUrl = image.get('assetUrl').asString();\n let variants = image.get('systemDataVariants').asString().split(',');\n variants = variants.filter(v => v[v.length - 1] === 'w');\n if (!variants.length) {\n return;\n }\n\n let originalImageFormatVariant = '';\n const lastVariant = variants[variants.length - 1];\n if (lastVariant !== SQUARESPACE_SIZES[SQUARESPACE_SIZES.length - 1]) {\n // If the largest variant is not the largest available resolution.\n for (let i = SQUARESPACE_SIZES.length - 2; i >= 0; i--) {\n if (lastVariant === SQUARESPACE_SIZES[i]) {\n // Append the original image as the next size up\n originalImageFormatVariant = `,${assetUrl}?format=original ${SQUARESPACE_SIZES[i + 1]}`;\n break;\n }\n }\n }\n\n const _variants = variants.map(v => `${assetUrl}?format=${v} ${v}`).join(',');\n const text = ` srcset=\"${_variants}${originalImageFormatVariant}\"`;\n first.set(text);\n }\n}\n\nconst slugifyClasses = (prefix: string, node: Node) => {\n let res = '';\n const size = node.size();\n for (let i = 0; i < size; i++) {\n const text = slugify(node.get(i).asString());\n res += ` ${prefix}-${text}`;\n }\n return res;\n};\n\nexport class ItemClassesFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const value = first.node;\n\n let res = 'hentry';\n let node = ctx.resolve(['promotedBlockType']);\n if (isTruthy(node)) {\n const text = slugify(node.asString());\n res += ` promoted promoted-block-${text}`;\n }\n\n node = ctx.resolve(['categories']);\n if (isTruthy(node)) {\n res += slugifyClasses('category', node);\n }\n\n node = ctx.resolve(['tags']);\n if (isTruthy(node)) {\n res += slugifyClasses('tag', node);\n }\n\n node = ctx.resolve(['author']);\n const displayName = node.get('displayName');\n if (isTruthy(node) && isTruthy(displayName)) {\n const text = slugify(displayName.asString());\n res += ` author-${text}`;\n }\n\n node = ctx.resolve(['recordTypeLabel']);\n res += ` post-type-${node.asString()}`;\n\n node = ctx.resolve(['@index']);\n if (!node.isMissing()) {\n res += ` article-index-${node.asNumber()}`;\n }\n\n node = ctx.resolve(['starred']);\n if (isTruthy(node)) {\n res += ' featured';\n }\n\n node = value.get('recordType');\n if (RecordType.STORE_ITEM.code === node.asNumber()) {\n if (isOnSale(value)) {\n res += ' on-sale';\n }\n if (isSoldOut(value)) {\n res += ' sold-out';\n }\n }\n\n first.set(res);\n }\n}\n\nconst resize = (ctx: Context, node: Node, resizeWidth: boolean, requested: number) => {\n const parts = splitDimensions(node);\n if (parts === null || parts.length !== 2) {\n return \"Invalid source parameter. Pass in 'originalSize'\";\n }\n const width = parseInt(parts[0], 10);\n const height = parseInt(parts[1], 10);\n let value = 0;\n if (resizeWidth) {\n value = width * (requested / height);\n } else {\n value = height * (requested / width);\n }\n return value | 0;\n};\n\nexport class ResizedHeightForWidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const requested = parseInt(args[0], 10);\n const first = vars[0];\n const text = resize(ctx, first.node, false, requested);\n first.set(text);\n }\n}\n\nexport class ResizedWidthForHeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const requested = parseInt(args[0], 10);\n const first = vars[0];\n const text = resize(ctx, first.node, true, requested);\n first.set(text);\n }\n}\n\nconst getSquarespaceSizeForWidth = (width: number) => {\n if (width > 1000) {\n return '1500w';\n } else if (width > 750) {\n return '1000w';\n } else if (width > 500) {\n return '750w';\n } else if (width > 300) {\n return '500w';\n } else if (width > 100) {\n return '300w';\n }\n return '100w';\n};\n\nexport class SquarespaceThumbnailForWidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const width = parseInt(args[0], 10);\n const first = vars[0];\n first.set(getSquarespaceSizeForWidth(width));\n }\n}\n\nexport class SquarespaceThumbnailForHeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const height = parseInt(args[0], 10);\n const first = vars[0];\n const resized = resize(ctx, first.node, true, height);\n if (typeof resized === 'number') {\n first.set(getSquarespaceSizeForWidth(resized));\n } else {\n first.set(resized);\n }\n }\n}\n\n\nconst numberToFixed = (num: number, places: number): number => parseFloat(num.toFixed(places));\n\nexport class WebsiteColorFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n let hasAlphaValue = false;\n let errorMessage = '';\n\n const hueNode = first.node.get('hue');\n const saturationNode = first.node.get('saturation');\n const lightnessNode = first.node.get('lightness');\n\n if (\n hueNode.isMissing() ||\n saturationNode.isMissing() ||\n lightnessNode.isMissing()\n ) {\n first.set('Missing an H/S/L value.');\n return;\n }\n\n const hue = hueNode.asNumber();\n let saturation = saturationNode.asNumber();\n let lightness = lightnessNode.asNumber();\n const alphaNode = first.node.get('alpha');\n let alpha = null;\n if (!alphaNode.isMissing()) {\n hasAlphaValue = true;\n alpha = alphaNode.asNumber();\n }\n\n if (hue < 0 || hue > 360) {\n errorMessage += 'Hue out of bounds. ';\n }\n\n if (saturation >= 0 && saturation <= 1) {\n saturation *= 100;\n } else {\n errorMessage += 'Saturation out of bounds. ';\n }\n\n if (lightness >= 0 && lightness <= 1) {\n lightness *= 100;\n } else {\n errorMessage += 'Lightness out of bounds. ';\n }\n\n if (alpha != null && (alpha < 0 || alpha > 1)) {\n errorMessage += 'Alpha out of bounds.';\n }\n\n if (isTruthy(errorMessage)) {\n first.set(errorMessage);\n return;\n }\n\n let res = '';\n if (hasAlphaValue) {\n res += 'hsla(';\n } else {\n res += 'hsl(';\n }\n\n res += numberToFixed(hue, 1);\n res += ', ';\n res += numberToFixed(saturation, 1);\n res += '%, ';\n res += numberToFixed(lightness, 1);\n\n if (hasAlphaValue) {\n res += '%, ';\n res += numberToFixed(alpha!, 1);\n res += ')';\n } else {\n res += '%)';\n }\n\n first.set(res);\n }\n}\n\nexport class WidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const parts = splitDimensions(first.node);\n if (parts === null) {\n first.set(MISSING_NODE);\n } else {\n const height = parseInt(parts[0], 10);\n first.set(height);\n }\n }\n}\n\nconst COLOR_LOCATIONS = [\n { attr: 'topleft', key: 'topLeftAverage' },\n { attr: 'topright', key: 'topRightAverage' },\n { attr: 'bottomleft', key: 'bottomLeftAverage' },\n { attr: 'bottomright', key: 'bottomRightAverage' },\n { attr: 'center', key: 'centerAverage' },\n];\n\nexport class VideoFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const node = first.node;\n\n const oEmbed = node.get('oembed');\n const colorData = node.get('colorData');\n const assetUrl = node.get('assetUrl').asString();\n const focalPoint = getFocalPoint(node);\n const originalSize = node.get('originalSize').asString();\n const html = escapeHtmlAttributes(oEmbed.get('html').asString());\n const providerName = oEmbed.get('providerName').asString();\n\n let loadFalse = false;\n let useColorData = false;\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (arg === 'load-false') {\n loadFalse = true;\n } else if (arg === 'color-data') {\n useColorData = true;\n }\n }\n\n let res = '<div class=\"sqs-video-wrapper\" ';\n if (loadFalse) {\n res += ' data-load=\"false\" ';\n }\n res += `data-html=\"${html}\" data-provider-name=\"${providerName}\">`;\n\n if (isTruthy(node.get('overlay'))) {\n res += '<div class=\"sqs-video-overlay';\n if (isTruthy(node.get('mainImageId')) || isTruthy(node.get('systemDataId'))) {\n res += '\" style=\"opacity: 0;\">';\n res += `<img data-load=\"false\" data-src=\"${assetUrl}\" `;\n res += `data-image-dimensions=\"${originalSize}\" `;\n res += `data-image-focal-point=\"${focalPoint}\" `;\n\n if (useColorData && isTruthy(colorData)) {\n for (let j = 0; j < COLOR_LOCATIONS.length; j++) {\n const loc = COLOR_LOCATIONS[j];\n const value = colorData.get(loc.key).asString();\n res += `data-color-${loc.attr}=\"#${value}\" `;\n }\n }\n res += '/>';\n } else {\n res += ' no-thumb\" style=\"opacity: 0;\">';\n }\n res += '<div class=\"sqs-video-opaque\"> </div><div class=\"sqs-video-icon\"></div>';\n res += '</div>';\n }\n res += '</div>';\n first.set(res);\n }\n}\n\nexport const CONTENT_FORMATTERS: FormatterTable = {\n 'AbsUrl': new AbsUrlFormatter(),\n 'audio-player': new AudioPlayerFormatter(),\n 'capitalize': new CapitalizeFormatter(),\n 'child-image-meta': new ChildImageMetaFormatter(),\n 'cover-image-meta': new CoverImageMetaFormatter(),\n 'color-weight': new ColorWeightFormatter(),\n 'height': new HeightFormatter(),\n 'humanizeDuration': new HumanizeDurationFormatter(),\n 'image': new ImageFormatter(),\n 'image-color': new ImageColorFormatter(),\n 'image-meta': new ImageMetaFormatter(),\n 'image-srcset': new ImageMetaSrcSetFormatter(),\n 'item-classes': new ItemClassesFormatter(),\n 'resizedHeightForWidth': new ResizedHeightForWidthFormatter(),\n 'resizedWidthForHeight': new ResizedWidthForHeightFormatter(),\n 'squarespaceThumbnailForHeight': new SquarespaceThumbnailForHeightFormatter(),\n 'squarespaceThumbnailForWidth': new SquarespaceThumbnailForWidthFormatter(),\n 'website-color': new WebsiteColorFormatter(),\n 'width': new WidthFormatter(),\n 'video': new VideoFormatter(),\n};\n"]}

@@ -425,5 +425,3 @@ "use strict";

exports.SquarespaceThumbnailForHeightFormatter = SquarespaceThumbnailForHeightFormatter;
var numberToFixed = function (num, places) {
return Number.isInteger(num) ? String(num) : num.toFixed(places);
};
var numberToFixed = function (num, places) { return parseFloat(num.toFixed(places)); };
var WebsiteColorFormatter = /** @class */ (function (_super) {

@@ -430,0 +428,0 @@ __extends(WebsiteColorFormatter, _super);

@@ -1,1 +0,1 @@

{"version":3,"file":"formatters.content.js","sourceRoot":"","sources":["../../src/plugins/formatters.content.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context } from '../context';\nimport { isTruthy, MISSING_NODE, Node } from '../node';\nimport { Formatter, FormatterTable } from '../plugin';\nimport { executeTemplate } from '../exec';\nimport { Variable } from '../variable';\nimport { RootCode } from '../instructions';\n\nimport { RecordType } from './enums';\nimport { isOnSale, isSoldOut } from './util.commerce';\nimport {\n getAltText,\n getFocalPoint,\n outputImageMeta,\n splitDimensions\n} from './util.content';\nimport { pad } from './util.date';\nimport { escapeHtmlAttributes, slugify } from './util.string';\nimport { hexColorToInt } from './util.color';\n\n// Template imports\nimport audioPlayerTemplate from './templates/audio-player.json';\n\nconst SQUARESPACE_SIZES = ['100w', '300w', '500w', '750w', '1000w', '1500w', '2500w'];\n\nexport class AbsUrlFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const url = ctx.resolve(['base-url']).asString();\n const value = first.node.asString();\n first.set(url + '/' + value);\n }\n}\n\nexport class AudioPlayerFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const text = executeTemplate(ctx, audioPlayerTemplate as unknown as RootCode, first.node, true);\n first.set(text);\n }\n}\n\nexport class CapitalizeFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const value = first.node.asString();\n first.set(value.toUpperCase());\n }\n}\n\nexport class ChildImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const index = args.length === 0 ? 0 : parseInt(args[0], 10);\n const child = first.node.path(['items', index]);\n first.set(outputImageMeta(child, ctx));\n }\n}\n\nexport class CoverImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node.get('coverImage');\n first.set(outputImageMeta(image, ctx));\n }\n}\n\nconst HALFBRIGHT = 0xFFFFFF / 2;\n\nexport class ColorWeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const hex = first.node.asString();\n const color = hexColorToInt(hex);\n if (color === -1) {\n first.set(MISSING_NODE);\n return;\n }\n const weight = color > HALFBRIGHT ? 'light' : 'dark';\n first.set(weight);\n }\n}\n\nexport class HeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const parts = splitDimensions(first.node);\n if (parts === null) {\n first.set(MISSING_NODE);\n } else {\n const height = parseInt(parts[1], 10);\n first.set(height);\n }\n }\n}\n\nexport class HumanizeDurationFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const ms = first.node.asNumber() / 1000 | 0;\n const mins = ms / 60 | 0;\n const secs = ms - (mins * 60);\n const res = `${mins}:${pad(`${secs}`, '0', 2)}`;\n first.set(res);\n }\n}\n\nexport class ImageFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const node = first.node;\n const cls = args.length === 1 ? args[0] : 'thumb-image';\n\n const id = node.get('id').asString();\n const altText = escapeHtmlAttributes(getAltText(ctx, node));\n const assetUrl = node.get('assetUrl').asString();\n\n let res = '<noscript>';\n res += `<img src=\"${assetUrl}\" `;\n res += `alt=\"${altText}\" `;\n res += '/></noscript>';\n\n res += `<img class=\"${cls}\" `;\n res += outputImageMeta(node, ctx, altText);\n\n res += 'data-load=\"false\" ';\n res += `data-image-id=\"${id}\" `;\n res += 'data-type=\"image\" />';\n first.set(res);\n }\n\n}\n\nconst IMAGE_COLOR_POSITIONS = [\n 'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'center'\n];\n\nexport class ImageColorFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const colorData = first.node.get('colorData');\n\n if (colorData.isMissing()) {\n first.set(MISSING_NODE);\n return;\n }\n\n let res = '';\n if (args.length > 0) {\n const key = args[0];\n const color = colorData.get(key + 'Average').asString();\n if (color.length > 0) {\n if (args.length > 1) {\n res += `${args[1]}: `;\n }\n res += `#${color}`;\n } else {\n res += `\"${key}\" not found.`;\n }\n } else {\n const len = IMAGE_COLOR_POSITIONS.length;\n for (let i = 0; i < len; i++) {\n const key = IMAGE_COLOR_POSITIONS[i];\n const value = colorData.get(key + 'Average').asString();\n res += `data-color-${key}=\"#${value}\" `;\n }\n }\n first.set(res);\n }\n}\n\nexport class ImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node;\n first.set(outputImageMeta(image, ctx));\n }\n}\n\nexport class ImageMetaSrcSetFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node;\n if (image.isMissing()) {\n return;\n }\n\n const assetUrl = image.get('assetUrl').asString();\n let variants = image.get('systemDataVariants').asString().split(',');\n variants = variants.filter(v => v[v.length - 1] === 'w');\n if (!variants.length) {\n return;\n }\n\n let originalImageFormatVariant = '';\n const lastVariant = variants[variants.length - 1];\n if (lastVariant !== SQUARESPACE_SIZES[SQUARESPACE_SIZES.length - 1]) {\n // If the largest variant is not the largest available resolution.\n for (let i = SQUARESPACE_SIZES.length - 2; i >= 0; i--) {\n if (lastVariant === SQUARESPACE_SIZES[i]) {\n // Append the original image as the next size up\n originalImageFormatVariant = `,${assetUrl}?format=original ${SQUARESPACE_SIZES[i + 1]}`;\n break;\n }\n }\n }\n\n const _variants = variants.map(v => `${assetUrl}?format=${v} ${v}`).join(',');\n const text = ` srcset=\"${_variants}${originalImageFormatVariant}\"`;\n first.set(text);\n }\n}\n\nconst slugifyClasses = (prefix: string, node: Node) => {\n let res = '';\n const size = node.size();\n for (let i = 0; i < size; i++) {\n const text = slugify(node.get(i).asString());\n res += ` ${prefix}-${text}`;\n }\n return res;\n};\n\nexport class ItemClassesFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const value = first.node;\n\n let res = 'hentry';\n let node = ctx.resolve(['promotedBlockType']);\n if (isTruthy(node)) {\n const text = slugify(node.asString());\n res += ` promoted promoted-block-${text}`;\n }\n\n node = ctx.resolve(['categories']);\n if (isTruthy(node)) {\n res += slugifyClasses('category', node);\n }\n\n node = ctx.resolve(['tags']);\n if (isTruthy(node)) {\n res += slugifyClasses('tag', node);\n }\n\n node = ctx.resolve(['author']);\n const displayName = node.get('displayName');\n if (isTruthy(node) && isTruthy(displayName)) {\n const text = slugify(displayName.asString());\n res += ` author-${text}`;\n }\n\n node = ctx.resolve(['recordTypeLabel']);\n res += ` post-type-${node.asString()}`;\n\n node = ctx.resolve(['@index']);\n if (!node.isMissing()) {\n res += ` article-index-${node.asNumber()}`;\n }\n\n node = ctx.resolve(['starred']);\n if (isTruthy(node)) {\n res += ' featured';\n }\n\n node = value.get('recordType');\n if (RecordType.STORE_ITEM.code === node.asNumber()) {\n if (isOnSale(value)) {\n res += ' on-sale';\n }\n if (isSoldOut(value)) {\n res += ' sold-out';\n }\n }\n\n first.set(res);\n }\n}\n\nconst resize = (ctx: Context, node: Node, resizeWidth: boolean, requested: number) => {\n const parts = splitDimensions(node);\n if (parts === null || parts.length !== 2) {\n return \"Invalid source parameter. Pass in 'originalSize'\";\n }\n const width = parseInt(parts[0], 10);\n const height = parseInt(parts[1], 10);\n let value = 0;\n if (resizeWidth) {\n value = width * (requested / height);\n } else {\n value = height * (requested / width);\n }\n return value | 0;\n};\n\nexport class ResizedHeightForWidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const requested = parseInt(args[0], 10);\n const first = vars[0];\n const text = resize(ctx, first.node, false, requested);\n first.set(text);\n }\n}\n\nexport class ResizedWidthForHeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const requested = parseInt(args[0], 10);\n const first = vars[0];\n const text = resize(ctx, first.node, true, requested);\n first.set(text);\n }\n}\n\nconst getSquarespaceSizeForWidth = (width: number) => {\n if (width > 1000) {\n return '1500w';\n } else if (width > 750) {\n return '1000w';\n } else if (width > 500) {\n return '750w';\n } else if (width > 300) {\n return '500w';\n } else if (width > 100) {\n return '300w';\n }\n return '100w';\n};\n\nexport class SquarespaceThumbnailForWidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const width = parseInt(args[0], 10);\n const first = vars[0];\n first.set(getSquarespaceSizeForWidth(width));\n }\n}\n\nexport class SquarespaceThumbnailForHeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const height = parseInt(args[0], 10);\n const first = vars[0];\n const resized = resize(ctx, first.node, true, height);\n if (typeof resized === 'number') {\n first.set(getSquarespaceSizeForWidth(resized));\n } else {\n first.set(resized);\n }\n }\n}\n\n\nconst numberToFixed = (num: number, places: number): String =>\n Number.isInteger(num) ? String(num) : num.toFixed(places);\n\nexport class WebsiteColorFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n let hasAlphaValue = false;\n let errorMessage = '';\n\n const hueNode = first.node.get('hue');\n const saturationNode = first.node.get('saturation');\n const lightnessNode = first.node.get('lightness');\n\n if (\n hueNode.isMissing() ||\n saturationNode.isMissing() ||\n lightnessNode.isMissing()\n ) {\n first.set('Missing an H/S/L value.');\n return;\n }\n\n const hue = hueNode.asNumber();\n let saturation = saturationNode.asNumber();\n let lightness = lightnessNode.asNumber();\n const alphaNode = first.node.get('alpha');\n let alpha = null;\n if (!alphaNode.isMissing()) {\n hasAlphaValue = true;\n alpha = alphaNode.asNumber();\n }\n\n if (hue < 0 || hue > 360) {\n errorMessage += 'Hue out of bounds. ';\n }\n\n if (saturation >= 0 && saturation <= 1) {\n saturation *= 100;\n } else {\n errorMessage += 'Saturation out of bounds. ';\n }\n\n if (lightness >= 0 && lightness <= 1) {\n lightness *= 100;\n } else {\n errorMessage += 'Lightness out of bounds. ';\n }\n\n if (alpha != null && (alpha < 0 || alpha > 1)) {\n errorMessage += 'Alpha out of bounds.';\n }\n\n if (isTruthy(errorMessage)) {\n first.set(errorMessage);\n return;\n }\n\n let res = '';\n if (hasAlphaValue) {\n res += 'hsla(';\n } else {\n res += 'hsl(';\n }\n\n res += numberToFixed(hue, 1);\n res += ', ';\n res += numberToFixed(saturation, 1);\n res += '%, ';\n res += numberToFixed(lightness, 1);\n\n if (hasAlphaValue) {\n res += '%, ';\n res += numberToFixed(alpha!, 1);\n res += ')';\n } else {\n res += '%)';\n }\n\n first.set(res);\n }\n}\n\nexport class WidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const parts = splitDimensions(first.node);\n if (parts === null) {\n first.set(MISSING_NODE);\n } else {\n const height = parseInt(parts[0], 10);\n first.set(height);\n }\n }\n}\n\nconst COLOR_LOCATIONS = [\n { attr: 'topleft', key: 'topLeftAverage' },\n { attr: 'topright', key: 'topRightAverage' },\n { attr: 'bottomleft', key: 'bottomLeftAverage' },\n { attr: 'bottomright', key: 'bottomRightAverage' },\n { attr: 'center', key: 'centerAverage' },\n];\n\nexport class VideoFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const node = first.node;\n\n const oEmbed = node.get('oembed');\n const colorData = node.get('colorData');\n const assetUrl = node.get('assetUrl').asString();\n const focalPoint = getFocalPoint(node);\n const originalSize = node.get('originalSize').asString();\n const html = escapeHtmlAttributes(oEmbed.get('html').asString());\n const providerName = oEmbed.get('providerName').asString();\n\n let loadFalse = false;\n let useColorData = false;\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (arg === 'load-false') {\n loadFalse = true;\n } else if (arg === 'color-data') {\n useColorData = true;\n }\n }\n\n let res = '<div class=\"sqs-video-wrapper\" ';\n if (loadFalse) {\n res += ' data-load=\"false\" ';\n }\n res += `data-html=\"${html}\" data-provider-name=\"${providerName}\">`;\n\n if (isTruthy(node.get('overlay'))) {\n res += '<div class=\"sqs-video-overlay';\n if (isTruthy(node.get('mainImageId')) || isTruthy(node.get('systemDataId'))) {\n res += '\" style=\"opacity: 0;\">';\n res += `<img data-load=\"false\" data-src=\"${assetUrl}\" `;\n res += `data-image-dimensions=\"${originalSize}\" `;\n res += `data-image-focal-point=\"${focalPoint}\" `;\n\n if (useColorData && isTruthy(colorData)) {\n for (let j = 0; j < COLOR_LOCATIONS.length; j++) {\n const loc = COLOR_LOCATIONS[j];\n const value = colorData.get(loc.key).asString();\n res += `data-color-${loc.attr}=\"#${value}\" `;\n }\n }\n res += '/>';\n } else {\n res += ' no-thumb\" style=\"opacity: 0;\">';\n }\n res += '<div class=\"sqs-video-opaque\"> </div><div class=\"sqs-video-icon\"></div>';\n res += '</div>';\n }\n res += '</div>';\n first.set(res);\n }\n}\n\nexport const CONTENT_FORMATTERS: FormatterTable = {\n 'AbsUrl': new AbsUrlFormatter(),\n 'audio-player': new AudioPlayerFormatter(),\n 'capitalize': new CapitalizeFormatter(),\n 'child-image-meta': new ChildImageMetaFormatter(),\n 'cover-image-meta': new CoverImageMetaFormatter(),\n 'color-weight': new ColorWeightFormatter(),\n 'height': new HeightFormatter(),\n 'humanizeDuration': new HumanizeDurationFormatter(),\n 'image': new ImageFormatter(),\n 'image-color': new ImageColorFormatter(),\n 'image-meta': new ImageMetaFormatter(),\n 'image-srcset': new ImageMetaSrcSetFormatter(),\n 'item-classes': new ItemClassesFormatter(),\n 'resizedHeightForWidth': new ResizedHeightForWidthFormatter(),\n 'resizedWidthForHeight': new ResizedWidthForHeightFormatter(),\n 'squarespaceThumbnailForHeight': new SquarespaceThumbnailForHeightFormatter(),\n 'squarespaceThumbnailForWidth': new SquarespaceThumbnailForWidthFormatter(),\n 'website-color': new WebsiteColorFormatter(),\n 'width': new WidthFormatter(),\n 'video': new VideoFormatter(),\n};\n"]}
{"version":3,"file":"formatters.content.js","sourceRoot":"","sources":["../../src/plugins/formatters.content.ts"],"names":[],"mappings":"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","sourcesContent":["import { Context } from '../context';\nimport { isTruthy, MISSING_NODE, Node } from '../node';\nimport { Formatter, FormatterTable } from '../plugin';\nimport { executeTemplate } from '../exec';\nimport { Variable } from '../variable';\nimport { RootCode } from '../instructions';\n\nimport { RecordType } from './enums';\nimport { isOnSale, isSoldOut } from './util.commerce';\nimport {\n getAltText,\n getFocalPoint,\n outputImageMeta,\n splitDimensions\n} from './util.content';\nimport { pad } from './util.date';\nimport { escapeHtmlAttributes, slugify } from './util.string';\nimport { hexColorToInt } from './util.color';\n\n// Template imports\nimport audioPlayerTemplate from './templates/audio-player.json';\n\nconst SQUARESPACE_SIZES = ['100w', '300w', '500w', '750w', '1000w', '1500w', '2500w'];\n\nexport class AbsUrlFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const url = ctx.resolve(['base-url']).asString();\n const value = first.node.asString();\n first.set(url + '/' + value);\n }\n}\n\nexport class AudioPlayerFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const text = executeTemplate(ctx, audioPlayerTemplate as unknown as RootCode, first.node, true);\n first.set(text);\n }\n}\n\nexport class CapitalizeFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const value = first.node.asString();\n first.set(value.toUpperCase());\n }\n}\n\nexport class ChildImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const index = args.length === 0 ? 0 : parseInt(args[0], 10);\n const child = first.node.path(['items', index]);\n first.set(outputImageMeta(child, ctx));\n }\n}\n\nexport class CoverImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node.get('coverImage');\n first.set(outputImageMeta(image, ctx));\n }\n}\n\nconst HALFBRIGHT = 0xFFFFFF / 2;\n\nexport class ColorWeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const hex = first.node.asString();\n const color = hexColorToInt(hex);\n if (color === -1) {\n first.set(MISSING_NODE);\n return;\n }\n const weight = color > HALFBRIGHT ? 'light' : 'dark';\n first.set(weight);\n }\n}\n\nexport class HeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const parts = splitDimensions(first.node);\n if (parts === null) {\n first.set(MISSING_NODE);\n } else {\n const height = parseInt(parts[1], 10);\n first.set(height);\n }\n }\n}\n\nexport class HumanizeDurationFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const ms = first.node.asNumber() / 1000 | 0;\n const mins = ms / 60 | 0;\n const secs = ms - (mins * 60);\n const res = `${mins}:${pad(`${secs}`, '0', 2)}`;\n first.set(res);\n }\n}\n\nexport class ImageFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const node = first.node;\n const cls = args.length === 1 ? args[0] : 'thumb-image';\n\n const id = node.get('id').asString();\n const altText = escapeHtmlAttributes(getAltText(ctx, node));\n const assetUrl = node.get('assetUrl').asString();\n\n let res = '<noscript>';\n res += `<img src=\"${assetUrl}\" `;\n res += `alt=\"${altText}\" `;\n res += '/></noscript>';\n\n res += `<img class=\"${cls}\" `;\n res += outputImageMeta(node, ctx, altText);\n\n res += 'data-load=\"false\" ';\n res += `data-image-id=\"${id}\" `;\n res += 'data-type=\"image\" />';\n first.set(res);\n }\n\n}\n\nconst IMAGE_COLOR_POSITIONS = [\n 'topLeft', 'topRight', 'bottomLeft', 'bottomRight', 'center'\n];\n\nexport class ImageColorFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const colorData = first.node.get('colorData');\n\n if (colorData.isMissing()) {\n first.set(MISSING_NODE);\n return;\n }\n\n let res = '';\n if (args.length > 0) {\n const key = args[0];\n const color = colorData.get(key + 'Average').asString();\n if (color.length > 0) {\n if (args.length > 1) {\n res += `${args[1]}: `;\n }\n res += `#${color}`;\n } else {\n res += `\"${key}\" not found.`;\n }\n } else {\n const len = IMAGE_COLOR_POSITIONS.length;\n for (let i = 0; i < len; i++) {\n const key = IMAGE_COLOR_POSITIONS[i];\n const value = colorData.get(key + 'Average').asString();\n res += `data-color-${key}=\"#${value}\" `;\n }\n }\n first.set(res);\n }\n}\n\nexport class ImageMetaFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node;\n first.set(outputImageMeta(image, ctx));\n }\n}\n\nexport class ImageMetaSrcSetFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const image = first.node;\n if (image.isMissing()) {\n return;\n }\n\n const assetUrl = image.get('assetUrl').asString();\n let variants = image.get('systemDataVariants').asString().split(',');\n variants = variants.filter(v => v[v.length - 1] === 'w');\n if (!variants.length) {\n return;\n }\n\n let originalImageFormatVariant = '';\n const lastVariant = variants[variants.length - 1];\n if (lastVariant !== SQUARESPACE_SIZES[SQUARESPACE_SIZES.length - 1]) {\n // If the largest variant is not the largest available resolution.\n for (let i = SQUARESPACE_SIZES.length - 2; i >= 0; i--) {\n if (lastVariant === SQUARESPACE_SIZES[i]) {\n // Append the original image as the next size up\n originalImageFormatVariant = `,${assetUrl}?format=original ${SQUARESPACE_SIZES[i + 1]}`;\n break;\n }\n }\n }\n\n const _variants = variants.map(v => `${assetUrl}?format=${v} ${v}`).join(',');\n const text = ` srcset=\"${_variants}${originalImageFormatVariant}\"`;\n first.set(text);\n }\n}\n\nconst slugifyClasses = (prefix: string, node: Node) => {\n let res = '';\n const size = node.size();\n for (let i = 0; i < size; i++) {\n const text = slugify(node.get(i).asString());\n res += ` ${prefix}-${text}`;\n }\n return res;\n};\n\nexport class ItemClassesFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const value = first.node;\n\n let res = 'hentry';\n let node = ctx.resolve(['promotedBlockType']);\n if (isTruthy(node)) {\n const text = slugify(node.asString());\n res += ` promoted promoted-block-${text}`;\n }\n\n node = ctx.resolve(['categories']);\n if (isTruthy(node)) {\n res += slugifyClasses('category', node);\n }\n\n node = ctx.resolve(['tags']);\n if (isTruthy(node)) {\n res += slugifyClasses('tag', node);\n }\n\n node = ctx.resolve(['author']);\n const displayName = node.get('displayName');\n if (isTruthy(node) && isTruthy(displayName)) {\n const text = slugify(displayName.asString());\n res += ` author-${text}`;\n }\n\n node = ctx.resolve(['recordTypeLabel']);\n res += ` post-type-${node.asString()}`;\n\n node = ctx.resolve(['@index']);\n if (!node.isMissing()) {\n res += ` article-index-${node.asNumber()}`;\n }\n\n node = ctx.resolve(['starred']);\n if (isTruthy(node)) {\n res += ' featured';\n }\n\n node = value.get('recordType');\n if (RecordType.STORE_ITEM.code === node.asNumber()) {\n if (isOnSale(value)) {\n res += ' on-sale';\n }\n if (isSoldOut(value)) {\n res += ' sold-out';\n }\n }\n\n first.set(res);\n }\n}\n\nconst resize = (ctx: Context, node: Node, resizeWidth: boolean, requested: number) => {\n const parts = splitDimensions(node);\n if (parts === null || parts.length !== 2) {\n return \"Invalid source parameter. Pass in 'originalSize'\";\n }\n const width = parseInt(parts[0], 10);\n const height = parseInt(parts[1], 10);\n let value = 0;\n if (resizeWidth) {\n value = width * (requested / height);\n } else {\n value = height * (requested / width);\n }\n return value | 0;\n};\n\nexport class ResizedHeightForWidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const requested = parseInt(args[0], 10);\n const first = vars[0];\n const text = resize(ctx, first.node, false, requested);\n first.set(text);\n }\n}\n\nexport class ResizedWidthForHeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const requested = parseInt(args[0], 10);\n const first = vars[0];\n const text = resize(ctx, first.node, true, requested);\n first.set(text);\n }\n}\n\nconst getSquarespaceSizeForWidth = (width: number) => {\n if (width > 1000) {\n return '1500w';\n } else if (width > 750) {\n return '1000w';\n } else if (width > 500) {\n return '750w';\n } else if (width > 300) {\n return '500w';\n } else if (width > 100) {\n return '300w';\n }\n return '100w';\n};\n\nexport class SquarespaceThumbnailForWidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const width = parseInt(args[0], 10);\n const first = vars[0];\n first.set(getSquarespaceSizeForWidth(width));\n }\n}\n\nexport class SquarespaceThumbnailForHeightFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const height = parseInt(args[0], 10);\n const first = vars[0];\n const resized = resize(ctx, first.node, true, height);\n if (typeof resized === 'number') {\n first.set(getSquarespaceSizeForWidth(resized));\n } else {\n first.set(resized);\n }\n }\n}\n\n\nconst numberToFixed = (num: number, places: number): number => parseFloat(num.toFixed(places));\n\nexport class WebsiteColorFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n let hasAlphaValue = false;\n let errorMessage = '';\n\n const hueNode = first.node.get('hue');\n const saturationNode = first.node.get('saturation');\n const lightnessNode = first.node.get('lightness');\n\n if (\n hueNode.isMissing() ||\n saturationNode.isMissing() ||\n lightnessNode.isMissing()\n ) {\n first.set('Missing an H/S/L value.');\n return;\n }\n\n const hue = hueNode.asNumber();\n let saturation = saturationNode.asNumber();\n let lightness = lightnessNode.asNumber();\n const alphaNode = first.node.get('alpha');\n let alpha = null;\n if (!alphaNode.isMissing()) {\n hasAlphaValue = true;\n alpha = alphaNode.asNumber();\n }\n\n if (hue < 0 || hue > 360) {\n errorMessage += 'Hue out of bounds. ';\n }\n\n if (saturation >= 0 && saturation <= 1) {\n saturation *= 100;\n } else {\n errorMessage += 'Saturation out of bounds. ';\n }\n\n if (lightness >= 0 && lightness <= 1) {\n lightness *= 100;\n } else {\n errorMessage += 'Lightness out of bounds. ';\n }\n\n if (alpha != null && (alpha < 0 || alpha > 1)) {\n errorMessage += 'Alpha out of bounds.';\n }\n\n if (isTruthy(errorMessage)) {\n first.set(errorMessage);\n return;\n }\n\n let res = '';\n if (hasAlphaValue) {\n res += 'hsla(';\n } else {\n res += 'hsl(';\n }\n\n res += numberToFixed(hue, 1);\n res += ', ';\n res += numberToFixed(saturation, 1);\n res += '%, ';\n res += numberToFixed(lightness, 1);\n\n if (hasAlphaValue) {\n res += '%, ';\n res += numberToFixed(alpha!, 1);\n res += ')';\n } else {\n res += '%)';\n }\n\n first.set(res);\n }\n}\n\nexport class WidthFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const parts = splitDimensions(first.node);\n if (parts === null) {\n first.set(MISSING_NODE);\n } else {\n const height = parseInt(parts[0], 10);\n first.set(height);\n }\n }\n}\n\nconst COLOR_LOCATIONS = [\n { attr: 'topleft', key: 'topLeftAverage' },\n { attr: 'topright', key: 'topRightAverage' },\n { attr: 'bottomleft', key: 'bottomLeftAverage' },\n { attr: 'bottomright', key: 'bottomRightAverage' },\n { attr: 'center', key: 'centerAverage' },\n];\n\nexport class VideoFormatter extends Formatter {\n apply(args: string[], vars: Variable[], ctx: Context): void {\n const first = vars[0];\n const node = first.node;\n\n const oEmbed = node.get('oembed');\n const colorData = node.get('colorData');\n const assetUrl = node.get('assetUrl').asString();\n const focalPoint = getFocalPoint(node);\n const originalSize = node.get('originalSize').asString();\n const html = escapeHtmlAttributes(oEmbed.get('html').asString());\n const providerName = oEmbed.get('providerName').asString();\n\n let loadFalse = false;\n let useColorData = false;\n\n for (let i = 0; i < args.length; i++) {\n const arg = args[i];\n if (arg === 'load-false') {\n loadFalse = true;\n } else if (arg === 'color-data') {\n useColorData = true;\n }\n }\n\n let res = '<div class=\"sqs-video-wrapper\" ';\n if (loadFalse) {\n res += ' data-load=\"false\" ';\n }\n res += `data-html=\"${html}\" data-provider-name=\"${providerName}\">`;\n\n if (isTruthy(node.get('overlay'))) {\n res += '<div class=\"sqs-video-overlay';\n if (isTruthy(node.get('mainImageId')) || isTruthy(node.get('systemDataId'))) {\n res += '\" style=\"opacity: 0;\">';\n res += `<img data-load=\"false\" data-src=\"${assetUrl}\" `;\n res += `data-image-dimensions=\"${originalSize}\" `;\n res += `data-image-focal-point=\"${focalPoint}\" `;\n\n if (useColorData && isTruthy(colorData)) {\n for (let j = 0; j < COLOR_LOCATIONS.length; j++) {\n const loc = COLOR_LOCATIONS[j];\n const value = colorData.get(loc.key).asString();\n res += `data-color-${loc.attr}=\"#${value}\" `;\n }\n }\n res += '/>';\n } else {\n res += ' no-thumb\" style=\"opacity: 0;\">';\n }\n res += '<div class=\"sqs-video-opaque\"> </div><div class=\"sqs-video-icon\"></div>';\n res += '</div>';\n }\n res += '</div>';\n first.set(res);\n }\n}\n\nexport const CONTENT_FORMATTERS: FormatterTable = {\n 'AbsUrl': new AbsUrlFormatter(),\n 'audio-player': new AudioPlayerFormatter(),\n 'capitalize': new CapitalizeFormatter(),\n 'child-image-meta': new ChildImageMetaFormatter(),\n 'cover-image-meta': new CoverImageMetaFormatter(),\n 'color-weight': new ColorWeightFormatter(),\n 'height': new HeightFormatter(),\n 'humanizeDuration': new HumanizeDurationFormatter(),\n 'image': new ImageFormatter(),\n 'image-color': new ImageColorFormatter(),\n 'image-meta': new ImageMetaFormatter(),\n 'image-srcset': new ImageMetaSrcSetFormatter(),\n 'item-classes': new ItemClassesFormatter(),\n 'resizedHeightForWidth': new ResizedHeightForWidthFormatter(),\n 'resizedWidthForHeight': new ResizedWidthForHeightFormatter(),\n 'squarespaceThumbnailForHeight': new SquarespaceThumbnailForHeightFormatter(),\n 'squarespaceThumbnailForWidth': new SquarespaceThumbnailForWidthFormatter(),\n 'website-color': new WebsiteColorFormatter(),\n 'width': new WidthFormatter(),\n 'video': new VideoFormatter(),\n};\n"]}
{
"name": "@squarespace/template-engine",
"version": "2.8.38",
"version": "2.8.39",
"description": "Squarespace template engine",

@@ -5,0 +5,0 @@ "main": "lib/index.js",