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

94
node_modules/rtlcss-webpack-plugin/dist/src/index.js generated vendored Normal file
View File

@@ -0,0 +1,94 @@
"use strict";
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
var _path = _interopRequireDefault(require("path"));
var _rtlcss = _interopRequireDefault(require("rtlcss"));
var _webpack = _interopRequireDefault(require("webpack"));
var isWebpack5 = parseInt(_webpack["default"].version, 10) === 5;
var cssOnly = function cssOnly(filename) {
return _path["default"].extname(filename) === '.css';
};
var RtlCssPlugin = /*#__PURE__*/function () {
function RtlCssPlugin(options) {
var _this = this;
(0, _defineProperty2["default"])(this, "processAssets", function (compilation, callback) {
// webpack 5 turned this from an array to a set
var chunks = isWebpack5 ? Array.from(compilation.chunks) : compilation.chunks; // Explore each chunk (build output):
chunks.forEach(function (chunk) {
// Explore each asset filename generated by the chunk:
// webpack 5 turned this from an array to a set
var files = isWebpack5 ? Array.from(chunk.files) : chunk.files;
files.filter(cssOnly).forEach(function (filename) {
// Get the asset source for each file generated by the chunk:
var src = compilation.assets[filename].source();
var dst = _rtlcss["default"].process(src);
var dstFileName = compilation.getPath(_this.options.filename, {
chunk: chunk,
cssFileName: filename
});
if (isWebpack5) {
compilation.assets[dstFileName] = new _webpack["default"].sources.RawSource(dst);
chunk.files.add(dstFileName);
} else {
compilation.assets[dstFileName] = {
source: function source() {
return dst;
},
size: function size() {
return dst.length;
}
};
chunk.files.push(dstFileName);
}
});
});
callback();
});
if (typeof options === 'string') {
options = {
filename: options
};
}
this.options = options || {
filename: '[name].rtl.css'
};
}
var _proto = RtlCssPlugin.prototype;
_proto.apply = function apply(compiler) {
var _this2 = this;
if (isWebpack5) {
compiler.hooks.compilation.tap('RtlCssPlugin', function (compilation) {
compilation.hooks.processAssets.tapAsync({
name: 'TPAStylePlugin.pluginName',
stage: compilation.PROCESS_ASSETS_STAGE_OPTIMIZE
}, function (chunks, callback) {
return _this2.processAssets(compilation, callback);
});
});
} else {
compiler.hooks.emit.tapAsync('RtlCssPlugin', this.processAssets);
}
};
return RtlCssPlugin;
}();
module.exports = RtlCssPlugin;