@next-core/runtime 1.72.0 → 1.72.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/internal/Renderer.js +32 -7
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/bindListeners.js +16 -3
- package/dist/cjs/internal/bindListeners.js.map +1 -1
- package/dist/cjs/internal/data/DataStore.js +6 -2
- package/dist/cjs/internal/data/DataStore.js.map +1 -1
- package/dist/cjs/internal/interfaces.js.map +1 -1
- package/dist/esm/internal/Renderer.js +36 -7
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +16 -3
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/data/DataStore.js +6 -2
- package/dist/esm/internal/data/DataStore.js.map +1 -1
- package/dist/esm/internal/interfaces.js.map +1 -1
- package/dist/types/internal/Renderer.d.ts +4 -4
- package/dist/types/internal/data/DataStore.d.ts +2 -2
- package/dist/types/internal/interfaces.d.ts +4 -0
- package/package.json +2 -2
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bindListeners.js","names":["isEvaluable","isObject","pick","checkIf","computeRealValue","getHistory","getProviderBrick","startPoll","isPreEvaluated","setProperties","applyMode","applyTheme","getTplHostElement","getTplStateStore","handleHttpError","Notification","getFormStateStore","hooks","startSSEStream","debugManager","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","_ref","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","_runtimeContext","runtimeBrick","event","_handler$batch","_handler$batch2","key","eventMap","Map","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","theme","console","error","handleUseProviderAction","handleCustomAction","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","Error","tagName","toLowerCase","isUseProvider","computedArgs","argsOrContractConf","computeArgs","flowApi","isFlowApiProvider","_handler$sse","isArray","params","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","pollEnabled","poll","enabled","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","ctxStore","tplStateStore","JSON","stringify","formStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","isProduction","process","env","NODE_ENV","shouldLog","show","message","_hooks$messageDispatc","messageDispatcher","arguments"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\nimport { debugManager } from \"./debugManager.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n _runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n let runtimeContext = _runtimeContext;\n if (handler.key && typeof handler.key === \"string\") {\n runtimeContext = {\n ..._runtimeContext,\n eventMap: new Map([\n ...(_runtimeContext.eventMap || []),\n [handler.key, event],\n ]),\n };\n }\n\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n 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,SAASA,WAAW,QAAQ,iBAAiB;AAC7C,SAASC,QAAQ,QAAQ,0BAA0B;AACnD,SAASC,IAAI,QAAQ,QAAQ;AAC7B,SAASC,OAAO,QAAQ,sBAAsB;AAC9C,SAASC,gBAAgB,QAAQ,+BAA+B;AAChE,SAASC,UAAU,QAAQ,eAAe;AAC1C,SAASC,gBAAgB,QAAQ,4BAA4B;AAC7D,SAA2BC,SAAS,QAAQ,WAAW;AACvD,SAASC,cAAc,QAAQ,uBAAuB;AACtD,SAASC,aAAa,QAAQ,4BAA4B;AAC1D,SAASC,SAAS,EAAEC,UAAU,QAAQ,oBAAoB;AAM1D,SACEC,iBAAiB,EACjBC,gBAAgB,QACX,4BAA4B;AACnC,SAASC,eAAe,QAAQ,uBAAuB;AACvD,SAASC,YAAY,QAAQ,oBAAoB;AACjD,SAASC,iBAAiB,QAAQ,yBAAyB;AAE3D,SAASC,KAAK,QAAQ,cAAc;AACpC,SAASC,cAAc,QAAQ,UAAU;AACzC,SAASC,YAAY,QAAQ,mBAAmB;AAEhD,OAAO,SAASC,aAAaA,CAC3BC,KAA0B,EAC1BC,SAAqC,EACrCC,cAA8B,EACxB;EACN,IAAI,CAACD,SAAS,EAAE;IACd;EACF;EACAE,MAAM,CAACC,OAAO,CAACH,SAAS,CAAC,CAACI,OAAO,CAACC,IAAA,IAA2B;IAAA,IAA1B,CAACC,SAAS,EAAEC,QAAQ,CAAC,GAAAF,IAAA;IACtD,MAAMG,QAAQ,GAAGC,eAAe,CAACF,QAAQ,EAAEN,cAAc,EAAE;MACzDS,OAAO,EAAEX;IACX,CAAC,CAAC;IACFA,KAAK,CAACY,gBAAgB,CAACL,SAAS,EAAEE,QAAQ,CAAC;;IAE3C;IACA,IAAI,CAACT,KAAK,CAACa,WAAW,EAAE;MACtBb,KAAK,CAACa,WAAW,GAAG,EAAE;IACxB;IACAb,KAAK,CAACa,WAAW,CAACC,IAAI,CAAC,CAACP,SAAS,EAAEE,QAAQ,CAAC,CAAC;;IAE7C;IACA,IAAI,CAACT,KAAK,CAACe,gBAAgB,EAAE;MAC3Bf,KAAK,CAACe,gBAAgB,GAAG,EAAE;IAC7B;IACA,KAAK,MAAMC,OAAO,IAAK,EAAE,CAAyBC,MAAM,CAACT,QAAQ,CAAC,EAAE;MAClER,KAAK,CAACe,gBAAgB,CAACD,IAAI,CAAC,CAACP,SAAS,EAAE,IAAI,EAAES,OAAO,CAAC,CAAC;IACzD;EACF,CAAC,CAAC;AACJ;AAEA,OAAO,SAASE,eAAeA,CAAClB,KAA0B,EAAQ;EAChE,IAAIA,KAAK,CAACa,WAAW,EAAE;IACrB,KAAK,MAAM,CAACN,SAAS,EAAEE,QAAQ,CAAC,IAAIT,KAAK,CAACa,WAAW,EAAE;MACrDb,KAAK,CAACmB,mBAAmB,CAACZ,SAAS,EAAEE,QAAQ,CAAC;IAChD;IACAT,KAAK,CAACa,WAAW,CAACO,MAAM,GAAG,CAAC;EAC9B;AACF;AAEA,OAAO,SAASC,gBAAgBA,CAC9BL,OAA0B,EACW;EACrC,OAAO,OAAQA,OAAO,CAA8BM,MAAM,KAAK,QAAQ;AACzE;AAEA,OAAO,SAASC,oBAAoBA,CAClCP,OAA0B,EACU;EACpC,OAAO,OAAQA,OAAO,CAA6BQ,WAAW,KAAK,QAAQ;AAC7E;AAEA,OAAO,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;AAEA,OAAO,SAASC,sBAAsBA,CACpCd,OAAgC,EACW;EAC3C,OAAO,CAAC,CAAEA,OAAO,CAAoCY,MAAM;AAC7D;AAEA,OAAO,SAASG,uBAAuBA,CACrCf,OAAgC,EACY;EAC5C,OAAO,CAAC,CAAEA,OAAO,CAAqCa,UAAU;AAClE;AAEA,OAAO,SAASG,yBAAyBA,CACvChB,OAA0B,EACU;EACpC,OAAO,CAAC,CAAEA,OAAO,CAA6BiB,IAAI;AACpD;AAEA,OAAO,SAASvB,eAAeA,CAC7BF,QAAiD,EACjD0B,eAA+B,EAC/BC,YAA4B,EAC5B;EACA,OAAO,UAAUC,KAAY,EAAQ;IAAA,IAAAC,cAAA,EAAAC,eAAA;IACnC,KAAK,MAAMtB,OAAO,IAAK,EAAE,CAAyBC,MAAM,CAACT,QAAQ,CAAC,EAAE;MAClE,IAAIN,cAAc,GAAGgC,eAAe;MACpC,IAAIlB,OAAO,CAACuB,GAAG,IAAI,OAAOvB,OAAO,CAACuB,GAAG,KAAK,QAAQ,EAAE;QAClDrC,cAAc,GAAG;UACf,GAAGgC,eAAe;UAClBM,QAAQ,EAAE,IAAIC,GAAG,CAAC,CAChB,IAAIP,eAAe,CAACM,QAAQ,IAAI,EAAE,CAAC,EACnC,CAACxB,OAAO,CAACuB,GAAG,EAAEH,KAAK,CAAC,CACrB;QACH,CAAC;MACH;MAEA,IAAI,CAACtD,OAAO,CAACkC,OAAO,EAAE;QAAE,GAAGd,cAAc;QAAEkC;MAAM,CAAC,CAAC,EAAE;QACnD,IAAIpB,OAAO,CAAC0B,IAAI,EAAE;UAChBhC,eAAe,CAACM,OAAO,CAAC0B,IAAI,EAAExC,cAAc,EAAEiC,YAAY,CAAC,CAACC,KAAK,CAAC;QACpE;QACA;MACF;MAEA,IAAIJ,yBAAyB,CAAChB,OAAO,CAAC,EAAE;QACtCN,eAAe,CAACM,OAAO,CAACiB,IAAI,EAAE/B,cAAc,EAAEiC,YAAY,CAAC,CAACC,KAAK,CAAC;MACpE,CAAC,MAAM,IAAIf,gBAAgB,CAACL,OAAO,CAAC,EAAE;QACpC,MAAM,CAAC2B,MAAM,EAAEf,MAAM,CAAC,GAAGZ,OAAO,CAACM,MAAM,CAACsB,KAAK,CAAC,GAAG,CAAQ;QACzD,QAAQ5B,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;YACpBuB,mBAAmB,CACjBT,KAAK,EACLR,MAAM,EACNZ,OAAO,CAAC8B,IAAI,EACZ9B,OAAO,CAAC+B,QAAQ,EAChB7C,cACF,CAAC;YACD;;UAEF;UACA;UACA;UACA;;UAEA,KAAK,aAAa;YAChB8C,sBAAsB,CAACZ,KAAK,EAAEpB,OAAO,CAAC8B,IAAI,EAAE5C,cAAc,CAAC;YAC3D;UAEF,KAAK,oBAAoB;YACvB+C,6BAA6B,CAACb,KAAK,EAAEpB,OAAO,CAAC8B,IAAI,EAAE5C,cAAc,CAAC;YAClE;UAEF,KAAK,oBAAoB;YACvBgD,6BAA6B,CAACd,KAAK,EAAEpB,OAAO,CAAC8B,IAAI,EAAE5C,cAAc,CAAC;YAClE;UAEF,KAAK,iBAAiB;UACtB,KAAK,iBAAiB;YACpBiD,oBAAoB,CAACf,KAAK,EAAER,MAAM,EAAEZ,OAAO,CAAC8B,IAAI,EAAE5C,cAAc,CAAC;YACjE;UAEF,KAAK,sBAAsB;UAC3B,KAAK,yBAAyB;UAC9B,KAAK,wBAAwB;UAC7B,KAAK,2BAA2B;YAC9BkD,mBAAmB,CACjBhB,KAAK,EACLO,MAAM,EACNf,MAAM,EACNZ,OAAO,CAAC8B,IAAI,EACZ5C,cACF,CAAC;YACD;UAEF,KAAK,sBAAsB;YACzBkC,KAAK,CAACiB,cAAc,CAAC,CAAC;YACtB;UACF,KAAK,uBAAuB;YAC1BjB,KAAK,CAACkB,eAAe,CAAC,CAAC;YACvB;UAEF,KAAK,aAAa;UAClB,KAAK,eAAe;UACpB,KAAK,cAAc;UACnB,KAAK,cAAc;YACjBC,mBAAmB,CAACnB,KAAK,EAAER,MAAM,EAAEZ,OAAO,CAAC8B,IAAI,EAAE5C,cAAc,CAAC;YAChE;UAEF,KAAK,iBAAiB;UACtB,KAAK,eAAe;UACpB,KAAK,cAAc;UACnB,KAAK,cAAc;YACjBsD,mBAAmB,CAACpB,KAAK,EAAER,MAAM,EAAEZ,OAAO,CAAC8B,IAAI,EAAE5C,cAAc,CAAC;YAChE;UAEF,KAAK,iBAAiB;YACpBT,eAAe,CAAE2C,KAAK,CAAiBqB,MAAM,CAAC;YAC9C;UAEF,KAAK,gBAAgB;UACrB,KAAK,iBAAiB;UACtB,KAAK,iBAAiB;UACtB,KAAK,cAAc;UACnB,KAAK,aAAa;YAChBC,mBAAmB,CACjBtB,KAAK,EACLR,MAAM,EACNZ,OAAO,CAAC8B,IAAI,GAAAT,cAAA,GACZrB,OAAO,CAAC2C,KAAK,cAAAtB,cAAA,cAAAA,cAAA,GAAI,IAAI,EACrBrB,OAAO,CAAC+B,QAAQ,EAChB7C,cACF,CAAC;YACD;UAEF,KAAK,cAAc;UACnB,KAAK,eAAe;UACpB,KAAK,YAAY;UACjB,KAAK,WAAW;YACd0D,oBAAoB,CAClBxB,KAAK,EACLR,MAAM,EACNZ,OAAO,CAAC8B,IAAI,GAAAR,eAAA,GACZtB,OAAO,CAAC2C,KAAK,cAAArB,eAAA,cAAAA,eAAA,GAAI,IAAI,EACrBtB,OAAO,CAAC+B,QAAQ,EAChB7C,cACF,CAAC;YACD;UAEF,KAAK,mBAAmB;YAAE;cACxB,MAAM,CAAC2D,IAAI,EAAEC,IAAI,CAAC,GAAGC,WAAW,CAC9B/C,OAAO,CAAC8B,IAAI,EACZ5C,cAAc,EACdkC,KACF,CAA8B;cAC9B,MAAM4B,cAAc,GAAGzE,iBAAiB,CACtCW,cAAc,EACdc,OAAO,CAACM,MAAM,EACd,KAAKuC,IAAI,EACX,CAAC;cACDG,cAAc,CAACC,aAAa,CAAC,IAAIC,WAAW,CAACL,IAAI,EAAEC,IAAI,CAAC,CAAC;cACzD;YACF;UAEA,KAAK,kBAAkB;YACrBK,qBAAqB,CACnB/B,KAAK,EACLpB,OAAO,CAAC8B,IAAI,EACZ9B,OAAO,CAAC+B,QAAQ,EAChB7C,cACF,CAAC;YACD;UAEF,KAAK,mBAAmB;UACxB,KAAK,qBAAqB;YACxBkE,uBAAuB,CACrBhC,KAAK,EACLR,MAAM,EACNZ,OAAO,CAAC8B,IAAI,EACZ5C,cAAc,EACdiC,YAAY,EACZnB,OAAO,CAAC+B,QACV,CAAC;YACD;UAEF,KAAK,oBAAoB;UACzB,KAAK,qBAAqB;YACxBzD,UAAU,CACR0B,OAAO,CAACM,MAAM,KAAK,oBAAoB,GAAG,MAAM,GAAG,OACrD,CAAC;YACD;UACF,KAAK,gBAAgB;YAAE;cACrB,MAAM,CAAC+C,KAAK,CAAC,GAAGN,WAAW,CAAC/C,OAAO,CAAC8B,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,CAAC;cAChE9C,UAAU,CAAC+E,KAAkB,CAAC;cAC9B;YACF;UACA,KAAK,uBAAuB;UAC5B,KAAK,qBAAqB;YACxBhF,SAAS,CACP2B,OAAO,CAACM,MAAM,KAAK,uBAAuB,GACtC,WAAW,GACX,SACN,CAAC;YACD;;UAEF;UACA;;UAEA;;UAEA;;UAEA;YACE;YACAgD,OAAO,CAACC,KAAK,CAAC,gCAAgC,EAAEvD,OAAO,CAACM,MAAM,CAAC;QACnE;MACF,CAAC,MAAM,IAAIC,oBAAoB,CAACP,OAAO,CAAC,EAAE;QACxCwD,uBAAuB,CAACpC,KAAK,EAAEpB,OAAO,EAAEd,cAAc,EAAEiC,YAAY,CAAC;MACvE,CAAC,MAAM,IAAIV,eAAe,CAACT,OAAO,CAAC,EAAE;QACnCyD,kBAAkB,CAACrC,KAAK,EAAEpB,OAAO,EAAEd,cAAc,EAAEiC,YAAa,CAAC;MACnE,CAAC,MAAM;QACL;QACAmC,OAAO,CAACC,KAAK,CAAC,wBAAwB,EAAEvD,OAAO,CAAC;MAClD;IACF;EACF,CAAC;AACH;AAEA,SAASwD,uBAAuBA,CAC9BpC,KAAY,EACZpB,OAAgC,EAChCd,cAA8B,EAC9BiC,YAA4B,EAC5B;EACA,MAAMP,MAAM,GAAGZ,OAAO,CAACY,MAAM,KAAK,QAAQ,GAAG,SAAS,GAAG,QAAQ;EACjE8C,aAAa,CACXtC,KAAK,EACLpB,OAAO,CAACQ,WAAW,EACnBR,OAAO,EACPY,MAAM,EACN1B,cAAc,EACdiC,YACF,CAAC;AACH;AAEA,SAASsC,kBAAkBA,CACzBrC,KAAY,EACZpB,OAAgC,EAChCd,cAA8B,EAC9BiC,YAA2B,EAC3B;EACA,IAAIwC,OAAsB,GAAG,EAAE;EAC/B,MAAMC,SAAS,GAAG5D,OAAO,CAACU,MAAM;EAChC,MAAMmD,YAAY,GAAG7D,OAAO,CAACW,SAAS;EACtC,IAAImD,cAAc,GAAGF,SAAS;EAC9B;EACA,IACE,OAAOA,SAAS,KAAK,QAAQ,GACzBjG,WAAW,CAACiG,SAAS,CAAC,GACtBzF,cAAc,CAACyF,SAAS,CAAC,EAC7B;IACAE,cAAc,GAAG/F,gBAAgB,CAAC6F,SAAS,EAAE;MAAE,GAAG1E,cAAc;MAAEkC;IAAM,CAAC,CAAC;EAC5E;EACA,IAAI,OAAO0C,cAAc,KAAK,QAAQ,EAAE;IACtC,IAAIA,cAAc,KAAK,OAAO,EAAE;MAC9BH,OAAO,CAAC7D,IAAI,CAACqB,YAAY,CAACxB,OAAQ,CAAC;IACrC,CAAC,MAAM,IAAIK,OAAO,CAAC+D,QAAQ,EAAE;MAC3BJ,OAAO,GAAGK,KAAK,CAACC,IAAI,CAACC,QAAQ,CAACC,gBAAgB,CAACL,cAAc,CAAC,CAAC;IACjE,CAAC,MAAM;MACL,MAAMM,KAAK,GAAGF,QAAQ,CAACG,aAAa,CAACP,cAAc,CAAgB;MACnE,IAAIM,KAAK,KAAK,IAAI,EAAE;QAClBT,OAAO,CAAC7D,IAAI,CAACsE,KAAK,CAAC;MACrB;IACF;EACF,CAAC,MAAM,IAAIN,cAAc,EAAE;IACzB,IAAIA,cAAc,YAAYQ,WAAW,EAAE;MACzCX,OAAO,CAAC7D,IAAI,CAACgE,cAA6B,CAAC;IAC7C,CAAC,MAAM;MACL;MACAR,OAAO,CAACC,KAAK,CAAC,oBAAoB,EAAEO,cAAc,CAAC;IACrD;EACF,CAAC,MAAM,IAAID,YAAY,EAAE;IACvB,IAAIU,iBAAiB,GAAGV,YAAY;IACpC;IACA,IACE,OAAOA,YAAY,KAAK,QAAQ,GAC5BlG,WAAW,CAACkG,YAAY,CAAC,GACzB1F,cAAc,CAAC0F,YAAY,CAAC,EAChC;MACAU,iBAAiB,GAAGxG,gBAAgB,CAAC8F,YAAY,EAAE;QACjD,GAAG3E,cAAc;QACjBkC;MACF,CAAC,CAAsB;IACzB;IACA,MAAMoD,UAAU,GAAI,EAAE,CAAcvE,MAAM,CAACsE,iBAAiB,CAAC;IAC7D,MAAMvB,cAAc,GAAGzE,iBAAiB,CACtCW,cAAc,EACd,WAAW,EACX,KAAKsF,UAAU,CAACC,IAAI,CAAC,IAAI,CAAC,EAC5B,CAAC;IACDd,OAAO,CAAC7D,IAAI,CACV,GAAI0E,UAAU,CACXE,GAAG,CAAEC,GAAG;MAAA,IAAAC,qBAAA;MAAA,QAAAA,qBAAA,GAAK5B,cAAc,CAAC6B,iBAAiB,cAAAD,qBAAA,uBAAhCA,qBAAA,CAAAE,IAAA,CAAA9B,cAAc,EAAqB2B,GAAG,CAAC;IAAA,EAAC,CACrDI,MAAM,CAACC,OAAO,CACnB,CAAC;EACH;EACA,IAAIrB,OAAO,CAACvD,MAAM,KAAK,CAAC,EAAE;IACxB;IACAkD,OAAO,CAACC,KAAK,CAAC,mBAAmB,EAAEK,SAAS,IAAIC,YAAY,CAAC;IAC7D;EACF;EACA,IAAI/C,sBAAsB,CAACd,OAAO,CAAC,EAAE;IACnC2D,OAAO,CAACtE,OAAO,CAAEqB,MAAM,IAAK;MAC1BgD,aAAa,CACXtC,KAAK,EACLV,MAAM,EACNV,OAAO,EACPA,OAAO,CAACY,MAAM,EACd1B,cAAc,EACdiC,YAAY,EACZ;QACE8D,iBAAiB,EAAE;MACrB,CACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,MAAM,IAAIlE,uBAAuB,CAACf,OAAO,CAAC,EAAE;IAC3C5B,aAAa,CAACuF,OAAO,EAAE3D,OAAO,CAACa,UAAU,EAAE;MACzC,GAAG3B,cAAc;MACjBkC;IACF,CAAC,CAAC;EACJ;AACF;AAEA,eAAesC,aAAaA,CAC1BtC,KAAY,EACZ8D,gBAAsC,EACtClF,OAAiE,EACjEY,MAAc,EACd1B,cAA8B,EAC9BiC,YAA4B,EAC5BgE,OAA4B,EACb;EACf,MAAMC,UAAU,GAAG7E,oBAAoB,CAACP,OAAO,CAAC;EAEhD,MAAMqF,IAAI,GAAG,MAAAA,CAAA,KAA8B;IAAA,IAAAC,cAAA;IACzC,MAAMC,UAAU,GAAGH,UAAU,GACzB,MAAMnH,gBAAgB,CAACiH,gBAA0B,CAAC,GACjDA,gBAAgC;IAErC,IAAI,OAAQK,UAAU,CAAS3E,MAAM,CAAC,KAAK,UAAU,EAAE;MACrD,MAAM,IAAI4E,KAAK,CACb,WAAWD,UAAU,CAACE,OAAO,CAACC,WAAW,CAAC,CAAC,oBAAoB9E,MAAM,EACvE,CAAC;IACH;IAEA,MAAM+E,aAAa,GAAGpF,oBAAoB,CAACP,OAAO,CAAC;IACnD,IAAI4F,YAAuB;IAE3B,IAAIC,kBAAmE,GACrEF,aAAa,GACTG,WAAW,CAAC9F,OAAO,CAAC8B,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,CAAC,GAChD2B,WAAW,CAAC/C,OAAO,CAAC8B,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,EAAE+D,OAAO,CAAC;IAE/D,IACEQ,aAAa,IACb/G,KAAK,aAALA,KAAK,gBAAA0G,cAAA,GAAL1G,KAAK,CAAEmH,OAAO,cAAAT,cAAA,eAAdA,cAAA,CAAgBU,iBAAiB,CAAChG,OAAO,CAACQ,WAAW,CAAC,EACtD;MAAA,IAAAyF,YAAA;MACA,IAAI,CAACjC,KAAK,CAACkC,OAAO,CAAClG,OAAO,CAAC8B,IAAI,CAAC,IAAI9B,OAAO,CAACmG,MAAM,EAAE;QAClDN,kBAAkB,GAAG9H,gBAAgB,CACnCF,IAAI,CAACmC,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,UAAU,CAAC,EAC9C;UACE,GAAGd,cAAc;UACjBkC;QACF,CACF,CAA4B;MAC9B;MAEAwE,YAAY,GAAG,MAAMhH,KAAK,CAACmH,OAAO,CAACK,gBAAgB,CACjDpG,OAAO,CAACQ,WAAW,EACnBqF,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,EAAE,EACxBjF,MAAM,GAAAqF,YAAA,GACNjG,OAAO,CAACqG,GAAG,cAAAJ,YAAA,uBAAXA,YAAA,CAAaK,MACf,CAAC;IACH,CAAC,MAAM;MACLV,YAAY,GAAGC,kBAAkB,aAAlBA,kBAAkB,cAAlBA,kBAAkB,GAAI,EAAE;IACzC;IACA,OAAQN,UAAU,CAAS3E,MAAM,CAAC,CAAC,GAAGgF,YAAY,CAAC;EACrD,CAAC;EAED,IAAI,CAAC5F,OAAO,CAAC+B,QAAQ,EAAE;IACrBsD,IAAI,CAAC,CAAC;IACN;EACF;EAEA,MAAMkB,eAAe,GAAGC,oBAAoB,CAC1CxG,OAAO,CAAC+B,QAAQ,EAChB7C,cAAc,EACdiC,YACF,CAAC;EAED,MAAMsF,gBAA4C,GAAG;IACnDC,QAAQ,EAAEH,eAAe,CAAC,UAAU,CAAC;IACrCI,OAAO,EAAEJ,eAAe,CAAC,SAAS,CAAC;IACnChD,KAAK,EAAEgD,eAAe,CAAC,OAAO,CAAC;IAC/BK,OAAO,EAAEL,eAAe,CAAC,SAAS;EACpC,CAAC;EAED,IAAInB,UAAU,EAAE;IAAA,IAAAyB,aAAA,EAAAC,aAAA;IACd,MAAMC,kBAAkB,GAAG;MACzB,GAAG7H,cAAc;MACjBkC;IACF,CAAC;IAED,MAAM4F,SAAS,GAAGjJ,gBAAgB,EAAA8I,aAAA,GAChC7G,OAAO,CAACqG,GAAG,cAAAQ,aAAA,uBAAXA,aAAA,CAAaP,MAAM,EACnBS,kBACF,CAAwB;IAExB,IAAIC,SAAS,EAAE;MACbnI,cAAc,CACZwG,IAAI,EACJoB,gBACF,CAAC;MACD;IACF;IAEA,MAAMQ,WAAW,GAAGlJ,gBAAgB,EAAA+I,aAAA,GAClC9G,OAAO,CAACkH,IAAI,cAAAJ,aAAA,uBAAZA,aAAA,CAAcK,OAAO,EACrBJ,kBACF,CAAwB;IAExB,IAAIE,WAAW,EAAE;MACf/I,SAAS,CACPmH,IAAI,EACJoB,gBAAgB,EAChBzG,OAAO,CAACkH,IAAI,EACZH,kBACF,CAAC;MAED;IACF;EACF;EAEA,IAAI;IACF;IACA,MAAMK,MAAM,GAAG,MAAM/B,IAAI,CAAC,CAAC;IAC3BoB,gBAAgB,CAACE,OAAO,CAACS,MAAM,CAAC;EAClC,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZZ,gBAAgB,CAAClD,KAAK,CAAC8D,GAAG,CAAC;EAC7B,CAAC,SAAS;IACRZ,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;EAC/B;AACF;AAEA,SAAS5E,mBAAmBA,CAC1BT,KAAY,EACZR,MAUa,EACbkB,IAA2B,EAC3BC,QAA+C,EAC/C7C,cAA8B,EAC9B;EACA,IAAIoI,cAAc,GAAG,CAAC;EACtB,IAAIC,WAAW,GAAG,KAAK;EACvB,IAAIC,cAAc,GAAG5G,MAA2B;EAChD,QAAQA,MAAM;IACZ,KAAK,MAAM;IACX,KAAK,SAAS;IACd,KAAK,WAAW;IAChB,KAAK,cAAc;IACnB,KAAK,YAAY;MACf0G,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,IAAI5B,YAAuB,GAAG,EAAE;EAChC,IAAI0B,cAAc,GAAG,CAAC,EAAE;IACtB1B,YAAY,GAAG7C,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,EAAE;MACtDqG,uBAAuB,EAAE;IAC3B,CAAC,CAAC;IACF7B,YAAY,CAACxF,MAAM,GAAGkH,cAAc;EACtC;EACA,IAAIC,WAAW,IAAIxF,QAAQ,EAAE;IAC3B,MAAMwE,eAAe,GAAGC,oBAAoB,CAC1CzE,QAAQ,EACR7C,cAAc,EACdwI,SACF,CAAC;IACD9B,YAAY,CAAC9F,IAAI,CAAE6H,OAAgB,IAAK;MACtCpB,eAAe,CAACoB,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;QAAEA;MAAQ,CAAC,CAAC;MAC3DpB,eAAe,CAAC,SAAS,CAAC,CAAC;QAAEoB;MAAQ,CAAC,CAAC;IACzC,CAAC,CAAC;EACJ;EACC3J,UAAU,CAAC,CAAC,CAACwJ,cAAc,CAAC,CAC3B,GAAG5B,YACL,CAAC;AACH;AAEA,SAAS5D,sBAAsBA,CAC7BZ,KAAY,EACZU,IAA2B,EAC3B5C,cAA8B,EAC9B;EACA,MAAM,CAAC0I,GAAG,EAAElH,MAAM,EAAEmH,QAAQ,CAAC,GAAG9E,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,CAItE;EACD0G,MAAM,CAACC,IAAI,CAACH,GAAG,EAAElH,MAAM,IAAI,OAAO,EAAEmH,QAAQ,CAAC;AAC/C;AAEA,SAAS5F,6BAA6BA,CACpCb,KAAY,EACZU,IAA2B,EAC3B5C,cAA8B,EAC9B;EACA,MAAM0G,YAAY,GAAG7C,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,CAE3D;EACD,IAAIwE,YAAY,CAACxF,MAAM,KAAK,CAAC,EAAE;IAC7B;IACAwF,YAAY,CAAC9F,IAAI,CAACkI,QAAQ,CAACC,MAAM,CAAC;EACpC;EACAH,MAAM,CAACI,WAAW,CAAC,GAAGtC,YAAY,CAAC;AACrC;AAEA,SAAS1D,6BAA6BA,CACpCd,KAAY,EACZU,IAA2B,EAC3B5C,cAA8B,EAC9B;EACA,IAAIiJ,MAAM,KAAKL,MAAM,EAAE;IACrB,MAAM,IAAItC,KAAK,CAAC,6BAA6B,CAAC;EAChD;EACA,MAAMI,YAAY,GAAG7C,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,CAE3D;EACD+G,MAAM,CAACD,WAAW,CAAC,GAAGtC,YAAY,CAAC;AACrC;AAEA,SAASwC,WAAWA,CAClBtG,IAAe,EACfa,KAAc,EACd/B,MAA4B,EAC5ByH,KAAiC,EACjCnJ,cAA8B,EAC9BkC,KAA0B,EACpB;EACN,IAAIuB,KAAK,EAAE;IACT0F,KAAK,CAACC,YAAY,CAChBxG,IAAI,EACJlB,MAAM,EACL2H,GAAc,IAAK;MAClB,OAAOxF,WAAW,CAChBwF,GAAG,EACHrJ,cAAc,EACdkC,KACF,CAAC,CAAC,CAAC,CAAC;IACN,CACF,CAAC;EACH,CAAC,MAAM;IACLU,IAAI,CAACzC,OAAO,CAAEkJ,GAAG,IAAK;MACpB,MAAM;QAAEC,IAAI;QAAEC;MAAM,CAAC,GAAG1F,WAAW,CACjC,CAACwF,GAAG,CAAC,EACLrJ,cAAc,EACdkC,KACF,CAAC,CAAC,CAAC,CAA2B;MAC9BiH,KAAK,CAACK,WAAW,CAACF,IAAI,EAAEC,KAAK,EAAE7H,MAAM,CAAC;IACxC,CAAC,CAAC;EACJ;AACF;AAEA,SAAS8B,mBAAmBA,CAC1BtB,KAAY,EACZR,MAAyD,EACzDkB,IAA2B,EAC3Ba,KAAc,EACdZ,QAA+C,EAC/C7C,cAA8B,EAC9B;EACA,MAAMyJ,OAAO,GAAG3E,KAAK,CAACkC,OAAO,CAACpE,IAAI,CAAC,IAAIA,IAAI,CAAC8G,KAAK,CAAChL,QAAQ,CAAC;EAC3D,IAAI+K,OAAO,KAAK/H,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,SAAS,CAAC,EAAE;IAC5DwH,WAAW,CACTtG,IAAI,EACJa,KAAK,EACL/B,MAAM,EACN1B,cAAc,CAAC2J,QAAQ,EACvB3J,cAAc,EACdkC,KACF,CAAC;EACH,CAAC,MAAM;IACL,MAAM,CAACoH,IAAI,EAAEC,KAAK,CAAC,GAAG1F,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,CAAC;IAC9DlC,cAAc,CAAC2J,QAAQ,CAACH,WAAW,CACjCF,IAAI,EACJC,KAAK,EACL7H,MAAM,EACNmB,QAAQ,EACR7C,cACF,CAAC;EACH;AACF;AAEA,SAAS0D,oBAAoBA,CAC3BxB,KAAY,EACZR,MAA6C,EAC7CkB,IAA2B,EAC3Ba,KAAc,EACdZ,QAA+C,EAC/C7C,cAA8B,EAC9B;EACA,MAAMyJ,OAAO,GAAG3E,KAAK,CAACkC,OAAO,CAACpE,IAAI,CAAC,IAAIA,IAAI,CAAC8G,KAAK,CAAChL,QAAQ,CAAC;EAC3D,IAAI+K,OAAO,IAAI/H,MAAM,KAAK,QAAQ,EAAE;IAClC,MAAMkI,aAAa,GAAGtK,gBAAgB,CACpCU,cAAc,EACd,SAAS0B,MAAM,EAAE,EACjB,KAAKmI,IAAI,CAACC,SAAS,CAAClH,IAAI,CAAC,EAC3B,CAAC;IACDsG,WAAW,CAACtG,IAAI,EAAEa,KAAK,EAAE,SAAS,EAAEmG,aAAa,EAAE5J,cAAc,EAAEkC,KAAK,CAAC;EAC3E,CAAC,MAAM;IACL,MAAM,CAACoH,IAAI,EAAEC,KAAK,CAAC,GAAG1F,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,CAAC;IAC9D,MAAM0H,aAAa,GAAGtK,gBAAgB,CACpCU,cAAc,EACd,SAAS0B,MAAM,EAAE,EACjB,KAAK4H,IAAI,EACX,CAAC;IACDM,aAAa,CAACJ,WAAW,CACvBF,IAAI,EACJC,KAAK,EACL7H,MAAM,KAAK,QAAQ,GAAG,SAAS,GAAGA,MAAM,EACxCmB,QAAQ,EACR7C,cACF,CAAC;EACH;AACF;AAEA,SAASiE,qBAAqBA,CAC5B/B,KAAY,EACZU,IAA2B,EAC3BC,QAA+C,EAC/C7C,cAA8B,EAC9B;EACA,MAAM,CAACsJ,IAAI,EAAEC,KAAK,CAAC,GAAG1F,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,CAAC;EAC9D,MAAM6H,cAAc,GAAGtK,iBAAiB,CACtCO,cAAc,EACd,kBAAkB,EAClB,KAAKsJ,IAAI,EACX,CAAC;EACDS,cAAc,CAACP,WAAW,CACxBF,IAAI,EACJC,KAAK,EACL,SAAS,EACT1G,QAAQ,EACR7C,cACF,CAAC;AACH;AAEA,SAASiD,oBAAoBA,CAC3Bf,KAAY,EACZR,MAA2B,EAC3BkB,IAA2B,EAC3B5C,cAA8B,EAC9B;EACA,IAAI0B,MAAM,KAAK,QAAQ,EAAE;IACvB,MAAM,CAACgH,GAAG,CAAC,GAAG7E,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,CAAa;IAClE4G,QAAQ,CAACkB,MAAM,CAACtB,GAAG,CAAC;EACtB,CAAC,MAAM;IACLI,QAAQ,CAACpH,MAAM,CAAC,CAAC,CAAC;EACpB;AACF;AAEA,SAASwB,mBAAmBA,CAC1BhB,KAAY,EACZO,MAAyC,EACzCf,MAAgC,EAChCkB,IAA2B,EAC3B5C,cAA8B,EAC9B;EACA,MAAMiK,OAAO,GAAGxH,MAAM,KAAK,cAAc,GAAGyH,YAAY,GAAGC,cAAc;EACzE,MAAM,CAACb,IAAI,EAAEC,KAAK,CAAC,GAAG1F,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,CAAC;EAC9D,IAAIR,MAAM,KAAK,SAAS,EAAE;IACxB,IAAI6H,KAAK,KAAKf,SAAS,EAAE;MACvByB,OAAO,CAACG,OAAO,CAACd,IAAI,EAAYO,IAAI,CAACC,SAAS,CAACP,KAAK,CAAC,CAAC;IACxD;EACF,CAAC,MAAM;IACLU,OAAO,CAACI,UAAU,CAACf,IAAc,CAAC;EACpC;AACF;AAEA,SAASjG,mBAAmBA,CAC1BnB,KAAY,EACZR,MAAyC,EACzCkB,IAA2B,EAC3B5C,cAA8B,EAC9B;EACA,MAAMsK,YAAY,GAAGC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,YAAY;;EAE1D;EACA,IAAIH,YAAY,IAAI,CAAC1K,YAAY,CAAC8K,SAAS,CAAChJ,MAAM,CAAC,EAAE;IACnD;EACF;;EAEA;EACA0C,OAAO,CAAC1C,MAAM,CAAC,CACb,GAAGmC,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,EAAE;IAC1C6D,iBAAiB,EAAE;EACrB,CAAC,CACH,CAAC;AACH;AAEA,SAASzC,mBAAmBA,CAC1BpB,KAAY,EACZR,MAA6C,EAC7CkB,IAA2B,EAC3B5C,cAA8B,EAC9B;EACA,MAAM0G,YAAY,GAAG7C,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,EAAE;IAC5D6D,iBAAiB,EAAE;EACrB,CAAC,CAAC;EACFvG,YAAY,CAACmL,IAAI,CAAC;IAChBhH,IAAI,EAAEjC,MAAM;IACZkJ,OAAO,EAAElE,YAAY,CAAC,CAAC;EACzB,CAAC,CAAC;AACJ;AAEA,eAAexC,uBAAuBA,CACpChC,KAAY,EACZR,MAAmC,EACnCkB,IAA2B,EAC3B5C,cAA8B,EAC9BiC,YAA4B,EAC5BY,QAAoC,EACpC;EACA,MAAMsD,IAAI,GAAGA,CAAA,KAAM;IAAA,IAAA0E,qBAAA;IACjB,MAAMnE,YAAY,GAAG7C,WAAW,CAACjB,IAAI,EAAE5C,cAAc,EAAEkC,KAAK,CAAC;IAC7D,OAAOxC,KAAK,aAALA,KAAK,gBAAAmL,qBAAA,GAALnL,KAAK,CAAEoL,iBAAiB,cAAAD,qBAAA,uBAAxBA,qBAAA,CAA2BnJ,MAAM,CAAC,CAAC,GAAGgF,YAAY,CAAC;EAC5D,CAAC;EACD,IAAI,CAAC7D,QAAQ,EAAE;IACbsD,IAAI,CAAC,CAAC;IACN;EACF;EACA,MAAMkB,eAAe,GAAGC,oBAAoB,CAC1CzE,QAAQ,EACR7C,cAAc,EACdiC,YACF,CAAC;EACD,IAAI;IACF,MAAMiG,MAAM,GAAG,MAAM/B,IAAI,CAAC,CAAC;IAC3BkB,eAAe,CAAC,SAAS,CAAC,CAACa,MAAM,CAAC;EACpC,CAAC,CAAC,OAAO7D,KAAK,EAAE;IACdgD,eAAe,CAAC,OAAO,CAAC,CAAChD,KAAK,CAAC;EACjC,CAAC,SAAS;IACRgD,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;EAC9B;AACF;AAEA,OAAO,SAASC,oBAAoBA,CAClCzE,QAAmC,EACnC7C,cAA8B,EAC9BiC,YAA4B,EAC5B;EACA,OAAO,SAASoF,eAAeA,CAC7B1D,IAAkD,EAClD;IACA,OAAO,UAAUuE,MAAgB,EAAE;MACjC,MAAM5H,QAAQ,GAAGuC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGc,IAAI,CAAC;MACjC,IAAIrD,QAAQ,EAAE;QACZ,IAAI;UACF,MAAM4B,KAAK,GAAG,IAAI8B,WAAW,CAAC,YAAYL,IAAI,EAAE,EAAE;YAChDJ,MAAM,EAAE2E;UACV,CAAC,CAAC;UACF1H,eAAe,CAACF,QAAQ,EAAEN,cAAc,EAAEiC,YAAY,CAAC,CAACC,KAAK,CAAC;QAChE,CAAC,CAAC,OAAOiG,GAAG,EAAE;UACZ;UACA;UACA;UACA/D,OAAO,CAACC,KAAK,CAAC8D,GAAG,CAAC;QACpB;MACF,CAAC,MAAM,IAAIxE,IAAI,KAAK,OAAO,EAAE;QAC3B;QACAS,OAAO,CAACC,KAAK,CAAC,2BAA2B,EAAE6D,MAAM,CAAC;MACpD;IACF,CAAC;EACH,CAAC;AACH;AAOA,SAASrE,WAAWA,CAClBjB,IAA2B,EAC3B5C,cAA8B,EAC9BkC,KAAY,EAED;EAAA,IADX+D,OAA2B,GAAA8E,SAAA,CAAA7J,MAAA,QAAA6J,SAAA,QAAAvC,SAAA,GAAAuC,SAAA,MAAG,CAAC,CAAC;EAEhC,OAAOjG,KAAK,CAACkC,OAAO,CAACpE,IAAI,CAAC,GACrB/D,gBAAgB,CAAC+D,IAAI,EAAE;IACtB,GAAG5C,cAAc;IACjBkC;EACF,CAAC,CAAC,GACF+D,OAAO,CAACF,iBAAiB,GACvB,CAAC7D,KAAK,CAAC,GACP+D,OAAO,CAACsC,uBAAuB,GAC7B,CAAErG,KAAK,CAAiBqB,MAAM,CAAC,GAC/B,EAAE;AACZ;AAEA,SAASqD,WAAWA,CAClBhE,IAA2B,EAC3B5C,cAA8B,EAC9BkC,KAAY,EACW;EACvB,IAAI,CAAC4C,KAAK,CAACkC,OAAO,CAACpE,IAAI,CAAC,EAAE;IACxB,OAAOA,IAAI;EACb;EACA,OAAO/D,gBAAgB,CAAC+D,IAAI,EAAE;IAC5B,GAAG5C,cAAc;IACjBkC;EACF,CAAC,CAAC;AACJ","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"bindListeners.js","names":["isEvaluable","isObject","pick","checkIf","computeRealValue","getHistory","getProviderBrick","startPoll","isPreEvaluated","setProperties","applyMode","applyTheme","getTplHostElement","getTplStateStore","handleHttpError","Notification","getFormStateStore","hooks","startSSEStream","debugManager","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","_ref","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","_runtimeContext","runtimeBrick","event","_handler$batch","_handler$batch2","key","eventMap","Map","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","handleEventAction","handleConsoleAction","handleMessageAction","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","theme","console","error","handleUseProviderAction","handleCustomAction","computedArgs","useEventAsDefault","e","Event","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","Error","tagName","toLowerCase","isUseProvider","argsOrContractConf","computeArgs","flowApi","isFlowApiProvider","_handler$sse","isArray","params","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","pollEnabled","poll","enabled","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","ctxStore","tplStateStore","JSON","stringify","formStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","isProduction","process","env","NODE_ENV","shouldLog","show","message","_hooks$messageDispatc","messageDispatcher","arguments"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\nimport { debugManager } from \"./debugManager.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n _runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n let runtimeContext = _runtimeContext;\n if (handler.key && typeof handler.key === \"string\") {\n runtimeContext = {\n ..._runtimeContext,\n eventMap: new Map([\n ...(_runtimeContext.eventMap || []),\n [handler.key, event],\n ]),\n };\n }\n\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n case \"event.stopPropagation\":\n handleEventAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n case \"context.set\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n case \"state.set\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleEventAction(\n event: Event,\n method: \"preventDefault\" | \"stopPropagation\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n const [e] = computedArgs as [Event];\n if (e instanceof Event) {\n e[method]();\n } else {\n // eslint-disable-next-line no-console\n console.error(`call event.${method}() on non-Event object:`, e);\n\n // For compatibility, fallback to the original event.\n event[method]();\n }\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs: unknown[];\n\n let argsOrContractConf: unknown[] | UseProviderContractConf | undefined =\n isUseProvider\n ? computeArgs(handler.args, runtimeContext, event)\n : argsFactory(handler.args, runtimeContext, event, options);\n\n if (\n isUseProvider &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(\n pick(handler, \"params\", \"options\", \"filename\"),\n {\n ...runtimeContext,\n event,\n }\n ) as UseProviderContractConf;\n }\n\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n argsOrContractConf ?? [],\n method,\n handler.sse?.stream\n );\n } else {\n computedArgs = argsOrContractConf ?? [];\n }\n return (realTarget as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n if (isProvider) {\n const pollRuntimeContext = {\n ...runtimeContext,\n event,\n };\n\n const sseStream = computeRealValue(\n handler.sse?.stream,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (sseStream) {\n startSSEStream(\n task as () => Promise<AsyncIterable<unknown>>,\n pollableCallback\n );\n return;\n }\n\n const pollEnabled = computeRealValue(\n handler.poll?.enabled,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (pollEnabled) {\n startPoll(\n task,\n pollableCallback,\n handler.poll as ProviderPollOptions,\n pollRuntimeContext\n );\n\n return;\n }\n }\n\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowOpenAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string,\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction handleWindowPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\n\nfunction handleParentPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n parent.postMessage(...computedArgs);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const isProduction = process.env.NODE_ENV === \"production\";\n\n // 生产环境下,只有调试模式开启且符合日志级别才输出\n if (isProduction && !debugManager.shouldLog(method)) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nasync function handleMessageDispatcher(\n event: Event,\n method: \"subscribe\" | \"unsubscribe\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n callback?: BrickEventHandlerCallback\n) {\n const task = () => {\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks?.messageDispatcher?.[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n runtimeBrick\n );\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n\nfunction computeArgs(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event\n): unknown[] | undefined {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[];\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -218,7 +218,9 @@ export class DataStore {
|
|
|
218
218
|
if (Array.isArray(dataConfs) && dataConfs.length > 0) {
|
|
219
219
|
const pending = resolveDataStore(dataConfs, dataConf => this.resolve(dataConf, runtimeContext, asyncHostPropertyEntries, routePath), this.type, isStrictMode(runtimeContext));
|
|
220
220
|
if (Array.isArray(routePath)) {
|
|
221
|
-
for (const
|
|
221
|
+
for (const {
|
|
222
|
+
route
|
|
223
|
+
} of routePath) {
|
|
222
224
|
const stack = this.routeStackMap.get(route);
|
|
223
225
|
if (stack) {
|
|
224
226
|
stack.add(pending);
|
|
@@ -384,7 +386,9 @@ export class DataStore {
|
|
|
384
386
|
});
|
|
385
387
|
this.data.set(dataConf.name, newData);
|
|
386
388
|
if (Array.isArray(routePath)) {
|
|
387
|
-
for (const
|
|
389
|
+
for (const {
|
|
390
|
+
route
|
|
391
|
+
} of routePath) {
|
|
388
392
|
const names = this.routeMap.get(route);
|
|
389
393
|
if (names) {
|
|
390
394
|
names.add(dataConf.name);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"DataStore.js","names":["hasOwnProperty","isObject","strictCollectMemberUsage","EventTarget","pull","eventCallbackFactory","listenerFactory","asyncCheckIf","checkIf","asyncComputeRealValue","computeRealValue","resolveData","resolveDataStore","handleHttpError","computePropertyValue","_internalApiGetRenderId","callRealTimeDataInspectHooks","realTimeDataInspectRoot","isStrictMode","supportContextResolveTriggerBrickLifeCycle","DataStore","constructor","type","hostBrick","rendererContext","stateStoreId","_defineProperty","Map","WeakMap","changeEventType","has","name","data","getAllValues","Object","fromEntries","entries","map","_ref","value","getValue","_this$data$get","get","notifyRealTimeDataChange","tplStateStoreId","changeType","detail","getAffectListByContext","affectNames","forEach","key","deps","isInDeps","some","item","includes","push","shift","Set","updateValues","values","method","argsFactory","batchUpdate","batchUpdateContextsNames","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","load","cache","then","val","finishLoad","err","callbackFactory","assign","console","warn","nextValue","is","define","dataConfs","runtimeContext","asyncHostPropertyEntries","routePath","Array","isArray","pending","dataConf","route","stack","routeStackMap","add","set","pendingStack","onChange","dataName","listener","_this$data$get2","addEventListener","removeEventListener","waitFor","dataNames","pendingContexts","all","ctx","p","waitForAll","pendingResult","mountAsyncData","_this$routeMap$get","async","routeMap","asyncMounted","expose","trackConditionalResolve","resolvePolicy","undefined","hasFallbackValue","track","if","size","resolveConf","transform","options","_this$rendererContext2","lazy","newData","trigger","_this$rendererContext3","registerArbitraryLifeCycle","dep","batchAddListener","e","names","disposeDataInRoutes","routes","delete","contextConf","event"],"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":[]}
|
|
1
|
+
{"version":3,"file":"DataStore.js","names":["hasOwnProperty","isObject","strictCollectMemberUsage","EventTarget","pull","eventCallbackFactory","listenerFactory","asyncCheckIf","checkIf","asyncComputeRealValue","computeRealValue","resolveData","resolveDataStore","handleHttpError","computePropertyValue","_internalApiGetRenderId","callRealTimeDataInspectHooks","realTimeDataInspectRoot","isStrictMode","supportContextResolveTriggerBrickLifeCycle","DataStore","constructor","type","hostBrick","rendererContext","stateStoreId","_defineProperty","Map","WeakMap","changeEventType","has","name","data","getAllValues","Object","fromEntries","entries","map","_ref","value","getValue","_this$data$get","get","notifyRealTimeDataChange","tplStateStoreId","changeType","detail","getAffectListByContext","affectNames","forEach","key","deps","isInDeps","some","item","includes","push","shift","Set","updateValues","values","method","argsFactory","batchUpdate","batchUpdateContextsNames","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","load","cache","then","val","finishLoad","err","callbackFactory","assign","console","warn","nextValue","is","define","dataConfs","runtimeContext","asyncHostPropertyEntries","routePath","Array","isArray","pending","dataConf","route","stack","routeStackMap","add","set","pendingStack","onChange","dataName","listener","_this$data$get2","addEventListener","removeEventListener","waitFor","dataNames","pendingContexts","all","ctx","p","waitForAll","pendingResult","mountAsyncData","_this$routeMap$get","async","routeMap","asyncMounted","expose","trackConditionalResolve","resolvePolicy","undefined","hasFallbackValue","track","if","size","resolveConf","transform","options","_this$rendererContext2","lazy","newData","trigger","_this$rendererContext3","registerArbitraryLifeCycle","dep","batchAddListener","e","names","disposeDataInRoutes","routes","delete","contextConf","event"],"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 RouteNode,\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?: RouteNode[]\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?: RouteNode[]\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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"interfaces.js","names":[],"sources":["../../../src/internal/interfaces.ts"],"sourcesContent":["import type { LegacyCompatibleRuntimeContext } from \"@next-core/inject\";\nimport type {\n BrickEventHandler,\n BrickEventsMap,\n CustomTemplate,\n RouteConf,\n RuntimeSnippet,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n Storyboard,\n StaticMenuConf,\n UseProviderResolveConf,\n MicroApp,\n} from \"@next-core/types\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { RuntimeBrickConfWithTplSymbols } from \"./CustomTemplates/constants.js\";\nimport { RuntimeBrickConfOfFormSymbols } from \"./FormRenderer/constants.js\";\n\nexport interface RuntimeContext extends LegacyCompatibleRuntimeContext {\n ctxStore: DataStore<\"CTX\">;\n tplStateStoreMap: Map<string, DataStore<\"STATE\">>;\n pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];\n tplStateStoreId?: string;\n // `useBrick` has a local tpl state store scope\n tplStateStoreScope?: DataStore<\"STATE\">[];\n forEachItem?: unknown;\n forEachIndex?: number;\n forEachSize?: number;\n appendI18nNamespace?: string;\n isolatedRoot?: symbol;\n eventMap?: Map<string, Event>;\n\n formStateStoreMap: Map<string, DataStore<\"FORM_STATE\">>;\n formStateStoreId?: string;\n formStateStoreScope?: DataStore<\"FORM_STATE\">[];\n inUseBrick?: boolean;\n\n unsafe_penetrate?: boolean;\n}\n\nexport type AsyncPropertyEntry = [\n name: string,\n value: Promise<unknown>,\n ignoreUndefined?: boolean,\n];\n\nexport interface ElementHolder {\n element?: HTMLElement | null;\n}\n\nexport interface RenderRoot extends BaseRenderNode {\n tag: RenderTag.ROOT;\n container?: HTMLElement | DocumentFragment;\n createPortal:\n | HTMLElement\n | DocumentFragment\n | (() => HTMLElement | DocumentFragment);\n}\n\nexport interface RenderBrick extends BaseRenderNode, RuntimeBrick {\n tag: RenderTag.BRICK;\n return: RenderReturnNode;\n}\n\nexport interface RenderAbstract extends BaseRenderNode {\n tag: RenderTag.ABSTRACT;\n return: RenderReturnNode;\n iid?: string;\n disposes?: (() => void)[];\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderChildNode;\n sibling?: RenderChildNode;\n return?: RenderReturnNode | null;\n childElements?: HTMLElement[];\n disposed?: boolean;\n mounted?: boolean;\n}\n\nexport type RenderNode = RenderRoot | RenderBrick | RenderAbstract;\nexport type RenderChildNode = RenderBrick | RenderAbstract;\nexport type RenderReturnNode = RenderNode;\n\nexport interface RuntimeBrick {\n type: string;\n properties?: Record<string, unknown>;\n events?: BrickEventsMap;\n slotId?: string;\n element?: RuntimeBrickElement | null;\n iid?: string;\n runtimeContext: RuntimeContext;\n tplHostMetadata?: TemplateHostMetadata;\n portal?: boolean;\n ref?: string;\n disposes?: (() => void)[];\n disposed?: boolean;\n}\n\nexport type MetaInfoOfEventListener = [\n string,\n // For compatibility of devtools, leave the second argument there.\n null | undefined,\n BrickEventHandler,\n];\n\nexport type RememberedEventListener = [string, EventListener];\n\nexport interface RuntimeBrickElement extends HTMLElement {\n $$typeof?: \"brick\" | \"provider\" | \"custom-template\" | \"native\" | \"invalid\";\n /** Meta info of listeners, for devtools only */\n $$eventListeners?: MetaInfoOfEventListener[];\n /** Remembered listeners for unbinding */\n $$listeners?: RememberedEventListener[];\n /** Remembered proxy listeners for unbinding */\n $$proxyListeners?: RememberedEventListener[];\n /** Find element by ref in a custom template */\n $$getElementByRef?: (ref: string) => HTMLElement | null | undefined;\n $$tplStateStore?: DataStore<\"STATE\">;\n}\n\nexport interface TemplateHostMetadata {\n internalBricksByRef: Map<string, RuntimeBrick>;\n tplStateStoreId: string;\n proxy?: CustomTemplateProxy;\n}\n\nexport type TemplateHostBrick = RuntimeBrick & {\n tplHostMetadata: TemplateHostMetadata;\n};\n\nexport interface TemplateHostContext {\n reversedProxies: ReversedProxies;\n asyncHostPropertyEntries: AsyncPropertyEntry[];\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n usedSlots: Set<string>;\n}\n\ninterface ReversedProxies {\n properties: Map<string, ReversedPropertyProxy[]>;\n slots: Map<string, ReversedSlotProxy[]>;\n}\n\ninterface ReversedPropertyProxy {\n from: string;\n to: CustomTemplateProxyBasicProperty;\n}\n\ninterface ReversedSlotProxy {\n from: string;\n to: CustomTemplateProxySlot;\n}\n\nexport type RuntimeBrickConfWithSymbols = RuntimeBrickConfWithTplSymbols &\n RuntimeBrickConfOfFormSymbols;\n\nexport interface DataValueOption {\n tplStateStoreId?: string;\n routeId?: string;\n}\n\nexport type PreviewStoryboardPatch =\n | CustomTemplate\n | RouteConf\n | RuntimeSnippet;\n\nexport interface PreviewOption {\n appId: string;\n formId?: string;\n updateStoryboardType?: \"route\" | \"template\" | \"snippet\";\n collectUsedContracts?(storyboard: Storyboard): string[] | Promise<string[]>;\n}\n\nexport interface MenuRequestNode {\n child?: MenuRequestNode;\n sibling?: MenuRequestNode;\n return?: MenuRequestNode;\n request?: Promise<StaticMenuConf>;\n}\n\nexport interface DebugDataValue {\n resolve?: UseProviderResolveConf;\n value?: unknown;\n}\n\nexport interface RuntimeDataVale\n extends Pick<LegacyCompatibleRuntimeContext, \"match\" | \"sys\" | \"query\"> {\n location: {\n href: string;\n origin: string;\n hostname: string;\n host: string;\n };\n app?: MicroApp;\n}\n\nexport interface RuntimeDataValueOption {\n routeId?: string;\n}\n"],"mappings":"","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"interfaces.js","names":[],"sources":["../../../src/internal/interfaces.ts"],"sourcesContent":["import type { LegacyCompatibleRuntimeContext } from \"@next-core/inject\";\nimport type {\n BrickEventHandler,\n BrickEventsMap,\n CustomTemplate,\n RouteConf,\n RuntimeSnippet,\n CustomTemplateProxy,\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxySlot,\n SlotsConfOfBricks,\n Storyboard,\n StaticMenuConf,\n UseProviderResolveConf,\n MicroApp,\n} from \"@next-core/types\";\nimport type { DataStore } from \"./data/DataStore.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { RuntimeBrickConfWithTplSymbols } from \"./CustomTemplates/constants.js\";\nimport { RuntimeBrickConfOfFormSymbols } from \"./FormRenderer/constants.js\";\n\nexport interface RuntimeContext extends LegacyCompatibleRuntimeContext {\n ctxStore: DataStore<\"CTX\">;\n tplStateStoreMap: Map<string, DataStore<\"STATE\">>;\n pendingPermissionsPreCheck: (Promise<unknown> | undefined)[];\n tplStateStoreId?: string;\n // `useBrick` has a local tpl state store scope\n tplStateStoreScope?: DataStore<\"STATE\">[];\n forEachItem?: unknown;\n forEachIndex?: number;\n forEachSize?: number;\n appendI18nNamespace?: string;\n isolatedRoot?: symbol;\n eventMap?: Map<string, Event>;\n\n formStateStoreMap: Map<string, DataStore<\"FORM_STATE\">>;\n formStateStoreId?: string;\n formStateStoreScope?: DataStore<\"FORM_STATE\">[];\n inUseBrick?: boolean;\n\n unsafe_penetrate?: boolean;\n}\n\nexport type AsyncPropertyEntry = [\n name: string,\n value: Promise<unknown>,\n ignoreUndefined?: boolean,\n];\n\nexport interface ElementHolder {\n element?: HTMLElement | null;\n}\n\nexport interface RenderRoot extends BaseRenderNode {\n tag: RenderTag.ROOT;\n container?: HTMLElement | DocumentFragment;\n createPortal:\n | HTMLElement\n | DocumentFragment\n | (() => HTMLElement | DocumentFragment);\n}\n\nexport interface RenderBrick extends BaseRenderNode, RuntimeBrick {\n tag: RenderTag.BRICK;\n return: RenderReturnNode;\n}\n\nexport interface RenderAbstract extends BaseRenderNode {\n tag: RenderTag.ABSTRACT;\n return: RenderReturnNode;\n iid?: string;\n disposes?: (() => void)[];\n}\n\nexport interface BaseRenderNode {\n tag: RenderTag;\n child?: RenderChildNode;\n sibling?: RenderChildNode;\n return?: RenderReturnNode | null;\n childElements?: HTMLElement[];\n disposed?: boolean;\n mounted?: boolean;\n}\n\nexport type RenderNode = RenderRoot | RenderBrick | RenderAbstract;\nexport type RenderChildNode = RenderBrick | RenderAbstract;\nexport type RenderReturnNode = RenderNode;\n\nexport interface RuntimeBrick {\n type: string;\n properties?: Record<string, unknown>;\n events?: BrickEventsMap;\n slotId?: string;\n element?: RuntimeBrickElement | null;\n iid?: string;\n runtimeContext: RuntimeContext;\n tplHostMetadata?: TemplateHostMetadata;\n portal?: boolean;\n ref?: string;\n disposes?: (() => void)[];\n disposed?: boolean;\n}\n\nexport type MetaInfoOfEventListener = [\n string,\n // For compatibility of devtools, leave the second argument there.\n null | undefined,\n BrickEventHandler,\n];\n\nexport type RememberedEventListener = [string, EventListener];\n\nexport interface RuntimeBrickElement extends HTMLElement {\n $$typeof?: \"brick\" | \"provider\" | \"custom-template\" | \"native\" | \"invalid\";\n /** Meta info of listeners, for devtools only */\n $$eventListeners?: MetaInfoOfEventListener[];\n /** Remembered listeners for unbinding */\n $$listeners?: RememberedEventListener[];\n /** Remembered proxy listeners for unbinding */\n $$proxyListeners?: RememberedEventListener[];\n /** Find element by ref in a custom template */\n $$getElementByRef?: (ref: string) => HTMLElement | null | undefined;\n $$tplStateStore?: DataStore<\"STATE\">;\n}\n\nexport interface TemplateHostMetadata {\n internalBricksByRef: Map<string, RuntimeBrick>;\n tplStateStoreId: string;\n proxy?: CustomTemplateProxy;\n}\n\nexport type TemplateHostBrick = RuntimeBrick & {\n tplHostMetadata: TemplateHostMetadata;\n};\n\nexport interface TemplateHostContext {\n reversedProxies: ReversedProxies;\n asyncHostPropertyEntries: AsyncPropertyEntry[];\n externalSlots?: SlotsConfOfBricks;\n tplStateStoreId: string;\n hostBrick: TemplateHostBrick;\n usedSlots: Set<string>;\n}\n\ninterface ReversedProxies {\n properties: Map<string, ReversedPropertyProxy[]>;\n slots: Map<string, ReversedSlotProxy[]>;\n}\n\ninterface ReversedPropertyProxy {\n from: string;\n to: CustomTemplateProxyBasicProperty;\n}\n\ninterface ReversedSlotProxy {\n from: string;\n to: CustomTemplateProxySlot;\n}\n\nexport type RuntimeBrickConfWithSymbols = RuntimeBrickConfWithTplSymbols &\n RuntimeBrickConfOfFormSymbols;\n\nexport interface DataValueOption {\n tplStateStoreId?: string;\n routeId?: string;\n}\n\nexport type PreviewStoryboardPatch =\n | CustomTemplate\n | RouteConf\n | RuntimeSnippet;\n\nexport interface PreviewOption {\n appId: string;\n formId?: string;\n updateStoryboardType?: \"route\" | \"template\" | \"snippet\";\n collectUsedContracts?(storyboard: Storyboard): string[] | Promise<string[]>;\n}\n\nexport interface MenuRequestNode {\n child?: MenuRequestNode;\n sibling?: MenuRequestNode;\n return?: MenuRequestNode;\n request?: Promise<StaticMenuConf>;\n}\n\nexport interface DebugDataValue {\n resolve?: UseProviderResolveConf;\n value?: unknown;\n}\n\nexport interface RuntimeDataVale\n extends Pick<LegacyCompatibleRuntimeContext, \"match\" | \"sys\" | \"query\"> {\n location: {\n href: string;\n origin: string;\n hostname: string;\n host: string;\n };\n app?: MicroApp;\n}\n\nexport interface RuntimeDataValueOption {\n routeId?: string;\n}\n\nexport interface RouteNode {\n route: RouteConf;\n // All ordered sibling routes under the same parent including the route itself\n routes: RouteConf[];\n}\n"],"mappings":"","ignoreList":[]}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BrickConf, RouteConf, SlotsConf } from "@next-core/types";
|
|
2
2
|
import { type InitialTracker } from "./compute/listenOnTrackingContext.js";
|
|
3
3
|
import { RendererContext } from "./RendererContext.js";
|
|
4
|
-
import type { MenuRequestNode, RenderChildNode, RenderReturnNode, RuntimeBrickConfWithSymbols, RuntimeContext } from "./interfaces.js";
|
|
4
|
+
import type { MenuRequestNode, RenderChildNode, RenderReturnNode, RuntimeBrickConfWithSymbols, RuntimeContext, RouteNode } from "./interfaces.js";
|
|
5
5
|
import type { NextHistoryState } from "./historyExtended.js";
|
|
6
6
|
import type { DataStore, DataStoreType } from "./data/DataStore.js";
|
|
7
7
|
export interface RenderOutput {
|
|
@@ -16,9 +16,9 @@ export interface RenderOutput {
|
|
|
16
16
|
blockingList: (Promise<unknown> | undefined)[];
|
|
17
17
|
menuRequestNode?: MenuRequestNode;
|
|
18
18
|
}
|
|
19
|
-
export declare function renderRoutes(returnNode: RenderReturnNode, routes: RouteConf[], _runtimeContext: RuntimeContext, rendererContext: RendererContext, parentRoutes:
|
|
20
|
-
export declare function renderBricks(returnNode: RenderReturnNode, bricks: BrickConf[], runtimeContext: RuntimeContext, rendererContext: RendererContext, parentRoutes:
|
|
21
|
-
export declare function renderBrick(returnNode: RenderReturnNode, brickConf: RuntimeBrickConfWithSymbols, _runtimeContext: RuntimeContext, rendererContext: RendererContext, parentRoutes:
|
|
19
|
+
export declare function renderRoutes(returnNode: RenderReturnNode, routes: RouteConf[], _runtimeContext: RuntimeContext, rendererContext: RendererContext, parentRoutes: RouteNode[], menuRequestReturnNode: MenuRequestNode, slotId?: string, isIncremental?: boolean, initialTracker?: InitialTracker): Promise<RenderOutput>;
|
|
20
|
+
export declare function renderBricks(returnNode: RenderReturnNode, bricks: BrickConf[], runtimeContext: RuntimeContext, rendererContext: RendererContext, parentRoutes: RouteNode[], menuRequestReturnNode: MenuRequestNode, slotId?: string, tplStack?: Map<string, number>, initialTracker?: InitialTracker): Promise<RenderOutput>;
|
|
21
|
+
export declare function renderBrick(returnNode: RenderReturnNode, brickConf: RuntimeBrickConfWithSymbols, _runtimeContext: RuntimeContext, rendererContext: RendererContext, parentRoutes: RouteNode[], menuRequestReturnNode: MenuRequestNode, slotId?: string, tplStack?: Map<string, number>, initialTracker?: InitialTracker): Promise<RenderOutput>;
|
|
22
22
|
export declare function getDataStores(runtimeContext: RuntimeContext): (DataStore<"STATE"> | DataStore<"CTX"> | DataStore<"FORM_STATE">)[];
|
|
23
23
|
export declare function postAsyncRender(output: RenderOutput, runtimeContext: RuntimeContext, stores: DataStore<DataStoreType>[]): Promise<unknown[]>;
|
|
24
24
|
export declare function createScopedRuntimeContext(runtimeContext: RuntimeContext): [
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import type { BatchUpdateContextItem, BrickEventHandlerCallback, ContextConf, RouteConf } from "@next-core/types";
|
|
2
2
|
import EventTarget from "@ungap/event-target";
|
|
3
3
|
import { ResolveOptions } from "./resolveData.js";
|
|
4
|
-
import type { AsyncPropertyEntry, RuntimeBrick, RuntimeContext } from "../interfaces.js";
|
|
4
|
+
import type { AsyncPropertyEntry, RouteNode, RuntimeBrick, RuntimeContext } from "../interfaces.js";
|
|
5
5
|
import type { RendererContext } from "../RendererContext.js";
|
|
6
6
|
export type DataStoreType = "CTX" | "STATE" | "FORM_STATE";
|
|
7
7
|
export interface DataStoreItem {
|
|
@@ -37,7 +37,7 @@ export declare class DataStore<T extends DataStoreType = "CTX"> {
|
|
|
37
37
|
updateValues(values: BatchUpdateContextItem[], method: "assign" | "replace", argsFactory: (arg: unknown[]) => BatchUpdateContextItem): void;
|
|
38
38
|
updateValue(name: string, value: unknown, method: "assign" | "replace" | "refresh" | "load" | "set", callback?: BrickEventHandlerCallback, callbackRuntimeContext?: RuntimeContext): void;
|
|
39
39
|
private finishLoad;
|
|
40
|
-
define(dataConfs: ContextConf[] | undefined, runtimeContext: RuntimeContext, asyncHostPropertyEntries?: AsyncPropertyEntry[], routePath?:
|
|
40
|
+
define(dataConfs: ContextConf[] | undefined, runtimeContext: RuntimeContext, asyncHostPropertyEntries?: AsyncPropertyEntry[], routePath?: RouteNode[]): void;
|
|
41
41
|
onChange(dataName: string, listener: EventListener): () => void;
|
|
42
42
|
waitFor(dataNames: string[] | Set<string>): Promise<void>;
|
|
43
43
|
waitForAll(): Promise<void>;
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@next-core/runtime",
|
|
3
|
-
"version": "1.72.
|
|
3
|
+
"version": "1.72.2",
|
|
4
4
|
"homepage": "https://github.com/easyops-cn/next-core/tree/v3/packages/runtime",
|
|
5
5
|
"license": "GPL-3.0",
|
|
6
6
|
"repository": {
|
|
@@ -67,5 +67,5 @@
|
|
|
67
67
|
"@next-core/build-next-libs": "^1.0.25",
|
|
68
68
|
"@next-core/test-next": "^2.0.1"
|
|
69
69
|
},
|
|
70
|
-
"gitHead": "
|
|
70
|
+
"gitHead": "8b56a7ae267ef34303a936bd380cec6568206854"
|
|
71
71
|
}
|