UNPKG

@github/template-parts

Version:

An implementation of the TemplateInstance proposal (https://github.com/w3c/webcomponents/blob/159b1600bab02fe9cd794825440a98537d53b389/proposals/Template-Instantiation.md)

35 lines 1.28 kB
import { AttributeTemplatePart } from './attribute-template-part.js'; export function createProcessor(processPart) { return { processCallback(_, parts, state) { var _a; if (typeof state !== 'object' || !state) return; for (const part of parts) { if (part.expression in state) { const value = (_a = state[part.expression]) !== null && _a !== void 0 ? _a : ''; processPart(part, value, state); } } }, }; } export function processPropertyIdentity(part, value) { part.value = value instanceof Node ? value : String(value); } export function processBooleanAttribute(part, value) { if (typeof value === 'boolean' && part instanceof AttributeTemplatePart && typeof part.element[part.attributeName] === 'boolean') { part.booleanValue = value; return true; } return false; } export const propertyIdentity = createProcessor(processPropertyIdentity); export const propertyIdentityOrBooleanAttribute = createProcessor((part, value) => { if (!processBooleanAttribute(part, value)) { processPropertyIdentity(part, value); } }); //# sourceMappingURL=processors.js.map