@next-core/runtime 1.31.1 → 1.31.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.
@@ -1 +1 @@
1
- {"version":3,"file":"RendererContext.js","names":["isEmpty","remove","listenerFactory","getHistory","getReadOnlyProxy","mediaEventTarget","mountTree","RenderTag","unbindTemplateProxy","hooks","commonLifeCycles","pageOnlyLifeCycles","_routeHelper","WeakMap","_memoizedLifeCycle","_observers","_mediaListener","_arbitraryLifeCycle","_memoized","_allMenuRequests","_memoizedMenuRequestMap","_locationChangeCallbacks","_unmountBricks","WeakSet","_initializeRerenderBricks","_dispatchGeneralLifeCycle","_addObserver","RendererContext","constructor","scope","options","_options$unknownBrick","_classPrivateMethodInitSpec","_defineProperty","_classPrivateFieldInitSpec","writable","value","onBeforePageLoad","onPageLoad","onPageLeave","onBeforePageLeave","onAnchorLoad","onAnchorUnload","onMediaChange","onScrollIntoView","onMount","onUnmount","onMessage","onMessageClose","Map","unknownBricks","_classPrivateFieldSet","routeHelper","renderId","setInitialMenuRequests","menuRequests","memoizeMenuRequests","route","_classPrivateFieldGet","set","reMergeMenuRequests","routes","currentRoute","_this","_asyncToGenerator","previousMenuRequest","previousRoute","_classPrivateFieldGet2","get","mergedMenuRequests","previousIndex","indexOf","length","push","splice","_classPrivateFieldGet3","delete","mergeMenus","reBailout","output","bailout","reCatch","error","returnNode","catch","didPerformIncrementalRender","location","prevLocation","_this2","i","callback","performIncrementalRender","registerBrickLifeCycle","brick","lifeCycle","lifeCycleTypes","key","handlers","useResolves","console","registerArbitraryLifeCycle","fn","arbitraryCallbacks","add","Set","memoize","slotId","keyPath","node","memKey","join","mem","last","getLastNode","lastNormal","getLastNormalNode","lastPortal","getLastPortalNode","reRender","memoized","prevNode","prevLast","prevLastNormal","prevLastPortal","insertBeforeChild","insertPortalBeforeChildCandidates","tag","PLACEHOLDER","_getNextNormalNode$el","_getNextNormalNode","_getNextPortalNode","getNextNormalNode","element","nextSibling","getNextPortalNode","_prevLastNormal$eleme","_prevLastNormal$eleme2","_prevLastPortal$eleme","HTMLElement","tagName","prevSibling","current","child","sibling","fragment","document","createDocumentFragment","portalFragment","renderRoot","ROOT","container","createPortal","return","removeBricks","getBrickRange","_classPrivateMethodGet","_unmountBricks2","call","_returnNode$container","insertBefore","_returnNode$element","childNodes","_root","root","Error","portal","insertPortalBeforeChild","candidate","contains","newBricks","_initializeRerenderBricks2","dispose","list","Object","values","observer","disconnect","clear","removeEventListener","undefined","dispatchBeforePageLoad","_dispatchGeneralLifeCycle2","CustomEvent","dispatchPageLoad","event","window","dispatchEvent","dispatchBeforePageLeave","detail","dispatchPageLeave","dispatchAnchorLoad","hash","anchor","substring","initializeScrollIntoView","conf","_addObserver2","initializeMediaChange","addEventListener","initializeMessageDispatcher","_hooks$messageDispatc","_loop","_loop2","_hooks$messageDispatc2","messageDispatcher","channel","runtimeContext","concat","confList","onClose","dispatchOnMount","dispatchOnUnmount","bricks","unmountList","removed","item","has","_brick$element","_brick$element2","observers","$$tplStateStore","unmountEvent","mountEvent","type","process","env","NODE_ENV","includes","_conf$threshold","threshold","IntersectionObserver","entries","forEach","entry","isIntersecting","intersectionRatio","observe","_last","getSpecifiedNormalNode","next","BRICK","getSpecifiedPortalNode","_currentReturn","currentReturn","from","to","range","_currentReturn2"],"sources":["../../../src/internal/RendererContext.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickLifeCycle,\n MessageConf,\n RouteConf,\n ScrollIntoViewConf,\n StaticMenuConf,\n} from \"@next-core/types\";\nimport type { Action, Location } from \"history\";\nimport { isEmpty, remove } from \"lodash\";\nimport { listenerFactory } from \"./bindListeners.js\";\nimport { NextHistoryState, NextLocation, getHistory } from \"../history.js\";\nimport { getReadOnlyProxy } from \"./proxyFactories.js\";\nimport { Media, mediaEventTarget } from \"./mediaQuery.js\";\nimport type {\n RenderBrick,\n RenderChildNode,\n RenderNode,\n RenderReturnNode,\n RenderRoot,\n} from \"./interfaces.js\";\nimport { mountTree } from \"./mount.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { unbindTemplateProxy } from \"./CustomTemplates/bindTemplateProxy.js\";\nimport { hooks } from \"./Runtime.js\";\nimport type { RenderOutput } from \"./Renderer.js\";\n\ntype MemoizedLifeCycle<T> = {\n [Key in keyof T]: {\n brick: RenderBrick;\n handlers: T[Key];\n }[];\n};\n\ntype LocationChangeCallback = (\n location: Location<NextHistoryState>,\n prevLocation: Location<NextHistoryState>\n) => Promise<boolean>;\n\nconst commonLifeCycles = [\n \"onMount\",\n \"onUnmount\",\n \"onMediaChange\",\n \"onScrollIntoView\",\n \"onMessage\",\n \"onMessageClose\",\n] as const;\n\nconst pageOnlyLifeCycles = [\n \"onBeforePageLoad\",\n \"onPageLoad\",\n \"onPageLeave\",\n \"onBeforePageLeave\",\n \"onAnchorLoad\",\n \"onAnchorUnload\",\n] as const;\n\nexport interface RendererContextOptions {\n unknownBricks?: \"silent\" | \"throw\";\n routeHelper?: RouteHelper;\n renderId?: string;\n}\n\nexport interface RouteHelper {\n bailout: (output: RenderOutput) => true | undefined;\n mergeMenus: (menuRequests: Promise<StaticMenuConf>[]) => Promise<void>;\n catch: (\n error: unknown,\n returnNode: RenderReturnNode\n ) =>\n | undefined\n | {\n failed: true;\n output: RenderOutput;\n };\n}\n\nexport class RendererContext {\n /**\n * - page: render as whole page, triggering page life cycles.\n * - fragment: render as fragment, not triggering page life cycles.\n */\n public readonly scope: \"page\" | \"fragment\";\n\n public readonly unknownBricks: \"silent\" | \"throw\";\n\n public readonly renderId: string | undefined;\n\n #routeHelper: RouteHelper | undefined;\n\n constructor(scope: \"page\" | \"fragment\", options?: RendererContextOptions) {\n this.scope = scope;\n this.unknownBricks = options?.unknownBricks ?? \"throw\";\n this.#routeHelper = options?.routeHelper;\n this.renderId = options?.renderId;\n }\n\n #memoizedLifeCycle: MemoizedLifeCycle<\n Required<\n Pick<\n BrickLifeCycle,\n | \"onBeforePageLoad\"\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onBeforePageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMediaChange\"\n | \"onScrollIntoView\"\n | \"onMount\"\n | \"onUnmount\"\n | \"onMessage\"\n | \"onMessageClose\"\n >\n >\n > = {\n onBeforePageLoad: [],\n onPageLoad: [],\n onPageLeave: [],\n onBeforePageLeave: [],\n onAnchorLoad: [],\n onAnchorUnload: [],\n onMediaChange: [],\n onScrollIntoView: [],\n onMount: [],\n onUnmount: [],\n onMessage: [],\n onMessageClose: [],\n };\n #observers = new Map<RenderBrick, IntersectionObserver[]>();\n #mediaListener: EventListener | undefined;\n\n #arbitraryLifeCycle = new Map<string, Set<() => void>>();\n\n #memoized?: WeakMap<\n RenderNode,\n Map<\n string,\n {\n node?: RenderChildNode;\n last?: RenderChildNode;\n lastNormal?: RenderBrick | undefined;\n lastPortal?: RenderBrick | undefined;\n }\n >\n >;\n #allMenuRequests?: Promise<StaticMenuConf>[];\n #memoizedMenuRequestMap?: WeakMap<RouteConf, Promise<StaticMenuConf>>;\n\n setInitialMenuRequests(menuRequests: Promise<StaticMenuConf>[]) {\n this.#allMenuRequests = menuRequests;\n }\n\n memoizeMenuRequests(\n route: RouteConf,\n menuRequests: Promise<StaticMenuConf>[]\n ) {\n if (!this.#memoizedMenuRequestMap) {\n this.#memoizedMenuRequestMap = new WeakMap();\n }\n this.#memoizedMenuRequestMap.set(route, menuRequests[0]);\n }\n\n async reMergeMenuRequests(\n routes: RouteConf[],\n currentRoute: RouteConf | undefined,\n menuRequests: Promise<StaticMenuConf>[]\n ) {\n let previousMenuRequest: Promise<StaticMenuConf> | undefined;\n let previousRoute: RouteConf | undefined;\n for (const route of routes) {\n // If the sub-routes doesn't match, then `this.memoizeMenuRequests` will\n // not be called, thus `this.#memoizedMenuRequestMap` is not set.\n previousMenuRequest = this.#memoizedMenuRequestMap?.get(route);\n if (previousMenuRequest) {\n previousRoute = route;\n break;\n }\n }\n const mergedMenuRequests = this.#allMenuRequests!;\n const previousIndex = previousMenuRequest\n ? mergedMenuRequests.indexOf(previousMenuRequest)\n : -1;\n if (previousIndex === -1) {\n if (!menuRequests.length) {\n return;\n }\n mergedMenuRequests.push(...menuRequests);\n } else {\n mergedMenuRequests.splice(\n previousIndex,\n mergedMenuRequests.length - previousIndex,\n ...menuRequests\n );\n }\n if (previousRoute && previousRoute !== currentRoute) {\n this.#memoizedMenuRequestMap?.delete(previousRoute);\n }\n await this.#routeHelper!.mergeMenus(mergedMenuRequests);\n }\n\n reBailout(output: RenderOutput) {\n return this.#routeHelper!.bailout(output);\n }\n\n reCatch(error: unknown, returnNode: RenderReturnNode) {\n return this.#routeHelper!.catch(error, returnNode);\n }\n\n #locationChangeCallbacks: LocationChangeCallback[] = [];\n\n async didPerformIncrementalRender(\n location: Location<NextHistoryState>,\n prevLocation: Location<NextHistoryState>\n ) {\n // Perform incremental rendering from inside out.\n // This allows nested incremental sub-routes.\n for (let i = this.#locationChangeCallbacks.length - 1; i >= 0; i--) {\n const callback = this.#locationChangeCallbacks[i];\n if (await callback(location, prevLocation)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * When `callback` resolved to `true` which means incremental rendering is performed,\n * ignore normal rendering.\n */\n performIncrementalRender(callback: LocationChangeCallback) {\n this.#locationChangeCallbacks.push(callback);\n }\n\n registerBrickLifeCycle(\n brick: RenderBrick,\n lifeCycle: BrickLifeCycle | undefined\n ): void {\n if (!lifeCycle) {\n return;\n }\n const lifeCycleTypes = [\n ...commonLifeCycles,\n ...(this.scope === \"page\" ? pageOnlyLifeCycles : []),\n ];\n for (const key of lifeCycleTypes) {\n const handlers = (lifeCycle as BrickLifeCycle)[key as \"onPageLoad\"];\n if (handlers) {\n this.#memoizedLifeCycle[key as \"onPageLoad\"].push({\n brick,\n handlers: handlers as BrickEventHandler | BrickEventHandler[],\n });\n }\n }\n // istanbul ignore next\n if (!isEmpty((lifeCycle as { useResolves?: unknown }).useResolves)) {\n // eslint-disable-next-line no-console\n console.error(\"`lifeCycle.useResolves` is dropped in v3:\", lifeCycle);\n }\n }\n\n registerArbitraryLifeCycle(lifeCycle: string, fn: () => void): void {\n const arbitraryCallbacks = this.#arbitraryLifeCycle.get(lifeCycle);\n if (arbitraryCallbacks) {\n arbitraryCallbacks.add(fn);\n } else {\n this.#arbitraryLifeCycle.set(lifeCycle, new Set([fn]));\n }\n }\n\n #unmountBricks(bricks: Set<RenderBrick>): void {\n const lifeCycleTypes = [\n ...commonLifeCycles,\n ...(this.scope === \"page\" ? pageOnlyLifeCycles : []),\n ];\n const unmountList: {\n brick: RenderBrick;\n handlers: BrickEventHandler | BrickEventHandler[];\n }[] = [];\n\n // Clear life cycle handlers, record `onUnmount` at the same time\n for (const key of lifeCycleTypes) {\n const removed = remove(\n this.#memoizedLifeCycle[key as \"onPageLoad\"],\n (item) => bricks.has(item.brick)\n );\n if (key === \"onUnmount\") {\n unmountList.push(...removed);\n }\n }\n\n // Clear intersection observers\n for (const brick of bricks) {\n const observers = this.#observers.get(brick);\n if (observers?.length) {\n for (const observer of observers) {\n observer.disconnect();\n }\n observers.length = 0;\n this.#observers.delete(brick);\n }\n\n unbindTemplateProxy(brick);\n delete brick.element?.$$tplStateStore;\n\n // Also remove the element\n brick.element?.remove();\n }\n\n // Dispatch unmount events\n const unmountEvent = new CustomEvent(\"unmount\");\n for (const { brick, handlers } of unmountList) {\n listenerFactory(handlers, brick.runtimeContext, brick)(unmountEvent);\n }\n }\n\n #initializeRerenderBricks(bricks: Set<RenderBrick>): void {\n const mountEvent = new CustomEvent(\"mount\");\n for (const { brick, handlers } of this.#memoizedLifeCycle.onMount) {\n if (bricks.has(brick)) {\n listenerFactory(handlers, brick.runtimeContext, brick)(mountEvent);\n }\n }\n\n for (const { brick, handlers: conf } of this.#memoizedLifeCycle\n .onScrollIntoView) {\n if (bricks.has(brick)) {\n this.#addObserver(brick, conf);\n }\n }\n }\n\n memoize(\n slotId: string | undefined,\n keyPath: number[],\n node: RenderChildNode | undefined,\n returnNode: RenderReturnNode\n ) {\n if (!this.#memoized) {\n this.#memoized = new WeakMap();\n }\n const memKey = [slotId ?? \"\", ...keyPath].join(\".\");\n let mem = this.#memoized.get(returnNode);\n if (!mem) {\n mem = new Map();\n this.#memoized.set(returnNode, mem);\n }\n\n mem.set(memKey, {\n node,\n last: getLastNode(node),\n lastNormal: getLastNormalNode(node),\n lastPortal: getLastPortalNode(node),\n });\n }\n\n reRender(\n slotId: string | undefined,\n keyPath: number[],\n node: RenderChildNode | undefined,\n returnNode: RenderReturnNode\n ) {\n const memKey = [slotId ?? \"\", ...keyPath].join(\".\");\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const memoized = this.#memoized!.get(returnNode)!.get(memKey)!;\n const {\n node: prevNode,\n last: prevLast,\n lastNormal: prevLastNormal,\n lastPortal: prevLastPortal,\n } = memoized;\n\n let insertBeforeChild: ChildNode | null;\n const insertPortalBeforeChildCandidates: ChildNode[] = [];\n if (prevNode?.tag === RenderTag.PLACEHOLDER) {\n insertBeforeChild = getNextNormalNode(prevNode)?.element ?? null;\n // Todo(steve): handle portal bricks from useBrick.\n const nextSibling = getNextPortalNode(prevNode)?.element;\n if (nextSibling) {\n insertPortalBeforeChildCandidates.push(nextSibling);\n }\n } else {\n insertBeforeChild = prevLastNormal?.element?.nextSibling ?? null;\n let nextSibling = prevLastPortal?.element?.nextSibling;\n while (nextSibling) {\n insertPortalBeforeChildCandidates.push(nextSibling);\n // Collect all portal bricks from useBrick, until found a normal portal\n // brick other than from useBrick.\n // Because useBrick could be removed during unmount.\n if (\n !(nextSibling instanceof HTMLElement && nextSibling.tagName === \"DIV\")\n ) {\n break;\n }\n nextSibling = nextSibling.nextSibling;\n }\n }\n\n const last = getLastNode(node);\n memoized.node = node;\n memoized.last = last;\n memoized.lastNormal = getLastNormalNode(node);\n memoized.lastPortal = getLastPortalNode(node);\n\n // Figure out the unchanged prev sibling and next sibling\n let prevSibling: RenderChildNode | undefined;\n let current = returnNode.child;\n while (current && current !== prevLast) {\n if (current.sibling === prevNode) {\n prevSibling = current;\n break;\n }\n current = current.sibling;\n }\n\n const fragment = document.createDocumentFragment();\n const portalFragment = document.createDocumentFragment();\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: fragment,\n createPortal: portalFragment,\n child: node,\n };\n\n // Override `return`\n current = node;\n while (current) {\n current.return = renderRoot;\n current = current.sibling;\n }\n\n // Unmount previous bricks, including their descendants\n const removeBricks = getBrickRange(prevNode, prevLast);\n this.#unmountBricks(removeBricks);\n\n mountTree(renderRoot);\n\n // Connect back\n if (prevSibling) {\n prevSibling.sibling = node;\n } else {\n returnNode.child = node;\n }\n if (last) {\n last.sibling = prevLast?.sibling;\n }\n\n // Resume `return`\n current = node;\n while (current) {\n current.return = returnNode;\n current = current.sibling;\n }\n\n if (returnNode.tag === RenderTag.ROOT) {\n returnNode.container?.insertBefore(fragment, insertBeforeChild);\n } else {\n returnNode.element?.insertBefore(fragment, insertBeforeChild);\n }\n\n if (portalFragment.childNodes.length > 0) {\n let root: RenderNode | undefined = node;\n while (root && root.return) {\n root = root.return;\n }\n // istanbul ignore next\n if (root?.tag !== RenderTag.ROOT) {\n throw new Error(\n \"Cannot find render root node. This is a bug of Brick Next, please report it.\"\n );\n }\n const portal =\n typeof root.createPortal === \"function\"\n ? root.createPortal()\n : root.createPortal;\n let insertPortalBeforeChild: ChildNode | null = null;\n for (const candidate of insertPortalBeforeChildCandidates) {\n // Those candidates from useBrick could be removed during unmount.\n // So we need to check if they are still in the portal.\n if (portal.contains(candidate)) {\n insertPortalBeforeChild = candidate;\n break;\n }\n }\n portal.insertBefore(portalFragment, insertPortalBeforeChild);\n }\n\n const newBricks = getBrickRange(node, last);\n this.#initializeRerenderBricks(newBricks);\n }\n\n dispose(): void {\n for (const list of Object.values(this.#memoizedLifeCycle)) {\n list.length = 0;\n }\n for (const list of this.#observers.values()) {\n for (const observer of list) {\n observer.disconnect();\n }\n list.length = 0;\n }\n this.#observers.clear();\n if (this.#mediaListener) {\n mediaEventTarget.removeEventListener(\"change\", this.#mediaListener);\n this.#mediaListener = undefined;\n }\n this.#memoized = undefined;\n this.#allMenuRequests = undefined;\n this.#memoizedMenuRequestMap = undefined;\n this.#arbitraryLifeCycle.clear();\n this.#locationChangeCallbacks.length = 0;\n }\n\n // Note: no `onScrollIntoView` and `onMessage`\n #dispatchGeneralLifeCycle(\n type:\n | \"onBeforePageLoad\"\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onBeforePageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMediaChange\"\n | \"onMessageClose\"\n | \"onMount\"\n | \"onUnmount\",\n event: Event\n ): void {\n // istanbul ignore next\n if (\n process.env.NODE_ENV === \"development\" &&\n this.scope === \"fragment\" &&\n pageOnlyLifeCycles.includes(type as \"onPageLoad\")\n ) {\n throw new Error(\n `\\`lifeCycle.${type}\\` cannot be used in ${this.scope}.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n for (const { brick, handlers } of this.#memoizedLifeCycle[type]) {\n listenerFactory(handlers, brick.runtimeContext, brick)(event);\n }\n const arbitraryCallbacks = this.#arbitraryLifeCycle.get(type);\n if (arbitraryCallbacks) {\n for (const fn of arbitraryCallbacks) {\n fn();\n }\n }\n }\n\n dispatchBeforePageLoad(): void {\n this.#dispatchGeneralLifeCycle(\n \"onBeforePageLoad\",\n new CustomEvent(\"page.beforeLoad\")\n );\n }\n\n dispatchPageLoad(): void {\n const event = new CustomEvent(\"page.load\");\n this.#dispatchGeneralLifeCycle(\"onPageLoad\", event);\n // Currently only for e2e testing\n window.dispatchEvent(event);\n }\n\n dispatchBeforePageLeave(detail: {\n location?: NextLocation;\n action?: Action;\n }): void {\n this.#dispatchGeneralLifeCycle(\n \"onBeforePageLeave\",\n new CustomEvent(\"page.beforeLeave\", { detail })\n );\n }\n\n dispatchPageLeave(): void {\n this.#dispatchGeneralLifeCycle(\n \"onPageLeave\",\n new CustomEvent(\"page.leave\")\n );\n }\n\n dispatchAnchorLoad(): void {\n const { hash } = getHistory().location;\n if (hash && hash !== \"#\") {\n this.#dispatchGeneralLifeCycle(\n \"onAnchorLoad\",\n new CustomEvent(\"anchor.load\", {\n detail: {\n hash,\n anchor: hash.substring(1),\n },\n })\n );\n } else {\n this.#dispatchGeneralLifeCycle(\n \"onAnchorUnload\",\n new CustomEvent(\"anchor.unload\")\n );\n }\n }\n\n initializeScrollIntoView(): void {\n for (const { brick, handlers: conf } of this.#memoizedLifeCycle\n .onScrollIntoView) {\n this.#addObserver(brick, conf);\n }\n }\n\n #addObserver(brick: RenderBrick, conf: ScrollIntoViewConf) {\n const threshold = conf.threshold ?? 0.1;\n const observer = new IntersectionObserver(\n (entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (entry.intersectionRatio >= threshold) {\n listenerFactory(\n conf.handlers,\n brick.runtimeContext,\n brick\n )(new CustomEvent(\"scroll.into.view\"));\n observer.disconnect();\n }\n }\n });\n },\n {\n threshold,\n }\n );\n observer.observe(brick.element!);\n let list = this.#observers.get(brick);\n if (!list) {\n list = [];\n this.#observers.set(brick, list);\n }\n list.push(observer);\n }\n\n initializeMediaChange(): void {\n this.#mediaListener = (event) => {\n this.#dispatchGeneralLifeCycle(\n \"onMediaChange\",\n new CustomEvent(\"media.change\", {\n detail: getReadOnlyProxy((event as CustomEvent<Media>).detail),\n })\n );\n };\n mediaEventTarget.addEventListener(\"change\", this.#mediaListener);\n }\n\n initializeMessageDispatcher(): void {\n for (const { brick, handlers: confList } of this.#memoizedLifeCycle\n .onMessage) {\n for (const conf of ([] as MessageConf[]).concat(confList)) {\n hooks?.messageDispatcher?.onMessage(conf.channel, (detail) => {\n listenerFactory(\n conf.handlers,\n brick.runtimeContext,\n brick\n )(new CustomEvent(\"message.push\", { detail }));\n });\n }\n }\n\n hooks?.messageDispatcher?.onClose(() => {\n this.#dispatchGeneralLifeCycle(\n \"onMessageClose\",\n new CustomEvent(\"message.close\")\n );\n });\n }\n\n dispatchOnMount(): void {\n this.#dispatchGeneralLifeCycle(\"onMount\", new CustomEvent(\"mount\"));\n }\n\n dispatchOnUnmount(): void {\n this.#dispatchGeneralLifeCycle(\"onUnmount\", new CustomEvent(\"unmount\"));\n }\n}\n\nfunction getLastNode(\n node: RenderChildNode | undefined\n): RenderChildNode | undefined {\n let last = node;\n while (last?.sibling) {\n last = last.sibling;\n }\n return last;\n}\n\nfunction getLastNormalNode(\n node: RenderChildNode | undefined\n): RenderBrick | undefined {\n return getSpecifiedNormalNode(node, false);\n}\n\nfunction getNextNormalNode(\n node: RenderChildNode | undefined\n): RenderBrick | undefined {\n return getSpecifiedNormalNode(node, true);\n}\n\nfunction getSpecifiedNormalNode(\n node: RenderChildNode | undefined,\n next: boolean\n): RenderBrick | undefined {\n let last: RenderBrick | undefined;\n let current = node;\n while (current) {\n if (current.tag === RenderTag.BRICK && !current.portal) {\n if (next) {\n return current;\n }\n last = current;\n }\n current = current.sibling;\n }\n return last;\n}\n\nfunction getLastPortalNode(\n node: RenderChildNode | undefined\n): RenderBrick | undefined {\n return getSpecifiedPortalNode(node, false);\n}\n\nfunction getNextPortalNode(\n node: RenderChildNode | undefined\n): RenderBrick | undefined {\n return getSpecifiedPortalNode(node, true);\n}\n\nfunction getSpecifiedPortalNode(\n node: RenderChildNode | undefined,\n next: boolean\n): RenderBrick | undefined {\n let last: RenderBrick | undefined;\n let current = node;\n while (current) {\n if (current.tag === RenderTag.BRICK && current.portal) {\n if (next) {\n return current;\n }\n last = current;\n }\n if (current.child) {\n current = current.child;\n } else if (current.sibling) {\n current = current.sibling;\n } else {\n let currentReturn: RenderReturnNode | null | undefined = current.return;\n while (currentReturn) {\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n current = currentReturn?.sibling;\n }\n }\n return last;\n}\n\nfunction getBrickRange(\n from: RenderChildNode | undefined,\n to: RenderChildNode | undefined\n): Set<RenderBrick> {\n const range = new Set<RenderBrick>();\n let current = from;\n while (current) {\n if (current.tag === RenderTag.BRICK) {\n range.add(current);\n }\n if (current.child) {\n current = current.child;\n } else if (current === to) {\n break;\n } else if (current.sibling) {\n current = current.sibling;\n } else {\n let currentReturn: RenderReturnNode | null | undefined = current.return;\n while (currentReturn && currentReturn !== to) {\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n if (currentReturn === to) {\n break;\n }\n current = currentReturn?.sibling;\n }\n }\n return range;\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"RendererContext.js","names":["isEmpty","remove","listenerFactory","getHistory","getReadOnlyProxy","mediaEventTarget","mountTree","RenderTag","unbindTemplateProxy","hooks","commonLifeCycles","pageOnlyLifeCycles","_routeHelper","WeakMap","_memoizedLifeCycle","_observers","_mediaListener","_arbitraryLifeCycle","_memoized","_allMenuRequests","_memoizedMenuRequestMap","_locationChangeCallbacks","_RendererContext_brand","WeakSet","RendererContext","constructor","scope","options","_options$unknownBrick","_classPrivateMethodInitSpec","_defineProperty","_classPrivateFieldInitSpec","onBeforePageLoad","onPageLoad","onPageLeave","onBeforePageLeave","onAnchorLoad","onAnchorUnload","onMediaChange","onScrollIntoView","onMount","onUnmount","onMessage","onMessageClose","Map","unknownBricks","_classPrivateFieldSet","routeHelper","renderId","setInitialMenuRequests","menuRequests","memoizeMenuRequests","route","_classPrivateFieldGet","set","reMergeMenuRequests","routes","currentRoute","_this","_asyncToGenerator","previousMenuRequest","previousRoute","_classPrivateFieldGet2","get","mergedMenuRequests","previousIndex","indexOf","length","push","splice","_classPrivateFieldGet3","delete","mergeMenus","reBailout","output","bailout","reCatch","error","returnNode","catch","didPerformIncrementalRender","location","prevLocation","_this2","i","callback","performIncrementalRender","registerBrickLifeCycle","brick","lifeCycle","lifeCycleTypes","key","handlers","useResolves","console","registerArbitraryLifeCycle","fn","arbitraryCallbacks","add","Set","memoize","slotId","keyPath","node","memKey","join","mem","last","getLastNode","lastNormal","getLastNormalNode","lastPortal","getLastPortalNode","reRender","memoized","prevNode","prevLast","prevLastNormal","prevLastPortal","insertBeforeChild","insertPortalBeforeChildCandidates","tag","PLACEHOLDER","_getNextNormalNode$el","_getNextNormalNode","_getNextPortalNode","getNextNormalNode","element","nextSibling","getNextPortalNode","_prevLastNormal$eleme","_prevLastNormal$eleme2","_prevLastPortal$eleme","HTMLElement","tagName","prevSibling","current","child","sibling","fragment","document","createDocumentFragment","portalFragment","renderRoot","ROOT","container","createPortal","return","removeBricks","getBrickRange","_assertClassBrand","_unmountBricks","call","_returnNode$container","insertBefore","_returnNode$element","childNodes","_root","root","Error","portal","insertPortalBeforeChild","candidate","contains","newBricks","_initializeRerenderBricks","dispose","list","Object","values","observer","disconnect","clear","removeEventListener","undefined","dispatchBeforePageLoad","_dispatchGeneralLifeCycle","CustomEvent","dispatchPageLoad","event","window","dispatchEvent","dispatchBeforePageLeave","detail","dispatchPageLeave","dispatchAnchorLoad","hash","anchor","substring","initializeScrollIntoView","conf","_addObserver","initializeMediaChange","addEventListener","initializeMessageDispatcher","_hooks$messageDispatc","_loop","_loop2","_hooks$messageDispatc2","messageDispatcher","channel","runtimeContext","concat","confList","onClose","dispatchOnMount","dispatchOnUnmount","bricks","unmountList","removed","item","has","_brick$element","_brick$element2","observers","$$tplStateStore","unmountEvent","mountEvent","type","process","env","NODE_ENV","includes","_conf$threshold","threshold","IntersectionObserver","entries","forEach","entry","isIntersecting","intersectionRatio","observe","_last","getSpecifiedNormalNode","next","BRICK","getSpecifiedPortalNode","_currentReturn","currentReturn","from","to","range","_currentReturn2"],"sources":["../../../src/internal/RendererContext.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickLifeCycle,\n MessageConf,\n RouteConf,\n ScrollIntoViewConf,\n StaticMenuConf,\n} from \"@next-core/types\";\nimport type { Action, Location } from \"history\";\nimport { isEmpty, remove } from \"lodash\";\nimport { listenerFactory } from \"./bindListeners.js\";\nimport { NextHistoryState, NextLocation, getHistory } from \"../history.js\";\nimport { getReadOnlyProxy } from \"./proxyFactories.js\";\nimport { Media, mediaEventTarget } from \"./mediaQuery.js\";\nimport type {\n RenderBrick,\n RenderChildNode,\n RenderNode,\n RenderReturnNode,\n RenderRoot,\n} from \"./interfaces.js\";\nimport { mountTree } from \"./mount.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { unbindTemplateProxy } from \"./CustomTemplates/bindTemplateProxy.js\";\nimport { hooks } from \"./Runtime.js\";\nimport type { RenderOutput } from \"./Renderer.js\";\n\ntype MemoizedLifeCycle<T> = {\n [Key in keyof T]: {\n brick: RenderBrick;\n handlers: T[Key];\n }[];\n};\n\ntype LocationChangeCallback = (\n location: Location<NextHistoryState>,\n prevLocation: Location<NextHistoryState>\n) => Promise<boolean>;\n\nconst commonLifeCycles = [\n \"onMount\",\n \"onUnmount\",\n \"onMediaChange\",\n \"onScrollIntoView\",\n \"onMessage\",\n \"onMessageClose\",\n] as const;\n\nconst pageOnlyLifeCycles = [\n \"onBeforePageLoad\",\n \"onPageLoad\",\n \"onPageLeave\",\n \"onBeforePageLeave\",\n \"onAnchorLoad\",\n \"onAnchorUnload\",\n] as const;\n\nexport interface RendererContextOptions {\n unknownBricks?: \"silent\" | \"throw\";\n routeHelper?: RouteHelper;\n renderId?: string;\n}\n\nexport interface RouteHelper {\n bailout: (output: RenderOutput) => true | undefined;\n mergeMenus: (menuRequests: Promise<StaticMenuConf>[]) => Promise<void>;\n catch: (\n error: unknown,\n returnNode: RenderReturnNode\n ) =>\n | undefined\n | {\n failed: true;\n output: RenderOutput;\n };\n}\n\nexport class RendererContext {\n /**\n * - page: render as whole page, triggering page life cycles.\n * - fragment: render as fragment, not triggering page life cycles.\n */\n public readonly scope: \"page\" | \"fragment\";\n\n public readonly unknownBricks: \"silent\" | \"throw\";\n\n public readonly renderId: string | undefined;\n\n #routeHelper: RouteHelper | undefined;\n\n constructor(scope: \"page\" | \"fragment\", options?: RendererContextOptions) {\n this.scope = scope;\n this.unknownBricks = options?.unknownBricks ?? \"throw\";\n this.#routeHelper = options?.routeHelper;\n this.renderId = options?.renderId;\n }\n\n #memoizedLifeCycle: MemoizedLifeCycle<\n Required<\n Pick<\n BrickLifeCycle,\n | \"onBeforePageLoad\"\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onBeforePageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMediaChange\"\n | \"onScrollIntoView\"\n | \"onMount\"\n | \"onUnmount\"\n | \"onMessage\"\n | \"onMessageClose\"\n >\n >\n > = {\n onBeforePageLoad: [],\n onPageLoad: [],\n onPageLeave: [],\n onBeforePageLeave: [],\n onAnchorLoad: [],\n onAnchorUnload: [],\n onMediaChange: [],\n onScrollIntoView: [],\n onMount: [],\n onUnmount: [],\n onMessage: [],\n onMessageClose: [],\n };\n #observers = new Map<RenderBrick, IntersectionObserver[]>();\n #mediaListener: EventListener | undefined;\n\n #arbitraryLifeCycle = new Map<string, Set<() => void>>();\n\n #memoized?: WeakMap<\n RenderNode,\n Map<\n string,\n {\n node?: RenderChildNode;\n last?: RenderChildNode;\n lastNormal?: RenderBrick | undefined;\n lastPortal?: RenderBrick | undefined;\n }\n >\n >;\n #allMenuRequests?: Promise<StaticMenuConf>[];\n #memoizedMenuRequestMap?: WeakMap<RouteConf, Promise<StaticMenuConf>>;\n\n setInitialMenuRequests(menuRequests: Promise<StaticMenuConf>[]) {\n this.#allMenuRequests = menuRequests;\n }\n\n memoizeMenuRequests(\n route: RouteConf,\n menuRequests: Promise<StaticMenuConf>[]\n ) {\n if (!this.#memoizedMenuRequestMap) {\n this.#memoizedMenuRequestMap = new WeakMap();\n }\n this.#memoizedMenuRequestMap.set(route, menuRequests[0]);\n }\n\n async reMergeMenuRequests(\n routes: RouteConf[],\n currentRoute: RouteConf | undefined,\n menuRequests: Promise<StaticMenuConf>[]\n ) {\n let previousMenuRequest: Promise<StaticMenuConf> | undefined;\n let previousRoute: RouteConf | undefined;\n for (const route of routes) {\n // If the sub-routes doesn't match, then `this.memoizeMenuRequests` will\n // not be called, thus `this.#memoizedMenuRequestMap` is not set.\n previousMenuRequest = this.#memoizedMenuRequestMap?.get(route);\n if (previousMenuRequest) {\n previousRoute = route;\n break;\n }\n }\n const mergedMenuRequests = this.#allMenuRequests!;\n const previousIndex = previousMenuRequest\n ? mergedMenuRequests.indexOf(previousMenuRequest)\n : -1;\n if (previousIndex === -1) {\n if (!menuRequests.length) {\n return;\n }\n mergedMenuRequests.push(...menuRequests);\n } else {\n mergedMenuRequests.splice(\n previousIndex,\n mergedMenuRequests.length - previousIndex,\n ...menuRequests\n );\n }\n if (previousRoute && previousRoute !== currentRoute) {\n this.#memoizedMenuRequestMap?.delete(previousRoute);\n }\n await this.#routeHelper!.mergeMenus(mergedMenuRequests);\n }\n\n reBailout(output: RenderOutput) {\n return this.#routeHelper!.bailout(output);\n }\n\n reCatch(error: unknown, returnNode: RenderReturnNode) {\n return this.#routeHelper!.catch(error, returnNode);\n }\n\n #locationChangeCallbacks: LocationChangeCallback[] = [];\n\n async didPerformIncrementalRender(\n location: Location<NextHistoryState>,\n prevLocation: Location<NextHistoryState>\n ) {\n // Perform incremental rendering from inside out.\n // This allows nested incremental sub-routes.\n for (let i = this.#locationChangeCallbacks.length - 1; i >= 0; i--) {\n const callback = this.#locationChangeCallbacks[i];\n if (await callback(location, prevLocation)) {\n return true;\n }\n }\n return false;\n }\n\n /**\n * When `callback` resolved to `true` which means incremental rendering is performed,\n * ignore normal rendering.\n */\n performIncrementalRender(callback: LocationChangeCallback) {\n this.#locationChangeCallbacks.push(callback);\n }\n\n registerBrickLifeCycle(\n brick: RenderBrick,\n lifeCycle: BrickLifeCycle | undefined\n ): void {\n if (!lifeCycle) {\n return;\n }\n const lifeCycleTypes = [\n ...commonLifeCycles,\n ...(this.scope === \"page\" ? pageOnlyLifeCycles : []),\n ];\n for (const key of lifeCycleTypes) {\n const handlers = (lifeCycle as BrickLifeCycle)[key as \"onPageLoad\"];\n if (handlers) {\n this.#memoizedLifeCycle[key as \"onPageLoad\"].push({\n brick,\n handlers: handlers as BrickEventHandler | BrickEventHandler[],\n });\n }\n }\n // istanbul ignore next\n if (!isEmpty((lifeCycle as { useResolves?: unknown }).useResolves)) {\n // eslint-disable-next-line no-console\n console.error(\"`lifeCycle.useResolves` is dropped in v3:\", lifeCycle);\n }\n }\n\n registerArbitraryLifeCycle(lifeCycle: string, fn: () => void): void {\n const arbitraryCallbacks = this.#arbitraryLifeCycle.get(lifeCycle);\n if (arbitraryCallbacks) {\n arbitraryCallbacks.add(fn);\n } else {\n this.#arbitraryLifeCycle.set(lifeCycle, new Set([fn]));\n }\n }\n\n #unmountBricks(bricks: Set<RenderBrick>): void {\n const lifeCycleTypes = [\n ...commonLifeCycles,\n ...(this.scope === \"page\" ? pageOnlyLifeCycles : []),\n ];\n const unmountList: {\n brick: RenderBrick;\n handlers: BrickEventHandler | BrickEventHandler[];\n }[] = [];\n\n // Clear life cycle handlers, record `onUnmount` at the same time\n for (const key of lifeCycleTypes) {\n const removed = remove(\n this.#memoizedLifeCycle[key as \"onPageLoad\"],\n (item) => bricks.has(item.brick)\n );\n if (key === \"onUnmount\") {\n unmountList.push(...removed);\n }\n }\n\n // Clear intersection observers\n for (const brick of bricks) {\n const observers = this.#observers.get(brick);\n if (observers?.length) {\n for (const observer of observers) {\n observer.disconnect();\n }\n observers.length = 0;\n this.#observers.delete(brick);\n }\n\n unbindTemplateProxy(brick);\n delete brick.element?.$$tplStateStore;\n\n // Also remove the element\n brick.element?.remove();\n }\n\n // Dispatch unmount events\n const unmountEvent = new CustomEvent(\"unmount\");\n for (const { brick, handlers } of unmountList) {\n listenerFactory(handlers, brick.runtimeContext, brick)(unmountEvent);\n }\n }\n\n #initializeRerenderBricks(bricks: Set<RenderBrick>): void {\n const mountEvent = new CustomEvent(\"mount\");\n for (const { brick, handlers } of this.#memoizedLifeCycle.onMount) {\n if (bricks.has(brick)) {\n listenerFactory(handlers, brick.runtimeContext, brick)(mountEvent);\n }\n }\n\n for (const { brick, handlers: conf } of this.#memoizedLifeCycle\n .onScrollIntoView) {\n if (bricks.has(brick)) {\n this.#addObserver(brick, conf);\n }\n }\n }\n\n memoize(\n slotId: string | undefined,\n keyPath: number[],\n node: RenderChildNode | undefined,\n returnNode: RenderReturnNode\n ) {\n if (!this.#memoized) {\n this.#memoized = new WeakMap();\n }\n const memKey = [slotId ?? \"\", ...keyPath].join(\".\");\n let mem = this.#memoized.get(returnNode);\n if (!mem) {\n mem = new Map();\n this.#memoized.set(returnNode, mem);\n }\n\n mem.set(memKey, {\n node,\n last: getLastNode(node),\n lastNormal: getLastNormalNode(node),\n lastPortal: getLastPortalNode(node),\n });\n }\n\n reRender(\n slotId: string | undefined,\n keyPath: number[],\n node: RenderChildNode | undefined,\n returnNode: RenderReturnNode\n ) {\n const memKey = [slotId ?? \"\", ...keyPath].join(\".\");\n // eslint-disable-next-line @typescript-eslint/no-non-null-assertion\n const memoized = this.#memoized!.get(returnNode)!.get(memKey)!;\n const {\n node: prevNode,\n last: prevLast,\n lastNormal: prevLastNormal,\n lastPortal: prevLastPortal,\n } = memoized;\n\n let insertBeforeChild: ChildNode | null;\n const insertPortalBeforeChildCandidates: ChildNode[] = [];\n if (prevNode?.tag === RenderTag.PLACEHOLDER) {\n insertBeforeChild = getNextNormalNode(prevNode)?.element ?? null;\n // Todo(steve): handle portal bricks from useBrick.\n const nextSibling = getNextPortalNode(prevNode)?.element;\n if (nextSibling) {\n insertPortalBeforeChildCandidates.push(nextSibling);\n }\n } else {\n insertBeforeChild = prevLastNormal?.element?.nextSibling ?? null;\n let nextSibling = prevLastPortal?.element?.nextSibling;\n while (nextSibling) {\n insertPortalBeforeChildCandidates.push(nextSibling);\n // Collect all portal bricks from useBrick, until found a normal portal\n // brick other than from useBrick.\n // Because useBrick could be removed during unmount.\n if (\n !(nextSibling instanceof HTMLElement && nextSibling.tagName === \"DIV\")\n ) {\n break;\n }\n nextSibling = nextSibling.nextSibling;\n }\n }\n\n const last = getLastNode(node);\n memoized.node = node;\n memoized.last = last;\n memoized.lastNormal = getLastNormalNode(node);\n memoized.lastPortal = getLastPortalNode(node);\n\n // Figure out the unchanged prev sibling and next sibling\n let prevSibling: RenderChildNode | undefined;\n let current = returnNode.child;\n while (current && current !== prevLast) {\n if (current.sibling === prevNode) {\n prevSibling = current;\n break;\n }\n current = current.sibling;\n }\n\n const fragment = document.createDocumentFragment();\n const portalFragment = document.createDocumentFragment();\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: fragment,\n createPortal: portalFragment,\n child: node,\n };\n\n // Override `return`\n current = node;\n while (current) {\n current.return = renderRoot;\n current = current.sibling;\n }\n\n // Unmount previous bricks, including their descendants\n const removeBricks = getBrickRange(prevNode, prevLast);\n this.#unmountBricks(removeBricks);\n\n mountTree(renderRoot);\n\n // Connect back\n if (prevSibling) {\n prevSibling.sibling = node;\n } else {\n returnNode.child = node;\n }\n if (last) {\n last.sibling = prevLast?.sibling;\n }\n\n // Resume `return`\n current = node;\n while (current) {\n current.return = returnNode;\n current = current.sibling;\n }\n\n if (returnNode.tag === RenderTag.ROOT) {\n returnNode.container?.insertBefore(fragment, insertBeforeChild);\n } else {\n returnNode.element?.insertBefore(fragment, insertBeforeChild);\n }\n\n if (portalFragment.childNodes.length > 0) {\n let root: RenderNode | undefined = node;\n while (root && root.return) {\n root = root.return;\n }\n // istanbul ignore next\n if (root?.tag !== RenderTag.ROOT) {\n throw new Error(\n \"Cannot find render root node. This is a bug of Brick Next, please report it.\"\n );\n }\n const portal =\n typeof root.createPortal === \"function\"\n ? root.createPortal()\n : root.createPortal;\n let insertPortalBeforeChild: ChildNode | null = null;\n for (const candidate of insertPortalBeforeChildCandidates) {\n // Those candidates from useBrick could be removed during unmount.\n // So we need to check if they are still in the portal.\n if (portal.contains(candidate)) {\n insertPortalBeforeChild = candidate;\n break;\n }\n }\n portal.insertBefore(portalFragment, insertPortalBeforeChild);\n }\n\n const newBricks = getBrickRange(node, last);\n this.#initializeRerenderBricks(newBricks);\n }\n\n dispose(): void {\n for (const list of Object.values(this.#memoizedLifeCycle)) {\n list.length = 0;\n }\n for (const list of this.#observers.values()) {\n for (const observer of list) {\n observer.disconnect();\n }\n list.length = 0;\n }\n this.#observers.clear();\n if (this.#mediaListener) {\n mediaEventTarget.removeEventListener(\"change\", this.#mediaListener);\n this.#mediaListener = undefined;\n }\n this.#memoized = undefined;\n this.#allMenuRequests = undefined;\n this.#memoizedMenuRequestMap = undefined;\n this.#arbitraryLifeCycle.clear();\n this.#locationChangeCallbacks.length = 0;\n }\n\n // Note: no `onScrollIntoView` and `onMessage`\n #dispatchGeneralLifeCycle(\n type:\n | \"onBeforePageLoad\"\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onBeforePageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMediaChange\"\n | \"onMessageClose\"\n | \"onMount\"\n | \"onUnmount\",\n event: Event\n ): void {\n // istanbul ignore next\n if (\n process.env.NODE_ENV === \"development\" &&\n this.scope === \"fragment\" &&\n pageOnlyLifeCycles.includes(type as \"onPageLoad\")\n ) {\n throw new Error(\n `\\`lifeCycle.${type}\\` cannot be used in ${this.scope}.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n for (const { brick, handlers } of this.#memoizedLifeCycle[type]) {\n listenerFactory(handlers, brick.runtimeContext, brick)(event);\n }\n const arbitraryCallbacks = this.#arbitraryLifeCycle.get(type);\n if (arbitraryCallbacks) {\n for (const fn of arbitraryCallbacks) {\n fn();\n }\n }\n }\n\n dispatchBeforePageLoad(): void {\n this.#dispatchGeneralLifeCycle(\n \"onBeforePageLoad\",\n new CustomEvent(\"page.beforeLoad\")\n );\n }\n\n dispatchPageLoad(): void {\n const event = new CustomEvent(\"page.load\");\n this.#dispatchGeneralLifeCycle(\"onPageLoad\", event);\n // Currently only for e2e testing\n window.dispatchEvent(event);\n }\n\n dispatchBeforePageLeave(detail: {\n location?: NextLocation;\n action?: Action;\n }): void {\n this.#dispatchGeneralLifeCycle(\n \"onBeforePageLeave\",\n new CustomEvent(\"page.beforeLeave\", { detail })\n );\n }\n\n dispatchPageLeave(): void {\n this.#dispatchGeneralLifeCycle(\n \"onPageLeave\",\n new CustomEvent(\"page.leave\")\n );\n }\n\n dispatchAnchorLoad(): void {\n const { hash } = getHistory().location;\n if (hash && hash !== \"#\") {\n this.#dispatchGeneralLifeCycle(\n \"onAnchorLoad\",\n new CustomEvent(\"anchor.load\", {\n detail: {\n hash,\n anchor: hash.substring(1),\n },\n })\n );\n } else {\n this.#dispatchGeneralLifeCycle(\n \"onAnchorUnload\",\n new CustomEvent(\"anchor.unload\")\n );\n }\n }\n\n initializeScrollIntoView(): void {\n for (const { brick, handlers: conf } of this.#memoizedLifeCycle\n .onScrollIntoView) {\n this.#addObserver(brick, conf);\n }\n }\n\n #addObserver(brick: RenderBrick, conf: ScrollIntoViewConf) {\n const threshold = conf.threshold ?? 0.1;\n const observer = new IntersectionObserver(\n (entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (entry.intersectionRatio >= threshold) {\n listenerFactory(\n conf.handlers,\n brick.runtimeContext,\n brick\n )(new CustomEvent(\"scroll.into.view\"));\n observer.disconnect();\n }\n }\n });\n },\n {\n threshold,\n }\n );\n observer.observe(brick.element!);\n let list = this.#observers.get(brick);\n if (!list) {\n list = [];\n this.#observers.set(brick, list);\n }\n list.push(observer);\n }\n\n initializeMediaChange(): void {\n this.#mediaListener = (event) => {\n this.#dispatchGeneralLifeCycle(\n \"onMediaChange\",\n new CustomEvent(\"media.change\", {\n detail: getReadOnlyProxy((event as CustomEvent<Media>).detail),\n })\n );\n };\n mediaEventTarget.addEventListener(\"change\", this.#mediaListener);\n }\n\n initializeMessageDispatcher(): void {\n for (const { brick, handlers: confList } of this.#memoizedLifeCycle\n .onMessage) {\n for (const conf of ([] as MessageConf[]).concat(confList)) {\n hooks?.messageDispatcher?.onMessage(conf.channel, (detail) => {\n listenerFactory(\n conf.handlers,\n brick.runtimeContext,\n brick\n )(new CustomEvent(\"message.push\", { detail }));\n });\n }\n }\n\n hooks?.messageDispatcher?.onClose(() => {\n this.#dispatchGeneralLifeCycle(\n \"onMessageClose\",\n new CustomEvent(\"message.close\")\n );\n });\n }\n\n dispatchOnMount(): void {\n this.#dispatchGeneralLifeCycle(\"onMount\", new CustomEvent(\"mount\"));\n }\n\n dispatchOnUnmount(): void {\n this.#dispatchGeneralLifeCycle(\"onUnmount\", new CustomEvent(\"unmount\"));\n }\n}\n\nfunction getLastNode(\n node: RenderChildNode | undefined\n): RenderChildNode | undefined {\n let last = node;\n while (last?.sibling) {\n last = last.sibling;\n }\n return last;\n}\n\nfunction getLastNormalNode(\n node: RenderChildNode | undefined\n): RenderBrick | undefined {\n return getSpecifiedNormalNode(node, false);\n}\n\nfunction getNextNormalNode(\n node: RenderChildNode | undefined\n): RenderBrick | undefined {\n return getSpecifiedNormalNode(node, true);\n}\n\nfunction getSpecifiedNormalNode(\n node: RenderChildNode | undefined,\n next: boolean\n): RenderBrick | undefined {\n let last: RenderBrick | undefined;\n let current = node;\n while (current) {\n if (current.tag === RenderTag.BRICK && !current.portal) {\n if (next) {\n return current;\n }\n last = current;\n }\n current = current.sibling;\n }\n return last;\n}\n\nfunction getLastPortalNode(\n node: RenderChildNode | undefined\n): RenderBrick | undefined {\n return getSpecifiedPortalNode(node, false);\n}\n\nfunction getNextPortalNode(\n node: RenderChildNode | undefined\n): RenderBrick | undefined {\n return getSpecifiedPortalNode(node, true);\n}\n\nfunction getSpecifiedPortalNode(\n node: RenderChildNode | undefined,\n next: boolean\n): RenderBrick | undefined {\n let last: RenderBrick | undefined;\n let current = node;\n while (current) {\n if (current.tag === RenderTag.BRICK && current.portal) {\n if (next) {\n return current;\n }\n last = current;\n }\n if (current.child) {\n current = current.child;\n } else if (current.sibling) {\n current = current.sibling;\n } else {\n let currentReturn: RenderReturnNode | null | undefined = current.return;\n while (currentReturn) {\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n current = currentReturn?.sibling;\n }\n }\n return last;\n}\n\nfunction getBrickRange(\n from: RenderChildNode | undefined,\n to: RenderChildNode | undefined\n): Set<RenderBrick> {\n const range = new Set<RenderBrick>();\n let current = from;\n while (current) {\n if (current.tag === RenderTag.BRICK) {\n range.add(current);\n }\n if (current.child) {\n current = current.child;\n } else if (current === to) {\n break;\n } else if (current.sibling) {\n current = current.sibling;\n } else {\n let currentReturn: RenderReturnNode | null | undefined = current.return;\n while (currentReturn && currentReturn !== to) {\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n if (currentReturn === to) {\n break;\n }\n current = currentReturn?.sibling;\n }\n }\n return range;\n}\n"],"mappings":";;;;;;;AASA,SAASA,OAAO,EAAEC,MAAM,QAAQ,QAAQ;AACxC,SAASC,eAAe,QAAQ,oBAAoB;AACpD,SAAyCC,UAAU,QAAQ,eAAe;AAC1E,SAASC,gBAAgB,QAAQ,qBAAqB;AACtD,SAAgBC,gBAAgB,QAAQ,iBAAiB;AAQzD,SAASC,SAAS,QAAQ,YAAY;AACtC,SAASC,SAAS,QAAQ,YAAY;AACtC,SAASC,mBAAmB,QAAQ,wCAAwC;AAC5E,SAASC,KAAK,QAAQ,cAAc;AAepC,IAAMC,gBAAgB,GAAG,CACvB,SAAS,EACT,WAAW,EACX,eAAe,EACf,kBAAkB,EAClB,WAAW,EACX,gBAAgB,CACR;AAEV,IAAMC,kBAAkB,GAAG,CACzB,kBAAkB,EAClB,YAAY,EACZ,aAAa,EACb,mBAAmB,EACnB,cAAc,EACd,gBAAgB,CACR;AAAC,IAAAC,YAAA,oBAAAC,OAAA;AAAA,IAAAC,kBAAA,oBAAAD,OAAA;AAAA,IAAAE,UAAA,oBAAAF,OAAA;AAAA,IAAAG,cAAA,oBAAAH,OAAA;AAAA,IAAAI,mBAAA,oBAAAJ,OAAA;AAAA,IAAAK,SAAA,oBAAAL,OAAA;AAAA,IAAAM,gBAAA,oBAAAN,OAAA;AAAA,IAAAO,uBAAA,oBAAAP,OAAA;AAAA,IAAAQ,wBAAA,oBAAAR,OAAA;AAAA,IAAAS,sBAAA,oBAAAC,OAAA;AAsBX,OAAO,MAAMC,eAAe,CAAC;EAa3BC,WAAWA,CAACC,KAA0B,EAAEC,OAAgC,EAAE;IAAA,IAAAC,qBAAA;IAAAC,2BAAA,OAAAP,sBAAA;IAZ1E;AACF;AACA;AACA;IAHEQ,eAAA;IAAAA,eAAA;IAAAA,eAAA;IAAAC,0BAAA,OAAAnB,YAAA;IAAAmB,0BAAA,OAAAjB,kBAAA,EAqCI;MACFkB,gBAAgB,EAAE,EAAE;MACpBC,UAAU,EAAE,EAAE;MACdC,WAAW,EAAE,EAAE;MACfC,iBAAiB,EAAE,EAAE;MACrBC,YAAY,EAAE,EAAE;MAChBC,cAAc,EAAE,EAAE;MAClBC,aAAa,EAAE,EAAE;MACjBC,gBAAgB,EAAE,EAAE;MACpBC,OAAO,EAAE,EAAE;MACXC,SAAS,EAAE,EAAE;MACbC,SAAS,EAAE,EAAE;MACbC,cAAc,EAAE;IAClB,CAAC;IAAAZ,0BAAA,OAAAhB,UAAA,EACY,IAAI6B,GAAG,CAAsC,CAAC;IAAAb,0BAAA,OAAAf,cAAA;IAAAe,0BAAA,OAAAd,mBAAA,EAGrC,IAAI2B,GAAG,CAA0B,CAAC;IAAAb,0BAAA,OAAAb,SAAA;IAAAa,0BAAA,OAAAZ,gBAAA;IAAAY,0BAAA,OAAAX,uBAAA;IAAAW,0BAAA,OAAAV,wBAAA,EA6EH,EAAE;IAtHrD,IAAI,CAACK,KAAK,GAAGA,KAAK;IAClB,IAAI,CAACmB,aAAa,IAAAjB,qBAAA,GAAGD,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEkB,aAAa,cAAAjB,qBAAA,cAAAA,qBAAA,GAAI,OAAO;IACtDkB,qBAAA,CAAAlC,YAAA,MAAI,EAAgBe,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEoB,WAAW;IACxC,IAAI,CAACC,QAAQ,GAAGrB,OAAO,aAAPA,OAAO,uBAAPA,OAAO,CAAEqB,QAAQ;EACnC;EAsDAC,sBAAsBA,CAACC,YAAuC,EAAE;IAC9DJ,qBAAA,CAAA3B,gBAAA,MAAI,EAAoB+B,YAAY;EACtC;EAEAC,mBAAmBA,CACjBC,KAAgB,EAChBF,YAAuC,EACvC;IACA,IAAI,CAAAG,qBAAA,CAAAjC,uBAAA,EAAC,IAAI,CAAwB,EAAE;MACjC0B,qBAAA,CAAA1B,uBAAA,MAAI,EAA2B,IAAIP,OAAO,CAAC,CAAC;IAC9C;IACAwC,qBAAA,CAAAjC,uBAAA,MAAI,EAAyBkC,GAAG,CAACF,KAAK,EAAEF,YAAY,CAAC,CAAC,CAAC,CAAC;EAC1D;EAEMK,mBAAmBA,CACvBC,MAAmB,EACnBC,YAAmC,EACnCP,YAAuC,EACvC;IAAA,IAAAQ,KAAA;IAAA,OAAAC,iBAAA;MACA,IAAIC,mBAAwD;MAC5D,IAAIC,aAAoC;MACxC,KAAK,IAAMT,KAAK,IAAII,MAAM,EAAE;QAAA,IAAAM,sBAAA;QAC1B;QACA;QACAF,mBAAmB,IAAAE,sBAAA,GAAAT,qBAAA,CAAAjC,uBAAA,EAAGsC,KAAI,eAAAI,sBAAA,uBAAJA,sBAAA,CAA8BC,GAAG,CAACX,KAAK,CAAC;QAC9D,IAAIQ,mBAAmB,EAAE;UACvBC,aAAa,GAAGT,KAAK;UACrB;QACF;MACF;MACA,IAAMY,kBAAkB,GAAAX,qBAAA,CAAAlC,gBAAA,EAAGuC,KAAI,CAAkB;MACjD,IAAMO,aAAa,GAAGL,mBAAmB,GACrCI,kBAAkB,CAACE,OAAO,CAACN,mBAAmB,CAAC,GAC/C,CAAC,CAAC;MACN,IAAIK,aAAa,KAAK,CAAC,CAAC,EAAE;QACxB,IAAI,CAACf,YAAY,CAACiB,MAAM,EAAE;UACxB;QACF;QACAH,kBAAkB,CAACI,IAAI,CAAC,GAAGlB,YAAY,CAAC;MAC1C,CAAC,MAAM;QACLc,kBAAkB,CAACK,MAAM,CACvBJ,aAAa,EACbD,kBAAkB,CAACG,MAAM,GAAGF,aAAa,EACzC,GAAGf,YACL,CAAC;MACH;MACA,IAAIW,aAAa,IAAIA,aAAa,KAAKJ,YAAY,EAAE;QAAA,IAAAa,sBAAA;QACnD,CAAAA,sBAAA,GAAAjB,qBAAA,CAAAjC,uBAAA,EAAAsC,KAAI,eAAAY,sBAAA,eAAJA,sBAAA,CAA8BC,MAAM,CAACV,aAAa,CAAC;MACrD;MACA,MAAMR,qBAAA,CAAAzC,YAAA,EAAA8C,KAAI,EAAec,UAAU,CAACR,kBAAkB,CAAC;IAAC;EAC1D;EAEAS,SAASA,CAACC,MAAoB,EAAE;IAC9B,OAAOrB,qBAAA,CAAAzC,YAAA,MAAI,EAAe+D,OAAO,CAACD,MAAM,CAAC;EAC3C;EAEAE,OAAOA,CAACC,KAAc,EAAEC,UAA4B,EAAE;IACpD,OAAOzB,qBAAA,CAAAzC,YAAA,MAAI,EAAemE,KAAK,CAACF,KAAK,EAAEC,UAAU,CAAC;EACpD;EAIME,2BAA2BA,CAC/BC,QAAoC,EACpCC,YAAwC,EACxC;IAAA,IAAAC,MAAA;IAAA,OAAAxB,iBAAA;MACA;MACA;MACA,KAAK,IAAIyB,CAAC,GAAG/B,qBAAA,CAAAhC,wBAAA,EAAA8D,MAAI,EAA0BhB,MAAM,GAAG,CAAC,EAAEiB,CAAC,IAAI,CAAC,EAAEA,CAAC,EAAE,EAAE;QAClE,IAAMC,QAAQ,GAAGhC,qBAAA,CAAAhC,wBAAA,EAAA8D,MAAI,EAA0BC,CAAC,CAAC;QACjD,UAAUC,QAAQ,CAACJ,QAAQ,EAAEC,YAAY,CAAC,EAAE;UAC1C,OAAO,IAAI;QACb;MACF;MACA,OAAO,KAAK;IAAC;EACf;;EAEA;AACF;AACA;AACA;EACEI,wBAAwBA,CAACD,QAAgC,EAAE;IACzDhC,qBAAA,CAAAhC,wBAAA,MAAI,EAA0B+C,IAAI,CAACiB,QAAQ,CAAC;EAC9C;EAEAE,sBAAsBA,CACpBC,KAAkB,EAClBC,SAAqC,EAC/B;IACN,IAAI,CAACA,SAAS,EAAE;MACd;IACF;IACA,IAAMC,cAAc,GAAG,CACrB,GAAGhF,gBAAgB,EACnB,IAAI,IAAI,CAACgB,KAAK,KAAK,MAAM,GAAGf,kBAAkB,GAAG,EAAE,CAAC,CACrD;IACD,KAAK,IAAMgF,GAAG,IAAID,cAAc,EAAE;MAChC,IAAME,QAAQ,GAAIH,SAAS,CAAoBE,GAAG,CAAiB;MACnE,IAAIC,QAAQ,EAAE;QACZvC,qBAAA,CAAAvC,kBAAA,MAAI,EAAoB6E,GAAG,CAAiB,CAACvB,IAAI,CAAC;UAChDoB,KAAK;UACLI,QAAQ,EAAEA;QACZ,CAAC,CAAC;MACJ;IACF;IACA;IACA,IAAI,CAAC5F,OAAO,CAAEyF,SAAS,CAA+BI,WAAW,CAAC,EAAE;MAClE;MACAC,OAAO,CAACjB,KAAK,CAAC,2CAA2C,EAAEY,SAAS,CAAC;IACvE;EACF;EAEAM,0BAA0BA,CAACN,SAAiB,EAAEO,EAAc,EAAQ;IAClE,IAAMC,kBAAkB,GAAG5C,qBAAA,CAAApC,mBAAA,MAAI,EAAqB8C,GAAG,CAAC0B,SAAS,CAAC;IAClE,IAAIQ,kBAAkB,EAAE;MACtBA,kBAAkB,CAACC,GAAG,CAACF,EAAE,CAAC;IAC5B,CAAC,MAAM;MACL3C,qBAAA,CAAApC,mBAAA,MAAI,EAAqBqC,GAAG,CAACmC,SAAS,EAAE,IAAIU,GAAG,CAAC,CAACH,EAAE,CAAC,CAAC,CAAC;IACxD;EACF;EAgEAI,OAAOA,CACLC,MAA0B,EAC1BC,OAAiB,EACjBC,IAAiC,EACjCzB,UAA4B,EAC5B;IACA,IAAI,CAAAzB,qBAAA,CAAAnC,SAAA,EAAC,IAAI,CAAU,EAAE;MACnB4B,qBAAA,CAAA5B,SAAA,MAAI,EAAa,IAAIL,OAAO,CAAC,CAAC;IAChC;IACA,IAAM2F,MAAM,GAAG,CAACH,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,EAAE,EAAE,GAAGC,OAAO,CAAC,CAACG,IAAI,CAAC,GAAG,CAAC;IACnD,IAAIC,GAAG,GAAGrD,qBAAA,CAAAnC,SAAA,MAAI,EAAW6C,GAAG,CAACe,UAAU,CAAC;IACxC,IAAI,CAAC4B,GAAG,EAAE;MACRA,GAAG,GAAG,IAAI9D,GAAG,CAAC,CAAC;MACfS,qBAAA,CAAAnC,SAAA,MAAI,EAAWoC,GAAG,CAACwB,UAAU,EAAE4B,GAAG,CAAC;IACrC;IAEAA,GAAG,CAACpD,GAAG,CAACkD,MAAM,EAAE;MACdD,IAAI;MACJI,IAAI,EAAEC,WAAW,CAACL,IAAI,CAAC;MACvBM,UAAU,EAAEC,iBAAiB,CAACP,IAAI,CAAC;MACnCQ,UAAU,EAAEC,iBAAiB,CAACT,IAAI;IACpC,CAAC,CAAC;EACJ;EAEAU,QAAQA,CACNZ,MAA0B,EAC1BC,OAAiB,EACjBC,IAAiC,EACjCzB,UAA4B,EAC5B;IACA,IAAM0B,MAAM,GAAG,CAACH,MAAM,aAANA,MAAM,cAANA,MAAM,GAAI,EAAE,EAAE,GAAGC,OAAO,CAAC,CAACG,IAAI,CAAC,GAAG,CAAC;IACnD;IACA,IAAMS,QAAQ,GAAG7D,qBAAA,CAAAnC,SAAA,MAAI,EAAY6C,GAAG,CAACe,UAAU,CAAC,CAAEf,GAAG,CAACyC,MAAM,CAAE;IAC9D,IAAM;MACJD,IAAI,EAAEY,QAAQ;MACdR,IAAI,EAAES,QAAQ;MACdP,UAAU,EAAEQ,cAAc;MAC1BN,UAAU,EAAEO;IACd,CAAC,GAAGJ,QAAQ;IAEZ,IAAIK,iBAAmC;IACvC,IAAMC,iCAA8C,GAAG,EAAE;IACzD,IAAI,CAAAL,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEM,GAAG,MAAKlH,SAAS,CAACmH,WAAW,EAAE;MAAA,IAAAC,qBAAA,EAAAC,kBAAA,EAAAC,kBAAA;MAC3CN,iBAAiB,IAAAI,qBAAA,IAAAC,kBAAA,GAAGE,iBAAiB,CAACX,QAAQ,CAAC,cAAAS,kBAAA,uBAA3BA,kBAAA,CAA6BG,OAAO,cAAAJ,qBAAA,cAAAA,qBAAA,GAAI,IAAI;MAChE;MACA,IAAMK,WAAW,IAAAH,kBAAA,GAAGI,iBAAiB,CAACd,QAAQ,CAAC,cAAAU,kBAAA,uBAA3BA,kBAAA,CAA6BE,OAAO;MACxD,IAAIC,WAAW,EAAE;QACfR,iCAAiC,CAACpD,IAAI,CAAC4D,WAAW,CAAC;MACrD;IACF,CAAC,MAAM;MAAA,IAAAE,qBAAA,EAAAC,sBAAA,EAAAC,qBAAA;MACLb,iBAAiB,IAAAW,qBAAA,GAAGb,cAAc,aAAdA,cAAc,gBAAAc,sBAAA,GAAdd,cAAc,CAAEU,OAAO,cAAAI,sBAAA,uBAAvBA,sBAAA,CAAyBH,WAAW,cAAAE,qBAAA,cAAAA,qBAAA,GAAI,IAAI;MAChE,IAAIF,YAAW,GAAGV,cAAc,aAAdA,cAAc,gBAAAc,qBAAA,GAAdd,cAAc,CAAES,OAAO,cAAAK,qBAAA,uBAAvBA,qBAAA,CAAyBJ,WAAW;MACtD,OAAOA,YAAW,EAAE;QAClBR,iCAAiC,CAACpD,IAAI,CAAC4D,YAAW,CAAC;QACnD;QACA;QACA;QACA,IACE,EAAEA,YAAW,YAAYK,WAAW,IAAIL,YAAW,CAACM,OAAO,KAAK,KAAK,CAAC,EACtE;UACA;QACF;QACAN,YAAW,GAAGA,YAAW,CAACA,WAAW;MACvC;IACF;IAEA,IAAMrB,IAAI,GAAGC,WAAW,CAACL,IAAI,CAAC;IAC9BW,QAAQ,CAACX,IAAI,GAAGA,IAAI;IACpBW,QAAQ,CAACP,IAAI,GAAGA,IAAI;IACpBO,QAAQ,CAACL,UAAU,GAAGC,iBAAiB,CAACP,IAAI,CAAC;IAC7CW,QAAQ,CAACH,UAAU,GAAGC,iBAAiB,CAACT,IAAI,CAAC;;IAE7C;IACA,IAAIgC,WAAwC;IAC5C,IAAIC,OAAO,GAAG1D,UAAU,CAAC2D,KAAK;IAC9B,OAAOD,OAAO,IAAIA,OAAO,KAAKpB,QAAQ,EAAE;MACtC,IAAIoB,OAAO,CAACE,OAAO,KAAKvB,QAAQ,EAAE;QAChCoB,WAAW,GAAGC,OAAO;QACrB;MACF;MACAA,OAAO,GAAGA,OAAO,CAACE,OAAO;IAC3B;IAEA,IAAMC,QAAQ,GAAGC,QAAQ,CAACC,sBAAsB,CAAC,CAAC;IAClD,IAAMC,cAAc,GAAGF,QAAQ,CAACC,sBAAsB,CAAC,CAAC;IACxD,IAAME,UAAsB,GAAG;MAC7BtB,GAAG,EAAElH,SAAS,CAACyI,IAAI;MACnBC,SAAS,EAAEN,QAAQ;MACnBO,YAAY,EAAEJ,cAAc;MAC5BL,KAAK,EAAElC;IACT,CAAC;;IAED;IACAiC,OAAO,GAAGjC,IAAI;IACd,OAAOiC,OAAO,EAAE;MACdA,OAAO,CAACW,MAAM,GAAGJ,UAAU;MAC3BP,OAAO,GAAGA,OAAO,CAACE,OAAO;IAC3B;;IAEA;IACA,IAAMU,YAAY,GAAGC,aAAa,CAAClC,QAAQ,EAAEC,QAAQ,CAAC;IACtDkC,iBAAA,CAAAhI,sBAAA,MAAI,EAAAiI,cAAA,EAAAC,IAAA,CAAJ,IAAI,EAAgBJ,YAAY;IAEhC9I,SAAS,CAACyI,UAAU,CAAC;;IAErB;IACA,IAAIR,WAAW,EAAE;MACfA,WAAW,CAACG,OAAO,GAAGnC,IAAI;IAC5B,CAAC,MAAM;MACLzB,UAAU,CAAC2D,KAAK,GAAGlC,IAAI;IACzB;IACA,IAAII,IAAI,EAAE;MACRA,IAAI,CAAC+B,OAAO,GAAGtB,QAAQ,aAARA,QAAQ,uBAARA,QAAQ,CAAEsB,OAAO;IAClC;;IAEA;IACAF,OAAO,GAAGjC,IAAI;IACd,OAAOiC,OAAO,EAAE;MACdA,OAAO,CAACW,MAAM,GAAGrE,UAAU;MAC3B0D,OAAO,GAAGA,OAAO,CAACE,OAAO;IAC3B;IAEA,IAAI5D,UAAU,CAAC2C,GAAG,KAAKlH,SAAS,CAACyI,IAAI,EAAE;MAAA,IAAAS,qBAAA;MACrC,CAAAA,qBAAA,GAAA3E,UAAU,CAACmE,SAAS,cAAAQ,qBAAA,eAApBA,qBAAA,CAAsBC,YAAY,CAACf,QAAQ,EAAEpB,iBAAiB,CAAC;IACjE,CAAC,MAAM;MAAA,IAAAoC,mBAAA;MACL,CAAAA,mBAAA,GAAA7E,UAAU,CAACiD,OAAO,cAAA4B,mBAAA,eAAlBA,mBAAA,CAAoBD,YAAY,CAACf,QAAQ,EAAEpB,iBAAiB,CAAC;IAC/D;IAEA,IAAIuB,cAAc,CAACc,UAAU,CAACzF,MAAM,GAAG,CAAC,EAAE;MAAA,IAAA0F,KAAA;MACxC,IAAIC,IAA4B,GAAGvD,IAAI;MACvC,OAAOuD,IAAI,IAAIA,IAAI,CAACX,MAAM,EAAE;QAC1BW,IAAI,GAAGA,IAAI,CAACX,MAAM;MACpB;MACA;MACA,IAAI,EAAAU,KAAA,GAAAC,IAAI,cAAAD,KAAA,uBAAJA,KAAA,CAAMpC,GAAG,MAAKlH,SAAS,CAACyI,IAAI,EAAE;QAChC,MAAM,IAAIe,KAAK,CACb,8EACF,CAAC;MACH;MACA,IAAMC,MAAM,GACV,OAAOF,IAAI,CAACZ,YAAY,KAAK,UAAU,GACnCY,IAAI,CAACZ,YAAY,CAAC,CAAC,GACnBY,IAAI,CAACZ,YAAY;MACvB,IAAIe,uBAAyC,GAAG,IAAI;MACpD,KAAK,IAAMC,SAAS,IAAI1C,iCAAiC,EAAE;QACzD;QACA;QACA,IAAIwC,MAAM,CAACG,QAAQ,CAACD,SAAS,CAAC,EAAE;UAC9BD,uBAAuB,GAAGC,SAAS;UACnC;QACF;MACF;MACAF,MAAM,CAACN,YAAY,CAACZ,cAAc,EAAEmB,uBAAuB,CAAC;IAC9D;IAEA,IAAMG,SAAS,GAAGf,aAAa,CAAC9C,IAAI,EAAEI,IAAI,CAAC;IAC3C2C,iBAAA,CAAAhI,sBAAA,MAAI,EAAA+I,yBAAA,EAAAb,IAAA,CAAJ,IAAI,EAA2BY,SAAS;EAC1C;EAEAE,OAAOA,CAAA,EAAS;IACd,KAAK,IAAMC,IAAI,IAAIC,MAAM,CAACC,MAAM,CAAApH,qBAAA,CAAAvC,kBAAA,EAAC,IAAI,CAAmB,CAAC,EAAE;MACzDyJ,IAAI,CAACpG,MAAM,GAAG,CAAC;IACjB;IACA,KAAK,IAAMoG,KAAI,IAAIlH,qBAAA,CAAAtC,UAAA,MAAI,EAAY0J,MAAM,CAAC,CAAC,EAAE;MAC3C,KAAK,IAAMC,QAAQ,IAAIH,KAAI,EAAE;QAC3BG,QAAQ,CAACC,UAAU,CAAC,CAAC;MACvB;MACAJ,KAAI,CAACpG,MAAM,GAAG,CAAC;IACjB;IACAd,qBAAA,CAAAtC,UAAA,MAAI,EAAY6J,KAAK,CAAC,CAAC;IACvB,IAAAvH,qBAAA,CAAArC,cAAA,EAAI,IAAI,GAAiB;MACvBX,gBAAgB,CAACwK,mBAAmB,CAAC,QAAQ,EAAAxH,qBAAA,CAAArC,cAAA,EAAE,IAAI,CAAe,CAAC;MACnE8B,qBAAA,CAAA9B,cAAA,MAAI,EAAkB8J,SAAS;IACjC;IACAhI,qBAAA,CAAA5B,SAAA,MAAI,EAAa4J,SAAS;IAC1BhI,qBAAA,CAAA3B,gBAAA,MAAI,EAAoB2J,SAAS;IACjChI,qBAAA,CAAA1B,uBAAA,MAAI,EAA2B0J,SAAS;IACxCzH,qBAAA,CAAApC,mBAAA,MAAI,EAAqB2J,KAAK,CAAC,CAAC;IAChCvH,qBAAA,CAAAhC,wBAAA,MAAI,EAA0B8C,MAAM,GAAG,CAAC;EAC1C;;EAEA;;EAoCA4G,sBAAsBA,CAAA,EAAS;IAC7BzB,iBAAA,CAAAhI,sBAAA,MAAI,EAAA0J,yBAAA,EAAAxB,IAAA,CAAJ,IAAI,EACF,kBAAkB,EAClB,IAAIyB,WAAW,CAAC,iBAAiB,CAAC;EAEtC;EAEAC,gBAAgBA,CAAA,EAAS;IACvB,IAAMC,KAAK,GAAG,IAAIF,WAAW,CAAC,WAAW,CAAC;IAC1C3B,iBAAA,CAAAhI,sBAAA,MAAI,EAAA0J,yBAAA,EAAAxB,IAAA,CAAJ,IAAI,EAA2B,YAAY,EAAE2B,KAAK;IAClD;IACAC,MAAM,CAACC,aAAa,CAACF,KAAK,CAAC;EAC7B;EAEAG,uBAAuBA,CAACC,MAGvB,EAAQ;IACPjC,iBAAA,CAAAhI,sBAAA,MAAI,EAAA0J,yBAAA,EAAAxB,IAAA,CAAJ,IAAI,EACF,mBAAmB,EACnB,IAAIyB,WAAW,CAAC,kBAAkB,EAAE;MAAEM;IAAO,CAAC,CAAC;EAEnD;EAEAC,iBAAiBA,CAAA,EAAS;IACxBlC,iBAAA,CAAAhI,sBAAA,MAAI,EAAA0J,yBAAA,EAAAxB,IAAA,CAAJ,IAAI,EACF,aAAa,EACb,IAAIyB,WAAW,CAAC,YAAY,CAAC;EAEjC;EAEAQ,kBAAkBA,CAAA,EAAS;IACzB,IAAM;MAAEC;IAAK,CAAC,GAAGvL,UAAU,CAAC,CAAC,CAAC8E,QAAQ;IACtC,IAAIyG,IAAI,IAAIA,IAAI,KAAK,GAAG,EAAE;MACxBpC,iBAAA,CAAAhI,sBAAA,MAAI,EAAA0J,yBAAA,EAAAxB,IAAA,CAAJ,IAAI,EACF,cAAc,EACd,IAAIyB,WAAW,CAAC,aAAa,EAAE;QAC7BM,MAAM,EAAE;UACNG,IAAI;UACJC,MAAM,EAAED,IAAI,CAACE,SAAS,CAAC,CAAC;QAC1B;MACF,CAAC,CAAC;IAEN,CAAC,MAAM;MACLtC,iBAAA,CAAAhI,sBAAA,MAAI,EAAA0J,yBAAA,EAAAxB,IAAA,CAAJ,IAAI,EACF,gBAAgB,EAChB,IAAIyB,WAAW,CAAC,eAAe,CAAC;IAEpC;EACF;EAEAY,wBAAwBA,CAAA,EAAS;IAC/B,KAAK,IAAM;MAAErG,KAAK;MAAEI,QAAQ,EAAEkG;IAAK,CAAC,IAAIzI,qBAAA,CAAAvC,kBAAA,MAAI,EACzCyB,gBAAgB,EAAE;MACnB+G,iBAAA,CAAAhI,sBAAA,MAAI,EAAAyK,YAAA,EAAAvC,IAAA,CAAJ,IAAI,EAAchE,KAAK,EAAEsG,IAAI;IAC/B;EACF;EAgCAE,qBAAqBA,CAAA,EAAS;IAC5BlJ,qBAAA,CAAA9B,cAAA,MAAI,EAAmBmK,KAAK,IAAK;MAC/B7B,iBAAA,CAAAhI,sBAAA,MAAI,EAAA0J,yBAAA,EAAAxB,IAAA,CAAJ,IAAI,EACF,eAAe,EACf,IAAIyB,WAAW,CAAC,cAAc,EAAE;QAC9BM,MAAM,EAAEnL,gBAAgB,CAAE+K,KAAK,CAAwBI,MAAM;MAC/D,CAAC,CAAC;IAEN,CAAC;IACDlL,gBAAgB,CAAC4L,gBAAgB,CAAC,QAAQ,EAAA5I,qBAAA,CAAArC,cAAA,EAAE,IAAI,CAAe,CAAC;EAClE;EAEAkL,2BAA2BA,CAAA,EAAS;IAAA,IAAAC,qBAAA;IAAA,IAAAC,KAAA,YAAAA,CAAA5G,KAAA,EAEpB;MAAA,IAAA6G,MAAA,YAAAA,CAAAP,IAAA,EAC+C;QAAA,IAAAQ,sBAAA;QACzD7L,KAAK,aAALA,KAAK,gBAAA6L,sBAAA,GAAL7L,KAAK,CAAE8L,iBAAiB,cAAAD,sBAAA,eAAxBA,sBAAA,CAA0B5J,SAAS,CAACoJ,IAAI,CAACU,OAAO,EAAGjB,MAAM,IAAK;UAC5DrL,eAAe,CACb4L,IAAI,CAAClG,QAAQ,EACbJ,KAAK,CAACiH,cAAc,EACpBjH,KACF,CAAC,CAAC,IAAIyF,WAAW,CAAC,cAAc,EAAE;YAAEM;UAAO,CAAC,CAAC,CAAC;QAChD,CAAC,CAAC;MACJ,CAAC;MARD,KAAK,IAAMO,IAAI,IAAK,EAAE,CAAmBY,MAAM,CAACC,QAAQ,CAAC;QAAAN,MAAA,CAAAP,IAAA;MAAA;IAS3D,CAAC;IAXD,KAAK,IAAM;MAAEtG,KAAK;MAAEI,QAAQ,EAAE+G;IAAS,CAAC,IAAItJ,qBAAA,CAAAvC,kBAAA,MAAI,EAC7C4B,SAAS;MAAA0J,KAAA,CAAA5G,KAAA;IAAA;IAYZ/E,KAAK,aAALA,KAAK,gBAAA0L,qBAAA,GAAL1L,KAAK,CAAE8L,iBAAiB,cAAAJ,qBAAA,eAAxBA,qBAAA,CAA0BS,OAAO,CAAC,MAAM;MACtCtD,iBAAA,CAAAhI,sBAAA,MAAI,EAAA0J,yBAAA,EAAAxB,IAAA,CAAJ,IAAI,EACF,gBAAgB,EAChB,IAAIyB,WAAW,CAAC,eAAe,CAAC;IAEpC,CAAC,CAAC;EACJ;EAEA4B,eAAeA,CAAA,EAAS;IACtBvD,iBAAA,CAAAhI,sBAAA,MAAI,EAAA0J,yBAAA,EAAAxB,IAAA,CAAJ,IAAI,EAA2B,SAAS,EAAE,IAAIyB,WAAW,CAAC,OAAO,CAAC;EACpE;EAEA6B,iBAAiBA,CAAA,EAAS;IACxBxD,iBAAA,CAAAhI,sBAAA,MAAI,EAAA0J,yBAAA,EAAAxB,IAAA,CAAJ,IAAI,EAA2B,WAAW,EAAE,IAAIyB,WAAW,CAAC,SAAS,CAAC;EACxE;AACF;AAAC,SAAA1B,eAxZgBwD,MAAwB,EAAQ;EAC7C,IAAMrH,cAAc,GAAG,CACrB,GAAGhF,gBAAgB,EACnB,IAAI,IAAI,CAACgB,KAAK,KAAK,MAAM,GAAGf,kBAAkB,GAAG,EAAE,CAAC,CACrD;EACD,IAAMqM,WAGH,GAAG,EAAE;;EAER;EACA,KAAK,IAAMrH,GAAG,IAAID,cAAc,EAAE;IAChC,IAAMuH,OAAO,GAAGhN,MAAM,CACpBoD,qBAAA,CAAAvC,kBAAA,MAAI,EAAoB6E,GAAG,CAAiB,EAC3CuH,IAAI,IAAKH,MAAM,CAACI,GAAG,CAACD,IAAI,CAAC1H,KAAK,CACjC,CAAC;IACD,IAAIG,GAAG,KAAK,WAAW,EAAE;MACvBqH,WAAW,CAAC5I,IAAI,CAAC,GAAG6I,OAAO,CAAC;IAC9B;EACF;;EAEA;EACA,KAAK,IAAMzH,KAAK,IAAIuH,MAAM,EAAE;IAAA,IAAAK,cAAA,EAAAC,eAAA;IAC1B,IAAMC,SAAS,GAAGjK,qBAAA,CAAAtC,UAAA,MAAI,EAAYgD,GAAG,CAACyB,KAAK,CAAC;IAC5C,IAAI8H,SAAS,aAATA,SAAS,eAATA,SAAS,CAAEnJ,MAAM,EAAE;MACrB,KAAK,IAAMuG,QAAQ,IAAI4C,SAAS,EAAE;QAChC5C,QAAQ,CAACC,UAAU,CAAC,CAAC;MACvB;MACA2C,SAAS,CAACnJ,MAAM,GAAG,CAAC;MACpBd,qBAAA,CAAAtC,UAAA,MAAI,EAAYwD,MAAM,CAACiB,KAAK,CAAC;IAC/B;IAEAhF,mBAAmB,CAACgF,KAAK,CAAC;IAC1B,CAAA4H,cAAA,GAAO5H,KAAK,CAACuC,OAAO,cAAAqF,cAAA,eAApB,OAAOA,cAAA,CAAeG,eAAe;;IAErC;IACA,CAAAF,eAAA,GAAA7H,KAAK,CAACuC,OAAO,cAAAsF,eAAA,eAAbA,eAAA,CAAepN,MAAM,CAAC,CAAC;EACzB;;EAEA;EACA,IAAMuN,YAAY,GAAG,IAAIvC,WAAW,CAAC,SAAS,CAAC;EAC/C,KAAK,IAAM;IAAEzF,KAAK,EAALA,MAAK;IAAEI;EAAS,CAAC,IAAIoH,WAAW,EAAE;IAC7C9M,eAAe,CAAC0F,QAAQ,EAAEJ,MAAK,CAACiH,cAAc,EAAEjH,MAAK,CAAC,CAACgI,YAAY,CAAC;EACtE;AACF;AAAC,SAAAnD,0BAEyB0C,MAAwB,EAAQ;EACxD,IAAMU,UAAU,GAAG,IAAIxC,WAAW,CAAC,OAAO,CAAC;EAC3C,KAAK,IAAM;IAAEzF,KAAK;IAAEI;EAAS,CAAC,IAAIvC,qBAAA,CAAAvC,kBAAA,MAAI,EAAoB0B,OAAO,EAAE;IACjE,IAAIuK,MAAM,CAACI,GAAG,CAAC3H,KAAK,CAAC,EAAE;MACrBtF,eAAe,CAAC0F,QAAQ,EAAEJ,KAAK,CAACiH,cAAc,EAAEjH,KAAK,CAAC,CAACiI,UAAU,CAAC;IACpE;EACF;EAEA,KAAK,IAAM;IAAEjI,KAAK,EAALA,OAAK;IAAEI,QAAQ,EAAEkG;EAAK,CAAC,IAAIzI,qBAAA,CAAAvC,kBAAA,MAAI,EACzCyB,gBAAgB,EAAE;IACnB,IAAIwK,MAAM,CAACI,GAAG,CAAC3H,OAAK,CAAC,EAAE;MACrB8D,iBAAA,CAAAhI,sBAAA,MAAI,EAAAyK,YAAA,EAAAvC,IAAA,CAAJ,IAAI,EAAchE,OAAK,EAAEsG,IAAI;IAC/B;EACF;AACF;AAAC,SAAAd,0BAyLC0C,IAUe,EACfvC,KAAY,EACN;EACN;EACA,IACEwC,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,aAAa,IACtC,IAAI,CAACnM,KAAK,KAAK,UAAU,IACzBf,kBAAkB,CAACmN,QAAQ,CAACJ,IAAoB,CAAC,EACjD;IACA,MAAM,IAAI3D,KAAK,eAAA2C,MAAA,CACEgB,IAAI,0BAAAhB,MAAA,CAAwB,IAAI,CAAChL,KAAK,sDACvD,CAAC;EACH;EACA,KAAK,IAAM;IAAE8D,KAAK;IAAEI;EAAS,CAAC,IAAIvC,qBAAA,CAAAvC,kBAAA,MAAI,EAAoB4M,IAAI,CAAC,EAAE;IAC/DxN,eAAe,CAAC0F,QAAQ,EAAEJ,KAAK,CAACiH,cAAc,EAAEjH,KAAK,CAAC,CAAC2F,KAAK,CAAC;EAC/D;EACA,IAAMlF,kBAAkB,GAAG5C,qBAAA,CAAApC,mBAAA,MAAI,EAAqB8C,GAAG,CAAC2J,IAAI,CAAC;EAC7D,IAAIzH,kBAAkB,EAAE;IACtB,KAAK,IAAMD,EAAE,IAAIC,kBAAkB,EAAE;MACnCD,EAAE,CAAC,CAAC;IACN;EACF;AACF;AAAC,SAAA+F,aA4DYvG,KAAkB,EAAEsG,IAAwB,EAAE;EAAA,IAAAiC,eAAA;EACzD,IAAMC,SAAS,IAAAD,eAAA,GAAGjC,IAAI,CAACkC,SAAS,cAAAD,eAAA,cAAAA,eAAA,GAAI,GAAG;EACvC,IAAMrD,QAAQ,GAAG,IAAIuD,oBAAoB,CACvC,CAACC,OAAO,EAAExD,QAAQ,KAAK;IACrBwD,OAAO,CAACC,OAAO,CAAEC,KAAK,IAAK;MACzB,IAAIA,KAAK,CAACC,cAAc,EAAE;QACxB,IAAID,KAAK,CAACE,iBAAiB,IAAIN,SAAS,EAAE;UACxC9N,eAAe,CACb4L,IAAI,CAAClG,QAAQ,EACbJ,KAAK,CAACiH,cAAc,EACpBjH,KACF,CAAC,CAAC,IAAIyF,WAAW,CAAC,kBAAkB,CAAC,CAAC;UACtCP,QAAQ,CAACC,UAAU,CAAC,CAAC;QACvB;MACF;IACF,CAAC,CAAC;EACJ,CAAC,EACD;IACEqD;EACF,CACF,CAAC;EACDtD,QAAQ,CAAC6D,OAAO,CAAC/I,KAAK,CAACuC,OAAQ,CAAC;EAChC,IAAIwC,IAAI,GAAGlH,qBAAA,CAAAtC,UAAA,MAAI,EAAYgD,GAAG,CAACyB,KAAK,CAAC;EACrC,IAAI,CAAC+E,IAAI,EAAE;IACTA,IAAI,GAAG,EAAE;IACTlH,qBAAA,CAAAtC,UAAA,MAAI,EAAYuC,GAAG,CAACkC,KAAK,EAAE+E,IAAI,CAAC;EAClC;EACAA,IAAI,CAACnG,IAAI,CAACsG,QAAQ,CAAC;AACrB;AA6CF,SAAS9D,WAAWA,CAClBL,IAAiC,EACJ;EAC7B,IAAII,IAAI,GAAGJ,IAAI;EACf,QAAAiI,KAAA,GAAO7H,IAAI,cAAA6H,KAAA,eAAJA,KAAA,CAAM9F,OAAO,EAAE;IAAA,IAAA8F,KAAA;IACpB7H,IAAI,GAAGA,IAAI,CAAC+B,OAAO;EACrB;EACA,OAAO/B,IAAI;AACb;AAEA,SAASG,iBAAiBA,CACxBP,IAAiC,EACR;EACzB,OAAOkI,sBAAsB,CAAClI,IAAI,EAAE,KAAK,CAAC;AAC5C;AAEA,SAASuB,iBAAiBA,CACxBvB,IAAiC,EACR;EACzB,OAAOkI,sBAAsB,CAAClI,IAAI,EAAE,IAAI,CAAC;AAC3C;AAEA,SAASkI,sBAAsBA,CAC7BlI,IAAiC,EACjCmI,IAAa,EACY;EACzB,IAAI/H,IAA6B;EACjC,IAAI6B,OAAO,GAAGjC,IAAI;EAClB,OAAOiC,OAAO,EAAE;IACd,IAAIA,OAAO,CAACf,GAAG,KAAKlH,SAAS,CAACoO,KAAK,IAAI,CAACnG,OAAO,CAACwB,MAAM,EAAE;MACtD,IAAI0E,IAAI,EAAE;QACR,OAAOlG,OAAO;MAChB;MACA7B,IAAI,GAAG6B,OAAO;IAChB;IACAA,OAAO,GAAGA,OAAO,CAACE,OAAO;EAC3B;EACA,OAAO/B,IAAI;AACb;AAEA,SAASK,iBAAiBA,CACxBT,IAAiC,EACR;EACzB,OAAOqI,sBAAsB,CAACrI,IAAI,EAAE,KAAK,CAAC;AAC5C;AAEA,SAAS0B,iBAAiBA,CACxB1B,IAAiC,EACR;EACzB,OAAOqI,sBAAsB,CAACrI,IAAI,EAAE,IAAI,CAAC;AAC3C;AAEA,SAASqI,sBAAsBA,CAC7BrI,IAAiC,EACjCmI,IAAa,EACY;EACzB,IAAI/H,IAA6B;EACjC,IAAI6B,OAAO,GAAGjC,IAAI;EAClB,OAAOiC,OAAO,EAAE;IACd,IAAIA,OAAO,CAACf,GAAG,KAAKlH,SAAS,CAACoO,KAAK,IAAInG,OAAO,CAACwB,MAAM,EAAE;MACrD,IAAI0E,IAAI,EAAE;QACR,OAAOlG,OAAO;MAChB;MACA7B,IAAI,GAAG6B,OAAO;IAChB;IACA,IAAIA,OAAO,CAACC,KAAK,EAAE;MACjBD,OAAO,GAAGA,OAAO,CAACC,KAAK;IACzB,CAAC,MAAM,IAAID,OAAO,CAACE,OAAO,EAAE;MAC1BF,OAAO,GAAGA,OAAO,CAACE,OAAO;IAC3B,CAAC,MAAM;MAAA,IAAAmG,cAAA;MACL,IAAIC,aAAkD,GAAGtG,OAAO,CAACW,MAAM;MACvE,OAAO2F,aAAa,EAAE;QACpB,IAAIA,aAAa,CAACpG,OAAO,EAAE;UACzB;QACF;QACAoG,aAAa,GAAGA,aAAa,CAAC3F,MAAM;MACtC;MACAX,OAAO,IAAAqG,cAAA,GAAGC,aAAa,cAAAD,cAAA,uBAAbA,cAAA,CAAenG,OAAO;IAClC;EACF;EACA,OAAO/B,IAAI;AACb;AAEA,SAAS0C,aAAaA,CACpB0F,IAAiC,EACjCC,EAA+B,EACb;EAClB,IAAMC,KAAK,GAAG,IAAI9I,GAAG,CAAc,CAAC;EACpC,IAAIqC,OAAO,GAAGuG,IAAI;EAClB,OAAOvG,OAAO,EAAE;IACd,IAAIA,OAAO,CAACf,GAAG,KAAKlH,SAAS,CAACoO,KAAK,EAAE;MACnCM,KAAK,CAAC/I,GAAG,CAACsC,OAAO,CAAC;IACpB;IACA,IAAIA,OAAO,CAACC,KAAK,EAAE;MACjBD,OAAO,GAAGA,OAAO,CAACC,KAAK;IACzB,CAAC,MAAM,IAAID,OAAO,KAAKwG,EAAE,EAAE;MACzB;IACF,CAAC,MAAM,IAAIxG,OAAO,CAACE,OAAO,EAAE;MAC1BF,OAAO,GAAGA,OAAO,CAACE,OAAO;IAC3B,CAAC,MAAM;MAAA,IAAAwG,eAAA;MACL,IAAIJ,aAAkD,GAAGtG,OAAO,CAACW,MAAM;MACvE,OAAO2F,aAAa,IAAIA,aAAa,KAAKE,EAAE,EAAE;QAC5C,IAAIF,aAAa,CAACpG,OAAO,EAAE;UACzB;QACF;QACAoG,aAAa,GAAGA,aAAa,CAAC3F,MAAM;MACtC;MACA,IAAI2F,aAAa,KAAKE,EAAE,EAAE;QACxB;MACF;MACAxG,OAAO,IAAA0G,eAAA,GAAGJ,aAAa,cAAAI,eAAA,uBAAbA,eAAA,CAAexG,OAAO;IAClC;EACF;EACA,OAAOuG,KAAK;AACd"}
@@ -2,9 +2,9 @@ import _objectSpread from "@babel/runtime/helpers/objectSpread2";
2
2
  import _asyncToGenerator from "@babel/runtime/helpers/asyncToGenerator";
3
3
  import _classPrivateMethodInitSpec from "@babel/runtime/helpers/classPrivateMethodInitSpec";
4
4
  import _classPrivateFieldInitSpec from "@babel/runtime/helpers/classPrivateFieldInitSpec";
5
- import _classPrivateFieldGet from "@babel/runtime/helpers/classPrivateFieldGet";
6
- import _classPrivateMethodGet from "@babel/runtime/helpers/classPrivateMethodGet";
7
- import _classPrivateFieldSet from "@babel/runtime/helpers/classPrivateFieldSet";
5
+ function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
6
+ function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
7
+ function _assertClassBrand(e, t, n) { if ("function" == typeof e ? e === t : e.has(t)) return arguments.length < 3 ? t : n; throw new TypeError("Private element is not present on this object"); }
8
8
  import { locationsAreEqual } from "history";
9
9
  import { HttpAbortError } from "@next-core/http";
10
10
  import { uniqueId } from "lodash";
@@ -42,68 +42,26 @@ var _renderId = /*#__PURE__*/new WeakMap();
42
42
  var _currentApp = /*#__PURE__*/new WeakMap();
43
43
  var _previousApp = /*#__PURE__*/new WeakMap();
44
44
  var _navConfig = /*#__PURE__*/new WeakMap();
45
- var _getBlockMessageBeforePageLave = /*#__PURE__*/new WeakSet();
46
- var _safeRedirect = /*#__PURE__*/new WeakSet();
47
- var _queuedRender = /*#__PURE__*/new WeakSet();
48
- var _render = /*#__PURE__*/new WeakSet();
45
+ var _Router_brand = /*#__PURE__*/new WeakSet();
49
46
  export class Router {
50
47
  constructor(storyboards) {
51
- _classPrivateMethodInitSpec(this, _render);
52
- _classPrivateMethodInitSpec(this, _queuedRender);
53
- _classPrivateMethodInitSpec(this, _safeRedirect);
54
- _classPrivateMethodInitSpec(this, _getBlockMessageBeforePageLave);
55
- _classPrivateFieldInitSpec(this, _storyboards, {
56
- writable: true,
57
- value: void 0
58
- });
59
- _classPrivateFieldInitSpec(this, _rendering, {
60
- writable: true,
61
- value: false
62
- });
63
- _classPrivateFieldInitSpec(this, _prevLocation, {
64
- writable: true,
65
- value: void 0
66
- });
67
- _classPrivateFieldInitSpec(this, _nextLocation, {
68
- writable: true,
69
- value: void 0
70
- });
71
- _classPrivateFieldInitSpec(this, _runtimeContext, {
72
- writable: true,
73
- value: void 0
74
- });
75
- _classPrivateFieldInitSpec(this, _rendererContext, {
76
- writable: true,
77
- value: void 0
78
- });
79
- _classPrivateFieldInitSpec(this, _rendererContextTrashCan, {
80
- writable: true,
81
- value: new Set()
82
- });
83
- _classPrivateFieldInitSpec(this, _redirectCount, {
84
- writable: true,
85
- value: 0
86
- });
87
- _classPrivateFieldInitSpec(this, _renderId, {
88
- writable: true,
89
- value: void 0
90
- });
91
- _classPrivateFieldInitSpec(this, _currentApp, {
92
- writable: true,
93
- value: void 0
94
- });
95
- _classPrivateFieldInitSpec(this, _previousApp, {
96
- writable: true,
97
- value: void 0
98
- });
99
- _classPrivateFieldInitSpec(this, _navConfig, {
100
- writable: true,
101
- value: void 0
102
- });
103
- _classPrivateFieldSet(this, _storyboards, storyboards);
48
+ _classPrivateMethodInitSpec(this, _Router_brand);
49
+ _classPrivateFieldInitSpec(this, _storyboards, void 0);
50
+ _classPrivateFieldInitSpec(this, _rendering, false);
51
+ _classPrivateFieldInitSpec(this, _prevLocation, void 0);
52
+ _classPrivateFieldInitSpec(this, _nextLocation, void 0);
53
+ _classPrivateFieldInitSpec(this, _runtimeContext, void 0);
54
+ _classPrivateFieldInitSpec(this, _rendererContext, void 0);
55
+ _classPrivateFieldInitSpec(this, _rendererContextTrashCan, new Set());
56
+ _classPrivateFieldInitSpec(this, _redirectCount, 0);
57
+ _classPrivateFieldInitSpec(this, _renderId, void 0);
58
+ _classPrivateFieldInitSpec(this, _currentApp, void 0);
59
+ _classPrivateFieldInitSpec(this, _previousApp, void 0);
60
+ _classPrivateFieldInitSpec(this, _navConfig, void 0);
61
+ _classPrivateFieldSet(_storyboards, this, storyboards);
104
62
  var _history = getHistory();
105
63
  window.addEventListener("beforeunload", event => {
106
- var message = _classPrivateMethodGet(this, _getBlockMessageBeforePageLave, _getBlockMessageBeforePageLave2).call(this, {});
64
+ var message = _assertClassBrand(_Router_brand, this, _getBlockMessageBeforePageLave).call(this, {});
107
65
  // See examples in https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload
108
66
  if (message) {
109
67
  // Cancel the event
@@ -116,31 +74,31 @@ export class Router {
116
74
  delete event.returnValue;
117
75
  }
118
76
  });
119
- _history.block((location, action) => _classPrivateMethodGet(this, _getBlockMessageBeforePageLave, _getBlockMessageBeforePageLave2).call(this, {
77
+ _history.block((location, action) => _assertClassBrand(_Router_brand, this, _getBlockMessageBeforePageLave).call(this, {
120
78
  location,
121
79
  action
122
80
  }));
123
81
  }
124
82
  getRenderId() {
125
- return _classPrivateFieldGet(this, _renderId);
83
+ return _classPrivateFieldGet(_renderId, this);
126
84
  }
127
85
  getRuntimeContext() {
128
- return _classPrivateFieldGet(this, _runtimeContext);
86
+ return _classPrivateFieldGet(_runtimeContext, this);
129
87
  }
130
88
  getRecentApps() {
131
89
  return {
132
- currentApp: _classPrivateFieldGet(this, _currentApp),
133
- previousApp: _classPrivateFieldGet(this, _previousApp)
90
+ currentApp: _classPrivateFieldGet(_currentApp, this),
91
+ previousApp: _classPrivateFieldGet(_previousApp, this)
134
92
  };
135
93
  }
136
94
  getNavConfig() {
137
- return _classPrivateFieldGet(this, _navConfig);
95
+ return _classPrivateFieldGet(_navConfig, this);
138
96
  }
139
97
  bootstrap() {
140
98
  var _this = this;
141
99
  initAbortController();
142
100
  var history = getHistory();
143
- _classPrivateFieldSet(this, _prevLocation, history.location);
101
+ _classPrivateFieldSet(_prevLocation, this, history.location);
144
102
  var renderId = 0;
145
103
  history.listen( /*#__PURE__*/function () {
146
104
  var _ref = _asyncToGenerator(function* (location, action) {
@@ -159,19 +117,19 @@ export class Router {
159
117
  // such as goBack or goForward,
160
118
  action === "POP" && (
161
119
  // and the previous location was triggered by hash link,
162
- _classPrivateFieldGet(_this, _prevLocation).key === undefined ||
120
+ _classPrivateFieldGet(_prevLocation, _this).key === undefined ||
163
121
  // or the previous location specified notify false.
164
- ((_classPrivateFieldGet2 = _classPrivateFieldGet(_this, _prevLocation).state) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.notify) === false)) {
122
+ ((_classPrivateFieldGet2 = _classPrivateFieldGet(_prevLocation, _this).state) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.notify) === false)) {
165
123
  omittedLocationProps.key = undefined;
166
124
  }
167
- if (locationsAreEqual(_objectSpread(_objectSpread({}, _classPrivateFieldGet(_this, _prevLocation)), omittedLocationProps), _objectSpread(_objectSpread({}, location), omittedLocationProps)) || action !== "POP" && ((_location$state = location.state) === null || _location$state === void 0 ? void 0 : _location$state.notify) === false) {
125
+ if (locationsAreEqual(_objectSpread(_objectSpread({}, _classPrivateFieldGet(_prevLocation, _this)), omittedLocationProps), _objectSpread(_objectSpread({}, location), omittedLocationProps)) || action !== "POP" && ((_location$state = location.state) === null || _location$state === void 0 ? void 0 : _location$state.notify) === false) {
168
126
  // Ignore rendering if location not changed except hash, state and optional key.
169
127
  // Ignore rendering if notify is `false`.
170
128
  ignoreRendering = true;
171
129
  }
172
130
  if (!ignoreRendering && !((_location$state2 = location.state) !== null && _location$state2 !== void 0 && _location$state2.noIncremental)) {
173
131
  var _classPrivateFieldGet3;
174
- ignoreRendering = yield (_classPrivateFieldGet3 = _classPrivateFieldGet(_this, _rendererContext)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.didPerformIncrementalRender(location, _classPrivateFieldGet(_this, _prevLocation));
132
+ ignoreRendering = yield (_classPrivateFieldGet3 = _classPrivateFieldGet(_rendererContext, _this)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.didPerformIncrementalRender(location, _classPrivateFieldGet(_prevLocation, _this));
175
133
  }
176
134
 
177
135
  // Ignore stale renders
@@ -179,14 +137,14 @@ export class Router {
179
137
  return;
180
138
  }
181
139
  if (ignoreRendering) {
182
- _classPrivateFieldSet(_this, _prevLocation, location);
140
+ _classPrivateFieldSet(_prevLocation, _this, location);
183
141
  return;
184
142
  }
185
143
  abortPendingRequest();
186
- _classPrivateFieldSet(_this, _prevLocation, location);
187
- (_classPrivateFieldGet4 = _classPrivateFieldGet(_this, _rendererContext)) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.dispatchPageLeave();
144
+ _classPrivateFieldSet(_prevLocation, _this, location);
145
+ (_classPrivateFieldGet4 = _classPrivateFieldGet(_rendererContext, _this)) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.dispatchPageLeave();
188
146
  if (action === "POP") {
189
- var storyboard = matchStoryboard(_classPrivateFieldGet(_this, _storyboards), location.pathname);
147
+ var storyboard = matchStoryboard(_classPrivateFieldGet(_storyboards, _this), location.pathname);
190
148
  // When a browser action of goBack or goForward is performing,
191
149
  // force reload when the target page is a page of an outside app.
192
150
  if (isOutsideApp(storyboard)) {
@@ -194,25 +152,25 @@ export class Router {
194
152
  return;
195
153
  }
196
154
  }
197
- if (_classPrivateFieldGet(_this, _rendering)) {
198
- _classPrivateFieldSet(_this, _nextLocation, location);
155
+ if (_classPrivateFieldGet(_rendering, _this)) {
156
+ _classPrivateFieldSet(_nextLocation, _this, location);
199
157
  } else {
200
158
  devtoolsHookEmit("locationChange");
201
- _classPrivateMethodGet(_this, _queuedRender, _queuedRender2).call(_this, location).catch(handleHttpError);
159
+ _assertClassBrand(_Router_brand, _this, _queuedRender).call(_this, location).catch(handleHttpError);
202
160
  }
203
161
  });
204
162
  return function (_x, _x2) {
205
163
  return _ref.apply(this, arguments);
206
164
  };
207
165
  }());
208
- return _classPrivateMethodGet(this, _queuedRender, _queuedRender2).call(this, history.location);
166
+ return _assertClassBrand(_Router_brand, this, _queuedRender).call(this, history.location);
209
167
  }
210
168
  }
211
- function _getBlockMessageBeforePageLave2(detail) {
169
+ function _getBlockMessageBeforePageLave(detail) {
212
170
  var _classPrivateFieldGet5;
213
171
  var history = getHistory();
214
172
  var previousMessage = history.getBlockMessage();
215
- (_classPrivateFieldGet5 = _classPrivateFieldGet(this, _rendererContext)) === null || _classPrivateFieldGet5 === void 0 || _classPrivateFieldGet5.dispatchBeforePageLeave(detail);
173
+ (_classPrivateFieldGet5 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet5 === void 0 || _classPrivateFieldGet5.dispatchBeforePageLeave(detail);
216
174
  var message = history.getBlockMessage();
217
175
  if (!previousMessage && message) {
218
176
  // Auto unblock only if new block was introduced by `onBeforePageLeave`.
@@ -220,9 +178,9 @@ function _getBlockMessageBeforePageLave2(detail) {
220
178
  }
221
179
  return message;
222
180
  }
223
- function _safeRedirect2(to, state, from) {
181
+ function _safeRedirect(to, state, from) {
224
182
  var _this$redirectCount, _this$redirectCount2;
225
- if ((_classPrivateFieldSet(this, _redirectCount, (_this$redirectCount = _classPrivateFieldGet(this, _redirectCount), _this$redirectCount2 = _this$redirectCount++, _this$redirectCount)), _this$redirectCount2) > 10) {
183
+ if ((_classPrivateFieldSet(_redirectCount, this, (_this$redirectCount = _classPrivateFieldGet(_redirectCount, this), _this$redirectCount2 = _this$redirectCount++, _this$redirectCount)), _this$redirectCount2) > 10) {
226
184
  var message = "Infinite redirect detected: from \"".concat(from.pathname).concat(from.search).concat(from.hash, "\" to \"").concat(to, "\"");
227
185
  // istanbul ignore else: error cannot be caught in test
228
186
  if (process.env.NODE_ENV === "test") {
@@ -235,36 +193,36 @@ function _safeRedirect2(to, state, from) {
235
193
  }
236
194
  getHistory().replace(to, state);
237
195
  }
238
- function _queuedRender2(_x3) {
239
- return _queuedRender3.apply(this, arguments);
196
+ function _queuedRender(_x3) {
197
+ return _queuedRender2.apply(this, arguments);
240
198
  }
241
- function _queuedRender3() {
242
- _queuedRender3 = _asyncToGenerator(function* (location) {
243
- _classPrivateFieldSet(this, _rendering, true);
199
+ function _queuedRender2() {
200
+ _queuedRender2 = _asyncToGenerator(function* (location) {
201
+ _classPrivateFieldSet(_rendering, this, true);
244
202
  try {
245
- yield _classPrivateMethodGet(this, _render, _render2).call(this, location);
203
+ yield _assertClassBrand(_Router_brand, this, _render).call(this, location);
246
204
  } finally {
247
- _classPrivateFieldSet(this, _rendering, false);
248
- if (_classPrivateFieldGet(this, _nextLocation)) {
249
- var nextLocation = _classPrivateFieldGet(this, _nextLocation);
250
- _classPrivateFieldSet(this, _nextLocation, undefined);
251
- yield _classPrivateMethodGet(this, _queuedRender, _queuedRender2).call(this, nextLocation);
205
+ _classPrivateFieldSet(_rendering, this, false);
206
+ if (_classPrivateFieldGet(_nextLocation, this)) {
207
+ var nextLocation = _classPrivateFieldGet(_nextLocation, this);
208
+ _classPrivateFieldSet(_nextLocation, this, undefined);
209
+ yield _assertClassBrand(_Router_brand, this, _queuedRender).call(this, nextLocation);
252
210
  }
253
211
  }
254
212
  });
255
- return _queuedRender3.apply(this, arguments);
213
+ return _queuedRender2.apply(this, arguments);
256
214
  }
257
- function _render2(_x4) {
258
- return _render3.apply(this, arguments);
215
+ function _render(_x4) {
216
+ return _render2.apply(this, arguments);
259
217
  }
260
- function _render3() {
261
- _render3 = _asyncToGenerator(function* (location) {
218
+ function _render2() {
219
+ _render2 = _asyncToGenerator(function* (location) {
262
220
  var _hooks$flowApi,
263
221
  _hooks$pageView,
264
222
  _classPrivateFieldGet6,
265
223
  _storyboard$app,
266
224
  _this2 = this;
267
- var renderId = _classPrivateFieldSet(this, _renderId, uniqueId("render-id-"));
225
+ var renderId = _classPrivateFieldSet(_renderId, this, uniqueId("render-id-"));
268
226
  resetAllComputedMarks();
269
227
  clearResolveCache();
270
228
  hooks === null || hooks === void 0 || (_hooks$flowApi = hooks.flowApi) === null || _hooks$flowApi === void 0 || _hooks$flowApi.clearCollectWidgetContract();
@@ -273,8 +231,8 @@ function _render3() {
273
231
 
274
232
  // const renderStartTime = performance.now();
275
233
  var finishPageView = hooks === null || hooks === void 0 || (_hooks$pageView = hooks.pageView) === null || _hooks$pageView === void 0 ? void 0 : _hooks$pageView.create();
276
- var storyboard = matchStoryboard(_classPrivateFieldGet(this, _storyboards), location.pathname);
277
- var previousApp = (_classPrivateFieldGet6 = _classPrivateFieldGet(this, _runtimeContext)) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.app;
234
+ var storyboard = matchStoryboard(_classPrivateFieldGet(_storyboards, this), location.pathname);
235
+ var previousApp = (_classPrivateFieldGet6 = _classPrivateFieldGet(_runtimeContext, this)) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.app;
278
236
  var currentAppId = storyboard === null || storyboard === void 0 || (_storyboard$app = storyboard.app) === null || _storyboard$app === void 0 ? void 0 : _storyboard$app.id;
279
237
  // dynamically change the value of the APP variable, if it's union app
280
238
  if (window.BOOTSTRAP_UNION_FILE && currentAppId && currentAppId !== (previousApp === null || previousApp === void 0 ? void 0 : previousApp.id)) {
@@ -286,7 +244,7 @@ function _render3() {
286
244
  if (storyboard !== null && storyboard !== void 0 && storyboard.app) {
287
245
  yield fulfilStoryboard(storyboard);
288
246
  }
289
- var currentApp = _classPrivateFieldSet(this, _currentApp, storyboard === null || storyboard === void 0 ? void 0 : storyboard.app);
247
+ var currentApp = _classPrivateFieldSet(_currentApp, this, storyboard === null || storyboard === void 0 ? void 0 : storyboard.app);
290
248
 
291
249
  // Storyboard maybe re-assigned, e.g. when open launchpad.
292
250
  var appChanged = previousApp && currentApp ? previousApp.id !== currentApp.id : previousApp !== currentApp;
@@ -295,13 +253,13 @@ function _render3() {
295
253
 
296
254
  // Set `Router::#currentApp` before calling `getFeatureFlags()`
297
255
  var flags = getRuntime().getFeatureFlags();
298
- var prevRendererContext = _classPrivateFieldGet(this, _rendererContext);
256
+ var prevRendererContext = _classPrivateFieldGet(_rendererContext, this);
299
257
  var redirectTo = (to, state) => {
300
258
  finishPageView === null || finishPageView === void 0 || finishPageView({
301
259
  status: "redirected"
302
260
  });
303
- _classPrivateFieldGet(this, _rendererContextTrashCan).add(prevRendererContext);
304
- _classPrivateMethodGet(this, _safeRedirect, _safeRedirect2).call(this, to, state, location);
261
+ _classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
262
+ _assertClassBrand(_Router_brand, this, _safeRedirect).call(this, to, state, location);
305
263
  };
306
264
  var redirectToLogin = () => {
307
265
  var to = flags["sso-enabled"] ? "/sso-auth/login" : "/auth/login";
@@ -323,17 +281,17 @@ function _render3() {
323
281
  unmountTree(portal);
324
282
 
325
283
  // Note: redirects can lead to multiple trash renderer contexts.
326
- _classPrivateFieldGet(this, _rendererContextTrashCan).add(prevRendererContext);
327
- for (var item of _classPrivateFieldGet(this, _rendererContextTrashCan)) {
284
+ _classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
285
+ for (var item of _classPrivateFieldGet(_rendererContextTrashCan, this)) {
328
286
  if (item) {
329
287
  item.dispatchOnUnmount();
330
288
  item.dispose();
331
289
  }
332
290
  }
333
- _classPrivateFieldGet(this, _rendererContextTrashCan).clear();
291
+ _classPrivateFieldGet(_rendererContextTrashCan, this).clear();
334
292
  hooks === null || hooks === void 0 || (_hooks$messageDispatc = hooks.messageDispatcher) === null || _hooks$messageDispatc === void 0 || _hooks$messageDispatc.reset();
335
293
  if (appChanged) {
336
- _classPrivateFieldSet(this, _previousApp, previousApp);
294
+ _classPrivateFieldSet(_previousApp, this, previousApp);
337
295
  window.dispatchEvent(new CustomEvent("app.change", {
338
296
  detail: {
339
297
  previousApp,
@@ -358,12 +316,12 @@ function _render3() {
358
316
  return true;
359
317
  }
360
318
  // Reset redirect count if no redirect is set.
361
- _classPrivateFieldSet(this, _redirectCount, 0);
319
+ _classPrivateFieldSet(_redirectCount, this, 0);
362
320
  },
363
321
  mergeMenus: function () {
364
322
  var _ref2 = _asyncToGenerator(function* (menuRequests) {
365
323
  var menuConfs = yield Promise.all(menuRequests);
366
- _classPrivateFieldSet(_this2, _navConfig, mergeMenuConfs(menuConfs));
324
+ _classPrivateFieldSet(_navConfig, _this2, mergeMenuConfs(menuConfs));
367
325
  });
368
326
  return function mergeMenus(_x5) {
369
327
  return _ref2.apply(this, arguments);
@@ -374,7 +332,7 @@ function _render3() {
374
332
  redirectToLogin();
375
333
  return;
376
334
  } else if (error instanceof HttpAbortError) {
377
- _classPrivateFieldGet(this, _rendererContextTrashCan).add(prevRendererContext);
335
+ _classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
378
336
  return;
379
337
  } else {
380
338
  var noAuthGuardLoginPath = getRuntime().getMiscSettings().noAuthGuardLoginPath;
@@ -403,11 +361,11 @@ function _render3() {
403
361
  }
404
362
  }
405
363
  };
406
- var rendererContext = _classPrivateFieldSet(this, _rendererContext, new RendererContext("page", {
364
+ var rendererContext = _classPrivateFieldSet(_rendererContext, this, new RendererContext("page", {
407
365
  routeHelper,
408
366
  renderId
409
367
  }));
410
- var runtimeContext = _classPrivateFieldSet(this, _runtimeContext, {
368
+ var runtimeContext = _classPrivateFieldSet(_runtimeContext, this, {
411
369
  app: currentApp,
412
370
  location,
413
371
  query: new URLSearchParams(location.search),
@@ -422,7 +380,7 @@ function _render3() {
422
380
  tplStateStoreMap: new Map(),
423
381
  formStateStoreMap: new Map()
424
382
  });
425
- _classPrivateFieldSet(this, _navConfig, undefined);
383
+ _classPrivateFieldSet(_navConfig, this, undefined);
426
384
  registerCustomTemplates(storyboard);
427
385
  registerStoryboardFunctions((_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.functions, currentApp);
428
386
  hooks === null || hooks === void 0 || (_hooks$flowApi2 = hooks.flowApi) === null || _hooks$flowApi2 === void 0 || _hooks$flowApi2.collectContract((_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.contracts);
@@ -517,7 +475,7 @@ function _render3() {
517
475
  });
518
476
  devtoolsHookEmit("rendered");
519
477
  });
520
- return _render3.apply(this, arguments);
478
+ return _render2.apply(this, arguments);
521
479
  }
522
480
  function mergeMenuConfs(menuConfs) {
523
481
  var navConfig = {