@qwik.dev/core 2.0.0-alpha.0 → 2.0.0-alpha.10

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (105) hide show
  1. package/bindings/qwik.darwin-arm64.node +0 -0
  2. package/bindings/qwik.darwin-x64.node +0 -0
  3. package/bindings/qwik.linux-x64-gnu.node +0 -0
  4. package/bindings/qwik.wasm.cjs +259 -272
  5. package/bindings/qwik.wasm.mjs +259 -272
  6. package/bindings/qwik.win32-x64-msvc.node +0 -0
  7. package/bindings/qwik_wasm_bg.wasm +0 -0
  8. package/dist/build/index.cjs +3 -3
  9. package/dist/build/index.d.ts +22 -22
  10. package/dist/build/package.json +1 -1
  11. package/dist/cli.cjs +1453 -798
  12. package/dist/core-internal.d.ts +4368 -3895
  13. package/dist/core.cjs +6792 -6121
  14. package/dist/core.cjs.map +1 -1
  15. package/dist/core.min.mjs +1 -1
  16. package/dist/core.mjs +6765 -6117
  17. package/dist/core.mjs.map +1 -1
  18. package/dist/core.prod.cjs +3571 -3206
  19. package/dist/core.prod.mjs +3919 -3586
  20. package/dist/insights/index.qwik.cjs +1 -751
  21. package/dist/insights/index.qwik.mjs +62 -741
  22. package/dist/insights/vite/index.cjs +1 -82
  23. package/dist/insights/vite/index.mjs +65 -37
  24. package/dist/insights/vite.d.ts +22 -0
  25. package/dist/{insights/insights.d.ts → insights.d.ts} +33 -22
  26. package/dist/loader/index.cjs +2 -2
  27. package/dist/loader/index.mjs +2 -2
  28. package/dist/loader/package.json +1 -1
  29. package/dist/optimizer.cjs +693 -5851
  30. package/dist/optimizer.d.ts +741 -707
  31. package/dist/optimizer.mjs +679 -6276
  32. package/dist/preloader.cjs +243 -0
  33. package/dist/preloader.mjs +183 -0
  34. package/dist/qwikloader.debug.js +211 -220
  35. package/dist/qwikloader.js +1 -3
  36. package/dist/server.cjs +1371 -7273
  37. package/dist/server.d.ts +467 -402
  38. package/dist/server.mjs +1339 -7224
  39. package/dist/starters/adapters/aws-lambda/serverless.yml +15 -0
  40. package/dist/starters/adapters/aws-lambda/src/entry_aws-lambda.tsx +0 -2
  41. package/dist/starters/adapters/azure-swa/public/staticwebapp.config.json +7 -0
  42. package/dist/starters/adapters/azure-swa/src/entry.azure-swa.tsx +1 -2
  43. package/dist/starters/adapters/bun/src/entry.bun.ts +3 -2
  44. package/dist/starters/adapters/cloud-run/src/entry.cloud-run.tsx +1 -3
  45. package/dist/starters/adapters/cloudflare-pages/public/_headers +2 -0
  46. package/dist/starters/adapters/cloudflare-pages/src/entry.cloudflare-pages.tsx +1 -2
  47. package/dist/starters/adapters/deno/src/entry.deno.ts +3 -2
  48. package/dist/starters/adapters/express/src/entry.express.tsx +5 -2
  49. package/dist/starters/adapters/fastify/src/entry.fastify.tsx +2 -1
  50. package/dist/starters/adapters/fastify/src/plugins/fastify-qwik.ts +11 -1
  51. package/dist/starters/adapters/firebase/firebase.json +12 -1
  52. package/dist/starters/adapters/firebase/functions/index.js +2 -3
  53. package/dist/starters/adapters/firebase/src/entry-firebase.tsx +1 -2
  54. package/dist/starters/adapters/netlify-edge/public/_headers +2 -0
  55. package/dist/starters/adapters/netlify-edge/src/entry.netlify-edge.tsx +1 -2
  56. package/dist/starters/adapters/node-server/src/entry.node-server.tsx +3 -2
  57. package/dist/starters/adapters/static/README.md +4 -0
  58. package/dist/starters/adapters/vercel-edge/src/entry.vercel-edge.tsx +1 -2
  59. package/dist/starters/adapters/vercel-edge/vercel.json +1 -1
  60. package/dist/starters/features/auth/package.json +3 -1
  61. package/dist/starters/features/bootstrap/src/routes/bootstrap/layout.tsx +0 -11
  62. package/dist/starters/features/cypress/package.json +1 -1
  63. package/dist/starters/features/drizzle/drizzle/schema.ts +6 -18
  64. package/dist/starters/features/drizzle/drizzle.config.ts +5 -4
  65. package/dist/starters/features/drizzle/package.json +16 -12
  66. package/dist/starters/features/localize/src/entry.ssr.tsx +0 -2
  67. package/dist/starters/features/localize/src/routes/[locale]/i18n-utils.ts +1 -1
  68. package/dist/starters/features/pandacss/package.json +1 -1
  69. package/dist/starters/features/partytown/package.json +1 -1
  70. package/dist/starters/features/postcss/package.json +4 -1
  71. package/dist/starters/features/postcss/postcss.config.js +1 -1
  72. package/dist/starters/features/prisma/package.json +3 -2
  73. package/dist/starters/features/react/package.json +1 -1
  74. package/dist/starters/features/service-worker/package.json +13 -0
  75. package/dist/starters/features/service-worker/src/routes/service-worker.ts +14 -0
  76. package/dist/starters/features/storybook/package.json +1 -1
  77. package/dist/starters/features/styled-vanilla-extract/package.json +4 -2
  78. package/dist/starters/features/tailwind/package.json +19 -9
  79. package/dist/starters/features/tailwind/src/global.css +1 -7
  80. package/dist/starters/features/tailwind-v3/package.json +21 -0
  81. package/dist/starters/features/{tailwind → tailwind-v3}/postcss.config.cjs +1 -1
  82. package/dist/starters/features/tailwind-v3/src/global.css +7 -0
  83. package/dist/starters/features/{tailwind → tailwind-v3}/tailwind.config.js +1 -1
  84. package/dist/starters/features/turso/package.json +5 -2
  85. package/dist/starters/features/turso/src/utils/turso.ts +1 -1
  86. package/dist/starters/features/vitest/package.json +1 -1
  87. package/dist/testing/index.cjs +7568 -6858
  88. package/dist/testing/index.d.ts +141 -140
  89. package/dist/testing/index.mjs +7501 -6790
  90. package/dist/testing/package.json +1 -1
  91. package/handlers.mjs +9 -0
  92. package/package.json +32 -20
  93. package/public.d.ts +15 -0
  94. package/server.d.ts +1 -0
  95. package/dist/index.d.ts +0 -2
  96. package/dist/insights/index.d.ts +0 -1
  97. package/dist/insights/vite/index.d.ts +0 -1
  98. package/dist/insights/vite/insights-plugin.d.ts +0 -10
  99. package/dist/prefetch/index.cjs +0 -4
  100. package/dist/prefetch/index.d.ts +0 -2
  101. package/dist/prefetch/index.mjs +0 -3
  102. package/dist/prefetch/package.json +0 -8
  103. package/dist/qwik-prefetch.debug.js +0 -244
  104. package/dist/qwik-prefetch.js +0 -1
  105. /package/dist/starters/features/{tailwind → tailwind-v3}/.vscode/settings.json +0 -0
@@ -1,228 +1,219 @@
1
1
  (() => {
2
- var __defProp = Object.defineProperty;
3
- var __getOwnPropSymbols = Object.getOwnPropertySymbols;
4
- var __hasOwnProp = Object.prototype.hasOwnProperty;
5
- var __propIsEnum = Object.prototype.propertyIsEnumerable;
6
- var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, {
7
- enumerable: !0,
8
- configurable: !0,
9
- writable: !0,
10
- value: value
11
- }) : obj[key] = value;
12
- var __spreadValues = (a, b) => {
13
- for (var prop in b || (b = {})) {
14
- __hasOwnProp.call(b, prop) && __defNormalProp(a, prop, b[prop]);
2
+ const doc = document;
3
+ const win = window;
4
+ const events = /* @__PURE__ */ new Set();
5
+ const roots = /* @__PURE__ */ new Set([doc]);
6
+ let hasInitialized;
7
+ const nativeQuerySelectorAll = (root, selector) => Array.from(root.querySelectorAll(selector));
8
+ const querySelectorAll = (query) => {
9
+ const elements = [];
10
+ roots.forEach((root) => elements.push(...nativeQuerySelectorAll(root, query)));
11
+ return elements;
12
+ };
13
+ const findShadowRoots = (fragment) => {
14
+ processEventOrNode(fragment);
15
+ nativeQuerySelectorAll(fragment, "[q\\:shadowroot]").forEach((parent) => {
16
+ const shadowRoot = parent.shadowRoot;
17
+ shadowRoot && findShadowRoots(shadowRoot);
18
+ });
19
+ };
20
+ const isPromise = (promise) => promise && typeof promise.then === "function";
21
+ const broadcast = (infix, ev, type = ev.type) => {
22
+ querySelectorAll("[on" + infix + "\\:" + type + "]").forEach(
23
+ (el) => dispatch(el, infix, ev, type)
24
+ );
25
+ };
26
+ const resolveContainer = (containerEl) => {
27
+ if (containerEl._qwikjson_ === void 0) {
28
+ const parentJSON = containerEl === doc.documentElement ? doc.body : containerEl;
29
+ let script = parentJSON.lastElementChild;
30
+ while (script) {
31
+ if (script.tagName === "SCRIPT" && script.getAttribute("type") === "qwik/json") {
32
+ containerEl._qwikjson_ = JSON.parse(
33
+ script.textContent.replace(/\\x3C(\/?script)/gi, "<$1")
34
+ );
35
+ break;
15
36
  }
16
- if (__getOwnPropSymbols) {
17
- for (var prop of __getOwnPropSymbols(b)) {
18
- __propIsEnum.call(b, prop) && __defNormalProp(a, prop, b[prop]);
19
- }
37
+ script = script.previousElementSibling;
38
+ }
39
+ }
40
+ };
41
+ const createEvent = (eventName, detail) => new CustomEvent(eventName, {
42
+ detail
43
+ });
44
+ const dispatch = async (element, scope, ev, eventName = ev.type) => {
45
+ const attrName = "on" + scope + ":" + eventName;
46
+ if (element.hasAttribute("preventdefault:" + eventName)) {
47
+ ev.preventDefault();
48
+ }
49
+ if (element.hasAttribute("stoppropagation:" + eventName)) {
50
+ ev.stopPropagation();
51
+ }
52
+ const ctx = element._qc_;
53
+ const relevantListeners = ctx && ctx.li.filter((li) => li[0] === attrName);
54
+ if (relevantListeners && relevantListeners.length > 0) {
55
+ for (const listener of relevantListeners) {
56
+ const results = listener[1].getFn([element, ev], () => element.isConnected)(ev, element);
57
+ const cancelBubble = ev.cancelBubble;
58
+ if (isPromise(results)) {
59
+ await results;
20
60
  }
21
- return a;
22
- };
23
- ((doc, hasInitialized) => {
24
- const Q_CONTEXT = "__q_context__";
25
- const win = window;
26
- const events = new Set;
27
- const roots = new Set([ doc ]);
28
- const nativeQuerySelectorAll = (root, selector) => Array.from(root.querySelectorAll(selector));
29
- const querySelectorAll = query => {
30
- const elements = [];
31
- roots.forEach((root => elements.push(...nativeQuerySelectorAll(root, query))));
32
- return elements;
33
- };
34
- const findShadowRoots = fragment => {
35
- processEventOrNode(fragment);
36
- nativeQuerySelectorAll(fragment, "[q\\:shadowroot]").forEach((parent => {
37
- const shadowRoot = parent.shadowRoot;
38
- shadowRoot && findShadowRoots(shadowRoot);
39
- }));
40
- };
41
- const isPromise = promise => promise && "function" == typeof promise.then;
42
- const broadcast = (infix, ev, type = ev.type) => {
43
- querySelectorAll("[on" + infix + "\\:" + type + "]").forEach((el => dispatch(el, infix, ev, type)));
44
- };
45
- const resolveContainer = containerEl => {
46
- if (void 0 === containerEl._qwikjson_) {
47
- let script = (containerEl === doc.documentElement ? doc.body : containerEl).lastElementChild;
48
- while (script) {
49
- if ("SCRIPT" === script.tagName && "qwik/json" === script.getAttribute("type")) {
50
- containerEl._qwikjson_ = JSON.parse(script.textContent.replace(/\\x3C(\/?script)/gi, "<$1"));
51
- break;
52
- }
53
- script = script.previousElementSibling;
54
- }
55
- }
56
- };
57
- const createEvent = (eventName, detail) => new CustomEvent(eventName, {
58
- detail: detail
59
- });
60
- const dispatch = async (element, scope, ev, eventName = ev.type) => {
61
- const attrName = "on" + scope + ":" + eventName;
62
- element.hasAttribute("preventdefault:" + eventName) && ev.preventDefault();
63
- const ctx = element._qc_;
64
- const relevantListeners = ctx && ctx.li.filter((li => li[0] === attrName));
65
- if (relevantListeners && relevantListeners.length > 0) {
66
- for (const listener of relevantListeners) {
67
- const results = listener[1].getFn([ element, ev ], (() => element.isConnected))(ev, element);
68
- const cancelBubble = ev.cancelBubble;
69
- isPromise(results) && await results;
70
- cancelBubble && ev.stopPropagation();
71
- }
72
- return;
73
- }
74
- const qDispatchEvent = element.qDispatchEvent;
75
- if (qDispatchEvent) {
76
- return qDispatchEvent(ev, scope);
77
- }
78
- const attrValue = element.getAttribute(attrName);
79
- if (attrValue) {
80
- const container = element.closest("[q\\:container]:not([q\\:container=html]):not([q\\:container=text])");
81
- const qBase = container.getAttribute("q:base");
82
- const qVersion = container.getAttribute("q:version") || "unknown";
83
- const qManifest = container.getAttribute("q:manifest-hash") || "dev";
84
- const base = new URL(qBase, doc.baseURI);
85
- for (const qrl of attrValue.split("\n")) {
86
- const url = new URL(qrl, base);
87
- const href = url.href;
88
- const symbol = url.hash.replace(/^#?([^?[|]*).*$/, "$1") || "default";
89
- const reqTime = performance.now();
90
- let handler;
91
- let importError;
92
- let error;
93
- const isSync = qrl.startsWith("#");
94
- const eventData = {
95
- qBase: qBase,
96
- qManifest: qManifest,
97
- qVersion: qVersion,
98
- href: href,
99
- symbol: symbol,
100
- element: element,
101
- reqTime: reqTime
102
- };
103
- if (isSync) {
104
- const hash = container.getAttribute("q:instance");
105
- handler = (doc["qFuncs_" + hash] || [])[Number.parseInt(symbol)];
106
- if (!handler) {
107
- importError = "sync";
108
- error = new Error("sync handler error for symbol: " + symbol);
109
- }
110
- } else {
111
- const uri = url.href.split("#")[0];
112
- try {
113
- const module = import(
114
- /* @vite-ignore */
115
- uri);
116
- resolveContainer(container);
117
- handler = (await module)[symbol];
118
- if (!handler) {
119
- importError = "no-symbol";
120
- error = new Error(`${symbol} not in ${uri}`);
121
- }
122
- } catch (err) {
123
- importError || (importError = "async");
124
- error = err;
125
- }
126
- }
127
- if (!handler) {
128
- emitEvent("qerror", __spreadValues({
129
- importError: importError,
130
- error: error
131
- }, eventData));
132
- console.error(error);
133
- break;
134
- }
135
- const previousCtx = doc[Q_CONTEXT];
136
- if (element.isConnected) {
137
- const handleEvent = async (retryCount = 0) => {
138
- try {
139
- doc[Q_CONTEXT] = [ element, ev, url ];
140
- isSync || emitEvent("qsymbol", __spreadValues({}, eventData));
141
- const results = handler(ev, element);
142
- isPromise(results) && await results;
143
- } catch (error2) {
144
- isPromise(error2) && retryCount < 100 ? error2.then((() => handleEvent(retryCount++))) : emitEvent("qerror", __spreadValues({
145
- error: error2
146
- }, eventData));
147
- } finally {
148
- doc[Q_CONTEXT] = previousCtx;
149
- }
150
- };
151
- handleEvent();
152
- }
153
- }
61
+ if (cancelBubble) {
62
+ ev.stopPropagation();
63
+ }
64
+ }
65
+ return;
66
+ }
67
+ const attrValue = element.getAttribute(attrName);
68
+ const qDispatchEvent = element.qDispatchEvent;
69
+ if (qDispatchEvent) {
70
+ return qDispatchEvent(ev, scope);
71
+ }
72
+ if (attrValue) {
73
+ const container = element.closest(
74
+ "[q\\:container]:not([q\\:container=html]):not([q\\:container=text])"
75
+ );
76
+ const qBase = container.getAttribute("q:base");
77
+ const qVersion = container.getAttribute("q:version") || "unknown";
78
+ const qManifest = container.getAttribute("q:manifest-hash") || "dev";
79
+ const base = new URL(qBase, doc.baseURI);
80
+ for (const qrl of attrValue.split("\n")) {
81
+ const url = new URL(qrl, base);
82
+ const href = url.href;
83
+ const symbol = url.hash.replace(/^#?([^?[|]*).*$/, "$1") || "default";
84
+ const reqTime = performance.now();
85
+ let handler;
86
+ let importError;
87
+ let error;
88
+ const isSync = qrl.startsWith("#");
89
+ const eventData = { qBase, qManifest, qVersion, href, symbol, element, reqTime };
90
+ if (isSync) {
91
+ const hash = container.getAttribute("q:instance");
92
+ handler = (doc["qFuncs_" + hash] || [])[Number.parseInt(symbol)];
93
+ if (!handler) {
94
+ importError = "sync";
95
+ error = new Error("sym:" + symbol);
96
+ }
97
+ } else {
98
+ const uri = url.href.split("#")[0];
99
+ try {
100
+ const module = import(
101
+ /* @vite-ignore */
102
+ uri
103
+ );
104
+ resolveContainer(container);
105
+ handler = (await module)[symbol];
106
+ if (!handler) {
107
+ importError = "no-symbol";
108
+ error = new Error(`${symbol} not in ${uri}`);
154
109
  }
155
- };
156
- const emitEvent = (eventName, detail) => {
157
- doc.dispatchEvent(createEvent(eventName, detail));
158
- };
159
- const camelToKebab = str => str.replace(/([A-Z])/g, (a => "-" + a.toLowerCase()));
160
- const processDocumentEvent = async ev => {
161
- let type = camelToKebab(ev.type);
162
- let element = ev.target;
163
- broadcast("-document", ev, type);
164
- while (element && element.getAttribute) {
165
- const results = dispatch(element, "", ev, type);
166
- let cancelBubble = ev.cancelBubble;
167
- isPromise(results) && await results;
168
- cancelBubble = cancelBubble || ev.cancelBubble || element.hasAttribute("stoppropagation:" + ev.type);
169
- element = ev.bubbles && !0 !== cancelBubble ? element.parentElement : null;
110
+ } catch (err) {
111
+ importError || (importError = "async");
112
+ error = err;
113
+ }
114
+ }
115
+ if (!handler) {
116
+ emitEvent("qerror", { importError, error, ...eventData });
117
+ console.error(error);
118
+ break;
119
+ }
120
+ const previousCtx = doc.__q_context__;
121
+ if (element.isConnected) {
122
+ try {
123
+ doc.__q_context__ = [element, ev, url];
124
+ isSync || emitEvent("qsymbol", { ...eventData });
125
+ const results = handler(ev, element);
126
+ if (isPromise(results)) {
127
+ await results;
170
128
  }
171
- };
172
- const processWindowEvent = ev => {
173
- broadcast("-window", ev, camelToKebab(ev.type));
174
- };
175
- const processReadyStateChange = () => {
176
- var _a;
177
- const readyState = doc.readyState;
178
- if (!hasInitialized && ("interactive" == readyState || "complete" == readyState)) {
179
- roots.forEach(findShadowRoots);
180
- hasInitialized = 1;
181
- emitEvent("qinit");
182
- (null != (_a = win.requestIdleCallback) ? _a : win.setTimeout).bind(win)((() => emitEvent("qidle")));
183
- if (events.has("qvisible")) {
184
- const results = querySelectorAll("[on\\:qvisible]");
185
- const observer = new IntersectionObserver((entries => {
186
- for (const entry of entries) {
187
- if (entry.isIntersecting) {
188
- observer.unobserve(entry.target);
189
- dispatch(entry.target, "", createEvent("qvisible", entry));
190
- }
191
- }
192
- }));
193
- results.forEach((el => observer.observe(el)));
194
- }
129
+ } catch (error2) {
130
+ emitEvent("qerror", { error: error2, ...eventData });
131
+ } finally {
132
+ doc.__q_context__ = previousCtx;
133
+ }
134
+ }
135
+ }
136
+ }
137
+ };
138
+ const emitEvent = (eventName, detail) => {
139
+ doc.dispatchEvent(createEvent(eventName, detail));
140
+ };
141
+ const camelToKebab = (str) => str.replace(/([A-Z])/g, (a) => "-" + a.toLowerCase());
142
+ const processDocumentEvent = async (ev) => {
143
+ let type = camelToKebab(ev.type);
144
+ let element = ev.target;
145
+ broadcast("-document", ev, type);
146
+ while (element && element.getAttribute) {
147
+ const results = dispatch(element, "", ev, type);
148
+ let cancelBubble = ev.cancelBubble;
149
+ if (isPromise(results)) {
150
+ await results;
151
+ }
152
+ cancelBubble = cancelBubble || ev.cancelBubble || element.hasAttribute("stoppropagation:" + ev.type);
153
+ element = ev.bubbles && cancelBubble !== true ? element.parentElement : null;
154
+ }
155
+ };
156
+ const processWindowEvent = (ev) => {
157
+ broadcast("-window", ev, camelToKebab(ev.type));
158
+ };
159
+ const processReadyStateChange = () => {
160
+ var _a;
161
+ const readyState = doc.readyState;
162
+ if (!hasInitialized && (readyState == "interactive" || readyState == "complete")) {
163
+ roots.forEach(findShadowRoots);
164
+ hasInitialized = 1;
165
+ emitEvent("qinit");
166
+ const riC = (_a = win.requestIdleCallback) != null ? _a : win.setTimeout;
167
+ riC.bind(win)(() => emitEvent("qidle"));
168
+ if (events.has("qvisible")) {
169
+ const results = querySelectorAll("[on\\:qvisible]");
170
+ const observer = new IntersectionObserver((entries) => {
171
+ for (const entry of entries) {
172
+ if (entry.isIntersecting) {
173
+ observer.unobserve(entry.target);
174
+ dispatch(entry.target, "", createEvent("qvisible", entry));
195
175
  }
196
- };
197
- const addEventListener = (el, eventName, handler, capture = !1) => el.addEventListener(eventName, handler, {
198
- capture: capture,
199
- passive: !1
176
+ }
200
177
  });
201
- const processEventOrNode = (...eventNames) => {
202
- for (const eventNameOrNode of eventNames) {
203
- if ("string" == typeof eventNameOrNode) {
204
- if (!events.has(eventNameOrNode)) {
205
- roots.forEach((root => addEventListener(root, eventNameOrNode, processDocumentEvent, !0)));
206
- addEventListener(win, eventNameOrNode, processWindowEvent, !0);
207
- events.add(eventNameOrNode);
208
- }
209
- } else if (!roots.has(eventNameOrNode)) {
210
- events.forEach((eventName => addEventListener(eventNameOrNode, eventName, processDocumentEvent, !0)));
211
- roots.add(eventNameOrNode);
212
- }
213
- }
214
- };
215
- if (!(Q_CONTEXT in doc)) {
216
- doc[Q_CONTEXT] = 0;
217
- const qwikevents = win.qwikevents;
218
- Array.isArray(qwikevents) && processEventOrNode(...qwikevents);
219
- win.qwikevents = {
220
- events: events,
221
- roots: roots,
222
- push: processEventOrNode
223
- };
224
- addEventListener(doc, "readystatechange", processReadyStateChange);
225
- processReadyStateChange();
178
+ results.forEach((el) => observer.observe(el));
179
+ }
180
+ }
181
+ };
182
+ const addEventListener = (el, eventName, handler, capture = false) => {
183
+ return el.addEventListener(eventName, handler, { capture, passive: false });
184
+ };
185
+ const processEventOrNode = (...eventNames) => {
186
+ for (const eventNameOrNode of eventNames) {
187
+ if (typeof eventNameOrNode === "string") {
188
+ if (!events.has(eventNameOrNode)) {
189
+ roots.forEach(
190
+ (root) => addEventListener(root, eventNameOrNode, processDocumentEvent, true)
191
+ );
192
+ addEventListener(win, eventNameOrNode, processWindowEvent, true);
193
+ events.add(eventNameOrNode);
194
+ }
195
+ } else {
196
+ if (!roots.has(eventNameOrNode)) {
197
+ events.forEach(
198
+ (eventName) => addEventListener(eventNameOrNode, eventName, processDocumentEvent, true)
199
+ );
200
+ roots.add(eventNameOrNode);
226
201
  }
227
- })(document);
228
- })();
202
+ }
203
+ }
204
+ };
205
+ if (!("__q_context__" in doc)) {
206
+ doc.__q_context__ = 0;
207
+ const qwikevents = win.qwikevents;
208
+ if (Array.isArray(qwikevents)) {
209
+ processEventOrNode(...qwikevents);
210
+ }
211
+ win.qwikevents = {
212
+ events,
213
+ roots,
214
+ push: processEventOrNode
215
+ };
216
+ addEventListener(doc, "readystatechange", processReadyStateChange);
217
+ processReadyStateChange();
218
+ }
219
+ })();
@@ -1,3 +1 @@
1
- (()=>{var e=Object.defineProperty,t=Object.getOwnPropertySymbols,n=Object.prototype.hasOwnProperty,r=Object.prototype.propertyIsEnumerable,o=(t,n,r)=>n in t?e(t,n,{enumerable:!0,configurable:!0,writable:!0,value:r}):t[n]=r,s=(e,s)=>{for(var a in s||(s={}))n.call(s,a)&&o(e,a,s[a]);if(t)for(var a of t(s))r.call(s,a)&&o(e,a,s[a]);return e};((e,t)=>{const n="__q_context__",r=window,o=new Set,a=new Set([e]),c="replace",i="forEach",l="target",f="getAttribute",p="isConnected",b="qvisible",u="_qwikjson_",h=(e,t)=>Array.from(e.querySelectorAll(t)),y=e=>{const t=[];return a.forEach((n=>t.push(...h(n,e)))),t},d=e=>{S(e),h(e,"[q\\:shadowroot]").forEach((e=>{const t=e.shadowRoot;t&&d(t)}))},q=e=>e&&"function"==typeof e.then,m=(e,t,n=t.type)=>{y("[on"+e+"\\:"+n+"]")[i]((r=>E(r,e,t,n)))},w=t=>{if(void 0===t[u]){let n=(t===e.documentElement?e.body:t).lastElementChild;for(;n;){if("SCRIPT"===n.tagName&&"qwik/json"===n[f]("type")){t[u]=JSON.parse(n.textContent[c](/\\x3C(\/?script)/gi,"<$1"));break}n=n.previousElementSibling}}},v=(e,t)=>new CustomEvent(e,{detail:t}),E=async(t,r,o,a=o.type)=>{const i="on"+r+":"+a;t.hasAttribute("preventdefault:"+a)&&o.preventDefault();const l=t._qc_,b=l&&l.li.filter((e=>e[0]===i));if(b&&b.length>0){for(const e of b){const n=e[1].getFn([t,o],(()=>t[p]))(o,t),r=o.cancelBubble;q(n)&&await n,r&&o.stopPropagation()}return}const u=t.qDispatchEvent;if(u)return u(o,r);const h=t[f](i);if(h){const r=t.closest("[q\\:container]:not([q\\:container=html]):not([q\\:container=text])"),a=r[f]("q:base"),i=r[f]("q:version")||"unknown",l=r[f]("q:manifest-hash")||"dev",b=new URL(a,e.baseURI);for(const f of h.split("\n")){const u=new URL(f,b),h=u.href,y=u.hash[c](/^#?([^?[|]*).*$/,"$1")||"default",d=performance.now();let m,v,E;const _=f.startsWith("#"),A={qBase:a,qManifest:l,qVersion:i,href:h,symbol:y,element:t,reqTime:d};if(_){const t=r.getAttribute("q:instance");m=(e["qFuncs_"+t]||[])[Number.parseInt(y)],m||(v="sync",E=Error("sync handler error for symbol: "+y))}else{const e=u.href.split("#")[0];try{const t=import(
2
- /* @vite-ignore */
3
- e);w(r),m=(await t)[y],m||(v="no-symbol",E=Error(`${y} not in ${e}`))}catch(e){v||(v="async"),E=e}}if(!m){g("qerror",s({importError:v,error:E},A)),console.error(E);break}const k=e[n];if(t[p]){const r=async(a=0)=>{try{e[n]=[t,o,u],_||g("qsymbol",s({},A));const r=m(o,t);q(r)&&await r}catch(e){q(e)&&a<100?e.then((()=>r(a++))):g("qerror",s({error:e},A))}finally{e[n]=k}};r()}}}},g=(t,n)=>{e.dispatchEvent(v(t,n))},_=e=>e[c](/([A-Z])/g,(e=>"-"+e.toLowerCase())),A=async e=>{let t=_(e.type),n=e[l];for(m("-document",e,t);n&&n[f];){const r=E(n,"",e,t);let o=e.cancelBubble;q(r)&&await r,o=o||e.cancelBubble||n.hasAttribute("stoppropagation:"+e.type),n=e.bubbles&&!0!==o?n.parentElement:null}},k=e=>{m("-window",e,_(e.type))},C=()=>{var n;const s=e.readyState;if(!t&&("interactive"==s||"complete"==s)&&(a.forEach(d),t=1,g("qinit"),(null!=(n=r.requestIdleCallback)?n:r.setTimeout).bind(r)((()=>g("qidle"))),o.has(b))){const e=y("[on\\:"+b+"]"),t=new IntersectionObserver((e=>{for(const n of e)n.isIntersecting&&(t.unobserve(n[l]),E(n[l],"",v(b,n)))}));e[i]((e=>t.observe(e)))}},O=(e,t,n,r=!1)=>e.addEventListener(t,n,{capture:r,passive:!1}),S=(...e)=>{for(const t of e)"string"==typeof t?o.has(t)||(a.forEach((e=>O(e,t,A,!0))),O(r,t,k,!0),o.add(t)):a.has(t)||(o.forEach((e=>O(t,e,A,!0))),a.add(t))};if(!(n in e)){e[n]=0;const t=r.qwikevents;Array.isArray(t)&&S(...t),r.qwikevents={events:o,roots:a,push:S},O(e,"readystatechange",C),C()}})(document)})();
1
+ (()=>{const t=document,e=window,n=new Set,o=new Set([t]);let r;const s=(t,e)=>Array.from(t.querySelectorAll(e)),a=t=>{const e=[];return o.forEach((n=>e.push(...s(n,t)))),e},i=t=>{m(t),s(t,"[q\\:shadowroot]").forEach((t=>{const e=t.shadowRoot;e&&i(e)}))},c=t=>t&&"function"==typeof t.then,l=(t,e,n=e.type)=>{a("[on"+t+"\\:"+n+"]").forEach((o=>u(o,t,e,n)))},f=e=>{if(void 0===e._qwikjson_){let n=(e===t.documentElement?t.body:e).lastElementChild;for(;n;){if("SCRIPT"===n.tagName&&"qwik/json"===n.getAttribute("type")){e._qwikjson_=JSON.parse(n.textContent.replace(/\\x3C(\/?script)/gi,"<$1"));break}n=n.previousElementSibling}}},p=(t,e)=>new CustomEvent(t,{detail:e}),u=async(e,n,o,r=o.type)=>{const s="on"+n+":"+r;e.hasAttribute("preventdefault:"+r)&&o.preventDefault(),e.hasAttribute("stoppropagation:"+r)&&o.stopPropagation();const a=e._qc_,i=a&&a.li.filter((t=>t[0]===s));if(i&&i.length>0){for(const t of i){const n=t[1].getFn([e,o],(()=>e.isConnected))(o,e),r=o.cancelBubble;c(n)&&await n,r&&o.stopPropagation()}return}const l=e.getAttribute(s),p=e.qDispatchEvent;if(p)return p(o,n);if(l){const n=e.closest("[q\\:container]:not([q\\:container=html]):not([q\\:container=text])"),r=n.getAttribute("q:base"),s=n.getAttribute("q:version")||"unknown",a=n.getAttribute("q:manifest-hash")||"dev",i=new URL(r,t.baseURI);for(const p of l.split("\n")){const l=new URL(p,i),u=l.href,q=l.hash.replace(/^#?([^?[|]*).*$/,"$1")||"default",h=performance.now();let _,d,y;const m=p.startsWith("#"),w={qBase:r,qManifest:a,qVersion:s,href:u,symbol:q,element:e,reqTime:h};if(m){const e=n.getAttribute("q:instance");_=(t["qFuncs_"+e]||[])[Number.parseInt(q)],_||(d="sync",y=Error("sym:"+q))}else{const t=l.href.split("#")[0];try{const e=import(t);f(n),_=(await e)[q],_||(d="no-symbol",y=Error(`${q} not in ${t}`))}catch(t){d||(d="async"),y=t}}if(!_){b("qerror",{importError:d,error:y,...w}),console.error(y);break}const g=t.__q_context__;if(e.isConnected)try{t.__q_context__=[e,o,l],m||b("qsymbol",{...w});const n=_(o,e);c(n)&&await n}catch(t){b("qerror",{error:t,...w})}finally{t.__q_context__=g}}}},b=(e,n)=>{t.dispatchEvent(p(e,n))},q=t=>t.replace(/([A-Z])/g,(t=>"-"+t.toLowerCase())),h=async t=>{let e=q(t.type),n=t.target;for(l("-document",t,e);n&&n.getAttribute;){const o=u(n,"",t,e);let r=t.cancelBubble;c(o)&&await o,r=r||t.cancelBubble||n.hasAttribute("stoppropagation:"+t.type),n=t.bubbles&&!0!==r?n.parentElement:null}},_=t=>{l("-window",t,q(t.type))},d=()=>{var s;const c=t.readyState;if(!r&&("interactive"==c||"complete"==c)&&(o.forEach(i),r=1,b("qinit"),(null!=(s=e.requestIdleCallback)?s:e.setTimeout).bind(e)((()=>b("qidle"))),n.has("qvisible"))){const t=a("[on\\:qvisible]"),e=new IntersectionObserver((t=>{for(const n of t)n.isIntersecting&&(e.unobserve(n.target),u(n.target,"",p("qvisible",n)))}));t.forEach((t=>e.observe(t)))}},y=(t,e,n,o=!1)=>t.addEventListener(e,n,{capture:o,passive:!1}),m=(...t)=>{for(const r of t)"string"==typeof r?n.has(r)||(o.forEach((t=>y(t,r,h,!0))),y(e,r,_,!0),n.add(r)):o.has(r)||(n.forEach((t=>y(r,t,h,!0))),o.add(r))};if(!("__q_context__"in t)){t.__q_context__=0;const r=e.qwikevents;Array.isArray(r)&&m(...r),e.qwikevents={events:n,roots:o,push:m},y(t,"readystatechange",d),d()}})();