ToneSnap_FSX_Flutter/lib/data/models/browse_model.dart
fengshengxiong c7cbdb04be 个人曲库
2024-07-14 16:13:46 +08:00

3030 lines
92 KiB
Dart

// Author: fengshengxiong
// Date: 2024/6/18
// Description: Browse-首页模型
import 'dart:convert';
class BrowseModel {
ResponseContext? responseContext;
Contents? contents;
ContinuationContents? continuationContents;
String? trackingParams;
int? maxAgeStoreSeconds;
ThumbnailClass? background;
BrowseModel({
this.responseContext,
this.contents,
this.continuationContents,
this.trackingParams,
this.maxAgeStoreSeconds,
this.background,
});
factory BrowseModel.fromJson(String str) => BrowseModel.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory BrowseModel.fromMap(Map<String, dynamic> json) => BrowseModel(
responseContext: json["responseContext"] == null ? null : ResponseContext.fromMap(json["responseContext"]),
contents: json["contents"] == null ? null : Contents.fromMap(json["contents"]),
continuationContents: json["continuationContents"] == null ? null : ContinuationContents.fromMap(json["continuationContents"]),
trackingParams: json["trackingParams"],
maxAgeStoreSeconds: json["maxAgeStoreSeconds"],
background: json["background"] == null ? null : ThumbnailClass.fromMap(json["background"]),
);
Map<String, dynamic> toMap() => {
"responseContext": responseContext?.toMap(),
"contents": contents?.toMap(),
"continuationContents": continuationContents?.toMap(),
"trackingParams": trackingParams,
"maxAgeStoreSeconds": maxAgeStoreSeconds,
"background": background?.toMap(),
};
}
class ThumbnailClass {
MusicThumbnailRenderer? musicThumbnailRenderer;
ThumbnailClass({
this.musicThumbnailRenderer,
});
factory ThumbnailClass.fromJson(String str) => ThumbnailClass.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ThumbnailClass.fromMap(Map<String, dynamic> json) => ThumbnailClass(
musicThumbnailRenderer: json["musicThumbnailRenderer"] == null ? null : MusicThumbnailRenderer.fromMap(json["musicThumbnailRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicThumbnailRenderer": musicThumbnailRenderer?.toMap(),
};
}
class MusicThumbnailRenderer {
MusicThumbnailRendererThumbnail? thumbnail;
String? thumbnailCrop;
String? thumbnailScale;
String? trackingParams;
MusicThumbnailRenderer({
this.thumbnail,
this.thumbnailCrop,
this.thumbnailScale,
this.trackingParams,
});
factory MusicThumbnailRenderer.fromJson(String str) => MusicThumbnailRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicThumbnailRenderer.fromMap(Map<String, dynamic> json) => MusicThumbnailRenderer(
thumbnail: json["thumbnail"] == null ? null : MusicThumbnailRendererThumbnail.fromMap(json["thumbnail"]),
thumbnailCrop: json["thumbnailCrop"],
thumbnailScale: json["thumbnailScale"],
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"thumbnail": thumbnail?.toMap(),
"thumbnailCrop": thumbnailCrop,
"thumbnailScale": thumbnailScale,
"trackingParams": trackingParams,
};
}
class MusicThumbnailRendererThumbnail {
List<ThumbnailElement>? thumbnails;
MusicThumbnailRendererThumbnail({
this.thumbnails,
});
factory MusicThumbnailRendererThumbnail.fromJson(String str) => MusicThumbnailRendererThumbnail.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicThumbnailRendererThumbnail.fromMap(Map<String, dynamic> json) => MusicThumbnailRendererThumbnail(
thumbnails: json["thumbnails"] == null ? [] : List<ThumbnailElement>.from(json["thumbnails"]!.map((x) => ThumbnailElement.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"thumbnails": thumbnails == null ? [] : List<dynamic>.from(thumbnails!.map((x) => x.toMap())),
};
}
class ThumbnailElement {
String? url;
int? width;
int? height;
ThumbnailElement({
this.url,
this.width,
this.height,
});
factory ThumbnailElement.fromJson(String str) => ThumbnailElement.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ThumbnailElement.fromMap(Map<String, dynamic> json) => ThumbnailElement(
url: json["url"],
width: json["width"],
height: json["height"],
);
Map<String, dynamic> toMap() => {
"url": url,
"width": width,
"height": height,
};
}
class Contents {
SingleColumnBrowseResultsRenderer? singleColumnBrowseResultsRenderer;
Contents({
this.singleColumnBrowseResultsRenderer,
});
factory Contents.fromJson(String str) => Contents.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Contents.fromMap(Map<String, dynamic> json) => Contents(
singleColumnBrowseResultsRenderer: json["singleColumnBrowseResultsRenderer"] == null ? null : SingleColumnBrowseResultsRenderer.fromMap(json["singleColumnBrowseResultsRenderer"]),
);
Map<String, dynamic> toMap() => {
"singleColumnBrowseResultsRenderer": singleColumnBrowseResultsRenderer?.toMap(),
};
}
class SingleColumnBrowseResultsRenderer {
List<Tab>? tabs;
SingleColumnBrowseResultsRenderer({
this.tabs,
});
factory SingleColumnBrowseResultsRenderer.fromJson(String str) => SingleColumnBrowseResultsRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory SingleColumnBrowseResultsRenderer.fromMap(Map<String, dynamic> json) => SingleColumnBrowseResultsRenderer(
tabs: json["tabs"] == null ? [] : List<Tab>.from(json["tabs"]!.map((x) => Tab.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"tabs": tabs == null ? [] : List<dynamic>.from(tabs!.map((x) => x.toMap())),
};
}
class Tab {
TabRenderer? tabRenderer;
Tab({
this.tabRenderer,
});
factory Tab.fromJson(String str) => Tab.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Tab.fromMap(Map<String, dynamic> json) => Tab(
tabRenderer: json["tabRenderer"] == null ? null : TabRenderer.fromMap(json["tabRenderer"]),
);
Map<String, dynamic> toMap() => {
"tabRenderer": tabRenderer?.toMap(),
};
}
class TabRenderer {
Endpoint? endpoint;
String? title;
bool? selected;
TabRendererContent? content;
Icon? icon;
String? tabIdentifier;
String? trackingParams;
TabRenderer({
this.endpoint,
this.title,
this.selected,
this.content,
this.icon,
this.tabIdentifier,
this.trackingParams,
});
factory TabRenderer.fromJson(String str) => TabRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory TabRenderer.fromMap(Map<String, dynamic> json) => TabRenderer(
endpoint: json["endpoint"] == null ? null : Endpoint.fromMap(json["endpoint"]),
title: json["title"],
selected: json["selected"],
content: json["content"] == null ? null : TabRendererContent.fromMap(json["content"]),
icon: json["icon"] == null ? null : Icon.fromMap(json["icon"]),
tabIdentifier: json["tabIdentifier"],
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"endpoint": endpoint?.toMap(),
"title": title,
"selected": selected,
"content": content?.toMap(),
"icon": icon?.toMap(),
"tabIdentifier": tabIdentifier,
"trackingParams": trackingParams,
};
}
class TabRendererContent {
SectionList? sectionListRenderer;
TabRendererContent({
this.sectionListRenderer,
});
factory TabRendererContent.fromJson(String str) => TabRendererContent.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory TabRendererContent.fromMap(Map<String, dynamic> json) => TabRendererContent(
sectionListRenderer: json["sectionListRenderer"] == null ? null : SectionList.fromMap(json["sectionListRenderer"]),
);
Map<String, dynamic> toMap() => {
"sectionListRenderer": sectionListRenderer?.toMap(),
};
}
class SectionList {
List<SectionListContinuationContent>? contents;
List<Continuation>? continuations;
String? trackingParams;
SectionListContinuationHeader? header;
SectionList({
this.contents,
this.continuations,
this.trackingParams,
this.header,
});
factory SectionList.fromJson(String str) => SectionList.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory SectionList.fromMap(Map<String, dynamic> json) => SectionList(
contents: json["contents"] == null ? [] : List<SectionListContinuationContent>.from(json["contents"]!.map((x) => SectionListContinuationContent.fromMap(x))),
continuations: json["continuations"] == null ? [] : List<Continuation>.from(json["continuations"]!.map((x) => Continuation.fromMap(x))),
trackingParams: json["trackingParams"],
header: json["header"] == null ? null : SectionListContinuationHeader.fromMap(json["header"]),
);
Map<String, dynamic> toMap() => {
"contents": contents == null ? [] : List<dynamic>.from(contents!.map((x) => x.toMap())),
"continuations": continuations == null ? [] : List<dynamic>.from(continuations!.map((x) => x.toMap())),
"trackingParams": trackingParams,
"header": header?.toMap(),
};
}
class SectionListContinuationContent {
MusicCarouselShelfRenderer? musicCarouselShelfRenderer;
MusicTastebuilderShelfRenderer? musicTastebuilderShelfRenderer;
SectionListContinuationContent({
this.musicCarouselShelfRenderer,
this.musicTastebuilderShelfRenderer,
});
factory SectionListContinuationContent.fromJson(String str) => SectionListContinuationContent.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory SectionListContinuationContent.fromMap(Map<String, dynamic> json) => SectionListContinuationContent(
musicCarouselShelfRenderer: json["musicCarouselShelfRenderer"] == null ? null : MusicCarouselShelfRenderer.fromMap(json["musicCarouselShelfRenderer"]),
musicTastebuilderShelfRenderer: json["musicTastebuilderShelfRenderer"] == null ? null : MusicTastebuilderShelfRenderer.fromMap(json["musicTastebuilderShelfRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicCarouselShelfRenderer": musicCarouselShelfRenderer?.toMap(),
"musicTastebuilderShelfRenderer": musicTastebuilderShelfRenderer?.toMap(),
};
}
class MusicCarouselShelfRenderer {
MusicCarouselShelfRendererHeader? header;
List<MusicCarouselShelfRendererContent>? contents;
String? trackingParams;
String? itemSize;
String? numItemsPerColumn;
MusicCarouselShelfRenderer({
this.header,
this.contents,
this.trackingParams,
this.itemSize,
this.numItemsPerColumn,
});
factory MusicCarouselShelfRenderer.fromJson(String str) => MusicCarouselShelfRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicCarouselShelfRenderer.fromMap(Map<String, dynamic> json) => MusicCarouselShelfRenderer(
header: json["header"] == null ? null : MusicCarouselShelfRendererHeader.fromMap(json["header"]),
contents: json["contents"] == null ? [] : List<MusicCarouselShelfRendererContent>.from(json["contents"]!.map((x) => MusicCarouselShelfRendererContent.fromMap(x))),
trackingParams: json["trackingParams"],
itemSize: json["itemSize"],
numItemsPerColumn: json["numItemsPerColumn"],
);
Map<String, dynamic> toMap() => {
"header": header?.toMap(),
"contents": contents == null ? [] : List<dynamic>.from(contents!.map((x) => x.toMap())),
"trackingParams": trackingParams,
"itemSize": itemSize,
"numItemsPerColumn": numItemsPerColumn,
};
}
class MusicCarouselShelfRendererContent {
MusicResponsiveListItemRenderer? musicResponsiveListItemRenderer;
MusicTwoRowItemRenderer? musicTwoRowItemRenderer;
MusicCarouselShelfRendererContent({
this.musicResponsiveListItemRenderer,
this.musicTwoRowItemRenderer,
});
factory MusicCarouselShelfRendererContent.fromJson(String str) => MusicCarouselShelfRendererContent.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicCarouselShelfRendererContent.fromMap(Map<String, dynamic> json) => MusicCarouselShelfRendererContent(
musicResponsiveListItemRenderer: json["musicResponsiveListItemRenderer"] == null ? null : MusicResponsiveListItemRenderer.fromMap(json["musicResponsiveListItemRenderer"]),
musicTwoRowItemRenderer: json["musicTwoRowItemRenderer"] == null ? null : MusicTwoRowItemRenderer.fromMap(json["musicTwoRowItemRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicResponsiveListItemRenderer": musicResponsiveListItemRenderer?.toMap(),
"musicTwoRowItemRenderer": musicTwoRowItemRenderer?.toMap(),
};
}
class MusicResponsiveListItemRenderer {
String? trackingParams;
ThumbnailClass? thumbnail;
Overlay? overlay;
List<FlexColumn>? flexColumns;
MusicResponsiveListItemRendererMenu? menu;
PlaylistItemData? playlistItemData;
String? flexColumnDisplayStyle;
String? itemHeight;
MusicResponsiveListItemRenderer({
this.trackingParams,
this.thumbnail,
this.overlay,
this.flexColumns,
this.menu,
this.playlistItemData,
this.flexColumnDisplayStyle,
this.itemHeight,
});
factory MusicResponsiveListItemRenderer.fromJson(String str) => MusicResponsiveListItemRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicResponsiveListItemRenderer.fromMap(Map<String, dynamic> json) => MusicResponsiveListItemRenderer(
trackingParams: json["trackingParams"],
thumbnail: json["thumbnail"] == null ? null : ThumbnailClass.fromMap(json["thumbnail"]),
overlay: json["overlay"] == null ? null : Overlay.fromMap(json["overlay"]),
flexColumns: json["flexColumns"] == null ? [] : List<FlexColumn>.from(json["flexColumns"]!.map((x) => FlexColumn.fromMap(x))),
menu: json["menu"] == null ? null : MusicResponsiveListItemRendererMenu.fromMap(json["menu"]),
playlistItemData: json["playlistItemData"] == null ? null : PlaylistItemData.fromMap(json["playlistItemData"]),
flexColumnDisplayStyle: json["flexColumnDisplayStyle"],
itemHeight: json["itemHeight"],
);
Map<String, dynamic> toMap() => {
"trackingParams": trackingParams,
"thumbnail": thumbnail?.toMap(),
"overlay": overlay?.toMap(),
"flexColumns": flexColumns == null ? [] : List<dynamic>.from(flexColumns!.map((x) => x.toMap())),
"menu": menu?.toMap(),
"playlistItemData": playlistItemData?.toMap(),
"flexColumnDisplayStyle": flexColumnDisplayStyle,
"itemHeight": itemHeight,
};
}
class FlexColumn {
MusicResponsiveListItemFlexColumnRenderer? musicResponsiveListItemFlexColumnRenderer;
FlexColumn({
this.musicResponsiveListItemFlexColumnRenderer,
});
factory FlexColumn.fromJson(String str) => FlexColumn.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FlexColumn.fromMap(Map<String, dynamic> json) => FlexColumn(
musicResponsiveListItemFlexColumnRenderer: json["musicResponsiveListItemFlexColumnRenderer"] == null ? null : MusicResponsiveListItemFlexColumnRenderer.fromMap(json["musicResponsiveListItemFlexColumnRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicResponsiveListItemFlexColumnRenderer": musicResponsiveListItemFlexColumnRenderer?.toMap(),
};
}
class MusicResponsiveListItemFlexColumnRenderer {
Text? text;
String? displayPriority;
MusicResponsiveListItemFlexColumnRenderer({
this.text,
this.displayPriority,
});
factory MusicResponsiveListItemFlexColumnRenderer.fromJson(String str) => MusicResponsiveListItemFlexColumnRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicResponsiveListItemFlexColumnRenderer.fromMap(Map<String, dynamic> json) => MusicResponsiveListItemFlexColumnRenderer(
text: json["text"] == null ? null : Text.fromMap(json["text"]),
displayPriority: json["displayPriority"],
);
Map<String, dynamic> toMap() => {
"text": text?.toMap(),
"displayPriority": displayPriority,
};
}
class Text {
List<PurpleRun>? runs;
Text({
this.runs,
});
factory Text.fromJson(String str) => Text.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Text.fromMap(Map<String, dynamic> json) => Text(
runs: json["runs"] == null ? [] : List<PurpleRun>.from(json["runs"]!.map((x) => PurpleRun.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"runs": runs == null ? [] : List<dynamic>.from(runs!.map((x) => x.toMap())),
};
}
class PurpleRun {
String? text;
PurpleNavigationEndpoint? navigationEndpoint;
PurpleRun({
this.text,
this.navigationEndpoint,
});
factory PurpleRun.fromJson(String str) => PurpleRun.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleRun.fromMap(Map<String, dynamic> json) => PurpleRun(
text: json["text"],
navigationEndpoint: json["navigationEndpoint"] == null ? null : PurpleNavigationEndpoint.fromMap(json["navigationEndpoint"]),
);
Map<String, dynamic> toMap() => {
"text": text,
"navigationEndpoint": navigationEndpoint?.toMap(),
};
}
class PurpleNavigationEndpoint {
String? clickTrackingParams;
NavigationEndpointWatchEndpoint? watchEndpoint;
PurpleBrowseEndpoint? browseEndpoint;
PurpleNavigationEndpoint({
this.clickTrackingParams,
this.watchEndpoint,
this.browseEndpoint,
});
factory PurpleNavigationEndpoint.fromJson(String str) => PurpleNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleNavigationEndpoint.fromMap(Map<String, dynamic> json) => PurpleNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
watchEndpoint: json["watchEndpoint"] == null ? null : NavigationEndpointWatchEndpoint.fromMap(json["watchEndpoint"]),
browseEndpoint: json["browseEndpoint"] == null ? null : PurpleBrowseEndpoint.fromMap(json["browseEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"watchEndpoint": watchEndpoint?.toMap(),
"browseEndpoint": browseEndpoint?.toMap(),
};
}
class PurpleBrowseEndpoint {
String? browseId;
String? params;
BrowseEndpointContextSupportedConfigs? browseEndpointContextSupportedConfigs;
PurpleBrowseEndpoint({
this.browseId,
this.params,
this.browseEndpointContextSupportedConfigs,
});
factory PurpleBrowseEndpoint.fromJson(String str) => PurpleBrowseEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleBrowseEndpoint.fromMap(Map<String, dynamic> json) => PurpleBrowseEndpoint(
browseId: json["browseId"],
params: json["params"],
browseEndpointContextSupportedConfigs: json["browseEndpointContextSupportedConfigs"] == null ? null : BrowseEndpointContextSupportedConfigs.fromMap(json["browseEndpointContextSupportedConfigs"]),
);
Map<String, dynamic> toMap() => {
"browseId": browseId,
"params": params,
"browseEndpointContextSupportedConfigs": browseEndpointContextSupportedConfigs?.toMap(),
};
}
class BrowseEndpointContextSupportedConfigs {
BrowseEndpointContextMusicConfig? browseEndpointContextMusicConfig;
BrowseEndpointContextSupportedConfigs({
this.browseEndpointContextMusicConfig,
});
factory BrowseEndpointContextSupportedConfigs.fromJson(String str) => BrowseEndpointContextSupportedConfigs.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory BrowseEndpointContextSupportedConfigs.fromMap(Map<String, dynamic> json) => BrowseEndpointContextSupportedConfigs(
browseEndpointContextMusicConfig: json["browseEndpointContextMusicConfig"] == null ? null : BrowseEndpointContextMusicConfig.fromMap(json["browseEndpointContextMusicConfig"]),
);
Map<String, dynamic> toMap() => {
"browseEndpointContextMusicConfig": browseEndpointContextMusicConfig?.toMap(),
};
}
class BrowseEndpointContextMusicConfig {
String? pageType;
BrowseEndpointContextMusicConfig({
this.pageType,
});
factory BrowseEndpointContextMusicConfig.fromJson(String str) => BrowseEndpointContextMusicConfig.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory BrowseEndpointContextMusicConfig.fromMap(Map<String, dynamic> json) => BrowseEndpointContextMusicConfig(
pageType: json["pageType"],
);
Map<String, dynamic> toMap() => {
"pageType": pageType,
};
}
class NavigationEndpointWatchEndpoint {
String? videoId;
String? playlistId;
String? params;
LoggingContext? loggingContext;
WatchEndpointMusicSupportedConfigs? watchEndpointMusicSupportedConfigs;
NavigationEndpointWatchEndpoint({
this.videoId,
this.playlistId,
this.params,
this.loggingContext,
this.watchEndpointMusicSupportedConfigs,
});
factory NavigationEndpointWatchEndpoint.fromJson(String str) => NavigationEndpointWatchEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory NavigationEndpointWatchEndpoint.fromMap(Map<String, dynamic> json) => NavigationEndpointWatchEndpoint(
videoId: json["videoId"],
playlistId: json["playlistId"],
params: json["params"],
loggingContext: json["loggingContext"] == null ? null : LoggingContext.fromMap(json["loggingContext"]),
watchEndpointMusicSupportedConfigs: json["watchEndpointMusicSupportedConfigs"] == null ? null : WatchEndpointMusicSupportedConfigs.fromMap(json["watchEndpointMusicSupportedConfigs"]),
);
Map<String, dynamic> toMap() => {
"videoId": videoId,
"playlistId": playlistId,
"params": params,
"loggingContext": loggingContext?.toMap(),
"watchEndpointMusicSupportedConfigs": watchEndpointMusicSupportedConfigs?.toMap(),
};
}
class LoggingContext {
VssLoggingContext? vssLoggingContext;
LoggingContext({
this.vssLoggingContext,
});
factory LoggingContext.fromJson(String str) => LoggingContext.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory LoggingContext.fromMap(Map<String, dynamic> json) => LoggingContext(
vssLoggingContext: json["vssLoggingContext"] == null ? null : VssLoggingContext.fromMap(json["vssLoggingContext"]),
);
Map<String, dynamic> toMap() => {
"vssLoggingContext": vssLoggingContext?.toMap(),
};
}
class VssLoggingContext {
String? serializedContextData;
VssLoggingContext({
this.serializedContextData,
});
factory VssLoggingContext.fromJson(String str) => VssLoggingContext.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory VssLoggingContext.fromMap(Map<String, dynamic> json) => VssLoggingContext(
serializedContextData: json["serializedContextData"],
);
Map<String, dynamic> toMap() => {
"serializedContextData": serializedContextData,
};
}
class WatchEndpointMusicSupportedConfigs {
WatchEndpointMusicConfig? watchEndpointMusicConfig;
WatchEndpointMusicSupportedConfigs({
this.watchEndpointMusicConfig,
});
factory WatchEndpointMusicSupportedConfigs.fromJson(String str) => WatchEndpointMusicSupportedConfigs.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory WatchEndpointMusicSupportedConfigs.fromMap(Map<String, dynamic> json) => WatchEndpointMusicSupportedConfigs(
watchEndpointMusicConfig: json["watchEndpointMusicConfig"] == null ? null : WatchEndpointMusicConfig.fromMap(json["watchEndpointMusicConfig"]),
);
Map<String, dynamic> toMap() => {
"watchEndpointMusicConfig": watchEndpointMusicConfig?.toMap(),
};
}
class WatchEndpointMusicConfig {
String? musicVideoType;
WatchEndpointMusicConfig({
this.musicVideoType,
});
factory WatchEndpointMusicConfig.fromJson(String str) => WatchEndpointMusicConfig.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory WatchEndpointMusicConfig.fromMap(Map<String, dynamic> json) => WatchEndpointMusicConfig(
musicVideoType: json["musicVideoType"],
);
Map<String, dynamic> toMap() => {
"musicVideoType": musicVideoType,
};
}
class MusicResponsiveListItemRendererMenu {
PurpleMenuRenderer? menuRenderer;
MusicResponsiveListItemRendererMenu({
this.menuRenderer,
});
factory MusicResponsiveListItemRendererMenu.fromJson(String str) => MusicResponsiveListItemRendererMenu.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicResponsiveListItemRendererMenu.fromMap(Map<String, dynamic> json) => MusicResponsiveListItemRendererMenu(
menuRenderer: json["menuRenderer"] == null ? null : PurpleMenuRenderer.fromMap(json["menuRenderer"]),
);
Map<String, dynamic> toMap() => {
"menuRenderer": menuRenderer?.toMap(),
};
}
class PurpleMenuRenderer {
List<PurpleItem>? items;
String? trackingParams;
List<TopLevelButton>? topLevelButtons;
Accessibility? accessibility;
PurpleMenuRenderer({
this.items,
this.trackingParams,
this.topLevelButtons,
this.accessibility,
});
factory PurpleMenuRenderer.fromJson(String str) => PurpleMenuRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleMenuRenderer.fromMap(Map<String, dynamic> json) => PurpleMenuRenderer(
items: json["items"] == null ? [] : List<PurpleItem>.from(json["items"]!.map((x) => PurpleItem.fromMap(x))),
trackingParams: json["trackingParams"],
topLevelButtons: json["topLevelButtons"] == null ? [] : List<TopLevelButton>.from(json["topLevelButtons"]!.map((x) => TopLevelButton.fromMap(x))),
accessibility: json["accessibility"] == null ? null : Accessibility.fromMap(json["accessibility"]),
);
Map<String, dynamic> toMap() => {
"items": items == null ? [] : List<dynamic>.from(items!.map((x) => x.toMap())),
"trackingParams": trackingParams,
"topLevelButtons": topLevelButtons == null ? [] : List<dynamic>.from(topLevelButtons!.map((x) => x.toMap())),
"accessibility": accessibility?.toMap(),
};
}
class Accessibility {
AccessibilityData? accessibilityData;
Accessibility({
this.accessibilityData,
});
factory Accessibility.fromJson(String str) => Accessibility.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Accessibility.fromMap(Map<String, dynamic> json) => Accessibility(
accessibilityData: json["accessibilityData"] == null ? null : AccessibilityData.fromMap(json["accessibilityData"]),
);
Map<String, dynamic> toMap() => {
"accessibilityData": accessibilityData?.toMap(),
};
}
class AccessibilityData {
String? label;
AccessibilityData({
this.label,
});
factory AccessibilityData.fromJson(String str) => AccessibilityData.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory AccessibilityData.fromMap(Map<String, dynamic> json) => AccessibilityData(
label: json["label"],
);
Map<String, dynamic> toMap() => {
"label": label,
};
}
class PurpleItem {
MenuItemRenderer? menuNavigationItemRenderer;
MenuItemRenderer? menuServiceItemRenderer;
PurpleToggleMenuServiceItemRenderer? toggleMenuServiceItemRenderer;
PurpleItem({
this.menuNavigationItemRenderer,
this.menuServiceItemRenderer,
this.toggleMenuServiceItemRenderer,
});
factory PurpleItem.fromJson(String str) => PurpleItem.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleItem.fromMap(Map<String, dynamic> json) => PurpleItem(
menuNavigationItemRenderer: json["menuNavigationItemRenderer"] == null ? null : MenuItemRenderer.fromMap(json["menuNavigationItemRenderer"]),
menuServiceItemRenderer: json["menuServiceItemRenderer"] == null ? null : MenuItemRenderer.fromMap(json["menuServiceItemRenderer"]),
toggleMenuServiceItemRenderer: json["toggleMenuServiceItemRenderer"] == null ? null : PurpleToggleMenuServiceItemRenderer.fromMap(json["toggleMenuServiceItemRenderer"]),
);
Map<String, dynamic> toMap() => {
"menuNavigationItemRenderer": menuNavigationItemRenderer?.toMap(),
"menuServiceItemRenderer": menuServiceItemRenderer?.toMap(),
"toggleMenuServiceItemRenderer": toggleMenuServiceItemRenderer?.toMap(),
};
}
class MenuItemRenderer {
PrimaryText? text;
Icon? icon;
MenuNavigationItemRendererNavigationEndpoint? navigationEndpoint;
String? trackingParams;
ServiceEndpoint? serviceEndpoint;
MenuItemRenderer({
this.text,
this.icon,
this.navigationEndpoint,
this.trackingParams,
this.serviceEndpoint,
});
factory MenuItemRenderer.fromJson(String str) => MenuItemRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MenuItemRenderer.fromMap(Map<String, dynamic> json) => MenuItemRenderer(
text: json["text"] == null ? null : PrimaryText.fromMap(json["text"]),
icon: json["icon"] == null ? null : Icon.fromMap(json["icon"]),
navigationEndpoint: json["navigationEndpoint"] == null ? null : MenuNavigationItemRendererNavigationEndpoint.fromMap(json["navigationEndpoint"]),
trackingParams: json["trackingParams"],
serviceEndpoint: json["serviceEndpoint"] == null ? null : ServiceEndpoint.fromMap(json["serviceEndpoint"]),
);
Map<String, dynamic> toMap() => {
"text": text?.toMap(),
"icon": icon?.toMap(),
"navigationEndpoint": navigationEndpoint?.toMap(),
"trackingParams": trackingParams,
"serviceEndpoint": serviceEndpoint?.toMap(),
};
}
class Icon {
String? iconType;
Icon({
this.iconType,
});
factory Icon.fromJson(String str) => Icon.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Icon.fromMap(Map<String, dynamic> json) => Icon(
iconType: json["iconType"],
);
Map<String, dynamic> toMap() => {
"iconType": iconType,
};
}
class MenuNavigationItemRendererNavigationEndpoint {
String? clickTrackingParams;
NavigationEndpointWatchEndpoint? watchEndpoint;
ModalEndpoint? modalEndpoint;
ShareEntityEndpoint? shareEntityEndpoint;
PurpleBrowseEndpoint? browseEndpoint;
WatchPlaylistEndpoint? watchPlaylistEndpoint;
MenuNavigationItemRendererNavigationEndpoint({
this.clickTrackingParams,
this.watchEndpoint,
this.modalEndpoint,
this.shareEntityEndpoint,
this.browseEndpoint,
this.watchPlaylistEndpoint,
});
factory MenuNavigationItemRendererNavigationEndpoint.fromJson(String str) => MenuNavigationItemRendererNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MenuNavigationItemRendererNavigationEndpoint.fromMap(Map<String, dynamic> json) => MenuNavigationItemRendererNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
watchEndpoint: json["watchEndpoint"] == null ? null : NavigationEndpointWatchEndpoint.fromMap(json["watchEndpoint"]),
modalEndpoint: json["modalEndpoint"] == null ? null : ModalEndpoint.fromMap(json["modalEndpoint"]),
shareEntityEndpoint: json["shareEntityEndpoint"] == null ? null : ShareEntityEndpoint.fromMap(json["shareEntityEndpoint"]),
browseEndpoint: json["browseEndpoint"] == null ? null : PurpleBrowseEndpoint.fromMap(json["browseEndpoint"]),
watchPlaylistEndpoint: json["watchPlaylistEndpoint"] == null ? null : WatchPlaylistEndpoint.fromMap(json["watchPlaylistEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"watchEndpoint": watchEndpoint?.toMap(),
"modalEndpoint": modalEndpoint?.toMap(),
"shareEntityEndpoint": shareEntityEndpoint?.toMap(),
"browseEndpoint": browseEndpoint?.toMap(),
"watchPlaylistEndpoint": watchPlaylistEndpoint?.toMap(),
};
}
class ModalEndpoint {
Modal? modal;
ModalEndpoint({
this.modal,
});
factory ModalEndpoint.fromJson(String str) => ModalEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ModalEndpoint.fromMap(Map<String, dynamic> json) => ModalEndpoint(
modal: json["modal"] == null ? null : Modal.fromMap(json["modal"]),
);
Map<String, dynamic> toMap() => {
"modal": modal?.toMap(),
};
}
class Modal {
ModalWithTitleAndButtonRenderer? modalWithTitleAndButtonRenderer;
Modal({
this.modalWithTitleAndButtonRenderer,
});
factory Modal.fromJson(String str) => Modal.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Modal.fromMap(Map<String, dynamic> json) => Modal(
modalWithTitleAndButtonRenderer: json["modalWithTitleAndButtonRenderer"] == null ? null : ModalWithTitleAndButtonRenderer.fromMap(json["modalWithTitleAndButtonRenderer"]),
);
Map<String, dynamic> toMap() => {
"modalWithTitleAndButtonRenderer": modalWithTitleAndButtonRenderer?.toMap(),
};
}
class ModalWithTitleAndButtonRenderer {
PrimaryText? title;
PrimaryText? content;
Button? button;
ModalWithTitleAndButtonRenderer({
this.title,
this.content,
this.button,
});
factory ModalWithTitleAndButtonRenderer.fromJson(String str) => ModalWithTitleAndButtonRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ModalWithTitleAndButtonRenderer.fromMap(Map<String, dynamic> json) => ModalWithTitleAndButtonRenderer(
title: json["title"] == null ? null : PrimaryText.fromMap(json["title"]),
content: json["content"] == null ? null : PrimaryText.fromMap(json["content"]),
button: json["button"] == null ? null : Button.fromMap(json["button"]),
);
Map<String, dynamic> toMap() => {
"title": title?.toMap(),
"content": content?.toMap(),
"button": button?.toMap(),
};
}
class Button {
ButtonButtonRenderer? buttonRenderer;
Button({
this.buttonRenderer,
});
factory Button.fromJson(String str) => Button.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Button.fromMap(Map<String, dynamic> json) => Button(
buttonRenderer: json["buttonRenderer"] == null ? null : ButtonButtonRenderer.fromMap(json["buttonRenderer"]),
);
Map<String, dynamic> toMap() => {
"buttonRenderer": buttonRenderer?.toMap(),
};
}
class ButtonButtonRenderer {
String? style;
bool? isDisabled;
PrimaryText? text;
FluffyNavigationEndpoint? navigationEndpoint;
String? trackingParams;
ButtonButtonRenderer({
this.style,
this.isDisabled,
this.text,
this.navigationEndpoint,
this.trackingParams,
});
factory ButtonButtonRenderer.fromJson(String str) => ButtonButtonRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ButtonButtonRenderer.fromMap(Map<String, dynamic> json) => ButtonButtonRenderer(
style: json["style"],
isDisabled: json["isDisabled"],
text: json["text"] == null ? null : PrimaryText.fromMap(json["text"]),
navigationEndpoint: json["navigationEndpoint"] == null ? null : FluffyNavigationEndpoint.fromMap(json["navigationEndpoint"]),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"style": style,
"isDisabled": isDisabled,
"text": text?.toMap(),
"navigationEndpoint": navigationEndpoint?.toMap(),
"trackingParams": trackingParams,
};
}
class FluffyNavigationEndpoint {
String? clickTrackingParams;
SignInEndpoint? signInEndpoint;
FluffyNavigationEndpoint({
this.clickTrackingParams,
this.signInEndpoint,
});
factory FluffyNavigationEndpoint.fromJson(String str) => FluffyNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyNavigationEndpoint.fromMap(Map<String, dynamic> json) => FluffyNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
signInEndpoint: json["signInEndpoint"] == null ? null : SignInEndpoint.fromMap(json["signInEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"signInEndpoint": signInEndpoint?.toMap(),
};
}
class SignInEndpoint {
bool? hack;
SignInEndpoint({
this.hack,
});
factory SignInEndpoint.fromJson(String str) => SignInEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory SignInEndpoint.fromMap(Map<String, dynamic> json) => SignInEndpoint(
hack: json["hack"],
);
Map<String, dynamic> toMap() => {
"hack": hack,
};
}
class PrimaryText {
List<PrimaryTextRun>? runs;
PrimaryText({
this.runs,
});
factory PrimaryText.fromJson(String str) => PrimaryText.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PrimaryText.fromMap(Map<String, dynamic> json) => PrimaryText(
runs: json["runs"] == null ? [] : List<PrimaryTextRun>.from(json["runs"]!.map((x) => PrimaryTextRun.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"runs": runs == null ? [] : List<dynamic>.from(runs!.map((x) => x.toMap())),
};
}
class PrimaryTextRun {
String? text;
PrimaryTextRun({
this.text,
});
factory PrimaryTextRun.fromJson(String str) => PrimaryTextRun.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PrimaryTextRun.fromMap(Map<String, dynamic> json) => PrimaryTextRun(
text: json["text"],
);
Map<String, dynamic> toMap() => {
"text": text,
};
}
class ShareEntityEndpoint {
String? serializedShareEntity;
String? sharePanelType;
ShareEntityEndpoint({
this.serializedShareEntity,
this.sharePanelType,
});
factory ShareEntityEndpoint.fromJson(String str) => ShareEntityEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ShareEntityEndpoint.fromMap(Map<String, dynamic> json) => ShareEntityEndpoint(
serializedShareEntity: json["serializedShareEntity"],
sharePanelType: json["sharePanelType"],
);
Map<String, dynamic> toMap() => {
"serializedShareEntity": serializedShareEntity,
"sharePanelType": sharePanelType,
};
}
class WatchPlaylistEndpoint {
String? playlistId;
String? params;
WatchPlaylistEndpoint({
this.playlistId,
this.params,
});
factory WatchPlaylistEndpoint.fromJson(String str) => WatchPlaylistEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory WatchPlaylistEndpoint.fromMap(Map<String, dynamic> json) => WatchPlaylistEndpoint(
playlistId: json["playlistId"],
params: json["params"],
);
Map<String, dynamic> toMap() => {
"playlistId": playlistId,
"params": params,
};
}
class ServiceEndpoint {
String? clickTrackingParams;
QueueAddEndpoint? queueAddEndpoint;
ServiceEndpoint({
this.clickTrackingParams,
this.queueAddEndpoint,
});
factory ServiceEndpoint.fromJson(String str) => ServiceEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ServiceEndpoint.fromMap(Map<String, dynamic> json) => ServiceEndpoint(
clickTrackingParams: json["clickTrackingParams"],
queueAddEndpoint: json["queueAddEndpoint"] == null ? null : QueueAddEndpoint.fromMap(json["queueAddEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"queueAddEndpoint": queueAddEndpoint?.toMap(),
};
}
class QueueAddEndpoint {
QueueTarget? queueTarget;
String? queueInsertPosition;
List<Command>? commands;
QueueAddEndpoint({
this.queueTarget,
this.queueInsertPosition,
this.commands,
});
factory QueueAddEndpoint.fromJson(String str) => QueueAddEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory QueueAddEndpoint.fromMap(Map<String, dynamic> json) => QueueAddEndpoint(
queueTarget: json["queueTarget"] == null ? null : QueueTarget.fromMap(json["queueTarget"]),
queueInsertPosition: json["queueInsertPosition"],
commands: json["commands"] == null ? [] : List<Command>.from(json["commands"]!.map((x) => Command.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"queueTarget": queueTarget?.toMap(),
"queueInsertPosition": queueInsertPosition,
"commands": commands == null ? [] : List<dynamic>.from(commands!.map((x) => x.toMap())),
};
}
class Command {
String? clickTrackingParams;
AddToToastAction? addToToastAction;
Command({
this.clickTrackingParams,
this.addToToastAction,
});
factory Command.fromJson(String str) => Command.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Command.fromMap(Map<String, dynamic> json) => Command(
clickTrackingParams: json["clickTrackingParams"],
addToToastAction: json["addToToastAction"] == null ? null : AddToToastAction.fromMap(json["addToToastAction"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"addToToastAction": addToToastAction?.toMap(),
};
}
class AddToToastAction {
AddToToastActionItem? item;
AddToToastAction({
this.item,
});
factory AddToToastAction.fromJson(String str) => AddToToastAction.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory AddToToastAction.fromMap(Map<String, dynamic> json) => AddToToastAction(
item: json["item"] == null ? null : AddToToastActionItem.fromMap(json["item"]),
);
Map<String, dynamic> toMap() => {
"item": item?.toMap(),
};
}
class AddToToastActionItem {
NotificationTextRenderer? notificationTextRenderer;
AddToToastActionItem({
this.notificationTextRenderer,
});
factory AddToToastActionItem.fromJson(String str) => AddToToastActionItem.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory AddToToastActionItem.fromMap(Map<String, dynamic> json) => AddToToastActionItem(
notificationTextRenderer: json["notificationTextRenderer"] == null ? null : NotificationTextRenderer.fromMap(json["notificationTextRenderer"]),
);
Map<String, dynamic> toMap() => {
"notificationTextRenderer": notificationTextRenderer?.toMap(),
};
}
class NotificationTextRenderer {
PrimaryText? successResponseText;
String? trackingParams;
NotificationTextRenderer({
this.successResponseText,
this.trackingParams,
});
factory NotificationTextRenderer.fromJson(String str) => NotificationTextRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory NotificationTextRenderer.fromMap(Map<String, dynamic> json) => NotificationTextRenderer(
successResponseText: json["successResponseText"] == null ? null : PrimaryText.fromMap(json["successResponseText"]),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"successResponseText": successResponseText?.toMap(),
"trackingParams": trackingParams,
};
}
class QueueTarget {
String? videoId;
OnEmptyQueue? onEmptyQueue;
String? playlistId;
QueueTarget({
this.videoId,
this.onEmptyQueue,
this.playlistId,
});
factory QueueTarget.fromJson(String str) => QueueTarget.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory QueueTarget.fromMap(Map<String, dynamic> json) => QueueTarget(
videoId: json["videoId"],
onEmptyQueue: json["onEmptyQueue"] == null ? null : OnEmptyQueue.fromMap(json["onEmptyQueue"]),
playlistId: json["playlistId"],
);
Map<String, dynamic> toMap() => {
"videoId": videoId,
"onEmptyQueue": onEmptyQueue?.toMap(),
"playlistId": playlistId,
};
}
class OnEmptyQueue {
String? clickTrackingParams;
OnEmptyQueueWatchEndpoint? watchEndpoint;
OnEmptyQueue({
this.clickTrackingParams,
this.watchEndpoint,
});
factory OnEmptyQueue.fromJson(String str) => OnEmptyQueue.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory OnEmptyQueue.fromMap(Map<String, dynamic> json) => OnEmptyQueue(
clickTrackingParams: json["clickTrackingParams"],
watchEndpoint: json["watchEndpoint"] == null ? null : OnEmptyQueueWatchEndpoint.fromMap(json["watchEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"watchEndpoint": watchEndpoint?.toMap(),
};
}
class OnEmptyQueueWatchEndpoint {
String? videoId;
String? playlistId;
OnEmptyQueueWatchEndpoint({
this.videoId,
this.playlistId,
});
factory OnEmptyQueueWatchEndpoint.fromJson(String str) => OnEmptyQueueWatchEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory OnEmptyQueueWatchEndpoint.fromMap(Map<String, dynamic> json) => OnEmptyQueueWatchEndpoint(
videoId: json["videoId"],
playlistId: json["playlistId"],
);
Map<String, dynamic> toMap() => {
"videoId": videoId,
"playlistId": playlistId,
};
}
class PurpleToggleMenuServiceItemRenderer {
PrimaryText? defaultText;
Icon? defaultIcon;
DefaultServiceEndpointClass? defaultServiceEndpoint;
PrimaryText? toggledText;
Icon? toggledIcon;
PurpleToggledServiceEndpoint? toggledServiceEndpoint;
String? trackingParams;
PurpleToggleMenuServiceItemRenderer({
this.defaultText,
this.defaultIcon,
this.defaultServiceEndpoint,
this.toggledText,
this.toggledIcon,
this.toggledServiceEndpoint,
this.trackingParams,
});
factory PurpleToggleMenuServiceItemRenderer.fromJson(String str) => PurpleToggleMenuServiceItemRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleToggleMenuServiceItemRenderer.fromMap(Map<String, dynamic> json) => PurpleToggleMenuServiceItemRenderer(
defaultText: json["defaultText"] == null ? null : PrimaryText.fromMap(json["defaultText"]),
defaultIcon: json["defaultIcon"] == null ? null : Icon.fromMap(json["defaultIcon"]),
defaultServiceEndpoint: json["defaultServiceEndpoint"] == null ? null : DefaultServiceEndpointClass.fromMap(json["defaultServiceEndpoint"]),
toggledText: json["toggledText"] == null ? null : PrimaryText.fromMap(json["toggledText"]),
toggledIcon: json["toggledIcon"] == null ? null : Icon.fromMap(json["toggledIcon"]),
toggledServiceEndpoint: json["toggledServiceEndpoint"] == null ? null : PurpleToggledServiceEndpoint.fromMap(json["toggledServiceEndpoint"]),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"defaultText": defaultText?.toMap(),
"defaultIcon": defaultIcon?.toMap(),
"defaultServiceEndpoint": defaultServiceEndpoint?.toMap(),
"toggledText": toggledText?.toMap(),
"toggledIcon": toggledIcon?.toMap(),
"toggledServiceEndpoint": toggledServiceEndpoint?.toMap(),
"trackingParams": trackingParams,
};
}
class DefaultServiceEndpointClass {
String? clickTrackingParams;
ModalEndpoint? modalEndpoint;
DefaultServiceEndpointClass({
this.clickTrackingParams,
this.modalEndpoint,
});
factory DefaultServiceEndpointClass.fromJson(String str) => DefaultServiceEndpointClass.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory DefaultServiceEndpointClass.fromMap(Map<String, dynamic> json) => DefaultServiceEndpointClass(
clickTrackingParams: json["clickTrackingParams"],
modalEndpoint: json["modalEndpoint"] == null ? null : ModalEndpoint.fromMap(json["modalEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"modalEndpoint": modalEndpoint?.toMap(),
};
}
class PurpleToggledServiceEndpoint {
String? clickTrackingParams;
FeedbackEndpoint? feedbackEndpoint;
PurpleToggledServiceEndpoint({
this.clickTrackingParams,
this.feedbackEndpoint,
});
factory PurpleToggledServiceEndpoint.fromJson(String str) => PurpleToggledServiceEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleToggledServiceEndpoint.fromMap(Map<String, dynamic> json) => PurpleToggledServiceEndpoint(
clickTrackingParams: json["clickTrackingParams"],
feedbackEndpoint: json["feedbackEndpoint"] == null ? null : FeedbackEndpoint.fromMap(json["feedbackEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"feedbackEndpoint": feedbackEndpoint?.toMap(),
};
}
class FeedbackEndpoint {
String? feedbackToken;
FeedbackEndpoint({
this.feedbackToken,
});
factory FeedbackEndpoint.fromJson(String str) => FeedbackEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FeedbackEndpoint.fromMap(Map<String, dynamic> json) => FeedbackEndpoint(
feedbackToken: json["feedbackToken"],
);
Map<String, dynamic> toMap() => {
"feedbackToken": feedbackToken,
};
}
class TopLevelButton {
LikeButtonRenderer? likeButtonRenderer;
TopLevelButton({
this.likeButtonRenderer,
});
factory TopLevelButton.fromJson(String str) => TopLevelButton.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory TopLevelButton.fromMap(Map<String, dynamic> json) => TopLevelButton(
likeButtonRenderer: json["likeButtonRenderer"] == null ? null : LikeButtonRenderer.fromMap(json["likeButtonRenderer"]),
);
Map<String, dynamic> toMap() => {
"likeButtonRenderer": likeButtonRenderer?.toMap(),
};
}
class LikeButtonRenderer {
PlaylistItemData? target;
String? likeStatus;
String? trackingParams;
bool? likesAllowed;
DefaultServiceEndpointClass? dislikeNavigationEndpoint;
DefaultServiceEndpointClass? likeCommand;
LikeButtonRenderer({
this.target,
this.likeStatus,
this.trackingParams,
this.likesAllowed,
this.dislikeNavigationEndpoint,
this.likeCommand,
});
factory LikeButtonRenderer.fromJson(String str) => LikeButtonRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory LikeButtonRenderer.fromMap(Map<String, dynamic> json) => LikeButtonRenderer(
target: json["target"] == null ? null : PlaylistItemData.fromMap(json["target"]),
likeStatus: json["likeStatus"],
trackingParams: json["trackingParams"],
likesAllowed: json["likesAllowed"],
dislikeNavigationEndpoint: json["dislikeNavigationEndpoint"] == null ? null : DefaultServiceEndpointClass.fromMap(json["dislikeNavigationEndpoint"]),
likeCommand: json["likeCommand"] == null ? null : DefaultServiceEndpointClass.fromMap(json["likeCommand"]),
);
Map<String, dynamic> toMap() => {
"target": target?.toMap(),
"likeStatus": likeStatus,
"trackingParams": trackingParams,
"likesAllowed": likesAllowed,
"dislikeNavigationEndpoint": dislikeNavigationEndpoint?.toMap(),
"likeCommand": likeCommand?.toMap(),
};
}
class PlaylistItemData {
String? videoId;
PlaylistItemData({
this.videoId,
});
factory PlaylistItemData.fromJson(String str) => PlaylistItemData.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PlaylistItemData.fromMap(Map<String, dynamic> json) => PlaylistItemData(
videoId: json["videoId"],
);
Map<String, dynamic> toMap() => {
"videoId": videoId,
};
}
class Overlay {
OverlayMusicItemThumbnailOverlayRenderer? musicItemThumbnailOverlayRenderer;
Overlay({
this.musicItemThumbnailOverlayRenderer,
});
factory Overlay.fromJson(String str) => Overlay.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Overlay.fromMap(Map<String, dynamic> json) => Overlay(
musicItemThumbnailOverlayRenderer: json["musicItemThumbnailOverlayRenderer"] == null ? null : OverlayMusicItemThumbnailOverlayRenderer.fromMap(json["musicItemThumbnailOverlayRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicItemThumbnailOverlayRenderer": musicItemThumbnailOverlayRenderer?.toMap(),
};
}
class OverlayMusicItemThumbnailOverlayRenderer {
MusicItemThumbnailOverlayRendererBackground? background;
PurpleContent? content;
String? contentPosition;
String? displayStyle;
OverlayMusicItemThumbnailOverlayRenderer({
this.background,
this.content,
this.contentPosition,
this.displayStyle,
});
factory OverlayMusicItemThumbnailOverlayRenderer.fromJson(String str) => OverlayMusicItemThumbnailOverlayRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory OverlayMusicItemThumbnailOverlayRenderer.fromMap(Map<String, dynamic> json) => OverlayMusicItemThumbnailOverlayRenderer(
background: json["background"] == null ? null : MusicItemThumbnailOverlayRendererBackground.fromMap(json["background"]),
content: json["content"] == null ? null : PurpleContent.fromMap(json["content"]),
contentPosition: json["contentPosition"],
displayStyle: json["displayStyle"],
);
Map<String, dynamic> toMap() => {
"background": background?.toMap(),
"content": content?.toMap(),
"contentPosition": contentPosition,
"displayStyle": displayStyle,
};
}
class MusicItemThumbnailOverlayRendererBackground {
VerticalGradient? verticalGradient;
MusicItemThumbnailOverlayRendererBackground({
this.verticalGradient,
});
factory MusicItemThumbnailOverlayRendererBackground.fromJson(String str) => MusicItemThumbnailOverlayRendererBackground.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicItemThumbnailOverlayRendererBackground.fromMap(Map<String, dynamic> json) => MusicItemThumbnailOverlayRendererBackground(
verticalGradient: json["verticalGradient"] == null ? null : VerticalGradient.fromMap(json["verticalGradient"]),
);
Map<String, dynamic> toMap() => {
"verticalGradient": verticalGradient?.toMap(),
};
}
class VerticalGradient {
List<String>? gradientLayerColors;
VerticalGradient({
this.gradientLayerColors,
});
factory VerticalGradient.fromJson(String str) => VerticalGradient.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory VerticalGradient.fromMap(Map<String, dynamic> json) => VerticalGradient(
gradientLayerColors: json["gradientLayerColors"] == null ? [] : List<String>.from(json["gradientLayerColors"]!.map((x) => x)),
);
Map<String, dynamic> toMap() => {
"gradientLayerColors": gradientLayerColors == null ? [] : List<dynamic>.from(gradientLayerColors!.map((x) => x)),
};
}
class PurpleContent {
PurpleMusicPlayButtonRenderer? musicPlayButtonRenderer;
PurpleContent({
this.musicPlayButtonRenderer,
});
factory PurpleContent.fromJson(String str) => PurpleContent.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleContent.fromMap(Map<String, dynamic> json) => PurpleContent(
musicPlayButtonRenderer: json["musicPlayButtonRenderer"] == null ? null : PurpleMusicPlayButtonRenderer.fromMap(json["musicPlayButtonRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicPlayButtonRenderer": musicPlayButtonRenderer?.toMap(),
};
}
class PurpleMusicPlayButtonRenderer {
PurplePlayNavigationEndpoint? playNavigationEndpoint;
String? trackingParams;
Icon? playIcon;
Icon? pauseIcon;
int? iconColor;
int? backgroundColor;
int? activeBackgroundColor;
int? loadingIndicatorColor;
Icon? playingIcon;
int? iconLoadingColor;
int? activeScaleFactor;
String? buttonSize;
String? rippleTarget;
Accessibility? accessibilityPlayData;
Accessibility? accessibilityPauseData;
PurpleMusicPlayButtonRenderer({
this.playNavigationEndpoint,
this.trackingParams,
this.playIcon,
this.pauseIcon,
this.iconColor,
this.backgroundColor,
this.activeBackgroundColor,
this.loadingIndicatorColor,
this.playingIcon,
this.iconLoadingColor,
this.activeScaleFactor,
this.buttonSize,
this.rippleTarget,
this.accessibilityPlayData,
this.accessibilityPauseData,
});
factory PurpleMusicPlayButtonRenderer.fromJson(String str) => PurpleMusicPlayButtonRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurpleMusicPlayButtonRenderer.fromMap(Map<String, dynamic> json) => PurpleMusicPlayButtonRenderer(
playNavigationEndpoint: json["playNavigationEndpoint"] == null ? null : PurplePlayNavigationEndpoint.fromMap(json["playNavigationEndpoint"]),
trackingParams: json["trackingParams"],
playIcon: json["playIcon"] == null ? null : Icon.fromMap(json["playIcon"]),
pauseIcon: json["pauseIcon"] == null ? null : Icon.fromMap(json["pauseIcon"]),
iconColor: json["iconColor"],
backgroundColor: json["backgroundColor"],
activeBackgroundColor: json["activeBackgroundColor"],
loadingIndicatorColor: json["loadingIndicatorColor"],
playingIcon: json["playingIcon"] == null ? null : Icon.fromMap(json["playingIcon"]),
iconLoadingColor: json["iconLoadingColor"],
activeScaleFactor: json["activeScaleFactor"],
buttonSize: json["buttonSize"],
rippleTarget: json["rippleTarget"],
accessibilityPlayData: json["accessibilityPlayData"] == null ? null : Accessibility.fromMap(json["accessibilityPlayData"]),
accessibilityPauseData: json["accessibilityPauseData"] == null ? null : Accessibility.fromMap(json["accessibilityPauseData"]),
);
Map<String, dynamic> toMap() => {
"playNavigationEndpoint": playNavigationEndpoint?.toMap(),
"trackingParams": trackingParams,
"playIcon": playIcon?.toMap(),
"pauseIcon": pauseIcon?.toMap(),
"iconColor": iconColor,
"backgroundColor": backgroundColor,
"activeBackgroundColor": activeBackgroundColor,
"loadingIndicatorColor": loadingIndicatorColor,
"playingIcon": playingIcon?.toMap(),
"iconLoadingColor": iconLoadingColor,
"activeScaleFactor": activeScaleFactor,
"buttonSize": buttonSize,
"rippleTarget": rippleTarget,
"accessibilityPlayData": accessibilityPlayData?.toMap(),
"accessibilityPauseData": accessibilityPauseData?.toMap(),
};
}
class PurplePlayNavigationEndpoint {
String? clickTrackingParams;
NavigationEndpointWatchEndpoint? watchEndpoint;
PurplePlayNavigationEndpoint({
this.clickTrackingParams,
this.watchEndpoint,
});
factory PurplePlayNavigationEndpoint.fromJson(String str) => PurplePlayNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory PurplePlayNavigationEndpoint.fromMap(Map<String, dynamic> json) => PurplePlayNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
watchEndpoint: json["watchEndpoint"] == null ? null : NavigationEndpointWatchEndpoint.fromMap(json["watchEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"watchEndpoint": watchEndpoint?.toMap(),
};
}
class MusicTwoRowItemRenderer {
ThumbnailClass? thumbnailRenderer;
String? aspectRatio;
Title? title;
Subtitle? subtitle;
MusicTwoRowItemRendererNavigationEndpoint? navigationEndpoint;
String? trackingParams;
MusicTwoRowItemRendererMenu? menu;
ThumbnailOverlay? thumbnailOverlay;
MusicTwoRowItemRenderer({
this.thumbnailRenderer,
this.aspectRatio,
this.title,
this.subtitle,
this.navigationEndpoint,
this.trackingParams,
this.menu,
this.thumbnailOverlay,
});
factory MusicTwoRowItemRenderer.fromJson(String str) => MusicTwoRowItemRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicTwoRowItemRenderer.fromMap(Map<String, dynamic> json) => MusicTwoRowItemRenderer(
thumbnailRenderer: json["thumbnailRenderer"] == null ? null : ThumbnailClass.fromMap(json["thumbnailRenderer"]),
aspectRatio: json["aspectRatio"],
title: json["title"] == null ? null : Title.fromMap(json["title"]),
subtitle: json["subtitle"] == null ? null : Subtitle.fromMap(json["subtitle"]),
navigationEndpoint: json["navigationEndpoint"] == null ? null : MusicTwoRowItemRendererNavigationEndpoint.fromMap(json["navigationEndpoint"]),
trackingParams: json["trackingParams"],
menu: json["menu"] == null ? null : MusicTwoRowItemRendererMenu.fromMap(json["menu"]),
thumbnailOverlay: json["thumbnailOverlay"] == null ? null : ThumbnailOverlay.fromMap(json["thumbnailOverlay"]),
);
Map<String, dynamic> toMap() => {
"thumbnailRenderer": thumbnailRenderer?.toMap(),
"aspectRatio": aspectRatio,
"title": title?.toMap(),
"subtitle": subtitle?.toMap(),
"navigationEndpoint": navigationEndpoint?.toMap(),
"trackingParams": trackingParams,
"menu": menu?.toMap(),
"thumbnailOverlay": thumbnailOverlay?.toMap(),
};
}
class MusicTwoRowItemRendererMenu {
FluffyMenuRenderer? menuRenderer;
MusicTwoRowItemRendererMenu({
this.menuRenderer,
});
factory MusicTwoRowItemRendererMenu.fromJson(String str) => MusicTwoRowItemRendererMenu.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicTwoRowItemRendererMenu.fromMap(Map<String, dynamic> json) => MusicTwoRowItemRendererMenu(
menuRenderer: json["menuRenderer"] == null ? null : FluffyMenuRenderer.fromMap(json["menuRenderer"]),
);
Map<String, dynamic> toMap() => {
"menuRenderer": menuRenderer?.toMap(),
};
}
class FluffyMenuRenderer {
List<FluffyItem>? items;
String? trackingParams;
Accessibility? accessibility;
FluffyMenuRenderer({
this.items,
this.trackingParams,
this.accessibility,
});
factory FluffyMenuRenderer.fromJson(String str) => FluffyMenuRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyMenuRenderer.fromMap(Map<String, dynamic> json) => FluffyMenuRenderer(
items: json["items"] == null ? [] : List<FluffyItem>.from(json["items"]!.map((x) => FluffyItem.fromMap(x))),
trackingParams: json["trackingParams"],
accessibility: json["accessibility"] == null ? null : Accessibility.fromMap(json["accessibility"]),
);
Map<String, dynamic> toMap() => {
"items": items == null ? [] : List<dynamic>.from(items!.map((x) => x.toMap())),
"trackingParams": trackingParams,
"accessibility": accessibility?.toMap(),
};
}
class FluffyItem {
MenuItemRenderer? menuNavigationItemRenderer;
MenuItemRenderer? menuServiceItemRenderer;
FluffyToggleMenuServiceItemRenderer? toggleMenuServiceItemRenderer;
FluffyItem({
this.menuNavigationItemRenderer,
this.menuServiceItemRenderer,
this.toggleMenuServiceItemRenderer,
});
factory FluffyItem.fromJson(String str) => FluffyItem.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyItem.fromMap(Map<String, dynamic> json) => FluffyItem(
menuNavigationItemRenderer: json["menuNavigationItemRenderer"] == null ? null : MenuItemRenderer.fromMap(json["menuNavigationItemRenderer"]),
menuServiceItemRenderer: json["menuServiceItemRenderer"] == null ? null : MenuItemRenderer.fromMap(json["menuServiceItemRenderer"]),
toggleMenuServiceItemRenderer: json["toggleMenuServiceItemRenderer"] == null ? null : FluffyToggleMenuServiceItemRenderer.fromMap(json["toggleMenuServiceItemRenderer"]),
);
Map<String, dynamic> toMap() => {
"menuNavigationItemRenderer": menuNavigationItemRenderer?.toMap(),
"menuServiceItemRenderer": menuServiceItemRenderer?.toMap(),
"toggleMenuServiceItemRenderer": toggleMenuServiceItemRenderer?.toMap(),
};
}
class FluffyToggleMenuServiceItemRenderer {
PrimaryText? defaultText;
Icon? defaultIcon;
DefaultServiceEndpointClass? defaultServiceEndpoint;
PrimaryText? toggledText;
Icon? toggledIcon;
FluffyToggledServiceEndpoint? toggledServiceEndpoint;
String? trackingParams;
FluffyToggleMenuServiceItemRenderer({
this.defaultText,
this.defaultIcon,
this.defaultServiceEndpoint,
this.toggledText,
this.toggledIcon,
this.toggledServiceEndpoint,
this.trackingParams,
});
factory FluffyToggleMenuServiceItemRenderer.fromJson(String str) => FluffyToggleMenuServiceItemRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyToggleMenuServiceItemRenderer.fromMap(Map<String, dynamic> json) => FluffyToggleMenuServiceItemRenderer(
defaultText: json["defaultText"] == null ? null : PrimaryText.fromMap(json["defaultText"]),
defaultIcon: json["defaultIcon"] == null ? null : Icon.fromMap(json["defaultIcon"]),
defaultServiceEndpoint: json["defaultServiceEndpoint"] == null ? null : DefaultServiceEndpointClass.fromMap(json["defaultServiceEndpoint"]),
toggledText: json["toggledText"] == null ? null : PrimaryText.fromMap(json["toggledText"]),
toggledIcon: json["toggledIcon"] == null ? null : Icon.fromMap(json["toggledIcon"]),
toggledServiceEndpoint: json["toggledServiceEndpoint"] == null ? null : FluffyToggledServiceEndpoint.fromMap(json["toggledServiceEndpoint"]),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"defaultText": defaultText?.toMap(),
"defaultIcon": defaultIcon?.toMap(),
"defaultServiceEndpoint": defaultServiceEndpoint?.toMap(),
"toggledText": toggledText?.toMap(),
"toggledIcon": toggledIcon?.toMap(),
"toggledServiceEndpoint": toggledServiceEndpoint?.toMap(),
"trackingParams": trackingParams,
};
}
class FluffyToggledServiceEndpoint {
String? clickTrackingParams;
LikeEndpoint? likeEndpoint;
FluffyToggledServiceEndpoint({
this.clickTrackingParams,
this.likeEndpoint,
});
factory FluffyToggledServiceEndpoint.fromJson(String str) => FluffyToggledServiceEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyToggledServiceEndpoint.fromMap(Map<String, dynamic> json) => FluffyToggledServiceEndpoint(
clickTrackingParams: json["clickTrackingParams"],
likeEndpoint: json["likeEndpoint"] == null ? null : LikeEndpoint.fromMap(json["likeEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"likeEndpoint": likeEndpoint?.toMap(),
};
}
class LikeEndpoint {
String? status;
TargetClass? target;
LikeEndpoint({
this.status,
this.target,
});
factory LikeEndpoint.fromJson(String str) => LikeEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory LikeEndpoint.fromMap(Map<String, dynamic> json) => LikeEndpoint(
status: json["status"],
target: json["target"] == null ? null : TargetClass.fromMap(json["target"]),
);
Map<String, dynamic> toMap() => {
"status": status,
"target": target?.toMap(),
};
}
class TargetClass {
String? playlistId;
TargetClass({
this.playlistId,
});
factory TargetClass.fromJson(String str) => TargetClass.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory TargetClass.fromMap(Map<String, dynamic> json) => TargetClass(
playlistId: json["playlistId"],
);
Map<String, dynamic> toMap() => {
"playlistId": playlistId,
};
}
class MusicTwoRowItemRendererNavigationEndpoint {
String? clickTrackingParams;
FluffyBrowseEndpoint? browseEndpoint;
MusicTwoRowItemRendererNavigationEndpoint({
this.clickTrackingParams,
this.browseEndpoint,
});
factory MusicTwoRowItemRendererNavigationEndpoint.fromJson(String str) => MusicTwoRowItemRendererNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicTwoRowItemRendererNavigationEndpoint.fromMap(Map<String, dynamic> json) => MusicTwoRowItemRendererNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
browseEndpoint: json["browseEndpoint"] == null ? null : FluffyBrowseEndpoint.fromMap(json["browseEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"browseEndpoint": browseEndpoint?.toMap(),
};
}
class FluffyBrowseEndpoint {
String? browseId;
String? params;
BrowseEndpointContextSupportedConfigs? browseEndpointContextSupportedConfigs;
FluffyBrowseEndpoint({
this.browseId,
this.params,
this.browseEndpointContextSupportedConfigs,
});
factory FluffyBrowseEndpoint.fromJson(String str) => FluffyBrowseEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyBrowseEndpoint.fromMap(Map<String, dynamic> json) => FluffyBrowseEndpoint(
browseId: json["browseId"],
params: json["params"],
browseEndpointContextSupportedConfigs: json["browseEndpointContextSupportedConfigs"] == null ? null : BrowseEndpointContextSupportedConfigs.fromMap(json["browseEndpointContextSupportedConfigs"]),
);
Map<String, dynamic> toMap() => {
"browseId": browseId,
"params": params,
"browseEndpointContextSupportedConfigs": browseEndpointContextSupportedConfigs?.toMap(),
};
}
class Subtitle {
List<SubtitleRun>? runs;
Subtitle({
this.runs,
});
factory Subtitle.fromJson(String str) => Subtitle.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Subtitle.fromMap(Map<String, dynamic> json) => Subtitle(
runs: json["runs"] == null ? [] : List<SubtitleRun>.from(json["runs"]!.map((x) => SubtitleRun.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"runs": runs == null ? [] : List<dynamic>.from(runs!.map((x) => x.toMap())),
};
}
class SubtitleRun {
String? text;
TentacledNavigationEndpoint? navigationEndpoint;
SubtitleRun({
this.text,
this.navigationEndpoint,
});
factory SubtitleRun.fromJson(String str) => SubtitleRun.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory SubtitleRun.fromMap(Map<String, dynamic> json) => SubtitleRun(
text: json["text"],
navigationEndpoint: json["navigationEndpoint"] == null ? null : TentacledNavigationEndpoint.fromMap(json["navigationEndpoint"]),
);
Map<String, dynamic> toMap() => {
"text": text,
"navigationEndpoint": navigationEndpoint?.toMap(),
};
}
class TentacledNavigationEndpoint {
String? clickTrackingParams;
PurpleBrowseEndpoint? browseEndpoint;
TentacledNavigationEndpoint({
this.clickTrackingParams,
this.browseEndpoint,
});
factory TentacledNavigationEndpoint.fromJson(String str) => TentacledNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory TentacledNavigationEndpoint.fromMap(Map<String, dynamic> json) => TentacledNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
browseEndpoint: json["browseEndpoint"] == null ? null : PurpleBrowseEndpoint.fromMap(json["browseEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"browseEndpoint": browseEndpoint?.toMap(),
};
}
class ThumbnailOverlay {
ThumbnailOverlayMusicItemThumbnailOverlayRenderer? musicItemThumbnailOverlayRenderer;
ThumbnailOverlay({
this.musicItemThumbnailOverlayRenderer,
});
factory ThumbnailOverlay.fromJson(String str) => ThumbnailOverlay.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ThumbnailOverlay.fromMap(Map<String, dynamic> json) => ThumbnailOverlay(
musicItemThumbnailOverlayRenderer: json["musicItemThumbnailOverlayRenderer"] == null ? null : ThumbnailOverlayMusicItemThumbnailOverlayRenderer.fromMap(json["musicItemThumbnailOverlayRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicItemThumbnailOverlayRenderer": musicItemThumbnailOverlayRenderer?.toMap(),
};
}
class ThumbnailOverlayMusicItemThumbnailOverlayRenderer {
MusicItemThumbnailOverlayRendererBackground? background;
FluffyContent? content;
String? contentPosition;
String? displayStyle;
ThumbnailOverlayMusicItemThumbnailOverlayRenderer({
this.background,
this.content,
this.contentPosition,
this.displayStyle,
});
factory ThumbnailOverlayMusicItemThumbnailOverlayRenderer.fromJson(String str) => ThumbnailOverlayMusicItemThumbnailOverlayRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ThumbnailOverlayMusicItemThumbnailOverlayRenderer.fromMap(Map<String, dynamic> json) => ThumbnailOverlayMusicItemThumbnailOverlayRenderer(
background: json["background"] == null ? null : MusicItemThumbnailOverlayRendererBackground.fromMap(json["background"]),
content: json["content"] == null ? null : FluffyContent.fromMap(json["content"]),
contentPosition: json["contentPosition"],
displayStyle: json["displayStyle"],
);
Map<String, dynamic> toMap() => {
"background": background?.toMap(),
"content": content?.toMap(),
"contentPosition": contentPosition,
"displayStyle": displayStyle,
};
}
class FluffyContent {
FluffyMusicPlayButtonRenderer? musicPlayButtonRenderer;
FluffyContent({
this.musicPlayButtonRenderer,
});
factory FluffyContent.fromJson(String str) => FluffyContent.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyContent.fromMap(Map<String, dynamic> json) => FluffyContent(
musicPlayButtonRenderer: json["musicPlayButtonRenderer"] == null ? null : FluffyMusicPlayButtonRenderer.fromMap(json["musicPlayButtonRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicPlayButtonRenderer": musicPlayButtonRenderer?.toMap(),
};
}
class FluffyMusicPlayButtonRenderer {
FluffyPlayNavigationEndpoint? playNavigationEndpoint;
String? trackingParams;
Icon? playIcon;
Icon? pauseIcon;
int? iconColor;
int? backgroundColor;
int? activeBackgroundColor;
int? loadingIndicatorColor;
Icon? playingIcon;
int? iconLoadingColor;
double? activeScaleFactor;
String? buttonSize;
String? rippleTarget;
Accessibility? accessibilityPlayData;
Accessibility? accessibilityPauseData;
FluffyMusicPlayButtonRenderer({
this.playNavigationEndpoint,
this.trackingParams,
this.playIcon,
this.pauseIcon,
this.iconColor,
this.backgroundColor,
this.activeBackgroundColor,
this.loadingIndicatorColor,
this.playingIcon,
this.iconLoadingColor,
this.activeScaleFactor,
this.buttonSize,
this.rippleTarget,
this.accessibilityPlayData,
this.accessibilityPauseData,
});
factory FluffyMusicPlayButtonRenderer.fromJson(String str) => FluffyMusicPlayButtonRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyMusicPlayButtonRenderer.fromMap(Map<String, dynamic> json) => FluffyMusicPlayButtonRenderer(
playNavigationEndpoint: json["playNavigationEndpoint"] == null ? null : FluffyPlayNavigationEndpoint.fromMap(json["playNavigationEndpoint"]),
trackingParams: json["trackingParams"],
playIcon: json["playIcon"] == null ? null : Icon.fromMap(json["playIcon"]),
pauseIcon: json["pauseIcon"] == null ? null : Icon.fromMap(json["pauseIcon"]),
iconColor: json["iconColor"],
backgroundColor: json["backgroundColor"],
activeBackgroundColor: json["activeBackgroundColor"],
loadingIndicatorColor: json["loadingIndicatorColor"],
playingIcon: json["playingIcon"] == null ? null : Icon.fromMap(json["playingIcon"]),
iconLoadingColor: json["iconLoadingColor"],
activeScaleFactor: json["activeScaleFactor"]?.toDouble(),
buttonSize: json["buttonSize"],
rippleTarget: json["rippleTarget"],
accessibilityPlayData: json["accessibilityPlayData"] == null ? null : Accessibility.fromMap(json["accessibilityPlayData"]),
accessibilityPauseData: json["accessibilityPauseData"] == null ? null : Accessibility.fromMap(json["accessibilityPauseData"]),
);
Map<String, dynamic> toMap() => {
"playNavigationEndpoint": playNavigationEndpoint?.toMap(),
"trackingParams": trackingParams,
"playIcon": playIcon?.toMap(),
"pauseIcon": pauseIcon?.toMap(),
"iconColor": iconColor,
"backgroundColor": backgroundColor,
"activeBackgroundColor": activeBackgroundColor,
"loadingIndicatorColor": loadingIndicatorColor,
"playingIcon": playingIcon?.toMap(),
"iconLoadingColor": iconLoadingColor,
"activeScaleFactor": activeScaleFactor,
"buttonSize": buttonSize,
"rippleTarget": rippleTarget,
"accessibilityPlayData": accessibilityPlayData?.toMap(),
"accessibilityPauseData": accessibilityPauseData?.toMap(),
};
}
class FluffyPlayNavigationEndpoint {
String? clickTrackingParams;
TargetClass? watchPlaylistEndpoint;
FluffyPlayNavigationEndpoint({
this.clickTrackingParams,
this.watchPlaylistEndpoint,
});
factory FluffyPlayNavigationEndpoint.fromJson(String str) => FluffyPlayNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyPlayNavigationEndpoint.fromMap(Map<String, dynamic> json) => FluffyPlayNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
watchPlaylistEndpoint: json["watchPlaylistEndpoint"] == null ? null : TargetClass.fromMap(json["watchPlaylistEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"watchPlaylistEndpoint": watchPlaylistEndpoint?.toMap(),
};
}
class Title {
List<FluffyRun>? runs;
Title({
this.runs,
});
factory Title.fromJson(String str) => Title.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Title.fromMap(Map<String, dynamic> json) => Title(
runs: json["runs"] == null ? [] : List<FluffyRun>.from(json["runs"]!.map((x) => FluffyRun.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"runs": runs == null ? [] : List<dynamic>.from(runs!.map((x) => x.toMap())),
};
}
class FluffyRun {
String? text;
MusicTwoRowItemRendererNavigationEndpoint? navigationEndpoint;
FluffyRun({
this.text,
this.navigationEndpoint,
});
factory FluffyRun.fromJson(String str) => FluffyRun.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory FluffyRun.fromMap(Map<String, dynamic> json) => FluffyRun(
text: json["text"],
navigationEndpoint: json["navigationEndpoint"] == null ? null : MusicTwoRowItemRendererNavigationEndpoint.fromMap(json["navigationEndpoint"]),
);
Map<String, dynamic> toMap() => {
"text": text,
"navigationEndpoint": navigationEndpoint?.toMap(),
};
}
class MusicCarouselShelfRendererHeader {
MusicCarouselShelfBasicHeaderRenderer? musicCarouselShelfBasicHeaderRenderer;
MusicCarouselShelfRendererHeader({
this.musicCarouselShelfBasicHeaderRenderer,
});
factory MusicCarouselShelfRendererHeader.fromJson(String str) => MusicCarouselShelfRendererHeader.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicCarouselShelfRendererHeader.fromMap(Map<String, dynamic> json) => MusicCarouselShelfRendererHeader(
musicCarouselShelfBasicHeaderRenderer: json["musicCarouselShelfBasicHeaderRenderer"] == null ? null : MusicCarouselShelfBasicHeaderRenderer.fromMap(json["musicCarouselShelfBasicHeaderRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicCarouselShelfBasicHeaderRenderer": musicCarouselShelfBasicHeaderRenderer?.toMap(),
};
}
class MusicCarouselShelfBasicHeaderRenderer {
PrimaryText? title;
PrimaryText? strapline;
Accessibility? accessibilityData;
String? headerStyle;
MoreContentButton? moreContentButton;
String? trackingParams;
MusicCarouselShelfBasicHeaderRenderer({
this.title,
this.strapline,
this.accessibilityData,
this.headerStyle,
this.moreContentButton,
this.trackingParams,
});
factory MusicCarouselShelfBasicHeaderRenderer.fromJson(String str) => MusicCarouselShelfBasicHeaderRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicCarouselShelfBasicHeaderRenderer.fromMap(Map<String, dynamic> json) => MusicCarouselShelfBasicHeaderRenderer(
title: json["title"] == null ? null : PrimaryText.fromMap(json["title"]),
strapline: json["strapline"] == null ? null : PrimaryText.fromMap(json["strapline"]),
accessibilityData: json["accessibilityData"] == null ? null : Accessibility.fromMap(json["accessibilityData"]),
headerStyle: json["headerStyle"],
moreContentButton: json["moreContentButton"] == null ? null : MoreContentButton.fromMap(json["moreContentButton"]),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"title": title?.toMap(),
"strapline": strapline?.toMap(),
"accessibilityData": accessibilityData?.toMap(),
"headerStyle": headerStyle,
"moreContentButton": moreContentButton?.toMap(),
"trackingParams": trackingParams,
};
}
class MoreContentButton {
MoreContentButtonButtonRenderer? buttonRenderer;
MoreContentButton({
this.buttonRenderer,
});
factory MoreContentButton.fromJson(String str) => MoreContentButton.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MoreContentButton.fromMap(Map<String, dynamic> json) => MoreContentButton(
buttonRenderer: json["buttonRenderer"] == null ? null : MoreContentButtonButtonRenderer.fromMap(json["buttonRenderer"]),
);
Map<String, dynamic> toMap() => {
"buttonRenderer": buttonRenderer?.toMap(),
};
}
class MoreContentButtonButtonRenderer {
String? style;
PrimaryText? text;
StickyNavigationEndpoint? navigationEndpoint;
String? trackingParams;
Accessibility? accessibilityData;
MoreContentButtonButtonRenderer({
this.style,
this.text,
this.navigationEndpoint,
this.trackingParams,
this.accessibilityData,
});
factory MoreContentButtonButtonRenderer.fromJson(String str) => MoreContentButtonButtonRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MoreContentButtonButtonRenderer.fromMap(Map<String, dynamic> json) => MoreContentButtonButtonRenderer(
style: json["style"],
text: json["text"] == null ? null : PrimaryText.fromMap(json["text"]),
navigationEndpoint: json["navigationEndpoint"] == null ? null : StickyNavigationEndpoint.fromMap(json["navigationEndpoint"]),
trackingParams: json["trackingParams"],
accessibilityData: json["accessibilityData"] == null ? null : Accessibility.fromMap(json["accessibilityData"]),
);
Map<String, dynamic> toMap() => {
"style": style,
"text": text?.toMap(),
"navigationEndpoint": navigationEndpoint?.toMap(),
"trackingParams": trackingParams,
"accessibilityData": accessibilityData?.toMap(),
};
}
class StickyNavigationEndpoint {
String? clickTrackingParams;
WatchPlaylistEndpoint? watchPlaylistEndpoint;
StickyNavigationEndpoint({
this.clickTrackingParams,
this.watchPlaylistEndpoint,
});
factory StickyNavigationEndpoint.fromJson(String str) => StickyNavigationEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory StickyNavigationEndpoint.fromMap(Map<String, dynamic> json) => StickyNavigationEndpoint(
clickTrackingParams: json["clickTrackingParams"],
watchPlaylistEndpoint: json["watchPlaylistEndpoint"] == null ? null : WatchPlaylistEndpoint.fromMap(json["watchPlaylistEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"watchPlaylistEndpoint": watchPlaylistEndpoint?.toMap(),
};
}
class MusicTastebuilderShelfRenderer {
MusicTastebuilderShelfRendererThumbnail? thumbnail;
PrimaryText? primaryText;
PrimaryText? secondaryText;
ActionButton? actionButton;
bool? isVisible;
String? trackingParams;
MusicTastebuilderShelfRenderer({
this.thumbnail,
this.primaryText,
this.secondaryText,
this.actionButton,
this.isVisible,
this.trackingParams,
});
factory MusicTastebuilderShelfRenderer.fromJson(String str) => MusicTastebuilderShelfRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicTastebuilderShelfRenderer.fromMap(Map<String, dynamic> json) => MusicTastebuilderShelfRenderer(
thumbnail: json["thumbnail"] == null ? null : MusicTastebuilderShelfRendererThumbnail.fromMap(json["thumbnail"]),
primaryText: json["primaryText"] == null ? null : PrimaryText.fromMap(json["primaryText"]),
secondaryText: json["secondaryText"] == null ? null : PrimaryText.fromMap(json["secondaryText"]),
actionButton: json["actionButton"] == null ? null : ActionButton.fromMap(json["actionButton"]),
isVisible: json["isVisible"],
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"thumbnail": thumbnail?.toMap(),
"primaryText": primaryText?.toMap(),
"secondaryText": secondaryText?.toMap(),
"actionButton": actionButton?.toMap(),
"isVisible": isVisible,
"trackingParams": trackingParams,
};
}
class ActionButton {
ActionButtonButtonRenderer? buttonRenderer;
ActionButton({
this.buttonRenderer,
});
factory ActionButton.fromJson(String str) => ActionButton.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ActionButton.fromMap(Map<String, dynamic> json) => ActionButton(
buttonRenderer: json["buttonRenderer"] == null ? null : ActionButtonButtonRenderer.fromMap(json["buttonRenderer"]),
);
Map<String, dynamic> toMap() => {
"buttonRenderer": buttonRenderer?.toMap(),
};
}
class ActionButtonButtonRenderer {
String? style;
PrimaryText? text;
DefaultServiceEndpointClass? navigationEndpoint;
String? trackingParams;
ActionButtonButtonRenderer({
this.style,
this.text,
this.navigationEndpoint,
this.trackingParams,
});
factory ActionButtonButtonRenderer.fromJson(String str) => ActionButtonButtonRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ActionButtonButtonRenderer.fromMap(Map<String, dynamic> json) => ActionButtonButtonRenderer(
style: json["style"],
text: json["text"] == null ? null : PrimaryText.fromMap(json["text"]),
navigationEndpoint: json["navigationEndpoint"] == null ? null : DefaultServiceEndpointClass.fromMap(json["navigationEndpoint"]),
trackingParams: json["trackingParams"],
);
Map<String, dynamic> toMap() => {
"style": style,
"text": text?.toMap(),
"navigationEndpoint": navigationEndpoint?.toMap(),
"trackingParams": trackingParams,
};
}
class MusicTastebuilderShelfRendererThumbnail {
MusicTastebuilderShelfThumbnailRenderer? musicTastebuilderShelfThumbnailRenderer;
MusicTastebuilderShelfRendererThumbnail({
this.musicTastebuilderShelfThumbnailRenderer,
});
factory MusicTastebuilderShelfRendererThumbnail.fromJson(String str) => MusicTastebuilderShelfRendererThumbnail.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicTastebuilderShelfRendererThumbnail.fromMap(Map<String, dynamic> json) => MusicTastebuilderShelfRendererThumbnail(
musicTastebuilderShelfThumbnailRenderer: json["musicTastebuilderShelfThumbnailRenderer"] == null ? null : MusicTastebuilderShelfThumbnailRenderer.fromMap(json["musicTastebuilderShelfThumbnailRenderer"]),
);
Map<String, dynamic> toMap() => {
"musicTastebuilderShelfThumbnailRenderer": musicTastebuilderShelfThumbnailRenderer?.toMap(),
};
}
class MusicTastebuilderShelfThumbnailRenderer {
MusicThumbnailRendererThumbnail? thumbnail;
MusicTastebuilderShelfThumbnailRenderer({
this.thumbnail,
});
factory MusicTastebuilderShelfThumbnailRenderer.fromJson(String str) => MusicTastebuilderShelfThumbnailRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory MusicTastebuilderShelfThumbnailRenderer.fromMap(Map<String, dynamic> json) => MusicTastebuilderShelfThumbnailRenderer(
thumbnail: json["thumbnail"] == null ? null : MusicThumbnailRendererThumbnail.fromMap(json["thumbnail"]),
);
Map<String, dynamic> toMap() => {
"thumbnail": thumbnail?.toMap(),
};
}
class Continuation {
NextContinuationData? nextContinuationData;
Continuation({
this.nextContinuationData,
});
factory Continuation.fromJson(String str) => Continuation.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Continuation.fromMap(Map<String, dynamic> json) => Continuation(
nextContinuationData: json["nextContinuationData"] == null ? null : NextContinuationData.fromMap(json["nextContinuationData"]),
);
Map<String, dynamic> toMap() => {
"nextContinuationData": nextContinuationData?.toMap(),
};
}
class NextContinuationData {
String? continuation;
String? clickTrackingParams;
NextContinuationData({
this.continuation,
this.clickTrackingParams,
});
factory NextContinuationData.fromJson(String str) => NextContinuationData.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory NextContinuationData.fromMap(Map<String, dynamic> json) => NextContinuationData(
continuation: json["continuation"],
clickTrackingParams: json["clickTrackingParams"],
);
Map<String, dynamic> toMap() => {
"continuation": continuation,
"clickTrackingParams": clickTrackingParams,
};
}
class SectionListContinuationHeader {
ChipCloudRenderer? chipCloudRenderer;
SectionListContinuationHeader({
this.chipCloudRenderer,
});
factory SectionListContinuationHeader.fromJson(String str) => SectionListContinuationHeader.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory SectionListContinuationHeader.fromMap(Map<String, dynamic> json) => SectionListContinuationHeader(
chipCloudRenderer: json["chipCloudRenderer"] == null ? null : ChipCloudRenderer.fromMap(json["chipCloudRenderer"]),
);
Map<String, dynamic> toMap() => {
"chipCloudRenderer": chipCloudRenderer?.toMap(),
};
}
class ChipCloudRenderer {
List<Chip>? chips;
String? trackingParams;
bool? horizontalScrollable;
ChipCloudRenderer({
this.chips,
this.trackingParams,
this.horizontalScrollable,
});
factory ChipCloudRenderer.fromJson(String str) => ChipCloudRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ChipCloudRenderer.fromMap(Map<String, dynamic> json) => ChipCloudRenderer(
chips: json["chips"] == null ? [] : List<Chip>.from(json["chips"]!.map((x) => Chip.fromMap(x))),
trackingParams: json["trackingParams"],
horizontalScrollable: json["horizontalScrollable"],
);
Map<String, dynamic> toMap() => {
"chips": chips == null ? [] : List<dynamic>.from(chips!.map((x) => x.toMap())),
"trackingParams": trackingParams,
"horizontalScrollable": horizontalScrollable,
};
}
class Chip {
ChipCloudChipRenderer? chipCloudChipRenderer;
Chip({
this.chipCloudChipRenderer,
});
factory Chip.fromJson(String str) => Chip.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Chip.fromMap(Map<String, dynamic> json) => Chip(
chipCloudChipRenderer: json["chipCloudChipRenderer"] == null ? null : ChipCloudChipRenderer.fromMap(json["chipCloudChipRenderer"]),
);
Map<String, dynamic> toMap() => {
"chipCloudChipRenderer": chipCloudChipRenderer?.toMap(),
};
}
class ChipCloudChipRenderer {
Style? style;
PrimaryText? text;
OnDeselectedCommandClass? navigationEndpoint;
String? trackingParams;
bool? isSelected;
OnDeselectedCommandClass? onDeselectedCommand;
ChipCloudChipRenderer({
this.style,
this.text,
this.navigationEndpoint,
this.trackingParams,
this.isSelected,
this.onDeselectedCommand,
});
factory ChipCloudChipRenderer.fromJson(String str) => ChipCloudChipRenderer.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ChipCloudChipRenderer.fromMap(Map<String, dynamic> json) => ChipCloudChipRenderer(
style: json["style"] == null ? null : Style.fromMap(json["style"]),
text: json["text"] == null ? null : PrimaryText.fromMap(json["text"]),
navigationEndpoint: json["navigationEndpoint"] == null ? null : OnDeselectedCommandClass.fromMap(json["navigationEndpoint"]),
trackingParams: json["trackingParams"],
isSelected: json["isSelected"],
onDeselectedCommand: json["onDeselectedCommand"] == null ? null : OnDeselectedCommandClass.fromMap(json["onDeselectedCommand"]),
);
Map<String, dynamic> toMap() => {
"style": style?.toMap(),
"text": text?.toMap(),
"navigationEndpoint": navigationEndpoint?.toMap(),
"trackingParams": trackingParams,
"isSelected": isSelected,
"onDeselectedCommand": onDeselectedCommand?.toMap(),
};
}
class OnDeselectedCommandClass {
String? clickTrackingParams;
OnDeselectedCommandBrowseEndpoint? browseEndpoint;
OnDeselectedCommandClass({
this.clickTrackingParams,
this.browseEndpoint,
});
factory OnDeselectedCommandClass.fromJson(String str) => OnDeselectedCommandClass.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory OnDeselectedCommandClass.fromMap(Map<String, dynamic> json) => OnDeselectedCommandClass(
clickTrackingParams: json["clickTrackingParams"],
browseEndpoint: json["browseEndpoint"] == null ? null : OnDeselectedCommandBrowseEndpoint.fromMap(json["browseEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"browseEndpoint": browseEndpoint?.toMap(),
};
}
class OnDeselectedCommandBrowseEndpoint {
String? browseId;
String? params;
OnDeselectedCommandBrowseEndpoint({
this.browseId,
this.params,
});
factory OnDeselectedCommandBrowseEndpoint.fromJson(String str) => OnDeselectedCommandBrowseEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory OnDeselectedCommandBrowseEndpoint.fromMap(Map<String, dynamic> json) => OnDeselectedCommandBrowseEndpoint(
browseId: json["browseId"],
params: json["params"],
);
Map<String, dynamic> toMap() => {
"browseId": browseId,
"params": params,
};
}
class Style {
String? styleType;
Style({
this.styleType,
});
factory Style.fromJson(String str) => Style.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Style.fromMap(Map<String, dynamic> json) => Style(
styleType: json["styleType"],
);
Map<String, dynamic> toMap() => {
"styleType": styleType,
};
}
class Endpoint {
String? clickTrackingParams;
EndpointBrowseEndpoint? browseEndpoint;
Endpoint({
this.clickTrackingParams,
this.browseEndpoint,
});
factory Endpoint.fromJson(String str) => Endpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Endpoint.fromMap(Map<String, dynamic> json) => Endpoint(
clickTrackingParams: json["clickTrackingParams"],
browseEndpoint: json["browseEndpoint"] == null ? null : EndpointBrowseEndpoint.fromMap(json["browseEndpoint"]),
);
Map<String, dynamic> toMap() => {
"clickTrackingParams": clickTrackingParams,
"browseEndpoint": browseEndpoint?.toMap(),
};
}
class EndpointBrowseEndpoint {
String? browseId;
EndpointBrowseEndpoint({
this.browseId,
});
factory EndpointBrowseEndpoint.fromJson(String str) => EndpointBrowseEndpoint.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory EndpointBrowseEndpoint.fromMap(Map<String, dynamic> json) => EndpointBrowseEndpoint(
browseId: json["browseId"],
);
Map<String, dynamic> toMap() => {
"browseId": browseId,
};
}
class ContinuationContents {
SectionList? sectionListContinuation;
ContinuationContents({
this.sectionListContinuation,
});
factory ContinuationContents.fromJson(String str) => ContinuationContents.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ContinuationContents.fromMap(Map<String, dynamic> json) => ContinuationContents(
sectionListContinuation: json["sectionListContinuation"] == null ? null : SectionList.fromMap(json["sectionListContinuation"]),
);
Map<String, dynamic> toMap() => {
"sectionListContinuation": sectionListContinuation?.toMap(),
};
}
class ResponseContext {
String? visitorData;
List<ServiceTrackingParam>? serviceTrackingParams;
int? maxAgeSeconds;
ResponseContext({
this.visitorData,
this.serviceTrackingParams,
this.maxAgeSeconds,
});
factory ResponseContext.fromJson(String str) => ResponseContext.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ResponseContext.fromMap(Map<String, dynamic> json) => ResponseContext(
visitorData: json["visitorData"],
serviceTrackingParams: json["serviceTrackingParams"] == null ? [] : List<ServiceTrackingParam>.from(json["serviceTrackingParams"]!.map((x) => ServiceTrackingParam.fromMap(x))),
maxAgeSeconds: json["maxAgeSeconds"],
);
Map<String, dynamic> toMap() => {
"visitorData": visitorData,
"serviceTrackingParams": serviceTrackingParams == null ? [] : List<dynamic>.from(serviceTrackingParams!.map((x) => x.toMap())),
"maxAgeSeconds": maxAgeSeconds,
};
}
class ServiceTrackingParam {
String? service;
List<Param>? params;
ServiceTrackingParam({
this.service,
this.params,
});
factory ServiceTrackingParam.fromJson(String str) => ServiceTrackingParam.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory ServiceTrackingParam.fromMap(Map<String, dynamic> json) => ServiceTrackingParam(
service: json["service"],
params: json["params"] == null ? [] : List<Param>.from(json["params"]!.map((x) => Param.fromMap(x))),
);
Map<String, dynamic> toMap() => {
"service": service,
"params": params == null ? [] : List<dynamic>.from(params!.map((x) => x.toMap())),
};
}
class Param {
String? key;
String? value;
Param({
this.key,
this.value,
});
factory Param.fromJson(String str) => Param.fromMap(json.decode(str));
String toJson() => json.encode(toMap());
factory Param.fromMap(Map<String, dynamic> json) => Param(
key: json["key"],
value: json["value"],
);
Map<String, dynamic> toMap() => {
"key": key,
"value": value,
};
}