{{ $t('No Internet') }}
10 |{{ $t('Opps!') }}
17 | 18 |{{ $t('You are not connected to the internet, please try again in some time.') }}
19 |├── .gitignore
├── CHANGELOG.md
├── LICENSE
├── README.md
├── composer.json
├── package.json
├── publishable
├── assets
│ ├── css
│ │ ├── pwa-admin.css
│ │ └── pwa.css
│ ├── images
│ │ ├── 1-star-icon.svg
│ │ ├── 144x144.png
│ │ ├── 196x196.png
│ │ ├── 2-star-icon.svg
│ │ ├── 3-star-icon.svg
│ │ ├── 4-star-icon.svg
│ │ ├── 48x48.png
│ │ ├── 5-star-icon.svg
│ │ ├── 96x96.png
│ │ ├── Icon-PWA-Active.svg
│ │ ├── Icon-PWA.svg
│ │ ├── Icon-bell.svg
│ │ ├── accordian-down-icon.svg
│ │ ├── accordian-up-icon.svg
│ │ ├── add-new-white-icon.svg
│ │ ├── arrow-bottom-white-icon.svg
│ │ ├── arrow-right-icon.svg
│ │ ├── arrow_left_icon.png
│ │ ├── avatar.svg
│ │ ├── back-icon.svg
│ │ ├── back-white-icon.svg
│ │ ├── bar-icon.svg
│ │ ├── blur-bg.png
│ │ ├── camera.svg
│ │ ├── cart-icon.svg
│ │ ├── category-image.png
│ │ ├── compare_arrows.png
│ │ ├── controls.svg
│ │ ├── empty-addresses.svg
│ │ ├── empty-cart-icon.svg
│ │ ├── empty-cart.svg
│ │ ├── empty-category.png
│ │ ├── empty-orders.svg
│ │ ├── empty-reviews.svg
│ │ ├── empty-search.svg
│ │ ├── empty-wishlist.svg
│ │ ├── filled-wishlist-icon.svg
│ │ ├── home-icon.svg
│ │ ├── minus-icon.svg
│ │ ├── notification-icon.svg
│ │ ├── offline.svg
│ │ ├── order-success.svg
│ │ ├── plus-icon.svg
│ │ ├── search-icon.svg
│ │ ├── share-icon.svg
│ │ ├── sharp-arrow-left-icon.svg
│ │ ├── sharp-arrow-line-icon.svg
│ │ ├── sharp-arrow-right-icon.svg
│ │ ├── sharp-cross-icon.svg
│ │ ├── sharp-done-green.svg
│ │ ├── sharp-done-white.svg
│ │ ├── sharp-edit-icon.svg
│ │ ├── sharp-filter-icon.svg
│ │ ├── sharp-grid-icon.svg
│ │ ├── sharp-invoice-icon.svg
│ │ ├── sharp-list-icon.svg
│ │ ├── sharp-plus-icon.svg
│ │ ├── sharp-post-review-icon.svg
│ │ ├── sharp-remove-icon.svg
│ │ ├── sharp-repeat-icon.svg
│ │ ├── sharp-save-icon.svg
│ │ ├── sharp-sort-icon.svg
│ │ ├── sharp-trash-icon.svg
│ │ ├── star-active-icon.svg
│ │ ├── star-icon.svg
│ │ ├── star-white-icon.png
│ │ ├── star-white-icon.svg
│ │ ├── update-icon.svg
│ │ ├── white-post-review-icon.svg
│ │ └── wishlist-icon.svg
│ ├── js
│ │ ├── app.js
│ │ └── app.js.LICENSE.txt
│ └── mix-manifest.json
└── pwa
│ ├── dist
│ └── service-worker.dev.js
│ ├── firebase-messaging-sw.js
│ ├── manifest.json
│ └── service-worker.js
├── src
├── Config
│ ├── acl.php
│ ├── admin-menu.php
│ └── system.php
├── Contracts
│ ├── PWALayout.php
│ └── PushNotification.php
├── DataGrids
│ └── PushNotificationDataGrid.php
├── Database
│ └── Migrations
│ │ ├── 2019_07_02_121434_create_push_notifications_table.php
│ │ ├── 2020_11_05_114057_add_category_product_pwa_in_categories.php
│ │ └── 2020_11_10_090451_create_pwa_layout_table.php
├── Helpers
│ ├── AdminHelper.php
│ ├── Price.php
│ └── PwaConfigurableOption.php
├── Http
│ ├── Controllers
│ │ ├── Admin
│ │ │ ├── LayoutController.php
│ │ │ └── PushNotificationController.php
│ │ ├── Controller.php
│ │ ├── Shop
│ │ │ ├── CheckoutController.php
│ │ │ ├── ComparisonController.php
│ │ │ ├── InvoiceController.php
│ │ │ ├── LayoutController.php
│ │ │ ├── ProductController.php
│ │ │ ├── ReviewController.php
│ │ │ ├── SmartButtonController.php
│ │ │ └── ThemeController.php
│ │ ├── SinglePageController.php
│ │ └── StandardController.php
│ └── Resources
│ │ ├── Catalog
│ │ └── Category.php
│ │ └── Core
│ │ ├── Channel.php
│ │ ├── Currency.php
│ │ └── Locale.php
├── Listeners
│ ├── CoreConfig.php
│ └── PWAListeners.php
├── Models
│ ├── PWALayout.php
│ ├── PWALayoutProxy.php
│ ├── PushNotification.php
│ └── PushNotificationProxy.php
├── Payment
│ └── Standard.php
├── Providers
│ ├── EventServiceProvider.php
│ ├── ModuleServiceProvider.php
│ └── PWAServiceProvider.php
├── Repositories
│ ├── PWALayoutRepository.php
│ └── PushNotificationRepository.php
├── Resources
│ ├── assets
│ │ ├── firebase
│ │ │ ├── firebase-messaging-sw.js
│ │ │ └── service-worker.js
│ │ ├── images
│ │ │ ├── 1-star-icon.svg
│ │ │ ├── 144x144.png
│ │ │ ├── 196x196.png
│ │ │ ├── 2-star-icon.svg
│ │ │ ├── 3-star-icon.svg
│ │ │ ├── 4-star-icon.svg
│ │ │ ├── 48x48.png
│ │ │ ├── 5-star-icon.svg
│ │ │ ├── 96x96.png
│ │ │ ├── Icon-PWA-Active.svg
│ │ │ ├── Icon-PWA.svg
│ │ │ ├── Icon-bell.svg
│ │ │ ├── accordian-down-icon.svg
│ │ │ ├── accordian-up-icon.svg
│ │ │ ├── add-new-white-icon.svg
│ │ │ ├── arrow-bottom-white-icon.svg
│ │ │ ├── arrow-right-icon.svg
│ │ │ ├── avatar.svg
│ │ │ ├── back-icon.svg
│ │ │ ├── back-white-icon.svg
│ │ │ ├── bar-icon.svg
│ │ │ ├── blur-bg.png
│ │ │ ├── camera.svg
│ │ │ ├── cart-icon.svg
│ │ │ ├── category-image.png
│ │ │ ├── compare_arrows.png
│ │ │ ├── controls.svg
│ │ │ ├── empty-addresses.svg
│ │ │ ├── empty-cart-icon.svg
│ │ │ ├── empty-cart.svg
│ │ │ ├── empty-category.png
│ │ │ ├── empty-orders.svg
│ │ │ ├── empty-reviews.svg
│ │ │ ├── empty-search.svg
│ │ │ ├── empty-wishlist.svg
│ │ │ ├── filled-wishlist-icon.svg
│ │ │ ├── minus-icon.svg
│ │ │ ├── notification-icon.svg
│ │ │ ├── offline.svg
│ │ │ ├── order-success.svg
│ │ │ ├── plus-icon.svg
│ │ │ ├── search-icon.svg
│ │ │ ├── share-icon.svg
│ │ │ ├── sharp-arrow-left-icon.svg
│ │ │ ├── sharp-arrow-line-icon.svg
│ │ │ ├── sharp-arrow-right-icon.svg
│ │ │ ├── sharp-cross-icon.svg
│ │ │ ├── sharp-done-green.svg
│ │ │ ├── sharp-done-white.svg
│ │ │ ├── sharp-edit-icon.svg
│ │ │ ├── sharp-filter-icon.svg
│ │ │ ├── sharp-grid-icon.svg
│ │ │ ├── sharp-invoice-icon.svg
│ │ │ ├── sharp-list-icon.svg
│ │ │ ├── sharp-plus-icon.svg
│ │ │ ├── sharp-post-review-icon.svg
│ │ │ ├── sharp-remove-icon.svg
│ │ │ ├── sharp-repeat-icon.svg
│ │ │ ├── sharp-save-icon.svg
│ │ │ ├── sharp-sort-icon.svg
│ │ │ ├── sharp-trash-icon.svg
│ │ │ ├── star-active-icon.svg
│ │ │ ├── star-icon.svg
│ │ │ ├── star-white-icon.png
│ │ │ ├── star-white-icon.svg
│ │ │ ├── update-icon.svg
│ │ │ ├── white-post-review-icon.svg
│ │ │ └── wishlist-icon.svg
│ │ ├── js
│ │ │ ├── app.js
│ │ │ ├── bootstrap.js
│ │ │ ├── components
│ │ │ │ ├── app.vue
│ │ │ │ ├── categories
│ │ │ │ │ ├── card.vue
│ │ │ │ │ ├── index.vue
│ │ │ │ │ ├── layered-navigation.vue
│ │ │ │ │ └── no-product-found.vue
│ │ │ │ ├── checkout
│ │ │ │ │ ├── cart
│ │ │ │ │ │ ├── empty-cart.vue
│ │ │ │ │ │ ├── empty-order-list.vue
│ │ │ │ │ │ ├── index.vue
│ │ │ │ │ │ └── item.vue
│ │ │ │ │ └── onepage
│ │ │ │ │ │ ├── address.vue
│ │ │ │ │ │ ├── country-state.vue
│ │ │ │ │ │ ├── index.vue
│ │ │ │ │ │ └── success.vue
│ │ │ │ ├── common
│ │ │ │ │ ├── ajax-loader.vue
│ │ │ │ │ └── drawer-sidebar.vue
│ │ │ │ ├── compare
│ │ │ │ │ ├── card.vue
│ │ │ │ │ ├── empty-compare.vue
│ │ │ │ │ └── index.vue
│ │ │ │ ├── customers
│ │ │ │ │ ├── account
│ │ │ │ │ │ ├── addresses
│ │ │ │ │ │ │ ├── card.vue
│ │ │ │ │ │ │ ├── country-state.vue
│ │ │ │ │ │ │ ├── create.vue
│ │ │ │ │ │ │ ├── edit.vue
│ │ │ │ │ │ │ ├── empty-address-list.vue
│ │ │ │ │ │ │ └── index.vue
│ │ │ │ │ │ ├── dashboard
│ │ │ │ │ │ │ └── index.vue
│ │ │ │ │ │ ├── index.vue
│ │ │ │ │ │ ├── profile
│ │ │ │ │ │ │ └── index.vue
│ │ │ │ │ │ ├── reviews
│ │ │ │ │ │ │ ├── card.vue
│ │ │ │ │ │ │ ├── empty-review-list.vue
│ │ │ │ │ │ │ ├── index.vue
│ │ │ │ │ │ │ └── view.vue
│ │ │ │ │ │ ├── sales
│ │ │ │ │ │ │ ├── header.vue
│ │ │ │ │ │ │ ├── invoices
│ │ │ │ │ │ │ │ ├── card.vue
│ │ │ │ │ │ │ │ ├── index.vue
│ │ │ │ │ │ │ │ └── view.vue
│ │ │ │ │ │ │ ├── orders
│ │ │ │ │ │ │ │ ├── card.vue
│ │ │ │ │ │ │ │ ├── downloadable-products.vue
│ │ │ │ │ │ │ │ ├── empty-order-list.vue
│ │ │ │ │ │ │ │ ├── index.vue
│ │ │ │ │ │ │ │ ├── order-filter.vue
│ │ │ │ │ │ │ │ └── view.vue
│ │ │ │ │ │ │ └── shipments
│ │ │ │ │ │ │ │ ├── card.vue
│ │ │ │ │ │ │ │ ├── index.vue
│ │ │ │ │ │ │ │ └── view.vue
│ │ │ │ │ │ └── wishlist
│ │ │ │ │ │ │ ├── card.vue
│ │ │ │ │ │ │ ├── empty-wishlist.vue
│ │ │ │ │ │ │ └── index.vue
│ │ │ │ │ ├── anonymous
│ │ │ │ │ │ ├── forgot-password.vue
│ │ │ │ │ │ ├── login-register.vue
│ │ │ │ │ │ ├── login.vue
│ │ │ │ │ │ └── register.vue
│ │ │ │ │ └── index.vue
│ │ │ │ ├── home-page
│ │ │ │ │ ├── advertisements
│ │ │ │ │ │ └── advertisement.vue
│ │ │ │ │ └── index.vue
│ │ │ │ ├── layouts
│ │ │ │ │ ├── custom-header.vue
│ │ │ │ │ ├── footer-nav.vue
│ │ │ │ │ └── header-nav.vue
│ │ │ │ ├── offline
│ │ │ │ │ └── index.vue
│ │ │ │ ├── products
│ │ │ │ │ ├── attributes.vue
│ │ │ │ │ ├── booking-options.vue
│ │ │ │ │ ├── booking
│ │ │ │ │ │ ├── appointment.vue
│ │ │ │ │ │ ├── date.vue
│ │ │ │ │ │ ├── default-view.vue
│ │ │ │ │ │ ├── event.vue
│ │ │ │ │ │ ├── rental.vue
│ │ │ │ │ │ ├── slots.vue
│ │ │ │ │ │ └── table-product.vue
│ │ │ │ │ ├── bundle-option-item.vue
│ │ │ │ │ ├── bundle-options.vue
│ │ │ │ │ ├── card.vue
│ │ │ │ │ ├── configurable-options.vue
│ │ │ │ │ ├── downloadable-options.vue
│ │ │ │ │ ├── gallery-images.vue
│ │ │ │ │ ├── grouped-products-options.vue
│ │ │ │ │ ├── index.vue
│ │ │ │ │ ├── price.vue
│ │ │ │ │ ├── review.vue
│ │ │ │ │ ├── reviews.vue
│ │ │ │ │ ├── social-links.vue
│ │ │ │ │ └── stock.vue
│ │ │ │ ├── reviews
│ │ │ │ │ ├── create.vue
│ │ │ │ │ └── index.vue
│ │ │ │ ├── search
│ │ │ │ │ ├── empty-search.vue
│ │ │ │ │ ├── image-search-result.vue
│ │ │ │ │ ├── index.vue
│ │ │ │ │ └── result.vue
│ │ │ │ └── shared
│ │ │ │ │ ├── accordian.vue
│ │ │ │ │ ├── bottom-sheet.vue
│ │ │ │ │ ├── donut-chart.vue
│ │ │ │ │ ├── pagination.vue
│ │ │ │ │ ├── tab.vue
│ │ │ │ │ └── tabs.vue
│ │ │ ├── directives
│ │ │ │ └── sticky.vue
│ │ │ ├── dist
│ │ │ │ └── app.dev.js
│ │ │ ├── lang
│ │ │ │ ├── ar.json
│ │ │ │ ├── de.json
│ │ │ │ ├── en.json
│ │ │ │ ├── fa.json
│ │ │ │ ├── it.json
│ │ │ │ ├── ja.json
│ │ │ │ ├── nl.json
│ │ │ │ ├── pl.json
│ │ │ │ ├── pt_BR.json
│ │ │ │ └── tr.json
│ │ │ ├── plugins
│ │ │ │ ├── dist
│ │ │ │ │ └── push-notification.dev.js
│ │ │ │ ├── i18n.js
│ │ │ │ └── push-notification.js
│ │ │ ├── router.vue
│ │ │ └── store
│ │ │ │ ├── actions.js
│ │ │ │ ├── dist
│ │ │ │ ├── actions.dev.js
│ │ │ │ ├── getters.dev.js
│ │ │ │ ├── index.dev.js
│ │ │ │ ├── mutations.dev.js
│ │ │ │ └── state.dev.js
│ │ │ │ ├── index.js
│ │ │ │ ├── mutations.js
│ │ │ │ └── state.js
│ │ └── sass
│ │ │ ├── _variables.scss
│ │ │ ├── admin-icon.scss
│ │ │ ├── admin.scss
│ │ │ ├── app.scss
│ │ │ ├── dist
│ │ │ ├── app.css
│ │ │ ├── icons.css
│ │ │ └── rtl.css
│ │ │ ├── icons.scss
│ │ │ └── rtl.scss
│ ├── lang
│ │ ├── ar
│ │ │ └── app.php
│ │ ├── de
│ │ │ └── app.php
│ │ ├── en
│ │ │ └── app.php
│ │ ├── es
│ │ │ └── app.php
│ │ ├── fa
│ │ │ └── app.php
│ │ ├── fr
│ │ │ └── app.php
│ │ ├── it
│ │ │ └── app.php
│ │ ├── ja
│ │ │ └── app.php
│ │ ├── nl
│ │ │ └── app.php
│ │ ├── pl
│ │ │ └── app.php
│ │ ├── pt_BR
│ │ │ └── app.php
│ │ └── tr
│ │ │ └── app.php
│ └── views
│ │ ├── admin
│ │ ├── catelog
│ │ │ └── categories
│ │ │ │ └── pwa.blade.php
│ │ ├── layouts
│ │ │ └── style.blade.php
│ │ ├── push-notification
│ │ │ ├── create.blade.php
│ │ │ ├── edit.blade.php
│ │ │ ├── index.blade.php
│ │ │ └── test.blade.php
│ │ └── pwa-layouts
│ │ │ └── index.blade.php
│ │ ├── master.blade.php
│ │ └── paypal
│ │ └── standard-redirect.blade.php
└── Routes
│ ├── admin-routes.php
│ ├── front-routes.php
│ └── web.php
└── webpack.mix.js
/.gitignore:
--------------------------------------------------------------------------------
1 | package-lock.json
2 | node_modules
--------------------------------------------------------------------------------
/LICENSE:
--------------------------------------------------------------------------------
1 | MIT License
2 |
3 | Copyright (c) 2020 Webkul
4 |
5 | Permission is hereby granted, free of charge, to any person obtaining a copy
6 | of this software and associated documentation files (the "Software"), to deal
7 | in the Software without restriction, including without limitation the rights
8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9 | copies of the Software, and to permit persons to whom the Software is
10 | furnished to do so, subject to the following conditions:
11 |
12 | The above copyright notice and this permission notice shall be included in all
13 | copies or substantial portions of the Software.
14 |
15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21 | SOFTWARE.
--------------------------------------------------------------------------------
/composer.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "bagisto/pwa",
3 | "description": "Progressive Web Application transforms your website to a mobile application",
4 | "license": "MIT",
5 | "authors": [
6 | {
7 | "name": "viveksharma-webkul",
8 | "email": "viveksh047@webkul.com"
9 | },
10 | {
11 | "name": "Shubham Mehrotra",
12 | "email": "shubhammehrotra.symfony@webkul.com"
13 | }
14 | ],
15 | "require": {
16 | "whichbrowser/parser": "^2.1",
17 | "bagisto/rest-api": "^2.1"
18 | },
19 | "autoload": {
20 | "psr-4": {
21 | "Webkul\\PWA\\": "src/"
22 | }
23 | },
24 | "extra": {
25 | "laravel": {
26 | "providers": [
27 | "Webkul\\PWA\\Providers\\PWAServiceProvider"
28 | ],
29 | "aliases": {}
30 | }
31 | },
32 | "minimum-stability": "dev"
33 | }
34 |
--------------------------------------------------------------------------------
/package.json:
--------------------------------------------------------------------------------
1 | {
2 | "private": true,
3 | "scripts": {
4 | "dev": "npm run development",
5 | "development": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
6 | "watch": "cross-env NODE_ENV=development node_modules/webpack/bin/webpack.js --watch --progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js",
7 | "watch-poll": "cross-env npm run watch -- --watch-poll --progress",
8 | "hot": "cross-env NODE_ENV=development node_modules/webpack-dev-server/bin/webpack-dev-server.js --inline --hot --config=node_modules/laravel-mix/setup/webpack.config.js",
9 | "prod": "npm run production",
10 | "production": "cross-env NODE_ENV=production node_modules/webpack/bin/webpack.js --no-progress --hide-modules --config=node_modules/laravel-mix/setup/webpack.config.js"
11 | },
12 | "devDependencies": {
13 | "axios": "^0.21.4",
14 | "cross-env": "^6.0.3",
15 | "jquery": "^3.4.1",
16 | "laravel-mix": "^5.0.0",
17 | "laravel-mix-merge-manifest": "^0.1.2",
18 | "sass": "^1.68.0",
19 | "sass-loader": "^8.0.2",
20 | "vue": "^2.6.14",
21 | "vue-template-compiler": "^2.7.14"
22 | },
23 | "dependencies": {
24 | "ajv": "^8.8.2",
25 | "firebase": "^9.5.0",
26 | "flatpickr": "^4.6.3",
27 | "imagemin": "^8.0.1",
28 | "vee-validate": "2.0.0-rc.26",
29 | "vue-carousel": "^0.18.0",
30 | "vue-currency-filter": "^5.2.0",
31 | "vue-i18n": "^8.26.7",
32 | "vue-moment": "^4.1.0",
33 | "vue-router": "^3.5.3",
34 | "vue-slider-component": "^3.2.15",
35 | "vue-toasted": "^1.1.28",
36 | "vuex": "^3.6.2"
37 | },
38 | "name": "pwa",
39 | "version": "1.0.0",
40 | "main": "webpack.mix.js",
41 | "author": "",
42 | "license": "ISC",
43 | "description": ""
44 | }
45 |
--------------------------------------------------------------------------------
/publishable/assets/css/pwa-admin.css:
--------------------------------------------------------------------------------
1 | .pwa-icon {
2 | width: 24px;
3 | height: 25px;
4 | display: inline-block;
5 | background-size: cover;
6 | background-image: url("../images/Icon-PWA.svg");
7 | }
8 |
9 | .bell-icon {
10 | background-image: url("../images/Icon-bell.svg");
11 | height: 24px;
12 | width: 24px;
13 | }
14 |
15 | .router-link-active .pwa-icon,
16 | .active .pwa-icon {
17 | background-image: url("../images/Icon-PWA-Active.svg");
18 | }
19 | .router-link-active.pwa-icon,
20 | .active.pwa-icon {
21 | background-image: url("../images/Icon-PWA-Active.svg");
22 | }
--------------------------------------------------------------------------------
/publishable/assets/images/1-star-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/publishable/assets/images/144x144.png
--------------------------------------------------------------------------------
/publishable/assets/images/196x196.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/publishable/assets/images/196x196.png
--------------------------------------------------------------------------------
/publishable/assets/images/2-star-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/3-star-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/4-star-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/publishable/assets/images/48x48.png
--------------------------------------------------------------------------------
/publishable/assets/images/5-star-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/publishable/assets/images/96x96.png
--------------------------------------------------------------------------------
/publishable/assets/images/Icon-PWA-Active.svg:
--------------------------------------------------------------------------------
1 |
2 |
20 |
--------------------------------------------------------------------------------
/publishable/assets/images/Icon-PWA.svg:
--------------------------------------------------------------------------------
1 |
2 |
20 |
--------------------------------------------------------------------------------
/publishable/assets/images/Icon-bell.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/accordian-down-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/accordian-up-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/add-new-white-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/arrow-bottom-white-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/arrow-right-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/arrow_left_icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/publishable/assets/images/arrow_left_icon.png
--------------------------------------------------------------------------------
/publishable/assets/images/avatar.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/back-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/back-white-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/bar-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/blur-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/publishable/assets/images/blur-bg.png
--------------------------------------------------------------------------------
/publishable/assets/images/camera.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/publishable/assets/images/cart-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/category-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/publishable/assets/images/category-image.png
--------------------------------------------------------------------------------
/publishable/assets/images/compare_arrows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/publishable/assets/images/compare_arrows.png
--------------------------------------------------------------------------------
/publishable/assets/images/controls.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
29 |
--------------------------------------------------------------------------------
/publishable/assets/images/empty-cart-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/empty-category.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/publishable/assets/images/empty-category.png
--------------------------------------------------------------------------------
/publishable/assets/images/empty-reviews.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/empty-wishlist.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/filled-wishlist-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/home-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/publishable/assets/images/minus-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/notification-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/order-success.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/plus-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/search-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/share-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-arrow-left-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-arrow-line-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-arrow-right-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-cross-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-done-green.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-done-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-edit-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-filter-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-grid-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-invoice-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-list-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-plus-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-post-review-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-remove-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-repeat-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-save-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-sort-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/sharp-trash-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/star-active-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/star-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/star-white-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/publishable/assets/images/star-white-icon.png
--------------------------------------------------------------------------------
/publishable/assets/images/star-white-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/update-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/white-post-review-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/images/wishlist-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/publishable/assets/mix-manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "/js/app.js": "/js/app.js",
3 | "/css/pwa-admin.css": "/css/pwa-admin.css",
4 | "/css/pwa.css": "/css/pwa.css"
5 | }
6 |
--------------------------------------------------------------------------------
/publishable/pwa/firebase-messaging-sw.js:
--------------------------------------------------------------------------------
1 | importScripts("https://www.gstatic.com/firebasejs/8.3.2/firebase-app.js");
2 | importScripts("https://www.gstatic.com/firebasejs/8.3.2/firebase-messaging.js");
3 |
4 | firebase.initializeApp({
5 | messagingSenderId:
6 | "{{core()->getConfigData('pwa.settings.push-notification.messaging-id')}}",
7 | });
8 |
9 | const messaging = firebase.messaging();
10 |
11 | messaging.setBackgroundMessageHandler(function (payload) {
12 | // Customize notification here
13 | var notificationTitle = payload.data.title;
14 | var notificationOptions = {
15 | body: payload.data.body,
16 | icon: payload.data.icon,
17 | data: {
18 | click_action: payload.data.click_action,
19 | },
20 | };
21 |
22 | return self.registration.showNotification(
23 | notificationTitle,
24 | notificationOptions,
25 | );
26 | });
27 | // [END background_handler]
28 |
29 | self.addEventListener("notificationclick", function (event) {
30 | var action_click = event.notification.data.click_action;
31 | event.notification.close();
32 |
33 | event.waitUntil(clients.openWindow(action_click));
34 | });
35 |
--------------------------------------------------------------------------------
/publishable/pwa/manifest.json:
--------------------------------------------------------------------------------
1 | {
2 | "name": "pwa app",
3 | "short_name": "pwa short",
4 | "start_url": "http://192.168.15.215/bagisto/v2.1.2/core-2/public/",
5 | "display": "standalone",
6 | "orientation": "any",
7 | "theme_color": "#d1d1d1",
8 | "background_color": "#1d1d1d",
9 | "icons": [
10 | {
11 | "src": "http://192.168.15.215/bagisto/v2.1.2/core-2/public/storage/configuration/9f4sJCxFIdjiCApx1TgjxiGV9RVNorrSnBICB8Hx.png",
12 | "sizes": "48x48",
13 | "type": "image/png"
14 | },
15 | {
16 | "src": "http://192.168.15.215/bagisto/v2.1.2/core-2/public/storage/configuration/1ORWNrj4VufMrS167cFMoXhA8lHKSzHjdYzLz7wm.png",
17 | "sizes": "96x96",
18 | "type": "image/png"
19 | },
20 | {
21 | "src": "http://192.168.15.215/bagisto/v2.1.2/core-2/public/storage/configuration/bGfD6flhXPf5YLYx6n3pWXV5tSmMOOQC4qLvyJot.png",
22 | "sizes": "144x144",
23 | "type": "image/png"
24 | },
25 | {
26 | "src": "http://192.168.15.215/bagisto/v2.1.2/core-2/public/storage/configuration/TJPJBe0KomCoaxyZ7VFr42gbe080TGDS6h3NpPn6.png",
27 | "sizes": "196x196",
28 | "type": "image/png"
29 | }
30 | ]
31 | }
32 |
--------------------------------------------------------------------------------
/src/Config/acl.php:
--------------------------------------------------------------------------------
1 | 'ViewPushNotification',
6 | 'name' => 'pwa::app.admin.system.pushnotification',
7 | 'route' => 'admin.pwa.pushnotification.index',
8 | 'sort' => 3,
9 | ],
10 | ];
11 |
--------------------------------------------------------------------------------
/src/Config/admin-menu.php:
--------------------------------------------------------------------------------
1 | 'PWA',
6 | 'name' => 'pwa::app.admin.system.pwa_full_name',
7 | 'route' => 'admin.pwa.pushnotification.index',
8 | 'sort' => 8,
9 | 'icon' => 'pwa-icon',
10 | ], [
11 | 'key' => 'PWA.index',
12 | 'route' => 'admin.pwa.pushnotification.index',
13 | 'name' => 'pwa::app.admin.layouts.push-notification',
14 | 'sort' => 1,
15 | ], [
16 | 'key' => 'PWA.layout',
17 | 'route' => 'admin.pwa.layout',
18 | 'name' => 'pwa::app.admin.layouts.title',
19 | 'sort' => 1,
20 | ],
21 | ];
22 |
--------------------------------------------------------------------------------
/src/Contracts/PWALayout.php:
--------------------------------------------------------------------------------
1 | increments('id');
18 | $table->string('title')->nullable();
19 | $table->string('description')->nullable();
20 | $table->string('targeturl')->nullable();
21 | $table->string('imageurl')->nullable();
22 | $table->timestamps();
23 | });
24 | }
25 |
26 | /**
27 | * Reverse the migrations.
28 | *
29 | * @return void
30 | */
31 | public function down()
32 | {
33 | Schema::dropIfExists('push_notifications');
34 | }
35 | }
36 |
--------------------------------------------------------------------------------
/src/Database/Migrations/2020_11_05_114057_add_category_product_pwa_in_categories.php:
--------------------------------------------------------------------------------
1 | boolean('category_product_in_pwa')->default(0);
18 | });
19 | }
20 |
21 | /**
22 | * Reverse the migrations.
23 | *
24 | * @return void
25 | */
26 | public function down()
27 | {
28 | Schema::table('categories', function (Blueprint $table) {
29 | $table->dropColumn('category_product_in_pwa');
30 | });
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/Database/Migrations/2020_11_10_090451_create_pwa_layout_table.php:
--------------------------------------------------------------------------------
1 | id();
18 | $table->text('home_page_content');
19 | $table->timestamps();
20 | });
21 | }
22 |
23 | /**
24 | * Reverse the migrations.
25 | *
26 | * @return void
27 | */
28 | public function down()
29 | {
30 | Schema::dropIfExists('pwa_layout');
31 | }
32 | }
33 |
--------------------------------------------------------------------------------
/src/Helpers/AdminHelper.php:
--------------------------------------------------------------------------------
1 | categoryRepository = $categoryRepository;
25 | }
26 |
27 | /**
28 | * @param \Webkul\Category\Contracts\Category $category
29 | * @return \Webkul\Category\Contracts\Category
30 | */
31 | public function storePwaStatusInCategory($category)
32 | {
33 | if (core()->getConfigData('pwa.settings.general.status')) {
34 | $data = request()->all();
35 |
36 | if (! $category instanceof \Webkul\Category\Contracts\Category) {
37 | $category = $this->categoryRepository->findOrFail($category);
38 | }
39 |
40 | $category->category_product_in_pwa = $data['category_product_in_pwa'] ?? 0;
41 |
42 | $category->save();
43 | }
44 |
45 | return $category;
46 | }
47 | }
48 |
--------------------------------------------------------------------------------
/src/Http/Controllers/Admin/LayoutController.php:
--------------------------------------------------------------------------------
1 | $this->pwaLayoutRepository->first(),
31 | ]);
32 | }
33 |
34 | /**
35 | * Store a newly created resource or update the existing one in storage.
36 | *
37 | * @return \Illuminate\Http\Response
38 | */
39 | public function store()
40 | {
41 | // $this->validate(request(), [
42 | // 'home_page_content' => 'required',
43 | // ]);
44 |
45 | $existing = $this->pwaLayoutRepository->first();
46 |
47 | if ($existing) {
48 | $this->pwaLayoutRepository->update([
49 | 'home_page_content' => trim(request()->get('home_page_content')),
50 | ], $existing->id);
51 | } else {
52 | $this->pwaLayoutRepository->create([
53 | 'home_page_content' => trim(request()->get('home_page_content')),
54 | ]);
55 | }
56 |
57 | session()->flash('success', trans('pwa::app.admin.layouts.update-success'));
58 |
59 | return redirect()->route('admin.pwa.layout');
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Http/Controllers/Controller.php:
--------------------------------------------------------------------------------
1 | invoiceRepository->findOrFail($id);
28 |
29 | $pdf = PDF::loadHTML($this->adjustArabicAndPersianContent(view('shop::customers.account.orders.pdf', compact('invoice'))->render()))
30 | ->setPaper('a4');
31 |
32 | return $pdf->output();
33 | }
34 |
35 | /**
36 | * Adjust arabic and persian content.
37 | *
38 | * @return string
39 | */
40 | protected function adjustArabicAndPersianContent(string $html)
41 | {
42 | $arabic = new \ArPHP\I18N\Arabic();
43 |
44 | $p = $arabic->arIdentify($html);
45 |
46 | for ($i = count($p) - 1; $i >= 0; $i -= 2) {
47 | $utf8ar = $arabic->utf8Glyphs(substr($html, $p[$i - 1], $p[$i] - $p[$i - 1]));
48 | $html = substr_replace($html, $utf8ar, $p[$i - 1], $p[$i] - $p[$i - 1]);
49 | }
50 |
51 | return $html;
52 | }
53 | }
54 |
--------------------------------------------------------------------------------
/src/Http/Controllers/Shop/LayoutController.php:
--------------------------------------------------------------------------------
1 | json([
29 | 'data' => $this->pwaLayoutRepository->first(),
30 | ]);
31 | }
32 |
33 | /**
34 | * Store a newly created resource or update the existing one in storage.
35 | *
36 | * @return \Illuminate\Http\Response
37 | */
38 | public function store(Request $request)
39 | {
40 | // $this->validate(request(), [
41 | // 'home_page_content' => 'required',
42 | // ]);
43 |
44 | $existing = $this->pwaLayoutRepository->first();
45 |
46 | if ($existing) {
47 | $this->pwaLayoutRepository->update([
48 | 'home_page_content' => trim(request()->get('home_page_content')),
49 | ], $existing->id);
50 | } else {
51 | $this->pwaLayoutRepository->create([
52 | 'home_page_content' => trim(request()->get('home_page_content')),
53 | ]);
54 | }
55 |
56 | // flash message
57 | session()->flash('success', trans('pwa::app.admin.layouts.update-success'));
58 |
59 | return redirect()->route('admin.pwa.layout');
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Http/Controllers/Shop/ThemeController.php:
--------------------------------------------------------------------------------
1 | themeCustomizationRepository->orderBy('sort_order')->findOneWhere([
27 | 'status' => 1,
28 | 'channel_id' => core()->getCurrentChannel()->id,
29 | 'type' => 'image_carousel',
30 | ]);
31 |
32 | return $sliders->options;
33 | }
34 | }
35 |
--------------------------------------------------------------------------------
/src/Http/Controllers/SinglePageController.php:
--------------------------------------------------------------------------------
1 | getConfigData('pwa.settings.general.status')) {
17 | session()->flash('warning', trans('pwa::app.shop.home.enable-pwa-status'));
18 |
19 | return redirect()->route('shop.home.index');
20 | }
21 |
22 | $parsedUrl = parse_url(config('app.url'));
23 |
24 | $urlPath = isset($parsedUrl['path']) ? $parsedUrl['path'] : '';
25 |
26 | $result = new Parser(request()->header('User-Agent'));
27 | $device = $result->device;
28 |
29 | return view('pwa::master', compact('urlPath', 'device'));
30 | }
31 | }
32 |
--------------------------------------------------------------------------------
/src/Http/Controllers/StandardController.php:
--------------------------------------------------------------------------------
1 | flash('error', 'Paypal payment has been canceled.');
29 |
30 | return redirect('/mobile/checkout/cart');
31 | }
32 |
33 | /**
34 | * Success payment
35 | *
36 | * @return \Illuminate\Http\Response
37 | */
38 | public function success()
39 | {
40 | $order = $this->orderRepository->create(Cart::prepareDataForOrder());
41 |
42 | Cart::deActivateCart();
43 |
44 | session()->flash('order', $order);
45 |
46 | $url = '/mobile/checkout/success'.'/'.$order->id;
47 |
48 | return redirect($url);
49 | }
50 | }
51 |
--------------------------------------------------------------------------------
/src/Http/Resources/Catalog/Category.php:
--------------------------------------------------------------------------------
1 | $this->id,
19 | 'code' => $this->code,
20 | 'name' => $this->name,
21 | 'slug' => $this->slug,
22 | 'status' => $this->status,
23 | 'image_url' => $this->image_url,
24 | 'meta_title' => $this->meta_title,
25 | 'description' => $this->description,
26 | 'display_mode' => $this->display_mode,
27 | 'meta_keywords' => $this->meta_keywords,
28 | 'meta_description' => $this->meta_description,
29 | 'show_products' => $this->category_product_in_pwa,
30 | 'category_icon_path' => \Storage::url($this->category_icon_path),
31 | 'additional' => is_array($this->resource->additional)
32 | ? $this->resource->additional
33 | : json_decode($this->resource->additional, true),
34 | 'category_banner' => \Storage::url($this->category_banner),
35 | 'created_at' => $this->created_at,
36 | 'updated_at' => $this->updated_at,
37 | ];
38 | }
39 | }
40 |
--------------------------------------------------------------------------------
/src/Http/Resources/Core/Currency.php:
--------------------------------------------------------------------------------
1 | $this->id,
19 | 'code' => $this->code,
20 | 'name' => $this->name,
21 | 'created_at' => $this->created_at,
22 | 'updated_at' => $this->updated_at,
23 | ];
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/Http/Resources/Core/Locale.php:
--------------------------------------------------------------------------------
1 | $this->id,
19 | 'code' => $this->code,
20 | 'name' => $this->name,
21 | 'created_at' => $this->created_at,
22 | 'updated_at' => $this->updated_at,
23 | ];
24 | }
25 | }
26 |
--------------------------------------------------------------------------------
/src/Listeners/PWAListeners.php:
--------------------------------------------------------------------------------
1 | getConfigData('pwa.settings.general.redirect_to_pwa_if_mobile')) {
18 | $result = new Parser(request()->header('User-Agent'));
19 | if (
20 | $result->isType('mobile', 'tablet')
21 | && request()->url() == route('shop.home.index')
22 | ) {
23 | return redirect()->to('/mobile')->send();
24 | }
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/src/Models/PWALayout.php:
--------------------------------------------------------------------------------
1 | imageurl) {
50 | return;
51 | }
52 |
53 | return Storage::url($this->imageurl);
54 | }
55 |
56 | /**
57 | * Get image url for the category image.
58 | */
59 | public function getImageUrlUrlAttribute()
60 | {
61 | return $this->imageurl_url();
62 | }
63 | }
64 |
--------------------------------------------------------------------------------
/src/Models/PushNotificationProxy.php:
--------------------------------------------------------------------------------
1 | addTemplate('pwa::admin.layouts.style');
19 | });
20 |
21 | Event::listen('bagisto.shop.layout.head', 'Webkul\PWA\Listeners\PWAListeners@redirectToPWA');
22 |
23 | Event::listen('core.configuration.save.after', 'Webkul\PWA\Listeners\CoreConfig@generateManifestFile');
24 |
25 | // Event::listen('bagisto.shop.layout.head', function ($viewRenderEventManager) {
26 | // $viewRenderEventManager->addTemplate('pwa::shop.desktop.head.index');
27 | // });
28 |
29 | // Add new field in category create and update form.
30 | Event::listen(
31 | [
32 | 'bagisto.admin.catalog.categories.create.card.accordion.settings.after',
33 | 'bagisto.admin.catalog.categories.edit.card.accordion.settings.after',
34 | ],
35 | function ($viewRenderEventManager) {
36 | $viewRenderEventManager->addTemplate(
37 | 'pwa::admin.catelog.categories.pwa'
38 | );
39 | }
40 | );
41 |
42 | // Add new filed in array when save category.
43 | Event::listen([
44 | 'catalog.category.create.after',
45 | 'catalog.category.update.after',
46 | ], 'Webkul\PWA\Helpers\AdminHelper@storePwaStatusInCategory');
47 | }
48 | }
49 |
--------------------------------------------------------------------------------
/src/Providers/ModuleServiceProvider.php:
--------------------------------------------------------------------------------
1 | loadRoutesFrom(__DIR__ . '/../Routes/web.php');
17 |
18 | $this->app->register(EventServiceProvider::class);
19 |
20 | $this->app->register(ModuleServiceProvider::class);
21 |
22 | $this->loadMigrationsFrom(__DIR__ . '/../Database/Migrations');
23 |
24 | $this->loadViewsFrom(__DIR__ . '/../Resources/views', 'pwa');
25 |
26 | $this->loadTranslationsFrom(__DIR__ . '/../Resources/lang', 'pwa');
27 |
28 | $this->publishes([
29 | __DIR__ . '/../../publishable/pwa' => public_path(),
30 | __DIR__ . '/../../publishable/assets' => public_path('themes/pwa/default/build/assets'),
31 | ], 'public');
32 |
33 | $this->mergeConfigFrom(
34 | dirname(__DIR__) . '/Config/admin-menu.php',
35 | 'menu.admin'
36 | );
37 | }
38 |
39 | /**
40 | * Register services.
41 | *
42 | * @return void
43 | */
44 | public function register()
45 | {
46 | $this->registerConfig();
47 | }
48 |
49 | /**
50 | * Register package config.
51 | *
52 | * @return void
53 | */
54 | protected function registerConfig()
55 | {
56 | $this->mergeConfigFrom(
57 | dirname(__DIR__) . '/Config/system.php',
58 | 'core'
59 | );
60 | }
61 | }
62 |
--------------------------------------------------------------------------------
/src/Repositories/PWALayoutRepository.php:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/144x144.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/src/Resources/assets/images/144x144.png
--------------------------------------------------------------------------------
/src/Resources/assets/images/196x196.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/src/Resources/assets/images/196x196.png
--------------------------------------------------------------------------------
/src/Resources/assets/images/2-star-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/3-star-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/4-star-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/48x48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/src/Resources/assets/images/48x48.png
--------------------------------------------------------------------------------
/src/Resources/assets/images/5-star-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/96x96.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/src/Resources/assets/images/96x96.png
--------------------------------------------------------------------------------
/src/Resources/assets/images/Icon-PWA-Active.svg:
--------------------------------------------------------------------------------
1 |
2 |
20 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/Icon-PWA.svg:
--------------------------------------------------------------------------------
1 |
2 |
20 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/Icon-bell.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/accordian-down-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/accordian-up-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/add-new-white-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/arrow-bottom-white-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/arrow-right-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/avatar.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/back-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/back-white-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/bar-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/blur-bg.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/src/Resources/assets/images/blur-bg.png
--------------------------------------------------------------------------------
/src/Resources/assets/images/camera.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/cart-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/category-image.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/src/Resources/assets/images/category-image.png
--------------------------------------------------------------------------------
/src/Resources/assets/images/compare_arrows.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/src/Resources/assets/images/compare_arrows.png
--------------------------------------------------------------------------------
/src/Resources/assets/images/controls.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
29 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/empty-cart-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/empty-category.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/src/Resources/assets/images/empty-category.png
--------------------------------------------------------------------------------
/src/Resources/assets/images/empty-reviews.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/empty-wishlist.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/filled-wishlist-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/minus-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/notification-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/order-success.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/plus-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/search-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/share-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-arrow-left-icon.svg:
--------------------------------------------------------------------------------
1 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-arrow-line-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-arrow-right-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-cross-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-done-green.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-done-white.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-edit-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-filter-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-grid-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-invoice-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-list-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-plus-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-post-review-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-remove-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-repeat-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-save-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-sort-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/sharp-trash-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/star-active-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/star-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/star-white-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/bagisto/laravel-pwa/4c5de1399d2cc28f2b4b421404c4b8b11743cb9a/src/Resources/assets/images/star-white-icon.png
--------------------------------------------------------------------------------
/src/Resources/assets/images/star-white-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/update-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/white-post-review-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/images/wishlist-icon.svg:
--------------------------------------------------------------------------------
1 |
2 |
--------------------------------------------------------------------------------
/src/Resources/assets/js/bootstrap.js:
--------------------------------------------------------------------------------
1 | window.axios.defaults.headers.common['X-Requested-With'] = 'XMLHttpRequest';
2 |
3 | /**
4 | * Next we will register the CSRF Token as a common header with Axios so that
5 | * all outgoing HTTP requests automatically have it attached. This is just
6 | * a simple convenience so we don't have to attach every token manually.
7 | */
8 |
9 | let token = document.head.querySelector('meta[name="csrf-token"]');
10 |
11 | if (token) {
12 | window.axios.defaults.headers.common['X-CSRF-TOKEN'] = token.content;
13 | } else {
14 | console.error('CSRF token not found: https://laravel.com/docs/csrf#csrf-x-csrf-token');
15 | }
--------------------------------------------------------------------------------
/src/Resources/assets/js/components/categories/no-product-found.vue:
--------------------------------------------------------------------------------
1 |
2 | {{ $t('No products found here') }} {{ $t('You have no items in your cart.') }} {{ $t('You have not placed any order with us yet.') }} {{ $t('We will email you an order confirmation with details and tracking info.') }} {{ $t('You didn’t add anything to compare yet.') }} {{ $t('You didn’t add any of your addresses yet.') }} {{ $t('You didn’t review any of the items yet.') }} {{ $t('You have not placed any order with us yet.') }} {{ $t('You didn’t add anything to wishlist yet.') }} {{ $t('You are not connected to the internet, please try again in some time.') }} {{ $t('No search results found.') }}{{ $t('Oops!') }}
6 |
7 | {{ $t('Empty Cart') }}
6 |
7 | {{ $t('No Orders') }}
6 |
7 | {{ $t('Thank you for your order') }}
6 |
7 |
8 |
9 | {{ $t('No Items') }}
5 |
6 | {{ $t('No Addresses') }}
6 |
7 | {{ $t('No Reviews') }}
6 |
7 | {{ $t('No Orders') }}
6 |
7 | {{ $t('No Items') }}
6 |
7 |
5 |
9 |
13 |
17 |
{{ $t('No Internet') }}
10 | {{ $t('Opps!') }}
17 |
18 |
22 |
30 |
{{ $t('Umm..') }}
6 |
7 |
5 | @lang('pwa::app.admin.system.pwa') 6 |
7 | 8 |8 | {{ __('pwa::app.admin.push-notification.title') }} 9 |
10 | 11 |