43 lines
989 B
TypeScript
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);
|
|
}
|
|
}
|