mirror of
https://github.com/LuanRT/YouTube.js.git
synced 2026-06-18 03:59:38 +00:00
* feat: add `ClipSection` * fix: Update src/parser/classes/ClipCreation.ts --------- Co-authored-by: absidue <48293849+absidue@users.noreply.github.com>
40 lines
1.5 KiB
TypeScript
40 lines
1.5 KiB
TypeScript
import { YTNode } from '../helpers.js';
|
|
import Thumbnail from './misc/Thumbnail.js';
|
|
import Button from './Button.js';
|
|
import ClipCreationTextInput from './ClipCreationTextInput.js';
|
|
import ClipCreationScrubber from './ClipCreationScrubber.js';
|
|
import ClipAdState from './ClipAdState.js';
|
|
import Text from './misc/Text.js';
|
|
|
|
import { Parser } from '../index.js';
|
|
|
|
import type { RawNode } from '../types/index.js';
|
|
|
|
export default class ClipCreation extends YTNode {
|
|
static type = 'ClipCreation';
|
|
|
|
user_avatar: Thumbnail[];
|
|
title_input: ClipCreationTextInput | null;
|
|
scrubber: ClipCreationScrubber | null;
|
|
save_button: Button | null;
|
|
display_name: Text;
|
|
publicity_label: string;
|
|
cancel_button: Button | null;
|
|
ad_state_overlay: ClipAdState | null;
|
|
external_video_id: string;
|
|
publicity_label_icon: string;
|
|
|
|
constructor(data: RawNode) {
|
|
super();
|
|
this.user_avatar = Thumbnail.fromResponse(data.userAvatar);
|
|
this.title_input = Parser.parseItem(data.titleInput, [ ClipCreationTextInput ]);
|
|
this.scrubber = Parser.parseItem(data.scrubber, [ ClipCreationScrubber ]);
|
|
this.save_button = Parser.parseItem(data.saveButton, [ Button ]);
|
|
this.display_name = new Text(data.displayName);
|
|
this.publicity_label = data.publicityLabel;
|
|
this.cancel_button = Parser.parseItem(data.cancelButton, [ Button ]);
|
|
this.ad_state_overlay = Parser.parseItem(data.adStateOverlay, [ ClipAdState ]);
|
|
this.external_video_id = data.externalVideoId;
|
|
this.publicity_label_icon = data.publicityLabelIcon;
|
|
}
|
|
} |