-// Configure ZeroClipboard
-window.ZeroClipboard = require('zeroclipboard');
-window.ZeroClipboard.config({
- swfPath: '/ZeroClipboard.swf'
+"use strict";
+require("babel-polyfill");
+require('./dom-polyfills');
+
+// Url retrieval function
+window.baseUrl = function(path) {
+ let basePath = document.querySelector('meta[name="base-url"]').getAttribute('content');
+ if (basePath[basePath.length-1] === '/') basePath = basePath.slice(0, basePath.length-1);
+ if (path[0] === '/') path = path.slice(1);
+ return basePath + '/' + path;
+};
+
+// Global Event System
+class EventManager {
+ constructor() {
+ this.listeners = {};
+ this.stack = [];
+ }
+
+ emit(eventName, eventData) {
+ this.stack.push({name: eventName, data: eventData});
+ if (typeof this.listeners[eventName] === 'undefined') return this;
+ let eventsToStart = this.listeners[eventName];
+ for (let i = 0; i < eventsToStart.length; i++) {
+ let event = eventsToStart[i];
+ event(eventData);
+ }
+ return this;
+ }
+
+ listen(eventName, callback) {
+ if (typeof this.listeners[eventName] === 'undefined') this.listeners[eventName] = [];
+ this.listeners[eventName].push(callback);
+ return this;
+ }
+}
+
+window.$events = new EventManager();
+
+const Vue = require("vue");
+const axios = require("axios");
+
+let axiosInstance = axios.create({
+ headers: {
+ 'X-CSRF-TOKEN': document.querySelector('meta[name=token]').getAttribute('content'),
+ 'baseURL': window.baseUrl('')
+ }