fix: prevent asset conflicts between React and Grid.js versions

Add coexistence checks to all enqueue methods to prevent loading
both React and Grid.js assets simultaneously.

Changes:
- ReactAdmin.php: Only enqueue React assets when ?react=1
- Init.php: Skip Grid.js when React active on admin pages
- Form.php, Coupon.php, Access.php: Restore classic assets when ?react=0
- Customer.php, Product.php, License.php: Add coexistence checks

Now the toggle between Classic and React versions works correctly.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
This commit is contained in:
dwindown
2026-04-18 17:02:14 +07:00
parent bd9cdac02e
commit e8fbfb14c1
74973 changed files with 6658406 additions and 71 deletions

1
node_modules/klona/json/index.d.ts generated vendored Normal file
View File

@@ -0,0 +1 @@
export function klona<T>(input: T): T;

30
node_modules/klona/json/index.js generated vendored Normal file
View File

@@ -0,0 +1,30 @@
function klona(val) {
var k, out, tmp;
if (Array.isArray(val)) {
out = Array(k=val.length);
while (k--) out[k] = (tmp=val[k]) && typeof tmp === 'object' ? klona(tmp) : tmp;
return out;
}
if (Object.prototype.toString.call(val) === '[object Object]') {
out = {}; // null
for (k in val) {
if (k === '__proto__') {
Object.defineProperty(out, k, {
value: klona(val[k]),
configurable: true,
enumerable: true,
writable: true,
});
} else {
out[k] = (tmp=val[k]) && typeof tmp === 'object' ? klona(tmp) : tmp;
}
}
return out;
}
return val;
}
exports.klona = klona;

1
node_modules/klona/json/index.min.js generated vendored Normal file
View File

@@ -0,0 +1 @@
!function(e,t){"object"==typeof exports&&"undefined"!=typeof module?t(exports):"function"==typeof define&&define.amd?define(["exports"],t):t(e.klona={})}(this,(function(e){e.klona=function e(t){var o,r,n;if(Array.isArray(t)){for(r=Array(o=t.length);o--;)r[o]=(n=t[o])&&"object"==typeof n?e(n):n;return r}if("[object Object]"===Object.prototype.toString.call(t)){for(o in r={},t)"__proto__"===o?Object.defineProperty(r,o,{value:e(t[o]),configurable:!0,enumerable:!0,writable:!0}):r[o]=(n=t[o])&&"object"==typeof n?e(n):n;return r}return t}}));

28
node_modules/klona/json/index.mjs generated vendored Normal file
View File

@@ -0,0 +1,28 @@
export function klona(val) {
var k, out, tmp;
if (Array.isArray(val)) {
out = Array(k=val.length);
while (k--) out[k] = (tmp=val[k]) && typeof tmp === 'object' ? klona(tmp) : tmp;
return out;
}
if (Object.prototype.toString.call(val) === '[object Object]') {
out = {}; // null
for (k in val) {
if (k === '__proto__') {
Object.defineProperty(out, k, {
value: klona(val[k]),
configurable: true,
enumerable: true,
writable: true,
});
} else {
out[k] = (tmp=val[k]) && typeof tmp === 'object' ? klona(tmp) : tmp;
}
}
return out;
}
return val;
}