diff --git a/src/Cropper.Blazor/Client/Pages/CropperDemo.razor.cs b/src/Cropper.Blazor/Client/Pages/CropperDemo.razor.cs
index 3cefe6dc..2b220338 100644
--- a/src/Cropper.Blazor/Client/Pages/CropperDemo.razor.cs
+++ b/src/Cropper.Blazor/Client/Pages/CropperDemo.razor.cs
@@ -7,10 +7,8 @@
namespace Cropper.Blazor.Client.Pages
{
- public partial class CropperDemo : ICropperComponentBase
+ public partial class CropperDemo
{
- [Inject] ICropperJsInterop CropperJsIntertop { get; set; }
- private ElementReference imageReference;
private Options options;
protected override void OnInitialized()
@@ -18,7 +16,9 @@ protected override void OnInitialized()
options = new Options()
{
Preview = ".img-preview",
- AspectRatio = 16f / 9
+ AspectRatio = (decimal)16 / 9,
+ ViewMode = ViewMode.Vm3,
+ DragMode = DragMode.Move.ToString()
};
}
@@ -26,51 +26,9 @@ protected override async Task OnAfterRenderAsync(bool firstRender)
{
if (firstRender)
{
- await CropperJsIntertop.LoadAsync();
+
}
await base.OnAfterRenderAsync(firstRender);
}
-
- private void OnLoadImage(ProgressEventArgs progressEventArgs)
- {
- ICropperComponentBase cropperComponentBase = this;
- CropperJsIntertop.InitCropper(imageReference, options, DotNetObjectReference.Create(cropperComponentBase));
- }
-
- [JSInvokable]
- public void CropperIsCroped(EventArgs eventArgs)
- {
- Console.WriteLine("CropperIsCroped");
- }
-
- [JSInvokable]
- public void CropperIsEnded(EventArgs eventArgs)
- {
- Console.WriteLine("CropperIsEnded");
- }
-
- [JSInvokable]
- public void CropperIsMoved(EventArgs eventArgs)
- {
- Console.WriteLine("CropperIsMoved");
- }
-
- [JSInvokable]
- public void CropperIsStarted(EventArgs eventArgs)
- {
- Console.WriteLine("CropperIsStarted");
- }
-
- [JSInvokable]
- public void CropperIsZoomed(EventArgs eventArgs)
- {
- Console.WriteLine("CropperIsZoomed");
- }
-
- [JSInvokable]
- public void IsReady(EventArgs eventArgs)
- {
- Console.WriteLine("IsReady");
- }
}
}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Base/CropperComponentBase.cs b/src/Cropper.Blazor/Cropper.Blazor/Base/CropperComponentBase.cs
index f4024479..9518aa03 100644
--- a/src/Cropper.Blazor/Cropper.Blazor/Base/CropperComponentBase.cs
+++ b/src/Cropper.Blazor/Cropper.Blazor/Base/CropperComponentBase.cs
@@ -1,4 +1,10 @@
-using Microsoft.AspNetCore.Components;
+using Cropper.Blazor.Events.CropEndEvent;
+using Cropper.Blazor.Events.CropEvent;
+using Cropper.Blazor.Events.CropMoveEvent;
+using Cropper.Blazor.Events.CropReadyEvent;
+using Cropper.Blazor.Events.CropStartEvent;
+using Cropper.Blazor.Events.ZoomEvent;
+using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using System;
using System.Collections.Generic;
@@ -11,37 +17,37 @@ namespace Cropper.Blazor.Base
public class CropperComponentBase : ICropperComponentBase
{
[JSInvokable(nameof(CropperComponentBase.IsReady))]
- public void IsReady(EventArgs eventArgs)
+ public void IsReady(CropReadyEvent cropReadyEvent)
{
}
[JSInvokable(nameof(CropperComponentBase.CropperIsStarted))]
- public void CropperIsStarted(EventArgs eventArgs)
+ public void CropperIsStarted(CropStartEvent cropStartEvent)
{
}
[JSInvokable(nameof(CropperComponentBase.CropperIsMoved))]
- public void CropperIsMoved(EventArgs eventArgs)
+ public void CropperIsMoved(CropMoveEvent cropMoveEvent)
{
}
[JSInvokable(nameof(CropperComponentBase.CropperIsEnded))]
- public void CropperIsEnded(EventArgs eventArgs)
+ public void CropperIsEnded(CropEndEvent cropEndEvent)
{
}
[JSInvokable(nameof(CropperComponentBase.CropperIsCroped))]
- public void CropperIsCroped(EventArgs eventArgs)
+ public void CropperIsCroped(CropEvent cropEvent)
{
}
[JSInvokable(nameof(CropperComponentBase.CropperIsZoomed))]
- public void CropperIsZoomed(EventArgs eventArgs)
+ public void CropperIsZoomed(ZoomEvent zoomEvent)
{
}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Base/ICropperComponentBase.cs b/src/Cropper.Blazor/Cropper.Blazor/Base/ICropperComponentBase.cs
index ef3a8f1a..07e2f699 100644
--- a/src/Cropper.Blazor/Cropper.Blazor/Base/ICropperComponentBase.cs
+++ b/src/Cropper.Blazor/Cropper.Blazor/Base/ICropperComponentBase.cs
@@ -1,4 +1,10 @@
-using Microsoft.AspNetCore.Components;
+using Cropper.Blazor.Events.CropEndEvent;
+using Cropper.Blazor.Events.CropEvent;
+using Cropper.Blazor.Events.CropMoveEvent;
+using Cropper.Blazor.Events.CropReadyEvent;
+using Cropper.Blazor.Events.CropStartEvent;
+using Cropper.Blazor.Events.ZoomEvent;
+using Microsoft.AspNetCore.Components;
using Microsoft.JSInterop;
using System;
using System.Collections.Generic;
@@ -11,21 +17,21 @@ namespace Cropper.Blazor.Base
public interface ICropperComponentBase
{
[JSInvokable(nameof(ICropperComponentBase.CropperIsCroped))]
- void CropperIsCroped(EventArgs eventArgs);
+ void CropperIsCroped(CropEvent cropEvent);
[JSInvokable(nameof(ICropperComponentBase.CropperIsEnded))]
- void CropperIsEnded(EventArgs eventArgs);
+ void CropperIsEnded(CropEndEvent cropEndEvent);
[JSInvokable(nameof(ICropperComponentBase.CropperIsMoved))]
- void CropperIsMoved(EventArgs eventArgs);
+ void CropperIsMoved(CropMoveEvent cropMoveEvent);
[JSInvokable(nameof(ICropperComponentBase.CropperIsStarted))]
- void CropperIsStarted(EventArgs eventArgs);
+ void CropperIsStarted(CropStartEvent cropStartEvent);
[JSInvokable(nameof(ICropperComponentBase.CropperIsZoomed))]
- void CropperIsZoomed(EventArgs eventArgs);
+ void CropperIsZoomed(ZoomEvent zoomEvent);
[JSInvokable(nameof(ICropperComponentBase.IsReady))]
- void IsReady(EventArgs eventArgs);
+ void IsReady(CropReadyEvent cropReadyEvent);
}
}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Components/CropperComponent.razor b/src/Cropper.Blazor/Cropper.Blazor/Components/CropperComponent.razor
new file mode 100644
index 00000000..3d41faf9
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Components/CropperComponent.razor
@@ -0,0 +1,4 @@
+

diff --git a/src/Cropper.Blazor/Cropper.Blazor/Components/CropperComponent.razor.cs b/src/Cropper.Blazor/Cropper.Blazor/Components/CropperComponent.razor.cs
new file mode 100644
index 00000000..733cf2bc
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Components/CropperComponent.razor.cs
@@ -0,0 +1,95 @@
+using Cropper.Blazor.Base;
+using Cropper.Blazor.Events.CropEndEvent;
+using Cropper.Blazor.Events.CropEvent;
+using Cropper.Blazor.Events.CropMoveEvent;
+using Cropper.Blazor.Events.CropReadyEvent;
+using Cropper.Blazor.Events.CropStartEvent;
+using Cropper.Blazor.Events.ZoomEvent;
+using Cropper.Blazor.Models;
+using Cropper.Blazor.Services;
+using Microsoft.AspNetCore.Components;
+using Microsoft.AspNetCore.Components.Web;
+using Microsoft.JSInterop;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Components
+{
+ public partial class CropperComponent : ICropperComponentBase
+ {
+ [Inject] ICropperJsInterop CropperJsIntertop { get; set; }
+
+ private ElementReference imageReference;
+
+ [Parameter]
+ public Options Options { get; set; }
+
+ [Parameter]
+ public string Src { get; set; }
+
+ [Parameter]
+ public string Class { get; set; }
+
+
+ protected override void OnInitialized()
+ {
+
+ }
+
+ protected override async Task OnAfterRenderAsync(bool firstRender)
+ {
+ if (firstRender)
+ {
+ await CropperJsIntertop.LoadAsync();
+ }
+ await base.OnAfterRenderAsync(firstRender);
+ }
+
+ private void OnLoadImage(ProgressEventArgs progressEventArgs)
+ {
+ ICropperComponentBase cropperComponentBase = this;
+ CropperJsIntertop.InitCropper(imageReference, Options, DotNetObjectReference.Create(cropperComponentBase));
+ }
+
+ [JSInvokable]
+ public void CropperIsCroped(CropEvent cropEvent)
+ {
+ Console.WriteLine($"CropEvent, X: {cropEvent.X}, Y: {cropEvent.Y}, " +
+ $"Height: {cropEvent.Height}, Width: {cropEvent.Width}, " +
+ $"ScaleX: {cropEvent.ScaleX}, ScaleY: {cropEvent.ScaleY}, Rotate: {cropEvent.Rotate}");
+ }
+
+ [JSInvokable]
+ public void CropperIsEnded(CropEndEvent cropEndEvent)
+ {
+ Console.WriteLine($"CropEndEvent, {cropEndEvent.ActionEvent}");
+ }
+
+ [JSInvokable]
+ public void CropperIsMoved(CropMoveEvent cropMoveEvent)
+ {
+ Console.WriteLine($"CropMoveEvent, {cropMoveEvent.ActionEvent}");
+ }
+
+ [JSInvokable]
+ public void CropperIsStarted(CropStartEvent cropStartEvent)
+ {
+ Console.WriteLine($"CropStartEvent, {cropStartEvent.ActionEvent}");
+ }
+
+ [JSInvokable]
+ public void CropperIsZoomed(ZoomEvent zoomEvent)
+ {
+ Console.WriteLine($"ZoomEvent, OldRatio: {zoomEvent.OldRatio}, Ratio: {zoomEvent.Ratio}");
+ }
+
+ [JSInvokable]
+ public void IsReady(CropReadyEvent cropReadyEvent)
+ {
+ Console.WriteLine("IsReady");
+ }
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Events/ActionEvent.cs b/src/Cropper.Blazor/Cropper.Blazor/Events/ActionEvent.cs
new file mode 100644
index 00000000..b1113bfa
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Events/ActionEvent.cs
@@ -0,0 +1,25 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Events
+{
+ public enum ActionEvent
+ {
+ Crop,
+ Move,
+ Zoom,
+ E,
+ S,
+ W,
+ N,
+ Ne,
+ Nw,
+ Se,
+ Sw,
+ All
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Events/CropEndEvent/CropEndEvent.cs b/src/Cropper.Blazor/Cropper.Blazor/Events/CropEndEvent/CropEndEvent.cs
new file mode 100644
index 00000000..52902173
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Events/CropEndEvent/CropEndEvent.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.Json.Serialization;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Events.CropEndEvent
+{
+ public class CropEndEvent
+ {
+ [JsonConverter(typeof(JsonStringEnumConverter))]
+ [JsonPropertyName("action")]
+ public ActionEvent ActionEvent { get; set; }
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Events/CropEvent/CropEvent.cs b/src/Cropper.Blazor/Cropper.Blazor/Events/CropEvent/CropEvent.cs
new file mode 100644
index 00000000..8c7282d2
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Events/CropEvent/CropEvent.cs
@@ -0,0 +1,14 @@
+using Cropper.Blazor.Models;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Events.CropEvent
+{
+ public class CropEvent : CropperData
+ {
+
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Events/CropMoveEvent/CropMoveEvent.cs b/src/Cropper.Blazor/Cropper.Blazor/Events/CropMoveEvent/CropMoveEvent.cs
new file mode 100644
index 00000000..6051da2f
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Events/CropMoveEvent/CropMoveEvent.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.Json.Serialization;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Events.CropMoveEvent
+{
+ public class CropMoveEvent
+ {
+ [JsonConverter(typeof(JsonStringEnumConverter))]
+ [JsonPropertyName("action")]
+ public ActionEvent ActionEvent { get; set; }
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Events/CropReadyEvent/CropReadyEvent.cs b/src/Cropper.Blazor/Cropper.Blazor/Events/CropReadyEvent/CropReadyEvent.cs
new file mode 100644
index 00000000..54bb6d82
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Events/CropReadyEvent/CropReadyEvent.cs
@@ -0,0 +1,12 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Events.CropReadyEvent
+{
+ public class CropReadyEvent
+ {
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Events/CropStartEvent/CropStartEvent.cs b/src/Cropper.Blazor/Cropper.Blazor/Events/CropStartEvent/CropStartEvent.cs
new file mode 100644
index 00000000..79ab16b2
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Events/CropStartEvent/CropStartEvent.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.Json.Serialization;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Events.CropStartEvent
+{
+ public class CropStartEvent
+ {
+ [JsonConverter(typeof(JsonStringEnumConverter))]
+ [JsonPropertyName("action")]
+ public ActionEvent ActionEvent { get; set; }
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Events/ZoomEvent/OriginalEvent.cs b/src/Cropper.Blazor/Cropper.Blazor/Events/ZoomEvent/OriginalEvent.cs
new file mode 100644
index 00000000..f7708c2f
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Events/ZoomEvent/OriginalEvent.cs
@@ -0,0 +1,21 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Events.ZoomEvent
+{
+ public enum OriginalEvent
+ {
+ [EnumMember(Value = nameof(WheelEvent))]
+ WheelEvent,
+ [EnumMember(Value = nameof(PointerEvent))]
+ PointerEvent,
+ [EnumMember(Value = nameof(TouchEvent))]
+ TouchEvent,
+ [EnumMember(Value = nameof(MouseEvent))]
+ MouseEvent
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Events/ZoomEvent/ZoomEvent.cs b/src/Cropper.Blazor/Cropper.Blazor/Events/ZoomEvent/ZoomEvent.cs
new file mode 100644
index 00000000..8ed4dc7a
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Events/ZoomEvent/ZoomEvent.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Text.Json.Serialization;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Events.ZoomEvent
+{
+ public class ZoomEvent
+ {
+ [JsonPropertyName("oldRatio")]
+ public decimal OldRatio { get; set; }
+
+ [JsonPropertyName("ratio")]
+ public decimal Ratio { get; set; }
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Models/CropperData.cs b/src/Cropper.Blazor/Cropper.Blazor/Models/CropperData.cs
new file mode 100644
index 00000000..cb692dd0
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Models/CropperData.cs
@@ -0,0 +1,33 @@
+using Newtonsoft.Json;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Models
+{
+ public class CropperData
+ {
+ [JsonProperty("x", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal X { get; set; }
+
+ [JsonProperty("y", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal Y { get; set; }
+
+ [JsonProperty("width", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal Width { get; set; }
+
+ [JsonProperty("height", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal Height { get; set; }
+
+ [JsonProperty("rotate", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal Rotate { get; set; }
+
+ [JsonProperty("scaleX", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal ScaleX { get; set; }
+
+ [JsonProperty("scaleY", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal ScaleY { get; set; }
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Models/DragMode.cs b/src/Cropper.Blazor/Cropper.Blazor/Models/DragMode.cs
new file mode 100644
index 00000000..c440c27d
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Models/DragMode.cs
@@ -0,0 +1,21 @@
+using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Runtime.Serialization;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Models
+{
+ public enum DragMode
+ {
+ [EnumMember(Value = "crop")]
+ Crop,
+ [EnumMember(Value = "move")]
+ Move,
+ [EnumMember(Value = "none")]
+ None
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Models/Options.cs b/src/Cropper.Blazor/Cropper.Blazor/Models/Options.cs
index 66fd8a74..d3a1630d 100644
--- a/src/Cropper.Blazor/Cropper.Blazor/Models/Options.cs
+++ b/src/Cropper.Blazor/Cropper.Blazor/Models/Options.cs
@@ -1,6 +1,8 @@
using Newtonsoft.Json;
+using Newtonsoft.Json.Converters;
using System;
using System.Collections.Generic;
+using System.ComponentModel.DataAnnotations;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
@@ -10,9 +12,103 @@ namespace Cropper.Blazor.Models
public class Options
{
[JsonProperty("aspectRatio", NullValueHandling = NullValueHandling.Ignore)]
- public float? AspectRatio { get; set; }
+ public decimal AspectRatio { get; set; }
[JsonProperty("preview", NullValueHandling = NullValueHandling.Ignore)]
public string Preview { get; set; }
+
+ [JsonProperty("autoCrop", NullValueHandling = NullValueHandling.Ignore)]
+ public bool AutoCrop { get; set; }
+
+ [JsonProperty("autoCropArea", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal AutoCropArea { get; set; }
+
+ [JsonProperty("background", NullValueHandling = NullValueHandling.Ignore)]
+ public bool Background { get; set; }
+
+ [JsonProperty("center", NullValueHandling = NullValueHandling.Ignore)]
+ public bool Center { get; set; }
+
+ [JsonProperty("checkCrossOrigin", NullValueHandling = NullValueHandling.Ignore)]
+ public bool CheckCrossOrigin { get; set; }
+
+ [JsonProperty("checkOrientation", NullValueHandling = NullValueHandling.Ignore)]
+ public bool CheckOrientation { get; set; }
+
+ [JsonProperty("cropBoxMovable", NullValueHandling = NullValueHandling.Ignore)]
+ public bool CropBoxMovable { get; set; }
+
+ [JsonProperty("cropBoxResizable", NullValueHandling = NullValueHandling.Ignore)]
+ public bool CropBoxResizable { get; set; }
+
+ [JsonProperty("setDataOptions", NullValueHandling = NullValueHandling.Ignore)]
+ public SetDataOptions SetDataOptions { get; set; }
+
+ [JsonProperty("dragMode", NullValueHandling = NullValueHandling.Ignore)]
+ [EnumDataType(typeof(DragMode))]
+ public string DragMode { get; set; }
+
+ [JsonProperty("guides", NullValueHandling = NullValueHandling.Ignore)]
+ public bool Guides { get; set; }
+
+ [JsonProperty("highlight", NullValueHandling = NullValueHandling.Ignore)]
+ public bool Highlight { get; set; }
+
+ [JsonProperty("initialAspectRatio", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal InitialAspectRatio { get; set; }
+
+ [JsonProperty("minCanvasHeight", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal MinCanvasHeight { get; set; }
+
+ [JsonProperty("minCanvasWidth", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal MinCanvasWidth { get; set; }
+
+ [JsonProperty("minContainerHeight", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal MinContainerHeight { get; set; }
+
+ [JsonProperty("minContainerWidth", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal MinContainerWidth { get; set; }
+
+ [JsonProperty("minCropBoxHeight", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal MinCropBoxHeight { get; set; }
+
+ [JsonProperty("minCropBoxWidth", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal MinCropBoxWidth { get; set; }
+
+ [JsonProperty("modal", NullValueHandling = NullValueHandling.Ignore)]
+ public bool Modal { get; set; }
+
+ [JsonProperty("movable", NullValueHandling = NullValueHandling.Ignore)]
+ public bool Movable { get; set; }
+
+ [JsonProperty("responsive", NullValueHandling = NullValueHandling.Ignore)]
+ public bool Responsive { get; set; }
+
+ [JsonProperty("restore", NullValueHandling = NullValueHandling.Ignore)]
+ public bool Restore { get; set; }
+
+ [JsonProperty("rotatable", NullValueHandling = NullValueHandling.Ignore)]
+ public bool Rotatable { get; set; }
+
+ [JsonProperty("scalable", NullValueHandling = NullValueHandling.Ignore)]
+ public bool Scalable { get; set; }
+
+ [JsonProperty("toggleDragModeOnDblclick", NullValueHandling = NullValueHandling.Ignore)]
+ public bool ToggleDragModeOnDblclick { get; set; }
+
+ [JsonProperty("viewMode", NullValueHandling = NullValueHandling.Ignore)]
+ public ViewMode ViewMode { get; set; }
+
+ [JsonProperty("wheelZoomRatio", NullValueHandling = NullValueHandling.Ignore)]
+ public decimal WheelZoomRatio { get; set; }
+
+ [JsonProperty("zoomOnTouch", NullValueHandling = NullValueHandling.Ignore)]
+ public bool ZoomOnTouch { get; set; }
+
+ [JsonProperty("zoomOnWheel", NullValueHandling = NullValueHandling.Ignore)]
+ public bool ZoomOnWheel { get; set; }
+
+ [JsonProperty("zoomable", NullValueHandling = NullValueHandling.Ignore)]
+ public bool Zoomable { get; set; }
}
}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Models/SetDataOptions.cs b/src/Cropper.Blazor/Cropper.Blazor/Models/SetDataOptions.cs
new file mode 100644
index 00000000..ce06256e
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Models/SetDataOptions.cs
@@ -0,0 +1,13 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Models
+{
+ public class SetDataOptions: CropperData
+ {
+
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/Models/ViewMode.cs b/src/Cropper.Blazor/Cropper.Blazor/Models/ViewMode.cs
new file mode 100644
index 00000000..ac0c3753
--- /dev/null
+++ b/src/Cropper.Blazor/Cropper.Blazor/Models/ViewMode.cs
@@ -0,0 +1,16 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace Cropper.Blazor.Models
+{
+ public enum ViewMode
+ {
+ Vm1,
+ Vm2,
+ Vm3,
+ Vm4
+ }
+}
diff --git a/src/Cropper.Blazor/Cropper.Blazor/wwwroot/cropperJsInterop.js b/src/Cropper.Blazor/Cropper.Blazor/wwwroot/cropperJsInterop.js
index 29248ed7..efefe4a2 100644
--- a/src/Cropper.Blazor/Cropper.Blazor/wwwroot/cropperJsInterop.js
+++ b/src/Cropper.Blazor/Cropper.Blazor/wwwroot/cropperJsInterop.js
@@ -15,27 +15,30 @@ class CropperDecorator {
// throw "Parameter 'imageObject' must be is not null!";
//}
const options = {
+ dragMode: optionsImage.dragMode,
+ viewMode: optionsImage.viewMode,
aspectRatio: optionsImage.aspectRatio,
preview: optionsImage.preview,
ready: function (event) {
imageObject.invokeMethodAsync('IsReady', event);
},
cropstart: function (event) {
- imageObject.invokeMethodAsync('CropperIsStarted', event);
+ imageObject.invokeMethodAsync('CropperIsStarted', event.detail);
},
cropmove: function (event) {
- imageObject.invokeMethodAsync('CropperIsMoved', event);
+ imageObject.invokeMethodAsync('CropperIsMoved', event.detail);
},
cropend: function (event) {
- imageObject.invokeMethodAsync('CropperIsEnded', event);
+ imageObject.invokeMethodAsync('CropperIsEnded', event.detail);
},
crop: function (event) {
- imageObject.invokeMethodAsync('CropperIsCroped', event);
+ imageObject.invokeMethodAsync('CropperIsCroped', event.detail);
},
- zoom: function (e) {
- imageObject.invokeMethodAsync('CropperIsZoomed', event);
+ zoom: function (event) {
+ imageObject.invokeMethodAsync('CropperIsZoomed', event.detail);
}
};
+ console.log(options);
this.cropperInstance = new Cropper(image, options);
}
}
diff --git a/src/Cropper.Blazor/Server/Controllers/WeatherForecastController.cs b/src/Cropper.Blazor/Server/Controllers/WeatherForecastController.cs
index 8f1265b7..b3e0509d 100644
--- a/src/Cropper.Blazor/Server/Controllers/WeatherForecastController.cs
+++ b/src/Cropper.Blazor/Server/Controllers/WeatherForecastController.cs
@@ -9,8 +9,8 @@ public class WeatherForecastController : ControllerBase
{
private static readonly string[] Summaries = new[]
{
- "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
- };
+ "Freezing", "Bracing", "Chilly", "Cool", "Mild", "Warm", "Balmy", "Hot", "Sweltering", "Scorching"
+ };
private readonly ILogger
_logger;