app.js 1.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960
  1. require('./bootstrap')
  2. import dayjs from 'dayjs'
  3. import advancedFormat from 'dayjs/plugin/advancedFormat'
  4. import relativeTime from 'dayjs/plugin/relativeTime'
  5. import utc from 'dayjs/plugin/utc'
  6. dayjs.extend(advancedFormat)
  7. dayjs.extend(relativeTime)
  8. dayjs.extend(utc)
  9. window.Vue = require('vue')
  10. import PortalVue from 'portal-vue'
  11. import Clipboard from 'v-clipboard'
  12. import Notifications from 'vue-notification'
  13. import VueGoodTablePlugin from 'vue-good-table'
  14. Vue.use(PortalVue)
  15. Vue.use(Clipboard)
  16. Vue.use(Notifications)
  17. Vue.use(VueGoodTablePlugin)
  18. Vue.component('loader', require('./components/Loader.vue').default)
  19. Vue.component('dropdown', require('./components/DropdownNav.vue').default)
  20. Vue.component('icon', require('./components/Icon.vue').default)
  21. Vue.component('aliases', require('./pages/Aliases.vue').default)
  22. Vue.component('recipients', require('./pages/Recipients.vue').default)
  23. Vue.component('domains', require('./pages/Domains.vue').default)
  24. Vue.component('usernames', require('./pages/Usernames.vue').default)
  25. Vue.component(
  26. 'passport-personal-access-tokens',
  27. require('./components/passport/PersonalAccessTokens.vue').default
  28. )
  29. Vue.filter('formatDate', value => {
  30. return dayjs(value).format('Do MMM YYYY')
  31. })
  32. Vue.filter('timeAgo', value => {
  33. return dayjs.utc(value).fromNow()
  34. })
  35. Vue.filter('truncate', (string, value) => {
  36. if (value >= string.length) {
  37. return string
  38. }
  39. return string.substring(0, value) + '...'
  40. })
  41. const app = new Vue({
  42. el: '#app',
  43. data() {
  44. return {
  45. mobileNavActive: false,
  46. }
  47. },
  48. })