use crate::IconWeight;
use leptos::*;
#[cfg(any(feature = "development", feature = "finance"))]
#[component]
pub fn MathOperations(
#[prop(into, default = MaybeSignal::Static(IconWeight::Regular))] weight: MaybeSignal<
IconWeight,
>,
#[prop(into, default = TextProp::from("1em"))] size: TextProp,
#[prop(into, default = TextProp::from("currentColor"))] color: TextProp,
#[prop(into, default = MaybeSignal::Static(false))] mirrored: MaybeSignal<bool>,
#[prop(into, optional)] id: MaybeProp<TextProp>,
#[prop(into, optional)] class: MaybeProp<TextProp>,
) -> impl IntoView {
let body = Signal::derive(move || {
match weight.get() {
IconWeight::Fill => view! {
<path d="M208,32H48A16,16,0,0,0,32,48V208a16,16,0,0,0,16,16H208a16,16,0,0,0,16-16V48A16,16,0,0,0,208,32ZM146.34,77.66a8,8,0,0,1,11.32-11.32L168,76.69l10.34-10.35a8,8,0,0,1,11.32,11.32L179.31,88l10.35,10.34a8,8,0,0,1-11.32,11.32L168,99.31l-10.34,10.35a8,8,0,0,1-11.32-11.32L156.69,88ZM112,176H96v16a8,8,0,0,1-16,0V176H64a8,8,0,0,1,0-16H80V144a8,8,0,0,1,16,0v16h16a8,8,0,0,1,0,16Zm0-80H64a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm80,96H144a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Zm0-32H144a8,8,0,0,1,0-16h48a8,8,0,0,1,0,16Z"></path>
}.into_view(),
IconWeight::Duotone => view! {
<path
d="M216,48V208a8,8,0,0,1-8,8H48a8,8,0,0,1-8-8V48a8,8,0,0,1,8-8H208A8,8,0,0,1,216,48Z"
opacity="0.2"
></path>
<path d="M112,72a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16h64A8,8,0,0,1,112,72Zm-8,104H80V152a8,8,0,0,0-16,0v24H40a8,8,0,0,0,0,16H64v24a8,8,0,0,0,16,0V192h24a8,8,0,0,0,0-16Zm48,0h64a8,8,0,0,0,0-16H152a8,8,0,0,0,0,16Zm64,16H152a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Zm-61.66-90.34a8,8,0,0,0,11.32,0L184,83.31l18.34,18.35a8,8,0,0,0,11.32-11.32L195.31,72l18.35-18.34a8,8,0,0,0-11.32-11.32L184,60.69,165.66,42.34a8,8,0,0,0-11.32,11.32L172.69,72,154.34,90.34A8,8,0,0,0,154.34,101.66Z"></path>
}.into_view(),
IconWeight::Thin => view! {
<path d="M108,72a4,4,0,0,1-4,4H40a4,4,0,0,1,0-8h64A4,4,0,0,1,108,72Zm-4,108H76V152a4,4,0,0,0-8,0v28H40a4,4,0,0,0,0,8H68v28a4,4,0,0,0,8,0V188h28a4,4,0,0,0,0-8Zm48-8h64a4,4,0,0,0,0-8H152a4,4,0,0,0,0,8Zm64,24H152a4,4,0,0,0,0,8h64a4,4,0,0,0,0-8ZM157.17,98.83a4,4,0,0,0,5.66,0L184,77.66l21.17,21.17a4,4,0,1,0,5.66-5.66L189.66,72l21.17-21.17a4,4,0,1,0-5.66-5.66L184,66.34,162.83,45.17a4,4,0,0,0-5.66,5.66L178.34,72,157.17,93.17A4,4,0,0,0,157.17,98.83Z"></path>
}.into_view(),
IconWeight::Bold => view! {
<path d="M116,72a12,12,0,0,1-12,12H40a12,12,0,0,1,0-24h64A12,12,0,0,1,116,72ZM104,172H84V152a12,12,0,0,0-24,0v20H40a12,12,0,0,0,0,24H60v20a12,12,0,0,0,24,0V196h20a12,12,0,0,0,0-24Zm48,4h64a12,12,0,0,0,0-24H152a12,12,0,0,0,0,24Zm64,16H152a12,12,0,0,0,0,24h64a12,12,0,0,0,0-24Zm-64.49-87.51a12,12,0,0,0,17,0L184,89l15.51,15.52a12,12,0,0,0,17-17L201,72l15.52-15.51a12,12,0,0,0-17-17L184,55,168.49,39.51a12,12,0,0,0-17,17L167,72,151.51,87.51A12,12,0,0,0,151.51,104.49Z"></path>
}.into_view(),
IconWeight::Light => view! {
<path d="M110,72a6,6,0,0,1-6,6H40a6,6,0,0,1,0-12h64A6,6,0,0,1,110,72Zm-6,106H78V152a6,6,0,0,0-12,0v26H40a6,6,0,0,0,0,12H66v26a6,6,0,0,0,12,0V190h26a6,6,0,0,0,0-12Zm48-4h64a6,6,0,0,0,0-12H152a6,6,0,0,0,0,12Zm64,20H152a6,6,0,0,0,0,12h64a6,6,0,0,0,0-12Zm-60.24-93.76a6,6,0,0,0,8.48,0L184,80.49l19.76,19.75a6,6,0,0,0,8.48-8.48L192.49,72l19.75-19.76a6,6,0,0,0-8.48-8.48L184,63.51,164.24,43.76a6,6,0,0,0-8.48,8.48L175.51,72,155.76,91.76A6,6,0,0,0,155.76,100.24Z"></path>
}.into_view(),
IconWeight::Regular => view! {
<path d="M112,72a8,8,0,0,1-8,8H40a8,8,0,0,1,0-16h64A8,8,0,0,1,112,72Zm-8,104H80V152a8,8,0,0,0-16,0v24H40a8,8,0,0,0,0,16H64v24a8,8,0,0,0,16,0V192h24a8,8,0,0,0,0-16Zm48,0h64a8,8,0,0,0,0-16H152a8,8,0,0,0,0,16Zm64,16H152a8,8,0,0,0,0,16h64a8,8,0,0,0,0-16Zm-61.66-90.34a8,8,0,0,0,11.32,0L184,83.31l18.34,18.35a8,8,0,0,0,11.32-11.32L195.31,72l18.35-18.34a8,8,0,0,0-11.32-11.32L184,60.69,165.66,42.34a8,8,0,0,0-11.32,11.32L172.69,72,154.34,90.34A8,8,0,0,0,154.34,101.66Z"></path>
}.into_view()
}
});
let transform = move || if mirrored.get() { "scale(-1, 1)" } else { "" };
let height = size.clone();
view! {
<svg
xmlns="http://www.w3.org/2000/svg"
width=move || size.get()
height=move || height.get()
fill=color
transform=transform
viewBox="0 0 256 256"
id=move || id.get().unwrap_or(TextProp::from(""))
class=move || class.get().unwrap_or(TextProp::from(""))
>
{body}
</svg>
}
}