mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-16 19:12:24 +00:00
26 lines
795 B
TypeScript
26 lines
795 B
TypeScript
import { Parser, type RawNode } from '../index.js';
|
|
import ChildElement from './misc/ChildElement.js';
|
|
import { type ObservedArray, YTNode, observe } from '../helpers.js';
|
|
|
|
export default class Element extends YTNode {
|
|
static type = 'Element';
|
|
|
|
model?: YTNode;
|
|
child_elements?: ObservedArray<ChildElement>;
|
|
|
|
constructor(data: RawNode) {
|
|
super();
|
|
|
|
if (Reflect.has(data, 'elementRenderer')) {
|
|
return Parser.parseItem(data, Element) as Element;
|
|
}
|
|
|
|
const type = data.newElement.type.componentType;
|
|
|
|
this.model = Parser.parseItem(type?.model);
|
|
|
|
if (Reflect.has(data, 'newElement') && Reflect.has(data.newElement, 'childElements')) {
|
|
this.child_elements = observe(data.newElement.childElements?.map((el: RawNode) => new ChildElement(el)) || []);
|
|
}
|
|
}
|
|
} |