{"version":3,"sources":["../../src/types/WidgetStylePayload.ts"],"sourcesContent":["import type { WidgetStyle } from \"./WidgetStyle\";\n\n// Re-exported so server code can pull the type from this React-free entry instead of the\n// barrel (whose value exports drag the client components into Server Components).\nexport type { WidgetStyle } from \"./WidgetStyle\";\n\nexport const WIDGET_STYLE_SCHEMA_VERSION = 1 as const;\n\nexport const IDENTITY_FIELDS = [\n  \"id\",\n  \"user_id\",\n  \"style_name\",\n  \"brand_id\",\n  \"brand_name\",\n  \"lang\",\n  \"created_at\",\n] as const satisfies readonly (keyof WidgetStyle)[];\n\nexport const ROUTING_FIELDS = [\n  \"news_version\",\n  \"news_version_staged\",\n] as const satisfies readonly (keyof WidgetStyle)[];\n\nexport const PAYLOAD_FIELDS = [\n  \"font_family\",\n  \"font_weight_heading\",\n  \"font_weight_body\",\n  \"currency_logos_rounded\",\n  \"main_background\",\n  \"main_rounded\",\n  \"main_border\",\n  \"main_shadow\",\n  \"main_text_color\",\n  \"main_font_size\",\n  \"cta_button_position\",\n  \"cta_button_label\",\n  \"cta_button_link\",\n  \"cta_button_roundness\",\n  \"cta_button_background\",\n  \"cta_button_text\",\n  \"base_background\",\n  \"base_rounded\",\n  \"base_border\",\n  \"base_shadow\",\n  \"base_text_color\",\n  \"base_font_size\",\n  \"input_background\",\n  \"input_rounded\",\n  \"input_border\",\n  \"input_shadow\",\n  \"input_text_color\",\n  \"input_font_size\",\n  \"button_background\",\n  \"button_rounded\",\n  \"button_border\",\n  \"button_shadow\",\n  \"button_text_color\",\n  \"button_font_size\",\n  \"dropdown_background\",\n  \"dropdown_rounded\",\n  \"dropdown_border\",\n  \"dropdown_shadow\",\n  \"dropdown_text_color\",\n  \"dropdown_font_size\",\n  \"results_background\",\n  \"results_rounded\",\n  \"results_border\",\n  \"results_shadow\",\n  \"results_text_color\",\n  \"results_font_size\",\n  \"results_secondary_font_size\",\n  \"results_separator_color\",\n  \"table_striped\",\n  \"table_rounded\",\n  \"table_shadow\",\n  \"table_border\",\n  \"table_row_separator\",\n  \"table_column_separator\",\n  \"table_head_background\",\n  \"table_head_text_color\",\n  \"table_head_font_size\",\n  \"table_body_background\",\n  \"table_body_text_color\",\n  \"table_body_font_size\",\n  \"heatmap_logo_background\",\n  \"heatmap_custom_logo\",\n  \"date_background\",\n  \"date_text\",\n  \"date_border\",\n  \"date_roundness\",\n  \"date_font_size\",\n  \"date_shadow\",\n  \"date_selected_background\",\n  \"date_selected_text\",\n  \"econ_impact_low_bg\",\n  \"econ_impact_low_txt\",\n  \"econ_impact_med_bg\",\n  \"econ_impact_med_txt\",\n  \"econ_impact_high_bg\",\n  \"econ_impact_high_txt\",\n  \"signals_sup_res_background\",\n  \"signals_chart_on_bottom\",\n  \"signals_single_asset\",\n  \"signals_column_mode\",\n  \"signals_hclo_color\",\n  \"econ_coming_soon_color\",\n  \"glossary_titles_color\",\n  \"glossary_defs_color\",\n  \"news_scroll_mode\",\n  \"video_news_version\",\n  \"video_news_version_staged\",\n  \"video_news_background_mode\",\n  \"video_news_background_color\",\n  \"video_news_gradient_to\",\n  \"video_news_gradient_angle\",\n  \"video_news_text_color\",\n  \"video_news_muted_text_color\",\n  \"video_news_accent_color\",\n  \"video_news_rounded\",\n  \"video_news_max_width\",\n  \"video_news_heading_font\",\n  \"video_news_body_font\",\n  \"video_news_show_logo\",\n  \"video_news_logo_url\",\n  \"video_news_eyebrow\",\n  \"video_news_title\",\n  \"video_news_use_clickbait\",\n  \"video_news_description\",\n  \"video_news_cta_label\",\n  \"video_news_cta_url\",\n  \"video_news_cta_new_tab\",\n  \"video_news_show_share\",\n  \"video_news_share_label\",\n  \"news_v2_layout_mode\",\n  \"news_v2_share_buttons\",\n  \"news_v2_show_reading_time\",\n  \"news_v2_show_date\",\n  \"news_v2_show_categories\",\n  \"news_v2_featured_show_chart\",\n  \"news_v2_card_background\",\n  \"news_v2_card_border\",\n  \"news_v2_card_shadow\",\n  \"news_v2_card_rounded\",\n  \"news_v2_headline_color\",\n  \"news_v2_headline_font_size\",\n  \"news_v2_excerpt_color\",\n  \"news_v2_meta_color\",\n  \"news_v2_tab_background\",\n  \"news_v2_tab_active_background\",\n  \"news_v2_tab_text_color\",\n  \"news_v2_tab_active_text_color\",\n  \"news_v2_category_color_forex\",\n  \"news_v2_category_color_stock\",\n  \"news_v2_category_color_crypto\",\n  \"news_v2_category_color_cmd\",\n  \"news_v2_category_color_worldec\",\n  \"news_v2_category_color_regec\",\n  \"news_v2_chart_theme\",\n  \"news_v2_font_family\",\n  \"news_v3_promo_enabled\",\n  \"news_v3_promo_media_url\",\n  \"news_v3_promo_cta_url\",\n  \"news_v4_key_takeaways_background\",\n  \"news_v4_key_takeaways_rounded\",\n  \"news_v4_key_takeaways_border\",\n  \"news_v4_key_takeaways_bullet_color\",\n  \"news_v4_key_takeaways_glow\",\n  \"analyst_recommendations_text_color\",\n  \"analyst_recommendations_secondary_text_color\",\n  \"analyst_recommendations_padding\",\n  \"analyst_recommendations_buy_color\",\n  \"analyst_recommendations_neutral_color\",\n  \"analyst_recommendations_sell_color\",\n  \"analyst_recommendations_track_color\",\n  \"analyst_recommendations_needle_color\",\n  \"analyst_recommendations_show_asset\",\n  \"analyst_recommendations_mode\",\n  \"analyst_recommendations_strong_sell_bar_color\",\n  \"analyst_recommendations_strong_sell_text_color\",\n  \"analyst_recommendations_moderate_sell_bar_color\",\n  \"analyst_recommendations_moderate_sell_text_color\",\n  \"analyst_recommendations_hold_bar_color\",\n  \"analyst_recommendations_hold_text_color\",\n  \"analyst_recommendations_moderate_buy_bar_color\",\n  \"analyst_recommendations_moderate_buy_text_color\",\n  \"analyst_recommendations_strong_buy_bar_color\",\n  \"analyst_recommendations_strong_buy_text_color\",\n  \"live_updates_dot_fresh_color\",\n  \"live_updates_dot_seen_color\",\n  \"live_updates_version\",\n  \"video_explainer_card_background\",\n  \"video_explainer_rail_background\",\n  \"video_explainer_tab_background\",\n  \"video_explainer_text_color\",\n  \"video_explainer_muted_text_color\",\n  \"video_explainer_border_color\",\n  \"video_explainer_accent\",\n  \"video_explainer_accent_soft\",\n  \"video_explainer_up_color\",\n  \"video_explainer_down_color\",\n  \"video_explainer_rounded\",\n  \"video_explainer_heading_font\",\n  \"video_explainer_body_font\",\n  \"video_explainer_max_width\",\n] as const satisfies readonly (keyof WidgetStyle)[];\n\nexport type WidgetStylePayload = Pick<\n  WidgetStyle,\n  (typeof PAYLOAD_FIELDS)[number]\n> & { schema_version: number };\n\ntype ClassifiedField =\n  | (typeof IDENTITY_FIELDS)[number]\n  | (typeof ROUTING_FIELDS)[number]\n  | (typeof PAYLOAD_FIELDS)[number];\ntype AssertNever<T extends never> = T;\ntype _Exhaustive = AssertNever<Exclude<keyof WidgetStyle, ClassifiedField>>;\n\nexport function toPayload(style: WidgetStyle): WidgetStylePayload {\n  const payload: Record<string, unknown> = {\n    schema_version: WIDGET_STYLE_SCHEMA_VERSION,\n  };\n  for (const key of PAYLOAD_FIELDS) {\n    const value = style[key];\n    payload[key] =\n      typeof value === \"boolean\" ? (value ? 1 : 0) : (value ?? null);\n  }\n  return payload as WidgetStylePayload;\n}\n"],"mappings":"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","names":[]}