@angular/compiler 19.0.0-next.4 → 19.0.0-next.6
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/fesm2022/compiler.mjs +313 -142
- package/fesm2022/compiler.mjs.map +1 -1
- package/index.d.ts +26 -9
- package/package.json +2 -2
package/fesm2022/compiler.mjs
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/**
|
|
2
|
-
* @license Angular v19.0.0-next.
|
|
2
|
+
* @license Angular v19.0.0-next.6
|
|
3
3
|
* (c) 2010-2024 Google LLC. https://angular.io/
|
|
4
4
|
* License: MIT
|
|
5
5
|
*/
|
|
@@ -2693,6 +2693,32 @@ class Identifiers {
|
|
|
2693
2693
|
name: 'ɵɵdeferPrefetchOnViewport',
|
|
2694
2694
|
moduleName: CORE,
|
|
2695
2695
|
}; }
|
|
2696
|
+
static { this.deferHydrateWhen = { name: 'ɵɵdeferHydrateWhen', moduleName: CORE }; }
|
|
2697
|
+
static { this.deferHydrateNever = { name: 'ɵɵdeferHydrateNever', moduleName: CORE }; }
|
|
2698
|
+
static { this.deferHydrateOnIdle = {
|
|
2699
|
+
name: 'ɵɵdeferHydrateOnIdle',
|
|
2700
|
+
moduleName: CORE,
|
|
2701
|
+
}; }
|
|
2702
|
+
static { this.deferHydrateOnImmediate = {
|
|
2703
|
+
name: 'ɵɵdeferHydrateOnImmediate',
|
|
2704
|
+
moduleName: CORE,
|
|
2705
|
+
}; }
|
|
2706
|
+
static { this.deferHydrateOnTimer = {
|
|
2707
|
+
name: 'ɵɵdeferHydrateOnTimer',
|
|
2708
|
+
moduleName: CORE,
|
|
2709
|
+
}; }
|
|
2710
|
+
static { this.deferHydrateOnHover = {
|
|
2711
|
+
name: 'ɵɵdeferHydrateOnHover',
|
|
2712
|
+
moduleName: CORE,
|
|
2713
|
+
}; }
|
|
2714
|
+
static { this.deferHydrateOnInteraction = {
|
|
2715
|
+
name: 'ɵɵdeferHydrateOnInteraction',
|
|
2716
|
+
moduleName: CORE,
|
|
2717
|
+
}; }
|
|
2718
|
+
static { this.deferHydrateOnViewport = {
|
|
2719
|
+
name: 'ɵɵdeferHydrateOnViewport',
|
|
2720
|
+
moduleName: CORE,
|
|
2721
|
+
}; }
|
|
2696
2722
|
static { this.deferEnableTimerScheduling = {
|
|
2697
2723
|
name: 'ɵɵdeferEnableTimerScheduling',
|
|
2698
2724
|
moduleName: CORE,
|
|
@@ -4902,49 +4928,52 @@ class Element$1 {
|
|
|
4902
4928
|
}
|
|
4903
4929
|
}
|
|
4904
4930
|
class DeferredTrigger {
|
|
4905
|
-
constructor(nameSpan, sourceSpan, prefetchSpan, whenOrOnSourceSpan) {
|
|
4931
|
+
constructor(nameSpan, sourceSpan, prefetchSpan, whenOrOnSourceSpan, hydrateSpan) {
|
|
4906
4932
|
this.nameSpan = nameSpan;
|
|
4907
4933
|
this.sourceSpan = sourceSpan;
|
|
4908
4934
|
this.prefetchSpan = prefetchSpan;
|
|
4909
4935
|
this.whenOrOnSourceSpan = whenOrOnSourceSpan;
|
|
4936
|
+
this.hydrateSpan = hydrateSpan;
|
|
4910
4937
|
}
|
|
4911
4938
|
visit(visitor) {
|
|
4912
4939
|
return visitor.visitDeferredTrigger(this);
|
|
4913
4940
|
}
|
|
4914
4941
|
}
|
|
4915
4942
|
class BoundDeferredTrigger extends DeferredTrigger {
|
|
4916
|
-
constructor(value, sourceSpan, prefetchSpan, whenSourceSpan) {
|
|
4943
|
+
constructor(value, sourceSpan, prefetchSpan, whenSourceSpan, hydrateSpan) {
|
|
4917
4944
|
// BoundDeferredTrigger is for 'when' triggers. These aren't really "triggers" and don't have a
|
|
4918
4945
|
// nameSpan. Trigger names are the built in event triggers like hover, interaction, etc.
|
|
4919
|
-
super(/** nameSpan */ null, sourceSpan, prefetchSpan, whenSourceSpan);
|
|
4946
|
+
super(/** nameSpan */ null, sourceSpan, prefetchSpan, whenSourceSpan, hydrateSpan);
|
|
4920
4947
|
this.value = value;
|
|
4921
4948
|
}
|
|
4922
4949
|
}
|
|
4950
|
+
class NeverDeferredTrigger extends DeferredTrigger {
|
|
4951
|
+
}
|
|
4923
4952
|
class IdleDeferredTrigger extends DeferredTrigger {
|
|
4924
4953
|
}
|
|
4925
4954
|
class ImmediateDeferredTrigger extends DeferredTrigger {
|
|
4926
4955
|
}
|
|
4927
4956
|
class HoverDeferredTrigger extends DeferredTrigger {
|
|
4928
|
-
constructor(reference, nameSpan, sourceSpan, prefetchSpan, onSourceSpan) {
|
|
4929
|
-
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan);
|
|
4957
|
+
constructor(reference, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
4958
|
+
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
4930
4959
|
this.reference = reference;
|
|
4931
4960
|
}
|
|
4932
4961
|
}
|
|
4933
4962
|
class TimerDeferredTrigger extends DeferredTrigger {
|
|
4934
|
-
constructor(delay, nameSpan, sourceSpan, prefetchSpan, onSourceSpan) {
|
|
4935
|
-
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan);
|
|
4963
|
+
constructor(delay, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
4964
|
+
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
4936
4965
|
this.delay = delay;
|
|
4937
4966
|
}
|
|
4938
4967
|
}
|
|
4939
4968
|
class InteractionDeferredTrigger extends DeferredTrigger {
|
|
4940
|
-
constructor(reference, nameSpan, sourceSpan, prefetchSpan, onSourceSpan) {
|
|
4941
|
-
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan);
|
|
4969
|
+
constructor(reference, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
4970
|
+
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
4942
4971
|
this.reference = reference;
|
|
4943
4972
|
}
|
|
4944
4973
|
}
|
|
4945
4974
|
class ViewportDeferredTrigger extends DeferredTrigger {
|
|
4946
|
-
constructor(reference, nameSpan, sourceSpan, prefetchSpan, onSourceSpan) {
|
|
4947
|
-
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan);
|
|
4975
|
+
constructor(reference, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
4976
|
+
super(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
4948
4977
|
this.reference = reference;
|
|
4949
4978
|
}
|
|
4950
4979
|
}
|
|
@@ -4990,7 +5019,7 @@ class DeferredBlockError extends BlockNode {
|
|
|
4990
5019
|
}
|
|
4991
5020
|
}
|
|
4992
5021
|
class DeferredBlock extends BlockNode {
|
|
4993
|
-
constructor(children, triggers, prefetchTriggers, placeholder, loading, error, nameSpan, sourceSpan, mainBlockSpan, startSourceSpan, endSourceSpan, i18n) {
|
|
5022
|
+
constructor(children, triggers, prefetchTriggers, hydrateTriggers, placeholder, loading, error, nameSpan, sourceSpan, mainBlockSpan, startSourceSpan, endSourceSpan, i18n) {
|
|
4994
5023
|
super(nameSpan, sourceSpan, startSourceSpan, endSourceSpan);
|
|
4995
5024
|
this.children = children;
|
|
4996
5025
|
this.placeholder = placeholder;
|
|
@@ -5000,15 +5029,19 @@ class DeferredBlock extends BlockNode {
|
|
|
5000
5029
|
this.i18n = i18n;
|
|
5001
5030
|
this.triggers = triggers;
|
|
5002
5031
|
this.prefetchTriggers = prefetchTriggers;
|
|
5032
|
+
this.hydrateTriggers = hydrateTriggers;
|
|
5003
5033
|
// We cache the keys since we know that they won't change and we
|
|
5004
5034
|
// don't want to enumarate them every time we're traversing the AST.
|
|
5005
5035
|
this.definedTriggers = Object.keys(triggers);
|
|
5006
5036
|
this.definedPrefetchTriggers = Object.keys(prefetchTriggers);
|
|
5037
|
+
this.definedHydrateTriggers = Object.keys(hydrateTriggers);
|
|
5007
5038
|
}
|
|
5008
5039
|
visit(visitor) {
|
|
5009
5040
|
return visitor.visitDeferredBlock(this);
|
|
5010
5041
|
}
|
|
5011
5042
|
visitAll(visitor) {
|
|
5043
|
+
// Visit the hydrate triggers first to match their insertion order.
|
|
5044
|
+
this.visitTriggers(this.definedHydrateTriggers, this.hydrateTriggers, visitor);
|
|
5012
5045
|
this.visitTriggers(this.definedTriggers, this.triggers, visitor);
|
|
5013
5046
|
this.visitTriggers(this.definedPrefetchTriggers, this.prefetchTriggers, visitor);
|
|
5014
5047
|
visitAll$1(visitor, this.children);
|
|
@@ -8630,6 +8663,7 @@ var DeferTriggerKind;
|
|
|
8630
8663
|
DeferTriggerKind[DeferTriggerKind["Hover"] = 3] = "Hover";
|
|
8631
8664
|
DeferTriggerKind[DeferTriggerKind["Interaction"] = 4] = "Interaction";
|
|
8632
8665
|
DeferTriggerKind[DeferTriggerKind["Viewport"] = 5] = "Viewport";
|
|
8666
|
+
DeferTriggerKind[DeferTriggerKind["Never"] = 6] = "Never";
|
|
8633
8667
|
})(DeferTriggerKind || (DeferTriggerKind = {}));
|
|
8634
8668
|
/**
|
|
8635
8669
|
* Kinds of i18n contexts. They can be created because of root i18n blocks, or ICUs.
|
|
@@ -8944,12 +8978,12 @@ function createRepeaterOp(repeaterCreate, targetSlot, collection, sourceSpan) {
|
|
|
8944
8978
|
...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
|
|
8945
8979
|
};
|
|
8946
8980
|
}
|
|
8947
|
-
function createDeferWhenOp(target, expr,
|
|
8981
|
+
function createDeferWhenOp(target, expr, modifier, sourceSpan) {
|
|
8948
8982
|
return {
|
|
8949
8983
|
kind: OpKind.DeferWhen,
|
|
8950
8984
|
target,
|
|
8951
8985
|
expr,
|
|
8952
|
-
|
|
8986
|
+
modifier,
|
|
8953
8987
|
sourceSpan,
|
|
8954
8988
|
...NEW_OP,
|
|
8955
8989
|
...TRAIT_DEPENDS_ON_SLOT_CONTEXT,
|
|
@@ -10508,12 +10542,12 @@ function createDeferOp(xref, main, mainSlot, ownResolverFn, resolverFn, sourceSp
|
|
|
10508
10542
|
numSlotsUsed: 2,
|
|
10509
10543
|
};
|
|
10510
10544
|
}
|
|
10511
|
-
function createDeferOnOp(defer, trigger,
|
|
10545
|
+
function createDeferOnOp(defer, trigger, modifier, sourceSpan) {
|
|
10512
10546
|
return {
|
|
10513
10547
|
kind: OpKind.DeferOn,
|
|
10514
10548
|
defer,
|
|
10515
10549
|
trigger,
|
|
10516
|
-
|
|
10550
|
+
modifier,
|
|
10517
10551
|
sourceSpan,
|
|
10518
10552
|
...NEW_OP,
|
|
10519
10553
|
};
|
|
@@ -11878,6 +11912,7 @@ function resolveDeferTargetNames(job) {
|
|
|
11878
11912
|
function resolveTrigger(deferOwnerView, op, placeholderView) {
|
|
11879
11913
|
switch (op.trigger.kind) {
|
|
11880
11914
|
case DeferTriggerKind.Idle:
|
|
11915
|
+
case DeferTriggerKind.Never:
|
|
11881
11916
|
case DeferTriggerKind.Immediate:
|
|
11882
11917
|
case DeferTriggerKind.Timer:
|
|
11883
11918
|
return;
|
|
@@ -11937,7 +11972,9 @@ function resolveDeferTargetNames(job) {
|
|
|
11937
11972
|
break;
|
|
11938
11973
|
case OpKind.DeferOn:
|
|
11939
11974
|
const deferOp = defers.get(op.defer);
|
|
11940
|
-
resolveTrigger(unit, op,
|
|
11975
|
+
resolveTrigger(unit, op, op.modifier === "hydrate" /* ir.DeferOpModifierKind.HYDRATE */
|
|
11976
|
+
? deferOp.mainView
|
|
11977
|
+
: deferOp.placeholderView);
|
|
11941
11978
|
break;
|
|
11942
11979
|
}
|
|
11943
11980
|
}
|
|
@@ -21671,28 +21708,68 @@ function defer(selfSlot, primarySlot, dependencyResolverFn, loadingSlot, placeho
|
|
|
21671
21708
|
return call(Identifiers.defer, args, sourceSpan);
|
|
21672
21709
|
}
|
|
21673
21710
|
const deferTriggerToR3TriggerInstructionsMap = new Map([
|
|
21674
|
-
[
|
|
21711
|
+
[
|
|
21712
|
+
DeferTriggerKind.Idle,
|
|
21713
|
+
{
|
|
21714
|
+
["none" /* ir.DeferOpModifierKind.NONE */]: Identifiers.deferOnIdle,
|
|
21715
|
+
["prefetch" /* ir.DeferOpModifierKind.PREFETCH */]: Identifiers.deferPrefetchOnIdle,
|
|
21716
|
+
["hydrate" /* ir.DeferOpModifierKind.HYDRATE */]: Identifiers.deferHydrateOnIdle,
|
|
21717
|
+
},
|
|
21718
|
+
],
|
|
21675
21719
|
[
|
|
21676
21720
|
DeferTriggerKind.Immediate,
|
|
21677
|
-
|
|
21721
|
+
{
|
|
21722
|
+
["none" /* ir.DeferOpModifierKind.NONE */]: Identifiers.deferOnImmediate,
|
|
21723
|
+
["prefetch" /* ir.DeferOpModifierKind.PREFETCH */]: Identifiers.deferPrefetchOnImmediate,
|
|
21724
|
+
["hydrate" /* ir.DeferOpModifierKind.HYDRATE */]: Identifiers.deferHydrateOnImmediate,
|
|
21725
|
+
},
|
|
21726
|
+
],
|
|
21727
|
+
[
|
|
21728
|
+
DeferTriggerKind.Timer,
|
|
21729
|
+
{
|
|
21730
|
+
["none" /* ir.DeferOpModifierKind.NONE */]: Identifiers.deferOnTimer,
|
|
21731
|
+
["prefetch" /* ir.DeferOpModifierKind.PREFETCH */]: Identifiers.deferPrefetchOnTimer,
|
|
21732
|
+
["hydrate" /* ir.DeferOpModifierKind.HYDRATE */]: Identifiers.deferHydrateOnTimer,
|
|
21733
|
+
},
|
|
21734
|
+
],
|
|
21735
|
+
[
|
|
21736
|
+
DeferTriggerKind.Hover,
|
|
21737
|
+
{
|
|
21738
|
+
["none" /* ir.DeferOpModifierKind.NONE */]: Identifiers.deferOnHover,
|
|
21739
|
+
["prefetch" /* ir.DeferOpModifierKind.PREFETCH */]: Identifiers.deferPrefetchOnHover,
|
|
21740
|
+
["hydrate" /* ir.DeferOpModifierKind.HYDRATE */]: Identifiers.deferHydrateOnHover,
|
|
21741
|
+
},
|
|
21678
21742
|
],
|
|
21679
|
-
[DeferTriggerKind.Timer, [Identifiers.deferOnTimer, Identifiers.deferPrefetchOnTimer]],
|
|
21680
|
-
[DeferTriggerKind.Hover, [Identifiers.deferOnHover, Identifiers.deferPrefetchOnHover]],
|
|
21681
21743
|
[
|
|
21682
21744
|
DeferTriggerKind.Interaction,
|
|
21683
|
-
|
|
21745
|
+
{
|
|
21746
|
+
["none" /* ir.DeferOpModifierKind.NONE */]: Identifiers.deferOnInteraction,
|
|
21747
|
+
["prefetch" /* ir.DeferOpModifierKind.PREFETCH */]: Identifiers.deferPrefetchOnInteraction,
|
|
21748
|
+
["hydrate" /* ir.DeferOpModifierKind.HYDRATE */]: Identifiers.deferHydrateOnInteraction,
|
|
21749
|
+
},
|
|
21684
21750
|
],
|
|
21685
21751
|
[
|
|
21686
21752
|
DeferTriggerKind.Viewport,
|
|
21687
|
-
|
|
21753
|
+
{
|
|
21754
|
+
["none" /* ir.DeferOpModifierKind.NONE */]: Identifiers.deferOnViewport,
|
|
21755
|
+
["prefetch" /* ir.DeferOpModifierKind.PREFETCH */]: Identifiers.deferPrefetchOnViewport,
|
|
21756
|
+
["hydrate" /* ir.DeferOpModifierKind.HYDRATE */]: Identifiers.deferHydrateOnViewport,
|
|
21757
|
+
},
|
|
21758
|
+
],
|
|
21759
|
+
[
|
|
21760
|
+
DeferTriggerKind.Never,
|
|
21761
|
+
{
|
|
21762
|
+
["none" /* ir.DeferOpModifierKind.NONE */]: Identifiers.deferHydrateNever,
|
|
21763
|
+
["prefetch" /* ir.DeferOpModifierKind.PREFETCH */]: Identifiers.deferHydrateNever,
|
|
21764
|
+
["hydrate" /* ir.DeferOpModifierKind.HYDRATE */]: Identifiers.deferHydrateNever,
|
|
21765
|
+
},
|
|
21688
21766
|
],
|
|
21689
21767
|
]);
|
|
21690
|
-
function deferOn(trigger, args,
|
|
21691
|
-
const
|
|
21692
|
-
if (
|
|
21768
|
+
function deferOn(trigger, args, modifier, sourceSpan) {
|
|
21769
|
+
const instructionToCall = deferTriggerToR3TriggerInstructionsMap.get(trigger)?.[modifier];
|
|
21770
|
+
if (instructionToCall === undefined) {
|
|
21693
21771
|
throw new Error(`Unable to determine instruction for trigger ${trigger}`);
|
|
21694
21772
|
}
|
|
21695
|
-
const instructionToCall = prefetch ? instructions[1] : instructions[0];
|
|
21696
21773
|
return call(instructionToCall, args.map((a) => literal(a)), sourceSpan);
|
|
21697
21774
|
}
|
|
21698
21775
|
function projectionDef(def) {
|
|
@@ -21748,8 +21825,14 @@ function repeaterCreate(slot, viewFnName, decls, vars, tag, constIndex, trackByF
|
|
|
21748
21825
|
function repeater(collection, sourceSpan) {
|
|
21749
21826
|
return call(Identifiers.repeater, [collection], sourceSpan);
|
|
21750
21827
|
}
|
|
21751
|
-
function deferWhen(
|
|
21752
|
-
|
|
21828
|
+
function deferWhen(modifier, expr, sourceSpan) {
|
|
21829
|
+
if (modifier === "prefetch" /* ir.DeferOpModifierKind.PREFETCH */) {
|
|
21830
|
+
return call(Identifiers.deferPrefetchWhen, [expr], sourceSpan);
|
|
21831
|
+
}
|
|
21832
|
+
else if (modifier === "hydrate" /* ir.DeferOpModifierKind.HYDRATE */) {
|
|
21833
|
+
return call(Identifiers.deferHydrateWhen, [expr], sourceSpan);
|
|
21834
|
+
}
|
|
21835
|
+
return call(Identifiers.deferWhen, [expr], sourceSpan);
|
|
21753
21836
|
}
|
|
21754
21837
|
function declareLet(slot, sourceSpan) {
|
|
21755
21838
|
return call(Identifiers.declareLet, [literal(slot)], sourceSpan);
|
|
@@ -22238,6 +22321,7 @@ function reifyCreateOperations(unit, ops) {
|
|
|
22238
22321
|
case OpKind.DeferOn:
|
|
22239
22322
|
let args = [];
|
|
22240
22323
|
switch (op.trigger.kind) {
|
|
22324
|
+
case DeferTriggerKind.Never:
|
|
22241
22325
|
case DeferTriggerKind.Idle:
|
|
22242
22326
|
case DeferTriggerKind.Immediate:
|
|
22243
22327
|
break;
|
|
@@ -22247,18 +22331,24 @@ function reifyCreateOperations(unit, ops) {
|
|
|
22247
22331
|
case DeferTriggerKind.Interaction:
|
|
22248
22332
|
case DeferTriggerKind.Hover:
|
|
22249
22333
|
case DeferTriggerKind.Viewport:
|
|
22250
|
-
|
|
22251
|
-
|
|
22334
|
+
// `hydrate` triggers don't support targets.
|
|
22335
|
+
if (op.modifier === "hydrate" /* ir.DeferOpModifierKind.HYDRATE */) {
|
|
22336
|
+
args = [];
|
|
22252
22337
|
}
|
|
22253
|
-
|
|
22254
|
-
|
|
22255
|
-
|
|
22338
|
+
else {
|
|
22339
|
+
if (op.trigger.targetSlot?.slot == null || op.trigger.targetSlotViewSteps === null) {
|
|
22340
|
+
throw new Error(`Slot or view steps not set in trigger reification for trigger kind ${op.trigger.kind}`);
|
|
22341
|
+
}
|
|
22342
|
+
args = [op.trigger.targetSlot.slot];
|
|
22343
|
+
if (op.trigger.targetSlotViewSteps !== 0) {
|
|
22344
|
+
args.push(op.trigger.targetSlotViewSteps);
|
|
22345
|
+
}
|
|
22256
22346
|
}
|
|
22257
22347
|
break;
|
|
22258
22348
|
default:
|
|
22259
22349
|
throw new Error(`AssertionError: Unsupported reification of defer trigger kind ${op.trigger.kind}`);
|
|
22260
22350
|
}
|
|
22261
|
-
OpList.replace(op, deferOn(op.trigger.kind, args, op.
|
|
22351
|
+
OpList.replace(op, deferOn(op.trigger.kind, args, op.modifier, op.sourceSpan));
|
|
22262
22352
|
break;
|
|
22263
22353
|
case OpKind.ProjectionDef:
|
|
22264
22354
|
OpList.replace(op, projectionDef(op.def));
|
|
@@ -22416,7 +22506,7 @@ function reifyUpdateOperations(_unit, ops) {
|
|
|
22416
22506
|
OpList.replace(op, repeater(op.collection, op.sourceSpan));
|
|
22417
22507
|
break;
|
|
22418
22508
|
case OpKind.DeferWhen:
|
|
22419
|
-
OpList.replace(op, deferWhen(op.
|
|
22509
|
+
OpList.replace(op, deferWhen(op.modifier, op.expr, op.sourceSpan));
|
|
22420
22510
|
break;
|
|
22421
22511
|
case OpKind.StoreLet:
|
|
22422
22512
|
throw new Error(`AssertionError: unexpected storeLet ${op.declaredName}`);
|
|
@@ -24809,73 +24899,81 @@ function ingestDeferBlock(unit, deferBlock) {
|
|
|
24809
24899
|
// Configure all defer `on` conditions.
|
|
24810
24900
|
// TODO: refactor prefetch triggers to use a separate op type, with a shared superclass. This will
|
|
24811
24901
|
// make it easier to refactor prefetch behavior in the future.
|
|
24812
|
-
|
|
24813
|
-
|
|
24814
|
-
|
|
24815
|
-
|
|
24816
|
-
|
|
24817
|
-
|
|
24818
|
-
|
|
24819
|
-
|
|
24820
|
-
|
|
24821
|
-
|
|
24822
|
-
|
|
24823
|
-
}
|
|
24824
|
-
if (triggers.timer !== undefined) {
|
|
24825
|
-
const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Timer, delay: triggers.timer.delay }, prefetch, triggers.timer.sourceSpan);
|
|
24826
|
-
deferOnOps.push(deferOnOp);
|
|
24827
|
-
}
|
|
24828
|
-
if (triggers.hover !== undefined) {
|
|
24829
|
-
const deferOnOp = createDeferOnOp(deferXref, {
|
|
24830
|
-
kind: DeferTriggerKind.Hover,
|
|
24831
|
-
targetName: triggers.hover.reference,
|
|
24832
|
-
targetXref: null,
|
|
24833
|
-
targetSlot: null,
|
|
24834
|
-
targetView: null,
|
|
24835
|
-
targetSlotViewSteps: null,
|
|
24836
|
-
}, prefetch, triggers.hover.sourceSpan);
|
|
24837
|
-
deferOnOps.push(deferOnOp);
|
|
24838
|
-
}
|
|
24839
|
-
if (triggers.interaction !== undefined) {
|
|
24840
|
-
const deferOnOp = createDeferOnOp(deferXref, {
|
|
24841
|
-
kind: DeferTriggerKind.Interaction,
|
|
24842
|
-
targetName: triggers.interaction.reference,
|
|
24843
|
-
targetXref: null,
|
|
24844
|
-
targetSlot: null,
|
|
24845
|
-
targetView: null,
|
|
24846
|
-
targetSlotViewSteps: null,
|
|
24847
|
-
}, prefetch, triggers.interaction.sourceSpan);
|
|
24848
|
-
deferOnOps.push(deferOnOp);
|
|
24849
|
-
}
|
|
24850
|
-
if (triggers.viewport !== undefined) {
|
|
24851
|
-
const deferOnOp = createDeferOnOp(deferXref, {
|
|
24852
|
-
kind: DeferTriggerKind.Viewport,
|
|
24853
|
-
targetName: triggers.viewport.reference,
|
|
24854
|
-
targetXref: null,
|
|
24855
|
-
targetSlot: null,
|
|
24856
|
-
targetView: null,
|
|
24857
|
-
targetSlotViewSteps: null,
|
|
24858
|
-
}, prefetch, triggers.viewport.sourceSpan);
|
|
24859
|
-
deferOnOps.push(deferOnOp);
|
|
24860
|
-
}
|
|
24861
|
-
if (triggers.when !== undefined) {
|
|
24862
|
-
if (triggers.when.value instanceof Interpolation$1) {
|
|
24863
|
-
// TemplateDefinitionBuilder supports this case, but it's very strange to me. What would it
|
|
24864
|
-
// even mean?
|
|
24865
|
-
throw new Error(`Unexpected interpolation in defer block when trigger`);
|
|
24866
|
-
}
|
|
24867
|
-
const deferOnOp = createDeferWhenOp(deferXref, convertAst(triggers.when.value, unit.job, triggers.when.sourceSpan), prefetch, triggers.when.sourceSpan);
|
|
24868
|
-
deferWhenOps.push(deferOnOp);
|
|
24869
|
-
}
|
|
24870
|
-
// If no (non-prefetching) defer triggers were provided, default to `idle`.
|
|
24871
|
-
if (deferOnOps.length === 0 && deferWhenOps.length === 0) {
|
|
24872
|
-
deferOnOps.push(createDeferOnOp(deferXref, { kind: DeferTriggerKind.Idle }, false, null));
|
|
24873
|
-
}
|
|
24874
|
-
prefetch = true;
|
|
24902
|
+
const deferOnOps = [];
|
|
24903
|
+
const deferWhenOps = [];
|
|
24904
|
+
// Ingest the hydrate triggers first since they set up all the other triggers during SSR.
|
|
24905
|
+
ingestDeferTriggers("hydrate" /* ir.DeferOpModifierKind.HYDRATE */, deferBlock.hydrateTriggers, deferOnOps, deferWhenOps, unit, deferXref);
|
|
24906
|
+
ingestDeferTriggers("none" /* ir.DeferOpModifierKind.NONE */, deferBlock.triggers, deferOnOps, deferWhenOps, unit, deferXref);
|
|
24907
|
+
ingestDeferTriggers("prefetch" /* ir.DeferOpModifierKind.PREFETCH */, deferBlock.prefetchTriggers, deferOnOps, deferWhenOps, unit, deferXref);
|
|
24908
|
+
// If no (non-prefetching or hydrating) defer triggers were provided, default to `idle`.
|
|
24909
|
+
const hasConcreteTrigger = deferOnOps.some((op) => op.modifier === "none" /* ir.DeferOpModifierKind.NONE */) ||
|
|
24910
|
+
deferWhenOps.some((op) => op.modifier === "none" /* ir.DeferOpModifierKind.NONE */);
|
|
24911
|
+
if (!hasConcreteTrigger) {
|
|
24912
|
+
deferOnOps.push(createDeferOnOp(deferXref, { kind: DeferTriggerKind.Idle }, "none" /* ir.DeferOpModifierKind.NONE */, null));
|
|
24875
24913
|
}
|
|
24876
24914
|
unit.create.push(deferOnOps);
|
|
24877
24915
|
unit.update.push(deferWhenOps);
|
|
24878
24916
|
}
|
|
24917
|
+
function ingestDeferTriggers(modifier, triggers, onOps, whenOps, unit, deferXref) {
|
|
24918
|
+
if (triggers.idle !== undefined) {
|
|
24919
|
+
const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Idle }, modifier, triggers.idle.sourceSpan);
|
|
24920
|
+
onOps.push(deferOnOp);
|
|
24921
|
+
}
|
|
24922
|
+
if (triggers.immediate !== undefined) {
|
|
24923
|
+
const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Immediate }, modifier, triggers.immediate.sourceSpan);
|
|
24924
|
+
onOps.push(deferOnOp);
|
|
24925
|
+
}
|
|
24926
|
+
if (triggers.timer !== undefined) {
|
|
24927
|
+
const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Timer, delay: triggers.timer.delay }, modifier, triggers.timer.sourceSpan);
|
|
24928
|
+
onOps.push(deferOnOp);
|
|
24929
|
+
}
|
|
24930
|
+
if (triggers.hover !== undefined) {
|
|
24931
|
+
const deferOnOp = createDeferOnOp(deferXref, {
|
|
24932
|
+
kind: DeferTriggerKind.Hover,
|
|
24933
|
+
targetName: triggers.hover.reference,
|
|
24934
|
+
targetXref: null,
|
|
24935
|
+
targetSlot: null,
|
|
24936
|
+
targetView: null,
|
|
24937
|
+
targetSlotViewSteps: null,
|
|
24938
|
+
}, modifier, triggers.hover.sourceSpan);
|
|
24939
|
+
onOps.push(deferOnOp);
|
|
24940
|
+
}
|
|
24941
|
+
if (triggers.interaction !== undefined) {
|
|
24942
|
+
const deferOnOp = createDeferOnOp(deferXref, {
|
|
24943
|
+
kind: DeferTriggerKind.Interaction,
|
|
24944
|
+
targetName: triggers.interaction.reference,
|
|
24945
|
+
targetXref: null,
|
|
24946
|
+
targetSlot: null,
|
|
24947
|
+
targetView: null,
|
|
24948
|
+
targetSlotViewSteps: null,
|
|
24949
|
+
}, modifier, triggers.interaction.sourceSpan);
|
|
24950
|
+
onOps.push(deferOnOp);
|
|
24951
|
+
}
|
|
24952
|
+
if (triggers.viewport !== undefined) {
|
|
24953
|
+
const deferOnOp = createDeferOnOp(deferXref, {
|
|
24954
|
+
kind: DeferTriggerKind.Viewport,
|
|
24955
|
+
targetName: triggers.viewport.reference,
|
|
24956
|
+
targetXref: null,
|
|
24957
|
+
targetSlot: null,
|
|
24958
|
+
targetView: null,
|
|
24959
|
+
targetSlotViewSteps: null,
|
|
24960
|
+
}, modifier, triggers.viewport.sourceSpan);
|
|
24961
|
+
onOps.push(deferOnOp);
|
|
24962
|
+
}
|
|
24963
|
+
if (triggers.never !== undefined) {
|
|
24964
|
+
const deferOnOp = createDeferOnOp(deferXref, { kind: DeferTriggerKind.Never }, modifier, triggers.never.sourceSpan);
|
|
24965
|
+
onOps.push(deferOnOp);
|
|
24966
|
+
}
|
|
24967
|
+
if (triggers.when !== undefined) {
|
|
24968
|
+
if (triggers.when.value instanceof Interpolation$1) {
|
|
24969
|
+
// TemplateDefinitionBuilder supports this case, but it's very strange to me. What would it
|
|
24970
|
+
// even mean?
|
|
24971
|
+
throw new Error(`Unexpected interpolation in defer block when trigger`);
|
|
24972
|
+
}
|
|
24973
|
+
const deferOnOp = createDeferWhenOp(deferXref, convertAst(triggers.when.value, unit.job, triggers.when.sourceSpan), modifier, triggers.when.sourceSpan);
|
|
24974
|
+
whenOps.push(deferOnOp);
|
|
24975
|
+
}
|
|
24976
|
+
}
|
|
24879
24977
|
function ingestIcu(unit, icu) {
|
|
24880
24978
|
if (icu.i18n instanceof Message && isSingleI18nIcu(icu.i18n)) {
|
|
24881
24979
|
const xref = unit.job.allocateXrefId();
|
|
@@ -26631,12 +26729,29 @@ var OnTriggerType;
|
|
|
26631
26729
|
OnTriggerType["IMMEDIATE"] = "immediate";
|
|
26632
26730
|
OnTriggerType["HOVER"] = "hover";
|
|
26633
26731
|
OnTriggerType["VIEWPORT"] = "viewport";
|
|
26732
|
+
OnTriggerType["NEVER"] = "never";
|
|
26634
26733
|
})(OnTriggerType || (OnTriggerType = {}));
|
|
26635
26734
|
/** Parses a `when` deferred trigger. */
|
|
26735
|
+
function parseNeverTrigger({ expression, sourceSpan }, triggers, errors) {
|
|
26736
|
+
const neverIndex = expression.indexOf('never');
|
|
26737
|
+
const neverSourceSpan = new ParseSourceSpan(sourceSpan.start.moveBy(neverIndex), sourceSpan.start.moveBy(neverIndex + 'never'.length));
|
|
26738
|
+
const prefetchSpan = getPrefetchSpan(expression, sourceSpan);
|
|
26739
|
+
const hydrateSpan = getHydrateSpan(expression, sourceSpan);
|
|
26740
|
+
// This is here just to be safe, we shouldn't enter this function
|
|
26741
|
+
// in the first place if a block doesn't have the "on" keyword.
|
|
26742
|
+
if (neverIndex === -1) {
|
|
26743
|
+
errors.push(new ParseError(sourceSpan, `Could not find "never" keyword in expression`));
|
|
26744
|
+
}
|
|
26745
|
+
else {
|
|
26746
|
+
trackTrigger('never', triggers, errors, new NeverDeferredTrigger(neverSourceSpan, sourceSpan, prefetchSpan, null, hydrateSpan));
|
|
26747
|
+
}
|
|
26748
|
+
}
|
|
26749
|
+
/** Parses a `when` deferred trigger. */
|
|
26636
26750
|
function parseWhenTrigger({ expression, sourceSpan }, bindingParser, triggers, errors) {
|
|
26637
26751
|
const whenIndex = expression.indexOf('when');
|
|
26638
26752
|
const whenSourceSpan = new ParseSourceSpan(sourceSpan.start.moveBy(whenIndex), sourceSpan.start.moveBy(whenIndex + 'when'.length));
|
|
26639
26753
|
const prefetchSpan = getPrefetchSpan(expression, sourceSpan);
|
|
26754
|
+
const hydrateSpan = getHydrateSpan(expression, sourceSpan);
|
|
26640
26755
|
// This is here just to be safe, we shouldn't enter this function
|
|
26641
26756
|
// in the first place if a block doesn't have the "when" keyword.
|
|
26642
26757
|
if (whenIndex === -1) {
|
|
@@ -26645,7 +26760,7 @@ function parseWhenTrigger({ expression, sourceSpan }, bindingParser, triggers, e
|
|
|
26645
26760
|
else {
|
|
26646
26761
|
const start = getTriggerParametersStart(expression, whenIndex + 1);
|
|
26647
26762
|
const parsed = bindingParser.parseBinding(expression.slice(start), false, sourceSpan, sourceSpan.start.offset + start);
|
|
26648
|
-
trackTrigger('when', triggers, errors, new BoundDeferredTrigger(parsed, sourceSpan, prefetchSpan, whenSourceSpan));
|
|
26763
|
+
trackTrigger('when', triggers, errors, new BoundDeferredTrigger(parsed, sourceSpan, prefetchSpan, whenSourceSpan, hydrateSpan));
|
|
26649
26764
|
}
|
|
26650
26765
|
}
|
|
26651
26766
|
/** Parses an `on` trigger */
|
|
@@ -26653,6 +26768,7 @@ function parseOnTrigger({ expression, sourceSpan }, triggers, errors, placeholde
|
|
|
26653
26768
|
const onIndex = expression.indexOf('on');
|
|
26654
26769
|
const onSourceSpan = new ParseSourceSpan(sourceSpan.start.moveBy(onIndex), sourceSpan.start.moveBy(onIndex + 'on'.length));
|
|
26655
26770
|
const prefetchSpan = getPrefetchSpan(expression, sourceSpan);
|
|
26771
|
+
const hydrateSpan = getHydrateSpan(expression, sourceSpan);
|
|
26656
26772
|
// This is here just to be safe, we shouldn't enter this function
|
|
26657
26773
|
// in the first place if a block doesn't have the "on" keyword.
|
|
26658
26774
|
if (onIndex === -1) {
|
|
@@ -26660,7 +26776,9 @@ function parseOnTrigger({ expression, sourceSpan }, triggers, errors, placeholde
|
|
|
26660
26776
|
}
|
|
26661
26777
|
else {
|
|
26662
26778
|
const start = getTriggerParametersStart(expression, onIndex + 1);
|
|
26663
|
-
const parser = new OnTriggerParser(expression, start, sourceSpan, triggers, errors,
|
|
26779
|
+
const parser = new OnTriggerParser(expression, start, sourceSpan, triggers, errors, expression.startsWith('hydrate')
|
|
26780
|
+
? validateHydrateReferenceBasedTrigger
|
|
26781
|
+
: validatePlainReferenceBasedTrigger, placeholder, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
26664
26782
|
parser.parse();
|
|
26665
26783
|
}
|
|
26666
26784
|
}
|
|
@@ -26670,16 +26788,24 @@ function getPrefetchSpan(expression, sourceSpan) {
|
|
|
26670
26788
|
}
|
|
26671
26789
|
return new ParseSourceSpan(sourceSpan.start, sourceSpan.start.moveBy('prefetch'.length));
|
|
26672
26790
|
}
|
|
26791
|
+
function getHydrateSpan(expression, sourceSpan) {
|
|
26792
|
+
if (!expression.startsWith('hydrate')) {
|
|
26793
|
+
return null;
|
|
26794
|
+
}
|
|
26795
|
+
return new ParseSourceSpan(sourceSpan.start, sourceSpan.start.moveBy('hydrate'.length));
|
|
26796
|
+
}
|
|
26673
26797
|
class OnTriggerParser {
|
|
26674
|
-
constructor(expression, start, span, triggers, errors, placeholder, prefetchSpan, onSourceSpan) {
|
|
26798
|
+
constructor(expression, start, span, triggers, errors, validator, placeholder, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
26675
26799
|
this.expression = expression;
|
|
26676
26800
|
this.start = start;
|
|
26677
26801
|
this.span = span;
|
|
26678
26802
|
this.triggers = triggers;
|
|
26679
26803
|
this.errors = errors;
|
|
26804
|
+
this.validator = validator;
|
|
26680
26805
|
this.placeholder = placeholder;
|
|
26681
26806
|
this.prefetchSpan = prefetchSpan;
|
|
26682
26807
|
this.onSourceSpan = onSourceSpan;
|
|
26808
|
+
this.hydrateSpan = hydrateSpan;
|
|
26683
26809
|
this.index = 0;
|
|
26684
26810
|
this.tokens = new Lexer().tokenize(expression.slice(start));
|
|
26685
26811
|
}
|
|
@@ -26734,26 +26860,27 @@ class OnTriggerParser {
|
|
|
26734
26860
|
const isFirstTrigger = identifier.index === 0;
|
|
26735
26861
|
const onSourceSpan = isFirstTrigger ? this.onSourceSpan : null;
|
|
26736
26862
|
const prefetchSourceSpan = isFirstTrigger ? this.prefetchSpan : null;
|
|
26863
|
+
const hydrateSourceSpan = isFirstTrigger ? this.hydrateSpan : null;
|
|
26737
26864
|
const sourceSpan = new ParseSourceSpan(isFirstTrigger ? this.span.start : triggerNameStartSpan, endSpan);
|
|
26738
26865
|
try {
|
|
26739
26866
|
switch (identifier.toString()) {
|
|
26740
26867
|
case OnTriggerType.IDLE:
|
|
26741
|
-
this.trackTrigger('idle', createIdleTrigger(parameters, nameSpan, sourceSpan, prefetchSourceSpan, onSourceSpan));
|
|
26868
|
+
this.trackTrigger('idle', createIdleTrigger(parameters, nameSpan, sourceSpan, prefetchSourceSpan, onSourceSpan, hydrateSourceSpan));
|
|
26742
26869
|
break;
|
|
26743
26870
|
case OnTriggerType.TIMER:
|
|
26744
|
-
this.trackTrigger('timer', createTimerTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan));
|
|
26871
|
+
this.trackTrigger('timer', createTimerTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan));
|
|
26745
26872
|
break;
|
|
26746
26873
|
case OnTriggerType.INTERACTION:
|
|
26747
|
-
this.trackTrigger('interaction', createInteractionTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.placeholder));
|
|
26874
|
+
this.trackTrigger('interaction', createInteractionTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan, this.placeholder, this.validator));
|
|
26748
26875
|
break;
|
|
26749
26876
|
case OnTriggerType.IMMEDIATE:
|
|
26750
|
-
this.trackTrigger('immediate', createImmediateTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan));
|
|
26877
|
+
this.trackTrigger('immediate', createImmediateTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan));
|
|
26751
26878
|
break;
|
|
26752
26879
|
case OnTriggerType.HOVER:
|
|
26753
|
-
this.trackTrigger('hover', createHoverTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.placeholder));
|
|
26880
|
+
this.trackTrigger('hover', createHoverTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan, this.placeholder, this.validator));
|
|
26754
26881
|
break;
|
|
26755
26882
|
case OnTriggerType.VIEWPORT:
|
|
26756
|
-
this.trackTrigger('viewport', createViewportTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.placeholder));
|
|
26883
|
+
this.trackTrigger('viewport', createViewportTrigger(parameters, nameSpan, sourceSpan, this.prefetchSpan, this.onSourceSpan, this.hydrateSpan, this.placeholder, this.validator));
|
|
26757
26884
|
break;
|
|
26758
26885
|
default:
|
|
26759
26886
|
throw new Error(`Unrecognized trigger type "${identifier}"`);
|
|
@@ -26843,13 +26970,13 @@ function trackTrigger(name, allTriggers, errors, trigger) {
|
|
|
26843
26970
|
allTriggers[name] = trigger;
|
|
26844
26971
|
}
|
|
26845
26972
|
}
|
|
26846
|
-
function createIdleTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan) {
|
|
26973
|
+
function createIdleTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
26847
26974
|
if (parameters.length > 0) {
|
|
26848
26975
|
throw new Error(`"${OnTriggerType.IDLE}" trigger cannot have parameters`);
|
|
26849
26976
|
}
|
|
26850
|
-
return new IdleDeferredTrigger(nameSpan, sourceSpan, prefetchSpan, onSourceSpan);
|
|
26977
|
+
return new IdleDeferredTrigger(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
26851
26978
|
}
|
|
26852
|
-
function createTimerTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan) {
|
|
26979
|
+
function createTimerTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
26853
26980
|
if (parameters.length !== 1) {
|
|
26854
26981
|
throw new Error(`"${OnTriggerType.TIMER}" trigger must have exactly one parameter`);
|
|
26855
26982
|
}
|
|
@@ -26857,27 +26984,33 @@ function createTimerTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSo
|
|
|
26857
26984
|
if (delay === null) {
|
|
26858
26985
|
throw new Error(`Could not parse time value of trigger "${OnTriggerType.TIMER}"`);
|
|
26859
26986
|
}
|
|
26860
|
-
return new TimerDeferredTrigger(delay, nameSpan, sourceSpan, prefetchSpan, onSourceSpan);
|
|
26987
|
+
return new TimerDeferredTrigger(delay, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
26861
26988
|
}
|
|
26862
|
-
function createImmediateTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan) {
|
|
26989
|
+
function createImmediateTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan) {
|
|
26863
26990
|
if (parameters.length > 0) {
|
|
26864
26991
|
throw new Error(`"${OnTriggerType.IMMEDIATE}" trigger cannot have parameters`);
|
|
26865
26992
|
}
|
|
26866
|
-
return new ImmediateDeferredTrigger(nameSpan, sourceSpan, prefetchSpan, onSourceSpan);
|
|
26993
|
+
return new ImmediateDeferredTrigger(nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
26867
26994
|
}
|
|
26868
|
-
function createHoverTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, placeholder) {
|
|
26869
|
-
|
|
26870
|
-
return new HoverDeferredTrigger(parameters[0] ?? null, nameSpan, sourceSpan, prefetchSpan, onSourceSpan);
|
|
26995
|
+
function createHoverTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan, placeholder, validator) {
|
|
26996
|
+
validator(OnTriggerType.HOVER, parameters, placeholder);
|
|
26997
|
+
return new HoverDeferredTrigger(parameters[0] ?? null, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
26871
26998
|
}
|
|
26872
|
-
function createInteractionTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, placeholder) {
|
|
26873
|
-
|
|
26874
|
-
return new InteractionDeferredTrigger(parameters[0] ?? null, nameSpan, sourceSpan, prefetchSpan, onSourceSpan);
|
|
26999
|
+
function createInteractionTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan, placeholder, validator) {
|
|
27000
|
+
validator(OnTriggerType.INTERACTION, parameters, placeholder);
|
|
27001
|
+
return new InteractionDeferredTrigger(parameters[0] ?? null, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
26875
27002
|
}
|
|
26876
|
-
function createViewportTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, placeholder) {
|
|
26877
|
-
|
|
26878
|
-
return new ViewportDeferredTrigger(parameters[0] ?? null, nameSpan, sourceSpan, prefetchSpan, onSourceSpan);
|
|
27003
|
+
function createViewportTrigger(parameters, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan, placeholder, validator) {
|
|
27004
|
+
validator(OnTriggerType.VIEWPORT, parameters, placeholder);
|
|
27005
|
+
return new ViewportDeferredTrigger(parameters[0] ?? null, nameSpan, sourceSpan, prefetchSpan, onSourceSpan, hydrateSpan);
|
|
26879
27006
|
}
|
|
26880
|
-
|
|
27007
|
+
/**
|
|
27008
|
+
* Checks whether the structure of a non-hydrate reference-based trigger is valid.
|
|
27009
|
+
* @param type Type of the trigger being validated.
|
|
27010
|
+
* @param parameters Parameters of the trigger.
|
|
27011
|
+
* @param placeholder Placeholder of the defer block.
|
|
27012
|
+
*/
|
|
27013
|
+
function validatePlainReferenceBasedTrigger(type, parameters, placeholder) {
|
|
26881
27014
|
if (parameters.length > 1) {
|
|
26882
27015
|
throw new Error(`"${type}" trigger can only have zero or one parameters`);
|
|
26883
27016
|
}
|
|
@@ -26891,6 +27024,16 @@ function validateReferenceBasedTrigger(type, parameters, placeholder) {
|
|
|
26891
27024
|
}
|
|
26892
27025
|
}
|
|
26893
27026
|
}
|
|
27027
|
+
/**
|
|
27028
|
+
* Checks whether the structure of a hydrate trigger is valid.
|
|
27029
|
+
* @param type Type of the trigger being validated.
|
|
27030
|
+
* @param parameters Parameters of the trigger.
|
|
27031
|
+
*/
|
|
27032
|
+
function validateHydrateReferenceBasedTrigger(type, parameters) {
|
|
27033
|
+
if (parameters.length > 0) {
|
|
27034
|
+
throw new Error(`Hydration trigger "${type}" cannot have parameters`);
|
|
27035
|
+
}
|
|
27036
|
+
}
|
|
26894
27037
|
/** Gets the index within an expression at which the trigger parameters start. */
|
|
26895
27038
|
function getTriggerParametersStart(value, startPosition = 0) {
|
|
26896
27039
|
let hasFoundSeparator = false;
|
|
@@ -26921,6 +27064,12 @@ function parseDeferredTime(value) {
|
|
|
26921
27064
|
const PREFETCH_WHEN_PATTERN = /^prefetch\s+when\s/;
|
|
26922
27065
|
/** Pattern to identify a `prefetch on` trigger. */
|
|
26923
27066
|
const PREFETCH_ON_PATTERN = /^prefetch\s+on\s/;
|
|
27067
|
+
/** Pattern to identify a `hydrate when` trigger. */
|
|
27068
|
+
const HYDRATE_WHEN_PATTERN = /^hydrate\s+when\s/;
|
|
27069
|
+
/** Pattern to identify a `hydrate on` trigger. */
|
|
27070
|
+
const HYDRATE_ON_PATTERN = /^hydrate\s+on\s/;
|
|
27071
|
+
/** Pattern to identify a `hydrate never` trigger. */
|
|
27072
|
+
const HYDRATE_NEVER_PATTERN = /^hydrate\s+never\s*/;
|
|
26924
27073
|
/** Pattern to identify a `minimum` parameter in a block. */
|
|
26925
27074
|
const MINIMUM_PARAMETER_PATTERN = /^minimum\s/;
|
|
26926
27075
|
/** Pattern to identify a `after` parameter in a block. */
|
|
@@ -26940,7 +27089,7 @@ function isConnectedDeferLoopBlock(name) {
|
|
|
26940
27089
|
function createDeferredBlock(ast, connectedBlocks, visitor, bindingParser) {
|
|
26941
27090
|
const errors = [];
|
|
26942
27091
|
const { placeholder, loading, error } = parseConnectedBlocks(connectedBlocks, errors, visitor);
|
|
26943
|
-
const { triggers, prefetchTriggers } = parsePrimaryTriggers(ast
|
|
27092
|
+
const { triggers, prefetchTriggers, hydrateTriggers } = parsePrimaryTriggers(ast, bindingParser, errors, placeholder);
|
|
26944
27093
|
// The `defer` block has a main span encompassing all of the connected branches as well.
|
|
26945
27094
|
let lastEndSourceSpan = ast.endSourceSpan;
|
|
26946
27095
|
let endOfLastSourceSpan = ast.sourceSpan.end;
|
|
@@ -26950,7 +27099,7 @@ function createDeferredBlock(ast, connectedBlocks, visitor, bindingParser) {
|
|
|
26950
27099
|
endOfLastSourceSpan = lastConnectedBlock.sourceSpan.end;
|
|
26951
27100
|
}
|
|
26952
27101
|
const sourceSpanWithConnectedBlocks = new ParseSourceSpan(ast.sourceSpan.start, endOfLastSourceSpan);
|
|
26953
|
-
const node = new DeferredBlock(visitAll(visitor, ast.children, ast.children), triggers, prefetchTriggers, placeholder, loading, error, ast.nameSpan, sourceSpanWithConnectedBlocks, ast.sourceSpan, ast.startSourceSpan, lastEndSourceSpan, ast.i18n);
|
|
27102
|
+
const node = new DeferredBlock(visitAll(visitor, ast.children, ast.children), triggers, prefetchTriggers, hydrateTriggers, placeholder, loading, error, ast.nameSpan, sourceSpanWithConnectedBlocks, ast.sourceSpan, ast.startSourceSpan, lastEndSourceSpan, ast.i18n);
|
|
26954
27103
|
return { node, errors };
|
|
26955
27104
|
}
|
|
26956
27105
|
function parseConnectedBlocks(connectedBlocks, errors, visitor) {
|
|
@@ -27051,10 +27200,11 @@ function parseErrorBlock(ast, visitor) {
|
|
|
27051
27200
|
}
|
|
27052
27201
|
return new DeferredBlockError(visitAll(visitor, ast.children, ast.children), ast.nameSpan, ast.sourceSpan, ast.startSourceSpan, ast.endSourceSpan, ast.i18n);
|
|
27053
27202
|
}
|
|
27054
|
-
function parsePrimaryTriggers(
|
|
27203
|
+
function parsePrimaryTriggers(ast, bindingParser, errors, placeholder) {
|
|
27055
27204
|
const triggers = {};
|
|
27056
27205
|
const prefetchTriggers = {};
|
|
27057
|
-
|
|
27206
|
+
const hydrateTriggers = {};
|
|
27207
|
+
for (const param of ast.parameters) {
|
|
27058
27208
|
// The lexer ignores the leading spaces so we can assume
|
|
27059
27209
|
// that the expression starts with a keyword.
|
|
27060
27210
|
if (WHEN_PARAMETER_PATTERN.test(param.expression)) {
|
|
@@ -27069,11 +27219,23 @@ function parsePrimaryTriggers(params, bindingParser, errors, placeholder) {
|
|
|
27069
27219
|
else if (PREFETCH_ON_PATTERN.test(param.expression)) {
|
|
27070
27220
|
parseOnTrigger(param, prefetchTriggers, errors, placeholder);
|
|
27071
27221
|
}
|
|
27222
|
+
else if (HYDRATE_WHEN_PATTERN.test(param.expression)) {
|
|
27223
|
+
parseWhenTrigger(param, bindingParser, hydrateTriggers, errors);
|
|
27224
|
+
}
|
|
27225
|
+
else if (HYDRATE_ON_PATTERN.test(param.expression)) {
|
|
27226
|
+
parseOnTrigger(param, hydrateTriggers, errors, placeholder);
|
|
27227
|
+
}
|
|
27228
|
+
else if (HYDRATE_NEVER_PATTERN.test(param.expression)) {
|
|
27229
|
+
parseNeverTrigger(param, hydrateTriggers, errors);
|
|
27230
|
+
}
|
|
27072
27231
|
else {
|
|
27073
27232
|
errors.push(new ParseError(param.sourceSpan, 'Unrecognized trigger'));
|
|
27074
27233
|
}
|
|
27075
27234
|
}
|
|
27076
|
-
|
|
27235
|
+
if (hydrateTriggers.never && Object.keys(hydrateTriggers).length > 1) {
|
|
27236
|
+
errors.push(new ParseError(ast.startSourceSpan, 'Cannot specify additional `hydrate` triggers if `hydrate never` is present'));
|
|
27237
|
+
}
|
|
27238
|
+
return { triggers, prefetchTriggers, hydrateTriggers };
|
|
27077
27239
|
}
|
|
27078
27240
|
|
|
27079
27241
|
const BIND_NAME_REGEXP = /^(?:(bind-)|(let-)|(ref-|#)|(on-)|(bindon-)|(@))(.*)$/;
|
|
@@ -28149,11 +28311,18 @@ function compileStyles(styles, selector, hostSelector) {
|
|
|
28149
28311
|
* is using the `ViewEncapsulation.Emulated` mode.
|
|
28150
28312
|
*
|
|
28151
28313
|
* @param style The content of a CSS stylesheet.
|
|
28314
|
+
* @param componentIdentifier The identifier to use within the CSS rules.
|
|
28152
28315
|
* @returns The encapsulated content for the style.
|
|
28153
28316
|
*/
|
|
28154
|
-
function encapsulateStyle(style) {
|
|
28317
|
+
function encapsulateStyle(style, componentIdentifier) {
|
|
28155
28318
|
const shadowCss = new ShadowCss();
|
|
28156
|
-
|
|
28319
|
+
const selector = componentIdentifier
|
|
28320
|
+
? CONTENT_ATTR.replace(COMPONENT_VARIABLE, componentIdentifier)
|
|
28321
|
+
: CONTENT_ATTR;
|
|
28322
|
+
const hostSelector = componentIdentifier
|
|
28323
|
+
? HOST_ATTR.replace(COMPONENT_VARIABLE, componentIdentifier)
|
|
28324
|
+
: HOST_ATTR;
|
|
28325
|
+
return shadowCss.shimCssText(style, selector, hostSelector);
|
|
28157
28326
|
}
|
|
28158
28327
|
function createHostDirectivesType(meta) {
|
|
28159
28328
|
if (!meta.hostDirectives?.length) {
|
|
@@ -28860,6 +29029,8 @@ class TemplateBinder extends RecursiveAstVisitor {
|
|
|
28860
29029
|
this.ingestScopedNode(deferred);
|
|
28861
29030
|
deferred.triggers.when?.value.visit(this);
|
|
28862
29031
|
deferred.prefetchTriggers.when?.value.visit(this);
|
|
29032
|
+
deferred.hydrateTriggers.when?.value.visit(this);
|
|
29033
|
+
deferred.hydrateTriggers.never?.visit(this);
|
|
28863
29034
|
deferred.placeholder && this.visitNode(deferred.placeholder);
|
|
28864
29035
|
deferred.loading && this.visitNode(deferred.loading);
|
|
28865
29036
|
deferred.error && this.visitNode(deferred.error);
|
|
@@ -29805,7 +29976,7 @@ function publishFacade(global) {
|
|
|
29805
29976
|
* @description
|
|
29806
29977
|
* Entry point for all public APIs of the compiler package.
|
|
29807
29978
|
*/
|
|
29808
|
-
const VERSION = new Version('19.0.0-next.
|
|
29979
|
+
const VERSION = new Version('19.0.0-next.6');
|
|
29809
29980
|
|
|
29810
29981
|
class CompilerConfig {
|
|
29811
29982
|
constructor({ defaultEncapsulation = ViewEncapsulation.Emulated, preserveWhitespaces, strictInjectionParameters, } = {}) {
|
|
@@ -31456,7 +31627,7 @@ const MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION = '18.0.0';
|
|
|
31456
31627
|
function compileDeclareClassMetadata(metadata) {
|
|
31457
31628
|
const definitionMap = new DefinitionMap();
|
|
31458
31629
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$5));
|
|
31459
|
-
definitionMap.set('version', literal('19.0.0-next.
|
|
31630
|
+
definitionMap.set('version', literal('19.0.0-next.6'));
|
|
31460
31631
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
31461
31632
|
definitionMap.set('type', metadata.type);
|
|
31462
31633
|
definitionMap.set('decorators', metadata.decorators);
|
|
@@ -31474,7 +31645,7 @@ function compileComponentDeclareClassMetadata(metadata, dependencies) {
|
|
|
31474
31645
|
callbackReturnDefinitionMap.set('ctorParameters', metadata.ctorParameters ?? literal(null));
|
|
31475
31646
|
callbackReturnDefinitionMap.set('propDecorators', metadata.propDecorators ?? literal(null));
|
|
31476
31647
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_DEFER_SUPPORT_VERSION));
|
|
31477
|
-
definitionMap.set('version', literal('19.0.0-next.
|
|
31648
|
+
definitionMap.set('version', literal('19.0.0-next.6'));
|
|
31478
31649
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
31479
31650
|
definitionMap.set('type', metadata.type);
|
|
31480
31651
|
definitionMap.set('resolveDeferredDeps', compileComponentMetadataAsyncResolver(dependencies));
|
|
@@ -31569,7 +31740,7 @@ function createDirectiveDefinitionMap(meta) {
|
|
|
31569
31740
|
const definitionMap = new DefinitionMap();
|
|
31570
31741
|
const minVersion = getMinimumVersionForPartialOutput(meta);
|
|
31571
31742
|
definitionMap.set('minVersion', literal(minVersion));
|
|
31572
|
-
definitionMap.set('version', literal('19.0.0-next.
|
|
31743
|
+
definitionMap.set('version', literal('19.0.0-next.6'));
|
|
31573
31744
|
// e.g. `type: MyDirective`
|
|
31574
31745
|
definitionMap.set('type', meta.type.value);
|
|
31575
31746
|
if (meta.isStandalone) {
|
|
@@ -31991,7 +32162,7 @@ const MINIMUM_PARTIAL_LINKER_VERSION$4 = '12.0.0';
|
|
|
31991
32162
|
function compileDeclareFactoryFunction(meta) {
|
|
31992
32163
|
const definitionMap = new DefinitionMap();
|
|
31993
32164
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$4));
|
|
31994
|
-
definitionMap.set('version', literal('19.0.0-next.
|
|
32165
|
+
definitionMap.set('version', literal('19.0.0-next.6'));
|
|
31995
32166
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
31996
32167
|
definitionMap.set('type', meta.type.value);
|
|
31997
32168
|
definitionMap.set('deps', compileDependencies(meta.deps));
|
|
@@ -32026,7 +32197,7 @@ function compileDeclareInjectableFromMetadata(meta) {
|
|
|
32026
32197
|
function createInjectableDefinitionMap(meta) {
|
|
32027
32198
|
const definitionMap = new DefinitionMap();
|
|
32028
32199
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$3));
|
|
32029
|
-
definitionMap.set('version', literal('19.0.0-next.
|
|
32200
|
+
definitionMap.set('version', literal('19.0.0-next.6'));
|
|
32030
32201
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32031
32202
|
definitionMap.set('type', meta.type.value);
|
|
32032
32203
|
// Only generate providedIn property if it has a non-null value
|
|
@@ -32077,7 +32248,7 @@ function compileDeclareInjectorFromMetadata(meta) {
|
|
|
32077
32248
|
function createInjectorDefinitionMap(meta) {
|
|
32078
32249
|
const definitionMap = new DefinitionMap();
|
|
32079
32250
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$2));
|
|
32080
|
-
definitionMap.set('version', literal('19.0.0-next.
|
|
32251
|
+
definitionMap.set('version', literal('19.0.0-next.6'));
|
|
32081
32252
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32082
32253
|
definitionMap.set('type', meta.type.value);
|
|
32083
32254
|
definitionMap.set('providers', meta.providers);
|
|
@@ -32110,7 +32281,7 @@ function createNgModuleDefinitionMap(meta) {
|
|
|
32110
32281
|
throw new Error('Invalid path! Local compilation mode should not get into the partial compilation path');
|
|
32111
32282
|
}
|
|
32112
32283
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION$1));
|
|
32113
|
-
definitionMap.set('version', literal('19.0.0-next.
|
|
32284
|
+
definitionMap.set('version', literal('19.0.0-next.6'));
|
|
32114
32285
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32115
32286
|
definitionMap.set('type', meta.type.value);
|
|
32116
32287
|
// We only generate the keys in the metadata if the arrays contain values.
|
|
@@ -32161,7 +32332,7 @@ function compileDeclarePipeFromMetadata(meta) {
|
|
|
32161
32332
|
function createPipeDefinitionMap(meta) {
|
|
32162
32333
|
const definitionMap = new DefinitionMap();
|
|
32163
32334
|
definitionMap.set('minVersion', literal(MINIMUM_PARTIAL_LINKER_VERSION));
|
|
32164
|
-
definitionMap.set('version', literal('19.0.0-next.
|
|
32335
|
+
definitionMap.set('version', literal('19.0.0-next.6'));
|
|
32165
32336
|
definitionMap.set('ngImport', importExpr(Identifiers.core));
|
|
32166
32337
|
// e.g. `type: MyPipe`
|
|
32167
32338
|
definitionMap.set('type', meta.type.value);
|
|
@@ -32194,5 +32365,5 @@ publishFacade(_global);
|
|
|
32194
32365
|
|
|
32195
32366
|
// This file is not used to build this module. It is only used during editing
|
|
32196
32367
|
|
|
32197
|
-
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, AstMemoryEfficientTransformer, AstTransformer, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CommaExpr, Comment, CompilerConfig, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget$1 as FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, KeyedWrite, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, ParserError, PrefixNot, PropertyRead, PropertyWrite, R3BoundTarget, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, ResourceLoader, ReturnStatement, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, Serializer, SplitInterpolation, Statement, StmtModifier, TagContentType, TaggedTemplateExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, HoverDeferredTrigger as TmplAstHoverDeferredTrigger, Icu$1 as TmplAstIcu, IdleDeferredTrigger as TmplAstIdleDeferredTrigger, IfBlock as TmplAstIfBlock, IfBlockBranch as TmplAstIfBlockBranch, ImmediateDeferredTrigger as TmplAstImmediateDeferredTrigger, InteractionDeferredTrigger as TmplAstInteractionDeferredTrigger, LetDeclaration$1 as TmplAstLetDeclaration, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, SwitchBlock as TmplAstSwitchBlock, SwitchBlockCase as TmplAstSwitchBlockCase, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, TimerDeferredTrigger as TmplAstTimerDeferredTrigger, UnknownBlock as TmplAstUnknownBlock, Variable as TmplAstVariable, ViewportDeferredTrigger as TmplAstViewportDeferredTrigger, Token, TokenType, TransplantedType, TreeError, Type, TypeModifier, TypeofExpr, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation, WrappedNodeExpr, WriteKeyExpr, WritePropExpr, WriteVarExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, compileClassDebugInfo, compileClassMetadata, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDeferResolverFunction, compileDirectiveFromMetadata, compileFactoryFunction, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isIdentifier, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
|
|
32368
|
+
export { AST, ASTWithName, ASTWithSource, AbsoluteSourceSpan, ArrayType, ArrowFunctionExpr, AstMemoryEfficientTransformer, AstTransformer, Attribute, Binary, BinaryOperator, BinaryOperatorExpr, BindingPipe, BindingType, Block, BlockParameter, BoundElementProperty, BuiltinType, BuiltinTypeName, CUSTOM_ELEMENTS_SCHEMA, Call, Chain, ChangeDetectionStrategy, CommaExpr, Comment, CompilerConfig, Conditional, ConditionalExpr, ConstantPool, CssSelector, DEFAULT_INTERPOLATION_CONFIG, DYNAMIC_TYPE, DeclareFunctionStmt, DeclareVarStmt, DomElementSchemaRegistry, DynamicImportExpr, EOF, Element, ElementSchemaRegistry, EmitterVisitorContext, EmptyExpr$1 as EmptyExpr, Expansion, ExpansionCase, Expression, ExpressionBinding, ExpressionStatement, ExpressionType, ExternalExpr, ExternalReference, FactoryTarget$1 as FactoryTarget, FunctionExpr, HtmlParser, HtmlTagDefinition, I18NHtmlParser, IfStmt, ImplicitReceiver, InstantiateExpr, Interpolation$1 as Interpolation, InterpolationConfig, InvokeFunctionExpr, JSDocComment, JitEvaluator, KeyedRead, KeyedWrite, LeadingComment, LetDeclaration, Lexer, LiteralArray, LiteralArrayExpr, LiteralExpr, LiteralMap, LiteralMapExpr, LiteralPrimitive, LocalizedString, MapType, MessageBundle, NONE_TYPE, NO_ERRORS_SCHEMA, NodeWithI18n, NonNullAssert, NotExpr, ParseError, ParseErrorLevel, ParseLocation, ParseSourceFile, ParseSourceSpan, ParseSpan, ParseTreeResult, ParsedEvent, ParsedEventType, ParsedProperty, ParsedPropertyType, ParsedVariable, Parser, ParserError, PrefixNot, PropertyRead, PropertyWrite, R3BoundTarget, Identifiers as R3Identifiers, R3NgModuleMetadataKind, R3SelectorScopeMode, R3TargetBinder, R3TemplateDependencyKind, ReadKeyExpr, ReadPropExpr, ReadVarExpr, RecursiveAstVisitor, RecursiveVisitor, ResourceLoader, ReturnStatement, STRING_TYPE, SafeCall, SafeKeyedRead, SafePropertyRead, SelectorContext, SelectorListContext, SelectorMatcher, Serializer, SplitInterpolation, Statement, StmtModifier, TagContentType, TaggedTemplateExpr, TemplateBindingParseResult, TemplateLiteral, TemplateLiteralElement, Text, ThisReceiver, BlockNode as TmplAstBlockNode, BoundAttribute as TmplAstBoundAttribute, BoundDeferredTrigger as TmplAstBoundDeferredTrigger, BoundEvent as TmplAstBoundEvent, BoundText as TmplAstBoundText, Content as TmplAstContent, DeferredBlock as TmplAstDeferredBlock, DeferredBlockError as TmplAstDeferredBlockError, DeferredBlockLoading as TmplAstDeferredBlockLoading, DeferredBlockPlaceholder as TmplAstDeferredBlockPlaceholder, DeferredTrigger as TmplAstDeferredTrigger, Element$1 as TmplAstElement, ForLoopBlock as TmplAstForLoopBlock, ForLoopBlockEmpty as TmplAstForLoopBlockEmpty, HoverDeferredTrigger as TmplAstHoverDeferredTrigger, Icu$1 as TmplAstIcu, IdleDeferredTrigger as TmplAstIdleDeferredTrigger, IfBlock as TmplAstIfBlock, IfBlockBranch as TmplAstIfBlockBranch, ImmediateDeferredTrigger as TmplAstImmediateDeferredTrigger, InteractionDeferredTrigger as TmplAstInteractionDeferredTrigger, LetDeclaration$1 as TmplAstLetDeclaration, NeverDeferredTrigger as TmplAstNeverDeferredTrigger, RecursiveVisitor$1 as TmplAstRecursiveVisitor, Reference as TmplAstReference, SwitchBlock as TmplAstSwitchBlock, SwitchBlockCase as TmplAstSwitchBlockCase, Template as TmplAstTemplate, Text$3 as TmplAstText, TextAttribute as TmplAstTextAttribute, TimerDeferredTrigger as TmplAstTimerDeferredTrigger, UnknownBlock as TmplAstUnknownBlock, Variable as TmplAstVariable, ViewportDeferredTrigger as TmplAstViewportDeferredTrigger, Token, TokenType, TransplantedType, TreeError, Type, TypeModifier, TypeofExpr, Unary, UnaryOperator, UnaryOperatorExpr, VERSION, VariableBinding, Version, ViewEncapsulation, WrappedNodeExpr, WriteKeyExpr, WritePropExpr, WriteVarExpr, Xliff, Xliff2, Xmb, XmlParser, Xtb, compileClassDebugInfo, compileClassMetadata, compileComponentClassMetadata, compileComponentDeclareClassMetadata, compileComponentFromMetadata, compileDeclareClassMetadata, compileDeclareComponentFromMetadata, compileDeclareDirectiveFromMetadata, compileDeclareFactoryFunction, compileDeclareInjectableFromMetadata, compileDeclareInjectorFromMetadata, compileDeclareNgModuleFromMetadata, compileDeclarePipeFromMetadata, compileDeferResolverFunction, compileDirectiveFromMetadata, compileFactoryFunction, compileInjectable, compileInjector, compileNgModule, compileOpaqueAsyncClassMetadata, compilePipeFromMetadata, computeMsgId, core, createCssSelectorFromNode, createInjectableType, createMayBeForwardRefExpression, devOnlyGuardedExpression, emitDistinctChangesOnlyDefaultValue, encapsulateStyle, findMatchingDirectivesAndPipes, getHtmlTagDefinition, getNsPrefix, getSafePropertyAccessString, identifierName, isIdentifier, isNgContainer, isNgContent, isNgTemplate, jsDocComment, leadingComment, literal, literalMap, makeBindingParser, mergeNsAndName, output_ast as outputAst, parseHostBindings, parseTemplate, preserveWhitespacesDefault, publishFacade, r3JitTypeSourceSpan, sanitizeIdentifier, splitNsName, visitAll$1 as tmplAstVisitAll, verifyHostBindings, visitAll };
|
|
32198
32369
|
//# sourceMappingURL=compiler.mjs.map
|