Add semantic token highlighting for 'that' variable and comment file references in VS Code extension Add Phone_Text_Input and Currency_Input components with formatting utilities Implement client widgets, form standardization, and soft delete functionality Add modal scroll lock and update documentation Implement comprehensive modal system with form integration and validation Fix modal component instantiation using jQuery plugin API Implement modal system with responsive sizing, queuing, and validation support Implement form submission with validation, error handling, and loading states Implement country/state selectors with dynamic data loading and Bootstrap styling Revert Rsx::Route() highlighting in Blade/PHP files Target specific PHP scopes for Rsx::Route() highlighting in Blade Expand injection selector for Rsx::Route() highlighting Add custom syntax highlighting for Rsx::Route() and Rsx.Route() calls Update jqhtml packages to v2.2.165 Add bundle path validation for common mistakes (development mode only) Create Ajax_Select_Input widget and Rsx_Reference_Data controller Create Country_Select_Input widget with default country support Initialize Tom Select on Select_Input widgets Add Tom Select bundle for enhanced select dropdowns Implement ISO 3166 geographic data system for country/region selection Implement widget-based form system with disabled state support 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <noreply@anthropic.com>
243 lines
6.7 KiB
JavaScript
243 lines
6.7 KiB
JavaScript
"use strict";
|
|
|
|
Object.defineProperty(exports, "__esModule", {
|
|
value: true
|
|
});
|
|
exports._call = _call;
|
|
exports._getQueueContexts = _getQueueContexts;
|
|
exports._resyncKey = _resyncKey;
|
|
exports._resyncList = _resyncList;
|
|
exports._resyncParent = _resyncParent;
|
|
exports._resyncRemoved = _resyncRemoved;
|
|
exports.call = call;
|
|
exports.isDenylisted = isDenylisted;
|
|
exports.popContext = popContext;
|
|
exports.pushContext = pushContext;
|
|
exports.requeue = requeue;
|
|
exports.requeueComputedKeyAndDecorators = requeueComputedKeyAndDecorators;
|
|
exports.resync = resync;
|
|
exports.setContext = setContext;
|
|
exports.setKey = setKey;
|
|
exports.setScope = setScope;
|
|
exports.setup = setup;
|
|
exports.skip = skip;
|
|
exports.skipKey = skipKey;
|
|
exports.stop = stop;
|
|
exports.visit = visit;
|
|
var _traverseNode = require("../traverse-node.js");
|
|
var _index = require("./index.js");
|
|
var _removal = require("./removal.js");
|
|
var t = require("@babel/types");
|
|
function call(key) {
|
|
const opts = this.opts;
|
|
this.debug(key);
|
|
if (this.node) {
|
|
if (_call.call(this, opts[key])) return true;
|
|
}
|
|
if (this.node) {
|
|
var _opts$this$node$type;
|
|
return _call.call(this, (_opts$this$node$type = opts[this.node.type]) == null ? void 0 : _opts$this$node$type[key]);
|
|
}
|
|
return false;
|
|
}
|
|
function _call(fns) {
|
|
if (!fns) return false;
|
|
for (const fn of fns) {
|
|
if (!fn) continue;
|
|
const node = this.node;
|
|
if (!node) return true;
|
|
const ret = fn.call(this.state, this, this.state);
|
|
if (ret && typeof ret === "object" && typeof ret.then === "function") {
|
|
throw new Error(`You appear to be using a plugin with an async traversal visitor, ` + `which your current version of Babel does not support. ` + `If you're using a published plugin, you may need to upgrade ` + `your @babel/core version.`);
|
|
}
|
|
if (ret) {
|
|
throw new Error(`Unexpected return value from visitor method ${fn}`);
|
|
}
|
|
if (this.node !== node) return true;
|
|
if (this._traverseFlags > 0) return true;
|
|
}
|
|
return false;
|
|
}
|
|
function isDenylisted() {
|
|
var _this$opts$denylist;
|
|
const denylist = (_this$opts$denylist = this.opts.denylist) != null ? _this$opts$denylist : this.opts.blacklist;
|
|
return denylist == null ? void 0 : denylist.includes(this.node.type);
|
|
}
|
|
{
|
|
exports.isBlacklisted = isDenylisted;
|
|
}
|
|
function restoreContext(path, context) {
|
|
if (path.context !== context) {
|
|
path.context = context;
|
|
path.state = context.state;
|
|
path.opts = context.opts;
|
|
}
|
|
}
|
|
function visit() {
|
|
var _this$opts$shouldSkip, _this$opts;
|
|
if (!this.node) {
|
|
return false;
|
|
}
|
|
if (this.isDenylisted()) {
|
|
return false;
|
|
}
|
|
if ((_this$opts$shouldSkip = (_this$opts = this.opts).shouldSkip) != null && _this$opts$shouldSkip.call(_this$opts, this)) {
|
|
return false;
|
|
}
|
|
const currentContext = this.context;
|
|
if (this.shouldSkip || call.call(this, "enter")) {
|
|
this.debug("Skip...");
|
|
return this.shouldStop;
|
|
}
|
|
restoreContext(this, currentContext);
|
|
this.debug("Recursing into...");
|
|
this.shouldStop = (0, _traverseNode.traverseNode)(this.node, this.opts, this.scope, this.state, this, this.skipKeys);
|
|
restoreContext(this, currentContext);
|
|
call.call(this, "exit");
|
|
return this.shouldStop;
|
|
}
|
|
function skip() {
|
|
this.shouldSkip = true;
|
|
}
|
|
function skipKey(key) {
|
|
if (this.skipKeys == null) {
|
|
this.skipKeys = {};
|
|
}
|
|
this.skipKeys[key] = true;
|
|
}
|
|
function stop() {
|
|
this._traverseFlags |= _index.SHOULD_SKIP | _index.SHOULD_STOP;
|
|
}
|
|
function setScope() {
|
|
var _this$opts2, _this$scope;
|
|
if ((_this$opts2 = this.opts) != null && _this$opts2.noScope) return;
|
|
let path = this.parentPath;
|
|
if ((this.key === "key" || this.listKey === "decorators") && path.isMethod() || this.key === "discriminant" && path.isSwitchStatement()) {
|
|
path = path.parentPath;
|
|
}
|
|
let target;
|
|
while (path && !target) {
|
|
var _path$opts;
|
|
if ((_path$opts = path.opts) != null && _path$opts.noScope) return;
|
|
target = path.scope;
|
|
path = path.parentPath;
|
|
}
|
|
this.scope = this.getScope(target);
|
|
(_this$scope = this.scope) == null || _this$scope.init();
|
|
}
|
|
function setContext(context) {
|
|
if (this.skipKeys != null) {
|
|
this.skipKeys = {};
|
|
}
|
|
this._traverseFlags = 0;
|
|
if (context) {
|
|
this.context = context;
|
|
this.state = context.state;
|
|
this.opts = context.opts;
|
|
}
|
|
setScope.call(this);
|
|
return this;
|
|
}
|
|
function resync() {
|
|
if (this.removed) return;
|
|
_resyncParent.call(this);
|
|
_resyncList.call(this);
|
|
_resyncKey.call(this);
|
|
}
|
|
function _resyncParent() {
|
|
if (this.parentPath) {
|
|
this.parent = this.parentPath.node;
|
|
}
|
|
}
|
|
function _resyncKey() {
|
|
if (!this.container) return;
|
|
if (this.node === this.container[this.key]) {
|
|
return;
|
|
}
|
|
if (Array.isArray(this.container)) {
|
|
for (let i = 0; i < this.container.length; i++) {
|
|
if (this.container[i] === this.node) {
|
|
setKey.call(this, i);
|
|
return;
|
|
}
|
|
}
|
|
} else {
|
|
for (const key of Object.keys(this.container)) {
|
|
if (this.container[key] === this.node) {
|
|
setKey.call(this, key);
|
|
return;
|
|
}
|
|
}
|
|
}
|
|
this.key = null;
|
|
}
|
|
function _resyncList() {
|
|
if (!this.parent || !this.inList) return;
|
|
const newContainer = this.parent[this.listKey];
|
|
if (this.container === newContainer) return;
|
|
this.container = newContainer || null;
|
|
}
|
|
function _resyncRemoved() {
|
|
if (this.key == null || !this.container || this.container[this.key] !== this.node) {
|
|
_removal._markRemoved.call(this);
|
|
}
|
|
}
|
|
function popContext() {
|
|
this.contexts.pop();
|
|
if (this.contexts.length > 0) {
|
|
this.setContext(this.contexts[this.contexts.length - 1]);
|
|
} else {
|
|
this.setContext(undefined);
|
|
}
|
|
}
|
|
function pushContext(context) {
|
|
this.contexts.push(context);
|
|
this.setContext(context);
|
|
}
|
|
function setup(parentPath, container, listKey, key) {
|
|
this.listKey = listKey;
|
|
this.container = container;
|
|
this.parentPath = parentPath || this.parentPath;
|
|
setKey.call(this, key);
|
|
}
|
|
function setKey(key) {
|
|
var _this$node;
|
|
this.key = key;
|
|
this.node = this.container[this.key];
|
|
this.type = (_this$node = this.node) == null ? void 0 : _this$node.type;
|
|
}
|
|
function requeue(pathToQueue = this) {
|
|
if (pathToQueue.removed) return;
|
|
;
|
|
const contexts = this.contexts;
|
|
for (const context of contexts) {
|
|
context.maybeQueue(pathToQueue);
|
|
}
|
|
}
|
|
function requeueComputedKeyAndDecorators() {
|
|
const {
|
|
context,
|
|
node
|
|
} = this;
|
|
if (!t.isPrivate(node) && node.computed) {
|
|
context.maybeQueue(this.get("key"));
|
|
}
|
|
if (node.decorators) {
|
|
for (const decorator of this.get("decorators")) {
|
|
context.maybeQueue(decorator);
|
|
}
|
|
}
|
|
}
|
|
function _getQueueContexts() {
|
|
let path = this;
|
|
let contexts = this.contexts;
|
|
while (!contexts.length) {
|
|
path = path.parentPath;
|
|
if (!path) break;
|
|
contexts = path.contexts;
|
|
}
|
|
return contexts;
|
|
}
|
|
|
|
//# sourceMappingURL=context.js.map
|