@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.
@@ -82,9 +82,16 @@ function isSetPropsCustomHandler(handler) {
82
82
  function isConditionalEventHandler(handler) {
83
83
  return !!handler.then;
84
84
  }
85
- function listenerFactory(handlers, runtimeContext, runtimeBrick) {
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.stopPropagation();
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, runtimeContext, runtimeBrick) {
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.stopPropagation();
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[], runtimeContext: RuntimeContext, runtimeBrick?: ElementHolder): (event: Event) => void;
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.71.4",
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.87",
51
- "@next-core/inject": "^1.0.62",
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.18.1",
55
- "@next-core/utils": "^1.8.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": "30de503f4f8d9eea764201203c5049ec45f65733"
70
+ "gitHead": "3ccc031c4b5cda5071a24b534d340283755c0d0b"
71
71
  }