use yew::prelude::*;
pub enum Msg {}
pub struct EnvAssets {
pub props: Props,
}
#[derive(Clone, Properties)]
pub struct Props {
pub icon: EnvIcon,
#[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 EnvAssets {
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 EnvIcon {
Umbrella,
Cloud,
CloudLightning,
CloudOff,
CloudDrizzle,
Calendar,
Sunrise,
Clock,
Sunset,
CloudRain,
CloudSnow,
Wind,
Moon,
Thermometer,
Sun,
}
fn get_icon(
icon: EnvIcon,
size: (String, String),
view_box: (String, String, String, String),
fill: String,
class_name: String,
id: String,
) -> Html {
match icon {
EnvIcon::Umbrella => get_umbrella(size, view_box, fill, class_name, id),
EnvIcon::Cloud => get_cloud(size, view_box, fill, class_name, id),
EnvIcon::CloudLightning => get_cloudlightning(size, view_box, fill, class_name, id),
EnvIcon::CloudOff => get_cloudoff(size, view_box, fill, class_name, id),
EnvIcon::CloudDrizzle => get_clouddrizzle(size, view_box, fill, class_name, id),
EnvIcon::Calendar => get_calendar(size, view_box, fill, class_name, id),
EnvIcon::Sunrise => get_sunrise(size, view_box, fill, class_name, id),
EnvIcon::Clock => get_clock(size, view_box, fill, class_name, id),
EnvIcon::Sunset => get_sunset(size, view_box, fill, class_name, id),
EnvIcon::CloudRain => get_cloudrain(size, view_box, fill, class_name, id),
EnvIcon::CloudSnow => get_cloudsnow(size, view_box, fill, class_name, id),
EnvIcon::Wind => get_wind(size, view_box, fill, class_name, id),
EnvIcon::Moon => get_moon(size, view_box, fill, class_name, id),
EnvIcon::Thermometer => get_thermometer(size, view_box, fill, class_name, id),
EnvIcon::Sun => get_sun(size, view_box, fill, class_name, id),
}
}
fn get_umbrella(
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="M23 12a11.05 11.05 0 0 0-22 0zm-5 7a3 3 0 0 1-6 0v-7"></path></svg>
}
}
fn get_cloud(
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 10h-1.26A8 8 0 1 0 9 20h9a5 5 0 0 0 0-10z"></path></svg>
}
}
fn get_cloudlightning(
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="M19 16.9A5 5 0 0 0 18 7h-1.26a8 8 0 1 0-11.62 9"></path><polyline points="13 11 9 17 15 17 11 23"></polyline></svg>
}
}
fn get_cloudoff(
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="M22.61 16.95A5 5 0 0 0 18 10h-1.26a8 8 0 0 0-7.05-6M5 5a8 8 0 0 0 4 15h9a5 5 0 0 0 1.7-.3"></path><line x1="1" y1="1" x2="23" y2="23"></line></svg>
}
}
fn get_clouddrizzle(
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="8" y1="19" x2="8" y2="21"></line><line x1="8" y1="13" x2="8" y2="15"></line><line x1="16" y1="19" x2="16" y2="21"></line><line x1="16" y1="13" x2="16" y2="15"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="12" y1="15" x2="12" y2="17"></line><path d="M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25"></path></svg>
}
}
fn get_calendar(
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="4" width="18" height="18" rx="2" ry="2"></rect><line x1="16" y1="2" x2="16" y2="6"></line><line x1="8" y1="2" x2="8" y2="6"></line><line x1="3" y1="10" x2="21" y2="10"></line></svg>
}
}
fn get_sunrise(
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="M17 18a5 5 0 0 0-10 0"></path><line x1="12" y1="2" x2="12" y2="9"></line><line x1="4.22" y1="10.22" x2="5.64" y2="11.64"></line><line x1="1" y1="18" x2="3" y2="18"></line><line x1="21" y1="18" x2="23" y2="18"></line><line x1="18.36" y1="11.64" x2="19.78" y2="10.22"></line><line x1="23" y1="22" x2="1" y2="22"></line><polyline points="8 6 12 2 16 6"></polyline></svg>
}
}
fn get_clock(
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><polyline points="12 6 12 12 16 14"></polyline></svg>
}
}
fn get_sunset(
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="M17 18a5 5 0 0 0-10 0"></path><line x1="12" y1="9" x2="12" y2="2"></line><line x1="4.22" y1="10.22" x2="5.64" y2="11.64"></line><line x1="1" y1="18" x2="3" y2="18"></line><line x1="21" y1="18" x2="23" y2="18"></line><line x1="18.36" y1="11.64" x2="19.78" y2="10.22"></line><line x1="23" y1="22" x2="1" y2="22"></line><polyline points="16 5 12 9 8 5"></polyline></svg>
}
}
fn get_cloudrain(
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" y1="13" x2="16" y2="21"></line><line x1="8" y1="13" x2="8" y2="21"></line><line x1="12" y1="15" x2="12" y2="23"></line><path d="M20 16.58A5 5 0 0 0 18 7h-1.26A8 8 0 1 0 4 15.25"></path></svg>
}
}
fn get_cloudsnow(
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="M20 17.58A5 5 0 0 0 18 8h-1.26A8 8 0 1 0 4 16.25"></path><line x1="8" y1="16" x2="8.01" y2="16"></line><line x1="8" y1="20" x2="8.01" y2="20"></line><line x1="12" y1="18" x2="12.01" y2="18"></line><line x1="12" y1="22" x2="12.01" y2="22"></line><line x1="16" y1="16" x2="16.01" y2="16"></line><line x1="16" y1="20" x2="16.01" y2="20"></line></svg>
}
}
fn get_wind(
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="M9.59 4.59A2 2 0 1 1 11 8H2m10.59 11.41A2 2 0 1 0 14 16H2m15.73-8.27A2.5 2.5 0 1 1 19.5 12H2"></path></svg>
}
}
fn get_moon(
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 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg>
}
}
fn get_thermometer(
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="M14 14.76V3.5a2.5 2.5 0 0 0-5 0v11.26a4.5 4.5 0 1 0 5 0z"></path></svg>
}
}
fn get_sun(
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="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg>
}
}