@qwik.dev/core 2.0.0-alpha.9 → 2.0.0-beta.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.
- package/bindings/qwik.darwin-arm64.node +0 -0
- package/bindings/qwik.darwin-x64.node +0 -0
- package/bindings/qwik.linux-x64-gnu.node +0 -0
- package/bindings/qwik.wasm.cjs +27 -27
- package/bindings/qwik.wasm.mjs +27 -27
- package/bindings/qwik.win32-x64-msvc.node +0 -0
- package/bindings/qwik_wasm_bg.wasm +0 -0
- package/dist/backpatch/index.cjs +6 -0
- package/dist/backpatch/index.d.ts +2 -0
- package/dist/backpatch/index.mjs +5 -0
- package/dist/{prefetch → backpatch}/package.json +2 -2
- package/dist/backpatch-executor.debug.js +34 -0
- package/dist/backpatch-executor.js +1 -0
- package/dist/build/index.cjs +3 -3
- package/dist/build/index.d.ts +22 -22
- package/dist/build/package.json +1 -1
- package/dist/cli.cjs +3035 -767
- package/dist/core-internal.d.ts +4622 -4153
- package/dist/core.cjs +7327 -6169
- package/dist/core.cjs.map +1 -1
- package/dist/core.min.mjs +1 -1
- package/dist/core.mjs +7294 -6163
- package/dist/core.mjs.map +1 -1
- package/dist/core.prod.cjs +3209 -2612
- package/dist/core.prod.mjs +3932 -3294
- package/dist/insights/index.qwik.cjs +1 -4142
- package/dist/insights/index.qwik.mjs +63 -4133
- package/dist/insights/vite/index.cjs +1 -82
- package/dist/insights/vite/index.mjs +65 -37
- package/dist/insights/vite.d.ts +22 -0
- package/dist/{insights/insights.d.ts → insights.d.ts} +33 -22
- package/dist/loader/index.cjs +2 -2
- package/dist/loader/index.mjs +2 -2
- package/dist/loader/package.json +1 -1
- package/dist/optimizer.cjs +201 -3817
- package/dist/optimizer.d.ts +754 -707
- package/dist/optimizer.mjs +2605 -3628
- package/dist/preloader.cjs +266 -0
- package/dist/preloader.mjs +195 -0
- package/dist/qwikloader.debug.js +228 -222
- package/dist/qwikloader.js +1 -3
- package/dist/server.cjs +915 -621
- package/dist/server.d.ts +519 -402
- package/dist/server.mjs +900 -615
- package/dist/starters/adapters/aws-lambda/adapters/aws-lambda/vite.config.mts +1 -1
- package/dist/starters/adapters/aws-lambda/package.json +1 -1
- package/dist/starters/adapters/aws-lambda/serverless.yml +15 -0
- package/dist/starters/adapters/aws-lambda/src/entry_aws-lambda.tsx +2 -8
- package/dist/starters/adapters/azure-swa/adapters/azure-swa/vite.config.mts +1 -1
- package/dist/starters/adapters/azure-swa/package.json +1 -1
- package/dist/starters/adapters/azure-swa/public/staticwebapp.config.json +7 -0
- package/dist/starters/adapters/azure-swa/src/entry.azure-swa.tsx +2 -4
- package/dist/starters/adapters/bun/adapters/bun/vite.config.mts +2 -2
- package/dist/starters/adapters/bun/package.json +1 -1
- package/dist/starters/adapters/bun/src/entry.bun.ts +3 -4
- package/dist/starters/adapters/cloud-run/adapters/cloud-run/vite.config.mts +1 -1
- package/dist/starters/adapters/cloud-run/package.json +1 -1
- package/dist/starters/adapters/cloud-run/src/entry.cloud-run.tsx +2 -6
- package/dist/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/vite.config.mts +1 -1
- package/dist/starters/adapters/cloudflare-pages/package.json +1 -1
- package/dist/starters/adapters/cloudflare-pages/public/_headers +2 -0
- package/dist/starters/adapters/cloudflare-pages/src/entry.cloudflare-pages.tsx +2 -4
- package/dist/starters/adapters/deno/adapters/deno/vite.config.mts +1 -1
- package/dist/starters/adapters/deno/package.json +1 -1
- package/dist/starters/adapters/deno/src/entry.deno.ts +3 -4
- package/dist/starters/adapters/express/adapters/express/vite.config.mts +1 -1
- package/dist/starters/adapters/express/package.json +1 -1
- package/dist/starters/adapters/express/src/entry.express.tsx +6 -5
- package/dist/starters/adapters/fastify/adapters/fastify/vite.config.mts +1 -1
- package/dist/starters/adapters/fastify/package.json +1 -1
- package/dist/starters/adapters/fastify/src/entry.fastify.tsx +3 -2
- package/dist/starters/adapters/fastify/src/plugins/fastify-qwik.ts +10 -3
- package/dist/starters/adapters/firebase/adapters/firebase/vite.config.mts +1 -1
- package/dist/starters/adapters/firebase/firebase.json +12 -1
- package/dist/starters/adapters/firebase/functions/index.js +2 -3
- package/dist/starters/adapters/firebase/package.json +1 -1
- package/dist/starters/adapters/firebase/src/entry-firebase.tsx +2 -4
- package/dist/starters/adapters/netlify-edge/adapters/netlify-edge/vite.config.mts +1 -1
- package/dist/starters/adapters/netlify-edge/package.json +1 -1
- package/dist/starters/adapters/netlify-edge/public/_headers +2 -0
- package/dist/starters/adapters/netlify-edge/src/entry.netlify-edge.tsx +2 -4
- package/dist/starters/adapters/node-server/adapters/node-server/vite.config.mts +1 -1
- package/dist/starters/adapters/node-server/package.json +1 -1
- package/dist/starters/adapters/node-server/src/entry.node-server.tsx +3 -4
- package/dist/starters/adapters/ssg/README.md +9 -0
- package/dist/starters/adapters/{static/adapters/static → ssg/adapters/ssg}/vite.config.mts +2 -2
- package/dist/starters/adapters/ssg/package.json +19 -0
- package/dist/starters/adapters/vercel-edge/adapters/vercel-edge/vite.config.mts +1 -1
- package/dist/starters/adapters/vercel-edge/package.json +1 -1
- package/dist/starters/adapters/vercel-edge/src/entry.vercel-edge.tsx +2 -4
- package/dist/starters/adapters/vercel-edge/vercel.json +1 -1
- package/dist/starters/features/auth/package.json +1 -1
- package/dist/starters/features/bootstrap/src/routes/bootstrap/layout.tsx +0 -11
- package/dist/starters/features/csr/index.html +23 -0
- package/dist/starters/features/csr/package.json +29 -0
- package/dist/starters/features/csr/src/root.tsx +15 -0
- package/dist/starters/features/csr/vite.config.mts +13 -0
- package/dist/starters/features/localize/package.json +3 -3
- package/dist/starters/features/localize/src/entry.ssr.tsx +17 -23
- package/dist/starters/features/localize/src/routes/[locale]/i18n-utils.ts +1 -1
- package/dist/starters/features/pandacss/package.json +1 -1
- package/dist/starters/features/partytown/package.json +4 -4
- package/dist/starters/features/partytown/src/components/partytown/partytown.tsx +2 -2
- package/dist/starters/features/playwright/playwright-report/index.html +953 -911
- package/dist/starters/features/postcss/postcss.config.js +2 -2
- package/dist/starters/features/service-worker/package.json +13 -0
- package/dist/starters/features/service-worker/src/routes/service-worker.ts +14 -0
- package/dist/starters/features/styled-vanilla-extract/package.json +2 -1
- package/dist/starters/features/tailwind/package.json +4 -3
- package/dist/starters/features/tailwind/prettier.config.js +10 -0
- package/dist/starters/features/tailwind/src/global.css +1 -1
- package/dist/starters/features/tailwind-v3/package.json +1 -1
- package/dist/starters/features/tailwind-v3/prettier.config.js +10 -0
- package/dist/starters/features/tailwind-v3/tailwind.config.js +2 -2
- package/dist/testing/index.cjs +14313 -11732
- package/dist/testing/index.d.ts +1112 -141
- package/dist/testing/index.mjs +14225 -11661
- package/dist/testing/package.json +1 -1
- package/package.json +28 -14
- package/public.d.ts +5 -0
- package/server.d.ts +1 -0
- package/dist/insights/index.d.ts +0 -1
- package/dist/insights/vite/index.d.ts +0 -1
- package/dist/insights/vite/insights-plugin.d.ts +0 -10
- package/dist/prefetch/index.cjs +0 -4
- package/dist/prefetch/index.d.ts +0 -2
- package/dist/prefetch/index.mjs +0 -3
- package/dist/qwik-prefetch.debug.js +0 -244
- package/dist/qwik-prefetch.js +0 -1
- package/dist/starters/adapters/static/README.md +0 -5
- package/dist/starters/adapters/static/package.json +0 -19
- package/dist/starters/features/tailwind/.prettierrc.js +0 -3
package/dist/qwikloader.debug.js
CHANGED
|
@@ -1,226 +1,232 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
1
|
+
const doc = document;
|
|
2
|
+
const win = window;
|
|
3
|
+
const events = /* @__PURE__ */ new Set();
|
|
4
|
+
const roots = /* @__PURE__ */ new Set([doc]);
|
|
5
|
+
let hasInitialized;
|
|
6
|
+
const nativeQuerySelectorAll = (root, selector) => Array.from(root.querySelectorAll(selector));
|
|
7
|
+
const querySelectorAll = (query) => {
|
|
8
|
+
const elements = [];
|
|
9
|
+
roots.forEach((root) => elements.push(...nativeQuerySelectorAll(root, query)));
|
|
10
|
+
return elements;
|
|
11
|
+
};
|
|
12
|
+
const findShadowRoots = (fragment) => {
|
|
13
|
+
processEventOrNode(fragment);
|
|
14
|
+
nativeQuerySelectorAll(fragment, "[q\\:shadowroot]").forEach((parent) => {
|
|
15
|
+
const shadowRoot = parent.shadowRoot;
|
|
16
|
+
shadowRoot && findShadowRoots(shadowRoot);
|
|
17
|
+
});
|
|
18
|
+
};
|
|
19
|
+
const isPromise = (promise) => promise && typeof promise.then === "function";
|
|
20
|
+
const broadcast = (infix, ev, type = ev.type) => {
|
|
21
|
+
querySelectorAll("[on" + infix + "\\:" + type + "]").forEach((el) => {
|
|
22
|
+
dispatch(el, infix, ev, type);
|
|
23
|
+
});
|
|
24
|
+
};
|
|
25
|
+
const resolveContainer = (containerEl) => {
|
|
26
|
+
if (containerEl._qwikjson_ === void 0) {
|
|
27
|
+
const parentJSON = containerEl === doc.documentElement ? doc.body : containerEl;
|
|
28
|
+
let script = parentJSON.lastElementChild;
|
|
29
|
+
while (script) {
|
|
30
|
+
if (script.tagName === "SCRIPT" && script.getAttribute("type") === "qwik/json") {
|
|
31
|
+
containerEl._qwikjson_ = JSON.parse(
|
|
32
|
+
script.textContent.replace(/\\x3C(\/?script)/gi, "<$1")
|
|
33
|
+
);
|
|
34
|
+
break;
|
|
35
|
+
}
|
|
36
|
+
script = script.previousElementSibling;
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
};
|
|
40
|
+
const createEvent = (eventName, detail) => new CustomEvent(eventName, {
|
|
41
|
+
detail
|
|
42
|
+
});
|
|
43
|
+
const dispatch = async (element, scope, ev, eventName = ev.type) => {
|
|
44
|
+
const attrName = "on" + scope + ":" + eventName;
|
|
45
|
+
if (element.hasAttribute("preventdefault:" + eventName)) {
|
|
46
|
+
ev.preventDefault();
|
|
47
|
+
}
|
|
48
|
+
if (element.hasAttribute("stoppropagation:" + eventName)) {
|
|
49
|
+
ev.stopPropagation();
|
|
50
|
+
}
|
|
51
|
+
const ctx = element._qc_;
|
|
52
|
+
const relevantListeners = ctx && ctx.li.filter((li) => li[0] === attrName);
|
|
53
|
+
if (relevantListeners && relevantListeners.length > 0) {
|
|
54
|
+
for (const listener of relevantListeners) {
|
|
55
|
+
const results = listener[1].getFn([element, ev], () => element.isConnected)(ev, element);
|
|
56
|
+
const cancelBubble = ev.cancelBubble;
|
|
57
|
+
if (isPromise(results)) {
|
|
58
|
+
await results;
|
|
59
|
+
}
|
|
60
|
+
if (cancelBubble) {
|
|
61
|
+
ev.stopPropagation();
|
|
62
|
+
}
|
|
63
|
+
}
|
|
64
|
+
return;
|
|
65
|
+
}
|
|
66
|
+
const attrValue = element.getAttribute(attrName);
|
|
67
|
+
const qDispatchEvent = element.qDispatchEvent;
|
|
68
|
+
if (qDispatchEvent) {
|
|
69
|
+
return qDispatchEvent(ev, scope);
|
|
70
|
+
}
|
|
71
|
+
if (attrValue) {
|
|
72
|
+
const container = element.closest(
|
|
73
|
+
"[q\\:container]:not([q\\:container=html]):not([q\\:container=text])"
|
|
74
|
+
);
|
|
75
|
+
const qBase = container.getAttribute("q:base");
|
|
76
|
+
const qVersion = container.getAttribute("q:version") || "unknown";
|
|
77
|
+
const qManifest = container.getAttribute("q:manifest-hash") || "dev";
|
|
78
|
+
const base = new URL(qBase, doc.baseURI);
|
|
79
|
+
for (const qrl of attrValue.split("\n")) {
|
|
80
|
+
const url = new URL(qrl, base);
|
|
81
|
+
const href = url.href;
|
|
82
|
+
const symbol = url.hash.replace(/^#?([^?[|]*).*$/, "$1") || "default";
|
|
83
|
+
const reqTime = performance.now();
|
|
84
|
+
let handler;
|
|
85
|
+
let importError;
|
|
86
|
+
let error;
|
|
87
|
+
const isSync = qrl.startsWith("#");
|
|
88
|
+
const eventData = {
|
|
89
|
+
qBase,
|
|
90
|
+
qManifest,
|
|
91
|
+
qVersion,
|
|
92
|
+
href,
|
|
93
|
+
symbol,
|
|
94
|
+
element,
|
|
95
|
+
reqTime
|
|
96
|
+
};
|
|
97
|
+
if (isSync) {
|
|
98
|
+
const hash = container.getAttribute("q:instance");
|
|
99
|
+
handler = (doc["qFuncs_" + hash] || [])[Number.parseInt(symbol)];
|
|
100
|
+
if (!handler) {
|
|
101
|
+
importError = "sync";
|
|
102
|
+
error = new Error("sym:" + symbol);
|
|
15
103
|
}
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
104
|
+
} else {
|
|
105
|
+
emitEvent("qsymbol", eventData);
|
|
106
|
+
const uri = url.href.split("#")[0];
|
|
107
|
+
try {
|
|
108
|
+
const module = import(
|
|
109
|
+
/* @vite-ignore */
|
|
110
|
+
uri
|
|
111
|
+
);
|
|
112
|
+
resolveContainer(container);
|
|
113
|
+
handler = (await module)[symbol];
|
|
114
|
+
if (!handler) {
|
|
115
|
+
importError = "no-symbol";
|
|
116
|
+
error = new Error(`${symbol} not in ${uri}`);
|
|
117
|
+
}
|
|
118
|
+
} catch (err) {
|
|
119
|
+
importError || (importError = "async");
|
|
120
|
+
error = err;
|
|
20
121
|
}
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
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
|
|
122
|
+
}
|
|
123
|
+
if (!handler) {
|
|
124
|
+
emitEvent("qerror", {
|
|
125
|
+
importError,
|
|
126
|
+
error,
|
|
127
|
+
...eventData
|
|
59
128
|
});
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
|
|
112
|
-
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
|
|
116
|
-
|
|
117
|
-
resolveContainer(container);
|
|
118
|
-
handler = (await module)[symbol];
|
|
119
|
-
if (!handler) {
|
|
120
|
-
importError = "no-symbol";
|
|
121
|
-
error = new Error(`${symbol} not in ${uri}`);
|
|
122
|
-
}
|
|
123
|
-
} catch (err) {
|
|
124
|
-
importError || (importError = "async");
|
|
125
|
-
error = err;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
if (!handler) {
|
|
129
|
-
emitEvent("qerror", __spreadValues({
|
|
130
|
-
importError: importError,
|
|
131
|
-
error: error
|
|
132
|
-
}, eventData));
|
|
133
|
-
console.error(error);
|
|
134
|
-
break;
|
|
135
|
-
}
|
|
136
|
-
const previousCtx = doc[Q_CONTEXT];
|
|
137
|
-
if (element.isConnected) {
|
|
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
|
-
emitEvent("qerror", __spreadValues({
|
|
145
|
-
error: error2
|
|
146
|
-
}, eventData));
|
|
147
|
-
} finally {
|
|
148
|
-
doc[Q_CONTEXT] = previousCtx;
|
|
149
|
-
}
|
|
150
|
-
}
|
|
151
|
-
}
|
|
152
|
-
}
|
|
153
|
-
};
|
|
154
|
-
const emitEvent = (eventName, detail) => {
|
|
155
|
-
doc.dispatchEvent(createEvent(eventName, detail));
|
|
156
|
-
};
|
|
157
|
-
const camelToKebab = str => str.replace(/([A-Z])/g, (a => "-" + a.toLowerCase()));
|
|
158
|
-
const processDocumentEvent = async ev => {
|
|
159
|
-
let type = camelToKebab(ev.type);
|
|
160
|
-
let element = ev.target;
|
|
161
|
-
broadcast("-document", ev, type);
|
|
162
|
-
while (element && element.getAttribute) {
|
|
163
|
-
const results = dispatch(element, "", ev, type);
|
|
164
|
-
let cancelBubble = ev.cancelBubble;
|
|
165
|
-
isPromise(results) && await results;
|
|
166
|
-
cancelBubble = cancelBubble || ev.cancelBubble || element.hasAttribute("stoppropagation:" + ev.type);
|
|
167
|
-
element = ev.bubbles && !0 !== cancelBubble ? element.parentElement : null;
|
|
168
|
-
}
|
|
169
|
-
};
|
|
170
|
-
const processWindowEvent = ev => {
|
|
171
|
-
broadcast("-window", ev, camelToKebab(ev.type));
|
|
172
|
-
};
|
|
173
|
-
const processReadyStateChange = () => {
|
|
174
|
-
var _a;
|
|
175
|
-
const readyState = doc.readyState;
|
|
176
|
-
if (!hasInitialized && ("interactive" == readyState || "complete" == readyState)) {
|
|
177
|
-
roots.forEach(findShadowRoots);
|
|
178
|
-
hasInitialized = 1;
|
|
179
|
-
emitEvent("qinit");
|
|
180
|
-
(null != (_a = win.requestIdleCallback) ? _a : win.setTimeout).bind(win)((() => emitEvent("qidle")));
|
|
181
|
-
if (events.has("qvisible")) {
|
|
182
|
-
const results = querySelectorAll("[on\\:qvisible]");
|
|
183
|
-
const observer = new IntersectionObserver((entries => {
|
|
184
|
-
for (const entry of entries) {
|
|
185
|
-
if (entry.isIntersecting) {
|
|
186
|
-
observer.unobserve(entry.target);
|
|
187
|
-
dispatch(entry.target, "", createEvent("qvisible", entry));
|
|
188
|
-
}
|
|
189
|
-
}
|
|
190
|
-
}));
|
|
191
|
-
results.forEach((el => observer.observe(el)));
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
};
|
|
195
|
-
const addEventListener = (el, eventName, handler, capture = !1) => el.addEventListener(eventName, handler, {
|
|
196
|
-
capture: capture,
|
|
197
|
-
passive: !1
|
|
198
|
-
});
|
|
199
|
-
const processEventOrNode = (...eventNames) => {
|
|
200
|
-
for (const eventNameOrNode of eventNames) {
|
|
201
|
-
if ("string" == typeof eventNameOrNode) {
|
|
202
|
-
if (!events.has(eventNameOrNode)) {
|
|
203
|
-
roots.forEach((root => addEventListener(root, eventNameOrNode, processDocumentEvent, !0)));
|
|
204
|
-
addEventListener(win, eventNameOrNode, processWindowEvent, !0);
|
|
205
|
-
events.add(eventNameOrNode);
|
|
206
|
-
}
|
|
207
|
-
} else if (!roots.has(eventNameOrNode)) {
|
|
208
|
-
events.forEach((eventName => addEventListener(eventNameOrNode, eventName, processDocumentEvent, !0)));
|
|
209
|
-
roots.add(eventNameOrNode);
|
|
210
|
-
}
|
|
211
|
-
}
|
|
212
|
-
};
|
|
213
|
-
if (!(Q_CONTEXT in doc)) {
|
|
214
|
-
doc[Q_CONTEXT] = 0;
|
|
215
|
-
const qwikevents = win.qwikevents;
|
|
216
|
-
Array.isArray(qwikevents) && processEventOrNode(...qwikevents);
|
|
217
|
-
win.qwikevents = {
|
|
218
|
-
events: events,
|
|
219
|
-
roots: roots,
|
|
220
|
-
push: processEventOrNode
|
|
221
|
-
};
|
|
222
|
-
addEventListener(doc, "readystatechange", processReadyStateChange);
|
|
223
|
-
processReadyStateChange();
|
|
129
|
+
console.error(error);
|
|
130
|
+
break;
|
|
131
|
+
}
|
|
132
|
+
const previousCtx = doc.__q_context__;
|
|
133
|
+
if (element.isConnected) {
|
|
134
|
+
try {
|
|
135
|
+
doc.__q_context__ = [element, ev, url];
|
|
136
|
+
const results = handler(ev, element);
|
|
137
|
+
if (isPromise(results)) {
|
|
138
|
+
await results;
|
|
139
|
+
}
|
|
140
|
+
} catch (error2) {
|
|
141
|
+
emitEvent("qerror", { error: error2, ...eventData });
|
|
142
|
+
} finally {
|
|
143
|
+
doc.__q_context__ = previousCtx;
|
|
144
|
+
}
|
|
145
|
+
}
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
};
|
|
149
|
+
const emitEvent = (eventName, detail) => {
|
|
150
|
+
doc.dispatchEvent(createEvent(eventName, detail));
|
|
151
|
+
};
|
|
152
|
+
const camelToKebab = (str) => str.replace(/([A-Z])/g, (a) => "-" + a.toLowerCase());
|
|
153
|
+
const processDocumentEvent = async (ev) => {
|
|
154
|
+
let type = camelToKebab(ev.type);
|
|
155
|
+
let element = ev.target;
|
|
156
|
+
broadcast("-document", ev, type);
|
|
157
|
+
while (element && element.getAttribute) {
|
|
158
|
+
const results = dispatch(element, "", ev, type);
|
|
159
|
+
let cancelBubble = ev.cancelBubble;
|
|
160
|
+
if (isPromise(results)) {
|
|
161
|
+
await results;
|
|
162
|
+
}
|
|
163
|
+
cancelBubble || (cancelBubble = cancelBubble || ev.cancelBubble || element.hasAttribute("stoppropagation:" + ev.type));
|
|
164
|
+
element = ev.bubbles && cancelBubble !== true ? element.parentElement : null;
|
|
165
|
+
}
|
|
166
|
+
};
|
|
167
|
+
const processWindowEvent = (ev) => {
|
|
168
|
+
broadcast("-window", ev, camelToKebab(ev.type));
|
|
169
|
+
};
|
|
170
|
+
const processReadyStateChange = () => {
|
|
171
|
+
const readyState = doc.readyState;
|
|
172
|
+
if (!hasInitialized && (readyState == "interactive" || readyState == "complete")) {
|
|
173
|
+
roots.forEach(findShadowRoots);
|
|
174
|
+
hasInitialized = 1;
|
|
175
|
+
emitEvent("qinit");
|
|
176
|
+
const riC = win.requestIdleCallback ?? win.setTimeout;
|
|
177
|
+
riC.bind(win)(() => emitEvent("qidle"));
|
|
178
|
+
if (events.has("qvisible")) {
|
|
179
|
+
const results = querySelectorAll("[on\\:qvisible]");
|
|
180
|
+
const observer = new IntersectionObserver((entries) => {
|
|
181
|
+
for (const entry of entries) {
|
|
182
|
+
if (entry.isIntersecting) {
|
|
183
|
+
observer.unobserve(entry.target);
|
|
184
|
+
dispatch(entry.target, "", createEvent("qvisible", entry));
|
|
185
|
+
}
|
|
224
186
|
}
|
|
225
|
-
|
|
226
|
-
|
|
187
|
+
});
|
|
188
|
+
results.forEach((el) => observer.observe(el));
|
|
189
|
+
}
|
|
190
|
+
}
|
|
191
|
+
};
|
|
192
|
+
const addEventListener = (el, eventName, handler, capture = false) => {
|
|
193
|
+
el.addEventListener(eventName, handler, { capture, passive: false });
|
|
194
|
+
};
|
|
195
|
+
const processEventOrNode = (...eventNames) => {
|
|
196
|
+
for (const eventNameOrNode of eventNames) {
|
|
197
|
+
if (typeof eventNameOrNode === "string") {
|
|
198
|
+
if (!events.has(eventNameOrNode)) {
|
|
199
|
+
roots.forEach(
|
|
200
|
+
(root) => addEventListener(root, eventNameOrNode, processDocumentEvent, true)
|
|
201
|
+
);
|
|
202
|
+
addEventListener(win, eventNameOrNode, processWindowEvent, true);
|
|
203
|
+
events.add(eventNameOrNode);
|
|
204
|
+
}
|
|
205
|
+
} else {
|
|
206
|
+
if (!roots.has(eventNameOrNode)) {
|
|
207
|
+
events.forEach(
|
|
208
|
+
(eventName) => addEventListener(eventNameOrNode, eventName, processDocumentEvent, true)
|
|
209
|
+
);
|
|
210
|
+
roots.add(eventNameOrNode);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
}
|
|
214
|
+
};
|
|
215
|
+
if (!("__q_context__" in doc)) {
|
|
216
|
+
doc.__q_context__ = 0;
|
|
217
|
+
const qwikevents = win.qwikevents;
|
|
218
|
+
if (qwikevents) {
|
|
219
|
+
if (Array.isArray(qwikevents)) {
|
|
220
|
+
processEventOrNode(...qwikevents);
|
|
221
|
+
} else {
|
|
222
|
+
processEventOrNode("click", "input");
|
|
223
|
+
}
|
|
224
|
+
}
|
|
225
|
+
win.qwikevents = {
|
|
226
|
+
events,
|
|
227
|
+
roots,
|
|
228
|
+
push: processEventOrNode
|
|
229
|
+
};
|
|
230
|
+
addEventListener(doc, "readystatechange", processReadyStateChange);
|
|
231
|
+
processReadyStateChange();
|
|
232
|
+
}
|
package/dist/qwikloader.js
CHANGED
|
@@ -1,3 +1 @@
|
|
|
1
|
-
|
|
2
|
-
/* @vite-ignore */
|
|
3
|
-
e);w(n),m=(await t)[y],m||(v="no-symbol",g=Error(`${y} not in ${e}`))}catch(e){v||(v="async"),g=e}}if(!m){E("qerror",s({importError:v,error:g},_)),console.error(g);break}const k=e[o];if(t[p])try{e[o]=[t,r,u],A||E("qsymbol",s({},_));const n=m(r,t);q(n)&&await n}catch(e){E("qerror",s({error:e},_))}finally{e[o]=k}}}},E=(t,o)=>{e.dispatchEvent(v(t,o))},A=e=>e[i](/([A-Z])/g,(e=>"-"+e.toLowerCase())),_=async e=>{let t=A(e.type),o=e[l];for(m("-document",e,t);o&&o[f];){const n=g(o,"",e,t);let r=e.cancelBubble;q(n)&&await n,r=r||e.cancelBubble||o.hasAttribute("stoppropagation:"+e.type),o=e.bubbles&&!0!==r?o.parentElement:null}},k=e=>{m("-window",e,A(e.type))},C=()=>{var o;const s=e.readyState;if(!t&&("interactive"==s||"complete"==s)&&(a.forEach(d),t=1,E("qinit"),(null!=(o=n.requestIdleCallback)?o:n.setTimeout).bind(n)((()=>E("qidle"))),r.has(b))){const e=y("[on\\:"+b+"]"),t=new IntersectionObserver((e=>{for(const o of e)o.isIntersecting&&(t.unobserve(o[l]),g(o[l],"",v(b,o)))}));e[c]((e=>t.observe(e)))}},O=(e,t,o,n=!1)=>e.addEventListener(t,o,{capture:n,passive:!1}),S=(...e)=>{for(const t of e)"string"==typeof t?r.has(t)||(a.forEach((e=>O(e,t,_,!0))),O(n,t,k,!0),r.add(t)):a.has(t)||(r.forEach((e=>O(t,e,_,!0))),a.add(t))};if(!(o in e)){e[o]=0;const t=n.qwikevents;Array.isArray(t)&&S(...t),n.qwikevents={events:r,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{b("qsymbol",w);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];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=r||t.cancelBubble||n.hasAttribute("stoppropagation:"+t.type)),n=t.bubbles&&!0!==r?n.parentElement:null}},_=t=>{l("-window",t,q(t.type))},d=()=>{const s=t.readyState;if(!r&&("interactive"==s||"complete"==s)&&(o.forEach(i),r=1,b("qinit"),(e.requestIdleCallback??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;r&&(Array.isArray(r)?m(...r):m("click","input")),e.qwikevents={events:n,roots:o,push:m},y(t,"readystatechange",d),d()}
|