@player-ui/player 0.8.0-next.4 → 0.8.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/dist/Player.native.js +240 -252
- package/dist/Player.native.js.map +1 -1
- package/dist/cjs/index.cjs +208 -268
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/index.legacy-esm.js +206 -270
- package/dist/index.mjs +206 -270
- package/dist/index.mjs.map +1 -1
- package/package.json +4 -4
- package/src/plugins/default-view-plugin.ts +4 -0
- package/src/view/__tests__/view.immutable.test.ts +8 -1
- package/src/view/__tests__/view.test.ts +59 -1
- package/src/view/parser/__tests__/parser.test.ts +16 -1
- package/src/view/parser/index.ts +46 -262
- package/src/view/parser/utils.ts +23 -3
- package/src/view/plugins/__tests__/__snapshots__/asset.test.ts.snap +215 -0
- package/src/view/plugins/__tests__/__snapshots__/multi-node.test.ts.snap +67 -0
- package/src/view/plugins/__tests__/__snapshots__/template.test.ts.snap +56 -54
- package/src/view/plugins/__tests__/applicability.test.ts +24 -16
- package/src/view/plugins/__tests__/asset.test.ts +140 -0
- package/src/view/plugins/__tests__/multi-node.test.ts +38 -0
- package/src/view/plugins/__tests__/template.test.ts +48 -388
- package/src/view/plugins/applicability.ts +39 -23
- package/src/view/plugins/asset.ts +42 -0
- package/src/view/plugins/index.ts +3 -1
- package/src/view/plugins/multi-node.ts +73 -0
- package/src/view/plugins/switch.ts +81 -50
- package/src/view/plugins/{template-plugin.ts → template.ts} +38 -24
- package/src/view/resolver/__tests__/edgecases.test.ts +14 -1
- package/src/view/view.ts +2 -7
- package/types/view/parser/index.d.ts +6 -11
- package/types/view/parser/utils.d.ts +11 -2
- package/types/view/plugins/applicability.d.ts +1 -0
- package/types/view/plugins/asset.d.ts +8 -0
- package/types/view/plugins/index.d.ts +3 -1
- package/types/view/plugins/multi-node.d.ts +8 -0
- package/types/view/plugins/switch.d.ts +2 -1
- package/types/view/plugins/{template-plugin.d.ts → template.d.ts} +2 -2
package/dist/cjs/index.cjs
CHANGED
|
@@ -32,6 +32,7 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
|
|
|
32
32
|
var src_exports = {};
|
|
33
33
|
__export(src_exports, {
|
|
34
34
|
ApplicabilityPlugin: () => ApplicabilityPlugin,
|
|
35
|
+
AssetPlugin: () => AssetPlugin,
|
|
35
36
|
AssetTransformCorePlugin: () => AssetTransformCorePlugin,
|
|
36
37
|
BINDING_BRACKETS_REGEX: () => BINDING_BRACKETS_REGEX,
|
|
37
38
|
BindingInstance: () => BindingInstance,
|
|
@@ -51,6 +52,7 @@ __export(src_exports, {
|
|
|
51
52
|
FlowInstance: () => FlowInstance,
|
|
52
53
|
LocalModel: () => LocalModel,
|
|
53
54
|
LocalStateStore: () => LocalStateStore,
|
|
55
|
+
MultiNodePlugin: () => MultiNodePlugin,
|
|
54
56
|
NOOPDataModel: () => NOOPDataModel,
|
|
55
57
|
NOOP_MODEL: () => NOOP_MODEL,
|
|
56
58
|
NOT_STARTED_STATE: () => NOT_STARTED_STATE,
|
|
@@ -84,7 +86,9 @@ __export(src_exports, {
|
|
|
84
86
|
findNextExp: () => findNextExp,
|
|
85
87
|
getBindingSegments: () => getBindingSegments,
|
|
86
88
|
getNodeID: () => getNodeID,
|
|
87
|
-
|
|
89
|
+
hasSwitchKey: () => hasSwitchKey,
|
|
90
|
+
hasTemplateKey: () => hasTemplateKey,
|
|
91
|
+
hasTemplateValues: () => hasTemplateValues,
|
|
88
92
|
isBinding: () => isBinding,
|
|
89
93
|
isErrorWithLocation: () => isErrorWithLocation,
|
|
90
94
|
isExpressionNode: () => isExpressionNode,
|
|
@@ -2504,8 +2508,14 @@ var NodeType = /* @__PURE__ */ ((NodeType2) => {
|
|
|
2504
2508
|
})(NodeType || {});
|
|
2505
2509
|
|
|
2506
2510
|
// ../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/core/player/src/view/parser/utils.ts
|
|
2507
|
-
function
|
|
2508
|
-
return Object.
|
|
2511
|
+
function hasTemplateValues(obj, localKey) {
|
|
2512
|
+
return Object.hasOwnProperty.call(obj, "template") && Array.isArray(obj?.template) && obj.template.length && obj.template.find((tmpl) => tmpl.output === localKey);
|
|
2513
|
+
}
|
|
2514
|
+
function hasSwitchKey(localKey) {
|
|
2515
|
+
return localKey === "staticSwitch" || localKey === "dynamicSwitch";
|
|
2516
|
+
}
|
|
2517
|
+
function hasTemplateKey(localKey) {
|
|
2518
|
+
return localKey === "template";
|
|
2509
2519
|
}
|
|
2510
2520
|
function getNodeID(node) {
|
|
2511
2521
|
if (!node) {
|
|
@@ -2542,7 +2552,6 @@ var Parser = class {
|
|
|
2542
2552
|
* If null, we ignore this node all together
|
|
2543
2553
|
*/
|
|
2544
2554
|
onCreateASTNode: new import_tapable_ts6.SyncWaterfallHook(),
|
|
2545
|
-
determineNodeType: new import_tapable_ts6.SyncBailHook(),
|
|
2546
2555
|
parseNode: new import_tapable_ts6.SyncBailHook()
|
|
2547
2556
|
};
|
|
2548
2557
|
}
|
|
@@ -2553,21 +2562,6 @@ var Parser = class {
|
|
|
2553
2562
|
}
|
|
2554
2563
|
return viewNode;
|
|
2555
2564
|
}
|
|
2556
|
-
parseAsync(obj, type, options) {
|
|
2557
|
-
const parsedAsync = this.parseObject((0, import_timm4.omit)(obj, "async"), type, options);
|
|
2558
|
-
const parsedNodeId = getNodeID(parsedAsync);
|
|
2559
|
-
if (parsedAsync !== null && parsedNodeId) {
|
|
2560
|
-
return this.createASTNode(
|
|
2561
|
-
{
|
|
2562
|
-
id: parsedNodeId,
|
|
2563
|
-
type: "async" /* Async */,
|
|
2564
|
-
value: parsedAsync
|
|
2565
|
-
},
|
|
2566
|
-
obj
|
|
2567
|
-
);
|
|
2568
|
-
}
|
|
2569
|
-
return null;
|
|
2570
|
-
}
|
|
2571
2565
|
createASTNode(node, value) {
|
|
2572
2566
|
const tapped = this.hooks.onCreateASTNode.call(node, value);
|
|
2573
2567
|
if (tapped === void 0) {
|
|
@@ -2575,30 +2569,14 @@ var Parser = class {
|
|
|
2575
2569
|
}
|
|
2576
2570
|
return tapped;
|
|
2577
2571
|
}
|
|
2578
|
-
/**
|
|
2579
|
-
* Checks if there are templated values in the object
|
|
2580
|
-
*
|
|
2581
|
-
* @param obj - The Parsed Object to check to see if we have a template array type for
|
|
2582
|
-
* @param localKey - The key being checked
|
|
2583
|
-
*/
|
|
2584
|
-
hasTemplateValues(obj, localKey) {
|
|
2585
|
-
return Object.hasOwnProperty.call(obj, "template") && Array.isArray(obj?.template) && obj.template.length && obj.template.find((tmpl) => tmpl.output === localKey);
|
|
2586
|
-
}
|
|
2587
|
-
hasSwitchKey(localKey) {
|
|
2588
|
-
return localKey === "staticSwitch";
|
|
2589
|
-
}
|
|
2590
2572
|
parseObject(obj, type = "value" /* Value */, options = { templateDepth: 0 }) {
|
|
2591
|
-
const
|
|
2592
|
-
|
|
2593
|
-
|
|
2594
|
-
|
|
2595
|
-
|
|
2596
|
-
|
|
2597
|
-
|
|
2598
|
-
);
|
|
2599
|
-
if (parsedNode) {
|
|
2600
|
-
return parsedNode;
|
|
2601
|
-
}
|
|
2573
|
+
const parsedNode = this.hooks.parseNode.call(
|
|
2574
|
+
obj,
|
|
2575
|
+
type,
|
|
2576
|
+
options
|
|
2577
|
+
);
|
|
2578
|
+
if (parsedNode || parsedNode === null) {
|
|
2579
|
+
return parsedNode;
|
|
2602
2580
|
}
|
|
2603
2581
|
const parseLocalObject = (currentValue, objToParse, path = []) => {
|
|
2604
2582
|
if (typeof objToParse !== "object" || objToParse === null) {
|
|
@@ -2620,182 +2598,44 @@ var Parser = class {
|
|
|
2620
2598
|
value: currentValue
|
|
2621
2599
|
};
|
|
2622
2600
|
const newValue = objEntries.reduce((accumulation, current) => {
|
|
2623
|
-
|
|
2601
|
+
let { value: value2 } = accumulation;
|
|
2602
|
+
const { children: children2 } = accumulation;
|
|
2624
2603
|
const [localKey, localValue] = current;
|
|
2625
|
-
|
|
2626
|
-
|
|
2627
|
-
|
|
2628
|
-
|
|
2629
|
-
|
|
2630
|
-
|
|
2631
|
-
|
|
2632
|
-
|
|
2633
|
-
...rest,
|
|
2634
|
-
children: [
|
|
2635
|
-
...children2,
|
|
2636
|
-
{
|
|
2637
|
-
path: [...path, "asset"],
|
|
2638
|
-
value: assetAST
|
|
2639
|
-
}
|
|
2640
|
-
]
|
|
2641
|
-
};
|
|
2642
|
-
}
|
|
2643
|
-
} else if (this.hooks.determineNodeType.call(localKey) === "template" /* Template */ && Array.isArray(localValue)) {
|
|
2644
|
-
const templateChildren = localValue.map((template) => {
|
|
2645
|
-
const templateAST = this.hooks.onCreateASTNode.call(
|
|
2646
|
-
{
|
|
2647
|
-
type: "template" /* Template */,
|
|
2648
|
-
depth: options.templateDepth ?? 0,
|
|
2649
|
-
data: template.data,
|
|
2650
|
-
template: template.value,
|
|
2651
|
-
dynamic: template.dynamic ?? false
|
|
2652
|
-
},
|
|
2653
|
-
template
|
|
2654
|
-
);
|
|
2655
|
-
if (templateAST?.type === "multi-node" /* MultiNode */) {
|
|
2656
|
-
templateAST.values.forEach((v) => {
|
|
2657
|
-
v.parent = templateAST;
|
|
2658
|
-
});
|
|
2659
|
-
}
|
|
2660
|
-
if (templateAST) {
|
|
2661
|
-
return {
|
|
2662
|
-
path: [...path, template.output],
|
|
2663
|
-
value: templateAST
|
|
2664
|
-
};
|
|
2665
|
-
}
|
|
2666
|
-
return;
|
|
2667
|
-
}).filter((element) => !!element);
|
|
2668
|
-
return {
|
|
2669
|
-
...rest,
|
|
2670
|
-
children: [...children2, ...templateChildren]
|
|
2671
|
-
};
|
|
2672
|
-
} else if (localValue && this.hooks.determineNodeType.call(localValue) === "switch" /* Switch */ || this.hasSwitchKey(localKey)) {
|
|
2673
|
-
const localSwitch = this.hooks.parseNode.call(
|
|
2674
|
-
this.hasSwitchKey(localKey) ? { [localKey]: localValue } : localValue,
|
|
2675
|
-
"value" /* Value */,
|
|
2676
|
-
options,
|
|
2677
|
-
"switch" /* Switch */
|
|
2678
|
-
);
|
|
2679
|
-
if (localSwitch && localSwitch.type === "value" /* Value */ && localSwitch.children?.length === 1 && localSwitch.value === void 0) {
|
|
2680
|
-
const firstChild = localSwitch.children[0];
|
|
2681
|
-
return {
|
|
2682
|
-
...rest,
|
|
2683
|
-
children: [
|
|
2684
|
-
...children2,
|
|
2685
|
-
{
|
|
2686
|
-
path: [...path, localKey, ...firstChild.path],
|
|
2687
|
-
value: firstChild.value
|
|
2688
|
-
}
|
|
2689
|
-
]
|
|
2690
|
-
};
|
|
2691
|
-
}
|
|
2692
|
-
if (localSwitch) {
|
|
2693
|
-
return {
|
|
2694
|
-
...rest,
|
|
2695
|
-
children: [
|
|
2696
|
-
...children2,
|
|
2697
|
-
{
|
|
2698
|
-
path: [...path, localKey],
|
|
2699
|
-
value: localSwitch
|
|
2700
|
-
}
|
|
2701
|
-
]
|
|
2702
|
-
};
|
|
2703
|
-
}
|
|
2704
|
-
} else if (localValue && hasAsync(localValue)) {
|
|
2705
|
-
const localAsync = this.parseAsync(
|
|
2706
|
-
localValue,
|
|
2707
|
-
"value" /* Value */,
|
|
2708
|
-
options
|
|
2709
|
-
);
|
|
2710
|
-
if (localAsync) {
|
|
2711
|
-
children2.push({
|
|
2712
|
-
path: [...path, localKey],
|
|
2713
|
-
value: localAsync
|
|
2714
|
-
});
|
|
2715
|
-
}
|
|
2716
|
-
} else if (localValue && Array.isArray(localValue)) {
|
|
2717
|
-
const childValues = localValue.map(
|
|
2718
|
-
(childVal) => this.parseObject(childVal, "value" /* Value */, options)
|
|
2719
|
-
).filter((child) => !!child);
|
|
2720
|
-
if (childValues.length > 0) {
|
|
2721
|
-
const multiNode = this.hooks.onCreateASTNode.call(
|
|
2722
|
-
{
|
|
2723
|
-
type: "multi-node" /* MultiNode */,
|
|
2724
|
-
override: !this.hasTemplateValues(localObj, localKey),
|
|
2725
|
-
values: childValues
|
|
2726
|
-
},
|
|
2727
|
-
localValue
|
|
2728
|
-
);
|
|
2729
|
-
if (multiNode?.type === "multi-node" /* MultiNode */) {
|
|
2730
|
-
multiNode.values.forEach((v) => {
|
|
2731
|
-
v.parent = multiNode;
|
|
2732
|
-
});
|
|
2733
|
-
}
|
|
2734
|
-
if (multiNode) {
|
|
2735
|
-
return {
|
|
2736
|
-
...rest,
|
|
2737
|
-
children: [
|
|
2738
|
-
...children2,
|
|
2739
|
-
{
|
|
2740
|
-
path: [...path, localKey],
|
|
2741
|
-
value: multiNode
|
|
2742
|
-
}
|
|
2743
|
-
]
|
|
2744
|
-
};
|
|
2745
|
-
}
|
|
2604
|
+
const newChildren = this.hooks.parseNode.call(
|
|
2605
|
+
localValue,
|
|
2606
|
+
"value" /* Value */,
|
|
2607
|
+
options,
|
|
2608
|
+
{
|
|
2609
|
+
path,
|
|
2610
|
+
key: localKey,
|
|
2611
|
+
parentObj: localObj
|
|
2746
2612
|
}
|
|
2613
|
+
);
|
|
2614
|
+
if (newChildren) {
|
|
2615
|
+
children2.push(...newChildren);
|
|
2747
2616
|
} else if (localValue && typeof localValue === "object") {
|
|
2748
|
-
const
|
|
2749
|
-
|
|
2750
|
-
|
|
2751
|
-
|
|
2752
|
-
|
|
2753
|
-
|
|
2754
|
-
determineNodeType
|
|
2755
|
-
);
|
|
2756
|
-
if (parsedNode) {
|
|
2757
|
-
return {
|
|
2758
|
-
...rest,
|
|
2759
|
-
children: [
|
|
2760
|
-
...children2,
|
|
2761
|
-
{
|
|
2762
|
-
path: [...path, localKey],
|
|
2763
|
-
value: parsedNode
|
|
2764
|
-
}
|
|
2765
|
-
]
|
|
2766
|
-
};
|
|
2767
|
-
}
|
|
2768
|
-
} else {
|
|
2769
|
-
const result = parseLocalObject(accumulation.value, localValue, [
|
|
2770
|
-
...path,
|
|
2771
|
-
localKey
|
|
2772
|
-
]);
|
|
2773
|
-
return {
|
|
2774
|
-
value: result.value,
|
|
2775
|
-
children: [...children2, ...result.children]
|
|
2776
|
-
};
|
|
2777
|
-
}
|
|
2617
|
+
const result = parseLocalObject(accumulation.value, localValue, [
|
|
2618
|
+
...path,
|
|
2619
|
+
localKey
|
|
2620
|
+
]);
|
|
2621
|
+
value2 = result.value;
|
|
2622
|
+
children2.push(...result.children);
|
|
2778
2623
|
} else {
|
|
2779
|
-
|
|
2780
|
-
accumulation.value,
|
|
2781
|
-
[...path, localKey],
|
|
2782
|
-
localValue
|
|
2783
|
-
);
|
|
2784
|
-
return {
|
|
2785
|
-
children: children2,
|
|
2786
|
-
value: value2
|
|
2787
|
-
};
|
|
2624
|
+
value2 = (0, import_timm4.setIn)(accumulation.value, [...path, localKey], localValue);
|
|
2788
2625
|
}
|
|
2789
|
-
return
|
|
2626
|
+
return {
|
|
2627
|
+
value: value2,
|
|
2628
|
+
children: children2
|
|
2629
|
+
};
|
|
2790
2630
|
}, defaultValue);
|
|
2791
2631
|
return newValue;
|
|
2792
2632
|
};
|
|
2793
2633
|
const { value, children } = parseLocalObject(void 0, obj);
|
|
2794
|
-
const baseAst = value === void 0 && children.length
|
|
2634
|
+
const baseAst = value === void 0 && !children.length ? void 0 : {
|
|
2795
2635
|
type,
|
|
2796
2636
|
value
|
|
2797
2637
|
};
|
|
2798
|
-
if (baseAst
|
|
2638
|
+
if (baseAst && children.length) {
|
|
2799
2639
|
const parent = baseAst;
|
|
2800
2640
|
parent.children = children;
|
|
2801
2641
|
children.forEach((child) => {
|
|
@@ -3305,7 +3145,7 @@ var Builder = class {
|
|
|
3305
3145
|
}
|
|
3306
3146
|
};
|
|
3307
3147
|
|
|
3308
|
-
// ../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/core/player/src/view/plugins/template
|
|
3148
|
+
// ../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/core/player/src/view/plugins/template.ts
|
|
3309
3149
|
var import_tapable_ts9 = require("tapable-ts");
|
|
3310
3150
|
var TemplatePlugin = class {
|
|
3311
3151
|
constructor(options) {
|
|
@@ -3371,28 +3211,33 @@ var TemplatePlugin = class {
|
|
|
3371
3211
|
}
|
|
3372
3212
|
return node;
|
|
3373
3213
|
});
|
|
3374
|
-
parser.hooks.determineNodeType.tap("template", (obj) => {
|
|
3375
|
-
if (obj === "template") {
|
|
3376
|
-
return "template" /* Template */;
|
|
3377
|
-
}
|
|
3378
|
-
});
|
|
3379
3214
|
parser.hooks.parseNode.tap(
|
|
3380
3215
|
"template",
|
|
3381
|
-
(obj, _nodeType, options,
|
|
3382
|
-
if (
|
|
3383
|
-
|
|
3384
|
-
|
|
3385
|
-
|
|
3386
|
-
|
|
3387
|
-
|
|
3388
|
-
|
|
3389
|
-
|
|
3390
|
-
|
|
3391
|
-
|
|
3392
|
-
|
|
3393
|
-
|
|
3394
|
-
|
|
3395
|
-
|
|
3216
|
+
(obj, _nodeType, options, childOptions) => {
|
|
3217
|
+
if (childOptions && hasTemplateKey(childOptions.key)) {
|
|
3218
|
+
return obj.map((template) => {
|
|
3219
|
+
const templateAST = parser.createASTNode(
|
|
3220
|
+
{
|
|
3221
|
+
type: "template" /* Template */,
|
|
3222
|
+
depth: options.templateDepth ?? 0,
|
|
3223
|
+
data: template.data,
|
|
3224
|
+
template: template.value,
|
|
3225
|
+
dynamic: template.dynamic ?? false
|
|
3226
|
+
},
|
|
3227
|
+
template
|
|
3228
|
+
);
|
|
3229
|
+
if (!templateAST)
|
|
3230
|
+
return;
|
|
3231
|
+
if (templateAST.type === "multi-node" /* MultiNode */) {
|
|
3232
|
+
templateAST.values.forEach((v) => {
|
|
3233
|
+
v.parent = templateAST;
|
|
3234
|
+
});
|
|
3235
|
+
}
|
|
3236
|
+
return {
|
|
3237
|
+
path: [...childOptions.path, template.output],
|
|
3238
|
+
value: templateAST
|
|
3239
|
+
};
|
|
3240
|
+
}).filter(Boolean);
|
|
3396
3241
|
}
|
|
3397
3242
|
}
|
|
3398
3243
|
);
|
|
@@ -3518,6 +3363,9 @@ var StringResolverPlugin = class {
|
|
|
3518
3363
|
// ../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/core/player/src/view/plugins/applicability.ts
|
|
3519
3364
|
var import_timm7 = require("timm");
|
|
3520
3365
|
var ApplicabilityPlugin = class {
|
|
3366
|
+
isApplicability(obj) {
|
|
3367
|
+
return obj && Object.prototype.hasOwnProperty.call(obj, "applicability");
|
|
3368
|
+
}
|
|
3521
3369
|
applyResolver(resolver) {
|
|
3522
3370
|
resolver.hooks.beforeResolve.tap(
|
|
3523
3371
|
"applicability",
|
|
@@ -3535,34 +3383,38 @@ var ApplicabilityPlugin = class {
|
|
|
3535
3383
|
);
|
|
3536
3384
|
}
|
|
3537
3385
|
applyParser(parser) {
|
|
3538
|
-
parser.hooks.determineNodeType.tap("applicability", (obj) => {
|
|
3539
|
-
if (Object.prototype.hasOwnProperty.call(obj, "applicability")) {
|
|
3540
|
-
return "applicability" /* Applicability */;
|
|
3541
|
-
}
|
|
3542
|
-
});
|
|
3543
3386
|
parser.hooks.parseNode.tap(
|
|
3544
3387
|
"applicability",
|
|
3545
|
-
(obj, nodeType, options,
|
|
3546
|
-
if (
|
|
3388
|
+
(obj, nodeType, options, childOptions) => {
|
|
3389
|
+
if (this.isApplicability(obj)) {
|
|
3547
3390
|
const parsedApplicability = parser.parseObject(
|
|
3548
3391
|
(0, import_timm7.omit)(obj, "applicability"),
|
|
3549
3392
|
nodeType,
|
|
3550
3393
|
options
|
|
3551
3394
|
);
|
|
3552
|
-
if (parsedApplicability
|
|
3553
|
-
|
|
3554
|
-
|
|
3555
|
-
|
|
3556
|
-
|
|
3557
|
-
|
|
3558
|
-
|
|
3559
|
-
|
|
3560
|
-
|
|
3561
|
-
|
|
3562
|
-
|
|
3563
|
-
|
|
3564
|
-
return
|
|
3395
|
+
if (!parsedApplicability) {
|
|
3396
|
+
return childOptions ? [] : null;
|
|
3397
|
+
}
|
|
3398
|
+
const applicabilityNode = parser.createASTNode(
|
|
3399
|
+
{
|
|
3400
|
+
type: "applicability" /* Applicability */,
|
|
3401
|
+
expression: obj.applicability,
|
|
3402
|
+
value: parsedApplicability
|
|
3403
|
+
},
|
|
3404
|
+
obj
|
|
3405
|
+
);
|
|
3406
|
+
if (!applicabilityNode) {
|
|
3407
|
+
return childOptions ? [] : null;
|
|
3408
|
+
}
|
|
3409
|
+
if (applicabilityNode.type === "applicability" /* Applicability */) {
|
|
3410
|
+
applicabilityNode.value.parent = applicabilityNode;
|
|
3565
3411
|
}
|
|
3412
|
+
return childOptions ? [
|
|
3413
|
+
{
|
|
3414
|
+
path: [...childOptions.path, childOptions.key],
|
|
3415
|
+
value: applicabilityNode
|
|
3416
|
+
}
|
|
3417
|
+
] : applicabilityNode;
|
|
3566
3418
|
}
|
|
3567
3419
|
}
|
|
3568
3420
|
);
|
|
@@ -3587,6 +3439,9 @@ var SwitchPlugin = class {
|
|
|
3587
3439
|
}
|
|
3588
3440
|
return EMPTY_NODE;
|
|
3589
3441
|
}
|
|
3442
|
+
isSwitch(obj) {
|
|
3443
|
+
return obj && (Object.prototype.hasOwnProperty.call(obj, "dynamicSwitch") || Object.prototype.hasOwnProperty.call(obj, "staticSwitch"));
|
|
3444
|
+
}
|
|
3590
3445
|
applyParser(parser) {
|
|
3591
3446
|
parser.hooks.onCreateASTNode.tap("switch", (node) => {
|
|
3592
3447
|
if (node && node.type === "switch" /* Switch */ && !node.dynamic) {
|
|
@@ -3594,19 +3449,14 @@ var SwitchPlugin = class {
|
|
|
3594
3449
|
}
|
|
3595
3450
|
return node;
|
|
3596
3451
|
});
|
|
3597
|
-
parser.hooks.determineNodeType.tap("switch", (obj) => {
|
|
3598
|
-
if (Object.prototype.hasOwnProperty.call(obj, "dynamicSwitch") || Object.prototype.hasOwnProperty.call(obj, "staticSwitch")) {
|
|
3599
|
-
return "switch" /* Switch */;
|
|
3600
|
-
}
|
|
3601
|
-
});
|
|
3602
3452
|
parser.hooks.parseNode.tap(
|
|
3603
3453
|
"switch",
|
|
3604
|
-
(obj, _nodeType, options,
|
|
3605
|
-
if (
|
|
3606
|
-
const
|
|
3607
|
-
const
|
|
3608
|
-
const
|
|
3609
|
-
switchContent.
|
|
3454
|
+
(obj, _nodeType, options, childOptions) => {
|
|
3455
|
+
if (this.isSwitch(obj) || childOptions && hasSwitchKey(childOptions.key)) {
|
|
3456
|
+
const objToParse = childOptions && hasSwitchKey(childOptions.key) ? { [childOptions.key]: obj } : obj;
|
|
3457
|
+
const dynamic = "dynamicSwitch" in objToParse;
|
|
3458
|
+
const switchContent = dynamic ? objToParse.dynamicSwitch : objToParse.staticSwitch;
|
|
3459
|
+
const cases = switchContent.map(
|
|
3610
3460
|
(switchCase) => {
|
|
3611
3461
|
const { case: switchCaseExpr, ...switchBody } = switchCase;
|
|
3612
3462
|
const value = parser.parseObject(
|
|
@@ -3615,30 +3465,41 @@ var SwitchPlugin = class {
|
|
|
3615
3465
|
options
|
|
3616
3466
|
);
|
|
3617
3467
|
if (value) {
|
|
3618
|
-
|
|
3468
|
+
return {
|
|
3619
3469
|
case: switchCaseExpr,
|
|
3620
3470
|
value
|
|
3621
|
-
}
|
|
3471
|
+
};
|
|
3622
3472
|
}
|
|
3473
|
+
return;
|
|
3623
3474
|
}
|
|
3624
|
-
);
|
|
3625
|
-
const switchAST = parser.
|
|
3475
|
+
).filter(Boolean);
|
|
3476
|
+
const switchAST = parser.createASTNode(
|
|
3626
3477
|
{
|
|
3627
3478
|
type: "switch" /* Switch */,
|
|
3628
3479
|
dynamic,
|
|
3629
3480
|
cases
|
|
3630
3481
|
},
|
|
3631
|
-
|
|
3482
|
+
objToParse
|
|
3632
3483
|
);
|
|
3633
|
-
if (switchAST
|
|
3484
|
+
if (!switchAST || switchAST.type === "empty" /* Empty */) {
|
|
3485
|
+
return childOptions ? [] : null;
|
|
3486
|
+
}
|
|
3487
|
+
if (switchAST.type === "switch" /* Switch */) {
|
|
3634
3488
|
switchAST.cases.forEach((sCase) => {
|
|
3635
3489
|
sCase.value.parent = switchAST;
|
|
3636
3490
|
});
|
|
3637
3491
|
}
|
|
3638
|
-
if (
|
|
3639
|
-
|
|
3492
|
+
if (childOptions) {
|
|
3493
|
+
let path = [...childOptions.path, childOptions.key];
|
|
3494
|
+
let value = switchAST;
|
|
3495
|
+
if (switchAST.type === "value" /* Value */ && switchAST.children?.length === 1 && switchAST.value === void 0) {
|
|
3496
|
+
const firstChild = switchAST.children[0];
|
|
3497
|
+
path = [...path, ...firstChild.path];
|
|
3498
|
+
value = firstChild.value;
|
|
3499
|
+
}
|
|
3500
|
+
return [{ path, value }];
|
|
3640
3501
|
}
|
|
3641
|
-
return switchAST
|
|
3502
|
+
return switchAST;
|
|
3642
3503
|
}
|
|
3643
3504
|
}
|
|
3644
3505
|
);
|
|
@@ -3657,6 +3518,79 @@ var SwitchPlugin = class {
|
|
|
3657
3518
|
}
|
|
3658
3519
|
};
|
|
3659
3520
|
|
|
3521
|
+
// ../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/core/player/src/view/plugins/multi-node.ts
|
|
3522
|
+
var MultiNodePlugin = class {
|
|
3523
|
+
applyParser(parser) {
|
|
3524
|
+
parser.hooks.parseNode.tap(
|
|
3525
|
+
"multi-node",
|
|
3526
|
+
(obj, nodeType, options, childOptions) => {
|
|
3527
|
+
if (childOptions && !hasTemplateKey(childOptions.key) && Array.isArray(obj)) {
|
|
3528
|
+
const values = obj.map(
|
|
3529
|
+
(childVal) => parser.parseObject(childVal, "value" /* Value */, options)
|
|
3530
|
+
).filter((child) => !!child);
|
|
3531
|
+
if (!values.length) {
|
|
3532
|
+
return [];
|
|
3533
|
+
}
|
|
3534
|
+
const multiNode = parser.createASTNode(
|
|
3535
|
+
{
|
|
3536
|
+
type: "multi-node" /* MultiNode */,
|
|
3537
|
+
override: !hasTemplateValues(
|
|
3538
|
+
childOptions.parentObj,
|
|
3539
|
+
childOptions.key
|
|
3540
|
+
),
|
|
3541
|
+
values
|
|
3542
|
+
},
|
|
3543
|
+
obj
|
|
3544
|
+
);
|
|
3545
|
+
if (!multiNode) {
|
|
3546
|
+
return [];
|
|
3547
|
+
}
|
|
3548
|
+
if (multiNode.type === "multi-node" /* MultiNode */) {
|
|
3549
|
+
multiNode.values.forEach((v) => {
|
|
3550
|
+
v.parent = multiNode;
|
|
3551
|
+
});
|
|
3552
|
+
}
|
|
3553
|
+
return [
|
|
3554
|
+
{
|
|
3555
|
+
path: [...childOptions.path, childOptions.key],
|
|
3556
|
+
value: multiNode
|
|
3557
|
+
}
|
|
3558
|
+
];
|
|
3559
|
+
}
|
|
3560
|
+
}
|
|
3561
|
+
);
|
|
3562
|
+
}
|
|
3563
|
+
apply(view) {
|
|
3564
|
+
view.hooks.parser.tap("multi-node", this.applyParser.bind(this));
|
|
3565
|
+
}
|
|
3566
|
+
};
|
|
3567
|
+
|
|
3568
|
+
// ../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/core/player/src/view/plugins/asset.ts
|
|
3569
|
+
var AssetPlugin = class {
|
|
3570
|
+
applyParser(parser) {
|
|
3571
|
+
parser.hooks.parseNode.tap(
|
|
3572
|
+
"asset",
|
|
3573
|
+
(obj, nodeType, options, childOptions) => {
|
|
3574
|
+
if (childOptions?.key === "asset" && typeof obj === "object") {
|
|
3575
|
+
const assetAST = parser.parseObject(obj, "asset" /* Asset */, options);
|
|
3576
|
+
if (!assetAST) {
|
|
3577
|
+
return [];
|
|
3578
|
+
}
|
|
3579
|
+
return [
|
|
3580
|
+
{
|
|
3581
|
+
path: [...childOptions.path, childOptions.key],
|
|
3582
|
+
value: assetAST
|
|
3583
|
+
}
|
|
3584
|
+
];
|
|
3585
|
+
}
|
|
3586
|
+
}
|
|
3587
|
+
);
|
|
3588
|
+
}
|
|
3589
|
+
apply(view) {
|
|
3590
|
+
view.hooks.parser.tap("asset", this.applyParser.bind(this));
|
|
3591
|
+
}
|
|
3592
|
+
};
|
|
3593
|
+
|
|
3660
3594
|
// ../../../../../../../../../../execroot/_main/bazel-out/k8-fastbuild/bin/core/player/src/player.ts
|
|
3661
3595
|
var import_timm9 = require("timm");
|
|
3662
3596
|
var import_p_defer2 = __toESM(require("p-defer"));
|
|
@@ -5146,12 +5080,14 @@ var DefaultViewPlugin = class {
|
|
|
5146
5080
|
player.hooks.viewController.tap(this.name, (viewController) => {
|
|
5147
5081
|
viewController.hooks.view.tap(this.name, (view) => {
|
|
5148
5082
|
const pluginOptions = toNodeResolveOptions(view.resolverOptions);
|
|
5083
|
+
new AssetPlugin().apply(view);
|
|
5149
5084
|
new SwitchPlugin(pluginOptions).apply(view);
|
|
5150
5085
|
new ApplicabilityPlugin().apply(view);
|
|
5151
5086
|
new StringResolverPlugin().apply(view);
|
|
5152
5087
|
const templatePlugin = new TemplatePlugin(pluginOptions);
|
|
5153
5088
|
templatePlugin.apply(view);
|
|
5154
5089
|
view.hooks.onTemplatePluginCreated.call(templatePlugin);
|
|
5090
|
+
new MultiNodePlugin().apply(view);
|
|
5155
5091
|
});
|
|
5156
5092
|
});
|
|
5157
5093
|
}
|
|
@@ -5497,6 +5433,7 @@ var Player = _Player;
|
|
|
5497
5433
|
// Annotate the CommonJS export names for ESM import in node:
|
|
5498
5434
|
0 && (module.exports = {
|
|
5499
5435
|
ApplicabilityPlugin,
|
|
5436
|
+
AssetPlugin,
|
|
5500
5437
|
AssetTransformCorePlugin,
|
|
5501
5438
|
BINDING_BRACKETS_REGEX,
|
|
5502
5439
|
BindingInstance,
|
|
@@ -5516,6 +5453,7 @@ var Player = _Player;
|
|
|
5516
5453
|
FlowInstance,
|
|
5517
5454
|
LocalModel,
|
|
5518
5455
|
LocalStateStore,
|
|
5456
|
+
MultiNodePlugin,
|
|
5519
5457
|
NOOPDataModel,
|
|
5520
5458
|
NOOP_MODEL,
|
|
5521
5459
|
NOT_STARTED_STATE,
|
|
@@ -5549,7 +5487,9 @@ var Player = _Player;
|
|
|
5549
5487
|
findNextExp,
|
|
5550
5488
|
getBindingSegments,
|
|
5551
5489
|
getNodeID,
|
|
5552
|
-
|
|
5490
|
+
hasSwitchKey,
|
|
5491
|
+
hasTemplateKey,
|
|
5492
|
+
hasTemplateValues,
|
|
5553
5493
|
isBinding,
|
|
5554
5494
|
isErrorWithLocation,
|
|
5555
5495
|
isExpressionNode,
|