@qwik.dev/core 0.0.0 → 2.0.0-alpha.0
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/LICENSE +22 -0
- package/bindings/qwik.linux-x64-gnu.node +0 -0
- package/bindings/qwik.wasm.cjs +484 -0
- package/bindings/qwik.wasm.mjs +477 -0
- package/bindings/qwik_wasm_bg.wasm +0 -0
- package/build.d.ts +2 -0
- package/dist/build/index.cjs +35 -0
- package/dist/build/index.cjs.map +7 -0
- package/dist/build/index.d.ts +22 -0
- package/dist/build/index.dev.cjs +37 -0
- package/dist/build/index.dev.cjs.map +7 -0
- package/dist/build/index.dev.mjs +12 -0
- package/dist/build/index.dev.mjs.map +7 -0
- package/dist/build/index.mjs +12 -0
- package/dist/build/index.mjs.map +7 -0
- package/dist/build/index.prod.cjs +37 -0
- package/dist/build/index.prod.cjs.map +7 -0
- package/dist/build/index.prod.mjs +12 -0
- package/dist/build/index.prod.mjs.map +7 -0
- package/dist/build/package.json +8 -0
- package/dist/cli.cjs +4890 -0
- package/dist/core-internal.d.ts +3895 -0
- package/dist/core.cjs +10923 -0
- package/dist/core.cjs.map +1 -0
- package/dist/core.min.mjs +1 -0
- package/dist/core.mjs +10819 -0
- package/dist/core.mjs.map +1 -0
- package/dist/core.prod.cjs +5181 -0
- package/dist/core.prod.mjs +6025 -0
- package/dist/index.d.ts +2 -0
- package/dist/insights/index.d.ts +1 -0
- package/dist/insights/index.qwik.cjs +751 -0
- package/dist/insights/index.qwik.mjs +751 -0
- package/dist/insights/insights.d.ts +59 -0
- package/dist/insights/vite/index.cjs +82 -0
- package/dist/insights/vite/index.d.ts +1 -0
- package/dist/insights/vite/index.mjs +55 -0
- package/dist/insights/vite/insights-plugin.d.ts +10 -0
- package/dist/jsx-runtime/index.d.ts +2 -0
- package/dist/jsx-runtime.d.ts +2 -0
- package/dist/loader/index.cjs +4 -0
- package/dist/loader/index.d.ts +2 -0
- package/dist/loader/index.mjs +3 -0
- package/dist/loader/package.json +8 -0
- package/dist/optimizer.cjs +9145 -0
- package/dist/optimizer.d.ts +707 -0
- package/dist/optimizer.mjs +9709 -0
- package/dist/prefetch/index.cjs +4 -0
- package/dist/prefetch/index.d.ts +2 -0
- package/dist/prefetch/index.mjs +3 -0
- package/dist/prefetch/package.json +8 -0
- package/dist/qwik-prefetch.debug.js +244 -0
- package/dist/qwik-prefetch.js +1 -0
- package/dist/qwikloader.debug.js +228 -0
- package/dist/qwikloader.js +3 -0
- package/dist/server-modules.d.ts +38 -0
- package/dist/server.cjs +8942 -0
- package/dist/server.d.ts +404 -0
- package/dist/server.mjs +8877 -0
- package/dist/starters/adapters/aws-lambda/.eslintignore +2 -0
- package/dist/starters/adapters/aws-lambda/.prettierignore +2 -0
- package/dist/starters/adapters/aws-lambda/adapters/aws-lambda/vite.config.mts +21 -0
- package/dist/starters/adapters/aws-lambda/gitignore +2 -0
- package/dist/starters/adapters/aws-lambda/package.json +23 -0
- package/dist/starters/adapters/aws-lambda/serverless.yml +31 -0
- package/dist/starters/adapters/aws-lambda/src/entry_aws-lambda.tsx +32 -0
- package/dist/starters/adapters/azure-swa/README.md +13 -0
- package/dist/starters/adapters/azure-swa/adapters/azure-swa/vite.config.mts +23 -0
- package/dist/starters/adapters/azure-swa/azure-functions/host.json +20 -0
- package/dist/starters/adapters/azure-swa/gitignore +3 -0
- package/dist/starters/adapters/azure-swa/package.json +28 -0
- package/dist/starters/adapters/azure-swa/public/staticwebapp.config.json +23 -0
- package/dist/starters/adapters/azure-swa/src/entry.azure-swa.tsx +22 -0
- package/dist/starters/adapters/azure-swa/swa-cli.config.json +11 -0
- package/dist/starters/adapters/bun/README.md +9 -0
- package/dist/starters/adapters/bun/adapters/bun/vite.config.mts +28 -0
- package/dist/starters/adapters/bun/package.json +27 -0
- package/dist/starters/adapters/bun/src/entry.bun.ts +46 -0
- package/dist/starters/adapters/cloud-run/Dockerfile +24 -0
- package/dist/starters/adapters/cloud-run/README.md +7 -0
- package/dist/starters/adapters/cloud-run/adapters/cloud-run/vite.config.mts +15 -0
- package/dist/starters/adapters/cloud-run/package.json +24 -0
- package/dist/starters/adapters/cloud-run/src/entry.cloud-run.tsx +96 -0
- package/dist/starters/adapters/cloudflare-pages/README.md +46 -0
- package/dist/starters/adapters/cloudflare-pages/adapters/cloudflare-pages/vite.config.mts +15 -0
- package/dist/starters/adapters/cloudflare-pages/gitignore +2 -0
- package/dist/starters/adapters/cloudflare-pages/package.json +28 -0
- package/dist/starters/adapters/cloudflare-pages/public/_headers +9 -0
- package/dist/starters/adapters/cloudflare-pages/public/_redirects +1 -0
- package/dist/starters/adapters/cloudflare-pages/src/entry.cloudflare-pages.tsx +24 -0
- package/dist/starters/adapters/deno/README.md +9 -0
- package/dist/starters/adapters/deno/adapters/deno/vite.config.mts +23 -0
- package/dist/starters/adapters/deno/package.json +24 -0
- package/dist/starters/adapters/deno/src/entry.deno.ts +45 -0
- package/dist/starters/adapters/express/README.md +9 -0
- package/dist/starters/adapters/express/adapters/express/vite.config.mts +15 -0
- package/dist/starters/adapters/express/package.json +33 -0
- package/dist/starters/adapters/express/src/entry.express.tsx +70 -0
- package/dist/starters/adapters/fastify/README.md +9 -0
- package/dist/starters/adapters/fastify/adapters/fastify/vite.config.mts +15 -0
- package/dist/starters/adapters/fastify/package.json +33 -0
- package/dist/starters/adapters/fastify/src/entry.fastify.tsx +48 -0
- package/dist/starters/adapters/fastify/src/plugins/fastify-qwik.ts +42 -0
- package/dist/starters/adapters/firebase/.eslintignore +1 -0
- package/dist/starters/adapters/firebase/.prettierignore +1 -0
- package/dist/starters/adapters/firebase/adapters/firebase/vite.config.mts +21 -0
- package/dist/starters/adapters/firebase/firebase.json +24 -0
- package/dist/starters/adapters/firebase/functions/.gitkeep +0 -0
- package/dist/starters/adapters/firebase/functions/index.js +5 -0
- package/dist/starters/adapters/firebase/functions/package.json +25 -0
- package/dist/starters/adapters/firebase/gitignore +3 -0
- package/dist/starters/adapters/firebase/package.json +24 -0
- package/dist/starters/adapters/firebase/src/entry-firebase.tsx +22 -0
- package/dist/starters/adapters/netlify-edge/README.md +64 -0
- package/dist/starters/adapters/netlify-edge/adapters/netlify-edge/vite.config.mts +16 -0
- package/dist/starters/adapters/netlify-edge/gitignore +2 -0
- package/dist/starters/adapters/netlify-edge/netlify.toml +3 -0
- package/dist/starters/adapters/netlify-edge/package.json +29 -0
- package/dist/starters/adapters/netlify-edge/public/_headers +2 -0
- package/dist/starters/adapters/netlify-edge/src/entry.netlify-edge.tsx +22 -0
- package/dist/starters/adapters/node-server/README.md +12 -0
- package/dist/starters/adapters/node-server/adapters/node-server/vite.config.mts +15 -0
- package/dist/starters/adapters/node-server/package.json +23 -0
- package/dist/starters/adapters/node-server/src/entry.node-server.tsx +39 -0
- package/dist/starters/adapters/static/README.md +5 -0
- package/dist/starters/adapters/static/adapters/static/vite.config.mts +19 -0
- package/dist/starters/adapters/static/package.json +19 -0
- package/dist/starters/adapters/vercel-edge/README.md +43 -0
- package/dist/starters/adapters/vercel-edge/adapters/vercel-edge/vite.config.mts +16 -0
- package/dist/starters/adapters/vercel-edge/gitignore +2 -0
- package/dist/starters/adapters/vercel-edge/package.json +28 -0
- package/dist/starters/adapters/vercel-edge/src/entry.vercel-edge.tsx +22 -0
- package/dist/starters/adapters/vercel-edge/vercel.json +22 -0
- package/dist/starters/features/auth/package.json +20 -0
- package/dist/starters/features/auth/src/routes/plugin@auth.ts +8 -0
- package/dist/starters/features/bootstrap/package.json +33 -0
- package/dist/starters/features/bootstrap/src/components/bootstrap/alert.tsx +8 -0
- package/dist/starters/features/bootstrap/src/components/bootstrap/button.tsx +8 -0
- package/dist/starters/features/bootstrap/src/components/bootstrap/index.ts +4 -0
- package/dist/starters/features/bootstrap/src/components/bootstrap/navbar.tsx +44 -0
- package/dist/starters/features/bootstrap/src/components/bootstrap/spinner.tsx +13 -0
- package/dist/starters/features/bootstrap/src/constants/data.ts +10 -0
- package/dist/starters/features/bootstrap/src/models/bootstrap.ts +8 -0
- package/dist/starters/features/bootstrap/src/routes/bootstrap/alerts/index.tsx +28 -0
- package/dist/starters/features/bootstrap/src/routes/bootstrap/buttons/index.tsx +32 -0
- package/dist/starters/features/bootstrap/src/routes/bootstrap/index.tsx +32 -0
- package/dist/starters/features/bootstrap/src/routes/bootstrap/layout.tsx +36 -0
- package/dist/starters/features/bootstrap/src/routes/bootstrap/spinners/index.tsx +45 -0
- package/dist/starters/features/builder.io/README.md +15 -0
- package/dist/starters/features/builder.io/package.json +27 -0
- package/dist/starters/features/builder.io/src/components/builder-registry.ts +25 -0
- package/dist/starters/features/builder.io/src/components/counter/counter.module.css +23 -0
- package/dist/starters/features/builder.io/src/components/counter/counter.tsx +81 -0
- package/dist/starters/features/builder.io/src/components/gauge/gauge.module.css +27 -0
- package/dist/starters/features/builder.io/src/components/gauge/index.tsx +38 -0
- package/dist/starters/features/builder.io/src/routes/[...index]/index.tsx +44 -0
- package/dist/starters/features/cypress/cypress/fixtures/example.json +5 -0
- package/dist/starters/features/cypress/cypress/support/commands.ts +37 -0
- package/dist/starters/features/cypress/cypress/support/component-index.html +12 -0
- package/dist/starters/features/cypress/cypress/support/component.ts +42 -0
- package/dist/starters/features/cypress/cypress/tsconfig.cy.json +17 -0
- package/dist/starters/features/cypress/cypress.config.ts +10 -0
- package/dist/starters/features/cypress/cypress.d.ts +14 -0
- package/dist/starters/features/cypress/package.json +28 -0
- package/dist/starters/features/cypress/src/components/example/example.cy.tsx +18 -0
- package/dist/starters/features/cypress/src/components/example/example.tsx +17 -0
- package/dist/starters/features/drizzle/drizzle/db/.gitkeep +0 -0
- package/dist/starters/features/drizzle/drizzle/migrations/.gitkeep +0 -0
- package/dist/starters/features/drizzle/drizzle/schema.ts +24 -0
- package/dist/starters/features/drizzle/drizzle.config.ts +9 -0
- package/dist/starters/features/drizzle/package.json +41 -0
- package/dist/starters/features/drizzle/src/routes/create/index.tsx +42 -0
- package/dist/starters/features/drizzle/src/routes/users/[userId]/index.tsx +36 -0
- package/dist/starters/features/drizzle/src/routes/users/index.tsx +30 -0
- package/dist/starters/features/leaflet-map/package.json +30 -0
- package/dist/starters/features/leaflet-map/src/components/leaflet-map/index.tsx +60 -0
- package/dist/starters/features/leaflet-map/src/helpers/boundary-box.tsx +6 -0
- package/dist/starters/features/leaflet-map/src/models/location.ts +9 -0
- package/dist/starters/features/leaflet-map/src/models/map.ts +7 -0
- package/dist/starters/features/leaflet-map/src/routes/basic-map/index.tsx +25 -0
- package/dist/starters/features/localize/package.json +37 -0
- package/dist/starters/features/localize/src/entry.ssr.tsx +32 -0
- package/dist/starters/features/localize/src/locales/message.en.json +8 -0
- package/dist/starters/features/localize/src/locales/message.it.json +8 -0
- package/dist/starters/features/localize/src/routes/[locale]/i18n-utils.ts +94 -0
- package/dist/starters/features/localize/src/routes/[locale]/index.tsx +52 -0
- package/dist/starters/features/localize/src/routes/[locale]/layout.tsx +12 -0
- package/dist/starters/features/orama/package.json +23 -0
- package/dist/starters/features/orama/src/orama/index.ts +41 -0
- package/dist/starters/features/orama/src/routes/orama/index.tsx +110 -0
- package/dist/starters/features/pandacss/.eslintignore +3 -0
- package/dist/starters/features/pandacss/.prettierignore +2 -0
- package/dist/starters/features/pandacss/gitignore +2 -0
- package/dist/starters/features/pandacss/package.json +31 -0
- package/dist/starters/features/pandacss/panda.config.ts +22 -0
- package/dist/starters/features/pandacss/postcss.config.js +5 -0
- package/dist/starters/features/pandacss/src/global.css +5 -0
- package/dist/starters/features/pandacss/src/routes/pandacss/index.tsx +18 -0
- package/dist/starters/features/partytown/package.json +41 -0
- package/dist/starters/features/partytown/src/components/partytown/partytown.tsx +19 -0
- package/dist/starters/features/playwright/package.json +18 -0
- package/dist/starters/features/playwright/playwright-report/index.html +22024 -0
- package/dist/starters/features/playwright/playwright.config.ts +40 -0
- package/dist/starters/features/playwright/tests/example.spec.ts +14 -0
- package/dist/starters/features/postcss/.vscode/settings.json +3 -0
- package/dist/starters/features/postcss/package.json +17 -0
- package/dist/starters/features/postcss/postcss.config.js +11 -0
- package/dist/starters/features/prisma/package.json +35 -0
- package/dist/starters/features/prisma/prisma/schema.prisma +17 -0
- package/dist/starters/features/prisma/src/routes/create/index.tsx +42 -0
- package/dist/starters/features/prisma/src/routes/users/[userId]/index.tsx +31 -0
- package/dist/starters/features/prisma/src/routes/users/index.tsx +27 -0
- package/dist/starters/features/react/package.json +41 -0
- package/dist/starters/features/react/src/integrations/react/mui.tsx +60 -0
- package/dist/starters/features/react/src/routes/react/index.tsx +45 -0
- package/dist/starters/features/storybook/.storybook/main.ts +22 -0
- package/dist/starters/features/storybook/.storybook/preview-head.html +3 -0
- package/dist/starters/features/storybook/.storybook/preview.tsx +19 -0
- package/dist/starters/features/storybook/.storybook/tsconfig.json +24 -0
- package/dist/starters/features/storybook/package.json +25 -0
- package/dist/starters/features/storybook/src/components/button/button.stories.tsx +17 -0
- package/dist/starters/features/storybook/src/components/button/button.tsx +27 -0
- package/dist/starters/features/styled-vanilla-extract/package.json +28 -0
- package/dist/starters/features/styled-vanilla-extract/src/routes/styled-flower/flower.css.ts +83 -0
- package/dist/starters/features/styled-vanilla-extract/src/routes/styled-flower/index.tsx +75 -0
- package/dist/starters/features/tailwind/.prettierrc.js +3 -0
- package/dist/starters/features/tailwind/.vscode/settings.json +3 -0
- package/dist/starters/features/tailwind/package.json +18 -0
- package/dist/starters/features/tailwind/postcss.config.cjs +6 -0
- package/dist/starters/features/tailwind/src/global.css +7 -0
- package/dist/starters/features/tailwind/tailwind.config.js +8 -0
- package/dist/starters/features/turso/.env.local +2 -0
- package/dist/starters/features/turso/package.json +30 -0
- package/dist/starters/features/turso/src/utils/turso.ts +21 -0
- package/dist/starters/features/vitest/package.json +20 -0
- package/dist/starters/features/vitest/src/components/example/example.spec.tsx +32 -0
- package/dist/starters/features/vitest/src/components/example/example.tsx +17 -0
- package/dist/templates/barrel/component/index.tsx.template +13 -0
- package/dist/templates/barrel/markdown/index.md.template +5 -0
- package/dist/templates/barrel/mdx/index.mdx.template +5 -0
- package/dist/templates/barrel/route/index.tsx.template +9 -0
- package/dist/templates/qwik/component/[slug].tsx.template +13 -0
- package/dist/templates/qwik/markdown/index.md.template +5 -0
- package/dist/templates/qwik/mdx/index.mdx.template +5 -0
- package/dist/templates/qwik/route/index.tsx.template +9 -0
- package/dist/testing/index.cjs +32425 -0
- package/dist/testing/index.d.ts +140 -0
- package/dist/testing/index.mjs +32389 -0
- package/dist/testing/package.json +9 -0
- package/jsx-dev-runtime.d.ts +2 -0
- package/jsx-runtime.d.ts +2 -0
- package/loader.d.ts +2 -0
- package/optimizer.d.ts +2 -0
- package/package.json +20 -12
- package/public.d.ts +68 -0
- package/qwik-cli.cjs +4 -0
- package/server.d.ts +15 -0
- package/testing.d.ts +2 -0
|
@@ -0,0 +1,751 @@
|
|
|
1
|
+
var __defProp = Object.defineProperty;
|
|
2
|
+
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
3
|
+
var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "symbol" ? key + "" : key, value);
|
|
4
|
+
import { sync$, component$ } from "@qwik.dev/core";
|
|
5
|
+
/**
|
|
6
|
+
* @license
|
|
7
|
+
* @qwik.dev/core 2.0.0-alpha.0-dev+dd93926
|
|
8
|
+
* Copyright QwikDev. All Rights Reserved.
|
|
9
|
+
* Use of this source code is governed by an MIT-style license that can be
|
|
10
|
+
* found in the LICENSE file at https://github.com/QwikDev/qwik/blob/main/LICENSE
|
|
11
|
+
*/
|
|
12
|
+
const logError = (message, ...optionalParams) => createAndLogError(false, message, ...optionalParams);
|
|
13
|
+
const throwErrorAndStop = (message, ...optionalParams) => {
|
|
14
|
+
throw createAndLogError(false, message, ...optionalParams);
|
|
15
|
+
};
|
|
16
|
+
const createAndLogError = (asyncThrow, message, ...optionalParams) => {
|
|
17
|
+
const err = message instanceof Error ? message : new Error(message);
|
|
18
|
+
return console.error("%cQWIK ERROR", "", err.message, ...optionalParams, err.stack), asyncThrow && setTimeout(() => {
|
|
19
|
+
throw err;
|
|
20
|
+
}, 0), err;
|
|
21
|
+
};
|
|
22
|
+
function assertTrue() {
|
|
23
|
+
}
|
|
24
|
+
function assertFalse() {
|
|
25
|
+
}
|
|
26
|
+
const isPromise = (value) => !!value && "object" == typeof value && "function" == typeof value.then;
|
|
27
|
+
function retryOnPromise(fn, retryCount = 0) {
|
|
28
|
+
try {
|
|
29
|
+
return fn();
|
|
30
|
+
} catch (e) {
|
|
31
|
+
if (isPromise(e) && retryCount < 100) {
|
|
32
|
+
return e.then(retryOnPromise.bind(null, fn, retryCount++));
|
|
33
|
+
}
|
|
34
|
+
throw e;
|
|
35
|
+
}
|
|
36
|
+
}
|
|
37
|
+
const isArray = (v) => Array.isArray(v);
|
|
38
|
+
var VirtualType;
|
|
39
|
+
!function(VirtualType2) {
|
|
40
|
+
VirtualType2.Virtual = "V", VirtualType2.Fragment = "F", VirtualType2.WrappedSignal = "S", VirtualType2.Awaited = "A", VirtualType2.Component = "C", VirtualType2.InlineComponent = "I", VirtualType2.Projection = "P";
|
|
41
|
+
}(VirtualType || (VirtualType = {}));
|
|
42
|
+
({
|
|
43
|
+
[VirtualType.Virtual]: "\x1B[34mVirtual\x1B[0m",
|
|
44
|
+
[VirtualType.Fragment]: "\x1B[34mFragment\x1B[0m",
|
|
45
|
+
[VirtualType.WrappedSignal]: "\x1B[34mSignal\x1B[0m",
|
|
46
|
+
[VirtualType.Awaited]: "\x1B[34mAwaited\x1B[0m",
|
|
47
|
+
[VirtualType.Component]: "\x1B[34mComponent\x1B[0m",
|
|
48
|
+
[VirtualType.InlineComponent]: "\x1B[34mInlineComponent\x1B[0m",
|
|
49
|
+
[VirtualType.Projection]: "\x1B[34mProjection\x1B[0m"
|
|
50
|
+
});
|
|
51
|
+
var QContainerValue;
|
|
52
|
+
!function(QContainerValue2) {
|
|
53
|
+
QContainerValue2.PAUSED = "paused", QContainerValue2.RESUMED = "resumed", QContainerValue2.HTML = "html", QContainerValue2.TEXT = "text";
|
|
54
|
+
}(QContainerValue || (QContainerValue = {}));
|
|
55
|
+
const QContainerSelector = "[q\\:container]:not([q\\:container=" + QContainerValue.HTML + "]):not([q\\:container=" + QContainerValue.TEXT + "])";
|
|
56
|
+
const dangerouslySetInnerHTML = "dangerouslySetInnerHTML";
|
|
57
|
+
const isQrl$1 = (value) => "function" == typeof value && "function" == typeof value.getSymbol;
|
|
58
|
+
const EMPTY_OBJ = {};
|
|
59
|
+
Object.freeze(EMPTY_OBJ);
|
|
60
|
+
class Subscriber {
|
|
61
|
+
constructor() {
|
|
62
|
+
__publicField(this, "$effectDependencies$", null);
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function isSubscriber(value) {
|
|
66
|
+
return value instanceof Subscriber || value instanceof WrappedSignal;
|
|
67
|
+
}
|
|
68
|
+
const NEEDS_COMPUTATION = Symbol("invalid");
|
|
69
|
+
const throwIfQRLNotResolved = (qrl2) => {
|
|
70
|
+
if (!qrl2.resolved) {
|
|
71
|
+
throw qrl2.resolve();
|
|
72
|
+
}
|
|
73
|
+
};
|
|
74
|
+
const isSignal = (value) => value instanceof Signal;
|
|
75
|
+
class EffectData {
|
|
76
|
+
constructor(data) {
|
|
77
|
+
__publicField(this, "data");
|
|
78
|
+
this.data = data;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
var EffectSubscriptionsProp;
|
|
82
|
+
var EffectProperty;
|
|
83
|
+
!function(EffectSubscriptionsProp2) {
|
|
84
|
+
EffectSubscriptionsProp2[EffectSubscriptionsProp2.EFFECT = 0] = "EFFECT", EffectSubscriptionsProp2[EffectSubscriptionsProp2.PROPERTY = 1] = "PROPERTY", EffectSubscriptionsProp2[EffectSubscriptionsProp2.FIRST_BACK_REF_OR_DATA = 2] = "FIRST_BACK_REF_OR_DATA";
|
|
85
|
+
}(EffectSubscriptionsProp || (EffectSubscriptionsProp = {})), function(EffectProperty2) {
|
|
86
|
+
EffectProperty2.COMPONENT = ":", EffectProperty2.VNODE = ".";
|
|
87
|
+
}(EffectProperty || (EffectProperty = {}));
|
|
88
|
+
class Signal {
|
|
89
|
+
constructor(container, value) {
|
|
90
|
+
__publicField(this, "$untrackedValue$");
|
|
91
|
+
__publicField(this, "$effects$", null);
|
|
92
|
+
__publicField(this, "$container$", null);
|
|
93
|
+
this.$container$ = container, this.$untrackedValue$ = value;
|
|
94
|
+
}
|
|
95
|
+
get untrackedValue() {
|
|
96
|
+
return this.$untrackedValue$;
|
|
97
|
+
}
|
|
98
|
+
set untrackedValue(value) {
|
|
99
|
+
this.$untrackedValue$ = value;
|
|
100
|
+
}
|
|
101
|
+
get value() {
|
|
102
|
+
const ctx = tryGetInvokeContext();
|
|
103
|
+
if (ctx) {
|
|
104
|
+
if (null === this.$container$) {
|
|
105
|
+
if (!ctx.$container$) {
|
|
106
|
+
return this.untrackedValue;
|
|
107
|
+
}
|
|
108
|
+
this.$container$ = ctx.$container$;
|
|
109
|
+
} else {
|
|
110
|
+
assertTrue(!ctx.$container$ || ctx.$container$ === this.$container$);
|
|
111
|
+
}
|
|
112
|
+
const effectSubscriber = ctx.$effectSubscriber$;
|
|
113
|
+
if (effectSubscriber) {
|
|
114
|
+
const effects = this.$effects$ || (this.$effects$ = []);
|
|
115
|
+
ensureContainsEffect(effects, effectSubscriber), ensureContains(effectSubscriber, this), isSubscriber(this) && ensureEffectContainsSubscriber(effectSubscriber[EffectSubscriptionsProp.EFFECT], this, this.$container$);
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return this.untrackedValue;
|
|
119
|
+
}
|
|
120
|
+
set value(value) {
|
|
121
|
+
value !== this.$untrackedValue$ && (this.$untrackedValue$ = value, triggerEffects(this.$container$, this, this.$effects$));
|
|
122
|
+
}
|
|
123
|
+
valueOf() {
|
|
124
|
+
}
|
|
125
|
+
toString() {
|
|
126
|
+
return `[${this.constructor.name}${this.$invalid$ ? " INVALID" : ""} ${String(this.$untrackedValue$)}]` + (this.$effects$?.map((e) => "\n -> " + pad(qwikDebugToString(e[0]), " ")).join("\n") || "");
|
|
127
|
+
}
|
|
128
|
+
toJSON() {
|
|
129
|
+
return {
|
|
130
|
+
value: this.$untrackedValue$
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
}
|
|
134
|
+
const ensureContains = (array, value) => {
|
|
135
|
+
-1 === array.indexOf(value) && array.push(value);
|
|
136
|
+
};
|
|
137
|
+
const ensureContainsEffect = (array, effectSubscriptions) => {
|
|
138
|
+
for (let i = 0; i < array.length; i++) {
|
|
139
|
+
const existingEffect = array[i];
|
|
140
|
+
if (existingEffect[0] === effectSubscriptions[0] && existingEffect[1] === effectSubscriptions[1]) {
|
|
141
|
+
return;
|
|
142
|
+
}
|
|
143
|
+
}
|
|
144
|
+
array.push(effectSubscriptions);
|
|
145
|
+
};
|
|
146
|
+
const ensureEffectContainsSubscriber = (effect, subscriber, container) => {
|
|
147
|
+
if (isSubscriber(effect)) {
|
|
148
|
+
if (effect.$effectDependencies$ || (effect.$effectDependencies$ = []), subscriberExistInSubscribers(effect.$effectDependencies$, subscriber)) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
effect.$effectDependencies$.push(subscriber);
|
|
152
|
+
} else if (vnode_isVNode(effect) && vnode_isVirtualVNode(effect)) {
|
|
153
|
+
let subscribers = vnode_getProp(effect, "q:subs", container ? container.$getObjectById$ : null);
|
|
154
|
+
if (subscribers || (subscribers = []), subscriberExistInSubscribers(subscribers, subscriber)) {
|
|
155
|
+
return;
|
|
156
|
+
}
|
|
157
|
+
subscribers.push(subscriber), vnode_setProp(effect, "q:subs", subscribers);
|
|
158
|
+
} else if (isSSRNode(effect)) {
|
|
159
|
+
let subscribers = effect.getProp("q:subs");
|
|
160
|
+
if (subscribers || (subscribers = []), subscriberExistInSubscribers(subscribers, subscriber)) {
|
|
161
|
+
return;
|
|
162
|
+
}
|
|
163
|
+
subscribers.push(subscriber), effect.setProp("q:subs", subscribers);
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
const isSSRNode = (effect) => "setProp" in effect && "getProp" in effect && "removeProp" in effect && "id" in effect;
|
|
167
|
+
const subscriberExistInSubscribers = (subscribers, subscriber) => {
|
|
168
|
+
for (let i = 0; i < subscribers.length; i++) {
|
|
169
|
+
if (subscribers[i] === subscriber) {
|
|
170
|
+
return true;
|
|
171
|
+
}
|
|
172
|
+
}
|
|
173
|
+
return false;
|
|
174
|
+
};
|
|
175
|
+
const triggerEffects = (container, signal, effects) => {
|
|
176
|
+
if (effects) {
|
|
177
|
+
const scheduleEffect = (effectSubscriptions) => {
|
|
178
|
+
const effect = effectSubscriptions[EffectSubscriptionsProp.EFFECT];
|
|
179
|
+
const property = effectSubscriptions[EffectSubscriptionsProp.PROPERTY];
|
|
180
|
+
if (isTask(effect)) {
|
|
181
|
+
effect.$flags$ |= TaskFlags.DIRTY;
|
|
182
|
+
let choreType = ChoreType.TASK;
|
|
183
|
+
effect.$flags$ & TaskFlags.VISIBLE_TASK ? choreType = ChoreType.VISIBLE : effect.$flags$ & TaskFlags.RESOURCE && (choreType = ChoreType.RESOURCE), container.$scheduler$(choreType, effect);
|
|
184
|
+
} else if (effect instanceof Signal) {
|
|
185
|
+
effect instanceof ComputedSignal && (effect.$computeQrl$.resolved || container.$scheduler$(ChoreType.QRL_RESOLVE, null, effect.$computeQrl$));
|
|
186
|
+
try {
|
|
187
|
+
retryOnPromise(() => effect.$invalidate$());
|
|
188
|
+
} catch (e) {
|
|
189
|
+
logError(e);
|
|
190
|
+
}
|
|
191
|
+
} else if (property === EffectProperty.COMPONENT) {
|
|
192
|
+
const host = effect;
|
|
193
|
+
const qrl2 = container.getHostProp(host, "q:renderFn");
|
|
194
|
+
const props = container.getHostProp(host, "q:props");
|
|
195
|
+
container.$scheduler$(ChoreType.COMPONENT, host, qrl2, props);
|
|
196
|
+
} else if (property === EffectProperty.VNODE) {
|
|
197
|
+
container.$scheduler$(ChoreType.NODE_DIFF, effect, effect, signal);
|
|
198
|
+
} else {
|
|
199
|
+
let effectData = effectSubscriptions[EffectSubscriptionsProp.FIRST_BACK_REF_OR_DATA];
|
|
200
|
+
if (effectData instanceof EffectData) {
|
|
201
|
+
const payload = {
|
|
202
|
+
...effectData.data,
|
|
203
|
+
$value$: signal
|
|
204
|
+
};
|
|
205
|
+
container.$scheduler$(ChoreType.NODE_PROP, effect, property, payload);
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
};
|
|
209
|
+
effects.forEach(scheduleEffect);
|
|
210
|
+
}
|
|
211
|
+
};
|
|
212
|
+
class ComputedSignal extends Signal {
|
|
213
|
+
constructor(container, fn) {
|
|
214
|
+
super(container, NEEDS_COMPUTATION);
|
|
215
|
+
__publicField(this, "$computeQrl$");
|
|
216
|
+
__publicField(this, "$invalid$", true);
|
|
217
|
+
this.$computeQrl$ = fn;
|
|
218
|
+
}
|
|
219
|
+
$invalidate$() {
|
|
220
|
+
this.$invalid$ = true, this.$effects$?.length && this.$computeIfNeeded$() && triggerEffects(this.$container$, this, this.$effects$);
|
|
221
|
+
}
|
|
222
|
+
force() {
|
|
223
|
+
this.$invalid$ = true, triggerEffects(this.$container$, this, this.$effects$);
|
|
224
|
+
}
|
|
225
|
+
get untrackedValue() {
|
|
226
|
+
return this.$computeIfNeeded$(), assertFalse(this.$untrackedValue$ === NEEDS_COMPUTATION), this.$untrackedValue$;
|
|
227
|
+
}
|
|
228
|
+
$computeIfNeeded$() {
|
|
229
|
+
if (!this.$invalid$) {
|
|
230
|
+
return false;
|
|
231
|
+
}
|
|
232
|
+
const computeQrl = this.$computeQrl$;
|
|
233
|
+
throwIfQRLNotResolved(computeQrl);
|
|
234
|
+
const ctx = tryGetInvokeContext();
|
|
235
|
+
const previousEffectSubscription = ctx?.$effectSubscriber$;
|
|
236
|
+
ctx && (ctx.$effectSubscriber$ = [this, EffectProperty.VNODE]);
|
|
237
|
+
try {
|
|
238
|
+
const untrackedValue = computeQrl.getFn(ctx)();
|
|
239
|
+
isPromise(untrackedValue) && throwErrorAndStop(`useComputedSignal$ QRL ${computeQrl.dev ? `${computeQrl.dev.file} ` : ""}${computeQrl.$hash$} returned a Promise`), this.$invalid$ = false;
|
|
240
|
+
const didChange = untrackedValue !== this.$untrackedValue$;
|
|
241
|
+
return didChange && (this.$untrackedValue$ = untrackedValue), didChange;
|
|
242
|
+
} finally {
|
|
243
|
+
ctx && (ctx.$effectSubscriber$ = previousEffectSubscription);
|
|
244
|
+
}
|
|
245
|
+
}
|
|
246
|
+
get value() {
|
|
247
|
+
return super.value;
|
|
248
|
+
}
|
|
249
|
+
set value(_) {
|
|
250
|
+
throwErrorAndStop("ComputedSignal is read-only");
|
|
251
|
+
}
|
|
252
|
+
}
|
|
253
|
+
class WrappedSignal extends Signal {
|
|
254
|
+
constructor(container, fn, args, fnStr) {
|
|
255
|
+
super(container, NEEDS_COMPUTATION);
|
|
256
|
+
__publicField(this, "$args$");
|
|
257
|
+
__publicField(this, "$func$");
|
|
258
|
+
__publicField(this, "$funcStr$");
|
|
259
|
+
__publicField(this, "$invalid$", true);
|
|
260
|
+
__publicField(this, "$effectDependencies$", null);
|
|
261
|
+
this.$args$ = args, this.$func$ = fn, this.$funcStr$ = fnStr;
|
|
262
|
+
}
|
|
263
|
+
$invalidate$() {
|
|
264
|
+
this.$invalid$ = true, this.$effects$?.length && this.$computeIfNeeded$() && triggerEffects(this.$container$, this, this.$effects$);
|
|
265
|
+
}
|
|
266
|
+
force() {
|
|
267
|
+
this.$invalid$ = true, triggerEffects(this.$container$, this, this.$effects$);
|
|
268
|
+
}
|
|
269
|
+
get untrackedValue() {
|
|
270
|
+
return this.$computeIfNeeded$(), assertFalse(this.$untrackedValue$ === NEEDS_COMPUTATION), this.$untrackedValue$;
|
|
271
|
+
}
|
|
272
|
+
$computeIfNeeded$() {
|
|
273
|
+
if (!this.$invalid$) {
|
|
274
|
+
return false;
|
|
275
|
+
}
|
|
276
|
+
const untrackedValue = trackSignal(() => this.$func$(...this.$args$), this, EffectProperty.VNODE, this.$container$);
|
|
277
|
+
const didChange = untrackedValue !== this.$untrackedValue$;
|
|
278
|
+
return didChange && (this.$untrackedValue$ = untrackedValue), didChange;
|
|
279
|
+
}
|
|
280
|
+
get value() {
|
|
281
|
+
return super.value;
|
|
282
|
+
}
|
|
283
|
+
set value(_) {
|
|
284
|
+
throwErrorAndStop("WrappedSignal is read-only");
|
|
285
|
+
}
|
|
286
|
+
}
|
|
287
|
+
var TaskFlags;
|
|
288
|
+
!function(TaskFlags2) {
|
|
289
|
+
TaskFlags2[TaskFlags2.VISIBLE_TASK = 1] = "VISIBLE_TASK", TaskFlags2[TaskFlags2.TASK = 2] = "TASK", TaskFlags2[TaskFlags2.RESOURCE = 4] = "RESOURCE", TaskFlags2[TaskFlags2.DIRTY = 8] = "DIRTY";
|
|
290
|
+
}(TaskFlags || (TaskFlags = {}));
|
|
291
|
+
class Task extends Subscriber {
|
|
292
|
+
constructor($flags$, $index$, $el$, $qrl$, $state$, $destroy$) {
|
|
293
|
+
super();
|
|
294
|
+
__publicField(this, "$flags$");
|
|
295
|
+
__publicField(this, "$index$");
|
|
296
|
+
__publicField(this, "$el$");
|
|
297
|
+
__publicField(this, "$qrl$");
|
|
298
|
+
__publicField(this, "$state$");
|
|
299
|
+
__publicField(this, "$destroy$");
|
|
300
|
+
this.$flags$ = $flags$, this.$index$ = $index$, this.$el$ = $el$, this.$qrl$ = $qrl$, this.$state$ = $state$, this.$destroy$ = $destroy$;
|
|
301
|
+
}
|
|
302
|
+
}
|
|
303
|
+
const isTask = (value) => value instanceof Task;
|
|
304
|
+
const STORE_TARGET = Symbol("store.target");
|
|
305
|
+
var StoreFlags;
|
|
306
|
+
!function(StoreFlags2) {
|
|
307
|
+
StoreFlags2[StoreFlags2.NONE = 0] = "NONE", StoreFlags2[StoreFlags2.RECURSIVE = 1] = "RECURSIVE", StoreFlags2[StoreFlags2.IMMUTABLE = 2] = "IMMUTABLE";
|
|
308
|
+
}(StoreFlags || (StoreFlags = {}));
|
|
309
|
+
const isStore = (value) => STORE_TARGET in value;
|
|
310
|
+
var VNodeFlags;
|
|
311
|
+
var VNodeFlagsIndex;
|
|
312
|
+
var VNodeProps;
|
|
313
|
+
var ElementVNodeProps;
|
|
314
|
+
var TextVNodeProps;
|
|
315
|
+
var VirtualVNodeProps;
|
|
316
|
+
!function(VNodeFlags2) {
|
|
317
|
+
VNodeFlags2[VNodeFlags2.Element = 1] = "Element", VNodeFlags2[VNodeFlags2.Virtual = 2] = "Virtual", VNodeFlags2[VNodeFlags2.ELEMENT_OR_VIRTUAL_MASK = 3] = "ELEMENT_OR_VIRTUAL_MASK", VNodeFlags2[VNodeFlags2.ELEMENT_OR_TEXT_MASK = 5] = "ELEMENT_OR_TEXT_MASK", VNodeFlags2[VNodeFlags2.TYPE_MASK = 7] = "TYPE_MASK", VNodeFlags2[VNodeFlags2.INFLATED_TYPE_MASK = 15] = "INFLATED_TYPE_MASK", VNodeFlags2[VNodeFlags2.Text = 4] = "Text", VNodeFlags2[VNodeFlags2.Inflated = 8] = "Inflated", VNodeFlags2[VNodeFlags2.Resolved = 16] = "Resolved", VNodeFlags2[VNodeFlags2.Deleted = 32] = "Deleted", VNodeFlags2[VNodeFlags2.NAMESPACE_MASK = 192] = "NAMESPACE_MASK", VNodeFlags2[VNodeFlags2.NEGATED_NAMESPACE_MASK = -193] = "NEGATED_NAMESPACE_MASK", VNodeFlags2[VNodeFlags2.NS_html = 0] = "NS_html", VNodeFlags2[VNodeFlags2.NS_svg = 64] = "NS_svg", VNodeFlags2[VNodeFlags2.NS_math = 128] = "NS_math";
|
|
318
|
+
}(VNodeFlags || (VNodeFlags = {})), function(VNodeFlagsIndex2) {
|
|
319
|
+
VNodeFlagsIndex2[VNodeFlagsIndex2.mask = -256] = "mask", VNodeFlagsIndex2[VNodeFlagsIndex2.negated_mask = 255] = "negated_mask", VNodeFlagsIndex2[VNodeFlagsIndex2.shift = 8] = "shift";
|
|
320
|
+
}(VNodeFlagsIndex || (VNodeFlagsIndex = {})), function(VNodeProps2) {
|
|
321
|
+
VNodeProps2[VNodeProps2.flags = 0] = "flags", VNodeProps2[VNodeProps2.parent = 1] = "parent", VNodeProps2[VNodeProps2.previousSibling = 2] = "previousSibling", VNodeProps2[VNodeProps2.nextSibling = 3] = "nextSibling";
|
|
322
|
+
}(VNodeProps || (VNodeProps = {})), function(ElementVNodeProps2) {
|
|
323
|
+
ElementVNodeProps2[ElementVNodeProps2.firstChild = 4] = "firstChild", ElementVNodeProps2[ElementVNodeProps2.lastChild = 5] = "lastChild", ElementVNodeProps2[ElementVNodeProps2.element = 6] = "element", ElementVNodeProps2[ElementVNodeProps2.elementName = 7] = "elementName", ElementVNodeProps2[ElementVNodeProps2.PROPS_OFFSET = 8] = "PROPS_OFFSET";
|
|
324
|
+
}(ElementVNodeProps || (ElementVNodeProps = {})), function(TextVNodeProps2) {
|
|
325
|
+
TextVNodeProps2[TextVNodeProps2.node = 4] = "node", TextVNodeProps2[TextVNodeProps2.text = 5] = "text";
|
|
326
|
+
}(TextVNodeProps || (TextVNodeProps = {})), function(VirtualVNodeProps2) {
|
|
327
|
+
VirtualVNodeProps2[VirtualVNodeProps2.firstChild = 4] = "firstChild", VirtualVNodeProps2[VirtualVNodeProps2.lastChild = 5] = "lastChild", VirtualVNodeProps2[VirtualVNodeProps2.PROPS_OFFSET = 6] = "PROPS_OFFSET";
|
|
328
|
+
}(VirtualVNodeProps || (VirtualVNodeProps = {}));
|
|
329
|
+
var SiblingsArray;
|
|
330
|
+
var ChoreType;
|
|
331
|
+
!function(SiblingsArray2) {
|
|
332
|
+
SiblingsArray2[SiblingsArray2.Name = 0] = "Name", SiblingsArray2[SiblingsArray2.Key = 1] = "Key", SiblingsArray2[SiblingsArray2.VNode = 2] = "VNode", SiblingsArray2[SiblingsArray2.Size = 3] = "Size", SiblingsArray2[SiblingsArray2.NextVNode = 5] = "NextVNode";
|
|
333
|
+
}(SiblingsArray || (SiblingsArray = {})), function(ChoreType2) {
|
|
334
|
+
ChoreType2[ChoreType2.MACRO = 112] = "MACRO", ChoreType2[ChoreType2.MICRO = 15] = "MICRO", ChoreType2[ChoreType2.QRL_RESOLVE = 1] = "QRL_RESOLVE", ChoreType2[ChoreType2.RESOURCE = 2] = "RESOURCE", ChoreType2[ChoreType2.TASK = 3] = "TASK", ChoreType2[ChoreType2.NODE_DIFF = 4] = "NODE_DIFF", ChoreType2[ChoreType2.NODE_PROP = 5] = "NODE_PROP", ChoreType2[ChoreType2.COMPONENT_SSR = 6] = "COMPONENT_SSR", ChoreType2[ChoreType2.COMPONENT = 7] = "COMPONENT", ChoreType2[ChoreType2.WAIT_FOR_COMPONENTS = 16] = "WAIT_FOR_COMPONENTS", ChoreType2[ChoreType2.JOURNAL_FLUSH = 48] = "JOURNAL_FLUSH", ChoreType2[ChoreType2.VISIBLE = 64] = "VISIBLE", ChoreType2[ChoreType2.CLEANUP_VISIBLE = 80] = "CLEANUP_VISIBLE", ChoreType2[ChoreType2.WAIT_FOR_ALL = 127] = "WAIT_FOR_ALL";
|
|
335
|
+
}(ChoreType || (ChoreType = {}));
|
|
336
|
+
let _context;
|
|
337
|
+
const tryGetInvokeContext = () => {
|
|
338
|
+
if (!_context) {
|
|
339
|
+
const context = "undefined" != typeof document && document && document.__q_context__;
|
|
340
|
+
if (!context) {
|
|
341
|
+
return;
|
|
342
|
+
}
|
|
343
|
+
return isArray(context) ? document.__q_context__ = newInvokeContextFromTuple(context) : context;
|
|
344
|
+
}
|
|
345
|
+
return _context;
|
|
346
|
+
};
|
|
347
|
+
function invoke(context, fn, ...args) {
|
|
348
|
+
return invokeApply.call(this, context, fn, args);
|
|
349
|
+
}
|
|
350
|
+
function invokeApply(context, fn, args) {
|
|
351
|
+
const previousContext = _context;
|
|
352
|
+
let returnValue;
|
|
353
|
+
try {
|
|
354
|
+
_context = context, returnValue = fn.apply(this, args);
|
|
355
|
+
} finally {
|
|
356
|
+
_context = previousContext;
|
|
357
|
+
}
|
|
358
|
+
return returnValue;
|
|
359
|
+
}
|
|
360
|
+
const newInvokeContextFromTuple = ([element, event, url]) => {
|
|
361
|
+
const container = element.closest(QContainerSelector);
|
|
362
|
+
const locale = container?.getAttribute("q:locale") || void 0;
|
|
363
|
+
return newInvokeContext(locale, void 0, element, event, url);
|
|
364
|
+
};
|
|
365
|
+
const newInvokeContext = (locale, hostElement, element, event, url) => {
|
|
366
|
+
const ctx = {
|
|
367
|
+
$url$: url,
|
|
368
|
+
$i$: 0,
|
|
369
|
+
$hostElement$: hostElement,
|
|
370
|
+
$element$: element,
|
|
371
|
+
$event$: event,
|
|
372
|
+
$qrl$: void 0,
|
|
373
|
+
$effectSubscriber$: void 0,
|
|
374
|
+
$locale$: locale || ("object" == typeof event && event && "locale" in event ? event.locale : void 0),
|
|
375
|
+
$container$: void 0
|
|
376
|
+
};
|
|
377
|
+
return ctx;
|
|
378
|
+
};
|
|
379
|
+
const untrack = (fn) => invoke(void 0, fn);
|
|
380
|
+
const trackInvocation = /* @__PURE__ */ newInvokeContext(void 0, void 0, void 0, "qRender");
|
|
381
|
+
const trackSignal = (fn, subscriber, property, container, data) => {
|
|
382
|
+
const previousSubscriber = trackInvocation.$effectSubscriber$;
|
|
383
|
+
const previousContainer = trackInvocation.$container$;
|
|
384
|
+
try {
|
|
385
|
+
return trackInvocation.$effectSubscriber$ = [subscriber, property], data && trackInvocation.$effectSubscriber$.push(data), trackInvocation.$container$ = container, invoke(trackInvocation, fn);
|
|
386
|
+
} finally {
|
|
387
|
+
trackInvocation.$effectSubscriber$ = previousSubscriber, trackInvocation.$container$ = previousContainer;
|
|
388
|
+
}
|
|
389
|
+
};
|
|
390
|
+
const _CONST_PROPS = Symbol("CONST");
|
|
391
|
+
const _VAR_PROPS = Symbol("VAR");
|
|
392
|
+
const _jsxSorted = (type, varProps, constProps, children, flags, key) => {
|
|
393
|
+
const processed = null == key ? null : String(key);
|
|
394
|
+
const node = new JSXNodeImpl(type, varProps || {}, null, children, flags, processed);
|
|
395
|
+
return node;
|
|
396
|
+
};
|
|
397
|
+
const _jsxSplit = (type, varProps, constProps, children, flags, key, dev) => {
|
|
398
|
+
let sortedProps;
|
|
399
|
+
return sortedProps = varProps ? Object.fromEntries(untrack(() => Object.entries(varProps)).filter((entry) => {
|
|
400
|
+
const attr = entry[0];
|
|
401
|
+
return "children" === attr ? (children ?? (children = entry[1]), false) : "key" === attr ? (key = entry[1], false) : !constProps;
|
|
402
|
+
}).sort(([a2], [b]) => a2 < b ? -1 : 1)) : EMPTY_OBJ, _jsxSorted(type, sortedProps, constProps, children, flags, key);
|
|
403
|
+
};
|
|
404
|
+
const jsx = (type, props, key) => _jsxSplit(type, props, null, null, 0, null);
|
|
405
|
+
class JSXNodeImpl {
|
|
406
|
+
constructor(type, varProps, constProps, children, flags, key = null) {
|
|
407
|
+
__publicField(this, "type");
|
|
408
|
+
__publicField(this, "varProps");
|
|
409
|
+
__publicField(this, "constProps");
|
|
410
|
+
__publicField(this, "children");
|
|
411
|
+
__publicField(this, "flags");
|
|
412
|
+
__publicField(this, "key");
|
|
413
|
+
__publicField(this, "dev");
|
|
414
|
+
__publicField(this, "_proxy", null);
|
|
415
|
+
this.type = type, this.varProps = varProps, this.constProps = constProps, this.children = children, this.flags = flags, this.key = key;
|
|
416
|
+
}
|
|
417
|
+
get props() {
|
|
418
|
+
return this._proxy || (this._proxy = createPropsProxy(this.varProps, this.constProps, this.children)), this._proxy;
|
|
419
|
+
}
|
|
420
|
+
}
|
|
421
|
+
const isJSXNode = (n) => n instanceof JSXNodeImpl;
|
|
422
|
+
function createPropsProxy(varProps, constProps, children) {
|
|
423
|
+
return new Proxy({}, new PropsProxyHandler(varProps, constProps, children));
|
|
424
|
+
}
|
|
425
|
+
class PropsProxyHandler {
|
|
426
|
+
constructor($varProps$, $constProps$, $children$) {
|
|
427
|
+
__publicField(this, "$varProps$");
|
|
428
|
+
__publicField(this, "$constProps$");
|
|
429
|
+
__publicField(this, "$children$");
|
|
430
|
+
this.$varProps$ = $varProps$, this.$constProps$ = $constProps$, this.$children$ = $children$;
|
|
431
|
+
}
|
|
432
|
+
get(_, prop) {
|
|
433
|
+
if (prop === _CONST_PROPS) {
|
|
434
|
+
return this.$constProps$;
|
|
435
|
+
}
|
|
436
|
+
if (prop === _VAR_PROPS) {
|
|
437
|
+
return this.$varProps$;
|
|
438
|
+
}
|
|
439
|
+
if (null != this.$children$ && "children" === prop) {
|
|
440
|
+
return this.$children$;
|
|
441
|
+
}
|
|
442
|
+
const value = this.$constProps$ && prop in this.$constProps$ ? this.$constProps$[prop] : this.$varProps$[prop];
|
|
443
|
+
return value instanceof WrappedSignal ? value.value : value;
|
|
444
|
+
}
|
|
445
|
+
set(_, prop, value) {
|
|
446
|
+
return prop === _CONST_PROPS ? (this.$constProps$ = value, true) : prop === _VAR_PROPS ? (this.$varProps$ = value, true) : (this.$constProps$ && prop in this.$constProps$ ? this.$constProps$[prop] = value : this.$varProps$[prop] = value, true);
|
|
447
|
+
}
|
|
448
|
+
deleteProperty(_, prop) {
|
|
449
|
+
if ("string" != typeof prop) {
|
|
450
|
+
return false;
|
|
451
|
+
}
|
|
452
|
+
let didDelete = delete this.$varProps$[prop];
|
|
453
|
+
return this.$constProps$ && (didDelete = delete this.$constProps$[prop] || didDelete), null != this.$children$ && "children" === prop && (this.$children$ = null), didDelete;
|
|
454
|
+
}
|
|
455
|
+
has(_, prop) {
|
|
456
|
+
return "children" === prop && null != this.$children$ || prop === _CONST_PROPS || prop === _VAR_PROPS || prop in this.$varProps$ || !!this.$constProps$ && prop in this.$constProps$;
|
|
457
|
+
}
|
|
458
|
+
getOwnPropertyDescriptor(target, p) {
|
|
459
|
+
return {
|
|
460
|
+
configurable: true,
|
|
461
|
+
enumerable: true,
|
|
462
|
+
value: "children" === p && null != this.$children$ ? this.$children$ : this.$constProps$ && p in this.$constProps$ ? this.$constProps$[p] : this.$varProps$[p]
|
|
463
|
+
};
|
|
464
|
+
}
|
|
465
|
+
ownKeys() {
|
|
466
|
+
const out = Object.keys(this.$varProps$);
|
|
467
|
+
if (null != this.$children$ && -1 === out.indexOf("children") && out.push("children"), this.$constProps$) {
|
|
468
|
+
for (const key in this.$constProps$) {
|
|
469
|
+
-1 === out.indexOf(key) && out.push(key);
|
|
470
|
+
}
|
|
471
|
+
}
|
|
472
|
+
return out;
|
|
473
|
+
}
|
|
474
|
+
}
|
|
475
|
+
const stringifyPath = [];
|
|
476
|
+
function qwikDebugToString(value) {
|
|
477
|
+
if (null === value) {
|
|
478
|
+
return "null";
|
|
479
|
+
}
|
|
480
|
+
if (void 0 === value) {
|
|
481
|
+
return "undefined";
|
|
482
|
+
}
|
|
483
|
+
if ("string" == typeof value) {
|
|
484
|
+
return '"' + value + '"';
|
|
485
|
+
}
|
|
486
|
+
if ("number" == typeof value || "boolean" == typeof value) {
|
|
487
|
+
return String(value);
|
|
488
|
+
}
|
|
489
|
+
if (isTask(value)) {
|
|
490
|
+
return `Task(${qwikDebugToString(value.$qrl$)})`;
|
|
491
|
+
}
|
|
492
|
+
if (isQrl$1(value)) {
|
|
493
|
+
return `Qrl(${value.$symbol$})`;
|
|
494
|
+
}
|
|
495
|
+
if ("object" == typeof value || "function" == typeof value) {
|
|
496
|
+
if (stringifyPath.includes(value)) {
|
|
497
|
+
return "*";
|
|
498
|
+
}
|
|
499
|
+
try {
|
|
500
|
+
if (stringifyPath.push(value), Array.isArray(value)) {
|
|
501
|
+
return vnode_isVNode(value) ? "(" + vnode_getProp(value, "q:type", null) + ")" : value.map(qwikDebugToString);
|
|
502
|
+
}
|
|
503
|
+
if (isSignal(value)) {
|
|
504
|
+
return value instanceof WrappedSignal ? "WrappedSignal" : value instanceof ComputedSignal ? "ComputedSignal" : "Signal";
|
|
505
|
+
}
|
|
506
|
+
if (isStore(value)) {
|
|
507
|
+
return "Store";
|
|
508
|
+
}
|
|
509
|
+
if (isJSXNode(value)) {
|
|
510
|
+
return jsxToString(value);
|
|
511
|
+
}
|
|
512
|
+
} finally {
|
|
513
|
+
stringifyPath.pop();
|
|
514
|
+
}
|
|
515
|
+
}
|
|
516
|
+
return value;
|
|
517
|
+
}
|
|
518
|
+
const pad = (text, prefix) => String(text).split("\n").map((line, idx) => (idx ? prefix : "") + line).join("\n");
|
|
519
|
+
const jsxToString = (value) => {
|
|
520
|
+
if (isJSXNode(value)) {
|
|
521
|
+
let type = value.type;
|
|
522
|
+
"function" == typeof type && (type = type.name || "Component");
|
|
523
|
+
let str = "<" + value.type;
|
|
524
|
+
if (value.props) {
|
|
525
|
+
for (const [key, val] of Object.entries(value.props)) {
|
|
526
|
+
str += " " + key + "=" + qwikDebugToString(val);
|
|
527
|
+
}
|
|
528
|
+
const children = value.children;
|
|
529
|
+
null != children ? (str += ">", Array.isArray(children) ? children.forEach((child) => {
|
|
530
|
+
str += jsxToString(child);
|
|
531
|
+
}) : str += jsxToString(children), str += "</" + value.type + ">") : str += "/>";
|
|
532
|
+
}
|
|
533
|
+
return str;
|
|
534
|
+
}
|
|
535
|
+
return String(value);
|
|
536
|
+
};
|
|
537
|
+
var VNodeJournalOpCode;
|
|
538
|
+
!function(VNodeJournalOpCode2) {
|
|
539
|
+
VNodeJournalOpCode2[VNodeJournalOpCode2.SetText = 1] = "SetText", VNodeJournalOpCode2[VNodeJournalOpCode2.SetAttribute = 2] = "SetAttribute", VNodeJournalOpCode2[VNodeJournalOpCode2.HoistStyles = 3] = "HoistStyles", VNodeJournalOpCode2[VNodeJournalOpCode2.Remove = 4] = "Remove", VNodeJournalOpCode2[VNodeJournalOpCode2.Insert = 5] = "Insert";
|
|
540
|
+
}(VNodeJournalOpCode || (VNodeJournalOpCode = {}));
|
|
541
|
+
const vnode_isVNode = (vNode) => vNode instanceof VNodeArray;
|
|
542
|
+
const vnode_isVirtualVNode = (vNode) => {
|
|
543
|
+
return (vNode[VNodeProps.flags] & VNodeFlags.Virtual) === VNodeFlags.Virtual;
|
|
544
|
+
};
|
|
545
|
+
const ensureElementOrVirtualVNode = (vNode) => {
|
|
546
|
+
assertTrue(!!(vNode[VNodeProps.flags] & VNodeFlags.ELEMENT_OR_VIRTUAL_MASK), "Expecting ElementVNode or VirtualVNode was: " + vnode_getNodeTypeName(vNode));
|
|
547
|
+
};
|
|
548
|
+
const vnode_getNodeTypeName = (vNode) => {
|
|
549
|
+
if (vNode) {
|
|
550
|
+
switch (vNode[VNodeProps.flags] & VNodeFlags.TYPE_MASK) {
|
|
551
|
+
case VNodeFlags.Element:
|
|
552
|
+
return "Element";
|
|
553
|
+
case VNodeFlags.Virtual:
|
|
554
|
+
return "Virtual";
|
|
555
|
+
case VNodeFlags.Text:
|
|
556
|
+
return "Text";
|
|
557
|
+
}
|
|
558
|
+
}
|
|
559
|
+
return "<unknown>";
|
|
560
|
+
};
|
|
561
|
+
const vnode_ensureElementInflated = (vnode) => {
|
|
562
|
+
if ((vnode[VNodeProps.flags] & VNodeFlags.INFLATED_TYPE_MASK) === VNodeFlags.Element) {
|
|
563
|
+
const elementVNode = vnode;
|
|
564
|
+
elementVNode[VNodeProps.flags] ^= VNodeFlags.Inflated;
|
|
565
|
+
const element = elementVNode[ElementVNodeProps.element];
|
|
566
|
+
const attributes = element.attributes;
|
|
567
|
+
for (let idx = 0; idx < attributes.length; idx++) {
|
|
568
|
+
const attr = attributes[idx];
|
|
569
|
+
const key = attr.name;
|
|
570
|
+
if (":" === key || !key) {
|
|
571
|
+
break;
|
|
572
|
+
}
|
|
573
|
+
if (key.startsWith("q:container")) {
|
|
574
|
+
attr.value === QContainerValue.HTML ? mapArray_set(elementVNode, dangerouslySetInnerHTML, element.innerHTML, ElementVNodeProps.PROPS_OFFSET) : attr.value === QContainerValue.TEXT && "value" in element && mapArray_set(elementVNode, "value", element.value, ElementVNodeProps.PROPS_OFFSET);
|
|
575
|
+
} else if (!key.startsWith("on:")) {
|
|
576
|
+
mapArray_set(elementVNode, key, attr.value, ElementVNodeProps.PROPS_OFFSET);
|
|
577
|
+
}
|
|
578
|
+
}
|
|
579
|
+
}
|
|
580
|
+
};
|
|
581
|
+
const mapApp_findIndx = (elementVNode, key, start) => {
|
|
582
|
+
let bottom = start >> 1;
|
|
583
|
+
let top = elementVNode.length - 2 >> 1;
|
|
584
|
+
for (; bottom <= top; ) {
|
|
585
|
+
const mid = bottom + (top - bottom >> 1);
|
|
586
|
+
const midKey = elementVNode[mid << 1];
|
|
587
|
+
if (midKey === key) {
|
|
588
|
+
return mid << 1;
|
|
589
|
+
}
|
|
590
|
+
midKey < key ? bottom = mid + 1 : top = mid - 1;
|
|
591
|
+
}
|
|
592
|
+
return ~(bottom << 1);
|
|
593
|
+
};
|
|
594
|
+
const mapArray_set = (elementVNode, key, value, start) => {
|
|
595
|
+
const indx = mapApp_findIndx(elementVNode, key, start);
|
|
596
|
+
indx >= 0 ? null == value ? elementVNode.splice(indx, 2) : elementVNode[indx + 1] = value : null != value && elementVNode.splice(~indx, 0, key, value);
|
|
597
|
+
};
|
|
598
|
+
const vnode_getProp = (vnode, key, getObject) => {
|
|
599
|
+
const type = vnode[VNodeProps.flags];
|
|
600
|
+
if (type & VNodeFlags.ELEMENT_OR_VIRTUAL_MASK) {
|
|
601
|
+
type & VNodeFlags.Element && vnode_ensureElementInflated(vnode);
|
|
602
|
+
const idx = mapApp_findIndx(vnode, key, vnode_getPropStartIndex(vnode));
|
|
603
|
+
if (idx >= 0) {
|
|
604
|
+
let value = vnode[idx + 1];
|
|
605
|
+
return "string" == typeof value && getObject && (vnode[idx + 1] = value = getObject(value)), value;
|
|
606
|
+
}
|
|
607
|
+
}
|
|
608
|
+
return null;
|
|
609
|
+
};
|
|
610
|
+
const vnode_setProp = (vnode, key, value) => {
|
|
611
|
+
ensureElementOrVirtualVNode(vnode);
|
|
612
|
+
const idx = mapApp_findIndx(vnode, key, vnode_getPropStartIndex(vnode));
|
|
613
|
+
idx >= 0 ? vnode[idx + 1] = value : null != value && vnode.splice(~idx, 0, key, value);
|
|
614
|
+
};
|
|
615
|
+
const vnode_getPropStartIndex = (vnode) => {
|
|
616
|
+
const type = vnode[VNodeProps.flags] & VNodeFlags.TYPE_MASK;
|
|
617
|
+
if (type === VNodeFlags.Element) {
|
|
618
|
+
return ElementVNodeProps.PROPS_OFFSET;
|
|
619
|
+
}
|
|
620
|
+
if (type === VNodeFlags.Virtual) {
|
|
621
|
+
return VirtualVNodeProps.PROPS_OFFSET;
|
|
622
|
+
}
|
|
623
|
+
throw throwErrorAndStop("Invalid vnode type.");
|
|
624
|
+
};
|
|
625
|
+
const VNodeArray = class VNode extends Array {
|
|
626
|
+
static createElement(flags, parent, previousSibling, nextSibling, firstChild, lastChild, element, elementName) {
|
|
627
|
+
const vnode = new VNode(flags, parent, previousSibling, nextSibling);
|
|
628
|
+
return vnode.push(firstChild, lastChild, element, elementName), vnode;
|
|
629
|
+
}
|
|
630
|
+
static createText(flags, parent, previousSibling, nextSibling, textNode, text) {
|
|
631
|
+
const vnode = new VNode(flags, parent, previousSibling, nextSibling);
|
|
632
|
+
return vnode.push(textNode, text), vnode;
|
|
633
|
+
}
|
|
634
|
+
static createVirtual(flags, parent, previousSibling, nextSibling, firstChild, lastChild) {
|
|
635
|
+
const vnode = new VNode(flags, parent, previousSibling, nextSibling);
|
|
636
|
+
return vnode.push(firstChild, lastChild), vnode;
|
|
637
|
+
}
|
|
638
|
+
constructor(flags, parent, previousSibling, nextSibling) {
|
|
639
|
+
super(), this.push(flags, parent, previousSibling, nextSibling);
|
|
640
|
+
}
|
|
641
|
+
};
|
|
642
|
+
var ExperimentalFeatures;
|
|
643
|
+
var VNodeDataFlag;
|
|
644
|
+
!function(ExperimentalFeatures2) {
|
|
645
|
+
ExperimentalFeatures2.preventNavigate = "preventNavigate", ExperimentalFeatures2.valibot = "valibot", ExperimentalFeatures2.noSPA = "noSPA", ExperimentalFeatures2.webWorker = "webWorker", ExperimentalFeatures2.insights = "insights";
|
|
646
|
+
}(ExperimentalFeatures || (ExperimentalFeatures = {})), function(VNodeDataFlag2) {
|
|
647
|
+
VNodeDataFlag2[VNodeDataFlag2.NONE = 0] = "NONE", VNodeDataFlag2[VNodeDataFlag2.TEXT_DATA = 1] = "TEXT_DATA", VNodeDataFlag2[VNodeDataFlag2.VIRTUAL_NODE = 2] = "VIRTUAL_NODE", VNodeDataFlag2[VNodeDataFlag2.REFERENCE = 4] = "REFERENCE", VNodeDataFlag2[VNodeDataFlag2.SERIALIZE = 8] = "SERIALIZE";
|
|
648
|
+
}(VNodeDataFlag || (VNodeDataFlag = {}));
|
|
649
|
+
var TypeIds;
|
|
650
|
+
var Constants;
|
|
651
|
+
!function(TypeIds2) {
|
|
652
|
+
TypeIds2[TypeIds2.RootRef = 0] = "RootRef", TypeIds2[TypeIds2.Constant = 1] = "Constant", TypeIds2[TypeIds2.Number = 2] = "Number", TypeIds2[TypeIds2.String = 3] = "String", TypeIds2[TypeIds2.Array = 4] = "Array", TypeIds2[TypeIds2.URL = 5] = "URL", TypeIds2[TypeIds2.Date = 6] = "Date", TypeIds2[TypeIds2.Regex = 7] = "Regex", TypeIds2[TypeIds2.VNode = 8] = "VNode", TypeIds2[TypeIds2.RefVNode = 9] = "RefVNode", TypeIds2[TypeIds2.BigInt = 10] = "BigInt", TypeIds2[TypeIds2.URLSearchParams = 11] = "URLSearchParams", TypeIds2[TypeIds2.Error = 12] = "Error", TypeIds2[TypeIds2.Object = 13] = "Object", TypeIds2[TypeIds2.Promise = 14] = "Promise", TypeIds2[TypeIds2.Set = 15] = "Set", TypeIds2[TypeIds2.Map = 16] = "Map", TypeIds2[TypeIds2.Uint8Array = 17] = "Uint8Array", TypeIds2[TypeIds2.QRL = 18] = "QRL", TypeIds2[TypeIds2.Task = 19] = "Task", TypeIds2[TypeIds2.Resource = 20] = "Resource", TypeIds2[TypeIds2.Component = 21] = "Component", TypeIds2[TypeIds2.Signal = 22] = "Signal", TypeIds2[TypeIds2.WrappedSignal = 23] = "WrappedSignal", TypeIds2[TypeIds2.ComputedSignal = 24] = "ComputedSignal", TypeIds2[TypeIds2.Store = 25] = "Store", TypeIds2[TypeIds2.StoreArray = 26] = "StoreArray", TypeIds2[TypeIds2.FormData = 27] = "FormData", TypeIds2[TypeIds2.JSXNode = 28] = "JSXNode", TypeIds2[TypeIds2.PropsProxy = 29] = "PropsProxy", TypeIds2[TypeIds2.EffectData = 30] = "EffectData";
|
|
653
|
+
}(TypeIds || (TypeIds = {})), function(Constants2) {
|
|
654
|
+
Constants2[Constants2.Undefined = 0] = "Undefined", Constants2[Constants2.Null = 1] = "Null", Constants2[Constants2.True = 2] = "True", Constants2[Constants2.False = 3] = "False", Constants2[Constants2.EmptyString = 4] = "EmptyString", Constants2[Constants2.EMPTY_ARRAY = 5] = "EMPTY_ARRAY", Constants2[Constants2.EMPTY_OBJ = 6] = "EMPTY_OBJ", Constants2[Constants2.NEEDS_COMPUTATION = 7] = "NEEDS_COMPUTATION", Constants2[Constants2.Slot = 8] = "Slot", Constants2[Constants2.Fragment = 9] = "Fragment", Constants2[Constants2.NaN = 10] = "NaN", Constants2[Constants2.PositiveInfinity = 11] = "PositiveInfinity", Constants2[Constants2.NegativeInfinity = 12] = "NegativeInfinity", Constants2[Constants2.MaxSafeInt = 13] = "MaxSafeInt", Constants2[Constants2.AlmostMaxSafeInt = 14] = "AlmostMaxSafeInt", Constants2[Constants2.MinSafeInt = 15] = "MinSafeInt";
|
|
655
|
+
}(Constants || (Constants = {}));
|
|
656
|
+
const insightsPing = sync$(
|
|
657
|
+
() => ((window2, document2, location2, navigator2, performance2, round, JSON_stringify) => {
|
|
658
|
+
var publicApiKey = __QI_KEY__, postUrl = __QI_URL__, getAttribute_s = "getAttribute", querySelector_s = "querySelector", manifest_s = "manifest", manifest_hash_s = `${manifest_s}-hash`, manifestHash_s = `${manifest_s}Hash`, version_s = "version", publicApiKey_s = "publicApiKey", sendBeacon_s = "sendBeacon", symbol_s = "symbol", length_s = "length", addEventListener_s = "addEventListener", route_s = "route", error_s = "error", stack_s = "stack", message_s = "message", symbols_s = `${symbol_s}s`, qVersion = document2[querySelector_s](`[q\\:${version_s}]`)?.[getAttribute_s](`q:${version_s}`) || "unknown", manifestHash = document2[querySelector_s](`[q\\:${manifest_hash_s}]`)?.[getAttribute_s](
|
|
659
|
+
`q:${manifest_hash_s}`
|
|
660
|
+
) || "dev", qSymbols = [], existingSymbols = /* @__PURE__ */ new Set(), flushSymbolIndex = 0, lastReqTime = 0, timeoutID, qRouteChangeTime = performance2.now(), qRouteEl = document2[querySelector_s](`[q\\:${route_s}]`), flush = () => {
|
|
661
|
+
timeoutID = void 0;
|
|
662
|
+
if (qSymbols[length_s] > flushSymbolIndex) {
|
|
663
|
+
var payload = {
|
|
664
|
+
qVersion,
|
|
665
|
+
[publicApiKey_s]: publicApiKey,
|
|
666
|
+
[manifestHash_s]: manifestHash,
|
|
667
|
+
previousSymbol: flushSymbolIndex == 0 ? void 0 : qSymbols[flushSymbolIndex - 1][symbol_s],
|
|
668
|
+
[symbols_s]: qSymbols.slice(flushSymbolIndex)
|
|
669
|
+
};
|
|
670
|
+
navigator2[sendBeacon_s](postUrl, JSON_stringify(payload));
|
|
671
|
+
flushSymbolIndex = qSymbols[length_s];
|
|
672
|
+
}
|
|
673
|
+
}, debounceFlush = () => {
|
|
674
|
+
timeoutID != void 0 && clearTimeout(timeoutID);
|
|
675
|
+
timeoutID = setTimeout(flush, 1e3);
|
|
676
|
+
};
|
|
677
|
+
window2.qSymbolTracker = {
|
|
678
|
+
[symbols_s]: qSymbols,
|
|
679
|
+
[publicApiKey_s]: publicApiKey
|
|
680
|
+
};
|
|
681
|
+
if (qRouteEl) {
|
|
682
|
+
new MutationObserver((mutations) => {
|
|
683
|
+
var mutation = mutations.find((m) => m.attributeName === `q:${route_s}`);
|
|
684
|
+
if (mutation) {
|
|
685
|
+
qRouteChangeTime = performance2.now();
|
|
686
|
+
}
|
|
687
|
+
}).observe(qRouteEl, { attributes: true });
|
|
688
|
+
}
|
|
689
|
+
document2[addEventListener_s](
|
|
690
|
+
"visibilitychange",
|
|
691
|
+
() => document2.visibilityState === "hidden" && flush()
|
|
692
|
+
);
|
|
693
|
+
document2[addEventListener_s](`q${symbol_s}`, (_event) => {
|
|
694
|
+
var event = _event, detail = event.detail, symbolRequestTime = detail.reqTime, symbolDeliveredTime = event.timeStamp, symbol = detail[symbol_s];
|
|
695
|
+
if (!existingSymbols.has(symbol)) {
|
|
696
|
+
existingSymbols.add(symbol);
|
|
697
|
+
var route = qRouteEl?.[getAttribute_s](`q:${route_s}`) || "/";
|
|
698
|
+
qSymbols.push({
|
|
699
|
+
[symbol_s]: symbol,
|
|
700
|
+
[route_s]: route,
|
|
701
|
+
delay: round(0 - lastReqTime + symbolRequestTime),
|
|
702
|
+
latency: round(symbolDeliveredTime - symbolRequestTime),
|
|
703
|
+
timeline: round(0 - qRouteChangeTime + symbolRequestTime),
|
|
704
|
+
interaction: !!detail.element
|
|
705
|
+
});
|
|
706
|
+
lastReqTime = symbolDeliveredTime;
|
|
707
|
+
debounceFlush();
|
|
708
|
+
}
|
|
709
|
+
});
|
|
710
|
+
window2[addEventListener_s](error_s, (event) => {
|
|
711
|
+
var error = event[error_s];
|
|
712
|
+
if (!(error && typeof error === "object")) {
|
|
713
|
+
return;
|
|
714
|
+
}
|
|
715
|
+
var payload = {
|
|
716
|
+
url: `${location2}`,
|
|
717
|
+
[manifestHash_s]: manifestHash,
|
|
718
|
+
timestamp: (/* @__PURE__ */ new Date()).getTime(),
|
|
719
|
+
source: event.filename,
|
|
720
|
+
line: event.lineno,
|
|
721
|
+
column: event.colno,
|
|
722
|
+
[message_s]: event[message_s],
|
|
723
|
+
[error_s]: message_s in error ? error[message_s] : `${error}`,
|
|
724
|
+
[stack_s]: stack_s in error ? error[stack_s] || "" : ""
|
|
725
|
+
};
|
|
726
|
+
navigator2[sendBeacon_s](`${postUrl}${error_s}/`, JSON_stringify(payload));
|
|
727
|
+
});
|
|
728
|
+
})(window, document, location, navigator, performance, Math.round, JSON.stringify)
|
|
729
|
+
);
|
|
730
|
+
const Insights = component$(
|
|
731
|
+
({ publicApiKey, postUrl }) => {
|
|
732
|
+
if (!__EXPERIMENTAL__.insights) {
|
|
733
|
+
throw new Error(
|
|
734
|
+
'Insights is experimental and must be enabled with `experimental: ["insights"]` in the `qwikVite` plugin.'
|
|
735
|
+
);
|
|
736
|
+
}
|
|
737
|
+
if (!publicApiKey) {
|
|
738
|
+
return null;
|
|
739
|
+
}
|
|
740
|
+
return (
|
|
741
|
+
// the script will set the variables before the qinit event
|
|
742
|
+
/* @__PURE__ */ jsx("script", {
|
|
743
|
+
"document:onQInit$": insightsPing,
|
|
744
|
+
dangerouslySetInnerHTML: `__QI_KEY__=${JSON.stringify(publicApiKey)};__QI_URL__=${JSON.stringify(postUrl || `https://insights.qwik.dev/api/v1/${publicApiKey}/post/`)}`
|
|
745
|
+
})
|
|
746
|
+
);
|
|
747
|
+
}
|
|
748
|
+
);
|
|
749
|
+
export {
|
|
750
|
+
Insights
|
|
751
|
+
};
|