app.js 1.6 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  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('rules', require('./pages/Rules.vue').default)
  26. Vue.component(
  27. 'passport-personal-access-tokens',
  28. require('./components/passport/PersonalAccessTokens.vue').default
  29. )
  30. Vue.filter('formatDate', value => {
  31. return dayjs(value).format('Do MMM YYYY')
  32. })
  33. Vue.filter('timeAgo', value => {
  34. return dayjs.utc(value).fromNow()
  35. })
  36. Vue.filter('truncate', (string, value) => {
  37. if (value >= string.length) {
  38. return string
  39. }
  40. return string.substring(0, value) + '...'
  41. })
  42. const app = new Vue({
  43. el: '#app',
  44. data() {
  45. return {
  46. mobileNavActive: false,
  47. }
  48. },
  49. })