mirror of https://github.com/doccano/doccano.git
pythondatasetsactive-learningtext-annotationdatasetnatural-language-processingdata-labelingmachine-learningannotation-tool
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
208 lines
4.5 KiB
208 lines
4.5 KiB
<template>
|
|
<v-navigation-drawer
|
|
:value="drawer"
|
|
app
|
|
clipped
|
|
right
|
|
>
|
|
<v-list dense>
|
|
<v-list-group
|
|
sub-group
|
|
value="true"
|
|
>
|
|
<template v-slot:activator>
|
|
<v-list-item>
|
|
<v-list-item-content>
|
|
<v-list-item-title>
|
|
Progress
|
|
</v-list-item-title>
|
|
</v-list-item-content>
|
|
</v-list-item>
|
|
</template>
|
|
<v-list-item class="pl-4">
|
|
<v-list-item-content>
|
|
<v-list-item-title>
|
|
<v-progress-linear
|
|
:value="progress"
|
|
height="25"
|
|
rounded
|
|
>
|
|
<strong>{{ Math.ceil(progress) }}%</strong>
|
|
</v-progress-linear>
|
|
</v-list-item-title>
|
|
</v-list-item-content>
|
|
</v-list-item>
|
|
</v-list-group>
|
|
|
|
<v-list-group
|
|
sub-group
|
|
value="true"
|
|
>
|
|
<template v-slot:activator>
|
|
<v-list-item>
|
|
<v-list-item-content>
|
|
<v-list-item-title>
|
|
Labels
|
|
</v-list-item-title>
|
|
</v-list-item-content>
|
|
</v-list-item>
|
|
</template>
|
|
<v-list-item
|
|
v-for="(label, i) in labels"
|
|
:key="i"
|
|
class="pl-4"
|
|
>
|
|
<v-list-item-content>
|
|
<v-list-item-title>
|
|
<v-chip
|
|
:color="label.color"
|
|
text-color="white"
|
|
>
|
|
<v-avatar left>
|
|
<span class="white--text">{{ label.shortcut }}</span>
|
|
</v-avatar>
|
|
{{ label.name }}
|
|
</v-chip>
|
|
</v-list-item-title>
|
|
</v-list-item-content>
|
|
</v-list-item>
|
|
</v-list-group>
|
|
|
|
<v-list-item @click="showMetadata = true">
|
|
<v-list-item-action>
|
|
<v-icon>mdi-file-document-box</v-icon>
|
|
</v-list-item-action>
|
|
<v-list-item-content>
|
|
<v-list-item-title>
|
|
Show metadata
|
|
</v-list-item-title>
|
|
</v-list-item-content>
|
|
</v-list-item>
|
|
|
|
<v-list-item @click="showGuideline = true">
|
|
<v-list-item-action>
|
|
<v-icon>mdi-text-subject</v-icon>
|
|
</v-list-item-action>
|
|
<v-list-item-content>
|
|
<v-list-item-title>
|
|
Show guideline
|
|
</v-list-item-title>
|
|
</v-list-item-content>
|
|
</v-list-item>
|
|
</v-list>
|
|
<v-dialog
|
|
v-model="showMetadata"
|
|
width="800"
|
|
>
|
|
<v-card>
|
|
<v-card-title
|
|
class="headline grey lighten-2"
|
|
primary-title
|
|
>
|
|
Metadata
|
|
</v-card-title>
|
|
|
|
<v-card-text>
|
|
<v-sheet>
|
|
<pre>{{ prettyJson }}</pre>
|
|
</v-sheet>
|
|
</v-card-text>
|
|
|
|
<v-divider />
|
|
|
|
<v-card-actions>
|
|
<v-spacer />
|
|
<v-btn
|
|
color="primary"
|
|
text
|
|
@click="showMetadata = false"
|
|
>
|
|
Close
|
|
</v-btn>
|
|
</v-card-actions>
|
|
</v-card>
|
|
</v-dialog>
|
|
<v-dialog
|
|
v-model="showGuideline"
|
|
width="800"
|
|
>
|
|
<v-card>
|
|
<v-card-title
|
|
class="headline grey lighten-2"
|
|
primary-title
|
|
>
|
|
Annotation Guideline
|
|
</v-card-title>
|
|
|
|
<v-card-text>
|
|
<viewer
|
|
:value="guidelineText"
|
|
/>
|
|
</v-card-text>
|
|
|
|
<v-divider />
|
|
|
|
<v-card-actions>
|
|
<v-spacer />
|
|
<v-btn
|
|
color="primary"
|
|
text
|
|
@click="showGuideline = false"
|
|
>
|
|
Close
|
|
</v-btn>
|
|
</v-card-actions>
|
|
</v-card>
|
|
</v-dialog>
|
|
</v-navigation-drawer>
|
|
</template>
|
|
|
|
<script>
|
|
import 'tui-editor/dist/tui-editor-contents.css'
|
|
import 'highlight.js/styles/github.css'
|
|
import { Viewer } from '@toast-ui/vue-editor'
|
|
|
|
export default {
|
|
components: {
|
|
Viewer
|
|
},
|
|
|
|
props: {
|
|
labels: {
|
|
type: Array,
|
|
default: () => ([]),
|
|
required: true
|
|
},
|
|
progress: {
|
|
type: Number,
|
|
default: 0,
|
|
required: true
|
|
},
|
|
metadata: {
|
|
type: String,
|
|
default: '{}',
|
|
required: true
|
|
},
|
|
guidelineText: {
|
|
type: String,
|
|
default: '# This is Viewer.\n Hello World.'
|
|
}
|
|
},
|
|
|
|
data: () => ({
|
|
showMetadata: false,
|
|
showGuideline: false
|
|
}),
|
|
|
|
computed: {
|
|
drawer() {
|
|
return this.$store.state.sidebar.drawer
|
|
},
|
|
prettyJson() {
|
|
const data = JSON.parse(this.metadata)
|
|
const pretty = JSON.stringify(data, null, 4)
|
|
return pretty
|
|
}
|
|
}
|
|
}
|
|
</script>
|