This commit is contained in:
Bellord
2026-05-31 13:36:28 +03:00
parent f98cfc62a7
commit 1c882ba7f3
27 changed files with 349 additions and 364 deletions
+14 -67
View File
@@ -36,72 +36,16 @@ var __PluginManagerConfigHandler__ = function() {
type: 'HMD',
},
jQueryProxy: {
path: root + '/jquery/proxy',
js: '/jquery-proxy.min.js',
type: 'HMD',
handler: function(require, exports, module, global){
init = function(c, prop = '$', args = []){
c.push([prop, args]);
alias: [],
deps: [],
onInstall: function(plugin){
var jQueryPlugin = __pmGlobal__.pm.plugins.jQuery
if(jQueryPlugin.isInstalled()){
return new Proxy({}, {
get(target, prop) {
return function(){
return init(c, prop, arguments)
}
}
});
};
var J = function(){
if(!J.init){
J.init = true;
__PluginManager__.ready('jQuery');
}
var c = [];
J.queue.push(c);
return init(c, '$', arguments);
}
J.queue = [];
J.init = false;
function JQueryProxy(){}
JQueryProxy.prototype.J = J;
JQueryProxy.prototype.hasJQuery = function(){
return window.hasOwnProperty('jQuery') && window.jQuery.hasOwnProperty('fn');
};
JQueryProxy.prototype.hasJQueryIniter = function(){
return window.hasOwnProperty('jQuery') && Object.is(window.jQuery, J);
};
JQueryProxy.prototype.onJQueryRegister = function(plugin){
if(!this.hasJQuery()){
(function(w){
w.$ = w.jQuery = J;
plugin.module.initer = J;
})(window);
}
};
JQueryProxy.prototype.onJQueryInstall = function(plugin){
var self = this;
if(!plugin.module.initer){
return;
}
(function(w){
var q = plugin.module.initer.queue;
if(self.hasJQueryIniter()){
w.$ = w.jQuery = plugin.module.exports;
for (var ch of q){
var root = w;
for (var c of ch){
try {
root = root[c[0]].apply(root, c[1]);
} catch (e){
console.warn(ch, e);
break;
}
}
}
}
})(window);
};
module.exports = new JQueryProxy();
},
},
jQuery: {
@@ -114,13 +58,16 @@ var __PluginManagerConfigHandler__ = function() {
plugin.module.exports = window.jQuery;
plugin.config.module = '';
} else {
plugin.proxy = kit.require('jQueryProxy');
plugin.proxy.onJQueryRegister(plugin);
var jQueryProxyPlugin = __pmGlobal__.pm.plugins.jQueryProxy;
if(jQueryProxyPlugin.isInstalled()){
jQueryProxyPlugin.module.exports.onJQueryRegister(plugin);
}
}
},
onInstall: function(plugin){
if(plugin.proxy){
plugin.proxy.onJQueryInstall(plugin);
var jQueryProxyPlugin = __pmGlobal__.pm.plugins.jQueryProxy;
if(jQueryProxyPlugin.isInstalled()){
jQueryProxyPlugin.module.exports.onJQueryInstall(plugin);
}
},
},