diff options
| author | Acid Chicken (硫酸鶏) <root@acid-chicken.com> | 2019-09-26 04:24:38 +0900 |
|---|---|---|
| committer | syuilo <Syuilotan@yahoo.co.jp> | 2019-09-26 04:24:38 +0900 |
| commit | ebb9a9b64f0ad994bbc0aba3be49d741777662a4 (patch) | |
| tree | 0f03a866de1ee5b9fe0e02c043fbb5d94ae7fcde /src/client/app/common | |
| parent | Better broadcast widget mk2 (#5455) (diff) | |
| download | sharkey-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/common')
| -rw-r--r-- | src/client/app/common/views/components/frac.vue | 49 | ||||
| -rw-r--r-- | src/client/app/common/views/components/index.ts | 2 |
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); |