@next-core/runtime 1.4.3 → 1.5.1
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/Dialog.js +2 -3
- package/dist/cjs/Dialog.js.map +1 -1
- package/dist/cjs/Notification.js +2 -3
- package/dist/cjs/Notification.js.map +1 -1
- package/dist/cjs/index.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +2 -1
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/cjs/internal/FormRenderer/constants.js +11 -0
- package/dist/cjs/internal/FormRenderer/constants.js.map +1 -0
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js +122 -0
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js.map +1 -0
- package/dist/cjs/internal/FormRenderer/getDefaultProperties.js +165 -0
- package/dist/cjs/internal/FormRenderer/getDefaultProperties.js.map +1 -0
- package/dist/cjs/internal/FormRenderer/interfaces.js +6 -0
- package/dist/cjs/internal/FormRenderer/interfaces.js.map +1 -0
- package/dist/cjs/internal/FormRenderer/utils.js +20 -0
- package/dist/cjs/internal/FormRenderer/utils.js.map +1 -0
- package/dist/cjs/internal/Renderer.js +38 -9
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/Router.js +5 -4
- package/dist/cjs/internal/Router.js.map +1 -1
- package/dist/cjs/internal/Runtime.js +72 -32
- package/dist/cjs/internal/Runtime.js.map +1 -1
- package/dist/cjs/internal/bindListeners.js +9 -2
- package/dist/cjs/internal/bindListeners.js.map +1 -1
- package/dist/cjs/internal/bootstrapData.js.map +1 -1
- package/dist/cjs/internal/compute/evaluate.js +21 -6
- package/dist/cjs/internal/compute/evaluate.js.map +1 -1
- package/dist/cjs/internal/compute/listenOnTrackingContext.js +7 -9
- package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/cjs/internal/data/DataStore.js +2 -2
- package/dist/cjs/internal/data/DataStore.js.map +1 -1
- package/dist/cjs/internal/fulfilStoryboard.js +27 -0
- package/dist/cjs/internal/fulfilStoryboard.js.map +1 -0
- package/dist/cjs/internal/interfaces.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +6 -15
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/esm/Dialog.js +2 -3
- package/dist/esm/Dialog.js.map +1 -1
- package/dist/esm/Notification.js +2 -3
- package/dist/esm/Notification.js.map +1 -1
- package/dist/esm/index.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +2 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/esm/internal/FormRenderer/constants.js +3 -0
- package/dist/esm/internal/FormRenderer/constants.js.map +1 -0
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js +111 -0
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -0
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js +136 -0
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js.map +1 -0
- package/dist/esm/internal/FormRenderer/interfaces.js +2 -0
- package/dist/esm/internal/FormRenderer/interfaces.js.map +1 -0
- package/dist/esm/internal/FormRenderer/utils.js +15 -0
- package/dist/esm/internal/FormRenderer/utils.js.map +1 -0
- package/dist/esm/internal/Renderer.js +48 -16
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/Router.js +4 -3
- package/dist/esm/internal/Router.js.map +1 -1
- package/dist/esm/internal/Runtime.js +70 -29
- package/dist/esm/internal/Runtime.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +9 -2
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/bootstrapData.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +22 -9
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/compute/listenOnTrackingContext.js +7 -9
- package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/esm/internal/data/DataStore.js +2 -2
- package/dist/esm/internal/data/DataStore.js.map +1 -1
- package/dist/esm/internal/fulfilStoryboard.js +34 -0
- package/dist/esm/internal/fulfilStoryboard.js.map +1 -0
- package/dist/esm/internal/interfaces.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +7 -13
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/types/Dialog.d.ts +1 -1
- package/dist/types/Notification.d.ts +1 -1
- package/dist/types/index.d.ts +1 -1
- package/dist/types/internal/CustomTemplates/expandCustomTemplate.d.ts +1 -1
- package/dist/types/internal/FormRenderer/constants.d.ts +7 -0
- package/dist/types/internal/FormRenderer/expandFormRenderer.d.ts +3 -0
- package/dist/types/internal/FormRenderer/getDefaultProperties.d.ts +2 -0
- package/dist/types/internal/FormRenderer/interfaces.d.ts +30 -0
- package/dist/types/internal/FormRenderer/utils.d.ts +5 -0
- package/dist/types/internal/Renderer.d.ts +2 -3
- package/dist/types/internal/Runtime.d.ts +11 -2
- package/dist/types/internal/bootstrapData.d.ts +1 -1
- package/dist/types/internal/fulfilStoryboard.d.ts +2 -0
- package/dist/types/internal/interfaces.d.ts +6 -0
- package/dist/types/internal/secret_internals.d.ts +1 -4
- package/package.json +6 -6
- package/dist/cjs/internal/loadBootstrapData.js +0 -227
- package/dist/cjs/internal/loadBootstrapData.js.map +0 -1
- package/dist/cjs/internal/loadCheckLogin.js +0 -17
- package/dist/cjs/internal/loadCheckLogin.js.map +0 -1
- package/dist/esm/internal/loadBootstrapData.js +0 -244
- package/dist/esm/internal/loadBootstrapData.js.map +0 -1
- package/dist/esm/internal/loadCheckLogin.js +0 -18
- package/dist/esm/internal/loadCheckLogin.js.map +0 -1
- package/dist/types/internal/loadBootstrapData.d.ts +0 -10
- package/dist/types/internal/loadCheckLogin.d.ts +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"expandCustomTemplate.js","names":["uniqueId","customTemplates","DataStore","setupTemplateProxy","setupUseBrickInTemplate","childrenToSlots","collectWidgetContract","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostProperties","tplStateStoreId","runtimeContext","_objectSpread","forEachItem","tplStateStore","tplStateStoreMap","set","tplStateStoreScope","push","bricks","proxy","state","contracts","get","define","slots","originalExternalSlots","children","externalChildren","restBrickConf","_objectWithoutProperties","_excluded","newBrickConf","brick","tplHostMetadata","internalBricksByRef","Map","reversedProxies","properties","from","to","Object","entries","proxies","ref","hostContext","externalSlots","type","map","item","expandBrickInTemplate","brickConfInTemplate","if","slotsInTemplate","childrenInTemplate","restBrickConfInTemplate","_excluded2","transpiledSlots","fromEntries","_ref","_slotConf$bricks","slotName","slotConf"],"sources":["../../../../src/internal/CustomTemplates/expandCustomTemplate.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\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 { RuntimeBrickConfWithTplSymbols } from \"./constants.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n TemplateHostBrick,\n TemplateHostContext,\n} from \"../interfaces.js\";\nimport { setupUseBrickInTemplate } from \"./setupUseBrickInTemplate.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { collectWidgetContract } from \"../data/CollectContracts.js\";\n\nexport function expandCustomTemplate<T extends BrickConf | UseSingleBrickConf>(\n tplTagName: string,\n brickConf: T,\n hostBrick: RuntimeBrick,\n asyncHostProperties: AsyncProperties
|
|
1
|
+
{"version":3,"file":"expandCustomTemplate.js","names":["uniqueId","customTemplates","DataStore","setupTemplateProxy","setupUseBrickInTemplate","childrenToSlots","collectWidgetContract","expandCustomTemplate","tplTagName","brickConf","hostBrick","asyncHostProperties","tplStateStoreId","runtimeContext","_objectSpread","forEachItem","formStateStoreId","tplStateStore","tplStateStoreMap","set","tplStateStoreScope","push","bricks","proxy","state","contracts","get","define","slots","originalExternalSlots","children","externalChildren","restBrickConf","_objectWithoutProperties","_excluded","newBrickConf","brick","tplHostMetadata","internalBricksByRef","Map","reversedProxies","properties","from","to","Object","entries","proxies","ref","hostContext","externalSlots","type","map","item","expandBrickInTemplate","brickConfInTemplate","if","slotsInTemplate","childrenInTemplate","restBrickConfInTemplate","_excluded2","transpiledSlots","fromEntries","_ref","_slotConf$bricks","slotName","slotConf"],"sources":["../../../../src/internal/CustomTemplates/expandCustomTemplate.ts"],"sourcesContent":["import type {\n BrickConf,\n BrickConfInTemplate,\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 { RuntimeBrickConfWithTplSymbols } from \"./constants.js\";\nimport { setupTemplateProxy } from \"./setupTemplateProxy.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n TemplateHostBrick,\n TemplateHostContext,\n} from \"../interfaces.js\";\nimport { setupUseBrickInTemplate } from \"./setupUseBrickInTemplate.js\";\nimport { childrenToSlots } from \"../Renderer.js\";\nimport { collectWidgetContract } from \"../data/CollectContracts.js\";\n\nexport function expandCustomTemplate<T extends BrickConf | UseSingleBrickConf>(\n tplTagName: string,\n brickConf: T,\n hostBrick: RuntimeBrick,\n asyncHostProperties: AsyncProperties\n): T {\n const tplStateStoreId = uniqueId(\"tpl-state-\");\n const runtimeContext = {\n ...hostBrick.runtimeContext,\n tplStateStoreId,\n };\n\n // There is a boundary for `forEachItem` and `FORM_STATE` between template internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.formStateStoreId;\n\n const tplStateStore = new DataStore(\"STATE\", hostBrick);\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 collectWidgetContract(contracts);\n tplStateStore.define(state, runtimeContext, asyncHostProperties);\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 asyncHostProperties,\n externalSlots: childrenToSlots(externalChildren, originalExternalSlots) as\n | SlotsConfOfBricks\n | undefined,\n tplStateStoreId,\n hostBrick: hostBrick as TemplateHostBrick,\n };\n\n newBrickConf.slots = {\n \"\": {\n type: \"bricks\",\n bricks: bricks.map((item) => expandBrickInTemplate(item, hostContext)),\n },\n };\n\n return newBrickConf;\n}\n\nfunction expandBrickInTemplate(\n brickConfInTemplate: BrickConfInTemplate,\n hostContext: TemplateHostContext\n): RuntimeBrickConfWithTplSymbols {\n // Ignore `if: null` to make `looseCheckIf` working.\n if (brickConfInTemplate.if === null) {\n delete brickConfInTemplate.if;\n }\n const {\n properties,\n slots: slotsInTemplate,\n children: childrenInTemplate,\n ...restBrickConfInTemplate\n } = brickConfInTemplate;\n\n const transpiledSlots = childrenToSlots(\n childrenInTemplate,\n slotsInTemplate\n ) as SlotsConfInTemplate | undefined;\n\n const slots: SlotsConfOfBricks = Object.fromEntries(\n Object.entries(transpiledSlots ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map((item) =>\n expandBrickInTemplate(item, hostContext)\n ),\n },\n ])\n );\n\n return {\n ...restBrickConfInTemplate,\n properties: setupUseBrickInTemplate(properties, hostContext),\n slots,\n ...setupTemplateProxy(hostContext, restBrickConfInTemplate.ref, slots),\n };\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","names":["customTemplates","getTplStateStore","_ref","using","extraInfo","tplStateStoreId","tplStateStoreMap","Error","concat","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
|
|
1
|
+
{"version":3,"file":"utils.js","names":["customTemplates","getTplStateStore","_ref","using","extraInfo","tplStateStoreId","tplStateStoreMap","Error","concat","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,YAAAC,MAAA,CACHL,KAAK,qCAAAK,MAAA,CAAiCJ,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,EAChE;EACH;EACA,IAAMK,KAAK,GAAGH,gBAAgB,CAACI,GAAG,CAACL,eAAe,CAAC;EACnD,IAAI,CAACI,KAAK,EAAE;IACV,MAAM,IAAIF,KAAK,mDAAAC,MAAA,CACoCL,KAAK,QAAAK,MAAA,CACpDJ,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,uDAElB;EACH;EACA,OAAOK,KAAK;AACd;AAEA,OAAO,SAASE,iBAAiBA,CAC/BC,cAA2C,EAC3CT,KAAa,EACbC,SAAkB,EACG;EACrB,IAAMK,KAAK,GAAGR,gBAAgB,CAACW,cAAc,EAAET,KAAK,EAAEC,SAAS,CAAC;EAChE,IAAMS,WAAW,GAAGJ,KAAK,CAACK,SAAS,CAAEC,OAAO;EAC5C,IAAI,CAACF,WAAW,EAAE;IAChB,MAAM,IAAIN,KAAK,+CAAAC,MAAA,CACgCL,KAAK,QAAAK,MAAA,CAChDJ,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,uDAElB;EACH;EACA,OAAOS,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,IAAMG,OAAO,MAAAb,MAAA,CAAMU,KAAK,OAAAV,MAAA,CAAIS,KAAK,CAAE;IACnC,IAAIjB,eAAe,CAACU,GAAG,CAACW,OAAO,CAAC,EAAE;MAChC,OAAOA,OAAO;IAChB;EACF;EACA,IAAIrB,eAAe,CAACU,GAAG,CAACO,KAAK,CAAC,EAAE;IAC9B,OAAOA,KAAK;EACd;EACA,OAAO,KAAK;AACd"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"constants.js","names":["FORM_RENDERER","symbolForFormStateStoreId","Symbol","for"],"sources":["../../../../src/internal/FormRenderer/constants.ts"],"sourcesContent":["import type { BrickConf } from \"@next-core/types\";\n\nexport const FORM_RENDERER = \"form-renderer.form-renderer\";\nexport const symbolForFormStateStoreId = Symbol.for(\"form.stateStoreId\");\n\nexport type RuntimeBrickConfWithFormSymbols = BrickConf &\n RuntimeBrickConfOfFormSymbols;\n\nexport interface RuntimeBrickConfOfFormSymbols {\n [symbolForFormStateStoreId]?: string;\n}\n"],"mappings":"AAEA,OAAO,IAAMA,aAAa,GAAG,6BAA6B;AAC1D,OAAO,IAAMC,yBAAyB,GAAGC,MAAM,CAACC,GAAG,CAAC,mBAAmB,CAAC"}
|
|
@@ -0,0 +1,111 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
+
import { hasOwnProperty } from "@next-core/utils/general";
|
|
3
|
+
import { uniqueId } from "lodash";
|
|
4
|
+
import { DataStore } from "../data/DataStore.js";
|
|
5
|
+
import { getDefaultProperties } from "./getDefaultProperties.js";
|
|
6
|
+
import { symbolForFormStateStoreId } from "./constants.js";
|
|
7
|
+
export function expandFormRenderer(formData, hostBrickConf, hostBrick, asyncHostProperties) {
|
|
8
|
+
var _normalizedFormData$c, _hostBrickConf$proper;
|
|
9
|
+
var normalizedFormData = typeof formData === "string" ? JSON.parse(formData) : formData;
|
|
10
|
+
var formStateStoreId = uniqueId("form-state-");
|
|
11
|
+
var runtimeContext = _objectSpread(_objectSpread({}, hostBrick.runtimeContext), {}, {
|
|
12
|
+
formStateStoreId
|
|
13
|
+
});
|
|
14
|
+
|
|
15
|
+
// There is a boundary for `forEachItem` and `STATE` between form internals and externals.
|
|
16
|
+
delete runtimeContext.forEachItem;
|
|
17
|
+
delete runtimeContext.tplStateStoreId;
|
|
18
|
+
var formStateStore = new DataStore("FORM_STATE");
|
|
19
|
+
runtimeContext.formStateStoreMap.set(formStateStoreId, formStateStore);
|
|
20
|
+
if (runtimeContext.formStateStoreScope) {
|
|
21
|
+
runtimeContext.formStateStoreScope.push(formStateStore);
|
|
22
|
+
}
|
|
23
|
+
|
|
24
|
+
// Always add a state of `params`.
|
|
25
|
+
var context = (_normalizedFormData$c = normalizedFormData.context) !== null && _normalizedFormData$c !== void 0 ? _normalizedFormData$c : [];
|
|
26
|
+
if (!context.some(ctx => ctx.name === "params")) {
|
|
27
|
+
context.push({
|
|
28
|
+
name: "params"
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
formStateStore.define(context, runtimeContext, asyncHostProperties);
|
|
32
|
+
var formConf = formSchemaToBrick(normalizedFormData.formSchema, normalizedFormData.fields, formStateStoreId);
|
|
33
|
+
if (formConf.brick === "forms.general-form" && hostBrickConf.events) {
|
|
34
|
+
formConf.events = mergeEvents(formConf.events, hostBrickConf.events);
|
|
35
|
+
}
|
|
36
|
+
var renderRoot = typeof ((_hostBrickConf$proper = hostBrickConf.properties) === null || _hostBrickConf$proper === void 0 ? void 0 : _hostBrickConf$proper.renderRoot) !== "boolean" || hostBrickConf.properties.renderRoot;
|
|
37
|
+
if (renderRoot) {
|
|
38
|
+
return _objectSpread(_objectSpread({}, hostBrickConf), {}, {
|
|
39
|
+
slots: undefined,
|
|
40
|
+
children: [{
|
|
41
|
+
brick: "basic-bricks.micro-view",
|
|
42
|
+
properties: {
|
|
43
|
+
style: {
|
|
44
|
+
padding: "12px"
|
|
45
|
+
}
|
|
46
|
+
},
|
|
47
|
+
slots: {
|
|
48
|
+
content: {
|
|
49
|
+
bricks: [formConf],
|
|
50
|
+
type: "bricks"
|
|
51
|
+
}
|
|
52
|
+
}
|
|
53
|
+
}]
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
return _objectSpread(_objectSpread({}, hostBrickConf), {}, {
|
|
57
|
+
slots: undefined,
|
|
58
|
+
children: [formConf]
|
|
59
|
+
});
|
|
60
|
+
}
|
|
61
|
+
function formSchemaToBrick(schema, fields, formStateStoreId) {
|
|
62
|
+
var {
|
|
63
|
+
id,
|
|
64
|
+
bricks,
|
|
65
|
+
events,
|
|
66
|
+
context,
|
|
67
|
+
mountPoint,
|
|
68
|
+
instanceId: iid
|
|
69
|
+
} = schema;
|
|
70
|
+
var {
|
|
71
|
+
brick,
|
|
72
|
+
properties
|
|
73
|
+
} = schema;
|
|
74
|
+
|
|
75
|
+
// 根据字段类型获取默认配置
|
|
76
|
+
var field = fields.find(item => item.fieldId === id);
|
|
77
|
+
if (field) {
|
|
78
|
+
var defaults = getDefaultProperties(field);
|
|
79
|
+
if (!brick) {
|
|
80
|
+
brick = defaults.brick;
|
|
81
|
+
}
|
|
82
|
+
properties = _objectSpread(_objectSpread({}, defaults.properties), properties);
|
|
83
|
+
}
|
|
84
|
+
var brickConf = {
|
|
85
|
+
brick,
|
|
86
|
+
properties,
|
|
87
|
+
iid,
|
|
88
|
+
slot: mountPoint,
|
|
89
|
+
events,
|
|
90
|
+
context,
|
|
91
|
+
children: formSchemasToBricks(bricks, fields, formStateStoreId),
|
|
92
|
+
[symbolForFormStateStoreId]: formStateStoreId
|
|
93
|
+
};
|
|
94
|
+
if (hasOwnProperty(schema, "if")) {
|
|
95
|
+
brickConf.if = schema.if;
|
|
96
|
+
}
|
|
97
|
+
return brickConf;
|
|
98
|
+
}
|
|
99
|
+
function formSchemasToBricks(schemas, fields, formStateStoreId) {
|
|
100
|
+
if (Array.isArray(schemas)) {
|
|
101
|
+
return schemas.map(schema => formSchemaToBrick(schema, fields, formStateStoreId));
|
|
102
|
+
}
|
|
103
|
+
}
|
|
104
|
+
function mergeEvents(targetEvents, sourceEvents) {
|
|
105
|
+
var events = targetEvents !== null && targetEvents !== void 0 ? targetEvents : {};
|
|
106
|
+
for (var [eventType, handlers] of Object.entries(sourceEvents)) {
|
|
107
|
+
events[eventType] = hasOwnProperty(events, eventType) ? [events[eventType], handlers].flat() : handlers;
|
|
108
|
+
}
|
|
109
|
+
return events;
|
|
110
|
+
}
|
|
111
|
+
//# sourceMappingURL=expandFormRenderer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"expandFormRenderer.js","names":["hasOwnProperty","uniqueId","DataStore","getDefaultProperties","symbolForFormStateStoreId","expandFormRenderer","formData","hostBrickConf","hostBrick","asyncHostProperties","_normalizedFormData$c","_hostBrickConf$proper","normalizedFormData","JSON","parse","formStateStoreId","runtimeContext","_objectSpread","forEachItem","tplStateStoreId","formStateStore","formStateStoreMap","set","formStateStoreScope","push","context","some","ctx","name","define","formConf","formSchemaToBrick","formSchema","fields","brick","events","mergeEvents","renderRoot","properties","slots","undefined","children","style","padding","content","bricks","type","schema","id","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 { AsyncProperties, 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\";\n\nexport function expandFormRenderer(\n formData: unknown,\n hostBrickConf: BrickConf,\n hostBrick: RuntimeBrick,\n asyncHostProperties: AsyncProperties\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 `forEachItem` and `STATE` between form internals and externals.\n delete runtimeContext.forEachItem;\n delete runtimeContext.tplStateStoreId;\n\n const formStateStore = new DataStore(\"FORM_STATE\");\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, asyncHostProperties);\n\n const formConf = formSchemaToBrick(\n normalizedFormData.formSchema,\n normalizedFormData.fields,\n formStateStoreId\n );\n\n if (formConf.brick === \"forms.general-form\" && 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: \"basic-bricks.micro-view\",\n properties: { style: { padding: \"12px\" } },\n slots: {\n content: { bricks: [formConf], type: \"bricks\" },\n },\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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"}
|
|
@@ -0,0 +1,136 @@
|
|
|
1
|
+
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
+
export function getDefaultProperties(field) {
|
|
3
|
+
var defaultValue;
|
|
4
|
+
var commonProps = {
|
|
5
|
+
id: field.fieldId,
|
|
6
|
+
name: field.fieldId,
|
|
7
|
+
label: field.name,
|
|
8
|
+
dataset: {
|
|
9
|
+
testid: field.fieldId
|
|
10
|
+
}
|
|
11
|
+
};
|
|
12
|
+
var getReadOnlyAndRequired = () => {
|
|
13
|
+
var _field$limit, _field$limit2;
|
|
14
|
+
return {
|
|
15
|
+
readOnly: (_field$limit = field.limit) === null || _field$limit === void 0 ? void 0 : _field$limit.includes("READONLY"),
|
|
16
|
+
required: (_field$limit2 = field.limit) === null || _field$limit2 === void 0 ? void 0 : _field$limit2.includes("REQUIRED")
|
|
17
|
+
};
|
|
18
|
+
};
|
|
19
|
+
switch (field.fieldType) {
|
|
20
|
+
case "INT":
|
|
21
|
+
defaultValue = {
|
|
22
|
+
brick: "forms.general-input-number",
|
|
23
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
24
|
+
placeholder: field.description,
|
|
25
|
+
precision: 0,
|
|
26
|
+
inputBoxStyle: {
|
|
27
|
+
width: "100%"
|
|
28
|
+
}
|
|
29
|
+
})
|
|
30
|
+
};
|
|
31
|
+
break;
|
|
32
|
+
case "BOOLEAN":
|
|
33
|
+
defaultValue = {
|
|
34
|
+
brick: "forms.general-switch",
|
|
35
|
+
properties: _objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired())
|
|
36
|
+
};
|
|
37
|
+
break;
|
|
38
|
+
case "FLOAT":
|
|
39
|
+
defaultValue = {
|
|
40
|
+
brick: "forms.general-input-number",
|
|
41
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
42
|
+
placeholder: field.description,
|
|
43
|
+
inputBoxStyle: {
|
|
44
|
+
width: "100%"
|
|
45
|
+
}
|
|
46
|
+
})
|
|
47
|
+
};
|
|
48
|
+
break;
|
|
49
|
+
case "ENUM":
|
|
50
|
+
defaultValue = {
|
|
51
|
+
brick: "forms.general-select",
|
|
52
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
53
|
+
options: [{
|
|
54
|
+
label: "选项一",
|
|
55
|
+
value: 1
|
|
56
|
+
}, {
|
|
57
|
+
label: "选项二",
|
|
58
|
+
value: 2
|
|
59
|
+
}],
|
|
60
|
+
placeholder: field.description,
|
|
61
|
+
inputBoxStyle: {
|
|
62
|
+
width: "100%"
|
|
63
|
+
}
|
|
64
|
+
})
|
|
65
|
+
};
|
|
66
|
+
break;
|
|
67
|
+
case "ENUMS":
|
|
68
|
+
defaultValue = {
|
|
69
|
+
brick: "forms.general-select",
|
|
70
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
71
|
+
mode: "multiple",
|
|
72
|
+
options: [{
|
|
73
|
+
label: "选项一",
|
|
74
|
+
value: 1
|
|
75
|
+
}, {
|
|
76
|
+
label: "选项二",
|
|
77
|
+
value: 2
|
|
78
|
+
}],
|
|
79
|
+
placeholder: field.description,
|
|
80
|
+
inputBoxStyle: {
|
|
81
|
+
width: "100%"
|
|
82
|
+
}
|
|
83
|
+
})
|
|
84
|
+
};
|
|
85
|
+
break;
|
|
86
|
+
case "DATE":
|
|
87
|
+
case "TIME":
|
|
88
|
+
defaultValue = {
|
|
89
|
+
brick: "forms.general-date-picker",
|
|
90
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
91
|
+
placeholder: field.description
|
|
92
|
+
})
|
|
93
|
+
};
|
|
94
|
+
break;
|
|
95
|
+
case "IP":
|
|
96
|
+
defaultValue = {
|
|
97
|
+
brick: "forms.general-input",
|
|
98
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
99
|
+
placeholder: field.description,
|
|
100
|
+
pattern: "((^s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))s*$)|(^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*$))",
|
|
101
|
+
message: {
|
|
102
|
+
pattern: "输入字符不匹配IP格式"
|
|
103
|
+
}
|
|
104
|
+
})
|
|
105
|
+
};
|
|
106
|
+
break;
|
|
107
|
+
case "JSON":
|
|
108
|
+
defaultValue = {
|
|
109
|
+
brick: "forms.general-textarea",
|
|
110
|
+
properties: _objectSpread({}, commonProps)
|
|
111
|
+
};
|
|
112
|
+
break;
|
|
113
|
+
case "ARRAY":
|
|
114
|
+
defaultValue = {
|
|
115
|
+
brick: "forms.general-select",
|
|
116
|
+
properties: _objectSpread({}, commonProps)
|
|
117
|
+
};
|
|
118
|
+
break;
|
|
119
|
+
case "STRUCTURE":
|
|
120
|
+
case "STRUCTURE_ARRAY":
|
|
121
|
+
defaultValue = {
|
|
122
|
+
brick: "forms.cmdb-instance-select-panel",
|
|
123
|
+
properties: _objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired())
|
|
124
|
+
};
|
|
125
|
+
break;
|
|
126
|
+
default:
|
|
127
|
+
defaultValue = {
|
|
128
|
+
brick: "forms.general-input",
|
|
129
|
+
properties: _objectSpread(_objectSpread(_objectSpread({}, commonProps), getReadOnlyAndRequired()), {}, {
|
|
130
|
+
placeholder: field.description
|
|
131
|
+
})
|
|
132
|
+
};
|
|
133
|
+
}
|
|
134
|
+
return defaultValue;
|
|
135
|
+
}
|
|
136
|
+
//# sourceMappingURL=getDefaultProperties.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"getDefaultProperties.js","names":["getDefaultProperties","field","defaultValue","commonProps","id","fieldId","name","label","dataset","testid","getReadOnlyAndRequired","_field$limit","_field$limit2","readOnly","limit","includes","required","fieldType","brick","properties","_objectSpread","placeholder","description","precision","inputBoxStyle","width","options","value","mode","pattern","message"],"sources":["../../../../src/internal/FormRenderer/getDefaultProperties.ts"],"sourcesContent":["import type { DefaultFieldProperties, FieldProperties } from \"./interfaces.js\";\n\nexport function getDefaultProperties(\n field: FieldProperties\n): DefaultFieldProperties {\n let defaultValue: DefaultFieldProperties;\n const commonProps = {\n id: field.fieldId,\n name: field.fieldId,\n label: field.name,\n dataset: {\n testid: field.fieldId,\n },\n };\n const getReadOnlyAndRequired = () => ({\n readOnly: field.limit?.includes(\"READONLY\"),\n required: field.limit?.includes(\"REQUIRED\"),\n });\n switch (field.fieldType) {\n case \"INT\":\n defaultValue = {\n brick: \"forms.general-input-number\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n precision: 0,\n inputBoxStyle: { width: \"100%\" },\n },\n };\n break;\n case \"BOOLEAN\":\n defaultValue = {\n brick: \"forms.general-switch\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n },\n };\n break;\n case \"FLOAT\":\n defaultValue = {\n brick: \"forms.general-input-number\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n inputBoxStyle: { width: \"100%\" },\n },\n };\n break;\n case \"ENUM\":\n defaultValue = {\n brick: \"forms.general-select\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n options: [\n { label: \"选项一\", value: 1 },\n { label: \"选项二\", value: 2 },\n ],\n placeholder: field.description,\n inputBoxStyle: { width: \"100%\" },\n },\n };\n break;\n case \"ENUMS\":\n defaultValue = {\n brick: \"forms.general-select\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n mode: \"multiple\",\n options: [\n { label: \"选项一\", value: 1 },\n { label: \"选项二\", value: 2 },\n ],\n placeholder: field.description,\n inputBoxStyle: { width: \"100%\" },\n },\n };\n break;\n case \"DATE\":\n case \"TIME\":\n defaultValue = {\n brick: \"forms.general-date-picker\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n },\n };\n break;\n case \"IP\":\n defaultValue = {\n brick: \"forms.general-input\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n pattern:\n \"((^s*((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]).){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]))s*$)|(^s*((([0-9A-Fa-f]{1,4}:){7}([0-9A-Fa-f]{1,4}|:))|(([0-9A-Fa-f]{1,4}:){6}(:[0-9A-Fa-f]{1,4}|((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){5}(((:[0-9A-Fa-f]{1,4}){1,2})|:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3})|:))|(([0-9A-Fa-f]{1,4}:){4}(((:[0-9A-Fa-f]{1,4}){1,3})|((:[0-9A-Fa-f]{1,4})?:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){3}(((:[0-9A-Fa-f]{1,4}){1,4})|((:[0-9A-Fa-f]{1,4}){0,2}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){2}(((:[0-9A-Fa-f]{1,4}){1,5})|((:[0-9A-Fa-f]{1,4}){0,3}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(([0-9A-Fa-f]{1,4}:){1}(((:[0-9A-Fa-f]{1,4}){1,6})|((:[0-9A-Fa-f]{1,4}){0,4}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:))|(:(((:[0-9A-Fa-f]{1,4}){1,7})|((:[0-9A-Fa-f]{1,4}){0,5}:((25[0-5]|2[0-4]d|1dd|[1-9]?d)(.(25[0-5]|2[0-4]d|1dd|[1-9]?d)){3}))|:)))(%.+)?s*$))\",\n message: {\n pattern: \"输入字符不匹配IP格式\",\n },\n },\n };\n break;\n case \"JSON\":\n defaultValue = {\n brick: \"forms.general-textarea\",\n properties: {\n ...commonProps,\n },\n };\n break;\n case \"ARRAY\":\n defaultValue = {\n brick: \"forms.general-select\",\n properties: {\n ...commonProps,\n },\n };\n break;\n case \"STRUCTURE\":\n case \"STRUCTURE_ARRAY\":\n defaultValue = {\n brick: \"forms.cmdb-instance-select-panel\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n },\n };\n break;\n default:\n defaultValue = {\n brick: \"forms.general-input\",\n properties: {\n ...commonProps,\n ...getReadOnlyAndRequired(),\n placeholder: field.description,\n },\n };\n }\n return defaultValue;\n}\n"],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"interfaces.js","names":[],"sources":["../../../../src/internal/FormRenderer/interfaces.ts"],"sourcesContent":["import type {\n BrickEventsMap,\n ContextConf,\n ResolveConf,\n} from \"@next-core/types\";\n\nexport interface FormDataProperties {\n formSchema: FormSchemaProperties;\n fields: FieldProperties[];\n context?: ContextConf[];\n // [key: string]: any;\n}\n\nexport interface FormSchemaProperties {\n id: string;\n brick?: string;\n sort?: number;\n mountPoint?: string;\n events?: BrickEventsMap;\n properties?: Record<string, unknown>;\n if?: string | boolean | ResolveConf;\n instanceId?: string;\n context?: ContextConf[];\n bricks?: FormSchemaProperties[];\n // [key: string]: any;\n}\n\nexport interface FieldProperties {\n defaultValue?: string;\n description?: string;\n fieldId: string;\n limit?: string[];\n name: string;\n fieldType: string;\n // [key: string]: any;\n}\n\nexport interface DefaultFieldProperties {\n brick: string;\n properties: Record<string, unknown>;\n}\n"],"mappings":""}
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
export function getFormStateStore(_ref, using, extraInfo) {
|
|
2
|
+
var {
|
|
3
|
+
formStateStoreId,
|
|
4
|
+
formStateStoreMap
|
|
5
|
+
} = _ref;
|
|
6
|
+
if (!formStateStoreId) {
|
|
7
|
+
throw new Error("Using \"".concat(using, "\" outside of form renderer").concat(extraInfo !== null && extraInfo !== void 0 ? extraInfo : ""));
|
|
8
|
+
}
|
|
9
|
+
var store = formStateStoreMap.get(formStateStoreId);
|
|
10
|
+
if (!store) {
|
|
11
|
+
throw new Error("Form state store is not found when using \"".concat(using, "\"").concat(extraInfo !== null && extraInfo !== void 0 ? extraInfo : "", ".\nThis is a bug of Brick Next, please report it."));
|
|
12
|
+
}
|
|
13
|
+
return store;
|
|
14
|
+
}
|
|
15
|
+
//# sourceMappingURL=utils.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"utils.js","names":["getFormStateStore","_ref","using","extraInfo","formStateStoreId","formStateStoreMap","Error","concat","store","get"],"sources":["../../../../src/internal/FormRenderer/utils.ts"],"sourcesContent":["import type { DataStore } from \"../data/DataStore.js\";\nimport type { RuntimeContext } from \"../interfaces.js\";\n\ntype MinimalTplStateStoreContext = Pick<\n RuntimeContext,\n \"formStateStoreId\" | \"formStateStoreMap\"\n>;\n\nexport function getFormStateStore(\n { formStateStoreId, formStateStoreMap }: MinimalTplStateStoreContext,\n using: string,\n extraInfo?: string\n): DataStore<\"FORM_STATE\"> {\n if (!formStateStoreId) {\n throw new Error(\n `Using \"${using}\" outside of form renderer${extraInfo ?? \"\"}`\n );\n }\n const store = formStateStoreMap.get(formStateStoreId);\n if (!store) {\n throw new Error(\n `Form state store is not found when using \"${using}\"${\n extraInfo ?? \"\"\n }.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n return store;\n}\n"],"mappings":"AAQA,OAAO,SAASA,iBAAiBA,CAAAC,IAAA,EAE/BC,KAAa,EACbC,SAAkB,EACO;EAAA,IAHzB;IAAEC,gBAAgB;IAAEC;EAA+C,CAAC,GAAAJ,IAAA;EAIpE,IAAI,CAACG,gBAAgB,EAAE;IACrB,MAAM,IAAIE,KAAK,YAAAC,MAAA,CACHL,KAAK,iCAAAK,MAAA,CAA6BJ,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,EAC5D;EACH;EACA,IAAMK,KAAK,GAAGH,iBAAiB,CAACI,GAAG,CAACL,gBAAgB,CAAC;EACrD,IAAI,CAACI,KAAK,EAAE;IACV,MAAM,IAAIF,KAAK,+CAAAC,MAAA,CACgCL,KAAK,QAAAK,MAAA,CAChDJ,SAAS,aAATA,SAAS,cAATA,SAAS,GAAI,EAAE,uDAElB;EACH;EACA,OAAOK,KAAK;AACd"}
|
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
2
|
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
3
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
|
-
var _excluded = ["blockingList", "node", "menuRequests", "hasTrackingControls"]
|
|
4
|
+
var _excluded = ["blockingList", "node", "menuRequests", "hasTrackingControls"],
|
|
5
|
+
_excluded2 = ["formData"];
|
|
5
6
|
import { enqueueStableLoadBricks, loadBricksImperatively } from "@next-core/loader";
|
|
6
7
|
import { hasOwnProperty } from "@next-core/utils/general";
|
|
7
8
|
import { debounce } from "lodash";
|
|
@@ -20,6 +21,8 @@ import { getBrickPackages } from "./Runtime.js";
|
|
|
20
21
|
import { RenderTag } from "./enums.js";
|
|
21
22
|
import { getTracks } from "./compute/getTracks.js";
|
|
22
23
|
import { isStrictMode, warnAboutStrictMode } from "../isStrictMode.js";
|
|
24
|
+
import { FORM_RENDERER, symbolForFormStateStoreId } from "./FormRenderer/constants.js";
|
|
25
|
+
import { expandFormRenderer } from "./FormRenderer/expandFormRenderer.js";
|
|
23
26
|
export function renderRoutes(_x, _x2, _x3, _x4, _x5) {
|
|
24
27
|
return _renderRoutes.apply(this, arguments);
|
|
25
28
|
}
|
|
@@ -130,8 +133,10 @@ function _renderBrick() {
|
|
|
130
133
|
return output;
|
|
131
134
|
}
|
|
132
135
|
var tplStateStoreId = brickConf[symbolForTplStateStoreId];
|
|
136
|
+
var formStateStoreId = brickConf[symbolForFormStateStoreId];
|
|
133
137
|
var runtimeContext = _objectSpread(_objectSpread({}, _runtimeContext), {}, {
|
|
134
|
-
tplStateStoreId
|
|
138
|
+
tplStateStoreId,
|
|
139
|
+
formStateStoreId
|
|
135
140
|
});
|
|
136
141
|
if (hasOwnProperty(brickConf, symbolForTPlExternalForEachItem)) {
|
|
137
142
|
// The external bricks of a template should restore their `forEachItem`
|
|
@@ -207,7 +212,7 @@ function _renderBrick() {
|
|
|
207
212
|
var _ref2 = _asyncToGenerator(function* () {
|
|
208
213
|
var currentRenderId = ++renderId;
|
|
209
214
|
var output = yield renderControlNode();
|
|
210
|
-
output.blockingList.push(...[...runtimeContext.tplStateStoreMap.values()].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck);
|
|
215
|
+
output.blockingList.push(...[...runtimeContext.tplStateStoreMap.values(), ...runtimeContext.formStateStoreMap.values()].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck);
|
|
211
216
|
yield Promise.all(output.blockingList);
|
|
212
217
|
// Ignore stale renders
|
|
213
218
|
if (renderId === currentRenderId) {
|
|
@@ -236,7 +241,7 @@ function _renderBrick() {
|
|
|
236
241
|
|
|
237
242
|
// Widgets need to be defined before rendering.
|
|
238
243
|
if (/\.tpl-/.test(brickName) && !customTemplates.get(brickName)) {
|
|
239
|
-
yield loadBricksImperatively([brickName], getBrickPackages());
|
|
244
|
+
yield catchLoadBrick(loadBricksImperatively([brickName], getBrickPackages()), brickName, rendererContext.unknownBricks);
|
|
240
245
|
}
|
|
241
246
|
var tplTagName = getTagNameOfCustomTemplate(brickName, (_runtimeContext$app = runtimeContext.app) === null || _runtimeContext$app === void 0 ? void 0 : _runtimeContext$app.id);
|
|
242
247
|
if (tplTagName) {
|
|
@@ -247,11 +252,15 @@ function _renderBrick() {
|
|
|
247
252
|
}
|
|
248
253
|
tplStack.set(tplTagName, tplCount + 1);
|
|
249
254
|
} else if (brickName.includes("-") && !customElements.get(brickName)) {
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
+
if (brickName === FORM_RENDERER) {
|
|
256
|
+
customElements.define(FORM_RENDERER, class FormRendererElement extends HTMLElement {
|
|
257
|
+
get $$typeof() {
|
|
258
|
+
return "form-renderer";
|
|
259
|
+
}
|
|
260
|
+
});
|
|
261
|
+
} else {
|
|
262
|
+
output.blockingList.push(catchLoadBrick(enqueueStableLoadBricks([brickName], getBrickPackages()), brickName, rendererContext.unknownBricks));
|
|
263
|
+
}
|
|
255
264
|
}
|
|
256
265
|
var brick = {
|
|
257
266
|
tag: RenderTag.BRICK,
|
|
@@ -266,12 +275,27 @@ function _renderBrick() {
|
|
|
266
275
|
};
|
|
267
276
|
output.node = brick;
|
|
268
277
|
|
|
278
|
+
// const confProps = brickConf.properties;
|
|
279
|
+
var formData;
|
|
280
|
+
var confProps;
|
|
281
|
+
if (brickName === FORM_RENDERER) {
|
|
282
|
+
var _brickConf$properties;
|
|
283
|
+
var _ref3 = (_brickConf$properties = brickConf.properties) !== null && _brickConf$properties !== void 0 ? _brickConf$properties : {};
|
|
284
|
+
({
|
|
285
|
+
formData
|
|
286
|
+
} = _ref3);
|
|
287
|
+
confProps = _objectWithoutProperties(_ref3, _excluded2);
|
|
288
|
+
_ref3;
|
|
289
|
+
} else {
|
|
290
|
+
confProps = brickConf.properties;
|
|
291
|
+
}
|
|
292
|
+
|
|
269
293
|
// 加载构件属性和加载子构件等任务,可以并行。
|
|
270
294
|
var blockingList = [];
|
|
271
295
|
var trackingContextList = [];
|
|
272
296
|
var loadProperties = /*#__PURE__*/function () {
|
|
273
|
-
var
|
|
274
|
-
brick.properties = yield asyncComputeRealProperties(
|
|
297
|
+
var _ref4 = _asyncToGenerator(function* () {
|
|
298
|
+
brick.properties = yield asyncComputeRealProperties(confProps, runtimeContext, trackingContextList);
|
|
275
299
|
var computedPropsFromHost = brickConf[symbolForAsyncComputedPropsFromHost];
|
|
276
300
|
if (computedPropsFromHost) {
|
|
277
301
|
var _brick$properties;
|
|
@@ -285,7 +309,7 @@ function _renderBrick() {
|
|
|
285
309
|
return brick.properties;
|
|
286
310
|
});
|
|
287
311
|
return function loadProperties() {
|
|
288
|
-
return
|
|
312
|
+
return _ref4.apply(this, arguments);
|
|
289
313
|
};
|
|
290
314
|
}();
|
|
291
315
|
var asyncProperties = loadProperties();
|
|
@@ -294,6 +318,8 @@ function _renderBrick() {
|
|
|
294
318
|
var expandedBrickConf = brickConf;
|
|
295
319
|
if (tplTagName) {
|
|
296
320
|
expandedBrickConf = expandCustomTemplate(tplTagName, brickConf, brick, asyncProperties);
|
|
321
|
+
} else if (brickName === FORM_RENDERER) {
|
|
322
|
+
expandedBrickConf = expandFormRenderer(formData, brickConf, brick, asyncProperties);
|
|
297
323
|
}
|
|
298
324
|
if (expandedBrickConf.portal) {
|
|
299
325
|
// A portal brick has no slotId.
|
|
@@ -308,13 +334,13 @@ function _renderBrick() {
|
|
|
308
334
|
childRuntimeContext = runtimeContext;
|
|
309
335
|
}
|
|
310
336
|
var loadChildren = /*#__PURE__*/function () {
|
|
311
|
-
var
|
|
337
|
+
var _ref5 = _asyncToGenerator(function* () {
|
|
312
338
|
var slots = childrenToSlots(expandedBrickConf.children, expandedBrickConf.slots);
|
|
313
339
|
if (!slots) {
|
|
314
340
|
return;
|
|
315
341
|
}
|
|
316
|
-
var rendered = yield Promise.all(Object.entries(slots).map(
|
|
317
|
-
var [childSlotId, slotConf] =
|
|
342
|
+
var rendered = yield Promise.all(Object.entries(slots).map(_ref6 => {
|
|
343
|
+
var [childSlotId, slotConf] = _ref6;
|
|
318
344
|
return slotConf.type !== "routes" ? renderBricks(brick, slotConf.bricks, childRuntimeContext, rendererContext, childSlotId, tplStack) : renderRoutes(brick, slotConf.routes, childRuntimeContext, rendererContext, childSlotId);
|
|
319
345
|
}));
|
|
320
346
|
var childrenOutput = _objectSpread(_objectSpread({}, output), {}, {
|
|
@@ -332,7 +358,7 @@ function _renderBrick() {
|
|
|
332
358
|
}));
|
|
333
359
|
});
|
|
334
360
|
return function loadChildren() {
|
|
335
|
-
return
|
|
361
|
+
return _ref5.apply(this, arguments);
|
|
336
362
|
};
|
|
337
363
|
}();
|
|
338
364
|
blockingList.push(loadChildren());
|
|
@@ -433,4 +459,10 @@ export function childrenToSlots(children, originalSlots) {
|
|
|
433
459
|
}
|
|
434
460
|
return newSlots;
|
|
435
461
|
}
|
|
462
|
+
function catchLoadBrick(promise, brickName, unknownBricks) {
|
|
463
|
+
return unknownBricks === "silent" ? promise.catch(e => {
|
|
464
|
+
// eslint-disable-next-line no-console
|
|
465
|
+
console.error("Load brick \"".concat(brickName, "\" failed:"), e);
|
|
466
|
+
}) : promise;
|
|
467
|
+
}
|
|
436
468
|
//# sourceMappingURL=Renderer.js.map
|