@next-core/runtime 1.4.2 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/createRoot.js +5 -2
- package/dist/cjs/createRoot.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +2 -1
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/cjs/internal/FormRenderer/constants.js +11 -0
- package/dist/cjs/internal/FormRenderer/constants.js.map +1 -0
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js +122 -0
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js.map +1 -0
- package/dist/cjs/internal/FormRenderer/getDefaultProperties.js +165 -0
- package/dist/cjs/internal/FormRenderer/getDefaultProperties.js.map +1 -0
- package/dist/cjs/internal/FormRenderer/interfaces.js +6 -0
- package/dist/cjs/internal/FormRenderer/interfaces.js.map +1 -0
- package/dist/cjs/internal/FormRenderer/utils.js +20 -0
- package/dist/cjs/internal/FormRenderer/utils.js.map +1 -0
- package/dist/cjs/internal/Renderer.js +38 -5
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/RendererContext.js +4 -1
- package/dist/cjs/internal/RendererContext.js.map +1 -1
- package/dist/cjs/internal/Router.js +3 -2
- package/dist/cjs/internal/Router.js.map +1 -1
- package/dist/cjs/internal/bindListeners.js +9 -2
- package/dist/cjs/internal/bindListeners.js.map +1 -1
- package/dist/cjs/internal/compute/evaluate.js +21 -6
- package/dist/cjs/internal/compute/evaluate.js.map +1 -1
- package/dist/cjs/internal/compute/listenOnTrackingContext.js +7 -9
- package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/cjs/internal/data/DataStore.js +2 -2
- package/dist/cjs/internal/data/DataStore.js.map +1 -1
- package/dist/cjs/internal/interfaces.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +6 -3
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/esm/createRoot.js +5 -2
- package/dist/esm/createRoot.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +2 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/esm/internal/FormRenderer/constants.js +3 -0
- package/dist/esm/internal/FormRenderer/constants.js.map +1 -0
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js +111 -0
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -0
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js +136 -0
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js.map +1 -0
- package/dist/esm/internal/FormRenderer/interfaces.js +2 -0
- package/dist/esm/internal/FormRenderer/interfaces.js.map +1 -0
- package/dist/esm/internal/FormRenderer/utils.js +15 -0
- package/dist/esm/internal/FormRenderer/utils.js.map +1 -0
- package/dist/esm/internal/Renderer.js +48 -12
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/RendererContext.js +4 -1
- package/dist/esm/internal/RendererContext.js.map +1 -1
- package/dist/esm/internal/Router.js +3 -2
- package/dist/esm/internal/Router.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +9 -2
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +22 -9
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/compute/listenOnTrackingContext.js +7 -9
- package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/esm/internal/data/DataStore.js +2 -2
- package/dist/esm/internal/data/DataStore.js.map +1 -1
- package/dist/esm/internal/interfaces.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +6 -3
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/types/createRoot.d.ts +7 -1
- package/dist/types/internal/CustomTemplates/expandCustomTemplate.d.ts +1 -1
- package/dist/types/internal/FormRenderer/constants.d.ts +7 -0
- package/dist/types/internal/FormRenderer/expandFormRenderer.d.ts +3 -0
- package/dist/types/internal/FormRenderer/getDefaultProperties.d.ts +2 -0
- package/dist/types/internal/FormRenderer/interfaces.d.ts +30 -0
- package/dist/types/internal/FormRenderer/utils.d.ts +5 -0
- package/dist/types/internal/Renderer.d.ts +2 -3
- package/dist/types/internal/RendererContext.d.ts +5 -1
- package/dist/types/internal/interfaces.d.ts +6 -0
- package/package.json +2 -2
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
+
export function getDefaultProperties(field) {
|
|
3
|
+
var defaultValue;
|
|
4
|
+
var commonProps = {
|
|
5
|
+
id: field.fieldId,
|
|
6
|
+
name: field.fieldId,
|
|
7
|
+
label: field.name,
|
|
8
|
+
dataset: {
|
|
9
|
+
testid: field.fieldId
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
var getReadOnlyAndRequired = () => {
|
|
13
|
+
var _field$limit, _field$limit2;
|
|
14
|
+
return {
|
|
15
|
+
readOnly: (_field$limit = field.limit) === null || _field$limit === void 0 ? void 0 : _field$limit.includes("READONLY"),
|
|
16
|
+
required: (_field$limit2 = field.limit) === null || _field$limit2 === void 0 ? void 0 : _field$limit2.includes("REQUIRED")
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
switch (field.fieldType) {
|
|
20
|
+
case "INT":
|
|
21
|
+
defaultValue = {
|
|
22
|
+
brick: "forms.general-input-number",
|
|
23
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
24
|
+
placeholder: field.description,
|
|
25
|
+
precision: 0,
|
|
26
|
+
inputBoxStyle: {
|
|
27
|
+
width: "100%"
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
};
|
|
31
|
+
break;
|
|
32
|
+
case "BOOLEAN":
|
|
33
|
+
defaultValue = {
|
|
34
|
+
brick: "forms.general-switch",
|
|
35
|
+
properties: _objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired())
|
|
36
|
+
};
|
|
37
|
+
break;
|
|
38
|
+
case "FLOAT":
|
|
39
|
+
defaultValue = {
|
|
40
|
+
brick: "forms.general-input-number",
|
|
41
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
42
|
+
placeholder: field.description,
|
|
43
|
+
inputBoxStyle: {
|
|
44
|
+
width: "100%"
|
|
45
|
+
}
|
|
46
|
+
})
|
|
47
|
+
};
|
|
48
|
+
break;
|
|
49
|
+
case "ENUM":
|
|
50
|
+
defaultValue = {
|
|
51
|
+
brick: "forms.general-select",
|
|
52
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
53
|
+
options: [{
|
|
54
|
+
label: "选项一",
|
|
55
|
+
value: 1
|
|
56
|
+
}, {
|
|
57
|
+
label: "选项二",
|
|
58
|
+
value: 2
|
|
59
|
+
}],
|
|
60
|
+
placeholder: field.description,
|
|
61
|
+
inputBoxStyle: {
|
|
62
|
+
width: "100%"
|
|
63
|
+
}
|
|
64
|
+
})
|
|
65
|
+
};
|
|
66
|
+
break;
|
|
67
|
+
case "ENUMS":
|
|
68
|
+
defaultValue = {
|
|
69
|
+
brick: "forms.general-select",
|
|
70
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
71
|
+
mode: "multiple",
|
|
72
|
+
options: [{
|
|
73
|
+
label: "选项一",
|
|
74
|
+
value: 1
|
|
75
|
+
}, {
|
|
76
|
+
label: "选项二",
|
|
77
|
+
value: 2
|
|
78
|
+
}],
|
|
79
|
+
placeholder: field.description,
|
|
80
|
+
inputBoxStyle: {
|
|
81
|
+
width: "100%"
|
|
82
|
+
}
|
|
83
|
+
})
|
|
84
|
+
};
|
|
85
|
+
break;
|
|
86
|
+
case "DATE":
|
|
87
|
+
case "TIME":
|
|
88
|
+
defaultValue = {
|
|
89
|
+
brick: "forms.general-date-picker",
|
|
90
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
91
|
+
placeholder: field.description
|
|
92
|
+
})
|
|
93
|
+
};
|
|
94
|
+
break;
|
|
95
|
+
case "IP":
|
|
96
|
+
defaultValue = {
|
|
97
|
+
brick: "forms.general-input",
|
|
98
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
99
|
+
placeholder: field.description,
|
|
100
|
+
pattern: "((^s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))s*$)|(^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*$))",
|
|
101
|
+
message: {
|
|
102
|
+
pattern: "输入字符不匹配IP格式"
|
|
103
|
+
}
|
|
104
|
+
})
|
|
105
|
+
};
|
|
106
|
+
break;
|
|
107
|
+
case "JSON":
|
|
108
|
+
defaultValue = {
|
|
109
|
+
brick: "forms.general-textarea",
|
|
110
|
+
properties: _objectSpread({}, commonProps)
|
|
111
|
+
};
|
|
112
|
+
break;
|
|
113
|
+
case "ARRAY":
|
|
114
|
+
defaultValue = {
|
|
115
|
+
brick: "forms.general-select",
|
|
116
|
+
properties: _objectSpread({}, commonProps)
|
|
117
|
+
};
|
|
118
|
+
break;
|
|
119
|
+
case "STRUCTURE":
|
|
120
|
+
case "STRUCTURE_ARRAY":
|
|
121
|
+
defaultValue = {
|
|
122
|
+
brick: "forms.cmdb-instance-select-panel",
|
|
123
|
+
properties: _objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired())
|
|
124
|
+
};
|
|
125
|
+
break;
|
|
126
|
+
default:
|
|
127
|
+
defaultValue = {
|
|
128
|
+
brick: "forms.general-input",
|
|
129
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
130
|
+
placeholder: field.description
|
|
131
|
+
})
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
return defaultValue;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=getDefaultProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDefaultProperties.js","names":["getDefaultProperties","field","defaultValue","commonProps","id","fieldId","name","label","dataset","testid","getReadOnlyAndRequired","_field$limit","_field$limit2","readOnly","limit","includes","required","fieldType","brick","properties","_objectSpread","placeholder","description","precision","inputBoxStyle","width","options","value","mode","pattern","message"],"sources":["../../../../src/internal/FormRenderer/getDefaultProperties.ts"],"sourcesContent":["import type { DefaultFieldProperties, FieldProperties } from \"./interfaces.js\";\n\nexport function getDefaultProperties(\n field: FieldProperties\n): DefaultFieldProperties {\n let defaultValue: DefaultFieldProperties;\n const commonProps = {\n id: field.fieldId,\n name: field.fieldId,\n label: field.name,\n dataset: {\n testid: field.fieldId,\n },\n };\n const getReadOnlyAndRequired = () => ({\n readOnly: field.limit?.includes(\"READONLY\"),\n required: field.limit?.includes(\"REQUIRED\"),\n });\n switch (field.fieldType) {\n case \"INT\":\n defaultValue = {\n brick: \"forms.general-input-number\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n precision: 0,\n inputBoxStyle: { width: \"100%\" },\n },\n };\n break;\n case \"BOOLEAN\":\n defaultValue = {\n brick: \"forms.general-switch\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n },\n };\n break;\n case \"FLOAT\":\n defaultValue = {\n brick: \"forms.general-input-number\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n inputBoxStyle: { width: \"100%\" },\n },\n };\n break;\n case \"ENUM\":\n defaultValue = {\n brick: \"forms.general-select\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n options: [\n { label: \"选项一\", value: 1 },\n { label: \"选项二\", value: 2 },\n ],\n placeholder: field.description,\n inputBoxStyle: { width: \"100%\" },\n },\n };\n break;\n case \"ENUMS\":\n defaultValue = {\n brick: \"forms.general-select\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n mode: \"multiple\",\n options: [\n { label: \"选项一\", value: 1 },\n { label: \"选项二\", value: 2 },\n ],\n placeholder: field.description,\n inputBoxStyle: { width: \"100%\" },\n },\n };\n break;\n case \"DATE\":\n case \"TIME\":\n defaultValue = {\n brick: \"forms.general-date-picker\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n },\n };\n break;\n case \"IP\":\n defaultValue = {\n brick: \"forms.general-input\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n pattern:\n \"((^s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))s*$)|(^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*$))\",\n message: {\n pattern: \"输入字符不匹配IP格式\",\n },\n },\n };\n break;\n case \"JSON\":\n defaultValue = {\n brick: \"forms.general-textarea\",\n properties: {\n ...commonProps,\n },\n };\n break;\n case \"ARRAY\":\n defaultValue = {\n brick: \"forms.general-select\",\n properties: {\n ...commonProps,\n },\n };\n break;\n case \"STRUCTURE\":\n case \"STRUCTURE_ARRAY\":\n defaultValue = {\n brick: \"forms.cmdb-instance-select-panel\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n },\n };\n break;\n default:\n defaultValue = {\n brick: \"forms.general-input\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n },\n };\n }\n return defaultValue;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","names":[],"sources":["../../../../src/internal/FormRenderer/interfaces.ts"],"sourcesContent":["import type {\n BrickEventsMap,\n ContextConf,\n ResolveConf,\n} from \"@next-core/types\";\n\nexport interface FormDataProperties {\n formSchema: FormSchemaProperties;\n fields: FieldProperties[];\n context?: ContextConf[];\n // [key: string]: any;\n}\n\nexport interface FormSchemaProperties {\n id: string;\n brick?: string;\n sort?: number;\n mountPoint?: string;\n events?: BrickEventsMap;\n properties?: Record<string, unknown>;\n if?: string | boolean | ResolveConf;\n instanceId?: string;\n context?: ContextConf[];\n bricks?: FormSchemaProperties[];\n // [key: string]: any;\n}\n\nexport interface FieldProperties {\n defaultValue?: string;\n description?: string;\n fieldId: string;\n limit?: string[];\n name: string;\n fieldType: string;\n // [key: string]: any;\n}\n\nexport interface DefaultFieldProperties {\n brick: string;\n properties: Record<string, unknown>;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function getFormStateStore(_ref, using, extraInfo) {
|
|
2
|
+
var {
|
|
3
|
+
formStateStoreId,
|
|
4
|
+
formStateStoreMap
|
|
5
|
+
} = _ref;
|
|
6
|
+
if (!formStateStoreId) {
|
|
7
|
+
throw new Error("Using \"".concat(using, "\" outside of form renderer").concat(extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""));
|
|
8
|
+
}
|
|
9
|
+
var store = formStateStoreMap.get(formStateStoreId);
|
|
10
|
+
if (!store) {
|
|
11
|
+
throw new Error("Form state store is not found when using \"".concat(using, "\"").concat(extraInfo !== null && extraInfo !== void 0 ? extraInfo : "", ".\nThis is a bug of Brick Next, please report it."));
|
|
12
|
+
}
|
|
13
|
+
return store;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["getFormStateStore","_ref","using","extraInfo","formStateStoreId","formStateStoreMap","Error","concat","store","get"],"sources":["../../../../src/internal/FormRenderer/utils.ts"],"sourcesContent":["import type { DataStore } from \"../data/DataStore.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\n\ntype MinimalTplStateStoreContext = Pick<\n RuntimeContext,\n \"formStateStoreId\" | \"formStateStoreMap\"\n>;\n\nexport function getFormStateStore(\n { formStateStoreId, formStateStoreMap }: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): DataStore<\"FORM_STATE\"> {\n if (!formStateStoreId) {\n throw new Error(\n `Using \"${using}\" outside of form renderer${extraInfo ?? \"\"}`\n );\n }\n const store = formStateStoreMap.get(formStateStoreId);\n if (!store) {\n throw new Error(\n `Form state store is not found when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return store;\n}\n"],"mappings":"AAQA,OAAO,SAASA,iBAAiBA,CAAAC,IAAA,EAE/BC,KAAa,EACbC,SAAkB,EACO;EAAA,IAHzB;IAAEC,gBAAgB;IAAEC;EAA+C,CAAC,GAAAJ,IAAA;EAIpE,IAAI,CAACG,gBAAgB,EAAE;IACrB,MAAM,IAAIE,KAAK,YAAAC,MAAA,CACHL,KAAK,iCAAAK,MAAA,CAA6BJ,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,EAC5D;EACH;EACA,IAAMK,KAAK,GAAGH,iBAAiB,CAACI,GAAG,CAACL,gBAAgB,CAAC;EACrD,IAAI,CAACI,KAAK,EAAE;IACV,MAAM,IAAIF,KAAK,+CAAAC,MAAA,CACgCL,KAAK,QAAAK,MAAA,CAChDJ,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,uDAElB;EACH;EACA,OAAOK,KAAK;AACd"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
3
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
|
-
var _excluded = ["blockingList", "node", "menuRequests", "hasTrackingControls"]
|
|
4
|
+
var _excluded = ["blockingList", "node", "menuRequests", "hasTrackingControls"],
|
|
5
|
+
_excluded2 = ["formData"];
|
|
5
6
|
import { enqueueStableLoadBricks, loadBricksImperatively } from "@next-core/loader";
|
|
6
7
|
import { hasOwnProperty } from "@next-core/utils/general";
|
|
7
8
|
import { debounce } from "lodash";
|
|
@@ -20,6 +21,8 @@ import { getBrickPackages } from "./Runtime.js";
|
|
|
20
21
|
import { RenderTag } from "./enums.js";
|
|
21
22
|
import { getTracks } from "./compute/getTracks.js";
|
|
22
23
|
import { isStrictMode, warnAboutStrictMode } from "../isStrictMode.js";
|
|
24
|
+
import { FORM_RENDERER, symbolForFormStateStoreId } from "./FormRenderer/constants.js";
|
|
25
|
+
import { expandFormRenderer } from "./FormRenderer/expandFormRenderer.js";
|
|
23
26
|
export function renderRoutes(_x, _x2, _x3, _x4, _x5) {
|
|
24
27
|
return _renderRoutes.apply(this, arguments);
|
|
25
28
|
}
|
|
@@ -130,8 +133,10 @@ function _renderBrick() {
|
|
|
130
133
|
return output;
|
|
131
134
|
}
|
|
132
135
|
var tplStateStoreId = brickConf[symbolForTplStateStoreId];
|
|
136
|
+
var formStateStoreId = brickConf[symbolForFormStateStoreId];
|
|
133
137
|
var runtimeContext = _objectSpread(_objectSpread({}, _runtimeContext), {}, {
|
|
134
|
-
tplStateStoreId
|
|
138
|
+
tplStateStoreId,
|
|
139
|
+
formStateStoreId
|
|
135
140
|
});
|
|
136
141
|
if (hasOwnProperty(brickConf, symbolForTPlExternalForEachItem)) {
|
|
137
142
|
// The external bricks of a template should restore their `forEachItem`
|
|
@@ -207,7 +212,7 @@ function _renderBrick() {
|
|
|
207
212
|
var _ref2 = _asyncToGenerator(function* () {
|
|
208
213
|
var currentRenderId = ++renderId;
|
|
209
214
|
var output = yield renderControlNode();
|
|
210
|
-
output.blockingList.push(...[...runtimeContext.tplStateStoreMap.values()].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck);
|
|
215
|
+
output.blockingList.push(...[...runtimeContext.tplStateStoreMap.values(), ...runtimeContext.formStateStoreMap.values()].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck);
|
|
211
216
|
yield Promise.all(output.blockingList);
|
|
212
217
|
// Ignore stale renders
|
|
213
218
|
if (renderId === currentRenderId) {
|
|
@@ -236,7 +241,7 @@ function _renderBrick() {
|
|
|
236
241
|
|
|
237
242
|
// Widgets need to be defined before rendering.
|
|
238
243
|
if (/\.tpl-/.test(brickName) && !customTemplates.get(brickName)) {
|
|
239
|
-
yield loadBricksImperatively([brickName], getBrickPackages());
|
|
244
|
+
yield catchLoadBrick(loadBricksImperatively([brickName], getBrickPackages()), brickName, rendererContext.unknownBricks);
|
|
240
245
|
}
|
|
241
246
|
var tplTagName = getTagNameOfCustomTemplate(brickName, (_runtimeContext$app = runtimeContext.app) === null || _runtimeContext$app === void 0 ? void 0 : _runtimeContext$app.id);
|
|
242
247
|
if (tplTagName) {
|
|
@@ -247,7 +252,15 @@ function _renderBrick() {
|
|
|
247
252
|
}
|
|
248
253
|
tplStack.set(tplTagName, tplCount + 1);
|
|
249
254
|
} else if (brickName.includes("-") && !customElements.get(brickName)) {
|
|
250
|
-
|
|
255
|
+
if (brickName === FORM_RENDERER) {
|
|
256
|
+
customElements.define(FORM_RENDERER, class FormRendererElement extends HTMLElement {
|
|
257
|
+
get $$typeof() {
|
|
258
|
+
return "form-renderer";
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
} else {
|
|
262
|
+
output.blockingList.push(catchLoadBrick(enqueueStableLoadBricks([brickName], getBrickPackages()), brickName, rendererContext.unknownBricks));
|
|
263
|
+
}
|
|
251
264
|
}
|
|
252
265
|
var brick = {
|
|
253
266
|
tag: RenderTag.BRICK,
|
|
@@ -262,12 +275,27 @@ function _renderBrick() {
|
|
|
262
275
|
};
|
|
263
276
|
output.node = brick;
|
|
264
277
|
|
|
278
|
+
// const confProps = brickConf.properties;
|
|
279
|
+
var formData;
|
|
280
|
+
var confProps;
|
|
281
|
+
if (brickName === FORM_RENDERER) {
|
|
282
|
+
var _brickConf$properties;
|
|
283
|
+
var _ref3 = (_brickConf$properties = brickConf.properties) !== null && _brickConf$properties !== void 0 ? _brickConf$properties : {};
|
|
284
|
+
({
|
|
285
|
+
formData
|
|
286
|
+
} = _ref3);
|
|
287
|
+
confProps = _objectWithoutProperties(_ref3, _excluded2);
|
|
288
|
+
_ref3;
|
|
289
|
+
} else {
|
|
290
|
+
confProps = brickConf.properties;
|
|
291
|
+
}
|
|
292
|
+
|
|
265
293
|
// 加载构件属性和加载子构件等任务,可以并行。
|
|
266
294
|
var blockingList = [];
|
|
267
295
|
var trackingContextList = [];
|
|
268
296
|
var loadProperties = /*#__PURE__*/function () {
|
|
269
|
-
var
|
|
270
|
-
brick.properties = yield asyncComputeRealProperties(
|
|
297
|
+
var _ref4 = _asyncToGenerator(function* () {
|
|
298
|
+
brick.properties = yield asyncComputeRealProperties(confProps, runtimeContext, trackingContextList);
|
|
271
299
|
var computedPropsFromHost = brickConf[symbolForAsyncComputedPropsFromHost];
|
|
272
300
|
if (computedPropsFromHost) {
|
|
273
301
|
var _brick$properties;
|
|
@@ -281,7 +309,7 @@ function _renderBrick() {
|
|
|
281
309
|
return brick.properties;
|
|
282
310
|
});
|
|
283
311
|
return function loadProperties() {
|
|
284
|
-
return
|
|
312
|
+
return _ref4.apply(this, arguments);
|
|
285
313
|
};
|
|
286
314
|
}();
|
|
287
315
|
var asyncProperties = loadProperties();
|
|
@@ -290,6 +318,8 @@ function _renderBrick() {
|
|
|
290
318
|
var expandedBrickConf = brickConf;
|
|
291
319
|
if (tplTagName) {
|
|
292
320
|
expandedBrickConf = expandCustomTemplate(tplTagName, brickConf, brick, asyncProperties);
|
|
321
|
+
} else if (brickName === FORM_RENDERER) {
|
|
322
|
+
expandedBrickConf = expandFormRenderer(formData, brickConf, brick, asyncProperties);
|
|
293
323
|
}
|
|
294
324
|
if (expandedBrickConf.portal) {
|
|
295
325
|
// A portal brick has no slotId.
|
|
@@ -304,13 +334,13 @@ function _renderBrick() {
|
|
|
304
334
|
childRuntimeContext = runtimeContext;
|
|
305
335
|
}
|
|
306
336
|
var loadChildren = /*#__PURE__*/function () {
|
|
307
|
-
var
|
|
337
|
+
var _ref5 = _asyncToGenerator(function* () {
|
|
308
338
|
var slots = childrenToSlots(expandedBrickConf.children, expandedBrickConf.slots);
|
|
309
339
|
if (!slots) {
|
|
310
340
|
return;
|
|
311
341
|
}
|
|
312
|
-
var rendered = yield Promise.all(Object.entries(slots).map(
|
|
313
|
-
var [childSlotId, slotConf] =
|
|
342
|
+
var rendered = yield Promise.all(Object.entries(slots).map(_ref6 => {
|
|
343
|
+
var [childSlotId, slotConf] = _ref6;
|
|
314
344
|
return slotConf.type !== "routes" ? renderBricks(brick, slotConf.bricks, childRuntimeContext, rendererContext, childSlotId, tplStack) : renderRoutes(brick, slotConf.routes, childRuntimeContext, rendererContext, childSlotId);
|
|
315
345
|
}));
|
|
316
346
|
var childrenOutput = _objectSpread(_objectSpread({}, output), {}, {
|
|
@@ -328,7 +358,7 @@ function _renderBrick() {
|
|
|
328
358
|
}));
|
|
329
359
|
});
|
|
330
360
|
return function loadChildren() {
|
|
331
|
-
return
|
|
361
|
+
return _ref5.apply(this, arguments);
|
|
332
362
|
};
|
|
333
363
|
}();
|
|
334
364
|
blockingList.push(loadChildren());
|
|
@@ -429,4 +459,10 @@ export function childrenToSlots(children, originalSlots) {
|
|
|
429
459
|
}
|
|
430
460
|
return newSlots;
|
|
431
461
|
}
|
|
462
|
+
function catchLoadBrick(promise, brickName, unknownBricks) {
|
|
463
|
+
return unknownBricks === "silent" ? promise.catch(e => {
|
|
464
|
+
// eslint-disable-next-line no-console
|
|
465
|
+
console.error("Load brick \"".concat(brickName, "\" failed:"), e);
|
|
466
|
+
}) : promise;
|
|
467
|
+
}
|
|
432
468
|
//# sourceMappingURL=Renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Renderer.js","names":["enqueueStableLoadBricks","loadBricksImperatively","hasOwnProperty","debounce","asyncCheckBrickIf","asyncComputeRealProperties","resolveData","asyncComputeRealValue","preCheckPermissionsForBrickOrRoute","listenOnTrackingContext","matchRoutes","symbolForAsyncComputedPropsFromHost","symbolForTPlExternalForEachItem","symbolForTplStateStoreId","expandCustomTemplate","getTagNameOfCustomTemplate","getTplStateStore","customTemplates","getBrickPackages","RenderTag","getTracks","isStrictMode","warnAboutStrictMode","renderRoutes","_x","_x2","_x3","_x4","_x5","_renderRoutes","apply","arguments","_asyncToGenerator","returnNode","routes","_runtimeContext","rendererContext","slotId","matched","output","blockingList","menuRequests","unauthenticated","route","runtimeContext","_objectSpread","match","ctxStore","define","context","pendingPermissionsPreCheck","push","type","redirectTo","redirect","resolved","transform","console","error","Error","concat","path","loadMenu","menu","newOutput","mergeRenderOutput","renderBricks","bricks","_x6","_x7","_x8","_x9","_x10","_x11","_x12","_renderBricks","tplStack","noMemoize","rendered","Promise","all","map","brickConf","index","renderBrick","Map","forEach","item","hasTrackingControls","memoizeControlNode","node","_x13","_x14","_x15","_x16","_x17","_x18","_renderBrick","key","_runtimeContext$app","length","undefined","brick","template","tplStateStoreId","forEachItem","Array","isArray","strict","brickName","startsWith","ensureValidControlBrick","dataSource","renderControlNode","_ref","_slots$slot","computedDataSource","slot","String","slots","childrenToSlots","children","renderForEach","controlledOutput","contextNames","stateNames","renderId","listener","_ref2","currentRenderId","tplStateStoreMap","values","store","waitForAll","rerenderControlNode","debouncedListener","contextName","onChange","tplStateStore","test","get","tplTagName","app","id","_tplStack$get","tplCount","set","includes","customElements","tag","BRICK","return","events","portal","iid","ref","trackingContextList","loadProperties","_ref3","properties","computedPropsFromHost","_brick$properties","computed","propName","propValue","Object","entries","asyncProperties","registerBrickLifeCycle","lifeCycle","expandedBrickConf","childRuntimeContext","loadChildren","_ref4","_ref5","childSlotId","slotConf","childrenOutput","child","_x19","_x20","_x21","_x22","_x23","_x24","_x25","_renderForEach","i","j","flat","menuConf","warn","rest","_objectWithoutProperties","_excluded","last","sibling","assign","originalSlots","newSlots","process","env","NODE_ENV","_child$slot"],"sources":["../../../src/internal/Renderer.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n ContextConf,\n MenuConf,\n RouteConf,\n SlotConfOfBricks,\n SlotsConf,\n StaticMenuConf,\n} from \"@next-core/types\";\nimport {\n enqueueStableLoadBricks,\n loadBricksImperatively,\n} from \"@next-core/loader\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { debounce } from \"lodash\";\nimport { asyncCheckBrickIf } from \"./compute/checkIf.js\";\nimport { asyncComputeRealProperties } from \"./compute/computeRealProperties.js\";\nimport { resolveData } from \"./data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\nimport { preCheckPermissionsForBrickOrRoute } from \"./checkPermissions.js\";\nimport {\n TrackingContextItem,\n listenOnTrackingContext,\n} from \"./compute/listenOnTrackingContext.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport { matchRoutes } from \"./matchRoutes.js\";\nimport {\n RuntimeBrickConfWithTplSymbols,\n symbolForAsyncComputedPropsFromHost,\n symbolForTPlExternalForEachItem,\n symbolForTplStateStoreId,\n} from \"./CustomTemplates/constants.js\";\nimport { expandCustomTemplate } from \"./CustomTemplates/expandCustomTemplate.js\";\nimport type { RenderBrick, RenderNode, RuntimeContext } from \"./interfaces.js\";\nimport {\n getTagNameOfCustomTemplate,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport type { NextHistoryState } from \"./historyExtended.js\";\nimport { getBrickPackages } from \"./Runtime.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { getTracks } from \"./compute/getTracks.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\n\nexport interface RenderOutput {\n node?: RenderBrick;\n unauthenticated?: boolean;\n redirect?: {\n path: string;\n state?: NextHistoryState;\n };\n route?: RouteConf;\n blockingList: (Promise<unknown> | undefined)[];\n menuRequests: (Promise<StaticMenuConf | undefined> | undefined)[];\n hasTrackingControls?: boolean;\n}\n\nexport async function renderRoutes(\n returnNode: RenderNode,\n routes: RouteConf[],\n _runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string\n): Promise<RenderOutput> {\n const matched = await matchRoutes(routes, _runtimeContext);\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n switch (matched) {\n case \"missed\":\n break;\n case \"unauthenticated\":\n output.unauthenticated = true;\n break;\n default: {\n const route = (output.route = matched.route);\n const runtimeContext = {\n ..._runtimeContext,\n match: matched.match,\n };\n runtimeContext.ctxStore.define(route.context, runtimeContext);\n runtimeContext.pendingPermissionsPreCheck.push(\n preCheckPermissionsForBrickOrRoute(route, runtimeContext)\n );\n switch (route.type) {\n case \"redirect\": {\n let redirectTo: unknown;\n if (typeof route.redirect === \"string\") {\n redirectTo = await asyncComputeRealValue(\n route.redirect,\n runtimeContext\n );\n } else {\n const resolved = (await resolveData(\n {\n transform: \"redirect\",\n ...route.redirect,\n },\n runtimeContext\n )) as { redirect?: unknown };\n redirectTo = resolved.redirect;\n }\n if (typeof redirectTo !== \"string\") {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected redirect result:\", redirectTo);\n throw new Error(\n `Unexpected type of redirect result: ${typeof redirectTo}`\n );\n }\n output.redirect = { path: redirectTo };\n break;\n }\n case \"routes\": {\n output.menuRequests.push(loadMenu(route.menu, runtimeContext));\n const newOutput = await renderRoutes(\n returnNode,\n route.routes,\n runtimeContext,\n rendererContext,\n slotId\n );\n mergeRenderOutput(output, newOutput);\n break;\n }\n default: {\n output.menuRequests.push(loadMenu(route.menu, runtimeContext));\n const newOutput = await renderBricks(\n returnNode,\n route.bricks,\n runtimeContext,\n rendererContext,\n slotId\n );\n mergeRenderOutput(output, newOutput);\n }\n }\n }\n }\n return output;\n}\n\nexport async function renderBricks(\n returnNode: RenderNode,\n bricks: BrickConf[],\n runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string,\n tplStack?: Map<string, number>,\n noMemoize?: boolean\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n // 多个构件并行异步转换,但转换的结果按原顺序串行合并。\n const rendered = await Promise.all(\n bricks.map((brickConf, index) =>\n renderBrick(\n returnNode,\n brickConf,\n runtimeContext,\n rendererContext,\n slotId,\n index,\n tplStack && new Map(tplStack)\n )\n )\n );\n\n rendered.forEach((item, index) => {\n if (!noMemoize && item.hasTrackingControls) {\n // Memoize a render node before it's been merged.\n rendererContext.memoizeControlNode(slotId, index, item.node, returnNode);\n }\n mergeRenderOutput(output, item);\n });\n\n return output;\n}\n\nexport async function renderBrick(\n returnNode: RenderNode,\n brickConf: RuntimeBrickConfWithTplSymbols,\n _runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string,\n key?: number,\n tplStack = new Map<string, number>()\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n\n if (!brickConf.brick) {\n if ((brickConf as { template?: string }).template) {\n // eslint-disable-next-line no-console\n console.error(\"Legacy templates are dropped in v3:\", brickConf);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"Invalid brick:\", brickConf);\n }\n return output;\n }\n\n const tplStateStoreId = brickConf[symbolForTplStateStoreId];\n const runtimeContext = {\n ..._runtimeContext,\n tplStateStoreId,\n };\n\n if (hasOwnProperty(brickConf, symbolForTPlExternalForEachItem)) {\n // The external bricks of a template should restore their `forEachItem`\n // from their host.\n runtimeContext.forEachItem = brickConf[symbolForTPlExternalForEachItem];\n }\n\n const { context } = brickConf as { context?: ContextConf[] };\n // istanbul ignore next\n if (Array.isArray(context) && context.length > 0) {\n const strict = isStrictMode(runtimeContext);\n warnAboutStrictMode(\n strict,\n \"Defining context on bricks\",\n \"check your brick:\",\n brickConf\n );\n if (!strict) {\n runtimeContext.ctxStore.define(context, runtimeContext);\n }\n }\n\n runtimeContext.pendingPermissionsPreCheck.push(\n preCheckPermissionsForBrickOrRoute(brickConf, runtimeContext)\n );\n\n if (!(await asyncCheckBrickIf(brickConf, runtimeContext))) {\n return output;\n }\n\n const brickName = brickConf.brick;\n if (brickName.startsWith(\":\")) {\n ensureValidControlBrick(brickName);\n\n const { dataSource } = brickConf;\n\n const renderControlNode = async () => {\n // First, compute the `dataSource`\n const computedDataSource = await asyncComputeRealValue(\n dataSource,\n runtimeContext\n );\n\n // Then, get the matched slot.\n const slot =\n brickName === \":forEach\"\n ? \"\"\n : brickName === \":switch\"\n ? String(computedDataSource)\n : computedDataSource\n ? \"\"\n : \"else\";\n\n // Don't forget to transpile children to slots.\n const slots = childrenToSlots(brickConf.children, brickConf.slots);\n\n // Then, get the bricks in that matched slot.\n const bricks =\n slots &&\n hasOwnProperty(slots, slot) &&\n (slots[slot] as SlotConfOfBricks)?.bricks;\n\n if (!Array.isArray(bricks)) {\n return output;\n }\n\n switch (brickName) {\n case \":forEach\": {\n if (!Array.isArray(computedDataSource)) {\n return output;\n }\n return renderForEach(\n returnNode,\n computedDataSource,\n bricks,\n runtimeContext,\n rendererContext,\n slotId,\n tplStack\n );\n }\n case \":if\":\n case \":switch\": {\n return renderBricks(\n returnNode,\n bricks,\n runtimeContext,\n rendererContext,\n slotId,\n tplStack,\n true\n );\n }\n }\n };\n\n const controlledOutput = await renderControlNode();\n\n const { contextNames, stateNames } = getTracks(dataSource);\n if (contextNames || stateNames) {\n controlledOutput.hasTrackingControls = true;\n let renderId = 0;\n const listener = async () => {\n const currentRenderId = ++renderId;\n const output = await renderControlNode();\n output.blockingList.push(\n ...[...runtimeContext.tplStateStoreMap.values()].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n await Promise.all(output.blockingList);\n // Ignore stale renders\n if (renderId === currentRenderId) {\n rendererContext.rerenderControlNode(\n slotId,\n key as number,\n output.node,\n returnNode\n );\n }\n };\n const debouncedListener = debounce(listener);\n if (contextNames) {\n for (const contextName of contextNames) {\n runtimeContext.ctxStore.onChange(contextName, debouncedListener);\n }\n }\n if (stateNames) {\n for (const contextName of stateNames) {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n \"STATE\",\n `: \"${dataSource}\"`\n );\n tplStateStore.onChange(contextName, debouncedListener);\n }\n }\n }\n\n return controlledOutput;\n }\n\n // Widgets need to be defined before rendering.\n if (/\\.tpl-/.test(brickName) && !customTemplates.get(brickName)) {\n await loadBricksImperatively([brickName], getBrickPackages());\n }\n\n const tplTagName = getTagNameOfCustomTemplate(\n brickName,\n runtimeContext.app?.id\n );\n\n if (tplTagName) {\n const tplCount = tplStack.get(tplTagName) ?? 0;\n if (tplCount >= 10) {\n throw new Error(\n `Maximum custom template stack overflowed: \"${tplTagName}\"`\n );\n }\n tplStack.set(tplTagName, tplCount + 1);\n } else if (brickName.includes(\"-\") && !customElements.get(brickName)) {\n output.blockingList.push(\n enqueueStableLoadBricks([brickName], getBrickPackages())\n );\n }\n\n const brick: RenderBrick = {\n tag: RenderTag.BRICK,\n type: tplTagName || brickName,\n return: returnNode,\n slotId,\n events: brickConf.events,\n runtimeContext,\n portal: brickConf.portal,\n iid: brickConf.iid,\n ref: (brickConf as BrickConfInTemplate).ref,\n };\n\n output.node = brick;\n\n // 加载构件属性和加载子构件等任务,可以并行。\n const blockingList: Promise<unknown>[] = [];\n\n const trackingContextList: TrackingContextItem[] = [];\n const loadProperties = async () => {\n brick.properties = await asyncComputeRealProperties(\n brickConf.properties,\n runtimeContext,\n trackingContextList\n );\n const computedPropsFromHost =\n brickConf[symbolForAsyncComputedPropsFromHost];\n if (computedPropsFromHost) {\n brick.properties ??= {};\n const computed = await computedPropsFromHost;\n for (const [propName, propValue] of Object.entries(computed)) {\n brick.properties[propName] = propValue;\n }\n }\n listenOnTrackingContext(brick, trackingContextList);\n return brick.properties;\n };\n const asyncProperties = loadProperties();\n blockingList.push(asyncProperties);\n\n rendererContext.registerBrickLifeCycle(brick, brickConf.lifeCycle);\n\n let expandedBrickConf = brickConf;\n if (tplTagName) {\n expandedBrickConf = expandCustomTemplate(\n tplTagName,\n brickConf,\n brick,\n asyncProperties\n );\n }\n\n if (expandedBrickConf.portal) {\n // A portal brick has no slotId.\n brick.slotId = undefined;\n }\n\n let childRuntimeContext: RuntimeContext;\n if (tplTagName) {\n // There is a boundary for `forEachItem` between template internals and externals.\n childRuntimeContext = {\n ...runtimeContext,\n };\n delete childRuntimeContext.forEachItem;\n } else {\n childRuntimeContext = runtimeContext;\n }\n\n const loadChildren = async () => {\n const slots = childrenToSlots(\n expandedBrickConf.children,\n expandedBrickConf.slots\n );\n if (!slots) {\n return;\n }\n const rendered = await Promise.all(\n Object.entries(slots).map(([childSlotId, slotConf]) =>\n slotConf.type !== \"routes\"\n ? renderBricks(\n brick,\n (slotConf as SlotConfOfBricks).bricks,\n childRuntimeContext,\n rendererContext,\n childSlotId,\n tplStack\n )\n : renderRoutes(\n brick,\n slotConf.routes,\n childRuntimeContext,\n rendererContext,\n childSlotId\n )\n )\n );\n\n const childrenOutput: RenderOutput = {\n ...output,\n node: undefined,\n blockingList: [],\n };\n for (const item of rendered) {\n mergeRenderOutput(childrenOutput, item);\n }\n if (childrenOutput.node) {\n brick.child = childrenOutput.node;\n }\n mergeRenderOutput(output, {\n ...childrenOutput,\n node: undefined,\n });\n };\n blockingList.push(loadChildren());\n\n await Promise.all(blockingList);\n\n return output;\n}\n\ntype ValidControlBrick = \":forEach\" | \":if\" | \":switch\";\n\nfunction ensureValidControlBrick(\n brick: string\n): asserts brick is ValidControlBrick {\n if (brick !== \":forEach\" && brick !== \":if\" && brick !== \":switch\") {\n throw new Error(`Unknown storyboard control node: \"${brick}\"`);\n }\n}\n\nasync function renderForEach(\n returnNode: RenderNode,\n dataSource: unknown[],\n bricks: BrickConf[],\n runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId: string | undefined,\n tplStack?: Map<string, number>\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n\n const rendered = await Promise.all(\n dataSource.map((item, i) =>\n Promise.all(\n bricks.map((brickConf, j) =>\n renderBrick(\n returnNode,\n brickConf,\n {\n ...runtimeContext,\n forEachItem: item,\n },\n rendererContext,\n slotId,\n i * j,\n tplStack && new Map(tplStack)\n )\n )\n )\n )\n );\n\n // 多层构件并行异步转换,但转换的结果按原顺序串行合并。\n for (const item of rendered.flat()) {\n mergeRenderOutput(output, item);\n }\n return output;\n}\n\nfunction loadMenu(\n menuConf: MenuConf | undefined,\n runtimeContext: RuntimeContext\n) {\n if (!menuConf) {\n return;\n }\n\n // istanbul ignore next\n if ((menuConf as { type?: \"brick\" }).type === \"brick\") {\n // eslint-disable-next-line no-console\n console.error(\"Set menu with brick is dropped in v3:\", menuConf);\n throw new Error(\"Set menu with brick is dropped in v3\");\n }\n\n // istanbul ignore next\n if (menuConf.type === \"resolve\") {\n // eslint-disable-next-line no-console\n console.warn(\"Set menu with resolve is not supported in v3 yet:\", menuConf);\n return;\n }\n\n return asyncComputeRealValue(\n menuConf,\n runtimeContext\n ) as Promise<StaticMenuConf>;\n}\n\nfunction mergeRenderOutput(\n output: RenderOutput,\n newOutput: RenderOutput\n): void {\n const { blockingList, node, menuRequests, hasTrackingControls, ...rest } =\n newOutput;\n output.blockingList.push(...blockingList);\n output.menuRequests.push(...menuRequests);\n\n if (node) {\n if (output.node) {\n let last = output.node;\n while (last.sibling) {\n last = last.sibling;\n }\n last.sibling = node;\n } else {\n output.node = node;\n }\n }\n\n Object.assign(output, rest);\n}\n\nexport function childrenToSlots(\n children: BrickConf[] | undefined,\n originalSlots: SlotsConf | undefined\n) {\n let newSlots = originalSlots;\n // istanbul ignore next\n if (\n process.env.NODE_ENV === \"development\" &&\n children &&\n !Array.isArray(children)\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Specified brick children but not array:\",\n `<${typeof children}>`,\n children\n );\n }\n if (Array.isArray(children) && !newSlots) {\n newSlots = {};\n for (const child of children) {\n const slot = child.slot ?? \"\";\n if (!hasOwnProperty(newSlots, slot)) {\n newSlots[slot] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n (newSlots[slot] as SlotConfOfBricks).bricks.push(child);\n }\n }\n return newSlots;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Renderer.js","names":["enqueueStableLoadBricks","loadBricksImperatively","hasOwnProperty","debounce","asyncCheckBrickIf","asyncComputeRealProperties","resolveData","asyncComputeRealValue","preCheckPermissionsForBrickOrRoute","listenOnTrackingContext","matchRoutes","symbolForAsyncComputedPropsFromHost","symbolForTPlExternalForEachItem","symbolForTplStateStoreId","expandCustomTemplate","getTagNameOfCustomTemplate","getTplStateStore","customTemplates","getBrickPackages","RenderTag","getTracks","isStrictMode","warnAboutStrictMode","FORM_RENDERER","symbolForFormStateStoreId","expandFormRenderer","renderRoutes","_x","_x2","_x3","_x4","_x5","_renderRoutes","apply","arguments","_asyncToGenerator","returnNode","routes","_runtimeContext","rendererContext","slotId","matched","output","blockingList","menuRequests","unauthenticated","route","runtimeContext","_objectSpread","match","ctxStore","define","context","pendingPermissionsPreCheck","push","type","redirectTo","redirect","resolved","transform","console","error","Error","concat","path","loadMenu","menu","newOutput","mergeRenderOutput","renderBricks","bricks","_x6","_x7","_x8","_x9","_x10","_x11","_x12","_renderBricks","tplStack","noMemoize","rendered","Promise","all","map","brickConf","index","renderBrick","Map","forEach","item","hasTrackingControls","memoizeControlNode","node","_x13","_x14","_x15","_x16","_x17","_x18","_renderBrick","key","_runtimeContext$app","length","undefined","brick","template","tplStateStoreId","formStateStoreId","forEachItem","Array","isArray","strict","brickName","startsWith","ensureValidControlBrick","dataSource","renderControlNode","_ref","_slots$slot","computedDataSource","slot","String","slots","childrenToSlots","children","renderForEach","controlledOutput","contextNames","stateNames","renderId","listener","_ref2","currentRenderId","tplStateStoreMap","values","formStateStoreMap","store","waitForAll","rerenderControlNode","debouncedListener","contextName","onChange","tplStateStore","test","get","catchLoadBrick","unknownBricks","tplTagName","app","id","_tplStack$get","tplCount","set","includes","customElements","FormRendererElement","HTMLElement","$$typeof","tag","BRICK","return","events","portal","iid","ref","formData","confProps","_brickConf$properties","_ref3","properties","_objectWithoutProperties","_excluded2","trackingContextList","loadProperties","_ref4","computedPropsFromHost","_brick$properties","computed","propName","propValue","Object","entries","asyncProperties","registerBrickLifeCycle","lifeCycle","expandedBrickConf","childRuntimeContext","loadChildren","_ref5","_ref6","childSlotId","slotConf","childrenOutput","child","_x19","_x20","_x21","_x22","_x23","_x24","_x25","_renderForEach","i","j","flat","menuConf","warn","rest","_excluded","last","sibling","assign","originalSlots","newSlots","process","env","NODE_ENV","_child$slot","promise","catch","e"],"sources":["../../../src/internal/Renderer.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n ContextConf,\n MenuConf,\n RouteConf,\n SlotConfOfBricks,\n SlotsConf,\n StaticMenuConf,\n} from \"@next-core/types\";\nimport {\n enqueueStableLoadBricks,\n loadBricksImperatively,\n} from \"@next-core/loader\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { debounce } from \"lodash\";\nimport { asyncCheckBrickIf } from \"./compute/checkIf.js\";\nimport { asyncComputeRealProperties } from \"./compute/computeRealProperties.js\";\nimport { resolveData } from \"./data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./compute/computeRealValue.js\";\nimport { preCheckPermissionsForBrickOrRoute } from \"./checkPermissions.js\";\nimport {\n TrackingContextItem,\n listenOnTrackingContext,\n} from \"./compute/listenOnTrackingContext.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport { matchRoutes } from \"./matchRoutes.js\";\nimport {\n symbolForAsyncComputedPropsFromHost,\n symbolForTPlExternalForEachItem,\n symbolForTplStateStoreId,\n} from \"./CustomTemplates/constants.js\";\nimport { expandCustomTemplate } from \"./CustomTemplates/expandCustomTemplate.js\";\nimport type {\n RenderBrick,\n RenderNode,\n RuntimeBrickConfWithSymbols,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTagNameOfCustomTemplate,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport type { NextHistoryState } from \"./historyExtended.js\";\nimport { getBrickPackages } from \"./Runtime.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { getTracks } from \"./compute/getTracks.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport {\n FORM_RENDERER,\n symbolForFormStateStoreId,\n} from \"./FormRenderer/constants.js\";\nimport { expandFormRenderer } from \"./FormRenderer/expandFormRenderer.js\";\n\nexport interface RenderOutput {\n node?: RenderBrick;\n unauthenticated?: boolean;\n redirect?: {\n path: string;\n state?: NextHistoryState;\n };\n route?: RouteConf;\n blockingList: (Promise<unknown> | undefined)[];\n menuRequests: (Promise<StaticMenuConf | undefined> | undefined)[];\n hasTrackingControls?: boolean;\n}\n\nexport async function renderRoutes(\n returnNode: RenderNode,\n routes: RouteConf[],\n _runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string\n): Promise<RenderOutput> {\n const matched = await matchRoutes(routes, _runtimeContext);\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n switch (matched) {\n case \"missed\":\n break;\n case \"unauthenticated\":\n output.unauthenticated = true;\n break;\n default: {\n const route = (output.route = matched.route);\n const runtimeContext = {\n ..._runtimeContext,\n match: matched.match,\n };\n runtimeContext.ctxStore.define(route.context, runtimeContext);\n runtimeContext.pendingPermissionsPreCheck.push(\n preCheckPermissionsForBrickOrRoute(route, runtimeContext)\n );\n switch (route.type) {\n case \"redirect\": {\n let redirectTo: unknown;\n if (typeof route.redirect === \"string\") {\n redirectTo = await asyncComputeRealValue(\n route.redirect,\n runtimeContext\n );\n } else {\n const resolved = (await resolveData(\n {\n transform: \"redirect\",\n ...route.redirect,\n },\n runtimeContext\n )) as { redirect?: unknown };\n redirectTo = resolved.redirect;\n }\n if (typeof redirectTo !== \"string\") {\n // eslint-disable-next-line no-console\n console.error(\"Unexpected redirect result:\", redirectTo);\n throw new Error(\n `Unexpected type of redirect result: ${typeof redirectTo}`\n );\n }\n output.redirect = { path: redirectTo };\n break;\n }\n case \"routes\": {\n output.menuRequests.push(loadMenu(route.menu, runtimeContext));\n const newOutput = await renderRoutes(\n returnNode,\n route.routes,\n runtimeContext,\n rendererContext,\n slotId\n );\n mergeRenderOutput(output, newOutput);\n break;\n }\n default: {\n output.menuRequests.push(loadMenu(route.menu, runtimeContext));\n const newOutput = await renderBricks(\n returnNode,\n route.bricks,\n runtimeContext,\n rendererContext,\n slotId\n );\n mergeRenderOutput(output, newOutput);\n }\n }\n }\n }\n return output;\n}\n\nexport async function renderBricks(\n returnNode: RenderNode,\n bricks: BrickConf[],\n runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string,\n tplStack?: Map<string, number>,\n noMemoize?: boolean\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n // 多个构件并行异步转换,但转换的结果按原顺序串行合并。\n const rendered = await Promise.all(\n bricks.map((brickConf, index) =>\n renderBrick(\n returnNode,\n brickConf,\n runtimeContext,\n rendererContext,\n slotId,\n index,\n tplStack && new Map(tplStack)\n )\n )\n );\n\n rendered.forEach((item, index) => {\n if (!noMemoize && item.hasTrackingControls) {\n // Memoize a render node before it's been merged.\n rendererContext.memoizeControlNode(slotId, index, item.node, returnNode);\n }\n mergeRenderOutput(output, item);\n });\n\n return output;\n}\n\nexport async function renderBrick(\n returnNode: RenderNode,\n brickConf: RuntimeBrickConfWithSymbols,\n _runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId?: string,\n key?: number,\n tplStack = new Map<string, number>()\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n\n if (!brickConf.brick) {\n if ((brickConf as { template?: string }).template) {\n // eslint-disable-next-line no-console\n console.error(\"Legacy templates are dropped in v3:\", brickConf);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"Invalid brick:\", brickConf);\n }\n return output;\n }\n\n const tplStateStoreId = brickConf[symbolForTplStateStoreId];\n const formStateStoreId = brickConf[symbolForFormStateStoreId];\n const runtimeContext = {\n ..._runtimeContext,\n tplStateStoreId,\n formStateStoreId,\n };\n\n if (hasOwnProperty(brickConf, symbolForTPlExternalForEachItem)) {\n // The external bricks of a template should restore their `forEachItem`\n // from their host.\n runtimeContext.forEachItem = brickConf[symbolForTPlExternalForEachItem];\n }\n\n const { context } = brickConf as { context?: ContextConf[] };\n // istanbul ignore next\n if (Array.isArray(context) && context.length > 0) {\n const strict = isStrictMode(runtimeContext);\n warnAboutStrictMode(\n strict,\n \"Defining context on bricks\",\n \"check your brick:\",\n brickConf\n );\n if (!strict) {\n runtimeContext.ctxStore.define(context, runtimeContext);\n }\n }\n\n runtimeContext.pendingPermissionsPreCheck.push(\n preCheckPermissionsForBrickOrRoute(brickConf, runtimeContext)\n );\n\n if (!(await asyncCheckBrickIf(brickConf, runtimeContext))) {\n return output;\n }\n\n const brickName = brickConf.brick;\n if (brickName.startsWith(\":\")) {\n ensureValidControlBrick(brickName);\n\n const { dataSource } = brickConf;\n\n const renderControlNode = async () => {\n // First, compute the `dataSource`\n const computedDataSource = await asyncComputeRealValue(\n dataSource,\n runtimeContext\n );\n\n // Then, get the matched slot.\n const slot =\n brickName === \":forEach\"\n ? \"\"\n : brickName === \":switch\"\n ? String(computedDataSource)\n : computedDataSource\n ? \"\"\n : \"else\";\n\n // Don't forget to transpile children to slots.\n const slots = childrenToSlots(brickConf.children, brickConf.slots);\n\n // Then, get the bricks in that matched slot.\n const bricks =\n slots &&\n hasOwnProperty(slots, slot) &&\n (slots[slot] as SlotConfOfBricks)?.bricks;\n\n if (!Array.isArray(bricks)) {\n return output;\n }\n\n switch (brickName) {\n case \":forEach\": {\n if (!Array.isArray(computedDataSource)) {\n return output;\n }\n return renderForEach(\n returnNode,\n computedDataSource,\n bricks,\n runtimeContext,\n rendererContext,\n slotId,\n tplStack\n );\n }\n case \":if\":\n case \":switch\": {\n return renderBricks(\n returnNode,\n bricks,\n runtimeContext,\n rendererContext,\n slotId,\n tplStack,\n true\n );\n }\n }\n };\n\n const controlledOutput = await renderControlNode();\n\n const { contextNames, stateNames } = getTracks(dataSource);\n if (contextNames || stateNames) {\n controlledOutput.hasTrackingControls = true;\n let renderId = 0;\n const listener = async () => {\n const currentRenderId = ++renderId;\n const output = await renderControlNode();\n output.blockingList.push(\n ...[\n ...runtimeContext.tplStateStoreMap.values(),\n ...runtimeContext.formStateStoreMap.values(),\n ].map((store) => store.waitForAll()),\n ...runtimeContext.pendingPermissionsPreCheck\n );\n await Promise.all(output.blockingList);\n // Ignore stale renders\n if (renderId === currentRenderId) {\n rendererContext.rerenderControlNode(\n slotId,\n key as number,\n output.node,\n returnNode\n );\n }\n };\n const debouncedListener = debounce(listener);\n if (contextNames) {\n for (const contextName of contextNames) {\n runtimeContext.ctxStore.onChange(contextName, debouncedListener);\n }\n }\n if (stateNames) {\n for (const contextName of stateNames) {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n \"STATE\",\n `: \"${dataSource}\"`\n );\n tplStateStore.onChange(contextName, debouncedListener);\n }\n }\n }\n\n return controlledOutput;\n }\n\n // Widgets need to be defined before rendering.\n if (/\\.tpl-/.test(brickName) && !customTemplates.get(brickName)) {\n await catchLoadBrick(\n loadBricksImperatively([brickName], getBrickPackages()),\n brickName,\n rendererContext.unknownBricks\n );\n }\n\n const tplTagName = getTagNameOfCustomTemplate(\n brickName,\n runtimeContext.app?.id\n );\n\n if (tplTagName) {\n const tplCount = tplStack.get(tplTagName) ?? 0;\n if (tplCount >= 10) {\n throw new Error(\n `Maximum custom template stack overflowed: \"${tplTagName}\"`\n );\n }\n tplStack.set(tplTagName, tplCount + 1);\n } else if (brickName.includes(\"-\") && !customElements.get(brickName)) {\n if (brickName === FORM_RENDERER) {\n customElements.define(\n FORM_RENDERER,\n class FormRendererElement extends HTMLElement {\n get $$typeof(): string {\n return \"form-renderer\";\n }\n }\n );\n } else {\n output.blockingList.push(\n catchLoadBrick(\n enqueueStableLoadBricks([brickName], getBrickPackages()),\n brickName,\n rendererContext.unknownBricks\n )\n );\n }\n }\n\n const brick: RenderBrick = {\n tag: RenderTag.BRICK,\n type: tplTagName || brickName,\n return: returnNode,\n slotId,\n events: brickConf.events,\n runtimeContext,\n portal: brickConf.portal,\n iid: brickConf.iid,\n ref: (brickConf as BrickConfInTemplate).ref,\n };\n\n output.node = brick;\n\n // const confProps = brickConf.properties;\n let formData: unknown;\n let confProps: Record<string, unknown> | undefined;\n if (brickName === FORM_RENDERER) {\n ({ formData, ...confProps } = brickConf.properties ?? {});\n } else {\n confProps = brickConf.properties;\n }\n\n // 加载构件属性和加载子构件等任务,可以并行。\n const blockingList: Promise<unknown>[] = [];\n\n const trackingContextList: TrackingContextItem[] = [];\n const loadProperties = async () => {\n brick.properties = await asyncComputeRealProperties(\n confProps,\n runtimeContext,\n trackingContextList\n );\n const computedPropsFromHost =\n brickConf[symbolForAsyncComputedPropsFromHost];\n if (computedPropsFromHost) {\n brick.properties ??= {};\n const computed = await computedPropsFromHost;\n for (const [propName, propValue] of Object.entries(computed)) {\n brick.properties[propName] = propValue;\n }\n }\n listenOnTrackingContext(brick, trackingContextList);\n return brick.properties;\n };\n const asyncProperties = loadProperties();\n blockingList.push(asyncProperties);\n\n rendererContext.registerBrickLifeCycle(brick, brickConf.lifeCycle);\n\n let expandedBrickConf = brickConf;\n if (tplTagName) {\n expandedBrickConf = expandCustomTemplate(\n tplTagName,\n brickConf,\n brick,\n asyncProperties\n );\n } else if (brickName === FORM_RENDERER) {\n expandedBrickConf = expandFormRenderer(\n formData,\n brickConf,\n brick,\n asyncProperties\n );\n }\n\n if (expandedBrickConf.portal) {\n // A portal brick has no slotId.\n brick.slotId = undefined;\n }\n\n let childRuntimeContext: RuntimeContext;\n if (tplTagName) {\n // There is a boundary for `forEachItem` between template internals and externals.\n childRuntimeContext = {\n ...runtimeContext,\n };\n delete childRuntimeContext.forEachItem;\n } else {\n childRuntimeContext = runtimeContext;\n }\n\n const loadChildren = async () => {\n const slots = childrenToSlots(\n expandedBrickConf.children,\n expandedBrickConf.slots\n );\n if (!slots) {\n return;\n }\n const rendered = await Promise.all(\n Object.entries(slots).map(([childSlotId, slotConf]) =>\n slotConf.type !== \"routes\"\n ? renderBricks(\n brick,\n (slotConf as SlotConfOfBricks).bricks,\n childRuntimeContext,\n rendererContext,\n childSlotId,\n tplStack\n )\n : renderRoutes(\n brick,\n slotConf.routes,\n childRuntimeContext,\n rendererContext,\n childSlotId\n )\n )\n );\n\n const childrenOutput: RenderOutput = {\n ...output,\n node: undefined,\n blockingList: [],\n };\n for (const item of rendered) {\n mergeRenderOutput(childrenOutput, item);\n }\n if (childrenOutput.node) {\n brick.child = childrenOutput.node;\n }\n mergeRenderOutput(output, {\n ...childrenOutput,\n node: undefined,\n });\n };\n blockingList.push(loadChildren());\n\n await Promise.all(blockingList);\n\n return output;\n}\n\ntype ValidControlBrick = \":forEach\" | \":if\" | \":switch\";\n\nfunction ensureValidControlBrick(\n brick: string\n): asserts brick is ValidControlBrick {\n if (brick !== \":forEach\" && brick !== \":if\" && brick !== \":switch\") {\n throw new Error(`Unknown storyboard control node: \"${brick}\"`);\n }\n}\n\nasync function renderForEach(\n returnNode: RenderNode,\n dataSource: unknown[],\n bricks: BrickConf[],\n runtimeContext: RuntimeContext,\n rendererContext: RendererContext,\n slotId: string | undefined,\n tplStack?: Map<string, number>\n): Promise<RenderOutput> {\n const output: RenderOutput = {\n blockingList: [],\n menuRequests: [],\n };\n\n const rendered = await Promise.all(\n dataSource.map((item, i) =>\n Promise.all(\n bricks.map((brickConf, j) =>\n renderBrick(\n returnNode,\n brickConf,\n {\n ...runtimeContext,\n forEachItem: item,\n },\n rendererContext,\n slotId,\n i * j,\n tplStack && new Map(tplStack)\n )\n )\n )\n )\n );\n\n // 多层构件并行异步转换,但转换的结果按原顺序串行合并。\n for (const item of rendered.flat()) {\n mergeRenderOutput(output, item);\n }\n return output;\n}\n\nfunction loadMenu(\n menuConf: MenuConf | undefined,\n runtimeContext: RuntimeContext\n) {\n if (!menuConf) {\n return;\n }\n\n // istanbul ignore next\n if ((menuConf as { type?: \"brick\" }).type === \"brick\") {\n // eslint-disable-next-line no-console\n console.error(\"Set menu with brick is dropped in v3:\", menuConf);\n throw new Error(\"Set menu with brick is dropped in v3\");\n }\n\n // istanbul ignore next\n if (menuConf.type === \"resolve\") {\n // eslint-disable-next-line no-console\n console.warn(\"Set menu with resolve is not supported in v3 yet:\", menuConf);\n return;\n }\n\n return asyncComputeRealValue(\n menuConf,\n runtimeContext\n ) as Promise<StaticMenuConf>;\n}\n\nfunction mergeRenderOutput(\n output: RenderOutput,\n newOutput: RenderOutput\n): void {\n const { blockingList, node, menuRequests, hasTrackingControls, ...rest } =\n newOutput;\n output.blockingList.push(...blockingList);\n output.menuRequests.push(...menuRequests);\n\n if (node) {\n if (output.node) {\n let last = output.node;\n while (last.sibling) {\n last = last.sibling;\n }\n last.sibling = node;\n } else {\n output.node = node;\n }\n }\n\n Object.assign(output, rest);\n}\n\nexport function childrenToSlots(\n children: BrickConf[] | undefined,\n originalSlots: SlotsConf | undefined\n) {\n let newSlots = originalSlots;\n // istanbul ignore next\n if (\n process.env.NODE_ENV === \"development\" &&\n children &&\n !Array.isArray(children)\n ) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Specified brick children but not array:\",\n `<${typeof children}>`,\n children\n );\n }\n if (Array.isArray(children) && !newSlots) {\n newSlots = {};\n for (const child of children) {\n const slot = child.slot ?? \"\";\n if (!hasOwnProperty(newSlots, slot)) {\n newSlots[slot] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n (newSlots[slot] as SlotConfOfBricks).bricks.push(child);\n }\n }\n return newSlots;\n}\n\nfunction catchLoadBrick(\n promise: Promise<unknown>,\n brickName: string,\n unknownBricks: RendererContext[\"unknownBricks\"]\n) {\n return unknownBricks === \"silent\"\n ? promise.catch((e) => {\n // eslint-disable-next-line no-console\n console.error(`Load brick \"${brickName}\" failed:`, e);\n })\n : promise;\n}\n"],"mappings":"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"}
|
|
@@ -28,13 +28,15 @@ export class RendererContext {
|
|
|
28
28
|
* - fragment: render as fragment, not triggering page life cycles.
|
|
29
29
|
*/
|
|
30
30
|
|
|
31
|
-
constructor(scope) {
|
|
31
|
+
constructor(scope, options) {
|
|
32
|
+
var _options$unknownBrick;
|
|
32
33
|
_classPrivateMethodInitSpec(this, _addObserver);
|
|
33
34
|
// Note: no `onScrollIntoView`
|
|
34
35
|
_classPrivateMethodInitSpec(this, _dispatchGeneralLifeCycle);
|
|
35
36
|
_classPrivateMethodInitSpec(this, _initializeRerenderBricks);
|
|
36
37
|
_classPrivateMethodInitSpec(this, _unmountBricks);
|
|
37
38
|
_defineProperty(this, "scope", void 0);
|
|
39
|
+
_defineProperty(this, "unknownBricks", void 0);
|
|
38
40
|
_classPrivateFieldInitSpec(this, _memoizedLifeCycle, {
|
|
39
41
|
writable: true,
|
|
40
42
|
value: {
|
|
@@ -64,6 +66,7 @@ export class RendererContext {
|
|
|
64
66
|
value: void 0
|
|
65
67
|
});
|
|
66
68
|
this.scope = scope;
|
|
69
|
+
this.unknownBricks = (_options$unknownBrick = options === null || options === void 0 ? void 0 : options.unknownBricks) !== null && _options$unknownBrick !== void 0 ? _options$unknownBrick : "throw";
|
|
67
70
|
}
|
|
68
71
|
registerBrickLifeCycle(brick, lifeCycle) {
|
|
69
72
|
if (!lifeCycle) {
|