@next-core/runtime 1.57.0 → 1.57.2
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/internal/CustomTemplates/setupTemplateProxy.js +1 -1
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/cjs/internal/Renderer.js +38 -8
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/interfaces.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +2 -9
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/esm/CustomTemplates.js +11 -7
- package/dist/esm/CustomTemplates.js.map +1 -1
- package/dist/esm/ModalStack.js +2 -1
- package/dist/esm/ModalStack.js.map +1 -1
- package/dist/esm/StoryboardFunctionRegistry.js +2 -1
- package/dist/esm/StoryboardFunctionRegistry.js.map +1 -1
- package/dist/esm/createRoot.js +4 -4
- package/dist/esm/createRoot.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +5 -4
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +3 -2
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/replaceSlotWithSlottedBricks.js +5 -4
- package/dist/esm/internal/CustomTemplates/replaceSlotWithSlottedBricks.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +7 -6
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +3 -2
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/utils.js +3 -3
- package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/esm/internal/ErrorNode.js +2 -1
- package/dist/esm/internal/ErrorNode.js.map +1 -1
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js +3 -3
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -1
- package/dist/esm/internal/FormRenderer/utils.js +2 -2
- package/dist/esm/internal/FormRenderer/utils.js.map +1 -1
- package/dist/esm/internal/Renderer.js +58 -22
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/RendererContext.js +10 -8
- package/dist/esm/internal/RendererContext.js.map +1 -1
- package/dist/esm/internal/Runtime.js +15 -16
- package/dist/esm/internal/Runtime.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +3 -2
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +4 -4
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/compute/getStorageItem.js +2 -1
- package/dist/esm/internal/compute/getStorageItem.js.map +1 -1
- package/dist/esm/internal/compute/listenOnTrackingContext.js +2 -1
- package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/esm/internal/data/resolveDataStore.js +4 -2
- package/dist/esm/internal/data/resolveDataStore.js.map +1 -1
- package/dist/esm/internal/interfaces.js.map +1 -1
- package/dist/esm/internal/matchStoryboard.js +2 -2
- package/dist/esm/internal/matchStoryboard.js.map +1 -1
- package/dist/esm/internal/poll.js +3 -3
- package/dist/esm/internal/poll.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +10 -16
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/esm/internal/setupRootRuntimeContext.js +3 -2
- package/dist/esm/internal/setupRootRuntimeContext.js.map +1 -1
- package/dist/esm/setWatermark.js +4 -4
- package/dist/esm/setWatermark.js.map +1 -1
- package/dist/esm/themeAndMode.js +2 -1
- package/dist/esm/themeAndMode.js.map +1 -1
- package/dist/types/internal/interfaces.d.ts +1 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandCustomTemplate.js","names":["uniqueId","customTemplates","DataStore","setupTemplateProxy","setupUseBrickInTemplate","childrenToSlots","hooks","replaceSlotWithSlottedBricks","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostPropertyEntries","rendererContext","_hooks$flowApi","tplStateStoreId","runtimeContext","forEachItem","forEachIndex","forEachSize","formStateStoreId","tplStateStore","tplStateStoreMap","set","tplStateStoreScope","push","bricks","proxy","state","contracts","get","flowApi","collectWidgetContract","define","slots","originalExternalSlots","children","externalChildren","restBrickConf","newBrickConf","brick","tplHostMetadata","internalBricksByRef","Map","reversedProxies","properties","from","to","Object","entries","proxies","ref","hostContext","externalSlots","usedSlots","Set","type","flatMap","item","expandBrickInTemplate","brickConfInTemplate","markSlotted","if","slotsInTemplate","childrenInTemplate","restBrickConfInTemplate","transpiledSlots","slotted","markChild","fromEntries","map","_ref","slotName","slotConf"],"sources":["../../../../src/internal/CustomTemplates/expandCustomTemplate.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n SlotConfOfBricks,\n SlotsConfInTemplate,\n SlotsConfOfBricks,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { uniqueId } from \"lodash\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport type {\n AsyncPropertyEntry,\n RuntimeBrick,\n TemplateHostBrick,\n TemplateHostContext,\n} from \"../interfaces.js\";\nimport { setupUseBrickInTemplate } from \"./setupUseBrickInTemplate.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { hooks } from \"../Runtime.js\";\nimport type { RendererContext } from \"../RendererContext.js\";\nimport { replaceSlotWithSlottedBricks } from \"./replaceSlotWithSlottedBricks.js\";\n\nexport function expandCustomTemplate<T extends BrickConf | UseSingleBrickConf>(\n tplTagName: string,\n brickConf: T,\n hostBrick: RuntimeBrick,\n asyncHostPropertyEntries: AsyncPropertyEntry[],\n rendererContext: RendererContext\n): T {\n const tplStateStoreId = uniqueId(\"tpl-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n tplStateStoreId,\n };\n\n // There is a boundary for `forEach*` and `FORM_STATE` between template internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.forEachIndex;\n delete runtimeContext.forEachSize;\n delete runtimeContext.formStateStoreId;\n\n const tplStateStore = new DataStore(\n \"STATE\",\n hostBrick,\n rendererContext,\n tplStateStoreId\n );\n runtimeContext.tplStateStoreMap.set(tplStateStoreId, tplStateStore);\n if (runtimeContext.tplStateStoreScope) {\n runtimeContext.tplStateStoreScope.push(tplStateStore);\n }\n\n const { bricks, proxy, state, contracts } = customTemplates.get(tplTagName)!;\n hooks?.flowApi?.collectWidgetContract(contracts);\n tplStateStore.define(state, runtimeContext, asyncHostPropertyEntries);\n\n const {\n slots: originalExternalSlots,\n children: externalChildren,\n ...restBrickConf\n } = brickConf;\n\n const newBrickConf = {\n ...restBrickConf,\n brick: tplTagName,\n } as T;\n\n hostBrick.tplHostMetadata = {\n internalBricksByRef: new Map(),\n tplStateStoreId,\n proxy,\n };\n\n // Reversed proxies are used for expand storyboard before rendering page.\n const reversedProxies: TemplateHostContext[\"reversedProxies\"] = {\n properties: new Map(),\n slots: new Map(),\n // mergeBases: new Map(),\n };\n\n if (proxy?.properties) {\n for (const [from, to] of Object.entries(proxy.properties)) {\n let proxies = reversedProxies.properties.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.properties.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n if (proxy?.slots) {\n for (const [from, to] of Object.entries(proxy.slots)) {\n let proxies = reversedProxies.slots.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.slots.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n const hostContext: TemplateHostContext = {\n reversedProxies,\n asyncHostPropertyEntries,\n externalSlots: childrenToSlots(externalChildren, originalExternalSlots) as\n | SlotsConfOfBricks\n | undefined,\n tplStateStoreId,\n hostBrick: hostBrick as TemplateHostBrick,\n usedSlots: new Set(),\n };\n\n newBrickConf.slots = {\n \"\": {\n type: \"bricks\",\n bricks: bricks.flatMap((item) =>\n expandBrickInTemplate(item, hostContext)\n ),\n },\n };\n\n return newBrickConf;\n}\n\nfunction expandBrickInTemplate(\n brickConfInTemplate: BrickConf,\n hostContext: TemplateHostContext,\n markSlotted?: () => void\n): BrickConf | BrickConf[] {\n // Ignore `if: null` to make `looseCheckIf` working.\n if (brickConfInTemplate.if === null) {\n delete brickConfInTemplate.if;\n }\n\n if (brickConfInTemplate.brick === \"slot\") {\n markSlotted?.();\n return replaceSlotWithSlottedBricks(\n brickConfInTemplate,\n hostContext,\n expandBrickInTemplate\n );\n }\n\n const {\n properties,\n slots: slotsInTemplate,\n children: childrenInTemplate,\n ...restBrickConfInTemplate\n } = brickConfInTemplate as BrickConfInTemplate;\n\n const transpiledSlots = childrenToSlots(\n childrenInTemplate,\n slotsInTemplate\n ) as SlotsConfInTemplate | undefined;\n\n let slotted = false;\n const markChild = () => {\n slotted = true;\n };\n const slots = Object.fromEntries<SlotConfOfBricks>(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).flatMap((item) =>\n expandBrickInTemplate(item, hostContext, markChild)\n ),\n },\n ])\n );\n\n return {\n ...restBrickConfInTemplate,\n properties: setupUseBrickInTemplate(properties, hostContext),\n slots,\n ...setupTemplateProxy(\n hostContext,\n restBrickConfInTemplate.ref,\n slots,\n slotted\n ),\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"expandCustomTemplate.js","names":["uniqueId","customTemplates","DataStore","setupTemplateProxy","setupUseBrickInTemplate","childrenToSlots","hooks","replaceSlotWithSlottedBricks","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostPropertyEntries","rendererContext","_hooks$flowApi","tplStateStoreId","runtimeContext","forEachItem","forEachIndex","forEachSize","formStateStoreId","tplStateStore","tplStateStoreMap","set","tplStateStoreScope","push","bricks","proxy","state","contracts","get","flowApi","collectWidgetContract","define","slots","originalExternalSlots","children","externalChildren","restBrickConf","newBrickConf","brick","tplHostMetadata","internalBricksByRef","Map","reversedProxies","properties","from","to","Object","entries","proxies","ref","hostContext","externalSlots","usedSlots","Set","type","flatMap","item","expandBrickInTemplate","brickConfInTemplate","markSlotted","if","slotsInTemplate","childrenInTemplate","restBrickConfInTemplate","transpiledSlots","slotted","markChild","fromEntries","map","_ref","_slotConf$bricks","slotName","slotConf"],"sources":["../../../../src/internal/CustomTemplates/expandCustomTemplate.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\n SlotConfOfBricks,\n SlotsConfInTemplate,\n SlotsConfOfBricks,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { uniqueId } from \"lodash\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport type {\n AsyncPropertyEntry,\n RuntimeBrick,\n TemplateHostBrick,\n TemplateHostContext,\n} from \"../interfaces.js\";\nimport { setupUseBrickInTemplate } from \"./setupUseBrickInTemplate.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { hooks } from \"../Runtime.js\";\nimport type { RendererContext } from \"../RendererContext.js\";\nimport { replaceSlotWithSlottedBricks } from \"./replaceSlotWithSlottedBricks.js\";\n\nexport function expandCustomTemplate<T extends BrickConf | UseSingleBrickConf>(\n tplTagName: string,\n brickConf: T,\n hostBrick: RuntimeBrick,\n asyncHostPropertyEntries: AsyncPropertyEntry[],\n rendererContext: RendererContext\n): T {\n const tplStateStoreId = uniqueId(\"tpl-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n tplStateStoreId,\n };\n\n // There is a boundary for `forEach*` and `FORM_STATE` between template internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.forEachIndex;\n delete runtimeContext.forEachSize;\n delete runtimeContext.formStateStoreId;\n\n const tplStateStore = new DataStore(\n \"STATE\",\n hostBrick,\n rendererContext,\n tplStateStoreId\n );\n runtimeContext.tplStateStoreMap.set(tplStateStoreId, tplStateStore);\n if (runtimeContext.tplStateStoreScope) {\n runtimeContext.tplStateStoreScope.push(tplStateStore);\n }\n\n const { bricks, proxy, state, contracts } = customTemplates.get(tplTagName)!;\n hooks?.flowApi?.collectWidgetContract(contracts);\n tplStateStore.define(state, runtimeContext, asyncHostPropertyEntries);\n\n const {\n slots: originalExternalSlots,\n children: externalChildren,\n ...restBrickConf\n } = brickConf;\n\n const newBrickConf = {\n ...restBrickConf,\n brick: tplTagName,\n } as T;\n\n hostBrick.tplHostMetadata = {\n internalBricksByRef: new Map(),\n tplStateStoreId,\n proxy,\n };\n\n // Reversed proxies are used for expand storyboard before rendering page.\n const reversedProxies: TemplateHostContext[\"reversedProxies\"] = {\n properties: new Map(),\n slots: new Map(),\n // mergeBases: new Map(),\n };\n\n if (proxy?.properties) {\n for (const [from, to] of Object.entries(proxy.properties)) {\n let proxies = reversedProxies.properties.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.properties.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n if (proxy?.slots) {\n for (const [from, to] of Object.entries(proxy.slots)) {\n let proxies = reversedProxies.slots.get(to.ref);\n if (!proxies) {\n proxies = [];\n reversedProxies.slots.set(to.ref, proxies);\n }\n proxies.push({\n from,\n to,\n });\n }\n }\n\n const hostContext: TemplateHostContext = {\n reversedProxies,\n asyncHostPropertyEntries,\n externalSlots: childrenToSlots(externalChildren, originalExternalSlots) as\n | SlotsConfOfBricks\n | undefined,\n tplStateStoreId,\n hostBrick: hostBrick as TemplateHostBrick,\n usedSlots: new Set(),\n };\n\n newBrickConf.slots = {\n \"\": {\n type: \"bricks\",\n bricks: bricks.flatMap((item) =>\n expandBrickInTemplate(item, hostContext)\n ),\n },\n };\n\n return newBrickConf;\n}\n\nfunction expandBrickInTemplate(\n brickConfInTemplate: BrickConf,\n hostContext: TemplateHostContext,\n markSlotted?: () => void\n): BrickConf | BrickConf[] {\n // Ignore `if: null` to make `looseCheckIf` working.\n if (brickConfInTemplate.if === null) {\n delete brickConfInTemplate.if;\n }\n\n if (brickConfInTemplate.brick === \"slot\") {\n markSlotted?.();\n return replaceSlotWithSlottedBricks(\n brickConfInTemplate,\n hostContext,\n expandBrickInTemplate\n );\n }\n\n const {\n properties,\n slots: slotsInTemplate,\n children: childrenInTemplate,\n ...restBrickConfInTemplate\n } = brickConfInTemplate as BrickConfInTemplate;\n\n const transpiledSlots = childrenToSlots(\n childrenInTemplate,\n slotsInTemplate\n ) as SlotsConfInTemplate | undefined;\n\n let slotted = false;\n const markChild = () => {\n slotted = true;\n };\n const slots = Object.fromEntries<SlotConfOfBricks>(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).flatMap((item) =>\n expandBrickInTemplate(item, hostContext, markChild)\n ),\n },\n ])\n );\n\n return {\n ...restBrickConfInTemplate,\n properties: setupUseBrickInTemplate(properties, hostContext),\n slots,\n ...setupTemplateProxy(\n hostContext,\n restBrickConfInTemplate.ref,\n slots,\n slotted\n ),\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -3,12 +3,12 @@ import { isEvaluable } from "@next-core/cook";
|
|
|
3
3
|
import { setupTemplateExternalBricksWithForEach } from "./setupTemplateProxy.js";
|
|
4
4
|
import { childrenToSlots } from "../Renderer.js";
|
|
5
5
|
export function replaceSlotWithSlottedBricks(brickConf, hostContext, expand) {
|
|
6
|
-
var _brickConf$properties, _defaultSlots$;
|
|
6
|
+
var _brickConf$properties, _brickConf$properties2, _defaultSlots$$bricks, _defaultSlots$;
|
|
7
7
|
// Currently, no support for `if` in a slot.
|
|
8
8
|
if (brickConf.if != null && !brickConf.if || typeof brickConf.if === "string") {
|
|
9
9
|
throw new Error(`Can not use "if" in a slot currently, check your template "${hostContext.hostBrick.type}"`);
|
|
10
10
|
}
|
|
11
|
-
const slot = String((
|
|
11
|
+
const slot = String((_brickConf$properties = (_brickConf$properties2 = brickConf.properties) === null || _brickConf$properties2 === void 0 ? void 0 : _brickConf$properties2.name) !== null && _brickConf$properties !== void 0 ? _brickConf$properties : "");
|
|
12
12
|
|
|
13
13
|
// Currently, no support for expression as slot name.
|
|
14
14
|
if (isEvaluable(slot)) {
|
|
@@ -21,7 +21,8 @@ export function replaceSlotWithSlottedBricks(brickConf, hostContext, expand) {
|
|
|
21
21
|
}
|
|
22
22
|
hostContext.usedSlots.add(slot);
|
|
23
23
|
if (hostContext.externalSlots && hasOwnProperty(hostContext.externalSlots, slot)) {
|
|
24
|
-
|
|
24
|
+
var _hostContext$external;
|
|
25
|
+
const insertBricks = (_hostContext$external = hostContext.externalSlots[slot].bricks) !== null && _hostContext$external !== void 0 ? _hostContext$external : [];
|
|
25
26
|
if (insertBricks.length > 0) {
|
|
26
27
|
const hostCtx = hostContext.hostBrick.runtimeContext;
|
|
27
28
|
// External bricks of a template, should not access the template internal forEach `ITEM`.
|
|
@@ -31,6 +32,6 @@ export function replaceSlotWithSlottedBricks(brickConf, hostContext, expand) {
|
|
|
31
32
|
}
|
|
32
33
|
}
|
|
33
34
|
const defaultSlots = childrenToSlots(brickConf.children, brickConf.slots);
|
|
34
|
-
return ((defaultSlots === null || defaultSlots === void 0 || (_defaultSlots$ = defaultSlots[""]) === null || _defaultSlots$ === void 0 ? void 0 : _defaultSlots$.bricks)
|
|
35
|
+
return ((_defaultSlots$$bricks = defaultSlots === null || defaultSlots === void 0 || (_defaultSlots$ = defaultSlots[""]) === null || _defaultSlots$ === void 0 ? void 0 : _defaultSlots$.bricks) !== null && _defaultSlots$$bricks !== void 0 ? _defaultSlots$$bricks : []).flatMap(item => expand(item, hostContext));
|
|
35
36
|
}
|
|
36
37
|
//# sourceMappingURL=replaceSlotWithSlottedBricks.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"replaceSlotWithSlottedBricks.js","names":["hasOwnProperty","isEvaluable","setupTemplateExternalBricksWithForEach","childrenToSlots","replaceSlotWithSlottedBricks","brickConf","hostContext","expand","_brickConf$properties","_defaultSlots$","if","Error","hostBrick","type","slot","String","properties","name","usedSlots","has","add","externalSlots","insertBricks","bricks","length","hostCtx","runtimeContext","hostHasForEach","forEachItem","forEachIndex","forEachSize","defaultSlots","children","slots","flatMap","item"],"sources":["../../../../src/internal/CustomTemplates/replaceSlotWithSlottedBricks.ts"],"sourcesContent":["import type {\n BrickConf,\n SlotsConfInTemplate,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport type { TemplateHostContext } from \"../interfaces.js\";\nimport { setupTemplateExternalBricksWithForEach } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function replaceSlotWithSlottedBricks<\n T extends BrickConf | UseSingleBrickConf,\n>(\n brickConf: T,\n hostContext: TemplateHostContext,\n expand: (item: T, hostContext: TemplateHostContext) => T | T[]\n): T[] {\n // Currently, no support for `if` in a slot.\n if (\n (brickConf.if != null && !brickConf.if) ||\n typeof brickConf.if === \"string\"\n ) {\n throw new Error(\n `Can not use \"if\" in a slot currently, check your template \"${hostContext.hostBrick.type}\"`\n );\n }\n\n const slot = String(brickConf.properties?.name ?? \"\");\n\n // Currently, no support for expression as slot name.\n if (isEvaluable(slot)) {\n throw new Error(\n `Can not use an expression as slot name \"${slot}\" currently, check your template \"${hostContext.hostBrick.type}\"`\n );\n }\n\n // Do not repeat the same slot name in a template.\n if (hostContext.usedSlots.has(slot)) {\n throw new Error(\n `Can not have multiple slots with the same name \"${slot}\", check your template \"${hostContext.hostBrick.type}\"`\n );\n }\n hostContext.usedSlots.add(slot);\n\n if (\n hostContext.externalSlots &&\n hasOwnProperty(hostContext.externalSlots, slot)\n ) {\n const insertBricks = hostContext.externalSlots[slot].bricks ?? [];\n if (insertBricks.length > 0) {\n const hostCtx = hostContext.hostBrick.runtimeContext;\n // External bricks of a template, should not access the template internal forEach `ITEM`.\n // For some existing templates who is *USING* this bug, we keep the old behavior.\n const hostHasForEach = hasOwnProperty(hostCtx, \"forEachItem\");\n return (\n hostHasForEach\n ? setupTemplateExternalBricksWithForEach(\n insertBricks,\n hostCtx.forEachItem,\n hostCtx.forEachIndex!,\n hostCtx.forEachSize!\n )\n : insertBricks\n ) as T[];\n }\n }\n\n const defaultSlots = childrenToSlots(brickConf.children, brickConf.slots) as\n | SlotsConfInTemplate\n | undefined;\n return (defaultSlots?.[\"\"]?.bricks ?? []).flatMap((item) =>\n expand(item as T, hostContext)\n );\n}\n"],"mappings":"AAKA,SAASA,cAAc,QAAQ,0BAA0B;AACzD,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,SAASC,sCAAsC,QAAQ,yBAAyB;AAChF,SAASC,eAAe,QAAQ,gBAAgB;AAEhD,OAAO,SAASC,4BAA4BA,CAG1CC,SAAY,EACZC,WAAgC,EAChCC,MAA8D,EACzD;EAAA,IAAAC,qBAAA,EAAAC,cAAA;EACL;EACA,
|
|
1
|
+
{"version":3,"file":"replaceSlotWithSlottedBricks.js","names":["hasOwnProperty","isEvaluable","setupTemplateExternalBricksWithForEach","childrenToSlots","replaceSlotWithSlottedBricks","brickConf","hostContext","expand","_brickConf$properties","_brickConf$properties2","_defaultSlots$$bricks","_defaultSlots$","if","Error","hostBrick","type","slot","String","properties","name","usedSlots","has","add","externalSlots","_hostContext$external","insertBricks","bricks","length","hostCtx","runtimeContext","hostHasForEach","forEachItem","forEachIndex","forEachSize","defaultSlots","children","slots","flatMap","item"],"sources":["../../../../src/internal/CustomTemplates/replaceSlotWithSlottedBricks.ts"],"sourcesContent":["import type {\n BrickConf,\n SlotsConfInTemplate,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport type { TemplateHostContext } from \"../interfaces.js\";\nimport { setupTemplateExternalBricksWithForEach } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function replaceSlotWithSlottedBricks<\n T extends BrickConf | UseSingleBrickConf,\n>(\n brickConf: T,\n hostContext: TemplateHostContext,\n expand: (item: T, hostContext: TemplateHostContext) => T | T[]\n): T[] {\n // Currently, no support for `if` in a slot.\n if (\n (brickConf.if != null && !brickConf.if) ||\n typeof brickConf.if === \"string\"\n ) {\n throw new Error(\n `Can not use \"if\" in a slot currently, check your template \"${hostContext.hostBrick.type}\"`\n );\n }\n\n const slot = String(brickConf.properties?.name ?? \"\");\n\n // Currently, no support for expression as slot name.\n if (isEvaluable(slot)) {\n throw new Error(\n `Can not use an expression as slot name \"${slot}\" currently, check your template \"${hostContext.hostBrick.type}\"`\n );\n }\n\n // Do not repeat the same slot name in a template.\n if (hostContext.usedSlots.has(slot)) {\n throw new Error(\n `Can not have multiple slots with the same name \"${slot}\", check your template \"${hostContext.hostBrick.type}\"`\n );\n }\n hostContext.usedSlots.add(slot);\n\n if (\n hostContext.externalSlots &&\n hasOwnProperty(hostContext.externalSlots, slot)\n ) {\n const insertBricks = hostContext.externalSlots[slot].bricks ?? [];\n if (insertBricks.length > 0) {\n const hostCtx = hostContext.hostBrick.runtimeContext;\n // External bricks of a template, should not access the template internal forEach `ITEM`.\n // For some existing templates who is *USING* this bug, we keep the old behavior.\n const hostHasForEach = hasOwnProperty(hostCtx, \"forEachItem\");\n return (\n hostHasForEach\n ? setupTemplateExternalBricksWithForEach(\n insertBricks,\n hostCtx.forEachItem,\n hostCtx.forEachIndex!,\n hostCtx.forEachSize!\n )\n : insertBricks\n ) as T[];\n }\n }\n\n const defaultSlots = childrenToSlots(brickConf.children, brickConf.slots) as\n | SlotsConfInTemplate\n | undefined;\n return (defaultSlots?.[\"\"]?.bricks ?? []).flatMap((item) =>\n expand(item as T, hostContext)\n );\n}\n"],"mappings":"AAKA,SAASA,cAAc,QAAQ,0BAA0B;AACzD,SAASC,WAAW,QAAQ,iBAAiB;AAE7C,SAASC,sCAAsC,QAAQ,yBAAyB;AAChF,SAASC,eAAe,QAAQ,gBAAgB;AAEhD,OAAO,SAASC,4BAA4BA,CAG1CC,SAAY,EACZC,WAAgC,EAChCC,MAA8D,EACzD;EAAA,IAAAC,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA,EAAAC,cAAA;EACL;EACA,IACGN,SAAS,CAACO,EAAE,IAAI,IAAI,IAAI,CAACP,SAAS,CAACO,EAAE,IACtC,OAAOP,SAAS,CAACO,EAAE,KAAK,QAAQ,EAChC;IACA,MAAM,IAAIC,KAAK,CACb,8DAA8DP,WAAW,CAACQ,SAAS,CAACC,IAAI,GAC1F,CAAC;EACH;EAEA,MAAMC,IAAI,GAAGC,MAAM,EAAAT,qBAAA,IAAAC,sBAAA,GAACJ,SAAS,CAACa,UAAU,cAAAT,sBAAA,uBAApBA,sBAAA,CAAsBU,IAAI,cAAAX,qBAAA,cAAAA,qBAAA,GAAI,EAAE,CAAC;;EAErD;EACA,IAAIP,WAAW,CAACe,IAAI,CAAC,EAAE;IACrB,MAAM,IAAIH,KAAK,CACb,2CAA2CG,IAAI,qCAAqCV,WAAW,CAACQ,SAAS,CAACC,IAAI,GAChH,CAAC;EACH;;EAEA;EACA,IAAIT,WAAW,CAACc,SAAS,CAACC,GAAG,CAACL,IAAI,CAAC,EAAE;IACnC,MAAM,IAAIH,KAAK,CACb,mDAAmDG,IAAI,2BAA2BV,WAAW,CAACQ,SAAS,CAACC,IAAI,GAC9G,CAAC;EACH;EACAT,WAAW,CAACc,SAAS,CAACE,GAAG,CAACN,IAAI,CAAC;EAE/B,IACEV,WAAW,CAACiB,aAAa,IACzBvB,cAAc,CAACM,WAAW,CAACiB,aAAa,EAAEP,IAAI,CAAC,EAC/C;IAAA,IAAAQ,qBAAA;IACA,MAAMC,YAAY,IAAAD,qBAAA,GAAGlB,WAAW,CAACiB,aAAa,CAACP,IAAI,CAAC,CAACU,MAAM,cAAAF,qBAAA,cAAAA,qBAAA,GAAI,EAAE;IACjE,IAAIC,YAAY,CAACE,MAAM,GAAG,CAAC,EAAE;MAC3B,MAAMC,OAAO,GAAGtB,WAAW,CAACQ,SAAS,CAACe,cAAc;MACpD;MACA;MACA,MAAMC,cAAc,GAAG9B,cAAc,CAAC4B,OAAO,EAAE,aAAa,CAAC;MAC7D,OACEE,cAAc,GACV5B,sCAAsC,CACpCuB,YAAY,EACZG,OAAO,CAACG,WAAW,EACnBH,OAAO,CAACI,YAAY,EACpBJ,OAAO,CAACK,WACV,CAAC,GACDR,YAAY;IAEpB;EACF;EAEA,MAAMS,YAAY,GAAG/B,eAAe,CAACE,SAAS,CAAC8B,QAAQ,EAAE9B,SAAS,CAAC+B,KAAK,CAE3D;EACb,OAAO,EAAA1B,qBAAA,GAACwB,YAAY,aAAZA,YAAY,gBAAAvB,cAAA,GAAZuB,YAAY,CAAG,EAAE,CAAC,cAAAvB,cAAA,uBAAlBA,cAAA,CAAoBe,MAAM,cAAAhB,qBAAA,cAAAA,qBAAA,GAAI,EAAE,EAAE2B,OAAO,CAAEC,IAAI,IACrD/B,MAAM,CAAC+B,IAAI,EAAOhC,WAAW,CAC/B,CAAC;AACH","ignoreList":[]}
|
|
@@ -31,7 +31,7 @@ export function setupTemplateProxy(hostContext, ref, slots, slotted) {
|
|
|
31
31
|
}
|
|
32
32
|
const slotProxies = reversedProxies.slots.get(ref);
|
|
33
33
|
if (slotProxies && slotted) {
|
|
34
|
-
throw new Error(`Can not have proxied slot ref when the
|
|
34
|
+
throw new Error(`Can not have proxied slot ref when the ref target has a slot element child, check your template "${hostBrick.type}" and ref "${ref}"`);
|
|
35
35
|
}
|
|
36
36
|
if (slotProxies && externalSlots) {
|
|
37
37
|
// Use an approach like template-literal's quasis:
|
|
@@ -42,12 +42,12 @@ export function setupTemplateProxy(hostContext, ref, slots, slotted) {
|
|
|
42
42
|
from,
|
|
43
43
|
to
|
|
44
44
|
} of slotProxies) {
|
|
45
|
-
var _externalSlots$from;
|
|
46
|
-
const insertBricks = ((_externalSlots$from = externalSlots[from]) === null || _externalSlots$from === void 0 ? void 0 : _externalSlots$from.bricks)
|
|
45
|
+
var _externalSlots$from$b, _externalSlots$from, _to$refSlot, _to$refPosition;
|
|
46
|
+
const insertBricks = (_externalSlots$from$b = (_externalSlots$from = externalSlots[from]) === null || _externalSlots$from === void 0 ? void 0 : _externalSlots$from.bricks) !== null && _externalSlots$from$b !== void 0 ? _externalSlots$from$b : [];
|
|
47
47
|
if (!insertBricks.length) {
|
|
48
48
|
continue;
|
|
49
49
|
}
|
|
50
|
-
const refToSlot = to.refSlot
|
|
50
|
+
const refToSlot = (_to$refSlot = to.refSlot) !== null && _to$refSlot !== void 0 ? _to$refSlot : from;
|
|
51
51
|
let expandableSlot = quasisMap.get(refToSlot);
|
|
52
52
|
if (!expandableSlot) {
|
|
53
53
|
expandableSlot = [];
|
|
@@ -58,7 +58,7 @@ export function setupTemplateProxy(hostContext, ref, slots, slotted) {
|
|
|
58
58
|
}
|
|
59
59
|
quasisMap.set(refToSlot, expandableSlot);
|
|
60
60
|
}
|
|
61
|
-
const refPosition = to.refPosition
|
|
61
|
+
const refPosition = (_to$refPosition = to.refPosition) !== null && _to$refPosition !== void 0 ? _to$refPosition : -1;
|
|
62
62
|
// External bricks of a template, should not access the template internal forEach `ITEM`.
|
|
63
63
|
// For some existing templates who is *USING* this bug, we keep the old behavior.
|
|
64
64
|
const hostHasForEach = hasOwnProperty(hostBrick.runtimeContext, "forEachItem");
|
|
@@ -88,6 +88,7 @@ export function setupTemplateProxy(hostContext, ref, slots, slotted) {
|
|
|
88
88
|
// External bricks of a template, have the same forEachItem context as their host.
|
|
89
89
|
export function setupTemplateExternalBricksWithForEach(bricks, forEachItem, forEachIndex, forEachSize) {
|
|
90
90
|
return bricks.map(_ref2 => {
|
|
91
|
+
var _childrenToSlots;
|
|
91
92
|
let {
|
|
92
93
|
children,
|
|
93
94
|
slots,
|
|
@@ -99,7 +100,7 @@ export function setupTemplateExternalBricksWithForEach(bricks, forEachItem, forE
|
|
|
99
100
|
[symbolForTPlExternalForEachIndex]: forEachIndex,
|
|
100
101
|
[symbolForTPlExternalForEachSize]: forEachSize,
|
|
101
102
|
// Keep `:forEach` bricks as original, since they have their own forEachItem context.
|
|
102
|
-
slots: brick.brick === ":forEach" ? childrenToSlots(children, slots) : Object.fromEntries(Object.entries(childrenToSlots(children, slots)
|
|
103
|
+
slots: brick.brick === ":forEach" ? childrenToSlots(children, slots) : Object.fromEntries(Object.entries((_childrenToSlots = childrenToSlots(children, slots)) !== null && _childrenToSlots !== void 0 ? _childrenToSlots : {}).map(_ref3 => {
|
|
103
104
|
let [slotName, slotConf] = _ref3;
|
|
104
105
|
return [slotName, slotConf.type === "routes" ? {
|
|
105
106
|
type: "routes",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupTemplateProxy.js","names":["hasOwnProperty","clamp","symbolForAsyncComputedPropsFromHost","symbolForTPlExternalForEachIndex","symbolForTPlExternalForEachItem","symbolForTPlExternalForEachSize","symbolForTplStateStoreId","computePropertyValue","childrenToSlots","setupTemplateProxy","hostContext","ref","slots","slotted","reversedProxies","asyncHostPropertyEntries","externalSlots","tplStateStoreId","hostBrick","asyncComputedProps","propertyProxies","properties","get","getComputedProps","asyncHostProps","map","_ref","from","to","filtered","filter","entry","length","refProperty","Boolean","slotProxies","Error","type","quasisMap","Map","_externalSlots$from","insertBricks","bricks","refToSlot","refSlot","expandableSlot","size","i","push","set","refPosition","hostHasForEach","runtimeContext","setupTemplateExternalBricksWithForEach","forEachItem","forEachIndex","forEachSize","slotName","quasis","entries","slotConf","flatMap","index","concat","_ref2","children","brick","Object","fromEntries","_ref3","routes","setupTemplateExternalRoutesWithForEach","route"],"sources":["../../../../src/internal/CustomTemplates/setupTemplateProxy.ts"],"sourcesContent":["import type { BrickConf, RouteConf, SlotsConfOfBricks } from \"@next-core/types\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { clamp } from \"lodash\";\nimport {\n symbolForAsyncComputedPropsFromHost,\n symbolForTPlExternalForEachIndex,\n symbolForTPlExternalForEachItem,\n symbolForTPlExternalForEachSize,\n symbolForTplStateStoreId,\n type RuntimeBrickConfWithTplSymbols,\n} from \"./constants.js\";\nimport type { AsyncPropertyEntry, TemplateHostContext } from \"../interfaces.js\";\nimport { computePropertyValue } from \"../compute/computeRealProperties.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function setupTemplateProxy(\n hostContext: TemplateHostContext,\n ref: string | undefined,\n slots: SlotsConfOfBricks,\n slotted: boolean\n) {\n const {\n reversedProxies,\n asyncHostPropertyEntries,\n externalSlots,\n tplStateStoreId,\n hostBrick,\n } = hostContext;\n\n let asyncComputedProps: AsyncPropertyEntry[] | undefined;\n\n if (ref && reversedProxies) {\n const propertyProxies = reversedProxies.properties.get(ref);\n if (propertyProxies) {\n const getComputedProps = (\n asyncHostProps: AsyncPropertyEntry[]\n ): AsyncPropertyEntry[] => {\n return propertyProxies!\n .map(({ from, to }) => {\n const filtered = asyncHostProps.filter(\n (entry) => entry[0] === from\n );\n if (filtered.length > 0 && to.refProperty) {\n return [\n to.refProperty,\n computePropertyValue(filtered, from),\n true,\n ];\n }\n })\n .filter(Boolean) as [string, Promise<unknown>][];\n };\n\n asyncComputedProps = getComputedProps(asyncHostPropertyEntries);\n }\n\n const slotProxies = reversedProxies.slots.get(ref);\n\n if (slotProxies && slotted) {\n throw new Error(\n `Can not have proxied slot ref when the parent has a slot element child, check your template \"${hostBrick.type}\" and ref \"${ref}\"`\n );\n }\n\n if (slotProxies && externalSlots) {\n // Use an approach like template-literal's quasis:\n // `quasi0${0}quais1${1}quasi2...`\n // Every quasi (indexed by `refPosition`) can be slotted with multiple bricks.\n const quasisMap = new Map<string, BrickConf[][]>();\n\n for (const { from, to } of slotProxies) {\n const insertBricks = externalSlots[from]?.bricks ?? [];\n if (!insertBricks.length) {\n continue;\n }\n const refToSlot = to.refSlot ?? from;\n let expandableSlot = quasisMap.get(refToSlot);\n if (!expandableSlot) {\n expandableSlot = [];\n // The size of quasis should be the existed slotted bricks' size plus one.\n const size = hasOwnProperty(slots, refToSlot)\n ? slots[refToSlot].bricks.length + 1\n : 1;\n for (let i = 0; i < size; i += 1) {\n expandableSlot.push([]);\n }\n quasisMap.set(refToSlot, expandableSlot);\n }\n const refPosition = to.refPosition ?? -1;\n // External bricks of a template, should not access the template internal forEach `ITEM`.\n // For some existing templates who is *USING* this bug, we keep the old behavior.\n const hostHasForEach = hasOwnProperty(\n hostBrick.runtimeContext,\n \"forEachItem\"\n );\n expandableSlot[\n clamp(\n refPosition < 0 ? expandableSlot.length + refPosition : refPosition,\n 0,\n expandableSlot.length - 1\n )\n ].push(\n ...(!hostHasForEach\n ? insertBricks\n : setupTemplateExternalBricksWithForEach(\n insertBricks,\n hostBrick.runtimeContext.forEachItem,\n hostBrick.runtimeContext.forEachIndex!,\n hostBrick.runtimeContext.forEachSize!\n ))\n );\n }\n\n for (const [slotName, quasis] of quasisMap.entries()) {\n if (!hasOwnProperty(slots, slotName)) {\n slots[slotName] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n const slotConf = slots[slotName];\n slotConf.bricks = quasis.flatMap((bricks, index) =>\n index < slotConf.bricks.length\n ? bricks.concat(slotConf.bricks[index])\n : bricks\n );\n\n if (slotConf.bricks.length === 0) {\n delete slots[slotName];\n }\n }\n }\n }\n\n return {\n [symbolForAsyncComputedPropsFromHost]: asyncComputedProps,\n [symbolForTplStateStoreId]: tplStateStoreId,\n };\n}\n\n// External bricks of a template, have the same forEachItem context as their host.\nexport function setupTemplateExternalBricksWithForEach(\n bricks: BrickConf[],\n forEachItem: unknown,\n forEachIndex: number,\n forEachSize: number\n): BrickConf[] {\n return (bricks as RuntimeBrickConfWithTplSymbols[]).map(\n ({ children, slots, ...brick }) => ({\n ...brick,\n [symbolForTPlExternalForEachItem]: forEachItem,\n [symbolForTPlExternalForEachIndex]: forEachIndex,\n [symbolForTPlExternalForEachSize]: forEachSize,\n // Keep `:forEach` bricks as original, since they have their own forEachItem context.\n slots:\n brick.brick === \":forEach\"\n ? childrenToSlots(children, slots)\n : Object.fromEntries(\n Object.entries(childrenToSlots(children, slots) ?? {}).map(\n ([slotName, slotConf]) => [\n slotName,\n slotConf.type === \"routes\"\n ? {\n type: \"routes\",\n routes: setupTemplateExternalRoutesWithForEach(\n slotConf.routes,\n forEachItem,\n forEachIndex,\n forEachSize\n ),\n }\n : {\n type: \"bricks\",\n bricks: setupTemplateExternalBricksWithForEach(\n slotConf.bricks,\n forEachItem,\n forEachIndex,\n forEachSize\n ),\n },\n ]\n )\n ),\n })\n );\n}\n\nfunction setupTemplateExternalRoutesWithForEach(\n routes: RouteConf[],\n forEachItem: unknown,\n forEachIndex: number,\n forEachSize: number\n): RouteConf[] {\n return routes.map((route) =>\n route.type === \"routes\"\n ? {\n ...route,\n routes: setupTemplateExternalRoutesWithForEach(\n route.routes,\n forEachItem,\n forEachIndex,\n forEachSize\n ),\n }\n : route.type === \"redirect\"\n ? route\n : {\n ...route,\n bricks: setupTemplateExternalBricksWithForEach(\n route.bricks,\n forEachItem,\n forEachIndex,\n forEachSize\n ),\n }\n );\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"setupTemplateProxy.js","names":["hasOwnProperty","clamp","symbolForAsyncComputedPropsFromHost","symbolForTPlExternalForEachIndex","symbolForTPlExternalForEachItem","symbolForTPlExternalForEachSize","symbolForTplStateStoreId","computePropertyValue","childrenToSlots","setupTemplateProxy","hostContext","ref","slots","slotted","reversedProxies","asyncHostPropertyEntries","externalSlots","tplStateStoreId","hostBrick","asyncComputedProps","propertyProxies","properties","get","getComputedProps","asyncHostProps","map","_ref","from","to","filtered","filter","entry","length","refProperty","Boolean","slotProxies","Error","type","quasisMap","Map","_externalSlots$from$b","_externalSlots$from","_to$refSlot","_to$refPosition","insertBricks","bricks","refToSlot","refSlot","expandableSlot","size","i","push","set","refPosition","hostHasForEach","runtimeContext","setupTemplateExternalBricksWithForEach","forEachItem","forEachIndex","forEachSize","slotName","quasis","entries","slotConf","flatMap","index","concat","_ref2","_childrenToSlots","children","brick","Object","fromEntries","_ref3","routes","setupTemplateExternalRoutesWithForEach","route"],"sources":["../../../../src/internal/CustomTemplates/setupTemplateProxy.ts"],"sourcesContent":["import type { BrickConf, RouteConf, SlotsConfOfBricks } from \"@next-core/types\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { clamp } from \"lodash\";\nimport {\n symbolForAsyncComputedPropsFromHost,\n symbolForTPlExternalForEachIndex,\n symbolForTPlExternalForEachItem,\n symbolForTPlExternalForEachSize,\n symbolForTplStateStoreId,\n type RuntimeBrickConfWithTplSymbols,\n} from \"./constants.js\";\nimport type { AsyncPropertyEntry, TemplateHostContext } from \"../interfaces.js\";\nimport { computePropertyValue } from \"../compute/computeRealProperties.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\n\nexport function setupTemplateProxy(\n hostContext: TemplateHostContext,\n ref: string | undefined,\n slots: SlotsConfOfBricks,\n slotted: boolean\n) {\n const {\n reversedProxies,\n asyncHostPropertyEntries,\n externalSlots,\n tplStateStoreId,\n hostBrick,\n } = hostContext;\n\n let asyncComputedProps: AsyncPropertyEntry[] | undefined;\n\n if (ref && reversedProxies) {\n const propertyProxies = reversedProxies.properties.get(ref);\n if (propertyProxies) {\n const getComputedProps = (\n asyncHostProps: AsyncPropertyEntry[]\n ): AsyncPropertyEntry[] => {\n return propertyProxies!\n .map(({ from, to }) => {\n const filtered = asyncHostProps.filter(\n (entry) => entry[0] === from\n );\n if (filtered.length > 0 && to.refProperty) {\n return [\n to.refProperty,\n computePropertyValue(filtered, from),\n true,\n ];\n }\n })\n .filter(Boolean) as [string, Promise<unknown>][];\n };\n\n asyncComputedProps = getComputedProps(asyncHostPropertyEntries);\n }\n\n const slotProxies = reversedProxies.slots.get(ref);\n\n if (slotProxies && slotted) {\n throw new Error(\n `Can not have proxied slot ref when the ref target has a slot element child, check your template \"${hostBrick.type}\" and ref \"${ref}\"`\n );\n }\n\n if (slotProxies && externalSlots) {\n // Use an approach like template-literal's quasis:\n // `quasi0${0}quais1${1}quasi2...`\n // Every quasi (indexed by `refPosition`) can be slotted with multiple bricks.\n const quasisMap = new Map<string, BrickConf[][]>();\n\n for (const { from, to } of slotProxies) {\n const insertBricks = externalSlots[from]?.bricks ?? [];\n if (!insertBricks.length) {\n continue;\n }\n const refToSlot = to.refSlot ?? from;\n let expandableSlot = quasisMap.get(refToSlot);\n if (!expandableSlot) {\n expandableSlot = [];\n // The size of quasis should be the existed slotted bricks' size plus one.\n const size = hasOwnProperty(slots, refToSlot)\n ? slots[refToSlot].bricks.length + 1\n : 1;\n for (let i = 0; i < size; i += 1) {\n expandableSlot.push([]);\n }\n quasisMap.set(refToSlot, expandableSlot);\n }\n const refPosition = to.refPosition ?? -1;\n // External bricks of a template, should not access the template internal forEach `ITEM`.\n // For some existing templates who is *USING* this bug, we keep the old behavior.\n const hostHasForEach = hasOwnProperty(\n hostBrick.runtimeContext,\n \"forEachItem\"\n );\n expandableSlot[\n clamp(\n refPosition < 0 ? expandableSlot.length + refPosition : refPosition,\n 0,\n expandableSlot.length - 1\n )\n ].push(\n ...(!hostHasForEach\n ? insertBricks\n : setupTemplateExternalBricksWithForEach(\n insertBricks,\n hostBrick.runtimeContext.forEachItem,\n hostBrick.runtimeContext.forEachIndex!,\n hostBrick.runtimeContext.forEachSize!\n ))\n );\n }\n\n for (const [slotName, quasis] of quasisMap.entries()) {\n if (!hasOwnProperty(slots, slotName)) {\n slots[slotName] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n const slotConf = slots[slotName];\n slotConf.bricks = quasis.flatMap((bricks, index) =>\n index < slotConf.bricks.length\n ? bricks.concat(slotConf.bricks[index])\n : bricks\n );\n\n if (slotConf.bricks.length === 0) {\n delete slots[slotName];\n }\n }\n }\n }\n\n return {\n [symbolForAsyncComputedPropsFromHost]: asyncComputedProps,\n [symbolForTplStateStoreId]: tplStateStoreId,\n };\n}\n\n// External bricks of a template, have the same forEachItem context as their host.\nexport function setupTemplateExternalBricksWithForEach(\n bricks: BrickConf[],\n forEachItem: unknown,\n forEachIndex: number,\n forEachSize: number\n): BrickConf[] {\n return (bricks as RuntimeBrickConfWithTplSymbols[]).map(\n ({ children, slots, ...brick }) => ({\n ...brick,\n [symbolForTPlExternalForEachItem]: forEachItem,\n [symbolForTPlExternalForEachIndex]: forEachIndex,\n [symbolForTPlExternalForEachSize]: forEachSize,\n // Keep `:forEach` bricks as original, since they have their own forEachItem context.\n slots:\n brick.brick === \":forEach\"\n ? childrenToSlots(children, slots)\n : Object.fromEntries(\n Object.entries(childrenToSlots(children, slots) ?? {}).map(\n ([slotName, slotConf]) => [\n slotName,\n slotConf.type === \"routes\"\n ? {\n type: \"routes\",\n routes: setupTemplateExternalRoutesWithForEach(\n slotConf.routes,\n forEachItem,\n forEachIndex,\n forEachSize\n ),\n }\n : {\n type: \"bricks\",\n bricks: setupTemplateExternalBricksWithForEach(\n slotConf.bricks,\n forEachItem,\n forEachIndex,\n forEachSize\n ),\n },\n ]\n )\n ),\n })\n );\n}\n\nfunction setupTemplateExternalRoutesWithForEach(\n routes: RouteConf[],\n forEachItem: unknown,\n forEachIndex: number,\n forEachSize: number\n): RouteConf[] {\n return routes.map((route) =>\n route.type === \"routes\"\n ? {\n ...route,\n routes: setupTemplateExternalRoutesWithForEach(\n route.routes,\n forEachItem,\n forEachIndex,\n forEachSize\n ),\n }\n : route.type === \"redirect\"\n ? route\n : {\n ...route,\n bricks: setupTemplateExternalBricksWithForEach(\n route.bricks,\n forEachItem,\n forEachIndex,\n forEachSize\n ),\n }\n );\n}\n"],"mappings":"AACA,SAASA,cAAc,QAAQ,0BAA0B;AACzD,SAASC,KAAK,QAAQ,QAAQ;AAC9B,SACEC,mCAAmC,EACnCC,gCAAgC,EAChCC,+BAA+B,EAC/BC,+BAA+B,EAC/BC,wBAAwB,QAEnB,gBAAgB;AAEvB,SAASC,oBAAoB,QAAQ,qCAAqC;AAC1E,SAASC,eAAe,QAAQ,gBAAgB;AAEhD,OAAO,SAASC,kBAAkBA,CAChCC,WAAgC,EAChCC,GAAuB,EACvBC,KAAwB,EACxBC,OAAgB,EAChB;EACA,MAAM;IACJC,eAAe;IACfC,wBAAwB;IACxBC,aAAa;IACbC,eAAe;IACfC;EACF,CAAC,GAAGR,WAAW;EAEf,IAAIS,kBAAoD;EAExD,IAAIR,GAAG,IAAIG,eAAe,EAAE;IAC1B,MAAMM,eAAe,GAAGN,eAAe,CAACO,UAAU,CAACC,GAAG,CAACX,GAAG,CAAC;IAC3D,IAAIS,eAAe,EAAE;MACnB,MAAMG,gBAAgB,GACpBC,cAAoC,IACX;QACzB,OAAOJ,eAAe,CACnBK,GAAG,CAACC,IAAA,IAAkB;UAAA,IAAjB;YAAEC,IAAI;YAAEC;UAAG,CAAC,GAAAF,IAAA;UAChB,MAAMG,QAAQ,GAAGL,cAAc,CAACM,MAAM,CACnCC,KAAK,IAAKA,KAAK,CAAC,CAAC,CAAC,KAAKJ,IAC1B,CAAC;UACD,IAAIE,QAAQ,CAACG,MAAM,GAAG,CAAC,IAAIJ,EAAE,CAACK,WAAW,EAAE;YACzC,OAAO,CACLL,EAAE,CAACK,WAAW,EACd1B,oBAAoB,CAACsB,QAAQ,EAAEF,IAAI,CAAC,EACpC,IAAI,CACL;UACH;QACF,CAAC,CAAC,CACDG,MAAM,CAACI,OAAO,CAAC;MACpB,CAAC;MAEDf,kBAAkB,GAAGI,gBAAgB,CAACR,wBAAwB,CAAC;IACjE;IAEA,MAAMoB,WAAW,GAAGrB,eAAe,CAACF,KAAK,CAACU,GAAG,CAACX,GAAG,CAAC;IAElD,IAAIwB,WAAW,IAAItB,OAAO,EAAE;MAC1B,MAAM,IAAIuB,KAAK,CACb,oGAAoGlB,SAAS,CAACmB,IAAI,cAAc1B,GAAG,GACrI,CAAC;IACH;IAEA,IAAIwB,WAAW,IAAInB,aAAa,EAAE;MAChC;MACA;MACA;MACA,MAAMsB,SAAS,GAAG,IAAIC,GAAG,CAAwB,CAAC;MAElD,KAAK,MAAM;QAAEZ,IAAI;QAAEC;MAAG,CAAC,IAAIO,WAAW,EAAE;QAAA,IAAAK,qBAAA,EAAAC,mBAAA,EAAAC,WAAA,EAAAC,eAAA;QACtC,MAAMC,YAAY,IAAAJ,qBAAA,IAAAC,mBAAA,GAAGzB,aAAa,CAACW,IAAI,CAAC,cAAAc,mBAAA,uBAAnBA,mBAAA,CAAqBI,MAAM,cAAAL,qBAAA,cAAAA,qBAAA,GAAI,EAAE;QACtD,IAAI,CAACI,YAAY,CAACZ,MAAM,EAAE;UACxB;QACF;QACA,MAAMc,SAAS,IAAAJ,WAAA,GAAGd,EAAE,CAACmB,OAAO,cAAAL,WAAA,cAAAA,WAAA,GAAIf,IAAI;QACpC,IAAIqB,cAAc,GAAGV,SAAS,CAAChB,GAAG,CAACwB,SAAS,CAAC;QAC7C,IAAI,CAACE,cAAc,EAAE;UACnBA,cAAc,GAAG,EAAE;UACnB;UACA,MAAMC,IAAI,GAAGjD,cAAc,CAACY,KAAK,EAAEkC,SAAS,CAAC,GACzClC,KAAK,CAACkC,SAAS,CAAC,CAACD,MAAM,CAACb,MAAM,GAAG,CAAC,GAClC,CAAC;UACL,KAAK,IAAIkB,CAAC,GAAG,CAAC,EAAEA,CAAC,GAAGD,IAAI,EAAEC,CAAC,IAAI,CAAC,EAAE;YAChCF,cAAc,CAACG,IAAI,CAAC,EAAE,CAAC;UACzB;UACAb,SAAS,CAACc,GAAG,CAACN,SAAS,EAAEE,cAAc,CAAC;QAC1C;QACA,MAAMK,WAAW,IAAAV,eAAA,GAAGf,EAAE,CAACyB,WAAW,cAAAV,eAAA,cAAAA,eAAA,GAAI,CAAC,CAAC;QACxC;QACA;QACA,MAAMW,cAAc,GAAGtD,cAAc,CACnCkB,SAAS,CAACqC,cAAc,EACxB,aACF,CAAC;QACDP,cAAc,CACZ/C,KAAK,CACHoD,WAAW,GAAG,CAAC,GAAGL,cAAc,CAAChB,MAAM,GAAGqB,WAAW,GAAGA,WAAW,EACnE,CAAC,EACDL,cAAc,CAAChB,MAAM,GAAG,CAC1B,CAAC,CACF,CAACmB,IAAI,CACJ,IAAI,CAACG,cAAc,GACfV,YAAY,GACZY,sCAAsC,CACpCZ,YAAY,EACZ1B,SAAS,CAACqC,cAAc,CAACE,WAAW,EACpCvC,SAAS,CAACqC,cAAc,CAACG,YAAY,EACrCxC,SAAS,CAACqC,cAAc,CAACI,WAC3B,CAAC,CACP,CAAC;MACH;MAEA,KAAK,MAAM,CAACC,QAAQ,EAAEC,MAAM,CAAC,IAAIvB,SAAS,CAACwB,OAAO,CAAC,CAAC,EAAE;QACpD,IAAI,CAAC9D,cAAc,CAACY,KAAK,EAAEgD,QAAQ,CAAC,EAAE;UACpChD,KAAK,CAACgD,QAAQ,CAAC,GAAG;YAChBvB,IAAI,EAAE,QAAQ;YACdQ,MAAM,EAAE;UACV,CAAC;QACH;QACA,MAAMkB,QAAQ,GAAGnD,KAAK,CAACgD,QAAQ,CAAC;QAChCG,QAAQ,CAAClB,MAAM,GAAGgB,MAAM,CAACG,OAAO,CAAC,CAACnB,MAAM,EAAEoB,KAAK,KAC7CA,KAAK,GAAGF,QAAQ,CAAClB,MAAM,CAACb,MAAM,GAC1Ba,MAAM,CAACqB,MAAM,CAACH,QAAQ,CAAClB,MAAM,CAACoB,KAAK,CAAC,CAAC,GACrCpB,MACN,CAAC;QAED,IAAIkB,QAAQ,CAAClB,MAAM,CAACb,MAAM,KAAK,CAAC,EAAE;UAChC,OAAOpB,KAAK,CAACgD,QAAQ,CAAC;QACxB;MACF;IACF;EACF;EAEA,OAAO;IACL,CAAC1D,mCAAmC,GAAGiB,kBAAkB;IACzD,CAACb,wBAAwB,GAAGW;EAC9B,CAAC;AACH;;AAEA;AACA,OAAO,SAASuC,sCAAsCA,CACpDX,MAAmB,EACnBY,WAAoB,EACpBC,YAAoB,EACpBC,WAAmB,EACN;EACb,OAAQd,MAAM,CAAsCpB,GAAG,CACrD0C,KAAA;IAAA,IAAAC,gBAAA;IAAA,IAAC;MAAEC,QAAQ;MAAEzD,KAAK;MAAE,GAAG0D;IAAM,CAAC,GAAAH,KAAA;IAAA,OAAM;MAClC,GAAGG,KAAK;MACR,CAAClE,+BAA+B,GAAGqD,WAAW;MAC9C,CAACtD,gCAAgC,GAAGuD,YAAY;MAChD,CAACrD,+BAA+B,GAAGsD,WAAW;MAC9C;MACA/C,KAAK,EACH0D,KAAK,CAACA,KAAK,KAAK,UAAU,GACtB9D,eAAe,CAAC6D,QAAQ,EAAEzD,KAAK,CAAC,GAChC2D,MAAM,CAACC,WAAW,CAChBD,MAAM,CAACT,OAAO,EAAAM,gBAAA,GAAC5D,eAAe,CAAC6D,QAAQ,EAAEzD,KAAK,CAAC,cAAAwD,gBAAA,cAAAA,gBAAA,GAAI,CAAC,CAAC,CAAC,CAAC3C,GAAG,CACxDgD,KAAA;QAAA,IAAC,CAACb,QAAQ,EAAEG,QAAQ,CAAC,GAAAU,KAAA;QAAA,OAAK,CACxBb,QAAQ,EACRG,QAAQ,CAAC1B,IAAI,KAAK,QAAQ,GACtB;UACEA,IAAI,EAAE,QAAQ;UACdqC,MAAM,EAAEC,sCAAsC,CAC5CZ,QAAQ,CAACW,MAAM,EACfjB,WAAW,EACXC,YAAY,EACZC,WACF;QACF,CAAC,GACD;UACEtB,IAAI,EAAE,QAAQ;UACdQ,MAAM,EAAEW,sCAAsC,CAC5CO,QAAQ,CAAClB,MAAM,EACfY,WAAW,EACXC,YAAY,EACZC,WACF;QACF,CAAC,CACN;MAAA,CACH,CACF;IACR,CAAC;EAAA,CACH,CAAC;AACH;AAEA,SAASgB,sCAAsCA,CAC7CD,MAAmB,EACnBjB,WAAoB,EACpBC,YAAoB,EACpBC,WAAmB,EACN;EACb,OAAOe,MAAM,CAACjD,GAAG,CAAEmD,KAAK,IACtBA,KAAK,CAACvC,IAAI,KAAK,QAAQ,GACnB;IACE,GAAGuC,KAAK;IACRF,MAAM,EAAEC,sCAAsC,CAC5CC,KAAK,CAACF,MAAM,EACZjB,WAAW,EACXC,YAAY,EACZC,WACF;EACF,CAAC,GACDiB,KAAK,CAACvC,IAAI,KAAK,UAAU,GACvBuC,KAAK,GACL;IACE,GAAGA,KAAK;IACR/B,MAAM,EAAEW,sCAAsC,CAC5CoB,KAAK,CAAC/B,MAAM,EACZY,WAAW,EACXC,YAAY,EACZC,WACF;EACF,CACR,CAAC;AACH","ignoreList":[]}
|
|
@@ -31,11 +31,12 @@ export function setupUseBrickInTemplate(props, hostContext) {
|
|
|
31
31
|
const markChild = () => {
|
|
32
32
|
slotted = true;
|
|
33
33
|
};
|
|
34
|
-
const slots = Object.fromEntries(Object.entries(transpiledSlots
|
|
34
|
+
const slots = Object.fromEntries(Object.entries(transpiledSlots !== null && transpiledSlots !== void 0 ? transpiledSlots : {}).map(_ref2 => {
|
|
35
|
+
var _slotConf$bricks;
|
|
35
36
|
let [slotName, slotConf] = _ref2;
|
|
36
37
|
return [slotName, {
|
|
37
38
|
type: "bricks",
|
|
38
|
-
bricks: (slotConf.bricks
|
|
39
|
+
bricks: ((_slotConf$bricks = slotConf.bricks) !== null && _slotConf$bricks !== void 0 ? _slotConf$bricks : []).flatMap(it => setup(it, markChild))
|
|
39
40
|
}];
|
|
40
41
|
}));
|
|
41
42
|
return {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setupUseBrickInTemplate.js","names":["isObject","setupTemplateProxy","childrenToSlots","replaceSlotWithSlottedBricks","setupUseBrickInTemplate","props","hostContext","walk","Array","isArray","map","Object","fromEntries","entries","_ref","key","value","flatMap","v","setup","concat","getOwnPropertySymbols","k","item","markSlotted","brick","it","properties","slots","originalSlots","children","restConf","transpiledSlots","slotted","markChild","_ref2","slotName","slotConf","type","bricks","ref"],"sources":["../../../../src/internal/CustomTemplates/setupUseBrickInTemplate.ts"],"sourcesContent":["import type {\n UseBrickSlotConf,\n UseBrickSlotsConf,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { TemplateHostContext } from \"../interfaces.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { replaceSlotWithSlottedBricks } from \"./replaceSlotWithSlottedBricks.js\";\n\nexport function setupUseBrickInTemplate<T>(\n props: T,\n hostContext: TemplateHostContext\n): T {\n function walk<P>(props: P): P {\n if (!isObject(props) || typeof props === \"function\") {\n return props;\n }\n\n if (Array.isArray(props)) {\n return props.map(walk) as P;\n }\n\n return Object.fromEntries(\n Object.entries(props)\n .map(([key, value]) =>\n isObject(value) && key === \"useBrick\"\n ? Array.isArray(value)\n ? [key, value.flatMap((v) => setup(v))]\n : [key, setup(value as UseSingleBrickConf)]\n : [key, walk(value)]\n )\n .concat(\n Object.getOwnPropertySymbols(props).map((k) => [\n k,\n (props as Record<string | symbol, unknown>)[k],\n ])\n )\n ) as P;\n }\n\n function setup(\n item: UseSingleBrickConf,\n markSlotted?: () => void\n ): UseSingleBrickConf | UseSingleBrickConf[] {\n if (item.brick === \"slot\") {\n markSlotted?.();\n return replaceSlotWithSlottedBricks(item, hostContext, (it) => setup(it));\n }\n\n const { properties, slots: originalSlots, children, ...restConf } = item;\n\n const transpiledSlots = childrenToSlots(children, originalSlots) as\n | UseBrickSlotsConf\n | undefined;\n\n let slotted = false;\n const markChild = () => {\n slotted = true;\n };\n const slots = Object.fromEntries<UseBrickSlotConf>(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).flatMap((it) => setup(it, markChild)),\n },\n ])\n );\n\n return {\n ...restConf,\n properties: walk(properties),\n slots,\n ...setupTemplateProxy(hostContext, restConf.ref, slots, slotted),\n };\n }\n\n return walk(props);\n}\n"],"mappings":"AAKA,SAASA,QAAQ,QAAQ,0BAA0B;AAEnD,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,eAAe,QAAQ,gBAAgB;AAChD,SAASC,4BAA4B,QAAQ,mCAAmC;AAEhF,OAAO,SAASC,uBAAuBA,CACrCC,KAAQ,EACRC,WAAgC,EAC7B;EACH,SAASC,IAAIA,CAAIF,KAAQ,EAAK;IAC5B,IAAI,CAACL,QAAQ,CAACK,KAAK,CAAC,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;MACnD,OAAOA,KAAK;IACd;IAEA,IAAIG,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;MACxB,OAAOA,KAAK,CAACK,GAAG,CAACH,IAAI,CAAC;IACxB;IAEA,OAAOI,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACR,KAAK,CAAC,CAClBK,GAAG,CAACI,IAAA;MAAA,IAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAAF,IAAA;MAAA,OAChBd,QAAQ,CAACgB,KAAK,CAAC,IAAID,GAAG,KAAK,UAAU,GACjCP,KAAK,CAACC,OAAO,CAACO,KAAK,CAAC,GAClB,CAACD,GAAG,EAAEC,KAAK,CAACC,OAAO,CAAEC,CAAC,IAAKC,KAAK,CAACD,CAAC,CAAC,CAAC,CAAC,GACrC,CAACH,GAAG,EAAEI,KAAK,CAACH,KAA2B,CAAC,CAAC,GAC3C,CAACD,GAAG,EAAER,IAAI,CAACS,KAAK,CAAC,CAAC;IAAA,CACxB,CAAC,CACAI,MAAM,CACLT,MAAM,CAACU,qBAAqB,CAAChB,KAAK,CAAC,CAACK,GAAG,CAAEY,CAAC,IAAK,CAC7CA,CAAC,EACAjB,KAAK,CAAsCiB,CAAC,CAAC,CAC/C,CACH,CACJ,CAAC;EACH;EAEA,SAASH,KAAKA,CACZI,IAAwB,EACxBC,WAAwB,EACmB;IAC3C,IAAID,IAAI,CAACE,KAAK,KAAK,MAAM,EAAE;MACzBD,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAG,CAAC;MACf,OAAOrB,4BAA4B,CAACoB,IAAI,EAAEjB,WAAW,EAAGoB,EAAE,IAAKP,KAAK,CAACO,EAAE,CAAC,CAAC;IAC3E;IAEA,MAAM;MAAEC,UAAU;MAAEC,KAAK,EAAEC,aAAa;MAAEC,QAAQ;MAAE,GAAGC;IAAS,CAAC,GAAGR,IAAI;IAExE,MAAMS,eAAe,GAAG9B,eAAe,CAAC4B,QAAQ,EAAED,aAAa,CAElD;IAEb,IAAII,OAAO,GAAG,KAAK;IACnB,MAAMC,SAAS,GAAGA,CAAA,KAAM;MACtBD,OAAO,GAAG,IAAI;IAChB,CAAC;IACD,MAAML,KAAK,GAAGjB,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACE,OAAO,CAACmB,eAAe,
|
|
1
|
+
{"version":3,"file":"setupUseBrickInTemplate.js","names":["isObject","setupTemplateProxy","childrenToSlots","replaceSlotWithSlottedBricks","setupUseBrickInTemplate","props","hostContext","walk","Array","isArray","map","Object","fromEntries","entries","_ref","key","value","flatMap","v","setup","concat","getOwnPropertySymbols","k","item","markSlotted","brick","it","properties","slots","originalSlots","children","restConf","transpiledSlots","slotted","markChild","_ref2","_slotConf$bricks","slotName","slotConf","type","bricks","ref"],"sources":["../../../../src/internal/CustomTemplates/setupUseBrickInTemplate.ts"],"sourcesContent":["import type {\n UseBrickSlotConf,\n UseBrickSlotsConf,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { isObject } from \"@next-core/utils/general\";\nimport type { TemplateHostContext } from \"../interfaces.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { replaceSlotWithSlottedBricks } from \"./replaceSlotWithSlottedBricks.js\";\n\nexport function setupUseBrickInTemplate<T>(\n props: T,\n hostContext: TemplateHostContext\n): T {\n function walk<P>(props: P): P {\n if (!isObject(props) || typeof props === \"function\") {\n return props;\n }\n\n if (Array.isArray(props)) {\n return props.map(walk) as P;\n }\n\n return Object.fromEntries(\n Object.entries(props)\n .map(([key, value]) =>\n isObject(value) && key === \"useBrick\"\n ? Array.isArray(value)\n ? [key, value.flatMap((v) => setup(v))]\n : [key, setup(value as UseSingleBrickConf)]\n : [key, walk(value)]\n )\n .concat(\n Object.getOwnPropertySymbols(props).map((k) => [\n k,\n (props as Record<string | symbol, unknown>)[k],\n ])\n )\n ) as P;\n }\n\n function setup(\n item: UseSingleBrickConf,\n markSlotted?: () => void\n ): UseSingleBrickConf | UseSingleBrickConf[] {\n if (item.brick === \"slot\") {\n markSlotted?.();\n return replaceSlotWithSlottedBricks(item, hostContext, (it) => setup(it));\n }\n\n const { properties, slots: originalSlots, children, ...restConf } = item;\n\n const transpiledSlots = childrenToSlots(children, originalSlots) as\n | UseBrickSlotsConf\n | undefined;\n\n let slotted = false;\n const markChild = () => {\n slotted = true;\n };\n const slots = Object.fromEntries<UseBrickSlotConf>(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).flatMap((it) => setup(it, markChild)),\n },\n ])\n );\n\n return {\n ...restConf,\n properties: walk(properties),\n slots,\n ...setupTemplateProxy(hostContext, restConf.ref, slots, slotted),\n };\n }\n\n return walk(props);\n}\n"],"mappings":"AAKA,SAASA,QAAQ,QAAQ,0BAA0B;AAEnD,SAASC,kBAAkB,QAAQ,yBAAyB;AAC5D,SAASC,eAAe,QAAQ,gBAAgB;AAChD,SAASC,4BAA4B,QAAQ,mCAAmC;AAEhF,OAAO,SAASC,uBAAuBA,CACrCC,KAAQ,EACRC,WAAgC,EAC7B;EACH,SAASC,IAAIA,CAAIF,KAAQ,EAAK;IAC5B,IAAI,CAACL,QAAQ,CAACK,KAAK,CAAC,IAAI,OAAOA,KAAK,KAAK,UAAU,EAAE;MACnD,OAAOA,KAAK;IACd;IAEA,IAAIG,KAAK,CAACC,OAAO,CAACJ,KAAK,CAAC,EAAE;MACxB,OAAOA,KAAK,CAACK,GAAG,CAACH,IAAI,CAAC;IACxB;IAEA,OAAOI,MAAM,CAACC,WAAW,CACvBD,MAAM,CAACE,OAAO,CAACR,KAAK,CAAC,CAClBK,GAAG,CAACI,IAAA;MAAA,IAAC,CAACC,GAAG,EAAEC,KAAK,CAAC,GAAAF,IAAA;MAAA,OAChBd,QAAQ,CAACgB,KAAK,CAAC,IAAID,GAAG,KAAK,UAAU,GACjCP,KAAK,CAACC,OAAO,CAACO,KAAK,CAAC,GAClB,CAACD,GAAG,EAAEC,KAAK,CAACC,OAAO,CAAEC,CAAC,IAAKC,KAAK,CAACD,CAAC,CAAC,CAAC,CAAC,GACrC,CAACH,GAAG,EAAEI,KAAK,CAACH,KAA2B,CAAC,CAAC,GAC3C,CAACD,GAAG,EAAER,IAAI,CAACS,KAAK,CAAC,CAAC;IAAA,CACxB,CAAC,CACAI,MAAM,CACLT,MAAM,CAACU,qBAAqB,CAAChB,KAAK,CAAC,CAACK,GAAG,CAAEY,CAAC,IAAK,CAC7CA,CAAC,EACAjB,KAAK,CAAsCiB,CAAC,CAAC,CAC/C,CACH,CACJ,CAAC;EACH;EAEA,SAASH,KAAKA,CACZI,IAAwB,EACxBC,WAAwB,EACmB;IAC3C,IAAID,IAAI,CAACE,KAAK,KAAK,MAAM,EAAE;MACzBD,WAAW,aAAXA,WAAW,eAAXA,WAAW,CAAG,CAAC;MACf,OAAOrB,4BAA4B,CAACoB,IAAI,EAAEjB,WAAW,EAAGoB,EAAE,IAAKP,KAAK,CAACO,EAAE,CAAC,CAAC;IAC3E;IAEA,MAAM;MAAEC,UAAU;MAAEC,KAAK,EAAEC,aAAa;MAAEC,QAAQ;MAAE,GAAGC;IAAS,CAAC,GAAGR,IAAI;IAExE,MAAMS,eAAe,GAAG9B,eAAe,CAAC4B,QAAQ,EAAED,aAAa,CAElD;IAEb,IAAII,OAAO,GAAG,KAAK;IACnB,MAAMC,SAAS,GAAGA,CAAA,KAAM;MACtBD,OAAO,GAAG,IAAI;IAChB,CAAC;IACD,MAAML,KAAK,GAAGjB,MAAM,CAACC,WAAW,CAC9BD,MAAM,CAACE,OAAO,CAACmB,eAAe,aAAfA,eAAe,cAAfA,eAAe,GAAI,CAAC,CAAC,CAAC,CAACtB,GAAG,CAACyB,KAAA;MAAA,IAAAC,gBAAA;MAAA,IAAC,CAACC,QAAQ,EAAEC,QAAQ,CAAC,GAAAH,KAAA;MAAA,OAAK,CAClEE,QAAQ,EACR;QACEE,IAAI,EAAE,QAAQ;QACdC,MAAM,EAAE,EAAAJ,gBAAA,GAACE,QAAQ,CAACE,MAAM,cAAAJ,gBAAA,cAAAA,gBAAA,GAAI,EAAE,EAAEnB,OAAO,CAAES,EAAE,IAAKP,KAAK,CAACO,EAAE,EAAEQ,SAAS,CAAC;MACtE,CAAC,CACF;IAAA,EACH,CAAC;IAED,OAAO;MACL,GAAGH,QAAQ;MACXJ,UAAU,EAAEpB,IAAI,CAACoB,UAAU,CAAC;MAC5BC,KAAK;MACL,GAAG3B,kBAAkB,CAACK,WAAW,EAAEyB,QAAQ,CAACU,GAAG,EAAEb,KAAK,EAAEK,OAAO;IACjE,CAAC;EACH;EAEA,OAAO1B,IAAI,CAACF,KAAK,CAAC;AACpB","ignoreList":[]}
|
|
@@ -5,11 +5,11 @@ export function getTplStateStore(_ref, using, extraInfo) {
|
|
|
5
5
|
tplStateStoreMap
|
|
6
6
|
} = _ref;
|
|
7
7
|
if (!tplStateStoreId) {
|
|
8
|
-
throw new Error(`Using "${using}" outside of a custom template${extraInfo
|
|
8
|
+
throw new Error(`Using "${using}" outside of a custom template${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}`);
|
|
9
9
|
}
|
|
10
10
|
const store = tplStateStoreMap.get(tplStateStoreId);
|
|
11
11
|
if (!store) {
|
|
12
|
-
throw new Error(`Template state store is not found when using "${using}"${extraInfo
|
|
12
|
+
throw new Error(`Template state store is not found when using "${using}"${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}.\nThis is a bug of Brick Next, please report it.`);
|
|
13
13
|
}
|
|
14
14
|
return store;
|
|
15
15
|
}
|
|
@@ -17,7 +17,7 @@ export function getTplHostElement(runtimeContext, using, extraInfo) {
|
|
|
17
17
|
const store = getTplStateStore(runtimeContext, using, extraInfo);
|
|
18
18
|
const hostElement = store.hostBrick.element;
|
|
19
19
|
if (!hostElement) {
|
|
20
|
-
throw new Error(`Template host element is gone when using "${using}"${extraInfo
|
|
20
|
+
throw new Error(`Template host element is gone when using "${using}"${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}.\nThis is a bug of Brick Next, please report it.`);
|
|
21
21
|
}
|
|
22
22
|
return hostElement;
|
|
23
23
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["customTemplates","getTplStateStore","_ref","using","extraInfo","tplStateStoreId","tplStateStoreMap","Error","store","get","getTplHostElement","runtimeContext","hostElement","hostBrick","element","getTagNameOfCustomTemplate","brick","appId","includes","startsWith","tagName"],"sources":["../../../../src/internal/CustomTemplates/utils.ts"],"sourcesContent":["import type { DataStore } from \"../data/DataStore.js\";\nimport type { RuntimeBrickElement, RuntimeContext } from \"../interfaces.js\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\n\ntype MinimalTplStateStoreContext = Pick<\n RuntimeContext,\n \"tplStateStoreId\" | \"tplStateStoreMap\"\n>;\n\nexport function getTplStateStore(\n { tplStateStoreId, tplStateStoreMap }: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): DataStore<\"STATE\"> {\n if (!tplStateStoreId) {\n throw new Error(\n `Using \"${using}\" outside of a custom template${extraInfo ?? \"\"}`\n );\n }\n const store = tplStateStoreMap.get(tplStateStoreId);\n if (!store) {\n throw new Error(\n `Template 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\nexport function getTplHostElement(\n runtimeContext: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): RuntimeBrickElement {\n const store = getTplStateStore(runtimeContext, using, extraInfo);\n const hostElement = store.hostBrick!.element;\n if (!hostElement) {\n throw new Error(\n `Template host element is gone when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return hostElement;\n}\n\nexport function getTagNameOfCustomTemplate(\n brick: string,\n appId?: string\n): false | string {\n // When a template is registered by an app, it's namespace maybe missed.\n if (!brick.includes(\".\") && brick.startsWith(\"tpl-\") && appId) {\n const tagName = `${appId}.${brick}`;\n if (customTemplates.get(tagName)) {\n return tagName;\n }\n }\n if (customTemplates.get(brick)) {\n return brick;\n }\n return false;\n}\n"],"mappings":"AAEA,SAASA,eAAe,QAAQ,0BAA0B;AAO1D,OAAO,SAASC,gBAAgBA,CAAAC,IAAA,EAE9BC,KAAa,EACbC,SAAkB,EACE;EAAA,IAHpB;IAAEC,eAAe;IAAEC;EAA8C,CAAC,GAAAJ,IAAA;EAIlE,IAAI,CAACG,eAAe,EAAE;IACpB,MAAM,IAAIE,KAAK,CACb,UAAUJ,KAAK,iCAAiCC,SAAS,
|
|
1
|
+
{"version":3,"file":"utils.js","names":["customTemplates","getTplStateStore","_ref","using","extraInfo","tplStateStoreId","tplStateStoreMap","Error","store","get","getTplHostElement","runtimeContext","hostElement","hostBrick","element","getTagNameOfCustomTemplate","brick","appId","includes","startsWith","tagName"],"sources":["../../../../src/internal/CustomTemplates/utils.ts"],"sourcesContent":["import type { DataStore } from \"../data/DataStore.js\";\nimport type { RuntimeBrickElement, RuntimeContext } from \"../interfaces.js\";\nimport { customTemplates } from \"../../CustomTemplates.js\";\n\ntype MinimalTplStateStoreContext = Pick<\n RuntimeContext,\n \"tplStateStoreId\" | \"tplStateStoreMap\"\n>;\n\nexport function getTplStateStore(\n { tplStateStoreId, tplStateStoreMap }: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): DataStore<\"STATE\"> {\n if (!tplStateStoreId) {\n throw new Error(\n `Using \"${using}\" outside of a custom template${extraInfo ?? \"\"}`\n );\n }\n const store = tplStateStoreMap.get(tplStateStoreId);\n if (!store) {\n throw new Error(\n `Template 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\nexport function getTplHostElement(\n runtimeContext: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): RuntimeBrickElement {\n const store = getTplStateStore(runtimeContext, using, extraInfo);\n const hostElement = store.hostBrick!.element;\n if (!hostElement) {\n throw new Error(\n `Template host element is gone when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return hostElement;\n}\n\nexport function getTagNameOfCustomTemplate(\n brick: string,\n appId?: string\n): false | string {\n // When a template is registered by an app, it's namespace maybe missed.\n if (!brick.includes(\".\") && brick.startsWith(\"tpl-\") && appId) {\n const tagName = `${appId}.${brick}`;\n if (customTemplates.get(tagName)) {\n return tagName;\n }\n }\n if (customTemplates.get(brick)) {\n return brick;\n }\n return false;\n}\n"],"mappings":"AAEA,SAASA,eAAe,QAAQ,0BAA0B;AAO1D,OAAO,SAASC,gBAAgBA,CAAAC,IAAA,EAE9BC,KAAa,EACbC,SAAkB,EACE;EAAA,IAHpB;IAAEC,eAAe;IAAEC;EAA8C,CAAC,GAAAJ,IAAA;EAIlE,IAAI,CAACG,eAAe,EAAE;IACpB,MAAM,IAAIE,KAAK,CACb,UAAUJ,KAAK,iCAAiCC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,EACjE,CAAC;EACH;EACA,MAAMI,KAAK,GAAGF,gBAAgB,CAACG,GAAG,CAACJ,eAAe,CAAC;EACnD,IAAI,CAACG,KAAK,EAAE;IACV,MAAM,IAAID,KAAK,CACb,iDAAiDJ,KAAK,IACpDC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,mDAEnB,CAAC;EACH;EACA,OAAOI,KAAK;AACd;AAEA,OAAO,SAASE,iBAAiBA,CAC/BC,cAA2C,EAC3CR,KAAa,EACbC,SAAkB,EACG;EACrB,MAAMI,KAAK,GAAGP,gBAAgB,CAACU,cAAc,EAAER,KAAK,EAAEC,SAAS,CAAC;EAChE,MAAMQ,WAAW,GAAGJ,KAAK,CAACK,SAAS,CAAEC,OAAO;EAC5C,IAAI,CAACF,WAAW,EAAE;IAChB,MAAM,IAAIL,KAAK,CACb,6CAA6CJ,KAAK,IAChDC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,mDAEnB,CAAC;EACH;EACA,OAAOQ,WAAW;AACpB;AAEA,OAAO,SAASG,0BAA0BA,CACxCC,KAAa,EACbC,KAAc,EACE;EAChB;EACA,IAAI,CAACD,KAAK,CAACE,QAAQ,CAAC,GAAG,CAAC,IAAIF,KAAK,CAACG,UAAU,CAAC,MAAM,CAAC,IAAIF,KAAK,EAAE;IAC7D,MAAMG,OAAO,GAAG,GAAGH,KAAK,IAAID,KAAK,EAAE;IACnC,IAAIhB,eAAe,CAACS,GAAG,CAACW,OAAO,CAAC,EAAE;MAChC,OAAOA,OAAO;IAChB;EACF;EACA,IAAIpB,eAAe,CAACS,GAAG,CAACO,KAAK,CAAC,EAAE;IAC9B,OAAOA,KAAK;EACd;EACA,OAAO,KAAK;AACd","ignoreList":[]}
|
|
@@ -31,8 +31,9 @@ export async function ErrorNode(error, returnNode, pageLevel) {
|
|
|
31
31
|
showDescription
|
|
32
32
|
} = getRefinedErrorConf(error);
|
|
33
33
|
if (pageLevel) {
|
|
34
|
+
var _presetBricks$error;
|
|
34
35
|
const presetBricks = _internalApiGetPresetBricks();
|
|
35
|
-
const errorBrick = presetBricks.error
|
|
36
|
+
const errorBrick = (_presetBricks$error = presetBricks.error) !== null && _presetBricks$error !== void 0 ? _presetBricks$error : "illustrations.error-message";
|
|
36
37
|
if (errorBrick !== false) {
|
|
37
38
|
const linkBrick = "eo-link";
|
|
38
39
|
const bricks = (showLink ? [errorBrick, linkBrick] : [errorBrick]).filter(brick => !customElements.get(brick));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ErrorNode.js","names":["loadBricksImperatively","BrickLoadError","HttpResponseError","i18n","httpErrorToString","RenderTag","_internalApiGetPresetBricks","getBrickPackages","K","NS","getBasePath","PageNotFoundError","Error","constructor","message","name","captureStackTrace","ErrorNode","error","returnNode","pageLevel","title","variant","showLink","showDescription","getRefinedErrorConf","presetBricks","errorBrick","linkBrick","bricks","filter","brick","customElements","get","Promise","race","_resolve","reject","setTimeout","node","tag","BRICK","type","properties","errorTitle","description","undefined","dataset","errorBoundary","runtimeContext","return","child","getLinkNode","e","console","join","useDefaultError","style","color","descriptionNode","textContent","sibling","parent","slotId","t","GO_BACK_HOME","RELOAD","GO_BACK_TO_PREVIOUS_PAGE","href","location","events","click","action","_error$response","_error$responseJson","APP_NOT_FOUND","PAGE_NOT_FOUND","Event","target","HTMLScriptElement","NETWORK_ERROR","response","status","NO_PERMISSION","responseJson","code","LICENSE_EXPIRED","UNKNOWN_ERROR"],"sources":["../../../src/internal/ErrorNode.ts"],"sourcesContent":["import { loadBricksImperatively, BrickLoadError } from \"@next-core/loader\";\nimport { HttpResponseError } from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { RenderTag } from \"./enums.js\";\nimport type { RenderChildNode, RenderReturnNode } from \"./interfaces.js\";\nimport { _internalApiGetPresetBricks, getBrickPackages } from \"./Runtime.js\";\nimport { K, NS } from \"./i18n.js\";\nimport { getBasePath } from \"../getBasePath.js\";\n\ntype ErrorMessageVariant =\n | \"internet-disconnected\"\n | \"no-permission\"\n | \"license-expired\"\n | \"not-found\"\n | \"unknown-error\";\n\ninterface ErrorMessageConfig {\n title: string;\n variant: ErrorMessageVariant;\n showLink?: LinkType;\n showDescription?: boolean;\n}\n\ntype LinkType = \"home\" | \"previous\" | \"reload\";\n\nexport class PageNotFoundError extends Error {\n constructor(message: \"page not found\" | \"app not found\") {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(message);\n\n this.name = \"PageNotFoundError\";\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // istanbul ignore else\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrickLoadError);\n }\n }\n}\n\n/**\n * Will always resolve\n */\nexport async function ErrorNode(\n error: unknown,\n returnNode: RenderReturnNode,\n pageLevel?: boolean\n): Promise<RenderChildNode> {\n const { title, variant, showLink, showDescription } =\n getRefinedErrorConf(error);\n\n if (pageLevel) {\n const presetBricks = _internalApiGetPresetBricks();\n const errorBrick = presetBricks.error ?? \"illustrations.error-message\";\n if (errorBrick !== false) {\n const linkBrick = \"eo-link\";\n const bricks = (showLink ? [errorBrick, linkBrick] : [errorBrick]).filter(\n (brick) => !customElements.get(brick)\n );\n try {\n await Promise.race([\n loadBricksImperatively(bricks, getBrickPackages()),\n // Timeout after 3 seconds\n new Promise<void>((_resolve, reject) =>\n setTimeout(() => {\n reject(new Error(\"timeout\"));\n }, 3e3)\n ),\n ]);\n const node: RenderChildNode = {\n tag: RenderTag.BRICK,\n type: errorBrick,\n properties: {\n errorTitle: title,\n description: showDescription ? httpErrorToString(error) : undefined,\n variant,\n dataset: {\n errorBoundary: \"\",\n },\n },\n runtimeContext: null!,\n return: returnNode,\n };\n\n if (showLink) {\n node.child = getLinkNode(showLink, linkBrick, node, \"\");\n }\n\n return node;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"Failed to load brick:\", bricks.join(\", \"), e);\n }\n }\n }\n\n const useDefaultError =\n pageLevel && !!customElements.get(\"easyops-default-error\");\n\n const node: RenderChildNode = {\n tag: RenderTag.BRICK,\n type: useDefaultError ? \"easyops-default-error\" : \"div\",\n properties: {\n errorTitle: title,\n dataset: {\n errorBoundary: \"\",\n },\n style: {\n color: \"var(--color-error)\",\n },\n },\n runtimeContext: null!,\n return: returnNode,\n };\n\n const descriptionNode: RenderChildNode = {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: useDefaultError\n ? showDescription\n ? httpErrorToString(error)\n : \"\"\n : showDescription\n ? `${title}: ${httpErrorToString(error)}`\n : title,\n },\n runtimeContext: null!,\n return: node,\n };\n\n node.child = descriptionNode;\n\n if (pageLevel && showLink) {\n descriptionNode.sibling = getLinkNode(\n showLink,\n \"a\",\n node,\n useDefaultError ? \"link\" : \"\"\n );\n }\n\n return node;\n}\n\nfunction getLinkNode(\n showLink: LinkType | undefined,\n brick: string,\n parent: RenderReturnNode,\n slotId: string\n): RenderChildNode {\n return {\n tag: RenderTag.BRICK,\n type: brick,\n slotId,\n properties: {\n textContent:\n showLink === \"home\"\n ? i18n.t(`${NS}:${K.GO_BACK_HOME}`)\n : showLink === \"reload\"\n ? i18n.t(`${NS}:${K.RELOAD}`)\n : i18n.t(`${NS}:${K.GO_BACK_TO_PREVIOUS_PAGE}`),\n href:\n showLink === \"home\"\n ? getBasePath()\n : showLink === \"reload\"\n ? location.href\n : undefined,\n },\n events:\n showLink === \"previous\"\n ? {\n click: {\n action: \"history.goBack\",\n },\n }\n : undefined,\n runtimeContext: null!,\n return: parent,\n };\n}\n\nfunction getRefinedErrorConf(error: unknown): ErrorMessageConfig {\n if (error instanceof PageNotFoundError) {\n return error.message === \"app not found\"\n ? {\n showLink: \"home\",\n title: i18n.t(`${NS}:${K.APP_NOT_FOUND}`),\n variant: \"no-permission\",\n }\n : {\n showLink: \"home\",\n variant: \"not-found\",\n title: i18n.t(`${NS}:${K.PAGE_NOT_FOUND}`),\n };\n }\n\n if (\n error instanceof BrickLoadError ||\n (error instanceof Error && error.name === \"ChunkLoadError\") ||\n (error instanceof Event &&\n error.type === \"error\" &&\n error.target instanceof HTMLScriptElement)\n ) {\n return {\n showDescription: true,\n title: i18n.t(`${NS}:${K.NETWORK_ERROR}`),\n variant: \"internet-disconnected\",\n showLink: \"reload\",\n };\n }\n\n if (error instanceof HttpResponseError && error.response?.status === 403) {\n return {\n showLink: \"previous\",\n showDescription: true,\n title: i18n.t(`${NS}:${K.NO_PERMISSION}`),\n variant: \"no-permission\",\n };\n }\n\n if (\n error instanceof HttpResponseError &&\n error.responseJson?.code === \"200000\"\n ) {\n return {\n showDescription: true,\n title: i18n.t(`${NS}:${K.LICENSE_EXPIRED}`),\n variant: \"license-expired\",\n };\n }\n\n return {\n showLink: \"previous\",\n showDescription: true,\n title: i18n.t(`${NS}:${K.UNKNOWN_ERROR}`),\n variant: \"unknown-error\",\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"ErrorNode.js","names":["loadBricksImperatively","BrickLoadError","HttpResponseError","i18n","httpErrorToString","RenderTag","_internalApiGetPresetBricks","getBrickPackages","K","NS","getBasePath","PageNotFoundError","Error","constructor","message","name","captureStackTrace","ErrorNode","error","returnNode","pageLevel","title","variant","showLink","showDescription","getRefinedErrorConf","_presetBricks$error","presetBricks","errorBrick","linkBrick","bricks","filter","brick","customElements","get","Promise","race","_resolve","reject","setTimeout","node","tag","BRICK","type","properties","errorTitle","description","undefined","dataset","errorBoundary","runtimeContext","return","child","getLinkNode","e","console","join","useDefaultError","style","color","descriptionNode","textContent","sibling","parent","slotId","t","GO_BACK_HOME","RELOAD","GO_BACK_TO_PREVIOUS_PAGE","href","location","events","click","action","_error$response","_error$responseJson","APP_NOT_FOUND","PAGE_NOT_FOUND","Event","target","HTMLScriptElement","NETWORK_ERROR","response","status","NO_PERMISSION","responseJson","code","LICENSE_EXPIRED","UNKNOWN_ERROR"],"sources":["../../../src/internal/ErrorNode.ts"],"sourcesContent":["import { loadBricksImperatively, BrickLoadError } from \"@next-core/loader\";\nimport { HttpResponseError } from \"@next-core/http\";\nimport { i18n } from \"@next-core/i18n\";\nimport { httpErrorToString } from \"../handleHttpError.js\";\nimport { RenderTag } from \"./enums.js\";\nimport type { RenderChildNode, RenderReturnNode } from \"./interfaces.js\";\nimport { _internalApiGetPresetBricks, getBrickPackages } from \"./Runtime.js\";\nimport { K, NS } from \"./i18n.js\";\nimport { getBasePath } from \"../getBasePath.js\";\n\ntype ErrorMessageVariant =\n | \"internet-disconnected\"\n | \"no-permission\"\n | \"license-expired\"\n | \"not-found\"\n | \"unknown-error\";\n\ninterface ErrorMessageConfig {\n title: string;\n variant: ErrorMessageVariant;\n showLink?: LinkType;\n showDescription?: boolean;\n}\n\ntype LinkType = \"home\" | \"previous\" | \"reload\";\n\nexport class PageNotFoundError extends Error {\n constructor(message: \"page not found\" | \"app not found\") {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(message);\n\n this.name = \"PageNotFoundError\";\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // istanbul ignore else\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, BrickLoadError);\n }\n }\n}\n\n/**\n * Will always resolve\n */\nexport async function ErrorNode(\n error: unknown,\n returnNode: RenderReturnNode,\n pageLevel?: boolean\n): Promise<RenderChildNode> {\n const { title, variant, showLink, showDescription } =\n getRefinedErrorConf(error);\n\n if (pageLevel) {\n const presetBricks = _internalApiGetPresetBricks();\n const errorBrick = presetBricks.error ?? \"illustrations.error-message\";\n if (errorBrick !== false) {\n const linkBrick = \"eo-link\";\n const bricks = (showLink ? [errorBrick, linkBrick] : [errorBrick]).filter(\n (brick) => !customElements.get(brick)\n );\n try {\n await Promise.race([\n loadBricksImperatively(bricks, getBrickPackages()),\n // Timeout after 3 seconds\n new Promise<void>((_resolve, reject) =>\n setTimeout(() => {\n reject(new Error(\"timeout\"));\n }, 3e3)\n ),\n ]);\n const node: RenderChildNode = {\n tag: RenderTag.BRICK,\n type: errorBrick,\n properties: {\n errorTitle: title,\n description: showDescription ? httpErrorToString(error) : undefined,\n variant,\n dataset: {\n errorBoundary: \"\",\n },\n },\n runtimeContext: null!,\n return: returnNode,\n };\n\n if (showLink) {\n node.child = getLinkNode(showLink, linkBrick, node, \"\");\n }\n\n return node;\n } catch (e) {\n // eslint-disable-next-line no-console\n console.error(\"Failed to load brick:\", bricks.join(\", \"), e);\n }\n }\n }\n\n const useDefaultError =\n pageLevel && !!customElements.get(\"easyops-default-error\");\n\n const node: RenderChildNode = {\n tag: RenderTag.BRICK,\n type: useDefaultError ? \"easyops-default-error\" : \"div\",\n properties: {\n errorTitle: title,\n dataset: {\n errorBoundary: \"\",\n },\n style: {\n color: \"var(--color-error)\",\n },\n },\n runtimeContext: null!,\n return: returnNode,\n };\n\n const descriptionNode: RenderChildNode = {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: useDefaultError\n ? showDescription\n ? httpErrorToString(error)\n : \"\"\n : showDescription\n ? `${title}: ${httpErrorToString(error)}`\n : title,\n },\n runtimeContext: null!,\n return: node,\n };\n\n node.child = descriptionNode;\n\n if (pageLevel && showLink) {\n descriptionNode.sibling = getLinkNode(\n showLink,\n \"a\",\n node,\n useDefaultError ? \"link\" : \"\"\n );\n }\n\n return node;\n}\n\nfunction getLinkNode(\n showLink: LinkType | undefined,\n brick: string,\n parent: RenderReturnNode,\n slotId: string\n): RenderChildNode {\n return {\n tag: RenderTag.BRICK,\n type: brick,\n slotId,\n properties: {\n textContent:\n showLink === \"home\"\n ? i18n.t(`${NS}:${K.GO_BACK_HOME}`)\n : showLink === \"reload\"\n ? i18n.t(`${NS}:${K.RELOAD}`)\n : i18n.t(`${NS}:${K.GO_BACK_TO_PREVIOUS_PAGE}`),\n href:\n showLink === \"home\"\n ? getBasePath()\n : showLink === \"reload\"\n ? location.href\n : undefined,\n },\n events:\n showLink === \"previous\"\n ? {\n click: {\n action: \"history.goBack\",\n },\n }\n : undefined,\n runtimeContext: null!,\n return: parent,\n };\n}\n\nfunction getRefinedErrorConf(error: unknown): ErrorMessageConfig {\n if (error instanceof PageNotFoundError) {\n return error.message === \"app not found\"\n ? {\n showLink: \"home\",\n title: i18n.t(`${NS}:${K.APP_NOT_FOUND}`),\n variant: \"no-permission\",\n }\n : {\n showLink: \"home\",\n variant: \"not-found\",\n title: i18n.t(`${NS}:${K.PAGE_NOT_FOUND}`),\n };\n }\n\n if (\n error instanceof BrickLoadError ||\n (error instanceof Error && error.name === \"ChunkLoadError\") ||\n (error instanceof Event &&\n error.type === \"error\" &&\n error.target instanceof HTMLScriptElement)\n ) {\n return {\n showDescription: true,\n title: i18n.t(`${NS}:${K.NETWORK_ERROR}`),\n variant: \"internet-disconnected\",\n showLink: \"reload\",\n };\n }\n\n if (error instanceof HttpResponseError && error.response?.status === 403) {\n return {\n showLink: \"previous\",\n showDescription: true,\n title: i18n.t(`${NS}:${K.NO_PERMISSION}`),\n variant: \"no-permission\",\n };\n }\n\n if (\n error instanceof HttpResponseError &&\n error.responseJson?.code === \"200000\"\n ) {\n return {\n showDescription: true,\n title: i18n.t(`${NS}:${K.LICENSE_EXPIRED}`),\n variant: \"license-expired\",\n };\n }\n\n return {\n showLink: \"previous\",\n showDescription: true,\n title: i18n.t(`${NS}:${K.UNKNOWN_ERROR}`),\n variant: \"unknown-error\",\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -5,7 +5,7 @@ import { getDefaultProperties } from "./getDefaultProperties.js";
|
|
|
5
5
|
import { symbolForFormStateStoreId } from "./constants.js";
|
|
6
6
|
export const formContainers = ["forms.general-form", "form.general-form", "eo-form"];
|
|
7
7
|
export function expandFormRenderer(formData, hostBrickConf, hostBrick, asyncHostPropertyEntries, rendererContext) {
|
|
8
|
-
var _hostBrickConf$proper;
|
|
8
|
+
var _normalizedFormData$c, _hostBrickConf$proper;
|
|
9
9
|
const normalizedFormData = typeof formData === "string" ? JSON.parse(formData) : formData;
|
|
10
10
|
const formStateStoreId = uniqueId("form-state-");
|
|
11
11
|
const runtimeContext = {
|
|
@@ -25,7 +25,7 @@ export function expandFormRenderer(formData, hostBrickConf, hostBrick, asyncHost
|
|
|
25
25
|
}
|
|
26
26
|
|
|
27
27
|
// Always add a state of `params`.
|
|
28
|
-
const context = normalizedFormData.context
|
|
28
|
+
const context = (_normalizedFormData$c = normalizedFormData.context) !== null && _normalizedFormData$c !== void 0 ? _normalizedFormData$c : [];
|
|
29
29
|
if (!context.some(ctx => ctx.name === "params")) {
|
|
30
30
|
context.push({
|
|
31
31
|
name: "params"
|
|
@@ -105,7 +105,7 @@ function formSchemasToBricks(schemas, fields, formStateStoreId) {
|
|
|
105
105
|
}
|
|
106
106
|
}
|
|
107
107
|
function mergeEvents(targetEvents, sourceEvents) {
|
|
108
|
-
const events = targetEvents
|
|
108
|
+
const events = targetEvents !== null && targetEvents !== void 0 ? targetEvents : {};
|
|
109
109
|
for (const [eventType, handlers] of Object.entries(sourceEvents)) {
|
|
110
110
|
events[eventType] = hasOwnProperty(events, eventType) ? [events[eventType], handlers].flat() : handlers;
|
|
111
111
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandFormRenderer.js","names":["hasOwnProperty","uniqueId","DataStore","getDefaultProperties","symbolForFormStateStoreId","formContainers","expandFormRenderer","formData","hostBrickConf","hostBrick","asyncHostPropertyEntries","rendererContext","_hostBrickConf$proper","normalizedFormData","JSON","parse","formStateStoreId","runtimeContext","forEachItem","forEachIndex","forEachSize","tplStateStoreId","formStateStore","undefined","formStateStoreMap","set","formStateStoreScope","push","context","some","ctx","name","define","formConf","formSchemaToBrick","formSchema","fields","includes","brick","events","mergeEvents","renderRoot","properties","slots","children","style","padding","schema","id","bricks","mountPoint","instanceId","iid","field","find","item","fieldId","defaults","brickConf","slot","formSchemasToBricks","if","schemas","Array","isArray","map","targetEvents","sourceEvents","eventType","handlers","Object","entries","flat"],"sources":["../../../../src/internal/FormRenderer/expandFormRenderer.ts"],"sourcesContent":["import type { BrickConf, BrickEventsMap } from \"@next-core/types\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { uniqueId } from \"lodash\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport type { AsyncPropertyEntry, RuntimeBrick } from \"../interfaces.js\";\nimport type {\n FieldProperties,\n FormDataProperties,\n FormSchemaProperties,\n} from \"./interfaces.js\";\nimport { getDefaultProperties } from \"./getDefaultProperties.js\";\nimport { symbolForFormStateStoreId } from \"./constants.js\";\nimport type { RendererContext } from \"../RendererContext.js\";\n\nexport const formContainers = [\n \"forms.general-form\",\n \"form.general-form\",\n \"eo-form\",\n];\n\nexport function expandFormRenderer(\n formData: unknown,\n hostBrickConf: BrickConf,\n hostBrick: RuntimeBrick,\n asyncHostPropertyEntries: AsyncPropertyEntry[],\n rendererContext: RendererContext\n): BrickConf {\n const normalizedFormData = (\n typeof formData === \"string\" ? JSON.parse(formData) : formData\n ) as FormDataProperties;\n\n const formStateStoreId = uniqueId(\"form-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n formStateStoreId,\n };\n\n // There is a boundary for `forEach*` and `STATE` between form internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.forEachIndex;\n delete runtimeContext.forEachSize;\n delete runtimeContext.tplStateStoreId;\n\n const formStateStore = new DataStore(\n \"FORM_STATE\",\n undefined,\n rendererContext,\n formStateStoreId\n );\n runtimeContext.formStateStoreMap.set(formStateStoreId, formStateStore);\n if (runtimeContext.formStateStoreScope) {\n runtimeContext.formStateStoreScope.push(formStateStore);\n }\n\n // Always add a state of `params`.\n const context = normalizedFormData.context ?? [];\n if (!context.some((ctx) => ctx.name === \"params\")) {\n context.push({ name: \"params\" });\n }\n\n formStateStore.define(context, runtimeContext, asyncHostPropertyEntries);\n\n const formConf = formSchemaToBrick(\n normalizedFormData.formSchema,\n normalizedFormData.fields,\n formStateStoreId\n );\n\n if (formContainers.includes(formConf.brick) && hostBrickConf.events) {\n formConf.events = mergeEvents(formConf.events, hostBrickConf.events);\n }\n\n const renderRoot =\n typeof hostBrickConf.properties?.renderRoot !== \"boolean\" ||\n hostBrickConf.properties.renderRoot;\n\n if (renderRoot) {\n return {\n ...hostBrickConf,\n slots: undefined,\n children: [\n {\n brick: \"eo-micro-view\",\n properties: { style: { padding: \"12px\" } },\n children: [formConf],\n },\n ],\n };\n }\n\n return {\n ...hostBrickConf,\n slots: undefined,\n children: [formConf],\n };\n}\n\nfunction formSchemaToBrick(\n schema: FormSchemaProperties,\n fields: FieldProperties[],\n formStateStoreId: string\n): BrickConf {\n const { id, bricks, events, context, mountPoint, instanceId: iid } = schema;\n let { brick, properties } = schema;\n\n // 根据字段类型获取默认配置\n const field = fields.find((item: FieldProperties) => item.fieldId === id);\n if (field) {\n const defaults = getDefaultProperties(field);\n if (!brick) {\n brick = defaults.brick;\n }\n properties = {\n ...defaults.properties,\n ...properties,\n };\n }\n\n const brickConf = {\n brick,\n properties,\n iid,\n slot: mountPoint,\n events,\n context,\n children: formSchemasToBricks(bricks, fields, formStateStoreId),\n [symbolForFormStateStoreId]: formStateStoreId,\n } as BrickConf;\n\n if (hasOwnProperty(schema, \"if\")) {\n brickConf.if = schema.if;\n }\n\n return brickConf;\n}\n\nfunction formSchemasToBricks(\n schemas: FormSchemaProperties[] | undefined,\n fields: FieldProperties[],\n formStateStoreId: string\n): BrickConf[] | undefined {\n if (Array.isArray(schemas)) {\n return schemas.map((schema) =>\n formSchemaToBrick(schema, fields, formStateStoreId)\n );\n }\n}\n\nfunction mergeEvents(\n targetEvents: BrickEventsMap | undefined,\n sourceEvents: BrickEventsMap\n): BrickEventsMap {\n const events = targetEvents ?? {};\n\n for (const [eventType, handlers] of Object.entries(sourceEvents)) {\n events[eventType] = hasOwnProperty(events, eventType)\n ? [events[eventType], handlers].flat()\n : handlers;\n }\n\n return events;\n}\n"],"mappings":"AACA,SAASA,cAAc,QAAQ,0BAA0B;AACzD,SAASC,QAAQ,QAAQ,QAAQ;AACjC,SAASC,SAAS,QAAQ,sBAAsB;AAOhD,SAASC,oBAAoB,QAAQ,2BAA2B;AAChE,SAASC,yBAAyB,QAAQ,gBAAgB;AAG1D,OAAO,MAAMC,cAAc,GAAG,CAC5B,oBAAoB,EACpB,mBAAmB,EACnB,SAAS,CACV;AAED,OAAO,SAASC,kBAAkBA,CAChCC,QAAiB,EACjBC,aAAwB,EACxBC,SAAuB,EACvBC,wBAA8C,EAC9CC,eAAgC,EACrB;EAAA,IAAAC,qBAAA;EACX,MAAMC,kBAAkB,GACtB,
|
|
1
|
+
{"version":3,"file":"expandFormRenderer.js","names":["hasOwnProperty","uniqueId","DataStore","getDefaultProperties","symbolForFormStateStoreId","formContainers","expandFormRenderer","formData","hostBrickConf","hostBrick","asyncHostPropertyEntries","rendererContext","_normalizedFormData$c","_hostBrickConf$proper","normalizedFormData","JSON","parse","formStateStoreId","runtimeContext","forEachItem","forEachIndex","forEachSize","tplStateStoreId","formStateStore","undefined","formStateStoreMap","set","formStateStoreScope","push","context","some","ctx","name","define","formConf","formSchemaToBrick","formSchema","fields","includes","brick","events","mergeEvents","renderRoot","properties","slots","children","style","padding","schema","id","bricks","mountPoint","instanceId","iid","field","find","item","fieldId","defaults","brickConf","slot","formSchemasToBricks","if","schemas","Array","isArray","map","targetEvents","sourceEvents","eventType","handlers","Object","entries","flat"],"sources":["../../../../src/internal/FormRenderer/expandFormRenderer.ts"],"sourcesContent":["import type { BrickConf, BrickEventsMap } from \"@next-core/types\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { uniqueId } from \"lodash\";\nimport { DataStore } from \"../data/DataStore.js\";\nimport type { AsyncPropertyEntry, RuntimeBrick } from \"../interfaces.js\";\nimport type {\n FieldProperties,\n FormDataProperties,\n FormSchemaProperties,\n} from \"./interfaces.js\";\nimport { getDefaultProperties } from \"./getDefaultProperties.js\";\nimport { symbolForFormStateStoreId } from \"./constants.js\";\nimport type { RendererContext } from \"../RendererContext.js\";\n\nexport const formContainers = [\n \"forms.general-form\",\n \"form.general-form\",\n \"eo-form\",\n];\n\nexport function expandFormRenderer(\n formData: unknown,\n hostBrickConf: BrickConf,\n hostBrick: RuntimeBrick,\n asyncHostPropertyEntries: AsyncPropertyEntry[],\n rendererContext: RendererContext\n): BrickConf {\n const normalizedFormData = (\n typeof formData === \"string\" ? JSON.parse(formData) : formData\n ) as FormDataProperties;\n\n const formStateStoreId = uniqueId(\"form-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n formStateStoreId,\n };\n\n // There is a boundary for `forEach*` and `STATE` between form internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.forEachIndex;\n delete runtimeContext.forEachSize;\n delete runtimeContext.tplStateStoreId;\n\n const formStateStore = new DataStore(\n \"FORM_STATE\",\n undefined,\n rendererContext,\n formStateStoreId\n );\n runtimeContext.formStateStoreMap.set(formStateStoreId, formStateStore);\n if (runtimeContext.formStateStoreScope) {\n runtimeContext.formStateStoreScope.push(formStateStore);\n }\n\n // Always add a state of `params`.\n const context = normalizedFormData.context ?? [];\n if (!context.some((ctx) => ctx.name === \"params\")) {\n context.push({ name: \"params\" });\n }\n\n formStateStore.define(context, runtimeContext, asyncHostPropertyEntries);\n\n const formConf = formSchemaToBrick(\n normalizedFormData.formSchema,\n normalizedFormData.fields,\n formStateStoreId\n );\n\n if (formContainers.includes(formConf.brick) && hostBrickConf.events) {\n formConf.events = mergeEvents(formConf.events, hostBrickConf.events);\n }\n\n const renderRoot =\n typeof hostBrickConf.properties?.renderRoot !== \"boolean\" ||\n hostBrickConf.properties.renderRoot;\n\n if (renderRoot) {\n return {\n ...hostBrickConf,\n slots: undefined,\n children: [\n {\n brick: \"eo-micro-view\",\n properties: { style: { padding: \"12px\" } },\n children: [formConf],\n },\n ],\n };\n }\n\n return {\n ...hostBrickConf,\n slots: undefined,\n children: [formConf],\n };\n}\n\nfunction formSchemaToBrick(\n schema: FormSchemaProperties,\n fields: FieldProperties[],\n formStateStoreId: string\n): BrickConf {\n const { id, bricks, events, context, mountPoint, instanceId: iid } = schema;\n let { brick, properties } = schema;\n\n // 根据字段类型获取默认配置\n const field = fields.find((item: FieldProperties) => item.fieldId === id);\n if (field) {\n const defaults = getDefaultProperties(field);\n if (!brick) {\n brick = defaults.brick;\n }\n properties = {\n ...defaults.properties,\n ...properties,\n };\n }\n\n const brickConf = {\n brick,\n properties,\n iid,\n slot: mountPoint,\n events,\n context,\n children: formSchemasToBricks(bricks, fields, formStateStoreId),\n [symbolForFormStateStoreId]: formStateStoreId,\n } as BrickConf;\n\n if (hasOwnProperty(schema, \"if\")) {\n brickConf.if = schema.if;\n }\n\n return brickConf;\n}\n\nfunction formSchemasToBricks(\n schemas: FormSchemaProperties[] | undefined,\n fields: FieldProperties[],\n formStateStoreId: string\n): BrickConf[] | undefined {\n if (Array.isArray(schemas)) {\n return schemas.map((schema) =>\n formSchemaToBrick(schema, fields, formStateStoreId)\n );\n }\n}\n\nfunction mergeEvents(\n targetEvents: BrickEventsMap | undefined,\n sourceEvents: BrickEventsMap\n): BrickEventsMap {\n const events = targetEvents ?? {};\n\n for (const [eventType, handlers] of Object.entries(sourceEvents)) {\n events[eventType] = hasOwnProperty(events, eventType)\n ? [events[eventType], handlers].flat()\n : handlers;\n }\n\n return events;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -4,11 +4,11 @@ export function getFormStateStore(_ref, using, extraInfo) {
|
|
|
4
4
|
formStateStoreMap
|
|
5
5
|
} = _ref;
|
|
6
6
|
if (!formStateStoreId) {
|
|
7
|
-
throw new Error(`Using "${using}" outside of form renderer${extraInfo
|
|
7
|
+
throw new Error(`Using "${using}" outside of form renderer${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}`);
|
|
8
8
|
}
|
|
9
9
|
const store = formStateStoreMap.get(formStateStoreId);
|
|
10
10
|
if (!store) {
|
|
11
|
-
throw new Error(`Form state store is not found when using "${using}"${extraInfo
|
|
11
|
+
throw new Error(`Form state store is not found when using "${using}"${extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""}.\nThis is a bug of Brick Next, please report it.`);
|
|
12
12
|
}
|
|
13
13
|
return store;
|
|
14
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["getFormStateStore","_ref","using","extraInfo","formStateStoreId","formStateStoreMap","Error","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,CACb,UAAUJ,KAAK,6BAA6BC,SAAS,
|
|
1
|
+
{"version":3,"file":"utils.js","names":["getFormStateStore","_ref","using","extraInfo","formStateStoreId","formStateStoreMap","Error","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,CACb,UAAUJ,KAAK,6BAA6BC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,EAC7D,CAAC;EACH;EACA,MAAMI,KAAK,GAAGF,iBAAiB,CAACG,GAAG,CAACJ,gBAAgB,CAAC;EACrD,IAAI,CAACG,KAAK,EAAE;IACV,MAAM,IAAID,KAAK,CACb,6CAA6CJ,KAAK,IAChDC,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,mDAEnB,CAAC;EACH;EACA,OAAOI,KAAK;AACd","ignoreList":[]}
|