|  | <template> | 
|  | <span> | 
|  | <b-link | 
|  | v-if="value === 'export'" | 
|  | class="align-bottom btn-link py-0" | 
|  | :download="download" | 
|  | :href="href" | 
|  | :title="title" | 
|  | :aria-label="title" | 
|  | > | 
|  | <slot name="icon"> | 
|  | {{ $t('global.action.export') }} | 
|  | </slot> | 
|  | </b-link> | 
|  | <b-button | 
|  | v-else | 
|  | variant="link" | 
|  | class="py-0" | 
|  | :aria-label="title" | 
|  | :title="title" | 
|  | :disabled="!enabled" | 
|  | @click="$emit('click:tableAction', value)" | 
|  | > | 
|  | <slot name="icon"> | 
|  | {{ title }} | 
|  | </slot> | 
|  | </b-button> | 
|  | </span> | 
|  | </template> | 
|  |  | 
|  | <script> | 
|  | import { omit } from 'lodash'; | 
|  |  | 
|  | export default { | 
|  | name: 'TableRowAction', | 
|  | props: { | 
|  | value: { | 
|  | type: String, | 
|  | required: true | 
|  | }, | 
|  | enabled: { | 
|  | type: Boolean, | 
|  | default: true | 
|  | }, | 
|  | title: { | 
|  | type: String, | 
|  | default: null | 
|  | }, | 
|  | rowData: { | 
|  | type: Object, | 
|  | default: () => {} | 
|  | }, | 
|  | exportName: { | 
|  | type: String, | 
|  | default: 'export' | 
|  | } | 
|  | }, | 
|  | computed: { | 
|  | dataForExport() { | 
|  | return JSON.stringify(omit(this.rowData, 'actions')); | 
|  | }, | 
|  | download() { | 
|  | return `${this.exportName}.json`; | 
|  | }, | 
|  | href() { | 
|  | return `data:text/json;charset=utf-8,${this.dataForExport}`; | 
|  | } | 
|  | } | 
|  | }; | 
|  | </script> |