// Copyright (c) MudBlazor 2021 // MudBlazor licenses this file to you under the MIT license. // See the LICENSE file in the project root for more information. using Connected.Annotations; using Connected.Extensions; using Connected.Utilities; using Microsoft.AspNetCore.Components; namespace Connected.Components; public partial class Image : UIComponent { protected string Classname => new CssBuilder("mud-image") .AddClass("fluid", Fluid) .AddClass($"object-{ObjectFit.ToDescriptionString()}") .AddClass($"object-{ObjectPosition.ToDescriptionString()}") .AddClass($"mud-elevation-{Elevation}", Elevation > 0) .AddClass(Class) .Build(); /// /// Applies the fluid class so the image scales with the parent width. /// [Parameter] [Category(CategoryTypes.Image.Behavior)] public bool Fluid { get; set; } /// /// Specifies the path to the image. /// [Parameter] [Category(CategoryTypes.Image.Behavior)] public string Src { get; set; } /// /// Specifies an alternate text for the image. /// [Parameter] [Category(CategoryTypes.Image.Behavior)] public string Alt { get; set; } /// /// Specifies the height of the image in px. /// [Parameter] [Category(CategoryTypes.Image.Appearance)] public int? Height { get; set; } /// /// Specifies the width of the image in px. /// [Parameter] [Category(CategoryTypes.Image.Appearance)] public int? Width { get; set; } /// /// The higher the number, the heavier the drop-shadow. /// [Parameter] [Category(CategoryTypes.Image.Appearance)] public int Elevation { set; get; } /// /// Controls how the image should be resized. /// [Parameter] [Category(CategoryTypes.Image.Appearance)] public ObjectFit ObjectFit { set; get; } = ObjectFit.Fill; /// /// Controls how the image should positioned within its container. /// [Parameter] [Category(CategoryTypes.Image.Appearance)] public ObjectPosition ObjectPosition { set; get; } = ObjectPosition.Center; }