-module(json_canvas@internal@encode@node). -compile([no_auto_import, nowarn_unused_vars, nowarn_unused_function, nowarn_nomatch]). -export([encode_group_background_style/1, encode_node/1]). -spec encode_group_background_style(json_canvas@types:group_background_style()) -> gleam@json:json(). encode_group_background_style(Group_background_style) -> _pipe = case Group_background_style of cover -> <<"cover"/utf8>>; ratio -> <<"ratio"/utf8>>; repeat -> <<"repeat"/utf8>> end, gleam@json:string(_pipe). -spec encode_node(json_canvas@types:node_()) -> gleam@json:json(). encode_node(Node) -> case Node of {text_node, Id, X, Y, Width, Height, Color, Text} -> Required_entries = [{<<"id"/utf8>>, json_canvas@internal@encode@node_id:encode_node_id(Id)}, {<<"x"/utf8>>, gleam@json:int(X)}, {<<"y"/utf8>>, gleam@json:int(Y)}, {<<"width"/utf8>>, gleam@json:int(Width)}, {<<"height"/utf8>>, gleam@json:int(Height)}, {<<"text"/utf8>>, gleam@json:string(Text)}], Optional_entries = [{<<"color"/utf8>>, gleam@option:map(Color, fun gleam@json:string/1)}], json_canvas@internal@encode@json_object:json_object( Required_entries, Optional_entries ); {file_node, Id@1, X@1, Y@1, Width@1, Height@1, Color@1, Path, Subpath} -> Required_entries@1 = [{<<"id"/utf8>>, json_canvas@internal@encode@node_id:encode_node_id(Id@1)}, {<<"x"/utf8>>, gleam@json:int(X@1)}, {<<"y"/utf8>>, gleam@json:int(Y@1)}, {<<"width"/utf8>>, gleam@json:int(Width@1)}, {<<"height"/utf8>>, gleam@json:int(Height@1)}, {<<"path"/utf8>>, gleam@json:string(Path)}], Optional_entries@1 = [{<<"color"/utf8>>, gleam@option:map(Color@1, fun gleam@json:string/1)}, {<<"subpath"/utf8>>, gleam@option:map(Subpath, fun gleam@json:string/1)}], json_canvas@internal@encode@json_object:json_object( Required_entries@1, Optional_entries@1 ); {link_node, Id@2, X@2, Y@2, Width@2, Height@2, Color@2, Url} -> Required_entries@2 = [{<<"id"/utf8>>, json_canvas@internal@encode@node_id:encode_node_id(Id@2)}, {<<"x"/utf8>>, gleam@json:int(X@2)}, {<<"y"/utf8>>, gleam@json:int(Y@2)}, {<<"width"/utf8>>, gleam@json:int(Width@2)}, {<<"height"/utf8>>, gleam@json:int(Height@2)}, {<<"url"/utf8>>, gleam@json:string(Url)}], Optional_entries@2 = [{<<"color"/utf8>>, gleam@option:map(Color@2, fun gleam@json:string/1)}], json_canvas@internal@encode@json_object:json_object( Required_entries@2, Optional_entries@2 ); {group_node, Id@3, X@3, Y@3, Width@3, Height@3, Color@3, Label, Background, Background_style} -> Required_entries@3 = [{<<"id"/utf8>>, json_canvas@internal@encode@node_id:encode_node_id(Id@3)}, {<<"x"/utf8>>, gleam@json:int(X@3)}, {<<"y"/utf8>>, gleam@json:int(Y@3)}, {<<"width"/utf8>>, gleam@json:int(Width@3)}, {<<"height"/utf8>>, gleam@json:int(Height@3)}], Optional_entries@3 = [{<<"color"/utf8>>, gleam@option:map(Color@3, fun gleam@json:string/1)}, {<<"label"/utf8>>, gleam@option:map(Label, fun gleam@json:string/1)}, {<<"background"/utf8>>, gleam@option:map(Background, fun gleam@json:string/1)}, {<<"backgroundStyle"/utf8>>, gleam@option:map( Background_style, fun encode_group_background_style/1 )}], json_canvas@internal@encode@json_object:json_object( Required_entries@3, Optional_entries@3 ) end.