presentationmaker_js/src/rendertree/rtmodule.ts
2024-07-05 20:16:58 +02:00

43 lines
989 B
TypeScript

/**
* 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);
}
}