{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/components/LightBox.vue?9f85","webpack:///./src/components/PolyToSVG.vue?c556","webpack:///./node_modules/moment/locale sync ^\\.\\/.*$","webpack:///./src/App.vue","webpack:///./src/components/AnnualRuns.vue","webpack:///./src/components/ToggleButton.vue","webpack:///src/components/ToggleButton.vue","webpack:///./src/components/ToggleButton.vue?ae1e","webpack:///./src/components/ToggleButton.vue?d2c9","webpack:///./src/components/LightBox.vue","webpack:///src/components/LightBox.vue","webpack:///./src/components/LightBox.vue?fabd","webpack:///./src/components/LightBox.vue?f3bb","webpack:///./src/components/PolyToSVG.vue","webpack:///src/components/PolyToSVG.vue","webpack:///./src/components/PolyToSVG.vue?d9d7","webpack:///./src/components/PolyToSVG.vue?768f","webpack:///src/components/AnnualRuns.vue","webpack:///./src/components/AnnualRuns.vue?91c1","webpack:///./src/components/AnnualRuns.vue?ebd5","webpack:///src/App.vue","webpack:///./src/App.vue?03b3","webpack:///./src/App.vue?315a","webpack:///./src/components/vue-masonry-css/vue-masonry.js","webpack:///./src/main.js","webpack:///./src/App.vue?7960","webpack:///./src/assets/images/loading.png","webpack:///./src/components/ToggleButton.vue?2703","webpack:///./src/components/AnnualRuns.vue?cc50"],"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","map","webpackContext","req","id","webpackContextResolve","e","Error","code","keys","resolve","render","_vm","this","_c","_self","attrs","staticRenderFns","staticClass","_m","on","toggleUnits","toggleInfo","_v","_s","stats","runs","_l","timeFilters","years","year","class","selected","$event","toggleFilter","months","month","staticStyle","default","1600","1000","700","400","filteredDays","day","date","run","run_type","directives","rawName","info","expression","moment","start_time_local","format","duration","toLowerCase","units","pace","Number","total_elevation_gain","elevationUnits","toLocaleString","map_polyline","lightboxEffect","index","style","distColour","distance_meters","dist","thumbs","photos","_e","isActive","titleText","checkedValue","disabled","domProps","Array","isArray","_i","$$a","$$el","target","$$c","checked","$$v","$$i","concat","enableText","disabledText","props","type","Boolean","labelEnableText","String","labelTitleText","labelDisableText","defaultState","currentState","watch","computed","set","newValue","$emit","component","highlightPhoto","url","thumbnailsSorted","thumbnail","bg","indexOf","_k","keyCode","close","arguments","stopPropagation","count","currentImage","prev","largeImagesSorted","unique_id","caption","captions","next","thumbnails","required","largeImages","thumbnailsPath","largePath","listCopy","filter","def","defaulPos","default_photo","moveToFront","mounted","$vm","addEventListener","event","defaultPrevented","handled","undefined","preventDefault","methods","curr","document","getElementById","className","arr","new_index","old_index","runid","svgprops","x","y","width","height","path","polyLine","polypoints","polyline","decode","poly_gm2svg","latLng","lat","lng","latLng2point","Math","log","tan","PI","gmPath","fx","point","svgPath","minX","minY","maxX","maxY","min","max","join","BUCKET_COLOURS","MONTHS","components","LightBox","ToggleButton","PolyToSVG","msg","days","mi","km","distMax","distMin","distance","showNoPhoto","d3","domain","range","yIdx","toString","day_has_photos","moy","sort","a","b","created","lu","forEach","sortedYears","mid","idx","resizeHandler","destroyed","removeEventListener","unit","nodefault","runMaptile","start_date","headerHeight","offsetHeight","marginTop","AnnualRuns","componentName","tag","cols","gutter","css","columnTag","columnClass","columnAttr","breakpointValue","mixed","windowWidth","valueAsNum","parseInt","matchedBreakpoint","Infinity","matchedValue","k","breakpoint","breakpointValRaw","breakpointVal","isNaN","isNewBreakpoint","displayColumns","displayGutter","$nextTick","reCalculate","updated","beforeUnmount","previousWindowWidth","innerWidth","_reCalculateColumnCount","_reCalculateGutterSize","newColumns","_getChildItemsInColumnsArray","columns","childItems","$slots","componentOptions","children","visibleItemI","columnIndex","createElement","columnsContainingChildren","isGutterSizeUnitless","gutterSizeWithUnit","columnStyle","boxSizing","backgroundClip","border","borderLeftWidth","containerStyle","display","marginLeft","Plugin","install","Vue","options","installed","use","loadimage","require","errorimage","VueMasonry","VueLazyload","preLoad","error","loading","attempt","h","App","$mount"],"mappings":"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","file":"js/app.e1823447.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\": 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([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightBox.vue?vue&type=style&index=0&id=0fd64430&prod&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PolyToSVG.vue?vue&type=style&index=0&id=4f1ddf80&prod&lang=scss\"","var map = {\n\t\"./af\": \"2bfb\",\n\t\"./af.js\": \"2bfb\",\n\t\"./ar\": \"8e73\",\n\t\"./ar-dz\": \"a356\",\n\t\"./ar-dz.js\": \"a356\",\n\t\"./ar-kw\": \"423e\",\n\t\"./ar-kw.js\": \"423e\",\n\t\"./ar-ly\": \"1cfd\",\n\t\"./ar-ly.js\": \"1cfd\",\n\t\"./ar-ma\": \"0a84\",\n\t\"./ar-ma.js\": \"0a84\",\n\t\"./ar-ps\": \"4c98\",\n\t\"./ar-ps.js\": \"4c98\",\n\t\"./ar-sa\": \"8230\",\n\t\"./ar-sa.js\": \"8230\",\n\t\"./ar-tn\": \"6d83\",\n\t\"./ar-tn.js\": \"6d83\",\n\t\"./ar.js\": \"8e73\",\n\t\"./az\": \"485c\",\n\t\"./az.js\": \"485c\",\n\t\"./be\": \"1fc1\",\n\t\"./be.js\": \"1fc1\",\n\t\"./bg\": \"84aa\",\n\t\"./bg.js\": \"84aa\",\n\t\"./bm\": \"a7fa\",\n\t\"./bm.js\": \"a7fa\",\n\t\"./bn\": \"9043\",\n\t\"./bn-bd\": \"9686\",\n\t\"./bn-bd.js\": \"9686\",\n\t\"./bn.js\": \"9043\",\n\t\"./bo\": \"d26a\",\n\t\"./bo.js\": \"d26a\",\n\t\"./br\": \"6887\",\n\t\"./br.js\": \"6887\",\n\t\"./bs\": \"2554\",\n\t\"./bs.js\": \"2554\",\n\t\"./ca\": \"d716\",\n\t\"./ca.js\": \"d716\",\n\t\"./cs\": \"3c0d\",\n\t\"./cs.js\": \"3c0d\",\n\t\"./cv\": \"03ec\",\n\t\"./cv.js\": \"03ec\",\n\t\"./cy\": \"9797\",\n\t\"./cy.js\": \"9797\",\n\t\"./da\": \"0f14\",\n\t\"./da.js\": \"0f14\",\n\t\"./de\": \"b469\",\n\t\"./de-at\": \"b3eb\",\n\t\"./de-at.js\": \"b3eb\",\n\t\"./de-ch\": \"bb71\",\n\t\"./de-ch.js\": \"bb71\",\n\t\"./de.js\": \"b469\",\n\t\"./dv\": \"598a\",\n\t\"./dv.js\": \"598a\",\n\t\"./el\": \"8d47\",\n\t\"./el.js\": \"8d47\",\n\t\"./en-au\": \"0e6b\",\n\t\"./en-au.js\": \"0e6b\",\n\t\"./en-ca\": \"3886\",\n\t\"./en-ca.js\": \"3886\",\n\t\"./en-gb\": \"39a6\",\n\t\"./en-gb.js\": \"39a6\",\n\t\"./en-ie\": \"e1d3\",\n\t\"./en-ie.js\": \"e1d3\",\n\t\"./en-il\": \"7333\",\n\t\"./en-il.js\": \"7333\",\n\t\"./en-in\": \"ec2e\",\n\t\"./en-in.js\": \"ec2e\",\n\t\"./en-nz\": \"6f50\",\n\t\"./en-nz.js\": \"6f50\",\n\t\"./en-sg\": \"b7e9\",\n\t\"./en-sg.js\": \"b7e9\",\n\t\"./eo\": \"65db\",\n\t\"./eo.js\": \"65db\",\n\t\"./es\": \"898b\",\n\t\"./es-do\": \"0a3c\",\n\t\"./es-do.js\": \"0a3c\",\n\t\"./es-mx\": \"b5b7\",\n\t\"./es-mx.js\": \"b5b7\",\n\t\"./es-us\": \"55c9\",\n\t\"./es-us.js\": \"55c9\",\n\t\"./es.js\": \"898b\",\n\t\"./et\": \"ec18\",\n\t\"./et.js\": \"ec18\",\n\t\"./eu\": \"0ff2\",\n\t\"./eu.js\": \"0ff2\",\n\t\"./fa\": \"8df4\",\n\t\"./fa.js\": \"8df4\",\n\t\"./fi\": \"81e9\",\n\t\"./fi.js\": \"81e9\",\n\t\"./fil\": \"d69a\",\n\t\"./fil.js\": \"d69a\",\n\t\"./fo\": \"0721\",\n\t\"./fo.js\": \"0721\",\n\t\"./fr\": \"9f26\",\n\t\"./fr-ca\": \"d9f8\",\n\t\"./fr-ca.js\": \"d9f8\",\n\t\"./fr-ch\": \"0e49\",\n\t\"./fr-ch.js\": \"0e49\",\n\t\"./fr.js\": \"9f26\",\n\t\"./fy\": \"7118\",\n\t\"./fy.js\": \"7118\",\n\t\"./ga\": \"5120\",\n\t\"./ga.js\": \"5120\",\n\t\"./gd\": \"f6b4\",\n\t\"./gd.js\": \"f6b4\",\n\t\"./gl\": \"8840\",\n\t\"./gl.js\": \"8840\",\n\t\"./gom-deva\": \"aaf2\",\n\t\"./gom-deva.js\": \"aaf2\",\n\t\"./gom-latn\": \"0caa\",\n\t\"./gom-latn.js\": \"0caa\",\n\t\"./gu\": \"e0c5\",\n\t\"./gu.js\": \"e0c5\",\n\t\"./he\": \"c7aa\",\n\t\"./he.js\": \"c7aa\",\n\t\"./hi\": \"dc4d\",\n\t\"./hi.js\": \"dc4d\",\n\t\"./hr\": \"4ba9\",\n\t\"./hr.js\": \"4ba9\",\n\t\"./hu\": \"5b14\",\n\t\"./hu.js\": \"5b14\",\n\t\"./hy-am\": \"d6b6\",\n\t\"./hy-am.js\": \"d6b6\",\n\t\"./id\": \"5038\",\n\t\"./id.js\": \"5038\",\n\t\"./is\": \"0558\",\n\t\"./is.js\": \"0558\",\n\t\"./it\": \"6e98\",\n\t\"./it-ch\": \"6f12\",\n\t\"./it-ch.js\": \"6f12\",\n\t\"./it.js\": \"6e98\",\n\t\"./ja\": \"079e\",\n\t\"./ja.js\": \"079e\",\n\t\"./jv\": \"b540\",\n\t\"./jv.js\": \"b540\",\n\t\"./ka\": \"201b\",\n\t\"./ka.js\": \"201b\",\n\t\"./kk\": \"6d79\",\n\t\"./kk.js\": \"6d79\",\n\t\"./km\": \"e81d\",\n\t\"./km.js\": \"e81d\",\n\t\"./kn\": \"3e92\",\n\t\"./kn.js\": \"3e92\",\n\t\"./ko\": \"22f8\",\n\t\"./ko.js\": \"22f8\",\n\t\"./ku\": \"2421\",\n\t\"./ku-kmr\": \"7558\",\n\t\"./ku-kmr.js\": \"7558\",\n\t\"./ku.js\": \"2421\",\n\t\"./ky\": \"9609\",\n\t\"./ky.js\": \"9609\",\n\t\"./lb\": \"440c\",\n\t\"./lb.js\": \"440c\",\n\t\"./lo\": \"b29d\",\n\t\"./lo.js\": \"b29d\",\n\t\"./lt\": \"26f9\",\n\t\"./lt.js\": \"26f9\",\n\t\"./lv\": \"b97c\",\n\t\"./lv.js\": \"b97c\",\n\t\"./me\": \"293c\",\n\t\"./me.js\": \"293c\",\n\t\"./mi\": \"688b\",\n\t\"./mi.js\": \"688b\",\n\t\"./mk\": \"6909\",\n\t\"./mk.js\": \"6909\",\n\t\"./ml\": \"02fb\",\n\t\"./ml.js\": \"02fb\",\n\t\"./mn\": \"958b\",\n\t\"./mn.js\": \"958b\",\n\t\"./mr\": \"39bd\",\n\t\"./mr.js\": \"39bd\",\n\t\"./ms\": \"ebe4\",\n\t\"./ms-my\": \"6403\",\n\t\"./ms-my.js\": \"6403\",\n\t\"./ms.js\": \"ebe4\",\n\t\"./mt\": \"1b45\",\n\t\"./mt.js\": \"1b45\",\n\t\"./my\": \"8689\",\n\t\"./my.js\": \"8689\",\n\t\"./nb\": \"6ce3\",\n\t\"./nb.js\": \"6ce3\",\n\t\"./ne\": \"3a39\",\n\t\"./ne.js\": \"3a39\",\n\t\"./nl\": \"facd\",\n\t\"./nl-be\": \"db29\",\n\t\"./nl-be.js\": \"db29\",\n\t\"./nl.js\": \"facd\",\n\t\"./nn\": \"b84c\",\n\t\"./nn.js\": \"b84c\",\n\t\"./oc-lnc\": \"167b\",\n\t\"./oc-lnc.js\": \"167b\",\n\t\"./pa-in\": \"f3ff\",\n\t\"./pa-in.js\": \"f3ff\",\n\t\"./pl\": \"8d57\",\n\t\"./pl.js\": \"8d57\",\n\t\"./pt\": \"f260\",\n\t\"./pt-br\": \"d2d4\",\n\t\"./pt-br.js\": \"d2d4\",\n\t\"./pt.js\": \"f260\",\n\t\"./ro\": \"972c\",\n\t\"./ro.js\": \"972c\",\n\t\"./ru\": \"957c\",\n\t\"./ru.js\": \"957c\",\n\t\"./sd\": \"6784\",\n\t\"./sd.js\": \"6784\",\n\t\"./se\": \"ffff\",\n\t\"./se.js\": \"ffff\",\n\t\"./si\": \"eda5\",\n\t\"./si.js\": \"eda5\",\n\t\"./sk\": \"7be6\",\n\t\"./sk.js\": \"7be6\",\n\t\"./sl\": \"8155\",\n\t\"./sl.js\": \"8155\",\n\t\"./sq\": \"c8f3\",\n\t\"./sq.js\": \"c8f3\",\n\t\"./sr\": \"cf1e\",\n\t\"./sr-cyrl\": \"13e9\",\n\t\"./sr-cyrl.js\": \"13e9\",\n\t\"./sr.js\": \"cf1e\",\n\t\"./ss\": \"52bd\",\n\t\"./ss.js\": \"52bd\",\n\t\"./sv\": \"5fbd\",\n\t\"./sv.js\": \"5fbd\",\n\t\"./sw\": \"74dc\",\n\t\"./sw.js\": \"74dc\",\n\t\"./ta\": \"3de5\",\n\t\"./ta.js\": \"3de5\",\n\t\"./te\": \"5cbb\",\n\t\"./te.js\": \"5cbb\",\n\t\"./tet\": \"576c\",\n\t\"./tet.js\": \"576c\",\n\t\"./tg\": \"3b1b\",\n\t\"./tg.js\": \"3b1b\",\n\t\"./th\": \"10e8\",\n\t\"./th.js\": \"10e8\",\n\t\"./tk\": \"5aff\",\n\t\"./tk.js\": \"5aff\",\n\t\"./tl-ph\": \"0f38\",\n\t\"./tl-ph.js\": \"0f38\",\n\t\"./tlh\": \"cf75\",\n\t\"./tlh.js\": \"cf75\",\n\t\"./tr\": \"0e81\",\n\t\"./tr.js\": \"0e81\",\n\t\"./tzl\": \"cf51\",\n\t\"./tzl.js\": \"cf51\",\n\t\"./tzm\": \"c109\",\n\t\"./tzm-latn\": \"b53d\",\n\t\"./tzm-latn.js\": \"b53d\",\n\t\"./tzm.js\": \"c109\",\n\t\"./ug-cn\": \"6117\",\n\t\"./ug-cn.js\": \"6117\",\n\t\"./uk\": \"ada2\",\n\t\"./uk.js\": \"ada2\",\n\t\"./ur\": \"5294\",\n\t\"./ur.js\": \"5294\",\n\t\"./uz\": \"2e8c\",\n\t\"./uz-latn\": \"010e\",\n\t\"./uz-latn.js\": \"010e\",\n\t\"./uz.js\": \"2e8c\",\n\t\"./vi\": \"2921\",\n\t\"./vi.js\": \"2921\",\n\t\"./x-pseudo\": \"fd7e\",\n\t\"./x-pseudo.js\": \"fd7e\",\n\t\"./yo\": \"7f33\",\n\t\"./yo.js\": \"7f33\",\n\t\"./zh-cn\": \"5c3a\",\n\t\"./zh-cn.js\": \"5c3a\",\n\t\"./zh-hk\": \"49ab\",\n\t\"./zh-hk.js\": \"49ab\",\n\t\"./zh-mo\": \"3a6c\",\n\t\"./zh-mo.js\": \"3a6c\",\n\t\"./zh-tw\": \"90ea\",\n\t\"./zh-tw.js\": \"90ea\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"4678\";","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('AnnualRuns',{attrs:{\"msg\":\"Welcome to Your Vue.js App\"}})],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"gallery-container\"}},[_c('div',{staticClass:\"header\",attrs:{\"id\":\"header\"}},[_vm._m(0),_c('div',{staticClass:\"units\"},[_c('toggle-button',{attrs:{\"id\":\"switch\",\"label-enable-text\":\"mi\",\"label-disable-text\":\"km\",\"default-state\":true,\"label-title-text\":\"units\"},on:{\"change\":_vm.toggleUnits}}),_c('toggle-button',{attrs:{\"id\":\"switch-info\",\"label-enable-text\":\"on\",\"label-disable-text\":\"off\",\"default-state\":true,\"label-title-text\":\"info\"},on:{\"change\":_vm.toggleInfo}})],1),_c('div',{staticClass:\"runs\"},[_vm._v(_vm._s(_vm.stats.runs)+\" runs\")]),_c('div',{staticClass:\"filter years\"},_vm._l((_vm.timeFilters.years),function(year){return _c('span',{key:year.id,staticClass:\"time year\",class:{'selected' : year.selected === true}},[_c('a',{attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){return _vm.toggleFilter('years', year.id)}}},[_vm._v(_vm._s(year.name))])])}),0),_c('div',{staticClass:\"filter months\"},_vm._l((_vm.timeFilters.months),function(month){return _c('span',{key:month.id,staticClass:\"time month\",class:{'selected' : month.selected === true}},[_c('a',{attrs:{\"href\":\"javascript:void(0);\"},on:{\"click\":function($event){return _vm.toggleFilter('months', month.id)}}},[_vm._v(_vm._s(month.name))])])}),0)]),_c('div',{staticStyle:{\"margin-top\":\"50px\"},attrs:{\"id\":\"gallery\"}},[_c('masonry',{attrs:{\"cols\":{default: 5, 1600: 4, 1000: 3, 700: 2, 400: 1},\"gutter\":{default: 0, 700: 0}}},_vm._l((_vm.filteredDays),function(day){return _c('div',{key:day.date,staticClass:\"day\"},_vm._l((day.runs),function(run){return _c('div',{key:run.id,staticClass:\"run\",class:run.run_type},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.info),expression:\"info\"}],staticClass:\"run-info\"},[_c('div',{staticClass:\"meta\"},[_c('span',{staticClass:\"metric date\"},[_vm._v(_vm._s(_vm.moment(day.date + ' ' + run.start_time_local).format('ddd Do MMM YYYY · HH:mm'))+\" \")]),_c('span',{staticClass:\"metric\"},[_c('span',{staticClass:\"time\"},[_vm._v(_vm._s(run.duration[0])+\" \"+_vm._s(run.duration[1].toLowerCase()))]),_vm._v(\"  · \"),_c('span',{staticClass:\"pace\"},[_vm._v(_vm._s(run[_vm.units].pace)+\" min/\"+_vm._s(_vm.units))]),_vm._v(\"  · \"),_c('span',{staticClass:\"elevation\"},[_vm._v(_vm._s(Number(run.total_elevation_gain[_vm.elevationUnits[_vm.units]]).toLocaleString())+\" \"+_vm._s(_vm.elevationUnits[_vm.units]))])])]),_c('a',{staticClass:\"strava-link\",attrs:{\"href\":'https://strava.com/activities/'+run.id,\"title\":\"Stava\",\"target\":\"_blank\"}},[_c('div',{staticClass:\"map-tile\"},[_c('poly-to-s-v-g',{attrs:{\"poly-line\":run.map_polyline,\"runid\":run.id},on:{\"click\":function($event){return _vm.lightboxEffect(_vm.index)}}})],1),_c('div',{staticClass:\"strava-link-cont\"},[_c('img',{staticClass:\"strava-ico\",attrs:{\"src\":\"/images/strava-ico.svg\"}})]),_c('div',{staticClass:\"dist\",style:({ 'background-color': _vm.distColour(run.distance_meters) })},[_c('span',{staticClass:\"datum\"},[_vm._v(_vm._s(run[_vm.units].dist))]),_c('span',{staticClass:\"units\"},[_vm._v(_vm._s(_vm.units))])])])]),(run.thumbs)?_c('div',[_c('LightBox',{staticClass:\"lightBox\",attrs:{\"thumbnails\":run.thumbs,\"largeImages\":run.photos,\"thumbnailsPath\":'',\"largePath\":'',\"captions\":[]}})],1):_vm._e()])}),0)}),0)],1)])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"title\"},[_vm._v(\"Strava Gallery\"),_c('br'),_c('span',{staticClass:\"muted\"},[_vm._v(\"Paul's runs with photos\")])])\n}]\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('label',{staticClass:\"toggle__button\",class:{'active': _vm.isActive},attrs:{\"for\":_vm.id + '_button'}},[_c('span',{staticClass:\"toggle__label before\"},[_vm._v(_vm._s(_vm.titleText))]),_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.checkedValue),expression:\"checkedValue\"}],attrs:{\"type\":\"checkbox\",\"disabled\":_vm.disabled,\"id\":_vm.id + '_button'},domProps:{\"checked\":Array.isArray(_vm.checkedValue)?_vm._i(_vm.checkedValue,null)>-1:(_vm.checkedValue)},on:{\"change\":function($event){var $$a=_vm.checkedValue,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=null,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.checkedValue=$$a.concat([$$v]))}else{$$i>-1&&(_vm.checkedValue=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.checkedValue=$$c}}}}),(_vm.isActive)?_c('span',{staticClass:\"toggle__label after\"},[_vm._v(_vm._s(_vm.enableText))]):_vm._e(),(! _vm.isActive)?_c('span',{staticClass:\"toggle__label after\"},[_vm._v(_vm._s(_vm.disabledText))]):_vm._e(),_c('span',{staticClass:\"toggle__switch\"})])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <label :for=\"id + '_button'\" :class=\"{'active': isActive}\" class=\"toggle__button\">\n\n <span class=\"toggle__label before\">{{ titleText }}</span>\n <input type=\"checkbox\" :disabled=\"disabled\" :id=\"id + '_button'\" v-model=\"checkedValue\">\n <span v-if=\"isActive\" class=\"toggle__label after\">{{ enableText }}</span>\n <span v-if=\"! isActive\" class=\"toggle__label after\">{{ disabledText }}</span>\n\n <span class=\"toggle__switch\"></span>\n </label>\n</template>\n\n<script>\nexport default {\n props: {\n disabled: {\n type: Boolean,\n default: false\n },\n\n labelEnableText: {\n type: String,\n default: 'On'\n },\n labelTitleText: {\n type: String,\n default: 'units'\n },\n\n labelDisableText: {\n type: String,\n default: 'Off'\n },\n\n id: {\n type: String,\n default: 'primary'\n },\n\n defaultState: {\n type: Boolean,\n default: false\n }\n },\n\n data() {\n return {\n currentState: this.defaultState\n }\n },\n\n watch: {\n defaultState: function defaultState() {\n this.currentState = Boolean(this.defaultState)\n }\n },\n\n computed: {\n // currentState() {\n // return this.defaultState;\n // },\n\n isActive() {\n return this.currentState;\n },\n\n enableText() {\n return this.labelEnableText;\n },\n titleText() {\n return this.labelTitleText;\n },\n\n disabledText() {\n return this.labelDisableText;\n },\n\n checkedValue: {\n get() {\n return this.currentState;\n },\n\n set(newValue) {\n this.currentState = newValue;\n this.$emit('change', newValue);\n }\n }\n }\n}\n</script>\n\n<style scoped lang=\"scss\">\n$offcolor: #0E5064;\n$oncolor: #fc9628;\n.toggle__button {\n vertical-align: middle;\n user-select: none;\n cursor: pointer;\n position: relative;\n\n .toggle__label {\n &.before {\n position: absolute;\n left: -35px;\n }\n &.after {\n position: absolute;\n right: -30px;\n }\n }\n}\n.toggle__button input[type=\"checkbox\"] {\n opacity: 0;\n position: absolute;\n width: 1px;\n height: 1px;\n}\n.toggle__button .toggle__switch {\n display:inline-block;\n height:12px;\n border-radius:6px;\n width:40px;\n background: lighten($offcolor, 10%);\n box-shadow: inset 0 0 1px #BFCBD9;\n position:relative;\n margin-left: 10px;\n transition: all .25s;\n}\n\n.toggle__button .toggle__switch::after,\n.toggle__button .toggle__switch::before {\n content: \"\";\n position: absolute;\n display: block;\n height: 18px;\n width: 18px;\n border-radius: 50%;\n left: 0;\n top: -3px;\n transform: translateX(0);\n transition: all .25s cubic-bezier(.5, -.6, .5, 1.6);\n}\n\n.toggle__button .toggle__switch::after {\n background: $offcolor;\n box-shadow: 0 0 1px #666;\n}\n.toggle__button .toggle__switch::before {\n background: $offcolor;\n box-shadow: 0 0 0 3px rgba(0,0,0,0.1);\n opacity:0;\n}\n\n.active .toggle__switch {\n background: lighten($oncolor, 10%);\n box-shadow: inset 0 0 1px #adedcb;\n}\n\n.active .toggle__switch::after,\n.active .toggle__switch::before{\n transform:translateX(40px - 18px);\n}\n\n.active .toggle__switch::after {\n left: 5px;\n background: $oncolor;\n box-shadow: 0 0 1px $oncolor;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleButton.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleButton.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./ToggleButton.vue?vue&type=template&id=203e415e&scoped=true\"\nimport script from \"./ToggleButton.vue?vue&type=script&lang=js\"\nexport * from \"./ToggleButton.vue?vue&type=script&lang=js\"\nimport style0 from \"./ToggleButton.vue?vue&type=style&index=0&id=203e415e&prod&scoped=true&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"203e415e\",\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('div',{staticClass:\"photo primary\",style:({ 'background-image': 'url(' + _vm.highlightPhoto.url + ')' }),on:{\"click\":function($event){return _vm.lightboxEffect(0)}}},[_c('img',{attrs:{\"src\":_vm.highlightPhoto.url}})]),_c('div',{staticClass:\"run-gallery\"},[_vm._l((_vm.thumbnailsSorted),function(thumbnail,index){return _c('div',{key:index,staticClass:\"run-img\"},[[_c('img',{directives:[{name:\"lazy\",rawName:\"v-lazy\",value:(thumbnail.url),expression:\"thumbnail.url\"}],staticClass:\"light-box__thumbnail\",class:'idx-'+index,on:{\"click\":function($event){return _vm.lightboxEffect(index)}}})]],2)}),_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[(_vm.bg)?_c('div',{staticClass:\"light-box__bg\"},[(_vm.bg)?_c('div',{staticClass:\"light-box-container\",attrs:{\"tabindex\":\"0\"},on:{\"keydown\":function($event){if(!$event.type.indexOf('key')&&_vm._k($event.keyCode,\"esc\",27,$event.key,[\"Esc\",\"Escape\"]))return null;return _vm.close.apply(null, arguments)}}},[_c('div',{staticClass:\"light-box__close\",on:{\"click\":function($event){$event.stopPropagation();return _vm.close.apply(null, arguments)}}},[_c('img',{staticClass:\"lb-action\",attrs:{\"src\":\"/images/lightbox/times-solid.svg\"}})]),(_vm.count)?_c('p',{staticClass:\"light-box__count\"},[_vm._v(\" \"+_vm._s(_vm.currentImage + 1)+\"/ \"),_c('span',[_vm._v(_vm._s(_vm.thumbnailsSorted.length))])]):_vm._e(),_c('div',{staticClass:\"light-box__prev light-box__btn\",on:{\"click\":_vm.prev}},[_c('img',{staticClass:\"lb-action\",attrs:{\"src\":\"/images/lightbox/angle-left-solid.svg\"}})]),(_vm.bg)?_c('div',{staticClass:\"light-box__container\"},[_c('transition',{attrs:{\"name\":\"fade\",\"mode\":\"out-in\"}},[_c('img',{key:_vm.largeImagesSorted[_vm.currentImage].unique_id,staticClass:\"light-box__container__img\",attrs:{\"src\":_vm.largeImagesSorted[_vm.currentImage].url}})])],1):_vm._e(),(_vm.caption)?_c('div',{staticClass:\"light-box__caption\"},[(_vm.captions[_vm.currentImage])?_c('p',[_vm._v(_vm._s(_vm.captions[_vm.currentImage]))]):_vm._e()]):_vm._e(),_c('div',{staticClass:\"light-box__next light-box__btn\",on:{\"click\":_vm.next}},[_c('img',{staticClass:\"lb-action\",attrs:{\"src\":\"/images/lightbox/angle-right-solid.svg\"}})])]):_vm._e()]):_vm._e()])],2)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <div class=\"photo primary\" @click=\"lightboxEffect(0)\" :style=\"{ 'background-image': 'url(' + highlightPhoto.url + ')' }\">\n <img :src=\"highlightPhoto.url\" />\n </div>\n\n <div class=\"run-gallery\">\n\n <div v-for=\"(thumbnail, index) in thumbnailsSorted\" :key=\"index\" class=\"run-img\">\n <template>\n <img\n v-lazy=\"thumbnail.url\"\n @click=\"lightboxEffect(index)\"\n :class=\"'idx-'+index\"\n class=\"light-box__thumbnail\">\n </template>\n </div>\n <transition name=\"fade\" mode=\"out-in\">\n <div class=\"light-box__bg\" v-if=\"bg\">\n <div v-if=\"bg\" class=\"light-box-container\" tabindex=\"0\" @keydown.esc=\"close\">\n <div class=\"light-box__close\" @click.stop=\"close\"><img src=\"/images/lightbox/times-solid.svg\"\n class=\"lb-action\"></div>\n <p class=\"light-box__count\" v-if=\"count\">\n {{ currentImage + 1 }}/\n <span>{{ thumbnailsSorted.length }}</span>\n </p>\n <div @click=\"prev\" class=\"light-box__prev light-box__btn\"><img src=\"/images/lightbox/angle-left-solid.svg\"\n class=\"lb-action\"></div>\n\n <div v-if=\"bg\" class=\"light-box__container\">\n <transition name=\"fade\" mode=\"out-in\">\n <img\n :key=\"largeImagesSorted[currentImage].unique_id\"\n :src=\"largeImagesSorted[currentImage].url\"\n class=\"light-box__container__img\"\n >\n </transition>\n </div>\n\n <div class=\"light-box__caption\" v-if=\"caption\">\n <p v-if=\"captions[currentImage]\">{{ captions[currentImage] }}</p>\n </div>\n\n <div @click=\"next\" class=\"light-box__next light-box__btn\"><img src=\"/images/lightbox/angle-right-solid.svg\"\n class=\"lb-action\"></div>\n </div>\n </div>\n </transition>\n\n </div>\n </div>\n</template>\n\n<script>\nexport default {\n data() {\n return {\n bg: false,\n currentImage: 0,\n count: true,\n caption: true\n };\n },\n props: {\n thumbnails: {\n type: Array,\n required: true\n },\n largeImages: {\n type: Array,\n required: true\n },\n captions: {\n type: Array,\n required: true\n },\n thumbnailsPath: {\n type: String,\n required: true\n },\n largePath: {\n type: String,\n required: true\n }\n },\n computed: {\n thumbnailsSorted() {\n let listCopy = this.thumbnails.filter((t) => !t.def).slice();\n return listCopy.length === 1 ? [] : listCopy;\n },\n highlightPhoto() {\n //let listCopy = this.thumbnails.filter((t) => t.def).slice()\n let defaulPos = this.thumbnails.map(function(e) { return e.def; }).indexOf(true);\n return this.thumbnails[defaulPos !== -1 ? defaulPos : 0];\n },\n largeImagesSorted() {\n let defaulPos = this.largeImages.map(function(e) { return e.default_photo; }).indexOf(true);\n let listCopy = this.largeImages.slice()\n this.moveToFront(listCopy, 0, defaulPos);\n return listCopy;\n\n }\n },\n mounted() {\n let $vm = this;\n\n window.addEventListener(\"keyup\", function (event) {\n if (event.defaultPrevented) {\n return; // Should do nothing if the default action has been cancelled\n }\n let handled = false;\n if (event.key !== undefined && $vm.bg) {\n // Handle the event with KeyboardEvent.key and set handled true.\n if (event.key === 'Escape') {\n $vm.close();\n handled = true;\n }\n else if (event.key === 'ArrowLeft') {\n $vm.prev();\n handled = true;\n }\n else if (event.key === 'ArrowRight') {\n $vm.next();\n handled = true;\n }\n }\n\n if (handled) {\n // Suppress \"double action\" if event handled\n event.preventDefault();\n }\n }, true);\n },\n methods: {\n lightboxEffect(curr) {\n this.currentImage = curr;\n this.bg = !this.bg;\n document.getElementById(\"page-body\").className = 'modal-open';\n },\n moveToFront(arr, new_index, old_index) {\n return arr.splice(new_index, 0, arr.splice(old_index, 1)[0]);\n },\n next() {\n if (this.currentImage < this.largeImages.length - 1) {\n this.currentImage++;\n } else {\n this.currentImage = 0;\n }\n },\n prev() {\n if (this.currentImage > 0) {\n this.currentImage--;\n } else {\n this.currentImage = this.largeImages.length - 1;\n }\n },\n close() {\n this.bg = !this.bg;\n document.getElementById(\"page-body\").className = '';\n }\n }\n};\n</script>\n\n<style lang=\"scss\">\nbody.modal-open {\n height: 100vh;\n overflow-y: hidden;\n}\n.lb-action {\n width: 40px;\n height: 40px;\n}\n.fade-enter-active,\n.fade-leave-active {\n transition: opacity 0.2s;\n}\n.fade-enter,\n.fade-leave-to {\n opacity: 0;\n}\n.light-box-container {\n position: relative;\n height: 100vh;\n width: 100vw;\n}\n.light-box {\n &__bg {\n position: fixed;\n left: 0;\n top: 0;\n width: 100vw;\n height: 100vh;\n max-height: 100vh;\n //right: 0;\n //bottom: 0;\n background-color: rgba(0, 0, 0, 0.89);\n z-index: 1000;\n }\n\n &__thumbnail {\n cursor: pointer;\n //min-width: 94px;\n //min-height: 70px;\n }\n\n &__close {\n padding: 10px;\n position: absolute;\n right: 20px;\n top: 20px;\n background-image: url(/img/lightbox/close.svg);\n background-size: contain;\n background-position: center;\n }\n &__container {\n position: absolute;\n z-index: 2000;\n display: flex;\n justify-content: center;\n align-items: center;\n max-width: 900px;\n left: 50%;\n top: 50%;\n transform: translate(-50%, -50%);\n min-height: 800px;\n img {\n align-self: center;\n max-width: 100vw;\n max-height: 100vh;\n }\n }\n &__btn {\n background-size: contain;\n background-position: center;\n align-self: center;\n padding: 15px;\n }\n\n &__close,\n &__btn {\n cursor: pointer;\n }\n\n &__close,\n &__btn,\n &__caption,\n &__count {\n position: absolute;\n z-index: 3000;\n -webkit-filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, .7));\n filter: drop-shadow( 3px 3px 2px rgba(0, 0, 0, 0.5));\n }\n\n &__next {\n right: 20px;\n }\n &__prev {\n left: 20px;\n }\n &__next,\n &__prev {\n top: 50%;\n transform: translateY(-50%);\n }\n\n &__caption {\n bottom: 0;\n width: 100%;\n height: 50px;\n display: flex;\n align-items: center;\n color: #fff;\n font-size: 20px;\n justify-content: center;\n }\n\n &__count {\n left: 20px;\n font-size: 16px;\n color: #fff;\n top: 14px;\n padding: 0;\n margin: 0;\n }\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightBox.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./LightBox.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./LightBox.vue?vue&type=template&id=0fd64430\"\nimport script from \"./LightBox.vue?vue&type=script&lang=js\"\nexport * from \"./LightBox.vue?vue&type=script&lang=js\"\nimport style0 from \"./LightBox.vue?vue&type=style&index=0&id=0fd64430&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../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 render(){var _vm=this,_c=_vm._self._c;return _c('div',[_c('svg',{attrs:{\"id\":`svg-${_vm.runid}`,\"height\":\"50\",\"width\":\"50\",\"viewport\":\"0 0 50 50\",\"viewBox\":`${_vm.svgprops.x} ${_vm.svgprops.y} ${_vm.svgprops.width} ${_vm.svgprops.height}`,\"preserveAspectRatio\":\"xMinYMin meet\"}},[_c('g',[_c('path',{attrs:{\"vector-effect\":\"non-scaling-stroke\",\"d\":_vm.svgprops.path}})])])])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","<template>\n <div>\n <svg :id=\"`svg-${runid}`\" height=\"50\" width=\"50\" viewport=\"0 0 50 50\" :viewBox=\"`${svgprops.x} ${svgprops.y} ${svgprops.width} ${svgprops.height}`\" preserveAspectRatio=\"xMinYMin meet\">\n <g>\n <path vector-effect=\"non-scaling-stroke\" :d=\"svgprops.path\"></path>\n </g>\n </svg>\n </div>\n</template>\n\n<script>\nimport polyline from \"@mapbox/polyline\";\n\nexport default {\n name: \"PolyToSVG.vue\",\n props: {\n polyLine: String,\n runid: Number\n },\n data() {\n return {\n polypoints: null,\n }\n },\n computed: {\n svgprops() {\n let $vm = this;\n let path = polyline.decode($vm.polyLine);\n return $vm.poly_gm2svg(path, function (latLng) {\n return {\n lat: latLng[0],\n lng: latLng[1]\n }\n });\n },\n },\n methods: {\n latLng2point(latLng) {\n return {\n x: (latLng.lng + 180) * (256 / 360),\n y: (256 / 2) - (256 * Math.log(Math.tan((Math.PI / 4) + ((latLng.lat * Math.PI / 180) / 2))) / (2 * Math.PI))\n };\n },\n poly_gm2svg(gmPath, fx) {\n var $vm = this;\n var point,\n svgPath,\n minX = 256,\n minY = 256,\n maxX = 0,\n maxY = 0;\n\n svgPath = [];\n for (var p = 0; p < gmPath.length; ++p) {\n point = $vm.latLng2point(fx(gmPath[p]));\n minX = Math.min(minX, point.x);\n minY = Math.min(minY, point.y);\n maxX = Math.max(maxX, point.x);\n maxY = Math.max(maxY, point.y);\n svgPath.push([point.x, point.y].join(','));\n }\n\n return {\n path: 'M' + svgPath.join(' '),\n x: minX,\n y: minY,\n width: (maxX > minX) ? maxX - minX : 1,\n height: (maxY > minY) ? maxY - minY : 1\n };\n\n },\n },\n}\n</script>\n\n<style lang=\"scss\">\npath {\n stroke: #fc9628;\n stroke-width: 1;\n fill: none;\n}\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PolyToSVG.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PolyToSVG.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./PolyToSVG.vue?vue&type=template&id=4f1ddf80\"\nimport script from \"./PolyToSVG.vue?vue&type=script&lang=js\"\nexport * from \"./PolyToSVG.vue?vue&type=script&lang=js\"\nimport style0 from \"./PolyToSVG.vue?vue&type=style&index=0&id=4f1ddf80&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../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","<template>\n <div id=\"gallery-container\">\n <div id=\"header\" class=\"header\">\n\n <div class=\"title\">Strava Gallery<br><span class=\"muted\">Paul's runs with photos</span></div>\n\n <div class=\"units\">\n <toggle-button\n id=\"switch\"\n label-enable-text=\"mi\"\n label-disable-text=\"km\"\n :default-state=\"true\"\n label-title-text=\"units\"\n v-on:change=\"toggleUnits\"></toggle-button>\n\n <toggle-button\n id=\"switch-info\"\n label-enable-text=\"on\"\n label-disable-text=\"off\"\n :default-state=\"true\"\n label-title-text=\"info\"\n v-on:change=\"toggleInfo\"></toggle-button>\n </div>\n <div class=\"runs\">{{stats.runs}} runs</div>\n <div class=\"filter years\">\n <span v-for=\"year in timeFilters.years\"\n :key=\"year.id\"\n class=\"time year\"\n :class=\"{'selected' : year.selected === true}\"><a href=\"javascript:void(0);\" @click=\"toggleFilter('years', year.id)\">{{year.name}}</a></span>\n </div>\n <div class=\"filter months\">\n <span v-for=\"month in timeFilters.months\"\n :key=\"month.id\"\n class=\"time month\"\n :class=\"{'selected' : month.selected === true}\"><a href=\"javascript:void(0);\" @click=\"toggleFilter('months', month.id)\">{{month.name}}</a></span>\n </div>\n\n </div>\n\n <div id=\"gallery\" style=\"margin-top: 50px;\">\n <masonry\n :cols=\"{default: 5, 1600: 4, 1000: 3, 700: 2, 400: 1}\"\n :gutter=\"{default: 0, 700: 0}\">\n\n <div v-for=\"day in filteredDays\" :key=\"day.date\" class=\"day\">\n\n <div v-for=\"run in day.runs\" :key=\"run.id\" class=\"run\" :class=\"run.run_type\">\n <div v-show=\"info\" class=\"run-info\">\n <div class=\"meta\">\n <span class=\"metric date\">{{moment(day.date + ' ' + run.start_time_local).format('ddd Do MMM YYYY · HH:mm')}} </span>\n <span class=\"metric\">\n <span class=\"time\">{{run.duration[0]}} {{run.duration[1].toLowerCase()}}</span>\n · \n <span class=\"pace\">{{run[units].pace}} min/{{units}}</span>\n · \n <span class=\"elevation\">{{Number(run.total_elevation_gain[elevationUnits[units]]).toLocaleString()}} {{elevationUnits[units]}}</span>\n </span>\n </div>\n <a :href=\"'https://strava.com/activities/'+run.id\" title=\"Stava\" class=\"strava-link\" target=\"_blank\">\n <div class=\"map-tile\">\n <poly-to-s-v-g :poly-line=\"run.map_polyline\" :runid=\"run.id\" @click=\"lightboxEffect(index)\"></poly-to-s-v-g>\n </div>\n <div class=\"strava-link-cont\">\n <img src=\"/images/strava-ico.svg\" class=\"strava-ico\" /></div>\n <div class=\"dist\" :style=\"{ 'background-color': distColour(run.distance_meters) }\">\n <span class=\"datum\">{{run[units].dist}}</span><span class=\"units\">{{units}}</span>\n </div>\n </a>\n </div>\n <div v-if=\"run.thumbs\">\n <LightBox\n :thumbnails=\"run.thumbs\"\n :largeImages=\"run.photos\"\n :thumbnailsPath=\"''\"\n :largePath=\"''\"\n :captions=\"[]\"\n class=\"lightBox\"\n />\n\n </div>\n </div>\n </div>\n </masonry>\n </div>\n </div>\n</template>\n\n<script>\nimport days from \"@/assets/data/race-report_runs.json\";\nimport ToggleButton from \"@/components/ToggleButton.vue\";\nimport LightBox from \"@/components/LightBox\";\nimport PolyToSVG from \"@/components/PolyToSVG\";\nimport * as d3 from \"d3\";\n\n//const BUCKETS = [999, 60, 25, 14, 8, 6, 5, 4, 3, 2, 0];\nconst BUCKET_COLOURS = [\n \"rgb(54, 142, 144)\",\n \"rgb(54, 142, 144)\",\n \"rgb(92, 181, 124)\", //40, 155, 81\n \"rgb(115, 195, 100)\",\n \"rgb(182, 224, 118)\",\n \"rgb(219, 239, 103)\", //233, 245, 161\n \"rgb(253, 224, 93)\", // 254, 237, 161\n \"rgb(253, 190, 112)\",\n \"rgb(244, 124, 74)\",\n \"rgb(216, 56, 45)\",\n \"rgb(165, 0, 38)\"\n];\nconst MONTHS = [\n 'Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec', 'All'\n];\n\nexport default {\n name: 'AnnualRuns',\n components: {\n LightBox: LightBox,\n \"toggle-button\": ToggleButton,\n PolyToSVG: PolyToSVG\n },\n props: {\n msg: String\n },\n data() {\n return {\n days: days,\n units: 'mi',\n info: true,\n elevationUnits: {\n mi: 'feet',\n km: 'meters'\n },\n index: null,\n stats: {\n distMax: 0,\n distMin: 0,\n runs: 0,\n distance: 0,\n months: [],\n years: []\n },\n showNoPhoto: false,\n timeFilters: {\n months: [],\n years: []\n }\n };\n },\n computed: {\n distMin(){\n let $vm = this;\n return d3.min(d3.map($vm.filteredDays, (d) => d.runs[0].distance_meters));\n },\n distMax(){\n let $vm = this;\n return d3.max(d3.map($vm.filteredDays, (d) => d.runs[0].distance_meters));\n },\n distColour() {\n let $vm = this;\n return d3.scaleQuantize()\n .domain([$vm.distMin, $vm.distMax])\n .range(BUCKET_COLOURS);\n },\n /*\n photoStream() {\n let $vm = this;\n $vm.stats.runs = 0;\n\n let pics = this.days.filter(day => {\n let yIdx = $vm.timeFilters.years.map(y => y.name).indexOf(day.year.toString());\n if (\n ($vm.showNoPhoto || day.day_has_photos) &&\n (\n ($vm.timeFilters.months[day.moy-1].selected || $vm.timeFilters.months[$vm.timeFilters.months.length-1].selected) &&\n ($vm.timeFilters.years[yIdx].selected || $vm.timeFilters.years[$vm.timeFilters.years.length-1].selected)\n )\n ) {\n $vm.stats.runs++;\n return true;\n }\n return false;\n }).sort((a, b) => a.date < b.date ? 1 : -1 )\n .map(day => {\n return day.runs.map(run => {\n return run.photos.map(photo => photo.url)\n })\n });\n console.log(pics);\n return pics;\n\n },\n */\n filteredDays() {\n let $vm = this;\n $vm.stats.runs = 0;\n\n return this.days.filter(day => {\n let yIdx = $vm.timeFilters.years.map(y => y.name).indexOf(day.year.toString());\n if (\n ($vm.showNoPhoto || day.day_has_photos) &&\n (\n ($vm.timeFilters.months[day.moy-1].selected || $vm.timeFilters.months[$vm.timeFilters.months.length-1].selected) &&\n ($vm.timeFilters.years[yIdx].selected || $vm.timeFilters.years[$vm.timeFilters.years.length-1].selected)\n )\n ) {\n $vm.stats.runs++;\n return true;\n }\n return false;\n }).sort((a, b) => a.date < b.date ? 1 : -1 );\n }\n },\n created() {\n let lu = {\n years: {},\n months: {}\n }\n this.days.forEach(day => {\n lu.years[day.year] = true;\n lu.months[day.moy] = true;\n });\n\n let sortedYears = Object.keys(lu.years).sort((a, b) => +a - +b );\n let months = MONTHS.map((month, mid) => { return {id: mid, name: month, selected: false }; });\n\n let years = sortedYears.map((year, idx) => { return {id: idx, name: year, selected: false }; });\n years[years.length-1].selected = true;\n years.push({ id: years.length, name: 'All', selected: false });\n months[12].selected = true;\n this.timeFilters.years = years\n this.timeFilters.months = months;\n\n window.addEventListener(\"resize\", this.resizeHandler);\n },\n mounted() {\n this.resizeHandler();\n },\n destroyed() {\n window.removeEventListener(\"resize\", this.resizeHandler);\n },\n methods: {\n toggleFilter(type, value){\n this.timeFilters[type][value].selected = !this.timeFilters[type][value].selected;\n\n if (value === this.timeFilters[type].length-1 && this.timeFilters[type][value].selected){\n this.timeFilters[type].forEach((unit, id) => {\n if (id < this.timeFilters[type].length-1){\n unit.selected = false;\n }\n });\n }\n else {\n this.timeFilters[type][this.timeFilters[type].length-1].selected = false;\n }\n },\n nodefault(photos) {\n return photos.filter(p => !p.default_photo);\n },\n runMaptile(run){\n return `./images/map-tiles/${run.start_date}_runmap_${run.id}.png`;\n },\n toggleUnits: function(){\n this.units = this.units === 'mi' ? 'km' : 'mi';\n },\n toggleInfo: function(){\n this.info = !this.info;\n },\n resizeHandler() {\n let headerHeight = document.getElementById(\"header\").offsetHeight;\n document.getElementById(\"gallery\").style.marginTop = headerHeight + 'px';\n },\n lightboxEffect(curr) {\n this.currentImage = curr;\n this.bg = !this.bg;\n document.getElementById(\"page-body\").className = 'modal-open';\n },\n }\n}\n</script>\n\n<style lang=\"scss\">\n .map-tile {\n height: 52px;\n width: 52px;\n .map_thumbnail {\n width: 100%;\n height: 100%;\n }\n }\n</style>\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnnualRuns.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnnualRuns.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./AnnualRuns.vue?vue&type=template&id=25572fc8\"\nimport script from \"./AnnualRuns.vue?vue&type=script&lang=js\"\nexport * from \"./AnnualRuns.vue?vue&type=script&lang=js\"\nimport style0 from \"./AnnualRuns.vue?vue&type=style&index=0&id=25572fc8&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../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","<template>\n <div id=\"app\">\n <AnnualRuns msg=\"Welcome to Your Vue.js App\"/>\n </div>\n</template>\n\n<script>\nimport AnnualRuns from \"./components/AnnualRuns.vue\";\n\nexport default {\n name: 'App',\n components: {\n AnnualRuns\n }\n}\n</script>\n<style lang=\"scss\">\n#app {\n display:block;\n}\n</style>\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=c55bf38c\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=c55bf38c&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../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","// the component name `<masonry />`\n// can be overridden with `Vue.use(Masonry, { name: 'the-masonry' });`\n\nconst componentName = 'masonry';\n\nconst props = {\n tag: {\n type: [String],\n default: 'div'\n },\n cols: {\n type: [Object, Number, String],\n default: 2\n },\n gutter: {\n type: [Object, Number, String],\n default: 0\n },\n css: {\n type: [Boolean],\n default: true\n },\n columnTag: {\n type: [String],\n default: 'div'\n },\n columnClass: {\n type: [String, Array, Object],\n default: () => []\n },\n columnAttr: {\n type: [Object],\n default: () => ({})\n }\n};\n\n// Get the resulting value from `:col=` prop\n// based on the window width\nconst breakpointValue = (mixed, windowWidth) => {\n const valueAsNum = parseInt(mixed);\n\n if(valueAsNum > -1) {\n return mixed;\n }else if(typeof mixed !== 'object') {\n return 0;\n }\n\n let matchedBreakpoint = Infinity;\n let matchedValue = mixed.default || 0;\n\n for(let k in mixed) {\n const breakpoint = parseInt(k);\n const breakpointValRaw = mixed[breakpoint];\n const breakpointVal = parseInt(breakpointValRaw);\n\n if(isNaN(breakpoint) || isNaN(breakpointVal)) {\n continue;\n }\n\n const isNewBreakpoint = windowWidth <= breakpoint && breakpoint < matchedBreakpoint;\n\n if(isNewBreakpoint) {\n matchedBreakpoint = breakpoint;\n matchedValue = breakpointValRaw;\n }\n }\n\n return matchedValue;\n};\n\nconst component = {\n props,\n\n data() {\n return {\n displayColumns: 2,\n displayGutter: 0\n };\n },\n\n mounted() {\n this.$nextTick(() => {\n this.reCalculate();\n });\n\n // Bind resize handler to page\n if(window) {\n window.addEventListener('resize', this.reCalculate);\n }\n },\n\n updated() {\n this.$nextTick(() => {\n this.reCalculate();\n });\n },\n\n beforeUnmount() {\n if(window) {\n window.removeEventListener('resize', this.reCalculate);\n }\n },\n\n methods: {\n // Recalculate how many columns to display based on window width\n // and the value of the passed `:cols=` prop\n reCalculate() {\n const previousWindowWidth = this.windowWidth;\n\n this.windowWidth = (window ? window.innerWidth : null) || Infinity;\n\n // Window resize events get triggered on page height\n // change which when loading the page can result in multiple\n // needless calculations. We prevent this here.\n if(previousWindowWidth === this.windowWidth) {\n return;\n }\n\n this._reCalculateColumnCount(this.windowWidth);\n\n this._reCalculateGutterSize(this.windowWidth);\n },\n\n _reCalculateGutterSize(windowWidth) {\n this.displayGutter = breakpointValue(this.gutter, windowWidth);\n },\n\n _reCalculateColumnCount(windowWidth) {\n let newColumns = breakpointValue(this.cols, windowWidth);\n\n // Make sure we can return a valid value\n newColumns = Math.max(1, Number(newColumns) || 0);\n\n this.displayColumns = newColumns;\n },\n\n _getChildItemsInColumnsArray() {\n const columns = [];\n let childItems = this.$slots.default || [];\n\n // This component does not work with a child <transition-group /> ..yet,\n // so for now we think it may be helpful to ignore until we can find a way for support\n if(childItems.length === 1 && childItems[0].componentOptions && childItems[0].componentOptions.tag == 'transition-group') {\n childItems = childItems[0].componentOptions.children;\n }\n\n // Loop through child elements\n for (let i = 0, visibleItemI = 0; i < childItems.length; i++, visibleItemI++) {\n // skip Vue elements without tags, which includes\n // whitespace elements and also plain text\n if(!childItems[i].tag) {\n visibleItemI--;\n\n continue;\n }\n\n // Get the column index the child item will end up in\n const columnIndex = visibleItemI % this.displayColumns;\n\n if(!columns[columnIndex]) {\n columns[columnIndex] = [];\n }\n\n columns[columnIndex].push(childItems[i]);\n }\n\n return columns;\n }\n },\n\n render(createElement) {\n\n const columnsContainingChildren = this._getChildItemsInColumnsArray();\n const isGutterSizeUnitless = parseInt(this.displayGutter) === this.displayGutter * 1;\n const gutterSizeWithUnit = isGutterSizeUnitless ? `${this.displayGutter}px` : this.displayGutter;\n\n const columnStyle = {\n boxSizing: 'border-box',\n backgroundClip: 'padding-box',\n width: `${100 / this.displayColumns}%`,\n border: '0 solid transparent',\n borderLeftWidth: gutterSizeWithUnit\n };\n\n const columns = columnsContainingChildren.map((children, index) => {\n /// Create column element and inject the children\n return createElement(this.columnTag, {\n key: index + '-' + columnsContainingChildren.length,\n style: this.css ? columnStyle : null,\n class: this.columnClass,\n attrs: this.columnAttr\n }, children); // specify child items here\n });\n\n const containerStyle = {\n display: ['-webkit-box', '-ms-flexbox', 'flex'],\n marginLeft: `-${gutterSizeWithUnit}`\n };\n\n // Return wrapper with columns\n return createElement(\n this.tag, // tag name\n this.css ? { style: containerStyle } : null, // element options\n columns // column vue elements\n );\n }\n};\n\nconst Plugin = function () {};\n\nPlugin.install = function (Vue, options) {\n if (Plugin.installed) {\n return;\n }\n\n if(options && options.name) {\n Vue.component(options.name, component);\n } else {\n Vue.component(componentName, component);\n }\n};\n\nif (typeof window !== 'undefined' && window.Vue) {\n window.Vue.use(Plugin);\n}\n\nexport default Plugin;\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport moment from \"moment\";\nimport VueMasonry from \"@/components/vue-masonry-css/vue-masonry\";\nimport VueLazyload from \"vue-lazyload\";\nimport \"./css/app.scss\";\nconst loadimage = require(\"@/assets/images/loading.png\");\nconst errorimage = require(\"@/assets/images/loading.png\")\n\nVue.use(VueMasonry);\nVue.use(VueLazyload, {\n preLoad: 1.3,\n error: errorimage,\n loading: loadimage,\n attempt: 1\n});\nVue.prototype.moment = moment;\nnew Vue({\n render: h => h(App)\n}).$mount('#app');\n\n","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--1-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=c55bf38c&prod&lang=scss\"","module.exports = __webpack_public_path__ + \"img/loading.846cb207.png\";","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./ToggleButton.vue?vue&type=style&index=0&id=203e415e&prod&scoped=true&lang=scss\"","export * from \"-!../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--9-oneOf-1-0!../../node_modules/css-loader/dist/cjs.js??ref--9-oneOf-1-1!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/postcss-loader/src/index.js??ref--9-oneOf-1-2!../../node_modules/sass-loader/dist/cjs.js??ref--9-oneOf-1-3!../../node_modules/cache-loader/dist/cjs.js??ref--1-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./AnnualRuns.vue?vue&type=style&index=0&id=25572fc8&prod&lang=scss\""],"sourceRoot":""}