@next-core/runtime 1.4.3 → 1.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/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 +3 -2
- package/dist/cjs/internal/Router.js.map +1 -1
- package/dist/cjs/internal/bindListeners.js +9 -2
- package/dist/cjs/internal/bindListeners.js.map +1 -1
- package/dist/cjs/internal/compute/evaluate.js +21 -6
- package/dist/cjs/internal/compute/evaluate.js.map +1 -1
- package/dist/cjs/internal/compute/listenOnTrackingContext.js +7 -9
- package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/cjs/internal/data/DataStore.js +2 -2
- package/dist/cjs/internal/data/DataStore.js.map +1 -1
- package/dist/cjs/internal/interfaces.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +6 -3
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/esm/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 +3 -2
- package/dist/esm/internal/Router.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +9 -2
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +22 -9
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/compute/listenOnTrackingContext.js +7 -9
- package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/esm/internal/data/DataStore.js +2 -2
- package/dist/esm/internal/data/DataStore.js.map +1 -1
- package/dist/esm/internal/interfaces.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +6 -3
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/types/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/interfaces.d.ts +6 -0
- package/package.json +2 -2
|
@@ -1,13 +1,11 @@
|
|
|
1
1
|
import _objectSpread from "@babel/runtime/helpers/objectSpread2";
|
|
2
|
-
import _objectWithoutProperties from "@babel/runtime/helpers/objectWithoutProperties";
|
|
3
2
|
import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
|
|
4
|
-
var _excluded = ["pendingPermissionsPreCheck", "tplStateStoreMap", "tplStateStoreScope"];
|
|
5
3
|
import { cook, preevaluate, shouldAllowRecursiveEvaluations } from "@next-core/cook";
|
|
6
4
|
import { loadProcessorsImperatively } from "@next-core/loader";
|
|
7
5
|
import { supply } from "@next-core/supply";
|
|
8
6
|
import { hasOwnProperty } from "@next-core/utils/general";
|
|
9
7
|
import { strictCollectMemberUsage } from "@next-core/utils/storyboard";
|
|
10
|
-
import { cloneDeep } from "lodash";
|
|
8
|
+
import { cloneDeep, omit } from "lodash";
|
|
11
9
|
import { customProcessors } from "../../CustomProcessors.js";
|
|
12
10
|
import { checkPermissionsUsage, storyboardFunctions } from "./StoryboardFunctions.js";
|
|
13
11
|
import { getGeneralGlobals } from "./getGeneralGlobals.js";
|
|
@@ -24,6 +22,7 @@ import { widgetI18nFactory } from "./WidgetI18n.js";
|
|
|
24
22
|
import { widgetImagesFactory } from "./images.js";
|
|
25
23
|
import { hasInstalledApp, waitForCheckingApps } from "../checkInstalledApps.js";
|
|
26
24
|
import { isStrictMode, warnAboutStrictMode } from "../../isStrictMode.js";
|
|
25
|
+
import { getFormStateStore } from "../FormRenderer/utils.js";
|
|
27
26
|
var symbolForRaw = Symbol.for("pre.evaluated.raw");
|
|
28
27
|
var symbolForContext = Symbol.for("pre.evaluated.context");
|
|
29
28
|
export function isPreEvaluated(raw) {
|
|
@@ -76,12 +75,7 @@ runtimeContext) {
|
|
|
76
75
|
// If the `raw` is not a string, it must be a pre-evaluated object.
|
|
77
76
|
// Then fulfil the context, and restore the original `raw`.
|
|
78
77
|
|
|
79
|
-
var
|
|
80
|
-
pendingPermissionsPreCheck: _1,
|
|
81
|
-
tplStateStoreMap: _2,
|
|
82
|
-
tplStateStoreScope: _3
|
|
83
|
-
} = runtimeContext,
|
|
84
|
-
passByRuntimeContext = _objectWithoutProperties(runtimeContext, _excluded);
|
|
78
|
+
var passByRuntimeContext = omit(runtimeContext, ["pendingPermissionsPreCheck", "tplStateStoreMap", "tplStateStoreScope", "formStateStoreMap", "formStateStoreScope"]);
|
|
85
79
|
runtimeContext = _objectSpread(_objectSpread({}, raw[symbolForContext]), passByRuntimeContext);
|
|
86
80
|
raw = raw[symbolForRaw];
|
|
87
81
|
}
|
|
@@ -156,6 +150,11 @@ runtimeContext) {
|
|
|
156
150
|
if (attemptToVisitGlobals.has("STATE") || !strict && attemptToVisitGlobals.has("TPL")) {
|
|
157
151
|
tplStateStore = getTplStateStore(runtimeContext, "STATE", ": \"".concat(raw, "\""));
|
|
158
152
|
}
|
|
153
|
+
var usedFormStates;
|
|
154
|
+
var formStateStore;
|
|
155
|
+
if (attemptToVisitGlobals.has("FORM_STATE")) {
|
|
156
|
+
formStateStore = getFormStateStore(runtimeContext, "FORM_STATE", ": \"".concat(raw, "\""));
|
|
157
|
+
}
|
|
159
158
|
var devHook = getDevHook();
|
|
160
159
|
if (isAsync || devHook) {
|
|
161
160
|
if (attemptToVisitGlobals.has("CTX")) {
|
|
@@ -173,6 +172,10 @@ runtimeContext) {
|
|
|
173
172
|
}
|
|
174
173
|
isAsync && blockingList.push(tplStateStore.waitFor(usedStates));
|
|
175
174
|
}
|
|
175
|
+
if (formStateStore) {
|
|
176
|
+
usedFormStates = strictCollectMemberUsage(raw, "FORM_STATE");
|
|
177
|
+
isAsync && blockingList.push(formStateStore.waitFor(usedFormStates));
|
|
178
|
+
}
|
|
176
179
|
if (attemptToVisitGlobals.has("PROCESSORS")) {
|
|
177
180
|
usedProcessors = strictCollectMemberUsage(raw, "PROCESSORS", 2);
|
|
178
181
|
isAsync && blockingList.push(loadProcessorsImperatively(usedProcessors, getBrickPackages()));
|
|
@@ -244,6 +247,16 @@ runtimeContext) {
|
|
|
244
247
|
case "FLAGS":
|
|
245
248
|
globalVariables[variableName] = getReadOnlyProxy(flags);
|
|
246
249
|
break;
|
|
250
|
+
case "FORM_STATE":
|
|
251
|
+
globalVariables[variableName] = getDynamicReadOnlyProxy({
|
|
252
|
+
get(target, key) {
|
|
253
|
+
return formStateStore.getValue(key);
|
|
254
|
+
},
|
|
255
|
+
ownKeys() {
|
|
256
|
+
return Array.from(usedFormStates);
|
|
257
|
+
}
|
|
258
|
+
});
|
|
259
|
+
break;
|
|
247
260
|
case "HASH":
|
|
248
261
|
globalVariables[variableName] = location.hash;
|
|
249
262
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","names":["cook","preevaluate","shouldAllowRecursiveEvaluations","loadProcessorsImperatively","supply","hasOwnProperty","strictCollectMemberUsage","cloneDeep","customProcessors","checkPermissionsUsage","storyboardFunctions","getGeneralGlobals","getDynamicReadOnlyProxy","getReadOnlyProxy","getDevHook","getMedia","getStorageItem","getBrickPackages","getRuntime","getTplStateStore","widgetFunctions","collectAppGetMenuUsage","collectInstalledAppsHasUsage","fetchMenuById","getMenuById","widgetI18nFactory","widgetImagesFactory","hasInstalledApp","waitForCheckingApps","isStrictMode","warnAboutStrictMode","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","_x","_x2","_x3","_asyncEvaluate","apply","arguments","_asyncToGenerator","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","length","undefined","isAsync","pendingPermissionsPreCheck","_1","tplStateStoreMap","_2","tplStateStoreScope","_3","passByRuntimeContext","_objectWithoutProperties","_excluded","_objectSpread","menuUsage","usedArgs","Set","hasAppUsage","precooked","withParent","hooks","beforeVisitGlobal","node","parent","message","concat","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","Object","keys","usedCtx","usedProcessors","usedStates","tplStateStore","strict","devHook","push","ctxStore","waitFor","usedTpls","tpl","add","attemptToCheckPermissions","usedFunctions","size","usedMenuIds","map","menuId","_runtimeContext$overr","_match$params","app","currentApp","location","query","match","flags","sys","data","event","overrideApp","variableName","hash","substring","getMenu","get","target","key","getValue","ownKeys","Array","from","console","forEachItem","getItem","getMiscSettings","URLSearchParams","params","pathname","pkg","t","k","fromEntries","getAll","assign","appendI18nNamespace","result","expression","source"],"sources":["../../../../src/internal/compute/evaluate.ts"],"sourcesContent":["import {\n cook,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/cook\";\nimport { loadProcessorsImperatively } from \"@next-core/loader\";\nimport { supply } from \"@next-core/supply\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { cloneDeep } from \"lodash\";\nimport { customProcessors } from \"../../CustomProcessors.js\";\nimport {\n checkPermissionsUsage,\n storyboardFunctions,\n} from \"./StoryboardFunctions.js\";\nimport { getGeneralGlobals } from \"./getGeneralGlobals.js\";\nimport {\n getDynamicReadOnlyProxy,\n getReadOnlyProxy,\n} from \"../proxyFactories.js\";\nimport { getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport { getBrickPackages, getRuntime } from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport {\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"./collectMemberCallUsage.js\";\nimport { fetchMenuById, getMenuById } from \"../menu/fetchMenuById.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { widgetImagesFactory } from \"./images.js\";\nimport { hasInstalledApp, waitForCheckingApps } from \"../checkInstalledApps.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\n\nconst symbolForRaw = Symbol.for(\"pre.evaluated.raw\");\nconst symbolForContext = Symbol.for(\"pre.evaluated.context\");\n\nexport interface PreEvaluated {\n [symbolForRaw]: string;\n [symbolForContext]: RuntimeContext;\n}\n\nexport interface EvaluateOptions {\n lazy?: boolean;\n isReEvaluation?: boolean;\n evaluationId?: number;\n}\n\nexport function isPreEvaluated(raw: unknown): raw is PreEvaluated {\n return !!(raw as PreEvaluated)?.[symbolForRaw];\n}\n\nexport function getPreEvaluatedRaw(pre: PreEvaluated): string {\n return pre[symbolForRaw];\n}\n\nexport function shouldDismissMarkingComputed(\n raw: string | PreEvaluated\n): boolean {\n if (typeof raw === \"string\") {\n return shouldAllowRecursiveEvaluations(raw);\n }\n return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);\n}\n\nconst possibleErrorConstructs = new WeakSet<ErrorConstructor>([\n SyntaxError,\n TypeError,\n ReferenceError,\n]);\n\nexport function getCookErrorConstructor(error: any): ErrorConstructor {\n return possibleErrorConstructs.has(error.constructor)\n ? error.constructor\n : TypeError;\n}\n\nexport async function asyncEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { blockingList, run } = lowLevelEvaluate(\n raw,\n runtimeContext,\n options,\n true\n );\n await Promise.all(blockingList);\n return run();\n}\n\nexport function evaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { run } = lowLevelEvaluate(raw, runtimeContext, options, false);\n return run();\n}\n\nfunction lowLevelEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options: EvaluateOptions = {},\n isAsync?: boolean\n): {\n blockingList: (Promise<unknown> | undefined)[];\n run: Function;\n} {\n const blockingList: (Promise<unknown> | undefined)[] = [];\n if (typeof raw !== \"string\") {\n // If the `raw` is not a string, it must be a pre-evaluated object.\n // Then fulfil the context, and restore the original `raw`.\n\n const {\n pendingPermissionsPreCheck: _1,\n tplStateStoreMap: _2,\n tplStateStoreScope: _3,\n ...passByRuntimeContext\n } = runtimeContext;\n\n runtimeContext = {\n ...raw[symbolForContext],\n ...passByRuntimeContext,\n };\n raw = raw[symbolForRaw];\n }\n\n // Collect `APP.getMenu(...)` usage before evaluating.\n const menuUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n const hasAppUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult;\n try {\n precooked = preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n collectAppGetMenuUsage(menuUsage, node, parent!);\n collectInstalledAppsHasUsage(hasAppUsage, node, parent!);\n },\n },\n });\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: {} },\n // error: message,\n // });\n // return;\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n\n if (menuUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"APP.getMenu\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n if (hasAppUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"INSTALLED_APPS.has\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n const globalVariables: Record<string, unknown> = {};\n const { attemptToVisitGlobals } = precooked;\n\n // Ignore evaluating if required `event/DATA` is missing in\n // context. Since they are are provided in different context, whenever\n // missing one of them, memorize the current context for later consuming.\n if (\n options.lazy ||\n (attemptToVisitGlobals.has(\"EVENT\") &&\n !hasOwnProperty(runtimeContext, \"event\")) ||\n (attemptToVisitGlobals.has(\"DATA\") &&\n !hasOwnProperty(runtimeContext, \"data\"))\n ) {\n return {\n blockingList,\n run() {\n return Object.keys(runtimeContext).length > 0\n ? ({\n [symbolForRaw]: raw,\n [symbolForContext]: runtimeContext,\n } as PreEvaluated)\n : raw;\n },\n };\n }\n\n let usedCtx: Set<string>;\n let usedProcessors: Set<string>;\n let usedStates: Set<string>;\n let tplStateStore: DataStore<\"STATE\"> | undefined;\n const strict = isStrictMode(runtimeContext);\n\n // For existed TPL usage, treat it as a STATE.\n if (\n attemptToVisitGlobals.has(\"STATE\") ||\n (!strict && attemptToVisitGlobals.has(\"TPL\"))\n ) {\n tplStateStore = getTplStateStore(runtimeContext, \"STATE\", `: \"${raw}\"`);\n }\n\n const devHook = getDevHook();\n if (isAsync || devHook) {\n if (attemptToVisitGlobals.has(\"CTX\")) {\n usedCtx = strictCollectMemberUsage(raw, \"CTX\");\n isAsync && blockingList.push(runtimeContext.ctxStore.waitFor(usedCtx));\n }\n\n if (tplStateStore) {\n usedStates = strictCollectMemberUsage(raw, \"STATE\");\n // istanbul ignore if\n if (!strict) {\n const usedTpls = strictCollectMemberUsage(raw, \"TPL\");\n for (const tpl of usedTpls) {\n usedStates.add(tpl);\n }\n }\n isAsync && blockingList.push(tplStateStore.waitFor(usedStates));\n }\n\n if (attemptToVisitGlobals.has(\"PROCESSORS\")) {\n usedProcessors = strictCollectMemberUsage(raw, \"PROCESSORS\", 2);\n isAsync &&\n blockingList.push(\n loadProcessorsImperatively(usedProcessors, getBrickPackages())\n );\n }\n }\n\n if (isAsync) {\n let attemptToCheckPermissions = attemptToVisitGlobals.has(\"PERMISSIONS\");\n // There maybe `PERMISSIONS.check()` usage in functions\n if (!attemptToCheckPermissions && attemptToVisitGlobals.has(\"FN\")) {\n const usedFunctions = [...strictCollectMemberUsage(raw, \"FN\")];\n attemptToCheckPermissions = checkPermissionsUsage(usedFunctions);\n }\n\n if (attemptToCheckPermissions) {\n blockingList.push(...runtimeContext.pendingPermissionsPreCheck);\n }\n\n if (menuUsage.usedArgs.size > 0) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) => fetchMenuById(menuId, runtimeContext))\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(waitForCheckingApps([...hasAppUsage.usedArgs]));\n }\n }\n\n return {\n blockingList,\n run() {\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n ctxStore,\n data,\n event,\n } = runtimeContext;\n const app = runtimeContext.overrideApp ?? currentApp;\n\n for (const variableName of attemptToVisitGlobals) {\n switch (variableName) {\n // case \"ALIAS\":\n case \"ANCHOR\":\n globalVariables[variableName] = location.hash\n ? location.hash.substring(1)\n : null;\n break;\n case \"APP\":\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedCtx);\n },\n });\n break;\n case \"DATA\":\n globalVariables[variableName] = data;\n break;\n case \"EVENT\":\n globalVariables[variableName] = event;\n break;\n case \"FLAGS\":\n globalVariables[variableName] = getReadOnlyProxy(flags);\n break;\n case \"HASH\":\n globalVariables[variableName] = location.hash;\n break;\n case \"INSTALLED_APPS\":\n globalVariables[variableName] = getReadOnlyProxy({\n has: hasInstalledApp,\n });\n break;\n case \"ITEM\":\n if (!hasOwnProperty(runtimeContext, \"forEachItem\")) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`ITEM\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext.forEachItem;\n }\n break;\n case \"LOCAL_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"local\"),\n });\n break;\n case \"MEDIA\":\n globalVariables[variableName] = getReadOnlyProxy(getMedia());\n break;\n case \"MISC\":\n globalVariables[variableName] = getRuntime().getMiscSettings();\n break;\n case \"PARAMS\":\n globalVariables[variableName] = new URLSearchParams(query);\n break;\n case \"PATH\":\n globalVariables[variableName] = getReadOnlyProxy(\n match?.params ?? {}\n );\n break;\n case \"PATH_NAME\":\n globalVariables[variableName] = location.pathname;\n break;\n case \"PROCESSORS\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n const pkg = customProcessors.get(key as string);\n if (!pkg) {\n throw new Error(\n `'PROCESSORS.${\n key as string\n }' is not registered! Have you installed the relevant brick package?`\n );\n }\n return getDynamicReadOnlyProxy({\n get(t, k) {\n return pkg.get(k as string);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n });\n },\n ownKeys() {\n return Array.from(usedProcessors);\n },\n });\n break;\n case \"QUERY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.getAll(key)])\n );\n // case \"SEGUE\":\n break;\n case \"SESSION_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"session\"),\n });\n break;\n // istanbul ignore next\n case \"TPL\":\n warnAboutStrictMode(\n strict,\n 'Using \"TPL\" in expression',\n `check your expression: \"${raw}\"`\n );\n if (strict) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return tplStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedStates);\n },\n });\n break;\n case \"SYS\":\n globalVariables[variableName] = getReadOnlyProxy(sys ?? {});\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = widgetImagesFactory;\n break;\n case \"__WIDGET_I18N__\":\n globalVariables[variableName] = widgetI18nFactory;\n break;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app: runtimeContext.app,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n globalVariables\n ),\n });\n // const detail = { raw, context: globalVariables, result };\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail,\n // });\n // } else {\n // devtoolsHookEmit(\"evaluation\", detail);\n // }\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: globalVariables },\n // error: message,\n // });\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n },\n };\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"evaluate.js","names":["cook","preevaluate","shouldAllowRecursiveEvaluations","loadProcessorsImperatively","supply","hasOwnProperty","strictCollectMemberUsage","cloneDeep","omit","customProcessors","checkPermissionsUsage","storyboardFunctions","getGeneralGlobals","getDynamicReadOnlyProxy","getReadOnlyProxy","getDevHook","getMedia","getStorageItem","getBrickPackages","getRuntime","getTplStateStore","widgetFunctions","collectAppGetMenuUsage","collectInstalledAppsHasUsage","fetchMenuById","getMenuById","widgetI18nFactory","widgetImagesFactory","hasInstalledApp","waitForCheckingApps","isStrictMode","warnAboutStrictMode","getFormStateStore","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","_x","_x2","_x3","_asyncEvaluate","apply","arguments","_asyncToGenerator","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","length","undefined","isAsync","passByRuntimeContext","_objectSpread","menuUsage","usedArgs","Set","hasAppUsage","precooked","withParent","hooks","beforeVisitGlobal","node","parent","message","concat","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","Object","keys","usedCtx","usedProcessors","usedStates","tplStateStore","strict","usedFormStates","formStateStore","devHook","push","ctxStore","waitFor","usedTpls","tpl","add","attemptToCheckPermissions","usedFunctions","pendingPermissionsPreCheck","size","usedMenuIds","map","menuId","_runtimeContext$overr","_match$params","app","currentApp","location","query","match","flags","sys","data","event","overrideApp","variableName","hash","substring","getMenu","get","target","key","getValue","ownKeys","Array","from","console","forEachItem","getItem","getMiscSettings","URLSearchParams","params","pathname","pkg","t","k","fromEntries","getAll","assign","appendI18nNamespace","result","expression","source"],"sources":["../../../../src/internal/compute/evaluate.ts"],"sourcesContent":["import {\n cook,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/cook\";\nimport { loadProcessorsImperatively } from \"@next-core/loader\";\nimport { supply } from \"@next-core/supply\";\nimport { hasOwnProperty } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport type { RuntimeContext } from \"../interfaces.js\";\nimport { cloneDeep, omit } from \"lodash\";\nimport { customProcessors } from \"../../CustomProcessors.js\";\nimport {\n checkPermissionsUsage,\n storyboardFunctions,\n} from \"./StoryboardFunctions.js\";\nimport { getGeneralGlobals } from \"./getGeneralGlobals.js\";\nimport {\n getDynamicReadOnlyProxy,\n getReadOnlyProxy,\n} from \"../proxyFactories.js\";\nimport { getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport { getBrickPackages, getRuntime } from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport {\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"./collectMemberCallUsage.js\";\nimport { fetchMenuById, getMenuById } from \"../menu/fetchMenuById.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { widgetImagesFactory } from \"./images.js\";\nimport { hasInstalledApp, waitForCheckingApps } from \"../checkInstalledApps.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\nimport { getFormStateStore } from \"../FormRenderer/utils.js\";\n\nconst symbolForRaw = Symbol.for(\"pre.evaluated.raw\");\nconst symbolForContext = Symbol.for(\"pre.evaluated.context\");\n\nexport interface PreEvaluated {\n [symbolForRaw]: string;\n [symbolForContext]: RuntimeContext;\n}\n\nexport interface EvaluateOptions {\n lazy?: boolean;\n isReEvaluation?: boolean;\n evaluationId?: number;\n}\n\nexport function isPreEvaluated(raw: unknown): raw is PreEvaluated {\n return !!(raw as PreEvaluated)?.[symbolForRaw];\n}\n\nexport function getPreEvaluatedRaw(pre: PreEvaluated): string {\n return pre[symbolForRaw];\n}\n\nexport function shouldDismissMarkingComputed(\n raw: string | PreEvaluated\n): boolean {\n if (typeof raw === \"string\") {\n return shouldAllowRecursiveEvaluations(raw);\n }\n return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);\n}\n\nconst possibleErrorConstructs = new WeakSet<ErrorConstructor>([\n SyntaxError,\n TypeError,\n ReferenceError,\n]);\n\nexport function getCookErrorConstructor(error: any): ErrorConstructor {\n return possibleErrorConstructs.has(error.constructor)\n ? error.constructor\n : TypeError;\n}\n\nexport async function asyncEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { blockingList, run } = lowLevelEvaluate(\n raw,\n runtimeContext,\n options,\n true\n );\n await Promise.all(blockingList);\n return run();\n}\n\nexport function evaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options?: EvaluateOptions\n): Promise<unknown> {\n const { run } = lowLevelEvaluate(raw, runtimeContext, options, false);\n return run();\n}\n\nfunction lowLevelEvaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: RuntimeContext,\n options: EvaluateOptions = {},\n isAsync?: boolean\n): {\n blockingList: (Promise<unknown> | undefined)[];\n run: Function;\n} {\n const blockingList: (Promise<unknown> | undefined)[] = [];\n if (typeof raw !== \"string\") {\n // If the `raw` is not a string, it must be a pre-evaluated object.\n // Then fulfil the context, and restore the original `raw`.\n\n const passByRuntimeContext = omit(runtimeContext, [\n \"pendingPermissionsPreCheck\",\n \"tplStateStoreMap\",\n \"tplStateStoreScope\",\n \"formStateStoreMap\",\n \"formStateStoreScope\",\n ]);\n\n runtimeContext = {\n ...raw[symbolForContext],\n ...passByRuntimeContext,\n };\n raw = raw[symbolForRaw];\n }\n\n // Collect `APP.getMenu(...)` usage before evaluating.\n const menuUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n const hasAppUsage: MemberCallUsage = {\n usedArgs: new Set(),\n };\n\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult;\n try {\n precooked = preevaluate(raw, {\n withParent: true,\n hooks: {\n beforeVisitGlobal(node, parent) {\n collectAppGetMenuUsage(menuUsage, node, parent!);\n collectInstalledAppsHasUsage(hasAppUsage, node, parent!);\n },\n },\n });\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: {} },\n // error: message,\n // });\n // return;\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n\n if (menuUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"APP.getMenu\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n if (hasAppUsage.hasNonStaticUsage) {\n throw new Error(\n `Non-static usage of \"INSTALLED_APPS.has\" is prohibited in v3, check your expression: \"${raw}\"`\n );\n }\n\n const globalVariables: Record<string, unknown> = {};\n const { attemptToVisitGlobals } = precooked;\n\n // Ignore evaluating if required `event/DATA` is missing in\n // context. Since they are are provided in different context, whenever\n // missing one of them, memorize the current context for later consuming.\n if (\n options.lazy ||\n (attemptToVisitGlobals.has(\"EVENT\") &&\n !hasOwnProperty(runtimeContext, \"event\")) ||\n (attemptToVisitGlobals.has(\"DATA\") &&\n !hasOwnProperty(runtimeContext, \"data\"))\n ) {\n return {\n blockingList,\n run() {\n return Object.keys(runtimeContext).length > 0\n ? ({\n [symbolForRaw]: raw,\n [symbolForContext]: runtimeContext,\n } as PreEvaluated)\n : raw;\n },\n };\n }\n\n let usedCtx: Set<string>;\n let usedProcessors: Set<string>;\n let usedStates: Set<string>;\n let tplStateStore: DataStore<\"STATE\"> | undefined;\n const strict = isStrictMode(runtimeContext);\n\n // For existed TPL usage, treat it as a STATE.\n if (\n attemptToVisitGlobals.has(\"STATE\") ||\n (!strict && attemptToVisitGlobals.has(\"TPL\"))\n ) {\n tplStateStore = getTplStateStore(runtimeContext, \"STATE\", `: \"${raw}\"`);\n }\n\n let usedFormStates: Set<string>;\n let formStateStore: DataStore<\"FORM_STATE\"> | undefined;\n if (attemptToVisitGlobals.has(\"FORM_STATE\")) {\n formStateStore = getFormStateStore(\n runtimeContext,\n \"FORM_STATE\",\n `: \"${raw}\"`\n );\n }\n\n const devHook = getDevHook();\n if (isAsync || devHook) {\n if (attemptToVisitGlobals.has(\"CTX\")) {\n usedCtx = strictCollectMemberUsage(raw, \"CTX\");\n isAsync && blockingList.push(runtimeContext.ctxStore.waitFor(usedCtx));\n }\n\n if (tplStateStore) {\n usedStates = strictCollectMemberUsage(raw, \"STATE\");\n // istanbul ignore if\n if (!strict) {\n const usedTpls = strictCollectMemberUsage(raw, \"TPL\");\n for (const tpl of usedTpls) {\n usedStates.add(tpl);\n }\n }\n isAsync && blockingList.push(tplStateStore.waitFor(usedStates));\n }\n\n if (formStateStore) {\n usedFormStates = strictCollectMemberUsage(raw, \"FORM_STATE\");\n isAsync && blockingList.push(formStateStore.waitFor(usedFormStates));\n }\n\n if (attemptToVisitGlobals.has(\"PROCESSORS\")) {\n usedProcessors = strictCollectMemberUsage(raw, \"PROCESSORS\", 2);\n isAsync &&\n blockingList.push(\n loadProcessorsImperatively(usedProcessors, getBrickPackages())\n );\n }\n }\n\n if (isAsync) {\n let attemptToCheckPermissions = attemptToVisitGlobals.has(\"PERMISSIONS\");\n // There maybe `PERMISSIONS.check()` usage in functions\n if (!attemptToCheckPermissions && attemptToVisitGlobals.has(\"FN\")) {\n const usedFunctions = [...strictCollectMemberUsage(raw, \"FN\")];\n attemptToCheckPermissions = checkPermissionsUsage(usedFunctions);\n }\n\n if (attemptToCheckPermissions) {\n blockingList.push(...runtimeContext.pendingPermissionsPreCheck);\n }\n\n if (menuUsage.usedArgs.size > 0) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) => fetchMenuById(menuId, runtimeContext))\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(waitForCheckingApps([...hasAppUsage.usedArgs]));\n }\n }\n\n return {\n blockingList,\n run() {\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n ctxStore,\n data,\n event,\n } = runtimeContext;\n const app = runtimeContext.overrideApp ?? currentApp;\n\n for (const variableName of attemptToVisitGlobals) {\n switch (variableName) {\n // case \"ALIAS\":\n case \"ANCHOR\":\n globalVariables[variableName] = location.hash\n ? location.hash.substring(1)\n : null;\n break;\n case \"APP\":\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedCtx);\n },\n });\n break;\n case \"DATA\":\n globalVariables[variableName] = data;\n break;\n case \"EVENT\":\n globalVariables[variableName] = event;\n break;\n case \"FLAGS\":\n globalVariables[variableName] = getReadOnlyProxy(flags);\n break;\n case \"FORM_STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return formStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedFormStates);\n },\n });\n break;\n case \"HASH\":\n globalVariables[variableName] = location.hash;\n break;\n case \"INSTALLED_APPS\":\n globalVariables[variableName] = getReadOnlyProxy({\n has: hasInstalledApp,\n });\n break;\n case \"ITEM\":\n if (!hasOwnProperty(runtimeContext, \"forEachItem\")) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`ITEM\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext.forEachItem;\n }\n break;\n case \"LOCAL_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"local\"),\n });\n break;\n case \"MEDIA\":\n globalVariables[variableName] = getReadOnlyProxy(getMedia());\n break;\n case \"MISC\":\n globalVariables[variableName] = getRuntime().getMiscSettings();\n break;\n case \"PARAMS\":\n globalVariables[variableName] = new URLSearchParams(query);\n break;\n case \"PATH\":\n globalVariables[variableName] = getReadOnlyProxy(\n match?.params ?? {}\n );\n break;\n case \"PATH_NAME\":\n globalVariables[variableName] = location.pathname;\n break;\n case \"PROCESSORS\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n const pkg = customProcessors.get(key as string);\n if (!pkg) {\n throw new Error(\n `'PROCESSORS.${\n key as string\n }' is not registered! Have you installed the relevant brick package?`\n );\n }\n return getDynamicReadOnlyProxy({\n get(t, k) {\n return pkg.get(k as string);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n });\n },\n ownKeys() {\n return Array.from(usedProcessors);\n },\n });\n break;\n case \"QUERY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.getAll(key)])\n );\n // case \"SEGUE\":\n break;\n case \"SESSION_STORAGE\":\n globalVariables[variableName] = getReadOnlyProxy({\n getItem: getStorageItem(\"session\"),\n });\n break;\n // istanbul ignore next\n case \"TPL\":\n warnAboutStrictMode(\n strict,\n 'Using \"TPL\" in expression',\n `check your expression: \"${raw}\"`\n );\n if (strict) {\n break;\n }\n // eslint-disable-next-line no-fallthrough\n case \"STATE\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(target, key) {\n return tplStateStore!.getValue(key as string);\n },\n ownKeys() {\n return Array.from(usedStates);\n },\n });\n break;\n case \"SYS\":\n globalVariables[variableName] = getReadOnlyProxy(sys ?? {});\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = widgetImagesFactory;\n break;\n case \"__WIDGET_I18N__\":\n globalVariables[variableName] = widgetI18nFactory;\n break;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app: runtimeContext.app,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n globalVariables\n ),\n });\n // const detail = { raw, context: globalVariables, result };\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail,\n // });\n // } else {\n // devtoolsHookEmit(\"evaluation\", detail);\n // }\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n // if (options.isReEvaluation) {\n // devtoolsHookEmit(\"re-evaluation\", {\n // id: options.evaluationId,\n // detail: { raw, context: globalVariables },\n // error: message,\n // });\n // } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n // }\n }\n },\n };\n}\n"],"mappings":"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"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { setProperties } from "./setProperties.js";
|
|
2
2
|
import { getTplStateStore } from "../CustomTemplates/utils.js";
|
|
3
|
+
import { getFormStateStore } from "../FormRenderer/utils.js";
|
|
3
4
|
export function listenOnTrackingContext(brick, trackingContextList) {
|
|
4
5
|
var _loop = function (track) {
|
|
5
6
|
var listener = () => {
|
|
@@ -20,15 +21,12 @@ export function listenOnTrackingContext(brick, trackingContextList) {
|
|
|
20
21
|
tplStateStore.onChange(stateName, listener);
|
|
21
22
|
}
|
|
22
23
|
}
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
// )?.eventTarget?.addEventListener("formstate.change", listener);
|
|
30
|
-
// }
|
|
31
|
-
// }
|
|
24
|
+
if (track.formStateNames) {
|
|
25
|
+
var formStateStore = getFormStateStore(brick.runtimeContext, "FORM_STATE", ": \"".concat(track.propValue, "\""));
|
|
26
|
+
for (var _stateName of track.formStateNames) {
|
|
27
|
+
formStateStore.onChange(_stateName, listener);
|
|
28
|
+
}
|
|
29
|
+
}
|
|
32
30
|
};
|
|
33
31
|
for (var track of trackingContextList) {
|
|
34
32
|
_loop(track);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"listenOnTrackingContext.js","names":["setProperties","getTplStateStore","listenOnTrackingContext","brick","trackingContextList","_loop","track","listener","element","propName","propValue","runtimeContext","contextNames","contextName","ctxStore","onChange","stateNames","tplStateStore","concat","stateName"],"sources":["../../../../src/internal/compute/listenOnTrackingContext.ts"],"sourcesContent":["import { setProperties } from \"./setProperties.js\";\nimport type { RuntimeBrick } from \"../interfaces.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\n\nexport interface TrackingContextItem {\n contextNames: string[] | Set<string> | false;\n stateNames: string[] | Set<string> | false;\n formStateNames: string[] | Set<string> | false;\n propName: string;\n propValue: unknown;\n}\n\nexport function listenOnTrackingContext(\n brick: RuntimeBrick,\n trackingContextList: TrackingContextItem[]\n): void {\n for (const track of trackingContextList) {\n const listener = (): void => {\n if (brick.element) {\n setProperties(\n brick.element,\n { [track.propName]: track.propValue },\n brick.runtimeContext\n );\n }\n };\n if (track.contextNames) {\n for (const contextName of track.contextNames) {\n brick.runtimeContext.ctxStore.onChange(contextName, listener);\n }\n }\n if (track.stateNames) {\n const tplStateStore = getTplStateStore(\n brick.runtimeContext,\n \"STATE\",\n `: \"${track.propValue}\"`\n );\n for (const stateName of track.stateNames) {\n tplStateStore.onChange(stateName, listener);\n }\n }\n
|
|
1
|
+
{"version":3,"file":"listenOnTrackingContext.js","names":["setProperties","getTplStateStore","getFormStateStore","listenOnTrackingContext","brick","trackingContextList","_loop","track","listener","element","propName","propValue","runtimeContext","contextNames","contextName","ctxStore","onChange","stateNames","tplStateStore","concat","stateName","formStateNames","formStateStore"],"sources":["../../../../src/internal/compute/listenOnTrackingContext.ts"],"sourcesContent":["import { setProperties } from \"./setProperties.js\";\nimport type { RuntimeBrick } from \"../interfaces.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { getFormStateStore } from \"../FormRenderer/utils.js\";\n\nexport interface TrackingContextItem {\n contextNames: string[] | Set<string> | false;\n stateNames: string[] | Set<string> | false;\n formStateNames: string[] | Set<string> | false;\n propName: string;\n propValue: unknown;\n}\n\nexport function listenOnTrackingContext(\n brick: RuntimeBrick,\n trackingContextList: TrackingContextItem[]\n): void {\n for (const track of trackingContextList) {\n const listener = (): void => {\n if (brick.element) {\n setProperties(\n brick.element,\n { [track.propName]: track.propValue },\n brick.runtimeContext\n );\n }\n };\n if (track.contextNames) {\n for (const contextName of track.contextNames) {\n brick.runtimeContext.ctxStore.onChange(contextName, listener);\n }\n }\n if (track.stateNames) {\n const tplStateStore = getTplStateStore(\n brick.runtimeContext,\n \"STATE\",\n `: \"${track.propValue}\"`\n );\n for (const stateName of track.stateNames) {\n tplStateStore.onChange(stateName, listener);\n }\n }\n if (track.formStateNames) {\n const formStateStore = getFormStateStore(\n brick.runtimeContext,\n \"FORM_STATE\",\n `: \"${track.propValue}\"`\n );\n for (const stateName of track.formStateNames) {\n formStateStore.onChange(stateName, listener);\n }\n }\n }\n}\n"],"mappings":"AAAA,SAASA,aAAa,QAAQ,oBAAoB;AAElD,SAASC,gBAAgB,QAAQ,6BAA6B;AAC9D,SAASC,iBAAiB,QAAQ,0BAA0B;AAU5D,OAAO,SAASC,uBAAuBA,CACrCC,KAAmB,EACnBC,mBAA0C,EACpC;EAAA,IAAAC,KAAA,YAAAA,CAAAC,KAAA,EACmC;IACvC,IAAMC,QAAQ,GAAGA,CAAA,KAAY;MAC3B,IAAIJ,KAAK,CAACK,OAAO,EAAE;QACjBT,aAAa,CACXI,KAAK,CAACK,OAAO,EACb;UAAE,CAACF,KAAK,CAACG,QAAQ,GAAGH,KAAK,CAACI;QAAU,CAAC,EACrCP,KAAK,CAACQ,cAAc,CACrB;MACH;IACF,CAAC;IACD,IAAIL,KAAK,CAACM,YAAY,EAAE;MACtB,KAAK,IAAMC,WAAW,IAAIP,KAAK,CAACM,YAAY,EAAE;QAC5CT,KAAK,CAACQ,cAAc,CAACG,QAAQ,CAACC,QAAQ,CAACF,WAAW,EAAEN,QAAQ,CAAC;MAC/D;IACF;IACA,IAAID,KAAK,CAACU,UAAU,EAAE;MACpB,IAAMC,aAAa,GAAGjB,gBAAgB,CACpCG,KAAK,CAACQ,cAAc,EACpB,OAAO,SAAAO,MAAA,CACDZ,KAAK,CAACI,SAAS,QACtB;MACD,KAAK,IAAMS,SAAS,IAAIb,KAAK,CAACU,UAAU,EAAE;QACxCC,aAAa,CAACF,QAAQ,CAACI,SAAS,EAAEZ,QAAQ,CAAC;MAC7C;IACF;IACA,IAAID,KAAK,CAACc,cAAc,EAAE;MACxB,IAAMC,cAAc,GAAGpB,iBAAiB,CACtCE,KAAK,CAACQ,cAAc,EACpB,YAAY,SAAAO,MAAA,CACNZ,KAAK,CAACI,SAAS,QACtB;MACD,KAAK,IAAMS,UAAS,IAAIb,KAAK,CAACc,cAAc,EAAE;QAC5CC,cAAc,CAACN,QAAQ,CAACI,UAAS,EAAEZ,QAAQ,CAAC;MAC9C;IACF;EACF,CAAC;EAnCD,KAAK,IAAMD,KAAK,IAAIF,mBAAmB;IAAAC,KAAA,CAAAC,KAAA;EAAA;AAoCzC"}
|
|
@@ -132,7 +132,7 @@ export class DataStore {
|
|
|
132
132
|
return false;
|
|
133
133
|
}
|
|
134
134
|
var value;
|
|
135
|
-
if (_this3.type === "STATE"
|
|
135
|
+
if (asyncHostProperties && (_this3.type === "STATE" ? dataConf.expose : _this3.type === "FORM_STATE")) {
|
|
136
136
|
var hostProps = yield asyncHostProperties;
|
|
137
137
|
if (hasOwnProperty(hostProps, dataConf.name)) {
|
|
138
138
|
value = hostProps[dataConf.name];
|
|
@@ -178,7 +178,7 @@ export class DataStore {
|
|
|
178
178
|
if (dataConf.onChange) {
|
|
179
179
|
newData.eventTarget.addEventListener(_this3.changeEventType, listenerFactory(dataConf.onChange, runtimeContext));
|
|
180
180
|
}
|
|
181
|
-
if (dataConf.track
|
|
181
|
+
if (dataConf.track) {
|
|
182
182
|
var deps = strictCollectMemberUsage(load ? dataConf.resolve : dataConf.value, _this3.type);
|
|
183
183
|
for (var dep of deps) {
|
|
184
184
|
_this3.onChange(dep, () => {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataStore.js","names":["hasOwnProperty","isObject","strictCollectMemberUsage","eventCallbackFactory","listenerFactory","asyncCheckIf","asyncComputeRealValue","computeRealValue","resolveData","resolveDataStore","handleHttpError","DataStore","constructor","type","hostBrick","_defineProperty","Map","changeEventType","getValue","name","_this$data$get","data","get","value","updateValue","method","callback","callbackRuntimeContext","item","Error","concat","load","promise","loaded","Promise","resolve","loading","_objectSpread","cache","then","val","eventTarget","dispatchEvent","CustomEvent","detail","err","error","callbackFactory","Object","assign","console","warn","define","dataConfs","runtimeContext","asyncHostProperties","Array","isArray","length","pending","dataConf","pendingStack","push","onChange","dataName","listener","_this$data$get2","addEventListener","waitFor","dataNames","_this","_asyncToGenerator","_loop","pendingContexts","all","map","ctx","p","waitForAll","_this2","pendingResult","_this3","expose","hostProps","isLazyResolve","undefined","resolveConf","transform","_ref","options","_x","apply","arguments","lazy","newData","EventTarget","track","deps","dep","has","set"],"sources":["../../../../src/internal/data/DataStore.ts"],"sourcesContent":["import type { BrickEventHandlerCallback, ContextConf } from \"@next-core/types\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport { eventCallbackFactory, listenerFactory } from \"../bindListeners.js\";\nimport { asyncCheckIf } from \"../compute/checkIf.js\";\nimport {\n asyncComputeRealValue,\n computeRealValue,\n} from \"../compute/computeRealValue.js\";\nimport { ResolveOptions, resolveData } from \"./resolveData.js\";\nimport { resolveDataStore } from \"./resolveDataStore.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n RuntimeContext,\n} from \"../interfaces.js\";\nimport { handleHttpError } from \"../../handleHttpError.js\";\n\nexport type DataStoreType = \"CTX\" | \"STATE\" | \"FORM_STATE\";\n\nexport interface DataStoreItem {\n value: unknown;\n eventTarget: EventTarget;\n loaded?: boolean;\n loading?: Promise<unknown>;\n load?: (options?: ResolveOptions) => Promise<unknown>;\n}\n\nexport class DataStore<T extends DataStoreType = \"CTX\"> {\n private readonly type: T;\n private readonly data = new Map<string, DataStoreItem>();\n private readonly changeEventType: string;\n private readonly pendingStack: Array<ReturnType<typeof resolveDataStore>> =\n [];\n public readonly hostBrick?: RuntimeBrick;\n\n constructor(type: T, hostBrick?: RuntimeBrick) {\n this.type = type;\n this.changeEventType =\n this.type === \"FORM_STATE\"\n ? \"formstate.change\"\n : this.type === \"STATE\"\n ? \"state.change\"\n : \"context.change\";\n this.hostBrick = hostBrick;\n }\n\n getValue(name: string): unknown {\n return this.data.get(name)?.value;\n }\n\n updateValue(\n name: string,\n value: unknown,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\",\n callback?: BrickEventHandlerCallback,\n callbackRuntimeContext?: RuntimeContext\n ): void {\n const item = this.data.get(name);\n if (!item) {\n throw new Error(`${this.type} '${name}' is not defined`);\n }\n\n if (method === \"refresh\" || method === \"load\") {\n if (!item.load) {\n throw new Error(\n `You can not ${method} \"${this.type}.${name}\" which has no resolve`\n );\n }\n\n let promise: Promise<unknown> | undefined;\n if (method === \"load\") {\n // Try to reuse previous request when calling `load`.\n if (item.loaded) {\n promise = Promise.resolve(item.value);\n } else if (item.loading) {\n promise = item.loading;\n }\n }\n\n if (!promise) {\n promise = item.loading = item.load({\n cache: method === \"load\" ? \"default\" : \"reload\",\n ...(value as ResolveOptions),\n });\n // Do not use the chained promise, since the callbacks need the original promise.\n promise.then(\n (val) => {\n item.loaded = true;\n item.value = val;\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n },\n (err) => {\n // Let users override error handling.\n if (!callback?.error) {\n handleHttpError(err);\n }\n }\n );\n }\n\n if (callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n callbackRuntimeContext!\n );\n\n promise.then(\n (val) => {\n callbackFactory(\"success\")({ value: val });\n callbackFactory(\"finally\")();\n },\n (err) => {\n callbackFactory(\"error\")(err);\n callbackFactory(\"finally\")();\n }\n );\n }\n\n return;\n }\n\n if (method === \"replace\") {\n item.value = value;\n } else {\n if (isObject(item.value)) {\n Object.assign(item.value, value);\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `Non-object current value of \"${this.type}.${name}\" for \"context.assign\", try \"context.replace\" instead.`\n );\n item.value = value;\n }\n }\n\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n }\n\n define(\n dataConfs: ContextConf[] | undefined,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): void {\n if (Array.isArray(dataConfs) && dataConfs.length > 0) {\n const pending = resolveDataStore(\n dataConfs,\n (dataConf: ContextConf) =>\n this.resolve(dataConf, runtimeContext, asyncHostProperties),\n this.type\n );\n this.pendingStack.push(pending);\n }\n }\n\n onChange(dataName: string, listener: EventListener): void {\n this.data\n .get(dataName)\n ?.eventTarget.addEventListener(this.changeEventType, listener);\n }\n\n async waitFor(dataNames: string[] | Set<string>): Promise<void> {\n for (const { pendingContexts } of this.pendingStack) {\n await Promise.all(\n [...dataNames].map((ctx) => {\n const p = pendingContexts.get(ctx);\n return p;\n })\n );\n }\n }\n\n async waitForAll(): Promise<void> {\n for (const { pendingResult } of this.pendingStack) {\n await pendingResult;\n }\n }\n\n private async resolve(\n dataConf: ContextConf,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): Promise<boolean> {\n if (!(await asyncCheckIf(dataConf, runtimeContext))) {\n return false;\n }\n let value: unknown;\n if (this.type === \"STATE\" && asyncHostProperties && dataConf.expose) {\n const hostProps = await asyncHostProperties;\n if (hasOwnProperty(hostProps, dataConf.name)) {\n value = hostProps[dataConf.name];\n }\n }\n let load: DataStoreItem[\"load\"];\n let isLazyResolve: boolean | undefined = false;\n if (value === undefined) {\n if (dataConf.resolve) {\n const resolveConf = {\n transform: \"value\",\n ...dataConf.resolve,\n };\n if (await asyncCheckIf(dataConf.resolve, runtimeContext)) {\n load = async (options) =>\n (\n (await resolveData(resolveConf, runtimeContext, options)) as {\n value: unknown;\n }\n ).value;\n isLazyResolve = dataConf.resolve.lazy;\n if (!isLazyResolve) {\n value = await load();\n }\n } else if (!hasOwnProperty(dataConf, \"value\")) {\n return false;\n }\n }\n if ((!load || isLazyResolve) && dataConf.value !== undefined) {\n // If the context has no resolve, just use its `value`.\n // Or if the resolve is ignored or lazy, use its `value` as a fallback.\n value = await asyncComputeRealValue(dataConf.value, runtimeContext);\n }\n }\n\n const newData: DataStoreItem = {\n value,\n // This is required for tracking context, even if no `onChange` is specified.\n eventTarget: new EventTarget(),\n load,\n loaded: !isLazyResolve,\n };\n\n if (dataConf.onChange) {\n newData.eventTarget.addEventListener(\n this.changeEventType,\n listenerFactory(dataConf.onChange, runtimeContext)\n );\n }\n\n if (dataConf.track && this.type !== \"FORM_STATE\") {\n const deps = strictCollectMemberUsage(\n load ? dataConf.resolve : dataConf.value,\n this.type\n );\n for (const dep of deps) {\n this.onChange(dep, () => {\n if (load) {\n this.updateValue(dataConf.name, { cache: \"default\" }, \"refresh\");\n } else {\n this.updateValue(\n dataConf.name,\n computeRealValue(dataConf.value, runtimeContext),\n \"replace\"\n );\n }\n });\n }\n }\n\n if (this.data.has(dataConf.name)) {\n throw new Error(\n `${this.type} '${dataConf.name}' has already been declared`\n );\n }\n this.data.set(dataConf.name, newData);\n\n return true;\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"DataStore.js","names":["hasOwnProperty","isObject","strictCollectMemberUsage","eventCallbackFactory","listenerFactory","asyncCheckIf","asyncComputeRealValue","computeRealValue","resolveData","resolveDataStore","handleHttpError","DataStore","constructor","type","hostBrick","_defineProperty","Map","changeEventType","getValue","name","_this$data$get","data","get","value","updateValue","method","callback","callbackRuntimeContext","item","Error","concat","load","promise","loaded","Promise","resolve","loading","_objectSpread","cache","then","val","eventTarget","dispatchEvent","CustomEvent","detail","err","error","callbackFactory","Object","assign","console","warn","define","dataConfs","runtimeContext","asyncHostProperties","Array","isArray","length","pending","dataConf","pendingStack","push","onChange","dataName","listener","_this$data$get2","addEventListener","waitFor","dataNames","_this","_asyncToGenerator","_loop","pendingContexts","all","map","ctx","p","waitForAll","_this2","pendingResult","_this3","expose","hostProps","isLazyResolve","undefined","resolveConf","transform","_ref","options","_x","apply","arguments","lazy","newData","EventTarget","track","deps","dep","has","set"],"sources":["../../../../src/internal/data/DataStore.ts"],"sourcesContent":["import type { BrickEventHandlerCallback, ContextConf } from \"@next-core/types\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport { eventCallbackFactory, listenerFactory } from \"../bindListeners.js\";\nimport { asyncCheckIf } from \"../compute/checkIf.js\";\nimport {\n asyncComputeRealValue,\n computeRealValue,\n} from \"../compute/computeRealValue.js\";\nimport { ResolveOptions, resolveData } from \"./resolveData.js\";\nimport { resolveDataStore } from \"./resolveDataStore.js\";\nimport type {\n AsyncProperties,\n RuntimeBrick,\n RuntimeContext,\n} from \"../interfaces.js\";\nimport { handleHttpError } from \"../../handleHttpError.js\";\n\nexport type DataStoreType = \"CTX\" | \"STATE\" | \"FORM_STATE\";\n\nexport interface DataStoreItem {\n value: unknown;\n eventTarget: EventTarget;\n loaded?: boolean;\n loading?: Promise<unknown>;\n load?: (options?: ResolveOptions) => Promise<unknown>;\n}\n\nexport class DataStore<T extends DataStoreType = \"CTX\"> {\n private readonly type: T;\n private readonly data = new Map<string, DataStoreItem>();\n private readonly changeEventType: string;\n private readonly pendingStack: Array<ReturnType<typeof resolveDataStore>> =\n [];\n public readonly hostBrick?: RuntimeBrick;\n\n constructor(type: T, hostBrick?: RuntimeBrick) {\n this.type = type;\n this.changeEventType =\n this.type === \"FORM_STATE\"\n ? \"formstate.change\"\n : this.type === \"STATE\"\n ? \"state.change\"\n : \"context.change\";\n this.hostBrick = hostBrick;\n }\n\n getValue(name: string): unknown {\n return this.data.get(name)?.value;\n }\n\n updateValue(\n name: string,\n value: unknown,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\",\n callback?: BrickEventHandlerCallback,\n callbackRuntimeContext?: RuntimeContext\n ): void {\n const item = this.data.get(name);\n if (!item) {\n throw new Error(`${this.type} '${name}' is not defined`);\n }\n\n if (method === \"refresh\" || method === \"load\") {\n if (!item.load) {\n throw new Error(\n `You can not ${method} \"${this.type}.${name}\" which has no resolve`\n );\n }\n\n let promise: Promise<unknown> | undefined;\n if (method === \"load\") {\n // Try to reuse previous request when calling `load`.\n if (item.loaded) {\n promise = Promise.resolve(item.value);\n } else if (item.loading) {\n promise = item.loading;\n }\n }\n\n if (!promise) {\n promise = item.loading = item.load({\n cache: method === \"load\" ? \"default\" : \"reload\",\n ...(value as ResolveOptions),\n });\n // Do not use the chained promise, since the callbacks need the original promise.\n promise.then(\n (val) => {\n item.loaded = true;\n item.value = val;\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n },\n (err) => {\n // Let users override error handling.\n if (!callback?.error) {\n handleHttpError(err);\n }\n }\n );\n }\n\n if (callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n callbackRuntimeContext!\n );\n\n promise.then(\n (val) => {\n callbackFactory(\"success\")({ value: val });\n callbackFactory(\"finally\")();\n },\n (err) => {\n callbackFactory(\"error\")(err);\n callbackFactory(\"finally\")();\n }\n );\n }\n\n return;\n }\n\n if (method === \"replace\") {\n item.value = value;\n } else {\n if (isObject(item.value)) {\n Object.assign(item.value, value);\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `Non-object current value of \"${this.type}.${name}\" for \"context.assign\", try \"context.replace\" instead.`\n );\n item.value = value;\n }\n }\n\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n }\n\n define(\n dataConfs: ContextConf[] | undefined,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): void {\n if (Array.isArray(dataConfs) && dataConfs.length > 0) {\n const pending = resolveDataStore(\n dataConfs,\n (dataConf: ContextConf) =>\n this.resolve(dataConf, runtimeContext, asyncHostProperties),\n this.type\n );\n this.pendingStack.push(pending);\n }\n }\n\n onChange(dataName: string, listener: EventListener): void {\n this.data\n .get(dataName)\n ?.eventTarget.addEventListener(this.changeEventType, listener);\n }\n\n async waitFor(dataNames: string[] | Set<string>): Promise<void> {\n for (const { pendingContexts } of this.pendingStack) {\n await Promise.all(\n [...dataNames].map((ctx) => {\n const p = pendingContexts.get(ctx);\n return p;\n })\n );\n }\n }\n\n async waitForAll(): Promise<void> {\n for (const { pendingResult } of this.pendingStack) {\n await pendingResult;\n }\n }\n\n private async resolve(\n dataConf: ContextConf,\n runtimeContext: RuntimeContext,\n asyncHostProperties?: AsyncProperties\n ): Promise<boolean> {\n if (!(await asyncCheckIf(dataConf, runtimeContext))) {\n return false;\n }\n let value: unknown;\n if (\n asyncHostProperties &&\n (this.type === \"STATE\" ? dataConf.expose : this.type === \"FORM_STATE\")\n ) {\n const hostProps = await asyncHostProperties;\n if (hasOwnProperty(hostProps, dataConf.name)) {\n value = hostProps[dataConf.name];\n }\n }\n let load: DataStoreItem[\"load\"];\n let isLazyResolve: boolean | undefined = false;\n if (value === undefined) {\n if (dataConf.resolve) {\n const resolveConf = {\n transform: \"value\",\n ...dataConf.resolve,\n };\n if (await asyncCheckIf(dataConf.resolve, runtimeContext)) {\n load = async (options) =>\n (\n (await resolveData(resolveConf, runtimeContext, options)) as {\n value: unknown;\n }\n ).value;\n isLazyResolve = dataConf.resolve.lazy;\n if (!isLazyResolve) {\n value = await load();\n }\n } else if (!hasOwnProperty(dataConf, \"value\")) {\n return false;\n }\n }\n if ((!load || isLazyResolve) && dataConf.value !== undefined) {\n // If the context has no resolve, just use its `value`.\n // Or if the resolve is ignored or lazy, use its `value` as a fallback.\n value = await asyncComputeRealValue(dataConf.value, runtimeContext);\n }\n }\n\n const newData: DataStoreItem = {\n value,\n // This is required for tracking context, even if no `onChange` is specified.\n eventTarget: new EventTarget(),\n load,\n loaded: !isLazyResolve,\n };\n\n if (dataConf.onChange) {\n newData.eventTarget.addEventListener(\n this.changeEventType,\n listenerFactory(dataConf.onChange, runtimeContext)\n );\n }\n\n if (dataConf.track) {\n const deps = strictCollectMemberUsage(\n load ? dataConf.resolve : dataConf.value,\n this.type\n );\n for (const dep of deps) {\n this.onChange(dep, () => {\n if (load) {\n this.updateValue(dataConf.name, { cache: \"default\" }, \"refresh\");\n } else {\n this.updateValue(\n dataConf.name,\n computeRealValue(dataConf.value, runtimeContext),\n \"replace\"\n );\n }\n });\n }\n }\n\n if (this.data.has(dataConf.name)) {\n throw new Error(\n `${this.type} '${dataConf.name}' has already been declared`\n );\n }\n this.data.set(dataConf.name, newData);\n\n return true;\n }\n}\n"],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","names":[],"sources":["../../../src/internal/interfaces.ts"],"sourcesContent":["import type { LegacyCompatibleRuntimeContext } from \"@next-core/inject\";\nimport type {\n BrickEventHandler,\n BrickEventsMap,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n} from \"@next-core/types\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport { RenderTag } from \"./enums.js\";\n\nexport interface RuntimeContext extends LegacyCompatibleRuntimeContext {\n ctxStore: DataStore<\"CTX\">;\n tplStateStoreMap: Map<string, DataStore<\"STATE\">>;\n pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];\n tplStateStoreId?: string;\n // `useBrick` has a local tpl state store scope\n tplStateStoreScope?: DataStore<\"STATE\">[];\n forEachItem?: unknown;\n appendI18nNamespace?: string;\n}\n\nexport type AsyncProperties = Promise<Record<string, unknown>>;\n\nexport interface ElementHolder {\n element?: HTMLElement | null;\n}\n\nexport interface RenderRoot extends BaseRenderNode {\n tag: RenderTag.ROOT;\n container?: HTMLElement | DocumentFragment;\n createPortal:\n | HTMLElement\n | DocumentFragment\n | (() => HTMLElement | DocumentFragment);\n}\n\nexport interface RenderBrick extends BaseRenderNode, RuntimeBrick {\n tag: RenderTag.BRICK;\n return: RenderNode;\n hasTrackingControls?: boolean;\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderBrick;\n sibling?: RenderBrick;\n return?: RenderNode | null;\n childElements?: HTMLElement[];\n}\n\nexport type RenderNode = RenderRoot | RenderBrick;\n\nexport interface RuntimeBrick {\n type: string;\n properties?: Record<string, unknown>;\n events?: BrickEventsMap;\n slotId?: string;\n element?: RuntimeBrickElement | null;\n iid?: string;\n runtimeContext: RuntimeContext;\n tplHostMetadata?: TemplateHostMetadata;\n portal?: boolean;\n ref?: string;\n}\n\nexport type MetaInfoOfEventListener = [\n string,\n // For compatibility of devtools, leave the second argument there.\n null | undefined,\n BrickEventHandler\n];\n\nexport type RememberedEventListener = [string, EventListener];\n\nexport interface RuntimeBrickElement extends HTMLElement {\n $$typeof?: \"brick\" | \"provider\" | \"custom-template\" | \"native\" | \"invalid\";\n /** Meta info of listeners, for devtools only */\n $$eventListeners?: MetaInfoOfEventListener[];\n /** Remembered listeners for unbinding */\n $$listeners?: RememberedEventListener[];\n /** Remembered proxy listeners for unbinding */\n $$proxyListeners?: RememberedEventListener[];\n /** Find element by ref in a custom template */\n $$getElementByRef?: (ref: string) => HTMLElement | null | undefined;\n $$tplStateStore?: DataStore<\"STATE\">;\n}\n\nexport interface TemplateHostMetadata {\n internalBricksByRef: Map<string, RuntimeBrick>;\n tplStateStoreId: string;\n proxy?: CustomTemplateProxy;\n}\n\nexport type TemplateHostBrick = RuntimeBrick & {\n tplHostMetadata: TemplateHostMetadata;\n};\n\nexport interface TemplateHostContext {\n reversedProxies: ReversedProxies;\n asyncHostProperties?: AsyncProperties;\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n}\n\ninterface ReversedProxies {\n properties: Map<string, ReversedPropertyProxy[]>;\n slots: Map<string, ReversedSlotProxy[]>;\n}\n\ninterface ReversedPropertyProxy {\n from: string;\n to: CustomTemplateProxyBasicProperty;\n}\n\ninterface ReversedSlotProxy {\n from: string;\n to: CustomTemplateProxySlot;\n}\n"],"mappings":""}
|
|
1
|
+
{"version":3,"file":"interfaces.js","names":[],"sources":["../../../src/internal/interfaces.ts"],"sourcesContent":["import type { LegacyCompatibleRuntimeContext } from \"@next-core/inject\";\nimport type {\n BrickEventHandler,\n BrickEventsMap,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n} from \"@next-core/types\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { RuntimeBrickConfWithTplSymbols } from \"./CustomTemplates/constants.js\";\nimport { RuntimeBrickConfOfFormSymbols } from \"./FormRenderer/constants.js\";\n\nexport interface RuntimeContext extends LegacyCompatibleRuntimeContext {\n ctxStore: DataStore<\"CTX\">;\n tplStateStoreMap: Map<string, DataStore<\"STATE\">>;\n pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];\n tplStateStoreId?: string;\n // `useBrick` has a local tpl state store scope\n tplStateStoreScope?: DataStore<\"STATE\">[];\n forEachItem?: unknown;\n appendI18nNamespace?: string;\n\n formStateStoreMap: Map<string, DataStore<\"FORM_STATE\">>;\n formStateStoreId?: string;\n formStateStoreScope?: DataStore<\"FORM_STATE\">[];\n}\n\nexport type AsyncProperties = Promise<Record<string, unknown>>;\n\nexport interface ElementHolder {\n element?: HTMLElement | null;\n}\n\nexport interface RenderRoot extends BaseRenderNode {\n tag: RenderTag.ROOT;\n container?: HTMLElement | DocumentFragment;\n createPortal:\n | HTMLElement\n | DocumentFragment\n | (() => HTMLElement | DocumentFragment);\n}\n\nexport interface RenderBrick extends BaseRenderNode, RuntimeBrick {\n tag: RenderTag.BRICK;\n return: RenderNode;\n hasTrackingControls?: boolean;\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderBrick;\n sibling?: RenderBrick;\n return?: RenderNode | null;\n childElements?: HTMLElement[];\n}\n\nexport type RenderNode = RenderRoot | RenderBrick;\n\nexport interface RuntimeBrick {\n type: string;\n properties?: Record<string, unknown>;\n events?: BrickEventsMap;\n slotId?: string;\n element?: RuntimeBrickElement | null;\n iid?: string;\n runtimeContext: RuntimeContext;\n tplHostMetadata?: TemplateHostMetadata;\n portal?: boolean;\n ref?: string;\n}\n\nexport type MetaInfoOfEventListener = [\n string,\n // For compatibility of devtools, leave the second argument there.\n null | undefined,\n BrickEventHandler\n];\n\nexport type RememberedEventListener = [string, EventListener];\n\nexport interface RuntimeBrickElement extends HTMLElement {\n $$typeof?: \"brick\" | \"provider\" | \"custom-template\" | \"native\" | \"invalid\";\n /** Meta info of listeners, for devtools only */\n $$eventListeners?: MetaInfoOfEventListener[];\n /** Remembered listeners for unbinding */\n $$listeners?: RememberedEventListener[];\n /** Remembered proxy listeners for unbinding */\n $$proxyListeners?: RememberedEventListener[];\n /** Find element by ref in a custom template */\n $$getElementByRef?: (ref: string) => HTMLElement | null | undefined;\n $$tplStateStore?: DataStore<\"STATE\">;\n}\n\nexport interface TemplateHostMetadata {\n internalBricksByRef: Map<string, RuntimeBrick>;\n tplStateStoreId: string;\n proxy?: CustomTemplateProxy;\n}\n\nexport type TemplateHostBrick = RuntimeBrick & {\n tplHostMetadata: TemplateHostMetadata;\n};\n\nexport interface TemplateHostContext {\n reversedProxies: ReversedProxies;\n asyncHostProperties?: AsyncProperties;\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n}\n\ninterface ReversedProxies {\n properties: Map<string, ReversedPropertyProxy[]>;\n slots: Map<string, ReversedSlotProxy[]>;\n}\n\ninterface ReversedPropertyProxy {\n from: string;\n to: CustomTemplateProxyBasicProperty;\n}\n\ninterface ReversedSlotProxy {\n from: string;\n to: CustomTemplateProxySlot;\n}\n\nexport type RuntimeBrickConfWithSymbols = RuntimeBrickConfWithTplSymbols &\n RuntimeBrickConfOfFormSymbols;\n"],"mappings":""}
|
|
@@ -18,14 +18,17 @@ export function renderUseBrick(_x, _x2) {
|
|
|
18
18
|
}
|
|
19
19
|
function _renderUseBrick() {
|
|
20
20
|
_renderUseBrick = _asyncToGenerator(function* (useBrick, data) {
|
|
21
|
-
var _runtimeContext$tplSt, _output$node;
|
|
21
|
+
var _runtimeContext$tplSt, _runtimeContext$formS, _output$node;
|
|
22
22
|
var tplStateStoreScope = [];
|
|
23
|
+
var formStateStoreScope = [];
|
|
23
24
|
var runtimeContext = _objectSpread(_objectSpread({}, _internalApiGetRuntimeContext()), {}, {
|
|
24
25
|
data,
|
|
25
26
|
pendingPermissionsPreCheck: [],
|
|
26
|
-
tplStateStoreScope
|
|
27
|
+
tplStateStoreScope,
|
|
28
|
+
formStateStoreScope
|
|
27
29
|
});
|
|
28
30
|
(_runtimeContext$tplSt = runtimeContext.tplStateStoreMap) !== null && _runtimeContext$tplSt !== void 0 ? _runtimeContext$tplSt : runtimeContext.tplStateStoreMap = new Map();
|
|
31
|
+
(_runtimeContext$formS = runtimeContext.formStateStoreMap) !== null && _runtimeContext$formS !== void 0 ? _runtimeContext$formS : runtimeContext.formStateStoreMap = new Map();
|
|
29
32
|
var rendererContext = new RendererContext("fragment");
|
|
30
33
|
var renderRoot = {
|
|
31
34
|
tag: RenderTag.ROOT,
|
|
@@ -43,7 +46,7 @@ function _renderUseBrick() {
|
|
|
43
46
|
flushStableLoadBricks();
|
|
44
47
|
yield Promise.all([...output.blockingList,
|
|
45
48
|
// Wait for local tpl state stores belong to current `useBrick` only.
|
|
46
|
-
...tplStateStoreScope.map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck]);
|
|
49
|
+
...[...tplStateStoreScope, ...formStateStoreScope].map(store => store.waitForAll()), ...runtimeContext.pendingPermissionsPreCheck]);
|
|
47
50
|
if ((_output$node = output.node) !== null && _output$node !== void 0 && _output$node.portal) {
|
|
48
51
|
throw new Error("The root brick of useBrick cannot be a portal brick");
|
|
49
52
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"secret_internals.js","names":["flushStableLoadBricks","pick","_internalApiGetRuntimeContext","_internalApiGetStoryboardInBootstrapData","_internalApiLoadBricks","_internalApiSetBootstrapData","renderBrick","RendererContext","mountTree","unmountTree","RenderTag","computeRealValue","isStrictMode","warnAboutStrictMode","customTemplates","registerAppI18n","loadNotificationService","loadDialogService","renderUseBrick","_x","_x2","_renderUseBrick","apply","arguments","_asyncToGenerator","useBrick","data","_runtimeContext$tplSt","_output$node","tplStateStoreScope","runtimeContext","_objectSpread","pendingPermissionsPreCheck","tplStateStoreMap","Map","rendererContext","renderRoot","tag","ROOT","createPortal","transform","strict","output","properties","Promise","all","blockingList","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","_ref","element","portalRoot","document","querySelector","createElement","appendChild","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","_ref2","mountResult","remove","dispatchOnUnmount","dispose","initializePlayground","legacyDoTransform","to","options","noInject","loadBricks","updateStoryboard","appId","storyboardPatch","storyboard","Object","assign","$$fulfilling","$$fulfilled","$$registerCustomTemplateProcessed","updateStoryboardByRoute","newRoute","match","getKey","route","concat","path","exact","replaceRoute","routes","key","routeKey","unshift","updateStoryboardByTemplate","newTemplate","settings","tplName","name","define","bricks","proxy","state","updateTemplatePreviewSettings","templateId","_updatePreviewSettings","brick","updateStoryboardBySnippet","snippetData","_snippetData$bricks","snippetId","length","updateSnippetPreviewSettings","previewRouteIndex","findIndex","newPreviewRoute","menu","splice"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BootstrapData,\n BrickConf,\n CustomTemplate,\n RouteConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport { pick } from \"lodash\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n _internalApiLoadBricks,\n _internalApiSetBootstrapData,\n} from \"./Runtime.js\";\nimport { renderBrick } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const tplStateStoreScope: DataStore<\"STATE\">[] = [];\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreScope,\n };\n\n runtimeContext.tplStateStoreMap ??= new Map();\n\n const rendererContext = new RendererContext(\"fragment\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n // Wait for local tpl state stores belong to current `useBrick` only.\n ...tplStateStoreScope.map((store) => store.waitForAll()),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nexport function initializePlayground(data: Partial<BootstrapData>) {\n _internalApiSetBootstrapData(data);\n // Todo: allow configuration of notification bricks.\n loadNotificationService(\"shoelace.show-notification\");\n loadDialogService(\"shoelace.show-dialog\");\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n\nexport const loadBricks = _internalApiLoadBricks;\n\nexport function updateStoryboard(\n appId: string,\n storyboardPatch: Partial<Storyboard>\n): void {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n Object.assign(storyboard, {\n ...storyboardPatch,\n $$fulfilling: null,\n $$fulfilled: true,\n $$registerCustomTemplateProcessed: false,\n });\n registerAppI18n(storyboard);\n}\n\nexport function updateStoryboardByRoute(appId: string, newRoute: RouteConf) {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n let match = false;\n const getKey = (route: RouteConf): string => `${route.path}.${route.exact}`;\n const replaceRoute = (routes: RouteConf[], key: string): RouteConf[] => {\n return routes.map((route) => {\n const routeKey = getKey(route);\n if (route.type === \"routes\") {\n route.routes = replaceRoute(route.routes, key);\n return route;\n } else if (routeKey === key) {\n match = true;\n return newRoute;\n } else {\n return route;\n }\n });\n };\n storyboard.routes = replaceRoute(storyboard.routes, getKey(newRoute));\n if (!match) {\n storyboard.routes.unshift(newRoute);\n }\n}\n\nexport function updateStoryboardByTemplate(\n appId: string,\n newTemplate: CustomTemplate,\n settings: unknown\n): void {\n const tplName = `${appId}.${newTemplate.name}`;\n // customTemplateRegistry.delete(tplName);\n customTemplates.define(tplName, {\n bricks: newTemplate.bricks,\n proxy: newTemplate.proxy,\n state: newTemplate.state,\n });\n updateTemplatePreviewSettings(appId, newTemplate.name, settings);\n}\n\nexport function updateTemplatePreviewSettings(\n appId: string,\n templateId: string,\n settings?: unknown\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/template-preview/${templateId}`,\n [\n {\n brick: templateId,\n ...pick(settings, \"properties\", \"events\", \"lifeCycle\", \"context\"),\n },\n ]\n );\n}\n\nexport function updateStoryboardBySnippet(\n appId: string,\n snippetData: {\n snippetId: string;\n bricks?: BrickConf[];\n }\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/snippet-preview/${snippetData.snippetId}`,\n snippetData.bricks?.length ? snippetData.bricks : [{ brick: \"span\" }]\n );\n}\n\nexport const updateSnippetPreviewSettings = updateStoryboardBySnippet;\n\nfunction _updatePreviewSettings(\n appId: string,\n path: string,\n bricks: BrickConf[]\n) {\n const { routes } = _internalApiGetStoryboardInBootstrapData(appId)!;\n const previewRouteIndex = routes.findIndex((route) => route.path === path);\n const newPreviewRoute: RouteConf = {\n path,\n bricks,\n menu: false,\n exact: true,\n };\n if (previewRouteIndex === -1) {\n routes.unshift(newPreviewRoute);\n } else {\n routes.splice(previewRouteIndex, 1, newPreviewRoute);\n }\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"secret_internals.js","names":["flushStableLoadBricks","pick","_internalApiGetRuntimeContext","_internalApiGetStoryboardInBootstrapData","_internalApiLoadBricks","_internalApiSetBootstrapData","renderBrick","RendererContext","mountTree","unmountTree","RenderTag","computeRealValue","isStrictMode","warnAboutStrictMode","customTemplates","registerAppI18n","loadNotificationService","loadDialogService","renderUseBrick","_x","_x2","_renderUseBrick","apply","arguments","_asyncToGenerator","useBrick","data","_runtimeContext$tplSt","_runtimeContext$formS","_output$node","tplStateStoreScope","formStateStoreScope","runtimeContext","_objectSpread","pendingPermissionsPreCheck","tplStateStoreMap","Map","formStateStoreMap","rendererContext","renderRoot","tag","ROOT","createPortal","transform","strict","output","properties","Promise","all","blockingList","map","store","waitForAll","node","portal","Error","child","tagName","type","mountUseBrick","_ref","element","portalRoot","document","querySelector","createElement","appendChild","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","unmountUseBrick","_ref2","mountResult","remove","dispatchOnUnmount","dispose","initializePlayground","legacyDoTransform","to","options","noInject","loadBricks","updateStoryboard","appId","storyboardPatch","storyboard","Object","assign","$$fulfilling","$$fulfilled","$$registerCustomTemplateProcessed","updateStoryboardByRoute","newRoute","match","getKey","route","concat","path","exact","replaceRoute","routes","key","routeKey","unshift","updateStoryboardByTemplate","newTemplate","settings","tplName","name","define","bricks","proxy","state","updateTemplatePreviewSettings","templateId","_updatePreviewSettings","brick","updateStoryboardBySnippet","snippetData","_snippetData$bricks","snippetId","length","updateSnippetPreviewSettings","previewRouteIndex","findIndex","newPreviewRoute","menu","splice"],"sources":["../../../src/internal/secret_internals.ts"],"sourcesContent":["import type {\n BootstrapData,\n BrickConf,\n CustomTemplate,\n RouteConf,\n Storyboard,\n UseSingleBrickConf,\n} from \"@next-core/types\";\nimport { flushStableLoadBricks } from \"@next-core/loader\";\nimport { pick } from \"lodash\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n _internalApiLoadBricks,\n _internalApiSetBootstrapData,\n} from \"./Runtime.js\";\nimport { renderBrick } from \"./Renderer.js\";\nimport { RendererContext } from \"./RendererContext.js\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport type { RenderRoot, RuntimeContext } from \"./interfaces.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../isStrictMode.js\";\nimport { customTemplates } from \"../CustomTemplates.js\";\nimport { registerAppI18n } from \"./registerAppI18n.js\";\nimport { loadNotificationService } from \"../Notification.js\";\nimport { loadDialogService } from \"../Dialog.js\";\n\nexport interface RenderUseBrickResult {\n tagName: string | null;\n renderRoot: RenderRoot;\n rendererContext: RendererContext;\n}\n\nexport async function renderUseBrick(\n useBrick: UseSingleBrickConf,\n data: unknown\n): Promise<RenderUseBrickResult> {\n const tplStateStoreScope: DataStore<\"STATE\">[] = [];\n const formStateStoreScope: DataStore<\"FORM_STATE\">[] = [];\n const runtimeContext: RuntimeContext = {\n ..._internalApiGetRuntimeContext()!,\n data,\n pendingPermissionsPreCheck: [],\n tplStateStoreScope,\n formStateStoreScope,\n };\n\n runtimeContext.tplStateStoreMap ??= new Map();\n runtimeContext.formStateStoreMap ??= new Map();\n\n const rendererContext = new RendererContext(\"fragment\");\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n // Will set during `mountUseBrick`\n createPortal: null!,\n };\n\n const transform = (useBrick as { transform?: Record<string, unknown> })\n .transform;\n const strict = isStrictMode();\n if (transform) {\n warnAboutStrictMode(\n strict,\n \"`useBrick.transform`\",\n 'please use \"properties\" instead, check your useBrick:',\n useBrick\n );\n }\n\n const output = await renderBrick(\n renderRoot,\n strict\n ? useBrick\n : {\n ...useBrick,\n properties: {\n ...useBrick.properties,\n ...transform,\n },\n },\n runtimeContext,\n rendererContext\n );\n\n flushStableLoadBricks();\n\n await Promise.all([\n ...output.blockingList,\n // Wait for local tpl state stores belong to current `useBrick` only.\n ...[...tplStateStoreScope, ...formStateStoreScope].map((store) =>\n store.waitForAll()\n ),\n ...runtimeContext.pendingPermissionsPreCheck,\n ]);\n\n if (output.node?.portal) {\n throw new Error(\"The root brick of useBrick cannot be a portal brick\");\n }\n\n renderRoot.child = output.node;\n\n const tagName = output.node ? output.node.type : null;\n\n return { tagName, renderRoot, rendererContext };\n}\n\nexport interface MountUseBrickResult {\n portal?: HTMLElement;\n}\n\nexport function mountUseBrick(\n { renderRoot, rendererContext }: RenderUseBrickResult,\n element: HTMLElement\n): MountUseBrickResult {\n let portal: HTMLElement | undefined;\n renderRoot.createPortal = () => {\n const portalRoot = document.querySelector(\n \"#portal-mount-point\"\n ) as HTMLElement;\n portal = document.createElement(\"div\");\n portalRoot.appendChild(portal);\n return portal;\n };\n\n mountTree(renderRoot, element);\n\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n\n return {\n portal,\n };\n}\n\nexport function unmountUseBrick(\n { rendererContext }: RenderUseBrickResult,\n mountResult: MountUseBrickResult\n): void {\n // if (mountResult.mainBrick) {\n // mountResult.mainBrick.unmount();\n // }\n if (mountResult.portal) {\n unmountTree(mountResult.portal);\n mountResult.portal.remove();\n }\n rendererContext.dispatchOnUnmount();\n rendererContext.dispose();\n}\n\nexport function initializePlayground(data: Partial<BootstrapData>) {\n _internalApiSetBootstrapData(data);\n // Todo: allow configuration of notification bricks.\n loadNotificationService(\"shoelace.show-notification\");\n loadDialogService(\"shoelace.show-dialog\");\n}\n\nexport function legacyDoTransform(\n data: unknown,\n to: unknown,\n options?: unknown\n) {\n if (options) {\n throw new Error(\"Legacy doTransform does not support options in v3\");\n }\n return computeRealValue(\n to,\n {\n ..._internalApiGetRuntimeContext()!,\n data,\n },\n {\n noInject: true,\n }\n );\n}\n\nexport const loadBricks = _internalApiLoadBricks;\n\nexport function updateStoryboard(\n appId: string,\n storyboardPatch: Partial<Storyboard>\n): void {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n Object.assign(storyboard, {\n ...storyboardPatch,\n $$fulfilling: null,\n $$fulfilled: true,\n $$registerCustomTemplateProcessed: false,\n });\n registerAppI18n(storyboard);\n}\n\nexport function updateStoryboardByRoute(appId: string, newRoute: RouteConf) {\n const storyboard = _internalApiGetStoryboardInBootstrapData(appId)!;\n let match = false;\n const getKey = (route: RouteConf): string => `${route.path}.${route.exact}`;\n const replaceRoute = (routes: RouteConf[], key: string): RouteConf[] => {\n return routes.map((route) => {\n const routeKey = getKey(route);\n if (route.type === \"routes\") {\n route.routes = replaceRoute(route.routes, key);\n return route;\n } else if (routeKey === key) {\n match = true;\n return newRoute;\n } else {\n return route;\n }\n });\n };\n storyboard.routes = replaceRoute(storyboard.routes, getKey(newRoute));\n if (!match) {\n storyboard.routes.unshift(newRoute);\n }\n}\n\nexport function updateStoryboardByTemplate(\n appId: string,\n newTemplate: CustomTemplate,\n settings: unknown\n): void {\n const tplName = `${appId}.${newTemplate.name}`;\n // customTemplateRegistry.delete(tplName);\n customTemplates.define(tplName, {\n bricks: newTemplate.bricks,\n proxy: newTemplate.proxy,\n state: newTemplate.state,\n });\n updateTemplatePreviewSettings(appId, newTemplate.name, settings);\n}\n\nexport function updateTemplatePreviewSettings(\n appId: string,\n templateId: string,\n settings?: unknown\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/template-preview/${templateId}`,\n [\n {\n brick: templateId,\n ...pick(settings, \"properties\", \"events\", \"lifeCycle\", \"context\"),\n },\n ]\n );\n}\n\nexport function updateStoryboardBySnippet(\n appId: string,\n snippetData: {\n snippetId: string;\n bricks?: BrickConf[];\n }\n): void {\n _updatePreviewSettings(\n appId,\n `\\${APP.homepage}/_dev_only_/snippet-preview/${snippetData.snippetId}`,\n snippetData.bricks?.length ? snippetData.bricks : [{ brick: \"span\" }]\n );\n}\n\nexport const updateSnippetPreviewSettings = updateStoryboardBySnippet;\n\nfunction _updatePreviewSettings(\n appId: string,\n path: string,\n bricks: BrickConf[]\n) {\n const { routes } = _internalApiGetStoryboardInBootstrapData(appId)!;\n const previewRouteIndex = routes.findIndex((route) => route.path === path);\n const newPreviewRoute: RouteConf = {\n path,\n bricks,\n menu: false,\n exact: true,\n };\n if (previewRouteIndex === -1) {\n routes.unshift(newPreviewRoute);\n } else {\n routes.splice(previewRouteIndex, 1, newPreviewRoute);\n }\n}\n"],"mappings":"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"}
|
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
import type { BrickConf, UseSingleBrickConf } from "@next-core/types";
|
|
2
2
|
import type { AsyncProperties, RuntimeBrick } from "../interfaces.js";
|
|
3
|
-
export declare function expandCustomTemplate<T extends BrickConf | UseSingleBrickConf>(tplTagName: string, brickConf: T, hostBrick: RuntimeBrick, asyncHostProperties: AsyncProperties
|
|
3
|
+
export declare function expandCustomTemplate<T extends BrickConf | UseSingleBrickConf>(tplTagName: string, brickConf: T, hostBrick: RuntimeBrick, asyncHostProperties: AsyncProperties): T;
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { BrickConf } from "@next-core/types";
|
|
2
|
+
export declare const FORM_RENDERER = "form-renderer.form-renderer";
|
|
3
|
+
export declare const symbolForFormStateStoreId: unique symbol;
|
|
4
|
+
export type RuntimeBrickConfWithFormSymbols = BrickConf & RuntimeBrickConfOfFormSymbols;
|
|
5
|
+
export interface RuntimeBrickConfOfFormSymbols {
|
|
6
|
+
[symbolForFormStateStoreId]?: string;
|
|
7
|
+
}
|
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type { BrickConf } from "@next-core/types";
|
|
2
|
+
import type { AsyncProperties, RuntimeBrick } from "../interfaces.js";
|
|
3
|
+
export declare function expandFormRenderer(formData: unknown, hostBrickConf: BrickConf, hostBrick: RuntimeBrick, asyncHostProperties: AsyncProperties): BrickConf;
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
import type { BrickEventsMap, ContextConf, ResolveConf } from "@next-core/types";
|
|
2
|
+
export interface FormDataProperties {
|
|
3
|
+
formSchema: FormSchemaProperties;
|
|
4
|
+
fields: FieldProperties[];
|
|
5
|
+
context?: ContextConf[];
|
|
6
|
+
}
|
|
7
|
+
export interface FormSchemaProperties {
|
|
8
|
+
id: string;
|
|
9
|
+
brick?: string;
|
|
10
|
+
sort?: number;
|
|
11
|
+
mountPoint?: string;
|
|
12
|
+
events?: BrickEventsMap;
|
|
13
|
+
properties?: Record<string, unknown>;
|
|
14
|
+
if?: string | boolean | ResolveConf;
|
|
15
|
+
instanceId?: string;
|
|
16
|
+
context?: ContextConf[];
|
|
17
|
+
bricks?: FormSchemaProperties[];
|
|
18
|
+
}
|
|
19
|
+
export interface FieldProperties {
|
|
20
|
+
defaultValue?: string;
|
|
21
|
+
description?: string;
|
|
22
|
+
fieldId: string;
|
|
23
|
+
limit?: string[];
|
|
24
|
+
name: string;
|
|
25
|
+
fieldType: string;
|
|
26
|
+
}
|
|
27
|
+
export interface DefaultFieldProperties {
|
|
28
|
+
brick: string;
|
|
29
|
+
properties: Record<string, unknown>;
|
|
30
|
+
}
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { DataStore } from "../data/DataStore.js";
|
|
2
|
+
import type { RuntimeContext } from "../interfaces.js";
|
|
3
|
+
type MinimalTplStateStoreContext = Pick<RuntimeContext, "formStateStoreId" | "formStateStoreMap">;
|
|
4
|
+
export declare function getFormStateStore({ formStateStoreId, formStateStoreMap }: MinimalTplStateStoreContext, using: string, extraInfo?: string): DataStore<"FORM_STATE">;
|
|
5
|
+
export {};
|
|
@@ -1,7 +1,6 @@
|
|
|
1
1
|
import type { BrickConf, RouteConf, SlotsConf, StaticMenuConf } from "@next-core/types";
|
|
2
2
|
import { RendererContext } from "./RendererContext.js";
|
|
3
|
-
import {
|
|
4
|
-
import type { RenderBrick, RenderNode, RuntimeContext } from "./interfaces.js";
|
|
3
|
+
import type { RenderBrick, RenderNode, RuntimeBrickConfWithSymbols, RuntimeContext } from "./interfaces.js";
|
|
5
4
|
import type { NextHistoryState } from "./historyExtended.js";
|
|
6
5
|
export interface RenderOutput {
|
|
7
6
|
node?: RenderBrick;
|
|
@@ -17,5 +16,5 @@ export interface RenderOutput {
|
|
|
17
16
|
}
|
|
18
17
|
export declare function renderRoutes(returnNode: RenderNode, routes: RouteConf[], _runtimeContext: RuntimeContext, rendererContext: RendererContext, slotId?: string): Promise<RenderOutput>;
|
|
19
18
|
export declare function renderBricks(returnNode: RenderNode, bricks: BrickConf[], runtimeContext: RuntimeContext, rendererContext: RendererContext, slotId?: string, tplStack?: Map<string, number>, noMemoize?: boolean): Promise<RenderOutput>;
|
|
20
|
-
export declare function renderBrick(returnNode: RenderNode, brickConf:
|
|
19
|
+
export declare function renderBrick(returnNode: RenderNode, brickConf: RuntimeBrickConfWithSymbols, _runtimeContext: RuntimeContext, rendererContext: RendererContext, slotId?: string, key?: number, tplStack?: Map<string, number>): Promise<RenderOutput>;
|
|
21
20
|
export declare function childrenToSlots(children: BrickConf[] | undefined, originalSlots: SlotsConf | undefined): SlotsConf | undefined;
|