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>
161 lines
5.0 KiB
JavaScript
161 lines
5.0 KiB
JavaScript
Object.defineProperty(exports, "__esModule", { value: true });
|
|
/* eslint-disable @typescript-eslint/explicit-function-return-type */
|
|
/* eslint-disable @typescript-eslint/typedef */
|
|
/* eslint-disable @typescript-eslint/explicit-module-boundary-types */
|
|
/* eslint-disable @typescript-eslint/no-explicit-any */
|
|
var is_1 = require("./is");
|
|
/**
|
|
* Creates a resolved sync promise.
|
|
*
|
|
* @param value the value to resolve the promise with
|
|
* @returns the resolved sync promise
|
|
*/
|
|
function resolvedSyncPromise(value) {
|
|
return new SyncPromise(function (resolve) {
|
|
resolve(value);
|
|
});
|
|
}
|
|
exports.resolvedSyncPromise = resolvedSyncPromise;
|
|
/**
|
|
* Creates a rejected sync promise.
|
|
*
|
|
* @param value the value to reject the promise with
|
|
* @returns the rejected sync promise
|
|
*/
|
|
function rejectedSyncPromise(reason) {
|
|
return new SyncPromise(function (_, reject) {
|
|
reject(reason);
|
|
});
|
|
}
|
|
exports.rejectedSyncPromise = rejectedSyncPromise;
|
|
/**
|
|
* Thenable class that behaves like a Promise and follows it's interface
|
|
* but is not async internally
|
|
*/
|
|
var SyncPromise = /** @class */ (function () {
|
|
function SyncPromise(executor) {
|
|
var _this = this;
|
|
this._state = 0 /* PENDING */;
|
|
this._handlers = [];
|
|
/** JSDoc */
|
|
this._resolve = function (value) {
|
|
_this._setResult(1 /* RESOLVED */, value);
|
|
};
|
|
/** JSDoc */
|
|
this._reject = function (reason) {
|
|
_this._setResult(2 /* REJECTED */, reason);
|
|
};
|
|
/** JSDoc */
|
|
this._setResult = function (state, value) {
|
|
if (_this._state !== 0 /* PENDING */) {
|
|
return;
|
|
}
|
|
if (is_1.isThenable(value)) {
|
|
void value.then(_this._resolve, _this._reject);
|
|
return;
|
|
}
|
|
_this._state = state;
|
|
_this._value = value;
|
|
_this._executeHandlers();
|
|
};
|
|
/** JSDoc */
|
|
this._executeHandlers = function () {
|
|
if (_this._state === 0 /* PENDING */) {
|
|
return;
|
|
}
|
|
var cachedHandlers = _this._handlers.slice();
|
|
_this._handlers = [];
|
|
cachedHandlers.forEach(function (handler) {
|
|
if (handler[0]) {
|
|
return;
|
|
}
|
|
if (_this._state === 1 /* RESOLVED */) {
|
|
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
handler[1](_this._value);
|
|
}
|
|
if (_this._state === 2 /* REJECTED */) {
|
|
handler[2](_this._value);
|
|
}
|
|
handler[0] = true;
|
|
});
|
|
};
|
|
try {
|
|
executor(this._resolve, this._reject);
|
|
}
|
|
catch (e) {
|
|
this._reject(e);
|
|
}
|
|
}
|
|
/** JSDoc */
|
|
SyncPromise.prototype.then = function (onfulfilled, onrejected) {
|
|
var _this = this;
|
|
return new SyncPromise(function (resolve, reject) {
|
|
_this._handlers.push([
|
|
false,
|
|
function (result) {
|
|
if (!onfulfilled) {
|
|
// TODO: ¯\_(ツ)_/¯
|
|
// TODO: FIXME
|
|
resolve(result);
|
|
}
|
|
else {
|
|
try {
|
|
resolve(onfulfilled(result));
|
|
}
|
|
catch (e) {
|
|
reject(e);
|
|
}
|
|
}
|
|
},
|
|
function (reason) {
|
|
if (!onrejected) {
|
|
reject(reason);
|
|
}
|
|
else {
|
|
try {
|
|
resolve(onrejected(reason));
|
|
}
|
|
catch (e) {
|
|
reject(e);
|
|
}
|
|
}
|
|
},
|
|
]);
|
|
_this._executeHandlers();
|
|
});
|
|
};
|
|
/** JSDoc */
|
|
SyncPromise.prototype.catch = function (onrejected) {
|
|
return this.then(function (val) { return val; }, onrejected);
|
|
};
|
|
/** JSDoc */
|
|
SyncPromise.prototype.finally = function (onfinally) {
|
|
var _this = this;
|
|
return new SyncPromise(function (resolve, reject) {
|
|
var val;
|
|
var isRejected;
|
|
return _this.then(function (value) {
|
|
isRejected = false;
|
|
val = value;
|
|
if (onfinally) {
|
|
onfinally();
|
|
}
|
|
}, function (reason) {
|
|
isRejected = true;
|
|
val = reason;
|
|
if (onfinally) {
|
|
onfinally();
|
|
}
|
|
}).then(function () {
|
|
if (isRejected) {
|
|
reject(val);
|
|
return;
|
|
}
|
|
resolve(val);
|
|
});
|
|
});
|
|
};
|
|
return SyncPromise;
|
|
}());
|
|
exports.SyncPromise = SyncPromise;
|
|
//# sourceMappingURL=syncpromise.js.map
|