From 0602bba3b218bfe2ce7bf6df8969b1cc2af09b75 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andrei=20Ioni=C8=9B=C4=83?= Date: Wed, 8 Nov 2023 17:29:09 +0000 Subject: [PATCH] feat: SSR support (#303) * init ssr support * wip * wip * add SSR support to the Dockerfile * replace Vue3PictureSwipe component --- .dockerignore | 32 ++ .nvmrc | 1 + Dockerfile | 12 +- app/Http/Middleware/HandleInertiaRequests.php | 46 ++- composer.json | 2 +- composer.lock | 2 +- config/ziggy.php | 18 + docker/s6-rc.d/ssr/run | 5 + docker/s6-rc.d/ssr/type | 1 + docker/s6-rc.d/user/contents.d/ssr | 0 package-lock.json | 381 ++++++++++------- package.json | 23 +- postcss.config.js | 2 +- resources/css/app.css | 7 - resources/js/Components/ClientOnly.vue | 21 + resources/js/Components/Footer.vue | 1 + resources/js/Components/Gallery.vue | 58 +++ resources/js/Components/Head.vue | 14 +- resources/js/Components/Navbar.vue | 3 +- resources/js/Components/Notification.vue | 77 ++-- .../js/Components/OrganizationStatus.vue | 40 +- resources/js/Components/Title.vue | 1 + resources/js/Components/cards/ProjectCard.vue | 16 +- resources/js/Components/charts/BarChart.vue | 154 +++---- resources/js/Components/charts/LineChart.vue | 158 ++++---- .../js/Components/dropdowns/FlyoutMenu.vue | 1 + resources/js/Components/filters/Sort.vue | 2 +- resources/js/Components/gallery/Gallery.vue | 157 ------- .../Components/modals/ConfirmationModal.vue | 1 - .../js/Components/modals/DonateModal.vue | 24 +- resources/js/Components/modals/Modal.vue | 2 +- .../js/Components/tables/TableHeader.vue | 2 +- resources/js/Helpers/useRoute.js | 22 + resources/js/Helpers/useSort.js | 2 +- resources/js/Layouts/DashboardLayout.vue | 5 +- resources/js/Layouts/PageLayout.vue | 3 +- .../js/Pages/AdminOng/Donations/Index.vue | 2 +- .../js/Pages/AdminOng/Organizations/Edit.vue | 7 +- .../js/Pages/AdminOng/Projects/AddProject.vue | 165 ++++---- .../AdminOng/Projects/AddRegionalProject.vue | 1 + .../Pages/AdminOng/Projects/EditProject.vue | 60 ++- .../AdminOng/Projects/EditRegionalProject.vue | 1 + resources/js/Pages/Auth/ConfirmPassword.vue | 1 + resources/js/Pages/Auth/ForgotPassword.vue | 1 + resources/js/Pages/Auth/Login.vue | 15 +- resources/js/Pages/Auth/Register.vue | 1 + resources/js/Pages/Auth/ResetPassword.vue | 1 + resources/js/Pages/Donor/Donations.vue | 228 +++++------ .../Profile/Partials/UpdatePasswordForm.vue | 1 + .../js/Pages/Public/Articles/Articles.vue | 5 +- resources/js/Pages/Public/Articles/Show.vue | 21 +- resources/js/Pages/Public/Bcr/Index.vue | 5 +- resources/js/Pages/Public/Bcr/Show.vue | 382 +++++++++--------- .../Public/Championship/Championship.vue | 6 +- .../js/Pages/Public/Championship/Edition.vue | 5 +- .../js/Pages/Public/Championship/Rules.vue | 15 +- resources/js/Pages/Public/Donor/Donor.vue | 21 +- resources/js/Pages/Public/Donor/ThankYou.vue | 58 +-- .../js/Pages/Public/Evolution/Evolution.vue | 40 +- resources/js/Pages/Public/Home.vue | 11 +- .../js/Pages/Public/Organizations/Index.vue | 1 + .../js/Pages/Public/Organizations/Show.vue | 10 +- .../js/Pages/Public/Projects/Gallery.vue | 43 +- resources/js/Pages/Public/Projects/Index.vue | 1 + resources/js/Pages/Public/Projects/Show.vue | 218 +++++----- .../js/Pages/Public/Regional/Edition.vue | 4 +- .../js/Pages/Public/Regional/LastEdition.vue | 4 +- .../js/Pages/Public/Regional/Project.vue | 5 +- .../js/Pages/Public/Regional/Regional.vue | 4 +- resources/js/Pages/Public/Regional/Rules.vue | 13 +- resources/js/Pages/Public/Website/About.vue | 10 +- resources/js/Pages/Public/Website/Contact.vue | 7 +- resources/js/Pages/Public/Website/Faqs.vue | 6 +- resources/js/Pages/Public/Website/Policy.vue | 11 +- resources/js/Pages/Public/Website/Terms.vue | 10 +- resources/js/app.js | 15 +- resources/js/ssr.js | 22 +- resources/views/app.blade.php | 3 +- vite.config.js | 2 +- 79 files changed, 1407 insertions(+), 1331 deletions(-) create mode 100644 .dockerignore create mode 100644 .nvmrc create mode 100644 config/ziggy.php create mode 100644 docker/s6-rc.d/ssr/run create mode 100644 docker/s6-rc.d/ssr/type create mode 100644 docker/s6-rc.d/user/contents.d/ssr create mode 100644 resources/js/Components/ClientOnly.vue create mode 100644 resources/js/Components/Gallery.vue delete mode 100644 resources/js/Components/gallery/Gallery.vue create mode 100644 resources/js/Helpers/useRoute.js diff --git a/.dockerignore b/.dockerignore new file mode 100644 index 00000000..a345ea06 --- /dev/null +++ b/.dockerignore @@ -0,0 +1,32 @@ +/.git +/.github +/.husky +/.idea +/.vscode +/bootstrap/cache/*.php +/coverage +/node_modules +/public/assets +/public/hot +/public/storage +/public/vendor +/storage/*.key +/storage/app/* +/storage/clockwork +/storage/debugbar +/storage/framework/cache/data/* +/storage/framework/sessions/* +/storage/framework/testing/* +/storage/framework/views/* +/storage/logs/* +/vendor +_ide_helper_models.php +_ide_helper.php +.DS_Store +.env +.php_cs.cache +.php-cs-fixer.cache +.phpstorm.meta.php +.phpunit.result.cache +docker-compose.yml +Dockerfile diff --git a/.nvmrc b/.nvmrc new file mode 100644 index 00000000..209e3ef4 --- /dev/null +++ b/.nvmrc @@ -0,0 +1 @@ +20 diff --git a/Dockerfile b/Dockerfile index 1733399c..9a63df13 100644 --- a/Dockerfile +++ b/Dockerfile @@ -1,4 +1,4 @@ -FROM php:8.1-fpm-alpine as vendor +FROM php:8.1-fpm-alpine AS vendor ENV COMPOSER_ALLOW_SUPERUSER 1 ENV COMPOSER_HOME /tmp @@ -33,7 +33,7 @@ RUN composer install \ --no-dev \ --prefer-dist -FROM node:18-alpine as assets +FROM node:20-alpine AS assets WORKDIR /build @@ -52,7 +52,7 @@ RUN npm run build FROM vendor -ARG S6_OVERLAY_VERSION=3.1.2.1 +ARG S6_OVERLAY_VERSION=3.1.6.0 ADD https://github.com/just-containers/s6-overlay/releases/download/v${S6_OVERLAY_VERSION}/s6-overlay-noarch.tar.xz /tmp RUN tar -C / -Jxpf /tmp/s6-overlay-noarch.tar.xz @@ -67,6 +67,12 @@ COPY docker/php/www.conf /usr/local/etc/php-fpm.d/zz-docker.conf COPY docker/s6-rc.d /etc/s6-overlay/s6-rc.d COPY --from=assets --chown=www-data:www-data /build/public/build /var/www/public/build +COPY --from=assets /build/node_modules /var/www/node_modules +COPY --from=assets /usr/lib /usr/lib +COPY --from=assets /usr/local/share /usr/local/share +COPY --from=assets /usr/local/lib /usr/local/lib +COPY --from=assets /usr/local/include /usr/local/include +COPY --from=assets /usr/local/bin /usr/local/bin ENV APP_ENV production ENV APP_DEBUG false diff --git a/app/Http/Middleware/HandleInertiaRequests.php b/app/Http/Middleware/HandleInertiaRequests.php index 011b443c..e2029984 100644 --- a/app/Http/Middleware/HandleInertiaRequests.php +++ b/app/Http/Middleware/HandleInertiaRequests.php @@ -6,6 +6,7 @@ use Illuminate\Http\Request; use Inertia\Middleware; +use Tightenco\Ziggy\Ziggy; class HandleInertiaRequests extends Middleware { @@ -23,17 +24,40 @@ class HandleInertiaRequests extends Middleware */ public function share(Request $request): array { - return array_merge(parent::share($request), [ - 'flash' => fn () => $this->flash($request), - 'auth' => [ - 'user' => $request->user(), - ], - 'organization_status' => fn () => $request->user()?->organization?->status, - 'locales' => fn () => [ - 'available' => locales(), - 'current' => app()->getLocale(), - ], - ]); + return array_merge( + parent::share($request), + $this->shareOnce($request), + [ + 'appName' => config('app.name'), + 'flash' => fn () => $this->flash($request), + 'auth' => fn () => [ + 'user' => $request->user(), + 'organization' => [ + 'status' => $request->user()?->organization?->status, + ], + ], + 'locales' => [ + 'available' => locales(), + 'current' => app()->getLocale(), + ], + ] + ); + } + + /** + * Define the props that are shared on first load only. + * + * @return array + */ + public function shareOnce(Request $request): array + { + if ($request->inertia()) { + return []; + } + + return [ + 'ziggy' => new Ziggy, + ]; } protected function flash(Request $request): ?array diff --git a/composer.json b/composer.json index 3e817162..b18d3a60 100644 --- a/composer.json +++ b/composer.json @@ -28,7 +28,7 @@ "spatie/laravel-newsletter": "^5.1", "spatie/laravel-query-builder": "^5.3", "stevegrunwell/time-constants": "^1.1", - "tightenco/ziggy": "^1.6" + "tightenco/ziggy": "^1.8" }, "require-dev": { "barryvdh/laravel-debugbar": "^3.9", diff --git a/composer.lock b/composer.lock index 1dca8d4e..8bde093e 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies", "This file is @generated automatically" ], - "content-hash": "be0d4e8f0908e794b3fbe76125cf8c1b", + "content-hash": "3c764bf43a2cc641437b72883d8ea76b", "packages": [ { "name": "akaunting/laravel-money", diff --git a/config/ziggy.php b/config/ziggy.php new file mode 100644 index 00000000..d3cfe2c3 --- /dev/null +++ b/config/ziggy.php @@ -0,0 +1,18 @@ + true, + + 'except' => [ + 'debugbar.*', + 'dusk.*', + 'filament.*', + 'horizon.*', + 'ignition.*', + 'telescope', + ], + +]; diff --git a/docker/s6-rc.d/ssr/run b/docker/s6-rc.d/ssr/run new file mode 100644 index 00000000..43b0c515 --- /dev/null +++ b/docker/s6-rc.d/ssr/run @@ -0,0 +1,5 @@ +#!/command/with-contenv sh + +cd /var/www + +php artisan inertia:start-ssr diff --git a/docker/s6-rc.d/ssr/type b/docker/s6-rc.d/ssr/type new file mode 100644 index 00000000..5883cff0 --- /dev/null +++ b/docker/s6-rc.d/ssr/type @@ -0,0 +1 @@ +longrun diff --git a/docker/s6-rc.d/user/contents.d/ssr b/docker/s6-rc.d/user/contents.d/ssr new file mode 100644 index 00000000..e69de29b diff --git a/package-lock.json b/package-lock.json index 1ce7c668..b49e1810 100644 --- a/package-lock.json +++ b/package-lock.json @@ -4,36 +4,34 @@ "requires": true, "packages": { "": { - "dependencies": { - "vue3-picture-swipe": "^3.0.6" - }, "devDependencies": { "@headlessui/vue": "^1.7.16", "@heroicons/vue": "^1.0.6", - "@inertiajs/vue3": "^1.0.11", + "@inertiajs/vue3": "^1.0.14", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.6", "@tailwindcss/typography": "^0.5.10", - "@vitejs/plugin-vue": "^4.3.4", - "@vue/server-renderer": "^3.3.4", + "@vitejs/plugin-vue": "^4.4.0", + "@vue/server-renderer": "^3.3.7", "@vueform/multiselect": "^2.6.2", "@vuepic/vue-datepicker": "^6.0.3", "@vueuse/core": "^10.4.1", - "autoprefixer": "^10.4.15", + "autoprefixer": "^10.4.16", "axios": "^1.5.0", "chart.js": "^4.4.0", - "laravel-vite-plugin": "^0.8.0", + "laravel-vite-plugin": "^0.8.1", "laravel-vue-i18n": "^2.7.1", - "postcss": "^8.4.29", - "tailwindcss": "^3.3.3", + "photoswipe": "^5.4.2", + "postcss": "^8.4.31", + "tailwindcss": "^3.3.5", "tippy.js": "^6.3.7", - "vite": "^4.4.9", + "vite": "^4.5.0", "vite-plugin-svg-icons": "^2.0.1", "vite-svg-loader": "^4.0.0", "vue": "^3.3.4", "vue-chartjs": "^5.2.0", "vue3-carousel": "^0.3.1", - "ziggy-js": "^1.6.2" + "ziggy-js": "^1.8.1" } }, "node_modules/@alloc/quick-lru": { @@ -49,9 +47,9 @@ } }, "node_modules/@babel/parser": { - "version": "7.22.11", - "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.22.11.tgz", - "integrity": "sha512-R5zb8eJIBPJriQtbH/htEQy4k7E2dHWlD2Y2VT07JCzwYZHBxV5ZYtM0UhXSNMT74LyxuM+b1jdL7pSesXbC/g==", + "version": "7.23.0", + "resolved": "https://registry.npmjs.org/@babel/parser/-/parser-7.23.0.tgz", + "integrity": "sha512-vvPKKdMemU85V9WE/l5wZEmImpCtLqbnTvqDS2U1fJ96KrxoW7KrXhNsNCblQlg8Ck4b85yxdTyelsMUgFUXiw==", "dev": true, "bin": { "parser": "bin/babel-parser.js" @@ -446,9 +444,9 @@ } }, "node_modules/@inertiajs/core": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-1.0.11.tgz", - "integrity": "sha512-EFUvVsq8TvvIaUDrfbL/pvEBvu67gdBvV/cyepDZqCdAolld0N3AO+TZ7i7UtwKwLKw8eAFbixgbkicugojhGA==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@inertiajs/core/-/core-1.0.14.tgz", + "integrity": "sha512-S33PU6mWEYbn/s2Op+CJ6MN7ON354vWw8Y+UvtQzPt0r7pVgOuIArrqqsoulf9oQz9sbP1+vp/tCvyBzm4XmpA==", "dev": true, "dependencies": { "axios": "^1.2.0", @@ -458,12 +456,12 @@ } }, "node_modules/@inertiajs/vue3": { - "version": "1.0.11", - "resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-1.0.11.tgz", - "integrity": "sha512-4lqOsXWXxbeqq5dXZhpNSFabNfxHItHjc005+dqd+cKbhZ5n+dr8n2IGSDBfMNcT7bJfDUyUS2XKdY5y1EnAuw==", + "version": "1.0.14", + "resolved": "https://registry.npmjs.org/@inertiajs/vue3/-/vue3-1.0.14.tgz", + "integrity": "sha512-lKL3Bm9k95Gw1GAq4RxgjfwSMfklkeMbvEfzwmsEBsZ4BbbWwfpC/+KS+4O4faTjjijczvkDPhMKv4duzFxtGw==", "dev": true, "dependencies": { - "@inertiajs/core": "1.0.11", + "@inertiajs/core": "1.0.14", "lodash.clonedeep": "^4.5.0", "lodash.isequal": "^4.5.0" }, @@ -656,9 +654,9 @@ "dev": true }, "node_modules/@vitejs/plugin-vue": { - "version": "4.3.4", - "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.3.4.tgz", - "integrity": "sha512-ciXNIHKPriERBisHFBvnTbfKa6r9SAesOYXeGDzgegcvy9Q4xdScSHAmKbNT0M3O0S9LKhIf5/G+UYG4NnnzYw==", + "version": "4.4.0", + "resolved": "https://registry.npmjs.org/@vitejs/plugin-vue/-/plugin-vue-4.4.0.tgz", + "integrity": "sha512-xdguqb+VUwiRpSg+nsc2HtbAUSGak25DXYvpQQi4RVU1Xq1uworyoH/md9Rfd8zMmPR/pSghr309QNcftUVseg==", "dev": true, "engines": { "node": "^14.18.0 || >=16.0.0" @@ -669,115 +667,115 @@ } }, "node_modules/@vue/compiler-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.4.tgz", - "integrity": "sha512-cquyDNvZ6jTbf/+x+AgM2Arrp6G4Dzbb0R64jiG804HRMfRiFXWI6kqUVqZ6ZR0bQhIoQjB4+2bhNtVwndW15g==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@vue/compiler-core/-/compiler-core-3.3.7.tgz", + "integrity": "sha512-pACdY6YnTNVLXsB86YD8OF9ihwpolzhhtdLVHhBL6do/ykr6kKXNYABRtNMGrsQXpEXXyAdwvWWkuTbs4MFtPQ==", "dev": true, "dependencies": { - "@babel/parser": "^7.21.3", - "@vue/shared": "3.3.4", + "@babel/parser": "^7.23.0", + "@vue/shared": "3.3.7", "estree-walker": "^2.0.2", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-dom": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.4.tgz", - "integrity": "sha512-wyM+OjOVpuUukIq6p5+nwHYtj9cFroz9cwkfmP9O1nzH68BenTTv0u7/ndggT8cIQlnBeOo6sUT/gvHcIkLA5w==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@vue/compiler-dom/-/compiler-dom-3.3.7.tgz", + "integrity": "sha512-0LwkyJjnUPssXv/d1vNJ0PKfBlDoQs7n81CbO6Q0zdL7H1EzqYRrTVXDqdBVqro0aJjo/FOa1qBAPVI4PGSHBw==", "dev": true, "dependencies": { - "@vue/compiler-core": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-core": "3.3.7", + "@vue/shared": "3.3.7" } }, "node_modules/@vue/compiler-sfc": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.4.tgz", - "integrity": "sha512-6y/d8uw+5TkCuzBkgLS0v3lSM3hJDntFEiUORM11pQ/hKvkhSKZrXW6i69UyXlJQisJxuUEJKAWEqWbWsLeNKQ==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@vue/compiler-sfc/-/compiler-sfc-3.3.7.tgz", + "integrity": "sha512-7pfldWy/J75U/ZyYIXRVqvLRw3vmfxDo2YLMwVtWVNew8Sm8d6wodM+OYFq4ll/UxfqVr0XKiVwti32PCrruAw==", "dev": true, "dependencies": { - "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.4", - "@vue/compiler-dom": "3.3.4", - "@vue/compiler-ssr": "3.3.4", - "@vue/reactivity-transform": "3.3.4", - "@vue/shared": "3.3.4", + "@babel/parser": "^7.23.0", + "@vue/compiler-core": "3.3.7", + "@vue/compiler-dom": "3.3.7", + "@vue/compiler-ssr": "3.3.7", + "@vue/reactivity-transform": "3.3.7", + "@vue/shared": "3.3.7", "estree-walker": "^2.0.2", - "magic-string": "^0.30.0", - "postcss": "^8.1.10", + "magic-string": "^0.30.5", + "postcss": "^8.4.31", "source-map-js": "^1.0.2" } }, "node_modules/@vue/compiler-ssr": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.4.tgz", - "integrity": "sha512-m0v6oKpup2nMSehwA6Uuu+j+wEwcy7QmwMkVNVfrV9P2qE5KshC6RwOCq8fjGS/Eak/uNb8AaWekfiXxbBB6gQ==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@vue/compiler-ssr/-/compiler-ssr-3.3.7.tgz", + "integrity": "sha512-TxOfNVVeH3zgBc82kcUv+emNHo+vKnlRrkv8YvQU5+Y5LJGJwSNzcmLUoxD/dNzv0bhQ/F0s+InlgV0NrApJZg==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-dom": "3.3.7", + "@vue/shared": "3.3.7" } }, "node_modules/@vue/reactivity": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.4.tgz", - "integrity": "sha512-kLTDLwd0B1jG08NBF3R5rqULtv/f8x3rOFByTDz4J53ttIQEDmALqKqXY0J+XQeN0aV2FBxY8nJDf88yvOPAqQ==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@vue/reactivity/-/reactivity-3.3.7.tgz", + "integrity": "sha512-cZNVjWiw00708WqT0zRpyAgduG79dScKEPYJXq2xj/aMtk3SKvL3FBt2QKUlh6EHBJ1m8RhBY+ikBUzwc7/khg==", "dev": true, "dependencies": { - "@vue/shared": "3.3.4" + "@vue/shared": "3.3.7" } }, "node_modules/@vue/reactivity-transform": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.4.tgz", - "integrity": "sha512-MXgwjako4nu5WFLAjpBnCj/ieqcjE2aJBINUNQzkZQfzIZA4xn+0fV1tIYBJvvva3N3OvKGofRLvQIwEQPpaXw==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@vue/reactivity-transform/-/reactivity-transform-3.3.7.tgz", + "integrity": "sha512-APhRmLVbgE1VPGtoLQoWBJEaQk4V8JUsqrQihImVqKT+8U6Qi3t5ATcg4Y9wGAPb3kIhetpufyZ1RhwbZCIdDA==", "dev": true, "dependencies": { - "@babel/parser": "^7.20.15", - "@vue/compiler-core": "3.3.4", - "@vue/shared": "3.3.4", + "@babel/parser": "^7.23.0", + "@vue/compiler-core": "3.3.7", + "@vue/shared": "3.3.7", "estree-walker": "^2.0.2", - "magic-string": "^0.30.0" + "magic-string": "^0.30.5" } }, "node_modules/@vue/runtime-core": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.4.tgz", - "integrity": "sha512-R+bqxMN6pWO7zGI4OMlmvePOdP2c93GsHFM/siJI7O2nxFRzj55pLwkpCedEY+bTMgp5miZ8CxfIZo3S+gFqvA==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@vue/runtime-core/-/runtime-core-3.3.7.tgz", + "integrity": "sha512-LHq9du3ubLZFdK/BP0Ysy3zhHqRfBn80Uc+T5Hz3maFJBGhci1MafccnL3rpd5/3wVfRHAe6c+PnlO2PAavPTQ==", "dev": true, "dependencies": { - "@vue/reactivity": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/reactivity": "3.3.7", + "@vue/shared": "3.3.7" } }, "node_modules/@vue/runtime-dom": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.4.tgz", - "integrity": "sha512-Aj5bTJ3u5sFsUckRghsNjVTtxZQ1OyMWCr5dZRAPijF/0Vy4xEoRCwLyHXcj4D0UFbJ4lbx3gPTgg06K/GnPnQ==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@vue/runtime-dom/-/runtime-dom-3.3.7.tgz", + "integrity": "sha512-PFQU1oeJxikdDmrfoNQay5nD4tcPNYixUBruZzVX/l0eyZvFKElZUjW4KctCcs52nnpMGO6UDK+jF5oV4GT5Lw==", "dev": true, "dependencies": { - "@vue/runtime-core": "3.3.4", - "@vue/shared": "3.3.4", - "csstype": "^3.1.1" + "@vue/runtime-core": "3.3.7", + "@vue/shared": "3.3.7", + "csstype": "^3.1.2" } }, "node_modules/@vue/server-renderer": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.4.tgz", - "integrity": "sha512-Q6jDDzR23ViIb67v+vM1Dqntu+HUexQcsWKhhQa4ARVzxOY2HbC7QRW/ggkDBd5BU+uM1sV6XOAP0b216o34JQ==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@vue/server-renderer/-/server-renderer-3.3.7.tgz", + "integrity": "sha512-UlpKDInd1hIZiNuVVVvLgxpfnSouxKQOSE2bOfQpBuGwxRV/JqqTCyyjXUWiwtVMyeRaZhOYYqntxElk8FhBhw==", "dev": true, "dependencies": { - "@vue/compiler-ssr": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-ssr": "3.3.7", + "@vue/shared": "3.3.7" }, "peerDependencies": { - "vue": "3.3.4" + "vue": "3.3.7" } }, "node_modules/@vue/shared": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.4.tgz", - "integrity": "sha512-7OjdcV8vQ74eiz1TZLzZP4JwqM5fA94K6yntPS5Z25r9HDuGNzaGdgvwKYq6S+MxwF0TFRwe50fIR/MYnakdkQ==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/@vue/shared/-/shared-3.3.7.tgz", + "integrity": "sha512-N/tbkINRUDExgcPTBvxNkvHGu504k8lzlNQRITVnm6YjOjwa4r0nnbd4Jb01sNpur5hAllyRJzSK5PvB9PPwRg==", "dev": true }, "node_modules/@vueform/multiselect": { @@ -997,9 +995,9 @@ } }, "node_modules/autoprefixer": { - "version": "10.4.15", - "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.15.tgz", - "integrity": "sha512-KCuPB8ZCIqFdA4HwKXsvz7j6gvSDNhDP7WnUjBleRkKjPdvCmHFuQ77ocavI8FT6NdvlBnE2UFr2H4Mycn8Vew==", + "version": "10.4.16", + "resolved": "https://registry.npmjs.org/autoprefixer/-/autoprefixer-10.4.16.tgz", + "integrity": "sha512-7vd3UC6xKp0HLfua5IjZlcXvGAGy7cBAXTg2lyQ/8WpNhd6SiZ8Be+xm3FyBSYJx5GKcpRCzBh7RH4/0dnY+uQ==", "dev": true, "funding": [ { @@ -1017,8 +1015,8 @@ ], "dependencies": { "browserslist": "^4.21.10", - "caniuse-lite": "^1.0.30001520", - "fraction.js": "^4.2.0", + "caniuse-lite": "^1.0.30001538", + "fraction.js": "^4.3.6", "normalize-range": "^0.1.2", "picocolors": "^1.0.0", "postcss-value-parser": "^4.2.0" @@ -1191,13 +1189,14 @@ } }, "node_modules/call-bind": { - "version": "1.0.2", - "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", - "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", + "version": "1.0.5", + "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.5.tgz", + "integrity": "sha512-C3nQxfFZxFRVoJoGKKI8y3MOEo129NQ+FgQ08iye+Mk4zNZZGdjfs06bVTr+DBSlA66Q2VEcMki/cUCP4SercQ==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "get-intrinsic": "^1.0.2" + "function-bind": "^1.1.2", + "get-intrinsic": "^1.2.1", + "set-function-length": "^1.1.1" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -1213,9 +1212,9 @@ } }, "node_modules/caniuse-lite": { - "version": "1.0.30001524", - "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001524.tgz", - "integrity": "sha512-Jj917pJtYg9HSJBF95HVX3Cdr89JUyLT4IZ8SvM5aDRni95swKgYi3TgYLH5hnGfPE/U1dg6IfZ50UsIlLkwSA==", + "version": "1.0.30001559", + "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001559.tgz", + "integrity": "sha512-cPiMKZgqgkg5LY3/ntGeLFUpi6tzddBNS58A4tnTgQw1zON7u2sZMU7SzOeVH4tj20++9ggL+V6FDOFMTaFFYA==", "dev": true, "funding": [ { @@ -1635,6 +1634,20 @@ "node": ">=0.10.0" } }, + "node_modules/define-data-property": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/define-data-property/-/define-data-property-1.1.1.tgz", + "integrity": "sha512-E7uGkTzkk1d0ByLeSc6ZsFS79Axg+m1P/VsgYsxHgiuc3tFSj+MjMIwe90FC4lOAZzNBdY7kkO2P2wKdsQ1vgQ==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/define-property": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/define-property/-/define-property-1.0.0.tgz", @@ -1959,9 +1972,9 @@ } }, "node_modules/fast-glob": { - "version": "3.2.12", - "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.2.12.tgz", - "integrity": "sha512-DVj4CQIYYow0BlaelwK1pHl5n5cRSJfM60UA0zK891sVInoPri2Ekj7+e1CT3/3qxXenpI+nBBmQAcJPJgaj4w==", + "version": "3.3.1", + "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-3.3.1.tgz", + "integrity": "sha512-kNFPyjhh5cKjrUltxs+wFx+ZkbRaxxmZ+X0ZU31SOsxCEtP9VPgtq2teZw1DebupL5GmDaNQ6yKMMVcM41iqDg==", "dev": true, "dependencies": { "@nodelib/fs.stat": "^2.0.2", @@ -2051,16 +2064,16 @@ } }, "node_modules/fraction.js": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.2.0.tgz", - "integrity": "sha512-MhLuK+2gUcnZe8ZHlaaINnQLl0xRIGRfcGk2yl8xoQAfHrSsL3rYu6FCmBdkdbhc9EPlwyGHewaRsvwRMJtAlA==", + "version": "4.3.7", + "resolved": "https://registry.npmjs.org/fraction.js/-/fraction.js-4.3.7.tgz", + "integrity": "sha512-ZsDfxO51wGAXREY55a7la9LScWpwv9RxIrYABrlvOFBlH/ShPnrtsXeuUIfXKKOVicNxQ+o8JTbJvjS4M89yew==", "dev": true, "engines": { "node": "*" }, "funding": { "type": "patreon", - "url": "https://www.patreon.com/infusion" + "url": "https://github.com/sponsors/rawify" } }, "node_modules/fragment-cache": { @@ -2110,21 +2123,24 @@ } }, "node_modules/function-bind": { - "version": "1.1.1", - "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.1.tgz", - "integrity": "sha512-yIovAzMX49sF8Yl58fSCWJ5svSLuaibPxXQJFLmBObTuCr0Mf1KiPopGM9NiFjiYBCbfaa2Fh6breQ6ANVTI0A==", - "dev": true + "version": "1.1.2", + "resolved": "https://registry.npmjs.org/function-bind/-/function-bind-1.1.2.tgz", + "integrity": "sha512-7XHNxH7qX9xG5mIwxkhumTox/MIRNcOgDrxWsMt2pAr23WHp6MrRlN7FBSFpCpr+oVO0F744iUgR82nJMfG2SA==", + "dev": true, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } }, "node_modules/get-intrinsic": { - "version": "1.2.1", - "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.1.tgz", - "integrity": "sha512-2DcsyfABl+gVHEfCOaTrWgyt+tb6MSEGmKq+kI5HwLbIYgjgmMcV8KQ41uaKz1xxUcn9tJtgFbQUEVcEbd0FYw==", + "version": "1.2.2", + "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.2.2.tgz", + "integrity": "sha512-0gSo4ml/0j98Y3lngkFEot/zhiCeWsbYIlZ+uZOVgzLyLaUw7wxUL+nCTP0XJvJg1AXulJRI3UJi8GsbDuxdGA==", "dev": true, "dependencies": { - "function-bind": "^1.1.1", - "has": "^1.0.3", + "function-bind": "^1.1.2", "has-proto": "^1.0.1", - "has-symbols": "^1.0.3" + "has-symbols": "^1.0.3", + "hasown": "^2.0.0" }, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -2171,6 +2187,18 @@ "node": ">=10.13.0" } }, + "node_modules/gopd": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/gopd/-/gopd-1.0.1.tgz", + "integrity": "sha512-d65bNlIadxvpb/A2abVdlqKqV563juRnZ1Wtk6s1sIR8uNsXR70xqIzVqxVf1eTqDunwT2MkczEeaezCKTZhwA==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.1.3" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/graceful-fs": { "version": "4.2.11", "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.11.tgz", @@ -2210,6 +2238,18 @@ "node": ">=0.10.0" } }, + "node_modules/has-property-descriptors": { + "version": "1.0.1", + "resolved": "https://registry.npmjs.org/has-property-descriptors/-/has-property-descriptors-1.0.1.tgz", + "integrity": "sha512-VsX8eaIewvas0xnvinAe9bw4WfIeODpGYikiWYLH+dma0Jw6KHYqWiWfhQlgOVK8D6PvjubK5Uc4P0iIhIcNVg==", + "dev": true, + "dependencies": { + "get-intrinsic": "^1.2.2" + }, + "funding": { + "url": "https://github.com/sponsors/ljharb" + } + }, "node_modules/has-proto": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/has-proto/-/has-proto-1.0.1.tgz", @@ -2306,6 +2346,18 @@ "node": ">=0.10.0" } }, + "node_modules/hasown": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/hasown/-/hasown-2.0.0.tgz", + "integrity": "sha512-vUptKVTpIJhcczKBbgnS+RtcuYMB8+oNzPK2/Hp3hanz8JmpATdmmgLgSaadVREkDm+e2giHwY3ZRkyjSIDDFA==", + "dev": true, + "dependencies": { + "function-bind": "^1.1.2" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/he": { "version": "1.2.0", "resolved": "https://registry.npmjs.org/he/-/he-1.2.0.tgz", @@ -2611,9 +2663,9 @@ } }, "node_modules/jiti": { - "version": "1.18.2", - "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.18.2.tgz", - "integrity": "sha512-QAdOptna2NYiSSpv0O/BwoHBSmz4YhpzJHyi+fnMRTXFjp7B8i/YG5Z8IfusxB1ufjcD2Sre1F3R+nX3fvy7gg==", + "version": "1.21.0", + "resolved": "https://registry.npmjs.org/jiti/-/jiti-1.21.0.tgz", + "integrity": "sha512-gFqAIbuKyyso/3G2qhiO2OM6shY6EPP/R0+mkDbyspxKazh8BXDC5FiFsUjlczgdNz/vfra0da2y+aHrusLG/Q==", "dev": true, "bin": { "jiti": "bin/jiti.js" @@ -2647,9 +2699,9 @@ } }, "node_modules/laravel-vite-plugin": { - "version": "0.8.0", - "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.8.0.tgz", - "integrity": "sha512-6VjLI+azBpeK6rWBiKcb/En5GnTdYpL0U4zS8gXYvb2/VSq4mlau5H3NWpSktUDBMM1b97LLgICx5zevi8IY0w==", + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/laravel-vite-plugin/-/laravel-vite-plugin-0.8.1.tgz", + "integrity": "sha512-fxzUDjOA37kOsYq8dP+3oPIlw8/kJVXwu0hOXLun82R1LpV02shGeWGYKx2lbpKffL5I0sfPPjfqbYxuqBluAA==", "dev": true, "dependencies": { "picocolors": "^1.0.0", @@ -2744,9 +2796,9 @@ "dev": true }, "node_modules/magic-string": { - "version": "0.30.3", - "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.3.tgz", - "integrity": "sha512-B7xGbll2fG/VjP+SWg4sX3JynwIU0mjoTc6MPpKNuIvftk6u6vqhDnk1R80b8C2GBR6ywqy+1DcKBrevBg+bmw==", + "version": "0.30.5", + "resolved": "https://registry.npmjs.org/magic-string/-/magic-string-0.30.5.tgz", + "integrity": "sha512-7xlpfBaQaP/T6Vh8MO/EqXSW5En6INHEvEXQiuff7Gku0PWjU3uf6w/j9o7O+SpB5fOAkrI5HeoNgwjEO0pFsA==", "dev": true, "dependencies": { "@jridgewell/sourcemap-codec": "^1.4.15" @@ -3151,9 +3203,9 @@ } }, "node_modules/object-inspect": { - "version": "1.12.3", - "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.12.3.tgz", - "integrity": "sha512-geUvdk7c+eizMNUDkRpW1wJwgfOiOeHbxBR/hLXK1aT6zmVSO0jsQcs7fj6MGw89jC/cjGfLcNOrtMYtGqm81g==", + "version": "1.13.1", + "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.13.1.tgz", + "integrity": "sha512-5qoj1RUiKOMsCCNLV1CBiPYE10sziTsnmNxkAI/rZhiD63CF7IqdFGC/XzjWjpSgLf0LxXX3bDFIh0E18f6UhQ==", "dev": true, "funding": { "url": "https://github.com/sponsors/ljharb" @@ -3234,6 +3286,15 @@ "integrity": "sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==", "dev": true }, + "node_modules/photoswipe": { + "version": "5.4.2", + "resolved": "https://registry.npmjs.org/photoswipe/-/photoswipe-5.4.2.tgz", + "integrity": "sha512-z5hr36nAIPOZbHJPbCJ/mQ3+ZlizttF9za5gKXKH/us1k4KNHaRbC63K1Px5sVVKUtGb/2+ixHpKqtwl0WAwvA==", + "dev": true, + "engines": { + "node": ">= 0.12.0" + } + }, "node_modules/php-parser": { "version": "3.1.3", "resolved": "https://registry.npmjs.org/php-parser/-/php-parser-3.1.3.tgz", @@ -3286,9 +3347,9 @@ } }, "node_modules/postcss": { - "version": "8.4.29", - "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.29.tgz", - "integrity": "sha512-cbI+jaqIeu/VGqXEarWkRCCffhjgXc0qjBtXpqJhTBohMUjUQnbBr0xqX3vEKudc4iviTewcJo5ajcec5+wdJw==", + "version": "8.4.31", + "resolved": "https://registry.npmjs.org/postcss/-/postcss-8.4.31.tgz", + "integrity": "sha512-PS08Iboia9mts/2ygV3eLpY5ghnUcfLV/EXTOW1E2qYxJKGGBUtNjN76FYHnMs36RmARn41bC0AZmn+rR0OVpQ==", "dev": true, "funding": [ { @@ -3740,6 +3801,21 @@ "ret": "~0.1.10" } }, + "node_modules/set-function-length": { + "version": "1.1.1", + "resolved": "https://registry.npmjs.org/set-function-length/-/set-function-length-1.1.1.tgz", + "integrity": "sha512-VoaqjbBJKiWtg4yRcKBQ7g7wnGnLV3M8oLvVWwOk2PdYY6PEFegR1vezXR0tw6fZGF9csVakIRjrJiy2veSBFQ==", + "dev": true, + "dependencies": { + "define-data-property": "^1.1.1", + "get-intrinsic": "^1.2.1", + "gopd": "^1.0.1", + "has-property-descriptors": "^1.0.0" + }, + "engines": { + "node": ">= 0.4" + } + }, "node_modules/set-value": { "version": "2.0.1", "resolved": "https://registry.npmjs.org/set-value/-/set-value-2.0.1.tgz", @@ -4364,9 +4440,9 @@ } }, "node_modules/tailwindcss": { - "version": "3.3.3", - "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.3.tgz", - "integrity": "sha512-A0KgSkef7eE4Mf+nKJ83i75TMyq8HqY3qmFIJSWy8bNt0v1lG7jUcpGpoTFxAwYcWOphcTBLPPJg+bDfhDf52w==", + "version": "3.3.5", + "resolved": "https://registry.npmjs.org/tailwindcss/-/tailwindcss-3.3.5.tgz", + "integrity": "sha512-5SEZU4J7pxZgSkv7FP1zY8i2TIAOooNZ1e/OGtxIEv6GltpoiXUqWvLy89+a10qYTB1N5Ifkuw9lqQkN9sscvA==", "dev": true, "dependencies": { "@alloc/quick-lru": "^5.2.0", @@ -4374,10 +4450,10 @@ "chokidar": "^3.5.3", "didyoumean": "^1.2.2", "dlv": "^1.1.3", - "fast-glob": "^3.2.12", + "fast-glob": "^3.3.0", "glob-parent": "^6.0.2", "is-glob": "^4.0.3", - "jiti": "^1.18.2", + "jiti": "^1.19.1", "lilconfig": "^2.1.0", "micromatch": "^4.0.5", "normalize-path": "^3.0.0", @@ -4686,9 +4762,9 @@ } }, "node_modules/vite": { - "version": "4.4.9", - "resolved": "https://registry.npmjs.org/vite/-/vite-4.4.9.tgz", - "integrity": "sha512-2mbUn2LlUmNASWwSCNSJ/EG2HuSRTnVNaydp6vMCm5VIqJsjMfbIWtbH2kDuwUVW5mMUKKZvGPX/rqeqVvv1XA==", + "version": "4.5.0", + "resolved": "https://registry.npmjs.org/vite/-/vite-4.5.0.tgz", + "integrity": "sha512-ulr8rNLA6rkyFAlVWw2q5YJ91v098AFQ2R0PRFwPzREXOUJQPtFUG0t+/ZikhaOCDqFoDhN6/v8Sq0o4araFAw==", "dev": true, "dependencies": { "esbuild": "^0.18.10", @@ -4918,16 +4994,24 @@ } }, "node_modules/vue": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.4.tgz", - "integrity": "sha512-VTyEYn3yvIeY1Py0WaYGZsXnz3y5UnGi62GjVEqvEGPl6nxbOrCXbVOTQWBEJUqAyTUk2uJ5JLVnYJ6ZzGbrSw==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/vue/-/vue-3.3.7.tgz", + "integrity": "sha512-YEMDia1ZTv1TeBbnu6VybatmSteGOS3A3YgfINOfraCbf85wdKHzscD6HSS/vB4GAtI7sa1XPX7HcQaJ1l24zA==", "dev": true, "dependencies": { - "@vue/compiler-dom": "3.3.4", - "@vue/compiler-sfc": "3.3.4", - "@vue/runtime-dom": "3.3.4", - "@vue/server-renderer": "3.3.4", - "@vue/shared": "3.3.4" + "@vue/compiler-dom": "3.3.7", + "@vue/compiler-sfc": "3.3.7", + "@vue/runtime-dom": "3.3.7", + "@vue/server-renderer": "3.3.7", + "@vue/shared": "3.3.7" + }, + "peerDependencies": { + "typescript": "*" + }, + "peerDependenciesMeta": { + "typescript": { + "optional": true + } } }, "node_modules/vue-chartjs": { @@ -4949,11 +5033,6 @@ "vue": "^3.2.0" } }, - "node_modules/vue3-picture-swipe": { - "version": "3.0.6", - "resolved": "https://registry.npmjs.org/vue3-picture-swipe/-/vue3-picture-swipe-3.0.6.tgz", - "integrity": "sha512-tCoWJr5cXZMk8hlycPPdo9UCl5m3ZChDVdDhHdiJedtkTZL6H0wYV6mZvL8Lz6e80kpiIXxsoltJobcePnKB0A==" - }, "node_modules/wrappy": { "version": "1.0.2", "resolved": "https://registry.npmjs.org/wrappy/-/wrappy-1.0.2.tgz", @@ -4970,9 +5049,9 @@ } }, "node_modules/ziggy-js": { - "version": "1.6.2", - "resolved": "https://registry.npmjs.org/ziggy-js/-/ziggy-js-1.6.2.tgz", - "integrity": "sha512-abUqQ1hatBLZnxqfgytxB+Rd3uey+ivPxU5alKxB8GS1xbc0mtntxHX/+tZ9q9UjFGxAUHd4IGGkhg5TboxulQ==", + "version": "1.8.1", + "resolved": "https://registry.npmjs.org/ziggy-js/-/ziggy-js-1.8.1.tgz", + "integrity": "sha512-fnf30uG0yvUQBPL4T8YPgmkBHUdjYaOFgUb1K1gj0+rclnLTNr9/K/cxC3xkCZyYCZz8oTnXkdf3oJXRPSzavw==", "dev": true, "dependencies": { "qs": "~6.9.7" diff --git a/package.json b/package.json index 22f753ae..8318b3e7 100644 --- a/package.json +++ b/package.json @@ -1,5 +1,6 @@ { "private": true, + "type": "module", "scripts": { "dev": "vite", "build": "vite build && vite build --ssr" @@ -7,32 +8,30 @@ "devDependencies": { "@headlessui/vue": "^1.7.16", "@heroicons/vue": "^1.0.6", - "@inertiajs/vue3": "^1.0.11", + "@inertiajs/vue3": "^1.0.14", "@tailwindcss/aspect-ratio": "^0.4.2", "@tailwindcss/forms": "^0.5.6", "@tailwindcss/typography": "^0.5.10", - "@vitejs/plugin-vue": "^4.3.4", - "@vue/server-renderer": "^3.3.4", + "@vitejs/plugin-vue": "^4.4.0", + "@vue/server-renderer": "^3.3.7", "@vueform/multiselect": "^2.6.2", "@vuepic/vue-datepicker": "^6.0.3", "@vueuse/core": "^10.4.1", - "autoprefixer": "^10.4.15", + "autoprefixer": "^10.4.16", "axios": "^1.5.0", "chart.js": "^4.4.0", - "laravel-vite-plugin": "^0.8.0", + "laravel-vite-plugin": "^0.8.1", "laravel-vue-i18n": "^2.7.1", - "postcss": "^8.4.29", - "tailwindcss": "^3.3.3", + "photoswipe": "^5.4.2", + "postcss": "^8.4.31", + "tailwindcss": "^3.3.5", "tippy.js": "^6.3.7", - "vite": "^4.4.9", + "vite": "^4.5.0", "vite-plugin-svg-icons": "^2.0.1", "vite-svg-loader": "^4.0.0", "vue": "^3.3.4", "vue-chartjs": "^5.2.0", "vue3-carousel": "^0.3.1", - "ziggy-js": "^1.6.2" - }, - "dependencies": { - "vue3-picture-swipe": "^3.0.6" + "ziggy-js": "^1.8.1" } } diff --git a/postcss.config.js b/postcss.config.js index bfc1a9a8..c302ad66 100644 --- a/postcss.config.js +++ b/postcss.config.js @@ -1,4 +1,4 @@ -module.exports = { +export default { plugins: { 'tailwindcss/nesting': {}, tailwindcss: {}, diff --git a/resources/css/app.css b/resources/css/app.css index 6768bcea..f8001a0c 100644 --- a/resources/css/app.css +++ b/resources/css/app.css @@ -1,10 +1,3 @@ @import '../../vendor/filament/filament/resources/css/app.css'; @import './tiptap.css'; @import "./typography.css"; - -.my-gallery -{ - display: grid; - grid-template-columns: repeat(4, minmax(0, 1fr)); - gap:0.20% -} diff --git a/resources/js/Components/ClientOnly.vue b/resources/js/Components/ClientOnly.vue new file mode 100644 index 00000000..9e0c5fed --- /dev/null +++ b/resources/js/Components/ClientOnly.vue @@ -0,0 +1,21 @@ + + + diff --git a/resources/js/Components/Footer.vue b/resources/js/Components/Footer.vue index 8098e6ae..9d2f4f82 100644 --- a/resources/js/Components/Footer.vue +++ b/resources/js/Components/Footer.vue @@ -151,6 +151,7 @@ diff --git a/resources/js/Components/Head.vue b/resources/js/Components/Head.vue index 4e2cb125..a364b238 100644 --- a/resources/js/Components/Head.vue +++ b/resources/js/Components/Head.vue @@ -1,6 +1,10 @@ diff --git a/resources/js/Pages/AdminOng/Projects/AddRegionalProject.vue b/resources/js/Pages/AdminOng/Projects/AddRegionalProject.vue index e4ca6054..72df05dd 100644 --- a/resources/js/Pages/AdminOng/Projects/AddRegionalProject.vue +++ b/resources/js/Pages/AdminOng/Projects/AddRegionalProject.vue @@ -338,6 +338,7 @@ diff --git a/resources/js/Pages/Profile/Partials/UpdatePasswordForm.vue b/resources/js/Pages/Profile/Partials/UpdatePasswordForm.vue index 493965dd..2ceaf6ce 100644 --- a/resources/js/Pages/Profile/Partials/UpdatePasswordForm.vue +++ b/resources/js/Pages/Profile/Partials/UpdatePasswordForm.vue @@ -55,6 +55,7 @@ diff --git a/resources/js/Pages/Public/Championship/Championship.vue b/resources/js/Pages/Public/Championship/Championship.vue index 2c28da4d..bf22cacd 100644 --- a/resources/js/Pages/Public/Championship/Championship.vue +++ b/resources/js/Pages/Public/Championship/Championship.vue @@ -1,7 +1,5 @@ diff --git a/resources/js/Pages/Public/Donor/ThankYou.vue b/resources/js/Pages/Public/Donor/ThankYou.vue index 86857855..b6e5ce1b 100644 --- a/resources/js/Pages/Public/Donor/ThankYou.vue +++ b/resources/js/Pages/Public/Donor/ThankYou.vue @@ -17,7 +17,7 @@

{{ $t('reward_auth') }}

- +

{{ $t(`${badge.title}`) }}

{{ $t(`${badge.description}`) }}

@@ -27,18 +27,23 @@
-
-
+
{{ $t('woohoo') }}

{{ donation.place }}

-

{{ $t('donations_place_1') }} {{ donation.place }} {{ $t('donations_place_2') }}

+

+ {{ $t('donations_place_1') }} {{ donation.place }} {{ $t('donations_place_2') }} +

- -
+

{{ info }}

@@ -60,7 +65,6 @@
-
@@ -97,24 +101,16 @@ /> - + - + diff --git a/resources/js/Pages/Public/Evolution/Evolution.vue b/resources/js/Pages/Public/Evolution/Evolution.vue index 1132d872..8b21a0cc 100644 --- a/resources/js/Pages/Public/Evolution/Evolution.vue +++ b/resources/js/Pages/Public/Evolution/Evolution.vue @@ -1,7 +1,7 @@ diff --git a/resources/js/Pages/Public/Home.vue b/resources/js/Pages/Public/Home.vue index 416ddb43..22f353e1 100644 --- a/resources/js/Pages/Public/Home.vue +++ b/resources/js/Pages/Public/Home.vue @@ -1,6 +1,6 @@ diff --git a/resources/js/Pages/Public/Website/Contact.vue b/resources/js/Pages/Public/Website/Contact.vue index 50808ab3..835cafc1 100644 --- a/resources/js/Pages/Public/Website/Contact.vue +++ b/resources/js/Pages/Public/Website/Contact.vue @@ -70,10 +70,9 @@ diff --git a/resources/js/Pages/Public/Website/Terms.vue b/resources/js/Pages/Public/Website/Terms.vue index c7e2141b..31325707 100644 --- a/resources/js/Pages/Public/Website/Terms.vue +++ b/resources/js/Pages/Public/Website/Terms.vue @@ -2,16 +2,12 @@ -
- -
+
diff --git a/resources/js/app.js b/resources/js/app.js index e8f8adc3..b8ce0183 100644 --- a/resources/js/app.js +++ b/resources/js/app.js @@ -1,20 +1,18 @@ -import { createApp, h } from 'vue'; -import { createInertiaApp, Head, Link } from '@inertiajs/vue3'; +import { createSSRApp, h } from 'vue'; +import { createInertiaApp, Link } from '@inertiajs/vue3'; import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers'; -import { ZiggyVue } from 'ziggy-js/dist/vue'; import { i18nVue } from 'laravel-vue-i18n'; +import { ZiggyVue } from '@/Helpers/useRoute'; import 'virtual:svg-icons-register'; import.meta.glob(['../images/**']); createInertiaApp({ - title: (title) => `${title} - Bursa Binelui`, resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')), - setup({ el, App, props, plugin }) { - return createApp({ render: () => h(App, props) }) - .use(ZiggyVue) + return createSSRApp({ render: () => h(App, props) }) + .use(ZiggyVue, props.initialPage.props.ziggy) .use(i18nVue, { resolve: async lang => { const langs = import.meta.glob('../../lang/*.json'); @@ -22,9 +20,8 @@ createInertiaApp({ } }) .use(plugin) - .component('Head', Head) .component('Link', Link) - .mount(el); + .mount(el) }, progress: { color: '#53BFBF', diff --git a/resources/js/ssr.js b/resources/js/ssr.js index 1a79283f..33c65418 100644 --- a/resources/js/ssr.js +++ b/resources/js/ssr.js @@ -1,31 +1,35 @@ import { createSSRApp, h } from 'vue'; import { renderToString } from '@vue/server-renderer'; -import { createInertiaApp } from '@inertiajs/vue3'; +import { createInertiaApp, Link } from '@inertiajs/vue3'; import createServer from '@inertiajs/vue3/server'; import { resolvePageComponent } from 'laravel-vite-plugin/inertia-helpers'; -import { ZiggyVue } from 'ziggy-js/dist/vue'; import { i18nVue } from 'laravel-vue-i18n'; +import { ZiggyVue } from '@/Helpers/useRoute'; createServer((page) => createInertiaApp({ page, render: renderToString, title: (title) => `${title} - Bursa Binelui`, - resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue')), + resolve: (name) => resolvePageComponent(`./Pages/${name}.vue`, import.meta.glob('./Pages/**/*.vue', { eager: true })), setup({ App, props, plugin }) { return createSSRApp({ render: () => h(App, props) }) - .use(plugin) .use(ZiggyVue, { - ...page.props.ziggy, - location: new URL(page.props.ziggy.location), + // Pull the Ziggy config off of the props. + ...props.initialPage.props.ziggy, + // Build the location, since there is + // no window.location in Node. + location: new URL(props.initialPage.props.ziggy.url) }) .use(i18nVue, { - // lang: 'ro', + lang: props.initialPage.props.locales.current, resolve: lang => { const langs = import.meta.glob('../../lang/*.json', { eager: true }); return langs[`../../lang/${lang}.json`].default; - }, - }); + } + }) + .use(plugin) + .component('Link', Link) }, }) ); diff --git a/resources/views/app.blade.php b/resources/views/app.blade.php index 3e9fd690..2fa095be 100644 --- a/resources/views/app.blade.php +++ b/resources/views/app.blade.php @@ -8,9 +8,8 @@ {{ config('app.name', 'Laravel') }} - @routes - @vite(['resources/css/app.css', 'resources/js/app.js', "resources/js/Pages/{$page['component']}.vue"]) @inertiaHead + @vite(['resources/css/app.css', 'resources/js/app.js', "resources/js/Pages/{$page['component']}.vue"]) diff --git a/vite.config.js b/vite.config.js index a91e77b6..68d09c25 100644 --- a/vite.config.js +++ b/vite.config.js @@ -1,5 +1,5 @@ import { defineConfig } from 'vite'; -import { resolve, dirname } from 'node:path'; +import { resolve } from 'node:path'; import laravel from 'laravel-vite-plugin'; import vue from '@vitejs/plugin-vue'; import svgLoader from 'vite-svg-loader';