/** * SPDX-FileCopyrightText: 2024 Sascha Nitsch (grumpydeveloper) https://contentnation.net/@grumpydevelop * SPDX-License-Identifier: GPL-3.0-or-later * @author Author: Sascha Nitsch (grumpydeveloper) **/ import { RTNode } from './rtnode'; import { RenderTree } from './rendertree'; /** * custom user declared module */ export class RTModule extends RTNode { /** render tree for our children */ private tree: RenderTree; /** * clone function * @return a copy of us */ clone(): RTModule { const tree = new RenderTree(this.root.getMain(), this.tree); return new RTModule(this.root, tree); } /** * constructor * @param root parent RenderTree * @param tree child renderTree */ constructor(root: RenderTree, tree: RenderTree) { super(root); this.tree = tree; } /** * render module content to given target * @param target target to render to */ render(target: HTMLElement): void { this.tree.render(target); } }