This commit is contained in:
2024-06-26 05:53:08 +03:00
parent 3228b3cb49
commit 16b59383ee
4 changed files with 37 additions and 22 deletions
+4
View File
@@ -824,12 +824,16 @@ kit.config = kit.config || {};
* @param {function} callback * @param {function} callback
* @memberOf kit * @memberOf kit
*/ */
PluginManager.prototype.ready = function(deps, callback = undefined) { PluginManager.prototype.ready = function(deps, callback = undefined) {
var self = this; var self = this;
if(typeof deps === 'function') { if(typeof deps === 'function') {
callback = deps; callback = deps;
deps = []; deps = [];
} }
if(typeof callback !== 'function') {
callback = function (){};
}
self.__ready(self.exec, [deps, callback], self); self.__ready(self.exec, [deps, callback], self);
}; };
PluginManager.prototype.__ready = function(fn, args = [], context = window) { PluginManager.prototype.__ready = function(fn, args = [], context = window) {
+1 -1
View File
File diff suppressed because one or more lines are too long
+31 -20
View File
@@ -30,30 +30,41 @@ var __PluginManagerConfigHandler__ = function() {
module: '/support.min.js', module: '/support.min.js',
type: 'HMD', type: 'HMD',
}, },
jqueryIniter: { jqueryProxy: {
type: 'HMD', type: 'HMD',
handler: function(require, exports, module, global){ handler: function(require, exports, module, global){
var J = function (){ init = function(c, prop = '$', args = []){
c.push([prop, args]);
return new Proxy({}, {
get(target, prop) {
return function(){
return init(c, prop, arguments)
}
}
});
};
var J = function(){
if(!J.init){
J.init = false;
__PluginManager__.ready('jquery');
}
var c = []; var c = [];
J.queue.push(c); J.queue.push(c);
c.push(['$', arguments]); return init(c, '$', arguments);
var J2 = function(){}
J2.ready = function (){
c.push(['ready', arguments]);
}
return J2
} }
J.queue = []; J.queue = [];
J.init = false;
function JQueryIniter(){} function JQueryProxy(){}
JQueryIniter.prototype.J = J; JQueryProxy.prototype.J = J;
JQueryIniter.prototype.hasJQuery = function(){ JQueryProxy.prototype.hasJQuery = function(){
return window.hasOwnProperty('jQuery') && window.jQuery.hasOwnProperty('fn'); return window.hasOwnProperty('jQuery') && window.jQuery.hasOwnProperty('fn');
}; };
JQueryIniter.prototype.hasJQueryIniter = function(){ JQueryProxy.prototype.hasJQueryIniter = function(){
return window.hasOwnProperty('jQuery') && Object.is(window.jQuery, J); return window.hasOwnProperty('jQuery') && Object.is(window.jQuery, J);
}; };
JQueryIniter.prototype.onRegister = function(plugin){ JQueryProxy.prototype.onJQueryRegister = function(plugin){
if(!this.hasJQuery()){ if(!this.hasJQuery()){
(function(w){ (function(w){
w.$ = w.jQuery = J; w.$ = w.jQuery = J;
@@ -61,7 +72,7 @@ var __PluginManagerConfigHandler__ = function() {
})(window); })(window);
} }
}; };
JQueryIniter.prototype.onInstall = function(plugin){ JQueryProxy.prototype.onJQueryInstall = function(plugin){
var self = this; var self = this;
(function(w){ (function(w){
var q = plugin.module.initer.queue; var q = plugin.module.initer.queue;
@@ -70,14 +81,14 @@ var __PluginManagerConfigHandler__ = function() {
for (var ch of q){ for (var ch of q){
var root = w; var root = w;
for (var c of ch){ for (var c of ch){
root = root[c[0]].apply(c[0], c[1]); root = root[c[0]].apply(root, c[1]);
} }
} }
} }
})(window); })(window);
}; };
module.exports = new JQueryIniter(); module.exports = new JQueryProxy();
}, },
}, },
@@ -87,12 +98,12 @@ var __PluginManagerConfigHandler__ = function() {
type: 'UMD', type: 'UMD',
alias: ['$', 'jQuery'], alias: ['$', 'jQuery'],
onRegister: function (plugin) { onRegister: function (plugin) {
var initer = kit.require('jqueryIniter'); var proxy = kit.require('jqueryProxy');
initer.onRegister(plugin); proxy.onJQueryRegister(plugin);
}, },
onInstall: function(plugin){ onInstall: function(plugin){
var initer = kit.require('jqueryIniter'); var proxy = kit.require('jqueryProxy');
initer.onInstall(plugin); proxy.onJQueryInstall(plugin);
}, },
}, },
popper: { popper: {
File diff suppressed because one or more lines are too long