Aknaproff/resources/js/app.js

86 lines
3.1 KiB
JavaScript

/**
* First we will load all of this project's JavaScript dependencies which
* includes Vue and other libraries. It is a great starting point when
* building robust, powerful web applications using Vue and Laravel.
*/
require('./bootstrap');
require('admin-lte/dist/js/adminlte.js');
window.Vue = require('vue');
//to use lodash in templates
Vue.prototype._ = _;
// ladda.js
import * as Ladda from 'ladda';
//easy qr code.js
import * as qrcode from 'easyqrcodejs'
window.QRCode = qrcode;
//accounting.js for currency formatting
import accounting from 'accounting-js';
window.__formatCurrency = function(money){
var currency_symbol = APP.CURRENCY_SYMBOL+' ';
var formatted_currency = accounting.formatMoney(money, { symbol: currency_symbol});
return formatted_currency;
}
window.__convert_currency_in_datatable = function (elements) {
elements.find('.currency').each(function(){
var money = $(this).text();
var formatted_currency = __formatCurrency(money);
$(this).text(formatted_currency);
});
}
/**
* global event bus for communication between
* two different component
*/
Vue.prototype.$eventBus = new Vue();
/**
* The following block of code may be used to automatically register your
* Vue components. It will recursively scan this directory for the Vue
* components and automatically register them with their "basename".
*
* Eg. ./components/ExampleComponent.vue -> <example-component></example-component>
*/
window.validationRules = [
{'rule' : 'email', 'display': 'Email', 'applies_to':['text']},
{'rule' : 'url', 'display': 'URL', 'applies_to':['text']},
{'rule' : 'minlength', 'display': 'Minlength', 'applies_to':['text', 'dropdown', 'checkbox', 'textarea']},
{'rule' : 'maxlength', 'display': 'Maxlength', 'applies_to':['text', 'dropdown', 'checkbox', 'textarea']},
{'rule' : 'digits', 'display': 'Digits', 'applies_to':['text']},
{'rule' : 'number', 'display': 'Number', 'applies_to':['text']},
{'rule' : 'alphanumeric', 'display': 'Alphanumeric', 'applies_to':['text']},
{'rule' : 'lettersonly', 'display': 'Letters Only', 'applies_to':['text']},
{'rule' : 'phone', 'display': 'Phone', 'applies_to':['text']},
{'rule' : 'phoneus', 'display': 'Phone US', 'applies_to':['text']},
{'rule' : 'creditcard', 'display': 'Credit Card', 'applies_to':['text']},
];
// const files = require.context('./', true, /\.vue$/i);
// files.keys().map(key => Vue.component(key.split('/').pop().split('.')[0], files(key).default));
Vue.component('create-form', require('./components/CreateForm.vue').default);
Vue.component('show-form', require('./components/ShowForm.vue').default);
Vue.component('tool-tip', require('./components/TooltipComponent.vue').default);
//common function
import functions from './functions';
Vue.mixin(functions);
/**
* Next, we will create a fresh Vue application instance and attach it to
* the page. Then, you may begin adding components to this application
* or customize the JavaScript scaffolding to fit your unique needs.
*/
$('body').tooltip({
selector: '[data-toggle="tooltip"]'
});
const app = new Vue({
el: '#app',
});