// Shared offcanvas renderer for region placeholder documentation. (function () { var root = window; function escapeHtml(value) { return String(value === undefined || value === null ? '' : value) .replace(/&/g, '&') .replace(//g, '>') .replace(/"/g, '"') .replace(/'/g, '''); } function render(regionId, title, body) { var offcanvasId = String(regionId || 'region') + '-placeholder-info'; return '' + '' + '
' + '
' + '

' + escapeHtml(title) + '

' + '' + '
' + '
' + body + '
' + '
'; } function renderTextTransforms() { return '

Text transforms

' + '
' + '
upper()
Converts text to uppercase.
' + '
lower()
Converts text to lowercase.
' + '
title()
Capitalizes each word.
' + '
tz()
Returns the short timezone name for a date.
' + '
tz_long()
Returns the full timezone name for a date.
' + '
'; } function renderDateFormatTokens() { return '

Date format tokens

' + '

Use the format("...") transform with these tokens. Text inside square brackets is treated as a literal.

' + '
' + '' + '' + '' + '' + '' + '' + '' + '' + '
TokenMeaningExample
YYYYFour-digit year2026
YYTwo-digit year26
MMMMFull month nameAugust
MMMShort month nameAug
MMTwo-digit month08
MMonth number8
DDTwo-digit day16
DDay number16
ddddFull weekday nameSunday
dddShort weekday nameSun
HH / H24-hour time19 / 7
hh / h12-hour time07 / 7
mm / mMinutes05 / 5
ss / sSeconds09 / 9
A / aAM or PMPM / pm
'; } function renderImageTransform() { return '

Image transform

' + '

Use image(width, height) to render an image URL inside a proportional bounding box.

' + ''; } root.placeholderInfo = { escapeHtml: escapeHtml, render: render, renderTextTransforms: renderTextTransforms, renderDateFormatTokens: renderDateFormatTokens, renderImageTransform: renderImageTransform }; }());