@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.
- package/dist/cjs/internal/RendererContext.js +92 -123
- package/dist/cjs/internal/RendererContext.js.map +1 -1
- package/dist/cjs/internal/Router.js +68 -110
- package/dist/cjs/internal/Router.js.map +1 -1
- package/dist/cjs/internal/Runtime.js +13 -19
- package/dist/cjs/internal/Runtime.js.map +1 -1
- package/dist/esm/CustomProcessors.js +6 -8
- package/dist/esm/CustomProcessors.js.map +1 -1
- package/dist/esm/CustomTemplates.js +6 -8
- package/dist/esm/CustomTemplates.js.map +1 -1
- package/dist/esm/internal/RendererContext.js +92 -123
- package/dist/esm/internal/RendererContext.js.map +1 -1
- package/dist/esm/internal/Router.js +76 -118
- package/dist/esm/internal/Router.js.map +1 -1
- package/dist/esm/internal/Runtime.js +13 -19
- package/dist/esm/internal/Runtime.js.map +1 -1
- package/dist/types/tsdoc-metadata.json +1 -1
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RendererContext.js","names":["_lodash","require","_bindListeners","_history","_proxyFactories","_mediaQuery","_mount","_enums","_bindTemplateProxy","_Runtime","commonLifeCycles","pageOnlyLifeCycles","_routeHelper","WeakMap","_memoizedLifeCycle","_observers","_mediaListener","_arbitraryLifeCycle","_memoized","_allMenuRequests","_memoizedMenuRequestMap","_locationChangeCallbacks","_unmountBricks","WeakSet","_initializeRerenderBricks","_dispatchGeneralLifeCycle","_addObserver","RendererContext","constructor","scope","options","_options$unknownBrick","_classPrivateMethodInitSpec2","default","_defineProperty2","_classPrivateFieldInitSpec2","writable","value","onBeforePageLoad","onPageLoad","onPageLeave","onBeforePageLeave","onAnchorLoad","onAnchorUnload","onMediaChange","onScrollIntoView","onMount","onUnmount","onMessage","onMessageClose","Map","unknownBricks","_classPrivateFieldSet2","routeHelper","renderId","setInitialMenuRequests","menuRequests","memoizeMenuRequests","route","_classPrivateFieldGet4","set","reMergeMenuRequests","routes","currentRoute","previousMenuRequest","previousRoute","_classPrivateFieldGet2","get","mergedMenuRequests","previousIndex","indexOf","length","push","splice","_classPrivateFieldGet3","delete","mergeMenus","reBailout","output","bailout","reCatch","error","returnNode","catch","didPerformIncrementalRender","location","prevLocation","i","callback","performIncrementalRender","registerBrickLifeCycle","brick","lifeCycle","lifeCycleTypes","key","handlers","isEmpty","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","RenderTag","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","_classPrivateMethodGet2","_unmountBricks2","call","mountTree","_returnNode$container","insertBefore","_returnNode$element","childNodes","_root","root","Error","portal","insertPortalBeforeChild","candidate","contains","newBricks","_initializeRerenderBricks2","dispose","list","Object","values","observer","disconnect","clear","mediaEventTarget","removeEventListener","undefined","dispatchBeforePageLoad","_dispatchGeneralLifeCycle2","CustomEvent","dispatchPageLoad","event","window","dispatchEvent","dispatchBeforePageLeave","detail","dispatchPageLeave","dispatchAnchorLoad","hash","getHistory","anchor","substring","initializeScrollIntoView","conf","_addObserver2","initializeMediaChange","getReadOnlyProxy","addEventListener","initializeMessageDispatcher","_hooks$messageDispatc2","confList","concat","_hooks$messageDispatc","hooks","messageDispatcher","channel","listenerFactory","runtimeContext","onClose","dispatchOnMount","dispatchOnUnmount","exports","bricks","unmountList","removed","remove","item","has","_brick$element","_brick$element2","observers","unbindTemplateProxy","$$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":["_lodash","require","_bindListeners","_history","_proxyFactories","_mediaQuery","_mount","_enums","_bindTemplateProxy","_Runtime","_classPrivateFieldGet","s","a","get","_assertClassBrand","_classPrivateFieldSet","r","set","e","t","n","has","arguments","length","TypeError","commonLifeCycles","pageOnlyLifeCycles","_routeHelper","WeakMap","_memoizedLifeCycle","_observers","_mediaListener","_arbitraryLifeCycle","_memoized","_allMenuRequests","_memoizedMenuRequestMap","_locationChangeCallbacks","_RendererContext_brand","WeakSet","RendererContext","constructor","scope","options","_options$unknownBrick","_classPrivateMethodInitSpec2","default","_defineProperty2","_classPrivateFieldInitSpec2","onBeforePageLoad","onPageLoad","onPageLeave","onBeforePageLeave","onAnchorLoad","onAnchorUnload","onMediaChange","onScrollIntoView","onMount","onUnmount","onMessage","onMessageClose","Map","unknownBricks","routeHelper","renderId","setInitialMenuRequests","menuRequests","memoizeMenuRequests","route","reMergeMenuRequests","routes","currentRoute","previousMenuRequest","previousRoute","_classPrivateFieldGet2","mergedMenuRequests","previousIndex","indexOf","push","splice","_classPrivateFieldGet3","delete","mergeMenus","reBailout","output","bailout","reCatch","error","returnNode","catch","didPerformIncrementalRender","location","prevLocation","i","callback","performIncrementalRender","registerBrickLifeCycle","brick","lifeCycle","lifeCycleTypes","key","handlers","isEmpty","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","RenderTag","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","_unmountBricks","call","mountTree","_returnNode$container","insertBefore","_returnNode$element","childNodes","_root","root","Error","portal","insertPortalBeforeChild","candidate","contains","newBricks","_initializeRerenderBricks","dispose","list","Object","values","observer","disconnect","clear","mediaEventTarget","removeEventListener","undefined","dispatchBeforePageLoad","_dispatchGeneralLifeCycle","CustomEvent","dispatchPageLoad","event","window","dispatchEvent","dispatchBeforePageLeave","detail","dispatchPageLeave","dispatchAnchorLoad","hash","getHistory","anchor","substring","initializeScrollIntoView","conf","_addObserver","initializeMediaChange","getReadOnlyProxy","addEventListener","initializeMessageDispatcher","_hooks$messageDispatc2","confList","concat","_hooks$messageDispatc","hooks","messageDispatcher","channel","listenerFactory","runtimeContext","onClose","dispatchOnMount","dispatchOnUnmount","exports","bricks","unmountList","removed","remove","item","_brick$element","_brick$element2","observers","unbindTemplateProxy","$$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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"}
|
|
@@ -7,9 +7,6 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
7
7
|
exports.Router = void 0;
|
|
8
8
|
var _classPrivateMethodInitSpec2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateMethodInitSpec"));
|
|
9
9
|
var _classPrivateFieldInitSpec2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldInitSpec"));
|
|
10
|
-
var _classPrivateFieldGet7 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldGet"));
|
|
11
|
-
var _classPrivateMethodGet2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateMethodGet"));
|
|
12
|
-
var _classPrivateFieldSet2 = _interopRequireDefault(require("@babel/runtime/helpers/classPrivateFieldSet"));
|
|
13
10
|
var _history2 = require("history");
|
|
14
11
|
var _http = require("@next-core/http");
|
|
15
12
|
var _lodash = require("lodash");
|
|
@@ -35,6 +32,9 @@ var _insertPreviewRoutes = require("./insertPreviewRoutes.js");
|
|
|
35
32
|
var _devtools = require("./devtools.js");
|
|
36
33
|
var _setUIVersion = require("../setUIVersion.js");
|
|
37
34
|
var _setAppVariable = require("../setAppVariable.js");
|
|
35
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
36
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
37
|
+
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"); }
|
|
38
38
|
var _storyboards = /*#__PURE__*/new WeakMap();
|
|
39
39
|
var _rendering = /*#__PURE__*/new WeakMap();
|
|
40
40
|
var _prevLocation = /*#__PURE__*/new WeakMap();
|
|
@@ -47,68 +47,26 @@ var _renderId = /*#__PURE__*/new WeakMap();
|
|
|
47
47
|
var _currentApp = /*#__PURE__*/new WeakMap();
|
|
48
48
|
var _previousApp = /*#__PURE__*/new WeakMap();
|
|
49
49
|
var _navConfig = /*#__PURE__*/new WeakMap();
|
|
50
|
-
var
|
|
51
|
-
var _safeRedirect = /*#__PURE__*/new WeakSet();
|
|
52
|
-
var _queuedRender = /*#__PURE__*/new WeakSet();
|
|
53
|
-
var _render = /*#__PURE__*/new WeakSet();
|
|
50
|
+
var _Router_brand = /*#__PURE__*/new WeakSet();
|
|
54
51
|
class Router {
|
|
55
52
|
constructor(storyboards) {
|
|
56
|
-
(0, _classPrivateMethodInitSpec2.default)(this,
|
|
57
|
-
(0,
|
|
58
|
-
(0,
|
|
59
|
-
(0,
|
|
60
|
-
(0, _classPrivateFieldInitSpec2.default)(this,
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
(0, _classPrivateFieldInitSpec2.default)(this,
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
(0, _classPrivateFieldInitSpec2.default)(this,
|
|
69
|
-
|
|
70
|
-
value: void 0
|
|
71
|
-
});
|
|
72
|
-
(0, _classPrivateFieldInitSpec2.default)(this, _nextLocation, {
|
|
73
|
-
writable: true,
|
|
74
|
-
value: void 0
|
|
75
|
-
});
|
|
76
|
-
(0, _classPrivateFieldInitSpec2.default)(this, _runtimeContext, {
|
|
77
|
-
writable: true,
|
|
78
|
-
value: void 0
|
|
79
|
-
});
|
|
80
|
-
(0, _classPrivateFieldInitSpec2.default)(this, _rendererContext, {
|
|
81
|
-
writable: true,
|
|
82
|
-
value: void 0
|
|
83
|
-
});
|
|
84
|
-
(0, _classPrivateFieldInitSpec2.default)(this, _rendererContextTrashCan, {
|
|
85
|
-
writable: true,
|
|
86
|
-
value: new Set()
|
|
87
|
-
});
|
|
88
|
-
(0, _classPrivateFieldInitSpec2.default)(this, _redirectCount, {
|
|
89
|
-
writable: true,
|
|
90
|
-
value: 0
|
|
91
|
-
});
|
|
92
|
-
(0, _classPrivateFieldInitSpec2.default)(this, _renderId, {
|
|
93
|
-
writable: true,
|
|
94
|
-
value: void 0
|
|
95
|
-
});
|
|
96
|
-
(0, _classPrivateFieldInitSpec2.default)(this, _currentApp, {
|
|
97
|
-
writable: true,
|
|
98
|
-
value: void 0
|
|
99
|
-
});
|
|
100
|
-
(0, _classPrivateFieldInitSpec2.default)(this, _previousApp, {
|
|
101
|
-
writable: true,
|
|
102
|
-
value: void 0
|
|
103
|
-
});
|
|
104
|
-
(0, _classPrivateFieldInitSpec2.default)(this, _navConfig, {
|
|
105
|
-
writable: true,
|
|
106
|
-
value: void 0
|
|
107
|
-
});
|
|
108
|
-
(0, _classPrivateFieldSet2.default)(this, _storyboards, storyboards);
|
|
53
|
+
(0, _classPrivateMethodInitSpec2.default)(this, _Router_brand);
|
|
54
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _storyboards, void 0);
|
|
55
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _rendering, false);
|
|
56
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _prevLocation, void 0);
|
|
57
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _nextLocation, void 0);
|
|
58
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _runtimeContext, void 0);
|
|
59
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _rendererContext, void 0);
|
|
60
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _rendererContextTrashCan, new Set());
|
|
61
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _redirectCount, 0);
|
|
62
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _renderId, void 0);
|
|
63
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _currentApp, void 0);
|
|
64
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _previousApp, void 0);
|
|
65
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _navConfig, void 0);
|
|
66
|
+
_classPrivateFieldSet(_storyboards, this, storyboards);
|
|
109
67
|
const _history = (0, _history3.getHistory)();
|
|
110
68
|
window.addEventListener("beforeunload", event => {
|
|
111
|
-
const message = (
|
|
69
|
+
const message = _assertClassBrand(_Router_brand, this, _getBlockMessageBeforePageLave).call(this, {});
|
|
112
70
|
// See examples in https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload
|
|
113
71
|
if (message) {
|
|
114
72
|
// Cancel the event
|
|
@@ -121,30 +79,30 @@ class Router {
|
|
|
121
79
|
delete event.returnValue;
|
|
122
80
|
}
|
|
123
81
|
});
|
|
124
|
-
_history.block((location, action) => (
|
|
82
|
+
_history.block((location, action) => _assertClassBrand(_Router_brand, this, _getBlockMessageBeforePageLave).call(this, {
|
|
125
83
|
location,
|
|
126
84
|
action
|
|
127
85
|
}));
|
|
128
86
|
}
|
|
129
87
|
getRenderId() {
|
|
130
|
-
return (
|
|
88
|
+
return _classPrivateFieldGet(_renderId, this);
|
|
131
89
|
}
|
|
132
90
|
getRuntimeContext() {
|
|
133
|
-
return (
|
|
91
|
+
return _classPrivateFieldGet(_runtimeContext, this);
|
|
134
92
|
}
|
|
135
93
|
getRecentApps() {
|
|
136
94
|
return {
|
|
137
|
-
currentApp: (
|
|
138
|
-
previousApp: (
|
|
95
|
+
currentApp: _classPrivateFieldGet(_currentApp, this),
|
|
96
|
+
previousApp: _classPrivateFieldGet(_previousApp, this)
|
|
139
97
|
};
|
|
140
98
|
}
|
|
141
99
|
getNavConfig() {
|
|
142
|
-
return (
|
|
100
|
+
return _classPrivateFieldGet(_navConfig, this);
|
|
143
101
|
}
|
|
144
102
|
bootstrap() {
|
|
145
103
|
(0, _abortController.initAbortController)();
|
|
146
104
|
const history = (0, _history3.getHistory)();
|
|
147
|
-
(
|
|
105
|
+
_classPrivateFieldSet(_prevLocation, this, history.location);
|
|
148
106
|
let renderId = 0;
|
|
149
107
|
history.listen(async (location, action) => {
|
|
150
108
|
var _classPrivateFieldGet2, _location$state, _location$state2, _classPrivateFieldGet4;
|
|
@@ -162,13 +120,13 @@ class Router {
|
|
|
162
120
|
// such as goBack or goForward,
|
|
163
121
|
action === "POP" && (
|
|
164
122
|
// and the previous location was triggered by hash link,
|
|
165
|
-
(
|
|
123
|
+
_classPrivateFieldGet(_prevLocation, this).key === undefined ||
|
|
166
124
|
// or the previous location specified notify false.
|
|
167
|
-
((_classPrivateFieldGet2 = (
|
|
125
|
+
((_classPrivateFieldGet2 = _classPrivateFieldGet(_prevLocation, this).state) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.notify) === false)) {
|
|
168
126
|
omittedLocationProps.key = undefined;
|
|
169
127
|
}
|
|
170
128
|
if ((0, _history2.locationsAreEqual)({
|
|
171
|
-
...(
|
|
129
|
+
..._classPrivateFieldGet(_prevLocation, this),
|
|
172
130
|
...omittedLocationProps
|
|
173
131
|
}, {
|
|
174
132
|
...location,
|
|
@@ -180,7 +138,7 @@ class Router {
|
|
|
180
138
|
}
|
|
181
139
|
if (!ignoreRendering && !((_location$state2 = location.state) !== null && _location$state2 !== void 0 && _location$state2.noIncremental)) {
|
|
182
140
|
var _classPrivateFieldGet3;
|
|
183
|
-
ignoreRendering = await ((_classPrivateFieldGet3 = (
|
|
141
|
+
ignoreRendering = await ((_classPrivateFieldGet3 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.didPerformIncrementalRender(location, _classPrivateFieldGet(_prevLocation, this)));
|
|
184
142
|
}
|
|
185
143
|
|
|
186
144
|
// Ignore stale renders
|
|
@@ -188,14 +146,14 @@ class Router {
|
|
|
188
146
|
return;
|
|
189
147
|
}
|
|
190
148
|
if (ignoreRendering) {
|
|
191
|
-
(
|
|
149
|
+
_classPrivateFieldSet(_prevLocation, this, location);
|
|
192
150
|
return;
|
|
193
151
|
}
|
|
194
152
|
(0, _abortController.abortPendingRequest)();
|
|
195
|
-
(
|
|
196
|
-
(_classPrivateFieldGet4 = (
|
|
153
|
+
_classPrivateFieldSet(_prevLocation, this, location);
|
|
154
|
+
(_classPrivateFieldGet4 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.dispatchPageLeave();
|
|
197
155
|
if (action === "POP") {
|
|
198
|
-
const storyboard = (0, _matchStoryboard.matchStoryboard)((
|
|
156
|
+
const storyboard = (0, _matchStoryboard.matchStoryboard)(_classPrivateFieldGet(_storyboards, this), location.pathname);
|
|
199
157
|
// When a browser action of goBack or goForward is performing,
|
|
200
158
|
// force reload when the target page is a page of an outside app.
|
|
201
159
|
if ((0, _matchStoryboard.isOutsideApp)(storyboard)) {
|
|
@@ -203,22 +161,22 @@ class Router {
|
|
|
203
161
|
return;
|
|
204
162
|
}
|
|
205
163
|
}
|
|
206
|
-
if ((
|
|
207
|
-
(
|
|
164
|
+
if (_classPrivateFieldGet(_rendering, this)) {
|
|
165
|
+
_classPrivateFieldSet(_nextLocation, this, location);
|
|
208
166
|
} else {
|
|
209
167
|
(0, _devtools.devtoolsHookEmit)("locationChange");
|
|
210
|
-
(
|
|
168
|
+
_assertClassBrand(_Router_brand, this, _queuedRender).call(this, location).catch(_handleHttpError.handleHttpError);
|
|
211
169
|
}
|
|
212
170
|
});
|
|
213
|
-
return (
|
|
171
|
+
return _assertClassBrand(_Router_brand, this, _queuedRender).call(this, history.location);
|
|
214
172
|
}
|
|
215
173
|
}
|
|
216
174
|
exports.Router = Router;
|
|
217
|
-
function
|
|
175
|
+
function _getBlockMessageBeforePageLave(detail) {
|
|
218
176
|
var _classPrivateFieldGet5;
|
|
219
177
|
const history = (0, _history3.getHistory)();
|
|
220
178
|
const previousMessage = history.getBlockMessage();
|
|
221
|
-
(_classPrivateFieldGet5 = (
|
|
179
|
+
(_classPrivateFieldGet5 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet5 === void 0 || _classPrivateFieldGet5.dispatchBeforePageLeave(detail);
|
|
222
180
|
const message = history.getBlockMessage();
|
|
223
181
|
if (!previousMessage && message) {
|
|
224
182
|
// Auto unblock only if new block was introduced by `onBeforePageLeave`.
|
|
@@ -226,9 +184,9 @@ function _getBlockMessageBeforePageLave2(detail) {
|
|
|
226
184
|
}
|
|
227
185
|
return message;
|
|
228
186
|
}
|
|
229
|
-
function
|
|
187
|
+
function _safeRedirect(to, state, from) {
|
|
230
188
|
var _this$redirectCount, _this$redirectCount2;
|
|
231
|
-
if (((
|
|
189
|
+
if ((_classPrivateFieldSet(_redirectCount, this, (_this$redirectCount = _classPrivateFieldGet(_redirectCount, this), _this$redirectCount2 = _this$redirectCount++, _this$redirectCount)), _this$redirectCount2) > 10) {
|
|
232
190
|
const message = `Infinite redirect detected: from "${from.pathname}${from.search}${from.hash}" to "${to}"`;
|
|
233
191
|
// istanbul ignore else: error cannot be caught in test
|
|
234
192
|
if (process.env.NODE_ENV === "test") {
|
|
@@ -241,22 +199,22 @@ function _safeRedirect2(to, state, from) {
|
|
|
241
199
|
}
|
|
242
200
|
(0, _history3.getHistory)().replace(to, state);
|
|
243
201
|
}
|
|
244
|
-
async function
|
|
245
|
-
(
|
|
202
|
+
async function _queuedRender(location) {
|
|
203
|
+
_classPrivateFieldSet(_rendering, this, true);
|
|
246
204
|
try {
|
|
247
|
-
await (
|
|
205
|
+
await _assertClassBrand(_Router_brand, this, _render).call(this, location);
|
|
248
206
|
} finally {
|
|
249
|
-
(
|
|
250
|
-
if ((
|
|
251
|
-
const nextLocation = (
|
|
252
|
-
(
|
|
253
|
-
await (
|
|
207
|
+
_classPrivateFieldSet(_rendering, this, false);
|
|
208
|
+
if (_classPrivateFieldGet(_nextLocation, this)) {
|
|
209
|
+
const nextLocation = _classPrivateFieldGet(_nextLocation, this);
|
|
210
|
+
_classPrivateFieldSet(_nextLocation, this, undefined);
|
|
211
|
+
await _assertClassBrand(_Router_brand, this, _queuedRender).call(this, nextLocation);
|
|
254
212
|
}
|
|
255
213
|
}
|
|
256
214
|
}
|
|
257
|
-
async function
|
|
215
|
+
async function _render(location) {
|
|
258
216
|
var _hooks$flowApi, _hooks$pageView, _classPrivateFieldGet6, _storyboard$app;
|
|
259
|
-
const renderId = (
|
|
217
|
+
const renderId = _classPrivateFieldSet(_renderId, this, (0, _lodash.uniqueId)("render-id-"));
|
|
260
218
|
(0, _markAsComputed.resetAllComputedMarks)();
|
|
261
219
|
(0, _resolveData.clearResolveCache)();
|
|
262
220
|
_Runtime.hooks === null || _Runtime.hooks === void 0 || (_hooks$flowApi = _Runtime.hooks.flowApi) === null || _hooks$flowApi === void 0 || _hooks$flowApi.clearCollectWidgetContract();
|
|
@@ -265,8 +223,8 @@ async function _render2(location) {
|
|
|
265
223
|
|
|
266
224
|
// const renderStartTime = performance.now();
|
|
267
225
|
const finishPageView = _Runtime.hooks === null || _Runtime.hooks === void 0 || (_hooks$pageView = _Runtime.hooks.pageView) === null || _hooks$pageView === void 0 ? void 0 : _hooks$pageView.create();
|
|
268
|
-
const storyboard = (0, _matchStoryboard.matchStoryboard)((
|
|
269
|
-
const previousApp = (_classPrivateFieldGet6 = (
|
|
226
|
+
const storyboard = (0, _matchStoryboard.matchStoryboard)(_classPrivateFieldGet(_storyboards, this), location.pathname);
|
|
227
|
+
const previousApp = (_classPrivateFieldGet6 = _classPrivateFieldGet(_runtimeContext, this)) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.app;
|
|
270
228
|
const currentAppId = storyboard === null || storyboard === void 0 || (_storyboard$app = storyboard.app) === null || _storyboard$app === void 0 ? void 0 : _storyboard$app.id;
|
|
271
229
|
// dynamically change the value of the APP variable, if it's union app
|
|
272
230
|
if (window.BOOTSTRAP_UNION_FILE && currentAppId && currentAppId !== (previousApp === null || previousApp === void 0 ? void 0 : previousApp.id)) {
|
|
@@ -278,7 +236,7 @@ async function _render2(location) {
|
|
|
278
236
|
if (storyboard !== null && storyboard !== void 0 && storyboard.app) {
|
|
279
237
|
await (0, _fulfilStoryboard.fulfilStoryboard)(storyboard);
|
|
280
238
|
}
|
|
281
|
-
const currentApp = (
|
|
239
|
+
const currentApp = _classPrivateFieldSet(_currentApp, this, storyboard === null || storyboard === void 0 ? void 0 : storyboard.app);
|
|
282
240
|
|
|
283
241
|
// Storyboard maybe re-assigned, e.g. when open launchpad.
|
|
284
242
|
const appChanged = previousApp && currentApp ? previousApp.id !== currentApp.id : previousApp !== currentApp;
|
|
@@ -287,13 +245,13 @@ async function _render2(location) {
|
|
|
287
245
|
|
|
288
246
|
// Set `Router::#currentApp` before calling `getFeatureFlags()`
|
|
289
247
|
const flags = (0, _Runtime.getRuntime)().getFeatureFlags();
|
|
290
|
-
const prevRendererContext = (
|
|
248
|
+
const prevRendererContext = _classPrivateFieldGet(_rendererContext, this);
|
|
291
249
|
const redirectTo = (to, state) => {
|
|
292
250
|
finishPageView === null || finishPageView === void 0 || finishPageView({
|
|
293
251
|
status: "redirected"
|
|
294
252
|
});
|
|
295
|
-
(
|
|
296
|
-
(
|
|
253
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
|
|
254
|
+
_assertClassBrand(_Router_brand, this, _safeRedirect).call(this, to, state, location);
|
|
297
255
|
};
|
|
298
256
|
const redirectToLogin = () => {
|
|
299
257
|
const to = flags["sso-enabled"] ? "/sso-auth/login" : "/auth/login";
|
|
@@ -315,17 +273,17 @@ async function _render2(location) {
|
|
|
315
273
|
(0, _mount.unmountTree)(portal);
|
|
316
274
|
|
|
317
275
|
// Note: redirects can lead to multiple trash renderer contexts.
|
|
318
|
-
(
|
|
319
|
-
for (const item of (
|
|
276
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
|
|
277
|
+
for (const item of _classPrivateFieldGet(_rendererContextTrashCan, this)) {
|
|
320
278
|
if (item) {
|
|
321
279
|
item.dispatchOnUnmount();
|
|
322
280
|
item.dispose();
|
|
323
281
|
}
|
|
324
282
|
}
|
|
325
|
-
(
|
|
283
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).clear();
|
|
326
284
|
_Runtime.hooks === null || _Runtime.hooks === void 0 || (_hooks$messageDispatc = _Runtime.hooks.messageDispatcher) === null || _hooks$messageDispatc === void 0 || _hooks$messageDispatc.reset();
|
|
327
285
|
if (appChanged) {
|
|
328
|
-
(
|
|
286
|
+
_classPrivateFieldSet(_previousApp, this, previousApp);
|
|
329
287
|
window.dispatchEvent(new CustomEvent("app.change", {
|
|
330
288
|
detail: {
|
|
331
289
|
previousApp,
|
|
@@ -350,18 +308,18 @@ async function _render2(location) {
|
|
|
350
308
|
return true;
|
|
351
309
|
}
|
|
352
310
|
// Reset redirect count if no redirect is set.
|
|
353
|
-
(
|
|
311
|
+
_classPrivateFieldSet(_redirectCount, this, 0);
|
|
354
312
|
},
|
|
355
313
|
mergeMenus: async menuRequests => {
|
|
356
314
|
const menuConfs = await Promise.all(menuRequests);
|
|
357
|
-
(
|
|
315
|
+
_classPrivateFieldSet(_navConfig, this, mergeMenuConfs(menuConfs));
|
|
358
316
|
},
|
|
359
317
|
catch: (error, returnNode) => {
|
|
360
318
|
if ((0, _handleHttpError.isUnauthenticatedError)(error) && !window.NO_AUTH_GUARD) {
|
|
361
319
|
redirectToLogin();
|
|
362
320
|
return;
|
|
363
321
|
} else if (error instanceof _http.HttpAbortError) {
|
|
364
|
-
(
|
|
322
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
|
|
365
323
|
return;
|
|
366
324
|
} else {
|
|
367
325
|
const noAuthGuardLoginPath = (0, _Runtime.getRuntime)().getMiscSettings().noAuthGuardLoginPath;
|
|
@@ -390,11 +348,11 @@ async function _render2(location) {
|
|
|
390
348
|
}
|
|
391
349
|
}
|
|
392
350
|
};
|
|
393
|
-
const rendererContext = (
|
|
351
|
+
const rendererContext = _classPrivateFieldSet(_rendererContext, this, new _RendererContext.RendererContext("page", {
|
|
394
352
|
routeHelper,
|
|
395
353
|
renderId
|
|
396
354
|
}));
|
|
397
|
-
const runtimeContext = (
|
|
355
|
+
const runtimeContext = _classPrivateFieldSet(_runtimeContext, this, {
|
|
398
356
|
app: currentApp,
|
|
399
357
|
location,
|
|
400
358
|
query: new URLSearchParams(location.search),
|
|
@@ -411,7 +369,7 @@ async function _render2(location) {
|
|
|
411
369
|
tplStateStoreMap: new Map(),
|
|
412
370
|
formStateStoreMap: new Map()
|
|
413
371
|
});
|
|
414
|
-
(
|
|
372
|
+
_classPrivateFieldSet(_navConfig, this, undefined);
|
|
415
373
|
(0, _registerCustomTemplates.registerCustomTemplates)(storyboard);
|
|
416
374
|
(0, _StoryboardFunctions.registerStoryboardFunctions)((_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.functions, currentApp);
|
|
417
375
|
_Runtime.hooks === null || _Runtime.hooks === void 0 || (_hooks$flowApi2 = _Runtime.hooks.flowApi) === null || _hooks$flowApi2 === void 0 || _hooks$flowApi2.collectContract((_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.contracts);
|