@qwik.dev/core 2.0.0-alpha.3 → 2.0.0-alpha.5
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.win32-x64-msvc.node +0 -0
- package/bindings/qwik_wasm_bg.wasm +0 -0
- package/dist/build/package.json +1 -1
- package/dist/cli.cjs +34 -4
- package/dist/core-internal.d.ts +39 -17
- package/dist/core.cjs +6436 -6165
- package/dist/core.cjs.map +1 -1
- package/dist/core.min.mjs +1 -1
- package/dist/core.mjs +6423 -6164
- package/dist/core.mjs.map +1 -1
- package/dist/core.prod.cjs +1714 -1494
- package/dist/core.prod.mjs +3824 -3622
- package/dist/insights/index.qwik.cjs +144 -147
- package/dist/insights/index.qwik.mjs +144 -147
- package/dist/loader/package.json +1 -1
- package/dist/optimizer.cjs +2600 -2519
- package/dist/optimizer.mjs +1867 -1837
- package/dist/prefetch/package.json +1 -1
- package/dist/server.cjs +927 -677
- package/dist/server.mjs +842 -593
- package/dist/testing/index.cjs +3385 -3124
- package/dist/testing/index.mjs +3357 -3097
- package/dist/testing/package.json +1 -1
- package/package.json +2 -2
- package/public.d.ts +3 -0
- package/dist/index.d.ts +0 -2
|
@@ -4,15 +4,12 @@ var __publicField = (obj, key, value) => __defNormalProp(obj, typeof key !== "sy
|
|
|
4
4
|
import { sync$, component$ } from "@qwik.dev/core";
|
|
5
5
|
/**
|
|
6
6
|
* @license
|
|
7
|
-
* @qwik.dev/core 2.0.0-alpha.
|
|
7
|
+
* @qwik.dev/core 2.0.0-alpha.5-dev+cb53bbd
|
|
8
8
|
* Copyright QwikDev. All Rights Reserved.
|
|
9
9
|
* Use of this source code is governed by an MIT-style license that can be
|
|
10
10
|
* found in the LICENSE file at https://github.com/QwikDev/qwik/blob/main/LICENSE
|
|
11
11
|
*/
|
|
12
|
-
const
|
|
13
|
-
const throwErrorAndStop = (message, ...optionalParams) => {
|
|
14
|
-
throw createAndLogError(false, message, ...optionalParams);
|
|
15
|
-
};
|
|
12
|
+
const logErrorAndStop = (message, ...optionalParams) => createAndLogError(true, message, ...optionalParams);
|
|
16
13
|
const createAndLogError = (asyncThrow, message, ...optionalParams) => {
|
|
17
14
|
const err = message instanceof Error ? message : new Error(message);
|
|
18
15
|
return console.error("%cQWIK ERROR", "", err.message, ...optionalParams, err.stack), asyncThrow && setTimeout(() => {
|
|
@@ -23,18 +20,21 @@ function assertTrue() {
|
|
|
23
20
|
}
|
|
24
21
|
function assertFalse() {
|
|
25
22
|
}
|
|
23
|
+
const codeToText = (code) => `Code(Q${code}) https://github.com/QwikDev/qwik/blob/main/packages/qwik/src/core/error/error.ts#L${8 + code}`;
|
|
24
|
+
var QError;
|
|
25
|
+
!function(QError2) {
|
|
26
|
+
QError2[QError2.stringifyClassOrStyle = 0] = "stringifyClassOrStyle", QError2[QError2.UNUSED_1 = 1] = "UNUSED_1", QError2[QError2.UNUSED_2 = 2] = "UNUSED_2", QError2[QError2.verifySerializable = 3] = "verifySerializable", QError2[QError2.UNUSED_4 = 4] = "UNUSED_4", QError2[QError2.cannotRenderOverExistingContainer = 5] = "cannotRenderOverExistingContainer", QError2[QError2.UNUSED_6 = 6] = "UNUSED_6", QError2[QError2.UNUSED_7 = 7] = "UNUSED_7", QError2[QError2.UNUSED_8 = 8] = "UNUSED_8", QError2[QError2.UNUSED_9 = 9] = "UNUSED_9", QError2[QError2.qrlIsNotFunction = 10] = "qrlIsNotFunction", QError2[QError2.dynamicImportFailed = 11] = "dynamicImportFailed", QError2[QError2.unknownTypeArgument = 12] = "unknownTypeArgument", QError2[QError2.notFoundContext = 13] = "notFoundContext", QError2[QError2.useMethodOutsideContext = 14] = "useMethodOutsideContext", QError2[QError2.UNUSED_15 = 15] = "UNUSED_15", QError2[QError2.UNUSED_16 = 16] = "UNUSED_16", QError2[QError2.UNUSED_17 = 17] = "UNUSED_17", QError2[QError2.UNUSED_18 = 18] = "UNUSED_18", QError2[QError2.UNUSED_19 = 19] = "UNUSED_19", QError2[QError2.useInvokeContext = 20] = "useInvokeContext", QError2[QError2.UNUSED_21 = 21] = "UNUSED_21", QError2[QError2.UNUSED_22 = 22] = "UNUSED_22", QError2[QError2.UNUSED_23 = 23] = "UNUSED_23", QError2[QError2.UNUSED_24 = 24] = "UNUSED_24", QError2[QError2.UNUSED_25 = 25] = "UNUSED_25", QError2[QError2.UNUSED_26 = 26] = "UNUSED_26", QError2[QError2.UNUSED_27 = 27] = "UNUSED_27", QError2[QError2.invalidContext = 28] = "invalidContext", QError2[QError2.tagError = 29] = "tagError", QError2[QError2.qrlMissingContainer = 30] = "qrlMissingContainer", QError2[QError2.qrlMissingChunk = 31] = "qrlMissingChunk", QError2[QError2.invalidRefValue = 32] = "invalidRefValue", QError2[QError2.serializeErrorNotImplemented = 33] = "serializeErrorNotImplemented", QError2[QError2.serializeErrorExpectedVNode = 34] = "serializeErrorExpectedVNode", QError2[QError2.serializeErrorCannotAllocate = 35] = "serializeErrorCannotAllocate", QError2[QError2.serializeErrorMissingRootId = 36] = "serializeErrorMissingRootId", QError2[QError2.serializeErrorUnknownType = 37] = "serializeErrorUnknownType", QError2[QError2.serializeErrorUnvisited = 38] = "serializeErrorUnvisited", QError2[QError2.serializeErrorMissingChunk = 39] = "serializeErrorMissingChunk", QError2[QError2.wrongTextareaValue = 40] = "wrongTextareaValue", QError2[QError2.containerNotFound = 41] = "containerNotFound", QError2[QError2.elementWithoutContainer = 42] = "elementWithoutContainer", QError2[QError2.invalidVNodeType = 43] = "invalidVNodeType", QError2[QError2.materializeVNodeDataError = 44] = "materializeVNodeDataError", QError2[QError2.serverHostMismatch = 45] = "serverHostMismatch", QError2[QError2.cannotCoerceSignal = 46] = "cannotCoerceSignal", QError2[QError2.computedNotSync = 47] = "computedNotSync", QError2[QError2.computedReadOnly = 48] = "computedReadOnly", QError2[QError2.wrappedReadOnly = 49] = "wrappedReadOnly", QError2[QError2.promisesNotExpected = 50] = "promisesNotExpected", QError2[QError2.unsafeAttr = 51] = "unsafeAttr";
|
|
27
|
+
}(QError || (QError = {}));
|
|
28
|
+
const qError = (code, errorMessageArgs = []) => {
|
|
29
|
+
const text = codeToText(code, ...errorMessageArgs);
|
|
30
|
+
return logErrorAndStop(text, ...errorMessageArgs);
|
|
31
|
+
};
|
|
26
32
|
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
33
|
const isArray = (v) => Array.isArray(v);
|
|
34
|
+
var VNodeDataFlag;
|
|
35
|
+
!function(VNodeDataFlag2) {
|
|
36
|
+
VNodeDataFlag2[VNodeDataFlag2.NONE = 0] = "NONE", VNodeDataFlag2[VNodeDataFlag2.TEXT_DATA = 1] = "TEXT_DATA", VNodeDataFlag2[VNodeDataFlag2.VIRTUAL_NODE = 2] = "VIRTUAL_NODE", VNodeDataFlag2[VNodeDataFlag2.ELEMENT_NODE = 4] = "ELEMENT_NODE", VNodeDataFlag2[VNodeDataFlag2.REFERENCE = 8] = "REFERENCE", VNodeDataFlag2[VNodeDataFlag2.SERIALIZE = 16] = "SERIALIZE";
|
|
37
|
+
}(VNodeDataFlag || (VNodeDataFlag = {}));
|
|
38
38
|
var VirtualType;
|
|
39
39
|
!function(VirtualType2) {
|
|
40
40
|
VirtualType2.Virtual = "V", VirtualType2.Fragment = "F", VirtualType2.WrappedSignal = "S", VirtualType2.Awaited = "A", VirtualType2.Component = "C", VirtualType2.InlineComponent = "I", VirtualType2.Projection = "P";
|
|
@@ -57,6 +57,12 @@ const dangerouslySetInnerHTML = "dangerouslySetInnerHTML";
|
|
|
57
57
|
const isQrl$1 = (value) => "function" == typeof value && "function" == typeof value.getSymbol;
|
|
58
58
|
const EMPTY_OBJ = {};
|
|
59
59
|
Object.freeze(EMPTY_OBJ);
|
|
60
|
+
const STORE_TARGET = Symbol("store.target");
|
|
61
|
+
var StoreFlags;
|
|
62
|
+
!function(StoreFlags2) {
|
|
63
|
+
StoreFlags2[StoreFlags2.NONE = 0] = "NONE", StoreFlags2[StoreFlags2.RECURSIVE = 1] = "RECURSIVE", StoreFlags2[StoreFlags2.IMMUTABLE = 2] = "IMMUTABLE";
|
|
64
|
+
}(StoreFlags || (StoreFlags = {}));
|
|
65
|
+
const isStore = (value) => STORE_TARGET in value;
|
|
60
66
|
class Subscriber {
|
|
61
67
|
constructor() {
|
|
62
68
|
__publicField(this, "$effectDependencies$", null);
|
|
@@ -65,6 +71,50 @@ class Subscriber {
|
|
|
65
71
|
function isSubscriber(value) {
|
|
66
72
|
return value instanceof Subscriber || value instanceof WrappedSignal;
|
|
67
73
|
}
|
|
74
|
+
var VNodeFlags;
|
|
75
|
+
var VNodeFlagsIndex;
|
|
76
|
+
var VNodeProps;
|
|
77
|
+
var ElementVNodeProps;
|
|
78
|
+
var TextVNodeProps;
|
|
79
|
+
var VirtualVNodeProps;
|
|
80
|
+
!function(VNodeFlags2) {
|
|
81
|
+
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";
|
|
82
|
+
}(VNodeFlags || (VNodeFlags = {})), function(VNodeFlagsIndex2) {
|
|
83
|
+
VNodeFlagsIndex2[VNodeFlagsIndex2.mask = -256] = "mask", VNodeFlagsIndex2[VNodeFlagsIndex2.negated_mask = 255] = "negated_mask", VNodeFlagsIndex2[VNodeFlagsIndex2.shift = 8] = "shift";
|
|
84
|
+
}(VNodeFlagsIndex || (VNodeFlagsIndex = {})), function(VNodeProps2) {
|
|
85
|
+
VNodeProps2[VNodeProps2.flags = 0] = "flags", VNodeProps2[VNodeProps2.parent = 1] = "parent", VNodeProps2[VNodeProps2.previousSibling = 2] = "previousSibling", VNodeProps2[VNodeProps2.nextSibling = 3] = "nextSibling";
|
|
86
|
+
}(VNodeProps || (VNodeProps = {})), function(ElementVNodeProps2) {
|
|
87
|
+
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";
|
|
88
|
+
}(ElementVNodeProps || (ElementVNodeProps = {})), function(TextVNodeProps2) {
|
|
89
|
+
TextVNodeProps2[TextVNodeProps2.node = 4] = "node", TextVNodeProps2[TextVNodeProps2.text = 5] = "text";
|
|
90
|
+
}(TextVNodeProps || (TextVNodeProps = {})), function(VirtualVNodeProps2) {
|
|
91
|
+
VirtualVNodeProps2[VirtualVNodeProps2.firstChild = 4] = "firstChild", VirtualVNodeProps2[VirtualVNodeProps2.lastChild = 5] = "lastChild", VirtualVNodeProps2[VirtualVNodeProps2.PROPS_OFFSET = 6] = "PROPS_OFFSET";
|
|
92
|
+
}(VirtualVNodeProps || (VirtualVNodeProps = {}));
|
|
93
|
+
var SiblingsArray;
|
|
94
|
+
!function(SiblingsArray2) {
|
|
95
|
+
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";
|
|
96
|
+
}(SiblingsArray || (SiblingsArray = {}));
|
|
97
|
+
var ChoreType;
|
|
98
|
+
!function(ChoreType2) {
|
|
99
|
+
ChoreType2[ChoreType2.MACRO = 240] = "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.RECOMPUTE_AND_SCHEDULE_EFFECTS = 8] = "RECOMPUTE_AND_SCHEDULE_EFFECTS", ChoreType2[ChoreType2.JOURNAL_FLUSH = 16] = "JOURNAL_FLUSH", ChoreType2[ChoreType2.VISIBLE = 32] = "VISIBLE", ChoreType2[ChoreType2.CLEANUP_VISIBLE = 48] = "CLEANUP_VISIBLE", ChoreType2[ChoreType2.WAIT_FOR_ALL = 255] = "WAIT_FOR_ALL";
|
|
100
|
+
}(ChoreType || (ChoreType = {}));
|
|
101
|
+
var TaskFlags;
|
|
102
|
+
!function(TaskFlags2) {
|
|
103
|
+
TaskFlags2[TaskFlags2.VISIBLE_TASK = 1] = "VISIBLE_TASK", TaskFlags2[TaskFlags2.TASK = 2] = "TASK", TaskFlags2[TaskFlags2.RESOURCE = 4] = "RESOURCE", TaskFlags2[TaskFlags2.DIRTY = 8] = "DIRTY";
|
|
104
|
+
}(TaskFlags || (TaskFlags = {}));
|
|
105
|
+
class Task extends Subscriber {
|
|
106
|
+
constructor($flags$, $index$, $el$, $qrl$, $state$, $destroy$) {
|
|
107
|
+
super();
|
|
108
|
+
__publicField(this, "$flags$");
|
|
109
|
+
__publicField(this, "$index$");
|
|
110
|
+
__publicField(this, "$el$");
|
|
111
|
+
__publicField(this, "$qrl$");
|
|
112
|
+
__publicField(this, "$state$");
|
|
113
|
+
__publicField(this, "$destroy$");
|
|
114
|
+
this.$flags$ = $flags$, this.$index$ = $index$, this.$el$ = $el$, this.$qrl$ = $qrl$, this.$state$ = $state$, this.$destroy$ = $destroy$;
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
const isTask = (value) => value instanceof Task;
|
|
68
118
|
const NEEDS_COMPUTATION = Symbol("invalid");
|
|
69
119
|
const throwIfQRLNotResolved = (qrl2) => {
|
|
70
120
|
if (!qrl2.resolved) {
|
|
@@ -72,7 +122,7 @@ const throwIfQRLNotResolved = (qrl2) => {
|
|
|
72
122
|
}
|
|
73
123
|
};
|
|
74
124
|
const isSignal = (value) => value instanceof Signal;
|
|
75
|
-
class
|
|
125
|
+
class EffectPropData {
|
|
76
126
|
constructor(data) {
|
|
77
127
|
__publicField(this, "data");
|
|
78
128
|
this.data = data;
|
|
@@ -149,7 +199,7 @@ const ensureEffectContainsSubscriber = (effect, subscriber, container) => {
|
|
|
149
199
|
return;
|
|
150
200
|
}
|
|
151
201
|
effect.$effectDependencies$.push(subscriber);
|
|
152
|
-
} else if (vnode_isVNode(effect) &&
|
|
202
|
+
} else if (vnode_isVNode(effect) && !vnode_isTextVNode(effect)) {
|
|
153
203
|
let subscribers = vnode_getProp(effect, "q:subs", container ? container.$getObjectById$ : null);
|
|
154
204
|
if (subscribers || (subscribers = []), subscriberExistInSubscribers(subscribers, subscriber)) {
|
|
155
205
|
return;
|
|
@@ -182,12 +232,7 @@ const triggerEffects = (container, signal, effects) => {
|
|
|
182
232
|
let choreType = ChoreType.TASK;
|
|
183
233
|
effect.$flags$ & TaskFlags.VISIBLE_TASK ? choreType = ChoreType.VISIBLE : effect.$flags$ & TaskFlags.RESOURCE && (choreType = ChoreType.RESOURCE), container.$scheduler$(choreType, effect);
|
|
184
234
|
} 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
|
-
}
|
|
235
|
+
effect instanceof ComputedSignal && (effect.$computeQrl$.resolved || container.$scheduler$(ChoreType.QRL_RESOLVE, null, effect.$computeQrl$)), effect.$invalidate$();
|
|
191
236
|
} else if (property === EffectProperty.COMPONENT) {
|
|
192
237
|
const host = effect;
|
|
193
238
|
const qrl2 = container.getHostProp(host, "q:renderFn");
|
|
@@ -196,8 +241,8 @@ const triggerEffects = (container, signal, effects) => {
|
|
|
196
241
|
} else if (property === EffectProperty.VNODE) {
|
|
197
242
|
container.$scheduler$(ChoreType.NODE_DIFF, effect, effect, signal);
|
|
198
243
|
} else {
|
|
199
|
-
|
|
200
|
-
if (effectData instanceof
|
|
244
|
+
const effectData = effectSubscriptions[EffectSubscriptionsProp.FIRST_BACK_REF_OR_DATA];
|
|
245
|
+
if (effectData instanceof EffectPropData) {
|
|
201
246
|
const payload = {
|
|
202
247
|
...effectData.data,
|
|
203
248
|
$value$: signal
|
|
@@ -214,16 +259,18 @@ class ComputedSignal extends Signal {
|
|
|
214
259
|
super(container, NEEDS_COMPUTATION);
|
|
215
260
|
__publicField(this, "$computeQrl$");
|
|
216
261
|
__publicField(this, "$invalid$", true);
|
|
262
|
+
__publicField(this, "$forceRunEffects$", false);
|
|
217
263
|
this.$computeQrl$ = fn;
|
|
218
264
|
}
|
|
219
265
|
$invalidate$() {
|
|
220
|
-
this.$invalid$ = true, this.$
|
|
266
|
+
this.$invalid$ = true, this.$forceRunEffects$ = false, this.$container$?.$scheduler$(ChoreType.RECOMPUTE_AND_SCHEDULE_EFFECTS, null, this);
|
|
221
267
|
}
|
|
222
268
|
force() {
|
|
223
|
-
this.$invalid$ = true, triggerEffects(this.$container$, this, this.$effects$);
|
|
269
|
+
this.$invalid$ = true, this.$forceRunEffects$ = false, triggerEffects(this.$container$, this, this.$effects$);
|
|
224
270
|
}
|
|
225
271
|
get untrackedValue() {
|
|
226
|
-
|
|
272
|
+
const didChange = this.$computeIfNeeded$();
|
|
273
|
+
return didChange && (this.$forceRunEffects$ = didChange), assertFalse(this.$untrackedValue$ === NEEDS_COMPUTATION), this.$untrackedValue$;
|
|
227
274
|
}
|
|
228
275
|
$computeIfNeeded$() {
|
|
229
276
|
if (!this.$invalid$) {
|
|
@@ -236,7 +283,10 @@ class ComputedSignal extends Signal {
|
|
|
236
283
|
ctx && (ctx.$effectSubscriber$ = [this, EffectProperty.VNODE]);
|
|
237
284
|
try {
|
|
238
285
|
const untrackedValue = computeQrl.getFn(ctx)();
|
|
239
|
-
isPromise(untrackedValue)
|
|
286
|
+
if (isPromise(untrackedValue)) {
|
|
287
|
+
throw qError(QError.computedNotSync, [computeQrl.dev ? computeQrl.dev.file : "", computeQrl.$hash$]);
|
|
288
|
+
}
|
|
289
|
+
this.$invalid$ = false;
|
|
240
290
|
const didChange = untrackedValue !== this.$untrackedValue$;
|
|
241
291
|
return didChange && (this.$untrackedValue$ = untrackedValue), didChange;
|
|
242
292
|
} finally {
|
|
@@ -247,7 +297,7 @@ class ComputedSignal extends Signal {
|
|
|
247
297
|
return super.value;
|
|
248
298
|
}
|
|
249
299
|
set value(_) {
|
|
250
|
-
|
|
300
|
+
throw qError(QError.computedReadOnly);
|
|
251
301
|
}
|
|
252
302
|
}
|
|
253
303
|
class WrappedSignal extends Signal {
|
|
@@ -258,16 +308,19 @@ class WrappedSignal extends Signal {
|
|
|
258
308
|
__publicField(this, "$funcStr$");
|
|
259
309
|
__publicField(this, "$invalid$", true);
|
|
260
310
|
__publicField(this, "$effectDependencies$", null);
|
|
311
|
+
__publicField(this, "$hostElement$", null);
|
|
312
|
+
__publicField(this, "$forceRunEffects$", false);
|
|
261
313
|
this.$args$ = args, this.$func$ = fn, this.$funcStr$ = fnStr;
|
|
262
314
|
}
|
|
263
315
|
$invalidate$() {
|
|
264
|
-
this.$invalid$ = true, this.$
|
|
316
|
+
this.$invalid$ = true, this.$forceRunEffects$ = false, this.$container$?.$scheduler$(ChoreType.RECOMPUTE_AND_SCHEDULE_EFFECTS, this.$hostElement$, this);
|
|
265
317
|
}
|
|
266
318
|
force() {
|
|
267
|
-
this.$invalid$ = true, triggerEffects(this.$container$, this, this.$effects$);
|
|
319
|
+
this.$invalid$ = true, this.$forceRunEffects$ = false, triggerEffects(this.$container$, this, this.$effects$);
|
|
268
320
|
}
|
|
269
321
|
get untrackedValue() {
|
|
270
|
-
|
|
322
|
+
const didChange = this.$computeIfNeeded$();
|
|
323
|
+
return didChange && (this.$forceRunEffects$ = didChange), assertFalse(this.$untrackedValue$ === NEEDS_COMPUTATION), this.$untrackedValue$;
|
|
271
324
|
}
|
|
272
325
|
$computeIfNeeded$() {
|
|
273
326
|
if (!this.$invalid$) {
|
|
@@ -281,112 +334,9 @@ class WrappedSignal extends Signal {
|
|
|
281
334
|
return super.value;
|
|
282
335
|
}
|
|
283
336
|
set value(_) {
|
|
284
|
-
|
|
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;
|
|
337
|
+
throw qError(QError.wrappedReadOnly);
|
|
344
338
|
}
|
|
345
|
-
return _context;
|
|
346
|
-
};
|
|
347
|
-
function invoke(context, fn, ...args) {
|
|
348
|
-
return invokeApply.call(this, context, fn, args);
|
|
349
339
|
}
|
|
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
340
|
const _CONST_PROPS = Symbol("CONST");
|
|
391
341
|
const _VAR_PROPS = Symbol("VAR");
|
|
392
342
|
const _jsxSorted = (type, varProps, constProps, children, flags, key) => {
|
|
@@ -539,8 +489,8 @@ var VNodeJournalOpCode;
|
|
|
539
489
|
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
490
|
}(VNodeJournalOpCode || (VNodeJournalOpCode = {}));
|
|
541
491
|
const vnode_isVNode = (vNode) => vNode instanceof VNodeArray;
|
|
542
|
-
const
|
|
543
|
-
return (vNode[VNodeProps.flags] & VNodeFlags.
|
|
492
|
+
const vnode_isTextVNode = (vNode) => {
|
|
493
|
+
return (vNode[VNodeProps.flags] & VNodeFlags.Text) === VNodeFlags.Text;
|
|
544
494
|
};
|
|
545
495
|
const ensureElementOrVirtualVNode = (vNode) => {
|
|
546
496
|
assertTrue(!!(vNode[VNodeProps.flags] & VNodeFlags.ELEMENT_OR_VIRTUAL_MASK), "Expecting ElementVNode or VirtualVNode was: " + vnode_getNodeTypeName(vNode));
|
|
@@ -620,7 +570,7 @@ const vnode_getPropStartIndex = (vnode) => {
|
|
|
620
570
|
if (type === VNodeFlags.Virtual) {
|
|
621
571
|
return VirtualVNodeProps.PROPS_OFFSET;
|
|
622
572
|
}
|
|
623
|
-
throw
|
|
573
|
+
throw qError(QError.invalidVNodeType, [type]);
|
|
624
574
|
};
|
|
625
575
|
const VNodeArray = class VNode extends Array {
|
|
626
576
|
static createElement(flags, parent, previousSibling, nextSibling, firstChild, lastChild, element, elementName) {
|
|
@@ -639,13 +589,60 @@ const VNodeArray = class VNode extends Array {
|
|
|
639
589
|
super(), this.push(flags, parent, previousSibling, nextSibling);
|
|
640
590
|
}
|
|
641
591
|
};
|
|
642
|
-
|
|
643
|
-
|
|
644
|
-
!
|
|
645
|
-
|
|
646
|
-
|
|
647
|
-
|
|
648
|
-
}
|
|
592
|
+
let _context;
|
|
593
|
+
const tryGetInvokeContext = () => {
|
|
594
|
+
if (!_context) {
|
|
595
|
+
const context = "undefined" != typeof document && document && document.__q_context__;
|
|
596
|
+
if (!context) {
|
|
597
|
+
return;
|
|
598
|
+
}
|
|
599
|
+
return isArray(context) ? document.__q_context__ = newInvokeContextFromTuple(context) : context;
|
|
600
|
+
}
|
|
601
|
+
return _context;
|
|
602
|
+
};
|
|
603
|
+
function invoke(context, fn, ...args) {
|
|
604
|
+
return invokeApply.call(this, context, fn, args);
|
|
605
|
+
}
|
|
606
|
+
function invokeApply(context, fn, args) {
|
|
607
|
+
const previousContext = _context;
|
|
608
|
+
let returnValue;
|
|
609
|
+
try {
|
|
610
|
+
_context = context, returnValue = fn.apply(this, args);
|
|
611
|
+
} finally {
|
|
612
|
+
_context = previousContext;
|
|
613
|
+
}
|
|
614
|
+
return returnValue;
|
|
615
|
+
}
|
|
616
|
+
const newInvokeContextFromTuple = ([element, event, url]) => {
|
|
617
|
+
const container = element.closest(QContainerSelector);
|
|
618
|
+
const locale = container?.getAttribute("q:locale") || void 0;
|
|
619
|
+
return newInvokeContext(locale, void 0, element, event, url);
|
|
620
|
+
};
|
|
621
|
+
const newInvokeContext = (locale, hostElement, element, event, url) => {
|
|
622
|
+
const ctx = {
|
|
623
|
+
$url$: url,
|
|
624
|
+
$i$: 0,
|
|
625
|
+
$hostElement$: hostElement,
|
|
626
|
+
$element$: element,
|
|
627
|
+
$event$: event,
|
|
628
|
+
$qrl$: void 0,
|
|
629
|
+
$effectSubscriber$: void 0,
|
|
630
|
+
$locale$: locale || ("object" == typeof event && event && "locale" in event ? event.locale : void 0),
|
|
631
|
+
$container$: void 0
|
|
632
|
+
};
|
|
633
|
+
return ctx;
|
|
634
|
+
};
|
|
635
|
+
const untrack = (fn) => invoke(void 0, fn);
|
|
636
|
+
const trackInvocation = /* @__PURE__ */ newInvokeContext(void 0, void 0, void 0, "qRender");
|
|
637
|
+
const trackSignal = (fn, subscriber, property, container, data) => {
|
|
638
|
+
const previousSubscriber = trackInvocation.$effectSubscriber$;
|
|
639
|
+
const previousContainer = trackInvocation.$container$;
|
|
640
|
+
try {
|
|
641
|
+
return trackInvocation.$effectSubscriber$ = [subscriber, property], data && trackInvocation.$effectSubscriber$.push(data), trackInvocation.$container$ = container, invoke(trackInvocation, fn);
|
|
642
|
+
} finally {
|
|
643
|
+
trackInvocation.$effectSubscriber$ = previousSubscriber, trackInvocation.$container$ = previousContainer;
|
|
644
|
+
}
|
|
645
|
+
};
|
|
649
646
|
var TypeIds;
|
|
650
647
|
var Constants;
|
|
651
648
|
!function(TypeIds2) {
|