From ff7d222273e33220ac1f5a7d6c5179928f1ea837 Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?Keviin=20=C3=85berg=20Kultalahti?= <kevin.aberg@gmail.com>
Date: Wed, 5 May 2021 09:30:52 +0200
Subject: [PATCH] wip: update ProgressCircle to take values

---
 .../src/ProgressCircle/ProgressCircle.svelte  | 63 +++++++++++++------
 1 file changed, 43 insertions(+), 20 deletions(-)

diff --git a/packages/bbui/src/ProgressCircle/ProgressCircle.svelte b/packages/bbui/src/ProgressCircle/ProgressCircle.svelte
index ba1dc10965..f5ecccde79 100644
--- a/packages/bbui/src/ProgressCircle/ProgressCircle.svelte
+++ b/packages/bbui/src/ProgressCircle/ProgressCircle.svelte
@@ -1,29 +1,52 @@
 <script>
-    // WIP! Does not yet work.
-    import "@spectrum-css/progresscircle/dist/index-vars.css"
-    import { tweened } from 'svelte/motion';
-    import { cubicOut } from 'svelte/easing';
+  // WIP! Does not yet work.
+  import "@spectrum-css/progresscircle/dist/index-vars.css"
+  import { tweened } from "svelte/motion"
+  import { cubicOut } from "svelte/easing"
 
-    export let value = false
-    export let small;
-    export let large;
+  export let small
+  export let large
 
-    export let overBackground;
+  export let value = false
+  export let minValue = 0
+  export let maxValue = 0
+
+  let subMask1Style
+  let subMask2Style
+  if (!value) {
+    let percentage = ((value - minValue) / (maxValue - minValue)) * 100
+    let angle
+    if (percentage > 0 && percentage <= 50) {
+      angle = -180 + (percentage / 50) * 180
+      subMask1Style = `rotate(${angle}deg)`
+      subMask2Style = "rotate(-180deg)"
+    } else if (percentage > 50) {
+      angle = -180 + ((percentage - 50) / 50) * 180
+      subMask1Style = "rotate(0deg)"
+      subMask2Style = `rotate(${angle}deg)`
+    }
+  }
+
+  export let overBackground
 </script>
 
-<div class:spectrum-ProgressBar--indeterminate={!value} class:spectrum-ProgressCircle--small={small} class:spectrum-ProgressCircle--large={large} class="spectrum-ProgressCircle">
-    <div class="spectrum-ProgressCircle-track"></div>
-    <div class="spectrum-ProgressCircle-fills">
-      <div class="spectrum-ProgressCircle-fillMask1">
-        <div class="spectrum-ProgressCircle-fillSubMask1">
-          <div class="spectrum-ProgressCircle-fill"></div>
-        </div>
+<div
+  class:spectrum-ProgressBar--indeterminate={!value}
+  class:spectrum-ProgressCircle--small={small}
+  class:spectrum-ProgressCircle--large={large}
+  class="spectrum-ProgressCircle"
+>
+  <div class="spectrum-ProgressCircle-track" />
+  <div class="spectrum-ProgressCircle-fills">
+    <div class="spectrum-ProgressCircle-fillMask1">
+      <div class="spectrum-ProgressCircle-fillSubMask1" style={subMask1Style}>
+        <div class="spectrum-ProgressCircle-fill" />
       </div>
-      <div class="spectrum-ProgressCircle-fillMask2">
-        <div class="spectrum-ProgressCircle-fillSubMask2">
-          <div class="spectrum-ProgressCircle-fill"></div>
-        </div>
+    </div>
+    <div class="spectrum-ProgressCircle-fillMask2">
+      <div class="spectrum-ProgressCircle-fillSubMask2" style={subMask2Style}>
+        <div class="spectrum-ProgressCircle-fill" />
       </div>
     </div>
   </div>
-
+</div>