{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/plugins/ipfs_decode.ts","webpack:///./src/App.vue?9e71","webpack:///./src/App.vue?df96","webpack:///./src/App.vue","webpack:///./src/App.vue?bfbe","webpack:///./src/App.vue?7c55","webpack:///./src/components/telegram.vue?02f2","webpack:///./src/components/telegram.vue","webpack:///./src/plugins/vuetify.ts","webpack:///./src/views/Home.vue?3a28","webpack:///./src/views/Home.vue","webpack:///./src/views/Home.vue?8180","webpack:///./src/views/Home.vue?ae50","webpack:///./src/views/About.vue?d0f3","webpack:///./src/views/About.vue","webpack:///./src/views/About.vue?0624","webpack:///./src/views/About.vue?56c6","webpack:///./src/views/Clusters.vue?16e0","webpack:///./src/views/Clusters.vue","webpack:///./src/views/Clusters.vue?cd9e","webpack:///./src/views/Clusters.vue?59a0","webpack:///./src/plugins/router.ts","webpack:///./src/plugins/vuex.ts","webpack:///./src/main.ts"],"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","ipfs_utils","decode","multihash","hashBytes","Buffer","from","digest","multihashBytes","hashfunction","size","set","outputHash","encode","render","this$1","this","_vm","_h","$createElement","_c","_self","attrs","staticClass","_v","_l","item","staticStyle","route","_s","on","bool","notFound","staticRenderFns","extend","computed","routes","component","VApp","VAppBar","VBtn","VMain","VToolbarItems","VToolbar","VToolbarTitle","script","use","icons","values","telegram","onLoadIframe","model","callback","$$v","expression","intToDate","Date","now","toDateString","CONTRACT_ADDRESS","iframe_created","web3","eternalStorage","eternalStorageJson","methods","receiveMessage","event","console","log","lat","$route","query","lng","undefined","sendDataToIframe","y","getFullYear","getMonth","getDate","document","getElementById","innerHTML","epoch","valueOf","getHeatMapData","then","iframe","querySelector","contentWindow","postMessage","timestamp","coords","Promise","resolve","getHashValue","ipfs_hash","fetch","headers","response","json","mounted","addEventListener","beforeDestroy","removeEventListener","created","providers","HttpProvider","eth","Contract","abi","VCol","VContainer","VIcon","VRow","VSlider","VCard","VCardText","VImg","index","Math","round","conc","clusters","sort","a","b","VCardTitle","path","redirect","Home","About","Clusters","router","store","Store","state","config","productionTip","vuetify","h","App","$mount"],"mappings":"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","file":"js/app.75576822.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","import bs58 from 'bs58'\nimport { Multihash } from '@/types/multihash'\n \nvar ipfs_utils = {\n decode(multihash : Multihash){\n let hashBytes : any = Buffer.from(multihash.digest.slice(2), 'hex')\n let multihashBytes = new(hashBytes.constructor)(2+hashBytes.length);\n multihashBytes[0] = multihash.hashfunction;\n multihashBytes[1] = multihash.size;\n multihashBytes.set(hashBytes, 2);\n\n let outputHash = bs58.encode(multihashBytes);\n return outputHash\n }\n}\n\nexport default ipfs_utils","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=style&index=0&id=766d696a&lang=scss&scoped=true&\"","var render = function () {\nvar this$1 = this;\nvar _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-app',[_c('v-app-bar',{attrs:{\"permanent\":\"\",\"app\":\"\",\"flat\":\"\",\"clipped\":\"\"}},[_c('v-toolbar-title',[_c('span',{staticClass:\"ml-16\"},[_vm._v(\"Splash\")])]),_c('v-toolbar-items',{staticClass:\"flex align-center justify-center mr-16\"},_vm._l((_vm.routes),function(item){return _c('v-btn',{key:item.name,staticStyle:{\"margin-right\":\"16px\"},attrs:{\"to\":item.route,\"text\":\"\",\"auto-height\":\"\",\"depressed\":\"\",\"rounded\":\"\"}},[_vm._v(\" \"+_vm._s(item.name)+\" \")])}),1)],1),_c('v-main',[_c('transition',{attrs:{\"mode\":\"out-in\",\"enter-active-class\":\"animate__animated animate__fadeIn\",\"leave-active-class\":\"animate__animated animate__fadeOut\"}},[_c('router-view',{on:{\"not-found\":function (bool) { return this$1.notFound = bool; }}})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\n\n\nexport default Vue.extend({\n name: \"App\",\n computed: {\n routes(): Array<{\n name: string;\n route: string;\n }> {\n return [\n {\n name: \"About\",\n route: \"/about\",\n },\n {\n name: \"Home\",\n route: \"/home\",\n },\n {\n name: \"Clusters\",\n route: \"/clusters\",\n },\n ];\n },\n },\n});\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/ts-loader/index.js??ref--12-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/ts-loader/index.js??ref--12-2!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=766d696a&scoped=true&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=766d696a&lang=scss&scoped=true&\"\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 \"766d696a\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VApp } from 'vuetify/lib/components/VApp';\nimport { VAppBar } from 'vuetify/lib/components/VAppBar';\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VMain } from 'vuetify/lib/components/VMain';\nimport { VToolbarItems } from 'vuetify/lib/components/VToolbar';\nimport { VToolbarTitle } from 'vuetify/lib/components/VToolbar';\ninstallComponents(component, {VApp,VAppBar,VBtn,VMain,VToolbarItems,VToolbarTitle})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('svg',{attrs:{\"fill\":\"#000000\",\"xmlns\":\"http://www.w3.org/2000/svg\",\"viewBox\":\"0 0 50 50\",\"width\":\"50px\",\"height\":\"50px\"}},[_c('path',{attrs:{\"d\":\"M 25 2 C 12.309288 2 2 12.309297 2 25 C 2 37.690703 12.309288 48 25 48 C 37.690712 48 48 37.690703 48 25 C 48 12.309297 37.690712 2 25 2 z M 25 4 C 36.609833 4 46 13.390175 46 25 C 46 36.609825 36.609833 46 25 46 C 13.390167 46 4 36.609825 4 25 C 4 13.390175 13.390167 4 25 4 z M 34.087891 14.035156 C 33.403891 14.035156 32.635328 14.193578 31.736328 14.517578 C 30.340328 15.020578 13.920734 21.992156 12.052734 22.785156 C 10.984734 23.239156 8.9960938 24.083656 8.9960938 26.097656 C 8.9960938 27.432656 9.7783594 28.3875 11.318359 28.9375 C 12.146359 29.2325 14.112906 29.828578 15.253906 30.142578 C 15.737906 30.275578 16.25225 30.34375 16.78125 30.34375 C 17.81625 30.34375 18.857828 30.085859 19.673828 29.630859 C 19.666828 29.798859 19.671406 29.968672 19.691406 30.138672 C 19.814406 31.188672 20.461875 32.17625 21.421875 32.78125 C 22.049875 33.17725 27.179312 36.614156 27.945312 37.160156 C 29.021313 37.929156 30.210813 38.335938 31.382812 38.335938 C 33.622813 38.335938 34.374328 36.023109 34.736328 34.912109 C 35.261328 33.299109 37.227219 20.182141 37.449219 17.869141 C 37.600219 16.284141 36.939641 14.978953 35.681641 14.376953 C 35.210641 14.149953 34.672891 14.035156 34.087891 14.035156 z M 34.087891 16.035156 C 34.362891 16.035156 34.608406 16.080641 34.816406 16.181641 C 35.289406 16.408641 35.530031 16.914688 35.457031 17.679688 C 35.215031 20.202687 33.253938 33.008969 32.835938 34.292969 C 32.477938 35.390969 32.100813 36.335938 31.382812 36.335938 C 30.664813 36.335938 29.880422 36.08425 29.107422 35.53125 C 28.334422 34.97925 23.201281 31.536891 22.488281 31.087891 C 21.863281 30.693891 21.201813 29.711719 22.132812 28.761719 C 22.899812 27.979719 28.717844 22.332938 29.214844 21.835938 C 29.584844 21.464938 29.411828 21.017578 29.048828 21.017578 C 28.923828 21.017578 28.774141 21.070266 28.619141 21.197266 C 28.011141 21.694266 19.534781 27.366266 18.800781 27.822266 C 18.314781 28.124266 17.56225 28.341797 16.78125 28.341797 C 16.44825 28.341797 16.111109 28.301891 15.787109 28.212891 C 14.659109 27.901891 12.750187 27.322734 11.992188 27.052734 C 11.263188 26.792734 10.998047 26.543656 10.998047 26.097656 C 10.998047 25.463656 11.892938 25.026 12.835938 24.625 C 13.831938 24.202 31.066062 16.883437 32.414062 16.398438 C 33.038062 16.172438 33.608891 16.035156 34.087891 16.035156 z\"}})])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./telegram.vue?vue&type=template&id=461c70d1&\"\nvar script = {}\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","import Vue from \"vue\";\nimport Vuetify from \"vuetify\";\nimport telegram from \"@/components/telegram.vue\";\n\nVue.use(Vuetify);\n\nexport default new Vuetify({\n icons: {\n values: {\n telegram: {\n component: telegram,\n },\n },\n },\n});\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"px-12 pt-4 pb-16 fill-height\",attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"d-flex align-center justify-center\",staticStyle:{\"height\":\"90%\"}},[_c('v-col',{attrs:{\"cols\":\"4\"}},[_c('h2',[_vm._v(\" What Does This Map Show Me? \")]),_c('p',{staticStyle:{\"text-align\":\"justify\",\"text-justify\":\"inter-word\"}},[_vm._v(\" The map displays the \"),_c('b',[_vm._v(\"concentration of microplastics in the ocean\")]),_vm._v(\" and using \"),_c('b',[_vm._v(\"deep learning\")]),_vm._v(\", is able to \"),_c('b',[_vm._v(\"predict the motion and concentration of microplastics in the future\")]),_vm._v(\". In shorter timescales, this map would be helpful to facilitate cleanup efforts in the ocean by \"),_c('b',[_vm._v(\"highlighting areas of high microplastics concentration\")]),_vm._v(\", which is directly correlated with general plastic pollution in the region. In longer timescales, we would be able to see \"),_c('b',[_vm._v(\"the dangers if this problem is left unchecked\")]),_vm._v(\", allowing us to see how our oceans may end up if we do not cut down on plastic waste. \"),_c('br'),_c('br'),_vm._v(\" This map is predicting the microplastics concentration for \"),_c('b',{attrs:{\"id\":\"date\"}})])]),_c('v-col',{staticStyle:{\"height\":\"80%\"},attrs:{\"cols\":\"8\"}},[_c('iframe',{attrs:{\"id\":\"leaflet\",\"src\":\"leaflet.html\",\"frameborder\":\"0\",\"width\":\"100%\",\"height\":\"100%\"},on:{\"load\":_vm.onLoadIframe}})]),_c('v-row',{staticClass:\"d-flex align-center\"},[_c('p',{staticClass:\"mr-4\"},[_vm._v(\"Select a date to display the data: \")]),_c('v-slider',{attrs:{\"persistent-hint\":\"Select a date\",\"min\":\"0\",\"max\":\"365\",\"step\":\"1\"},model:{value:(_vm.value),callback:function ($$v) {_vm.value=$$v},expression:\"value\"}}),_c('p',{staticClass:\"mt-0 pt-0\"},[_vm._v(_vm._s(_vm.intToDate))])],1)],1),_c('v-row',{staticClass:\"d-flex align-start justify-center mb-4\"},[_c('p',{staticClass:\"mr-2\"},[_vm._v(\"Join our Telegram channel! \"),_c('br'),_vm._v(\" Get updates on clusters through our bot!\")]),_c('a',{attrs:{\"href\":\"https://t.me/uplastics\",\"target\":\"_blank\"}},[_c('v-btn',{attrs:{\"width\":\"50px\",\"height\":\"50px\",\"icon\":\"\"}},[_c('v-icon',{attrs:{\"size\":\"50px\"}},[_vm._v(\"$telegram\")])],1)],1)])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport Web3 from \"web3\";\nimport ipfs_utils from \"@/plugins/ipfs_decode\";\nimport { Multihash } from \"@/types/multihash\";\nimport { Eth } from \"web3-eth\";\nimport { Contract } from \"web3-eth-contract\";\n\n\nexport default Vue.extend({\n name: \"Home\",\n computed: {\n intToDate() {\n return (new Date(Date.now() - 1000 * 60 * 60 * 24 * (365 - this.value)).toDateString());\n }\n },\n data: () =>(\n {\n CONTRACT_ADDRESS: \"0x75BCc6456812A005084391ADfBB21c6C54726db5\",\n iframe_created: false,\n web3: {} as Web3,\n eternalStorage: {} as Contract,\n eternalStorageJson: require(\"./../components/EternalStorage.json\"),\n value: 365,\n }\n ),\n methods: {\n receiveMessage(event : any) {\n if (event.data === \"idle\") {\n console.log(\"POC communication between iframe and parent\");\n\n }\n },\n\n onLoadIframe() {\n console.log(\"iframe created\");\n this.iframe_created = true;\n const lat = this.$route.query.lat;\n const lng = this.$route.query.lng;\n if (typeof lat != undefined && typeof lng != undefined) {\n this.sendDataToIframe({event: \"setCenter\", data: {lat: lat, lng: lng}});\n }\n const n = new Date();\n const y = n.getFullYear();\n const m = n.getMonth() + 1;\n const d = n.getDate();\n document.getElementById(\"date\")!.innerHTML = m + \"/\" + d + \"/\" + y;\n const epoch = new Date(y, m-1, d, 8, 0).valueOf();\n console.log(epoch)\n this.getHeatMapData(epoch+1, \"0x0\").then(\n data => {\n this.sendDataToIframe({event: \"sendData\", data: data});\n }\n );\n },\n sendDataToIframe(data: {event: string, data: any}) {\n if (this.iframe_created) {\n const iframe = document.querySelector(\"iframe\");\n if (iframe != null && iframe.contentWindow != null) {\n iframe.contentWindow.postMessage({\n \"event\": data.event,\n \"data\": data.data\n }, \"*\");\n }\n }\n else {\n console.log(\"iframe not created, cant send message\");\n }\n },\n\n getHeatMapData(timestamp : number, coords : string) : Promise{\n console.log(\"called\");\n return new Promise(\n resolve => {\n this.eternalStorage.methods.getHashValue(timestamp, coords).call().then(\n function(multihash : Multihash){\n let ipfs_hash = ipfs_utils.decode(multihash);\n console.log(ipfs_hash);\n fetch(\"https://cf-ipfs.com/ipfs/\" + ipfs_hash, {\n headers: {\n \"accept\": \"application/json\",\n }\n }).then(\n response => response.json().then(\n data => {\n //console.log(data)\n resolve(data);\n }\n )\n );\n }\n );\n }\n );\n }\n },\n mounted () {\n window.addEventListener(\"message\", this.receiveMessage);\n },\n beforeDestroy () {\n window.removeEventListener(\"message\", this.receiveMessage);\n },\n created(){\n this.web3 = new Web3(\n new Web3.providers.HttpProvider(\n `https://goerli.infura.io/v3/4fb5537dd7124137a2bc95668e973d76`\n )\n );\n this.eternalStorage = new this.web3.eth.Contract(this.eternalStorageJson.abi, this.CONTRACT_ADDRESS);\n }\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--12-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--12-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Home.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Home.vue?vue&type=template&id=b2fb54bc&\"\nimport script from \"./Home.vue?vue&type=script&lang=ts&\"\nexport * from \"./Home.vue?vue&type=script&lang=ts&\"\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\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VBtn } from 'vuetify/lib/components/VBtn';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VIcon } from 'vuetify/lib/components/VIcon';\nimport { VRow } from 'vuetify/lib/components/VGrid';\nimport { VSlider } from 'vuetify/lib/components/VSlider';\ninstallComponents(component, {VBtn,VCol,VContainer,VIcon,VRow,VSlider})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{attrs:{\"fluid\":\"\"}},[_c('v-row',{staticClass:\"pa-6\"},[_c('v-col',{attrs:{\"cols\":\"2\"}}),_c('v-col',{staticClass:\"d-flex justify-center\",staticStyle:{\"font-size\":\"larger\"},attrs:{\"cols\":\"4\"}},[_c('div',{staticStyle:{\"justify-content\":\"center\"}},[_c('h2',{staticStyle:{\"text-align\":\"center\"}},[_vm._v(\"What are microplastics?\")]),_vm._v(\" \"),_c('br'),_c('p',{staticStyle:{\"text-align\":\"justify\",\"text-justify\":\"inter-word\"}},[_vm._v(\" Microplastics are tiny plastic particles less than five millimeters in diameter. There are two categories of microplastics, primary microplastics and secondary microplastics. Microplastics are shaping into one of the worst environmental crises of our time, yet not enough research is being done. \")])])]),_c('v-col',{staticClass:\"d-flex justify-center\",attrs:{\"cols\":\"6\"}},[_c('v-card',[_c('v-img',{attrs:{\"src\":\"images/primary_and_secondary_plastics.png\",\"alt\":\"Diagram explaining primary and secondary microplastics\"}}),_c('v-card-text',[_vm._v(\"Secondary microplastics make up a much larger proportion of microplastics\")])],1)],1)],1),_c('v-row',{staticClass:\"pa-6\"},[_c('v-col',{staticClass:\"d-flex justify-center\",attrs:{\"cols\":\"4\"}},[_c('v-card',[_c('v-img',{attrs:{\"src\":\"images/nurdles.png\",\"alt\":\"Image of a handful of nurdles\"}}),_c('v-card-text',[_vm._v(\"Nurdles are the building blocks of plastic products, and 230,000 tonnes of nurdles are dumped into the ocean every year \")])],1)],1),_c('v-col',{staticClass:\"d-flex justify-center\",attrs:{\"cols\":\"8\"}},[_c('v-row',[_c('v-col',{staticStyle:{\"font-size\":\"larger\"},attrs:{\"cols\":\"12\"}},[_c('div',{staticStyle:{\"justify-content\":\"center\"}},[_c('p',{staticStyle:{\"text-align\":\"justify\",\"text-justify\":\"inter-word\"}},[_vm._v(\" Primary microplastics are plastic materials intentionally designed to be small, as part of commercial or industrial use. These primary microplastics can arise in the form of beauty or cosmetic products, plastic fabric, or nurdles which are the small raw materials to produce plastic in industrial settings. \")])])]),_c('v-col',{attrs:{\"cols\":\"12\"}},[_c('v-row',[_c('v-col',{attrs:{\"cols\":\"4\"}}),_c('v-col',{staticClass:\"d-flex justify-center\",staticStyle:{\"font-size\":\"larger\"},attrs:{\"cols\":\"6\"}},[_c('div',{staticStyle:{\"justify-content\":\"center\"}},[_c('p',{staticStyle:{\"text-align\":\"justify\",\"text-justify\":\"inter-word\"}},[_vm._v(\" Secondary microplastics come from the breakdown of normal plastic, such as plastic bottles and bags. The breakdown can be caused by wind abrasion, radiation from the sun, and ocean currents \")])])]),_c('v-col',{staticClass:\"d-flex justify-center\",attrs:{\"cols\":\"2\"}},[_c('v-card',{attrs:{\"outlined\":\"\",\"color\":\"transparent\"}},[_c('v-img',{staticClass:\"rounded-lg\",attrs:{\"src\":\"images/plastic_bottle.png\",\"alt\":\"Image of a water bottle in the sea breaking down into microplastics\"}})],1)],1)],1)],1)],1)],1)],1),_c('div',{staticStyle:{\"text-align\":\"center\",\"width\":\"50%\",\"margin\":\"0 auto\"}},[_c('b',[_vm._v(\"How can I help out?\")]),_vm._v(\" \"),_c('br'),_c('p',[_vm._v(\" Coastal cleanup efforts can mitigate the risks that plastic pollution brings to the animals that live on the beach. You can read more about coastal cleanup efforts or organise one in Singapore using the links below. Read up on the appropriate preparations and gather a group of people to host a beach clean up! \")]),_c('a',{attrs:{\"href\":\"https://oceanconservancy.org/trash-free-seas/international-coastal-cleanup/\"}},[_vm._v(\"https://oceanconservancy.org/trash-free-seas/international-coastal-cleanup/\")]),_vm._v(\" \"),_c('br'),_c('a',{attrs:{\"href\":\"https://www.publichygienecouncil.sg/beachcleanup\"}},[_vm._v(\"https://www.publichygienecouncil.sg/beachcleanup\")]),_vm._v(\" \"),_c('br'),_vm._v(\" \"),_c('br'),_c('p',[_vm._v(\" There are also many groups focusing on cleaning up the large garbage patches in the ocean, While we are unable to go out there and clean it up ourselves, we can donate to these organisations that focuses on making our oceans a cleaner place. \")]),_c('a',{attrs:{\"href\":\"http://www.oceansplasticleanup.com/\"}},[_vm._v(\"http://www.oceansplasticleanup.com/\")]),_vm._v(\" \"),_c('br'),_c('a',{attrs:{\"href\":\"https://teamseas.org/\"}},[_vm._v(\"https://teamseas.org/\")]),_vm._v(\" \"),_c('br')])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\n\nexport default Vue.extend({\n name: \"About\"\n});\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--12-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--12-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./About.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./About.vue?vue&type=template&id=3fa5a841&scoped=true&\"\nimport script from \"./About.vue?vue&type=script&lang=ts&\"\nexport * from \"./About.vue?vue&type=script&lang=ts&\"\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 \"3fa5a841\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VImg } from 'vuetify/lib/components/VImg';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCol,VContainer,VImg,VRow})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('v-container',{staticClass:\"px-12 py-6\",attrs:{\"fluid\":\"\"}},[_c('h1',[_vm._v(\"Top 10 largest clusters\")]),_c('p',[_vm._v(\" Below lists the top 10 areas with the largest microplastic concentrations \"),_c('br'),_vm._v(\" Click to view them on our interactive map! \")]),_c('div',{staticStyle:{\"max-width\":\"80rem\"}},[_c('v-row',{staticClass:\"mt-4\"},_vm._l((_vm.clusters),function(item,index){return _c('v-col',{key:index,attrs:{\"cols\":\"12\",\"lg\":\"4\",\"md\":\"8\"}},[_c('router-link',{staticClass:\"unit-card\",staticStyle:{\"text-decoration\":\"none\",\"color\":\"inherit\"},attrs:{\"to\":'/home?lat=' + item.lat + '&lng=' + item.lng}},[_c('v-card',{staticClass:\"pa-4 fill-height d-flex flex-column\",attrs:{\"elevation\":\"2\"}},[_c('v-card-title',[_vm._v(\"Concentration: \"+_vm._s(Math.round(item.conc*100)/100))]),_c('v-card-text',[_vm._v(\" Lat, Long: \"+_vm._s(Math.round(item.lat*1000)/1000)+\", \"+_vm._s(Math.round(item.lng*1000)/1000)),_c('br')])],1)],1)],1)}),1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from \"vue\";\nimport {Multihash} from \"@/types/multihash\";\nimport ipfs_utils from \"@/plugins/ipfs_decode\";\nimport Web3 from \"web3\";\nimport {Contract} from \"web3-eth-contract\";\nexport default Vue.extend({\n name: \"Clusters\",\n data: () =>(\n {\n CONTRACT_ADDRESS: \"0x75BCc6456812A005084391ADfBB21c6C54726db5\",\n iframe_created: false,\n web3: {} as Web3,\n eternalStorage: {} as Contract,\n eternalStorageJson: require(\"./../components/EternalStorage.json\"),\n clusters: {} as Array<{lat: number, lng: number, conc: number}>,\n }\n ),\n methods: {\n getHeatMapData(timestamp : number, coords : string) : Promise{\n console.log(\"called\");\n return new Promise(\n resolve => {\n this.eternalStorage.methods.getHashValue(timestamp, coords).call().then(\n function(multihash : Multihash){\n let ipfs_hash = ipfs_utils.decode(multihash);\n console.log(ipfs_hash);\n fetch(\"https://cf-ipfs.com/ipfs/\" + ipfs_hash, {\n headers: {\n \"accept\": \"application/json\",\n }\n }).then(\n response => response.json().then(\n data => {\n //console.log(data)\n resolve(data);\n }\n )\n );\n }\n );\n }\n );\n }\n },\n mounted(){\n this.web3 = new Web3(\n new Web3.providers.HttpProvider(\n `https://goerli.infura.io/v3/4fb5537dd7124137a2bc95668e973d76`\n )\n );\n this.eternalStorage = new this.web3.eth.Contract(this.eternalStorageJson.abi, this.CONTRACT_ADDRESS);\n\n this.getHeatMapData(120, \"0x0\").then(data => {\n this.clusters = data.data;\n this.clusters = this.clusters.sort((a, b) => b.conc - a.conc).slice(0, 10);\n });\n }\n});\n\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--12-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Clusters.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/ts-loader/index.js??ref--12-2!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Clusters.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Clusters.vue?vue&type=template&id=7700c188&scoped=true&\"\nimport script from \"./Clusters.vue?vue&type=script&lang=ts&\"\nexport * from \"./Clusters.vue?vue&type=script&lang=ts&\"\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 \"7700c188\",\n null\n \n)\n\nexport default component.exports\n\n/* vuetify-loader */\nimport installComponents from \"!../../node_modules/vuetify-loader/lib/runtime/installComponents.js\"\nimport { VCard } from 'vuetify/lib/components/VCard';\nimport { VCardText } from 'vuetify/lib/components/VCard';\nimport { VCardTitle } from 'vuetify/lib/components/VCard';\nimport { VCol } from 'vuetify/lib/components/VGrid';\nimport { VContainer } from 'vuetify/lib/components/VGrid';\nimport { VRow } from 'vuetify/lib/components/VGrid';\ninstallComponents(component, {VCard,VCardText,VCardTitle,VCol,VContainer,VRow})\n","import Vue from \"vue\";\r\nimport VueRouter, {RouteConfig} from \"vue-router\";\r\nimport Home from \"@/views/Home.vue\";\r\nimport About from \"@/views/About.vue\";\r\nimport Clusters from \"@/views/Clusters.vue\";\r\n\r\nVue.use(VueRouter);\r\n\r\nconst routes: Array = [\r\n {\r\n path: \"/\",\r\n redirect: \"/home\",\r\n },\r\n {\r\n path: \"/home\",\r\n component: Home,\r\n },\r\n {\r\n path: \"/about\",\r\n component: About,\r\n },\r\n {\r\n path: \"/clusters\",\r\n component: Clusters,\r\n },\r\n];\r\n\r\nconst router = new VueRouter(\r\n {\r\n mode: \"history\",\r\n routes,\r\n }\r\n);\r\n\r\nexport default router;\r\n","import Vue from \"vue\";\nimport Vuex from \"vuex\";\n\nVue.use(Vuex);\n\nconst store = new Vuex.Store({\n state: {\n }\n});\n\nexport default store;\n\n","import Vue from \"vue\";\nimport App from \"./App.vue\";\nimport vuetify from \"./plugins/vuetify\";\nimport router from \"./plugins/router\";\nimport store from \"@/plugins/vuex\";\nimport 'leaflet/dist/leaflet.css';\n\nVue.config.productionTip = false;\n\nnew Vue({\n vuetify,\n router,\n store,\n render(h) { return h(App); },\n}).$mount(\"#app\");\n"],"sourceRoot":""}