1fded0d11SDerick Montagueimport Vue from 'vue'; 2fded0d11SDerick Montagueimport App from './App.vue'; 3fded0d11SDerick Montagueimport router from './router'; 48263d85cSYoshie Muranaka 58263d85cSYoshie Muranaka//Do not change store import. 68263d85cSYoshie Muranaka//Exact match alias set to support 78263d85cSYoshie Muranaka//dotenv customizations. 8fded0d11SDerick Montagueimport store from './store'; 9*fb6c6de9SKonstantinimport eventBus from './eventBus'; 108263d85cSYoshie Muranaka 11a2988f40SDerick Montagueimport { 12676f2fcaSDerick Montague AlertPlugin, 1397d86b33SDixsie Wolmers BadgePlugin, 14a2988f40SDerick Montague ButtonPlugin, 154b0fc1dbSYoshie Muranaka BVConfigPlugin, 1692a0a4acSYoshie Muranaka CardPlugin, 17a2988f40SDerick Montague CollapsePlugin, 1882cca545SYoshie Muranaka DropdownPlugin, 19e080a1a7SDerick Montague FormPlugin, 2097d86b33SDixsie Wolmers FormCheckboxPlugin, 2168bbba29SYoshie Muranaka FormDatepickerPlugin, 2237393810SYoshie Muranaka FormFilePlugin, 23e080a1a7SDerick Montague FormGroupPlugin, 24e080a1a7SDerick Montague FormInputPlugin, 25463a5706SYoshie Muranaka FormRadioPlugin, 26463a5706SYoshie Muranaka FormSelectPlugin, 27532a4b03SYoshie Muranaka FormTagsPlugin, 28c4e38abfSYoshie Muranaka InputGroupPlugin, 2935080acbSYoshie Muranaka LayoutPlugin, 3042c19893SDerick Montague LinkPlugin, 3197d86b33SDixsie Wolmers ListGroupPlugin, 3242c19893SDerick Montague ModalPlugin, 3342c19893SDerick Montague NavbarPlugin, 3442c19893SDerick Montague NavPlugin, 35f9832b0eSYoshie Muranaka PaginationPlugin, 363be801aaSYoshie Muranaka ProgressPlugin, 370fc91e79SYoshie Muranaka TablePlugin, 38c4b8757eSDixsie Wolmers TabsPlugin, 391be6b41eSYoshie Muranaka ToastPlugin, 40602e98aaSDerick Montague TooltipPlugin, 41fded0d11SDerick Montague} from 'bootstrap-vue'; 424b0fc1dbSYoshie Muranakaimport Vuelidate from 'vuelidate'; 43cbcd2136SDixsie Wolmersimport i18n from './i18n'; 44fc16f3c2SSukanya Pandeyimport { format } from 'date-fns-tz'; 45a2988f40SDerick Montague 4697f4187eSDixsie Wolmers// Filters 47fc16f3c2SSukanya PandeyVue.filter('shortTimeZone', function (value) { 48fc16f3c2SSukanya Pandey const longTZ = value 49fc16f3c2SSukanya Pandey .toString() 50fc16f3c2SSukanya Pandey .match(/\((.*)\)/) 51fc16f3c2SSukanya Pandey .pop(); 52fc16f3c2SSukanya Pandey const regexNotUpper = /[*a-z ]/g; 53fc16f3c2SSukanya Pandey return longTZ.replace(regexNotUpper, ''); 54fc16f3c2SSukanya Pandey}); 55fc16f3c2SSukanya Pandey 5697f4187eSDixsie WolmersVue.filter('formatDate', function (value) { 57fc16f3c2SSukanya Pandey const isUtcDisplay = store.getters['global/isUtcDisplay']; 58fc16f3c2SSukanya Pandey 5997f4187eSDixsie Wolmers if (value instanceof Date) { 60fc16f3c2SSukanya Pandey if (isUtcDisplay) { 610e4760e6SDixsie Wolmers return value.toISOString().substring(0, 10); 6297f4187eSDixsie Wolmers } 63fc16f3c2SSukanya Pandey const pattern = `yyyy-MM-dd`; 64fc16f3c2SSukanya Pandey const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone; 65fc16f3c2SSukanya Pandey return format(value, pattern, { timezone }); 66fc16f3c2SSukanya Pandey } 6797f4187eSDixsie Wolmers}); 6897d86b33SDixsie Wolmers 6997f4187eSDixsie WolmersVue.filter('formatTime', function (value) { 70fc16f3c2SSukanya Pandey const isUtcDisplay = store.getters['global/isUtcDisplay']; 71fc16f3c2SSukanya Pandey 7297f4187eSDixsie Wolmers if (value instanceof Date) { 73fc16f3c2SSukanya Pandey if (isUtcDisplay) { 74fc16f3c2SSukanya Pandey let timeOptions = { 75fc16f3c2SSukanya Pandey timeZone: 'UTC', 7607b85ef3SDerick Montague hourCycle: 'h23', 77fc16f3c2SSukanya Pandey }; 78fc16f3c2SSukanya Pandey return `${value.toLocaleTimeString('default', timeOptions)} UTC`; 79fc16f3c2SSukanya Pandey } 80fc16f3c2SSukanya Pandey const timezone = Intl.DateTimeFormat().resolvedOptions().timeZone; 81fc16f3c2SSukanya Pandey const shortTz = Vue.filter('shortTimeZone')(value); 82fc16f3c2SSukanya Pandey const pattern = `HH:mm:ss ('${shortTz}' O)`; 83fc16f3c2SSukanya Pandey return format(value, pattern, { timezone }).replace('GMT', 'UTC'); 8497f4187eSDixsie Wolmers } 8597f4187eSDixsie Wolmers}); 8697f4187eSDixsie Wolmers 8797f4187eSDixsie Wolmers// Plugins 88676f2fcaSDerick MontagueVue.use(AlertPlugin); 8997d86b33SDixsie WolmersVue.use(BadgePlugin); 90a2988f40SDerick MontagueVue.use(ButtonPlugin); 914b0fc1dbSYoshie MuranakaVue.use(BVConfigPlugin, { 927f970a1fSDerick Montague BFormText: { textVariant: 'secondary' }, 934b0fc1dbSYoshie Muranaka BTable: { 944b0fc1dbSYoshie Muranaka headVariant: 'light', 95602e98aaSDerick Montague footVariant: 'light', 96532a4b03SYoshie Muranaka }, 97532a4b03SYoshie Muranaka BFormTags: { 98532a4b03SYoshie Muranaka tagVariant: 'primary', 99602e98aaSDerick Montague addButtonVariant: 'link-primary', 10082cca545SYoshie Muranaka }, 10182cca545SYoshie Muranaka BBadge: { 102602e98aaSDerick Montague variant: 'primary', 103602e98aaSDerick Montague }, 1044b0fc1dbSYoshie Muranaka}); 10592a0a4acSYoshie MuranakaVue.use(CardPlugin); 106a2988f40SDerick MontagueVue.use(CollapsePlugin); 10782cca545SYoshie MuranakaVue.use(DropdownPlugin); 108e080a1a7SDerick MontagueVue.use(FormPlugin); 10997d86b33SDixsie WolmersVue.use(FormCheckboxPlugin); 11068bbba29SYoshie MuranakaVue.use(FormDatepickerPlugin); 11137393810SYoshie MuranakaVue.use(FormFilePlugin); 112e080a1a7SDerick MontagueVue.use(FormGroupPlugin); 113e080a1a7SDerick MontagueVue.use(FormInputPlugin); 114463a5706SYoshie MuranakaVue.use(FormRadioPlugin); 115463a5706SYoshie MuranakaVue.use(FormSelectPlugin); 116532a4b03SYoshie MuranakaVue.use(FormTagsPlugin); 117c4e38abfSYoshie MuranakaVue.use(InputGroupPlugin); 118e080a1a7SDerick MontagueVue.use(LayoutPlugin); 11997d86b33SDixsie WolmersVue.use(LayoutPlugin); 120a2988f40SDerick MontagueVue.use(LinkPlugin); 12197d86b33SDixsie WolmersVue.use(ListGroupPlugin); 12235080acbSYoshie MuranakaVue.use(ModalPlugin); 12342c19893SDerick MontagueVue.use(NavbarPlugin); 12442c19893SDerick MontagueVue.use(NavPlugin); 125f9832b0eSYoshie MuranakaVue.use(PaginationPlugin); 1263be801aaSYoshie MuranakaVue.use(ProgressPlugin); 12742c19893SDerick MontagueVue.use(TablePlugin); 128c4b8757eSDixsie WolmersVue.use(TabsPlugin); 1290fc91e79SYoshie MuranakaVue.use(ToastPlugin); 1301be6b41eSYoshie MuranakaVue.use(TooltipPlugin); 1314b0fc1dbSYoshie MuranakaVue.use(Vuelidate); 132a2988f40SDerick Montague 133a2988f40SDerick Montaguenew Vue({ 134a2988f40SDerick Montague router, 135a2988f40SDerick Montague store, 136cbcd2136SDixsie Wolmers i18n, 137602e98aaSDerick Montague render: (h) => h(App), 138fded0d11SDerick Montague}).$mount('#app'); 139*fb6c6de9SKonstantinVue.prototype.$eventBus = eventBus; 140