Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/gohugoio/hugo-mod-jslibs-dist.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'alpinejs/packages/alpinejs/dist/module.cjs.js')
-rw-r--r--alpinejs/packages/alpinejs/dist/module.cjs.js124
1 files changed, 88 insertions, 36 deletions
diff --git a/alpinejs/packages/alpinejs/dist/module.cjs.js b/alpinejs/packages/alpinejs/dist/module.cjs.js
index d77e293..dd47192 100644
--- a/alpinejs/packages/alpinejs/dist/module.cjs.js
+++ b/alpinejs/packages/alpinejs/dist/module.cjs.js
@@ -1637,6 +1637,24 @@ function injectMagics(obj, el) {
};
}
+// packages/alpinejs/src/utils/error.js
+function tryCatch(el, expression, callback, ...args) {
+ try {
+ return callback(...args);
+ } catch (e) {
+ handleError(e, el, expression);
+ }
+}
+function handleError(error2, el, expression = void 0) {
+ Object.assign(error2, {el, expression});
+ console.warn(`Alpine Expression Error: ${error2.message}
+
+${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el);
+ setTimeout(() => {
+ throw error2;
+ }, 0);
+}
+
// packages/alpinejs/src/evaluator.js
function evaluate(el, expression, extras = {}) {
let result;
@@ -1658,7 +1676,7 @@ function normalEvaluator(el, expression) {
if (typeof expression === "function") {
return generateEvaluatorFromFunction(dataStack, expression);
}
- let evaluator = generateEvaluatorFromString(dataStack, expression);
+ let evaluator = generateEvaluatorFromString(dataStack, expression, el);
return tryCatch.bind(null, el, expression, evaluator);
}
function generateEvaluatorFromFunction(dataStack, func) {
@@ -1669,39 +1687,49 @@ function generateEvaluatorFromFunction(dataStack, func) {
};
}
var evaluatorMemo = {};
-function generateFunctionFromString(expression) {
+function generateFunctionFromString(expression, el) {
if (evaluatorMemo[expression]) {
return evaluatorMemo[expression];
}
let AsyncFunction = Object.getPrototypeOf(async function() {
}).constructor;
- let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression) || /^(let|const)/.test(expression) ? `(() => { ${expression} })()` : expression;
- let func = new AsyncFunction(["__self", "scope"], `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`);
+ let rightSideSafeExpression = /^[\n\s]*if.*\(.*\)/.test(expression) || /^(let|const)\s/.test(expression) ? `(() => { ${expression} })()` : expression;
+ const safeAsyncFunction = () => {
+ try {
+ return new AsyncFunction(["__self", "scope"], `with (scope) { __self.result = ${rightSideSafeExpression} }; __self.finished = true; return __self.result;`);
+ } catch (error2) {
+ handleError(error2, el, expression);
+ return Promise.resolve();
+ }
+ };
+ let func = safeAsyncFunction();
evaluatorMemo[expression] = func;
return func;
}
-function generateEvaluatorFromString(dataStack, expression) {
- let func = generateFunctionFromString(expression);
+function generateEvaluatorFromString(dataStack, expression, el) {
+ let func = generateFunctionFromString(expression, el);
return (receiver = () => {
}, {scope = {}, params = []} = {}) => {
func.result = void 0;
func.finished = false;
let completeScope = mergeProxies([scope, ...dataStack]);
- let promise = func(func, completeScope);
- if (func.finished) {
- runIfTypeOfFunction(receiver, func.result, completeScope, params);
- } else {
- promise.then((result) => {
- runIfTypeOfFunction(receiver, result, completeScope, params);
- });
+ if (typeof func === "function") {
+ let promise = func(func, completeScope).catch((error2) => handleError(error2, el, expression));
+ if (func.finished) {
+ runIfTypeOfFunction(receiver, func.result, completeScope, params, el);
+ } else {
+ promise.then((result) => {
+ runIfTypeOfFunction(receiver, result, completeScope, params, el);
+ }).catch((error2) => handleError(error2, el, expression));
+ }
}
};
}
-function runIfTypeOfFunction(receiver, value, scope, params) {
+function runIfTypeOfFunction(receiver, value, scope, params, el) {
if (typeof value === "function") {
let result = value.apply(scope, params);
if (result instanceof Promise) {
- result.then((i) => runIfTypeOfFunction(receiver, i, scope, params));
+ result.then((i) => runIfTypeOfFunction(receiver, i, scope, params)).catch((error2) => handleError(error2, el, value));
} else {
receiver(result);
}
@@ -1709,18 +1737,6 @@ function runIfTypeOfFunction(receiver, value, scope, params) {
receiver(value);
}
}
-function tryCatch(el, expression, callback, ...args) {
- try {
- return callback(...args);
- } catch (e) {
- console.warn(`Alpine Expression Error: ${e.message}
-
-Expression: "${expression}"
-
-`, el);
- throw e;
- }
-}
// packages/alpinejs/src/directives.js
var prefixAsString = "x-";
@@ -2176,7 +2192,11 @@ window.Element.prototype._x_toggleAndCascadeWithTransitions = function(el, value
document.visibilityState === "visible" ? requestAnimationFrame(show) : setTimeout(show);
};
if (value) {
- el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow();
+ if (el._x_transition && (el._x_transition.enter || el._x_transition.leave)) {
+ el._x_transition.enter && (Object.entries(el._x_transition.enter.during).length || Object.entries(el._x_transition.enter.start).length || Object.entries(el._x_transition.enter.end).length) ? el._x_transition.in(show) : clickAwayCompatibleShow();
+ } else {
+ el._x_transition ? el._x_transition.in(show) : clickAwayCompatibleShow();
+ }
return;
}
el._x_hidePromise = el._x_transition ? new Promise((resolve, reject) => {
@@ -2374,6 +2394,7 @@ function store(name, value) {
if (typeof value === "object" && value !== null && value.hasOwnProperty("init") && typeof value.init === "function") {
stores[name].init();
}
+ initInterceptors(stores[name]);
}
function getStores() {
return stores;
@@ -2381,8 +2402,9 @@ function getStores() {
// packages/alpinejs/src/clone.js
var isCloning = false;
-function skipDuringClone(callback) {
- return (...args) => isCloning || callback(...args);
+function skipDuringClone(callback, fallback = () => {
+}) {
+ return (...args) => isCloning ? fallback(...args) : callback(...args);
}
function clone(oldEl, newEl) {
newEl._x_dataStack = oldEl._x_dataStack;
@@ -2449,16 +2471,18 @@ var Alpine = {
get raw() {
return raw;
},
- version: "3.4.2",
+ version: "3.5.1",
flushAndStopDeferringMutations,
disableEffectScheduling,
stopObservingMutations,
setReactivityEngine,
+ skipDuringClone,
addRootSelector,
deferMutations,
mapAttributes,
evaluateLater,
setEvaluator,
+ mergeProxies,
destroyTree,
closestRoot,
interceptor,
@@ -2515,6 +2539,11 @@ magic("watch", (el) => (key, callback) => {
// packages/alpinejs/src/magics/$store.js
magic("store", getStores);
+// packages/alpinejs/src/magics/$data.js
+magic("data", (el) => {
+ return mergeProxies(closestDataStack(el));
+});
+
// packages/alpinejs/src/magics/$root.js
magic("root", (el) => closestRoot(el));
@@ -2713,6 +2742,8 @@ function on(el, event, modifiers, callback) {
return;
if (el.offsetWidth < 1 && el.offsetHeight < 1)
return;
+ if (el._x_isShown === false)
+ return;
next(e);
});
}
@@ -2828,6 +2859,18 @@ directive("model", (el, {modifiers, expression}, {effect: effect3, cleanup}) =>
}});
});
cleanup(() => removeListener());
+ let evaluateSetModel = evaluateLater(el, `${expression} = __placeholder`);
+ el._x_model = {
+ get() {
+ let result;
+ evaluate2((value) => result = value);
+ return result;
+ },
+ set(value) {
+ evaluateSetModel(() => {
+ }, {scope: {__placeholder: value}});
+ }
+ };
el._x_forceModelUpdate = () => {
evaluate2((value) => {
if (value === void 0 && expression.match(/\./))
@@ -2942,11 +2985,18 @@ function applyBindingsObject(el, expression, original, effect3) {
cleanupRunners.pop()();
getBindings((bindings) => {
let attributes = Object.entries(bindings).map(([name, value]) => ({name, value}));
- attributesOnly(attributes).forEach(({name, value}, index) => {
- attributes[index] = {
- name: `x-bind:${name}`,
- value: `"${value}"`
- };
+ attributes = attributes.filter((attr) => {
+ return !(typeof attr.value === "object" && !Array.isArray(attr.value) && attr.value !== null);
+ });
+ let staticAttributes = attributesOnly(attributes);
+ attributes = attributes.map((attribute) => {
+ if (staticAttributes.find((attr) => attr.name === attribute.name)) {
+ return {
+ name: `x-bind:${attribute.name}`,
+ value: `"${attribute.value}"`
+ };
+ }
+ return attribute;
});
directives(el, attributes, original).map((handle) => {
cleanupRunners.push(handle.runCleanups);
@@ -2968,6 +3018,8 @@ directive("data", skipDuringClone((el, {expression}, {cleanup}) => {
let dataProviderContext = {};
injectDataProviders(dataProviderContext, magicContext);
let data2 = evaluate(el, expression, {scope: dataProviderContext});
+ if (data2 === void 0)
+ data2 = {};
let cleanup2 = injectMagics(data2, el).cleanup;
let reactiveData = reactive(data2);
initInterceptors(reactiveData);