diff --git a/src/parser/classes/Button.ts b/src/parser/classes/Button.ts index 46e37c92..2bc9f081 100644 --- a/src/parser/classes/Button.ts +++ b/src/parser/classes/Button.ts @@ -9,8 +9,11 @@ export default class Button extends YTNode { text?: string; label?: string; tooltip?: string; + style?: string; + size?: string; icon_type?: string; is_disabled?: boolean; + target_id?: string; endpoint: NavigationEndpoint; constructor(data: RawNode) { @@ -18,18 +21,34 @@ export default class Button extends YTNode { if (Reflect.has(data, 'text')) this.text = new Text(data.text).toString(); - if (Reflect.has(data, 'accessibility') && Reflect.has(data.accessibility, 'label')) + if (Reflect.has(data, 'accessibility') && Reflect.has(data.accessibility, 'label')) { this.label = data.accessibility.label; + } else if ( + Reflect.has(data, 'accessibilityData') && + Reflect.has(data.accessibilityData, 'accessibilityData') && + Reflect.has(data.accessibilityData.accessibilityData, 'label') + ) { + this.label = data.accessibilityData.accessibilityData.label; + } if (Reflect.has(data, 'tooltip')) this.tooltip = data.tooltip; + if (Reflect.has(data, 'style')) + this.style = data.style; + + if (Reflect.has(data, 'size')) + this.size = data.size; + if (Reflect.has(data, 'icon') && Reflect.has(data.icon, 'iconType')) this.icon_type = data.icon.iconType; if (Reflect.has(data, 'isDisabled')) this.is_disabled = data.isDisabled; + if (Reflect.has(data, 'targetId')) + this.target_id = data.targetId; + this.endpoint = new NavigationEndpoint(data.navigationEndpoint || data.serviceEndpoint || data.command); } } \ No newline at end of file