UNPKG

@surface/custom-element

Version:

Provides support of directives and data binding on custom elements.

20 lines (19 loc) 758 B
export default function fragmentFactory(factories) { return () => { const fragment = document.createDocumentFragment(); const activators = []; for (const factory of factories) { const [element, activator] = factory(); fragment.appendChild(element); activators.push(activator); } const activator = (parent, host, scope, directives) => { const disposables = []; for (const activator of activators) { disposables.push(activator(parent, host, scope, directives)); } return { dispose: () => disposables.splice(0).forEach(x => x.dispose()) }; }; return [fragment, activator]; }; }