{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/plugins/bootstrap-vue.js","webpack:///./src/mixins/index.js","webpack:///./src/store/index.js","webpack:///./src/views/Dashboard.vue?f99e","webpack:///src/views/Dashboard.vue","webpack:///./src/views/Dashboard.vue?cba5","webpack:///./src/views/Dashboard.vue","webpack:///./src/views/Positions.vue?a11b","webpack:///src/views/Positions.vue","webpack:///./src/views/Positions.vue?1a27","webpack:///./src/views/Positions.vue","webpack:///./src/views/Commodity.vue?e8d7","webpack:///src/views/Commodity.vue","webpack:///./src/views/Commodity.vue?5248","webpack:///./src/views/Commodity.vue","webpack:///./src/views/ViterraForecasts.vue?fa0a","webpack:///src/views/ViterraForecasts.vue","webpack:///./src/views/ViterraForecasts.vue?6e6d","webpack:///./src/views/ViterraForecasts.vue","webpack:///./src/views/Documentation.vue?7e1d","webpack:///src/views/Documentation.vue","webpack:///./src/views/Documentation.vue?d660","webpack:///./src/views/Documentation.vue","webpack:///./src/views/ForecastsDocumentation.vue?ac6b","webpack:///src/views/ForecastsDocumentation.vue","webpack:///./src/views/ForecastsDocumentation.vue?7682","webpack:///./src/views/ForecastsDocumentation.vue","webpack:///./src/views/OceanboltAIS.vue?1e1c","webpack:///src/views/OceanboltAIS.vue","webpack:///./src/views/OceanboltAIS.vue?6215","webpack:///./src/views/OceanboltAIS.vue","webpack:///./src/views/OceanboltAISSupraHandy.vue?b378","webpack:///src/views/OceanboltAISSupraHandy.vue","webpack:///./src/views/OceanboltAISSupraHandy.vue?3a05","webpack:///./src/views/OceanboltAISSupraHandy.vue","webpack:///./src/router/index.js","webpack:///./src/registerServiceWorker.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","exports","module","l","m","c","d","name","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","p","jsonpArray","window","oldJsonpFunction","slice","Vue","use","BootstrapVue","BootstrapVueIcons","currencyFormatter","Intl","NumberFormat","style","currency","colorsMixin","colors","BLACK","LIGHT_GRAY","GREEN","RED","BLUE","LIGHT_BLUE","CAT1","CAT2","CAT3","CAT4","CAT5","CAT6","CAT7","CAT8","CAT9","CAT10","CAT11","CAT12","ppMixin","methods","pricingCriteria","contract","offset","gapLimit","capesize","panamax","commodity","upperBound","marketPrice","lowerBound","gap","Math","abs","recommendation","forecast","round","recommendationDisplay","recommendations","B","S","N","blocked","rawRecommendation","ffaToOptionsRecommendation","rec","optionsRecommendationDisplay","this","ppCommodity","commodities","iron_ore","ppBlocked","ppContract","moment","format","ppTradeType","type","types","put","ffa","ppAction","action","ppFloat","f","Number","toFixed","x","split","tableMixin","itemKey","item","tennor","hideZeroFormat","computed","collection","toCollection","count","sums","cols","listColumns","sumColumns","filter","indexOf","reduce","acc","stat","sum","averages","mean","Vuex","RemoteData","taggedSum","NotAsked","Loading","Error","Success","map","cata","Store","state","uuid","uuidv4","as_tenant","selected_context","daily_data","positions_data","oceanbolt_ais_data","equities","trading_data","user","current_date","connecting","mutations","set_current_date","date","set_data","set_daily_data","set_positions_data","set_oceanbolt_ais_data","set_trading_data","set_connecting","set_user","set_commodities","set_equities","set_as_tenant","set_selected_context","context","actions","login","_vm","$auth","getIdTokenClaims","claims","email","picture","config","commit","defaultTenant","tenants","defaultContext","dispatch","logout","reload","isAuthenticated","connected","disconnected","new_trade","trade","getTokenSilently","token","ctx","tradeEntry","lastDate","tenor","getTenorForDateAndMonth","trade_entry","tennor_sdate","start","tennor_edate","end","$socket","client","emit","confirm_position","cancel_position","version","id","trade_ref","buildDailyData","load_date_data","getters","currentMode","SOCKET_positions_data","buildPositionsData","SOCKET_context_data","buildCommodities","SOCKET_dashboard_data","SOCKET_trading_data","SOCKET_oceanbolt_ais_data","switchContext","dashboard_context","console","log","currentContext","currentTenant","router","currentRoute","path","switchTenant","tenant","currentTenantConfig","getDf","DataFrame","dashboard","columns","tradeRefs","positions","ot","openTrades","tradeEntryIx","commodityIx","tennorIx","actionIx","typeIx","netLotsIx","toArray","replace","String","join","potentialTrades","row","cell","ix","trades","contracts","FFAPrice","premium","optionPrice","FFAPaid","maintMargin","lots","trigger_strike","trigger_maint_margin","default_trade","dailyData","userName","avatar","isTBI","isAdmin","permissions","canViewAIS","canViewForecasts","canViewFeatureAnalysis","canViewPositions","canViewEquities","canInputData","isShadowPortfolio","shadow","effectiveDate","isLastDate","tradingTabVisible","canSwitchContext","authorizedContexts","contexts","commoditiesContexts","keys","hasCommoditiesContexts","equitiesContexts","hasEquitiesContexts","routesContexts","hasRoutesContexts","viterraContexts","hasViterraContexts","viterraAISContexts","hasViterraAISContexts","sednaAISContexts","hasSednaAISContexts","bamContexts","hasBAMContexts","showIfchorLogo","display","showTBILogo","canSwitchTenant","defaultTenantConfig","authorizedTenants","tradingContext","currentTenantDisplayName","render","_h","$createElement","_c","_self","$store","attrs","staticRenderFns","props","components","BAMDashboard","CommoditiesDashboard","EquitiesDashboard","RoutesDashboard","ViterraDashboard","component","_v","staticClass","openSummary","realizedSummary","realizedTrades","_e","mixins","OpenSummaryTable","RealizedSummaryTable","OpenTradesTable","RealizedTradesTable","NewPositionForm","PendingPositionsTable","RecentPositionsTable","limitsFiels","label","sortable","exitCount","limitsItems","_s","displayName","_l","contractsData","forecastGraphs","ContractDetailedCard","ForecastTab","find","aisData","ais_data","text","model","callback","$$v","forecastMode","expression","ref","refInFor","d3ForecastData","week","entry","d3FeaturesData","errorMode","windowSize","d3PerformanceData","D3RouteForecast","D3RouteFeatures","D3RoutePerformance","orderedForecasts","forecasts","configs","slug","featuresLegends","color","performanceLegends","panamaxOptions","capesizeOptions","supramaxOptions","supramax","handymaxOptions","handymax","conditionOptions","conditions","plotOptions","plots","regionOptions","regions","staticStyle","aisPlot","aisPlotLayout","sumArrays","arrays","Plotly","rs","status","elements","region","xaxis","yaxis","selectedColumn","y","tempPlotsSum","newPlots","newPlotsCount","concat","margin","b","showlegend","rangeslider","layout","domain","anchor","handysizeOptions","handysize","segment","VueRouter","routes","wrap","Dashboard","beforeEnter","authGuard","ForecastsDocumentation","Documentation","wrapOceanBoltAIS","OceanboltAIS","OceanboltAISSupraHandy","wrapPositions","Positions","ViterraForecasts","Commodity","base","process","register","ready","registered","registration","setInterval","update","cached","updatefound","updated","document","dispatchEvent","CustomEvent","detail","offline","error"],"mappings":"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","file":"js/app~5a11b65b.ed504c50.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app~5a11b65b\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([1,\"chunk-vendors~fdfa2e35\",\"chunk-vendors~4134d62c\",\"chunk-vendors~bb4a6ce4\",\"chunk-vendors~0f67185d\",\"chunk-vendors~b1153c84\",\"chunk-vendors~5dc4b95a\",\"chunk-vendors~2f881681\",\"chunk-vendors~4853702b\",\"chunk-vendors~8e0697e3\",\"chunk-vendors~336510e2\",\"chunk-vendors~fabac083\",\"chunk-vendors~b5565bea\",\"chunk-vendors~de223f74\",\"chunk-vendors~58e5a955\",\"chunk-vendors~521f3f92\",\"chunk-vendors~3e5ab7d9\",\"chunk-vendors~e998ef7e\",\"chunk-vendors~ab93569f\",\"chunk-vendors~1c434f48\",\"chunk-vendors~66c336cc\",\"chunk-vendors~ad7bc508\",\"chunk-vendors~55d7db5f\",\"chunk-vendors~92714091\",\"chunk-vendors~7ff12c1b\",\"chunk-vendors~696628f8\",\"chunk-vendors~ab41313f\",\"chunk-vendors~c57dd861\",\"chunk-vendors~78a0960c\",\"chunk-vendors~5486f05c\",\"chunk-vendors~86390789\",\"chunk-vendors~6ff94e35\",\"chunk-vendors~73424ab8\",\"chunk-vendors~c78ea1d8\",\"chunk-vendors~6aeef78e\",\"chunk-vendors~855e935b\",\"app~493df0b3\",\"app~bb9f020d\",\"app~a97bfcba\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","import Vue from 'vue'\n\nimport { BootstrapVue, BootstrapVueIcons } from 'bootstrap-vue'\nimport 'bootstrap/dist/css/bootstrap.min.css'\nimport 'bootstrap-vue/dist/bootstrap-vue.css'\n\nVue.use(BootstrapVue)\nVue.use(BootstrapVueIcons)\n","import moment from 'moment'\n\nexport const currencyFormatter = new Intl.NumberFormat('en-US', {\n style: 'currency',\n currency: 'USD'\n})\n\nexport const colorsMixin = {\n data() {\n return {\n colors: {\n BLACK: '#071d33',\n LIGHT_GRAY: '#e3e8ec',\n GREEN: '#66c2a4',\n RED: '#e1575a',\n BLUE: '#218ae6',\n LIGHT_BLUE: '#aad3f3',\n CAT1: '#8dd3c7',\n CAT2: '#feffb2',\n CAT3: '#bebada',\n CAT4: '#fb8072',\n CAT5: '#7fb2d3',\n CAT6: '#fdb462',\n CAT7: '#b4de68',\n CAT8: '#fccde5',\n CAT9: '#d9d9d9',\n CAT10: '#bd7fbd',\n CAT11: '#ccebc5',\n CAT12: '#ffed6f'\n }\n }\n }\n}\n\nexport const ppMixin = {\n methods: {\n pricingCriteria(contract, offset) {\n if (!offset) {\n offset = 0;\n }\n const gapLimit = {\n capesize: 0.075,\n panamax: 0.05\n }[contract.commodity];\n let upperBound = contract.marketPrice * (1 + gapLimit);\n let lowerBound = contract.marketPrice * (1 - gapLimit);\n const gap = Math.abs(contract.gap);\n if (gap <= gapLimit) {\n if (contract.recommendation == \"B\") {\n upperBound = contract.forecast*(1-gap)\n }\n if (contract.recommendation == \"S\") {\n lowerBound = contract.forecast*(1+gap)\n }\n }\n return Math.round(lowerBound+offset) + ' - ' + Math.round(upperBound+offset);\n },\n recommendationDisplay(contract) {\n const recommendations = {\n B: 'Buy',\n S: 'Sell',\n N: 'Do Nothing'\n }\n if (!contract.blocked || contract.blocked == \"D\") {\n return recommendations[contract.recommendation];\n }\n return 'Blocked (' + recommendations[contract.rawRecommendation] + ')';\n },\n ffaToOptionsRecommendation(rec) {\n if (rec == \"B\") return \"Buy Call\";\n if (rec == \"S\") return \"Buy Put\";\n return \"Do Nothing\";\n },\n optionsRecommendationDisplay(contract) {\n if (!contract.blocked || contract.blocked == \"D\") {\n return this.ffaToOptionsRecommendation(contract.recommendation);\n }\n return 'Blocked ('+ this.ffaToOptionsRecommendation(contract.rawRecommendation) + ')';\n },\n ppCommodity(commodity) {\n const commodities = {\n capesize: 'Capesize',\n panamax: 'Panamax',\n iron_ore: 'Iron Ore'\n };\n return commodities[commodity] || commodity;\n },\n ppBlocked(blocked) {\n if (blocked == 'D') {\n return 'Engine Disagreement'\n }\n return blocked\n },\n ppContract(contract) {\n return moment(contract, \"MMMYY\").format(\"MMMM YYYY\");\n },\n ppTradeType(type) {\n const types = {\n call: 'Call',\n put: 'Put',\n ffa: 'FFA'\n };\n return types[type] || type\n },\n ppAction(action) {\n return {\n 'buy': 'Buy',\n 'sell': 'Sell'\n }[action] || action\n },\n ppFloat(f) {\n return Number(f).toFixed(2);\n },\n format(x) {\n return currencyFormatter.format(x).split('.')[0];\n }\n }\n}\n\nexport const tableMixin = {\n methods: {\n itemKey(item) {\n return item.commodity + item.tennor + item.type\n },\n hideZeroFormat(x) {\n if (Math.abs(x) < 0.0001) return ''\n return this.format(x)\n }\n },\n computed: {\n collection() {\n return this.data.toCollection()\n },\n count() {\n return this.data.count()\n },\n sums() {\n const cols = this.data.listColumns()\n const sumColumns = [\n 'premium_exposure', 'margin_exposure', 'pnl_trade',\n 'net_lots', 'net_d', 'm2m', 'partially_realized'\n ].filter(c => cols.indexOf(c) >= 0)\n return sumColumns.reduce((acc, c) => {\n acc[c] = this.data.stat.sum(c)\n return acc\n }, {})\n },\n averages() {\n return ['strike', 'price'].reduce((acc, c) => {\n acc[c] = this.data.stat.mean(c)\n return acc\n }, {})\n },\n }\n}\n","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport { taggedSum } from 'daggy'\nimport { v4 as uuidv4 } from 'uuid'\nimport DataFrame from 'dataframe-js'\nimport {\n buildDailyData,\n buildCommodities,\n buildPositionsData,\n getTenorForDateAndMonth\n} from '@/domain'\nimport router from '@/router'\n\nVue.use(Vuex)\n\nexport const RemoteData = taggedSum('RemoteData', {\n NotAsked: [],\n Loading: [],\n Error: ['error'],\n Success: ['data']\n})\nRemoteData.prototype.map = function(f) {\n return this.cata({\n NotAsked: () => this,\n Loading: () => this,\n Error: () => this,\n Success: d => RemoteData.Success(f(d))\n })\n}\n\nexport default new Vuex.Store({\n state: {\n uuid: uuidv4(),\n as_tenant: null,\n selected_context: null,\n data: RemoteData.NotAsked,\n daily_data: RemoteData.NotAsked,\n positions_data: RemoteData.NotAsked,\n oceanbolt_ais_data: RemoteData.NotAsked,\n commodities: [],\n equities: [],\n trading_data: {},\n user: null,\n current_date: null,\n connecting: true\n },\n mutations: {\n set_current_date(state, date) {\n state.current_date = date\n },\n set_data(state, data) {\n state.data = data\n },\n set_daily_data(state, data) {\n state.daily_data = data\n },\n set_positions_data(state, data) {\n state.positions_data = data\n },\n set_oceanbolt_ais_data(state, data) {\n state.oceanbolt_ais_data = data\n },\n set_trading_data(state, data) {\n state.trading_data = data\n },\n set_connecting(state, connecting) {\n state.connecting = connecting\n },\n set_user(state, user) {\n state.user = user\n },\n set_commodities(state, commodities) {\n state.commodities = commodities\n },\n set_equities(state, equities) {\n state.equities = equities\n },\n set_as_tenant(state, as_tenant) {\n state.as_tenant = as_tenant\n },\n set_selected_context(state, context) {\n state.selected_context = context\n }\n },\n actions: {\n async login(context) {\n const claims = await this._vm.$auth.getIdTokenClaims()\n const user = {\n name: claims.name,\n email: claims.email,\n picture: claims.picture,\n config: claims['https://truebearinginsights.com/config_v2']\n }\n context.commit('set_as_tenant', user.config.defaultTenant)\n context.commit(\n 'set_selected_context',\n user.config.tenants[user.config.defaultTenant].defaultContext\n )\n context.commit('set_user', user)\n context.commit('set_data', RemoteData.Loading)\n context.dispatch('reload')\n },\n logout(context) {\n context.commit('set_user', null)\n context.commit('set_as_state', null)\n },\n reload(context) {\n if (this._vm.$auth.isAuthenticated) {\n context.dispatch('switchContext', context.state.selected_context)\n }\n },\n connected(context) {\n context.dispatch('reload')\n context.commit('set_connecting', false)\n },\n disconnected(context) {\n context.commit('set_connecting', true)\n },\n async new_trade(context, trade) {\n const token = await this._vm.$auth.getTokenSilently()\n const ctx = context.state.daily_data.cata({\n 'NotAsked': () => null,\n 'Loading': () => null,\n 'Error': () => null,\n 'Success': d => {\n const tradeEntry = d.lastDate\n const tenor = getTenorForDateAndMonth(d.tenor, tradeEntry, Number(trade.contract[1]))\n return {\n tradeEntry,\n tenor\n }\n }\n })\n if (ctx) {\n trade.trade_entry = ctx.tradeEntry\n trade.tennor = ctx.tenor.name\n trade.tennor_sdate = ctx.tenor.start\n trade.tennor_edate = ctx.tenor.end\n this._vm.$socket.client.emit(\n \"new_trade\",\n token,\n trade,\n context.state.selected_context,\n context.state.as_tenant\n )\n }\n },\n async confirm_position(context, trade) {\n const token = await this._vm.$auth.getTokenSilently()\n this._vm.$socket.client.emit(\n 'confirm_position',\n token,\n trade,\n context.state.selected_context,\n context.state.as_tenant\n )\n },\n async cancel_position(context, trade) {\n const token = await this._vm.$auth.getTokenSilently()\n this._vm.$socket.client.emit(\n 'cancel_position',\n token,\n trade.version,\n trade.id,\n trade.trade_ref,\n context.state.selected_context,\n context.state.as_tenant\n )\n },\n set_current_date(context, value) {\n context.commit('set_current_date', value)\n context.commit('set_daily_data', context.state.data.map(x => buildDailyData(value, x)))\n context.dispatch('load_date_data')\n },\n async load_date_data(context) {\n if (context.getters.currentMode != 'commodities') return\n const token = await this._vm.$auth.getTokenSilently()\n context.commit('set_positions_data', RemoteData.Loading)\n this._vm.$socket.client.emit(\n \"positions_data_request\",\n context.state.current_date,\n token,\n context.state.selected_context,\n context.state.as_tenant\n )\n },\n SOCKET_positions_data(context, data) {\n if (data) {\n context.commit('set_positions_data', RemoteData.Success(buildPositionsData(data)))\n } else {\n context.commit('set_positions_data', RemoteData.Loading)\n }\n },\n SOCKET_context_data(context, data) {\n //console.log('SOCKET_context_data', context, data)\n context.commit('set_commodities', buildCommodities(data))\n if (data) {\n context.commit('set_data', RemoteData.Success(data))\n context.commit(\n 'set_daily_data',\n RemoteData.Success(\n buildDailyData(context.state.current_date, data)\n )\n )\n } else {\n //console.log('unsetting data')\n context.commit('set_data', RemoteData.Loading)\n }\n },\n SOCKET_dashboard_data(context, data) {\n context.commit('set_commodities', buildCommodities(data))\n if (data) {\n context.commit('set_data', RemoteData.Success(data))\n context.commit(\n 'set_daily_data',\n RemoteData.Success(buildDailyData(context.state.current_date, data))\n )\n } else {\n context.commit('set_data', RemoteData.Loading)\n }\n },\n SOCKET_trading_data(context, data) {\n context.commit('set_trading_data', data)\n },\n SOCKET_oceanbolt_ais_data(context, data) {\n if (data) {\n context.commit('set_oceanbolt_ais_data', RemoteData.Success(data))\n } else {\n context.commit('set_oceanbolt_ais_data', RemoteData.Loading)\n }\n },\n async switchContext(context, dashboard_context) {\n console.log(\"Switching context to\", dashboard_context)\n console.log(\"context\", context)\n context.commit('set_selected_context', dashboard_context)\n const token = await this._vm.$auth.getTokenSilently()\n if (\n context.getters.currentContext && context.getters.currentContext.type == 'viterra-ais'\n ) {\n context.commit('set_data', RemoteData.NotAsked)\n context.commit('set_daily_data', RemoteData.NotAsked)\n context.commit('set_commodities', [])\n this._vm.$socket.client.emit(\n \"oceanbolt_ais_data_request\",\n token,\n context.getters.currentTenant\n )\n }\n else if (\n context.getters.currentContext && context.getters.currentContext.type == 'sedna-ais'\n ) {\n context.commit('set_data', RemoteData.NotAsked)\n context.commit('set_daily_data', RemoteData.NotAsked)\n context.commit('set_commodities', [])\n this._vm.$socket.client.emit(\n \"oceanbolt_ais_data_request\",\n token,\n context.getters.currentTenant\n )\n }\n else {\n context.commit('set_data', RemoteData.Loading)\n context.commit('set_daily_data', RemoteData.Loading)\n context.commit('set_commodities', [])\n this._vm.$socket.client.emit(\n \"oceanbolt_ais_data_request\",\n token,\n context.getters.currentTenant\n )\n this._vm.$socket.client.emit(\n \"context_subscribe\",\n token,\n dashboard_context\n )\n context.dispatch('load_date_data')\n }\n if (router.currentRoute.path != '/') router.push('/')\n },\n async switchTenant(context, tenant) {\n context.commit('set_as_tenant', tenant)\n context.dispatch(\n 'switchContext',\n context.getters.currentTenantConfig.defaultContext\n )\n if (router.currentRoute.path != '/') router.push('/')\n }\n },\n getters: {\n getDf(state) {\n return state.data.cata({\n NotAsked: () => null,\n Loading: () => null,\n Error: () => [],\n Success: d => (\n new DataFrame(d.dashboard.data, d.dashboard.columns)\n )\n })\n },\n tradeRefs(state) {\n return state.positions_data.cata({\n NotAsked: () => [],\n Loading: () => [],\n Error: () => [],\n Success: positions => {\n const ot = positions.openTrades\n const columns = ot.listColumns();\n const tradeEntryIx = columns.indexOf('trade_entry')\n const commodityIx = columns.indexOf('commodity')\n const tennorIx = columns.indexOf('tennor')\n const actionIx = columns.indexOf('action')\n const typeIx = columns.indexOf('type')\n const netLotsIx = columns.indexOf('net_lots')\n return ot.toArray().map(t => (\n [\n t[tradeEntryIx].replace(/-/g, ''),\n t[commodityIx],\n t[tennorIx],\n t[actionIx],\n t[typeIx],\n String(Math.abs(t[netLotsIx]))\n ].join('_')\n ))\n }\n })\n },\n potentialTrades(state) {\n return state.data.cata({\n NotAsked: () => [],\n Loading: () => [],\n Error: () => [],\n Success: data => {\n const row = data.dashboard.data.slice(-1)[0].reduce((acc, cell, ix) => {\n acc[data.dashboard.columns[ix]] = cell\n return acc\n }, {})\n\n const trades = []\n for (let commodity of state.commodities) {\n for (let contract of commodity.contracts) {\n const recommendation = row[commodity.name + '_Recommendation_' + contract]\n const FFAPrice = row[commodity.name + '_FFA_price_' + contract]\n const premium = row[commodity.name + '_U2_Premium_' + contract]\n const optionPrice = Math.round(Math.abs(premium / 30.0))\n const FFAPaid = row[commodity.name + '_initial_margin_' + contract]\n const maintMargin = row[commodity.name + '_maint_margin_' + contract]\n if (recommendation != 'N') {\n const trade = {\n id: commodity.name + recommendation + contract,\n commodity: commodity.name,\n contract,\n lots: commodity.lots,\n trigger_strike: null,\n trigger_maint_margin: null\n }\n if (commodity.default_trade == 'ffa') {\n trade['type'] = 'ffa'\n trade['action'] = recommendation == 'S' ? 'sell' : 'buy'\n trade['trigger_price'] = FFAPrice\n trade['trigger_paid'] = FFAPaid * commodity.lots\n trade['trigger_maint_margin'] = maintMargin * commodity.lots\n } else {\n const type = recommendation == 'S' ? 'put' : 'call'\n trade['type'] = type\n trade['action'] = 'buy'\n trade['trigger_strike'] = row[commodity.name + '_U2_Strike_price_' + type + '_' + contract],\n trade['trigger_price'] = optionPrice\n trade['trigger_paid'] = optionPrice * commodity.lots\n }\n trades.push(trade)\n }\n }\n }\n return trades\n }\n })\n },\n dailyData(state) {\n return state.data.map(d => buildDailyData(state.current_date, d))\n },\n userName(state) {\n if (!state.user) return ''\n return state.user.name || state.user.email\n },\n avatar(state) {\n if (!state.user) return ''\n return state.user.picture\n },\n context(state) {\n return state.data.cata({\n 'NotAsked': () => null,\n 'Loading': () => null,\n 'Error': () => null,\n 'Success': d => d.context\n })\n },\n isTBI(state) {\n if (!state.user) return false\n return state.user.config.isAdmin /* && !state.as_tenant */;\n },\n permissions(state) {\n if (!state.user) return {}\n const tenant = state.user.config.defaultTenant\n let config = state.user.config.tenants[tenant]\n if (state.as_tenant) {\n config = state.user.config.tenants[state.as_tenant]\n }\n return config['permissions'] || {}\n },\n canViewAIS(state, getters) {\n return !!getters.permissions['canViewAIS']\n },\n canViewForecasts(state, getters) {\n return !!getters.permissions['canViewForecasts']\n },\n canViewFeatureAnalysis(/* state, getters */) {\n // disable feature analysis\n return false\n },\n canViewPositions(state, getters) {\n return !!getters.permissions['canViewPositions']\n },\n canViewEquities(state, /* getters */) {\n return state.user.email == 'thomas@truebearinginsights.com'\n },\n canInputData(state, getters) {\n return !!getters.permissions['canInputData']\n },\n isShadowPortfolio(state, getters) {\n return getters.context && getters.context.shadow\n },\n effectiveDate(state) {\n return state.daily_data.cata({\n NotAsked: () => null,\n Loading: () => null,\n Error: () => null,\n Success: d => d.date\n })\n },\n isLastDate(state) {\n return state.daily_data.cata({\n NotAsked: () => null,\n Loading: () => null,\n Error: () => null,\n Success: d => d.date == d.lastDate\n })\n },\n tradingTabVisible(state, getters) {\n return state.user.config.isAdmin && !getters.isShadowPortfolio && getters.isLastDate\n },\n canSwitchContext(state) {\n if (!state.user) return false\n return true\n },\n authorizedContexts(state) {\n if (!state.user) return {}\n return state.user.config.tenants[state.as_tenant].contexts;\n },\n commoditiesContexts(state, getters) {\n if (!state.user) return {}\n const contexts = getters.currentTenantConfig.contexts\n return Object.keys(contexts).reduce((acc, key) => {\n if (contexts[key].type == 'commodities') {\n acc[key] = contexts[key]\n }\n return acc\n }, {})\n },\n hasCommoditiesContexts(state, getters) {\n return Object.keys(getters.commoditiesContexts).length > 0\n },\n equitiesContexts(state, getters) {\n if (!state.user) return {}\n const contexts = getters.currentTenantConfig.contexts\n return Object.keys(contexts).reduce((acc, key) => {\n if (contexts[key].type == 'equities') {\n acc[key] = contexts[key]\n }\n return acc\n }, {})\n },\n hasEquitiesContexts(state, getters) {\n return Object.keys(getters.equitiesContexts).length > 0\n },\n routesContexts(state, getters) {\n if (!state.user) return {}\n const contexts = getters.currentTenantConfig.contexts\n return Object.keys(contexts).reduce((acc, key) => {\n if (contexts[key].type == 'routes') {\n acc[key] = contexts[key]\n }\n return acc\n }, {})\n },\n hasRoutesContexts(state, getters) {\n return Object.keys(getters.routesContexts).length > 0\n },\n viterraContexts(state, getters) {\n if (!state.user) return {}\n const contexts = getters.currentTenantConfig.contexts\n return Object.keys(contexts).reduce((acc, key) => {\n if (contexts[key].type == 'viterra') {\n acc[key] = contexts[key]\n }\n return acc\n }, {})\n },\n hasViterraContexts(state, getters) {\n return Object.keys(getters.viterraContexts).length > 0\n },\n viterraAISContexts(state, getters) {\n if (!state.user) return {}\n const contexts = getters.currentTenantConfig.contexts\n return Object.keys(contexts).reduce((acc, key) => {\n if (contexts[key].type == 'viterra-ais') {\n acc[key] = contexts[key]\n }\n return acc\n }, {})\n },\n hasViterraAISContexts(state, getters) {\n return Object.keys(getters.viterraAISContexts).length > 0\n }, \n sednaAISContexts(state, getters) {\n if (!state.user) return {}\n const contexts = getters.currentTenantConfig.contexts\n return Object.keys(contexts).reduce((acc, key) => {\n if (contexts[key].type == 'sedna-ais') {\n acc[key] = contexts[key]\n }\n return acc\n }, {})\n },\n hasSednaAISContexts(state, getters) {\n return Object.keys(getters.sednaAISContexts).length > 0\n }, \n\n bamContexts(state, getters) {\n if (!state.user) return {}\n const contexts = getters.currentTenantConfig.contexts\n return Object.keys(contexts).reduce((acc, key) => {\n if (contexts[key].type == 'bam') {\n acc[key] = contexts[key]\n }\n return acc\n }, {})\n },\n hasBAMContexts(state, getters) {\n return Object.keys(getters.bamContexts).length > 0\n },\n currentContext(state, getters) {\n if (!state.user) return null\n return getters.currentTenantConfig.contexts[\n state.selected_context || getters.currentTenantConfig.defaultContext\n ]\n },\n showIfchorLogo(state, getters) {\n if (!getters.currentContext) return false;\n return getters.currentContext.display == 'C10 and C14 forecasts'\n },\n showTBILogo(state, getters) {\n if (!getters.currentMode) return true;\n return getters.currentMode != 'bam'\n },\n currentMode(state, getters) {\n if (!state.user) return null\n return getters.currentContext.type\n },\n canSwitchTenant(state, getters) {\n if (!state.user) return false\n return !!getters.defaultTenantConfig.permissions['canSwitchTenant']\n },\n authorizedTenants(state) {\n if (!state.user) return {}\n return state.user.config.tenants\n },\n currentTenant(state) {\n if (!state.user) return null\n if (state.as_tenant) { return state.as_tenant }\n return state.user.config.defaultTenant\n },\n currentTenantConfig(state, getters) {\n if (!state.user) return {}\n return state.user.config.tenants[getters.currentTenant]\n },\n defaultTenantConfig(state) {\n if (!state.user) return {}\n return state.user.config.tenants[state.user.config.defaultTenant]\n },\n tradingContext(state, getters) {\n if (!state.user.config.isAdmin) {\n return null\n }\n return state.trading_data[\n state.selected_context || getters.currentTenantConfig.defaultContext\n ]\n },\n currentTenantDisplayName(state, getters) {\n return state.user.config.tenants[getters.currentTenant].display\n }\n },\n modules: {\n }\n})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.$store.getters.currentMode == 'commodities')?_c('div',[_c('CommoditiesDashboard',{attrs:{\"data\":_vm.data,\"commodities\":_vm.commodities}})],1):(_vm.$store.getters.currentMode == 'equities')?_c('div',[_c('EquitiesDashboard',{attrs:{\"data\":_vm.data}})],1):(_vm.$store.getters.currentMode == 'routes')?_c('div',[_c('RoutesDashboard',{attrs:{\"data\":_vm.data}})],1):(_vm.$store.getters.currentMode == 'viterra')?_c('div',[_c('ViterraDashboard',{attrs:{\"data\":_vm.data}})],1):(_vm.$store.getters.currentMode == 'viterra-ais')?_c('div',[_c('ViterraDashboard',{attrs:{\"data\":_vm.data}})],1):(_vm.$store.getters.currentMode == 'bam')?_c('div',[_c('BAMDashboard',{attrs:{\"data\":_vm.data}})],1):_c('div',[_c('Error',{attrs:{\"error\":\"Unsupported portfolio type\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=79faaec2&\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js&\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('h3',[_vm._v(\"Positions\")])]),(_vm.$store.getters.canViewPositions)?_c('b-row',[_c('b-card',{staticClass:\"w-100\",attrs:{\"no-body\":\"\"}},[_c('b-tabs',{attrs:{\"card\":\"\"}},[_c('b-tab',{staticClass:\"w-100\",attrs:{\"title\":\"Overview\",\"active\":\"\"}},[_c('OpenSummaryTable',{attrs:{\"data\":_vm.data.openSummary}}),_c('RealizedSummaryTable',{attrs:{\"data\":_vm.data.realizedSummary}})],1),_c('b-tab',{staticClass:\"w-100\",attrs:{\"title\":\"Open\"}},[_c('OpenTradesTable',{attrs:{\"data\":_vm.data.openTrades}})],1),_c('b-tab',{staticClass:\"w-100\",attrs:{\"title\":\"Realized\"}},[_c('RealizedTradesTable',{attrs:{\"data\":_vm.data.realizedTrades}})],1),(_vm.$store.getters.tradingTabVisible)?_c('b-tab',{staticClass:\"w-100\",attrs:{\"title\":\"Trading\"}},[_c('h5',[_vm._v(\"New Position\")]),_c('NewPositionForm'),_c('h5',{staticClass:\"mt-3\"},[_vm._v(\"Pending Positions\")]),_c('PendingPositionsTable'),_c('h5',{staticClass:\"mt-3\"},[_vm._v(\"Recently Entered Positions\")]),_c('RecentPositionsTable')],1):_vm._e()],1)],1)],1):_vm._e()],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./Positions.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./Positions.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Positions.vue?vue&type=template&id=e9b23252&\"\nimport script from \"./Positions.vue?vue&type=script&lang=js&\"\nexport * from \"./Positions.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.commodity)?_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('h3',[_vm._v(_vm._s(_vm.commodity.displayName))])]),_c('b-row',[_c('b-card',{staticClass:\"w-100\",attrs:{\"no-body\":\"\"}},[_c('b-tabs',{attrs:{\"card\":\"\"}},[_c('b-tab',{staticClass:\"w-100\",attrs:{\"title\":\"Contracts\",\"active\":\"\"}},[_c('b-row',[_vm._l((_vm.commodity.contracts),function(contract){return [_c('ContractDetailedCard',{key:contract,attrs:{\"data\":_vm.data.contractsData[_vm.commodity.name + '_' + contract]}})]})],2)],1),_c('ForecastTab',{attrs:{\"data\":_vm.data.forecastGraphs[_vm.name]}})],1)],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./Commodity.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./Commodity.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Commodity.vue?vue&type=template&id=4b0fb928&\"\nimport script from \"./Commodity.vue?vue&type=script&lang=js&\"\nexport * from \"./Commodity.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"sm\":\"12\"}},[_c('h3',[_c('b-form-radio-group',{staticClass:\"pl-4\",attrs:{\"buttons\":\"\",\"button-variant\":\"outline-primary\",\"options\":[{text: 'Present Forecast', value: 'forecast'}, {text: 'Previous 3 Days Forecasts', value: 'progression'}]},model:{value:(_vm.forecastMode),callback:function ($$v) {_vm.forecastMode=$$v},expression:\"forecastMode\"}})],1)]),_vm._l((_vm.orderedForecasts),function(forecast){return _c('b-col',{key:forecast.name},[_c('b-row',[_c('b-col',[_c('D3RouteForecast',{ref:forecast.name,refInFor:true,attrs:{\"data\":forecast.d3ForecastData,\"week\":forecast.week,\"route\":forecast.label,\"range\":\"static\",\"spotLabel\":\"Price\",\"mode\":_vm.forecastMode}})],1)],1)],1)})],2),_c('b-row',{staticClass:\"mt-1 border-top\"},[_c('b-col',[_c('b-row',[_c('b-col',{attrs:{\"sm\":\"12\"}},[_c('h5',[_vm._v(\" Feature Importance \"),_c('small',[_c('b-icon',{attrs:{\"id\":\"fi_info\",\"icon\":\"info-circle\"}}),_c('b-tooltip',{attrs:{\"target\":\"fi_info\"}},[_vm._v(\" All categories contain both direct and derived features (inputs), such as technical / statistical properties of a price / time series in that category \")])],1)])])],1),_c('b-row',_vm._l((_vm.featuresLegends),function(entry){return _c('b-col',{key:entry.label,staticClass:\"text-center\"},[_c('span',[_c('big',[_c('big',[_c('span',{style:((\"color: \" + (entry.color)))},[_vm._v(\"●\")])])],1),_vm._v(\" \"+_vm._s(entry.label)+\" \")],1)])}),1),_c('b-row',_vm._l((_vm.orderedForecasts),function(forecast){return _c('b-col',{key:forecast.name},[_c('D3RouteFeatures',{ref:forecast.name,refInFor:true,attrs:{\"data\":forecast.d3FeaturesData,\"week\":forecast.week,\"route\":forecast.label}})],1)}),1)],1)],1),_c('b-row',{staticClass:\"mt-1 border-top\"},[_c('b-col',[_c('b-row',[_c('b-col',{attrs:{\"sm\":\"12\"}},[_c('h5',[_vm._v(\" Model Performance \"),_c('small',[_c('b-icon',{attrs:{\"id\":\"mp_info\",\"icon\":\"info-circle\"}}),_c('b-tooltip',{attrs:{\"target\":\"mp_info\"}},[_vm._v(\" Recent performance expressed in percentage terms relative to model’s total historical performance \")])],1)])]),_c('b-col',{attrs:{\"sm\":\"3\"}},[_c('b-form-radio-group',{staticClass:\"pl-4\",attrs:{\"buttons\":\"\",\"size\":\"sm\",\"button-variant\":\"outline-primary\",\"options\":[{text: 'Relative Performance', value: 'relative'}, {text: 'Absolute Performance', value: 'absolute'}]},model:{value:(_vm.errorMode),callback:function ($$v) {_vm.errorMode=$$v},expression:\"errorMode\"}})],1),_c('b-col',{attrs:{\"sm\":\"9\"}},[_c('b-form-radio-group',{attrs:{\"buttons\":\"\",\"size\":\"sm\",\"button-variant\":\"outline-primary\",\"options\":[{text: 'Past Six Months', value: 'past_six_months'}, {text: 'Past Year', value: 'past_year'}]},model:{value:(_vm.windowSize),callback:function ($$v) {_vm.windowSize=$$v},expression:\"windowSize\"}})],1),_vm._l((_vm.performanceLegends),function(entry){return _c('b-col',{key:entry.label,staticClass:\"text-center\"},[_c('span',[_c('big',[_c('big',[_c('span',{style:((\"color: \" + (entry.color)))},[_vm._v(\"●\")])])],1),_vm._v(\" \"+_vm._s(entry.label)+\" \")],1)])})],2),_c('b-row',_vm._l((_vm.orderedForecasts),function(forecast){return _c('b-col',{key:forecast.name},[_c('b-row',[_c('b-col',[_c('D3RoutePerformance',{ref:forecast.name,refInFor:true,attrs:{\"data\":forecast.d3PerformanceData[_vm.errorMode][_vm.windowSize],\"week\":forecast.week,\"route\":forecast.label}})],1)],1)],1)}),1)],1)],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./ViterraForecasts.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./ViterraForecasts.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ViterraForecasts.vue?vue&type=template&id=7a5ddcb8&\"\nimport script from \"./ViterraForecasts.vue?vue&type=script&lang=js&\"\nexport * from \"./ViterraForecasts.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('h4',[_vm._v(\"Executive Summary\")]),(_vm.$store.getters.currentContext.display == 'C10 and C14')?_c('p',[_c('a',{attrs:{\"href\":\"https://truebearinginsights.com\"}},[_vm._v(\"True Bearing Insights (TBI)\")]),_vm._v(\" and \"),_c('a',{attrs:{\"href\":\"https://ifchor.com\"}},[_vm._v(\"IFCHOR\")]),_vm._v(\" have partnered to provide market indicators for C10 and C14 Baltic routes, delivering their clients distinct strategic and commercial insights within the Capesize physical markets. TBI and IFCHOR have developed market indicators for each route one to two weeks forward, with models updating such assessments on a daily basis. \")]):(_vm.$store.getters.currentContext.display == 'Capesize')?_c('p',[_c('a',{attrs:{\"href\":\"https://truebearinginsights.com\"}},[_vm._v(\"True Bearing Insights (TBI)\")]),_vm._v(\" and \"),_c('a',{attrs:{\"href\":\"https://ifchor.com\"}},[_vm._v(\"IFCHOR\")]),_vm._v(\" have partnered to provide market indicators for C10, C14 Baltic routes and the composite Capesize 5TC index, delivering their clients distinct strategic and commercial insights within the Capesize physical markets. TBI and IFCHOR have developed market indicators for each route and index one to two weeks forward, with models updating such assessments on a daily basis. \")]):(_vm.$store.getters.currentContext.display == 'Panamax')?_c('p',[_c('a',{attrs:{\"href\":\"https://truebearinginsights.com\"}},[_vm._v(\"True Bearing Insights (TBI)\")]),_vm._v(\" provides market indicators for P1A, P3A Baltic routes and the composite Panamax 5TC index, delivering their clients distinct strategic and commercial insights within the Panamax physical markets. TBI has developed market indicators for each route and index one to two weeks forward, with models updating such assessments on a daily basis. \")]):(_vm.$store.getters.currentContext.display == 'Supramax')?_c('p',[_c('a',{attrs:{\"href\":\"https://truebearinginsights.com\"}},[_vm._v(\"True Bearing Insights (TBI)\")]),_vm._v(\" provides market indicators for S2, S8 Baltic routes and the composite Supramax 10TC index, delivering their clients distinct strategic and commercial insights within the Panamax physical markets. TBI has developed market indicators for each route and index one to two weeks forward, with models updating such assessments on a daily basis. \")]):(_vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('p',[_c('a',{attrs:{\"href\":\"https://truebearinginsights.com\"}},[_vm._v(\"True Bearing Insights (TBI)\")]),_vm._v(\" provides market indicators for the composite Capesize 5TC index and composite Panamax 5TC index, delivering their clients distinct strategic and commercial insights within the Capesize and Panamax physical markets. TBI has developed market indicators for each index one to two weeks forward, with models updating such assessments on a daily basis. \")]):_vm._e()])],1),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('h4',[_vm._v(\"Dashboard Overview\")]),_c('p',[(_vm.$store.getters.currentContext.display == 'C10 and C14')?_c('span',[_vm._v(\" TBI and IFCHOR have created an interactive dashboard to display these market indicators, as well as additional data related to the indicator models themselves. \")]):(_vm.$store.getters.currentContext.display == 'Capesize')?_c('span',[_vm._v(\" TBI and IFCHOR have created an interactive dashboard to display these market indicators, as well as additional data related to the indicator models themselves. \")]):(_vm.$store.getters.currentContext.display == 'Panamax')?_c('span',[_vm._v(\" TBI has created an interactive dashboard to display these market indicators, as well as additional data related to the indicator models themselves. \")]):(_vm.$store.getters.currentContext.display == 'Supramax')?_c('span',[_vm._v(\" TBI has created an interactive dashboard to display these indicators, as well as additional data related to the indicator models themselves. \")]):(_vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('span',[_vm._v(\" TBI has created an interactive dashboard to display these indicators, as well as additional data related to the indicator models themselves. \")]):_vm._e(),_vm._v(\" The dashboard consists of three main sections:\"),_c('br'),_c('br'),_c('ol',[_c('li',[_c('a',{attrs:{\"href\":\"#indicator\"}},[_c('big',[_c('b',[_vm._v(\"Indicator Data\")])])],1),_vm._v(\" - displays data related to present and past indicators, updated daily \")]),_c('li',[_c('a',{attrs:{\"href\":\"#feature\"}},[_c('big',[_c('b',[_vm._v(\"Feature Importance Data\")])])],1),_vm._v(\" - summarizes the underlying inputs driving the indicator \")]),_c('li',[_c('a',{attrs:{\"href\":\"#performance\"}},[_c('big',[_c('b',[_vm._v(\"Model Performance Data\")])])],1),_vm._v(\" - details the indicator's recent performance \")])]),(_vm.$store.getters.currentContext.display == 'C10 and C14')?_c('img',{attrs:{\"src\":require(\"@/assets/dashboard_display.png\"),\"alt\":\"Dashboard Display\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Capesize')?_c('img',{attrs:{\"src\":require(\"@/assets/dashboard_display_capesize.png\"),\"alt\":\"Dashboard Display\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('img',{attrs:{\"src\":require(\"@/assets/dashboard_display_capesize.png\"),\"alt\":\"Dashboard Display\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Panamax')?_c('img',{attrs:{\"src\":require(\"@/assets/dashboard_display_panamax.png\"),\"alt\":\"Dashboard Display\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Supramax')?_c('img',{attrs:{\"src\":require(\"@/assets/dashboard_display_supramax.png\"),\"alt\":\"Dashboard Display\",\"width\":\"100%\"}}):_vm._e(),_c('br'),_c('br'),_vm._v(\" The following provides a detailed overview of this dashboard, and the interpretations associated with its different elements. \")])])],1),_c('b-row',{attrs:{\"id\":\"indicator\"}},[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('h4',[_vm._v(\"Indicator Data\")]),_c('p',[_vm._v(\" The main section of the dashboard - Indicator Data - contains current and previous indicator data within the context of underlying market conditions. There are two main graphics, which are accessed via the button on the top left of the page of the dashboard:\"),_c('br'),_c('br'),_c('ul',[_c('li',[_c('big',[_c('b',[_vm._v(\"Present Indicator Dials\")])])],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Previous 3 Day Indicator Dials\")])])],1)]),(_vm.$store.getters.currentContext.display == 'C10 and C14')?_c('img',{attrs:{\"src\":require(\"@/assets/forecast_data.png\"),\"alt\":\"Indicator Data\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Capesize')?_c('img',{attrs:{\"src\":require(\"@/assets/forecast_data_capesize.png\"),\"alt\":\"Indicator Data\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('img',{attrs:{\"src\":require(\"@/assets/forecast_data_capesize.png\"),\"alt\":\"Indicator Data\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Panamax')?_c('img',{attrs:{\"src\":require(\"@/assets/forecast_data_panamax.png\"),\"alt\":\"Indicator Data\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Supramax')?_c('img',{attrs:{\"src\":require(\"@/assets/forecast_data_supramax.png\"),\"alt\":\"Indicator Data\",\"width\":\"100%\"}}):_vm._e()])])],1),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"3\"}},[_vm._v(\" The \"),_c('big',[_c('em',[_vm._v(\"Present Indicator\")])]),_vm._v(\" dial contains three main elements: \"),_c('br'),_c('br'),_c('ol',[_c('li',[_c('big',[_c('b',[_vm._v(\"Indicator Ranges\")])]),_vm._v(\" - indicate the indicator's range of spot prices within the target week \"),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" 50% Range = dark blue shade within exterior circle; numeric range detailed in center of dial \")]),_c('li',[_vm._v(\" 70% Range = light blue shade within exterior circle \")]),_c('li',[_vm._v(\" The indicator's range on average should capture 50, 70% of spot prices within the target week \")])])],1),_c('br'),_c('li',[_c('big',[_c('b',[_vm._v(\"Indicator Average and Direction\")])]),_vm._v(\" - indicate the average spot price of the target week and its direction from current spot price. \"),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" Average - green / red arrow between exterior and interior circles \")]),_c('li',[_vm._v(\" Direction - indicated by a) color of average arrow (green = up, red = down), and b) arrow direction / color in the center of dial \")])])],1),_c('br'),_c('li',[_c('big',[_c('b',[_vm._v(\"Current Spot Price\")])]),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" Black line within the interior circle; numerically detailed in center of dial \")])])],1)])],1),_c('b-col',{attrs:{\"sm\":\"3\"}},[(\n _vm.$store.getters.currentContext.display == 'C10 and C14'|| \n _vm.$store.getters.currentContext.display == 'Capesize' ||\n _vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('img',{attrs:{\"src\":require(\"@/assets/forecast_w1.png\"),\"alt\":\"Indicator W1\",\"width\":\"80%\"}}):_vm._e(),(\n _vm.$store.getters.currentContext.display == 'Panamax'|| \n _vm.$store.getters.currentContext.display == 'Supramax')?_c('img',{attrs:{\"src\":require(\"@/assets/forecast_w1_no_label.png\"),\"alt\":\"Indicator W1\",\"width\":\"80%\"}}):_vm._e(),(\n _vm.$store.getters.currentContext.display == 'C10 and C14'|| \n _vm.$store.getters.currentContext.display == 'Capesize'||\n _vm.$store.getters.currentContext.display == 'C5TC and P5TC market indicators')?_c('img',{attrs:{\"src\":require(\"@/assets/forecast_w2.png\"),\"alt\":\"Indicator W2\",\"width\":\"80%\"}}):_vm._e(),(\n _vm.$store.getters.currentContext.display == 'Panamax'|| \n _vm.$store.getters.currentContext.display == 'Supramax')?_c('img',{attrs:{\"src\":require(\"@/assets/forecast_w2_no_label.png\"),\"alt\":\"Indicator W2\",\"width\":\"80%\"}}):_vm._e()])],1),_c('b-row',{staticClass:\"mt-4\"},[_c('b-col',{attrs:{\"sm\":\"3\"}},[_vm._v(\" The \"),_c('big',[_c('em',[_vm._v(\"Previous 3 Day Indicator Dial\")])]),_vm._v(\" contains three main elements as well: \"),_c('br'),_c('br'),_c('ol',[_c('li',[_c('big',[_c('b',[_vm._v(\"Current Indicator Range and Spot Price\")])]),_vm._v(\" - exterior circle \"),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" Current Indicator Range - dark, light blue shades (50, 70%) within exterior circle \")]),_c('li',[_vm._v(\" Current Spot Price - black line within exterior circle \")])])],1),_c('br'),_c('li',[_c('big',[_c('b',[_vm._v(\"Previous Indicator Ranges and Spot Prices\")])]),_vm._v(\" - three interior circles corresponding to previous three days \"),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" Ordered from most recent (outside) to least recent (inside) \")]),_c('li',[_vm._v(\" Previous Indicator Ranges - dark, light blue shades (50, 70%) within interior circles \")]),_c('li',[_vm._v(\" Previous Spot Prices - black line within interior circles \")])])],1),_c('br'),_c('li',[_c('big',[_c('b',[_vm._v(\"Indicator Trend\")])]),_vm._v(\" - directional change in current indicator relative to three days prior \"),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" Directional change is measured on the basis of the indicated average spot price; green = indicator trending up, red = indicator trending down \")])])],1)])],1),_c('b-col',{attrs:{\"sm\":\"3\"}},[(\n _vm.$store.getters.currentContext.display == 'C10 and C14'|| \n _vm.$store.getters.currentContext.display == 'Capesize'||\n _vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('img',{attrs:{\"src\":require(\"@/assets/trend_w1.png\"),\"alt\":\"Indicator Trend W1\",\"width\":\"85%\"}}):_vm._e(),(\n _vm.$store.getters.currentContext.display == 'Panamax'|| \n _vm.$store.getters.currentContext.display == 'Supramax')?_c('img',{attrs:{\"src\":require(\"@/assets/trend_w1_no_label.png\"),\"alt\":\"Indicator Trend W1\",\"width\":\"85%\"}}):_vm._e(),(\n _vm.$store.getters.currentContext.display == 'C10 and C14'|| \n _vm.$store.getters.currentContext.display == 'Capesize'||\n _vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('img',{attrs:{\"src\":require(\"@/assets/trend_w2.png\"),\"alt\":\"Indicator Trend W2\",\"width\":\"85%\"}}):_vm._e(),(\n _vm.$store.getters.currentContext.display == 'Panamax'|| \n _vm.$store.getters.currentContext.display == 'Supramax')?_c('img',{attrs:{\"src\":require(\"@/assets/trend_w2_no_label.png\"),\"alt\":\"Indicator Trend W2\",\"width\":\"85%\"}}):_vm._e()])],1),_c('b-row',{staticClass:\"mt-4\"},[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('p',[_vm._v(\" Users can access additional information regarding an indicator’s historical behavior via the dashboard’s Date Tool. By default, the dashboard will always display the most recent indicators available, the date of which is found in the upper right header. Users have the ability to change the display settings to any date in the past (up to 2017-01-01), however, which will update the dashboard to reflect the data on that date. To do this, users can click on the \\\"Setting\\\" icon next to the present date, which will expand a calendar selection tool as shown below: \")]),(_vm.$store.getters.currentContext.display == 'C10 and C14')?_c('img',{attrs:{\"src\":require(\"@/assets/calendar.png\"),\"alt\":\"Date Pickup\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Capesize')?_c('img',{attrs:{\"src\":require(\"@/assets/calendar_capesize.png\"),\"alt\":\"Date Pickup\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('img',{attrs:{\"src\":require(\"@/assets/calendar_capesize.png\"),\"alt\":\"Date Pickup\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Panamax')?_c('img',{attrs:{\"src\":require(\"@/assets/calendar_panamax.png\"),\"alt\":\"Date Pickup\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Supramax')?_c('img',{attrs:{\"src\":require(\"@/assets/calendar_supramax.png\"),\"alt\":\"Date Pickup\",\"width\":\"100%\"}}):_vm._e()])],1),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"3\"}},[_c('br'),_c('p',[_vm._v(\" By selecting a date in the past the \"),_c('em',[_vm._v(\"Present Indicator\")]),_vm._v(\" dials will also contain another element - the actual realized spot prices relative to the historical indicators. The orange dots and line indicate the realized spot prices and their average, respectively. The numeric average of spot prices is also detailed in the center of the dial \")]),_c('p',[_vm._v(\" This is a visual tool to inspect behavior at discrete points in time, but it is important to remember that any individual day is one sample out of thousands, and model performance should be assessed over the long run in order to draw appropriate conclusions. \")])]),_c('b-col',{attrs:{\"sm\":\"3\"}},[(\n _vm.$store.getters.currentContext.display == 'C10 and C14'||\n _vm.$store.getters.currentContext.display == 'Capesize'||\n _vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('img',{attrs:{\"src\":require(\"@/assets/spot_w2.png\"),\"alt\":\"Spot Prices\",\"width\":\"90%\"}}):(\n _vm.$store.getters.currentContext.display == 'Panamax'||\n _vm.$store.getters.currentContext.display == 'Supramax')?_c('img',{attrs:{\"src\":require(\"@/assets/spot_w2_no_label.png\"),\"alt\":\"Spot Prices\",\"width\":\"90%\"}}):_vm._e()])],1),_c('b-row',{attrs:{\"id\":\"feature\"}},[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('h4',[_vm._v(\"Feature Importance Data\")]),_c('p',[_vm._v(\" The second section of the dashboard - Feature Importance Data - contains donut charts (one per target) highlighting the distribution of high-level feature categories that are most relevant in the indicator over time. \")]),_c('p',[_vm._v(\" The feature categories consist of: \"),_c('br'),_c('br'),_c('ol',[(_vm.$store.getters.currentContext.display == 'C10 and C14')?_c('li',[_c('big',[_c('b',[_vm._v(\"Target\")])]),_vm._v(\" - technical / statistical properties related to the target's (e.g. C10, C14) price history \")],1):(_vm.$store.getters.currentContext.display == 'Capesize')?_c('li',[_c('big',[_c('b',[_vm._v(\"Target\")])]),_vm._v(\" - technical / statistical properties related to the target's (e.g. C10, C14, C5TC) price history \")],1):(_vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('li',[_c('big',[_c('b',[_vm._v(\"Target\")])]),_vm._v(\" - technical / statistical properties related to the target's (e.g. C5TC, P5TC) price history \")],1):(_vm.$store.getters.currentContext.display == 'Panamax')?_c('li',[_c('big',[_c('b',[_vm._v(\"Target\")])]),_vm._v(\" - technical / statistical properties related to the target's (e.g. P1A, P3A, P5TC) price history \")],1):(_vm.$store.getters.currentContext.display == 'Supramax')?_c('li',[_c('big',[_c('b',[_vm._v(\"Target\")])]),_vm._v(\" - technical / statistical properties related to the target's (e.g. S2, S8, S10TC) price history \")],1):_vm._e(),_c('li',[_c('big',[_c('b',[_vm._v(\"Baltic Indices\")])]),_vm._v(\" - various composite / individual route prices across different segment vessels (Capesize, Panamax, etc) \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Baltic Futures\")])]),_vm._v(\" - various composite / individual route futures prices across different vessel segments and time horizons \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Commodity Futures\")])]),_vm._v(\" - raw materials, metals, energy, agriculture and additional commodity futures across time horizons \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Other\")])]),_vm._v(\" - engineered / aggregated vessel data \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Equities / ETFs\")])]),_vm._v(\" - equities and ETFs in related upstream industries \")],1)])]),(_vm.$store.getters.currentContext.display == 'C10 and C14')?_c('p',[_vm._v(\" Below is an example of feature importance pie charts for C10 weeks one and two: \")]):(_vm.$store.getters.currentContext.display == 'Capesize')?_c('p',[_vm._v(\" Below is an example of feature importance pie charts for weeks one and two: \")]):(_vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('p',[_vm._v(\" Below is an example of feature importance pie charts for weeks one and two: \")]):(_vm.$store.getters.currentContext.display == 'Panamax')?_c('p',[_vm._v(\" Below is an example of feature importance pie charts for weeks one and two: \")]):(_vm.$store.getters.currentContext.display == 'Supramax')?_c('p',[_vm._v(\" Below is an example of feature importance pie charts for weeks one and two: \")]):_vm._e(),(_vm.$store.getters.currentContext.display == 'C10 and C14')?_c('img',{attrs:{\"src\":require(\"@/assets/feature_importance.png\"),\"alt\":\"Feature Importance\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Capesize')?_c('img',{attrs:{\"src\":require(\"@/assets/feature_importance_capesize.png\"),\"alt\":\"Feature Importance\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('img',{attrs:{\"src\":require(\"@/assets/feature_importance_capesize.png\"),\"alt\":\"Feature Importance\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Panamax')?_c('img',{attrs:{\"src\":require(\"@/assets/feature_importance_panamax.png\"),\"alt\":\"Feature Importance\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Supramax')?_c('img',{attrs:{\"src\":require(\"@/assets/feature_importance_supramax.png\"),\"alt\":\"Feature Importance\",\"width\":\"100%\"}}):_vm._e(),_c('p',[_vm._v(\" It is important to note that within each category, hundreds of features are represented, including not only the raw feature itself (e.g. C10 spot price) but various transformations of the raw feature as well (e.g. technical analyses (moving average spreads), statistical analyses (decompositions), etc). \")]),_c('p',[_vm._v(\" Additionally, not all features in a category will affect the prediction in the same direction, and in many cases features within a category will have different coefficient signs (i.e. negative vs positive correlations). Therefore, it should not be interpreted, for example, that if a model that relies heavily on baltic futures this means that baltic futures and indicators are heavily correlated in one direction - this is not the case. \")]),_c('p',[_vm._v(\" A more appropriate interpretation of the feature importance chart, for example, is to use it to assess market conditions that may be outside the predictive model's scope. For instance, if there is an event unfolding in the market that falls within the categories defined, the indicators should be met with more assurance as the model has likely experienced / accounted for such relationships in the past, whereas events that happen outside the categories that are defined should be met with more caution. \")])])],1),_c('b-row',{attrs:{\"id\":\"performance\"}},[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('h4',[_vm._v(\"Model Performance Data\")]),_c('p',[_vm._v(\" The third section of the dashboard - Model Performance Data - contains three measures that assess different aspects of the predictive model's performance; these include: \"),_c('br'),_c('br'),_c('ol',[_c('li',[_c('big',[_c('b',[_vm._v(\"Directional Accuracy\")])]),_vm._v(\" - represents whether the model correctly indicates the average spot price per week up / down relative to average price of current week (i.e. is it getting direction right?) \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Indicator Accuracy\")])]),_vm._v(\" - represents the error between the indicated average spot price per week versus the actual average spot price per week (i.e. is the indicator error low?) \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Range Accuracy\")])]),_vm._v(\" - represents the alignment between the range targets (50 and 70%), and the proportion of actual individual spot prices that fell within the predicted range(s) for the target week (i.e. is the indicated range appropriate?) \")],1)])]),_c('p',[_vm._v(\" The performance measures are expressed in two variations - relative and absolute - and rely on recent performance windows of either six or twelve months. \")]),_c('p',[_vm._v(\" The relative performance measures represent the percentile rank of the model’s recent performance relative to its total historical performance (2018-01 to present). In this way, we are making the interpretation of each metric standardized across targets and weeks as follows: \"),_c('br'),_c('br'),_c('ul',[_c('li',[_c('b',[_vm._v(\"0%\")]),_vm._v(\" = model is currently performing at its worst level ever regarding the metric in question \")]),_c('li',[_c('b',[_vm._v(\"50%\")]),_vm._v(\" = model is currently performing at its average level regarding the metric in question \")]),_c('li',[_c('b',[_vm._v(\"100%\")]),_vm._v(\" = model is currently performing at its best level ever regarding the metric in question \")])])]),_c('p',[_vm._v(\" The relative performance dials identify (in red) when a metric is below 20% (i.e. model is currently performing at the lower end of its usual performance), and the following \\\"rule of thumb\\\" interpretations should be used to assess comprehensive model performance: \"),_c('br'),_c('br'),_c('ul',[_c('li',[_c('b',[_vm._v(\"All metrics above 20%\")]),_vm._v(\" = model behaving as expected \")]),_c('li',[_c('b',[_vm._v(\"1 metric below 20%\")]),_vm._v(\" = model may be starting to exhibit lower performance, but still valid \")]),_c('li',[_c('b',[_vm._v(\"2 metrics below 20%\")]),_vm._v(\" = model is starting to exhibit lower performance, use more caution in model outputs \")]),_c('li',[_c('b',[_vm._v(\"3 metrics below 20%\")]),_vm._v(\" = model is exhibiting lower performance than usual, worth a deeper investigation into model behavior, use caution \")])])]),_c('p',[_vm._v(\" The absolute performance measures represent the nominal value of the various metrics in order to assist in more direct interpretation and relate relative performance figures towards. In this view of model performance, the interpretation of each metric is as follows: \"),_c('br'),_c('br'),_c('ul',[_c('li',[_c('b',[_vm._v(\"Directional Accuracy\")]),_vm._v(\" = average directional accuracy \")]),_c('li',[_c('b',[_vm._v(\"Indicator Accuracy\")]),_vm._v(\" = 1 - median absolute percentage error (MedAPE) \")]),_c('li',[_c('b',[_vm._v(\"Range Accuracy\")]),_vm._v(\" = 1 - abs(average difference between the target confidence interval (i.e. 50%) and percentage of actual values captured) \")])])]),_c('p',[_vm._v(\" Therefore, similar to relative performance metrics, the absolute metrics have been structured so that the greater the nominal value the better the model performance. \")]),_c('p',[_vm._v(\" Below is an example of how the performance dials may be represented in the dashboard. Each circle represents a performance metric corresponding to the legend on top. The largest number within the circle is an average of the three performance metrics, with each individual performance metric listed below. \")]),(_vm.$store.getters.currentContext.display == 'C10 and C14')?_c('img',{attrs:{\"src\":require(\"@/assets/model_performance.png\"),\"alt\":\"Model Performance\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Capesize')?_c('img',{attrs:{\"src\":require(\"@/assets/model_performance_capesize.png\"),\"alt\":\"Model Performance\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'C5TC and P5TC')?_c('img',{attrs:{\"src\":require(\"@/assets/model_performance_capesize.png\"),\"alt\":\"Model Performance\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Panamax')?_c('img',{attrs:{\"src\":require(\"@/assets/model_performance_panamax.png\"),\"alt\":\"Model Performance\",\"width\":\"100%\"}}):(_vm.$store.getters.currentContext.display == 'Supramax')?_c('img',{attrs:{\"src\":require(\"@/assets/model_performance_supramax.png\"),\"alt\":\"Model Performance\",\"width\":\"100%\"}}):_vm._e()])],1),_c('b-row',{attrs:{\"id\":\"review\"}},[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('h4',[_vm._v(\"Review\")]),(_vm.$store.getters.currentContext.display == 'C10 and C14')?_c('p',[_vm._v(\" The dashboard contains information related to the indicators for routes C14 and C10 one to two weeks forward. \")]):(_vm.$store.getters.currentContext.display == 'Capesize')?_c('p',[_vm._v(\" The dashboard contains information related to the indicators for routes C14, C10 and the Capesize composite index one to two weeks forward. \")]):(_vm.$store.getters.currentContext.display == 'C5TC and P5TC market indicators')?_c('p',[_vm._v(\" The dashboard contains information related to the indicators for the Capesize composite index and Panamax composite index one to two weeks forward. \")]):(_vm.$store.getters.currentContext.display == 'Panamax')?_c('p',[_vm._v(\" The dashboard contains information related to the indicators for routes P1A, P3A and the Panamax composite index one to two weeks forward. \")]):(_vm.$store.getters.currentContext.display == 'Supramax')?_c('p',[_vm._v(\" The dashboard contains information related to the indicators for routes S2, S8, and the Supramax composite index one to two weeks forward. \")]):_vm._e(),_c('p',[_vm._v(\" The main commercial element of the dashboard is the indicator visual itself, however, this is supported with contextual model information related to the model's underlying features and its recent performance. \")]),_c('p',[_vm._v(\" The dashboard is most useful when employed consistently as an input into decision processes with the understanding that while short term performance may fluctuate, the models deliver consistent forward-looking commercial insights / advantages over the long run - selective use of the dashboard may reduce / eliminate such advantages. \")])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./Documentation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./Documentation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./Documentation.vue?vue&type=template&id=7b67bcbd&\"\nimport script from \"./Documentation.vue?vue&type=script&lang=js&\"\nexport * from \"./Documentation.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('h4',[_vm._v(\"Dashboard Overview\")]),_c('p',[_vm._v(\" TBI has developed predictive models to forecast key physical routes and FFA markets in order to assist trading operations and strategies. TBI has also created a new interactive dashboard to display such forecast data, as well as additional data related to the predictive models themselves.\"),_c('br'),_c('br'),_vm._v(\" The dashboard consists of three main sections that are supported by four main graphical elements. The three sections include: \"),_c('ol',[_c('li',[_c('big',[_c('b',[_vm._v(\"Dashboard \"),_c('small',[_vm._v(\"(Homepage)\")])])]),_vm._v(\" - displays data related to present forecasts for all routes and FFA markets \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"AIS\")])]),_vm._v(\" - displays time series data related to AIS features for both Panamax and Capesize vessels \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Forecast Pages \"),_c('small',[_vm._v(\"(8 in total, e.g. P1A W4-6)\")])])]),_vm._v(\" - displays data per market related to present and past forecasts, summarizes underlying drivers of forecasts, and details the predictive model's recent performance \")],1)]),_c('br'),_c('img',{attrs:{\"src\":require(\"@/assets/viterra_dashboard.png\"),\"alt\":\"Dashboard (Homepage)\",\"width\":\"100%\"}}),_c('br'),_c('br'),_c('img',{attrs:{\"src\":require(\"@/assets/viterra_ais.png\"),\"alt\":\"AIS\",\"width\":\"100%\"}}),_c('br'),_c('br'),_c('img',{attrs:{\"src\":require(\"@/assets/viterra_forecast.png\"),\"alt\":\"Forecast Page\",\"width\":\"100%\"}}),_c('br'),_c('br'),_c('br'),_vm._v(\" These three sections are supported by the following four graphical elements: \"),_c('br'),_c('br'),_c('ol',[_c('li',[_c('b',[_vm._v(\"Forecast Dials\")]),_vm._v(\" - displays data related to present and past forecasts \")]),_c('li',[_c('b',[_vm._v(\"Feature Importance Charts\")]),_vm._v(\" - summarizes the underlying inputs driving the forecast \")]),_c('li',[_c('b',[_vm._v(\"Model Performance Dials\")]),_vm._v(\" - details the predictive model's recent performance \")]),_c('li',[_c('b',[_vm._v(\"AIS Charts\")]),_vm._v(\" - time series data related to AIS features, including standardized and seasonal features \")])]),_c('br'),_vm._v(\" The following provides a detailed overview of the dashboard, and the interpretations associated with its different elements. \")]),_c('h4',[_vm._v(\"Forecast Dials\")]),_c('p',[_vm._v(\" The main element of the dashboard - Forecast Dials - contain current and previous forecast data within the context of underlying market conditions. There are two main graphics (only one on Dashboard Homepage), which are accessed via the button on the top left of the Forecast Page: \"),_c('br'),_c('br'),_c('ul',[_c('li',[_c('big',[_c('em',[_vm._v(\"Present Forecast Dials\")])])],1),_c('li',[_c('big',[_c('em',[_vm._v(\"Previous 3 Day Forecast Dials\")])])],1)]),_c('img',{attrs:{\"src\":require(\"@/assets/viterra_forecast_data.png\"),\"alt\":\"Forecast Data\",\"width\":\"100%\"}})])])],1),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"3\"}},[_vm._v(\" The \"),_c('big',[_c('em',[_vm._v(\"Present Forecast\")])]),_vm._v(\" dial contains three main elements: \"),_c('br'),_c('br'),_c('ol',[_c('li',[_c('big',[_c('b',[_vm._v(\"Forecast Ranges\")])]),_vm._v(\" - indicate the forecasted range of prices within the target week \"),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" 50% Range = dark blue shade within exterior circle; numeric range detailed in center of dial \")]),_c('li',[_vm._v(\" 70% Range = light blue shade within exterior circle \")]),_c('li',[_vm._v(\" The forecasted range on average should capture 50, 70% of prices within the target week \")])])],1),_c('br'),_c('li',[_c('big',[_c('b',[_vm._v(\"Forecast Average and Direction\")])]),_vm._v(\" - indicate the forecasted average price of the target week and its direction from current price. \"),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" Forecast Average - green / red arrow between exterior and interior circles \")]),_c('li',[_vm._v(\" Direction - indicated by a) color of average forecast arrow (green = up, red = down), and b) arrow direction / color in the center of dial \")])])],1),_c('br'),_c('li',[_c('big',[_c('b',[_vm._v(\"Current Price\")])]),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" Black line within the interior circle; numerically detailed in center of dial \")]),_c('li',[_vm._v(\" Represents trailing average weekly index / FFA roll value \")])])],1)])],1),_c('b-col',{attrs:{\"sm\":\"3\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/viterra_forecast_detail_1.png\"),\"alt\":\"Forecast Detail 1\",\"width\":\"80%\"}}),_c('img',{attrs:{\"src\":require(\"@/assets/viterra_forecast_detail_2.png\"),\"alt\":\"Forecast Detail 2\",\"width\":\"80%\"}})])],1),_c('b-row',{staticClass:\"mt-4\"},[_c('b-col',{attrs:{\"sm\":\"3\"}},[_vm._v(\" The \"),_c('big',[_c('em',[_vm._v(\"Previous 3 Day Forecast Dial\")])]),_vm._v(\" contains three main elements as well: \"),_c('br'),_c('br'),_c('ol',[_c('li',[_c('big',[_c('b',[_vm._v(\"Current Forecast Range and Cuurent Price\")])]),_vm._v(\" - exterior circle \"),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" Current Forecast Range - dark, light blue shades (50, 70%) within exterior circle \")]),_c('li',[_vm._v(\" Current Price - black line within exterior circle \")])])],1),_c('br'),_c('li',[_c('big',[_c('b',[_vm._v(\"Previous Forecast Ranges and Previous Prices\")])]),_vm._v(\" - three interior circles corresponding to previous three days \"),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" Ordered from most recent (outside) to least recent (inside) \")]),_c('li',[_vm._v(\" Previous Forecast Ranges - dark, light blue shades (50, 70%) within interior circles \")]),_c('li',[_vm._v(\" Previous Prices - black line within interior circles \")])])],1),_c('br'),_c('li',[_c('big',[_c('b',[_vm._v(\"Forecast Trend\")])]),_vm._v(\" - directional change in current forecast relative to three days prior \"),_c('ol',{attrs:{\"type\":\"a\"}},[_c('li',[_vm._v(\" Directional change is measured on the basis of the forecasted average price; green = forecast trending up, red = forecast trending down \")])])],1)])],1),_c('b-col',{attrs:{\"sm\":\"3\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/viterra_forecast_trend_1.png\"),\"alt\":\"Forecast Trend 1\",\"width\":\"85%\"}}),_c('img',{attrs:{\"src\":require(\"@/assets/viterra_forecast_trend_2.png\"),\"alt\":\"Forecast Trend 2\",\"width\":\"85%\"}})])],1),_c('b-row',{staticClass:\"mt-4\"},[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('p',[_vm._v(\" Users can access additional information regarding a forecast’s historical behavior via the dashboard’s Date Tool. By default, the dashboard will always display the most recent forecasts available, the date of which is found in the upper right header. Users have the ability to change the display settings to any date in the past (up to 2017-01-01), however, which will update the dashboard to reflect the data on that date. To do this, users can click on the \\\"Setting\\\" icon next to the present date, which will expand a calendar selection tool as shown below: \")]),_c('img',{attrs:{\"src\":require(\"@/assets/viterra_date_selection.png\"),\"alt\":\"Date Pickup\",\"width\":\"100%\"}})])],1),_c('b-row',[_c('b-col',{attrs:{\"sm\":\"3\"}},[_c('br'),_c('p',[_vm._v(\" By selecting a date in the past the \"),_c('em',[_vm._v(\"Present Forecast\")]),_vm._v(\" dials will also contain another element - the actual realized prices relative to the historical forecasts. The orange dots and line indicate the realized prices and their average, respectively. The numeric average of prices is also detailed in the center of the dial \")]),_c('p',[_vm._v(\" This is a visual tool to inspect behavior at discrete points in time, but it is important to remember that any individual day is one sample out of thousands, and model performance should be assessed over the long run in order to draw appropriate conclusions. \")])]),_c('b-col',{attrs:{\"sm\":\"3\"}},[_c('img',{attrs:{\"src\":require(\"@/assets/viterra_prices.png\"),\"alt\":\"Prices\",\"width\":\"90%\"}})])],1),_c('b-row',{staticClass:\"mt-4\",attrs:{\"id\":\"feature\"}},[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('h4',[_vm._v(\"Feature Importance Charts\")]),_c('p',[_vm._v(\" The second main element of the dashboard - Feature Importance Charts - contains donut charts (one per target) highlighting the distribution of high-level feature categories that are most relevant in the predictive model's forecast over time. \")]),_c('p',[_vm._v(\" The feature categories consist of: \"),_c('br'),_c('br'),_c('ol',[_c('li',[_c('big',[_c('b',[_vm._v(\"Target\")])]),_vm._v(\" - technical / statistical properties related to the target's (e.g. P1A W4, P6 W6) price history \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Baltic Indices\")])]),_vm._v(\" - various composite / individual route prices across different segment vessels (Capesize, Panamax, etc) \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Baltic Futures\")])]),_vm._v(\" - various composite / individual route futures prices across different vessel segments and time horizons \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"AIS\")])]),_vm._v(\" - engineered / aggregated vessel data \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Metals / Materials\")])]),_vm._v(\" - futures and / or ETFs related to metals and materials commodities \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Energy\")])]),_vm._v(\" - futures and / or ETFs related to energy commodities \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Agriculture\")])]),_vm._v(\" - futures and / or ETFs related to agricultural commodities \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Global Macro\")])]),_vm._v(\" - global macro indices, bond markets, treasury notes, etc \")],1)])]),_c('p',[_vm._v(\" Below is an example of feature importance donut charts for P2A W4-6 \")]),_c('img',{attrs:{\"src\":require(\"@/assets/viterra_feature_importance.png\"),\"alt\":\"Feature Importance\",\"width\":\"100%\"}}),_c('p',[_vm._v(\" It is important to note that within each category, hundreds of features are represented, including not only the raw feature itself (e.g. Copper M1 future price) but various transformations of the raw feature as well (e.g. technical analyses (moving average spreads), statistical analyses (decompositions), etc). \")]),_c('p',[_vm._v(\" Additionally, not all features in a category will affect the prediction in the same direction, and in many cases features within a category will have different coefficient signs (i.e. negative vs positive correlations). Therefore, it should not be interpreted, for example, that if a model that relies heavily on baltic futures this means that baltic futures and forecasts are heavily correlated in one direction - this is not the case. \")]),_c('p',[_vm._v(\" A more appropriate interpretation of the feature importance chart, for example, is to use it to assess market conditions that may be outside the predictive model's scope. For instance, if there is an event unfolding in the market that falls within the categories defined, the forecasts should be met with more assurance as the model has likely experienced / accounted for such relationships in the past, whereas events that happen outside the categories that are defined should be met with more caution. \")])])],1),_c('b-row',{staticClass:\"mt-4\",attrs:{\"id\":\"performance\"}},[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('h4',[_vm._v(\"Model Performance Dials\")]),_c('p',[_vm._v(\" The third main element of the dashboard - Model Performance Dials - contains three measures that assess different aspects of the predictive model's performance; these include: \"),_c('br'),_c('br'),_c('ol',[_c('li',[_c('big',[_c('b',[_vm._v(\"Directional Accuracy\")])]),_vm._v(\" - represents whether the model correctly forecasted the average spot price per week up / down relative to average price of current week (i.e. is it getting direction right?) \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Forecast Accuracy\")])]),_vm._v(\" - represents the error between the forecasted average spot price per week versus the actual average spot price per week (i.e. is the forecast error low?) \")],1),_c('li',[_c('big',[_c('b',[_vm._v(\"Range Accuracy\")])]),_vm._v(\" - represents the alignment between the range targets (50 and 70%), and the proportion of actual individual spot prices that fell within the predicted range(s) for the target week (i.e. is the forecasted range appropriate?) \")],1)])]),_c('p',[_vm._v(\" The performance measures are expressed in two variations - \"),_c('b',[_c('em',[_vm._v(\"relative\")])]),_vm._v(\" and \"),_c('b',[_c('em',[_vm._v(\"absolute\")])]),_vm._v(\" - and rely on recent performance windows of either \"),_c('b',[_c('em',[_vm._v(\"six\")])]),_vm._v(\" or \"),_c('b',[_c('em',[_vm._v(\"twelve\")])]),_vm._v(\" months. \")]),_c('p',[_vm._v(\" The relative performance measures represent the percentile rank of the model’s recent performance relative to its total historical performance (2017-06 to present). In this way, we are making the interpretation of each metric standardized across targets as follows: \"),_c('br'),_c('br'),_c('ul',[_c('li',[_vm._v(\" 0% = model is currently performing at its worst level ever regarding the metric in question \")]),_c('li',[_vm._v(\" 50% = model is currently performing at its average level regarding the metric in question \")]),_c('li',[_vm._v(\" 100% = model is currently performing at its best level ever regarding the metric in question \")])])]),_c('p',[_vm._v(\" The relative performance dials identify (in red) when a metric is below 20% (i.e. model is currently performing at the lower end of its usual performance), and the following \\\"rule of thumb\\\" interpretations should be used to assess comprehensive model performance: \"),_c('br'),_c('br'),_c('ul',[_c('li',[_vm._v(\" All metrics above 20% = model behaving as expected \")]),_c('li',[_vm._v(\" 1 metric below 20% = model may be starting to exhibit lower performance, but still valid \")]),_c('li',[_vm._v(\" 2 metrics below 20% = model is starting to exhibit lower performance, use more caution in model outputs \")]),_c('li',[_vm._v(\" 3 metrics below 20% = model is exhibiting lower performance than usual, worth a deeper investigation into model behavior, use caution \")])])]),_c('p',[_vm._v(\" The absolute performance measures represent the nominal value of the various metrics in order to provide a discernible benchmark to relate relative performance figures towards. In this view of model performance the interpretation of each metric is as follows: \"),_c('br'),_c('br'),_c('ul',[_c('li',[_vm._v(\" Directional Accuracy = average directional accuracy \")]),_c('li',[_vm._v(\" Forecast Accuracy = 1 - median absolute percentage error (MedAPE) \")]),_c('li',[_vm._v(\" Range Accuracy = 1 - abs(difference between the target confidence interval (i.e. 50%) and percentage of actual values captured) \")])]),_vm._v(\" Therefore, similar to relative accuracy, in the absolute variation, the greater the metric the better the model performance. \")]),_c('p',[_vm._v(\" Below is an example of how the performance dials may be represented in the dashboard. Each circle represents a performance metric corresponding to the legend on top. The largest number within the circle is an average of the three performance metrics, with each individual performance metric listed below. \")]),_c('img',{attrs:{\"src\":require(\"@/assets/viterra_model_performance.png\"),\"alt\":\"Model Performance\",\"width\":\"100%\"}})])],1),_c('b-row',{staticClass:\"mt-4\",attrs:{\"id\":\"ais\"}},[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('h4',[_vm._v(\"AIS Charts\")]),_c('p',[_vm._v(\" The fourth main element of the dashboard - AIS Charts - contains various user options to produce time series visualizations for Panamax and Capesize AIS features based on vessel size, condition, and global location. The main types of AIS features include: \"),_c('br'),_c('br'),_c('ul',[_c('li',[_c('b',[_vm._v(\"Vessel Count\")]),_vm._v(\" - aggregated count of vessels of selected vessel size, condition, and location \")]),_c('li',[_c('b',[_vm._v(\"Avg Speed\")]),_vm._v(\" - average speed of vessels of selected vessel size, condition, and location \")]),_c('li',[_c('b',[_vm._v(\"DWT\")]),_vm._v(\" - aggregated deadweight sum of vessels of selected vessel size, condition, and location \")]),_c('li',[_c('b',[_vm._v(\"Std. Score of DWT\")]),_vm._v(\" - rolling 12 month z-score of aggregated deadweight sum of vessels of selected vessel size, condition, and location \")]),_c('li',[_c('b',[_vm._v(\"Std. Score of Seasonal DWT\")]),_vm._v(\" - rolling four year z-score by quarter of aggregated deadweight sum of vessels of selected vessel size, condition, and location \")])]),_vm._v(\" Users have the ability to select multiple AIS feature charts to view at once, as demonstrated in the example below. \")]),_c('img',{attrs:{\"src\":require(\"@/assets/viterra_ais_2.png\"),\"alt\":\"AIS Charts\",\"width\":\"100%\"}})])],1),_c('b-row',{staticClass:\"mt-4\",attrs:{\"id\":\"review\"}},[_c('b-col',{attrs:{\"sm\":\"6\"}},[_c('h4',[_vm._v(\"Review\")]),_c('p',[_vm._v(\" The dashboard contains information related to the predictive models forecasting forecast key physical routes and FFA markets. \")]),_c('p',[_vm._v(\" The main commercial elements of the dashboard are the forecast dials, however, such forecasts are supported with contextual model information related to the model's underlying features and its recent performance. In addition, AIS feature visualizations provide more market context. \")]),_c('p',[_vm._v(\" The dashboard is most useful when employed consistently as an input into decision processes with the understanding that while short term performance may fluctuate, the models deliver consistent forward-looking commercial insights / advantages over the long run - selective use of the dashboard may reduce / eliminate such advantages. \")])])],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./ForecastsDocumentation.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./ForecastsDocumentation.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./ForecastsDocumentation.vue?vue&type=template&id=3a6c0c2c&\"\nimport script from \"./ForecastsDocumentation.vue?vue&type=script&lang=js&\"\nexport * from \"./ForecastsDocumentation.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('h3',[_vm._v(\"AIS\")])]),_c('b-row',[_c('b-col',[_c('h5',[_vm._v(\"Vessel Types\")]),_c('b-form-group',{attrs:{\"label\":\"Panamax\"}},[_c('b-form-checkbox-group',{attrs:{\"id\":\"btn-panamax\",\"options\":_vm.panamaxOptions,\"name\":\"panamax-vessels\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"buttons\":\"\"},model:{value:(_vm.panamax),callback:function ($$v) {_vm.panamax=$$v},expression:\"panamax\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Capesize\"}},[_c('b-form-checkbox-group',{attrs:{\"id\":\"btn-capesize\",\"options\":_vm.capesizeOptions,\"name\":\"capesize-vessels\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"buttons\":\"\"},model:{value:(_vm.capesize),callback:function ($$v) {_vm.capesize=$$v},expression:\"capesize\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Supramax\"}},[_c('b-form-checkbox-group',{attrs:{\"id\":\"btn-supramax\",\"options\":_vm.supramaxOptions,\"name\":\"supramax-vessels\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"buttons\":\"\"},model:{value:(_vm.supramax),callback:function ($$v) {_vm.supramax=$$v},expression:\"supramax\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Handymax\"}},[_c('b-form-checkbox-group',{attrs:{\"id\":\"btn-handymax\",\"options\":_vm.handymaxOptions,\"name\":\"handymax-vessels\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"buttons\":\"\"},model:{value:(_vm.handymax),callback:function ($$v) {_vm.handymax=$$v},expression:\"handymax\"}})],1),_c('h5',[_vm._v(\"Condition\")]),_c('b-form-group',{attrs:{\"label\":\"\"}},[_c('b-form-checkbox-group',{attrs:{\"id\":\"btn-condition\",\"options\":_vm.conditionOptions,\"name\":\"conditions\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"buttons\":\"\"},model:{value:(_vm.conditions),callback:function ($$v) {_vm.conditions=$$v},expression:\"conditions\"}})],1),_c('h5',[_vm._v(\"Plots\")]),_c('b-form-group',{attrs:{\"label\":\"\"}},[_c('b-form-checkbox-group',{attrs:{\"id\":\"btn-plots\",\"options\":_vm.plotOptions,\"name\":\"plots\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"buttons\":\"\"},model:{value:(_vm.plots),callback:function ($$v) {_vm.plots=$$v},expression:\"plots\"}})],1),_c('h5',[_vm._v(\"Regions\")]),_c('div',[_c('b-form-checkbox-group',{attrs:{\"id\":\"btn-region\",\"options\":_vm.regionOptions,\"name\":\"regions\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"switches\":\"\"},model:{value:(_vm.regions),callback:function ($$v) {_vm.regions=$$v},expression:\"regions\"}})],1)],1),_c('b-col',{attrs:{\"sm\":\"8\"}},[_c('Plotly',{staticStyle:{\"height\":\"800px\"},attrs:{\"data\":_vm.aisPlot,\"layout\":_vm.aisPlotLayout,\"displaylogo\":false,\"responsive\":true}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./OceanboltAIS.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./OceanboltAIS.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OceanboltAIS.vue?vue&type=template&id=55acfc27&\"\nimport script from \"./OceanboltAIS.vue?vue&type=script&lang=js&\"\nexport * from \"./OceanboltAIS.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('b-container',{attrs:{\"fluid\":\"\"}},[_c('b-row',[_c('h3',[_vm._v(\"AIS Positions\")])]),_c('b-row',[_c('b-col',[_c('h5',[_vm._v(\"Vessel Types\")]),_c('b-form-group',{attrs:{\"label\":\"Supramax\"}},[_c('b-form-radio-group',{attrs:{\"id\":\"btn-supramax\",\"options\":_vm.supramaxOptions,\"name\":\"supramax-vessels\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"buttons\":\"\"},model:{value:(_vm.supramax),callback:function ($$v) {_vm.supramax=$$v},expression:\"supramax\"}})],1),_c('b-form-group',{attrs:{\"label\":\"Handysize\"}},[_c('b-form-radio-group',{attrs:{\"id\":\"btn-handysize\",\"options\":_vm.handysizeOptions,\"name\":\"handysize-vessels\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"buttons\":\"\"},model:{value:(_vm.handysize),callback:function ($$v) {_vm.handysize=$$v},expression:\"handysize\"}})],1),_c('h5',[_vm._v(\"Condition\")]),_c('b-form-group',{attrs:{\"label\":\"\"}},[_c('b-form-checkbox-group',{attrs:{\"id\":\"btn-condition\",\"options\":_vm.conditionOptions,\"name\":\"conditions\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"buttons\":\"\"},model:{value:(_vm.conditions),callback:function ($$v) {_vm.conditions=$$v},expression:\"conditions\"}})],1),_c('h5',[_vm._v(\"Plots\")]),_c('b-form-group',{attrs:{\"label\":\"\"}},[_c('b-form-checkbox-group',{attrs:{\"id\":\"btn-plots\",\"options\":_vm.plotOptions,\"name\":\"plots\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"buttons\":\"\"},model:{value:(_vm.plots),callback:function ($$v) {_vm.plots=$$v},expression:\"plots\"}})],1),_c('h5',[_vm._v(\"Regions\")]),_c('div',[_c('b-form-checkbox-group',{attrs:{\"id\":\"btn-region\",\"options\":_vm.regionOptions,\"name\":\"regions\",\"button-variant\":\"outline-primary\",\"size\":\"sm\",\"switches\":\"\"},model:{value:(_vm.regions),callback:function ($$v) {_vm.regions=$$v},expression:\"regions\"}})],1)],1),_c('b-col',{attrs:{\"sm\":\"8\"}},[_c('Plotly',{staticStyle:{\"height\":\"800px\"},attrs:{\"data\":_vm.aisPlot,\"layout\":_vm.aisPlotLayout,\"displaylogo\":false,\"responsive\":true}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n","import mod from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./OceanboltAISSupraHandy.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/thread-loader/dist/cjs.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/babel-loader/lib/index.js!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/cache-loader/dist/cjs.js??ref--1-0!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/index.js??vue-loader-options!./OceanboltAISSupraHandy.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./OceanboltAISSupraHandy.vue?vue&type=template&id=b1334da8&\"\nimport script from \"./OceanboltAISSupraHandy.vue?vue&type=script&lang=js&\"\nexport * from \"./OceanboltAISSupraHandy.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../../../nix/store/q9zrviqlhrcmxpr7pgycazx4jxisfrx7-dashboard-modules-0.1.0/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import Vue from 'vue'\nimport VueRouter from 'vue-router'\nimport { authGuard } from \"../auth\";\nimport { wrap, wrapPositions, wrapOceanBoltAIS } from '@/helpers/RemoteData'\nimport Dashboard from '@/views/Dashboard.vue'\nimport Positions from '@/views/Positions.vue'\nimport Commodity from '@/views/Commodity.vue'\nimport ViterraForecasts from '@/views/ViterraForecasts.vue'\nimport Documentation from '@/views/Documentation.vue'\nimport ForecastsDocumentation from '@/views/ForecastsDocumentation.vue'\nimport OceanboltAIS from '@/views/OceanboltAIS.vue'\nimport OceanboltAISSupraHandy from '@/views/OceanboltAISSupraHandy.vue'\n\nVue.use(VueRouter)\n\n\nconst routes = [\n {\n path: '/',\n component: wrap(Dashboard),\n props: true,\n beforeEnter: authGuard\n },\n {\n path: '/forecasts-documentation',\n component: ForecastsDocumentation,\n props: true,\n beforeEnter: authGuard\n },\n {\n path: '/documentation',\n component: Documentation,\n props: true,\n beforeEnter: authGuard\n },\n {\n path: '/ais',\n component: wrapOceanBoltAIS(OceanboltAIS),\n props: true,\n beforeEnter: authGuard\n },\n {\n path: '/aissuprahandy',\n component: wrapOceanBoltAIS(OceanboltAISSupraHandy),\n props: true,\n beforeEnter: authGuard\n },\n {\n path: '/positions',\n component: wrapPositions(Positions),\n props: true,\n beforeEnter: authGuard\n },\n {\n path: '/forecasts/:slug',\n component: wrap(ViterraForecasts),\n props: true,\n beforeEnter: authGuard\n },\n {\n path: '/:name',\n component: wrap(Commodity),\n props: true,\n beforeEnter: authGuard\n },\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes\n})\n\nexport default router\n","/* eslint-disable no-console */\n\nimport { register } from 'register-service-worker'\n\nif (process.env.NODE_ENV === 'production') {\n register(`${process.env.BASE_URL}service-worker.js`, {\n ready () {\n console.log(\n 'App is being served from cache by a service worker.\\n' +\n 'For more details, visit https://goo.gl/AFskqB'\n )\n },\n registered (registration) {\n console.log('Service worker has been registered.')\n setInterval(() => {\n console.log(\"Checking for updates\");\n registration.update();\n }, 1000 * 60 * 60);\n },\n cached () {\n console.log('Content has been cached for offline use.')\n },\n updatefound () {\n console.log('New content is downloading.')\n },\n updated (registration) {\n console.log('New content is available; please refresh.')\n document.dispatchEvent(\n new CustomEvent('swUpdated', { detail: registration })\n );\n },\n offline () {\n console.log('No internet connection found. App is running in offline mode.')\n },\n error (error) {\n console.error('Error during service worker registration:', error)\n }\n })\n}\n"],"sourceRoot":""}