Dependencies And Components Are Seprated
This commit is contained in:
parent
8b7515254a
commit
cd0cfb1862
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
|
@ -1,5 +1,7 @@
|
|||
{
|
||||
"/js/velocity.js": "/js/velocity.js?id=2872721aea8bca68a99d",
|
||||
"/js/velocity.js": "/js/velocity.js?id=7089e0b0dbad7152a0bc",
|
||||
"/css/velocity-admin.css": "/css/velocity-admin.css?id=4322502d80a0e4a0affd",
|
||||
"/css/velocity.css": "/css/velocity.css?id=29a0849a44b50cc36048"
|
||||
"/css/velocity.css": "/css/velocity.css?id=29a0849a44b50cc36048",
|
||||
"/js/velocity-non-critical.js": "/js/velocity-non-critical.js?id=f93fb307a05eff3f394f",
|
||||
"/js/velocity-core.js": "/js/velocity-core.js?id=ef4c3783bce7de5c7628"
|
||||
}
|
||||
|
|
|
|||
|
|
@ -443,4 +443,14 @@ class Helper extends Review
|
|||
? asset($this->defaultLocaleImageSources[$currentLocale])
|
||||
: '';
|
||||
}
|
||||
|
||||
/**
|
||||
* Mobile detection for velocity theme.
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
function isMobile(): bool
|
||||
{
|
||||
return preg_match("/(android|avantgo|blackberry|bolt|boost|cricket|docomo|fone|hiptop|mini|mobi|palm|phone|pie|tablet|up\.browser|up\.link|webos|wos)/i", $_SERVER["HTTP_USER_AGENT"]);
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -0,0 +1,69 @@
|
|||
/**
|
||||
* Main imports.
|
||||
*/
|
||||
import Vue from 'vue';
|
||||
import axios from 'axios';
|
||||
|
||||
/**
|
||||
* Window assignation.
|
||||
*/
|
||||
window.Vue = Vue;
|
||||
|
||||
window.eventBus = new Vue();
|
||||
|
||||
window.axios = axios;
|
||||
|
||||
window.jQuery = window.$ = require('jquery');
|
||||
|
||||
window.BootstrapSass = require('bootstrap-sass');
|
||||
|
||||
window.showAlert = (messageType, messageLabel, message) => {
|
||||
if (messageType && message !== '') {
|
||||
let alertId = Math.floor(Math.random() * 1000);
|
||||
|
||||
let html = `<div class="alert ${messageType} alert-dismissible" id="${alertId}">
|
||||
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
|
||||
<strong>${
|
||||
messageLabel ? messageLabel + '!' : ''
|
||||
} </strong> ${message}.
|
||||
</div>`;
|
||||
|
||||
$('#alert-container')
|
||||
.append(html)
|
||||
.ready(() => {
|
||||
window.setTimeout(() => {
|
||||
$(`#alert-container #${alertId}`).remove();
|
||||
}, 5000);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
window.loadDynamicScript = (src, onScriptLoaded) => {
|
||||
let baseUrl = document.querySelector('meta[name="base-url"]').content;
|
||||
|
||||
let dynamicScript = document.createElement('script');
|
||||
dynamicScript.setAttribute('src', `${baseUrl}/${src}`);
|
||||
document.body.appendChild(dynamicScript);
|
||||
|
||||
dynamicScript.addEventListener('load', onScriptLoaded, false);
|
||||
};
|
||||
|
||||
/**
|
||||
* Vue prototype.
|
||||
*/
|
||||
Vue.prototype.$http = axios;
|
||||
|
||||
/**
|
||||
* Dynamic loading for mobile.
|
||||
*/
|
||||
$(function() {
|
||||
document.addEventListener(
|
||||
'touchstart',
|
||||
function dynamicScript() {
|
||||
loadDynamicScript(`themes/velocity/assets/js/velocity.js`, () => {
|
||||
this.removeEventListener('touchstart', dynamicScript);
|
||||
});
|
||||
},
|
||||
false
|
||||
);
|
||||
});
|
||||
|
|
@ -1,14 +1,12 @@
|
|||
/**
|
||||
* Main imports.
|
||||
*/
|
||||
import 'lazysizes';
|
||||
import Vue from 'vue';
|
||||
import axios from 'axios';
|
||||
import accounting from 'accounting';
|
||||
import Accounting from 'accounting';
|
||||
import VeeValidate from 'vee-validate';
|
||||
import VueCarousel from 'vue-carousel';
|
||||
import VueToast from 'vue-toast-notification';
|
||||
import 'vue-toast-notification/dist/index.css';
|
||||
import VeeValidate from 'vee-validate';
|
||||
import 'lazysizes';
|
||||
|
||||
/**
|
||||
* Lang imports.
|
||||
|
|
@ -21,34 +19,7 @@ import nl from 'vee-validate/dist/locale/nl';
|
|||
import tr from 'vee-validate/dist/locale/tr';
|
||||
|
||||
/**
|
||||
* Window assignation.
|
||||
*/
|
||||
window.Vue = Vue;
|
||||
window.axios = axios;
|
||||
window.eventBus = new Vue();
|
||||
window.Carousel = VueCarousel;
|
||||
window.VeeValidate = VeeValidate;
|
||||
window.jQuery = window.$ = require('jquery');
|
||||
window.BootstrapSass = require('bootstrap-sass');
|
||||
window.showAlert = (messageType, messageLabel, message) => {
|
||||
if (messageType && message !== '') {
|
||||
let alertId = Math.floor(Math.random() * 1000);
|
||||
|
||||
let html = `<div class="alert ${messageType} alert-dismissible" id="${alertId}">
|
||||
<a href="#" class="close" data-dismiss="alert" aria-label="close">×</a>
|
||||
<strong>${messageLabel ? messageLabel + '!' : ''} </strong> ${message}.
|
||||
</div>`;
|
||||
|
||||
$('#alert-container').append(html).ready(() => {
|
||||
window.setTimeout(() => {
|
||||
$(`#alert-container #${alertId}`).remove();
|
||||
}, 5000);
|
||||
});
|
||||
}
|
||||
};
|
||||
|
||||
/**
|
||||
* Vue use.
|
||||
* Vue plugins.
|
||||
*/
|
||||
Vue.use(VueToast);
|
||||
Vue.use(VueCarousel);
|
||||
|
|
@ -65,16 +36,14 @@ Vue.use(VeeValidate, {
|
|||
});
|
||||
|
||||
/**
|
||||
* Filters and prototype.
|
||||
* Filters.
|
||||
*/
|
||||
Vue.prototype.$http = axios;
|
||||
|
||||
Vue.filter('currency', function(value, argument) {
|
||||
return accounting.formatMoney(value, argument);
|
||||
return Accounting.formatMoney(value, argument);
|
||||
});
|
||||
|
||||
/**
|
||||
* UI components.
|
||||
* Global components.
|
||||
**/
|
||||
Vue.component('vue-slider', require('vue-slider-component'));
|
||||
Vue.component('mini-cart-button', require('./UI/components/mini-cart-button'));
|
||||
|
|
@ -84,13 +53,28 @@ Vue.component('add-to-cart', require('./UI/components/add-to-cart'));
|
|||
Vue.component('star-ratings', require('./UI/components/star-rating'));
|
||||
Vue.component('quantity-btn', require('./UI/components/quantity-btn'));
|
||||
Vue.component('quantity-changer', require('./UI/components/quantity-changer'));
|
||||
Vue.component('proceed-to-checkout', require('./UI/components/proceed-to-checkout'));
|
||||
Vue.component('compare-component-with-badge', require('./UI/components/header-compare-with-badge'));
|
||||
Vue.component('searchbar-component', require('./UI/components/header-searchbar'));
|
||||
Vue.component('wishlist-component-with-badge', require('./UI/components/header-wishlist-with-badge'));
|
||||
Vue.component(
|
||||
'proceed-to-checkout',
|
||||
require('./UI/components/proceed-to-checkout')
|
||||
);
|
||||
Vue.component(
|
||||
'compare-component-with-badge',
|
||||
require('./UI/components/header-compare-with-badge')
|
||||
);
|
||||
Vue.component(
|
||||
'searchbar-component',
|
||||
require('./UI/components/header-searchbar')
|
||||
);
|
||||
Vue.component(
|
||||
'wishlist-component-with-badge',
|
||||
require('./UI/components/header-wishlist-with-badge')
|
||||
);
|
||||
Vue.component('mobile-header', require('./UI/components/header-mobile'));
|
||||
Vue.component('sidebar-header', require('./UI/components/header-sidebar'));
|
||||
Vue.component('right-side-header', require('./UI/components/header-right-side'));
|
||||
Vue.component(
|
||||
'right-side-header',
|
||||
require('./UI/components/header-right-side')
|
||||
);
|
||||
Vue.component('sidebar-component', require('./UI/components/sidebar'));
|
||||
Vue.component('product-card', require('./UI/components/product-card'));
|
||||
Vue.component('wishlist-component', require('./UI/components/wishlist'));
|
||||
|
|
@ -100,19 +84,43 @@ Vue.component('child-sidebar', require('./UI/components/child-sidebar'));
|
|||
Vue.component('card-list-header', require('./UI/components/card-header'));
|
||||
Vue.component('logo-component', require('./UI/components/image-logo'));
|
||||
Vue.component('magnify-image', require('./UI/components/image-magnifier'));
|
||||
Vue.component('image-search-component', require('./UI/components/image-search'));
|
||||
Vue.component(
|
||||
'image-search-component',
|
||||
require('./UI/components/image-search')
|
||||
);
|
||||
Vue.component('compare-component', require('./UI/components/product-compare'));
|
||||
Vue.component('shimmer-component', require('./UI/components/shimmer-component'));
|
||||
Vue.component('responsive-sidebar', require('./UI/components/responsive-sidebar'));
|
||||
Vue.component('product-quick-view', require('./UI/components/product-quick-view'));
|
||||
Vue.component('product-quick-view-btn', require('./UI/components/product-quick-view-btn'));
|
||||
Vue.component(
|
||||
'shimmer-component',
|
||||
require('./UI/components/shimmer-component')
|
||||
);
|
||||
Vue.component(
|
||||
'responsive-sidebar',
|
||||
require('./UI/components/responsive-sidebar')
|
||||
);
|
||||
Vue.component(
|
||||
'product-quick-view',
|
||||
require('./UI/components/product-quick-view')
|
||||
);
|
||||
Vue.component(
|
||||
'product-quick-view-btn',
|
||||
require('./UI/components/product-quick-view-btn')
|
||||
);
|
||||
Vue.component('recently-viewed', require('./UI/components/recently-viewed'));
|
||||
Vue.component('product-collections', require('./UI/components/product-collections'));
|
||||
Vue.component(
|
||||
'product-collections',
|
||||
require('./UI/components/product-collections')
|
||||
);
|
||||
Vue.component('hot-category', require('./UI/components/hot-category'));
|
||||
Vue.component('hot-categories', require('./UI/components/hot-categories'));
|
||||
Vue.component('popular-category', require('./UI/components/popular-category'));
|
||||
Vue.component('popular-categories', require('./UI/components/popular-categories'));
|
||||
Vue.component('velocity-overlay-loader', require('./UI/components/overlay-loader'));
|
||||
Vue.component(
|
||||
'popular-categories',
|
||||
require('./UI/components/popular-categories')
|
||||
);
|
||||
Vue.component(
|
||||
'velocity-overlay-loader',
|
||||
require('./UI/components/overlay-loader')
|
||||
);
|
||||
|
||||
/**
|
||||
* Start from here.
|
||||
|
|
@ -453,7 +461,7 @@ $(function() {
|
|||
/**
|
||||
* For compilation of html coming from server.
|
||||
*/
|
||||
Vue.component('vnode-injector', {
|
||||
Vue.component('vnode-injector', {
|
||||
functional: true,
|
||||
props: ['nodes'],
|
||||
render(h, { props }) {
|
||||
|
|
|
|||
|
|
@ -1,8 +1,15 @@
|
|||
<script
|
||||
type="text/javascript"
|
||||
src="{{ asset('themes/velocity/assets/js/velocity.js') }}">
|
||||
src="{{ asset('themes/velocity/assets/js/velocity-core.js') }}">
|
||||
</script>
|
||||
|
||||
@if (! $velocityHelper->isMobile())
|
||||
<script
|
||||
type="text/javascript"
|
||||
src="{{ asset('themes/velocity/assets/js/velocity.js') }}">
|
||||
</script>
|
||||
@endif
|
||||
|
||||
<script type="text/javascript">
|
||||
(() => {
|
||||
/* activate session messages */
|
||||
|
|
|
|||
|
|
@ -1,7 +1,8 @@
|
|||
const { mix } = require("laravel-mix");
|
||||
require("laravel-mix-merge-manifest");
|
||||
const { mix } = require('laravel-mix');
|
||||
|
||||
var publicPath = "../../../public/themes/velocity/assets";
|
||||
require('laravel-mix-merge-manifest');
|
||||
|
||||
let publicPath = '../../../public/themes/velocity/assets';
|
||||
|
||||
if (mix.inProduction()) {
|
||||
publicPath = 'publishable/assets';
|
||||
|
|
@ -11,12 +12,13 @@ mix.setPublicPath(publicPath).mergeManifest();
|
|||
mix.disableNotifications();
|
||||
|
||||
mix
|
||||
.js(__dirname + '/src/Resources/assets/js/app-core.js', 'js/velocity-core.js')
|
||||
.js(
|
||||
__dirname + "/src/Resources/assets/js/app.js",
|
||||
"js/velocity.js"
|
||||
__dirname + '/src/Resources/assets/js/app.js',
|
||||
'js/velocity.js'
|
||||
)
|
||||
|
||||
.copy(__dirname + "/src/Resources/assets/images", publicPath + "/images")
|
||||
.copy(__dirname + '/src/Resources/assets/images', publicPath + '/images')
|
||||
|
||||
.sass(
|
||||
__dirname + '/src/Resources/assets/sass/admin.scss',
|
||||
|
|
@ -24,8 +26,9 @@ mix
|
|||
)
|
||||
.sass(
|
||||
__dirname + '/src/Resources/assets/sass/app.scss',
|
||||
__dirname + '/' + publicPath + '/css/velocity.css', {
|
||||
includePaths: ['node_modules/bootstrap-sass/assets/stylesheets/'],
|
||||
__dirname + '/' + publicPath + '/css/velocity.css',
|
||||
{
|
||||
includePaths: ['node_modules/bootstrap-sass/assets/stylesheets/']
|
||||
}
|
||||
)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue