kit.PluginManager.registerPlugins({ menu: { path: '/local/templates.dev/kit/assets/menu', module: '/menu.js', css: [ '/menu.css' ], type: 'loader', deps: ['lib', 'align', 'utils'] }, lib: { path: '/local/templates.dev/kit/assets/lib', module: '/lib.js', type: 'loader', }, align: { path: '/local/templates.dev/kit/assets/align', module: '/align.js', type: 'loader', }, utils: { path: '/local/templates.dev/kit/assets/utils', module: '/utils.js', type: 'loader', }, jquery: { path: '/local/templates.dev/kit/assets/jquery', module: '/jquery.min.js', type: 'loader', alias: '$', }, tooltip: { path: '/local/templates.dev/kit/assets/tooltip', module: '/tooltip.js', type: 'loader', css: '/tooltip.css', onInstall: function(){ kit.$('[data-toggle="tooltip"]').tooltip(); }, deps: ['popper', 'bsCore'], }, popper: { path: '/local/templates.dev/kit/assets/popper', alias: 'popper.js', module: '/popper.js', type: 'loader', }, bsCore: { path: '/local/templates.dev/kit/assets/bsCore', module: '/bsCore.js', type: 'loader', css: [ '/bsCore.css' ] }, mask: { path: '/local/templates.dev/kit/assets/mask', module: '/mask.js', type: 'loader', deps: ['jquery'], }, toolkit: { path: '/local/templates.dev/kit/assets/toolkit', module: '/toolkit.js', type: 'loader', css: ['/toolkit.css'], deps: ['jquery', 'mask'], }, modal: { path: '/local/templates.dev/kit/assets/modal', module: '/modal.js', type: 'loader', css: [ '/modal.css', ], deps: ['bsCore'], onRegister: function (plugin) { plugin.onLoadConditionHandler = function (event) { if(event.target && event.target.dataset && event.target.dataset.bsTarget && event.target.dataset.bsToggle === 'modal') { kit.exec(plugin.id, function(){ var newEvent = new Event("click"); event.target.dispatchEvent(newEvent); }); } }; window.addEventListener('click', plugin.onLoadConditionHandler, false); }, onInstall: function (plugin) { if(plugin.onLoadConditionHandler) { window.removeEventListener('click', plugin.onLoadConditionHandler, false); } }, }, collapse: { path: '/local/templates.dev/kit/assets/collapse', module: '/collapse.js', type: 'loader', css: [ '/collapse.css', ], deps: ['bsCore'], onRegister: function (plugin) { kit.PluginManager.install('collapse') }, onInstall: function (plugin) { }, }, datepicker: { path: '/local/templates.dev/kit/assets/datepicker', module: '/js/datepicker.js', type: 'loader', css: [ '/css/datepicker.css', ], deps: ['jquery'], onRegister: function (plugin) { kit.PluginManager.install(plugin.id) }, onInstall: function (plugin) { }, }, }); kit.exec([], function () { console.log('start init'); function _init(){ console.log('_init'); kit.PluginManager.install('jquery'); kit.PluginManager.install('toolkit'); kit.PluginManager.install('tooltip'); kit.PluginManager.install('bsCore'); } if (/complete|interactive|loaded/.test(document.readyState)) { // In case the document has finished parsing, document's readyState will // be one of "complete", "interactive" or (non-standard) "loaded". _init(); } else { // The document is not ready yet, so wait for the DOMContentLoaded event document.addEventListener("DOMContentLoaded", _init); } });