@next-core/runtime 1.31.1 → 1.32.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/cjs/internal/RendererContext.js +92 -123
- package/dist/cjs/internal/RendererContext.js.map +1 -1
- package/dist/cjs/internal/Router.js +70 -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/cjs/setWatermark.js +47 -0
- package/dist/cjs/setWatermark.js.map +1 -0
- 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 +78 -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/esm/setWatermark.js +40 -0
- package/dist/esm/setWatermark.js.map +1 -0
- package/dist/types/setWatermark.d.ts +2 -0
- 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,10 @@ 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
|
+
var _setWatermark = require("../setWatermark.js");
|
|
36
|
+
function _classPrivateFieldGet(s, a) { return s.get(_assertClassBrand(s, a)); }
|
|
37
|
+
function _classPrivateFieldSet(s, a, r) { return s.set(_assertClassBrand(s, a), r), r; }
|
|
38
|
+
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
39
|
var _storyboards = /*#__PURE__*/new WeakMap();
|
|
39
40
|
var _rendering = /*#__PURE__*/new WeakMap();
|
|
40
41
|
var _prevLocation = /*#__PURE__*/new WeakMap();
|
|
@@ -47,68 +48,26 @@ var _renderId = /*#__PURE__*/new WeakMap();
|
|
|
47
48
|
var _currentApp = /*#__PURE__*/new WeakMap();
|
|
48
49
|
var _previousApp = /*#__PURE__*/new WeakMap();
|
|
49
50
|
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();
|
|
51
|
+
var _Router_brand = /*#__PURE__*/new WeakSet();
|
|
54
52
|
class Router {
|
|
55
53
|
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);
|
|
54
|
+
(0, _classPrivateMethodInitSpec2.default)(this, _Router_brand);
|
|
55
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _storyboards, void 0);
|
|
56
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _rendering, false);
|
|
57
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _prevLocation, void 0);
|
|
58
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _nextLocation, void 0);
|
|
59
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _runtimeContext, void 0);
|
|
60
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _rendererContext, void 0);
|
|
61
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _rendererContextTrashCan, new Set());
|
|
62
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _redirectCount, 0);
|
|
63
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _renderId, void 0);
|
|
64
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _currentApp, void 0);
|
|
65
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _previousApp, void 0);
|
|
66
|
+
(0, _classPrivateFieldInitSpec2.default)(this, _navConfig, void 0);
|
|
67
|
+
_classPrivateFieldSet(_storyboards, this, storyboards);
|
|
109
68
|
const _history = (0, _history3.getHistory)();
|
|
110
69
|
window.addEventListener("beforeunload", event => {
|
|
111
|
-
const message = (
|
|
70
|
+
const message = _assertClassBrand(_Router_brand, this, _getBlockMessageBeforePageLave).call(this, {});
|
|
112
71
|
// See examples in https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload
|
|
113
72
|
if (message) {
|
|
114
73
|
// Cancel the event
|
|
@@ -121,30 +80,30 @@ class Router {
|
|
|
121
80
|
delete event.returnValue;
|
|
122
81
|
}
|
|
123
82
|
});
|
|
124
|
-
_history.block((location, action) => (
|
|
83
|
+
_history.block((location, action) => _assertClassBrand(_Router_brand, this, _getBlockMessageBeforePageLave).call(this, {
|
|
125
84
|
location,
|
|
126
85
|
action
|
|
127
86
|
}));
|
|
128
87
|
}
|
|
129
88
|
getRenderId() {
|
|
130
|
-
return (
|
|
89
|
+
return _classPrivateFieldGet(_renderId, this);
|
|
131
90
|
}
|
|
132
91
|
getRuntimeContext() {
|
|
133
|
-
return (
|
|
92
|
+
return _classPrivateFieldGet(_runtimeContext, this);
|
|
134
93
|
}
|
|
135
94
|
getRecentApps() {
|
|
136
95
|
return {
|
|
137
|
-
currentApp: (
|
|
138
|
-
previousApp: (
|
|
96
|
+
currentApp: _classPrivateFieldGet(_currentApp, this),
|
|
97
|
+
previousApp: _classPrivateFieldGet(_previousApp, this)
|
|
139
98
|
};
|
|
140
99
|
}
|
|
141
100
|
getNavConfig() {
|
|
142
|
-
return (
|
|
101
|
+
return _classPrivateFieldGet(_navConfig, this);
|
|
143
102
|
}
|
|
144
103
|
bootstrap() {
|
|
145
104
|
(0, _abortController.initAbortController)();
|
|
146
105
|
const history = (0, _history3.getHistory)();
|
|
147
|
-
(
|
|
106
|
+
_classPrivateFieldSet(_prevLocation, this, history.location);
|
|
148
107
|
let renderId = 0;
|
|
149
108
|
history.listen(async (location, action) => {
|
|
150
109
|
var _classPrivateFieldGet2, _location$state, _location$state2, _classPrivateFieldGet4;
|
|
@@ -162,13 +121,13 @@ class Router {
|
|
|
162
121
|
// such as goBack or goForward,
|
|
163
122
|
action === "POP" && (
|
|
164
123
|
// and the previous location was triggered by hash link,
|
|
165
|
-
(
|
|
124
|
+
_classPrivateFieldGet(_prevLocation, this).key === undefined ||
|
|
166
125
|
// or the previous location specified notify false.
|
|
167
|
-
((_classPrivateFieldGet2 = (
|
|
126
|
+
((_classPrivateFieldGet2 = _classPrivateFieldGet(_prevLocation, this).state) === null || _classPrivateFieldGet2 === void 0 ? void 0 : _classPrivateFieldGet2.notify) === false)) {
|
|
168
127
|
omittedLocationProps.key = undefined;
|
|
169
128
|
}
|
|
170
129
|
if ((0, _history2.locationsAreEqual)({
|
|
171
|
-
...(
|
|
130
|
+
..._classPrivateFieldGet(_prevLocation, this),
|
|
172
131
|
...omittedLocationProps
|
|
173
132
|
}, {
|
|
174
133
|
...location,
|
|
@@ -180,7 +139,7 @@ class Router {
|
|
|
180
139
|
}
|
|
181
140
|
if (!ignoreRendering && !((_location$state2 = location.state) !== null && _location$state2 !== void 0 && _location$state2.noIncremental)) {
|
|
182
141
|
var _classPrivateFieldGet3;
|
|
183
|
-
ignoreRendering = await ((_classPrivateFieldGet3 = (
|
|
142
|
+
ignoreRendering = await ((_classPrivateFieldGet3 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet3 === void 0 ? void 0 : _classPrivateFieldGet3.didPerformIncrementalRender(location, _classPrivateFieldGet(_prevLocation, this)));
|
|
184
143
|
}
|
|
185
144
|
|
|
186
145
|
// Ignore stale renders
|
|
@@ -188,14 +147,14 @@ class Router {
|
|
|
188
147
|
return;
|
|
189
148
|
}
|
|
190
149
|
if (ignoreRendering) {
|
|
191
|
-
(
|
|
150
|
+
_classPrivateFieldSet(_prevLocation, this, location);
|
|
192
151
|
return;
|
|
193
152
|
}
|
|
194
153
|
(0, _abortController.abortPendingRequest)();
|
|
195
|
-
(
|
|
196
|
-
(_classPrivateFieldGet4 = (
|
|
154
|
+
_classPrivateFieldSet(_prevLocation, this, location);
|
|
155
|
+
(_classPrivateFieldGet4 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.dispatchPageLeave();
|
|
197
156
|
if (action === "POP") {
|
|
198
|
-
const storyboard = (0, _matchStoryboard.matchStoryboard)((
|
|
157
|
+
const storyboard = (0, _matchStoryboard.matchStoryboard)(_classPrivateFieldGet(_storyboards, this), location.pathname);
|
|
199
158
|
// When a browser action of goBack or goForward is performing,
|
|
200
159
|
// force reload when the target page is a page of an outside app.
|
|
201
160
|
if ((0, _matchStoryboard.isOutsideApp)(storyboard)) {
|
|
@@ -203,22 +162,22 @@ class Router {
|
|
|
203
162
|
return;
|
|
204
163
|
}
|
|
205
164
|
}
|
|
206
|
-
if ((
|
|
207
|
-
(
|
|
165
|
+
if (_classPrivateFieldGet(_rendering, this)) {
|
|
166
|
+
_classPrivateFieldSet(_nextLocation, this, location);
|
|
208
167
|
} else {
|
|
209
168
|
(0, _devtools.devtoolsHookEmit)("locationChange");
|
|
210
|
-
(
|
|
169
|
+
_assertClassBrand(_Router_brand, this, _queuedRender).call(this, location).catch(_handleHttpError.handleHttpError);
|
|
211
170
|
}
|
|
212
171
|
});
|
|
213
|
-
return (
|
|
172
|
+
return _assertClassBrand(_Router_brand, this, _queuedRender).call(this, history.location);
|
|
214
173
|
}
|
|
215
174
|
}
|
|
216
175
|
exports.Router = Router;
|
|
217
|
-
function
|
|
176
|
+
function _getBlockMessageBeforePageLave(detail) {
|
|
218
177
|
var _classPrivateFieldGet5;
|
|
219
178
|
const history = (0, _history3.getHistory)();
|
|
220
179
|
const previousMessage = history.getBlockMessage();
|
|
221
|
-
(_classPrivateFieldGet5 = (
|
|
180
|
+
(_classPrivateFieldGet5 = _classPrivateFieldGet(_rendererContext, this)) === null || _classPrivateFieldGet5 === void 0 || _classPrivateFieldGet5.dispatchBeforePageLeave(detail);
|
|
222
181
|
const message = history.getBlockMessage();
|
|
223
182
|
if (!previousMessage && message) {
|
|
224
183
|
// Auto unblock only if new block was introduced by `onBeforePageLeave`.
|
|
@@ -226,9 +185,9 @@ function _getBlockMessageBeforePageLave2(detail) {
|
|
|
226
185
|
}
|
|
227
186
|
return message;
|
|
228
187
|
}
|
|
229
|
-
function
|
|
188
|
+
function _safeRedirect(to, state, from) {
|
|
230
189
|
var _this$redirectCount, _this$redirectCount2;
|
|
231
|
-
if (((
|
|
190
|
+
if ((_classPrivateFieldSet(_redirectCount, this, (_this$redirectCount = _classPrivateFieldGet(_redirectCount, this), _this$redirectCount2 = _this$redirectCount++, _this$redirectCount)), _this$redirectCount2) > 10) {
|
|
232
191
|
const message = `Infinite redirect detected: from "${from.pathname}${from.search}${from.hash}" to "${to}"`;
|
|
233
192
|
// istanbul ignore else: error cannot be caught in test
|
|
234
193
|
if (process.env.NODE_ENV === "test") {
|
|
@@ -241,22 +200,22 @@ function _safeRedirect2(to, state, from) {
|
|
|
241
200
|
}
|
|
242
201
|
(0, _history3.getHistory)().replace(to, state);
|
|
243
202
|
}
|
|
244
|
-
async function
|
|
245
|
-
(
|
|
203
|
+
async function _queuedRender(location) {
|
|
204
|
+
_classPrivateFieldSet(_rendering, this, true);
|
|
246
205
|
try {
|
|
247
|
-
await (
|
|
206
|
+
await _assertClassBrand(_Router_brand, this, _render).call(this, location);
|
|
248
207
|
} finally {
|
|
249
|
-
(
|
|
250
|
-
if ((
|
|
251
|
-
const nextLocation = (
|
|
252
|
-
(
|
|
253
|
-
await (
|
|
208
|
+
_classPrivateFieldSet(_rendering, this, false);
|
|
209
|
+
if (_classPrivateFieldGet(_nextLocation, this)) {
|
|
210
|
+
const nextLocation = _classPrivateFieldGet(_nextLocation, this);
|
|
211
|
+
_classPrivateFieldSet(_nextLocation, this, undefined);
|
|
212
|
+
await _assertClassBrand(_Router_brand, this, _queuedRender).call(this, nextLocation);
|
|
254
213
|
}
|
|
255
214
|
}
|
|
256
215
|
}
|
|
257
|
-
async function
|
|
216
|
+
async function _render(location) {
|
|
258
217
|
var _hooks$flowApi, _hooks$pageView, _classPrivateFieldGet6, _storyboard$app;
|
|
259
|
-
const renderId = (
|
|
218
|
+
const renderId = _classPrivateFieldSet(_renderId, this, (0, _lodash.uniqueId)("render-id-"));
|
|
260
219
|
(0, _markAsComputed.resetAllComputedMarks)();
|
|
261
220
|
(0, _resolveData.clearResolveCache)();
|
|
262
221
|
_Runtime.hooks === null || _Runtime.hooks === void 0 || (_hooks$flowApi = _Runtime.hooks.flowApi) === null || _hooks$flowApi === void 0 || _hooks$flowApi.clearCollectWidgetContract();
|
|
@@ -265,8 +224,8 @@ async function _render2(location) {
|
|
|
265
224
|
|
|
266
225
|
// const renderStartTime = performance.now();
|
|
267
226
|
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 = (
|
|
227
|
+
const storyboard = (0, _matchStoryboard.matchStoryboard)(_classPrivateFieldGet(_storyboards, this), location.pathname);
|
|
228
|
+
const previousApp = (_classPrivateFieldGet6 = _classPrivateFieldGet(_runtimeContext, this)) === null || _classPrivateFieldGet6 === void 0 ? void 0 : _classPrivateFieldGet6.app;
|
|
270
229
|
const currentAppId = storyboard === null || storyboard === void 0 || (_storyboard$app = storyboard.app) === null || _storyboard$app === void 0 ? void 0 : _storyboard$app.id;
|
|
271
230
|
// dynamically change the value of the APP variable, if it's union app
|
|
272
231
|
if (window.BOOTSTRAP_UNION_FILE && currentAppId && currentAppId !== (previousApp === null || previousApp === void 0 ? void 0 : previousApp.id)) {
|
|
@@ -275,10 +234,11 @@ async function _render2(location) {
|
|
|
275
234
|
version: storyboard.app.currentVersion
|
|
276
235
|
});
|
|
277
236
|
}
|
|
237
|
+
(0, _setWatermark.setWatermark)();
|
|
278
238
|
if (storyboard !== null && storyboard !== void 0 && storyboard.app) {
|
|
279
239
|
await (0, _fulfilStoryboard.fulfilStoryboard)(storyboard);
|
|
280
240
|
}
|
|
281
|
-
const currentApp = (
|
|
241
|
+
const currentApp = _classPrivateFieldSet(_currentApp, this, storyboard === null || storyboard === void 0 ? void 0 : storyboard.app);
|
|
282
242
|
|
|
283
243
|
// Storyboard maybe re-assigned, e.g. when open launchpad.
|
|
284
244
|
const appChanged = previousApp && currentApp ? previousApp.id !== currentApp.id : previousApp !== currentApp;
|
|
@@ -287,13 +247,13 @@ async function _render2(location) {
|
|
|
287
247
|
|
|
288
248
|
// Set `Router::#currentApp` before calling `getFeatureFlags()`
|
|
289
249
|
const flags = (0, _Runtime.getRuntime)().getFeatureFlags();
|
|
290
|
-
const prevRendererContext = (
|
|
250
|
+
const prevRendererContext = _classPrivateFieldGet(_rendererContext, this);
|
|
291
251
|
const redirectTo = (to, state) => {
|
|
292
252
|
finishPageView === null || finishPageView === void 0 || finishPageView({
|
|
293
253
|
status: "redirected"
|
|
294
254
|
});
|
|
295
|
-
(
|
|
296
|
-
(
|
|
255
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
|
|
256
|
+
_assertClassBrand(_Router_brand, this, _safeRedirect).call(this, to, state, location);
|
|
297
257
|
};
|
|
298
258
|
const redirectToLogin = () => {
|
|
299
259
|
const to = flags["sso-enabled"] ? "/sso-auth/login" : "/auth/login";
|
|
@@ -315,17 +275,17 @@ async function _render2(location) {
|
|
|
315
275
|
(0, _mount.unmountTree)(portal);
|
|
316
276
|
|
|
317
277
|
// Note: redirects can lead to multiple trash renderer contexts.
|
|
318
|
-
(
|
|
319
|
-
for (const item of (
|
|
278
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
|
|
279
|
+
for (const item of _classPrivateFieldGet(_rendererContextTrashCan, this)) {
|
|
320
280
|
if (item) {
|
|
321
281
|
item.dispatchOnUnmount();
|
|
322
282
|
item.dispose();
|
|
323
283
|
}
|
|
324
284
|
}
|
|
325
|
-
(
|
|
285
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).clear();
|
|
326
286
|
_Runtime.hooks === null || _Runtime.hooks === void 0 || (_hooks$messageDispatc = _Runtime.hooks.messageDispatcher) === null || _hooks$messageDispatc === void 0 || _hooks$messageDispatc.reset();
|
|
327
287
|
if (appChanged) {
|
|
328
|
-
(
|
|
288
|
+
_classPrivateFieldSet(_previousApp, this, previousApp);
|
|
329
289
|
window.dispatchEvent(new CustomEvent("app.change", {
|
|
330
290
|
detail: {
|
|
331
291
|
previousApp,
|
|
@@ -350,18 +310,18 @@ async function _render2(location) {
|
|
|
350
310
|
return true;
|
|
351
311
|
}
|
|
352
312
|
// Reset redirect count if no redirect is set.
|
|
353
|
-
(
|
|
313
|
+
_classPrivateFieldSet(_redirectCount, this, 0);
|
|
354
314
|
},
|
|
355
315
|
mergeMenus: async menuRequests => {
|
|
356
316
|
const menuConfs = await Promise.all(menuRequests);
|
|
357
|
-
(
|
|
317
|
+
_classPrivateFieldSet(_navConfig, this, mergeMenuConfs(menuConfs));
|
|
358
318
|
},
|
|
359
319
|
catch: (error, returnNode) => {
|
|
360
320
|
if ((0, _handleHttpError.isUnauthenticatedError)(error) && !window.NO_AUTH_GUARD) {
|
|
361
321
|
redirectToLogin();
|
|
362
322
|
return;
|
|
363
323
|
} else if (error instanceof _http.HttpAbortError) {
|
|
364
|
-
(
|
|
324
|
+
_classPrivateFieldGet(_rendererContextTrashCan, this).add(prevRendererContext);
|
|
365
325
|
return;
|
|
366
326
|
} else {
|
|
367
327
|
const noAuthGuardLoginPath = (0, _Runtime.getRuntime)().getMiscSettings().noAuthGuardLoginPath;
|
|
@@ -390,11 +350,11 @@ async function _render2(location) {
|
|
|
390
350
|
}
|
|
391
351
|
}
|
|
392
352
|
};
|
|
393
|
-
const rendererContext = (
|
|
353
|
+
const rendererContext = _classPrivateFieldSet(_rendererContext, this, new _RendererContext.RendererContext("page", {
|
|
394
354
|
routeHelper,
|
|
395
355
|
renderId
|
|
396
356
|
}));
|
|
397
|
-
const runtimeContext = (
|
|
357
|
+
const runtimeContext = _classPrivateFieldSet(_runtimeContext, this, {
|
|
398
358
|
app: currentApp,
|
|
399
359
|
location,
|
|
400
360
|
query: new URLSearchParams(location.search),
|
|
@@ -411,7 +371,7 @@ async function _render2(location) {
|
|
|
411
371
|
tplStateStoreMap: new Map(),
|
|
412
372
|
formStateStoreMap: new Map()
|
|
413
373
|
});
|
|
414
|
-
(
|
|
374
|
+
_classPrivateFieldSet(_navConfig, this, undefined);
|
|
415
375
|
(0, _registerCustomTemplates.registerCustomTemplates)(storyboard);
|
|
416
376
|
(0, _StoryboardFunctions.registerStoryboardFunctions)((_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.functions, currentApp);
|
|
417
377
|
_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);
|