use yew::prelude::*;
pub enum Msg {}
pub struct ObjectAssets {
pub props: Props,
}
#[derive(Clone, Properties)]
pub struct Props {
pub icon: ObjectIcon,
#[prop_or(("24".to_string(),"24".to_string()))]
pub size: (String, String),
#[prop_or(("0".to_string(),"0".to_string(),"24".to_string(),"24".to_string()))]
pub view_box: (String, String, String, String),
#[prop_or("none".to_string())]
pub fill: String,
#[prop_or_default]
pub class_name: String,
#[prop_or_default]
pub id: String,
}
impl Component for ObjectAssets {
type Properties = Props;
type Message = Msg;
fn create(props: Self::Properties, _link: ComponentLink<Self>) -> Self {
Self { props }
}
fn update(&mut self, _msg: Self::Message) -> ShouldRender {
false
}
fn change(&mut self, props: Self::Properties) -> ShouldRender {
self.props = props;
true
}
fn view(&self) -> Html {
get_icon(
self.props.icon.clone(),
self.props.size.clone(),
self.props.view_box.clone(),
self.props.fill.clone(),
self.props.class_name.clone(),
self.props.id.clone(),
)
}
}
#[derive(Clone)]
pub enum ObjectIcon {
Square,
Briefcase,
Box,
Anchor,
Paperclip,
Triangle,
Gift,
Truck,
PenTool,
Book,
Hexagon,
Coffee,
Disc,
LifeBuoy,
Key,
Package,
Globe,
Octagon,
Circle,
}
fn get_icon(
icon: ObjectIcon,
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
match icon {
ObjectIcon::Square => get_square(size, view_box, fill, class_name, id),
ObjectIcon::Briefcase => get_briefcase(size, view_box, fill, class_name, id),
ObjectIcon::Box => get_box(size, view_box, fill, class_name, id),
ObjectIcon::Anchor => get_anchor(size, view_box, fill, class_name, id),
ObjectIcon::Paperclip => get_paperclip(size, view_box, fill, class_name, id),
ObjectIcon::Triangle => get_triangle(size, view_box, fill, class_name, id),
ObjectIcon::Gift => get_gift(size, view_box, fill, class_name, id),
ObjectIcon::Truck => get_truck(size, view_box, fill, class_name, id),
ObjectIcon::PenTool => get_pentool(size, view_box, fill, class_name, id),
ObjectIcon::Book => get_book(size, view_box, fill, class_name, id),
ObjectIcon::Hexagon => get_hexagon(size, view_box, fill, class_name, id),
ObjectIcon::Coffee => get_coffee(size, view_box, fill, class_name, id),
ObjectIcon::Disc => get_disc(size, view_box, fill, class_name, id),
ObjectIcon::LifeBuoy => get_lifebuoy(size, view_box, fill, class_name, id),
ObjectIcon::Key => get_key(size, view_box, fill, class_name, id),
ObjectIcon::Package => get_package(size, view_box, fill, class_name, id),
ObjectIcon::Globe => get_globe(size, view_box, fill, class_name, id),
ObjectIcon::Octagon => get_octagon(size, view_box, fill, class_name, id),
ObjectIcon::Circle => get_circle(size, view_box, fill, class_name, id),
}
}
fn get_square(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><rect x="3" y="3" width="18" height="18" rx="2" ry="2"></rect></svg>
}
}
fn get_briefcase(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><rect x="2" y="7" width="20" height="14" rx="2" ry="2"></rect><path d="M16 21V5a2 2 0 0 0-2-2h-4a2 2 0 0 0-2 2v16"></path></svg>
}
}
fn get_box(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
}
}
fn get_anchor(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><circle cx="12" cy="5" r="3"></circle><line x1="12" y1="22" x2="12" y2="8"></line><path d="M5 12H2a10 10 0 0 0 20 0h-3"></path></svg>
}
}
fn get_paperclip(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M21.44 11.05l-9.19 9.19a6 6 0 0 1-8.49-8.49l9.19-9.19a4 4 0 0 1 5.66 5.66l-9.2 9.19a2 2 0 0 1-2.83-2.83l8.49-8.48"></path></svg>
}
}
fn get_triangle(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M10.29 3.86L1.82 18a2 2 0 0 0 1.71 3h16.94a2 2 0 0 0 1.71-3L13.71 3.86a2 2 0 0 0-3.42 0z"></path></svg>
}
}
fn get_gift(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><polyline points="20 12 20 22 4 22 4 12"></polyline><rect x="2" y="7" width="20" height="5"></rect><line x1="12" y1="22" x2="12" y2="7"></line><path d="M12 7H7.5a2.5 2.5 0 0 1 0-5C11 2 12 7 12 7z"></path><path d="M12 7h4.5a2.5 2.5 0 0 0 0-5C13 2 12 7 12 7z"></path></svg>
}
}
fn get_truck(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><rect x="1" y="3" width="15" height="13"></rect><polygon points="16 8 20 8 23 11 23 16 16 16 16 8"></polygon><circle cx="5.5" cy="18.5" r="2.5"></circle><circle cx="18.5" cy="18.5" r="2.5"></circle></svg>
}
}
fn get_pentool(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M12 19l7-7 3 3-7 7-3-3z"></path><path d="M18 13l-1.5-7.5L2 2l3.5 14.5L13 18l5-5z"></path><path d="M2 2l7.586 7.586"></path><circle cx="11" cy="11" r="2"></circle></svg>
}
}
fn get_book(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M4 19.5A2.5 2.5 0 0 1 6.5 17H20"></path><path d="M6.5 2H20v20H6.5A2.5 2.5 0 0 1 4 19.5v-15A2.5 2.5 0 0 1 6.5 2z"></path></svg>
}
}
fn get_hexagon(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path></svg>
}
}
fn get_coffee(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M18 8h1a4 4 0 0 1 0 8h-1"></path><path d="M2 8h16v9a4 4 0 0 1-4 4H6a4 4 0 0 1-4-4V8z"></path><line x1="6" y1="1" x2="6" y2="4"></line><line x1="10" y1="1" x2="10" y2="4"></line><line x1="14" y1="1" x2="14" y2="4"></line></svg>
}
}
fn get_disc(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="3"></circle></svg>
}
}
fn get_lifebuoy(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><circle cx="12" cy="12" r="10"></circle><circle cx="12" cy="12" r="4"></circle><line x1="4.93" y1="4.93" x2="9.17" y2="9.17"></line><line x1="14.83" y1="14.83" x2="19.07" y2="19.07"></line><line x1="14.83" y1="9.17" x2="19.07" y2="4.93"></line><line x1="14.83" y1="9.17" x2="18.36" y2="5.64"></line><line x1="4.93" y1="19.07" x2="9.17" y2="14.83"></line></svg>
}
}
fn get_key(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><path d="M21 2l-2 2m-7.61 7.61a5.5 5.5 0 1 1-7.778 7.778 5.5 5.5 0 0 1 7.777-7.777zm0 0L15.5 7.5m0 0l3 3L22 7l-3-3m-3.5 3.5L19 4"></path></svg>
}
}
fn get_package(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><line x1="16.5" y1="9.4" x2="7.5" y2="4.21"></line><path d="M21 16V8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16z"></path><polyline points="3.27 6.96 12 12.01 20.73 6.96"></polyline><line x1="12" y1="22.08" x2="12" y2="12"></line></svg>
}
}
fn get_globe(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><circle cx="12" cy="12" r="10"></circle><line x1="2" y1="12" x2="22" y2="12"></line><path d="M12 2a15.3 15.3 0 0 1 4 10 15.3 15.3 0 0 1-4 10 15.3 15.3 0 0 1-4-10 15.3 15.3 0 0 1 4-10z"></path></svg>
}
}
fn get_octagon(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><polygon points="7.86 2 16.14 2 22 7.86 22 16.14 16.14 22 7.86 22 2 16.14 2 7.86 7.86 2"></polygon></svg>
}
}
fn get_circle(
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
html! {
<svg xmlns="http://www.w3.org/2000/svg" witdh=size.0 height=size.1 viewBox=format!("{} {} {} {}",
view_box.0,
view_box.1,
view_box.2,
view_box.3,
) fill=fill id=id stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class=class_name><circle cx="12" cy="12" r="10"></circle></svg>
}
}