summaryrefslogtreecommitdiff
path: root/src/client/app
diff options
context:
space:
mode:
authorAcid Chicken (硫酸鶏) <root@acid-chicken.com>2019-09-26 04:24:38 +0900
committersyuilo <Syuilotan@yahoo.co.jp>2019-09-26 04:24:38 +0900
commitebb9a9b64f0ad994bbc0aba3be49d741777662a4 (patch)
tree0f03a866de1ee5b9fe0e02c043fbb5d94ae7fcde /src/client/app
parentBetter broadcast widget mk2 (#5455) (diff)
downloadsharkey-ebb9a9b64f0ad994bbc0aba3be49d741777662a4.tar.gz
sharkey-ebb9a9b64f0ad994bbc0aba3be49d741777662a4.tar.bz2
sharkey-ebb9a9b64f0ad994bbc0aba3be49d741777662a4.zip
Add mk-frac component (#5456)
* Add mk-frac component * Follow lint * FIx linting miss
Diffstat (limited to 'src/client/app')
-rw-r--r--src/client/app/common/views/components/frac.vue49
-rw-r--r--src/client/app/common/views/components/index.ts2
2 files changed, 51 insertions, 0 deletions
diff --git a/src/client/app/common/views/components/frac.vue b/src/client/app/common/views/components/frac.vue
new file mode 100644
index 0000000000..1840bd28fe
--- /dev/null
+++ b/src/client/app/common/views/components/frac.vue
@@ -0,0 +1,49 @@
+<template>
+<span class="mk-frac"><span>{{ pad }}</span><span>{{ value }} / {{ total }}</span></span>
+</template>
+
+<script lang="ts">
+import Vue from 'vue';
+import i18n from '../../../i18n';
+
+export default Vue.extend({
+ i18n: i18n(),
+ props: {
+ value: {
+ type: Number,
+ required: true,
+ },
+ total: {
+ type: Number,
+ required: true,
+ },
+ },
+ computed: {
+ pad(this: {
+ value: number;
+ total: number;
+ length(value: number): number;
+ }) {
+ return '0'.repeat(this.length(this.total) - this.length(this.value));
+ },
+ },
+ methods: {
+ length(value: number) {
+ const string = value.toString();
+
+ return string.includes('e') ? -~string.substr(string.indexOf('e')) : string.length;
+ },
+ },
+});
+</script>
+
+<style lang="stylus" scoped>
+.mk-frac
+ -webkit-font-feature-settings 'tnum'
+ -moz-font-feature-settings 'tnum'
+ font-feature-settings 'tnum'
+ font-variant-numeric tabular-nums
+
+ > :first-child
+ visibility hidden
+</style>
diff --git a/src/client/app/common/views/components/index.ts b/src/client/app/common/views/components/index.ts
index d5392fb8cd..4253118ba8 100644
--- a/src/client/app/common/views/components/index.ts
+++ b/src/client/app/common/views/components/index.ts
@@ -33,6 +33,7 @@ import fileTypeIcon from './file-type-icon.vue';
import emoji from './emoji.vue';
import welcomeTimeline from './welcome-timeline.vue';
import userList from './user-list.vue';
+import frac from './frac.vue';
import uiInput from './ui/input.vue';
import uiButton from './ui/button.vue';
import uiHorizonGroup from './ui/horizon-group.vue';
@@ -82,6 +83,7 @@ Vue.component('mk-file-type-icon', fileTypeIcon);
Vue.component('mk-emoji', emoji);
Vue.component('mk-welcome-timeline', welcomeTimeline);
Vue.component('mk-user-list', userList);
+Vue.component('mk-frac', frac);
Vue.component('ui-input', uiInput);
Vue.component('ui-button', uiButton);
Vue.component('ui-horizon-group', uiHorizonGroup);