import Node from './shared/Node.js'; import EventHandler from './EventHandler.js'; import Action from './Action.js'; /** @extends Node<'Body'> */ export default class Body extends Node { /** @type {import('./EventHandler.js').default[]} */ handlers = []; /** @type {import('./Action.js').default[]} */ actions = []; /** * @param {import('../Component.js').default} component * @param {import('./shared/Node.js').default} parent * @param {import('./shared/TemplateScope.js').default} scope * @param {import('../../interfaces.js').Element} info */ constructor(component, parent, scope, info) { super(component, parent, scope, info); info.attributes.forEach((node) => { if (node.type === 'EventHandler') { this.handlers.push(new EventHandler(component, this, scope, node)); } else if (node.type === 'Action') { this.actions.push(new Action(component, this, scope, node)); } else { // TODO there shouldn't be anything else here... } }); } }