From e8a8697c80ff47a8a5951e779d496c34267fad64 Mon Sep 17 00:00:00 2001 From: luc0 Date: Sun, 19 Sep 2021 20:19:14 -0300 Subject: [PATCH] feature | list-coins --- app/Http/Controllers/IndexController.php | 3 +- app/Http/Controllers/ListCoinsController.php | 18 ++ app/Support/CoinRanking.php | 7 + public/css/app.css | 76 +++++ public/js/app.js | 304 ++++++++++++++++++- resources/js/Pages/ListCoins.vue | 82 +++++ resources/js/Pages/Welcome.vue | 15 +- routes/web.php | 5 +- 8 files changed, 489 insertions(+), 21 deletions(-) create mode 100644 app/Http/Controllers/ListCoinsController.php create mode 100644 resources/js/Pages/ListCoins.vue diff --git a/app/Http/Controllers/IndexController.php b/app/Http/Controllers/IndexController.php index 6f9eade..82a843f 100644 --- a/app/Http/Controllers/IndexController.php +++ b/app/Http/Controllers/IndexController.php @@ -8,12 +8,11 @@ class IndexController extends Controller { - public function index() + public function index($coin) { $coinRanking = new CoinRanking(); $range = request()->get('range'); - $coin = request()->get('coin', 'BTC'); $response = $coinRanking->getCoinPriceHistory($range, $coin); diff --git a/app/Http/Controllers/ListCoinsController.php b/app/Http/Controllers/ListCoinsController.php new file mode 100644 index 0000000..34bdcfc --- /dev/null +++ b/app/Http/Controllers/ListCoinsController.php @@ -0,0 +1,18 @@ + $coinRanking->listCoins() + ]); + } +} diff --git a/app/Support/CoinRanking.php b/app/Support/CoinRanking.php index baff25b..69dbf6f 100644 --- a/app/Support/CoinRanking.php +++ b/app/Support/CoinRanking.php @@ -34,6 +34,13 @@ public function getCoinPriceHistory(?string $period = '1y', ?string $coin = 'BTC ); } + public function listCoins(): array + { + $coins = $this->getCoins(); + + return $coins['data']['coins']; + } + public function getCoinsId(): array { $coins = $this->getCoins(); diff --git a/public/css/app.css b/public/css/app.css index b240692..8127547 100644 --- a/public/css/app.css +++ b/public/css/app.css @@ -1075,6 +1075,17 @@ select { .prose > :last-child { margin-bottom: 0; } +.sr-only { + position: absolute; + width: 1px; + height: 1px; + padding: 0; + margin: -1px; + overflow: hidden; + clip: rect(0, 0, 0, 0); + white-space: nowrap; + border-width: 0; +} .fixed { position: fixed; } @@ -1118,6 +1129,10 @@ select { margin-left: auto; margin-right: auto; } +.-my-2 { + margin-top: -0.5rem; + margin-bottom: -0.5rem; +} .ml-3 { margin-left: 0.75rem; } @@ -1193,12 +1208,18 @@ select { .block { display: block; } +.inline-block { + display: inline-block; +} .flex { display: flex; } .inline-flex { display: inline-flex; } +.table { + display: table; +} .grid { display: grid; } @@ -1280,6 +1301,9 @@ select { .min-w-0 { min-width: 0px; } +.min-w-full { + min-width: 100%; +} .max-w-screen-xl { max-width: 1280px; } @@ -1388,9 +1412,21 @@ select { margin-top: calc(1.5rem * calc(1 - var(--tw-space-y-reverse))); margin-bottom: calc(1.5rem * var(--tw-space-y-reverse)); } +.divide-y > :not([hidden]) ~ :not([hidden]) { + --tw-divide-y-reverse: 0; + border-top-width: calc(1px * calc(1 - var(--tw-divide-y-reverse))); + border-bottom-width: calc(1px * var(--tw-divide-y-reverse)); +} +.divide-gray-200 > :not([hidden]) ~ :not([hidden]) { + --tw-divide-opacity: 1; + border-color: rgba(229, 231, 235, var(--tw-divide-opacity)); +} .overflow-hidden { overflow: hidden; } +.overflow-x-auto { + overflow-x: auto; +} .overflow-y-auto { overflow-y: auto; } @@ -1402,6 +1438,9 @@ select { text-overflow: ellipsis; white-space: nowrap; } +.whitespace-nowrap { + white-space: nowrap; +} .rounded-md { border-radius: 0.375rem; } @@ -1526,6 +1565,14 @@ select { --tw-bg-opacity: 1; background-color: rgba(229, 231, 235, var(--tw-bg-opacity)); } +.bg-green-100 { + --tw-bg-opacity: 1; + background-color: rgba(209, 250, 229, var(--tw-bg-opacity)); +} +.bg-gray-300 { + --tw-bg-opacity: 1; + background-color: rgba(209, 213, 219, var(--tw-bg-opacity)); +} .bg-opacity-25 { --tw-bg-opacity: 0.25; } @@ -1646,6 +1693,9 @@ select { .text-right { text-align: right; } +.align-middle { + vertical-align: middle; +} .font-sans { font-family: Nunito, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, "Helvetica Neue", Arial, "Noto Sans", sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol", "Noto Color Emoji"; } @@ -1771,6 +1821,18 @@ select { --tw-text-opacity: 1; color: rgba(209, 213, 219, var(--tw-text-opacity)); } +.text-green-800 { + --tw-text-opacity: 1; + color: rgba(6, 95, 70, var(--tw-text-opacity)); +} +.text-red-800 { + --tw-text-opacity: 1; + color: rgba(153, 27, 27, var(--tw-text-opacity)); +} +.text-black { + --tw-text-opacity: 1; + color: rgba(0, 0, 0, var(--tw-text-opacity)); +} .underline { text-decoration: underline; } @@ -1896,6 +1958,10 @@ select { --tw-bg-opacity: 1; background-color: rgba(249, 250, 251, var(--tw-bg-opacity)); } +.hover\:bg-gray-200:hover { + --tw-bg-opacity: 1; + background-color: rgba(229, 231, 235, var(--tw-bg-opacity)); +} .hover\:bg-red-700:hover { --tw-bg-opacity: 1; background-color: rgba(185, 28, 28, var(--tw-bg-opacity)); @@ -2075,6 +2141,11 @@ select { margin-bottom: -1px; } + .sm\:-mx-6 { + margin-left: -1.5rem; + margin-right: -1.5rem; + } + .sm\:ml-3 { margin-left: 0.75rem; } @@ -2292,6 +2363,11 @@ select { grid-column: span 4 / span 4; } + .lg\:-mx-8 { + margin-left: -2rem; + margin-right: -2rem; + } + .lg\:px-8 { padding-left: 2rem; padding-right: 2rem; diff --git a/public/js/app.js b/public/js/app.js index 9fd1d0e..8f8a41d 100644 --- a/public/js/app.js +++ b/public/js/app.js @@ -20828,6 +20828,27 @@ __webpack_require__.r(__webpack_exports__); /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=script&lang=js": +/*!**********************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=script&lang=js ***! + \**********************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js"); + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = ((0,vue__WEBPACK_IMPORTED_MODULE_0__.defineComponent)({ + props: { + coins: Array + } +})); + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/PrivacyPolicy.vue?vue&type=script&lang=js": /*!**************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/PrivacyPolicy.vue?vue&type=script&lang=js ***! @@ -21385,11 +21406,12 @@ __webpack_require__.r(__webpack_exports__); props: { prices: Array, time: Array, - error: String + error: String, + currentCoin: String }, setup: function setup(props) { var state = (0,vue__WEBPACK_IMPORTED_MODULE_0__.reactive)({ - currentCoin: 'BTC', + currentCoin: props.currentCoin, currentRange: '1y' }); var chartData = (0,vue__WEBPACK_IMPORTED_MODULE_0__.computed)(function () { @@ -21416,10 +21438,8 @@ __webpack_require__.r(__webpack_exports__); } function updateChart() { - console.log('UPDATE'); - _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_4__.Inertia.post('/', { - 'range': state.currentRange, - 'coin': state.currentCoin + _inertiajs_inertia__WEBPACK_IMPORTED_MODULE_4__.Inertia.post('/coin/' + state.currentCoin, { + 'range': state.currentRange }); } @@ -24735,6 +24755,123 @@ function render(_ctx, _cache, $props, $setup, $data, $options) { /***/ }), +/***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=template&id=490a96aa": +/*!**************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=template&id=490a96aa ***! + \**************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "render": () => (/* binding */ render) +/* harmony export */ }); +/* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js"); + +var _hoisted_1 = { + "class": "coinList flex flex-col" +}; +var _hoisted_2 = { + "class": "-my-2 overflow-x-auto sm:-mx-6 lg:-mx-8" +}; +var _hoisted_3 = { + "class": "py-2 align-middle inline-block min-w-full sm:px-6 lg:px-8" +}; +var _hoisted_4 = { + "class": "shadow overflow-hidden border-b border-gray-200 sm:rounded-lg" +}; +var _hoisted_5 = { + "class": "min-w-full divide-y divide-gray-200" +}; + +var _hoisted_6 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("thead", { + "class": "bg-gray-50" +}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("tr", null, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("th", { + scope: "col", + "class": "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" +}, " # "), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("th", { + scope: "col", + "class": "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" +}, " Name "), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("th", { + scope: "col", + "class": "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" +}, " Price "), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("th", { + scope: "col", + "class": "px-6 py-3 text-left text-xs font-medium text-gray-500 uppercase tracking-wider" +}, " Change "), /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("th", { + scope: "col", + "class": "relative px-6 py-3" +}, [/*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", { + "class": "sr-only" +}, "Edit")])])], -1 +/* HOISTED */ +); + +var _hoisted_7 = { + "class": "bg-white divide-y divide-gray-200" +}; +var _hoisted_8 = { + "class": "px-6 py-4 whitespace-nowrap" +}; +var _hoisted_9 = { + "class": "px-6 py-4 whitespace-nowrap" +}; +var _hoisted_10 = { + "class": "flex items-center" +}; +var _hoisted_11 = { + "class": "flex-shrink-0 h-5 w-10" +}; +var _hoisted_12 = ["src"]; +var _hoisted_13 = { + "class": "ml-4" +}; +var _hoisted_14 = { + "class": "text-sm font-medium text-gray-900" +}; +var _hoisted_15 = ["href"]; +var _hoisted_16 = { + "class": "text-sm text-gray-500" +}; +var _hoisted_17 = { + "class": "px-6 py-4 whitespace-nowrap" +}; +var _hoisted_18 = { + "class": "px-2 inline-flex text-xs leading-5 font-semibold rounded-full bg-green-100 text-green-800" +}; +var _hoisted_19 = { + "class": "px-6 py-4 whitespace-nowrap" +}; +function render(_ctx, _cache, $props, $setup, $data, $options) { + return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("table", _hoisted_5, [_hoisted_6, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("tbody", _hoisted_7, [((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(true), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, (0,vue__WEBPACK_IMPORTED_MODULE_0__.renderList)(_ctx.coins, function (coin) { + return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("tr", null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("td", _hoisted_8, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(coin.rank), 1 + /* TEXT */ + ), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("td", _hoisted_9, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_10, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_11, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("img", { + "class": "h-5 w-5 rounded-full", + src: coin.iconUrl, + alt: "" + }, null, 8 + /* PROPS */ + , _hoisted_12)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_13, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_14, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", { + href: '/coin/' + coin.symbol + }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(coin.name), 9 + /* TEXT, PROPS */ + , _hoisted_15)]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_16, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(coin.symbol), 1 + /* TEXT */ + )])])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("td", _hoisted_17, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", _hoisted_18, " $ " + (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(coin.price), 1 + /* TEXT */ + )]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("td", _hoisted_19, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("span", { + "class": (0,vue__WEBPACK_IMPORTED_MODULE_0__.normalizeClass)([coin.change >= 0 ? 'bg-green-100 text-green-800' : 'bg-red-100 text-red-800', "px-2 inline-flex text-xs leading-5 font-semibold rounded-full"]) + }, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(coin.change) + " % ", 3 + /* TEXT, CLASS */ + )])]); + }), 256 + /* UNKEYED_FRAGMENT */ + ))])])])])])]); +} + +/***/ }), + /***/ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/PrivacyPolicy.vue?vue&type=template&id=41527301": /*!******************************************************************************************************************************************************************************************************************************************************************************!*\ !*** ./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/PrivacyPolicy.vue?vue&type=template&id=41527301 ***! @@ -25888,16 +26025,24 @@ __webpack_require__.r(__webpack_exports__); /* harmony export */ }); /* harmony import */ var vue__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! vue */ "./node_modules/vue/dist/vue.esm-bundler.js"); -var _hoisted_1 = { - "class": "chart-filters" -}; + +var _hoisted_1 = /*#__PURE__*/(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("a", { + href: "/", + "class": "nav-button w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-gray-300 text-base font-medium text-black hover:bg-gray-200 focus:outline-none focus:ring-2 focus:ring-offset-2 sm:ml-3 sm:w-auto sm:text-sm" +}, " Coin List ", -1 +/* HOISTED */ +); + var _hoisted_2 = { - "class": "filter-group" + "class": "chart-filters" }; var _hoisted_3 = { "class": "filter-group" }; var _hoisted_4 = { + "class": "filter-group" +}; +var _hoisted_5 = { key: 0, "class": "w-full inline-flex justify-center rounded-md border border-transparent shadow-sm px-4 py-2 bg-red-600 text-base font-medium text-white hover:bg-red-700 focus:outline-none focus:ring-2 focus:ring-offset-2 focus:ring-red-500 sm:ml-3 sm:w-auto sm:text-sm" }; @@ -25908,12 +26053,12 @@ function render(_ctx, _cache, $props, $setup, $data, $options) { var _component_FilterCoin = (0,vue__WEBPACK_IMPORTED_MODULE_0__.resolveComponent)("FilterCoin"); - return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_LineChart, { + return (0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)(vue__WEBPACK_IMPORTED_MODULE_0__.Fragment, null, [_hoisted_1, (0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_LineChart, { chartData: _ctx.chartData, "class": "chart" }, null, 8 /* PROPS */ - , ["chartData"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_1, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_FilterRange, { + , ["chartData"]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_2, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_FilterRange, { value: '24h', currentValue: _ctx.state.currentRange, onChangeRange: _cache[0] || (_cache[0] = function ($event) { @@ -25939,7 +26084,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) { side: 'r' }, null, 8 /* PROPS */ - , ["currentValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_3, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_FilterCoin, { + , ["currentValue"])]), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementVNode)("div", _hoisted_4, [(0,vue__WEBPACK_IMPORTED_MODULE_0__.createVNode)(_component_FilterCoin, { value: 'BTC', currentValue: _ctx.state.currentCoin, onChangeCoin: _cache[3] || (_cache[3] = function ($event) { @@ -25965,7 +26110,7 @@ function render(_ctx, _cache, $props, $setup, $data, $options) { side: 'r' }, null, 8 /* PROPS */ - , ["currentValue"])])]), _ctx.error ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("p", _hoisted_4, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.error), 1 + , ["currentValue"])])]), _ctx.error ? ((0,vue__WEBPACK_IMPORTED_MODULE_0__.openBlock)(), (0,vue__WEBPACK_IMPORTED_MODULE_0__.createElementBlock)("p", _hoisted_5, (0,vue__WEBPACK_IMPORTED_MODULE_0__.toDisplayString)(_ctx.error), 1 /* TEXT */ )) : (0,vue__WEBPACK_IMPORTED_MODULE_0__.createCommentVNode)("v-if", true)], 64 /* STABLE_FRAGMENT */ @@ -39426,6 +39571,30 @@ function styleChanged(style, prevStyle) { +/***/ }), + +/***/ "./node_modules/css-loader/dist/cjs.js??clonedRuleSet-9.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-9.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css": +/*!***********************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/css-loader/dist/cjs.js??clonedRuleSet-9.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-9.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css ***! + \***********************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ../../../node_modules/css-loader/dist/runtime/api.js */ "./node_modules/css-loader/dist/runtime/api.js"); +/* harmony import */ var _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0__); +// Imports + +var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); +// Module +___CSS_LOADER_EXPORT___.push([module.id, "\n.coinList {\n width: 80%;\n margin: 50px auto;\n}\n", ""]); +// Exports +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); + + /***/ }), /***/ "./node_modules/css-loader/dist/cjs.js??clonedRuleSet-9.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-9.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Welcome.vue?vue&type=style&index=0&id=317d1a6e&lang=css": @@ -39445,7 +39614,7 @@ __webpack_require__.r(__webpack_exports__); var ___CSS_LOADER_EXPORT___ = _node_modules_css_loader_dist_runtime_api_js__WEBPACK_IMPORTED_MODULE_0___default()(function(i){return i[1]}); // Module -___CSS_LOADER_EXPORT___.push([module.id, "\n.chart {\n width: 80%;\n margin: 100px auto;\n}\n.chart-filters {\n height: 90px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n}\n \n", ""]); +___CSS_LOADER_EXPORT___.push([module.id, "\n.nav-button {\n margin: 20px;\n}\n.chart {\n width: 80%;\n margin: 100px auto;\n}\n.chart-filters {\n height: 90px;\n display: flex;\n flex-direction: column;\n justify-content: space-between;\n align-items: center;\n}\n \n", ""]); // Exports /* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (___CSS_LOADER_EXPORT___); @@ -68572,6 +68741,36 @@ module.exports = function getSideChannel() { }; +/***/ }), + +/***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-9.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-9.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css": +/*!***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************!*\ + !*** ./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-9.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-9.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css ***! + \***************************************************************************************************************************************************************************************************************************************************************************************************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! !../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js */ "./node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js"); +/* harmony import */ var _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(_node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0__); +/* harmony import */ var _node_modules_css_loader_dist_cjs_js_clonedRuleSet_9_use_1_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_9_use_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ListCoins_vue_vue_type_style_index_0_id_490a96aa_lang_css__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! !!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-9.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-9.use[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css */ "./node_modules/css-loader/dist/cjs.js??clonedRuleSet-9.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-9.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css"); + + + +var options = {}; + +options.insert = "head"; +options.singleton = false; + +var update = _node_modules_style_loader_dist_runtime_injectStylesIntoStyleTag_js__WEBPACK_IMPORTED_MODULE_0___default()(_node_modules_css_loader_dist_cjs_js_clonedRuleSet_9_use_1_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_9_use_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ListCoins_vue_vue_type_style_index_0_id_490a96aa_lang_css__WEBPACK_IMPORTED_MODULE_1__["default"], options); + + + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_node_modules_css_loader_dist_cjs_js_clonedRuleSet_9_use_1_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_9_use_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ListCoins_vue_vue_type_style_index_0_id_490a96aa_lang_css__WEBPACK_IMPORTED_MODULE_1__["default"].locals || {}); + /***/ }), /***/ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-9.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-9.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Welcome.vue?vue&type=style&index=0&id=317d1a6e&lang=css": @@ -70238,6 +70437,35 @@ _Dashboard_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"]._ /***/ }), +/***/ "./resources/js/Pages/ListCoins.vue": +/*!******************************************!*\ + !*** ./resources/js/Pages/ListCoins.vue ***! + \******************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (__WEBPACK_DEFAULT_EXPORT__) +/* harmony export */ }); +/* harmony import */ var _ListCoins_vue_vue_type_template_id_490a96aa__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! ./ListCoins.vue?vue&type=template&id=490a96aa */ "./resources/js/Pages/ListCoins.vue?vue&type=template&id=490a96aa"); +/* harmony import */ var _ListCoins_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(/*! ./ListCoins.vue?vue&type=script&lang=js */ "./resources/js/Pages/ListCoins.vue?vue&type=script&lang=js"); +/* harmony import */ var _ListCoins_vue_vue_type_style_index_0_id_490a96aa_lang_css__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(/*! ./ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css */ "./resources/js/Pages/ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css"); + + + + +; +_ListCoins_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"].render = _ListCoins_vue_vue_type_template_id_490a96aa__WEBPACK_IMPORTED_MODULE_0__.render +/* hot reload */ +if (false) {} + +_ListCoins_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"].__file = "resources/js/Pages/ListCoins.vue" + +/* harmony default export */ const __WEBPACK_DEFAULT_EXPORT__ = (_ListCoins_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_1__["default"]); + +/***/ }), + /***/ "./resources/js/Pages/PrivacyPolicy.vue": /*!**********************************************!*\ !*** ./resources/js/Pages/PrivacyPolicy.vue ***! @@ -71033,6 +71261,22 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Dashboard_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Dashboard.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Dashboard.vue?vue&type=script&lang=js"); +/***/ }), + +/***/ "./resources/js/Pages/ListCoins.vue?vue&type=script&lang=js": +/*!******************************************************************!*\ + !*** ./resources/js/Pages/ListCoins.vue?vue&type=script&lang=js ***! + \******************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "default": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ListCoins_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__["default"]) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ListCoins_vue_vue_type_script_lang_js__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ListCoins.vue?vue&type=script&lang=js */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=script&lang=js"); + + /***/ }), /***/ "./resources/js/Pages/PrivacyPolicy.vue?vue&type=script&lang=js": @@ -71817,6 +72061,22 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Dashboard_vue_vue_type_template_id_097ba13b__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Dashboard.vue?vue&type=template&id=097ba13b */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Dashboard.vue?vue&type=template&id=097ba13b"); +/***/ }), + +/***/ "./resources/js/Pages/ListCoins.vue?vue&type=template&id=490a96aa": +/*!************************************************************************!*\ + !*** ./resources/js/Pages/ListCoins.vue?vue&type=template&id=490a96aa ***! + \************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export */ __webpack_require__.d(__webpack_exports__, { +/* harmony export */ "render": () => (/* reexport safe */ _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ListCoins_vue_vue_type_template_id_490a96aa__WEBPACK_IMPORTED_MODULE_0__.render) +/* harmony export */ }); +/* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ListCoins_vue_vue_type_template_id_490a96aa__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ListCoins.vue?vue&type=template&id=490a96aa */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=template&id=490a96aa"); + + /***/ }), /***/ "./resources/js/Pages/PrivacyPolicy.vue?vue&type=template&id=41527301": @@ -71961,6 +72221,19 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var _node_modules_babel_loader_lib_index_js_clonedRuleSet_5_use_0_node_modules_vue_loader_dist_templateLoader_js_ruleSet_1_rules_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_Welcome_vue_vue_type_template_id_317d1a6e__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!../../../node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./Welcome.vue?vue&type=template&id=317d1a6e */ "./node_modules/babel-loader/lib/index.js??clonedRuleSet-5.use[0]!./node_modules/vue-loader/dist/templateLoader.js??ruleSet[1].rules[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/Welcome.vue?vue&type=template&id=317d1a6e"); +/***/ }), + +/***/ "./resources/js/Pages/ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css": +/*!**************************************************************************************!*\ + !*** ./resources/js/Pages/ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css ***! + \**************************************************************************************/ +/***/ ((__unused_webpack_module, __webpack_exports__, __webpack_require__) => { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony import */ var _node_modules_style_loader_dist_cjs_js_node_modules_css_loader_dist_cjs_js_clonedRuleSet_9_use_1_node_modules_vue_loader_dist_stylePostLoader_js_node_modules_postcss_loader_dist_cjs_js_clonedRuleSet_9_use_2_node_modules_vue_loader_dist_index_js_ruleSet_0_use_0_ListCoins_vue_vue_type_style_index_0_id_490a96aa_lang_css__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(/*! -!../../../node_modules/style-loader/dist/cjs.js!../../../node_modules/css-loader/dist/cjs.js??clonedRuleSet-9.use[1]!../../../node_modules/vue-loader/dist/stylePostLoader.js!../../../node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-9.use[2]!../../../node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css */ "./node_modules/style-loader/dist/cjs.js!./node_modules/css-loader/dist/cjs.js??clonedRuleSet-9.use[1]!./node_modules/vue-loader/dist/stylePostLoader.js!./node_modules/postcss-loader/dist/cjs.js??clonedRuleSet-9.use[2]!./node_modules/vue-loader/dist/index.js??ruleSet[0].use[0]!./resources/js/Pages/ListCoins.vue?vue&type=style&index=0&id=490a96aa&lang=css"); + + /***/ }), /***/ "./resources/js/Pages/Welcome.vue?vue&type=style&index=0&id=317d1a6e&lang=css": @@ -72220,6 +72493,7 @@ var map = { "./Auth/TwoFactorChallenge.vue": "./resources/js/Pages/Auth/TwoFactorChallenge.vue", "./Auth/VerifyEmail.vue": "./resources/js/Pages/Auth/VerifyEmail.vue", "./Dashboard.vue": "./resources/js/Pages/Dashboard.vue", + "./ListCoins.vue": "./resources/js/Pages/ListCoins.vue", "./PrivacyPolicy.vue": "./resources/js/Pages/PrivacyPolicy.vue", "./Profile/Partials/DeleteUserForm.vue": "./resources/js/Pages/Profile/Partials/DeleteUserForm.vue", "./Profile/Partials/LogoutOtherBrowserSessionsForm.vue": "./resources/js/Pages/Profile/Partials/LogoutOtherBrowserSessionsForm.vue", diff --git a/resources/js/Pages/ListCoins.vue b/resources/js/Pages/ListCoins.vue new file mode 100644 index 0000000..ee3f5b4 --- /dev/null +++ b/resources/js/Pages/ListCoins.vue @@ -0,0 +1,82 @@ + + + + + \ No newline at end of file diff --git a/resources/js/Pages/Welcome.vue b/resources/js/Pages/Welcome.vue index cca96b2..a92734e 100644 --- a/resources/js/Pages/Welcome.vue +++ b/resources/js/Pages/Welcome.vue @@ -1,4 +1,8 @@