diff --git a/src/App.vue b/src/App.vue
index 754dea0..69a9654 100644
--- a/src/App.vue
+++ b/src/App.vue
@@ -45,7 +45,17 @@
:thickness="10"
:empty-thickness="10"
line-mode="out"
- :loader="{ lineMode: 'in ', opacity: 1 }"
+ :color="gradient"
+ :loader="{
+ lineMode: 'in ',
+ opacity: 1,
+ color: {
+ colors: [
+ { color: 'yellow', offset: '0' },
+ { color: 'red', offset: '100' },
+ ],
+ },
+ }"
>
@@ -58,7 +68,6 @@
half
:no-data="noData"
:determinate="determinate"
- :loader="{ thickness: 40, color: 'red' }"
>
/ hey
@@ -138,6 +147,21 @@ export default {
],
radial: true,
},
+ gradient: {
+ colors: [
+ {
+ color: "red",
+ offset: "0",
+ opacity: "1",
+ },
+ {
+ color: "blue",
+ offset: "100",
+ opacity: "1",
+ },
+ ],
+ radial: false,
+ },
animation: "rs 1000 500",
}),
computed: {
diff --git a/src/components/Circle/CircleContainer.vue b/src/components/Circle/CircleContainer.vue
index 82f38b6..7f3902d 100644
--- a/src/components/Circle/CircleContainer.vue
+++ b/src/components/Circle/CircleContainer.vue
@@ -3,21 +3,16 @@
-
+
@@ -37,6 +32,12 @@ export default {
},
},
computed: {
+ computedOptions() {
+ return {
+ ...this.options,
+ uid: this.uid,
+ };
+ },
circleType() {
return this.options.half ? "half-circle-progress" : "circle-progress";
},
@@ -55,6 +56,9 @@ export default {
isLoaderColorGradient() {
return Array.isArray(this.options.loader.color.colors);
},
+ uid() {
+ return this.$.uid;
+ },
},
};
diff --git a/src/components/Circle/CircleLoader.vue b/src/components/Circle/CircleLoader.vue
index 8904e72..3609a79 100644
--- a/src/components/Circle/CircleLoader.vue
+++ b/src/components/Circle/CircleLoader.vue
@@ -39,7 +39,7 @@ export default {
},
loaderColor() {
return Array.isArray(this.options.loader.color.colors)
- ? `url(#ep-loader-gradient-${this.options.id})`
+ ? `url(#ep-loader-gradient-${this.options.uid})`
: this.options.color;
},
},
diff --git a/src/components/Circle/HalfCircleLoader.vue b/src/components/Circle/HalfCircleLoader.vue
index 0854652..98ab1b0 100644
--- a/src/components/Circle/HalfCircleLoader.vue
+++ b/src/components/Circle/HalfCircleLoader.vue
@@ -40,7 +40,7 @@ export default {
},
halfLoaderColor() {
return Array.isArray(this.options.loader.color.colors)
- ? `url(#ep-loader-gradient-${this.options.id})`
+ ? `url(#ep-loader-gradient-${this.options.uid})`
: this.options.color;
},
},
diff --git a/src/components/Circle/circleMixin.js b/src/components/Circle/circleMixin.js
index 71e7514..9a5f8dc 100644
--- a/src/components/Circle/circleMixin.js
+++ b/src/components/Circle/circleMixin.js
@@ -55,22 +55,22 @@ export default {
color() {
return Array.isArray(this.options.color.colors)
- ? `url(#ep-progress-gradient-${this.options.id})`
+ ? `url(#ep-progress-gradient-${this.options.uid})`
: this.options.color;
},
emptyColor() {
return Array.isArray(this.options.emptyColor.colors)
- ? `url(#ep-empty-gradient-${this.options.id})`
+ ? `url(#ep-empty-gradient-${this.options.uid})`
: this.options.emptyColor;
},
colorFill() {
return Array.isArray(this.options.colorFill.colors)
- ? `url(#ep-progress-fill-gradient-${this.options.id})`
+ ? `url(#ep-progress-fill-gradient-${this.options.uid})`
: this.options.colorFill;
},
emptyColorFill() {
return Array.isArray(this.options.emptyColorFill.colors)
- ? `url(#ep-empty-fill-gradient-${this.options.id})`
+ ? `url(#ep-empty-fill-gradient-${this.options.uid})`
: this.options.emptyColorFill;
},
diff --git a/src/components/Gradient.vue b/src/components/Gradient.vue
index 6e27688..205e681 100644
--- a/src/components/Gradient.vue
+++ b/src/components/Gradient.vue
@@ -1,7 +1,7 @@
{
const gradientColorTests = (colorProp, selector, gradientURLPrefix, fill = false, half) => {
describe("applies gradient color correctly", () => {
const wrapper = localFactory({ ...colorProp, half });
+ const { uid } = wrapper.componentVM;
const circleWrapper = wrapper.find(selector);
- const id = 0;
const stopColorWrappers = wrapper.findAll("stop");
it("recognizes gradient colors", () => {
@@ -59,7 +59,7 @@ const gradientColorTests = (colorProp, selector, gradientURLPrefix, fill = false
});
it(`applies gradient URL to SVG ${fill ? "fill" : "stroke"}`, () => {
expect(circleWrapper.element.getAttribute(`${fill ? "fill" : "stroke"}`)).to.equal(
- `url(#${gradientURLPrefix}-gradient-${id})`
+ `url(#${gradientURLPrefix}-gradient-${uid})`
);
});
it("renders corresponding amount of stop colors SVG elements", () => {