@next-core/runtime 1.69.4 → 1.71.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -161,11 +161,13 @@ function listenerFactory(handlers, runtimeContext, runtimeBrick) {
161
161
  case "context.replace":
162
162
  case "context.refresh":
163
163
  case "context.load":
164
+ case "context.set":
164
165
  handleContextAction(event, method, handler.args, handler.batch ?? true, handler.callback, runtimeContext);
165
166
  break;
166
167
  case "state.update":
167
168
  case "state.refresh":
168
169
  case "state.load":
170
+ case "state.set":
169
171
  handleTplStateAction(event, method, handler.args, handler.batch ?? true, handler.callback, runtimeContext);
170
172
  break;
171
173
  case "tpl.dispatchEvent":
@@ -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 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 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\",\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\",\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","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":";;;;;;;;;;;;;;;AAeA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,OAAA,GAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AACA,IAAAI,iBAAA,GAAAJ,OAAA;AACA,IAAAK,QAAA,GAAAL,OAAA;AACA,IAAAM,iBAAA,GAAAN,OAAA;AACA,IAAAO,KAAA,GAAAP,OAAA;AACA,IAAAQ,SAAA,GAAAR,OAAA;AACA,IAAAS,cAAA,GAAAT,OAAA;AACA,IAAAU,aAAA,GAAAV,OAAA;AAMA,IAAAW,MAAA,GAAAX,OAAA;AAIA,IAAAY,gBAAA,GAAAZ,OAAA;AACA,IAAAa,aAAA,GAAAb,OAAA;AACA,IAAAc,OAAA,GAAAd,OAAA;AAEA,IAAAe,QAAA,GAAAf,OAAA;AACA,IAAAgB,IAAA,GAAAhB,OAAA;AACA,IAAAiB,aAAA,GAAAjB,OAAA;AAEO,SAASkB,aAAaA,CAC3BC,KAA0B,EAC1BC,SAAqC,EACrCC,cAA8B,EACxB;EACN,IAAI,CAACD,SAAS,EAAE;IACd;EACF;EACAE,MAAM,CAACC,OAAO,CAACH,SAAS,CAAC,CAACI,OAAO,CAAC,CAAC,CAACC,SAAS,EAAEC,QAAQ,CAAC,KAAK;IAC3D,MAAMC,QAAQ,GAAGC,eAAe,CAACF,QAAQ,EAAEL,cAAc,EAAE;MACzDQ,OAAO,EAAEV;IACX,CAAC,CAAC;IACFA,KAAK,CAACW,gBAAgB,CAACL,SAAS,EAAEE,QAAQ,CAAC;;IAE3C;IACA,IAAI,CAACR,KAAK,CAACY,WAAW,EAAE;MACtBZ,KAAK,CAACY,WAAW,GAAG,EAAE;IACxB;IACAZ,KAAK,CAACY,WAAW,CAACC,IAAI,CAAC,CAACP,SAAS,EAAEE,QAAQ,CAAC,CAAC;;IAE7C;IACA,IAAI,CAACR,KAAK,CAACc,gBAAgB,EAAE;MAC3Bd,KAAK,CAACc,gBAAgB,GAAG,EAAE;IAC7B;IACA,KAAK,MAAMC,OAAO,IAAK,EAAE,CAAyBC,MAAM,CAACT,QAAQ,CAAC,EAAE;MAClEP,KAAK,CAACc,gBAAgB,CAACD,IAAI,CAAC,CAACP,SAAS,EAAE,IAAI,EAAES,OAAO,CAAC,CAAC;IACzD;EACF,CAAC,CAAC;AACJ;AAEO,SAASE,eAAeA,CAACjB,KAA0B,EAAQ;EAChE,IAAIA,KAAK,CAACY,WAAW,EAAE;IACrB,KAAK,MAAM,CAACN,SAAS,EAAEE,QAAQ,CAAC,IAAIR,KAAK,CAACY,WAAW,EAAE;MACrDZ,KAAK,CAACkB,mBAAmB,CAACZ,SAAS,EAAEE,QAAQ,CAAC;IAChD;IACAR,KAAK,CAACY,WAAW,CAACO,MAAM,GAAG,CAAC;EAC9B;AACF;AAEO,SAASC,gBAAgBA,CAC9BL,OAA0B,EACW;EACrC,OAAO,OAAQA,OAAO,CAA8BM,MAAM,KAAK,QAAQ;AACzE;AAEO,SAASC,oBAAoBA,CAClCP,OAA0B,EACU;EACpC,OAAO,OAAQA,OAAO,CAA6BQ,WAAW,KAAK,QAAQ;AAC7E;AAEO,SAASC,eAAeA,CAC7BT,OAA0B,EACU;EACpC,OAAO,CAAC,EACN,CAAEA,OAAO,CAA6BU,MAAM,IACzCV,OAAO,CAA6BW,SAAS,MAC9CX,OAAO,CAAoCY,MAAM,IAChDZ,OAAO,CAAqCa,UAAU,CAAC,CAC3D;AACH;AAEO,SAASC,sBAAsBA,CACpCd,OAAgC,EACW;EAC3C,OAAO,CAAC,CAAEA,OAAO,CAAoCY,MAAM;AAC7D;AAEO,SAASG,uBAAuBA,CACrCf,OAAgC,EACY;EAC5C,OAAO,CAAC,CAAEA,OAAO,CAAqCa,UAAU;AAClE;AAEO,SAASG,yBAAyBA,CACvChB,OAA0B,EACU;EACpC,OAAO,CAAC,CAAEA,OAAO,CAA6BiB,IAAI;AACpD;AAEO,SAASvB,eAAeA,CAC7BF,QAAiD,EACjDL,cAA8B,EAC9B+B,YAA4B,EAC5B;EACA,OAAO,UAAUC,KAAY,EAAQ;IACnC,KAAK,MAAMnB,OAAO,IAAK,EAAE,CAAyBC,MAAM,CAACT,QAAQ,CAAC,EAAE;MAClE,IAAI,CAAC,IAAA4B,gBAAO,EAACpB,OAAO,EAAE;QAAE,GAAGb,cAAc;QAAEgC;MAAM,CAAC,CAAC,EAAE;QACnD,IAAInB,OAAO,CAACqB,IAAI,EAAE;UAChB3B,eAAe,CAACM,OAAO,CAACqB,IAAI,EAAElC,cAAc,EAAE+B,YAAY,CAAC,CAACC,KAAK,CAAC;QACpE;QACA;MACF;MAEA,IAAIH,yBAAyB,CAAChB,OAAO,CAAC,EAAE;QACtCN,eAAe,CAACM,OAAO,CAACiB,IAAI,EAAE9B,cAAc,EAAE+B,YAAY,CAAC,CAACC,KAAK,CAAC;MACpE,CAAC,MAAM,IAAId,gBAAgB,CAACL,OAAO,CAAC,EAAE;QACpC,MAAM,CAACsB,MAAM,EAAEV,MAAM,CAAC,GAAGZ,OAAO,CAACM,MAAM,CAACiB,KAAK,CAAC,GAAG,CAAQ;QACzD,QAAQvB,OAAO,CAACM,MAAM;UACpB,KAAK,cAAc;UACnB,KAAK,iBAAiB;UACtB,KAAK,mBAAmB;UACxB,KAAK,sBAAsB;UAC3B,KAAK,oBAAoB;UACzB,KAAK,eAAe;UACpB,KAAK,gBAAgB;UACrB,KAAK,mBAAmB;UACxB,KAAK,gBAAgB;UACrB,KAAK,iBAAiB;YACpBkB,mBAAmB,CACjBL,KAAK,EACLP,MAAM,EACNZ,OAAO,CAACyB,IAAI,EACZzB,OAAO,CAAC0B,QAAQ,EAChBvC,cACF,CAAC;YACD;;UAEF;UACA;UACA;UACA;;UAEA,KAAK,aAAa;YAChBwC,sBAAsB,CAACR,KAAK,EAAEnB,OAAO,CAACyB,IAAI,EAAEtC,cAAc,CAAC;YAC3D;UAEF,KAAK,oBAAoB;YACvByC,6BAA6B,CAACT,KAAK,EAAEnB,OAAO,CAACyB,IAAI,EAAEtC,cAAc,CAAC;YAClE;UAEF,KAAK,oBAAoB;YACvB0C,6BAA6B,CAACV,KAAK,EAAEnB,OAAO,CAACyB,IAAI,EAAEtC,cAAc,CAAC;YAClE;UAEF,KAAK,iBAAiB;UACtB,KAAK,iBAAiB;YACpB2C,oBAAoB,CAACX,KAAK,EAAEP,MAAM,EAAEZ,OAAO,CAACyB,IAAI,EAAEtC,cAAc,CAAC;YACjE;UAEF,KAAK,sBAAsB;UAC3B,KAAK,yBAAyB;UAC9B,KAAK,wBAAwB;UAC7B,KAAK,2BAA2B;YAC9B4C,mBAAmB,CACjBZ,KAAK,EACLG,MAAM,EACNV,MAAM,EACNZ,OAAO,CAACyB,IAAI,EACZtC,cACF,CAAC;YACD;UAEF,KAAK,sBAAsB;YACzBgC,KAAK,CAACa,cAAc,CAAC,CAAC;YACtB;UACF,KAAK,uBAAuB;YAC1Bb,KAAK,CAACc,eAAe,CAAC,CAAC;YACvB;UAEF,KAAK,aAAa;UAClB,KAAK,eAAe;UACpB,KAAK,cAAc;UACnB,KAAK,cAAc;YACjBC,mBAAmB,CAACf,KAAK,EAAEP,MAAM,EAAEZ,OAAO,CAACyB,IAAI,EAAEtC,cAAc,CAAC;YAChE;UAEF,KAAK,iBAAiB;UACtB,KAAK,eAAe;UACpB,KAAK,cAAc;UACnB,KAAK,cAAc;YACjBgD,mBAAmB,CAAChB,KAAK,EAAEP,MAAM,EAAEZ,OAAO,CAACyB,IAAI,EAAEtC,cAAc,CAAC;YAChE;UAEF,KAAK,iBAAiB;YACpB,IAAAiD,gCAAe,EAAEjB,KAAK,CAAiBkB,MAAM,CAAC;YAC9C;UAEF,KAAK,gBAAgB;UACrB,KAAK,iBAAiB;UACtB,KAAK,iBAAiB;UACtB,KAAK,cAAc;UACnB,KAAK,aAAa;YAChBC,mBAAmB,CACjBnB,KAAK,EACLP,MAAM,EACNZ,OAAO,CAACyB,IAAI,EACZzB,OAAO,CAACuC,KAAK,IAAI,IAAI,EACrBvC,OAAO,CAAC0B,QAAQ,EAChBvC,cACF,CAAC;YACD;UAEF,KAAK,cAAc;UACnB,KAAK,eAAe;UACpB,KAAK,YAAY;UACjB,KAAK,WAAW;YACdqD,oBAAoB,CAClBrB,KAAK,EACLP,MAAM,EACNZ,OAAO,CAACyB,IAAI,EACZzB,OAAO,CAACuC,KAAK,IAAI,IAAI,EACrBvC,OAAO,CAAC0B,QAAQ,EAChBvC,cACF,CAAC;YACD;UAEF,KAAK,mBAAmB;YAAE;cACxB,MAAM,CAACsD,IAAI,EAAEC,IAAI,CAAC,GAAGC,WAAW,CAC9B3C,OAAO,CAACyB,IAAI,EACZtC,cAAc,EACdgC,KACF,CAA8B;cAC9B,MAAMyB,cAAc,GAAG,IAAAC,wBAAiB,EACtC1D,cAAc,EACda,OAAO,CAACM,MAAM,EACd,KAAKmC,IAAI,EACX,CAAC;cACDG,cAAc,CAACE,aAAa,CAAC,IAAIC,WAAW,CAACN,IAAI,EAAEC,IAAI,CAAC,CAAC;cACzD;YACF;UAEA,KAAK,kBAAkB;YACrBM,qBAAqB,CACnB7B,KAAK,EACLnB,OAAO,CAACyB,IAAI,EACZzB,OAAO,CAAC0B,QAAQ,EAChBvC,cACF,CAAC;YACD;UAEF,KAAK,mBAAmB;UACxB,KAAK,qBAAqB;YACxB8D,uBAAuB,CACrB9B,KAAK,EACLP,MAAM,EACNZ,OAAO,CAACyB,IAAI,EACZtC,cAAc,EACd+B,YAAY,EACZlB,OAAO,CAAC0B,QACV,CAAC;YACD;UAEF,KAAK,oBAAoB;UACzB,KAAK,qBAAqB;YACxB,IAAAwB,wBAAU,EACRlD,OAAO,CAACM,MAAM,KAAK,oBAAoB,GAAG,MAAM,GAAG,OACrD,CAAC;YACD;UACF,KAAK,gBAAgB;YAAE;cACrB,MAAM,CAAC6C,KAAK,CAAC,GAAGR,WAAW,CAAC3C,OAAO,CAACyB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;cAChE,IAAA+B,wBAAU,EAACC,KAAkB,CAAC;cAC9B;YACF;UACA,KAAK,uBAAuB;UAC5B,KAAK,qBAAqB;YACxB,IAAAC,uBAAS,EACPpD,OAAO,CAACM,MAAM,KAAK,uBAAuB,GACtC,WAAW,GACX,SACN,CAAC;YACD;;UAEF;UACA;;UAEA;;UAEA;;UAEA;YACE;YACA+C,OAAO,CAACC,KAAK,CAAC,gCAAgC,EAAEtD,OAAO,CAACM,MAAM,CAAC;QACnE;MACF,CAAC,MAAM,IAAIC,oBAAoB,CAACP,OAAO,CAAC,EAAE;QACxCuD,uBAAuB,CAACpC,KAAK,EAAEnB,OAAO,EAAEb,cAAc,EAAE+B,YAAY,CAAC;MACvE,CAAC,MAAM,IAAIT,eAAe,CAACT,OAAO,CAAC,EAAE;QACnCwD,kBAAkB,CAACrC,KAAK,EAAEnB,OAAO,EAAEb,cAAc,EAAE+B,YAAa,CAAC;MACnE,CAAC,MAAM;QACL;QACAmC,OAAO,CAACC,KAAK,CAAC,wBAAwB,EAAEtD,OAAO,CAAC;MAClD;IACF;EACF,CAAC;AACH;AAEA,SAASuD,uBAAuBA,CAC9BpC,KAAY,EACZnB,OAAgC,EAChCb,cAA8B,EAC9B+B,YAA4B,EAC5B;EACA,MAAMN,MAAM,GAAGZ,OAAO,CAACY,MAAM,KAAK,QAAQ,GAAG,SAAS,GAAG,QAAQ;EACjE6C,aAAa,CACXtC,KAAK,EACLnB,OAAO,CAACQ,WAAW,EACnBR,OAAO,EACPY,MAAM,EACNzB,cAAc,EACd+B,YACF,CAAC;AACH;AAEA,SAASsC,kBAAkBA,CACzBrC,KAAY,EACZnB,OAAgC,EAChCb,cAA8B,EAC9B+B,YAA2B,EAC3B;EACA,IAAIwC,OAAsB,GAAG,EAAE;EAC/B,MAAMC,SAAS,GAAG3D,OAAO,CAACU,MAAM;EAChC,MAAMkD,YAAY,GAAG5D,OAAO,CAACW,SAAS;EACtC,IAAIkD,cAAc,GAAGF,SAAS;EAC9B;EACA,IACE,OAAOA,SAAS,KAAK,QAAQ,GACzB,IAAAG,iBAAW,EAACH,SAAS,CAAC,GACtB,IAAAI,wBAAc,EAACJ,SAAS,CAAC,EAC7B;IACAE,cAAc,GAAG,IAAAG,kCAAgB,EAACL,SAAS,EAAE;MAAE,GAAGxE,cAAc;MAAEgC;IAAM,CAAC,CAAC;EAC5E;EACA,IAAI,OAAO0C,cAAc,KAAK,QAAQ,EAAE;IACtC,IAAIA,cAAc,KAAK,OAAO,EAAE;MAC9BH,OAAO,CAAC5D,IAAI,CAACoB,YAAY,CAACvB,OAAQ,CAAC;IACrC,CAAC,MAAM,IAAIK,OAAO,CAACiE,QAAQ,EAAE;MAC3BP,OAAO,GAAGQ,KAAK,CAACC,IAAI,CAACC,QAAQ,CAACC,gBAAgB,CAACR,cAAc,CAAC,CAAC;IACjE,CAAC,MAAM;MACL,MAAMS,KAAK,GAAGF,QAAQ,CAACG,aAAa,CAACV,cAAc,CAAgB;MACnE,IAAIS,KAAK,KAAK,IAAI,EAAE;QAClBZ,OAAO,CAAC5D,IAAI,CAACwE,KAAK,CAAC;MACrB;IACF;EACF,CAAC,MAAM,IAAIT,cAAc,EAAE;IACzB,IAAIA,cAAc,YAAYW,WAAW,EAAE;MACzCd,OAAO,CAAC5D,IAAI,CAAC+D,cAA6B,CAAC;IAC7C,CAAC,MAAM;MACL;MACAR,OAAO,CAACC,KAAK,CAAC,oBAAoB,EAAEO,cAAc,CAAC;IACrD;EACF,CAAC,MAAM,IAAID,YAAY,EAAE;IACvB,IAAIa,iBAAiB,GAAGb,YAAY;IACpC;IACA,IACE,OAAOA,YAAY,KAAK,QAAQ,GAC5B,IAAAE,iBAAW,EAACF,YAAY,CAAC,GACzB,IAAAG,wBAAc,EAACH,YAAY,CAAC,EAChC;MACAa,iBAAiB,GAAG,IAAAT,kCAAgB,EAACJ,YAAY,EAAE;QACjD,GAAGzE,cAAc;QACjBgC;MACF,CAAC,CAAsB;IACzB;IACA,MAAMuD,UAAU,GAAI,EAAE,CAAczE,MAAM,CAACwE,iBAAiB,CAAC;IAC7D,MAAM7B,cAAc,GAAG,IAAAC,wBAAiB,EACtC1D,cAAc,EACd,WAAW,EACX,KAAKuF,UAAU,CAACC,IAAI,CAAC,IAAI,CAAC,EAC5B,CAAC;IACDjB,OAAO,CAAC5D,IAAI,CACV,GAAI4E,UAAU,CACXE,GAAG,CAAEC,GAAG;MAAA,IAAAC,qBAAA;MAAA,QAAAA,qBAAA,GAAKlC,cAAc,CAACmC,iBAAiB,cAAAD,qBAAA,uBAAhCA,qBAAA,CAAAE,IAAA,CAAApC,cAAc,EAAqBiC,GAAG,CAAC;IAAA,EAAC,CACrDI,MAAM,CAACC,OAAO,CACnB,CAAC;EACH;EACA,IAAIxB,OAAO,CAACtD,MAAM,KAAK,CAAC,EAAE;IACxB;IACAiD,OAAO,CAACC,KAAK,CAAC,mBAAmB,EAAEK,SAAS,IAAIC,YAAY,CAAC;IAC7D;EACF;EACA,IAAI9C,sBAAsB,CAACd,OAAO,CAAC,EAAE;IACnC0D,OAAO,CAACpE,OAAO,CAAEoB,MAAM,IAAK;MAC1B+C,aAAa,CACXtC,KAAK,EACLT,MAAM,EACNV,OAAO,EACPA,OAAO,CAACY,MAAM,EACdzB,cAAc,EACd+B,YAAY,EACZ;QACEiE,iBAAiB,EAAE;MACrB,CACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,MAAM,IAAIpE,uBAAuB,CAACf,OAAO,CAAC,EAAE;IAC3C,IAAAoF,4BAAa,EAAC1B,OAAO,EAAE1D,OAAO,CAACa,UAAU,EAAE;MACzC,GAAG1B,cAAc;MACjBgC;IACF,CAAC,CAAC;EACJ;AACF;AAEA,eAAesC,aAAaA,CAC1BtC,KAAY,EACZkE,gBAAsC,EACtCrF,OAAiE,EACjEY,MAAc,EACdzB,cAA8B,EAC9B+B,YAA4B,EAC5BoE,OAA4B,EACb;EACf,MAAMC,UAAU,GAAGhF,oBAAoB,CAACP,OAAO,CAAC;EAEhD,MAAMwF,IAAI,GAAG,MAAAA,CAAA,KAA8B;IAAA,IAAAC,cAAA;IACzC,MAAMC,UAAU,GAAGH,UAAU,GACzB,MAAM,IAAAI,kCAAgB,EAACN,gBAA0B,CAAC,GACjDA,gBAAgC;IAErC,IAAI,OAAQK,UAAU,CAAS9E,MAAM,CAAC,KAAK,UAAU,EAAE;MACrD,MAAM,IAAIgF,KAAK,CACb,WAAWF,UAAU,CAACG,OAAO,CAACC,WAAW,CAAC,CAAC,oBAAoBlF,MAAM,EACvE,CAAC;IACH;IAEA,MAAMmF,aAAa,GAAGxF,oBAAoB,CAACP,OAAO,CAAC;IACnD,IAAIgG,YAAuB;IAE3B,IAAIC,kBAAmE,GACrEF,aAAa,GACTG,WAAW,CAAClG,OAAO,CAACyB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC,GAChDwB,WAAW,CAAC3C,OAAO,CAACyB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,EAAEmE,OAAO,CAAC;IAE/D,IACES,aAAa,IACbI,cAAK,aAALA,cAAK,gBAAAV,cAAA,GAALU,cAAK,CAAEC,OAAO,cAAAX,cAAA,eAAdA,cAAA,CAAgBY,iBAAiB,CAACrG,OAAO,CAACQ,WAAW,CAAC,EACtD;MAAA,IAAA8F,YAAA;MACA,IAAI,CAACpC,KAAK,CAACqC,OAAO,CAACvG,OAAO,CAACyB,IAAI,CAAC,IAAIzB,OAAO,CAACwG,MAAM,EAAE;QAClDP,kBAAkB,GAAG,IAAAjC,kCAAgB,EACnC,IAAAyC,YAAI,EAACzG,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,EAC9C;UACE,GAAGb,cAAc;UACjBgC;QACF,CACF,CAA4B;MAC9B;MAEA6E,YAAY,GAAG,MAAMG,cAAK,CAACC,OAAO,CAACM,gBAAgB,CACjD1G,OAAO,CAACQ,WAAW,EACnByF,kBAAkB,IAAI,EAAE,EACxBrF,MAAM,GAAA0F,YAAA,GACNtG,OAAO,CAAC2G,GAAG,cAAAL,YAAA,uBAAXA,YAAA,CAAaM,MACf,CAAC;IACH,CAAC,MAAM;MACLZ,YAAY,GAAGC,kBAAkB,IAAI,EAAE;IACzC;IACA,OAAQP,UAAU,CAAS9E,MAAM,CAAC,CAAC,GAAGoF,YAAY,CAAC;EACrD,CAAC;EAED,IAAI,CAAChG,OAAO,CAAC0B,QAAQ,EAAE;IACrB8D,IAAI,CAAC,CAAC;IACN;EACF;EAEA,MAAMqB,eAAe,GAAGC,oBAAoB,CAC1C9G,OAAO,CAAC0B,QAAQ,EAChBvC,cAAc,EACd+B,YACF,CAAC;EAED,MAAM6F,gBAA4C,GAAG;IACnDC,QAAQ,EAAEH,eAAe,CAAC,UAAU,CAAC;IACrCI,OAAO,EAAEJ,eAAe,CAAC,SAAS,CAAC;IACnCvD,KAAK,EAAEuD,eAAe,CAAC,OAAO,CAAC;IAC/BK,OAAO,EAAEL,eAAe,CAAC,SAAS;EACpC,CAAC;EAED,IAAItB,UAAU,EAAE;IAAA,IAAA4B,aAAA,EAAAC,aAAA;IACd,MAAMC,kBAAkB,GAAG;MACzB,GAAGlI,cAAc;MACjBgC;IACF,CAAC;IAED,MAAMmG,SAAS,GAAG,IAAAtD,kCAAgB,GAAAmD,aAAA,GAChCnH,OAAO,CAAC2G,GAAG,cAAAQ,aAAA,uBAAXA,aAAA,CAAaP,MAAM,EACnBS,kBACF,CAAwB;IAExB,IAAIC,SAAS,EAAE;MACb,IAAAC,mBAAc,EACZ/B,IAAI,EACJuB,gBACF,CAAC;MACD;IACF;IAEA,MAAMS,WAAW,GAAG,IAAAxD,kCAAgB,GAAAoD,aAAA,GAClCpH,OAAO,CAACyH,IAAI,cAAAL,aAAA,uBAAZA,aAAA,CAAcM,OAAO,EACrBL,kBACF,CAAwB;IAExB,IAAIG,WAAW,EAAE;MACf,IAAAG,eAAS,EACPnC,IAAI,EACJuB,gBAAgB,EAChB/G,OAAO,CAACyH,IAAI,EACZJ,kBACF,CAAC;MAED;IACF;EACF;EAEA,IAAI;IACF;IACA,MAAMO,MAAM,GAAG,MAAMpC,IAAI,CAAC,CAAC;IAC3BuB,gBAAgB,CAACE,OAAO,CAACW,MAAM,CAAC;EAClC,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZd,gBAAgB,CAACzD,KAAK,CAACuE,GAAG,CAAC;EAC7B,CAAC,SAAS;IACRd,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;EAC/B;AACF;AAEA,SAASvF,mBAAmBA,CAC1BL,KAAY,EACZP,MAUa,EACba,IAA2B,EAC3BC,QAA+C,EAC/CvC,cAA8B,EAC9B;EACA,IAAI2I,cAAc,GAAG,CAAC;EACtB,IAAIC,WAAW,GAAG,KAAK;EACvB,IAAIC,cAAc,GAAGpH,MAA2B;EAChD,QAAQA,MAAM;IACZ,KAAK,MAAM;IACX,KAAK,SAAS;IACd,KAAK,WAAW;IAChB,KAAK,cAAc;IACnB,KAAK,YAAY;MACfkH,cAAc,GAAG,CAAC;MAClBC,WAAW,GAAG,IAAI;MAClB;IACF,KAAK,QAAQ;MACXA,WAAW,GAAG,IAAI;MAClB;IACF,KAAK,OAAO;MACVD,cAAc,GAAG,CAAC;MAClBE,cAAc,GAAG,iBAAiB;MAClC;EACJ;EACA,IAAIhC,YAAuB,GAAG,EAAE;EAChC,IAAI8B,cAAc,GAAG,CAAC,EAAE;IACtB9B,YAAY,GAAGrD,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,EAAE;MACtD8G,uBAAuB,EAAE;IAC3B,CAAC,CAAC;IACFjC,YAAY,CAAC5F,MAAM,GAAG0H,cAAc;EACtC;EACA,IAAIC,WAAW,IAAIrG,QAAQ,EAAE;IAC3B,MAAMmF,eAAe,GAAGC,oBAAoB,CAC1CpF,QAAQ,EACRvC,cAAc,EACd+I,SACF,CAAC;IACDlC,YAAY,CAAClG,IAAI,CAAEqI,OAAgB,IAAK;MACtCtB,eAAe,CAACsB,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;QAAEA;MAAQ,CAAC,CAAC;MAC3DtB,eAAe,CAAC,SAAS,CAAC,CAAC;QAAEsB;MAAQ,CAAC,CAAC;IACzC,CAAC,CAAC;EACJ;EACC,IAAAC,mBAAU,EAAC,CAAC,CAACJ,cAAc,CAAC,CAC3B,GAAGhC,YACL,CAAC;AACH;AAEA,SAASrE,sBAAsBA,CAC7BR,KAAY,EACZM,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,MAAM,CAACkJ,GAAG,EAAE3H,MAAM,EAAE4H,QAAQ,CAAC,GAAG3F,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAItE;EACDoH,MAAM,CAACC,IAAI,CAACH,GAAG,EAAE3H,MAAM,IAAI,OAAO,EAAE4H,QAAQ,CAAC;AAC/C;AAEA,SAAS1G,6BAA6BA,CACpCT,KAAY,EACZM,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,MAAM6G,YAAY,GAAGrD,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAE3D;EACD,IAAI6E,YAAY,CAAC5F,MAAM,KAAK,CAAC,EAAE;IAC7B;IACA4F,YAAY,CAAClG,IAAI,CAAC2I,QAAQ,CAACC,MAAM,CAAC;EACpC;EACAH,MAAM,CAACI,WAAW,CAAC,GAAG3C,YAAY,CAAC;AACrC;AAEA,SAASnE,6BAA6BA,CACpCV,KAAY,EACZM,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,IAAIyJ,MAAM,KAAKL,MAAM,EAAE;IACrB,MAAM,IAAI3C,KAAK,CAAC,6BAA6B,CAAC;EAChD;EACA,MAAMI,YAAY,GAAGrD,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAE3D;EACDyH,MAAM,CAACD,WAAW,CAAC,GAAG3C,YAAY,CAAC;AACrC;AAEA,SAAS6C,WAAWA,CAClBpH,IAAe,EACfc,KAAc,EACd3B,MAA4B,EAC5BkI,KAAiC,EACjC3J,cAA8B,EAC9BgC,KAA0B,EACpB;EACN,IAAIoB,KAAK,EAAE;IACTuG,KAAK,CAACC,YAAY,CAChBtH,IAAI,EACJb,MAAM,EACLoI,GAAc,IAAK;MAClB,OAAOrG,WAAW,CAChBqG,GAAG,EACH7J,cAAc,EACdgC,KACF,CAAC,CAAC,CAAC,CAAC;IACN,CACF,CAAC;EACH,CAAC,MAAM;IACLM,IAAI,CAACnC,OAAO,CAAE0J,GAAG,IAAK;MACpB,MAAM;QAAEC,IAAI;QAAEC;MAAM,CAAC,GAAGvG,WAAW,CACjC,CAACqG,GAAG,CAAC,EACL7J,cAAc,EACdgC,KACF,CAAC,CAAC,CAAC,CAA2B;MAC9B2H,KAAK,CAACK,WAAW,CAACF,IAAI,EAAEC,KAAK,EAAEtI,MAAM,CAAC;IACxC,CAAC,CAAC;EACJ;AACF;AAEA,SAAS0B,mBAAmBA,CAC1BnB,KAAY,EACZP,MAAyD,EACzDa,IAA2B,EAC3Bc,KAAc,EACdb,QAA+C,EAC/CvC,cAA8B,EAC9B;EACA,MAAMiK,OAAO,GAAGlF,KAAK,CAACqC,OAAO,CAAC9E,IAAI,CAAC,IAAIA,IAAI,CAAC4H,KAAK,CAACC,iBAAQ,CAAC;EAC3D,IAAIF,OAAO,KAAKxI,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,SAAS,CAAC,EAAE;IAC5DiI,WAAW,CACTpH,IAAI,EACJc,KAAK,EACL3B,MAAM,EACNzB,cAAc,CAACoK,QAAQ,EACvBpK,cAAc,EACdgC,KACF,CAAC;EACH,CAAC,MAAM;IACL,MAAM,CAAC8H,IAAI,EAAEC,KAAK,CAAC,GAAGvG,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;IAC9DhC,cAAc,CAACoK,QAAQ,CAACJ,WAAW,CACjCF,IAAI,EACJC,KAAK,EACLtI,MAAM,EACNc,QAAQ,EACRvC,cACF,CAAC;EACH;AACF;AAEA,SAASqD,oBAAoBA,CAC3BrB,KAAY,EACZP,MAA6C,EAC7Ca,IAA2B,EAC3Bc,KAAc,EACdb,QAA+C,EAC/CvC,cAA8B,EAC9B;EACA,MAAMiK,OAAO,GAAGlF,KAAK,CAACqC,OAAO,CAAC9E,IAAI,CAAC,IAAIA,IAAI,CAAC4H,KAAK,CAACC,iBAAQ,CAAC;EAC3D,IAAIF,OAAO,IAAIxI,MAAM,KAAK,QAAQ,EAAE;IAClC,MAAM4I,aAAa,GAAG,IAAAC,uBAAgB,EACpCtK,cAAc,EACd,SAASyB,MAAM,EAAE,EACjB,KAAK8I,IAAI,CAACC,SAAS,CAAClI,IAAI,CAAC,EAC3B,CAAC;IACDoH,WAAW,CAACpH,IAAI,EAAEc,KAAK,EAAE,SAAS,EAAEiH,aAAa,EAAErK,cAAc,EAAEgC,KAAK,CAAC;EAC3E,CAAC,MAAM;IACL,MAAM,CAAC8H,IAAI,EAAEC,KAAK,CAAC,GAAGvG,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;IAC9D,MAAMqI,aAAa,GAAG,IAAAC,uBAAgB,EACpCtK,cAAc,EACd,SAASyB,MAAM,EAAE,EACjB,KAAKqI,IAAI,EACX,CAAC;IACDO,aAAa,CAACL,WAAW,CACvBF,IAAI,EACJC,KAAK,EACLtI,MAAM,KAAK,QAAQ,GAAG,SAAS,GAAGA,MAAM,EACxCc,QAAQ,EACRvC,cACF,CAAC;EACH;AACF;AAEA,SAAS6D,qBAAqBA,CAC5B7B,KAAY,EACZM,IAA2B,EAC3BC,QAA+C,EAC/CvC,cAA8B,EAC9B;EACA,MAAM,CAAC8J,IAAI,EAAEC,KAAK,CAAC,GAAGvG,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;EAC9D,MAAMyI,cAAc,GAAG,IAAAC,yBAAiB,EACtC1K,cAAc,EACd,kBAAkB,EAClB,KAAK8J,IAAI,EACX,CAAC;EACDW,cAAc,CAACT,WAAW,CACxBF,IAAI,EACJC,KAAK,EACL,SAAS,EACTxH,QAAQ,EACRvC,cACF,CAAC;AACH;AAEA,SAAS2C,oBAAoBA,CAC3BX,KAAY,EACZP,MAA2B,EAC3Ba,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,IAAIyB,MAAM,KAAK,QAAQ,EAAE;IACvB,MAAM,CAACyH,GAAG,CAAC,GAAG1F,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAa;IAClEsH,QAAQ,CAACqB,MAAM,CAACzB,GAAG,CAAC;EACtB,CAAC,MAAM;IACLI,QAAQ,CAAC7H,MAAM,CAAC,CAAC,CAAC;EACpB;AACF;AAEA,SAASmB,mBAAmBA,CAC1BZ,KAAY,EACZG,MAAyC,EACzCV,MAAgC,EAChCa,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,MAAM4K,OAAO,GAAGzI,MAAM,KAAK,cAAc,GAAG0I,YAAY,GAAGC,cAAc;EACzE,MAAM,CAAChB,IAAI,EAAEC,KAAK,CAAC,GAAGvG,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;EAC9D,IAAIP,MAAM,KAAK,SAAS,EAAE;IACxB,IAAIsI,KAAK,KAAKhB,SAAS,EAAE;MACvB6B,OAAO,CAACG,OAAO,CAACjB,IAAI,EAAYS,IAAI,CAACC,SAAS,CAACT,KAAK,CAAC,CAAC;IACxD;EACF,CAAC,MAAM;IACLa,OAAO,CAACI,UAAU,CAAClB,IAAc,CAAC;EACpC;AACF;AAEA,SAAS/G,mBAAmBA,CAC1Bf,KAAY,EACZP,MAAyC,EACzCa,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,MAAMiL,YAAY,GAAGC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY;;EAE1D;EACA,IAAIH,YAAY,IAAI,CAACI,0BAAY,CAACC,SAAS,CAAC7J,MAAM,CAAC,EAAE;IACnD;EACF;;EAEA;EACAyC,OAAO,CAACzC,MAAM,CAAC,CACb,GAAG+B,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,EAAE;IAC1CgE,iBAAiB,EAAE;EACrB,CAAC,CACH,CAAC;AACH;AAEA,SAAShD,mBAAmBA,CAC1BhB,KAAY,EACZP,MAA6C,EAC7Ca,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,MAAM6G,YAAY,GAAGrD,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,EAAE;IAC5DgE,iBAAiB,EAAE;EACrB,CAAC,CAAC;EACFuF,0BAAY,CAACC,IAAI,CAAC;IAChBlI,IAAI,EAAE7B,MAAM;IACZgK,OAAO,EAAE5E,YAAY,CAAC,CAAC;EACzB,CAAC,CAAC;AACJ;AAEA,eAAe/C,uBAAuBA,CACpC9B,KAAY,EACZP,MAAmC,EACnCa,IAA2B,EAC3BtC,cAA8B,EAC9B+B,YAA4B,EAC5BQ,QAAoC,EACpC;EACA,MAAM8D,IAAI,GAAGA,CAAA,KAAM;IAAA,IAAAqF,qBAAA;IACjB,MAAM7E,YAAY,GAAGrD,WAAW,CAAClB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;IAC7D,OAAOgF,cAAK,aAALA,cAAK,gBAAA0E,qBAAA,GAAL1E,cAAK,CAAE2E,iBAAiB,cAAAD,qBAAA,uBAAxBA,qBAAA,CAA2BjK,MAAM,CAAC,CAAC,GAAGoF,YAAY,CAAC;EAC5D,CAAC;EACD,IAAI,CAACtE,QAAQ,EAAE;IACb8D,IAAI,CAAC,CAAC;IACN;EACF;EACA,MAAMqB,eAAe,GAAGC,oBAAoB,CAC1CpF,QAAQ,EACRvC,cAAc,EACd+B,YACF,CAAC;EACD,IAAI;IACF,MAAM0G,MAAM,GAAG,MAAMpC,IAAI,CAAC,CAAC;IAC3BqB,eAAe,CAAC,SAAS,CAAC,CAACe,MAAM,CAAC;EACpC,CAAC,CAAC,OAAOtE,KAAK,EAAE;IACduD,eAAe,CAAC,OAAO,CAAC,CAACvD,KAAK,CAAC;EACjC,CAAC,SAAS;IACRuD,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;EAC9B;AACF;AAEO,SAASC,oBAAoBA,CAClCpF,QAAmC,EACnCvC,cAA8B,EAC9B+B,YAA4B,EAC5B;EACA,OAAO,SAAS2F,eAAeA,CAC7BpE,IAAkD,EAClD;IACA,OAAO,UAAUmF,MAAgB,EAAE;MACjC,MAAMpI,QAAQ,GAAGkC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGe,IAAI,CAAC;MACjC,IAAIjD,QAAQ,EAAE;QACZ,IAAI;UACF,MAAM2B,KAAK,GAAG,IAAI4B,WAAW,CAAC,YAAYN,IAAI,EAAE,EAAE;YAChDJ,MAAM,EAAEuF;UACV,CAAC,CAAC;UACFlI,eAAe,CAACF,QAAQ,EAAEL,cAAc,EAAE+B,YAAY,CAAC,CAACC,KAAK,CAAC;QAChE,CAAC,CAAC,OAAO0G,GAAG,EAAE;UACZ;UACA;UACA;UACAxE,OAAO,CAACC,KAAK,CAACuE,GAAG,CAAC;QACpB;MACF,CAAC,MAAM,IAAIpF,IAAI,KAAK,OAAO,EAAE;QAC3B;QACAY,OAAO,CAACC,KAAK,CAAC,2BAA2B,EAAEsE,MAAM,CAAC;MACpD;IACF,CAAC;EACH,CAAC;AACH;AAOA,SAASjF,WAAWA,CAClBlB,IAA2B,EAC3BtC,cAA8B,EAC9BgC,KAAY,EACZmE,OAA2B,GAAG,CAAC,CAAC,EACrB;EACX,OAAOpB,KAAK,CAACqC,OAAO,CAAC9E,IAAI,CAAC,GACrB,IAAAuC,kCAAgB,EAACvC,IAAI,EAAE;IACtB,GAAGtC,cAAc;IACjBgC;EACF,CAAC,CAAC,GACFmE,OAAO,CAACH,iBAAiB,GACvB,CAAChE,KAAK,CAAC,GACPmE,OAAO,CAAC2C,uBAAuB,GAC7B,CAAE9G,KAAK,CAAiBkB,MAAM,CAAC,GAC/B,EAAE;AACZ;AAEA,SAAS6D,WAAWA,CAClBzE,IAA2B,EAC3BtC,cAA8B,EAC9BgC,KAAY,EACW;EACvB,IAAI,CAAC+C,KAAK,CAACqC,OAAO,CAAC9E,IAAI,CAAC,EAAE;IACxB,OAAOA,IAAI;EACb;EACA,OAAO,IAAAuC,kCAAgB,EAACvC,IAAI,EAAE;IAC5B,GAAGtC,cAAc;IACjBgC;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.setRealProperties = setRealProperties;
7
+ exports.setValueForStyle = setValueForStyle;
7
8
  function setRealProperties(brick, realProps) {
8
9
  if (!realProps) {
9
10
  return;
@@ -13,7 +14,11 @@ function setRealProperties(brick, realProps) {
13
14
  case "style":
14
15
  case "dataset":
15
16
  for (const [k, v] of Object.entries(propValue)) {
16
- brick[propName][k] = v;
17
+ if (propName === "style") {
18
+ setValueForStyle(brick.style, k, v);
19
+ } else {
20
+ brick[propName][k] = v;
21
+ }
17
22
  }
18
23
  break;
19
24
  case "constructor":
@@ -26,4 +31,13 @@ function setRealProperties(brick, realProps) {
26
31
  }
27
32
  }
28
33
  }
34
+ function setValueForStyle(style, key, value) {
35
+ if (key.startsWith("--")) {
36
+ style.setProperty(key, value);
37
+ } else if (key === "float") {
38
+ style.cssFloat = value;
39
+ } else {
40
+ style[key] = value;
41
+ }
42
+ }
29
43
  //# sourceMappingURL=setRealProperties.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setRealProperties.js","names":["setRealProperties","brick","realProps","propName","propValue","Object","entries","k","v","Error"],"sources":["../../../../src/internal/compute/setRealProperties.ts"],"sourcesContent":["export function setRealProperties(\n brick: HTMLElement,\n realProps: Record<string, unknown> | undefined\n): void {\n if (!realProps) {\n return;\n }\n for (const [propName, propValue] of Object.entries(realProps)) {\n switch (propName) {\n case \"style\":\n case \"dataset\":\n for (const [k, v] of Object.entries(\n propValue as Record<string, unknown>\n )) {\n (brick[propName] as unknown as Record<string, unknown>)[k] = v;\n }\n break;\n case \"constructor\":\n case \"__proto__\":\n case \"innerHTML\":\n // `innerHTML` is dangerous, use `textContent` instead.\n throw new Error(`set \\`${propName}\\` is prohibited`);\n default:\n (brick as unknown as Record<string, unknown>)[propName] = propValue;\n }\n }\n}\n"],"mappings":";;;;;;AAAO,SAASA,iBAAiBA,CAC/BC,KAAkB,EAClBC,SAA8C,EACxC;EACN,IAAI,CAACA,SAAS,EAAE;IACd;EACF;EACA,KAAK,MAAM,CAACC,QAAQ,EAAEC,SAAS,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,SAAS,CAAC,EAAE;IAC7D,QAAQC,QAAQ;MACd,KAAK,OAAO;MACZ,KAAK,SAAS;QACZ,KAAK,MAAM,CAACI,CAAC,EAAEC,CAAC,CAAC,IAAIH,MAAM,CAACC,OAAO,CACjCF,SACF,CAAC,EAAE;UACAH,KAAK,CAACE,QAAQ,CAAC,CAAwCI,CAAC,CAAC,GAAGC,CAAC;QAChE;QACA;MACF,KAAK,aAAa;MAClB,KAAK,WAAW;MAChB,KAAK,WAAW;QACd;QACA,MAAM,IAAIC,KAAK,CAAC,SAASN,QAAQ,kBAAkB,CAAC;MACtD;QACGF,KAAK,CAAwCE,QAAQ,CAAC,GAAGC,SAAS;IACvE;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"setRealProperties.js","names":["setRealProperties","brick","realProps","propName","propValue","Object","entries","k","v","setValueForStyle","style","Error","key","value","startsWith","setProperty","cssFloat"],"sources":["../../../../src/internal/compute/setRealProperties.ts"],"sourcesContent":["export function setRealProperties(\n brick: HTMLElement,\n realProps: Record<string, unknown> | undefined\n): void {\n if (!realProps) {\n return;\n }\n for (const [propName, propValue] of Object.entries(realProps)) {\n switch (propName) {\n case \"style\":\n case \"dataset\":\n for (const [k, v] of Object.entries(\n propValue as Record<string, unknown>\n )) {\n if (propName === \"style\") {\n setValueForStyle(brick.style, k, v);\n } else {\n (brick[propName] as unknown as Record<string, unknown>)[k] = v;\n }\n }\n break;\n case \"constructor\":\n case \"__proto__\":\n case \"innerHTML\":\n // `innerHTML` is dangerous, use `textContent` instead.\n throw new Error(`set \\`${propName}\\` is prohibited`);\n default:\n (brick as unknown as Record<string, unknown>)[propName] = propValue;\n }\n }\n}\n\nexport function setValueForStyle(\n style: CSSStyleDeclaration,\n key: string,\n value: unknown\n) {\n if (key.startsWith(\"--\")) {\n style.setProperty(key, value as string);\n } else if (key === \"float\") {\n style.cssFloat = value as string;\n } else {\n (style as unknown as Record<string, unknown>)[key] = value;\n }\n}\n"],"mappings":";;;;;;;AAAO,SAASA,iBAAiBA,CAC/BC,KAAkB,EAClBC,SAA8C,EACxC;EACN,IAAI,CAACA,SAAS,EAAE;IACd;EACF;EACA,KAAK,MAAM,CAACC,QAAQ,EAAEC,SAAS,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,SAAS,CAAC,EAAE;IAC7D,QAAQC,QAAQ;MACd,KAAK,OAAO;MACZ,KAAK,SAAS;QACZ,KAAK,MAAM,CAACI,CAAC,EAAEC,CAAC,CAAC,IAAIH,MAAM,CAACC,OAAO,CACjCF,SACF,CAAC,EAAE;UACD,IAAID,QAAQ,KAAK,OAAO,EAAE;YACxBM,gBAAgB,CAACR,KAAK,CAACS,KAAK,EAAEH,CAAC,EAAEC,CAAC,CAAC;UACrC,CAAC,MAAM;YACJP,KAAK,CAACE,QAAQ,CAAC,CAAwCI,CAAC,CAAC,GAAGC,CAAC;UAChE;QACF;QACA;MACF,KAAK,aAAa;MAClB,KAAK,WAAW;MAChB,KAAK,WAAW;QACd;QACA,MAAM,IAAIG,KAAK,CAAC,SAASR,QAAQ,kBAAkB,CAAC;MACtD;QACGF,KAAK,CAAwCE,QAAQ,CAAC,GAAGC,SAAS;IACvE;EACF;AACF;AAEO,SAASK,gBAAgBA,CAC9BC,KAA0B,EAC1BE,GAAW,EACXC,KAAc,EACd;EACA,IAAID,GAAG,CAACE,UAAU,CAAC,IAAI,CAAC,EAAE;IACxBJ,KAAK,CAACK,WAAW,CAACH,GAAG,EAAEC,KAAe,CAAC;EACzC,CAAC,MAAM,IAAID,GAAG,KAAK,OAAO,EAAE;IAC1BF,KAAK,CAACM,QAAQ,GAAGH,KAAe;EAClC,CAAC,MAAM;IACJH,KAAK,CAAwCE,GAAG,CAAC,GAAGC,KAAK;EAC5D;AACF","ignoreList":[]}
@@ -178,7 +178,7 @@ class DataStore {
178
178
  }
179
179
  if (method === "replace") {
180
180
  item.value = value;
181
- } else {
181
+ } else if (method === "assign") {
182
182
  if ((0, _general.isObject)(item.value)) {
183
183
  Object.assign(item.value, value);
184
184
  } else {
@@ -186,6 +186,19 @@ class DataStore {
186
186
  console.warn(`Non-object current value of "${this.type}.${name}" for "context.assign", try "context.replace" instead.`);
187
187
  item.value = value;
188
188
  }
189
+ } else {
190
+ // method === "set"
191
+ // `context.set` and `state.set` is similar to React's setState,
192
+ // which accepts either a value or an updater function.
193
+ // And if the new value is the same as the current one, do nothing.
194
+ let nextValue = value;
195
+ if (typeof value === "function") {
196
+ nextValue = value(item.value);
197
+ }
198
+ if (Object.is(item.value, nextValue)) {
199
+ return;
200
+ }
201
+ item.value = nextValue;
189
202
  }
190
203
  if (this.batchUpdate) return;
191
204
  item.eventTarget.dispatchEvent(new CustomEvent(this.changeEventType, {
@@ -1 +1 @@
1
- {"version":3,"file":"DataStore.js","names":["_general","require","_storyboard","_eventTarget","_interopRequireDefault","_lodash","_bindListeners","_checkIf","_computeRealValue","_resolveData","_resolveDataStore","_handleHttpError","_computeRealProperties","_Runtime","_realTimeDataInspect","_isStrictMode","supportContextResolveTriggerBrickLifeCycle","DataStore","type","data","Map","changeEventType","pendingStack","hostBrick","stateStoreId","batchUpdate","batchUpdateContextsNames","rendererContext","routeMap","WeakMap","routeStackMap","constructor","has","name","getAllValues","Object","fromEntries","entries","map","value","getValue","_this$data$get","get","notifyRealTimeDataChange","realTimeDataInspectRoot","tplStateStoreId","callRealTimeDataInspectHooks","changeType","detail","getAffectListByContext","affectNames","forEach","key","deps","isInDeps","some","item","includes","push","shift","Set","updateValues","values","method","argsFactory","length","Error","updateContexts","affectContexts","affectDepsContextNames","arg","updateContextItem","updateValue","filter","affectContextItem","triggerEvent","contexts","_context$eventTarget","context","eventTarget","dispatchEvent","CustomEvent","callback","callbackRuntimeContext","useResolve","promise","loaded","Promise","resolve","loading","shouldDismiss","error","_this$rendererContext","renderId","_internalApiGetRenderId","load","cache","then","val","finishLoad","err","handleHttpError","callbackFactory","eventCallbackFactory","isObject","assign","console","warn","define","dataConfs","runtimeContext","asyncHostPropertyEntries","routePath","Array","isArray","pending","resolveDataStore","dataConf","isStrictMode","route","stack","add","set","onChange","dataName","listener","_this$data$get2","addEventListener","removeEventListener","waitFor","dataNames","pendingContexts","all","ctx","p","waitForAll","pendingResult","mountAsyncData","_this$routeMap$get","async","asyncMounted","asyncCheckIf","expose","computePropertyValue","trackConditionalResolve","resolvePolicy","undefined","hasFallbackValue","hasOwnProperty","track","strictCollectMemberUsage","if","size","resolveConf","transform","options","_this$rendererContext2","resolveData","lazy","asyncComputeRealValue","newData","EventTarget","trigger","_this$rendererContext3","registerArbitraryLifeCycle","listenerFactory","dep","batchAddListener","checkIf","computeRealValue","e","names","disposeDataInRoutes","routes","delete","pull","contextConf","event","exports"],"sources":["../../../../src/internal/data/DataStore.ts"],"sourcesContent":["import type {\n BatchUpdateContextItem,\n BrickEventHandlerCallback,\n ContextConf,\n ContextResolveTriggerBrickLifeCycle,\n RouteConf,\n} from \"@next-core/types\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport EventTarget from \"@ungap/event-target\";\nimport { pull } from \"lodash\";\nimport { eventCallbackFactory, listenerFactory } from \"../bindListeners.js\";\nimport { asyncCheckIf, checkIf } from \"../compute/checkIf.js\";\nimport {\n asyncComputeRealValue,\n computeRealValue,\n} from \"../compute/computeRealValue.js\";\nimport { ResolveOptions, resolveData } from \"./resolveData.js\";\nimport { resolveDataStore } from \"./resolveDataStore.js\";\nimport type {\n AsyncPropertyEntry,\n RuntimeBrick,\n RuntimeContext,\n} from \"../interfaces.js\";\nimport { handleHttpError } from \"../../handleHttpError.js\";\nimport type { RendererContext } from \"../RendererContext.js\";\nimport { computePropertyValue } from \"../compute/computeRealProperties.js\";\nimport { _internalApiGetRenderId } from \"../Runtime.js\";\nimport {\n callRealTimeDataInspectHooks,\n realTimeDataInspectRoot,\n} from \"./realTimeDataInspect.js\";\nimport { isStrictMode } from \"../../isStrictMode.js\";\n\nconst supportContextResolveTriggerBrickLifeCycle = [\n \"onBeforePageLoad\",\n \"onPageLoad\",\n \"onBeforePageLeave\",\n \"onPageLeave\",\n \"onAnchorLoad\",\n \"onAnchorUnload\",\n] as ContextResolveTriggerBrickLifeCycle[];\n\nexport type DataStoreType = \"CTX\" | \"STATE\" | \"FORM_STATE\";\n\nexport interface DataStoreItem {\n name: string;\n value: unknown;\n eventTarget: EventTarget;\n useResolve?: boolean;\n loaded?: boolean;\n loading?: Promise<unknown>;\n load?: (options?: ResolveOptions) => Promise<unknown>;\n async?: boolean;\n asyncMounted?: boolean;\n deps: string[];\n}\n\ntype PendingStackItem = ReturnType<typeof resolveDataStore>;\n\nexport class DataStore<T extends DataStoreType = \"CTX\"> {\n private readonly type: T;\n private readonly data = new Map<string, DataStoreItem>();\n private readonly changeEventType: string;\n private readonly pendingStack: Array<PendingStackItem> = [];\n public readonly hostBrick?: RuntimeBrick;\n private readonly stateStoreId?: string;\n private batchUpdate = false;\n private batchUpdateContextsNames: string[] = [];\n private readonly rendererContext?: RendererContext;\n private routeMap = new WeakMap<RouteConf, Set<string>>();\n private routeStackMap = new WeakMap<RouteConf, Set<PendingStackItem>>();\n\n // 把 `rendererContext` 放在参数列表的最后,并作为可选,以减少测试文件的调整\n constructor(\n type: T,\n hostBrick?: RuntimeBrick,\n rendererContext?: RendererContext,\n stateStoreId?: string\n ) {\n this.type = type;\n this.changeEventType =\n this.type === \"FORM_STATE\"\n ? \"formstate.change\"\n : this.type === \"STATE\"\n ? \"state.change\"\n : \"context.change\";\n this.hostBrick = hostBrick;\n this.rendererContext = rendererContext;\n this.stateStoreId = stateStoreId;\n }\n\n has(name: string) {\n return this.data.has(name);\n }\n\n getAllValues(): Record<string, unknown> {\n return Object.fromEntries(\n [...this.data.entries()].map(([name, { value }]) => [name, value])\n );\n }\n\n getValue(name: string): unknown {\n return this.data.get(name)?.value;\n }\n\n private notifyRealTimeDataChange(name: string, value: unknown) {\n if (realTimeDataInspectRoot) {\n const { tplStateStoreId } = realTimeDataInspectRoot;\n if (\n tplStateStoreId\n ? this.type === \"STATE\" && this.stateStoreId === tplStateStoreId\n : this.type === \"CTX\"\n ) {\n callRealTimeDataInspectHooks({\n changeType: \"update\",\n tplStateStoreId,\n detail: {\n name,\n value,\n },\n });\n }\n }\n }\n\n private getAffectListByContext(name: string): string[] {\n const affectNames = [name];\n this.data.forEach((value, key) => {\n if (value.deps) {\n const isInDeps = value.deps.some((item) => affectNames.includes(item));\n isInDeps &&\n affectNames.push(key) &&\n affectNames.push(...this.getAffectListByContext(key));\n }\n });\n affectNames.shift();\n return [...new Set(affectNames)];\n }\n\n updateValues(\n values: BatchUpdateContextItem[],\n method: \"assign\" | \"replace\",\n argsFactory: (arg: unknown[]) => BatchUpdateContextItem\n ): void {\n this.batchUpdate = true;\n this.batchUpdateContextsNames = values.map((item) => item.name);\n if (\n [...new Set(this.batchUpdateContextsNames)].length !==\n this.batchUpdateContextsNames.length\n ) {\n throw new Error(`Batch update not allow to update same item`);\n }\n\n const updateContexts: Record<string, DataStoreItem> = {};\n const affectContexts: Record<string, DataStoreItem> = {};\n const affectDepsContextNames: string[] = [];\n\n values.forEach((arg) => {\n const { name, value } = argsFactory([arg]);\n const updateContextItem = this.data.get(name);\n affectDepsContextNames.push(...this.getAffectListByContext(name));\n updateContextItem && (updateContexts[name] = updateContextItem);\n this.updateValue(name as string, value, method);\n });\n\n affectDepsContextNames\n .filter((item) => !updateContexts[item])\n .forEach((name) => {\n const affectContextItem = this.data.get(name);\n affectContextItem && (affectContexts[name] = affectContextItem);\n });\n\n const triggerEvent = (contexts: Record<string, DataStoreItem>): void => {\n for (const key in contexts) {\n const context = contexts[key];\n context.eventTarget?.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: context.value,\n })\n );\n }\n };\n\n triggerEvent(updateContexts);\n triggerEvent(affectContexts);\n\n this.batchUpdate = false;\n\n return;\n }\n\n updateValue(\n name: string,\n value: unknown,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\",\n callback?: BrickEventHandlerCallback,\n callbackRuntimeContext?: RuntimeContext\n ): void {\n const item = this.data.get(name);\n if (!item) {\n throw new Error(`${this.type} '${name}' is not defined`);\n }\n\n if (method === \"refresh\" || method === \"load\") {\n if (!item.useResolve) {\n throw new Error(\n `You can not ${method} \"${this.type}.${name}\" which is not using resolve`\n );\n }\n\n let promise: Promise<unknown> | undefined;\n if (method === \"load\") {\n // Try to reuse previous request when calling `load`.\n if (item.loaded) {\n promise = Promise.resolve(item.value);\n } else if (item.loading) {\n promise = item.loading;\n }\n }\n\n const shouldDismiss = (error: unknown) => {\n // If render twice immediately, flow API contracts maybe cleared before\n // the second rendering, while the page load handlers of the first\n // rendering can't be cancelled, which throws `FlowApiNotFoundError`.\n // So we ignore error reporting for this case.\n let renderId: string | undefined;\n return (\n (error as Error)?.name === \"FlowApiNotFoundError\" &&\n !!(renderId = this.rendererContext?.renderId) &&\n renderId !== _internalApiGetRenderId()\n );\n };\n\n if (!promise) {\n promise = item.loading = item.load!({\n cache: method === \"load\" ? \"default\" : \"reload\",\n ...(value as ResolveOptions),\n });\n // Do not use the chained promise, since the callbacks need the original promise.\n promise.then(\n (val) => {\n this.finishLoad(item, val);\n },\n (err) => {\n // Let users override error handling.\n if (item.useResolve && !shouldDismiss(err) && !callback?.error) {\n handleHttpError(err);\n }\n }\n );\n }\n\n if (callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n callbackRuntimeContext!\n );\n\n promise.then(\n (val) => {\n callbackFactory(\"success\")({ value: val });\n callbackFactory(\"finally\")();\n },\n (err) => {\n if (!shouldDismiss(err) && callback.error) {\n callbackFactory(\"error\")(err);\n }\n callbackFactory(\"finally\")();\n }\n );\n }\n\n return;\n }\n\n if (method === \"replace\") {\n item.value = value;\n } else {\n if (isObject(item.value)) {\n Object.assign(item.value, value);\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `Non-object current value of \"${this.type}.${name}\" for \"context.assign\", try \"context.replace\" instead.`\n );\n item.value = value;\n }\n }\n\n if (this.batchUpdate) return;\n\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n }\n\n private finishLoad(item: DataStoreItem, value: unknown) {\n if (!item.useResolve) {\n // This happens when a tracked conditional resolve switches from\n // resolve to fallback after an dep update triggered refresh but\n // before it's been resolved.\n return;\n }\n item.loaded = true;\n item.value = value;\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: value,\n })\n );\n }\n\n define(\n dataConfs: ContextConf[] | undefined,\n runtimeContext: RuntimeContext,\n asyncHostPropertyEntries?: AsyncPropertyEntry[],\n routePath?: RouteConf[]\n ): void {\n if (Array.isArray(dataConfs) && dataConfs.length > 0) {\n const pending = resolveDataStore(\n dataConfs,\n (dataConf: ContextConf) =>\n this.resolve(\n dataConf,\n runtimeContext,\n asyncHostPropertyEntries,\n routePath\n ),\n this.type,\n isStrictMode(runtimeContext)\n );\n if (Array.isArray(routePath)) {\n for (const route of routePath) {\n const stack = this.routeStackMap.get(route);\n if (stack) {\n stack.add(pending);\n } else {\n this.routeStackMap.set(route, new Set([pending]));\n }\n }\n }\n this.pendingStack.push(pending);\n }\n }\n\n onChange(dataName: string, listener: EventListener): () => void {\n const eventTarget = this.data.get(dataName)?.eventTarget;\n eventTarget?.addEventListener(this.changeEventType, listener);\n return () => {\n eventTarget?.removeEventListener(this.changeEventType, listener);\n };\n }\n\n async waitFor(dataNames: string[] | Set<string>): Promise<void> {\n for (const { pendingContexts } of this.pendingStack) {\n await Promise.all(\n [...dataNames].map((ctx) => {\n const p = pendingContexts.get(ctx);\n return p;\n })\n );\n }\n }\n\n async waitForAll(): Promise<void> {\n for (const { pendingResult } of this.pendingStack) {\n await pendingResult;\n }\n }\n\n /**\n * After mount, dispatch the change event when an async data is loaded.\n *\n * If param `route` is present, handle data defined in that route (or its descendants) only.\n */\n mountAsyncData(route?: RouteConf) {\n this.data.forEach((item) => {\n if (item.async && (!route || this.routeMap.get(route)?.has(item.name))) {\n // istanbul ignore next\n if (item.asyncMounted) {\n // eslint-disable-next-line no-console\n console.error(\n `Async data \"${item.name}\" already mounted. This is a bug of Brick Next, please report it.`\n );\n return;\n }\n item.asyncMounted = true;\n // An async data always has `loading`\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n item.loading!.then((value) => {\n this.finishLoad(item, value);\n });\n }\n });\n }\n\n private async resolve(\n dataConf: ContextConf,\n runtimeContext: RuntimeContext,\n asyncHostPropertyEntries?: AsyncPropertyEntry[],\n routePath?: RouteConf[]\n ): Promise<boolean> {\n if (!(await asyncCheckIf(dataConf, runtimeContext))) {\n return false;\n }\n let value: unknown;\n if (\n asyncHostPropertyEntries &&\n (this.type === \"STATE\" ? dataConf.expose : this.type === \"FORM_STATE\")\n ) {\n value = await computePropertyValue(\n asyncHostPropertyEntries,\n dataConf.name\n );\n }\n let load: DataStoreItem[\"load\"];\n let loading: Promise<unknown> | undefined;\n let useResolve: boolean | undefined;\n let trackConditionalResolve: boolean | undefined;\n let resolvePolicy: \"eager\" | \"lazy\" | \"async\" | undefined;\n if (value === undefined) {\n if (dataConf.resolve) {\n const hasFallbackValue = hasOwnProperty(dataConf, \"value\");\n // Track conditional resolve only if all matches:\n // - Track enabled\n // - Has fallback value\n // - Referencing other data in `resolve.if`\n trackConditionalResolve =\n dataConf.track &&\n hasFallbackValue &&\n hasOwnProperty(dataConf.resolve, \"if\") &&\n strictCollectMemberUsage(dataConf.resolve.if, this.type).size > 0;\n const resolveConf = {\n transform: \"value\",\n ...dataConf.resolve,\n };\n useResolve = await asyncCheckIf(dataConf.resolve, runtimeContext);\n if (useResolve || trackConditionalResolve) {\n load = async (options) =>\n (\n (await resolveData(resolveConf, runtimeContext, {\n ...options,\n renderId: this.rendererContext?.renderId,\n })) as {\n value: unknown;\n }\n ).value;\n }\n if (useResolve) {\n // `async` take precedence over `lazy`\n resolvePolicy = dataConf.resolve.async\n ? \"async\"\n : dataConf.resolve.lazy\n ? \"lazy\"\n : \"eager\";\n if (resolvePolicy === \"eager\") {\n value = await load!();\n } else if (resolvePolicy === \"async\") {\n loading = load!();\n }\n } else if (!hasFallbackValue) {\n return false;\n }\n }\n if (\n (!useResolve || resolvePolicy !== \"eager\") &&\n dataConf.value !== undefined\n ) {\n // If the context has no resolve, just use its `value`.\n // Or if the resolve is ignored or lazy, use its `value` as a fallback.\n value = await asyncComputeRealValue(dataConf.value, runtimeContext);\n }\n }\n\n if (this.data.has(dataConf.name)) {\n throw new Error(\n `${this.type} '${dataConf.name}' has already been declared`\n );\n }\n\n const newData: DataStoreItem = {\n name: dataConf.name,\n value,\n // This is required for tracking context, even if no `onChange` is specified.\n eventTarget: new EventTarget(),\n useResolve,\n load,\n loaded: resolvePolicy === \"eager\",\n loading,\n async: resolvePolicy === \"async\",\n deps: [],\n };\n\n if (resolvePolicy === \"lazy\") {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { trigger } = dataConf.resolve!;\n if (\n trigger &&\n supportContextResolveTriggerBrickLifeCycle.includes(trigger)\n ) {\n this.rendererContext?.registerArbitraryLifeCycle(trigger, () => {\n this.updateValue(dataConf.name, undefined, \"load\");\n });\n }\n }\n\n if (dataConf.onChange) {\n newData.eventTarget.addEventListener(\n this.changeEventType,\n listenerFactory(dataConf.onChange, runtimeContext)\n );\n }\n\n if (dataConf.track) {\n const deps = strictCollectMemberUsage(\n trackConditionalResolve\n ? [dataConf.resolve, dataConf.value]\n : load\n ? dataConf.resolve\n : dataConf.value,\n this.type\n );\n !load && (newData.deps = [...deps]);\n for (const dep of deps) {\n this.onChange(\n dep,\n this.batchAddListener(() => {\n newData.useResolve = trackConditionalResolve\n ? checkIf(dataConf.resolve!, runtimeContext)\n : !!load;\n if (newData.useResolve) {\n this.updateValue(dataConf.name, { cache: \"default\" }, \"refresh\");\n } else {\n this.updateValue(\n dataConf.name,\n computeRealValue(dataConf.value, runtimeContext),\n \"replace\"\n );\n }\n }, dataConf)\n );\n }\n }\n\n newData.eventTarget.addEventListener(this.changeEventType, (e) => {\n this.notifyRealTimeDataChange(dataConf.name, (e as CustomEvent).detail);\n });\n\n this.data.set(dataConf.name, newData);\n\n if (Array.isArray(routePath)) {\n for (const route of routePath) {\n const names = this.routeMap.get(route);\n if (names) {\n names.add(dataConf.name);\n } else {\n this.routeMap.set(route, new Set([dataConf.name]));\n }\n }\n }\n\n return true;\n }\n\n /**\n * For sub-routes to be incrementally rendered,\n * dispose their data and pending tasks.\n */\n disposeDataInRoutes(routes: RouteConf[]) {\n for (const route of routes) {\n const names = this.routeMap.get(route);\n if (names !== undefined) {\n for (const name of names) {\n this.data.delete(name);\n }\n this.routeMap.delete(route);\n }\n const stack = this.routeStackMap.get(route);\n if (stack !== undefined) {\n pull(this.pendingStack, ...stack);\n this.routeStackMap.delete(route);\n }\n }\n }\n\n private batchAddListener(\n listener: EventListener,\n contextConf: ContextConf\n ): EventListener {\n return (event: Event | CustomEvent): void => {\n if (\n this.batchUpdate &&\n this.batchUpdateContextsNames.includes(contextConf.name)\n ) {\n return;\n }\n listener(event);\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"DataStore.js","names":["_general","require","_storyboard","_eventTarget","_interopRequireDefault","_lodash","_bindListeners","_checkIf","_computeRealValue","_resolveData","_resolveDataStore","_handleHttpError","_computeRealProperties","_Runtime","_realTimeDataInspect","_isStrictMode","supportContextResolveTriggerBrickLifeCycle","DataStore","type","data","Map","changeEventType","pendingStack","hostBrick","stateStoreId","batchUpdate","batchUpdateContextsNames","rendererContext","routeMap","WeakMap","routeStackMap","constructor","has","name","getAllValues","Object","fromEntries","entries","map","value","getValue","_this$data$get","get","notifyRealTimeDataChange","realTimeDataInspectRoot","tplStateStoreId","callRealTimeDataInspectHooks","changeType","detail","getAffectListByContext","affectNames","forEach","key","deps","isInDeps","some","item","includes","push","shift","Set","updateValues","values","method","argsFactory","length","Error","updateContexts","affectContexts","affectDepsContextNames","arg","updateContextItem","updateValue","filter","affectContextItem","triggerEvent","contexts","_context$eventTarget","context","eventTarget","dispatchEvent","CustomEvent","callback","callbackRuntimeContext","useResolve","promise","loaded","Promise","resolve","loading","shouldDismiss","error","_this$rendererContext","renderId","_internalApiGetRenderId","load","cache","then","val","finishLoad","err","handleHttpError","callbackFactory","eventCallbackFactory","isObject","assign","console","warn","nextValue","is","define","dataConfs","runtimeContext","asyncHostPropertyEntries","routePath","Array","isArray","pending","resolveDataStore","dataConf","isStrictMode","route","stack","add","set","onChange","dataName","listener","_this$data$get2","addEventListener","removeEventListener","waitFor","dataNames","pendingContexts","all","ctx","p","waitForAll","pendingResult","mountAsyncData","_this$routeMap$get","async","asyncMounted","asyncCheckIf","expose","computePropertyValue","trackConditionalResolve","resolvePolicy","undefined","hasFallbackValue","hasOwnProperty","track","strictCollectMemberUsage","if","size","resolveConf","transform","options","_this$rendererContext2","resolveData","lazy","asyncComputeRealValue","newData","EventTarget","trigger","_this$rendererContext3","registerArbitraryLifeCycle","listenerFactory","dep","batchAddListener","checkIf","computeRealValue","e","names","disposeDataInRoutes","routes","delete","pull","contextConf","event","exports"],"sources":["../../../../src/internal/data/DataStore.ts"],"sourcesContent":["import type {\n BatchUpdateContextItem,\n BrickEventHandlerCallback,\n ContextConf,\n ContextResolveTriggerBrickLifeCycle,\n RouteConf,\n} from \"@next-core/types\";\nimport { hasOwnProperty, isObject } from \"@next-core/utils/general\";\nimport { strictCollectMemberUsage } from \"@next-core/utils/storyboard\";\nimport EventTarget from \"@ungap/event-target\";\nimport { pull } from \"lodash\";\nimport { eventCallbackFactory, listenerFactory } from \"../bindListeners.js\";\nimport { asyncCheckIf, checkIf } from \"../compute/checkIf.js\";\nimport {\n asyncComputeRealValue,\n computeRealValue,\n} from \"../compute/computeRealValue.js\";\nimport { ResolveOptions, resolveData } from \"./resolveData.js\";\nimport { resolveDataStore } from \"./resolveDataStore.js\";\nimport type {\n AsyncPropertyEntry,\n RuntimeBrick,\n RuntimeContext,\n} from \"../interfaces.js\";\nimport { handleHttpError } from \"../../handleHttpError.js\";\nimport type { RendererContext } from \"../RendererContext.js\";\nimport { computePropertyValue } from \"../compute/computeRealProperties.js\";\nimport { _internalApiGetRenderId } from \"../Runtime.js\";\nimport {\n callRealTimeDataInspectHooks,\n realTimeDataInspectRoot,\n} from \"./realTimeDataInspect.js\";\nimport { isStrictMode } from \"../../isStrictMode.js\";\n\nconst supportContextResolveTriggerBrickLifeCycle = [\n \"onBeforePageLoad\",\n \"onPageLoad\",\n \"onBeforePageLeave\",\n \"onPageLeave\",\n \"onAnchorLoad\",\n \"onAnchorUnload\",\n] as ContextResolveTriggerBrickLifeCycle[];\n\nexport type DataStoreType = \"CTX\" | \"STATE\" | \"FORM_STATE\";\n\nexport interface DataStoreItem {\n name: string;\n value: unknown;\n eventTarget: EventTarget;\n useResolve?: boolean;\n loaded?: boolean;\n loading?: Promise<unknown>;\n load?: (options?: ResolveOptions) => Promise<unknown>;\n async?: boolean;\n asyncMounted?: boolean;\n deps: string[];\n}\n\ntype PendingStackItem = ReturnType<typeof resolveDataStore>;\n\nexport class DataStore<T extends DataStoreType = \"CTX\"> {\n private readonly type: T;\n private readonly data = new Map<string, DataStoreItem>();\n private readonly changeEventType: string;\n private readonly pendingStack: Array<PendingStackItem> = [];\n public readonly hostBrick?: RuntimeBrick;\n private readonly stateStoreId?: string;\n private batchUpdate = false;\n private batchUpdateContextsNames: string[] = [];\n private readonly rendererContext?: RendererContext;\n private routeMap = new WeakMap<RouteConf, Set<string>>();\n private routeStackMap = new WeakMap<RouteConf, Set<PendingStackItem>>();\n\n // 把 `rendererContext` 放在参数列表的最后,并作为可选,以减少测试文件的调整\n constructor(\n type: T,\n hostBrick?: RuntimeBrick,\n rendererContext?: RendererContext,\n stateStoreId?: string\n ) {\n this.type = type;\n this.changeEventType =\n this.type === \"FORM_STATE\"\n ? \"formstate.change\"\n : this.type === \"STATE\"\n ? \"state.change\"\n : \"context.change\";\n this.hostBrick = hostBrick;\n this.rendererContext = rendererContext;\n this.stateStoreId = stateStoreId;\n }\n\n has(name: string) {\n return this.data.has(name);\n }\n\n getAllValues(): Record<string, unknown> {\n return Object.fromEntries(\n [...this.data.entries()].map(([name, { value }]) => [name, value])\n );\n }\n\n getValue(name: string): unknown {\n return this.data.get(name)?.value;\n }\n\n private notifyRealTimeDataChange(name: string, value: unknown) {\n if (realTimeDataInspectRoot) {\n const { tplStateStoreId } = realTimeDataInspectRoot;\n if (\n tplStateStoreId\n ? this.type === \"STATE\" && this.stateStoreId === tplStateStoreId\n : this.type === \"CTX\"\n ) {\n callRealTimeDataInspectHooks({\n changeType: \"update\",\n tplStateStoreId,\n detail: {\n name,\n value,\n },\n });\n }\n }\n }\n\n private getAffectListByContext(name: string): string[] {\n const affectNames = [name];\n this.data.forEach((value, key) => {\n if (value.deps) {\n const isInDeps = value.deps.some((item) => affectNames.includes(item));\n isInDeps &&\n affectNames.push(key) &&\n affectNames.push(...this.getAffectListByContext(key));\n }\n });\n affectNames.shift();\n return [...new Set(affectNames)];\n }\n\n updateValues(\n values: BatchUpdateContextItem[],\n method: \"assign\" | \"replace\",\n argsFactory: (arg: unknown[]) => BatchUpdateContextItem\n ): void {\n this.batchUpdate = true;\n this.batchUpdateContextsNames = values.map((item) => item.name);\n if (\n [...new Set(this.batchUpdateContextsNames)].length !==\n this.batchUpdateContextsNames.length\n ) {\n throw new Error(`Batch update not allow to update same item`);\n }\n\n const updateContexts: Record<string, DataStoreItem> = {};\n const affectContexts: Record<string, DataStoreItem> = {};\n const affectDepsContextNames: string[] = [];\n\n values.forEach((arg) => {\n const { name, value } = argsFactory([arg]);\n const updateContextItem = this.data.get(name);\n affectDepsContextNames.push(...this.getAffectListByContext(name));\n updateContextItem && (updateContexts[name] = updateContextItem);\n this.updateValue(name as string, value, method);\n });\n\n affectDepsContextNames\n .filter((item) => !updateContexts[item])\n .forEach((name) => {\n const affectContextItem = this.data.get(name);\n affectContextItem && (affectContexts[name] = affectContextItem);\n });\n\n const triggerEvent = (contexts: Record<string, DataStoreItem>): void => {\n for (const key in contexts) {\n const context = contexts[key];\n context.eventTarget?.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: context.value,\n })\n );\n }\n };\n\n triggerEvent(updateContexts);\n triggerEvent(affectContexts);\n\n this.batchUpdate = false;\n\n return;\n }\n\n updateValue(\n name: string,\n value: unknown,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\" | \"set\",\n callback?: BrickEventHandlerCallback,\n callbackRuntimeContext?: RuntimeContext\n ): void {\n const item = this.data.get(name);\n if (!item) {\n throw new Error(`${this.type} '${name}' is not defined`);\n }\n\n if (method === \"refresh\" || method === \"load\") {\n if (!item.useResolve) {\n throw new Error(\n `You can not ${method} \"${this.type}.${name}\" which is not using resolve`\n );\n }\n\n let promise: Promise<unknown> | undefined;\n if (method === \"load\") {\n // Try to reuse previous request when calling `load`.\n if (item.loaded) {\n promise = Promise.resolve(item.value);\n } else if (item.loading) {\n promise = item.loading;\n }\n }\n\n const shouldDismiss = (error: unknown) => {\n // If render twice immediately, flow API contracts maybe cleared before\n // the second rendering, while the page load handlers of the first\n // rendering can't be cancelled, which throws `FlowApiNotFoundError`.\n // So we ignore error reporting for this case.\n let renderId: string | undefined;\n return (\n (error as Error)?.name === \"FlowApiNotFoundError\" &&\n !!(renderId = this.rendererContext?.renderId) &&\n renderId !== _internalApiGetRenderId()\n );\n };\n\n if (!promise) {\n promise = item.loading = item.load!({\n cache: method === \"load\" ? \"default\" : \"reload\",\n ...(value as ResolveOptions),\n });\n // Do not use the chained promise, since the callbacks need the original promise.\n promise.then(\n (val) => {\n this.finishLoad(item, val);\n },\n (err) => {\n // Let users override error handling.\n if (item.useResolve && !shouldDismiss(err) && !callback?.error) {\n handleHttpError(err);\n }\n }\n );\n }\n\n if (callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n callbackRuntimeContext!\n );\n\n promise.then(\n (val) => {\n callbackFactory(\"success\")({ value: val });\n callbackFactory(\"finally\")();\n },\n (err) => {\n if (!shouldDismiss(err) && callback.error) {\n callbackFactory(\"error\")(err);\n }\n callbackFactory(\"finally\")();\n }\n );\n }\n\n return;\n }\n\n if (method === \"replace\") {\n item.value = value;\n } else if (method === \"assign\") {\n if (isObject(item.value)) {\n Object.assign(item.value, value);\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `Non-object current value of \"${this.type}.${name}\" for \"context.assign\", try \"context.replace\" instead.`\n );\n item.value = value;\n }\n } else {\n // method === \"set\"\n // `context.set` and `state.set` is similar to React's setState,\n // which accepts either a value or an updater function.\n // And if the new value is the same as the current one, do nothing.\n let nextValue = value;\n if (typeof value === \"function\") {\n nextValue = (value as (prevState: unknown) => unknown)(item.value);\n }\n if (Object.is(item.value, nextValue)) {\n return;\n }\n item.value = nextValue;\n }\n\n if (this.batchUpdate) return;\n\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: item.value,\n })\n );\n }\n\n private finishLoad(item: DataStoreItem, value: unknown) {\n if (!item.useResolve) {\n // This happens when a tracked conditional resolve switches from\n // resolve to fallback after an dep update triggered refresh but\n // before it's been resolved.\n return;\n }\n item.loaded = true;\n item.value = value;\n item.eventTarget.dispatchEvent(\n new CustomEvent(this.changeEventType, {\n detail: value,\n })\n );\n }\n\n define(\n dataConfs: ContextConf[] | undefined,\n runtimeContext: RuntimeContext,\n asyncHostPropertyEntries?: AsyncPropertyEntry[],\n routePath?: RouteConf[]\n ): void {\n if (Array.isArray(dataConfs) && dataConfs.length > 0) {\n const pending = resolveDataStore(\n dataConfs,\n (dataConf: ContextConf) =>\n this.resolve(\n dataConf,\n runtimeContext,\n asyncHostPropertyEntries,\n routePath\n ),\n this.type,\n isStrictMode(runtimeContext)\n );\n if (Array.isArray(routePath)) {\n for (const route of routePath) {\n const stack = this.routeStackMap.get(route);\n if (stack) {\n stack.add(pending);\n } else {\n this.routeStackMap.set(route, new Set([pending]));\n }\n }\n }\n this.pendingStack.push(pending);\n }\n }\n\n onChange(dataName: string, listener: EventListener): () => void {\n const eventTarget = this.data.get(dataName)?.eventTarget;\n eventTarget?.addEventListener(this.changeEventType, listener);\n return () => {\n eventTarget?.removeEventListener(this.changeEventType, listener);\n };\n }\n\n async waitFor(dataNames: string[] | Set<string>): Promise<void> {\n for (const { pendingContexts } of this.pendingStack) {\n await Promise.all(\n [...dataNames].map((ctx) => {\n const p = pendingContexts.get(ctx);\n return p;\n })\n );\n }\n }\n\n async waitForAll(): Promise<void> {\n for (const { pendingResult } of this.pendingStack) {\n await pendingResult;\n }\n }\n\n /**\n * After mount, dispatch the change event when an async data is loaded.\n *\n * If param `route` is present, handle data defined in that route (or its descendants) only.\n */\n mountAsyncData(route?: RouteConf) {\n this.data.forEach((item) => {\n if (item.async && (!route || this.routeMap.get(route)?.has(item.name))) {\n // istanbul ignore next\n if (item.asyncMounted) {\n // eslint-disable-next-line no-console\n console.error(\n `Async data \"${item.name}\" already mounted. This is a bug of Brick Next, please report it.`\n );\n return;\n }\n item.asyncMounted = true;\n // An async data always has `loading`\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n item.loading!.then((value) => {\n this.finishLoad(item, value);\n });\n }\n });\n }\n\n private async resolve(\n dataConf: ContextConf,\n runtimeContext: RuntimeContext,\n asyncHostPropertyEntries?: AsyncPropertyEntry[],\n routePath?: RouteConf[]\n ): Promise<boolean> {\n if (!(await asyncCheckIf(dataConf, runtimeContext))) {\n return false;\n }\n let value: unknown;\n if (\n asyncHostPropertyEntries &&\n (this.type === \"STATE\" ? dataConf.expose : this.type === \"FORM_STATE\")\n ) {\n value = await computePropertyValue(\n asyncHostPropertyEntries,\n dataConf.name\n );\n }\n let load: DataStoreItem[\"load\"];\n let loading: Promise<unknown> | undefined;\n let useResolve: boolean | undefined;\n let trackConditionalResolve: boolean | undefined;\n let resolvePolicy: \"eager\" | \"lazy\" | \"async\" | undefined;\n if (value === undefined) {\n if (dataConf.resolve) {\n const hasFallbackValue = hasOwnProperty(dataConf, \"value\");\n // Track conditional resolve only if all matches:\n // - Track enabled\n // - Has fallback value\n // - Referencing other data in `resolve.if`\n trackConditionalResolve =\n dataConf.track &&\n hasFallbackValue &&\n hasOwnProperty(dataConf.resolve, \"if\") &&\n strictCollectMemberUsage(dataConf.resolve.if, this.type).size > 0;\n const resolveConf = {\n transform: \"value\",\n ...dataConf.resolve,\n };\n useResolve = await asyncCheckIf(dataConf.resolve, runtimeContext);\n if (useResolve || trackConditionalResolve) {\n load = async (options) =>\n (\n (await resolveData(resolveConf, runtimeContext, {\n ...options,\n renderId: this.rendererContext?.renderId,\n })) as {\n value: unknown;\n }\n ).value;\n }\n if (useResolve) {\n // `async` take precedence over `lazy`\n resolvePolicy = dataConf.resolve.async\n ? \"async\"\n : dataConf.resolve.lazy\n ? \"lazy\"\n : \"eager\";\n if (resolvePolicy === \"eager\") {\n value = await load!();\n } else if (resolvePolicy === \"async\") {\n loading = load!();\n }\n } else if (!hasFallbackValue) {\n return false;\n }\n }\n if (\n (!useResolve || resolvePolicy !== \"eager\") &&\n dataConf.value !== undefined\n ) {\n // If the context has no resolve, just use its `value`.\n // Or if the resolve is ignored or lazy, use its `value` as a fallback.\n value = await asyncComputeRealValue(dataConf.value, runtimeContext);\n }\n }\n\n if (this.data.has(dataConf.name)) {\n throw new Error(\n `${this.type} '${dataConf.name}' has already been declared`\n );\n }\n\n const newData: DataStoreItem = {\n name: dataConf.name,\n value,\n // This is required for tracking context, even if no `onChange` is specified.\n eventTarget: new EventTarget(),\n useResolve,\n load,\n loaded: resolvePolicy === \"eager\",\n loading,\n async: resolvePolicy === \"async\",\n deps: [],\n };\n\n if (resolvePolicy === \"lazy\") {\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const { trigger } = dataConf.resolve!;\n if (\n trigger &&\n supportContextResolveTriggerBrickLifeCycle.includes(trigger)\n ) {\n this.rendererContext?.registerArbitraryLifeCycle(trigger, () => {\n this.updateValue(dataConf.name, undefined, \"load\");\n });\n }\n }\n\n if (dataConf.onChange) {\n newData.eventTarget.addEventListener(\n this.changeEventType,\n listenerFactory(dataConf.onChange, runtimeContext)\n );\n }\n\n if (dataConf.track) {\n const deps = strictCollectMemberUsage(\n trackConditionalResolve\n ? [dataConf.resolve, dataConf.value]\n : load\n ? dataConf.resolve\n : dataConf.value,\n this.type\n );\n !load && (newData.deps = [...deps]);\n for (const dep of deps) {\n this.onChange(\n dep,\n this.batchAddListener(() => {\n newData.useResolve = trackConditionalResolve\n ? checkIf(dataConf.resolve!, runtimeContext)\n : !!load;\n if (newData.useResolve) {\n this.updateValue(dataConf.name, { cache: \"default\" }, \"refresh\");\n } else {\n this.updateValue(\n dataConf.name,\n computeRealValue(dataConf.value, runtimeContext),\n \"replace\"\n );\n }\n }, dataConf)\n );\n }\n }\n\n newData.eventTarget.addEventListener(this.changeEventType, (e) => {\n this.notifyRealTimeDataChange(dataConf.name, (e as CustomEvent).detail);\n });\n\n this.data.set(dataConf.name, newData);\n\n if (Array.isArray(routePath)) {\n for (const route of routePath) {\n const names = this.routeMap.get(route);\n if (names) {\n names.add(dataConf.name);\n } else {\n this.routeMap.set(route, new Set([dataConf.name]));\n }\n }\n }\n\n return true;\n }\n\n /**\n * For sub-routes to be incrementally rendered,\n * dispose their data and pending tasks.\n */\n disposeDataInRoutes(routes: RouteConf[]) {\n for (const route of routes) {\n const names = this.routeMap.get(route);\n if (names !== undefined) {\n for (const name of names) {\n this.data.delete(name);\n }\n this.routeMap.delete(route);\n }\n const stack = this.routeStackMap.get(route);\n if (stack !== undefined) {\n pull(this.pendingStack, ...stack);\n this.routeStackMap.delete(route);\n }\n }\n }\n\n private batchAddListener(\n listener: EventListener,\n contextConf: ContextConf\n ): EventListener {\n return (event: Event | CustomEvent): void => {\n if (\n this.batchUpdate &&\n this.batchUpdateContextsNames.includes(contextConf.name)\n ) {\n return;\n }\n listener(event);\n };\n }\n}\n"],"mappings":"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","ignoreList":[]}
@@ -12,6 +12,12 @@ Object.defineProperty(exports, "addRealTimeDataInspectHook", {
12
12
  exports.debugDataValue = debugDataValue;
13
13
  exports.getAddedContracts = getAddedContracts;
14
14
  exports.getAllContextValues = getAllContextValues;
15
+ Object.defineProperty(exports, "getBrickPackages", {
16
+ enumerable: true,
17
+ get: function () {
18
+ return _Runtime.getBrickPackages;
19
+ }
20
+ });
15
21
  exports.getBrickPackagesById = getBrickPackagesById;
16
22
  exports.getContextValue = getContextValue;
17
23
  exports.getLegalRuntimeValue = getLegalRuntimeValue;