diff --git a/src/parser/classes/ToggleFormField.ts b/src/parser/classes/ToggleFormField.ts new file mode 100644 index 00000000..7131242b --- /dev/null +++ b/src/parser/classes/ToggleFormField.ts @@ -0,0 +1,24 @@ +import { type RawNode } from '../index.js'; +import { YTNode } from '../helpers.js'; +import NavigationEndpoint from './NavigationEndpoint.js'; + +export default class ToggleFormField extends YTNode { + static type = 'ToggleFormField'; + + public label: Text; + public toggled: boolean; + public toggle_on_action?: NavigationEndpoint; + public toggle_off_action?: NavigationEndpoint; + + constructor(data: RawNode) { + super(); + this.label = new Text(data.label); + this.toggled = data.toggled; + + if ('toggleOnAction' in data) + this.toggle_on_action = new NavigationEndpoint(data.toggleOnAction); + + if ('toggleOffAction' in data) + this.toggle_off_action = new NavigationEndpoint(data.toggleOffAction); + } +} \ No newline at end of file diff --git a/src/parser/nodes.ts b/src/parser/nodes.ts index 69fa4161..1c297fd2 100644 --- a/src/parser/nodes.ts +++ b/src/parser/nodes.ts @@ -488,6 +488,7 @@ export { default as TimedMarkerDecoration } from './classes/TimedMarkerDecoratio export { default as TitleAndButtonListHeader } from './classes/TitleAndButtonListHeader.js'; export { default as ToggleButton } from './classes/ToggleButton.js'; export { default as ToggleButtonView } from './classes/ToggleButtonView.js'; +export { default as ToggleFormField } from './classes/ToggleFormField.js'; export { default as ToggleMenuServiceItem } from './classes/ToggleMenuServiceItem.js'; export { default as Tooltip } from './classes/Tooltip.js'; export { default as TopicChannelDetails } from './classes/TopicChannelDetails.js';