|  | import StatusIcon from '../Global/StatusIcon'; | 
|  |  | 
|  | const BVToastMixin = { | 
|  | components: { | 
|  | StatusIcon, | 
|  | }, | 
|  | methods: { | 
|  | $_BVToastMixin_createTitle(title, status) { | 
|  | const statusIcon = this.$createElement('StatusIcon', { | 
|  | props: { status }, | 
|  | }); | 
|  | const titleWithIcon = this.$createElement( | 
|  | 'strong', | 
|  | { class: 'toast-icon' }, | 
|  | [statusIcon, title], | 
|  | ); | 
|  | return titleWithIcon; | 
|  | }, | 
|  | $_BVToastMixin_createBody(messageBody) { | 
|  | if (Array.isArray(messageBody)) { | 
|  | return messageBody.map((message) => | 
|  | this.$createElement('p', { class: 'mb-0' }, message), | 
|  | ); | 
|  | } else { | 
|  | return [this.$createElement('p', { class: 'mb-0' }, messageBody)]; | 
|  | } | 
|  | }, | 
|  | $_BVToastMixin_createTimestamp() { | 
|  | const timestamp = this.$options.filters.formatTime(new Date()); | 
|  | return this.$createElement('p', { class: 'mt-3 mb-0' }, timestamp); | 
|  | }, | 
|  | $_BVToastMixin_createRefreshAction() { | 
|  | return this.$createElement( | 
|  | 'BLink', | 
|  | { | 
|  | class: 'd-inline-block mt-3', | 
|  | on: { | 
|  | click: () => { | 
|  | this.$root.$emit('refresh-application'); | 
|  | }, | 
|  | }, | 
|  | }, | 
|  | this.$t('global.action.refresh'), | 
|  | ); | 
|  | }, | 
|  | $_BVToastMixin_initToast(body, title, variant) { | 
|  | this.$root.$bvToast.toast(body, { | 
|  | title, | 
|  | variant, | 
|  | autoHideDelay: 10000, //auto hide in milliseconds | 
|  | noAutoHide: variant !== 'success', | 
|  | isStatus: true, | 
|  | solid: true, | 
|  | }); | 
|  | }, | 
|  | successToast( | 
|  | message, | 
|  | { | 
|  | title: t = this.$t('global.status.success'), | 
|  | timestamp, | 
|  | refreshAction, | 
|  | } = {}, | 
|  | ) { | 
|  | const body = this.$_BVToastMixin_createBody(message); | 
|  | const title = this.$_BVToastMixin_createTitle(t, 'success'); | 
|  | if (refreshAction) body.push(this.$_BVToastMixin_createRefreshAction()); | 
|  | if (timestamp) body.push(this.$_BVToastMixin_createTimestamp()); | 
|  | this.$_BVToastMixin_initToast(body, title, 'success'); | 
|  | }, | 
|  | errorToast( | 
|  | message, | 
|  | { | 
|  | title: t = this.$t('global.status.error'), | 
|  | timestamp, | 
|  | refreshAction, | 
|  | } = {}, | 
|  | ) { | 
|  | const body = this.$_BVToastMixin_createBody(message); | 
|  | const title = this.$_BVToastMixin_createTitle(t, 'danger'); | 
|  | if (refreshAction) body.push(this.$_BVToastMixin_createRefreshAction()); | 
|  | if (timestamp) body.push(this.$_BVToastMixin_createTimestamp()); | 
|  | this.$_BVToastMixin_initToast(body, title, 'danger'); | 
|  | }, | 
|  | warningToast( | 
|  | message, | 
|  | { | 
|  | title: t = this.$t('global.status.warning'), | 
|  | timestamp, | 
|  | refreshAction, | 
|  | } = {}, | 
|  | ) { | 
|  | const body = this.$_BVToastMixin_createBody(message); | 
|  | const title = this.$_BVToastMixin_createTitle(t, 'warning'); | 
|  | if (refreshAction) body.push(this.$_BVToastMixin_createRefreshAction()); | 
|  | if (timestamp) body.push(this.$_BVToastMixin_createTimestamp()); | 
|  | this.$_BVToastMixin_initToast(body, title, 'warning'); | 
|  | }, | 
|  | infoToast( | 
|  | message, | 
|  | { | 
|  | title: t = this.$t('global.status.informational'), | 
|  | timestamp, | 
|  | refreshAction, | 
|  | } = {}, | 
|  | ) { | 
|  | const body = this.$_BVToastMixin_createBody(message); | 
|  | const title = this.$_BVToastMixin_createTitle(t, 'info'); | 
|  | if (refreshAction) body.push(this.$_BVToastMixin_createRefreshAction()); | 
|  | if (timestamp) body.push(this.$_BVToastMixin_createTimestamp()); | 
|  | this.$_BVToastMixin_initToast(body, title, 'info'); | 
|  | }, | 
|  | }, | 
|  | }; | 
|  |  | 
|  | export default BVToastMixin; |