@next-core/runtime 1.71.4 → 1.72.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/internal/bindListeners.js +24 -4
- package/dist/cjs/internal/bindListeners.js.map +1 -1
- package/dist/cjs/internal/compute/evaluate.js +13 -1
- package/dist/cjs/internal/compute/evaluate.js.map +1 -1
- package/dist/cjs/internal/interfaces.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +24 -4
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +14 -1
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/interfaces.js.map +1 -1
- package/dist/types/internal/bindListeners.d.ts +1 -1
- package/dist/types/internal/interfaces.d.ts +1 -0
- package/package.json +6 -6
|
@@ -82,9 +82,16 @@ function isSetPropsCustomHandler(handler) {
|
|
|
82
82
|
function isConditionalEventHandler(handler) {
|
|
83
83
|
return !!handler.then;
|
|
84
84
|
}
|
|
85
|
-
function listenerFactory(handlers,
|
|
85
|
+
function listenerFactory(handlers, _runtimeContext, runtimeBrick) {
|
|
86
86
|
return function (event) {
|
|
87
87
|
for (const handler of [].concat(handlers)) {
|
|
88
|
+
let runtimeContext = _runtimeContext;
|
|
89
|
+
if (handler.key && typeof handler.key === "string") {
|
|
90
|
+
runtimeContext = {
|
|
91
|
+
..._runtimeContext,
|
|
92
|
+
eventMap: new Map([...(_runtimeContext.eventMap || []), [handler.key, event]])
|
|
93
|
+
};
|
|
94
|
+
}
|
|
88
95
|
if (!(0, _checkIf.checkIf)(handler, {
|
|
89
96
|
...runtimeContext,
|
|
90
97
|
event
|
|
@@ -137,10 +144,8 @@ function listenerFactory(handlers, runtimeContext, runtimeBrick) {
|
|
|
137
144
|
handleStorageAction(event, object, method, handler.args, runtimeContext);
|
|
138
145
|
break;
|
|
139
146
|
case "event.preventDefault":
|
|
140
|
-
event.preventDefault();
|
|
141
|
-
break;
|
|
142
147
|
case "event.stopPropagation":
|
|
143
|
-
event.
|
|
148
|
+
handleEventAction(event, method, handler.args, runtimeContext);
|
|
144
149
|
break;
|
|
145
150
|
case "console.log":
|
|
146
151
|
case "console.error":
|
|
@@ -221,6 +226,21 @@ function listenerFactory(handlers, runtimeContext, runtimeBrick) {
|
|
|
221
226
|
}
|
|
222
227
|
};
|
|
223
228
|
}
|
|
229
|
+
function handleEventAction(event, method, args, runtimeContext) {
|
|
230
|
+
const computedArgs = argsFactory(args, runtimeContext, event, {
|
|
231
|
+
useEventAsDefault: true
|
|
232
|
+
});
|
|
233
|
+
const [e] = computedArgs;
|
|
234
|
+
if (e instanceof Event) {
|
|
235
|
+
e[method]();
|
|
236
|
+
} else {
|
|
237
|
+
// eslint-disable-next-line no-console
|
|
238
|
+
console.error(`call event.${method}() on non-Event object:`, e);
|
|
239
|
+
|
|
240
|
+
// For compatibility, fallback to the original event.
|
|
241
|
+
event[method]();
|
|
242
|
+
}
|
|
243
|
+
}
|
|
224
244
|
function handleUseProviderAction(event, handler, runtimeContext, runtimeBrick) {
|
|
225
245
|
const method = handler.method !== "saveAs" ? "resolve" : "saveAs";
|
|
226
246
|
brickCallback(event, handler.useProvider, handler, method, runtimeContext, runtimeBrick);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindListeners.js","names":["_cook","require","_general","_lodash","_checkIf","_computeRealValue","_history","_getProviderBrick","_poll","_evaluate","_setProperties","_themeAndMode","_utils","_handleHttpError","_Notification","_utils2","_Runtime","_sse","_debugManager","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","checkIf","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","handleHttpError","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","getTplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","applyTheme","theme","applyMode","console","error","handleUseProviderAction","handleCustomAction","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","isEvaluable","isPreEvaluated","computeRealValue","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","setProperties","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","getProviderBrick","Error","tagName","toLowerCase","isUseProvider","computedArgs","argsOrContractConf","computeArgs","hooks","flowApi","isFlowApiProvider","_handler$sse","isArray","params","pick","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","startSSEStream","pollEnabled","poll","enabled","startPoll","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","getHistory","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","isObject","ctxStore","tplStateStore","getTplStateStore","JSON","stringify","formStateStore","getFormStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","isProduction","process","env","NODE_ENV","debugManager","shouldLog","Notification","show","message","_hooks$messageDispatc","messageDispatcher"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\nimport { debugManager } from \"./debugManager.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n case \"event.stopPropagation\":\n event.stopPropagation();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n case \"context.set\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n case \"state.set\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs: unknown[];\n\n let argsOrContractConf: unknown[] | UseProviderContractConf | undefined =\n isUseProvider\n ? computeArgs(handler.args, runtimeContext, event)\n : argsFactory(handler.args, runtimeContext, event, options);\n\n if (\n isUseProvider &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(\n pick(handler, \"params\", \"options\", \"filename\"),\n {\n ...runtimeContext,\n event,\n }\n ) as UseProviderContractConf;\n }\n\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n argsOrContractConf ?? [],\n method,\n handler.sse?.stream\n );\n } else {\n computedArgs = argsOrContractConf ?? [];\n }\n return (realTarget as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n if (isProvider) {\n const pollRuntimeContext = {\n ...runtimeContext,\n event,\n };\n\n const sseStream = computeRealValue(\n handler.sse?.stream,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (sseStream) {\n startSSEStream(\n task as () => Promise<AsyncIterable<unknown>>,\n pollableCallback\n );\n return;\n }\n\n const pollEnabled = computeRealValue(\n handler.poll?.enabled,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (pollEnabled) {\n startPoll(\n task,\n pollableCallback,\n handler.poll as ProviderPollOptions,\n pollRuntimeContext\n );\n\n return;\n }\n }\n\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowOpenAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string,\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction handleWindowPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\n\nfunction handleParentPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n parent.postMessage(...computedArgs);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const isProduction = process.env.NODE_ENV === \"production\";\n\n // 生产环境下,只有调试模式开启且符合日志级别才输出\n if (isProduction && !debugManager.shouldLog(method)) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nasync function handleMessageDispatcher(\n event: Event,\n method: \"subscribe\" | \"unsubscribe\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n callback?: BrickEventHandlerCallback\n) {\n const task = () => {\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks?.messageDispatcher?.[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n runtimeBrick\n );\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n\nfunction computeArgs(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event\n): unknown[] | undefined {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[];\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"bindListeners.js","names":["_cook","require","_general","_lodash","_checkIf","_computeRealValue","_history","_getProviderBrick","_poll","_evaluate","_setProperties","_themeAndMode","_utils","_handleHttpError","_Notification","_utils2","_Runtime","_sse","_debugManager","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","_runtimeContext","runtimeBrick","event","key","eventMap","Map","checkIf","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","handleEventAction","handleConsoleAction","handleMessageAction","handleHttpError","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","getTplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","applyTheme","theme","applyMode","console","error","handleUseProviderAction","handleCustomAction","computedArgs","useEventAsDefault","e","Event","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","isEvaluable","isPreEvaluated","computeRealValue","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","setProperties","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","getProviderBrick","Error","tagName","toLowerCase","isUseProvider","argsOrContractConf","computeArgs","hooks","flowApi","isFlowApiProvider","_handler$sse","isArray","params","pick","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","startSSEStream","pollEnabled","poll","enabled","startPoll","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","getHistory","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","isObject","ctxStore","tplStateStore","getTplStateStore","JSON","stringify","formStateStore","getFormStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","isProduction","process","env","NODE_ENV","debugManager","shouldLog","Notification","show","message","_hooks$messageDispatc","messageDispatcher"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\nimport { debugManager } from \"./debugManager.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n _runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n let runtimeContext = _runtimeContext;\n if (handler.key && typeof handler.key === \"string\") {\n runtimeContext = {\n ..._runtimeContext,\n eventMap: new Map([\n ...(_runtimeContext.eventMap || []),\n [handler.key, event],\n ]),\n };\n }\n\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n case \"event.stopPropagation\":\n handleEventAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n case \"context.set\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n case \"state.set\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleEventAction(\n event: Event,\n method: \"preventDefault\" | \"stopPropagation\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n const [e] = computedArgs as [Event];\n if (e instanceof Event) {\n e[method]();\n } else {\n // eslint-disable-next-line no-console\n console.error(`call event.${method}() on non-Event object:`, e);\n\n // For compatibility, fallback to the original event.\n event[method]();\n }\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs: unknown[];\n\n let argsOrContractConf: unknown[] | UseProviderContractConf | undefined =\n isUseProvider\n ? computeArgs(handler.args, runtimeContext, event)\n : argsFactory(handler.args, runtimeContext, event, options);\n\n if (\n isUseProvider &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(\n pick(handler, \"params\", \"options\", \"filename\"),\n {\n ...runtimeContext,\n event,\n }\n ) as UseProviderContractConf;\n }\n\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n argsOrContractConf ?? [],\n method,\n handler.sse?.stream\n );\n } else {\n computedArgs = argsOrContractConf ?? [];\n }\n return (realTarget as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n if (isProvider) {\n const pollRuntimeContext = {\n ...runtimeContext,\n event,\n };\n\n const sseStream = computeRealValue(\n handler.sse?.stream,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (sseStream) {\n startSSEStream(\n task as () => Promise<AsyncIterable<unknown>>,\n pollableCallback\n );\n return;\n }\n\n const pollEnabled = computeRealValue(\n handler.poll?.enabled,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (pollEnabled) {\n startPoll(\n task,\n pollableCallback,\n handler.poll as ProviderPollOptions,\n pollRuntimeContext\n );\n\n return;\n }\n }\n\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowOpenAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string,\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction handleWindowPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\n\nfunction handleParentPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n parent.postMessage(...computedArgs);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const isProduction = process.env.NODE_ENV === \"production\";\n\n // 生产环境下,只有调试模式开启且符合日志级别才输出\n if (isProduction && !debugManager.shouldLog(method)) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nasync function handleMessageDispatcher(\n event: Event,\n method: \"subscribe\" | \"unsubscribe\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n callback?: BrickEventHandlerCallback\n) {\n const task = () => {\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks?.messageDispatcher?.[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n runtimeBrick\n );\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n\nfunction computeArgs(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event\n): unknown[] | undefined {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[];\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -123,7 +123,7 @@ runtimeContext, options = {}, isAsync) {
|
|
|
123
123
|
// Ignore evaluating if required `event/DATA` is missing in
|
|
124
124
|
// context. Since they are are provided in different context, whenever
|
|
125
125
|
// missing one of them, memorize the current context for later consuming.
|
|
126
|
-
if (options.lazy || attemptToVisitGlobals.has("EVENT") && !(0, _general.hasOwnProperty)(runtimeContext, "event") || attemptToVisitGlobals.has("DATA") && !(0, _general.hasOwnProperty)(runtimeContext, "data")) {
|
|
126
|
+
if (options.lazy || attemptToVisitGlobals.has("EVENT") && !(0, _general.hasOwnProperty)(runtimeContext, "event") || attemptToVisitGlobals.has("EVENT_BY_KEY") && !(0, _general.hasOwnProperty)(runtimeContext, "eventMap") || attemptToVisitGlobals.has("DATA") && !(0, _general.hasOwnProperty)(runtimeContext, "data")) {
|
|
127
127
|
return {
|
|
128
128
|
blockingList,
|
|
129
129
|
run() {
|
|
@@ -208,6 +208,7 @@ runtimeContext, options = {}, isAsync) {
|
|
|
208
208
|
ctxStore,
|
|
209
209
|
data,
|
|
210
210
|
event,
|
|
211
|
+
eventMap,
|
|
211
212
|
unsafe_penetrate
|
|
212
213
|
} = runtimeContext;
|
|
213
214
|
const penetrableCtx = unsafe_penetrate ? (0, _Runtime._internalApiGetRuntimeContext)() : runtimeContext;
|
|
@@ -259,6 +260,17 @@ runtimeContext, options = {}, isAsync) {
|
|
|
259
260
|
case "EVENT":
|
|
260
261
|
globalVariables[variableName] = event;
|
|
261
262
|
break;
|
|
263
|
+
case "EVENT_BY_KEY":
|
|
264
|
+
globalVariables[variableName] = (0, _proxyFactories.getDynamicReadOnlyProxy)({
|
|
265
|
+
get(_target, key) {
|
|
266
|
+
return eventMap === null || eventMap === void 0 ? void 0 : eventMap.get(key);
|
|
267
|
+
},
|
|
268
|
+
// istanbul ignore next: dev only
|
|
269
|
+
ownKeys() {
|
|
270
|
+
return Array.from((eventMap === null || eventMap === void 0 ? void 0 : eventMap.keys()) ?? []);
|
|
271
|
+
}
|
|
272
|
+
});
|
|
273
|
+
break;
|
|
262
274
|
case "FLAGS":
|
|
263
275
|
globalVariables[variableName] = (0, _proxyFactories.getReadOnlyProxy)(flags);
|
|
264
276
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","names":["_cook","require","_loader","_supply","_general","_storyboard","_lodash","_CustomProcessors","_StoryboardFunctions","_getGeneralGlobals","_proxyFactories","_devtools","_mediaQuery","_getStorageItem","_Runtime","_utils","_WidgetFunctions","_WidgetI18n","_hasInstalledApp","_isStrictMode","_utils2","_resolveData","_computeRealValue","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","shouldAllowRecursiveEvaluations","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","isAsync","passByRuntimeContext","omit","menuUsage","usedArgs","Set","hasAppUsage","precooked","preevaluate","cache","withParent","hooks","beforeVisitGlobal","node","parent","collectAppGetMenuUsage","collectInstalledAppsHasUsage","message","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","hasOwnProperty","Object","keys","length","usedCtx","usedProcessors","usedStates","tplStateStore","strict","isStrictMode","getTplStateStore","usedFormStates","formStateStore","getFormStateStore","devHook","getDevHook","strictCollectMemberUsage","push","ctxStore","waitFor","usedTpls","tpl","add","loadProcessorsImperatively","getBrickPackages","attemptToCheckPermissions","usedFunctions","checkPermissionsUsage","pendingPermissionsPreCheck","size","menu","usedMenuIds","map","menuId","fetchMenuById","getStoryboardByAppId","_internalApiGetStoryboardInBootstrapData","resolveData","asyncComputeRealValue","_hooks$checkInstalled","checkInstalledApps","waitForCheckingApps","_hooks$menu","_hooks$images","data","event","unsafe_penetrate","penetrableCtx","_internalApiGetRuntimeContext","app","currentApp","location","query","match","flags","sys","overrideApp","variableName","hash","substring","cloneDeep","getMenu","getMenuById","getDynamicReadOnlyProxy","get","_target","key","_internalApiGetRuntim","internalCtxStore","getValue","ownKeys","Array","from","getReadOnlyProxy","hasInstalledApp","property","console","getItem","getStorageItem","getMedia","getRuntime","getMiscSettings","URLSearchParams","params","pathname","pkg","customProcessors","_t","k","processor","namespace","split","fromEntries","getAll","warnAboutStrictMode","constants","widgetFunctions","images","widgetImagesFactory","widgetI18nFactory","assign","getGeneralGlobals","storyboardFunctions","appendI18nNamespace","isolatedRoot","result","cook","expression","source","supply","detail","context","devtoolsHookEmit"],"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 {\n strictCollectMemberUsage,\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"@next-core/utils/storyboard\";\nimport { cloneDeep, omit } from \"lodash\";\nimport type { RuntimeContext } from \"../interfaces.js\";\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 { devtoolsHookEmit, getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n getBrickPackages,\n getRuntime,\n hooks,\n} from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { hasInstalledApp } from \"../hasInstalledApp.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\nimport { getFormStateStore } from \"../FormRenderer/utils.js\";\nimport { resolveData } from \"../data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./computeRealValue.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 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 cache: true,\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 const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\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> | undefined;\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 && hooks?.menu) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) =>\n hooks!.menu!.fetchMenuById(menuId, runtimeContext, {\n getStoryboardByAppId: _internalApiGetStoryboardInBootstrapData,\n resolveData,\n asyncComputeRealValue,\n })\n )\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(\n hooks?.checkInstalledApps?.waitForCheckingApps([\n ...hasAppUsage.usedArgs,\n ])\n );\n }\n }\n\n return {\n blockingList,\n run() {\n const { ctxStore, data, event, unsafe_penetrate } = runtimeContext;\n\n const penetrableCtx = unsafe_penetrate\n ? _internalApiGetRuntimeContext()!\n : runtimeContext;\n\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n } = penetrableCtx;\n const app = penetrableCtx.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 if (app == null) {\n throw new ReferenceError(`APP is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: hooks?.menu?.getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n // Allow accessing global `CTX.DS` from an isolated root such as dashboard.\n if (key === \"DS\" && !ctxStore.has(key)) {\n const internalCtxStore =\n _internalApiGetRuntimeContext()?.ctxStore;\n if (internalCtxStore?.has(key)) {\n return internalCtxStore.getValue(key);\n }\n }\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return usedCtx ? 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 case \"INDEX\":\n case \"SIZE\": {\n const property =\n variableName === \"ITEM\"\n ? \"forEachItem\"\n : variableName === \"INDEX\"\n ? \"forEachIndex\"\n : \"forEachSize\";\n if (!hasOwnProperty(runtimeContext, property)) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`${variableName}\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext[property];\n }\n break;\n }\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 if (query == null) {\n throw new ReferenceError(`PARAMS is not defined, in \"${raw}\"`);\n }\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 const keys = new Set<string>();\n for (const processor of usedProcessors) {\n const namespace = processor.split(\".\")[0];\n keys.add(namespace);\n }\n return Array.from(keys);\n },\n });\n break;\n case \"QUERY\":\n if (query == null) {\n throw new ReferenceError(`QUERY is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n if (query == null) {\n throw new ReferenceError(\n `QUERY_ARRAY is not defined, in \"${raw}\"`\n );\n }\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 \"CONSTANTS\":\n // globalVariables[variableName] = getReadOnlyProxy(app?.constants ?? {});\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n if (!app?.constants || !hasOwnProperty(app.constants, key)) {\n throw new ReferenceError(\n `CONSTANTS.${key as string} is not defined`\n );\n }\n return app.constants[key as string];\n },\n ownKeys() {\n return app?.constants ? Object.keys(app.constants) : [];\n },\n });\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = hooks?.images?.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,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n isolatedRoot: runtimeContext.isolatedRoot,\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 devtoolsHookEmit(\"evaluation\", detail);\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n }\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"evaluate.js","names":["_cook","require","_loader","_supply","_general","_storyboard","_lodash","_CustomProcessors","_StoryboardFunctions","_getGeneralGlobals","_proxyFactories","_devtools","_mediaQuery","_getStorageItem","_Runtime","_utils","_WidgetFunctions","_WidgetI18n","_hasInstalledApp","_isStrictMode","_utils2","_resolveData","_computeRealValue","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","shouldAllowRecursiveEvaluations","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","isAsync","passByRuntimeContext","omit","menuUsage","usedArgs","Set","hasAppUsage","precooked","preevaluate","cache","withParent","hooks","beforeVisitGlobal","node","parent","collectAppGetMenuUsage","collectInstalledAppsHasUsage","message","errorConstructor","hasNonStaticUsage","Error","globalVariables","attemptToVisitGlobals","lazy","hasOwnProperty","Object","keys","length","usedCtx","usedProcessors","usedStates","tplStateStore","strict","isStrictMode","getTplStateStore","usedFormStates","formStateStore","getFormStateStore","devHook","getDevHook","strictCollectMemberUsage","push","ctxStore","waitFor","usedTpls","tpl","add","loadProcessorsImperatively","getBrickPackages","attemptToCheckPermissions","usedFunctions","checkPermissionsUsage","pendingPermissionsPreCheck","size","menu","usedMenuIds","map","menuId","fetchMenuById","getStoryboardByAppId","_internalApiGetStoryboardInBootstrapData","resolveData","asyncComputeRealValue","_hooks$checkInstalled","checkInstalledApps","waitForCheckingApps","_hooks$menu","_hooks$images","data","event","eventMap","unsafe_penetrate","penetrableCtx","_internalApiGetRuntimeContext","app","currentApp","location","query","match","flags","sys","overrideApp","variableName","hash","substring","cloneDeep","getMenu","getMenuById","getDynamicReadOnlyProxy","get","_target","key","_internalApiGetRuntim","internalCtxStore","getValue","ownKeys","Array","from","getReadOnlyProxy","hasInstalledApp","property","console","getItem","getStorageItem","getMedia","getRuntime","getMiscSettings","URLSearchParams","params","pathname","pkg","customProcessors","_t","k","processor","namespace","split","fromEntries","getAll","warnAboutStrictMode","constants","widgetFunctions","images","widgetImagesFactory","widgetI18nFactory","assign","getGeneralGlobals","storyboardFunctions","appendI18nNamespace","isolatedRoot","result","cook","expression","source","supply","detail","context","devtoolsHookEmit"],"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 {\n strictCollectMemberUsage,\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"@next-core/utils/storyboard\";\nimport { cloneDeep, omit } from \"lodash\";\nimport type { RuntimeContext } from \"../interfaces.js\";\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 { devtoolsHookEmit, getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n getBrickPackages,\n getRuntime,\n hooks,\n} from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { hasInstalledApp } from \"../hasInstalledApp.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\nimport { getFormStateStore } from \"../FormRenderer/utils.js\";\nimport { resolveData } from \"../data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./computeRealValue.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 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 cache: true,\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 const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\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(\"EVENT_BY_KEY\") &&\n !hasOwnProperty(runtimeContext, \"eventMap\")) ||\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> | undefined;\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 && hooks?.menu) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) =>\n hooks!.menu!.fetchMenuById(menuId, runtimeContext, {\n getStoryboardByAppId: _internalApiGetStoryboardInBootstrapData,\n resolveData,\n asyncComputeRealValue,\n })\n )\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(\n hooks?.checkInstalledApps?.waitForCheckingApps([\n ...hasAppUsage.usedArgs,\n ])\n );\n }\n }\n\n return {\n blockingList,\n run() {\n const { ctxStore, data, event, eventMap, unsafe_penetrate } =\n runtimeContext;\n\n const penetrableCtx = unsafe_penetrate\n ? _internalApiGetRuntimeContext()!\n : runtimeContext;\n\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n } = penetrableCtx;\n const app = penetrableCtx.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 if (app == null) {\n throw new ReferenceError(`APP is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: hooks?.menu?.getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n // Allow accessing global `CTX.DS` from an isolated root such as dashboard.\n if (key === \"DS\" && !ctxStore.has(key)) {\n const internalCtxStore =\n _internalApiGetRuntimeContext()?.ctxStore;\n if (internalCtxStore?.has(key)) {\n return internalCtxStore.getValue(key);\n }\n }\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return usedCtx ? 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 \"EVENT_BY_KEY\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n return eventMap?.get(key as string);\n },\n // istanbul ignore next: dev only\n ownKeys() {\n return Array.from(eventMap?.keys() ?? []);\n },\n });\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 case \"INDEX\":\n case \"SIZE\": {\n const property =\n variableName === \"ITEM\"\n ? \"forEachItem\"\n : variableName === \"INDEX\"\n ? \"forEachIndex\"\n : \"forEachSize\";\n if (!hasOwnProperty(runtimeContext, property)) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`${variableName}\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext[property];\n }\n break;\n }\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 if (query == null) {\n throw new ReferenceError(`PARAMS is not defined, in \"${raw}\"`);\n }\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 const keys = new Set<string>();\n for (const processor of usedProcessors) {\n const namespace = processor.split(\".\")[0];\n keys.add(namespace);\n }\n return Array.from(keys);\n },\n });\n break;\n case \"QUERY\":\n if (query == null) {\n throw new ReferenceError(`QUERY is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n if (query == null) {\n throw new ReferenceError(\n `QUERY_ARRAY is not defined, in \"${raw}\"`\n );\n }\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 \"CONSTANTS\":\n // globalVariables[variableName] = getReadOnlyProxy(app?.constants ?? {});\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n if (!app?.constants || !hasOwnProperty(app.constants, key)) {\n throw new ReferenceError(\n `CONSTANTS.${key as string} is not defined`\n );\n }\n return app.constants[key as string];\n },\n ownKeys() {\n return app?.constants ? Object.keys(app.constants) : [];\n },\n });\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = hooks?.images?.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,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n isolatedRoot: runtimeContext.isolatedRoot,\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 devtoolsHookEmit(\"evaluation\", detail);\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n }\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -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 CustomTemplate,\n RouteConf,\n RuntimeSnippet,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n Storyboard,\n StaticMenuConf,\n UseProviderResolveConf,\n MicroApp,\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 forEachIndex?: number;\n forEachSize?: number;\n appendI18nNamespace?: string;\n isolatedRoot?: symbol;\n\n formStateStoreMap: Map<string, DataStore<\"FORM_STATE\">>;\n formStateStoreId?: string;\n formStateStoreScope?: DataStore<\"FORM_STATE\">[];\n inUseBrick?: boolean;\n\n unsafe_penetrate?: boolean;\n}\n\nexport type AsyncPropertyEntry = [\n name: string,\n value: Promise<unknown>,\n ignoreUndefined?: boolean,\n];\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: RenderReturnNode;\n}\n\nexport interface RenderAbstract extends BaseRenderNode {\n tag: RenderTag.ABSTRACT;\n return: RenderReturnNode;\n iid?: string;\n disposes?: (() => void)[];\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderChildNode;\n sibling?: RenderChildNode;\n return?: RenderReturnNode | null;\n childElements?: HTMLElement[];\n disposed?: boolean;\n mounted?: boolean;\n}\n\nexport type RenderNode = RenderRoot | RenderBrick | RenderAbstract;\nexport type RenderChildNode = RenderBrick | RenderAbstract;\nexport type RenderReturnNode = RenderNode;\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 disposes?: (() => void)[];\n disposed?: boolean;\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 asyncHostPropertyEntries: AsyncPropertyEntry[];\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n usedSlots: Set<string>;\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\nexport interface DataValueOption {\n tplStateStoreId?: string;\n routeId?: string;\n}\n\nexport type PreviewStoryboardPatch =\n | CustomTemplate\n | RouteConf\n | RuntimeSnippet;\n\nexport interface PreviewOption {\n appId: string;\n formId?: string;\n updateStoryboardType?: \"route\" | \"template\" | \"snippet\";\n collectUsedContracts?(storyboard: Storyboard): string[] | Promise<string[]>;\n}\n\nexport interface MenuRequestNode {\n child?: MenuRequestNode;\n sibling?: MenuRequestNode;\n return?: MenuRequestNode;\n request?: Promise<StaticMenuConf>;\n}\n\nexport interface DebugDataValue {\n resolve?: UseProviderResolveConf;\n value?: unknown;\n}\n\nexport interface RuntimeDataVale\n extends Pick<LegacyCompatibleRuntimeContext, \"match\" | \"sys\" | \"query\"> {\n location: {\n href: string;\n origin: string;\n hostname: string;\n host: string;\n };\n app?: MicroApp;\n}\n\nexport interface RuntimeDataValueOption {\n routeId?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
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 CustomTemplate,\n RouteConf,\n RuntimeSnippet,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n Storyboard,\n StaticMenuConf,\n UseProviderResolveConf,\n MicroApp,\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 forEachIndex?: number;\n forEachSize?: number;\n appendI18nNamespace?: string;\n isolatedRoot?: symbol;\n eventMap?: Map<string, Event>;\n\n formStateStoreMap: Map<string, DataStore<\"FORM_STATE\">>;\n formStateStoreId?: string;\n formStateStoreScope?: DataStore<\"FORM_STATE\">[];\n inUseBrick?: boolean;\n\n unsafe_penetrate?: boolean;\n}\n\nexport type AsyncPropertyEntry = [\n name: string,\n value: Promise<unknown>,\n ignoreUndefined?: boolean,\n];\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: RenderReturnNode;\n}\n\nexport interface RenderAbstract extends BaseRenderNode {\n tag: RenderTag.ABSTRACT;\n return: RenderReturnNode;\n iid?: string;\n disposes?: (() => void)[];\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderChildNode;\n sibling?: RenderChildNode;\n return?: RenderReturnNode | null;\n childElements?: HTMLElement[];\n disposed?: boolean;\n mounted?: boolean;\n}\n\nexport type RenderNode = RenderRoot | RenderBrick | RenderAbstract;\nexport type RenderChildNode = RenderBrick | RenderAbstract;\nexport type RenderReturnNode = RenderNode;\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 disposes?: (() => void)[];\n disposed?: boolean;\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 asyncHostPropertyEntries: AsyncPropertyEntry[];\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n usedSlots: Set<string>;\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\nexport interface DataValueOption {\n tplStateStoreId?: string;\n routeId?: string;\n}\n\nexport type PreviewStoryboardPatch =\n | CustomTemplate\n | RouteConf\n | RuntimeSnippet;\n\nexport interface PreviewOption {\n appId: string;\n formId?: string;\n updateStoryboardType?: \"route\" | \"template\" | \"snippet\";\n collectUsedContracts?(storyboard: Storyboard): string[] | Promise<string[]>;\n}\n\nexport interface MenuRequestNode {\n child?: MenuRequestNode;\n sibling?: MenuRequestNode;\n return?: MenuRequestNode;\n request?: Promise<StaticMenuConf>;\n}\n\nexport interface DebugDataValue {\n resolve?: UseProviderResolveConf;\n value?: unknown;\n}\n\nexport interface RuntimeDataVale\n extends Pick<LegacyCompatibleRuntimeContext, \"match\" | \"sys\" | \"query\"> {\n location: {\n href: string;\n origin: string;\n hostname: string;\n host: string;\n };\n app?: MicroApp;\n}\n\nexport interface RuntimeDataValueOption {\n routeId?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -68,10 +68,17 @@ export function isSetPropsCustomHandler(handler) {
|
|
|
68
68
|
export function isConditionalEventHandler(handler) {
|
|
69
69
|
return !!handler.then;
|
|
70
70
|
}
|
|
71
|
-
export function listenerFactory(handlers,
|
|
71
|
+
export function listenerFactory(handlers, _runtimeContext, runtimeBrick) {
|
|
72
72
|
return function (event) {
|
|
73
73
|
var _handler$batch, _handler$batch2;
|
|
74
74
|
for (const handler of [].concat(handlers)) {
|
|
75
|
+
let runtimeContext = _runtimeContext;
|
|
76
|
+
if (handler.key && typeof handler.key === "string") {
|
|
77
|
+
runtimeContext = {
|
|
78
|
+
..._runtimeContext,
|
|
79
|
+
eventMap: new Map([...(_runtimeContext.eventMap || []), [handler.key, event]])
|
|
80
|
+
};
|
|
81
|
+
}
|
|
75
82
|
if (!checkIf(handler, {
|
|
76
83
|
...runtimeContext,
|
|
77
84
|
event
|
|
@@ -124,10 +131,8 @@ export function listenerFactory(handlers, runtimeContext, runtimeBrick) {
|
|
|
124
131
|
handleStorageAction(event, object, method, handler.args, runtimeContext);
|
|
125
132
|
break;
|
|
126
133
|
case "event.preventDefault":
|
|
127
|
-
event.preventDefault();
|
|
128
|
-
break;
|
|
129
134
|
case "event.stopPropagation":
|
|
130
|
-
event.
|
|
135
|
+
handleEventAction(event, method, handler.args, runtimeContext);
|
|
131
136
|
break;
|
|
132
137
|
case "console.log":
|
|
133
138
|
case "console.error":
|
|
@@ -208,6 +213,21 @@ export function listenerFactory(handlers, runtimeContext, runtimeBrick) {
|
|
|
208
213
|
}
|
|
209
214
|
};
|
|
210
215
|
}
|
|
216
|
+
function handleEventAction(event, method, args, runtimeContext) {
|
|
217
|
+
const computedArgs = argsFactory(args, runtimeContext, event, {
|
|
218
|
+
useEventAsDefault: true
|
|
219
|
+
});
|
|
220
|
+
const [e] = computedArgs;
|
|
221
|
+
if (e instanceof Event) {
|
|
222
|
+
e[method]();
|
|
223
|
+
} else {
|
|
224
|
+
// eslint-disable-next-line no-console
|
|
225
|
+
console.error(`call event.${method}() on non-Event object:`, e);
|
|
226
|
+
|
|
227
|
+
// For compatibility, fallback to the original event.
|
|
228
|
+
event[method]();
|
|
229
|
+
}
|
|
230
|
+
}
|
|
211
231
|
function handleUseProviderAction(event, handler, runtimeContext, runtimeBrick) {
|
|
212
232
|
const method = handler.method !== "saveAs" ? "resolve" : "saveAs";
|
|
213
233
|
brickCallback(event, handler.useProvider, handler, method, runtimeContext, runtimeBrick);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindListeners.js","names":["isEvaluable","isObject","pick","checkIf","computeRealValue","getHistory","getProviderBrick","startPoll","isPreEvaluated","setProperties","applyMode","applyTheme","getTplHostElement","getTplStateStore","handleHttpError","Notification","getFormStateStore","hooks","startSSEStream","debugManager","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","_ref","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","_handler$batch","_handler$batch2","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","theme","console","error","handleUseProviderAction","handleCustomAction","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","Error","tagName","toLowerCase","isUseProvider","computedArgs","argsOrContractConf","computeArgs","flowApi","isFlowApiProvider","_handler$sse","isArray","params","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","pollEnabled","poll","enabled","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","ctxStore","tplStateStore","JSON","stringify","formStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","isProduction","process","env","NODE_ENV","shouldLog","show","message","_hooks$messageDispatc","messageDispatcher","arguments"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\nimport { debugManager } from \"./debugManager.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n case \"event.stopPropagation\":\n event.stopPropagation();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n case \"context.set\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n case \"state.set\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs: unknown[];\n\n let argsOrContractConf: unknown[] | UseProviderContractConf | undefined =\n isUseProvider\n ? computeArgs(handler.args, runtimeContext, event)\n : argsFactory(handler.args, runtimeContext, event, options);\n\n if (\n isUseProvider &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(\n pick(handler, \"params\", \"options\", \"filename\"),\n {\n ...runtimeContext,\n event,\n }\n ) as UseProviderContractConf;\n }\n\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n argsOrContractConf ?? [],\n method,\n handler.sse?.stream\n );\n } else {\n computedArgs = argsOrContractConf ?? [];\n }\n return (realTarget as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n if (isProvider) {\n const pollRuntimeContext = {\n ...runtimeContext,\n event,\n };\n\n const sseStream = computeRealValue(\n handler.sse?.stream,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (sseStream) {\n startSSEStream(\n task as () => Promise<AsyncIterable<unknown>>,\n pollableCallback\n );\n return;\n }\n\n const pollEnabled = computeRealValue(\n handler.poll?.enabled,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (pollEnabled) {\n startPoll(\n task,\n pollableCallback,\n handler.poll as ProviderPollOptions,\n pollRuntimeContext\n );\n\n return;\n }\n }\n\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowOpenAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string,\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction handleWindowPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\n\nfunction handleParentPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n parent.postMessage(...computedArgs);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const isProduction = process.env.NODE_ENV === \"production\";\n\n // 生产环境下,只有调试模式开启且符合日志级别才输出\n if (isProduction && !debugManager.shouldLog(method)) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nasync function handleMessageDispatcher(\n event: Event,\n method: \"subscribe\" | \"unsubscribe\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n callback?: BrickEventHandlerCallback\n) {\n const task = () => {\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks?.messageDispatcher?.[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n runtimeBrick\n );\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n\nfunction computeArgs(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event\n): unknown[] | undefined {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[];\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"bindListeners.js","names":["isEvaluable","isObject","pick","checkIf","computeRealValue","getHistory","getProviderBrick","startPoll","isPreEvaluated","setProperties","applyMode","applyTheme","getTplHostElement","getTplStateStore","handleHttpError","Notification","getFormStateStore","hooks","startSSEStream","debugManager","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","_ref","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","_runtimeContext","runtimeBrick","event","_handler$batch","_handler$batch2","key","eventMap","Map","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","handleEventAction","handleConsoleAction","handleMessageAction","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","theme","console","error","handleUseProviderAction","handleCustomAction","computedArgs","useEventAsDefault","e","Event","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","Error","tagName","toLowerCase","isUseProvider","argsOrContractConf","computeArgs","flowApi","isFlowApiProvider","_handler$sse","isArray","params","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","pollEnabled","poll","enabled","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","ctxStore","tplStateStore","JSON","stringify","formStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","isProduction","process","env","NODE_ENV","shouldLog","show","message","_hooks$messageDispatc","messageDispatcher","arguments"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\nimport { debugManager } from \"./debugManager.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n _runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n let runtimeContext = _runtimeContext;\n if (handler.key && typeof handler.key === \"string\") {\n runtimeContext = {\n ..._runtimeContext,\n eventMap: new Map([\n ...(_runtimeContext.eventMap || []),\n [handler.key, event],\n ]),\n };\n }\n\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n case \"event.stopPropagation\":\n handleEventAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n case \"context.set\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n case \"state.set\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleEventAction(\n event: Event,\n method: \"preventDefault\" | \"stopPropagation\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n const [e] = computedArgs as [Event];\n if (e instanceof Event) {\n e[method]();\n } else {\n // eslint-disable-next-line no-console\n console.error(`call event.${method}() on non-Event object:`, e);\n\n // For compatibility, fallback to the original event.\n event[method]();\n }\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs: unknown[];\n\n let argsOrContractConf: unknown[] | UseProviderContractConf | undefined =\n isUseProvider\n ? computeArgs(handler.args, runtimeContext, event)\n : argsFactory(handler.args, runtimeContext, event, options);\n\n if (\n isUseProvider &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(\n pick(handler, \"params\", \"options\", \"filename\"),\n {\n ...runtimeContext,\n event,\n }\n ) as UseProviderContractConf;\n }\n\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n argsOrContractConf ?? [],\n method,\n handler.sse?.stream\n );\n } else {\n computedArgs = argsOrContractConf ?? [];\n }\n return (realTarget as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n if (isProvider) {\n const pollRuntimeContext = {\n ...runtimeContext,\n event,\n };\n\n const sseStream = computeRealValue(\n handler.sse?.stream,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (sseStream) {\n startSSEStream(\n task as () => Promise<AsyncIterable<unknown>>,\n pollableCallback\n );\n return;\n }\n\n const pollEnabled = computeRealValue(\n handler.poll?.enabled,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (pollEnabled) {\n startPoll(\n task,\n pollableCallback,\n handler.poll as ProviderPollOptions,\n pollRuntimeContext\n );\n\n return;\n }\n }\n\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowOpenAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string,\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction handleWindowPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\n\nfunction handleParentPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n parent.postMessage(...computedArgs);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const isProduction = process.env.NODE_ENV === \"production\";\n\n // 生产环境下,只有调试模式开启且符合日志级别才输出\n if (isProduction && !debugManager.shouldLog(method)) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nasync function handleMessageDispatcher(\n event: Event,\n method: \"subscribe\" | \"unsubscribe\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n callback?: BrickEventHandlerCallback\n) {\n const task = () => {\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks?.messageDispatcher?.[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n runtimeBrick\n );\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n\nfunction computeArgs(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event\n): unknown[] | undefined {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[];\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -114,7 +114,7 @@ runtimeContext) {
|
|
|
114
114
|
// Ignore evaluating if required `event/DATA` is missing in
|
|
115
115
|
// context. Since they are are provided in different context, whenever
|
|
116
116
|
// missing one of them, memorize the current context for later consuming.
|
|
117
|
-
if (options.lazy || attemptToVisitGlobals.has("EVENT") && !hasOwnProperty(runtimeContext, "event") || attemptToVisitGlobals.has("DATA") && !hasOwnProperty(runtimeContext, "data")) {
|
|
117
|
+
if (options.lazy || attemptToVisitGlobals.has("EVENT") && !hasOwnProperty(runtimeContext, "event") || attemptToVisitGlobals.has("EVENT_BY_KEY") && !hasOwnProperty(runtimeContext, "eventMap") || attemptToVisitGlobals.has("DATA") && !hasOwnProperty(runtimeContext, "data")) {
|
|
118
118
|
return {
|
|
119
119
|
blockingList,
|
|
120
120
|
run() {
|
|
@@ -199,6 +199,7 @@ runtimeContext) {
|
|
|
199
199
|
ctxStore,
|
|
200
200
|
data,
|
|
201
201
|
event,
|
|
202
|
+
eventMap,
|
|
202
203
|
unsafe_penetrate
|
|
203
204
|
} = runtimeContext;
|
|
204
205
|
const penetrableCtx = unsafe_penetrate ? _internalApiGetRuntimeContext() : runtimeContext;
|
|
@@ -250,6 +251,18 @@ runtimeContext) {
|
|
|
250
251
|
case "EVENT":
|
|
251
252
|
globalVariables[variableName] = event;
|
|
252
253
|
break;
|
|
254
|
+
case "EVENT_BY_KEY":
|
|
255
|
+
globalVariables[variableName] = getDynamicReadOnlyProxy({
|
|
256
|
+
get(_target, key) {
|
|
257
|
+
return eventMap === null || eventMap === void 0 ? void 0 : eventMap.get(key);
|
|
258
|
+
},
|
|
259
|
+
// istanbul ignore next: dev only
|
|
260
|
+
ownKeys() {
|
|
261
|
+
var _eventMap$keys;
|
|
262
|
+
return Array.from((_eventMap$keys = eventMap === null || eventMap === void 0 ? void 0 : eventMap.keys()) !== null && _eventMap$keys !== void 0 ? _eventMap$keys : []);
|
|
263
|
+
}
|
|
264
|
+
});
|
|
265
|
+
break;
|
|
253
266
|
case "FLAGS":
|
|
254
267
|
globalVariables[variableName] = getReadOnlyProxy(flags);
|
|
255
268
|
break;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"evaluate.js","names":["cook","preevaluate","shouldAllowRecursiveEvaluations","loadProcessorsImperatively","supply","hasOwnProperty","strictCollectMemberUsage","collectAppGetMenuUsage","collectInstalledAppsHasUsage","cloneDeep","omit","customProcessors","checkPermissionsUsage","storyboardFunctions","getGeneralGlobals","getDynamicReadOnlyProxy","getReadOnlyProxy","devtoolsHookEmit","getDevHook","getMedia","getStorageItem","_internalApiGetRuntimeContext","_internalApiGetStoryboardInBootstrapData","getBrickPackages","getRuntime","hooks","getTplStateStore","widgetFunctions","widgetI18nFactory","hasInstalledApp","isStrictMode","warnAboutStrictMode","getFormStateStore","resolveData","asyncComputeRealValue","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","arguments","length","undefined","isAsync","passByRuntimeContext","menuUsage","usedArgs","Set","hasAppUsage","precooked","cache","withParent","beforeVisitGlobal","node","parent","message","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","menu","usedMenuIds","map","menuId","fetchMenuById","getStoryboardByAppId","_hooks$checkInstalled","checkInstalledApps","waitForCheckingApps","_penetrableCtx$overri","_hooks$menu","_match$params","_hooks$images","data","event","unsafe_penetrate","penetrableCtx","app","currentApp","location","query","match","flags","sys","overrideApp","variableName","hash","substring","getMenu","getMenuById","get","_target","key","_internalApiGetRuntim","internalCtxStore","getValue","ownKeys","Array","from","property","console","getItem","getMiscSettings","URLSearchParams","params","pathname","pkg","_t","k","processor","namespace","split","fromEntries","getAll","constants","images","widgetImagesFactory","assign","appendI18nNamespace","isolatedRoot","result","expression","source","detail","context"],"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 {\n strictCollectMemberUsage,\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"@next-core/utils/storyboard\";\nimport { cloneDeep, omit } from \"lodash\";\nimport type { RuntimeContext } from \"../interfaces.js\";\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 { devtoolsHookEmit, getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n getBrickPackages,\n getRuntime,\n hooks,\n} from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { hasInstalledApp } from \"../hasInstalledApp.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\nimport { getFormStateStore } from \"../FormRenderer/utils.js\";\nimport { resolveData } from \"../data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./computeRealValue.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 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 cache: true,\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 const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\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> | undefined;\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 && hooks?.menu) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) =>\n hooks!.menu!.fetchMenuById(menuId, runtimeContext, {\n getStoryboardByAppId: _internalApiGetStoryboardInBootstrapData,\n resolveData,\n asyncComputeRealValue,\n })\n )\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(\n hooks?.checkInstalledApps?.waitForCheckingApps([\n ...hasAppUsage.usedArgs,\n ])\n );\n }\n }\n\n return {\n blockingList,\n run() {\n const { ctxStore, data, event, unsafe_penetrate } = runtimeContext;\n\n const penetrableCtx = unsafe_penetrate\n ? _internalApiGetRuntimeContext()!\n : runtimeContext;\n\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n } = penetrableCtx;\n const app = penetrableCtx.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 if (app == null) {\n throw new ReferenceError(`APP is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: hooks?.menu?.getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n // Allow accessing global `CTX.DS` from an isolated root such as dashboard.\n if (key === \"DS\" && !ctxStore.has(key)) {\n const internalCtxStore =\n _internalApiGetRuntimeContext()?.ctxStore;\n if (internalCtxStore?.has(key)) {\n return internalCtxStore.getValue(key);\n }\n }\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return usedCtx ? 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 case \"INDEX\":\n case \"SIZE\": {\n const property =\n variableName === \"ITEM\"\n ? \"forEachItem\"\n : variableName === \"INDEX\"\n ? \"forEachIndex\"\n : \"forEachSize\";\n if (!hasOwnProperty(runtimeContext, property)) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`${variableName}\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext[property];\n }\n break;\n }\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 if (query == null) {\n throw new ReferenceError(`PARAMS is not defined, in \"${raw}\"`);\n }\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 const keys = new Set<string>();\n for (const processor of usedProcessors) {\n const namespace = processor.split(\".\")[0];\n keys.add(namespace);\n }\n return Array.from(keys);\n },\n });\n break;\n case \"QUERY\":\n if (query == null) {\n throw new ReferenceError(`QUERY is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n if (query == null) {\n throw new ReferenceError(\n `QUERY_ARRAY is not defined, in \"${raw}\"`\n );\n }\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 \"CONSTANTS\":\n // globalVariables[variableName] = getReadOnlyProxy(app?.constants ?? {});\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n if (!app?.constants || !hasOwnProperty(app.constants, key)) {\n throw new ReferenceError(\n `CONSTANTS.${key as string} is not defined`\n );\n }\n return app.constants[key as string];\n },\n ownKeys() {\n return app?.constants ? Object.keys(app.constants) : [];\n },\n });\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = hooks?.images?.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,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n isolatedRoot: runtimeContext.isolatedRoot,\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 devtoolsHookEmit(\"evaluation\", detail);\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n }\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"evaluate.js","names":["cook","preevaluate","shouldAllowRecursiveEvaluations","loadProcessorsImperatively","supply","hasOwnProperty","strictCollectMemberUsage","collectAppGetMenuUsage","collectInstalledAppsHasUsage","cloneDeep","omit","customProcessors","checkPermissionsUsage","storyboardFunctions","getGeneralGlobals","getDynamicReadOnlyProxy","getReadOnlyProxy","devtoolsHookEmit","getDevHook","getMedia","getStorageItem","_internalApiGetRuntimeContext","_internalApiGetStoryboardInBootstrapData","getBrickPackages","getRuntime","hooks","getTplStateStore","widgetFunctions","widgetI18nFactory","hasInstalledApp","isStrictMode","warnAboutStrictMode","getFormStateStore","resolveData","asyncComputeRealValue","symbolForRaw","Symbol","for","symbolForContext","isPreEvaluated","raw","getPreEvaluatedRaw","pre","shouldDismissMarkingComputed","possibleErrorConstructs","WeakSet","SyntaxError","TypeError","ReferenceError","getCookErrorConstructor","error","has","constructor","asyncEvaluate","runtimeContext","options","blockingList","run","lowLevelEvaluate","Promise","all","evaluate","arguments","length","undefined","isAsync","passByRuntimeContext","menuUsage","usedArgs","Set","hasAppUsage","precooked","cache","withParent","beforeVisitGlobal","node","parent","message","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","menu","usedMenuIds","map","menuId","fetchMenuById","getStoryboardByAppId","_hooks$checkInstalled","checkInstalledApps","waitForCheckingApps","_penetrableCtx$overri","_hooks$menu","_match$params","_hooks$images","data","event","eventMap","unsafe_penetrate","penetrableCtx","app","currentApp","location","query","match","flags","sys","overrideApp","variableName","hash","substring","getMenu","getMenuById","get","_target","key","_internalApiGetRuntim","internalCtxStore","getValue","ownKeys","Array","from","_eventMap$keys","property","console","getItem","getMiscSettings","URLSearchParams","params","pathname","pkg","_t","k","processor","namespace","split","fromEntries","getAll","constants","images","widgetImagesFactory","assign","appendI18nNamespace","isolatedRoot","result","expression","source","detail","context"],"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 {\n strictCollectMemberUsage,\n collectAppGetMenuUsage,\n collectInstalledAppsHasUsage,\n MemberCallUsage,\n} from \"@next-core/utils/storyboard\";\nimport { cloneDeep, omit } from \"lodash\";\nimport type { RuntimeContext } from \"../interfaces.js\";\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 { devtoolsHookEmit, getDevHook } from \"../devtools.js\";\nimport { getMedia } from \"../mediaQuery.js\";\nimport { getStorageItem } from \"./getStorageItem.js\";\nimport {\n _internalApiGetRuntimeContext,\n _internalApiGetStoryboardInBootstrapData,\n getBrickPackages,\n getRuntime,\n hooks,\n} from \"../Runtime.js\";\nimport type { DataStore } from \"../data/DataStore.js\";\nimport { getTplStateStore } from \"../CustomTemplates/utils.js\";\nimport { widgetFunctions } from \"./WidgetFunctions.js\";\nimport { widgetI18nFactory } from \"./WidgetI18n.js\";\nimport { hasInstalledApp } from \"../hasInstalledApp.js\";\nimport { isStrictMode, warnAboutStrictMode } from \"../../isStrictMode.js\";\nimport { getFormStateStore } from \"../FormRenderer/utils.js\";\nimport { resolveData } from \"../data/resolveData.js\";\nimport { asyncComputeRealValue } from \"./computeRealValue.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 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 cache: true,\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 const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\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(\"EVENT_BY_KEY\") &&\n !hasOwnProperty(runtimeContext, \"eventMap\")) ||\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> | undefined;\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 && hooks?.menu) {\n // Block evaluating if has `APP.getMenu(...)` usage.\n const usedMenuIds = [...menuUsage.usedArgs];\n blockingList.push(\n Promise.all(\n usedMenuIds.map((menuId) =>\n hooks!.menu!.fetchMenuById(menuId, runtimeContext, {\n getStoryboardByAppId: _internalApiGetStoryboardInBootstrapData,\n resolveData,\n asyncComputeRealValue,\n })\n )\n )\n );\n }\n\n if (hasAppUsage.usedArgs.size > 0) {\n // Only wait for specific apps\n blockingList.push(\n hooks?.checkInstalledApps?.waitForCheckingApps([\n ...hasAppUsage.usedArgs,\n ])\n );\n }\n }\n\n return {\n blockingList,\n run() {\n const { ctxStore, data, event, eventMap, unsafe_penetrate } =\n runtimeContext;\n\n const penetrableCtx = unsafe_penetrate\n ? _internalApiGetRuntimeContext()!\n : runtimeContext;\n\n const {\n app: currentApp,\n location,\n query,\n match,\n flags,\n sys,\n } = penetrableCtx;\n const app = penetrableCtx.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 if (app == null) {\n throw new ReferenceError(`APP is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = {\n ...cloneDeep(app),\n getMenu: hooks?.menu?.getMenuById,\n };\n break;\n case \"CTX\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n // Allow accessing global `CTX.DS` from an isolated root such as dashboard.\n if (key === \"DS\" && !ctxStore.has(key)) {\n const internalCtxStore =\n _internalApiGetRuntimeContext()?.ctxStore;\n if (internalCtxStore?.has(key)) {\n return internalCtxStore.getValue(key);\n }\n }\n return ctxStore.getValue(key as string);\n },\n ownKeys() {\n return usedCtx ? 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 \"EVENT_BY_KEY\":\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n return eventMap?.get(key as string);\n },\n // istanbul ignore next: dev only\n ownKeys() {\n return Array.from(eventMap?.keys() ?? []);\n },\n });\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 case \"INDEX\":\n case \"SIZE\": {\n const property =\n variableName === \"ITEM\"\n ? \"forEachItem\"\n : variableName === \"INDEX\"\n ? \"forEachIndex\"\n : \"forEachSize\";\n if (!hasOwnProperty(runtimeContext, property)) {\n // eslint-disable-next-line no-console\n console.error(\n `Using \\`${variableName}\\` but no \\`:forEach\\` is found, check your expression: \"${raw}\"`\n );\n } else {\n globalVariables[variableName] = runtimeContext[property];\n }\n break;\n }\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 if (query == null) {\n throw new ReferenceError(`PARAMS is not defined, in \"${raw}\"`);\n }\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 const keys = new Set<string>();\n for (const processor of usedProcessors) {\n const namespace = processor.split(\".\")[0];\n keys.add(namespace);\n }\n return Array.from(keys);\n },\n });\n break;\n case \"QUERY\":\n if (query == null) {\n throw new ReferenceError(`QUERY is not defined, in \"${raw}\"`);\n }\n globalVariables[variableName] = Object.fromEntries(\n Array.from(query.keys()).map((key) => [key, query.get(key)])\n );\n break;\n case \"QUERY_ARRAY\":\n if (query == null) {\n throw new ReferenceError(\n `QUERY_ARRAY is not defined, in \"${raw}\"`\n );\n }\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 \"CONSTANTS\":\n // globalVariables[variableName] = getReadOnlyProxy(app?.constants ?? {});\n globalVariables[variableName] = getDynamicReadOnlyProxy({\n get(_target, key) {\n if (!app?.constants || !hasOwnProperty(app.constants, key)) {\n throw new ReferenceError(\n `CONSTANTS.${key as string} is not defined`\n );\n }\n return app.constants[key as string];\n },\n ownKeys() {\n return app?.constants ? Object.keys(app.constants) : [];\n },\n });\n break;\n case \"__WIDGET_FN__\":\n globalVariables[variableName] = widgetFunctions;\n break;\n case \"__WIDGET_IMG__\":\n globalVariables[variableName] = hooks?.images?.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,\n appendI18nNamespace: runtimeContext.appendI18nNamespace,\n isolatedRoot: runtimeContext.isolatedRoot,\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 devtoolsHookEmit(\"evaluation\", detail);\n return result;\n } catch (error: any) {\n const message = `${error.message}, in \"${raw}\"`;\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n }\n },\n };\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -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 CustomTemplate,\n RouteConf,\n RuntimeSnippet,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n Storyboard,\n StaticMenuConf,\n UseProviderResolveConf,\n MicroApp,\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 forEachIndex?: number;\n forEachSize?: number;\n appendI18nNamespace?: string;\n isolatedRoot?: symbol;\n\n formStateStoreMap: Map<string, DataStore<\"FORM_STATE\">>;\n formStateStoreId?: string;\n formStateStoreScope?: DataStore<\"FORM_STATE\">[];\n inUseBrick?: boolean;\n\n unsafe_penetrate?: boolean;\n}\n\nexport type AsyncPropertyEntry = [\n name: string,\n value: Promise<unknown>,\n ignoreUndefined?: boolean,\n];\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: RenderReturnNode;\n}\n\nexport interface RenderAbstract extends BaseRenderNode {\n tag: RenderTag.ABSTRACT;\n return: RenderReturnNode;\n iid?: string;\n disposes?: (() => void)[];\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderChildNode;\n sibling?: RenderChildNode;\n return?: RenderReturnNode | null;\n childElements?: HTMLElement[];\n disposed?: boolean;\n mounted?: boolean;\n}\n\nexport type RenderNode = RenderRoot | RenderBrick | RenderAbstract;\nexport type RenderChildNode = RenderBrick | RenderAbstract;\nexport type RenderReturnNode = RenderNode;\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 disposes?: (() => void)[];\n disposed?: boolean;\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 asyncHostPropertyEntries: AsyncPropertyEntry[];\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n usedSlots: Set<string>;\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\nexport interface DataValueOption {\n tplStateStoreId?: string;\n routeId?: string;\n}\n\nexport type PreviewStoryboardPatch =\n | CustomTemplate\n | RouteConf\n | RuntimeSnippet;\n\nexport interface PreviewOption {\n appId: string;\n formId?: string;\n updateStoryboardType?: \"route\" | \"template\" | \"snippet\";\n collectUsedContracts?(storyboard: Storyboard): string[] | Promise<string[]>;\n}\n\nexport interface MenuRequestNode {\n child?: MenuRequestNode;\n sibling?: MenuRequestNode;\n return?: MenuRequestNode;\n request?: Promise<StaticMenuConf>;\n}\n\nexport interface DebugDataValue {\n resolve?: UseProviderResolveConf;\n value?: unknown;\n}\n\nexport interface RuntimeDataVale\n extends Pick<LegacyCompatibleRuntimeContext, \"match\" | \"sys\" | \"query\"> {\n location: {\n href: string;\n origin: string;\n hostname: string;\n host: string;\n };\n app?: MicroApp;\n}\n\nexport interface RuntimeDataValueOption {\n routeId?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
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 CustomTemplate,\n RouteConf,\n RuntimeSnippet,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n Storyboard,\n StaticMenuConf,\n UseProviderResolveConf,\n MicroApp,\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 forEachIndex?: number;\n forEachSize?: number;\n appendI18nNamespace?: string;\n isolatedRoot?: symbol;\n eventMap?: Map<string, Event>;\n\n formStateStoreMap: Map<string, DataStore<\"FORM_STATE\">>;\n formStateStoreId?: string;\n formStateStoreScope?: DataStore<\"FORM_STATE\">[];\n inUseBrick?: boolean;\n\n unsafe_penetrate?: boolean;\n}\n\nexport type AsyncPropertyEntry = [\n name: string,\n value: Promise<unknown>,\n ignoreUndefined?: boolean,\n];\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: RenderReturnNode;\n}\n\nexport interface RenderAbstract extends BaseRenderNode {\n tag: RenderTag.ABSTRACT;\n return: RenderReturnNode;\n iid?: string;\n disposes?: (() => void)[];\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderChildNode;\n sibling?: RenderChildNode;\n return?: RenderReturnNode | null;\n childElements?: HTMLElement[];\n disposed?: boolean;\n mounted?: boolean;\n}\n\nexport type RenderNode = RenderRoot | RenderBrick | RenderAbstract;\nexport type RenderChildNode = RenderBrick | RenderAbstract;\nexport type RenderReturnNode = RenderNode;\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 disposes?: (() => void)[];\n disposed?: boolean;\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 asyncHostPropertyEntries: AsyncPropertyEntry[];\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n usedSlots: Set<string>;\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\nexport interface DataValueOption {\n tplStateStoreId?: string;\n routeId?: string;\n}\n\nexport type PreviewStoryboardPatch =\n | CustomTemplate\n | RouteConf\n | RuntimeSnippet;\n\nexport interface PreviewOption {\n appId: string;\n formId?: string;\n updateStoryboardType?: \"route\" | \"template\" | \"snippet\";\n collectUsedContracts?(storyboard: Storyboard): string[] | Promise<string[]>;\n}\n\nexport interface MenuRequestNode {\n child?: MenuRequestNode;\n sibling?: MenuRequestNode;\n return?: MenuRequestNode;\n request?: Promise<StaticMenuConf>;\n}\n\nexport interface DebugDataValue {\n resolve?: UseProviderResolveConf;\n value?: unknown;\n}\n\nexport interface RuntimeDataVale\n extends Pick<LegacyCompatibleRuntimeContext, \"match\" | \"sys\" | \"query\"> {\n location: {\n href: string;\n origin: string;\n hostname: string;\n host: string;\n };\n app?: MicroApp;\n}\n\nexport interface RuntimeDataValueOption {\n routeId?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -8,5 +8,5 @@ export declare function isCustomHandler(handler: BrickEventHandler): handler is
|
|
|
8
8
|
export declare function isExecuteCustomHandler(handler: CustomBrickEventHandler): handler is ExecuteCustomBrickEventHandler;
|
|
9
9
|
export declare function isSetPropsCustomHandler(handler: CustomBrickEventHandler): handler is SetPropsCustomBrickEventHandler;
|
|
10
10
|
export declare function isConditionalEventHandler(handler: BrickEventHandler): handler is ConditionalEventHandler;
|
|
11
|
-
export declare function listenerFactory(handlers: BrickEventHandler | BrickEventHandler[],
|
|
11
|
+
export declare function listenerFactory(handlers: BrickEventHandler | BrickEventHandler[], _runtimeContext: RuntimeContext, runtimeBrick?: ElementHolder): (event: Event) => void;
|
|
12
12
|
export declare function eventCallbackFactory(callback: BrickEventHandlerCallback, runtimeContext: RuntimeContext, runtimeBrick?: ElementHolder): (type: "success" | "error" | "finally" | "progress") => (result?: unknown) => void;
|
|
@@ -15,6 +15,7 @@ export interface RuntimeContext extends LegacyCompatibleRuntimeContext {
|
|
|
15
15
|
forEachSize?: number;
|
|
16
16
|
appendI18nNamespace?: string;
|
|
17
17
|
isolatedRoot?: symbol;
|
|
18
|
+
eventMap?: Map<string, Event>;
|
|
18
19
|
formStateStoreMap: Map<string, DataStore<"FORM_STATE">>;
|
|
19
20
|
formStateStoreId?: string;
|
|
20
21
|
formStateStoreScope?: DataStore<"FORM_STATE">[];
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-core/runtime",
|
|
3
|
-
"version": "1.
|
|
3
|
+
"version": "1.72.1",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/runtime",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"repository": {
|
|
@@ -47,12 +47,12 @@
|
|
|
47
47
|
"@next-core/color-theme": "^0.4.8",
|
|
48
48
|
"@next-core/cook": "^2.5.12",
|
|
49
49
|
"@next-core/http": "^1.2.14",
|
|
50
|
-
"@next-core/i18n": "^1.0.
|
|
51
|
-
"@next-core/inject": "^1.0.
|
|
50
|
+
"@next-core/i18n": "^1.0.88",
|
|
51
|
+
"@next-core/inject": "^1.0.63",
|
|
52
52
|
"@next-core/loader": "^1.6.17",
|
|
53
53
|
"@next-core/supply": "^2.3.9",
|
|
54
|
-
"@next-core/types": "^1.
|
|
55
|
-
"@next-core/utils": "^1.8.
|
|
54
|
+
"@next-core/types": "^1.19.0",
|
|
55
|
+
"@next-core/utils": "^1.8.9",
|
|
56
56
|
"@ungap/event-target": "^0.2.4",
|
|
57
57
|
"compare-versions": "^6.1.1",
|
|
58
58
|
"history": "^4.10.1",
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"@next-core/build-next-libs": "^1.0.25",
|
|
68
68
|
"@next-core/test-next": "^2.0.1"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "3ccc031c4b5cda5071a24b534d340283755c0d0b"
|
|
71
71
|
}
|