summaryrefslogtreecommitdiff
path: root/src/web/app/common/views/components/widgets/server.pie.vue
diff options
context:
space:
mode:
authorsyuilo <syuilotan@yahoo.co.jp>2018-02-24 02:46:09 +0900
committersyuilo <syuilotan@yahoo.co.jp>2018-02-24 02:46:09 +0900
commitdf8a2aea358ca3bcec60c878a6399df46390e3e1 (patch)
tree2e187e34a53d9372a797fb9d5882069545f1f03f /src/web/app/common/views/components/widgets/server.pie.vue
parentv3840 (diff)
downloadmisskey-df8a2aea358ca3bcec60c878a6399df46390e3e1.tar.gz
misskey-df8a2aea358ca3bcec60c878a6399df46390e3e1.tar.bz2
misskey-df8a2aea358ca3bcec60c878a6399df46390e3e1.zip
Implement #1098
Diffstat (limited to 'src/web/app/common/views/components/widgets/server.pie.vue')
-rw-r--r--src/web/app/common/views/components/widgets/server.pie.vue61
1 files changed, 61 insertions, 0 deletions
diff --git a/src/web/app/common/views/components/widgets/server.pie.vue b/src/web/app/common/views/components/widgets/server.pie.vue
new file mode 100644
index 0000000000..ce2cff1d00
--- /dev/null
+++ b/src/web/app/common/views/components/widgets/server.pie.vue
@@ -0,0 +1,61 @@
+<template>
+<svg viewBox="0 0 1 1" preserveAspectRatio="none">
+ <circle
+ :r="r"
+ cx="50%" cy="50%"
+ fill="none"
+ stroke-width="0.1"
+ stroke="rgba(0, 0, 0, 0.05)"/>
+ <circle
+ :r="r"
+ cx="50%" cy="50%"
+ :stroke-dasharray="Math.PI * (r * 2)"
+ :stroke-dashoffset="strokeDashoffset"
+ fill="none"
+ stroke-width="0.1"
+ :stroke="color"/>
+ <text x="50%" y="50%" dy="0.05" text-anchor="middle">{{ (value * 100).toFixed(0) }}%</text>
+</svg>
+</template>
+
+<script lang="ts">
+import Vue from 'vue';
+
+export default Vue.extend({
+ props: {
+ value: {
+ type: Number,
+ required: true
+ }
+ },
+ data() {
+ return {
+ r: 0.4
+ };
+ },
+ computed: {
+ color(): string {
+ return `hsl(${180 - (this.value * 180)}, 80%, 70%)`;
+ },
+ strokeDashoffset(): number {
+ return (1 - this.value) * (Math.PI * (this.r * 2));
+ }
+ }
+});
+</script>
+
+<style lang="stylus" scoped>
+svg
+ display block
+ height 100%
+
+ > circle
+ transform-origin center
+ transform rotate(-90deg)
+ transition stroke-dashoffset 0.5s ease
+
+ > text
+ font-size 0.15px
+ fill rgba(0, 0, 0, 0.6)
+
+</style>