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
* @memberOf kit
*/
PluginManager.prototype.ready = function(deps, callback = undefined) {
var self = this;
if(typeof deps === 'function') {
callback = deps;
deps = [];
}
if(typeof callback !== 'function') {
callback = function (){};
}
self.__ready(self.exec, [deps, callback], self);
};
PluginManager.prototype.__ready = function(fn, args = [], context = window) {
+1 -1
View File
File diff suppressed because one or more lines are too long
+30 -19
View File
@@ -30,30 +30,41 @@ var __PluginManagerConfigHandler__ = function() {
module: '/support.min.js',
type: 'HMD',
},
jqueryIniter: {
jqueryProxy: {
type: 'HMD',
handler: function(require, exports, module, global){
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 = [];
J.queue.push(c);
c.push(['$', arguments]);
var J2 = function(){}
J2.ready = function (){
c.push(['ready', arguments]);
}
return J2
return init(c, '$', arguments);
}
J.queue = [];
J.init = false;
function JQueryIniter(){}
JQueryIniter.prototype.J = J;
JQueryIniter.prototype.hasJQuery = function(){
function JQueryProxy(){}
JQueryProxy.prototype.J = J;
JQueryProxy.prototype.hasJQuery = function(){
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);
};
JQueryIniter.prototype.onRegister = function(plugin){
JQueryProxy.prototype.onJQueryRegister = function(plugin){
if(!this.hasJQuery()){
(function(w){
w.$ = w.jQuery = J;
@@ -61,7 +72,7 @@ var __PluginManagerConfigHandler__ = function() {
})(window);
}
};
JQueryIniter.prototype.onInstall = function(plugin){
JQueryProxy.prototype.onJQueryInstall = function(plugin){
var self = this;
(function(w){
var q = plugin.module.initer.queue;
@@ -70,14 +81,14 @@ var __PluginManagerConfigHandler__ = function() {
for (var ch of q){
var root = w;
for (var c of ch){
root = root[c[0]].apply(c[0], c[1]);
root = root[c[0]].apply(root, c[1]);
}
}
}
})(window);
};
module.exports = new JQueryIniter();
module.exports = new JQueryProxy();
},
},
@@ -87,12 +98,12 @@ var __PluginManagerConfigHandler__ = function() {
type: 'UMD',
alias: ['$', 'jQuery'],
onRegister: function (plugin) {
var initer = kit.require('jqueryIniter');
initer.onRegister(plugin);
var proxy = kit.require('jqueryProxy');
proxy.onJQueryRegister(plugin);
},
onInstall: function(plugin){
var initer = kit.require('jqueryIniter');
initer.onInstall(plugin);
var proxy = kit.require('jqueryProxy');
proxy.onJQueryInstall(plugin);
},
},
popper: {
File diff suppressed because one or more lines are too long