@next-core/runtime 1.54.5 → 1.54.7

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.
@@ -1 +1 @@
1
- {"version":3,"file":"bindListeners.js","names":["_cook","require","_general","_checkIf","_computeRealValue","_history","_getProviderBrick","_poll","_evaluate","_setProperties","_themeAndMode","_utils","_handleHttpError","_Notification","_utils2","_Runtime","_sse","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","checkIf","else","object","split","handleHistoryAction","args","callback","handleWindowAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","handleHttpError","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","getTplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","applyTheme","theme","applyMode","console","error","handleUseProviderAction","handleCustomAction","providerBrick","getProviderBrick","brickCallback","httpErrorToString","targets","rawTarget","rawTargetRef","computedTarget","isEvaluable","isPreEvaluated","computeRealValue","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","setProperties","options","task","_hooks$flowApi","computedArgs","hooks","flowApi","isFlowApiProvider","_handler$sse","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","startSSEStream","pollEnabled","poll","enabled","startPoll","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","getHistory","url","features","window","open","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","isArray","every","isObject","ctxStore","tplStateStore","getTplStateStore","JSON","stringify","formStateStore","getFormStateStore","location","assign","storage","localStorage","sessionStorage","setItem","removeItem","Notification","show","message","_hooks$messageDispatc","messageDispatcher"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\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, httpErrorToString } 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\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n case \"event.stopPropagation\":\n event.stopPropagation();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nasync function handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n try {\n const providerBrick = await getProviderBrick(handler.useProvider);\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n providerBrick,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(httpErrorToString(error));\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 target: HTMLElement,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n if (typeof (target as any)[method] !== \"function\") {\n // eslint-disable-next-line no-console\n console.error(\"target has no method:\", {\n target,\n method: method,\n });\n return;\n }\n\n const task = async (): Promise<unknown> => {\n let computedArgs = argsFactory(\n handler.args,\n runtimeContext,\n event,\n options\n );\n if (\n isUseProviderHandler(handler) &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n computedArgs,\n method,\n handler.sse?.stream\n );\n }\n return (target 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 (isUseProviderHandler(handler)) {\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 handleWindowAction(\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 batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n // 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"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"bindListeners.js","names":["_cook","require","_general","_checkIf","_computeRealValue","_history","_getProviderBrick","_poll","_evaluate","_setProperties","_themeAndMode","_utils","_handleHttpError","_Notification","_utils2","_Runtime","_sse","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","checkIf","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","handleHttpError","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","getTplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","applyTheme","theme","applyMode","console","error","handleUseProviderAction","handleCustomAction","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","isEvaluable","isPreEvaluated","computeRealValue","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","setProperties","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","getProviderBrick","Error","tagName","toLowerCase","computedArgs","hooks","flowApi","isFlowApiProvider","_handler$sse","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","startSSEStream","pollEnabled","poll","enabled","startPoll","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","getHistory","url","features","window","open","location","origin","postMessage","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","isArray","every","isObject","ctxStore","tplStateStore","getTplStateStore","JSON","stringify","formStateStore","getFormStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","Notification","show","message","_hooks$messageDispatc","messageDispatcher"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\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\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n case \"event.stopPropagation\":\n event.stopPropagation();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n let computedArgs = argsFactory(\n handler.args,\n runtimeContext,\n event,\n options\n );\n if (\n isUseProviderHandler(handler) &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n computedArgs,\n method,\n handler.sse?.stream\n );\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 batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n // 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"],"mappings":";;;;;;;;;;;;;;;AAcA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,iBAAA,GAAAH,OAAA;AACA,IAAAI,QAAA,GAAAJ,OAAA;AACA,IAAAK,iBAAA,GAAAL,OAAA;AACA,IAAAM,KAAA,GAAAN,OAAA;AACA,IAAAO,SAAA,GAAAP,OAAA;AACA,IAAAQ,cAAA,GAAAR,OAAA;AACA,IAAAS,aAAA,GAAAT,OAAA;AAMA,IAAAU,MAAA,GAAAV,OAAA;AAIA,IAAAW,gBAAA,GAAAX,OAAA;AACA,IAAAY,aAAA,GAAAZ,OAAA;AACA,IAAAa,OAAA,GAAAb,OAAA;AAEA,IAAAc,QAAA,GAAAd,OAAA;AACA,IAAAe,IAAA,GAAAf,OAAA;AAEO,SAASgB,aAAaA,CAC3BC,KAA0B,EAC1BC,SAAqC,EACrCC,cAA8B,EACxB;EACN,IAAI,CAACD,SAAS,EAAE;IACd;EACF;EACAE,MAAM,CAACC,OAAO,CAACH,SAAS,CAAC,CAACI,OAAO,CAAC,CAAC,CAACC,SAAS,EAAEC,QAAQ,CAAC,KAAK;IAC3D,MAAMC,QAAQ,GAAGC,eAAe,CAACF,QAAQ,EAAEL,cAAc,EAAE;MACzDQ,OAAO,EAAEV;IACX,CAAC,CAAC;IACFA,KAAK,CAACW,gBAAgB,CAACL,SAAS,EAAEE,QAAQ,CAAC;;IAE3C;IACA,IAAI,CAACR,KAAK,CAACY,WAAW,EAAE;MACtBZ,KAAK,CAACY,WAAW,GAAG,EAAE;IACxB;IACAZ,KAAK,CAACY,WAAW,CAACC,IAAI,CAAC,CAACP,SAAS,EAAEE,QAAQ,CAAC,CAAC;;IAE7C;IACA,IAAI,CAACR,KAAK,CAACc,gBAAgB,EAAE;MAC3Bd,KAAK,CAACc,gBAAgB,GAAG,EAAE;IAC7B;IACA,KAAK,MAAMC,OAAO,IAAK,EAAE,CAAyBC,MAAM,CAACT,QAAQ,CAAC,EAAE;MAClEP,KAAK,CAACc,gBAAgB,CAACD,IAAI,CAAC,CAACP,SAAS,EAAE,IAAI,EAAES,OAAO,CAAC,CAAC;IACzD;EACF,CAAC,CAAC;AACJ;AAEO,SAASE,eAAeA,CAACjB,KAA0B,EAAQ;EAChE,IAAIA,KAAK,CAACY,WAAW,EAAE;IACrB,KAAK,MAAM,CAACN,SAAS,EAAEE,QAAQ,CAAC,IAAIR,KAAK,CAACY,WAAW,EAAE;MACrDZ,KAAK,CAACkB,mBAAmB,CAACZ,SAAS,EAAEE,QAAQ,CAAC;IAChD;IACAR,KAAK,CAACY,WAAW,CAACO,MAAM,GAAG,CAAC;EAC9B;AACF;AAEO,SAASC,gBAAgBA,CAC9BL,OAA0B,EACW;EACrC,OAAO,OAAQA,OAAO,CAA8BM,MAAM,KAAK,QAAQ;AACzE;AAEO,SAASC,oBAAoBA,CAClCP,OAA0B,EACU;EACpC,OAAO,OAAQA,OAAO,CAA6BQ,WAAW,KAAK,QAAQ;AAC7E;AAEO,SAASC,eAAeA,CAC7BT,OAA0B,EACU;EACpC,OAAO,CAAC,EACN,CAAEA,OAAO,CAA6BU,MAAM,IACzCV,OAAO,CAA6BW,SAAS,MAC9CX,OAAO,CAAoCY,MAAM,IAChDZ,OAAO,CAAqCa,UAAU,CAAC,CAC3D;AACH;AAEO,SAASC,sBAAsBA,CACpCd,OAAgC,EACW;EAC3C,OAAO,CAAC,CAAEA,OAAO,CAAoCY,MAAM;AAC7D;AAEO,SAASG,uBAAuBA,CACrCf,OAAgC,EACY;EAC5C,OAAO,CAAC,CAAEA,OAAO,CAAqCa,UAAU;AAClE;AAEO,SAASG,yBAAyBA,CACvChB,OAA0B,EACU;EACpC,OAAO,CAAC,CAAEA,OAAO,CAA6BiB,IAAI;AACpD;AAEO,SAASvB,eAAeA,CAC7BF,QAAiD,EACjDL,cAA8B,EAC9B+B,YAA4B,EAC5B;EACA,OAAO,UAAUC,KAAY,EAAQ;IACnC,KAAK,MAAMnB,OAAO,IAAK,EAAE,CAAyBC,MAAM,CAACT,QAAQ,CAAC,EAAE;MAClE,IAAI,CAAC,IAAA4B,gBAAO,EAACpB,OAAO,EAAE;QAAE,GAAGb,cAAc;QAAEgC;MAAM,CAAC,CAAC,EAAE;QACnD,IAAInB,OAAO,CAACqB,IAAI,EAAE;UAChB3B,eAAe,CAACM,OAAO,CAACqB,IAAI,EAAElC,cAAc,EAAE+B,YAAY,CAAC,CAACC,KAAK,CAAC;QACpE;QACA;MACF;MAEA,IAAIH,yBAAyB,CAAChB,OAAO,CAAC,EAAE;QACtCN,eAAe,CAACM,OAAO,CAACiB,IAAI,EAAE9B,cAAc,EAAE+B,YAAY,CAAC,CAACC,KAAK,CAAC;MACpE,CAAC,MAAM,IAAId,gBAAgB,CAACL,OAAO,CAAC,EAAE;QACpC,MAAM,CAACsB,MAAM,EAAEV,MAAM,CAAC,GAAGZ,OAAO,CAACM,MAAM,CAACiB,KAAK,CAAC,GAAG,CAAQ;QACzD,QAAQvB,OAAO,CAACM,MAAM;UACpB,KAAK,cAAc;UACnB,KAAK,iBAAiB;UACtB,KAAK,mBAAmB;UACxB,KAAK,sBAAsB;UAC3B,KAAK,oBAAoB;UACzB,KAAK,eAAe;UACpB,KAAK,gBAAgB;UACrB,KAAK,mBAAmB;UACxB,KAAK,gBAAgB;UACrB,KAAK,iBAAiB;YACpBkB,mBAAmB,CACjBL,KAAK,EACLP,MAAM,EACNZ,OAAO,CAACyB,IAAI,EACZzB,OAAO,CAAC0B,QAAQ,EAChBvC,cACF,CAAC;YACD;;UAEF;UACA;UACA;UACA;;UAEA,KAAK,aAAa;YAChBwC,sBAAsB,CAACR,KAAK,EAAEnB,OAAO,CAACyB,IAAI,EAAEtC,cAAc,CAAC;YAC3D;UAEF,KAAK,oBAAoB;YACvByC,6BAA6B,CAACT,KAAK,EAAEnB,OAAO,CAACyB,IAAI,EAAEtC,cAAc,CAAC;YAClE;UAEF,KAAK,iBAAiB;UACtB,KAAK,iBAAiB;YACpB0C,oBAAoB,CAACV,KAAK,EAAEP,MAAM,EAAEZ,OAAO,CAACyB,IAAI,EAAEtC,cAAc,CAAC;YACjE;UAEF,KAAK,sBAAsB;UAC3B,KAAK,yBAAyB;UAC9B,KAAK,wBAAwB;UAC7B,KAAK,2BAA2B;YAC9B2C,mBAAmB,CACjBX,KAAK,EACLG,MAAM,EACNV,MAAM,EACNZ,OAAO,CAACyB,IAAI,EACZtC,cACF,CAAC;YACD;UAEF,KAAK,sBAAsB;YACzBgC,KAAK,CAACY,cAAc,CAAC,CAAC;YACtB;UACF,KAAK,uBAAuB;YAC1BZ,KAAK,CAACa,eAAe,CAAC,CAAC;YACvB;UAEF,KAAK,aAAa;UAClB,KAAK,eAAe;UACpB,KAAK,cAAc;UACnB,KAAK,cAAc;YACjBC,mBAAmB,CAACd,KAAK,EAAEP,MAAM,EAAEZ,OAAO,CAACyB,IAAI,EAAEtC,cAAc,CAAC;YAChE;UAEF,KAAK,iBAAiB;UACtB,KAAK,eAAe;UACpB,KAAK,cAAc;UACnB,KAAK,cAAc;YACjB+C,mBAAmB,CAACf,KAAK,EAAEP,MAAM,EAAEZ,OAAO,CAACyB,IAAI,EAAEtC,cAAc,CAAC;YAChE;UAEF,KAAK,iBAAiB;YACpB,IAAAgD,gCAAe,EAAEhB,KAAK,CAAiBiB,MAAM,CAAC;YAC9C;UAEF,KAAK,gBAAgB;UACrB,KAAK,iBAAiB;UACtB,KAAK,iBAAiB;UACtB,KAAK,cAAc;YACjBC,mBAAmB,CACjBlB,KAAK,EACLP,MAAM,EACNZ,OAAO,CAACyB,IAAI,EACZzB,OAAO,CAACsC,KAAK,IAAI,IAAI,EACrBtC,OAAO,CAAC0B,QAAQ,EAChBvC,cACF,CAAC;YACD;UAEF,KAAK,cAAc;UACnB,KAAK,eAAe;UACpB,KAAK,YAAY;YACfoD,oBAAoB,CAClBpB,KAAK,EACLP,MAAM,EACNZ,OAAO,CAACyB,IAAI,EACZzB,OAAO,CAACsC,KAAK,IAAI,IAAI,EACrBtC,OAAO,CAAC0B,QAAQ,EAChBvC,cACF,CAAC;YACD;UAEF,KAAK,mBAAmB;YAAE;cACxB,MAAM,CAACqD,IAAI,EAAEC,IAAI,CAAC,GAAGC,WAAW,CAC9B1C,OAAO,CAACyB,IAAI,EACZtC,cAAc,EACdgC,KACF,CAA8B;cAC9B,MAAMwB,cAAc,GAAG,IAAAC,wBAAiB,EACtCzD,cAAc,EACda,OAAO,CAACM,MAAM,EACd,KAAKkC,IAAI,EACX,CAAC;cACDG,cAAc,CAACE,aAAa,CAAC,IAAIC,WAAW,CAACN,IAAI,EAAEC,IAAI,CAAC,CAAC;cACzD;YACF;UAEA,KAAK,kBAAkB;YACrBM,qBAAqB,CACnB5B,KAAK,EACLnB,OAAO,CAACyB,IAAI,EACZzB,OAAO,CAAC0B,QAAQ,EAChBvC,cACF,CAAC;YACD;UAEF,KAAK,mBAAmB;UACxB,KAAK,qBAAqB;YACxB6D,uBAAuB,CACrB7B,KAAK,EACLP,MAAM,EACNZ,OAAO,CAACyB,IAAI,EACZtC,cAAc,EACd+B,YAAY,EACZlB,OAAO,CAAC0B,QACV,CAAC;YACD;UAEF,KAAK,oBAAoB;UACzB,KAAK,qBAAqB;YACxB,IAAAuB,wBAAU,EACRjD,OAAO,CAACM,MAAM,KAAK,oBAAoB,GAAG,MAAM,GAAG,OACrD,CAAC;YACD;UACF,KAAK,gBAAgB;YAAE;cACrB,MAAM,CAAC4C,KAAK,CAAC,GAAGR,WAAW,CAAC1C,OAAO,CAACyB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;cAChE,IAAA8B,wBAAU,EAACC,KAAkB,CAAC;cAC9B;YACF;UACA,KAAK,uBAAuB;UAC5B,KAAK,qBAAqB;YACxB,IAAAC,uBAAS,EACPnD,OAAO,CAACM,MAAM,KAAK,uBAAuB,GACtC,WAAW,GACX,SACN,CAAC;YACD;;UAEF;UACA;;UAEA;;UAEA;;UAEA;YACE;YACA8C,OAAO,CAACC,KAAK,CAAC,gCAAgC,EAAErD,OAAO,CAACM,MAAM,CAAC;QACnE;MACF,CAAC,MAAM,IAAIC,oBAAoB,CAACP,OAAO,CAAC,EAAE;QACxCsD,uBAAuB,CAACnC,KAAK,EAAEnB,OAAO,EAAEb,cAAc,EAAE+B,YAAY,CAAC;MACvE,CAAC,MAAM,IAAIT,eAAe,CAACT,OAAO,CAAC,EAAE;QACnCuD,kBAAkB,CAACpC,KAAK,EAAEnB,OAAO,EAAEb,cAAc,EAAE+B,YAAa,CAAC;MACnE,CAAC,MAAM;QACL;QACAkC,OAAO,CAACC,KAAK,CAAC,wBAAwB,EAAErD,OAAO,CAAC;MAClD;IACF;EACF,CAAC;AACH;AAEA,SAASsD,uBAAuBA,CAC9BnC,KAAY,EACZnB,OAAgC,EAChCb,cAA8B,EAC9B+B,YAA4B,EAC5B;EACA,MAAMN,MAAM,GAAGZ,OAAO,CAACY,MAAM,KAAK,QAAQ,GAAG,SAAS,GAAG,QAAQ;EACjE4C,aAAa,CACXrC,KAAK,EACLnB,OAAO,CAACQ,WAAW,EACnBR,OAAO,EACPY,MAAM,EACNzB,cAAc,EACd+B,YACF,CAAC;AACH;AAEA,SAASqC,kBAAkBA,CACzBpC,KAAY,EACZnB,OAAgC,EAChCb,cAA8B,EAC9B+B,YAA2B,EAC3B;EACA,IAAIuC,OAAsB,GAAG,EAAE;EAC/B,MAAMC,SAAS,GAAG1D,OAAO,CAACU,MAAM;EAChC,MAAMiD,YAAY,GAAG3D,OAAO,CAACW,SAAS;EACtC,IAAIiD,cAAc,GAAGF,SAAS;EAC9B;EACA,IACE,OAAOA,SAAS,KAAK,QAAQ,GACzB,IAAAG,iBAAW,EAACH,SAAS,CAAC,GACtB,IAAAI,wBAAc,EAACJ,SAAS,CAAC,EAC7B;IACAE,cAAc,GAAG,IAAAG,kCAAgB,EAACL,SAAS,EAAE;MAAE,GAAGvE,cAAc;MAAEgC;IAAM,CAAC,CAAC;EAC5E;EACA,IAAI,OAAOyC,cAAc,KAAK,QAAQ,EAAE;IACtC,IAAIA,cAAc,KAAK,OAAO,EAAE;MAC9BH,OAAO,CAAC3D,IAAI,CAACoB,YAAY,CAACvB,OAAQ,CAAC;IACrC,CAAC,MAAM,IAAIK,OAAO,CAACgE,QAAQ,EAAE;MAC3BP,OAAO,GAAGQ,KAAK,CAACC,IAAI,CAACC,QAAQ,CAACC,gBAAgB,CAACR,cAAc,CAAC,CAAC;IACjE,CAAC,MAAM;MACL,MAAMS,KAAK,GAAGF,QAAQ,CAACG,aAAa,CAACV,cAAc,CAAgB;MACnE,IAAIS,KAAK,KAAK,IAAI,EAAE;QAClBZ,OAAO,CAAC3D,IAAI,CAACuE,KAAK,CAAC;MACrB;IACF;EACF,CAAC,MAAM,IAAIT,cAAc,EAAE;IACzB,IAAIA,cAAc,YAAYW,WAAW,EAAE;MACzCd,OAAO,CAAC3D,IAAI,CAAC8D,cAA6B,CAAC;IAC7C,CAAC,MAAM;MACL;MACAR,OAAO,CAACC,KAAK,CAAC,oBAAoB,EAAEO,cAAc,CAAC;IACrD;EACF,CAAC,MAAM,IAAID,YAAY,EAAE;IACvB,IAAIa,iBAAiB,GAAGb,YAAY;IACpC;IACA,IACE,OAAOA,YAAY,KAAK,QAAQ,GAC5B,IAAAE,iBAAW,EAACF,YAAY,CAAC,GACzB,IAAAG,wBAAc,EAACH,YAAY,CAAC,EAChC;MACAa,iBAAiB,GAAG,IAAAT,kCAAgB,EAACJ,YAAY,EAAE;QACjD,GAAGxE,cAAc;QACjBgC;MACF,CAAC,CAAsB;IACzB;IACA,MAAMsD,UAAU,GAAI,EAAE,CAAcxE,MAAM,CAACuE,iBAAiB,CAAC;IAC7D,MAAM7B,cAAc,GAAG,IAAAC,wBAAiB,EACtCzD,cAAc,EACd,WAAW,EACX,KAAKsF,UAAU,CAACC,IAAI,CAAC,IAAI,CAAC,EAC5B,CAAC;IACDjB,OAAO,CAAC3D,IAAI,CACV,GAAI2E,UAAU,CACXE,GAAG,CAAEC,GAAG;MAAA,IAAAC,qBAAA;MAAA,QAAAA,qBAAA,GAAKlC,cAAc,CAACmC,iBAAiB,cAAAD,qBAAA,uBAAhCA,qBAAA,CAAAE,IAAA,CAAApC,cAAc,EAAqBiC,GAAG,CAAC;IAAA,EAAC,CACrDI,MAAM,CAACC,OAAO,CACnB,CAAC;EACH;EACA,IAAIxB,OAAO,CAACrD,MAAM,KAAK,CAAC,EAAE;IACxB;IACAgD,OAAO,CAACC,KAAK,CAAC,mBAAmB,EAAEK,SAAS,IAAIC,YAAY,CAAC;IAC7D;EACF;EACA,IAAI7C,sBAAsB,CAACd,OAAO,CAAC,EAAE;IACnCyD,OAAO,CAACnE,OAAO,CAAEoB,MAAM,IAAK;MAC1B8C,aAAa,CACXrC,KAAK,EACLT,MAAM,EACNV,OAAO,EACPA,OAAO,CAACY,MAAM,EACdzB,cAAc,EACd+B,YAAY,EACZ;QACEgE,iBAAiB,EAAE;MACrB,CACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC,MAAM,IAAInE,uBAAuB,CAACf,OAAO,CAAC,EAAE;IAC3C,IAAAmF,4BAAa,EAAC1B,OAAO,EAAEzD,OAAO,CAACa,UAAU,EAAE;MACzC,GAAG1B,cAAc;MACjBgC;IACF,CAAC,CAAC;EACJ;AACF;AAEA,eAAeqC,aAAaA,CAC1BrC,KAAY,EACZiE,gBAAsC,EACtCpF,OAAiE,EACjEY,MAAc,EACdzB,cAA8B,EAC9B+B,YAA4B,EAC5BmE,OAA4B,EACb;EACf,MAAMC,UAAU,GAAG/E,oBAAoB,CAACP,OAAO,CAAC;EAEhD,MAAMuF,IAAI,GAAG,MAAAA,CAAA,KAA8B;IAAA,IAAAC,cAAA;IACzC,MAAMC,UAAU,GAAGH,UAAU,GACzB,MAAM,IAAAI,kCAAgB,EAACN,gBAA0B,CAAC,GACjDA,gBAAgC;IAErC,IAAI,OAAQK,UAAU,CAAS7E,MAAM,CAAC,KAAK,UAAU,EAAE;MACrD,MAAM,IAAI+E,KAAK,CACb,WAAWF,UAAU,CAACG,OAAO,CAACC,WAAW,CAAC,CAAC,oBAAoBjF,MAAM,EACvE,CAAC;IACH;IAEA,IAAIkF,YAAY,GAAGpD,WAAW,CAC5B1C,OAAO,CAACyB,IAAI,EACZtC,cAAc,EACdgC,KAAK,EACLkE,OACF,CAAC;IACD,IACE9E,oBAAoB,CAACP,OAAO,CAAC,IAC7B+F,cAAK,aAALA,cAAK,gBAAAP,cAAA,GAALO,cAAK,CAAEC,OAAO,cAAAR,cAAA,eAAdA,cAAA,CAAgBS,iBAAiB,CAACjG,OAAO,CAACQ,WAAW,CAAC,EACtD;MAAA,IAAA0F,YAAA;MACAJ,YAAY,GAAG,MAAMC,cAAK,CAACC,OAAO,CAACG,gBAAgB,CACjDnG,OAAO,CAACQ,WAAW,EACnBsF,YAAY,EACZlF,MAAM,GAAAsF,YAAA,GACNlG,OAAO,CAACoG,GAAG,cAAAF,YAAA,uBAAXA,YAAA,CAAaG,MACf,CAAC;IACH;IACA,OAAQZ,UAAU,CAAS7E,MAAM,CAAC,CAAC,GAAGkF,YAAY,CAAC;EACrD,CAAC;EAED,IAAI,CAAC9F,OAAO,CAAC0B,QAAQ,EAAE;IACrB6D,IAAI,CAAC,CAAC;IACN;EACF;EAEA,MAAMe,eAAe,GAAGC,oBAAoB,CAC1CvG,OAAO,CAAC0B,QAAQ,EAChBvC,cAAc,EACd+B,YACF,CAAC;EAED,MAAMsF,gBAA4C,GAAG;IACnDC,QAAQ,EAAEH,eAAe,CAAC,UAAU,CAAC;IACrCI,OAAO,EAAEJ,eAAe,CAAC,SAAS,CAAC;IACnCjD,KAAK,EAAEiD,eAAe,CAAC,OAAO,CAAC;IAC/BK,OAAO,EAAEL,eAAe,CAAC,SAAS;EACpC,CAAC;EAED,IAAIhB,UAAU,EAAE;IAAA,IAAAsB,aAAA,EAAAC,aAAA;IACd,MAAMC,kBAAkB,GAAG;MACzB,GAAG3H,cAAc;MACjBgC;IACF,CAAC;IAED,MAAM4F,SAAS,GAAG,IAAAhD,kCAAgB,GAAA6C,aAAA,GAChC5G,OAAO,CAACoG,GAAG,cAAAQ,aAAA,uBAAXA,aAAA,CAAaP,MAAM,EACnBS,kBACF,CAAwB;IAExB,IAAIC,SAAS,EAAE;MACb,IAAAC,mBAAc,EACZzB,IAAI,EACJiB,gBACF,CAAC;MACD;IACF;IAEA,MAAMS,WAAW,GAAG,IAAAlD,kCAAgB,GAAA8C,aAAA,GAClC7G,OAAO,CAACkH,IAAI,cAAAL,aAAA,uBAAZA,aAAA,CAAcM,OAAO,EACrBL,kBACF,CAAwB;IAExB,IAAIG,WAAW,EAAE;MACf,IAAAG,eAAS,EACP7B,IAAI,EACJiB,gBAAgB,EAChBxG,OAAO,CAACkH,IAAI,EACZJ,kBACF,CAAC;MAED;IACF;EACF;EAEA,IAAI;IACF;IACA,MAAMO,MAAM,GAAG,MAAM9B,IAAI,CAAC,CAAC;IAC3BiB,gBAAgB,CAACE,OAAO,CAACW,MAAM,CAAC;EAClC,CAAC,CAAC,OAAOC,GAAG,EAAE;IACZd,gBAAgB,CAACnD,KAAK,CAACiE,GAAG,CAAC;EAC7B,CAAC,SAAS;IACRd,gBAAgB,CAAC,SAAS,CAAC,CAAC,CAAC;EAC/B;AACF;AAEA,SAAShF,mBAAmBA,CAC1BL,KAAY,EACZP,MAUa,EACba,IAA2B,EAC3BC,QAA+C,EAC/CvC,cAA8B,EAC9B;EACA,IAAIoI,cAAc,GAAG,CAAC;EACtB,IAAIC,WAAW,GAAG,KAAK;EACvB,IAAIC,cAAc,GAAG7G,MAA2B;EAChD,QAAQA,MAAM;IACZ,KAAK,MAAM;IACX,KAAK,SAAS;IACd,KAAK,WAAW;IAChB,KAAK,cAAc;IACnB,KAAK,YAAY;MACf2G,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,IAAI3B,YAAuB,GAAG,EAAE;EAChC,IAAIyB,cAAc,GAAG,CAAC,EAAE;IACtBzB,YAAY,GAAGpD,WAAW,CAACjB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,EAAE;MACtDuG,uBAAuB,EAAE;IAC3B,CAAC,CAAC;IACF5B,YAAY,CAAC1F,MAAM,GAAGmH,cAAc;EACtC;EACA,IAAIC,WAAW,IAAI9F,QAAQ,EAAE;IAC3B,MAAM4E,eAAe,GAAGC,oBAAoB,CAC1C7E,QAAQ,EACRvC,cAAc,EACdwI,SACF,CAAC;IACD7B,YAAY,CAAChG,IAAI,CAAE8H,OAAgB,IAAK;MACtCtB,eAAe,CAACsB,OAAO,GAAG,OAAO,GAAG,SAAS,CAAC,CAAC;QAAEA;MAAQ,CAAC,CAAC;MAC3DtB,eAAe,CAAC,SAAS,CAAC,CAAC;QAAEsB;MAAQ,CAAC,CAAC;IACzC,CAAC,CAAC;EACJ;EACC,IAAAC,mBAAU,EAAC,CAAC,CAACJ,cAAc,CAAC,CAC3B,GAAG3B,YACL,CAAC;AACH;AAEA,SAASnE,sBAAsBA,CAC7BR,KAAY,EACZM,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,MAAM,CAAC2I,GAAG,EAAEpH,MAAM,EAAEqH,QAAQ,CAAC,GAAGrF,WAAW,CAACjB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAItE;EACD6G,MAAM,CAACC,IAAI,CAACH,GAAG,EAAEpH,MAAM,IAAI,OAAO,EAAEqH,QAAQ,CAAC;AAC/C;AAEA,SAASnG,6BAA6BA,CACpCT,KAAY,EACZM,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,MAAM2G,YAAY,GAAGpD,WAAW,CAACjB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAE3D;EACD,IAAI2E,YAAY,CAAC1F,MAAM,KAAK,CAAC,EAAE;IAC7B;IACA0F,YAAY,CAAChG,IAAI,CAACoI,QAAQ,CAACC,MAAM,CAAC;EACpC;EACAH,MAAM,CAACI,WAAW,CAAC,GAAGtC,YAAY,CAAC;AACrC;AAEA,SAASuC,WAAWA,CAClB5G,IAAe,EACfa,KAAc,EACd1B,MAA4B,EAC5B0H,KAAiC,EACjCnJ,cAA8B,EAC9BgC,KAA0B,EACpB;EACN,IAAImB,KAAK,EAAE;IACTgG,KAAK,CAACC,YAAY,CAChB9G,IAAI,EACJb,MAAM,EACL4H,GAAc,IAAK;MAClB,OAAO9F,WAAW,CAChB8F,GAAG,EACHrJ,cAAc,EACdgC,KACF,CAAC,CAAC,CAAC,CAAC;IACN,CACF,CAAC;EACH,CAAC,MAAM;IACLM,IAAI,CAACnC,OAAO,CAAEkJ,GAAG,IAAK;MACpB,MAAM;QAAEC,IAAI;QAAEC;MAAM,CAAC,GAAGhG,WAAW,CACjC,CAAC8F,GAAG,CAAC,EACLrJ,cAAc,EACdgC,KACF,CAAC,CAAC,CAAC,CAA2B;MAC9BmH,KAAK,CAACK,WAAW,CAACF,IAAI,EAAEC,KAAK,EAAE9H,MAAM,CAAC;IACxC,CAAC,CAAC;EACJ;AACF;AAEA,SAASyB,mBAAmBA,CAC1BlB,KAAY,EACZP,MAA4B,EAC5Ba,IAA2B,EAC3Ba,KAAc,EACdZ,QAA+C,EAC/CvC,cAA8B,EAC9B;EACA,MAAMyJ,OAAO,GAAG3E,KAAK,CAAC4E,OAAO,CAACpH,IAAI,CAAC,IAAIA,IAAI,CAACqH,KAAK,CAACC,iBAAQ,CAAC;EAC3D,IAAIH,OAAO,KAAKhI,MAAM,KAAK,QAAQ,IAAIA,MAAM,KAAK,SAAS,CAAC,EAAE;IAC5DyH,WAAW,CACT5G,IAAI,EACJa,KAAK,EACL1B,MAAM,EACNzB,cAAc,CAAC6J,QAAQ,EACvB7J,cAAc,EACdgC,KACF,CAAC;EACH,CAAC,MAAM;IACL,MAAM,CAACsH,IAAI,EAAEC,KAAK,CAAC,GAAGhG,WAAW,CAACjB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;IAC9DhC,cAAc,CAAC6J,QAAQ,CAACL,WAAW,CACjCF,IAAI,EACJC,KAAK,EACL9H,MAAM,EACNc,QAAQ,EACRvC,cACF,CAAC;EACH;AACF;AAEA,SAASoD,oBAAoBA,CAC3BpB,KAAY,EACZP,MAAqC,EACrCa,IAA2B,EAC3Ba,KAAc,EACdZ,QAA+C,EAC/CvC,cAA8B,EAC9B;EACA,MAAMyJ,OAAO,GAAG3E,KAAK,CAAC4E,OAAO,CAACpH,IAAI,CAAC,IAAIA,IAAI,CAACqH,KAAK,CAACC,iBAAQ,CAAC;EAC3D,IAAIH,OAAO,IAAIhI,MAAM,KAAK,QAAQ,EAAE;IAClC,MAAMqI,aAAa,GAAG,IAAAC,uBAAgB,EACpC/J,cAAc,EACd,SAASyB,MAAM,EAAE,EACjB,KAAKuI,IAAI,CAACC,SAAS,CAAC3H,IAAI,CAAC,EAC3B,CAAC;IACD4G,WAAW,CAAC5G,IAAI,EAAEa,KAAK,EAAE,SAAS,EAAE2G,aAAa,EAAE9J,cAAc,EAAEgC,KAAK,CAAC;EAC3E,CAAC,MAAM;IACL,MAAM,CAACsH,IAAI,EAAEC,KAAK,CAAC,GAAGhG,WAAW,CAACjB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;IAC9D,MAAM8H,aAAa,GAAG,IAAAC,uBAAgB,EACpC/J,cAAc,EACd,SAASyB,MAAM,EAAE,EACjB,KAAK6H,IAAI,EACX,CAAC;IACDQ,aAAa,CAACN,WAAW,CACvBF,IAAI,EACJC,KAAK,EACL9H,MAAM,KAAK,QAAQ,GAAG,SAAS,GAAGA,MAAM,EACxCc,QAAQ,EACRvC,cACF,CAAC;EACH;AACF;AAEA,SAAS4D,qBAAqBA,CAC5B5B,KAAY,EACZM,IAA2B,EAC3BC,QAA+C,EAC/CvC,cAA8B,EAC9B;EACA,MAAM,CAACsJ,IAAI,EAAEC,KAAK,CAAC,GAAGhG,WAAW,CAACjB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;EAC9D,MAAMkI,cAAc,GAAG,IAAAC,yBAAiB,EACtCnK,cAAc,EACd,kBAAkB,EAClB,KAAKsJ,IAAI,EACX,CAAC;EACDY,cAAc,CAACV,WAAW,CACxBF,IAAI,EACJC,KAAK,EACL,SAAS,EACThH,QAAQ,EACRvC,cACF,CAAC;AACH;AAEA,SAAS0C,oBAAoBA,CAC3BV,KAAY,EACZP,MAA2B,EAC3Ba,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,IAAIyB,MAAM,KAAK,QAAQ,EAAE;IACvB,MAAM,CAACkH,GAAG,CAAC,GAAGpF,WAAW,CAACjB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAa;IAClE+G,QAAQ,CAACqB,MAAM,CAACzB,GAAG,CAAC;EACtB,CAAC,MAAM;IACLI,QAAQ,CAACtH,MAAM,CAAC,CAAC,CAAC;EACpB;AACF;AAEA,SAASkB,mBAAmBA,CAC1BX,KAAY,EACZG,MAAyC,EACzCV,MAAgC,EAChCa,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,MAAMqK,OAAO,GAAGlI,MAAM,KAAK,cAAc,GAAGmI,YAAY,GAAGC,cAAc;EACzE,MAAM,CAACjB,IAAI,EAAEC,KAAK,CAAC,GAAGhG,WAAW,CAACjB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;EAC9D,IAAIP,MAAM,KAAK,SAAS,EAAE;IACxB,IAAI8H,KAAK,KAAKf,SAAS,EAAE;MACvB6B,OAAO,CAACG,OAAO,CAAClB,IAAI,EAAYU,IAAI,CAACC,SAAS,CAACV,KAAK,CAAC,CAAC;IACxD;EACF,CAAC,MAAM;IACLc,OAAO,CAACI,UAAU,CAACnB,IAAc,CAAC;EACpC;AACF;AAEA,SAASxG,mBAAmBA,CAC1Bd,KAAY,EACZP,MAAyC,EACzCa,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA;EACAiE,OAAO,CAACxC,MAAM,CAAC,CACb,GAAG8B,WAAW,CAACjB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,EAAE;IAC1C+D,iBAAiB,EAAE;EACrB,CAAC,CACH,CAAC;AACH;AAEA,SAAShD,mBAAmBA,CAC1Bf,KAAY,EACZP,MAA6C,EAC7Ca,IAA2B,EAC3BtC,cAA8B,EAC9B;EACA,MAAM2G,YAAY,GAAGpD,WAAW,CAACjB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,EAAE;IAC5D+D,iBAAiB,EAAE;EACrB,CAAC,CAAC;EACF2E,0BAAY,CAACC,IAAI,CAAC;IAChBtH,IAAI,EAAE5B,MAAM;IACZmJ,OAAO,EAAEjE,YAAY,CAAC,CAAC;EACzB,CAAC,CAAC;AACJ;AAEA,eAAe9C,uBAAuBA,CACpC7B,KAAY,EACZP,MAAmC,EACnCa,IAA2B,EAC3BtC,cAA8B,EAC9B+B,YAA4B,EAC5BQ,QAAoC,EACpC;EACA,MAAM6D,IAAI,GAAGA,CAAA,KAAM;IAAA,IAAAyE,qBAAA;IACjB,MAAMlE,YAAY,GAAGpD,WAAW,CAACjB,IAAI,EAAEtC,cAAc,EAAEgC,KAAK,CAAC;IAC7D,OAAO4E,cAAK,aAALA,cAAK,gBAAAiE,qBAAA,GAALjE,cAAK,CAAEkE,iBAAiB,cAAAD,qBAAA,uBAAxBA,qBAAA,CAA2BpJ,MAAM,CAAC,CAAC,GAAGkF,YAAY,CAAC;EAC5D,CAAC;EACD,IAAI,CAACpE,QAAQ,EAAE;IACb6D,IAAI,CAAC,CAAC;IACN;EACF;EACA,MAAMe,eAAe,GAAGC,oBAAoB,CAC1C7E,QAAQ,EACRvC,cAAc,EACd+B,YACF,CAAC;EACD,IAAI;IACF,MAAMmG,MAAM,GAAG,MAAM9B,IAAI,CAAC,CAAC;IAC3Be,eAAe,CAAC,SAAS,CAAC,CAACe,MAAM,CAAC;EACpC,CAAC,CAAC,OAAOhE,KAAK,EAAE;IACdiD,eAAe,CAAC,OAAO,CAAC,CAACjD,KAAK,CAAC;EACjC,CAAC,SAAS;IACRiD,eAAe,CAAC,SAAS,CAAC,CAAC,CAAC;EAC9B;AACF;AAEO,SAASC,oBAAoBA,CAClC7E,QAAmC,EACnCvC,cAA8B,EAC9B+B,YAA4B,EAC5B;EACA,OAAO,SAASoF,eAAeA,CAC7B9D,IAAkD,EAClD;IACA,OAAO,UAAU6E,MAAgB,EAAE;MACjC,MAAM7H,QAAQ,GAAGkC,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAGc,IAAI,CAAC;MACjC,IAAIhD,QAAQ,EAAE;QACZ,IAAI;UACF,MAAM2B,KAAK,GAAG,IAAI2B,WAAW,CAAC,YAAYN,IAAI,EAAE,EAAE;YAChDJ,MAAM,EAAEiF;UACV,CAAC,CAAC;UACF3H,eAAe,CAACF,QAAQ,EAAEL,cAAc,EAAE+B,YAAY,CAAC,CAACC,KAAK,CAAC;QAChE,CAAC,CAAC,OAAOmG,GAAG,EAAE;UACZ;UACA;UACA;UACAlE,OAAO,CAACC,KAAK,CAACiE,GAAG,CAAC;QACpB;MACF,CAAC,MAAM,IAAI9E,IAAI,KAAK,OAAO,EAAE;QAC3B;QACAY,OAAO,CAACC,KAAK,CAAC,2BAA2B,EAAEgE,MAAM,CAAC;MACpD;IACF,CAAC;EACH,CAAC;AACH;AAOA,SAAS3E,WAAWA,CAClBjB,IAA2B,EAC3BtC,cAA8B,EAC9BgC,KAAY,EACZkE,OAA2B,GAAG,CAAC,CAAC,EACrB;EACX,OAAOpB,KAAK,CAAC4E,OAAO,CAACpH,IAAI,CAAC,GACrB,IAAAsC,kCAAgB,EAACtC,IAAI,EAAE;IACtB,GAAGtC,cAAc;IACjBgC;EACF,CAAC,CAAC,GACFkE,OAAO,CAACH,iBAAiB,GACvB,CAAC/D,KAAK,CAAC,GACPkE,OAAO,CAACqC,uBAAuB,GAC7B,CAAEvG,KAAK,CAAiBiB,MAAM,CAAC,GAC/B,EAAE;AACZ","ignoreList":[]}
@@ -33,8 +33,7 @@ import { setWatermark } from "../setWatermark.js";
33
33
  import { clearMatchedRoutes } from "./routeMatchedMap.js";
34
34
  var _storyboards = /*#__PURE__*/new WeakMap();
35
35
  var _rendering = /*#__PURE__*/new WeakMap();
36
- var _prevLocation = /*#__PURE__*/new WeakMap();
37
- var _nextLocation = /*#__PURE__*/new WeakMap();
36
+ var _nextRender = /*#__PURE__*/new WeakMap();
38
37
  var _runtimeContext = /*#__PURE__*/new WeakMap();
39
38
  var _rendererContext = /*#__PURE__*/new WeakMap();
40
39
  var _rendererContextTrashCan = /*#__PURE__*/new WeakMap();
@@ -49,8 +48,7 @@ export class Router {
49
48
  _classPrivateMethodInitSpec(this, _Router_brand);
50
49
  _classPrivateFieldInitSpec(this, _storyboards, void 0);
51
50
  _classPrivateFieldInitSpec(this, _rendering, false);
52
- _classPrivateFieldInitSpec(this, _prevLocation, void 0);
53
- _classPrivateFieldInitSpec(this, _nextLocation, void 0);
51
+ _classPrivateFieldInitSpec(this, _nextRender, void 0);
54
52
  _classPrivateFieldInitSpec(this, _runtimeContext, void 0);
55
53
  _classPrivateFieldInitSpec(this, _rendererContext, void 0);
56
54
  _classPrivateFieldInitSpec(this, _rendererContextTrashCan, new Set());
@@ -98,80 +96,34 @@ export class Router {
98
96
  bootstrap() {
99
97
  initAbortController();
100
98
  const history = getHistory();
101
- _classPrivateFieldSet(_prevLocation, this, history.location);
102
- let renderId = 0;
103
- history.listen(async (location, action) => {
104
- var _classPrivateFieldGet2, _location$state, _location$state2, _classPrivateFieldGet4;
105
- const currentRenderId = ++renderId;
106
- let ignoreRendering;
107
- const omittedLocationProps = {
108
- hash: undefined,
109
- state: undefined
110
- };
111
- // Omit the "key" when checking whether locations are equal in certain situations.
112
- if (
113
- // When current location is triggered by browser action of hash link.
114
- location.key === undefined ||
115
- // When current location is triggered by browser action of non-push-or-replace,
116
- // such as goBack or goForward,
117
- action === "POP" && (
118
- // and the previous location was triggered by hash link,
119
- _classPrivateFieldGet(_prevLocation, this).key === undefined ||
120
- // or the previous location specified notify false.
121
- ((_classPrivateFieldGet2 = _classPrivateFieldGet(_prevLocation, this).state) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.notify) === false)) {
122
- omittedLocationProps.key = undefined;
123
- }
124
- if (locationsAreEqual({
125
- ..._classPrivateFieldGet(_prevLocation, this),
126
- ...omittedLocationProps
127
- }, {
128
- ...location,
129
- ...omittedLocationProps
130
- }) || action !== "POP" && ((_location$state = location.state) === null || _location$state === void 0 ? void 0 : _location$state.notify) === false) {
131
- // Ignore rendering if location not changed except hash, state and optional key.
132
- // Ignore rendering if notify is `false`.
133
- ignoreRendering = true;
134
- }
135
- if (!ignoreRendering && !((_location$state2 = location.state) !== null && _location$state2 !== void 0 && _location$state2.noIncremental)) {
136
- var _classPrivateFieldGet3;
137
- ignoreRendering = await ((_classPrivateFieldGet3 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.didPerformIncrementalRender(location, _classPrivateFieldGet(_prevLocation, this)));
138
- }
139
-
140
- // Ignore stale renders
141
- if (renderId !== currentRenderId) {
142
- return;
143
- }
144
- if (ignoreRendering) {
145
- _classPrivateFieldSet(_prevLocation, this, location);
146
- return;
147
- }
148
- abortPendingRequest();
149
- _classPrivateFieldSet(_prevLocation, this, location);
150
- (_classPrivateFieldGet4 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.dispatchPageLeave();
151
- if (action === "POP") {
152
- const storyboard = matchStoryboard(_classPrivateFieldGet(_storyboards, this), location.pathname);
153
- // When a browser action of goBack or goForward is performing,
154
- // force reload when the target page is a page of an outside app.
155
- if (isOutsideApp(storyboard)) {
156
- window.location.reload();
157
- return;
158
- }
159
- }
99
+ let nextPrevLocation = history.location;
100
+ history.listen((location, action) => {
101
+ const prevLocation = nextPrevLocation;
102
+ nextPrevLocation = location;
160
103
  if (_classPrivateFieldGet(_rendering, this)) {
161
- _classPrivateFieldSet(_nextLocation, this, location);
104
+ _classPrivateFieldSet(_nextRender, this, {
105
+ location,
106
+ prevLocation,
107
+ action
108
+ });
162
109
  } else {
163
- devtoolsHookEmit("locationChange");
164
- _assertClassBrand(_Router_brand, this, _queuedRender).call(this, location).catch(handleHttpError);
110
+ _assertClassBrand(_Router_brand, this, _queuedRender).call(this, {
111
+ location,
112
+ prevLocation,
113
+ action
114
+ }).catch(handleHttpError);
165
115
  }
166
116
  });
167
- return _assertClassBrand(_Router_brand, this, _queuedRender).call(this, history.location);
117
+ return _assertClassBrand(_Router_brand, this, _queuedRender).call(this, {
118
+ location: history.location
119
+ });
168
120
  }
169
121
  }
170
122
  function _getBlockMessageBeforePageLave(detail) {
171
- var _classPrivateFieldGet5;
123
+ var _classPrivateFieldGet2;
172
124
  const history = getHistory();
173
125
  const previousMessage = history.getBlockMessage();
174
- (_classPrivateFieldGet5 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet5 === void 0 || _classPrivateFieldGet5.dispatchBeforePageLeave(detail);
126
+ (_classPrivateFieldGet2 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet2 === void 0 || _classPrivateFieldGet2.dispatchBeforePageLeave(detail);
175
127
  const message = history.getBlockMessage();
176
128
  if (!previousMessage && message) {
177
129
  // Auto unblock only if new block was introduced by `onBeforePageLeave`.
@@ -194,21 +146,80 @@ function _safeRedirect(to, state, from) {
194
146
  }
195
147
  getHistory().replace(to, state);
196
148
  }
197
- async function _queuedRender(location) {
149
+ async function _queuedRender(next) {
198
150
  _classPrivateFieldSet(_rendering, this, true);
199
151
  try {
200
- await _assertClassBrand(_Router_brand, this, _render).call(this, location);
152
+ await _assertClassBrand(_Router_brand, this, _preRender).call(this, next);
201
153
  } finally {
202
154
  _classPrivateFieldSet(_rendering, this, false);
203
- if (_classPrivateFieldGet(_nextLocation, this)) {
204
- const nextLocation = _classPrivateFieldGet(_nextLocation, this);
205
- _classPrivateFieldSet(_nextLocation, this, undefined);
206
- await _assertClassBrand(_Router_brand, this, _queuedRender).call(this, nextLocation);
155
+ if (_classPrivateFieldGet(_nextRender, this)) {
156
+ const nextRender = _classPrivateFieldGet(_nextRender, this);
157
+ _classPrivateFieldSet(_nextRender, this, undefined);
158
+ await _assertClassBrand(_Router_brand, this, _queuedRender).call(this, nextRender);
159
+ }
160
+ }
161
+ }
162
+ async function _preRender(_ref) {
163
+ let {
164
+ location,
165
+ prevLocation,
166
+ action
167
+ } = _ref;
168
+ if (prevLocation) {
169
+ var _prevLocation$state, _location$state, _location$state2, _classPrivateFieldGet4;
170
+ let ignoreRendering;
171
+ const omittedLocationProps = {
172
+ hash: undefined,
173
+ state: undefined
174
+ };
175
+ // Omit the "key" when checking whether locations are equal in certain situations.
176
+ if (
177
+ // When current location is triggered by browser action of hash link.
178
+ location.key === undefined ||
179
+ // When current location is triggered by browser action of non-push-or-replace,
180
+ // such as goBack or goForward,
181
+ action === "POP" && (
182
+ // and the previous location was triggered by hash link,
183
+ prevLocation.key === undefined ||
184
+ // or the previous location specified notify false.
185
+ ((_prevLocation$state = prevLocation.state) === null || _prevLocation$state === void 0 ? void 0 : _prevLocation$state.notify) === false)) {
186
+ omittedLocationProps.key = undefined;
187
+ }
188
+ if (locationsAreEqual({
189
+ ...prevLocation,
190
+ ...omittedLocationProps
191
+ }, {
192
+ ...location,
193
+ ...omittedLocationProps
194
+ }) || action !== "POP" && ((_location$state = location.state) === null || _location$state === void 0 ? void 0 : _location$state.notify) === false) {
195
+ // Ignore rendering if location not changed except hash, state and optional key.
196
+ // Ignore rendering if notify is `false`.
197
+ ignoreRendering = true;
198
+ }
199
+ if (!ignoreRendering && !((_location$state2 = location.state) !== null && _location$state2 !== void 0 && _location$state2.noIncremental)) {
200
+ var _classPrivateFieldGet3;
201
+ ignoreRendering = await ((_classPrivateFieldGet3 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.didPerformIncrementalRender(location, prevLocation));
202
+ }
203
+ if (ignoreRendering) {
204
+ return;
205
+ }
206
+ abortPendingRequest();
207
+ (_classPrivateFieldGet4 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.dispatchPageLeave();
208
+ if (action === "POP") {
209
+ const storyboard = matchStoryboard(_classPrivateFieldGet(_storyboards, this), location.pathname);
210
+ // When a browser action of goBack or goForward is performing,
211
+ // force reload when the target page is a page of an outside app.
212
+ if (isOutsideApp(storyboard)) {
213
+ window.location.reload();
214
+ return;
215
+ }
207
216
  }
217
+ devtoolsHookEmit("locationChange");
208
218
  }
219
+ return _assertClassBrand(_Router_brand, this, _render).call(this, location);
209
220
  }
210
221
  async function _render(location) {
211
- var _hooks$flowApi, _hooks$pageView, _classPrivateFieldGet6, _storyboard$app;
222
+ var _hooks$flowApi, _hooks$pageView, _classPrivateFieldGet5, _storyboard$app;
212
223
  const renderId = _classPrivateFieldSet(_renderId, this, uniqueId("render-id-"));
213
224
  resetAllComputedMarks();
214
225
  clearResolveCache();
@@ -219,7 +230,7 @@ async function _render(location) {
219
230
  // const renderStartTime = performance.now();
220
231
  const finishPageView = hooks === null || hooks === void 0 || (_hooks$pageView = hooks.pageView) === null || _hooks$pageView === void 0 ? void 0 : _hooks$pageView.create();
221
232
  const storyboard = matchStoryboard(_classPrivateFieldGet(_storyboards, this), location.pathname);
222
- const previousApp = (_classPrivateFieldGet6 = _classPrivateFieldGet(_runtimeContext, this)) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.app;
233
+ const previousApp = (_classPrivateFieldGet5 = _classPrivateFieldGet(_runtimeContext, this)) === null || _classPrivateFieldGet5 === void 0 ? void 0 : _classPrivateFieldGet5.app;
223
234
  const currentAppId = storyboard === null || storyboard === void 0 || (_storyboard$app = storyboard.app) === null || _storyboard$app === void 0 ? void 0 : _storyboard$app.id;
224
235
  // dynamically change the value of the APP variable, if it's union app
225
236
  if (window.BOOTSTRAP_UNION_FILE && currentAppId && currentAppId !== (previousApp === null || previousApp === void 0 ? void 0 : previousApp.id)) {