diff --git a/adit_radis_shared/common/static/vendor/alpine-morph.js b/adit_radis_shared/common/static/vendor/alpine-morph.js index 02f9628..3b67e62 100644 --- a/adit_radis_shared/common/static/vendor/alpine-morph.js +++ b/adit_radis_shared/common/static/vendor/alpine-morph.js @@ -27,6 +27,9 @@ return; if (from2.nodeType === 1 && window.Alpine) { window.Alpine.cloneNode(from2, to); + if (from2._x_teleport && to._x_teleport) { + patch(from2._x_teleport, to._x_teleport); + } } if (textOrComment(to)) { patchNodeValue(from2, to); @@ -84,10 +87,6 @@ } } function patchChildren(from2, to) { - if (from2._x_teleport) - from2 = from2._x_teleport; - if (to._x_teleport) - to = to._x_teleport; let fromKeys = keyToMap(from2.children); let fromKeyHoldovers = {}; let currentTo = getFirstNode(to); diff --git a/adit_radis_shared/common/static/vendor/alpine.js b/adit_radis_shared/common/static/vendor/alpine.js index 2acd39f..beaa7b3 100644 --- a/adit_radis_shared/common/static/vendor/alpine.js +++ b/adit_radis_shared/common/static/vendor/alpine.js @@ -1109,7 +1109,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); let carry = Promise.all([ el2._x_hidePromise, ...(el2._x_hideChildren || []).map(hideAfterChildren) - ]).then(([i]) => i()); + ]).then(([i]) => i?.()); delete el2._x_hidePromise; delete el2._x_hideChildren; return carry; @@ -1642,7 +1642,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); get raw() { return raw; }, - version: "3.13.9", + version: "3.14.0", flushAndStopDeferringMutations, dontAutoEvaluateFunctions, disableEffectScheduling, @@ -2581,8 +2581,10 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); }; mutateDom(() => { placeInDom(clone2, target, modifiers); - initTree(clone2); - clone2._x_ignore = true; + skipDuringClone(() => { + initTree(clone2); + clone2._x_ignore = true; + })(); }); el._x_teleportPutBack = () => { let target2 = getTarget(expression); @@ -2682,14 +2684,14 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); handler4 = wrapHandler(handler4, (next, e) => { e.target === el && next(e); }); - handler4 = wrapHandler(handler4, (next, e) => { - if (isKeyEvent(event)) { + if (isKeyEvent(event) || isClickEvent(event)) { + handler4 = wrapHandler(handler4, (next, e) => { if (isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers)) { return; } - } - next(e); - }); + next(e); + }); + } listenerTarget.addEventListener(event, handler4, options); return () => { listenerTarget.removeEventListener(event, handler4, options); @@ -2714,9 +2716,12 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); function isKeyEvent(event) { return ["keydown", "keyup"].includes(event); } + function isClickEvent(event) { + return ["contextmenu", "click", "mouse"].some((i) => event.includes(i)); + } function isListeningForASpecificKeyThatHasntBeenPressed(e, modifiers) { let keyModifiers = modifiers.filter((i) => { - return !["window", "document", "prevent", "stop", "once", "capture"].includes(i); + return !["window", "document", "prevent", "stop", "once", "capture", "self", "away", "outside", "passive"].includes(i); }); if (keyModifiers.includes("debounce")) { let debounceIndex = keyModifiers.indexOf("debounce"); @@ -2740,6 +2745,8 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); return e[`${modifier}Key`]; }); if (activelyPressedKeyModifiers.length === selectedSystemKeyModifiers.length) { + if (isClickEvent(e.type)) + return false; if (keyToModifiers(e.key).includes(keyModifiers[0])) return false; } @@ -2762,6 +2769,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); "left": "arrow-left", "right": "arrow-right", "period": ".", + "comma": ",", "equal": "=", "minus": "-", "underscore": "_" @@ -2818,7 +2826,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); setValue(getInputValue(el, modifiers, e, getValue())); }); if (modifiers.includes("fill")) { - if ([void 0, null, ""].includes(getValue()) || el.type === "checkbox" && Array.isArray(getValue())) { + if ([void 0, null, ""].includes(getValue()) || el.type === "checkbox" && Array.isArray(getValue()) || el.tagName.toLowerCase() === "select" && el.multiple) { setValue( getInputValue(el, modifiers, { target: el }, getValue()) ); @@ -2830,7 +2838,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); cleanup2(() => el._x_removeModelListeners["default"]()); if (el.form) { let removeResetListener = on(el.form, "reset", [], (e) => { - nextTick(() => el._x_model && el._x_model.set(el.value)); + nextTick(() => el._x_model && el._x_model.set(getInputValue(el, modifiers, { target: el }, getValue()))); }); cleanup2(() => removeResetListener()); } @@ -2870,7 +2878,7 @@ ${expression ? 'Expression: "' + expression + '"\n\n' : ""}`, el); } else { newValue = event.target.value; } - return event.target.checked ? currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue)); + return event.target.checked ? currentValue.includes(newValue) ? currentValue : currentValue.concat([newValue]) : currentValue.filter((el2) => !checkedAttrLooseCompare2(el2, newValue)); } else { return event.target.checked; } diff --git a/package-lock.json b/package-lock.json index 9d845a4..d5f3c42 100644 --- a/package-lock.json +++ b/package-lock.json @@ -5,9 +5,9 @@ "packages": { "": { "dependencies": { - "@alpinejs/morph": "^3.13.0", + "@alpinejs/morph": "^3.14.0", "@popperjs/core": "^2.11.8", - "alpinejs": "^3.13.0", + "alpinejs": "^3.14.0", "bootstrap": "^5.3.2", "bootstrap-icons": "^1.11.1", "bootswatch": "^5.3.2", @@ -15,9 +15,9 @@ } }, "node_modules/@alpinejs/morph": { - "version": "3.13.9", - "resolved": "https://registry.npmjs.org/@alpinejs/morph/-/morph-3.13.9.tgz", - "integrity": "sha512-l9qhz97NVjpM39AAxMg3IWgxksLaqjb4+k0gbv8xlx3Nvd56wAoG4F0XQTod5e2sx1qqta9RRxV0Fc8KUnN1sg==" + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/@alpinejs/morph/-/morph-3.14.0.tgz", + "integrity": "sha512-PS2H6UXwS/pOOIh9GMtdkaga3kOjawNIy9B9AnJakngnIHajy8ERLyuxQ1h+oTfHHtx6RlyWSZlfT2jGI/7Ouw==" }, "node_modules/@popperjs/core": { "version": "2.11.8", @@ -42,9 +42,9 @@ "integrity": "sha512-oJ4F3TnvpXaQwZJNF3ZK+kLPHKarDmJjJ6jyzVNDKH9md1dptjC7lWR//jrGuLdek/U6iltWxqAnYOu8gCiOvA==" }, "node_modules/alpinejs": { - "version": "3.13.9", - "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.13.9.tgz", - "integrity": "sha512-BTEJ3fcUpqKlB+aFYSWGVEp8IP3vA96x7wUaNSdb5SJxV5i7s+/Bduxy9D6TokcqpW5MygsnG1eBEFfr4AnQSw==", + "version": "3.14.0", + "resolved": "https://registry.npmjs.org/alpinejs/-/alpinejs-3.14.0.tgz", + "integrity": "sha512-YCWF95PMJqePe9ll6KMyDt/nLhh2R7RhqBf4loEmLzIskcHque4Br/9UgAa6cw13H0Cm3FM9e1hzDwP5z5wlDA==", "dependencies": { "@vue/reactivity": "~3.1.1" } diff --git a/package.json b/package.json index 4a33eb5..699546f 100644 --- a/package.json +++ b/package.json @@ -1,8 +1,8 @@ { "dependencies": { - "@alpinejs/morph": "^3.13.0", + "@alpinejs/morph": "^3.14.0", "@popperjs/core": "^2.11.8", - "alpinejs": "^3.13.0", + "alpinejs": "^3.14.0", "bootstrap": "^5.3.2", "bootstrap-icons": "^1.11.1", "bootswatch": "^5.3.2",