{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/App.vue?7e02","webpack:///./src/assets/celsius.svg","webpack:///./src/assets sync ^\\.\\/.*$","webpack:///./src/assets/robinhood.svg","webpack:///./src/assets/kraken.png","webpack:///./src/assets/coinbase.svg","webpack:///./src/assets/nexo.svg","webpack:///./src/assets/etoro.svg","webpack:///./src/components/BrokerFieldSource.vue?7bf8","webpack:///./src/components/BrokerFieldSource.vue","webpack:///./src/components/BrokerFieldSource.vue?41be","webpack:///./src/components/BrokerFieldSource.vue?c6ed","webpack:///./src/assets/hodlnaut.png","webpack:///./src/modules/broker.ts","webpack:///./src/modules/paginatedTable.ts","webpack:///./src/defaultSortOrder.ts","webpack:///./src/modules/selectiveBrokerCompare.ts","webpack:///./src/modules/individualBroker.ts","webpack:///./src/modules/brokerTable.ts","webpack:///./src/modules/history.ts","webpack:///./src/store.ts","webpack:///./src/event-bus.ts","webpack:///./src/meta.ts","webpack:///./src/assets/apple-app-store.svg","webpack:///./src/assets/webull.svg","webpack:///./src/assets/blockfi-light.svg","webpack:///./src/components/Modal.vue?cb4c","webpack:///./src/components/Modal.vue","webpack:///./src/components/Modal.vue?8551","webpack:///./src/components/Modal.vue?ea02","webpack:///./src/assets/google-play-store.svg","webpack:///./src/components/BrokerFieldComment.vue?b295","webpack:///./src/components/BrokerFieldComment.vue","webpack:///./src/components/BrokerFieldComment.vue?2943","webpack:///./src/components/BrokerFieldComment.vue?9381","webpack:///./src/components/BackButton.vue?ef8c","webpack:///./src/components/BackButton.vue","webpack:///./src/components/BackButton.vue?e008","webpack:///./src/components/BackButton.vue?9d38","webpack:///./src/assets/voyager.png","webpack:///./src/enums.ts","webpack:///./src/components/BrokerLogoLink.vue?51f1","webpack:///./src/components/BrokerLogoLink.vue","webpack:///./src/components/BrokerLogoLink.vue?0cb0","webpack:///./src/components/BrokerLogoLink.vue?38bf","webpack:///./src/components/BrokerFieldUpdated.vue?bdbd","webpack:///./src/components/BrokerFieldUpdated.vue","webpack:///./src/components/BrokerFieldUpdated.vue?2b29","webpack:///./src/components/BrokerFieldUpdated.vue?45b2","webpack:///./src/assets/logo.svg","webpack:///./src/assets/ftxus.png","webpack:///./src/assets/gemini.png","webpack:///./src/assets/ftxus.svg","webpack:///./src/assets/crypto-dot-com.png","webpack:///./src/assets/coinloan.svg","webpack:///./src/title.ts","webpack:///./src/App.vue?276e","webpack:///./src/components/HeaderOverlay/Overlay.vue?3a72","webpack:///./src/local-store.ts","webpack:///./src/components/HeaderOverlay/Overlay.vue","webpack:///./src/components/HeaderOverlay/Overlay.vue?2364","webpack:///./src/components/HeaderOverlay/Overlay.vue?c508","webpack:///./src/App.vue","webpack:///./src/components/PaginatedTable.vue","webpack:///./src/App.vue?0ab4","webpack:///./src/App.vue?bff9","webpack:///./src/views/BrokerTableView.vue?60d0","webpack:///./src/components/BrokerTable/BrokerTable.vue?7906","webpack:///./src/components/PaginatedTable.vue?5b2a","webpack:///./src/components/PaginatedTable.vue?b2f4","webpack:///./src/components/PaginatedTable.vue?8848","webpack:///./src/components/TablePagination.vue?c35a","webpack:///./src/components/TablePagination.vue","webpack:///./src/components/TablePagination.vue?380b","webpack:///./src/components/TablePagination.vue?5b33","webpack:///./src/components/BrokerTable/BrokerTableRow.vue?ddf0","webpack:///./src/components/BrokerTable/BrokerTableRow.vue","webpack:///./src/components/BrokerTable/BrokerTableRow.vue?5d50","webpack:///./src/components/BrokerTable/BrokerTableRow.vue?a2d0","webpack:///./src/components/BrokerTable/FieldDataModal.vue?ed07","webpack:///./src/components/BrokerTable/FieldDataModal.vue","webpack:///./src/components/BrokerTable/FieldDataModal.vue?ddd2","webpack:///./src/components/BrokerTable/FieldDataModal.vue?723b","webpack:///./src/components/BrokerTable/BrokerTable.vue","webpack:///./src/components/BrokerTable/BrokerTable.vue?f655","webpack:///./src/components/BrokerTable/BrokerTable.vue?38f0","webpack:///./src/components/BrokerTable/BrokersFooterComparison.vue?28a3","webpack:///./src/components/BrokerTable/BrokersFooterComparison.vue","webpack:///./src/components/BrokerTable/BrokersFooterComparison.vue?41d8","webpack:///./src/components/BrokerTable/BrokersFooterComparison.vue?3cac","webpack:///src/views/BrokerTableView.vue","webpack:///./src/views/BrokerTableView.vue?f4b1","webpack:///./src/views/BrokerTableView.vue","webpack:///./src/router/index.ts","webpack:///./src/wb.ts","webpack:///./src/main.ts","webpack:///./src/assets/logo.png","webpack:///./src/assets/youhodler.svg","webpack:///./src/fieldFormatters/MobileAppsFieldFormatter.ts","webpack:///./src/api/Api.ts","webpack:///./src/fieldFormatters/FieldFormatter.ts","webpack:///./src/fieldFormatters/YesNoFieldFormatter.ts","webpack:///./src/fieldFormatters/UrlFieldFormatter.ts","webpack:///./src/fieldFormatters/UrlListFieldFormatter.ts","webpack:///./src/fieldFormatters/SocialWebsitesFieldFormatter.ts","webpack:///./src/fieldFormatters/IntegerFieldFormatter.ts","webpack:///./src/fieldFormatters/LocationFieldFormatter.ts","webpack:///./src/fieldFormatters/PercentRangeFieldFormatter.ts","webpack:///./src/fieldFormatters/PercentFieldFormatter.ts","webpack:///./src/fieldFormatters/TransferFieldFormatter.ts","webpack:///./src/data.ts","webpack:///./src/assets/tradestation.png","webpack:///./src/assets/kucoin.svg","webpack:///./src/assets/blockfi-dark.svg"],"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","jsonpScriptSrc","p","exports","module","l","e","promises","installedChunkData","promise","Promise","resolve","reject","onScriptComplete","script","document","createElement","charset","timeout","nc","setAttribute","src","error","Error","event","onerror","onload","clearTimeout","chunk","errorType","type","realSrc","target","message","name","request","undefined","setTimeout","head","appendChild","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","err","console","jsonpArray","window","oldJsonpFunction","slice","map","webpackContext","req","id","webpackContextResolve","code","keys","render","_vm","this","_h","$createElement","_c","_self","staticClass","brokerFieldData","attrs","sourceUrl","domProps","_s","displayUrl","_v","_e","staticRenderFns","URL","host","replace","component","canShare","isLoading","cryptocurrencies","brokers","categories","fields","categorySlug","category","find","slug","filter","field","brokerCategoryId","brokerCategoriesById","forEach","empty","description","brokerCategoriesBySlug","General","Save","Trade","Misc","fieldsById","obj","count","pages","from","to","page","sortIndex","NaN","sortOrder","Asc","table","headerRow","cells","bodyRows","delta","defaultSortOrder","Url","Headquarters","Founded","Regulated","Desc","Regulators","DepositAch","DepositBtc","DepositEth","DepositLtc","DepositUsdc","WithdrawalAch","WithdrawalBtc","WithdrawalEth","WithdrawalLtc","WithdrawalUsdc","MobileApps","Social","BtcSaveApy","EthSaveApy","AdaSaveApy","DotSaveApy","UniSaveApy","BchSaveApy","LinkSaveApy","LtcSaveApy","BatSaveApy","PaxgSaveApy","UsdcSaveApy","GusdSaveApy","UsdtSaveApy","Maker","Maker100k","Maker1m","Taker","Taker100k","Taker1m","BtcUsd","EthUsd","AdaUsd","DotUsd","UniUsd","BchUsd","LinkUsd","LtcUsd","BatUsd","PaxgUsd","slugs","sortField","modifyComparisonState","List","moreInfo","store","state","broker","b","includes","sort","a","localeCompare","alphaSortValue","numericSortValue","reverse","alphabetizedSelectedBrokers","join","brokerFieldSlug","fieldDefaultSortOrder","fieldAlternateSortOrder","maxComparingBrokers","comparingBrokers","supportedCryptocurrencies","Any","regulationStatus","headquartersLocation","Anywhere","selectCryptocurrencies","brokerTableCommonFields","brokerFieldsById","getters","brokerCategory","cryptocurrency","broker_field_ids","Select","selectCryptocurrencyFields","concat","brokerTableCustomFields","brokerTableFields","indexOf","text","fieldRecord","sub","filteredAndSortedBrokers","html","source","comment","JSON","parse","stringify","defaultFilter","UnitedStates","headquarters","countryCode","Europe","continentCode","Unregulated","isNaN","isEmpty","index","findIndex","backButtonTexts","use","Store","paginatedTable","selectiveBrokerCompare","individualBroker","brokerTable","history","EventBus","defaults","title","url","keywords","split","keyword","trim","ogTitle","querySelector","metaDescription","ogDescription","ogUrl","metaKeywords","metaInfo","info","assign","content","base","charAt","substring","directives","rawName","expression","on","$event","preventDefault","onClose","arguments","stopPropagation","_t","$slots","$emit","$on","toLowerCase","open","Boolean","onClick","backButtonText","back","$store","SupportedCryptocurrencies","RegulationStatus","HeadquartersLocation","FieldType","BrokerSlug","BrokerCategorySlug","BrokerFieldSlug","SortOrder","ContinentCode","FieldFormat","SwipeDirection","HeaderOverlay","ModifyComparisonState","logo","displayDate","updatedAt","Date","toLocaleDateString","onSearchClick","headerOverlay","None","headerOverlayToggle","_m","onSubmit","Search","ref","staticStyle","composing","searchQuery","_l","searchResult","onSelect","searchResults","recentSearchBrokers","recentSearchBroker","removeRecentSearchBroker","localStorage","setItem","item","getItem","RecentSearchBrokerIds","recentSearchBrokerIds","$nextTick","results","getFuse","search","$fuse","includeScore","unshift","path","$router","currentRoute","then","$refs","HTMLInputElement","focus","activeElement","Number","components","BrokerLogoLink","showResponsiveHelper","threshold","Math","min","innerWidth","$onResizeTimeout","$touchStartCoordinates","x","y","$touchEndCoordinates","commit","brokerCategories","brokerFields","navigator","addEventListener","touches","screenX","screenY","swipe","getSwipe","direction","changedTouches","passive","abs","Up","Down","Left","Right","Overlay","ArrowState","class","isOpen","scopedSlots","_u","fn","proxy","_q","Array","isArray","_i","$$a","$$el","$$c","checked","$$v","$$i","ticker","isDefaultFilter","resetFilterToDefault","row","onSort","showFieldDataModal","modalBroker","modalBrokerFieldData","modalBrokerFieldSlug","isFieldDataModalOpen","header","h","hidden","range","cell","isPreviousPage","arrowLeft","Invisible","PartiallyVisible","isNextPage","arrowRight","onResize","containerRect","$el","parentElement","getBoundingClientRect","containerWidth","width","pageWidth","querySelectorAll","el","cellRect","cellWidth","floor","calculatePages","max","Node","container","HTMLElement","contains","FullyVisible","checkboxClasses","checkboxTitle","onCompareClick","isComparingBroker","BrokerTableRowProps","extend","props","isMaxComparingBrokers","brokerField","String","BrokerFieldUpdated","BrokerFieldSource","Modal","BrokerFieldComment","tableCellPosition","syncSort","updateData","FieldDataModal","BrokerTableRow","PaginatedTable","TablePagination","BackButton","compareLinkTo","resetComparingBrokers","comparingBroker","toggleComparingBroker","comparingBrokersSorted","beforeRouteEnter","next","BrokerTable","BrokersFooterComparison","routes","BrokerTableView","router","scrollBehavior","getElementById","scrollIntoView","beforeEach","onpopstate","wb","location","reload","register","config","productionTip","log","$mount","AppStore","endpoint","Api","_instance","response","getHtml","getNumericSortValue","getAlphaSortValue","getIsEmpty","isLast","appStores","Apple","Google","appStoreTitles","appStore","contents","svg","SocialWebsitesFieldFormatter","facebookSvg","linkedInSvg","twitterSvg","countryName","PercentRangeFieldFormatter","numberFormat","format","Intl","NumberFormat","style","minimumFractionDigits","maximumFractionDigits","MIN_VALUE","PercentFieldFormatter","amount","percent","networkFee","transferData","TransferFieldFormatter","percentNumberFormat","asset","getHtmlSegment","instance","getBrokers","getBrokerCategories","getBrokerFields","getCryptocurrencies","legitBrokers","legitBroker","getData"],"mappings":"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","file":"js/app.65f75922.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// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"broker\":\"broker\",\"compare\":\"compare\"}[chunkId]||chunkId) + \".\" + {\"broker\":\"90f90522\",\"compare\":\"dc657c44\"}[chunkId] + \".js\"\n \t}\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 \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\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 \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\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--6-oneOf-1-0!../node_modules/css-loader/dist/cjs.js??ref--6-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--6-oneOf-1-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=style&index=0&lang=css&\"","module.exports = __webpack_public_path__ + \"img/celsius.7e26af6a.svg\";","var map = {\n\t\"./apple-app-store.svg\": \"5aa8\",\n\t\"./blockfi-dark.svg\": \"fd06\",\n\t\"./blockfi-light.svg\": \"6139\",\n\t\"./celsius.svg\": \"1311\",\n\t\"./coinbase.svg\": \"21f4\",\n\t\"./coinloan.svg\": \"bf7d\",\n\t\"./crypto-dot-com.png\": \"be65\",\n\t\"./etoro.svg\": \"27f0\",\n\t\"./ftxus.png\": \"9c2c\",\n\t\"./ftxus.svg\": \"ae9f\",\n\t\"./gemini.png\": \"9ffa\",\n\t\"./google-play-store.svg\": \"729c\",\n\t\"./hodlnaut.png\": \"3412\",\n\t\"./kraken.png\": \"1f62\",\n\t\"./kucoin.svg\": \"fb67\",\n\t\"./logo.png\": \"cf05\",\n\t\"./logo.svg\": \"9b19\",\n\t\"./nexo.svg\": \"2278\",\n\t\"./robinhood.svg\": \"17f4\",\n\t\"./styles/index.css\": \"c898\",\n\t\"./tradestation.png\": \"ebc3\",\n\t\"./voyager.png\": \"7ce4\",\n\t\"./webull.svg\": \"5e39\",\n\t\"./youhodler.svg\": \"e706\"\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 = \"1771\";","module.exports = __webpack_public_path__ + \"img/robinhood.1c1e905e.svg\";","module.exports = __webpack_public_path__ + \"img/kraken.9e23a58f.png\";","module.exports = __webpack_public_path__ + \"img/coinbase.ed315941.svg\";","module.exports = __webpack_public_path__ + \"img/nexo.2fda4e5b.svg\";","module.exports = __webpack_public_path__ + \"img/etoro.1dae49d0.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.brokerFieldData)?_c('div',{staticClass:\"text-gray-500 text-sm\"},[(_vm.brokerFieldData.sourceUrl)?[_c('a',{staticClass:\"inline-flex space-x-1 items-center group\",attrs:{\"href\":_vm.brokerFieldData.sourceUrl,\"target\":\"_blank\",\"rel\":\"noopener\"}},[_c('span',{staticClass:\"group-hover:underline\",domProps:{\"textContent\":_vm._s(_vm.displayUrl)}}),_c('svg',{staticClass:\"bi bi-box-arrow-up-right\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M8.636 3.5a.5.5 0 0 0-.5-.5H1.5A1.5 1.5 0 0 0 0 4.5v10A1.5 1.5 0 0 0 1.5 16h10a1.5 1.5 0 0 0 1.5-1.5V7.864a.5.5 0 0 0-1 0V14.5a.5.5 0 0 1-.5.5h-10a.5.5 0 0 1-.5-.5v-10a.5.5 0 0 1 .5-.5h6.636a.5.5 0 0 0 .5-.5z\"}}),_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M16 .5a.5.5 0 0 0-.5-.5h-5a.5.5 0 0 0 0 1h3.793L6.146 9.146a.5.5 0 1 0 .708.708L15 1.707V5.5a.5.5 0 0 0 1 0v-5z\"}})])])]:[_c('span',{staticClass:\"text-gray-300\"},[_vm._v(\"-\")])]],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport {Component, Prop, Vue} from 'vue-property-decorator';\nimport {FieldData} from \"@/interfaces\";\n\n@Component\nexport default class BrokerFieldSource extends Vue {\n\n @Prop(Object) readonly brokerFieldData: FieldData | undefined;\n\n private get displayUrl(): string {\n return ( this.brokerFieldData?.sourceUrl ? ( new URL(this.brokerFieldData?.sourceUrl) ).host : '' )\n .replace('www.', '');\n }\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerFieldSource.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerFieldSource.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrokerFieldSource.vue?vue&type=template&id=26c3a0da&\"\nimport script from \"./BrokerFieldSource.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrokerFieldSource.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","module.exports = __webpack_public_path__ + \"img/hodlnaut.7b964d83.png\";","import {\n BrokerCategorySlug,\n BrokerFieldSlug,\n} from '@/enums';\nimport {BrokerField, BrokerRecord, BrokerCategory, Cryptocurrency} from '@/interfaces'\nimport {Module, Mutation, VuexModule} from 'vuex-module-decorators'\n\n@Module\nexport default class Broker extends VuexModule {\n\n canShare = false;\n\n isLoading = true;\n\n cryptocurrencies: Cryptocurrency[] = [];\n\n brokers: BrokerRecord[] = [];\n\n categories: BrokerCategory[] = [];\n\n fields: BrokerField[] = [];\n\n public get brokerFields() {\n return (categorySlug: BrokerCategorySlug) => {\n const category: BrokerCategory | undefined = this.categories.find(category => category.slug === categorySlug);\n\n return this.fields.filter(field => field.brokerCategoryId === category?.id)\n };\n }\n\n public get brokerCategoriesById(): Record {\n const brokerCategoriesById: Record = {};\n\n this.categories.forEach(category => {\n brokerCategoriesById[category.id] = category;\n });\n\n return brokerCategoriesById;\n }\n\n public get brokerCategoriesBySlug(): Record {\n\n const empty = {\n id: 0,\n slug: '',\n name: '',\n description: '',\n };\n\n const brokerCategoriesBySlug: Record = {\n [BrokerCategorySlug.General]: this.categories.find(category => category.slug === BrokerCategorySlug.General) || empty,\n [BrokerCategorySlug.Save]: this.categories.find(category => category.slug === BrokerCategorySlug.Save) || empty,\n [BrokerCategorySlug.Trade]: this.categories.find(category => category.slug === BrokerCategorySlug.Trade) || empty,\n [BrokerCategorySlug.Misc]: this.categories.find(category => category.slug === BrokerCategorySlug.Misc) || empty,\n };\n\n return brokerCategoriesBySlug;\n }\n\n public get brokerFieldsById(): Record {\n\n const fieldsById: Record = {};\n\n this.fields.forEach(field => {\n fieldsById[field.id] = field;\n });\n\n return fieldsById;\n }\n\n public get fieldRecord(): Record {\n\n const obj: Record = {} as Record;\n\n this.fields.forEach(field => {\n obj[field.slug as BrokerFieldSlug] = field;\n })\n\n return obj;\n }\n\n @Mutation\n setIsLoading(isLoading: boolean) {\n this.isLoading = isLoading;\n }\n\n @Mutation\n setCanShare(canShare: boolean) {\n this.canShare = canShare;\n }\n\n @Mutation\n setFields(fields: BrokerField[]) {\n this.fields = fields;\n }\n\n @Mutation\n setBrokers(brokers: BrokerRecord[]) {\n this.brokers = brokers;\n }\n\n @Mutation\n setCryptocurrencies(cryptocurrencies: Cryptocurrency[]) {\n this.cryptocurrencies = cryptocurrencies;\n }\n\n @Mutation\n setCategories(categories: BrokerCategory[]) {\n this.categories = categories;\n }\n}","import { PageRange, Table as TableInterface } from '@/interfaces'\nimport { Module, VuexModule, Mutation } from 'vuex-module-decorators'\nimport {SortOrder} from \"@/enums\";\n\n@Module\nexport default class PaginatedTable extends VuexModule {\n count = 0\n\n pages: PageRange[] = [{\n from: 0,\n to: 0,\n }];\n\n page = 0;\n\n sortIndex = NaN;\n\n sortOrder = SortOrder.Asc;\n\n table: TableInterface = {\n headerRow: {\n cells: [],\n },\n bodyRows: [],\n }\n\n @Mutation\n increment(delta: number) {\n this.count += delta\n }\n\n @Mutation\n decrement(delta: number) {\n this.count -= delta\n }\n\n @Mutation\n setPage(page: number) {\n this.page = page;\n }\n\n @Mutation\n setTableSortIndex(sortIndex: number) {\n this.sortIndex = sortIndex;\n }\n\n @Mutation\n setTableSortOrder(sortOrder: SortOrder) {\n this.sortOrder = sortOrder;\n }\n\n @Mutation\n setPages(pages: PageRange[]) {\n this.pages = pages;\n }\n\n @Mutation\n setTable(table: TableInterface) {\n this.table = table;\n }\n}","import {BrokerFieldSlug, SortOrder} from \"./enums\";\n\nconst defaultSortOrder: Record = {\n // General\n [BrokerFieldSlug.Url]: SortOrder.Asc,\n [BrokerFieldSlug.Headquarters]: SortOrder.Asc,\n [BrokerFieldSlug.Founded]: SortOrder.Asc,\n [BrokerFieldSlug.Regulated]: SortOrder.Desc,\n [BrokerFieldSlug.Regulators]: SortOrder.Asc,\n\n // Deposit\n\n [BrokerFieldSlug.DepositAch]: SortOrder.Asc,\n [BrokerFieldSlug.DepositBtc]: SortOrder.Asc,\n [BrokerFieldSlug.DepositEth]: SortOrder.Asc,\n [BrokerFieldSlug.DepositLtc]: SortOrder.Asc,\n [BrokerFieldSlug.DepositUsdc]: SortOrder.Asc,\n\n // Withdrawal\n\n [BrokerFieldSlug.WithdrawalAch]: SortOrder.Asc,\n [BrokerFieldSlug.WithdrawalBtc]: SortOrder.Asc,\n [BrokerFieldSlug.WithdrawalEth]: SortOrder.Asc,\n [BrokerFieldSlug.WithdrawalLtc]: SortOrder.Asc,\n [BrokerFieldSlug.WithdrawalUsdc]: SortOrder.Asc,\n\n // Misc\n [BrokerFieldSlug.MobileApps]: SortOrder.Asc,\n [BrokerFieldSlug.Social]: SortOrder.Asc,\n\n // Non-stablecoins\n [BrokerFieldSlug.BtcSaveApy]: SortOrder.Desc,\n [BrokerFieldSlug.EthSaveApy]: SortOrder.Desc,\n [BrokerFieldSlug.AdaSaveApy]: SortOrder.Desc,\n [BrokerFieldSlug.DotSaveApy]: SortOrder.Desc,\n [BrokerFieldSlug.UniSaveApy]: SortOrder.Desc,\n [BrokerFieldSlug.BchSaveApy]: SortOrder.Desc,\n [BrokerFieldSlug.LinkSaveApy]: SortOrder.Desc,\n [BrokerFieldSlug.LtcSaveApy]: SortOrder.Desc,\n [BrokerFieldSlug.BatSaveApy]: SortOrder.Desc,\n [BrokerFieldSlug.PaxgSaveApy]: SortOrder.Desc,\n\n // Stablecoins\n [BrokerFieldSlug.UsdcSaveApy]: SortOrder.Desc,\n [BrokerFieldSlug.GusdSaveApy]: SortOrder.Desc,\n [BrokerFieldSlug.UsdtSaveApy]: SortOrder.Desc,\n\n [BrokerFieldSlug.Maker]: SortOrder.Asc,\n [BrokerFieldSlug.Maker100k]: SortOrder.Asc,\n [BrokerFieldSlug.Maker1m]: SortOrder.Asc,\n\n [BrokerFieldSlug.Taker]: SortOrder.Asc,\n [BrokerFieldSlug.Taker100k]: SortOrder.Asc,\n [BrokerFieldSlug.Taker1m]: SortOrder.Asc,\n\n [BrokerFieldSlug.BtcUsd]: SortOrder.Asc,\n [BrokerFieldSlug.EthUsd]: SortOrder.Asc,\n [BrokerFieldSlug.AdaUsd]: SortOrder.Asc,\n [BrokerFieldSlug.DotUsd]: SortOrder.Asc,\n [BrokerFieldSlug.UniUsd]: SortOrder.Asc,\n [BrokerFieldSlug.BchUsd]: SortOrder.Asc,\n [BrokerFieldSlug.LinkUsd]: SortOrder.Asc,\n [BrokerFieldSlug.LtcUsd]: SortOrder.Asc,\n [BrokerFieldSlug.BatUsd]: SortOrder.Asc,\n [BrokerFieldSlug.PaxgUsd]: SortOrder.Asc,\n\n}\n\nexport default defaultSortOrder;","import {BrokerFieldSlug, ModifyComparisonState, SortOrder,} from '@/enums';\nimport {BrokerRecord} from '@/interfaces'\nimport {Module, Mutation, VuexModule} from 'vuex-module-decorators'\nimport store from '@/store';\nimport defaultSortOrder from \"@/defaultSortOrder\";\n\n@Module\nexport default class SelectiveBrokerCompare extends VuexModule {\n\n slugs: string[] = [];\n\n sortField: BrokerFieldSlug | undefined = undefined;\n\n sortOrder: SortOrder = SortOrder.Asc;\n\n modifyComparisonState: ModifyComparisonState = ModifyComparisonState.List;\n\n moreInfo: Record = {\n [BrokerFieldSlug.Url]: false,\n [BrokerFieldSlug.Headquarters]: false,\n [BrokerFieldSlug.Founded]: false,\n [BrokerFieldSlug.Regulated]: false,\n [BrokerFieldSlug.Regulators]: false,\n\n // Deposit\n\n [BrokerFieldSlug.DepositAch]: false,\n [BrokerFieldSlug.DepositBtc]: false,\n [BrokerFieldSlug.DepositEth]: false,\n [BrokerFieldSlug.DepositLtc]: false,\n [BrokerFieldSlug.DepositUsdc]: false,\n\n // Withdrawal\n\n [BrokerFieldSlug.WithdrawalAch]: false,\n [BrokerFieldSlug.WithdrawalBtc]: false,\n [BrokerFieldSlug.WithdrawalEth]: false,\n [BrokerFieldSlug.WithdrawalLtc]: false,\n [BrokerFieldSlug.WithdrawalUsdc]: false,\n\n [BrokerFieldSlug.MobileApps]: false,\n [BrokerFieldSlug.Social]: false,\n\n [BrokerFieldSlug.BtcSaveApy]: false,\n [BrokerFieldSlug.EthSaveApy]: false,\n [BrokerFieldSlug.AdaSaveApy]: false,\n [BrokerFieldSlug.DotSaveApy]: false,\n [BrokerFieldSlug.UniSaveApy]: false,\n [BrokerFieldSlug.BchSaveApy]: false,\n [BrokerFieldSlug.LinkSaveApy]: false,\n [BrokerFieldSlug.LtcSaveApy]: false,\n [BrokerFieldSlug.BatSaveApy]: false,\n [BrokerFieldSlug.PaxgSaveApy]: false,\n [BrokerFieldSlug.UsdcSaveApy]: false,\n [BrokerFieldSlug.GusdSaveApy]: false,\n [BrokerFieldSlug.UsdtSaveApy]: false,\n\n [BrokerFieldSlug.Maker]: false,\n [BrokerFieldSlug.Maker100k]: false,\n [BrokerFieldSlug.Maker1m]: false,\n [BrokerFieldSlug.Taker]: false,\n [BrokerFieldSlug.Taker100k]: false,\n [BrokerFieldSlug.Taker1m]: false,\n [BrokerFieldSlug.BtcUsd]: false,\n [BrokerFieldSlug.EthUsd]: false,\n [BrokerFieldSlug.AdaUsd]: false,\n [BrokerFieldSlug.DotUsd]: false,\n [BrokerFieldSlug.UniUsd]: false,\n [BrokerFieldSlug.BchUsd]: false,\n [BrokerFieldSlug.LinkUsd]: false,\n [BrokerFieldSlug.LtcUsd]: false,\n [BrokerFieldSlug.BatUsd]: false,\n [BrokerFieldSlug.PaxgUsd]: false,\n };\n\n /**\n * Alphabetized array of selected brokers\n */\n public get alphabetizedSelectedBrokers(): BrokerRecord[] {\n return store.state.broker.brokers\n .filter((b: BrokerRecord) => this.slugs.includes(b.broker.slug))\n .sort((a: BrokerRecord, b: BrokerRecord) => {\n return a.broker.name.localeCompare(b.broker.name);\n });\n }\n\n /**\n * Array of all selected brokers\n */\n public get sortedSelectedBrokers(): BrokerRecord[] {\n const brokers = store.state.broker.brokers\n .filter((b: BrokerRecord) => this.slugs.includes(b.broker.slug))\n .sort((a: BrokerRecord, b: BrokerRecord) => {\n if (this.sortField) {\n if (a.fields[this.sortField].alphaSortValue !== '' || b.fields[this.sortField].alphaSortValue !== '') {\n return a.broker.name.localeCompare(b.broker.name);\n }\n else {\n return ( a.fields[this.sortField].numericSortValue ?? 0 ) - ( b.fields[this.sortField].numericSortValue ?? 0 );\n }\n }\n else {\n return a.broker.name.localeCompare(b.broker.name);\n }\n });\n\n if (this.sortOrder === SortOrder.Desc) {\n brokers.reverse();\n }\n\n return brokers;\n }\n\n /**\n * Title of all selected brokers\n *\n * Something like \"A, B, and C\" or \"A and B\".\n */\n public get selectedBrokersTitle(): string {\n if (!this.alphabetizedSelectedBrokers.length)\n {\n return '';\n }\n\n if (this.alphabetizedSelectedBrokers.length === 1)\n {\n return '';\n }\n\n else if (this.alphabetizedSelectedBrokers.length === 2)\n {\n return this.alphabetizedSelectedBrokers.map(broker => broker.broker.name).join(' vs. ');\n }\n\n return this.alphabetizedSelectedBrokers\n .slice(0, this.alphabetizedSelectedBrokers.length - 1)\n .map(broker => broker.broker.name)\n .join(', ') + ', and ' + this.alphabetizedSelectedBrokers[this.alphabetizedSelectedBrokers.length - 1].broker.name;\n }\n\n @Mutation\n toggleSelectiveBrokerCompareMoreInfo(brokerFieldSlug: BrokerFieldSlug) {\n this.moreInfo[brokerFieldSlug] = !this.moreInfo[brokerFieldSlug];\n }\n\n @Mutation\n setSelectiveBrokerCompareSlugs(slugs: string[]) {\n this.slugs = slugs;\n }\n\n @Mutation\n setModifyComparisonState(modifyComparisonState: ModifyComparisonState) {\n this.modifyComparisonState = modifyComparisonState;\n }\n\n @Mutation\n updateSelectiveBrokerCompareSort(sortField: BrokerFieldSlug) {\n const fieldDefaultSortOrder = defaultSortOrder[sortField],\n fieldAlternateSortOrder = fieldDefaultSortOrder === SortOrder.Asc ? SortOrder.Desc : SortOrder.Asc;\n\n // If this is a different sort field\n if (this.sortField !== sortField) {\n this.sortField = sortField;\n this.sortOrder = fieldDefaultSortOrder;\n }\n // If this is the same sort field\n else {\n // If we are already on the alternate sort order\n if (this.sortOrder === fieldAlternateSortOrder) {\n // Reset to default sort field\n this.sortField = undefined;\n this.sortOrder = SortOrder.Asc;\n }\n else {\n this.sortOrder = fieldAlternateSortOrder;\n }\n }\n }\n\n}","import {BrokerRecord, TransferRangeBrokerFieldData} from '@/interfaces'\nimport {Module, Mutation, VuexModule} from 'vuex-module-decorators'\nimport store from '@/store';\nimport {BrokerFieldSlug} from \"@/enums\";\n\n@Module\nexport default class IndividualBroker extends VuexModule {\n\n slug = '';\n\n moreInfo: Record = {\n [BrokerFieldSlug.Url]: false,\n [BrokerFieldSlug.Headquarters]: false,\n [BrokerFieldSlug.Founded]: false,\n [BrokerFieldSlug.Regulated]: false,\n [BrokerFieldSlug.Regulators]: false,\n\n // Deposit\n\n [BrokerFieldSlug.DepositAch]: false,\n [BrokerFieldSlug.DepositBtc]: false,\n [BrokerFieldSlug.DepositEth]: false,\n [BrokerFieldSlug.DepositLtc]: false,\n [BrokerFieldSlug.DepositUsdc]: false,\n\n // Withdrawal\n\n [BrokerFieldSlug.WithdrawalAch]: false,\n [BrokerFieldSlug.WithdrawalBtc]: false,\n [BrokerFieldSlug.WithdrawalEth]: false,\n [BrokerFieldSlug.WithdrawalLtc]: false,\n [BrokerFieldSlug.WithdrawalUsdc]: false,\n\n [BrokerFieldSlug.MobileApps]: false,\n [BrokerFieldSlug.Social]: false,\n\n [BrokerFieldSlug.BtcSaveApy]: false,\n [BrokerFieldSlug.EthSaveApy]: false,\n [BrokerFieldSlug.AdaSaveApy]: false,\n [BrokerFieldSlug.DotSaveApy]: false,\n [BrokerFieldSlug.UniSaveApy]: false,\n [BrokerFieldSlug.BchSaveApy]: false,\n [BrokerFieldSlug.LinkSaveApy]: false,\n [BrokerFieldSlug.LtcSaveApy]: false,\n [BrokerFieldSlug.BatSaveApy]: false,\n [BrokerFieldSlug.PaxgSaveApy]: false,\n [BrokerFieldSlug.UsdcSaveApy]: false,\n [BrokerFieldSlug.GusdSaveApy]: false,\n [BrokerFieldSlug.UsdtSaveApy]: false,\n\n [BrokerFieldSlug.Maker]: false,\n [BrokerFieldSlug.Maker100k]: false,\n [BrokerFieldSlug.Maker1m]: false,\n [BrokerFieldSlug.Taker]: false,\n [BrokerFieldSlug.Taker100k]: false,\n [BrokerFieldSlug.Taker1m]: false,\n [BrokerFieldSlug.BtcUsd]: false,\n [BrokerFieldSlug.EthUsd]: false,\n [BrokerFieldSlug.AdaUsd]: false,\n [BrokerFieldSlug.DotUsd]: false,\n [BrokerFieldSlug.UniUsd]: false,\n [BrokerFieldSlug.BchUsd]: false,\n [BrokerFieldSlug.LinkUsd]: false,\n [BrokerFieldSlug.LtcUsd]: false,\n [BrokerFieldSlug.BatUsd]: false,\n [BrokerFieldSlug.PaxgUsd]: false,\n };\n\n /**\n * Current individual broker\n */\n public get individualBroker(): BrokerRecord | undefined {\n return store.state.broker.brokers.find((b: BrokerRecord) => this.slug === b.broker.slug);\n }\n\n @Mutation\n setSlug(slug: string) {\n this.slug = slug;\n }\n\n @Mutation\n toggleIndividualBrokerMoreInfo(brokerFieldSlug: BrokerFieldSlug) {\n this.moreInfo[brokerFieldSlug] = !this.moreInfo[brokerFieldSlug];\n }\n\n}","import {\n BrokerCategorySlug,\n BrokerFieldSlug,\n HeadquartersLocation,\n RegulationStatus,\n SortOrder,\n SupportedCryptocurrencies\n} from '@/enums';\nimport {BrokerField, BrokerRecord, BrokerTableFilter, Table} from '@/interfaces'\nimport {Module, Mutation, VuexModule} from 'vuex-module-decorators'\nimport store from '@/store';\nimport defaultSortOrder from \"@/defaultSortOrder\";\n\n@Module\nexport default class BrokerTable extends VuexModule {\n\n maxComparingBrokers = 4;\n\n comparingBrokers: BrokerRecord[] = [];\n \n categorySlug: BrokerCategorySlug = BrokerCategorySlug.Trade;\n\n sortField: BrokerFieldSlug | undefined = undefined;\n sortOrder: SortOrder = SortOrder.Asc;\n\n filter: BrokerTableFilter = {\n supportedCryptocurrencies: SupportedCryptocurrencies.Any,\n regulationStatus: RegulationStatus.Any,\n headquartersLocation: HeadquartersLocation.Anywhere,\n selectCryptocurrencies: [],\n };\n\n brokerTableCommonFields: BrokerFieldSlug[] = [\n BrokerFieldSlug.Headquarters,\n BrokerFieldSlug.Founded,\n BrokerFieldSlug.Regulated,\n ];\n\n public get selectCryptocurrencyFields(): BrokerField[] {\n\n const brokerFieldsById: Record = store.getters.brokerFieldsById,\n brokerCategory = store.getters.brokerCategoriesBySlug[this.categorySlug],\n fields: BrokerField[] = [];\n\n this.filter.selectCryptocurrencies.forEach(cryptocurrency => {\n cryptocurrency.broker_field_ids.forEach(id => {\n const field = brokerFieldsById[id];\n if (field.brokerCategoryId === brokerCategory.id) {\n fields.push(brokerFieldsById[id]);\n }\n });\n });\n\n return fields;\n }\n\n public get brokerTableCustomFields(): BrokerFieldSlug[] {\n\n // If 'Supported cryptocurrencies' is 'Any'\n switch (this.categorySlug) {\n case BrokerCategorySlug.Save:\n\n // If 'Supported cryptocurrencies' is 'Select'\n if (this.filter.supportedCryptocurrencies === SupportedCryptocurrencies.Select) {\n return this.selectCryptocurrencyFields.map(field => field.slug) as BrokerFieldSlug[];\n }\n\n return [\n BrokerFieldSlug.BtcSaveApy,\n BrokerFieldSlug.EthSaveApy,\n BrokerFieldSlug.LtcSaveApy,\n BrokerFieldSlug.UsdcSaveApy,\n BrokerFieldSlug.GusdSaveApy,\n BrokerFieldSlug.UsdtSaveApy,\n ];\n default:\n\n // If 'Supported cryptocurrencies' is 'Select'\n if (this.filter.supportedCryptocurrencies === SupportedCryptocurrencies.Select) {\n return [\n BrokerFieldSlug.Maker,\n BrokerFieldSlug.Taker\n ].concat(this.selectCryptocurrencyFields.map(field => field.slug) as BrokerFieldSlug[]);\n }\n\n return [\n BrokerFieldSlug.Maker,\n BrokerFieldSlug.Taker,\n BrokerFieldSlug.BtcUsd,\n BrokerFieldSlug.EthUsd,\n BrokerFieldSlug.AdaUsd,\n BrokerFieldSlug.DotUsd,\n BrokerFieldSlug.UniUsd,\n BrokerFieldSlug.BchUsd,\n ];\n }\n }\n\n public get isMaxComparingBrokers(): boolean {\n return this.comparingBrokers.length >= this.maxComparingBrokers;\n }\n\n public get brokerTableFields(): BrokerFieldSlug[] {\n return this.brokerTableCommonFields.concat(this.brokerTableCustomFields);\n }\n\n public get brokerTableSortFieldIndex(): number {\n return this.sortField ? this.brokerTableFields.indexOf(this.sortField) : -1;\n }\n\n get table(): Table {\n return {\n headerRow: {\n cells: this.brokerTableFields.map(field => {\n return {\n text: store.getters.fieldRecord[field]?.name,\n sub: store.getters.fieldRecord[field]?.description,\n }\n }),\n },\n bodyRows: this.filteredAndSortedBrokers.map(broker => {\n return {\n cells: this.brokerTableFields.map(field => {\n return {\n text: broker.fields[field]?.html ?? '',\n source: '',\n comment: broker.fields[field]?.comment ?? '',\n };\n })\n }\n }),\n };\n }\n\n /**\n * Alphabetically sorted array of comparing brokers\n */\n public get comparingBrokersSorted(): BrokerRecord[] {\n\n const comparingBrokers = JSON.parse(JSON.stringify(this.comparingBrokers));\n\n comparingBrokers.sort((a: BrokerRecord, b: BrokerRecord) => {\n return a.broker.name.localeCompare(b.broker.name);\n });\n\n return comparingBrokers;\n }\n\n public get isDefaultFilter(): boolean {\n \n // @TODO move this to a constant somewhere\n const defaultFilter: BrokerTableFilter = {\n supportedCryptocurrencies: SupportedCryptocurrencies.Any,\n regulationStatus: RegulationStatus.Any,\n headquartersLocation: HeadquartersLocation.Anywhere,\n selectCryptocurrencies: [],\n };\n \n return this.filter.headquartersLocation === defaultFilter.headquartersLocation\n && this.filter.regulationStatus === defaultFilter.regulationStatus\n && this.filter.supportedCryptocurrencies === defaultFilter.supportedCryptocurrencies;\n }\n\n /**\n * Filtered and sorted brokers\n */\n public get filteredAndSortedBrokers(): BrokerRecord[] {\n const brokers = store.state.broker.brokers.filter((broker: BrokerRecord) => {\n\n switch (this.filter.headquartersLocation) {\n case HeadquartersLocation.UnitedStates:\n if (broker.fields.headquarters.value.countryCode !== 'US') {\n return false;\n }\n break;\n case HeadquartersLocation.Europe:\n if (broker.fields.headquarters.value.continentCode !== 'EU') {\n return false;\n }\n break;\n }\n\n switch (this.filter.regulationStatus) {\n case RegulationStatus.Regulated:\n if (!broker.fields[BrokerFieldSlug.Regulators].value.length) {\n return false;\n }\n break;\n case RegulationStatus.Unregulated:\n if (broker.fields[BrokerFieldSlug.Regulators].value.length) {\n return false;\n }\n break;\n }\n\n switch (this.filter.supportedCryptocurrencies) {\n case SupportedCryptocurrencies.Select:\n\n for (let i = 0; i < this.selectCryptocurrencyFields.length; i++) {\n // @TODO find \"as number\" alternative\n if (isNaN(broker.fields[this.selectCryptocurrencyFields[i].slug as BrokerFieldSlug].numericSortValue as number) && broker.fields[this.selectCryptocurrencyFields[i].slug as BrokerFieldSlug].alphaSortValue === '') {\n return false;\n }\n }\n\n break;\n }\n\n return true;\n }).filter((broker: BrokerRecord) => {\n\n // @TODO if user is viewing custom cryptocurrencies, only check the cryptocurrency fields, not Maker and Taker\n\n // Loop through each custom field (this will exclude common fields like Headquarters, Founded, and Regulated)\n for (let i = 0; i < this.brokerTableCustomFields.length; i++) {\n // If this field is not empty\n if (broker.fields[ this.brokerTableCustomFields[i] ].isEmpty === false) {\n return true;\n }\n }\n\n return false;\n }).sort((a: BrokerRecord, b: BrokerRecord) => {\n if (this.sortField) {\n if (a.fields[this.sortField].alphaSortValue !== '' || b.fields[this.sortField].alphaSortValue !== '') {\n return a.broker.name.localeCompare(b.broker.name);\n }\n else {\n return ( a.fields[this.sortField].numericSortValue ?? 0 ) - ( b.fields[this.sortField].numericSortValue ?? 0 );\n }\n }\n else {\n return a.broker.name.localeCompare(b.broker.name);\n }\n });\n\n if (this.sortOrder === SortOrder.Desc) {\n brokers.reverse();\n }\n\n return brokers;\n }\n\n @Mutation\n setCategorySlug(categorySlug: BrokerCategorySlug) {\n this.categorySlug = categorySlug;\n }\n\n @Mutation\n resetFilterToDefault() {\n // @TODO move this to a constant somewhere\n this.filter = {\n supportedCryptocurrencies: SupportedCryptocurrencies.Any,\n regulationStatus: RegulationStatus.Any,\n headquartersLocation: HeadquartersLocation.Anywhere,\n selectCryptocurrencies: [],\n };\n }\n\n @Mutation\n setFilter(filter: BrokerTableFilter) {\n this.filter = filter;\n }\n\n @Mutation\n setSupportedCryptocurrencies(supportedCryptocurrencies: SupportedCryptocurrencies) {\n this.filter.supportedCryptocurrencies = supportedCryptocurrencies;\n }\n\n @Mutation\n setRegulationStatus(regulationStatus: RegulationStatus) {\n this.filter.regulationStatus = regulationStatus;\n }\n\n @Mutation\n updateSort(sortField: BrokerFieldSlug) {\n const fieldDefaultSortOrder = defaultSortOrder[sortField],\n fieldAlternateSortOrder = fieldDefaultSortOrder === SortOrder.Asc ? SortOrder.Desc : SortOrder.Asc;\n\n // If this is a different sort field\n if (this.sortField !== sortField) {\n this.sortField = sortField;\n this.sortOrder = fieldDefaultSortOrder;\n }\n // If this is the same sort field\n else {\n // If we are already on the alternate sort order\n if (this.sortOrder === fieldAlternateSortOrder) {\n // Reset to default sort field\n this.sortField = undefined;\n this.sortOrder = SortOrder.Asc;\n }\n else {\n this.sortOrder = fieldAlternateSortOrder;\n }\n }\n }\n\n @Mutation\n setHeadquartersLocation(headquartersLocation: HeadquartersLocation) {\n this.filter.headquartersLocation = headquartersLocation;\n }\n\n @Mutation\n addComparingBroker(broker: BrokerRecord) {\n if (!this.comparingBrokers.includes(broker)) {\n this.comparingBrokers.push(broker);\n }\n }\n\n @Mutation\n removeComparingBroker(broker: BrokerRecord) {\n const index = this.comparingBrokers.indexOf(broker);\n if (index >= 0) {\n this.comparingBrokers.splice(index, 1);\n }\n }\n\n @Mutation\n resetComparingBrokers() {\n this.comparingBrokers = [];\n }\n \n @Mutation\n toggleComparingBroker(broker: BrokerRecord) {\n const index = this.comparingBrokers.findIndex(b => b.broker.slug === broker.broker.slug);\n\n if (index >= 0) {\n this.comparingBrokers.splice(index, 1);\n }\n else if (this.comparingBrokers.length < this.maxComparingBrokers) {\n this.comparingBrokers.push(broker);\n }\n }\n}","import {Module, Mutation, VuexModule} from 'vuex-module-decorators'\n\n@Module\nexport default class History extends VuexModule {\n\n backButtonTexts: string[] = [];\n\n public get backButtonText(): string {\n return this.backButtonTexts[this.backButtonTexts.length - 2] ?? '';\n }\n\n @Mutation\n addBackButtonText(text: string) {\n this.backButtonTexts.push(text);\n }\n\n @Mutation\n replaceBackButtonText(text: string) {\n if (this.backButtonTexts.length) {\n this.backButtonTexts.splice(this.backButtonTexts.length - 1, 1, text);\n }\n else {\n this.backButtonTexts.push(text);\n }\n }\n\n @Mutation\n onPopState() {\n this.backButtonTexts.splice(this.backButtonTexts.length - 2);\n }\n\n\n}","import Vue from 'vue'\nimport Vuex from 'vuex'\n\nimport broker from './modules/broker'\nimport paginatedTable from './modules/paginatedTable'\nimport selectiveBrokerCompare from './modules/selectiveBrokerCompare';\nimport individualBroker from './modules/individualBroker';\nimport brokerTable from './modules/brokerTable';\nimport history from './modules/history';\n\nVue.use(Vuex)\n\nexport default new Vuex.Store({\n state: {},\n modules: {\n broker,\n paginatedTable,\n selectiveBrokerCompare,\n individualBroker,\n brokerTable,\n history\n }\n})","import Vue from 'vue';\nexport const EventBus = new Vue();","interface MetaInfo {\n title: string;\n description: string;\n url: string;\n keywords: string[];\n}\n\nconst defaults: MetaInfo = {\n title: process.env.VUE_APP_TITLE,\n description: process.env.VUE_APP_DESCRIPTION,\n url: process.env.VUE_APP_URL,\n keywords: process.env.VUE_APP_KEYWORDS.split(',').map((keyword: string) => keyword.trim()),\n}\n\nconst ogTitle: HTMLMetaElement | null = document.querySelector('meta[property=\"og:title\"]');\nconst metaDescription: HTMLMetaElement | null = document.querySelector('meta[name=\"description\"]');\nconst ogDescription: HTMLMetaElement | null = document.querySelector('meta[property=\"og:description\"]');\nconst ogUrl: HTMLMetaElement | null = document.querySelector('meta[property=\"og:url\"]');\nconst metaKeywords: HTMLMetaElement | null = document.querySelector('meta[name=\"keywords\"]');\n\nexport default function(metaInfo: MetaInfo) {\n\n const info: MetaInfo = Object.assign<{}, MetaInfo, MetaInfo>({}, defaults, metaInfo);\n\n document.title = info.title;\n\n if (ogTitle) {\n ogTitle.content = info.title;\n }\n\n if (metaDescription) {\n metaDescription.content = info.description;\n }\n\n if (ogDescription) {\n ogDescription.content = info.description;\n }\n\n if (ogUrl) {\n let url = info.url;\n\n // Base URL without trailing \"/\"\n const base = process.env.VUE_APP_URL.charAt(process.env.VUE_APP_URL.length - 1) === '/' ? process.env.VUE_APP_URL.substring(0, process.env.VUE_APP_URL.length - 1) : process.env.VUE_APP_URL;\n\n if (url.indexOf('https://') !== 0) {\n url = `${base}${url}`;\n }\n\n ogUrl.content = url;\n }\n\n if (metaKeywords) {\n metaKeywords.content = info.keywords.join(', ');\n }\n}\n","module.exports = __webpack_public_path__ + \"img/apple-app-store.1f27d630.svg\";","module.exports = __webpack_public_path__ + \"img/webull.5df57d3f.svg\";","module.exports = __webpack_public_path__ + \"img/blockfi-light.459f468e.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.open),expression:\"open\"}],staticClass:\"w-screen h-screen fixed bg-black top-0 left-0 z-20 bg-opacity-50 backdrop-filter backdrop-blur\",on:{\"mousedown\":function($event){$event.preventDefault();return _vm.onClose.apply(null, arguments)}}},[_c('div',{staticClass:\"flex h-full items-center justify-center max-h-full px-2 py-24\"},[_c('div',{staticClass:\"bg-white w-full flex flex-col max-h-full rounded w-full max-w-screen-sm shadow-lg\",on:{\"mousedown\":function($event){$event.stopPropagation();}}},[_c('div',{staticClass:\"flex justify-between p-2 md:p-4\"},[_c('div',[_c('h3',{staticClass:\"font-semibold text-lg\"},[_vm._t(\"title\"),(_vm.$slots.subtitle)?_c('div',{staticClass:\"text-sm font-normal text-gray-400\"},[_vm._t(\"subtitle\")],2):_vm._e()],2)]),_c('a',{staticClass:\"flex items-center rounded-full hover:bg-gray-100 w-8 h-8 text-gray-500 hover:text-black\",attrs:{\"href\":\"#\",\"title\":\"Close modal\"},on:{\"mousedown\":function($event){$event.preventDefault();return _vm.onClose.apply(null, arguments)},\"click\":function($event){$event.preventDefault();return _vm.onClose.apply(null, arguments)}}},[_c('svg',{staticClass:\"ml-auto mr-auto\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z\"}})])])]),_c('div',{staticClass:\"overflow-y-auto\"},[_vm._t(\"content\")],2),_vm._t(\"bottom\")],2)])])}\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\nimport {Component, Prop, Vue} from 'vue-property-decorator';\nimport { EventBus } from '@/event-bus';\n\n@Component\nexport default class Modal extends Vue {\n\n @Prop(Boolean) readonly open: boolean | undefined;\n\n private onClose() {\n this.$emit('close');\n }\n\n public mounted() {\n EventBus.$on('documentKeyDown', (e: KeyboardEvent) => {\n if (e.key.toLowerCase() === 'escape' && this.open) {\n this.$emit('close');\n }\n });\n }\n \n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Modal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Modal.vue?vue&type=template&id=341c17cd&\"\nimport script from \"./Modal.vue?vue&type=script&lang=ts&\"\nexport * from \"./Modal.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","module.exports = __webpack_public_path__ + \"img/google-play-store.9bcd917d.svg\";","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.brokerFieldData)?_c('div',{staticClass:\"text-gray-500 text-sm\"},[(_vm.brokerFieldData.comment)?[_vm._v(\" \"+_vm._s(_vm.brokerFieldData.comment)+\" \")]:[_c('span',{staticClass:\"text-gray-300\"},[_vm._v(\"-\")])]],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport {Component, Prop, Vue} from 'vue-property-decorator';\nimport {FieldData} from \"@/interfaces\";\n\n@Component\nexport default class BrokerFieldComment extends Vue {\n\n @Prop(Object) readonly brokerFieldData: FieldData | undefined;\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerFieldComment.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerFieldComment.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrokerFieldComment.vue?vue&type=template&id=e5710ea6&\"\nimport script from \"./BrokerFieldComment.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrokerFieldComment.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.backButtonText)?_c('a',{staticClass:\"flex items-center self-end rounded-md border-solid border border-gray-300 py-1 px-2 space-x-2 text-gray-700 hover:bg-gray-100 hover:text-gray-900 hover:border-gray-300\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onClick()}}},[_c('svg',{staticClass:\"bi bi-arrow-left-circle\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M1 8a7 7 0 1 0 14 0A7 7 0 0 0 1 8zm15 0A8 8 0 1 1 0 8a8 8 0 0 1 16 0zm-4.5-.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H11.5z\"}})]),_c('span',{domProps:{\"textContent\":_vm._s(_vm.backButtonText)}})]):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator';\n\n@Component\nexport default class BackButton extends Vue {\n\n private onClick() {\n history.back();\n }\n\n private get backButtonText(): string {\n return this.$store.getters.backButtonText;\n }\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackButton.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BackButton.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BackButton.vue?vue&type=template&id=1ca8d43e&\"\nimport script from \"./BackButton.vue?vue&type=script&lang=ts&\"\nexport * from \"./BackButton.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","module.exports = __webpack_public_path__ + \"img/voyager.f8e4356d.png\";","export enum SupportedCryptocurrencies {\n Any, Select\n}\n\nexport enum RegulationStatus {\n Regulated, Unregulated, Any\n}\n\nexport enum HeadquartersLocation {\n UnitedStates, Europe, Anywhere\n}\n\nexport enum FieldType {\n Url,\n String,\n Location,\n FormattedNumber,\n Number,\n UrlArray,\n MobileApps,\n SocialUrls,\n}\n\nexport enum BrokerSlug {\n Blockfi = \"blockfi\",\n Celsius = \"celsius\",\n Gemini = \"gemini\",\n}\n\nexport enum BrokerCategorySlug {\n General = \"general\",\n Save = \"save\",\n Trade = \"trade\",\n Misc = \"misc\",\n}\n\nexport enum BrokerFieldSlug {\n Url = \"url\",\n Headquarters = \"headquarters\",\n Founded = \"founded\",\n Regulated = \"regulated\",\n Regulators = \"regulators\",\n\n // Deposit\n\n DepositAch = 'deposit-ach',\n DepositBtc = 'deposit-btc',\n DepositEth = 'deposit-eth',\n DepositLtc = 'deposit-ltc',\n DepositUsdc = 'deposit-usdc',\n\n // Withdrawal\n\n WithdrawalAch = 'withdrawal-ach',\n WithdrawalBtc = 'withdrawal-btc',\n WithdrawalEth = 'withdrawal-eth',\n WithdrawalLtc = 'withdrawal-ltc',\n WithdrawalUsdc = 'withdrawal-usdc',\n\n MobileApps = \"mobile-apps\",\n Social = \"social\",\n\n BtcSaveApy = \"btc-save-apy\",\n EthSaveApy = \"eth-save-apy\",\n AdaSaveApy = \"ada-save-apy\",\n DotSaveApy = \"dot-save-apy\",\n UniSaveApy = \"uni-save-apy\",\n BchSaveApy = \"bch-save-apy\",\n LinkSaveApy = \"link-save-apy\",\n LtcSaveApy = \"ltc-save-apy\",\n BatSaveApy = \"bat-save-apy\",\n PaxgSaveApy = \"paxg-save-apy\",\n UsdcSaveApy = \"usdc-save-apy\",\n GusdSaveApy = \"gusd-save-apy\",\n UsdtSaveApy = \"usdt-save-apy\",\n\n Maker = \"maker\",\n Maker100k = \"maker-100k\",\n Maker1m = \"maker-1m\",\n Taker = \"taker\",\n Taker100k = \"taker-100k\",\n Taker1m = \"taker-1m\",\n BtcUsd = \"btc-usd\",\n EthUsd = \"eth-usd\",\n AdaUsd = \"ada-usd\",\n DotUsd = \"dot-usd\",\n UniUsd = \"uni-usd\",\n BchUsd = \"bch-usd\",\n LinkUsd = \"link-usd\",\n LtcUsd = \"ltc-usd\",\n BatUsd = \"bat-usd\",\n PaxgUsd = \"paxg-usd\",\n}\n\nexport enum SortOrder {\n Asc,\n Desc\n}\n\nexport enum ContinentCode {\n Africa = \"AF\",\n Antarctica = \"AN\",\n Asia = \"AS\",\n Europe = \"EU\",\n NorthAmerica = \"NA\",\n Oceania = \"OC\",\n SouthAmerica = \"SA\",\n}\n\nexport enum FieldFormat {\n Location,\n Number,\n Url,\n Range,\n UrlList,\n MobileAppList,\n SocialList,\n PercentRange,\n Percent,\n}\n\nexport enum SwipeDirection {\n Up,\n Down,\n Left,\n Right\n}\n\nexport enum HeaderOverlay {\n None,\n Search,\n Profile,\n Menu\n}\n\nexport enum ModifyComparisonState {\n List,\n Edit,\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{on:{\"click\":function($event){return _vm.$emit('select', _vm.broker)}}},[_c('router-link',{staticClass:\"flex flex-col items-center h-12 justify-center group\",attrs:{\"to\":(\"/brokers/broker/\" + (_vm.broker.broker.slug))}},[_c('span',{staticClass:\"inline-block h-8\"},[_c('img',{staticClass:\"inline-block max-h-8 group-hover:opacity-75\",attrs:{\"alt\":_vm.broker.broker.name + ' logo',\"src\":require('@/assets/' + _vm.broker.broker.logo)}})]),_c('span',{staticClass:\"block text-gray-300 text-sm\",domProps:{\"textContent\":_vm._s(_vm.broker.broker.name)}})])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport {Component, Prop, Vue} from 'vue-property-decorator';\nimport {BrokerRecord} from \"@/interfaces\";\n\n@Component\nexport default class BrokerLogoLink extends Vue {\n\n @Prop(Object) readonly broker: BrokerRecord | undefined;\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerLogoLink.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerLogoLink.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrokerLogoLink.vue?vue&type=template&id=607b6dae&\"\nimport script from \"./BrokerLogoLink.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrokerLogoLink.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.brokerFieldData)?_c('div',{staticClass:\"text-gray-500 text-sm\"},[(_vm.displayDate)?[_vm._v(\" \"+_vm._s(_vm.displayDate)+\" \")]:[_c('span',{staticClass:\"text-gray-300\"},[_vm._v(\"-\")])]],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport {Component, Prop, Vue} from 'vue-property-decorator';\nimport {FieldData} from \"@/interfaces\";\n\n@Component\nexport default class BrokerFieldUpdated extends Vue {\n\n @Prop(Object) readonly brokerFieldData: FieldData | undefined;\n\n private get displayDate(): string {\n return this.brokerFieldData?.updatedAt ? new Date(this.brokerFieldData.updatedAt).toLocaleDateString() : '';\n }\n\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerFieldUpdated.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerFieldUpdated.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrokerFieldUpdated.vue?vue&type=template&id=2c2eceb6&\"\nimport script from \"./BrokerFieldUpdated.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrokerFieldUpdated.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","module.exports = __webpack_public_path__ + \"img/logo.41e9915f.svg\";","module.exports = __webpack_public_path__ + \"img/ftxus.e0463f13.png\";","module.exports = \"data:image/png;base64,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\"","module.exports = __webpack_public_path__ + \"img/ftxus.e8b94264.svg\";","module.exports = \"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAIgAAAAaCAYAAABsFBQaAAAEsmlUWHRYTUw6Y29tLmFkb2JlLnhtcAAAAAAAPD94cGFja2V0IGJlZ2luPSLvu78iIGlkPSJXNU0wTXBDZWhpSHpyZVN6TlRjemtjOWQiPz4KPHg6eG1wbWV0YSB4bWxuczp4PSJhZG9iZTpuczptZXRhLyIgeDp4bXB0az0iWE1QIENvcmUgNS41LjAiPgogPHJkZjpSREYgeG1sbnM6cmRmPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5LzAyLzIyLXJkZi1zeW50YXgtbnMjIj4KICA8cmRmOkRlc2NyaXB0aW9uIHJkZjphYm91dD0iIgogICAgeG1sbnM6dGlmZj0iaHR0cDovL25zLmFkb2JlLmNvbS90aWZmLzEuMC8iCiAgICB4bWxuczpleGlmPSJodHRwOi8vbnMuYWRvYmUuY29tL2V4aWYvMS4wLyIKICAgIHhtbG5zOnBob3Rvc2hvcD0iaHR0cDovL25zLmFkb2JlLmNvbS9waG90b3Nob3AvMS4wLyIKICAgIHhtbG5zOnhtcD0iaHR0cDovL25zLmFkb2JlLmNvbS94YXAvMS4wLyIKICAgIHhtbG5zOnhtcE1NPSJodHRwOi8vbnMuYWRvYmUuY29tL3hhcC8xLjAvbW0vIgogICAgeG1sbnM6c3RFdnQ9Imh0dHA6Ly9ucy5hZG9iZS5jb20veGFwLzEuMC9zVHlwZS9SZXNvdXJjZUV2ZW50IyIKICAgdGlmZjpJbWFnZUxlbmd0aD0iMjYiCiAgIHRpZmY6SW1hZ2VXaWR0aD0iMTM2IgogICB0aWZmOlJlc29sdXRpb25Vbml0PSIyIgogICB0aWZmOlhSZXNvbHV0aW9uPSI5Ni4wIgogICB0aWZmOllSZXNvbHV0aW9uPSI5Ni4wIgogICBleGlmOlBpeGVsWERpbWVuc2lvbj0iMTM2IgogICBleGlmOlBpeGVsWURpbWVuc2lvbj0iMjYiCiAgIGV4aWY6Q29sb3JTcGFjZT0iMSIKICAgcGhvdG9zaG9wOkNvbG9yTW9kZT0iMyIKICAgcGhvdG9zaG9wOklDQ1Byb2ZpbGU9InNSR0IgSUVDNjE5NjYtMi4xIgogICB4bXA6TW9kaWZ5RGF0ZT0iMjAyMS0w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\"","module.exports = __webpack_public_path__ + \"img/coinloan.3b7ed384.svg\";","export default function (title: string) {\n return title.trim() ? `${title.trim()} | Crypto Broker Compare` : 'Crypto Broker Compare'\n}","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"min-h-screen flex flex-col\",attrs:{\"id\":\"app\"}},[_c('div',{staticClass:\"w-full h-32 bg-gradient-to-r from-indigo-700 to-purple-800\"},[_c('div',{staticClass:\"w-full relative h-20 max-w-screen-2xl mx-auto p-2 flex justify-between items-center\"},[_c('h1',{staticClass:\"md:ml-1\"},[_c('router-link',{staticClass:\"text-white flex items-center space-x-2\",attrs:{\"to\":\"/\"}},[_c('img',{attrs:{\"alt\":\"Crypto Broker Compare logo\",\"src\":require('./assets/logo.svg'),\"height\":\"33\",\"width\":\"300\"}})])],1),(_vm.showResponsiveHelper)?_c('div',{staticClass:\"flex space-x-2 text-white text-opacity-50\"},[_c('div',{staticClass:\"block\"},[_vm._v(\"sm\")]),_c('div',{staticClass:\"hidden md:block\"},[_vm._v(\"md\")]),_c('div',{staticClass:\"hidden lg:block\"},[_vm._v(\"lg\")]),_c('div',{staticClass:\"hidden xl:block\"},[_vm._v(\"xl\")]),_c('div',{staticClass:\"hidden 2xl:block\"},[_vm._v(\"2xl\")])]):_vm._e(),_c('a',{staticClass:\"mr-1 bg-white bg-opacity-10 rounded-full p-2 text-white hover:bg-opacity-20\",attrs:{\"href\":\"#\",\"aria-label\":\"Search\"},on:{\"click\":function($event){$event.preventDefault();return _vm.onSearchClick.apply(null, arguments)}}},[_c('svg',{staticClass:\"bi bi-search\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z\"}})])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.headerOverlay !== _vm.HeaderOverlay.None),expression:\"headerOverlay !== HeaderOverlay.None\"}],staticClass:\"absolute right-0 top-3 z-20 w-full md:w-1/2 lg:w-1/3 flex flex-col\"},[_c('Overlay',{attrs:{\"header-overlay\":_vm.headerOverlay},on:{\"toggle\":_vm.headerOverlayToggle}})],1)])]),_c('div',{staticClass:\"w-full max-w-screen-2xl mx-auto pb-48 md:pb-12\"},[_c('div',{staticClass:\"bg-white -mt-12 mx-0 md:mx-2 md:rounded shadow p-2\"},[(!_vm.isLoading)?_c('router-view'):_vm._e(),(_vm.isLoading)?_c('div',{staticClass:\"min-h-screen flex items-center\"},[_c('div',{staticClass:\"ml-auto mr-auto flex items-center\"},[_c('svg',{staticClass:\"animate-spin h-5 w-5 text-blue-500\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"fill\":\"none\",\"viewBox\":\"0 0 24 24\"}},[_c('circle',{staticClass:\"opacity-10\",attrs:{\"cx\":\"12\",\"cy\":\"12\",\"r\":\"10\",\"stroke\":\"currentColor\",\"stroke-width\":\"4\"}}),_c('path',{staticClass:\"opacity-100\",attrs:{\"fill\":\"currentColor\",\"d\":\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"}})])])]):_vm._e()],1)]),_vm._m(0)])}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"w-full flex-grow mt-12 flex items-end\"},[_c('div',{staticClass:\"flex-grow\"},[_c('div',{staticClass:\"w-full text-center max-w-screen-2xl mx-auto px-2 py-4 flex flex-col md:flex-row justify-center text-sm text-gray-400 md:space-x-2\"},[_c('p',[_vm._v(\"© 2021 Crypto Investing Source\")]),_c('p',[_c('a',{staticClass:\"underline hover:text-gray-500\",attrs:{\"href\":\"mailto:contact@cryptoinvestingsource.com\"}},[_vm._v(\"contact@cryptoinvestingsource.com\")])])])])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"m-1 bg-white bg-opacity-75 backdrop-filter backdrop-blur rounded shadow-lg\"},[_c('div',{staticClass:\"p-2 flex space-x-2\"},[_c('div',{staticClass:\"flex-grow\"},[_c('form',{attrs:{\"method\":\"get\",\"action\":\"/\"},on:{\"submit\":function($event){$event.preventDefault();return _vm.onSubmit.apply(null, arguments)}}},[(_vm.headerOverlay === _vm.HeaderOverlay.Search)?_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.searchQuery),expression:\"searchQuery\"}],ref:\"search\",staticClass:\"py-1 px-2 rounded w-full\",staticStyle:{\"-webkit-appearance\":\"none\"},attrs:{\"type\":\"search\",\"id\":\"search\",\"autocomplete\":\"off\",\"name\":\"q\",\"placeholder\":\"Search Crypto Brokers\"},domProps:{\"value\":(_vm.searchQuery)},on:{\"input\":function($event){if($event.target.composing){ return; }_vm.searchQuery=$event.target.value}}}):_vm._e(),_c('label',{staticClass:\"hidden\",attrs:{\"for\":\"search\"}},[_vm._v(\"Search\")]),_c('input',{staticClass:\"hidden\",attrs:{\"type\":\"submit\"}})])]),_c('a',{staticClass:\"mr-1 bg-indigo-600 rounded-full p-2 text-white relative z-20\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('toggle', _vm.HeaderOverlay.Search)}}},[_c('svg',{staticClass:\"bi bi-search\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M11.742 10.344a6.5 6.5 0 1 0-1.397 1.398h-.001c.03.04.062.078.098.115l3.85 3.85a1 1 0 0 0 1.415-1.414l-3.85-3.85a1.007 1.007 0 0 0-.115-.1zM12 6.5a5.5 5.5 0 1 1-11 0 5.5 5.5 0 0 1 11 0z\"}})])])]),_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.searchQuery !== ''),expression:\"searchQuery !== ''\"}],staticClass:\"divide-border-gray-100 divide-y\"},_vm._l((_vm.searchResults),function(searchResult){return _c('li',{key:(\"search-result=\" + (searchResult.broker.id))},[_c('span',{staticClass:\"p-2 flex w-full justify-middle\"},[_c('BrokerLogoLink',{staticClass:\"ml-auto mr-auto\",attrs:{\"broker\":searchResult},on:{\"select\":function($event){return _vm.onSelect(searchResult)}}})],1)])}),0),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.searchResults.length && !_vm.searchQuery && _vm.recentSearchBrokers.length),expression:\"!searchResults.length && !searchQuery && recentSearchBrokers.length\"}]},[_c('div',{staticClass:\"font-semibold mx-2\"},[_vm._v(\" Recent Searches \")]),_c('ul',{staticClass:\"divide-border-gray-100 divide-y\"},_vm._l((_vm.recentSearchBrokers),function(recentSearchBroker){return _c('li',{key:(\"recent-search-broker-\" + (recentSearchBroker.broker.id))},[_c('span',{staticClass:\"p-2 flex w-full justify-between\"},[_c('span',{staticClass:\"invisible flex items-center\"},[_c('svg',{staticClass:\"bi bi-x-square\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z\"}}),_c('path',{attrs:{\"d\":\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z\"}})])]),_c('BrokerLogoLink',{staticClass:\"ml-auto mr-auto\",attrs:{\"broker\":recentSearchBroker},on:{\"select\":function($event){return _vm.onSelect(recentSearchBroker)}}}),_c('a',{staticClass:\"flex items-center\",attrs:{\"href\":\"#\",\"title\":\"Remove from recent searches\"},on:{\"click\":function($event){$event.preventDefault();return _vm.removeRecentSearchBroker(recentSearchBroker)}}},[_c('svg',{staticClass:\"bi bi-x-square\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z\"}}),_c('path',{attrs:{\"d\":\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z\"}})])])],1)])}),0)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export default class LocalStore {\n\n /**\n * Store item in local storage\n *\n * @param key\n * @param value\n */\n public static setItem(key: string, value: unknown) {\n localStorage.setItem(key, JSON.stringify(value));\n }\n\n /**\n * Get item from local storage\n *\n * @param key\n */\n public static getItem(key: string): T | undefined {\n const item = localStorage.getItem(key);1\n return typeof item === 'string' ? JSON.parse(item) : undefined;\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 {Component, Prop, Vue, Watch} from 'vue-property-decorator';\nimport {HeaderOverlay} from '@/enums';\nimport {EventBus} from \"@/event-bus\";\nimport Fuse from 'fuse.js'\nimport Broker from \"@/modules/broker\";\nimport {BrokerRecord} from \"@/interfaces\";\nimport BrokerLogoLink from \"@/components/BrokerLogoLink.vue\";\nimport LocalStore from \"@/local-store\";\n\nconst RecentSearchBrokerIds = 'recentSearchBrokerIds';\n\n@Component({\n components: {BrokerLogoLink}\n})\nexport default class Overlay extends Vue {\n\n @Prop(Number) readonly headerOverlay: HeaderOverlay | undefined;\n\n private searchQuery = '';\n\n private searchResults: BrokerRecord[] = [];\n\n private recentSearchBrokerIds: number[] = [];\n\n private $fuse!: Fuse;\n\n private get HeaderOverlay() {\n return HeaderOverlay;\n }\n\n /**\n * Array of all recently searched for brokers\n *\n * @private\n */\n private get recentSearchBrokers(): BrokerRecord[] {\n\n const brokers: BrokerRecord[] = [];\n\n this.recentSearchBrokerIds.forEach(id => {\n const broker = (this.$store.state.broker as Broker).brokers.find(b => b.broker.id === id);\n\n if (broker) {\n brokers.push(broker);\n }\n });\n\n return brokers;\n }\n\n @Watch('searchQuery')\n onSearchQueryChanged(): void {\n this.$nextTick(() => {\n // Clear search results\n this.searchResults = [];\n\n // Get Fuse search results\n const results = this.getFuse().search(this.searchQuery).slice(0, 5);\n\n results.forEach(result => {\n this.searchResults.push(result.item);\n });\n });\n }\n\n /**\n * Get Fuse instance\n *\n * @private\n */\n private getFuse(): Fuse {\n // If Fuse instance has not yet been created\n if (!this.$fuse) {\n this.$fuse = new Fuse((this.$store.state.broker as Broker).brokers, {\n includeScore: true,\n keys: ['broker.legalName', 'broker.name'],\n });\n }\n\n return this.$fuse;\n }\n\n /**\n * Remove a broker from 'Recent Searches'\n *\n * @param broker\n * @private\n */\n private removeRecentSearchBroker(broker: BrokerRecord) {\n const index = this.recentSearchBrokerIds.indexOf(broker.broker.id);\n\n if (index >= 0) {\n this.recentSearchBrokerIds.splice(index, 1);\n }\n\n LocalStore.setItem(RecentSearchBrokerIds, this.recentSearchBrokerIds);\n }\n\n /**\n * After a broker in the search results is selected\n *\n * @param broker\n * @private\n */\n private onSelect(broker: BrokerRecord) {\n\n const index = this.recentSearchBrokerIds.indexOf(broker.broker.id);\n\n if (index >= 0) {\n this.recentSearchBrokerIds.splice(index, 1);\n }\n\n this.recentSearchBrokerIds.unshift(broker.broker.id);\n this.searchQuery = '';\n\n LocalStore.setItem(RecentSearchBrokerIds, this.recentSearchBrokerIds);\n\n this.$emit('toggle', HeaderOverlay.Search);\n }\n\n /**\n * Go to first search result\n *\n * @private\n */\n private onSubmit() {\n if (this.searchResults.length) {\n // Path to first broker in search results\n const path = `/brokers/broker/${this.searchResults[0].broker.slug}`;\n\n // If use is on a different page\n if (path !== this.$router.currentRoute.path) {\n this.$router.push(path).then(() => {\n this.onSelect(this.searchResults[0]);\n });\n }\n // If user is already viewin\n else {\n this.onSelect(this.searchResults[0]);\n }\n }\n }\n\n public mounted() {\n\n this.recentSearchBrokerIds = LocalStore.getItem(RecentSearchBrokerIds) ?? [];\n\n EventBus.$on('focusOnSearch', () => {\n if (this.$refs.search && this.$refs.search instanceof HTMLInputElement) {\n this.$refs.search.focus();\n }\n });\n\n EventBus.$on('documentKeyDown', (e: KeyboardEvent) => {\n if (e.key.toLowerCase() === 'escape' && document.activeElement === this.$refs.search) {\n this.$emit('toggle', HeaderOverlay.Search);\n }\n });\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Overlay.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Overlay.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Overlay.vue?vue&type=template&id=12917184&\"\nimport script from \"./Overlay.vue?vue&type=script&lang=ts&\"\nexport * from \"./Overlay.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\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 {Component, Vue} from 'vue-property-decorator';\nimport data from '@/data';\nimport {HeaderOverlay, SwipeDirection} from './enums';\nimport {EventBus} from '@/event-bus';\nimport {Coordinates, Swipe} from \"@/interfaces\";\nimport Broker from \"@/modules/broker\";\nimport Overlay from \"@/components/HeaderOverlay/Overlay.vue\";\n\n@Component({\n components: {Overlay}\n})\nexport default class App extends Vue {\n\n private $onResizeTimeout!: number;\n\n private $touchStartCoordinates!: {\n x: number;\n y: number;\n };\n\n private $touchEndCoordinates!: {\n x: number;\n y: number;\n };\n\n private showResponsiveHelper = false;\n\n private headerOverlay: HeaderOverlay = HeaderOverlay.None;\n\n private get HeaderOverlay() {\n return HeaderOverlay;\n }\n\n private get isLoading() {\n return (this.$store.state.broker as Broker).isLoading;\n }\n\n private onSearchClick() {\n this.headerOverlay = HeaderOverlay.Search;\n this.$nextTick(() => EventBus.$emit('focusOnSearch'));\n }\n\n private headerOverlayToggle(headerOverlay: HeaderOverlay) {\n if (this.headerOverlay === headerOverlay) {\n this.headerOverlay = HeaderOverlay.None;\n }\n else {\n this.headerOverlay = headerOverlay;\n }\n }\n\n mounted() {\n\n const threshold = Math.min(window.innerWidth / 5, 100);\n\n this.$onResizeTimeout = 0;\n\n this.$touchStartCoordinates = {\n x: NaN,\n y: NaN,\n };\n\n this.$touchEndCoordinates = {\n x: NaN,\n y: NaN,\n };\n\n // Fetch all data\n data.then(result => {\n this.$store.commit('setIsLoading', false);\n this.$store.commit('setBrokers', result.brokers);\n this.$store.commit('setCategories', result.brokerCategories);\n this.$store.commit('setFields', result.brokerFields);\n this.$store.commit('setCryptocurrencies', result.cryptocurrencies);\n });\n\n this.$store.commit('setCanShare', 'share' in window.navigator);\n\n document.addEventListener('keydown', e => EventBus.$emit('documentKeyDown', e));\n\n window.addEventListener('resize', () => {\n clearTimeout(this.$onResizeTimeout);\n this.$onResizeTimeout = setTimeout(() => EventBus.$emit('windowResize'), 250);\n });\n\n // @TODO this is called twice with hot reloads\n document.addEventListener('touchstart', (e: TouchEvent) => {\n if (e.touches.length) {\n this.$touchStartCoordinates.x = e.touches[0].screenX;\n this.$touchStartCoordinates.y = e.touches[0].screenY;\n\n EventBus.$emit('touchStart', e);\n }\n }, false);\n\n document.addEventListener('touchend', (e: TouchEvent) => {\n const swipe: Swipe = this.getSwipe(e, threshold);\n\n if (swipe.direction) {\n EventBus.$emit('swipe', swipe);\n }\n\n EventBus.$emit('touchEnd', e);\n\n this.$touchStartCoordinates.x = NaN;\n this.$touchStartCoordinates.y = NaN;\n\n this.$touchEndCoordinates.x = NaN;\n this.$touchEndCoordinates.y = NaN;\n }, false);\n\n document.addEventListener('touchmove', (e: TouchEvent) => {\n if (e.changedTouches.length) {\n this.$touchEndCoordinates.x = e.changedTouches[0].screenX;\n this.$touchEndCoordinates.y = e.changedTouches[0].screenY;\n\n const swipe: Swipe = this.getSwipe(e, threshold);\n\n if (swipe.direction) {\n EventBus.$emit('swipeStart', swipe);\n }\n else {\n EventBus.$emit('swipeEnd', e);\n }\n }\n }, {\n passive: false,\n });\n }\n\n /**\n * Get swipe from mouse event\n *\n * @param e\n * @param min\n * @private\n */\n private getSwipe(e: TouchEvent, min = 100): Swipe {\n const delta: Coordinates = {\n x: this.$touchEndCoordinates.x - this.$touchStartCoordinates.x,\n y: this.$touchEndCoordinates.y - this.$touchStartCoordinates.y,\n }\n\n const swipe: Swipe = {\n e: e,\n direction: undefined,\n }\n\n // Up / down\n if (Math.abs(delta.y) > Math.abs(delta.x)) {\n if (Math.abs(delta.y) >= min) {\n if (delta.y < 0) {\n swipe.direction = SwipeDirection.Up;\n }\n else {\n swipe.direction = SwipeDirection.Down;\n }\n }\n }\n // Left / right\n else {\n if (Math.abs(delta.x) >= min) {\n if (delta.x < 0) {\n swipe.direction = SwipeDirection.Left;\n }\n else {\n swipe.direction = SwipeDirection.Right;\n }\n }\n }\n\n return swipe;\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\n\n\n\n\nimport {PageRange, Swipe, Table} from '@/interfaces';\nimport {Component, Vue, Watch} from 'vue-property-decorator';\nimport {SortOrder} from \"@/enums\";\nimport {EventBus} from \"@/event-bus\";\nimport {SwipeDirection} from \"@/enums\";\nimport PaginatedTableModule from \"@/modules/paginatedTable\";\n\nenum ArrowState {\n Invisible,\n PartiallyVisible,\n FullyVisible,\n}\n\n@Component\nexport default class PaginatedTable extends Vue {\n\n private isOpen = false;\n\n private arrowLeft: ArrowState = ArrowState.Invisible;\n\n private arrowRight: ArrowState = ArrowState.Invisible;\n\n private get SortOrder() {\n return SortOrder;\n }\n\n private get ArrowState() {\n return ArrowState;\n }\n\n private get sortOrder(): SortOrder {\n return (this.$store.state.paginatedTable as PaginatedTableModule).sortOrder;\n }\n\n private get sortIndex(): number {\n return (this.$store.state.paginatedTable as PaginatedTableModule).sortIndex;\n }\n\n private get pages(): PageRange[] {\n return (this.$store.state.paginatedTable as PaginatedTableModule).pages;\n }\n\n private set pages(pages: PageRange[]) {\n this.$store.commit('setPages', pages);\n }\n\n private get page(): number {\n return (this.$store.state.paginatedTable as PaginatedTableModule).page;\n }\n\n private set page(page: number) {\n this.$store.commit('setPage', page);\n }\n\n private get table(): Table {\n return (this.$store.state.paginatedTable as PaginatedTableModule).table;\n }\n\n private get range(): PageRange {\n return this.pages[Math.min(this.page, this.pages.length - 1)];\n }\n\n private get isNextPage(): boolean {\n return this.page + 1 < this.pages.length;\n }\n\n private get isPreviousPage(): boolean {\n return this.page > 0;\n }\n\n @Watch('table')\n onPropertyChanged(): void {\n this.$nextTick(() => this.onResize());\n }\n\n /**\n * Calculate pages\n */\n private calculatePages(): void {\n\n const pages: PageRange[] = [{\n from: 0,\n to: 0,\n }];\n\n const containerRect = (this.$el.parentElement as HTMLElement).getBoundingClientRect();\n const containerWidth = containerRect.width;\n\n let pageWidth = 0;\n\n this.$el.querySelectorAll('th').forEach((el, i) => {\n const cellRect = el.getBoundingClientRect();\n const cellWidth = Math.floor(cellRect.width);\n\n // If this cell fits in the current page\n if (pageWidth === 0 || ( pageWidth + cellWidth ) < containerWidth) {\n // Add to current page width\n pageWidth += cellWidth;\n\n // Adjust page to index\n pages[pages.length - 1].to = i;\n }\n // If this cell belongs on the next page\n else {\n // Add a new page\n pages.push({\n from: i,\n to: i,\n });\n \n // Reset page width\n pageWidth = cellWidth;\n }\n });\n\n this.pages = pages;\n }\n\n /**\n * On resize\n */\n private onResize(): void {\n this.pages = [{\n from: 0,\n to: this.table.headerRow.cells.length - 1,\n }];\n\n this.$nextTick(() => this.calculatePages());\n }\n\n /**\n * On VueJS mount\n */\n public mounted() {\n this.$nextTick(() => this.onResize());\n\n EventBus.$on('windowResize', () => this.onResize());\n\n EventBus.$on('documentKeyDown', (e: KeyboardEvent) => {\n switch (e.key) {\n case 'ArrowLeft':\n this.page = Math.max(0, this.page - 1);\n break;\n case 'ArrowRight':\n this.page = Math.min(this.pages.length - 1, this.page + 1);\n break;\n }\n });\n\n EventBus.$on('touchStart', (e: TouchEvent) => {\n if (e.changedTouches.length && e.changedTouches[0].target instanceof Node) {\n if (this.$refs.container instanceof HTMLElement) {\n if (this.$refs.container.contains(e.changedTouches[0].target)) {\n this.arrowLeft = ArrowState.PartiallyVisible;\n this.arrowRight = ArrowState.PartiallyVisible;\n }\n }\n }\n });\n\n EventBus.$on('touchEnd', () => {\n this.arrowLeft = ArrowState.Invisible;\n this.arrowRight = ArrowState.Invisible;\n });\n\n EventBus.$on('swipeEnd', () => {\n this.arrowLeft = ArrowState.PartiallyVisible;\n this.arrowRight = ArrowState.PartiallyVisible;\n });\n\n EventBus.$on('swipeStart', (swipe: Swipe) => {\n if (swipe.e.changedTouches.length && swipe.e.changedTouches[0].target instanceof Node) {\n if (this.$refs.container instanceof HTMLElement) {\n if (this.$refs.container.contains(swipe.e.changedTouches[0].target)) {\n switch (swipe.direction) {\n case SwipeDirection.Left:\n this.arrowLeft = ArrowState.Invisible;\n this.arrowRight = ArrowState.FullyVisible;\n swipe.e.preventDefault();\n break;\n case SwipeDirection.Right:\n this.arrowLeft = ArrowState.FullyVisible;\n this.arrowRight = ArrowState.Invisible;\n swipe.e.preventDefault();\n break;\n }\n }\n }\n }\n });\n\n EventBus.$on('swipe', (swipe: Swipe) => {\n if (swipe.e.changedTouches.length && swipe.e.changedTouches[0].target instanceof Node) {\n if (this.$refs.container instanceof HTMLElement) {\n if (this.$refs.container.contains(swipe.e.changedTouches[0].target)) {\n switch (swipe.direction) {\n case SwipeDirection.Left:\n this.page = Math.min(this.pages.length - 1, this.page + 1);\n break;\n case SwipeDirection.Right:\n this.page = Math.max(0, this.page - 1);\n break;\n }\n }\n }\n }\n });\n }\n}\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-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=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-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=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=8a46aeb8&\"\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&lang=css&\"\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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('BrokerTable'),_c('BrokersFooterComparison')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',[_c('div',{staticClass:\"flex justify-between mb-4\"},[_c('BackButton')],1),_vm._m(0),_c('div',{staticClass:\"flex flex-col md:flex-row justify-between my-4 space-y-4\"},[_c('div',{staticClass:\"overflow-hidden flex flex-col md:flex-row divide-y md:divide-y-0 md:divide-x divide-gray-300 rounded-md border-solid border border-gray-300\"},_vm._l((_vm.categories),function(category){return _c('a',{key:(\"broker-table-category-\" + (category.slug)),staticClass:\"block py-2 px-4 \",class:{ 'bg-indigo-600 cursor-default': _vm.categorySlug === category.slug, 'hover:bg-gray-100': _vm.categorySlug !== category.slug },attrs:{\"href\":\"#\"},on:{\"mousedown\":function($event){$event.preventDefault();_vm.categorySlug = category.slug},\"click\":function($event){$event.preventDefault();_vm.categorySlug = category.slug}}},[_c('span',{staticClass:\"block text-lg font-semibold\",class:{ 'text-white': _vm.categorySlug === category.slug, 'text-gray-900': _vm.categorySlug !== category.slug },domProps:{\"textContent\":_vm._s(category.name)}}),_c('span',{staticClass:\"block text-sm\",class:{ 'text-indigo-200': _vm.categorySlug === category.slug, 'text-gray-500': _vm.categorySlug !== category.slug },domProps:{\"textContent\":_vm._s(category.description)}})])}),0),_c('a',{staticClass:\"flex items-center self-end rounded-md border-solid border border-gray-300 py-1 px-2 space-x-2 text-gray-700 hover:text-gray-900 hover:border-gray-300 hover:bg-gray-100\",attrs:{\"href\":\"#\"},on:{\"mousedown\":function($event){$event.preventDefault();_vm.isOpen = !_vm.isOpen},\"click\":function($event){$event.preventDefault();_vm.isOpen = !_vm.isOpen}}},[_c('svg',{staticClass:\"bi bi-filter-circle\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M8 15A7 7 0 1 1 8 1a7 7 0 0 1 0 14zm0 1A8 8 0 1 0 8 0a8 8 0 0 0 0 16z\"}}),_c('path',{attrs:{\"d\":\"M7 11.5a.5.5 0 0 1 .5-.5h1a.5.5 0 0 1 0 1h-1a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h5a.5.5 0 0 1 0 1h-5a.5.5 0 0 1-.5-.5zm-2-3a.5.5 0 0 1 .5-.5h9a.5.5 0 0 1 0 1h-9a.5.5 0 0 1-.5-.5z\"}})]),_c('span',[_vm._v(\"Filter\")])])]),_c('Modal',{attrs:{\"open\":_vm.isOpen},on:{\"close\":function($event){_vm.isOpen = !_vm.isOpen}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" Filter \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"divide-y divide-gray-200\"},[_c('div',{staticClass:\"grid grid-cols-1 md:grid-cols-3 gap-2 p-2 md:p-4\"},[_c('div',{staticClass:\"font-medium text-gray-700 mb-2 md:mb-0\"},[_c('span',{staticClass:\"sticky top-0\"},[_vm._v(\"Supported cryptocurrencies\")])]),_c('div',{staticClass:\"space-y-2 md:col-span-2\"},[_c('label',{staticClass:\"flex cursor-pointer group\"},[_c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.supportedCryptocurrencies),expression:\"supportedCryptocurrencies\"}],attrs:{\"type\":\"radio\",\"name\":\"supported_cryptocurrencies\"},domProps:{\"value\":_vm.SupportedCryptocurrencies.Any,\"checked\":_vm._q(_vm.supportedCryptocurrencies,_vm.SupportedCryptocurrencies.Any)},on:{\"change\":function($event){_vm.supportedCryptocurrencies=_vm.SupportedCryptocurrencies.Any}}})]),_c('span',{staticClass:\"flex flex-col ml-2\"},[_c('span',{staticClass:\"font-medium text-gray-700 group-hover:text-gray-900\"},[_vm._v(\"Any\")]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportedCryptocurrencies === _vm.SupportedCryptocurrencies.Any),expression:\"supportedCryptocurrencies === SupportedCryptocurrencies.Any\"}],staticClass:\"text-sm text-gray-500\"},[_vm._v(\" Show all brokers, regardless of which cryptocurrencies they support. \")])])]),_c('label',{staticClass:\"flex cursor-pointer group\"},[_c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.supportedCryptocurrencies),expression:\"supportedCryptocurrencies\"}],attrs:{\"type\":\"radio\",\"name\":\"supported_cryptocurrencies\"},domProps:{\"value\":_vm.SupportedCryptocurrencies.Select,\"checked\":_vm._q(_vm.supportedCryptocurrencies,_vm.SupportedCryptocurrencies.Select)},on:{\"change\":function($event){_vm.supportedCryptocurrencies=_vm.SupportedCryptocurrencies.Select}}})]),_c('span',{staticClass:\"flex flex-col ml-2\"},[_c('span',{staticClass:\"font-medium text-gray-700 group-hover:text-gray-900\"},[_vm._v(\"Select\")]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportedCryptocurrencies === _vm.SupportedCryptocurrencies.Select),expression:\"supportedCryptocurrencies === SupportedCryptocurrencies.Select\"}],staticClass:\"text-sm text-gray-500\"},[_vm._v(\" Show only brokers that support select cryptocurrencies. \")])])])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.supportedCryptocurrencies === _vm.SupportedCryptocurrencies.Select),expression:\"supportedCryptocurrencies === SupportedCryptocurrencies.Select\"}],staticClass:\"grid grid-cols-1 md:grid-cols-3 gap-2 p-2 md:p-4\"},[_c('div',{staticClass:\"font-medium text-gray-700 mb-2 md:mb-0\"},[_c('span',{staticClass:\"sticky top-0\"},[_vm._v(\"Select cryptocurrencies\")])]),_c('div',{staticClass:\"space-y-2 md:col-span-2\"},_vm._l((_vm.cryptocurrencies),function(cryptocurrency){return _c('label',{key:(\"broker-table-modal-cryptocurrency-\" + (cryptocurrency.ticker)),staticClass:\"flex cursor-pointer group\"},[_c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.selectCryptocurrencies),expression:\"selectCryptocurrencies\"}],attrs:{\"type\":\"checkbox\",\"name\":\"supported_cryptocurrencies\"},domProps:{\"value\":cryptocurrency,\"checked\":Array.isArray(_vm.selectCryptocurrencies)?_vm._i(_vm.selectCryptocurrencies,cryptocurrency)>-1:(_vm.selectCryptocurrencies)},on:{\"change\":function($event){var $$a=_vm.selectCryptocurrencies,$$el=$event.target,$$c=$$el.checked?(true):(false);if(Array.isArray($$a)){var $$v=cryptocurrency,$$i=_vm._i($$a,$$v);if($$el.checked){$$i<0&&(_vm.selectCryptocurrencies=$$a.concat([$$v]))}else{$$i>-1&&(_vm.selectCryptocurrencies=$$a.slice(0,$$i).concat($$a.slice($$i+1)))}}else{_vm.selectCryptocurrencies=$$c}}}})]),_c('span',{staticClass:\"flex flex-col ml-2\"},[_c('span',[_c('span',{staticClass:\"font-medium text-gray-700 inline-block group-hover:text-gray-900\",domProps:{\"textContent\":_vm._s(cryptocurrency.ticker)}}),_c('span',{staticClass:\"text-sm text-gray-500 ml-2\",domProps:{\"textContent\":_vm._s(cryptocurrency.name)}})])])])}),0)]),_c('div',{staticClass:\"grid grid-cols-1 md:grid-cols-3 gap-2 p-2 md:p-4\"},[_c('div',{staticClass:\"font-medium text-gray-700 mb-2 md:mb-0\"},[_c('span',{staticClass:\"sticky top-0\"},[_vm._v(\"Regulation status\")])]),_c('div',{staticClass:\"space-y-2 md:col-span-2\"},[_c('label',{staticClass:\"flex cursor-pointer group\"},[_c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.regulationStatus),expression:\"regulationStatus\"}],attrs:{\"type\":\"radio\",\"name\":\"regulation_status\"},domProps:{\"value\":_vm.RegulationStatus.Any,\"checked\":_vm._q(_vm.regulationStatus,_vm.RegulationStatus.Any)},on:{\"change\":function($event){_vm.regulationStatus=_vm.RegulationStatus.Any}}})]),_c('span',{staticClass:\"flex flex-col ml-2\"},[_c('span',{staticClass:\"font-medium text-gray-700 group-hover:text-gray-900\"},[_vm._v(\"Any\")]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.regulationStatus === _vm.RegulationStatus.Any),expression:\"regulationStatus === RegulationStatus.Any\"}],staticClass:\"text-sm text-gray-500\"},[_vm._v(\" Show both regulated and ungregulated brokers. \")])])]),_c('label',{staticClass:\"flex cursor-pointer group\"},[_c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.regulationStatus),expression:\"regulationStatus\"}],attrs:{\"type\":\"radio\",\"name\":\"regulation_status\"},domProps:{\"value\":_vm.RegulationStatus.Regulated,\"checked\":_vm._q(_vm.regulationStatus,_vm.RegulationStatus.Regulated)},on:{\"change\":function($event){_vm.regulationStatus=_vm.RegulationStatus.Regulated}}})]),_c('span',{staticClass:\"flex flex-col ml-2\"},[_c('span',{staticClass:\"font-medium text-gray-700 group-hover:text-gray-900\"},[_vm._v(\"Regulated\")]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.regulationStatus === _vm.RegulationStatus.Regulated),expression:\"regulationStatus === RegulationStatus.Regulated\"}],staticClass:\"text-sm text-gray-500\"},[_vm._v(\" Only show regulated brokers. \")])])]),_c('label',{staticClass:\"flex cursor-pointer group\"},[_c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.regulationStatus),expression:\"regulationStatus\"}],attrs:{\"type\":\"radio\",\"name\":\"regulation_status\"},domProps:{\"value\":_vm.RegulationStatus.Unregulated,\"checked\":_vm._q(_vm.regulationStatus,_vm.RegulationStatus.Unregulated)},on:{\"change\":function($event){_vm.regulationStatus=_vm.RegulationStatus.Unregulated}}})]),_c('span',{staticClass:\"flex flex-col ml-2\"},[_c('span',{staticClass:\"font-medium text-gray-700 group-hover:text-gray-900\"},[_vm._v(\"Unregulated\")]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.regulationStatus === _vm.RegulationStatus.Unregulated),expression:\"regulationStatus === RegulationStatus.Unregulated\"}],staticClass:\"text-sm text-gray-500\"},[_vm._v(\" Only show unregulated brokers. \")])])])])]),_c('div',{staticClass:\"grid grid-cols-1 md:grid-cols-3 gap-2 p-2 md:p-4\"},[_c('div',{staticClass:\"font-medium text-gray-700 mb-2 md:mb-0\"},[_c('span',{staticClass:\"sticky top-0\"},[_vm._v(\"Headquarters location\")])]),_c('div',{staticClass:\"space-y-2 md:col-span-2\"},[_c('label',{staticClass:\"flex cursor-pointer group\"},[_c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.headquartersLocation),expression:\"headquartersLocation\"}],attrs:{\"type\":\"radio\",\"name\":\"headquarters_location\"},domProps:{\"value\":_vm.HeadquartersLocation.Anywhere,\"checked\":_vm._q(_vm.headquartersLocation,_vm.HeadquartersLocation.Anywhere)},on:{\"change\":function($event){_vm.headquartersLocation=_vm.HeadquartersLocation.Anywhere}}})]),_c('span',{staticClass:\"flex flex-col ml-2\"},[_c('span',{staticClass:\"font-medium text-gray-700 group-hover:text-gray-900\"},[_vm._v(\"Anywhere\")]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.headquartersLocation === _vm.HeadquartersLocation.Anywhere),expression:\"headquartersLocation === HeadquartersLocation.Anywhere\"}],staticClass:\"text-sm text-gray-500\"},[_vm._v(\" Show all brokers regardless of headquarters location. \")])])]),_c('label',{staticClass:\"flex cursor-pointer group\"},[_c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.headquartersLocation),expression:\"headquartersLocation\"}],attrs:{\"type\":\"radio\",\"name\":\"headquarters_location\"},domProps:{\"value\":_vm.HeadquartersLocation.Europe,\"checked\":_vm._q(_vm.headquartersLocation,_vm.HeadquartersLocation.Europe)},on:{\"change\":function($event){_vm.headquartersLocation=_vm.HeadquartersLocation.Europe}}})]),_c('span',{staticClass:\"flex flex-col ml-2\"},[_c('span',{staticClass:\"font-medium text-gray-700 group-hover:text-gray-900\"},[_vm._v(\"Europe\")]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.headquartersLocation === _vm.HeadquartersLocation.Europe),expression:\"headquartersLocation === HeadquartersLocation.Europe\"}],staticClass:\"text-sm text-gray-500\"},[_vm._v(\" Only show brokers with headquarters in Europe. \")])])]),_c('label',{staticClass:\"flex cursor-pointer group\"},[_c('span',[_c('input',{directives:[{name:\"model\",rawName:\"v-model\",value:(_vm.headquartersLocation),expression:\"headquartersLocation\"}],attrs:{\"type\":\"radio\",\"name\":\"headquarters_location\"},domProps:{\"value\":_vm.HeadquartersLocation.UnitedStates,\"checked\":_vm._q(_vm.headquartersLocation,_vm.HeadquartersLocation.UnitedStates)},on:{\"change\":function($event){_vm.headquartersLocation=_vm.HeadquartersLocation.UnitedStates}}})]),_c('span',{staticClass:\"flex flex-col ml-2\"},[_c('span',{staticClass:\"font-medium text-gray-700 group-hover:text-gray-900\"},[_vm._v(\"United States\")]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.headquartersLocation === _vm.HeadquartersLocation.UnitedStates),expression:\"headquartersLocation === HeadquartersLocation.UnitedStates\"}],staticClass:\"text-sm text-gray-500\"},[_vm._v(\" Only show brokers with headquarters in the United States. \")])])])])])])]},proxy:true},{key:\"bottom\",fn:function(){return [_c('div',{staticClass:\"bg-gray-100 rounded-b p-2 md:p-4\"},[_c('div',{staticClass:\"flex flex-col md:flex-row md:justify-end md:space-x-2\"},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isDefaultFilter),expression:\"!isDefaultFilter\"}],staticClass:\"text-center inline-block rounded-md border-solid border bg-white text-gray-900 border-gray-300 py-1 px-2\",attrs:{\"href\":\"#\"},on:{\"mousedown\":_vm.resetFilterToDefault,\"click\":_vm.resetFilterToDefault}},[_c('div',[_vm._v(\"Reset Filter to Defaults\")])]),_c('a',{staticClass:\"text-center inline-block rounded-md border-solid border bg-blue-500 border-blue-700 py-1 px-2 mt-2 md:mt-0 text-white hover:bg-blue-600\",attrs:{\"href\":\"#\"},on:{\"mousedown\":function($event){_vm.isOpen = !_vm.isOpen},\"click\":function($event){_vm.isOpen = !_vm.isOpen}}},[_c('span',[_vm._v(\"Close\")])])])])]},proxy:true}])}),_c('div',{staticClass:\"grid grid-cols-12 gap-0\"},[_c('div',{staticClass:\"col-span-4 md:col-span-2\"},[_c('table',{staticClass:\"w-full\"},[_vm._m(1),_c('tbody',[_vm._l((_vm.filteredAndSortedBrokers),function(row,i){return _c('BrokerTableRow',{key:(\"brokers-table-row-\" + (row.broker.id)),attrs:{\"broker\":row,\"index\":i}})}),_c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.filteredAndSortedBrokers.length),expression:\"!filteredAndSortedBrokers.length\"}]},[_c('td',{attrs:{\"colspan\":\"2\"}},[_vm._v(\" None \")])])],2)])]),_c('div',{ref:\"right\",staticClass:\"col-span-8 md:col-span-10\"},[_c('PaginatedTable',{on:{\"sort\":_vm.onSort,\"details\":_vm.showFieldDataModal},scopedSlots:_vm._u([{key:\"noData\",fn:function(){return [_vm._v(\" No brokers found. Please adjust the \"),_c('a',{staticClass:\"text-indigo-600 underline\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.isOpen = true}}},[_vm._v(\"filter\")]),_vm._v(\". \")]},proxy:true}])})],1),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.comparingBrokers.length),expression:\"!comparingBrokers.length\"}],staticClass:\"col-span-12 flex justify-center sticky bottom-8\"},[_c('TablePagination')],1)]),(_vm.modalBroker)?_c('FieldDataModal',{attrs:{\"broker\":_vm.modalBroker,\"broker-field-data\":_vm.modalBrokerFieldData,\"broker-field-slug\":_vm.modalBrokerFieldSlug,\"is-open\":_vm.isFieldDataModalOpen},on:{\"close\":function($event){_vm.isFieldDataModalOpen = !_vm.isFieldDataModalOpen}}}):_vm._e()],1)}\nvar staticRenderFns = [function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('h2',{staticClass:\"text-center font-semibold text-lg my-4\"},[_vm._v(\" Broker Table \"),_c('span',{staticClass:\"block text-gray-500 text-sm\"},[_vm._v(\"Select an individual broker for more info, or check multiple to A/B compare\")])])},function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('thead',[_c('tr',[_c('th',{staticClass:\"h-12 p-0 whitespace-nowrap sticky top-0 \"},[_c('div',{staticClass:\"h-12 px-1 md:px-2 lg:px-4 bg-white bg-opacity-75 backdrop-filter backdrop-blur border-solid border-b border-gray-300\"},[_c('div',{staticClass:\"font-normal text-xs text-gray-300\"},[_vm._v(\" \")]),_c('div',[_vm._v(\" \")])])]),_c('th',{staticClass:\"h-12 p-0 whitespace-nowrap font-semibold sticky top-0\",attrs:{\"title\":\"Check boxes below to compare each broker\"}},[_c('div',{staticClass:\"h-12 flex flex-col justify-center px-1 md:px-2 lg:px-4 bg-white bg-opacity-75 backdrop-filter backdrop-blur border-solid border-b border-gray-300\"},[_c('div',{staticClass:\"font-normal text-xs text-gray-300\"},[_vm._v(\" \")]),_vm._v(\" A/B \")])])])])}]\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"container\",staticClass:\"relative\"},[_c('table',{ref:\"table\",staticClass:\"w-full\"},[_c('thead',[_c('tr',_vm._l((_vm.table.headerRow.cells),function(header,h){return _c('th',{key:'paginated-table-th-' + h,staticClass:\"h-12 whitespace-nowrap font-semibold sticky z-100 top-0 p-0\",class:{ hidden: ( h < _vm.range.from ) || ( h > _vm.range.to ), 'rounded-br': h === _vm.table.headerRow.cells.length -1 }},[_c('div',{staticClass:\"h-12 flex flex-col justify-center px-1 md:px-2 bg-white bg-opacity-75 backdrop-filter backdrop-blur border-solid border-b border-gray-300\"},[_c('a',{attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('sort', h)}}},[_c('span',{staticClass:\"block font-normal text-xs text-gray-300\"},[_vm._v(_vm._s(header.sub || ' '))]),_c('span',{staticClass:\"flex items-center justify-center\"},[_vm._v(\" \"+_vm._s(header.text)+\" \"),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.sortOrder === _vm.SortOrder.Desc && _vm.sortIndex === h),expression:\"sortOrder === SortOrder.Desc && sortIndex === h\"}],staticClass:\"w-0 relative z-10\"},[_c('svg',{staticClass:\"bi bi-arrow-down-short\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M8 4a.5.5 0 0 1 .5.5v5.793l2.146-2.147a.5.5 0 0 1 .708.708l-3 3a.5.5 0 0 1-.708 0l-3-3a.5.5 0 1 1 .708-.708L7.5 10.293V4.5A.5.5 0 0 1 8 4z\"}})])]),_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.sortOrder === _vm.SortOrder.Asc && _vm.sortIndex === h),expression:\"sortOrder === SortOrder.Asc && sortIndex === h\"}],staticClass:\"w-0 relative z-10\"},[_c('svg',{staticClass:\"bi bi-arrow-up-short\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M8 12a.5.5 0 0 0 .5-.5V5.707l2.146 2.147a.5.5 0 0 0 .708-.708l-3-3a.5.5 0 0 0-.708 0l-3 3a.5.5 0 1 0 .708.708L7.5 5.707V11.5a.5.5 0 0 0 .5.5z\"}})])])])])])])}),0)]),_c('tbody',[_vm._l((_vm.table.bodyRows),function(row,r){return _c('tr',{key:'paginated-table-tr-' + r},_vm._l((row.cells),function(cell,c){return _c('td',{key:'paginated-table-td-' + r + '-' + c,staticClass:\"h-24 px-1 md:px-2 text-center \",class:{ hidden: ( c < _vm.range.from ) || ( c > _vm.range.to ), 'border-solid border-t border-gray-100': r > 0 },attrs:{\"title\":cell.comment}},[_c('div',{staticClass:\"flex flex-col h-full\"},[_c('div',{staticClass:\"flex-grow -mb-6\"},[_c('div',{staticClass:\"flex flex-col h-full justify-center\",domProps:{\"innerHTML\":_vm._s(cell.text)}})]),_c('div',{staticClass:\"h-6 flex\"},[_c('a',{directives:[{name:\"show\",rawName:\"v-show\",value:(cell.comment),expression:\"cell.comment\"}],staticClass:\"inline-block text-gray-100 ml-auto p-2 hover:text-gray-300\",attrs:{\"href\":\"#\",\"aria-label\":\"View field comment\",\"title\":cell.comment},on:{\"click\":function($event){$event.preventDefault();return _vm.$emit('details', {row: r, cell: c})}}},[_c('svg',{staticClass:\"bi bi-circle-fill\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"8\",\"height\":\"8\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('circle',{attrs:{\"cx\":\"8\",\"cy\":\"8\",\"r\":\"8\"}})])])])])])}),0)}),_c('tr',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.table.bodyRows.length),expression:\"!table.bodyRows.length\"}]},[_c('td',{staticClass:\"text-center\",attrs:{\"colspan\":_vm.table.headerRow.cells.length}},[_vm._t(\"noData\",function(){return [_vm._v(\"-\")]})],2)])],2)]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isPreviousPage && (_vm.arrowLeft !== _vm.ArrowState.Invisible)),expression:\"isPreviousPage && (arrowLeft !== ArrowState.Invisible)\"}],staticClass:\"absolute top-0 h-full z-10 left-0\",class:{ 'opacity-25': _vm.arrowLeft === _vm.ArrowState.PartiallyVisible }},[_c('div',{staticClass:\"bg-white shadow sticky top-1/2\"},[_c('svg',{staticClass:\"bi bi-arrow-left-square\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M15 2a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V2zM0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2zm11.5 5.5a.5.5 0 0 1 0 1H5.707l2.147 2.146a.5.5 0 0 1-.708.708l-3-3a.5.5 0 0 1 0-.708l3-3a.5.5 0 1 1 .708.708L5.707 7.5H11.5z\"}})])])]),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isNextPage && ( _vm.arrowRight !== _vm.ArrowState.Invisible )),expression:\"isNextPage && ( arrowRight !== ArrowState.Invisible )\"}],staticClass:\"absolute top-0 h-full z-10 right-2\",class:{ 'opacity-25': _vm.arrowRight === _vm.ArrowState.PartiallyVisible }},[_c('div',{staticClass:\"bg-white shadow sticky top-1/2\"},[_c('svg',{staticClass:\"bi bi-arrow-right-square\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"fill-rule\":\"evenodd\",\"d\":\"M15 2a1 1 0 0 0-1-1H2a1 1 0 0 0-1 1v12a1 1 0 0 0 1 1h12a1 1 0 0 0 1-1V2zM0 2a2 2 0 0 1 2-2h12a2 2 0 0 1 2 2v12a2 2 0 0 1-2 2H2a2 2 0 0 1-2-2V2zm4.5 5.5a.5.5 0 0 0 0 1h5.793l-2.147 2.146a.5.5 0 0 0 .708.708l3-3a.5.5 0 0 0 0-.708l-3-3a.5.5 0 1 0-.708.708L10.293 7.5H4.5z\"}})])])])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaginatedTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./PaginatedTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./PaginatedTable.vue?vue&type=template&id=2f51452a&\"\nimport script from \"./PaginatedTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./PaginatedTable.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.pages.length > 1),expression:\"pages.length > 1\"}],staticClass:\"inline-flex bg-white rounded-lg border border-solid border-gray-200 p-1\"},_vm._l((_vm.pages),function(p,i){return _c('a',{key:'pagination-page-' + i,staticClass:\"inline-block w-4 h-4 bg-gray-100 rounded-full mx-1 my-1\",class:{ 'bg-blue-500 cursor-default': i === _vm.page, 'hover:bg-gray-300 ': i !== _vm.page },attrs:{\"title\":'Page ' + (i + 1),\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();_vm.page = i}}})}),0)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\nimport { PageRange } from '@/interfaces';\nimport { Component, Vue } from 'vue-property-decorator';\nimport PaginatedTable from \"@/modules/paginatedTable\";\n\n@Component\nexport default class TablePagination extends Vue {\n\n private get pages(): PageRange[] {\n return (this.$store.state.paginatedTable as PaginatedTable).pages;\n }\n\n private get page(): number {\n return (this.$store.state.paginatedTable as PaginatedTable).page;\n }\n\n private set page(page: number) {\n this.$store.commit('setPage', page);\n }\n}\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TablePagination.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./TablePagination.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./TablePagination.vue?vue&type=template&id=70479d60&\"\nimport script from \"./TablePagination.vue?vue&type=script&lang=ts&\"\nexport * from \"./TablePagination.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('tr',[_c('td',{staticClass:\"h-24 text-center\",class:{ 'border-solid border-t border-gray-100': _vm.index > 0 }},[_c('div',{staticClass:\"py-1 h-full flex flex-col justify-between items-center\"},[_c('div',{staticClass:\"mt-5\"},[_c('BrokerLogoLink',{attrs:{\"broker\":_vm.broker}})],1)])]),_c('td',{staticClass:\"h-24 text-center border-solid border-t border-gray-100\"},[_c('a',{staticClass:\"flex h-8 items-center justify-center\",class:_vm.checkboxClasses,attrs:{\"href\":\"#\",\"title\":_vm.checkboxTitle},on:{\"click\":function($event){$event.preventDefault();return _vm.onCompareClick.apply(null, arguments)}}},[_c('svg',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.isComparingBroker),expression:\"isComparingBroker\"}],staticClass:\"fill-current\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z\"}}),_c('path',{attrs:{\"d\":\"M10.97 4.97a.75.75 0 0 1 1.071 1.05l-3.992 4.99a.75.75 0 0 1-1.08.02L4.324 8.384a.75.75 0 1 1 1.06-1.06l2.094 2.093 3.473-4.425a.235.235 0 0 1 .02-.022z\"}})]),_c('svg',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.isComparingBroker),expression:\"!isComparingBroker\"}],staticClass:\"fill-current\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z\"}})])])])])}\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\nimport {BrokerRecord} from '@/interfaces';\nimport {Component, Vue} from 'vue-property-decorator';\nimport BrokerTable from \"@/modules/brokerTable\";\nimport BrokerLogoLink from \"@/components/BrokerLogoLink.vue\";\n\nconst BrokerTableRowProps = Vue.extend({\n props: {\n broker: Object as () => BrokerRecord,\n index: Number,\n },\n})\n@Component({\n components: {BrokerLogoLink}\n})\nexport default class BrokerTableRow extends BrokerTableRowProps {\n\n /**\n * @private\n */\n private get isComparingBroker(): boolean {\n return this.$store.state.brokerTable.comparingBrokers.includes(this.broker);\n }\n\n /**\n * @private\n */\n private get checkboxTitle(): string {\n if (this.isComparingBroker) {\n return 'Remove from compare';// : 'Add to compare'\"\n }\n else if (this.isMaxComparingBrokers) {\n return `Max ${(this.$store.state.brokerTable as BrokerTable).maxComparingBrokers} brokers can be compared at once`;\n }\n\n return 'Add to compare';\n }\n\n /**\n * @private\n */\n private get checkboxClasses() {\n if (this.isComparingBroker) {\n return ['text-black'];\n }\n else if (this.isMaxComparingBrokers) {\n return ['text-gray-200', 'cursor-not-allowed'];\n }\n\n return ['text-gray-400 hover:text-black'];\n }\n\n /**\n * @private\n */\n private get isMaxComparingBrokers(): boolean {\n return this.$store.getters.isMaxComparingBrokers;\n }\n\n /**\n * @private\n */\n private onCompareClick() {\n this.$store.commit('toggleComparingBroker', this.broker);\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerTableRow.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerTableRow.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrokerTableRow.vue?vue&type=template&id=3b87a374&\"\nimport script from \"./BrokerTableRow.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrokerTableRow.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('Modal',{attrs:{\"open\":_vm.isOpen},on:{\"close\":function($event){return _vm.$emit('close')}},scopedSlots:_vm._u([{key:\"title\",fn:function(){return [_vm._v(\" \"+_vm._s(_vm.broker.broker.name)+\" \")]},proxy:true},{key:\"content\",fn:function(){return [_c('div',{staticClass:\"md:p-2\"},[_c('table',{staticClass:\"w-full\"},[_c('tbody',[_c('tr',[_c('td',{staticClass:\"text-right w-1/4 md:w-1/3 p-2\"},[_c('div',{staticClass:\"font-semibold\",domProps:{\"textContent\":_vm._s(_vm.brokerField.name)}}),_c('div',{staticClass:\"text-xs text-gray-300\",domProps:{\"textContent\":_vm._s(_vm.brokerField.description)}})]),_c('td',{staticClass:\"w-3/4 md:w-2/3 p-2\"},[_c('div',{domProps:{\"innerHTML\":_vm._s(_vm.brokerFieldData.html)}})])]),_c('tr',[_c('td',{staticClass:\"text-right text-gray-500 text-sm p-2\"},[_vm._v(\"Comment:\")]),_c('td',{staticClass:\"p-2\"},[_c('BrokerFieldComment',{attrs:{\"broker-field-data\":_vm.brokerFieldData}})],1)]),_c('tr',[_c('td',{staticClass:\"text-right text-gray-500 text-sm p-2\"},[_vm._v(\"Source:\")]),_c('td',{staticClass:\"p-2\"},[_c('BrokerFieldSource',{attrs:{\"broker-field-data\":_vm.brokerFieldData}})],1)]),_c('tr',[_c('td',{staticClass:\"text-right text-gray-500 text-sm p-2\"},[_vm._v(\"Updated:\")]),_c('td',{staticClass:\"p-2\"},[_c('BrokerFieldUpdated',{attrs:{\"broker-field-data\":_vm.brokerFieldData}})],1)])])])])]},proxy:true},{key:\"bottom\",fn:function(){return [_c('div',{staticClass:\"bg-gray-100 rounded-b p-2 md:p-4\"},[_c('div',{staticClass:\"flex flex-col md:flex-row md:justify-end md:space-x-2\"},[_c('a',{staticClass:\"text-center inline-block rounded-md border-solid border bg-blue-500 border-blue-700 py-1 px-2 mt-2 md:mt-0 text-white hover:bg-blue-600\",attrs:{\"href\":\"#\"},on:{\"mousedown\":function($event){return _vm.$emit('close')}}},[_c('span',[_vm._v(\"Close\")])])])])]},proxy:true}])})}\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\nimport {BrokerField, BrokerRecord, FieldData} from '@/interfaces';\nimport {Component, Prop, Vue} from 'vue-property-decorator';\nimport Modal from '@/components/Modal.vue'\nimport {BrokerFieldSlug} from \"@/enums\";\nimport BrokerFieldComment from \"@/components/BrokerFieldComment.vue\";\nimport BrokerFieldSource from \"@/components/BrokerFieldSource.vue\";\nimport BrokerFieldUpdated from \"@/components/BrokerFieldUpdated.vue\";\n\n@Component({\n components: {BrokerFieldUpdated, BrokerFieldSource, Modal, BrokerFieldComment}\n})\nexport default class FieldDataModal extends Vue {\n\n @Prop(Object) readonly broker: BrokerRecord[] | undefined;\n\n @Prop(Object) readonly brokerFieldData: FieldData | undefined;\n\n @Prop(String) readonly brokerFieldSlug: BrokerFieldSlug | undefined;\n\n @Prop(Boolean) readonly isOpen: boolean | undefined;\n\n private get brokerField(): BrokerField | undefined {\n return this.brokerFieldSlug ? this.$store.getters.fieldRecord[this.brokerFieldSlug as BrokerFieldSlug] : undefined;\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldDataModal.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./FieldDataModal.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./FieldDataModal.vue?vue&type=template&id=436971e2&\"\nimport script from \"./FieldDataModal.vue?vue&type=script&lang=ts&\"\nexport * from \"./FieldDataModal.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\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\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\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 {\n BrokerCategory,\n BrokerRecord,\n BrokerTableFilter,\n Cryptocurrency, FieldData,\n Table, TableCellPosition\n} from '@/interfaces';\nimport BackButton from '@/components/BackButton.vue';\nimport {Component, Vue, Watch} from 'vue-property-decorator';\nimport PaginatedTable from '../PaginatedTable.vue'\nimport TablePagination from '../TablePagination.vue'\nimport Modal from '../Modal.vue'\nimport {\n BrokerCategorySlug,\n BrokerFieldSlug,\n HeadquartersLocation,\n RegulationStatus,\n SupportedCryptocurrencies\n} from '@/enums';\nimport Broker from \"@/modules/broker\";\nimport BrokerTableModule from \"@/modules/brokerTable\";\nimport BrokerTableRow from \"@/components/BrokerTable/BrokerTableRow.vue\";\nimport FieldDataModal from \"@/components/BrokerTable/FieldDataModal.vue\";\n\n@Component({\ncomponents: {\n FieldDataModal,\n BrokerTableRow,\n PaginatedTable,\n TablePagination,\n Modal,\n BackButton\n },\n})\nexport default class BrokerTable extends Vue {\n\n private isOpen = false;\n\n private isFieldDataModalOpen = false;\n\n /**\n * Row and cell index of the current field data modal\n * @private\n */\n private tableCellPosition: TableCellPosition = {\n row: 0,\n cell: 0,\n }\n\n private get RegulationStatus() {\n return RegulationStatus;\n }\n\n private get HeadquartersLocation() {\n return HeadquartersLocation;\n }\n\n private get BrokerCategorySlug() {\n return BrokerCategorySlug;\n }\n\n private get SupportedCryptocurrencies() {\n return SupportedCryptocurrencies;\n }\n\n private get isDefaultFilter(): boolean {\n return this.$store.getters['isDefaultFilter'];\n }\n\n private get categorySlug(): BrokerCategorySlug {\n return this.$store.state.brokerTable.categorySlug;\n }\n\n private set categorySlug(categorySlug: BrokerCategorySlug) {\n this.$store.commit('setCategorySlug', categorySlug);\n\n this.syncSort();\n }\n\n private get cryptocurrencies(): Cryptocurrency[] {\n return (this.$store.state.broker as Broker).cryptocurrencies.sort((a, b) => a.ticker.localeCompare(b.ticker));\n }\n\n private get categories(): BrokerCategory[] {\n const slugs: BrokerCategorySlug[] = [BrokerCategorySlug.Save, BrokerCategorySlug.Trade];\n return (this.$store.state.broker as Broker).categories.filter(category => slugs.includes(category.slug as BrokerCategorySlug));\n }\n\n private get supportedCryptocurrencies(): SupportedCryptocurrencies {\n return this.$store.state.brokerTable.filter.supportedCryptocurrencies;\n }\n\n private set supportedCryptocurrencies(supportedCryptocurrencies: SupportedCryptocurrencies) {\n this.$store.commit('setSupportedCryptocurrencies', supportedCryptocurrencies);\n }\n\n private get selectCryptocurrencies(): Cryptocurrency[] {\n return (this.$store.state.brokerTable as BrokerTableModule).filter.selectCryptocurrencies;\n }\n\n private set selectCryptocurrencies(cryptocurrencies: Cryptocurrency[]) {\n const filter: BrokerTableFilter = Object.assign<{}, BrokerTableFilter, BrokerTableFilter>({}, (this.$store.state.brokerTable as BrokerTableModule).filter, {\n selectCryptocurrencies: cryptocurrencies ?? [],\n } as BrokerTableFilter);\n this.$store.commit('setFilter', filter);\n }\n\n private get modalBrokerFieldSlug(): BrokerFieldSlug | undefined {\n return this.$store.getters.brokerTableFields[this.tableCellPosition.cell];\n }\n\n private get modalBroker(): BrokerRecord | undefined {\n return this.filteredAndSortedBrokers[this.tableCellPosition.row];\n }\n\n private get modalBrokerFieldData(): FieldData | undefined {\n return this.modalBroker && this.modalBrokerFieldSlug ? this.modalBroker.fields[this.modalBrokerFieldSlug] : undefined;\n }\n\n private get regulationStatus(): RegulationStatus {\n return this.$store.state.brokerTable.filter.regulationStatus;\n }\n\n private set regulationStatus(regulationStatus: RegulationStatus) {\n this.$store.commit('setRegulationStatus', regulationStatus);\n }\n\n private get headquartersLocation(): HeadquartersLocation {\n return this.$store.state.brokerTable.filter.headquartersLocation;\n }\n\n private set headquartersLocation(headquartersLocation: HeadquartersLocation) {\n this.$store.commit('setHeadquartersLocation', headquartersLocation);\n }\n\n private get filteredAndSortedBrokers(): BrokerRecord[] {\n return this.$store.getters.filteredAndSortedBrokers;\n }\n\n private get comparingBrokers(): BrokerRecord[] {\n return this.$store.state.brokerTable.comparingBrokers;\n }\n\n private get table(): Table {\n return this.$store.getters['table'];\n }\n\n @Watch('table')\n onPropertyChanged(): void {\n this.$nextTick(() => this.updateData());\n }\n\n private resetFilterToDefault(): void {\n this.$store.commit('resetFilterToDefault');\n this.isOpen = false;\n }\n\n private updateData() {\n this.$store.commit('setTable', this.table);\n }\n\n private onSort(i: number) {\n this.$store.commit('updateSort', this.$store.getters.brokerTableFields[i]);\n this.syncSort();\n }\n\n private showFieldDataModal(tableCellPosition: TableCellPosition) {\n this.tableCellPosition = tableCellPosition;\n this.isFieldDataModalOpen = true;\n }\n\n private syncSort(): void {\n const index = this.$store.getters.brokerTableFields.indexOf((this.$store.state.brokerTable as BrokerTableModule).sortField)\n\n this.$store.commit('setTableSortIndex', index >= 0 ? index : NaN);\n this.$store.commit('setTableSortOrder', (this.$store.state.brokerTable as BrokerTableModule).sortOrder);\n }\n\n public mounted() {\n this.updateData();\n this.syncSort();\n }\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerTable.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerTable.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrokerTable.vue?vue&type=template&id=7972c6af&\"\nimport script from \"./BrokerTable.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrokerTable.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","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.comparingBrokers.length),expression:\"comparingBrokers.length\"}],staticClass:\"w-full fixed bottom-0 left-0\"},[_c('div',{staticClass:\"flex justify-center h-0\"},[_c('div',{staticClass:\"-mt-12\"},[_c('TablePagination')],1)]),_c('div',{staticClass:\"bg-white bg-opacity-75 backdrop-filter backdrop-blur shadow-lg border-solid border-t border-gray-300\"},[_c('div',{staticClass:\"w-full max-w-screen-2xl mx-auto px-2 pb-6 lg:pb-0\"},[_c('div',{staticClass:\"grid grid-cols-12 gap-2\"},[_c('div',{staticClass:\"hidden lg:flex flex-col col-span-2 text-center py-2\"},[_c('span',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.comparingBrokers.length <= 1),expression:\"comparingBrokers.length <= 1\"}],staticClass:\"inline-block p-1 mb-1\"},[_vm._v(\"  \"),_c('span',{staticClass:\"text-sm text-gray-400\"},[_vm._v(\"Select additional to compare\")]),_vm._v(\"  \")]),_c('router-link',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.comparingBrokers.length > 1),expression:\"comparingBrokers.length > 1\"}],staticClass:\"bg-indigo-600 text-white rounded inline-block p-1 mb-1 hover:bg-indigo-700\",attrs:{\"to\":_vm.compareLinkTo}},[_vm._v(\"Compare\")]),_c('a',{staticClass:\"bg-white border-solid border border-gray-300 rounded inline-block p-1 hover:text-gray-900 hover:border-gray-300 hover:bg-gray-100\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.resetComparingBrokers.apply(null, arguments)}}},[_vm._v(\" Reset \")])],1),_c('div',{staticClass:\"col-span-12 lg:col-span-10 overflow-x-auto\"},[_c('div',{staticClass:\"flex flex-col justify-between lg:justify-center lg:h-full\"},[_c('ul',{staticClass:\"flex flex-col md:flex-row md:justify-around divide-y md:divide-y-0 divide-gray-100\"},_vm._l((_vm.comparingBrokers),function(comparingBroker){return _c('li',{key:'comparing-broker-' + comparingBroker.broker.slug,staticClass:\"flex justify-between py-2\"},[_c('div',{staticClass:\"md:hidden\"},[_vm._v(\" \"+_vm._s(comparingBroker.broker.name)+\" \")]),_c('div',{staticClass:\"hidden md:block w-24\"},[_c('BrokerLogoLink',{attrs:{\"broker\":comparingBroker}})],1),_c('a',{staticClass:\"ml-2 lg:ml-4 flex items-center\",attrs:{\"href\":\"#\",\"title\":\"Remove from compare\"},on:{\"click\":function($event){$event.preventDefault();return _vm.toggleComparingBroker(comparingBroker)}}},[_c('svg',{staticClass:\"bi bi-x-square\",attrs:{\"xmlns\":\"http://www.w3.org/2000/svg\",\"width\":\"16\",\"height\":\"16\",\"fill\":\"currentColor\",\"viewBox\":\"0 0 16 16\"}},[_c('path',{attrs:{\"d\":\"M14 1a1 1 0 0 1 1 1v12a1 1 0 0 1-1 1H2a1 1 0 0 1-1-1V2a1 1 0 0 1 1-1h12zM2 0a2 2 0 0 0-2 2v12a2 2 0 0 0 2 2h12a2 2 0 0 0 2-2V2a2 2 0 0 0-2-2H2z\"}}),_c('path',{attrs:{\"d\":\"M4.646 4.646a.5.5 0 0 1 .708 0L8 7.293l2.646-2.647a.5.5 0 0 1 .708.708L8.707 8l2.647 2.646a.5.5 0 0 1-.708.708L8 8.707l-2.646 2.647a.5.5 0 0 1-.708-.708L7.293 8 4.646 5.354a.5.5 0 0 1 0-.708z\"}})])])])}),0),_c('div',{staticClass:\"grid gap-x-2 text-center pb-2 lg:hidden\",class:{ 'grid-cols-1': _vm.comparingBrokers.length <= 1, 'grid-cols-2': _vm.comparingBrokers.length > 1 }},[_c('router-link',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.comparingBrokers.length > 1),expression:\"comparingBrokers.length > 1\"}],staticClass:\"bg-indigo-600 text-white rounded inline-block p-1 hover:bg-indigo-700\",attrs:{\"to\":_vm.compareLinkTo}},[_vm._v(\"Compare\")]),_c('a',{staticClass:\"bg-white border-solid border border-gray-300 rounded inline-block p-1 hover:text-gray-900 hover:border-gray-300 hover:bg-gray-100\",attrs:{\"href\":\"#\"},on:{\"click\":function($event){$event.preventDefault();return _vm.resetComparingBrokers.apply(null, arguments)}}},[_vm._v(\" Reset \")])],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\nimport {BrokerRecord} from '@/interfaces';\nimport { Component, Vue } from 'vue-property-decorator';\nimport TablePagination from '../TablePagination.vue'\nimport BrokerLogoLink from \"@/components/BrokerLogoLink.vue\";\n\n@Component({\ncomponents: {\n BrokerLogoLink,\n TablePagination,\n },\n})\nexport default class BrokersFooterComparison extends Vue {\n\n private get comparingBrokers(): BrokerRecord[] {\n return this.$store.getters.comparingBrokersSorted;\n }\n\n private get compareLinkTo(): string {\n\n const slugs: string[] = this.comparingBrokers.map((broker: BrokerRecord) => broker.broker.slug);\n\n return `/brokers/compare/${slugs.join('/')}`;\n }\n\n private toggleComparingBroker(broker: BrokerRecord) {\n this.$store.commit('toggleComparingBroker', broker);\n }\n\n private resetComparingBrokers(broker: BrokerRecord) {\n this.$store.commit('resetComparingBrokers', broker);\n }\n\n}\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokersFooterComparison.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--14-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokersFooterComparison.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./BrokersFooterComparison.vue?vue&type=template&id=ee423ad4&\"\nimport script from \"./BrokersFooterComparison.vue?vue&type=script&lang=ts&\"\nexport * from \"./BrokersFooterComparison.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\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerTableView.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./BrokerTableView.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./BrokerTableView.vue?vue&type=template&id=72ae5b82&\"\nimport script from \"./BrokerTableView.vue?vue&type=script&lang=js&\"\nexport * from \"./BrokerTableView.vue?vue&type=script&lang=js&\"\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 VueRouter, { RouteConfig } from 'vue-router'\nimport BrokerTableView from '../views/BrokerTableView.vue'\nimport store from \"@/store\";\n\nVue.use(VueRouter)\n\nconst routes: Array = [\n {\n path: '/',\n name: 'broker-table',\n component: BrokerTableView\n },\n {\n path: '/brokers/compare/:slug*',\n name: 'compare-brokers',\n // route level code-splitting\n // this generates a separate chunk (about.[hash].js) for this route\n // which is lazy-loaded when the route is visited.\n component: () => import(/* webpackChunkName: \"compare\" */ '../views/SelectiveBrokerCompareView.vue')\n },\n {\n path: '/brokers/broker/:slug*',\n name: 'individual-broker',\n component: () => import(/* webpackChunkName: \"broker\" */ '../views/IndividualBrokerView.vue'),\n },\n {\n path: '/404',\n name: 'error-not-found',\n component: () => import(/* webpackChunkName: \"broker\" */ '../views/NotFoundView.vue'),\n },\n {\n path: '/400',\n name: 'error-bad-request',\n component: () => import(/* webpackChunkName: \"broker\" */ '../views/BadRequestView.vue'),\n }\n]\n\nconst router = new VueRouter({\n mode: 'history',\n base: process.env.BASE_URL,\n routes,\n scrollBehavior() {\n document.getElementById('app')?.scrollIntoView();\n }\n});\n\nrouter.beforeEach((to, from, next) => {\n store.commit('addBackButtonText', 'Back');\n next();\n});\n\nwindow.onpopstate = () => {\n store.commit('onPopState');\n}\n\nexport default router\n","import {Workbox} from \"workbox-window\";\n\nlet wb: Workbox | null = null;\n\n// If service workers are supported and this is a production build\nif (\"serviceWorker\" in navigator && process.env.NODE_ENV === 'production') {\n wb = new Workbox(`${process.env.BASE_URL}service-worker.js`);\n\n wb.addEventListener(\"controlling\", () => {\n window.location.reload();\n });\n\n wb.register();\n}\n\nexport default wb;\n","import Vue from 'vue'\nimport App from './App.vue'\nimport store from './store';\n\nimport './assets/styles/index.css';\nimport router from './router'\nimport wb from '@/wb';\n\nVue.config.productionTip = false\n\nif (wb) {\n wb.addEventListener('waiting', () => {\n console.log('waiting...');\n });\n}\n\nnew Vue({\n store,\n router,\n render: h => h(App)\n}).$mount('#app')\n","module.exports = __webpack_public_path__ + \"img/logo.82b9c7a5.png\";","module.exports = __webpack_public_path__ + \"img/youhodler.f774c430.svg\";","import { UrlListBrokerFieldData } from \"@/interfaces\";\nimport { FieldFormatter } from \"./FieldFormatter\";\n\nenum AppStore {\n Google = 'google',\n Apple = 'apple',\n}\n\nexport class MobileAppsFieldFormatter extends FieldFormatter {\n\n declare protected data: UrlListBrokerFieldData;\n\n getIsEmpty(): boolean {\n return this.data.value.length === 0;\n }\n\n getNumericSortValue(): number {\n return 0;\n }\n \n getAlphaSortValue(): string {\n return \"\";\n }\n\n getHtml(): string {\n\n const appStores: AppStore[] = [AppStore.Apple, AppStore.Google];\n\n const appStoreTitles: Record = {\n [AppStore.Apple]: 'Apple App Store',\n [AppStore.Google]: 'Google Play Store',\n }\n\n return this.data.value.map(url => {\n\n const appStore: AppStore | undefined = appStores.find(a => {\n return url.url.toLowerCase().indexOf(a) >= 0 || url.name.toLowerCase().indexOf(a) >= 0;\n });\n\n if (appStore) {\n return `\n \n ${appStoreTitles[appStore]}\n \n \n \n \n `;\n }\n\n return '';\n }).join(', ');\n }\n\n public getData(): UrlListBrokerFieldData {\n return super.getData();\n }\n}\n\n","import {BrokerField, BrokerRecord, Cryptocurrency} from \"@/interfaces\";\nimport axios from \"axios\";\n\nexport default class Api {\n\n private static _instance: Api;\n private endpoint: string;\n\n private constructor(endpoint: string) {\n this.endpoint = endpoint;\n Api._instance = this;\n }\n\n public static get instance(): Api {\n if (!Api._instance) {\n return new Api(process.env.VUE_APP_API);\n }\n\n return Api._instance;\n }\n\n public getBrokers(): Promise {\n return axios.get(`${this.endpoint}/api/brokers`).then(response => {\n return response.data;\n });\n }\n\n public getCryptocurrencies(): Promise {\n return axios.get(`${this.endpoint}/api/cryptocurrencies`).then(response => {\n return response.data;\n });\n }\n\n public getBrokerCategories(): Promise {\n return axios.get(`${this.endpoint}/api/broker-categories`).then(response => {\n return response.data;\n });\n }\n\n public getBrokerFields(): Promise {\n return axios.get(`${this.endpoint}/api/broker-fields`).then(response => {\n return response.data;\n });\n }\n\n}","import { FieldData } from \"@/interfaces\";\n\nexport abstract class FieldFormatter {\n\n protected data: FieldData;\n\n abstract getNumericSortValue(): number;\n\n abstract getAlphaSortValue(): string;\n\n abstract getHtml(): string;\n\n abstract getIsEmpty(): boolean;\n\n constructor(data: FieldData) {\n this.data = data;\n }\n\n public getData(): FieldData {\n return Object.assign({}, this.data, {\n html: this.getHtml(),\n numericSortValue: this.getNumericSortValue(),\n alphaSortValue: this.getAlphaSortValue(),\n isEmpty: this.getIsEmpty(),\n });\n }\n}\n\n","import {BooleanBrokerFieldData} from \"@/interfaces\";\nimport { FieldFormatter } from \"./FieldFormatter\";\n\nexport class YesNoFieldFormatter extends FieldFormatter {\n\n declare protected data: BooleanBrokerFieldData;\n\n getIsEmpty(): boolean {\n return this.data.value === null;\n }\n\n getNumericSortValue(): number {\n return this.data.value ? 1 : 0;\n }\n \n getAlphaSortValue(): string {\n return \"\";\n }\n\n getHtml(): string {\n return this.data.value ? 'yes' : 'no';\n }\n\n public getData(): BooleanBrokerFieldData {\n return super.getData();\n }\n}\n\n","import { UrlBrokerFieldData } from \"@/interfaces\";\nimport { FieldFormatter } from \"./FieldFormatter\";\n\nexport class UrlFieldFormatter extends FieldFormatter {\n\n declare protected data: UrlBrokerFieldData;\n\n getIsEmpty(): boolean {\n return this.data.value.name.trim() === '' && this.data.value.url.trim() === '';\n }\n\n getNumericSortValue(): number {\n return 0;\n }\n \n getAlphaSortValue(): string {\n return this.data.value.name.toLowerCase() || (new URL(this.data.value.url)).host.toLowerCase().replace('www.', '');\n }\n\n getHtml(): string {\n const name = this.data.value.name || (new URL(this.data.value.url)).host.replace('www.', '');\n return `\n \n ${name}\n \n \n \n \n \n \n`;\n }\n\n public getData(): UrlBrokerFieldData {\n return super.getData();\n }\n}","import { UrlListBrokerFieldData } from \"@/interfaces\";\nimport { FieldFormatter } from \"./FieldFormatter\";\n\nexport class UrlListFieldFormatter extends FieldFormatter {\n\n declare protected data: UrlListBrokerFieldData;\n\n getIsEmpty(): boolean {\n return this.data.value.length === 0;\n }\n\n getNumericSortValue(): number {\n return 0;\n }\n \n getAlphaSortValue(): string {\n return \"\";\n }\n\n getHtml(): string {\n return this.data.value.length ? this.data.value.map((url, index) => {\n const name = url.name || (new URL(url.url)).host;\n const isLast = index >= ( this.data.value.length - 1 );\n return `${name}${isLast ? '' : ', '}`;\n }).join('') : '-';\n }\n\n public getData(): UrlListBrokerFieldData {\n return super.getData();\n }\n}","import { UrlListBrokerFieldData } from \"@/interfaces\";\nimport { FieldFormatter } from \"./FieldFormatter\";\n\nexport class SocialWebsitesFieldFormatter extends FieldFormatter {\n\n declare protected data: UrlListBrokerFieldData;\n\n getIsEmpty(): boolean {\n return this.data.value.length === 0;\n }\n\n getNumericSortValue(): number {\n return 0;\n }\n \n getAlphaSortValue(): string {\n return \"\";\n }\n\n getHtml(): string {\n const contents = this.data.value.map(url => {\n let svg = '';\n\n if (url.url.indexOf('facebook') > 0) {\n svg = SocialWebsitesFieldFormatter.facebookSvg;\n }\n else if (url.url.indexOf('linkedin') > 0) {\n svg = SocialWebsitesFieldFormatter.linkedInSvg;\n }\n else if (url.url.indexOf('twitter') > 0) {\n svg = SocialWebsitesFieldFormatter.twitterSvg;\n }\n\n return svg ? `${svg}` : '';\n }).join('');\n\n return `
${contents}
`\n }\n\n public getData(): UrlListBrokerFieldData {\n return super.getData();\n }\n\n private static facebookSvg = `\n \n`;\n\n private static linkedInSvg = `\n \n`;\n\n private static twitterSvg = `\n \n`;\n}","import { NumberBrokerFieldData } from \"@/interfaces\";\nimport { FieldFormatter } from \"./FieldFormatter\";\n\nexport class IntegerFieldFormatter extends FieldFormatter {\n\n declare protected data: NumberBrokerFieldData;\n\n getIsEmpty(): boolean {\n return this.data.value !== null;\n }\n\n getNumericSortValue(): number {\n return this.data.value === null ? 0 : this.data.value;\n }\n \n getAlphaSortValue(): string {\n return \"\";\n }\n\n getHtml(): string {\n return this.data.value === null ? '-' : `${this.data.value}`;\n }\n\n public getData(): NumberBrokerFieldData {\n return super.getData();\n }\n}","import { LocationBrokerFieldData } from \"@/interfaces\";\nimport { FieldFormatter } from \"./FieldFormatter\";\n\nexport class LocationFieldFormatter extends FieldFormatter {\n\n declare protected data: LocationBrokerFieldData;\n\n getIsEmpty(): boolean {\n return !this.data.value.countryName.toLowerCase();\n }\n\n getNumericSortValue(): number {\n return 0;\n }\n \n getAlphaSortValue(): string {\n return this.data.value.countryName.toLowerCase();\n }\n\n getHtml(): string {\n return this.data.value.countryName ? this.data.value.countryName : '-';\n }\n\n public getData(): LocationBrokerFieldData {\n return super.getData();\n }\n}","import { RangeBrokerFieldData } from \"@/interfaces\";\nimport { FieldFormatter } from \"./FieldFormatter\";\n\nexport class PercentRangeFieldFormatter extends FieldFormatter {\n\n declare protected data: RangeBrokerFieldData;\n\n public static numberFormat = new Intl.NumberFormat(\"en-US\", {\n style: 'percent',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n });\n\n getIsEmpty(): boolean {\n return this.data.value.min === null;\n }\n\n getNumericSortValue(): number {\n return this.data.value.min === null ? 0 : this.data.value.min;\n }\n \n getAlphaSortValue(): string {\n return \"\";\n }\n\n getHtml(): string {\n // If there is no min or max value\n if (this.data.value.min === null && this.data.value.max === null) {\n return '-';\n }\n\n // If there is a min and max value\n if (this.data.value.min !== null && this.data.value.max !== null && ( this.data.value.min !== this.data.value.max ) ) {\n return `\n ${PercentRangeFieldFormatter.numberFormat.format(this.data.value.min)}\n ${PercentRangeFieldFormatter.numberFormat.format(this.data.value.max)}\n `;\n }\n\n // If there is only a min value\n return PercentRangeFieldFormatter.numberFormat.format(this.data.value.min ?? 0);\n }\n\n public getData(): RangeBrokerFieldData {\n return super.getData();\n }\n}","import { NumberBrokerFieldData } from \"@/interfaces\";\nimport { FieldFormatter } from \"./FieldFormatter\";\n\nexport class PercentFieldFormatter extends FieldFormatter {\n\n declare protected data: NumberBrokerFieldData;\n\n public static numberFormat = new Intl.NumberFormat(\"en-US\", {\n style: 'percent',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n });\n\n getIsEmpty(): boolean {\n return this.data.value === null;\n }\n\n getNumericSortValue(): number {\n return this.data.value === null ? 0 : ( this.data.value === 0 ? Number.MIN_VALUE : this.data.value );\n }\n \n getAlphaSortValue(): string {\n return \"\";\n }\n\n getHtml(): string {\n return this.data.value === null ? '-' : PercentFieldFormatter.numberFormat.format(this.data.value);\n }\n\n public getData(): NumberBrokerFieldData {\n return super.getData();\n }\n}","import {NumberBrokerFieldData, TransferData, TransferRangeBrokerFieldData} from \"@/interfaces\";\nimport { FieldFormatter } from \"./FieldFormatter\";\n\nexport class TransferFieldFormatter extends FieldFormatter {\n\n declare protected data: TransferRangeBrokerFieldData;\n\n public static percentNumberFormat = new Intl.NumberFormat(\"en-US\", {\n style: 'percent',\n minimumFractionDigits: 2,\n maximumFractionDigits: 2\n });\n\n getIsEmpty(): boolean {\n return this.data.value.from.amount === null && this.data.value.from.percent === null;\n }\n\n getNumericSortValue(): number {\n\n const base = ( this.data.value.from.networkFee || this.data.value.to.networkFee ) ? Number.MIN_VALUE : 0;\n\n if (this.data.value.to.percent !== null) {\n return base + ( this.data.value.to.percent * 100 );\n }\n\n if (this.data.value.to.amount !== null) {\n return base + ( this.data.value.to.amount );\n }\n\n if (this.data.value.from.percent !== null) {\n return base + ( this.data.value.from.percent * 100 );\n }\n\n if (this.data.value.from.amount !== null) {\n return base + ( this.data.value.from.amount );\n }\n\n return base;\n }\n \n getAlphaSortValue(): string {\n return \"\";\n }\n\n getHtmlSegment(transferData: TransferData): string {\n\n if (transferData.percent === 0) {\n if (transferData.networkFee) {\n return 'network fee';\n }\n else {\n return 'free';\n }\n }\n\n if (transferData.percent !== null) {\n if (transferData.networkFee) {\n return `${TransferFieldFormatter.percentNumberFormat.format(transferData.percent)} + network fee`;\n }\n else {\n return TransferFieldFormatter.percentNumberFormat.format(transferData.percent);\n }\n }\n\n if (transferData.amount === 0) {\n if (transferData.networkFee) {\n return 'network fee';\n }\n else {\n return 'free';\n }\n }\n\n if (transferData.amount !== null) {\n if (transferData.networkFee) {\n return `${transferData.amount} + network fee`;\n }\n else {\n return `${transferData.amount} ${transferData.asset}`;\n }\n }\n\n return '';\n }\n\n getHtml(): string {\n\n const from = this.getHtmlSegment(this.data.value.from),\n to = this.getHtmlSegment(this.data.value.to);\n\n if (from && to) {\n // return from === to ? from : `${from}–${to}`;\n\n if (from !== to) {\n\n return `${from}–${to}`;\n\n return `\n ${to}\n ${from}\n `;\n }\n else {\n return from;\n }\n }\n\n if (from) {\n return from;\n }\n\n return '-';\n }\n\n public getData(): TransferRangeBrokerFieldData {\n return super.getData();\n }\n}","import {BrokerField, BrokerRecord, Cryptocurrency} from \"@/interfaces\";\nimport Api from \"@/api/Api\";\nimport {BrokerFieldSlug} from \"@/enums\";\nimport {YesNoFieldFormatter} from \"@/fieldFormatters/YesNoFieldFormatter\";\nimport {UrlFieldFormatter} from \"@/fieldFormatters/UrlFieldFormatter\";\nimport {UrlListFieldFormatter} from \"@/fieldFormatters/UrlListFieldFormatter\";\nimport {MobileAppsFieldFormatter} from \"@/fieldFormatters/MobileAppsFieldFormatter\";\nimport {SocialWebsitesFieldFormatter} from \"@/fieldFormatters/SocialWebsitesFieldFormatter\";\nimport {IntegerFieldFormatter} from \"@/fieldFormatters/IntegerFieldFormatter\";\nimport {LocationFieldFormatter} from \"@/fieldFormatters/LocationFieldFormatter\";\nimport {PercentRangeFieldFormatter} from \"@/fieldFormatters/PercentRangeFieldFormatter\";\nimport {PercentFieldFormatter} from \"@/fieldFormatters/PercentFieldFormatter\";\nimport {TransferFieldFormatter} from \"@/fieldFormatters/TransferFieldFormatter\";\n\nconst all: [Promise, Promise, Promise, Promise] = [\n Api.instance.getBrokers(),\n Api.instance.getBrokerCategories(),\n Api.instance.getBrokerFields(),\n Api.instance.getCryptocurrencies(),\n];\n\nexport default Promise.all(all).then(result => {\n\n const legitBrokers = result[0];\n\n legitBrokers.forEach(legitBroker => {\n Object.keys(legitBroker.fields).forEach(key => {\n switch (key) {\n case BrokerFieldSlug.Regulated:\n legitBroker.fields[key] = new YesNoFieldFormatter(legitBroker.fields[key]).getData();\n break;\n case BrokerFieldSlug.Url:\n legitBroker.fields[key] = new UrlFieldFormatter(legitBroker.fields[key]).getData();\n break;\n case BrokerFieldSlug.Regulators:\n legitBroker.fields[key] = new UrlListFieldFormatter(legitBroker.fields[key]).getData();\n break;\n case BrokerFieldSlug.MobileApps:\n legitBroker.fields[key] = new MobileAppsFieldFormatter(legitBroker.fields[key]).getData();\n break;\n case BrokerFieldSlug.Social:\n legitBroker.fields[key] = new SocialWebsitesFieldFormatter(legitBroker.fields[key]).getData();\n break;\n case BrokerFieldSlug.Founded:\n legitBroker.fields[key] = new IntegerFieldFormatter(legitBroker.fields[key]).getData();\n break;\n case BrokerFieldSlug.Headquarters:\n legitBroker.fields[key] = new LocationFieldFormatter(legitBroker.fields[key]).getData();\n break;\n case BrokerFieldSlug.DepositAch:\n case BrokerFieldSlug.DepositBtc:\n case BrokerFieldSlug.DepositEth:\n case BrokerFieldSlug.DepositLtc:\n case BrokerFieldSlug.DepositUsdc:\n case BrokerFieldSlug.WithdrawalAch:\n case BrokerFieldSlug.WithdrawalBtc:\n case BrokerFieldSlug.WithdrawalEth:\n case BrokerFieldSlug.WithdrawalLtc:\n case BrokerFieldSlug.WithdrawalUsdc:\n legitBroker.fields[key] = new TransferFieldFormatter(legitBroker.fields[key]).getData();\n break;\n case BrokerFieldSlug.BtcSaveApy:\n case BrokerFieldSlug.EthSaveApy:\n case BrokerFieldSlug.AdaSaveApy:\n case BrokerFieldSlug.DotSaveApy:\n case BrokerFieldSlug.UniSaveApy:\n case BrokerFieldSlug.BchSaveApy:\n case BrokerFieldSlug.LinkSaveApy:\n case BrokerFieldSlug.LtcSaveApy:\n case BrokerFieldSlug.BatSaveApy:\n case BrokerFieldSlug.PaxgSaveApy:\n case BrokerFieldSlug.UsdcSaveApy:\n case BrokerFieldSlug.GusdSaveApy:\n case BrokerFieldSlug.UsdtSaveApy:\n legitBroker.fields[key] = new PercentRangeFieldFormatter(legitBroker.fields[key]).getData();\n break;\n case BrokerFieldSlug.Maker:\n case BrokerFieldSlug.Maker100k:\n case BrokerFieldSlug.Maker1m:\n case BrokerFieldSlug.Taker:\n case BrokerFieldSlug.Taker100k:\n case BrokerFieldSlug.Taker1m:\n case BrokerFieldSlug.BtcUsd:\n case BrokerFieldSlug.EthUsd:\n case BrokerFieldSlug.AdaUsd:\n case BrokerFieldSlug.DotUsd:\n case BrokerFieldSlug.UniUsd:\n case BrokerFieldSlug.BchUsd:\n case BrokerFieldSlug.LinkUsd:\n case BrokerFieldSlug.LtcUsd:\n case BrokerFieldSlug.BatUsd:\n case BrokerFieldSlug.PaxgUsd:\n legitBroker.fields[key] = new PercentFieldFormatter(legitBroker.fields[key]).getData();\n break;\n }\n });\n });\n\n return {\n brokers: legitBrokers,\n brokerCategories: result[1],\n brokerFields: result[2],\n cryptocurrencies: result[3],\n }\n});","module.exports = __webpack_public_path__ + \"img/tradestation.556a640e.png\";","module.exports = __webpack_public_path__ + \"img/kucoin.1f3dd98a.svg\";","module.exports = __webpack_public_path__ + \"img/blockfi-dark.d445d92d.svg\";"],"sourceRoot":""}