var __defProp = Object.defineProperty; var __markAsModule = (target) => __defProp(target, "__esModule", {value: true}); var __export = (target, all) => { for (var name in all) __defProp(target, name, {get: all[name], enumerable: true}); }; // packages/history/builds/module.js __markAsModule(exports); __export(exports, { default: () => module_default }); // packages/history/src/index.js function history(Alpine) { Alpine.magic("queryString", (el, {interceptor}) => { let alias; return interceptor((initialValue, getter, setter, path, key) => { let pause = false; let queryKey = alias || path; let value = initialValue; let url = new URL(window.location.href); if (url.searchParams.has(queryKey)) { value = url.searchParams.get(queryKey); } setter(value); let object = {value}; url.searchParams.set(queryKey, value); replace(url.toString(), path, object); window.addEventListener("popstate", (e) => { if (!e.state) return; if (!e.state.alpine) return; Object.entries(e.state.alpine).forEach(([newKey, {value: value2}]) => { if (newKey !== key) return; pause = true; Alpine.disableEffectScheduling(() => { setter(value2); }); pause = false; }); }); Alpine.effect(() => { let value2 = getter(); if (pause) return; let object2 = {value: value2}; let url2 = new URL(window.location.href); url2.searchParams.set(queryKey, value2); push(url2.toString(), path, object2); }); return value; }, (func) => { func.as = (key) => { alias = key; return func; }; }); }); } function replace(url, key, object) { let state = window.history.state || {}; if (!state.alpine) state.alpine = {}; state.alpine[key] = object; window.history.replaceState(state, "", url); } function push(url, key, object) { let state = {alpine: {...window.history.state.alpine, ...{[key]: object}}}; window.history.pushState(state, "", url); } // packages/history/builds/module.js var module_default = history;