@next-core/runtime 1.44.2 → 1.44.3
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/CustomProcessors.js.map +1 -1
- package/dist/cjs/CustomTemplates.js +7 -11
- package/dist/cjs/CustomTemplates.js.map +1 -1
- package/dist/cjs/createRoot.js +4 -4
- package/dist/cjs/createRoot.js.map +1 -1
- package/dist/cjs/getPageInfo.js.map +1 -1
- package/dist/cjs/handleHttpError.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js +4 -5
- package/dist/cjs/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +4 -7
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +21 -24
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js +4 -7
- package/dist/cjs/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/utils.js +3 -3
- package/dist/cjs/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js +3 -3
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js.map +1 -1
- package/dist/cjs/internal/FormRenderer/utils.js +2 -2
- package/dist/cjs/internal/FormRenderer/utils.js.map +1 -1
- package/dist/cjs/internal/Renderer.js +8 -14
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/RendererContext.js +8 -10
- package/dist/cjs/internal/RendererContext.js.map +1 -1
- package/dist/cjs/internal/Router.js.map +1 -1
- package/dist/cjs/internal/Runtime.js +14 -14
- package/dist/cjs/internal/Runtime.js.map +1 -1
- package/dist/cjs/internal/bindListeners.js +2 -3
- package/dist/cjs/internal/bindListeners.js.map +1 -1
- package/dist/cjs/internal/compute/WidgetFunctions.js.map +1 -1
- package/dist/cjs/internal/compute/evaluate.js +4 -4
- package/dist/cjs/internal/compute/evaluate.js.map +1 -1
- package/dist/cjs/internal/compute/getGeneralGlobals.js.map +1 -1
- package/dist/cjs/internal/compute/getStorageItem.js +1 -2
- package/dist/cjs/internal/compute/getStorageItem.js.map +1 -1
- package/dist/cjs/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/cjs/internal/compute/setRealProperties.js.map +1 -1
- package/dist/cjs/internal/data/DataStore.js.map +1 -1
- package/dist/cjs/internal/data/getProviderBrick.js.map +1 -1
- package/dist/cjs/internal/data/realTimeDataInspect.js.map +1 -1
- package/dist/cjs/internal/data/resolveData.js.map +1 -1
- package/dist/cjs/internal/data/resolveDataStore.js +2 -4
- package/dist/cjs/internal/data/resolveDataStore.js.map +1 -1
- package/dist/cjs/internal/hasInstalledApp.js.map +1 -1
- package/dist/cjs/internal/historyExtended.js.map +1 -1
- package/dist/cjs/internal/matchPath.js.map +1 -1
- package/dist/cjs/internal/matchRoutes.js.map +1 -1
- package/dist/cjs/internal/matchStoryboard.js +2 -2
- package/dist/cjs/internal/matchStoryboard.js.map +1 -1
- package/dist/cjs/internal/mediaQuery.js.map +1 -1
- package/dist/cjs/internal/mount.js.map +1 -1
- package/dist/cjs/internal/poll.js +3 -3
- package/dist/cjs/internal/poll.js.map +1 -1
- package/dist/cjs/internal/registerAppI18n.js.map +1 -1
- package/dist/cjs/internal/registerCustomTemplates.js.map +1 -1
- package/dist/cjs/internal/secret_internals.js +4 -4
- package/dist/cjs/internal/secret_internals.js.map +1 -1
- package/dist/cjs/internal/setupRootRuntimeContext.js +2 -3
- package/dist/cjs/internal/setupRootRuntimeContext.js.map +1 -1
- package/dist/cjs/isStrictMode.js.map +1 -1
- package/dist/cjs/setLoginStateCookie.js.map +1 -1
- package/dist/cjs/setWatermark.js +4 -4
- package/dist/cjs/setWatermark.js.map +1 -1
- package/dist/cjs/themeAndMode.js +1 -2
- package/dist/cjs/themeAndMode.js.map +1 -1
- package/dist/esm/CustomProcessors.js +5 -5
- package/dist/esm/CustomProcessors.js.map +1 -1
- package/dist/esm/CustomTemplates.js +48 -58
- package/dist/esm/CustomTemplates.js.map +1 -1
- package/dist/esm/Dialog.js +3 -3
- package/dist/esm/Dialog.js.map +1 -1
- package/dist/esm/Notification.js +2 -2
- package/dist/esm/Notification.js.map +1 -1
- package/dist/esm/StoryboardFunctionRegistry.js +18 -18
- package/dist/esm/StoryboardFunctionRegistry.js.map +1 -1
- package/dist/esm/createRoot.js +125 -129
- package/dist/esm/createRoot.js.map +1 -1
- package/dist/esm/fetchByProvider.js +3 -10
- package/dist/esm/fetchByProvider.js.map +1 -1
- package/dist/esm/getBasePath.js +2 -2
- package/dist/esm/getBasePath.js.map +1 -1
- package/dist/esm/getPageInfo.js +5 -5
- package/dist/esm/getPageInfo.js.map +1 -1
- package/dist/esm/getRealValue.js +7 -6
- package/dist/esm/getRealValue.js.map +1 -1
- package/dist/esm/getV2RuntimeFromDll.js +1 -1
- package/dist/esm/getV2RuntimeFromDll.js.map +1 -1
- package/dist/esm/handleHttpError.js +11 -11
- package/dist/esm/handleHttpError.js.map +1 -1
- package/dist/esm/history.js +4 -4
- package/dist/esm/history.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js +13 -17
- package/dist/esm/internal/CustomTemplates/bindTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/constants.js +5 -5
- package/dist/esm/internal/CustomTemplates/constants.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +41 -42
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +43 -46
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js +16 -18
- package/dist/esm/internal/CustomTemplates/setupUseBrickInTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/utils.js +8 -8
- package/dist/esm/internal/CustomTemplates/utils.js.map +1 -1
- package/dist/esm/internal/FormRenderer/constants.js +2 -2
- package/dist/esm/internal/FormRenderer/constants.js.map +1 -1
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js +28 -23
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -1
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js +45 -22
- package/dist/esm/internal/FormRenderer/getDefaultProperties.js.map +1 -1
- package/dist/esm/internal/FormRenderer/utils.js +4 -4
- package/dist/esm/internal/FormRenderer/utils.js.map +1 -1
- package/dist/esm/internal/Renderer.js +517 -580
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/RendererContext.js +132 -148
- package/dist/esm/internal/RendererContext.js.map +1 -1
- package/dist/esm/internal/Router.js +325 -346
- package/dist/esm/internal/Router.js.map +1 -1
- package/dist/esm/internal/Runtime.js +53 -51
- package/dist/esm/internal/Runtime.js.map +1 -1
- package/dist/esm/internal/abortController.js +7 -6
- package/dist/esm/internal/abortController.js.map +1 -1
- package/dist/esm/internal/bindListeners.js +136 -156
- package/dist/esm/internal/bindListeners.js.map +1 -1
- package/dist/esm/internal/compute/StoryboardFunctions.js +1 -1
- package/dist/esm/internal/compute/StoryboardFunctions.js.map +1 -1
- package/dist/esm/internal/compute/WidgetFunctions.js +6 -6
- package/dist/esm/internal/compute/WidgetFunctions.js.map +1 -1
- package/dist/esm/internal/compute/WidgetI18n.js +4 -4
- package/dist/esm/internal/compute/WidgetI18n.js.map +1 -1
- package/dist/esm/internal/compute/checkIf.js +10 -23
- package/dist/esm/internal/compute/checkIf.js.map +1 -1
- package/dist/esm/internal/compute/computeRealProperties.js +22 -35
- package/dist/esm/internal/compute/computeRealProperties.js.map +1 -1
- package/dist/esm/internal/compute/computeRealValue.js +42 -49
- package/dist/esm/internal/compute/computeRealValue.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +71 -75
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/compute/getGeneralGlobals.js +5 -5
- package/dist/esm/internal/compute/getGeneralGlobals.js.map +1 -1
- package/dist/esm/internal/compute/getNextStateOfUseBrick.js +1 -1
- package/dist/esm/internal/compute/getStorageItem.js +2 -3
- package/dist/esm/internal/compute/getStorageItem.js.map +1 -1
- package/dist/esm/internal/compute/getTracks.js +5 -5
- package/dist/esm/internal/compute/getTracks.js.map +1 -1
- package/dist/esm/internal/compute/listenOnTrackingContext.js +8 -11
- package/dist/esm/internal/compute/listenOnTrackingContext.js.map +1 -1
- package/dist/esm/internal/compute/markAsComputed.js +2 -2
- package/dist/esm/internal/compute/markAsComputed.js.map +1 -1
- package/dist/esm/internal/compute/setProperties.js +1 -1
- package/dist/esm/internal/compute/setProperties.js.map +1 -1
- package/dist/esm/internal/compute/setRealProperties.js +3 -3
- package/dist/esm/internal/compute/setRealProperties.js.map +1 -1
- package/dist/esm/internal/customizeColorTheme.js +15 -13
- package/dist/esm/internal/customizeColorTheme.js.map +1 -1
- package/dist/esm/internal/data/DataStore.js +161 -177
- package/dist/esm/internal/data/DataStore.js.map +1 -1
- package/dist/esm/internal/data/getProviderBrick.js +21 -28
- package/dist/esm/internal/data/getProviderBrick.js.map +1 -1
- package/dist/esm/internal/data/realTimeDataInspect.js +5 -5
- package/dist/esm/internal/data/realTimeDataInspect.js.map +1 -1
- package/dist/esm/internal/data/resolveData.js +89 -103
- package/dist/esm/internal/data/resolveData.js.map +1 -1
- package/dist/esm/internal/data/resolveDataStore.js +53 -67
- package/dist/esm/internal/data/resolveDataStore.js.map +1 -1
- package/dist/esm/internal/devtools.js +9 -9
- package/dist/esm/internal/devtools.js.map +1 -1
- package/dist/esm/internal/enums.js +1 -1
- package/dist/esm/internal/fulfilStoryboard.js +15 -28
- package/dist/esm/internal/fulfilStoryboard.js.map +1 -1
- package/dist/esm/internal/hasInstalledApp.js +3 -3
- package/dist/esm/internal/hasInstalledApp.js.map +1 -1
- package/dist/esm/internal/historyExtended.js +40 -37
- package/dist/esm/internal/historyExtended.js.map +1 -1
- package/dist/esm/internal/i18n.js +5 -5
- package/dist/esm/internal/i18n.js.map +1 -1
- package/dist/esm/internal/injected.js +1 -1
- package/dist/esm/internal/injected.js.map +1 -1
- package/dist/esm/internal/insertPreviewRoutes.js +3 -3
- package/dist/esm/internal/insertPreviewRoutes.js.map +1 -1
- package/dist/esm/internal/matchPath.js +17 -17
- package/dist/esm/internal/matchPath.js.map +1 -1
- package/dist/esm/internal/matchRoutes.js +18 -25
- package/dist/esm/internal/matchRoutes.js.map +1 -1
- package/dist/esm/internal/matchStoryboard.js +6 -6
- package/dist/esm/internal/matchStoryboard.js.map +1 -1
- package/dist/esm/internal/mediaQuery.js +11 -11
- package/dist/esm/internal/mediaQuery.js.map +1 -1
- package/dist/esm/internal/mount.js +7 -7
- package/dist/esm/internal/mount.js.map +1 -1
- package/dist/esm/internal/poll.js +53 -60
- package/dist/esm/internal/poll.js.map +1 -1
- package/dist/esm/internal/proxyFactories.js +4 -4
- package/dist/esm/internal/proxyFactories.js.map +1 -1
- package/dist/esm/internal/registerAppI18n.js +6 -6
- package/dist/esm/internal/registerAppI18n.js.map +1 -1
- package/dist/esm/internal/registerCustomTemplates.js +3 -3
- package/dist/esm/internal/registerCustomTemplates.js.map +1 -1
- package/dist/esm/internal/secret_internals.js +140 -146
- package/dist/esm/internal/secret_internals.js.map +1 -1
- package/dist/esm/internal/setupRootRuntimeContext.js +6 -7
- package/dist/esm/internal/setupRootRuntimeContext.js.map +1 -1
- package/dist/esm/internal/sse.js +24 -53
- package/dist/esm/internal/sse.js.map +1 -1
- package/dist/esm/internal/test_only.js +1 -1
- package/dist/esm/isStrictMode.js +3 -3
- package/dist/esm/isStrictMode.js.map +1 -1
- package/dist/esm/setAppVariable.js +1 -1
- package/dist/esm/setAppVariable.js.map +1 -1
- package/dist/esm/setLoginStateCookie.js +5 -5
- package/dist/esm/setLoginStateCookie.js.map +1 -1
- package/dist/esm/setUIVersion.js +1 -1
- package/dist/esm/setWatermark.js +13 -13
- package/dist/esm/setWatermark.js.map +1 -1
- package/dist/esm/themeAndMode.js +14 -13
- package/dist/esm/themeAndMode.js.map +1 -1
- package/dist/types/tsdoc-metadata.json +1 -1
- package/package.json +12 -12
|
@@ -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","_initialMenuRequestNode","_memoizedMenuRequestNodeMap","_incrementalRenderStates","_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","_classPrivateFieldSet2","routeHelper","renderId","setInitialMenuRequestNode","menuRequestNode","memoizeMenuRequestNode","routes","_classPrivateFieldGet2","set","getMenuRequests","menuRequests","current","request","push","child","_current","sibling","return","reMergeMenuRequestNodes","parentMenuRequestNode","node","get","previousSibling","mergeMenus","reBailout","output","bailout","reCatch","error","returnNode","catch","didPerformIncrementalRender","location","prevLocation","finalResult","shouldIgnoreRoutes","parentRoutes","callback","values","reverse","parentRoute","length","includes","result","slice","performIncrementalRender","slotConf","registerBrickLifeCycle","brick","lifeCycle","lifeCycleTypes","key","handlers","isEmpty","useResolves","console","registerArbitraryLifeCycle","fn","arbitraryCallbacks","add","Set","memoize","slotId","keyPath","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","fragment","document","createDocumentFragment","portalFragment","renderRoot","ROOT","container","createPortal","removeBricks","getBrickRange","_assertClassBrand2","_unmountBricks","call","mountTree","_returnNode$container","insertBefore","_returnNode$element","childNodes","_root","root","Error","portal","insertPortalBeforeChild","candidate","contains","newBricks","_initializeRerenderBricks","dispose","list","Object","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","has","_brick$element","_brick$element2","observers","delete","unbindTemplateProxy","$$tplStateStore","unmountEvent","mountEvent","type","process","env","NODE_ENV","_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 SlotConfOfRoutes,\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 MenuRequestNode,\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 | null>;\n\ninterface IncrementalRenderState {\n parentRoutes: RouteConf[];\n callback: LocationChangeCallback;\n}\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\n #initialMenuRequestNode?: MenuRequestNode;\n #memoizedMenuRequestNodeMap?: WeakMap<\n RouteConf[],\n MenuRequestNode | undefined\n > = new WeakMap<RouteConf[], MenuRequestNode | undefined>();\n\n setInitialMenuRequestNode(menuRequestNode: MenuRequestNode) {\n this.#initialMenuRequestNode = menuRequestNode;\n }\n\n memoizeMenuRequestNode(\n routes: RouteConf[],\n menuRequestNode: MenuRequestNode\n ) {\n this.#memoizedMenuRequestNodeMap!.set(routes, menuRequestNode);\n }\n\n getMenuRequests() {\n const menuRequests: Promise<StaticMenuConf>[] = [];\n let current = this.#initialMenuRequestNode;\n while (current) {\n if (current.request) {\n menuRequests.push(current.request);\n }\n if (current.child) {\n current = current.child;\n } else {\n while (current && !current.sibling) {\n current = current.return;\n }\n current = current?.sibling;\n }\n }\n return menuRequests;\n }\n\n async reMergeMenuRequestNodes(\n parentMenuRequestNode: MenuRequestNode,\n routes: RouteConf[],\n menuRequestNode: MenuRequestNode = {}\n ) {\n const node = this.#memoizedMenuRequestNodeMap!.get(routes);\n this.#memoizedMenuRequestNodeMap!.set(routes, menuRequestNode);\n\n let current = parentMenuRequestNode.child;\n let previousSibling: MenuRequestNode | undefined;\n\n while (current) {\n if (current === node) {\n break;\n }\n previousSibling = current;\n current = current.sibling;\n }\n\n if (previousSibling) {\n previousSibling.sibling = menuRequestNode;\n menuRequestNode.sibling = node?.sibling;\n } else {\n parentMenuRequestNode.child = menuRequestNode;\n }\n\n await this.#routeHelper!.mergeMenus(this.getMenuRequests());\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 #incrementalRenderStates = new Map<\n SlotConfOfRoutes,\n IncrementalRenderState\n >();\n\n async didPerformIncrementalRender(\n location: Location<NextHistoryState>,\n prevLocation: Location<NextHistoryState>\n ) {\n let finalResult = false;\n const shouldIgnoreRoutes: RouteConf[] = [];\n // Perform incremental rendering from inside out.\n // This allows nested incremental sub-routes.\n for (const { parentRoutes, callback } of [\n ...this.#incrementalRenderStates.values(),\n ].reverse()) {\n const parentRoute = parentRoutes[parentRoutes.length - 1];\n if (shouldIgnoreRoutes.includes(parentRoute)) {\n // Do not re-render parent routes if any of its children has performed incremental rendering.\n // In the meantime, allow sibling-routes to perform incremental rendering.\n continue;\n }\n const result = await callback(location, prevLocation);\n // When result is null, it means the incremental rendering is tried but routes missed.\n // In this case, we should continue to re-render the parent routes.\n if (result) {\n shouldIgnoreRoutes.push(...parentRoutes.slice(0, -1));\n }\n // Mark incremental rendering as performed at final if result is true or null.\n if (result !== false) {\n finalResult = true;\n }\n }\n return finalResult;\n }\n\n /**\n * When `callback` resolved to `true` which means incremental rendering is performed,\n * ignore normal rendering.\n */\n performIncrementalRender(\n slotConf: SlotConfOfRoutes,\n parentRoutes: RouteConf[],\n callback: LocationChangeCallback\n ) {\n // Override stale incremental render callbacks\n this.#incrementalRenderStates.set(slotConf, { parentRoutes, 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.#arbitraryLifeCycle.clear();\n this.#incrementalRenderStates.clear();\n this.#memoizedMenuRequestNodeMap = undefined;\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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","ignoreList":[]}
|
|
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","_initialMenuRequestNode","_memoizedMenuRequestNodeMap","_incrementalRenderStates","_RendererContext_brand","WeakSet","RendererContext","constructor","scope","options","_classPrivateMethodInitSpec2","default","_defineProperty2","_classPrivateFieldInitSpec2","onBeforePageLoad","onPageLoad","onPageLeave","onBeforePageLeave","onAnchorLoad","onAnchorUnload","onMediaChange","onScrollIntoView","onMount","onUnmount","onMessage","onMessageClose","Map","unknownBricks","_classPrivateFieldSet2","routeHelper","renderId","setInitialMenuRequestNode","menuRequestNode","memoizeMenuRequestNode","routes","_classPrivateFieldGet2","set","getMenuRequests","menuRequests","current","request","push","child","_current","sibling","return","reMergeMenuRequestNodes","parentMenuRequestNode","node","get","previousSibling","mergeMenus","reBailout","output","bailout","reCatch","error","returnNode","catch","didPerformIncrementalRender","location","prevLocation","finalResult","shouldIgnoreRoutes","parentRoutes","callback","values","reverse","parentRoute","length","includes","result","slice","performIncrementalRender","slotConf","registerBrickLifeCycle","brick","lifeCycle","lifeCycleTypes","key","handlers","isEmpty","useResolves","console","registerArbitraryLifeCycle","fn","arbitraryCallbacks","add","Set","memoize","slotId","keyPath","memKey","join","mem","last","getLastNode","lastNormal","getLastNormalNode","lastPortal","getLastPortalNode","reRender","memoized","prevNode","prevLast","prevLastNormal","prevLastPortal","insertBeforeChild","insertPortalBeforeChildCandidates","tag","RenderTag","PLACEHOLDER","_getNextNormalNode","_getNextPortalNode","getNextNormalNode","element","nextSibling","getNextPortalNode","_prevLastNormal$eleme","_prevLastPortal$eleme","HTMLElement","tagName","prevSibling","fragment","document","createDocumentFragment","portalFragment","renderRoot","ROOT","container","createPortal","removeBricks","getBrickRange","_assertClassBrand2","_unmountBricks","call","mountTree","_returnNode$container","insertBefore","_returnNode$element","childNodes","_root","root","Error","portal","insertPortalBeforeChild","candidate","contains","newBricks","_initializeRerenderBricks","dispose","list","Object","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","has","_brick$element","_brick$element2","observers","delete","unbindTemplateProxy","$$tplStateStore","unmountEvent","mountEvent","type","process","env","NODE_ENV","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 SlotConfOfRoutes,\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 MenuRequestNode,\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 | null>;\n\ninterface IncrementalRenderState {\n parentRoutes: RouteConf[];\n callback: LocationChangeCallback;\n}\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\n #initialMenuRequestNode?: MenuRequestNode;\n #memoizedMenuRequestNodeMap?: WeakMap<\n RouteConf[],\n MenuRequestNode | undefined\n > = new WeakMap<RouteConf[], MenuRequestNode | undefined>();\n\n setInitialMenuRequestNode(menuRequestNode: MenuRequestNode) {\n this.#initialMenuRequestNode = menuRequestNode;\n }\n\n memoizeMenuRequestNode(\n routes: RouteConf[],\n menuRequestNode: MenuRequestNode\n ) {\n this.#memoizedMenuRequestNodeMap!.set(routes, menuRequestNode);\n }\n\n getMenuRequests() {\n const menuRequests: Promise<StaticMenuConf>[] = [];\n let current = this.#initialMenuRequestNode;\n while (current) {\n if (current.request) {\n menuRequests.push(current.request);\n }\n if (current.child) {\n current = current.child;\n } else {\n while (current && !current.sibling) {\n current = current.return;\n }\n current = current?.sibling;\n }\n }\n return menuRequests;\n }\n\n async reMergeMenuRequestNodes(\n parentMenuRequestNode: MenuRequestNode,\n routes: RouteConf[],\n menuRequestNode: MenuRequestNode = {}\n ) {\n const node = this.#memoizedMenuRequestNodeMap!.get(routes);\n this.#memoizedMenuRequestNodeMap!.set(routes, menuRequestNode);\n\n let current = parentMenuRequestNode.child;\n let previousSibling: MenuRequestNode | undefined;\n\n while (current) {\n if (current === node) {\n break;\n }\n previousSibling = current;\n current = current.sibling;\n }\n\n if (previousSibling) {\n previousSibling.sibling = menuRequestNode;\n menuRequestNode.sibling = node?.sibling;\n } else {\n parentMenuRequestNode.child = menuRequestNode;\n }\n\n await this.#routeHelper!.mergeMenus(this.getMenuRequests());\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 #incrementalRenderStates = new Map<\n SlotConfOfRoutes,\n IncrementalRenderState\n >();\n\n async didPerformIncrementalRender(\n location: Location<NextHistoryState>,\n prevLocation: Location<NextHistoryState>\n ) {\n let finalResult = false;\n const shouldIgnoreRoutes: RouteConf[] = [];\n // Perform incremental rendering from inside out.\n // This allows nested incremental sub-routes.\n for (const { parentRoutes, callback } of [\n ...this.#incrementalRenderStates.values(),\n ].reverse()) {\n const parentRoute = parentRoutes[parentRoutes.length - 1];\n if (shouldIgnoreRoutes.includes(parentRoute)) {\n // Do not re-render parent routes if any of its children has performed incremental rendering.\n // In the meantime, allow sibling-routes to perform incremental rendering.\n continue;\n }\n const result = await callback(location, prevLocation);\n // When result is null, it means the incremental rendering is tried but routes missed.\n // In this case, we should continue to re-render the parent routes.\n if (result) {\n shouldIgnoreRoutes.push(...parentRoutes.slice(0, -1));\n }\n // Mark incremental rendering as performed at final if result is true or null.\n if (result !== false) {\n finalResult = true;\n }\n }\n return finalResult;\n }\n\n /**\n * When `callback` resolved to `true` which means incremental rendering is performed,\n * ignore normal rendering.\n */\n performIncrementalRender(\n slotConf: SlotConfOfRoutes,\n parentRoutes: RouteConf[],\n callback: LocationChangeCallback\n ) {\n // Override stale incremental render callbacks\n this.#incrementalRenderStates.set(slotConf, { parentRoutes, 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.#arbitraryLifeCycle.clear();\n this.#incrementalRenderStates.clear();\n this.#memoizedMenuRequestNodeMap = undefined;\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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","ignoreList":[]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","names":["_history2","require","_http","_lodash","_history3","_Renderer","_DataStore","_resolveData","_mount","_matchStoryboard","_StoryboardFunctions","_RendererContext","_themeAndMode","_Runtime","_getPageInfo","_markAsComputed","_handleHttpError","_abortController","_setLoginStateCookie","_registerCustomTemplates","_fulfilStoryboard","_enums","_insertPreviewRoutes","_devtools","_setUIVersion","_setAppVariable","_setWatermark","_storyboards","WeakMap","_rendering","_prevLocation","_nextLocation","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_Router_brand","WeakSet","Router","constructor","storyboards","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","Set","_classPrivateFieldSet2","history","getHistory","window","addEventListener","event","message","_assertClassBrand2","_getBlockMessageBeforePageLave","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet7","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","initAbortController","renderId","listen","_classPrivateFieldGet2","_location$state","_location$state2","_classPrivateFieldGet4","currentRenderId","ignoreRendering","omittedLocationProps","hash","undefined","state","key","notify","locationsAreEqual","noIncremental","_classPrivateFieldGet3","didPerformIncrementalRender","abortPendingRequest","dispatchPageLeave","storyboard","matchStoryboard","pathname","isOutsideApp","reload","devtoolsHookEmit","_queuedRender","catch","handleHttpError","exports","detail","_classPrivateFieldGet5","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect","to","from","_this$redirectCount","_this$redirectCount2","search","process","env","NODE_ENV","console","error","Error","replace","_render","nextLocation","_hooks$flowApi","_hooks$pageView","_classPrivateFieldGet6","_storyboard$app","uniqueId","resetAllComputedMarks","clearResolveCache","hooks","flowApi","clearCollectWidgetContract","finishPageView","pageView","create","app","currentAppId","id","BOOTSTRAP_UNION_FILE","setAppVariable","appId","version","currentVersion","fulfilStoryboard","setWatermark","appChanged","flags","getRuntime","getFeatureFlags","prevRendererContext","redirectTo","status","add","redirectToLogin","setLoginStateCookie","main","document","querySelector","portal","renderRoot","tag","RenderTag","ROOT","container","createPortal","cleanUpPreviousRender","_hooks$messageDispatc","unmountTree","item","dispatchOnUnmount","dispose","clear","messageDispatcher","reset","dispatchEvent","CustomEvent","setTheme","getLocalAppsTheme","theme","setMode","_hooks$checkInstalled","_hooks$auth","_hooks$checkPermissio","_storyboard$meta","_hooks$flowApi2","_storyboard$meta2","checkInstalledApps","preCheckInstalledApps","_internalApiGetAppInBootstrapData","routeHelper","bailout","output","unauthenticated","redirect","path","mergeMenus","menuRequests","menuConfs","Promise","all","mergeMenuConfs","returnNode","isUnauthenticatedError","NO_AUTH_GUARD","HttpAbortError","noAuthGuardLoginPath","getMiscSettings","failed","node","BRICK","type","properties","textContent","httpErrorToString","dataset","errorBoundary","style","color","runtimeContext","return","blockingList","rendererContext","RendererContext","query","URLSearchParams","sys","auth","getAuth","getPageInfo","settings","brand","getBrandSettings","ctxStore","DataStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","registerCustomTemplates","registerStoryboardFunctions","meta","functions","collectContract","contracts","stores","rootMenuRequestNode","renderRoutes","insertPreviewRoutes","routes","getDataStores","postAsyncRender","child","menuRequestNode","setInitialMenuRequestNode","getMenuRequests","result","route","dispatchBeforePageLoad","applyTheme","applyMode","setUIVersion","uiVersion","mountTree","scrollTo","dispatchPageLoad","dispatchAnchorLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","initializeMessageDispatcher","store","mountAsyncData","pageTitle","title","isLoggedIn","navConfig","breadcrumb","menuConf","overwrite","items","push"],"sources":["../../../src/internal/Router.ts"],"sourcesContent":["import { Action, locationsAreEqual } from \"history\";\nimport type {\n BreadcrumbItemConf,\n MicroApp,\n StaticMenuConf,\n Storyboard,\n} from \"@next-core/types\";\nimport { HttpAbortError } from \"@next-core/http\";\nimport { uniqueId } from \"lodash\";\nimport { NextHistoryState, NextLocation, getHistory } from \"../history.js\";\nimport {\n RenderOutput,\n getDataStores,\n postAsyncRender,\n renderRoutes,\n} from \"./Renderer.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { clearResolveCache } from \"./data/resolveData.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { isOutsideApp, matchStoryboard } from \"./matchStoryboard.js\";\nimport { registerStoryboardFunctions } from \"./compute/StoryboardFunctions.js\";\nimport { RendererContext, RouteHelper } from \"./RendererContext.js\";\nimport {\n applyMode,\n applyTheme,\n getLocalAppsTheme,\n setMode,\n setTheme,\n} from \"../themeAndMode.js\";\nimport {\n _internalApiGetAppInBootstrapData,\n getRuntime,\n hooks,\n} from \"./Runtime.js\";\nimport { getPageInfo } from \"../getPageInfo.js\";\nimport type {\n MenuRequestNode,\n RenderBrick,\n RenderRoot,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport { resetAllComputedMarks } from \"./compute/markAsComputed.js\";\nimport {\n handleHttpError,\n httpErrorToString,\n isUnauthenticatedError,\n} from \"../handleHttpError.js\";\nimport { abortPendingRequest, initAbortController } from \"./abortController.js\";\nimport { setLoginStateCookie } from \"../setLoginStateCookie.js\";\nimport { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.js\";\nimport { devtoolsHookEmit } from \"./devtools.js\";\nimport { setUIVersion } from \"../setUIVersion.js\";\nimport { setAppVariable } from \"../setAppVariable.js\";\nimport { setWatermark } from \"../setWatermark.js\";\n\nexport class Router {\n readonly #storyboards: Storyboard[];\n #rendering = false;\n #prevLocation!: NextLocation;\n #nextLocation?: NextLocation;\n #runtimeContext?: RuntimeContext;\n #rendererContext?: RendererContext;\n #rendererContextTrashCan = new Set<RendererContext | undefined>();\n #redirectCount = 0;\n #renderId?: string;\n #currentApp?: MicroApp;\n #previousApp?: MicroApp;\n #navConfig?: {\n breadcrumb?: BreadcrumbItemConf[];\n };\n\n constructor(storyboards: Storyboard[]) {\n this.#storyboards = storyboards;\n\n const history = getHistory();\n window.addEventListener(\"beforeunload\", (event) => {\n const message = this.#getBlockMessageBeforePageLave({});\n // See examples in https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload\n if (message) {\n // Cancel the event\n // If you prevent default behavior in Mozilla Firefox prompt will always be shown\n event.preventDefault();\n // Chrome requires returnValue to be set\n event.returnValue = \"\";\n } else {\n // the absence of a returnValue property on the event will guarantee the browser unload happens\n delete event.returnValue;\n }\n });\n\n history.block((location, action) =>\n this.#getBlockMessageBeforePageLave({ location, action })\n );\n }\n\n getRenderId() {\n return this.#renderId;\n }\n\n getRuntimeContext() {\n return this.#runtimeContext;\n }\n\n getRecentApps() {\n return {\n currentApp: this.#currentApp,\n previousApp: this.#previousApp,\n };\n }\n\n getNavConfig() {\n return this.#navConfig;\n }\n\n #getBlockMessageBeforePageLave(detail: {\n location?: NextLocation;\n action?: Action;\n }): string | undefined {\n const history = getHistory();\n const previousMessage = history.getBlockMessage();\n this.#rendererContext?.dispatchBeforePageLeave(detail);\n const message = history.getBlockMessage();\n if (!previousMessage && message) {\n // Auto unblock only if new block was introduced by `onBeforePageLeave`.\n history.unblock();\n }\n return message;\n }\n\n #safeRedirect(\n to: string,\n state: NextHistoryState | undefined,\n from: NextLocation\n ): void {\n if (this.#redirectCount++ > 10) {\n const message = `Infinite redirect detected: from \"${from.pathname}${from.search}${from.hash}\" to \"${to}\"`;\n // istanbul ignore else: error cannot be caught in test\n if (process.env.NODE_ENV === \"test\") {\n // eslint-disable-next-line no-console\n console.error(message);\n return;\n } else {\n throw new Error(message);\n }\n }\n getHistory().replace(to, state);\n }\n\n bootstrap() {\n initAbortController();\n const history = getHistory();\n this.#prevLocation = history.location;\n let renderId = 0;\n history.listen(async (location, action) => {\n const currentRenderId = ++renderId;\n let ignoreRendering: boolean | undefined;\n const omittedLocationProps: Partial<NextLocation> = {\n hash: undefined,\n state: undefined,\n };\n // Omit the \"key\" when checking whether locations are equal in certain situations.\n if (\n // When current location is triggered by browser action of hash link.\n location.key === undefined ||\n // When current location is triggered by browser action of non-push-or-replace,\n // such as goBack or goForward,\n (action === \"POP\" &&\n // and the previous location was triggered by hash link,\n (this.#prevLocation.key === undefined ||\n // or the previous location specified notify false.\n this.#prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = undefined;\n }\n if (\n locationsAreEqual(\n { ...this.#prevLocation, ...omittedLocationProps },\n { ...location, ...omittedLocationProps }\n ) ||\n (action !== \"POP\" && location.state?.notify === false)\n ) {\n // Ignore rendering if location not changed except hash, state and optional key.\n // Ignore rendering if notify is `false`.\n ignoreRendering = true;\n }\n\n if (!ignoreRendering && !location.state?.noIncremental) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(\n location,\n this.#prevLocation\n );\n }\n\n // Ignore stale renders\n if (renderId !== currentRenderId) {\n return;\n }\n\n if (ignoreRendering) {\n this.#prevLocation = location;\n return;\n }\n\n abortPendingRequest();\n this.#prevLocation = location;\n this.#rendererContext?.dispatchPageLeave();\n\n if (action === \"POP\") {\n const storyboard = matchStoryboard(\n this.#storyboards,\n location.pathname\n );\n // When a browser action of goBack or goForward is performing,\n // force reload when the target page is a page of an outside app.\n if (isOutsideApp(storyboard)) {\n window.location.reload();\n return;\n }\n }\n\n if (this.#rendering) {\n this.#nextLocation = location;\n } else {\n devtoolsHookEmit(\"locationChange\");\n this.#queuedRender(location).catch(handleHttpError);\n }\n });\n return this.#queuedRender(history.location);\n }\n\n async #queuedRender(location: NextLocation): Promise<void> {\n this.#rendering = true;\n try {\n await this.#render(location);\n } finally {\n this.#rendering = false;\n if (this.#nextLocation) {\n const nextLocation = this.#nextLocation;\n this.#nextLocation = undefined;\n await this.#queuedRender(nextLocation);\n }\n }\n }\n\n async #render(location: NextLocation): Promise<void> {\n const renderId = (this.#renderId = uniqueId(\"render-id-\"));\n\n resetAllComputedMarks();\n clearResolveCache();\n hooks?.flowApi?.clearCollectWidgetContract();\n\n const history = getHistory();\n history.unblock();\n\n // const renderStartTime = performance.now();\n const finishPageView = hooks?.pageView?.create();\n\n const storyboard = matchStoryboard(this.#storyboards, location.pathname);\n\n const previousApp = this.#runtimeContext?.app;\n const currentAppId = storyboard?.app?.id;\n // dynamically change the value of the APP variable, if it's union app\n if (\n window.BOOTSTRAP_UNION_FILE &&\n currentAppId &&\n currentAppId !== previousApp?.id\n ) {\n setAppVariable({\n appId: currentAppId,\n version: storyboard.app.currentVersion!,\n });\n }\n\n if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n\n const currentApp = (this.#currentApp = storyboard?.app);\n\n setWatermark();\n\n // Storyboard maybe re-assigned, e.g. when open launchpad.\n const appChanged =\n previousApp && currentApp\n ? previousApp.id !== currentApp.id\n : previousApp !== currentApp;\n\n // TODO: handle favicon\n\n // Set `Router::#currentApp` before calling `getFeatureFlags()`\n const flags = getRuntime().getFeatureFlags();\n const prevRendererContext = this.#rendererContext;\n\n const redirectTo = (to: string, state?: NextHistoryState): void => {\n finishPageView?.({\n status: \"redirected\",\n });\n this.#rendererContextTrashCan.add(prevRendererContext);\n this.#safeRedirect(to, state, location);\n };\n\n const redirectToLogin = (): void => {\n const to = flags[\"sso-enabled\"] ? \"/sso-auth/login\" : \"/auth/login\";\n setLoginStateCookie(location);\n redirectTo(to, { from: location });\n };\n\n const main = document.querySelector(\"#main-mount-point\") as HTMLElement;\n const portal = document.querySelector(\"#portal-mount-point\") as HTMLElement;\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: main,\n createPortal: portal,\n };\n\n const cleanUpPreviousRender = (): void => {\n unmountTree(main);\n unmountTree(portal);\n\n // Note: redirects can lead to multiple trash renderer contexts.\n this.#rendererContextTrashCan.add(prevRendererContext);\n for (const item of this.#rendererContextTrashCan) {\n if (item) {\n item.dispatchOnUnmount();\n item.dispose();\n }\n }\n this.#rendererContextTrashCan.clear();\n hooks?.messageDispatcher?.reset();\n\n if (appChanged) {\n this.#previousApp = previousApp;\n window.dispatchEvent(\n new CustomEvent(\"app.change\", {\n detail: {\n previousApp,\n currentApp,\n },\n })\n );\n }\n };\n\n setTheme(\n (currentApp &&\n (getLocalAppsTheme()[currentApp.id] || currentApp.theme)) ||\n \"light\"\n );\n setMode(\"default\");\n\n if (currentApp) {\n hooks?.checkInstalledApps?.preCheckInstalledApps(\n storyboard,\n (appId) => !!_internalApiGetAppInBootstrapData(appId)\n );\n\n const routeHelper: RouteHelper = {\n bailout: (output) => {\n if (output.unauthenticated) {\n redirectToLogin();\n return true;\n }\n if (output.redirect) {\n redirectTo(output.redirect.path, output.redirect.state);\n return true;\n }\n // Reset redirect count if no redirect is set.\n this.#redirectCount = 0;\n },\n mergeMenus: async (menuRequests) => {\n const menuConfs = await Promise.all(menuRequests);\n this.#navConfig = mergeMenuConfs(menuConfs);\n window.dispatchEvent(\n new CustomEvent(\"navConfig.change\", { detail: this.#navConfig })\n );\n },\n catch: (error, returnNode) => {\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n redirectToLogin();\n return;\n } else if (error instanceof HttpAbortError) {\n this.#rendererContextTrashCan.add(prevRendererContext);\n return;\n } else {\n const noAuthGuardLoginPath =\n getRuntime().getMiscSettings().noAuthGuardLoginPath;\n if (isUnauthenticatedError(error) && noAuthGuardLoginPath) {\n redirectTo(noAuthGuardLoginPath as string, { from: location });\n return;\n }\n return {\n failed: true,\n output: {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n dataset: {\n errorBoundary: \"\",\n },\n style: {\n color: \"var(--color-error)\",\n },\n },\n runtimeContext: null!,\n return: returnNode,\n },\n blockingList: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper, renderId }\n ));\n\n const runtimeContext: RuntimeContext = (this.#runtimeContext = {\n app: currentApp,\n location,\n query: new URLSearchParams(location.search),\n flags,\n sys: {\n ...hooks?.auth?.getAuth(),\n ...getPageInfo(),\n settings: {\n brand: getRuntime().getBrandSettings(),\n },\n },\n ctxStore: new DataStore(\"CTX\", undefined, rendererContext),\n pendingPermissionsPreCheck: [\n hooks?.checkPermissions?.preCheckPermissions(storyboard),\n ],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n formStateStoreMap: new Map<string, DataStore<\"FORM_STATE\">>(),\n });\n\n this.#navConfig = undefined;\n\n registerCustomTemplates(storyboard);\n registerStoryboardFunctions(storyboard.meta?.functions, currentApp);\n hooks?.flowApi?.collectContract(storyboard.meta?.contracts);\n\n let failed = false;\n let output: RenderOutput;\n let stores: DataStore<\"CTX\" | \"STATE\" | \"FORM_STATE\">[] = [];\n\n try {\n const rootMenuRequestNode: MenuRequestNode = {};\n output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n [],\n rootMenuRequestNode\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n rootMenuRequestNode.child = output.menuRequestNode;\n rendererContext.setInitialMenuRequestNode(rootMenuRequestNode);\n await routeHelper.mergeMenus(rendererContext.getMenuRequests());\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Router failed:\", error);\n\n const result = routeHelper.catch(error, renderRoot);\n if (!result) {\n return;\n }\n ({ failed, output } = result);\n }\n renderRoot.child = output.node;\n\n cleanUpPreviousRender();\n\n if ((output.route && output.route.type !== \"routes\") || failed) {\n if (!failed) {\n // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.\n rendererContext.dispatchBeforePageLoad();\n }\n applyTheme();\n applyMode();\n\n setUIVersion(currentApp?.uiVersion);\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n // See https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/guides/scroll-restoration.md\n window.scrollTo(0, 0);\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n rendererContext.initializeMessageDispatcher();\n\n for (const store of stores) {\n store.mountAsyncData();\n }\n\n finishPageView?.({\n status: \"ok\",\n path: output.path,\n pageTitle: document.title,\n });\n } else {\n finishPageView?.({ status: \"failed\" });\n }\n devtoolsHookEmit(\"rendered\");\n\n return;\n }\n } else if (\n !window.NO_AUTH_GUARD &&\n hooks?.auth &&\n !hooks.auth.isLoggedIn()\n ) {\n // Todo(steve): refine after api-gateway supports fetching storyboards before logged in.\n // Redirect to login if no storyboard is matched.\n redirectToLogin();\n return;\n } else {\n cleanUpPreviousRender();\n }\n\n applyTheme();\n applyMode();\n\n const node: RenderBrick = {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: \"Page not found\",\n },\n runtimeContext: null!,\n return: renderRoot,\n };\n renderRoot.child = node;\n\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n window.scrollTo(0, 0);\n finishPageView?.({ status: \"not-found\" });\n devtoolsHookEmit(\"rendered\");\n }\n}\n\nfunction mergeMenuConfs(menuConfs: StaticMenuConf[]) {\n const navConfig = {\n breadcrumb: [] as BreadcrumbItemConf[],\n };\n for (const menuConf of menuConfs) {\n const { breadcrumb } = menuConf;\n if (breadcrumb) {\n if (breadcrumb.overwrite) {\n navConfig.breadcrumb = breadcrumb.items;\n } else {\n navConfig.breadcrumb.push(...breadcrumb.items);\n }\n }\n }\n return navConfig;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
1
|
+
{"version":3,"file":"Router.js","names":["_history2","require","_http","_lodash","_history3","_Renderer","_DataStore","_resolveData","_mount","_matchStoryboard","_StoryboardFunctions","_RendererContext","_themeAndMode","_Runtime","_getPageInfo","_markAsComputed","_handleHttpError","_abortController","_setLoginStateCookie","_registerCustomTemplates","_fulfilStoryboard","_enums","_insertPreviewRoutes","_devtools","_setUIVersion","_setAppVariable","_setWatermark","_storyboards","WeakMap","_rendering","_prevLocation","_nextLocation","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_Router_brand","WeakSet","Router","constructor","storyboards","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","Set","_classPrivateFieldSet2","history","getHistory","window","addEventListener","event","message","_assertClassBrand2","_getBlockMessageBeforePageLave","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet7","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","initAbortController","renderId","listen","_classPrivateFieldGet2","_location$state","_location$state2","_classPrivateFieldGet4","currentRenderId","ignoreRendering","omittedLocationProps","hash","undefined","state","key","notify","locationsAreEqual","noIncremental","_classPrivateFieldGet3","didPerformIncrementalRender","abortPendingRequest","dispatchPageLeave","storyboard","matchStoryboard","pathname","isOutsideApp","reload","devtoolsHookEmit","_queuedRender","catch","handleHttpError","exports","detail","_classPrivateFieldGet5","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect","to","from","_this$redirectCount","_this$redirectCount2","search","process","env","NODE_ENV","console","error","Error","replace","_render","nextLocation","_hooks$flowApi","_hooks$pageView","_classPrivateFieldGet6","_storyboard$app","uniqueId","resetAllComputedMarks","clearResolveCache","hooks","flowApi","clearCollectWidgetContract","finishPageView","pageView","create","app","currentAppId","id","BOOTSTRAP_UNION_FILE","setAppVariable","appId","version","currentVersion","fulfilStoryboard","setWatermark","appChanged","flags","getRuntime","getFeatureFlags","prevRendererContext","redirectTo","status","add","redirectToLogin","setLoginStateCookie","main","document","querySelector","portal","renderRoot","tag","RenderTag","ROOT","container","createPortal","cleanUpPreviousRender","_hooks$messageDispatc","unmountTree","item","dispatchOnUnmount","dispose","clear","messageDispatcher","reset","dispatchEvent","CustomEvent","setTheme","getLocalAppsTheme","theme","setMode","_hooks$checkInstalled","_hooks$auth","_hooks$checkPermissio","_storyboard$meta","_hooks$flowApi2","_storyboard$meta2","checkInstalledApps","preCheckInstalledApps","_internalApiGetAppInBootstrapData","routeHelper","bailout","output","unauthenticated","redirect","path","mergeMenus","menuRequests","menuConfs","Promise","all","mergeMenuConfs","returnNode","isUnauthenticatedError","NO_AUTH_GUARD","HttpAbortError","noAuthGuardLoginPath","getMiscSettings","failed","node","BRICK","type","properties","textContent","httpErrorToString","dataset","errorBoundary","style","color","runtimeContext","return","blockingList","rendererContext","RendererContext","query","URLSearchParams","sys","auth","getAuth","getPageInfo","settings","brand","getBrandSettings","ctxStore","DataStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","registerCustomTemplates","registerStoryboardFunctions","meta","functions","collectContract","contracts","stores","rootMenuRequestNode","renderRoutes","insertPreviewRoutes","routes","getDataStores","postAsyncRender","child","menuRequestNode","setInitialMenuRequestNode","getMenuRequests","result","route","dispatchBeforePageLoad","applyTheme","applyMode","setUIVersion","uiVersion","mountTree","scrollTo","dispatchPageLoad","dispatchAnchorLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","initializeMessageDispatcher","store","mountAsyncData","pageTitle","title","isLoggedIn","navConfig","breadcrumb","menuConf","overwrite","items","push"],"sources":["../../../src/internal/Router.ts"],"sourcesContent":["import { Action, locationsAreEqual } from \"history\";\nimport type {\n BreadcrumbItemConf,\n MicroApp,\n StaticMenuConf,\n Storyboard,\n} from \"@next-core/types\";\nimport { HttpAbortError } from \"@next-core/http\";\nimport { uniqueId } from \"lodash\";\nimport { NextHistoryState, NextLocation, getHistory } from \"../history.js\";\nimport {\n RenderOutput,\n getDataStores,\n postAsyncRender,\n renderRoutes,\n} from \"./Renderer.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { clearResolveCache } from \"./data/resolveData.js\";\nimport { mountTree, unmountTree } from \"./mount.js\";\nimport { isOutsideApp, matchStoryboard } from \"./matchStoryboard.js\";\nimport { registerStoryboardFunctions } from \"./compute/StoryboardFunctions.js\";\nimport { RendererContext, RouteHelper } from \"./RendererContext.js\";\nimport {\n applyMode,\n applyTheme,\n getLocalAppsTheme,\n setMode,\n setTheme,\n} from \"../themeAndMode.js\";\nimport {\n _internalApiGetAppInBootstrapData,\n getRuntime,\n hooks,\n} from \"./Runtime.js\";\nimport { getPageInfo } from \"../getPageInfo.js\";\nimport type {\n MenuRequestNode,\n RenderBrick,\n RenderRoot,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport { resetAllComputedMarks } from \"./compute/markAsComputed.js\";\nimport {\n handleHttpError,\n httpErrorToString,\n isUnauthenticatedError,\n} from \"../handleHttpError.js\";\nimport { abortPendingRequest, initAbortController } from \"./abortController.js\";\nimport { setLoginStateCookie } from \"../setLoginStateCookie.js\";\nimport { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.js\";\nimport { devtoolsHookEmit } from \"./devtools.js\";\nimport { setUIVersion } from \"../setUIVersion.js\";\nimport { setAppVariable } from \"../setAppVariable.js\";\nimport { setWatermark } from \"../setWatermark.js\";\n\nexport class Router {\n readonly #storyboards: Storyboard[];\n #rendering = false;\n #prevLocation!: NextLocation;\n #nextLocation?: NextLocation;\n #runtimeContext?: RuntimeContext;\n #rendererContext?: RendererContext;\n #rendererContextTrashCan = new Set<RendererContext | undefined>();\n #redirectCount = 0;\n #renderId?: string;\n #currentApp?: MicroApp;\n #previousApp?: MicroApp;\n #navConfig?: {\n breadcrumb?: BreadcrumbItemConf[];\n };\n\n constructor(storyboards: Storyboard[]) {\n this.#storyboards = storyboards;\n\n const history = getHistory();\n window.addEventListener(\"beforeunload\", (event) => {\n const message = this.#getBlockMessageBeforePageLave({});\n // See examples in https://developer.mozilla.org/en-US/docs/Web/API/WindowEventHandlers/onbeforeunload\n if (message) {\n // Cancel the event\n // If you prevent default behavior in Mozilla Firefox prompt will always be shown\n event.preventDefault();\n // Chrome requires returnValue to be set\n event.returnValue = \"\";\n } else {\n // the absence of a returnValue property on the event will guarantee the browser unload happens\n delete event.returnValue;\n }\n });\n\n history.block((location, action) =>\n this.#getBlockMessageBeforePageLave({ location, action })\n );\n }\n\n getRenderId() {\n return this.#renderId;\n }\n\n getRuntimeContext() {\n return this.#runtimeContext;\n }\n\n getRecentApps() {\n return {\n currentApp: this.#currentApp,\n previousApp: this.#previousApp,\n };\n }\n\n getNavConfig() {\n return this.#navConfig;\n }\n\n #getBlockMessageBeforePageLave(detail: {\n location?: NextLocation;\n action?: Action;\n }): string | undefined {\n const history = getHistory();\n const previousMessage = history.getBlockMessage();\n this.#rendererContext?.dispatchBeforePageLeave(detail);\n const message = history.getBlockMessage();\n if (!previousMessage && message) {\n // Auto unblock only if new block was introduced by `onBeforePageLeave`.\n history.unblock();\n }\n return message;\n }\n\n #safeRedirect(\n to: string,\n state: NextHistoryState | undefined,\n from: NextLocation\n ): void {\n if (this.#redirectCount++ > 10) {\n const message = `Infinite redirect detected: from \"${from.pathname}${from.search}${from.hash}\" to \"${to}\"`;\n // istanbul ignore else: error cannot be caught in test\n if (process.env.NODE_ENV === \"test\") {\n // eslint-disable-next-line no-console\n console.error(message);\n return;\n } else {\n throw new Error(message);\n }\n }\n getHistory().replace(to, state);\n }\n\n bootstrap() {\n initAbortController();\n const history = getHistory();\n this.#prevLocation = history.location;\n let renderId = 0;\n history.listen(async (location, action) => {\n const currentRenderId = ++renderId;\n let ignoreRendering: boolean | undefined;\n const omittedLocationProps: Partial<NextLocation> = {\n hash: undefined,\n state: undefined,\n };\n // Omit the \"key\" when checking whether locations are equal in certain situations.\n if (\n // When current location is triggered by browser action of hash link.\n location.key === undefined ||\n // When current location is triggered by browser action of non-push-or-replace,\n // such as goBack or goForward,\n (action === \"POP\" &&\n // and the previous location was triggered by hash link,\n (this.#prevLocation.key === undefined ||\n // or the previous location specified notify false.\n this.#prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = undefined;\n }\n if (\n locationsAreEqual(\n { ...this.#prevLocation, ...omittedLocationProps },\n { ...location, ...omittedLocationProps }\n ) ||\n (action !== \"POP\" && location.state?.notify === false)\n ) {\n // Ignore rendering if location not changed except hash, state and optional key.\n // Ignore rendering if notify is `false`.\n ignoreRendering = true;\n }\n\n if (!ignoreRendering && !location.state?.noIncremental) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(\n location,\n this.#prevLocation\n );\n }\n\n // Ignore stale renders\n if (renderId !== currentRenderId) {\n return;\n }\n\n if (ignoreRendering) {\n this.#prevLocation = location;\n return;\n }\n\n abortPendingRequest();\n this.#prevLocation = location;\n this.#rendererContext?.dispatchPageLeave();\n\n if (action === \"POP\") {\n const storyboard = matchStoryboard(\n this.#storyboards,\n location.pathname\n );\n // When a browser action of goBack or goForward is performing,\n // force reload when the target page is a page of an outside app.\n if (isOutsideApp(storyboard)) {\n window.location.reload();\n return;\n }\n }\n\n if (this.#rendering) {\n this.#nextLocation = location;\n } else {\n devtoolsHookEmit(\"locationChange\");\n this.#queuedRender(location).catch(handleHttpError);\n }\n });\n return this.#queuedRender(history.location);\n }\n\n async #queuedRender(location: NextLocation): Promise<void> {\n this.#rendering = true;\n try {\n await this.#render(location);\n } finally {\n this.#rendering = false;\n if (this.#nextLocation) {\n const nextLocation = this.#nextLocation;\n this.#nextLocation = undefined;\n await this.#queuedRender(nextLocation);\n }\n }\n }\n\n async #render(location: NextLocation): Promise<void> {\n const renderId = (this.#renderId = uniqueId(\"render-id-\"));\n\n resetAllComputedMarks();\n clearResolveCache();\n hooks?.flowApi?.clearCollectWidgetContract();\n\n const history = getHistory();\n history.unblock();\n\n // const renderStartTime = performance.now();\n const finishPageView = hooks?.pageView?.create();\n\n const storyboard = matchStoryboard(this.#storyboards, location.pathname);\n\n const previousApp = this.#runtimeContext?.app;\n const currentAppId = storyboard?.app?.id;\n // dynamically change the value of the APP variable, if it's union app\n if (\n window.BOOTSTRAP_UNION_FILE &&\n currentAppId &&\n currentAppId !== previousApp?.id\n ) {\n setAppVariable({\n appId: currentAppId,\n version: storyboard.app.currentVersion!,\n });\n }\n\n if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n\n const currentApp = (this.#currentApp = storyboard?.app);\n\n setWatermark();\n\n // Storyboard maybe re-assigned, e.g. when open launchpad.\n const appChanged =\n previousApp && currentApp\n ? previousApp.id !== currentApp.id\n : previousApp !== currentApp;\n\n // TODO: handle favicon\n\n // Set `Router::#currentApp` before calling `getFeatureFlags()`\n const flags = getRuntime().getFeatureFlags();\n const prevRendererContext = this.#rendererContext;\n\n const redirectTo = (to: string, state?: NextHistoryState): void => {\n finishPageView?.({\n status: \"redirected\",\n });\n this.#rendererContextTrashCan.add(prevRendererContext);\n this.#safeRedirect(to, state, location);\n };\n\n const redirectToLogin = (): void => {\n const to = flags[\"sso-enabled\"] ? \"/sso-auth/login\" : \"/auth/login\";\n setLoginStateCookie(location);\n redirectTo(to, { from: location });\n };\n\n const main = document.querySelector(\"#main-mount-point\") as HTMLElement;\n const portal = document.querySelector(\"#portal-mount-point\") as HTMLElement;\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: main,\n createPortal: portal,\n };\n\n const cleanUpPreviousRender = (): void => {\n unmountTree(main);\n unmountTree(portal);\n\n // Note: redirects can lead to multiple trash renderer contexts.\n this.#rendererContextTrashCan.add(prevRendererContext);\n for (const item of this.#rendererContextTrashCan) {\n if (item) {\n item.dispatchOnUnmount();\n item.dispose();\n }\n }\n this.#rendererContextTrashCan.clear();\n hooks?.messageDispatcher?.reset();\n\n if (appChanged) {\n this.#previousApp = previousApp;\n window.dispatchEvent(\n new CustomEvent(\"app.change\", {\n detail: {\n previousApp,\n currentApp,\n },\n })\n );\n }\n };\n\n setTheme(\n (currentApp &&\n (getLocalAppsTheme()[currentApp.id] || currentApp.theme)) ||\n \"light\"\n );\n setMode(\"default\");\n\n if (currentApp) {\n hooks?.checkInstalledApps?.preCheckInstalledApps(\n storyboard,\n (appId) => !!_internalApiGetAppInBootstrapData(appId)\n );\n\n const routeHelper: RouteHelper = {\n bailout: (output) => {\n if (output.unauthenticated) {\n redirectToLogin();\n return true;\n }\n if (output.redirect) {\n redirectTo(output.redirect.path, output.redirect.state);\n return true;\n }\n // Reset redirect count if no redirect is set.\n this.#redirectCount = 0;\n },\n mergeMenus: async (menuRequests) => {\n const menuConfs = await Promise.all(menuRequests);\n this.#navConfig = mergeMenuConfs(menuConfs);\n window.dispatchEvent(\n new CustomEvent(\"navConfig.change\", { detail: this.#navConfig })\n );\n },\n catch: (error, returnNode) => {\n if (isUnauthenticatedError(error) && !window.NO_AUTH_GUARD) {\n redirectToLogin();\n return;\n } else if (error instanceof HttpAbortError) {\n this.#rendererContextTrashCan.add(prevRendererContext);\n return;\n } else {\n const noAuthGuardLoginPath =\n getRuntime().getMiscSettings().noAuthGuardLoginPath;\n if (isUnauthenticatedError(error) && noAuthGuardLoginPath) {\n redirectTo(noAuthGuardLoginPath as string, { from: location });\n return;\n }\n return {\n failed: true,\n output: {\n node: {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: httpErrorToString(error),\n dataset: {\n errorBoundary: \"\",\n },\n style: {\n color: \"var(--color-error)\",\n },\n },\n runtimeContext: null!,\n return: returnNode,\n },\n blockingList: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper, renderId }\n ));\n\n const runtimeContext: RuntimeContext = (this.#runtimeContext = {\n app: currentApp,\n location,\n query: new URLSearchParams(location.search),\n flags,\n sys: {\n ...hooks?.auth?.getAuth(),\n ...getPageInfo(),\n settings: {\n brand: getRuntime().getBrandSettings(),\n },\n },\n ctxStore: new DataStore(\"CTX\", undefined, rendererContext),\n pendingPermissionsPreCheck: [\n hooks?.checkPermissions?.preCheckPermissions(storyboard),\n ],\n tplStateStoreMap: new Map<string, DataStore<\"STATE\">>(),\n formStateStoreMap: new Map<string, DataStore<\"FORM_STATE\">>(),\n });\n\n this.#navConfig = undefined;\n\n registerCustomTemplates(storyboard);\n registerStoryboardFunctions(storyboard.meta?.functions, currentApp);\n hooks?.flowApi?.collectContract(storyboard.meta?.contracts);\n\n let failed = false;\n let output: RenderOutput;\n let stores: DataStore<\"CTX\" | \"STATE\" | \"FORM_STATE\">[] = [];\n\n try {\n const rootMenuRequestNode: MenuRequestNode = {};\n output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n [],\n rootMenuRequestNode\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n rootMenuRequestNode.child = output.menuRequestNode;\n rendererContext.setInitialMenuRequestNode(rootMenuRequestNode);\n await routeHelper.mergeMenus(rendererContext.getMenuRequests());\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Router failed:\", error);\n\n const result = routeHelper.catch(error, renderRoot);\n if (!result) {\n return;\n }\n ({ failed, output } = result);\n }\n renderRoot.child = output.node;\n\n cleanUpPreviousRender();\n\n if ((output.route && output.route.type !== \"routes\") || failed) {\n if (!failed) {\n // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.\n rendererContext.dispatchBeforePageLoad();\n }\n applyTheme();\n applyMode();\n\n setUIVersion(currentApp?.uiVersion);\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n // See https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/guides/scroll-restoration.md\n window.scrollTo(0, 0);\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n rendererContext.initializeMessageDispatcher();\n\n for (const store of stores) {\n store.mountAsyncData();\n }\n\n finishPageView?.({\n status: \"ok\",\n path: output.path,\n pageTitle: document.title,\n });\n } else {\n finishPageView?.({ status: \"failed\" });\n }\n devtoolsHookEmit(\"rendered\");\n\n return;\n }\n } else if (\n !window.NO_AUTH_GUARD &&\n hooks?.auth &&\n !hooks.auth.isLoggedIn()\n ) {\n // Todo(steve): refine after api-gateway supports fetching storyboards before logged in.\n // Redirect to login if no storyboard is matched.\n redirectToLogin();\n return;\n } else {\n cleanUpPreviousRender();\n }\n\n applyTheme();\n applyMode();\n\n const node: RenderBrick = {\n tag: RenderTag.BRICK,\n type: \"div\",\n properties: {\n textContent: \"Page not found\",\n },\n runtimeContext: null!,\n return: renderRoot,\n };\n renderRoot.child = node;\n\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n window.scrollTo(0, 0);\n finishPageView?.({ status: \"not-found\" });\n devtoolsHookEmit(\"rendered\");\n }\n}\n\nfunction mergeMenuConfs(menuConfs: StaticMenuConf[]) {\n const navConfig = {\n breadcrumb: [] as BreadcrumbItemConf[],\n };\n for (const menuConf of menuConfs) {\n const { breadcrumb } = menuConf;\n if (breadcrumb) {\n if (breadcrumb.overwrite) {\n navConfig.breadcrumb = breadcrumb.items;\n } else {\n navConfig.breadcrumb.push(...breadcrumb.items);\n }\n }\n }\n return navConfig;\n}\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -115,10 +115,10 @@ class Runtime {
|
|
|
115
115
|
dialog
|
|
116
116
|
} = (0, _assertClassBrand2.default)(_Runtime_brand, this, _getPresetBricks).call(this);
|
|
117
117
|
if (notification !== false) {
|
|
118
|
-
(0, _Notification.loadNotificationService)(notification
|
|
118
|
+
(0, _Notification.loadNotificationService)(notification ?? "basic.show-notification", this.loadBricks);
|
|
119
119
|
}
|
|
120
120
|
if (dialog !== false) {
|
|
121
|
-
(0, _Dialog.loadDialogService)(dialog
|
|
121
|
+
(0, _Dialog.loadDialogService)(dialog ?? "basic.show-dialog", this.loadBricks);
|
|
122
122
|
}
|
|
123
123
|
(0, _customizeColorTheme.customizeColorTheme)((_data$settings = data.settings) === null || _data$settings === void 0 || (_data$settings = _data$settings.misc) === null || _data$settings === void 0 ? void 0 : _data$settings.theme);
|
|
124
124
|
}
|
|
@@ -134,8 +134,8 @@ class Runtime {
|
|
|
134
134
|
await router.bootstrap();
|
|
135
135
|
}
|
|
136
136
|
getRecentApps() {
|
|
137
|
-
var _router
|
|
138
|
-
return (
|
|
137
|
+
var _router;
|
|
138
|
+
return ((_router = router) === null || _router === void 0 ? void 0 : _router.getRecentApps()) ?? {};
|
|
139
139
|
}
|
|
140
140
|
getCurrentApp() {
|
|
141
141
|
var _router2;
|
|
@@ -175,12 +175,12 @@ class Runtime {
|
|
|
175
175
|
};
|
|
176
176
|
}
|
|
177
177
|
getDesktops() {
|
|
178
|
-
var
|
|
179
|
-
return (
|
|
178
|
+
var _bootstrapData5;
|
|
179
|
+
return ((_bootstrapData5 = bootstrapData) === null || _bootstrapData5 === void 0 ? void 0 : _bootstrapData5.desktops) ?? [];
|
|
180
180
|
}
|
|
181
181
|
getLaunchpadSiteMap() {
|
|
182
|
-
var
|
|
183
|
-
return (
|
|
182
|
+
var _bootstrapData6;
|
|
183
|
+
return ((_bootstrapData6 = bootstrapData) === null || _bootstrapData6 === void 0 ? void 0 : _bootstrapData6.siteSort) ?? [];
|
|
184
184
|
}
|
|
185
185
|
toggleLaunchpadEffect(open) {
|
|
186
186
|
document.body.classList.toggle("launchpad-open", open);
|
|
@@ -199,8 +199,8 @@ class Runtime {
|
|
|
199
199
|
}
|
|
200
200
|
exports.Runtime = Runtime;
|
|
201
201
|
function _getPresetBricks() {
|
|
202
|
-
var
|
|
203
|
-
return (
|
|
202
|
+
var _bootstrapData10;
|
|
203
|
+
return ((_bootstrapData10 = bootstrapData) === null || _bootstrapData10 === void 0 || (_bootstrapData10 = _bootstrapData10.settings) === null || _bootstrapData10 === void 0 ? void 0 : _bootstrapData10.presetBricks) ?? {};
|
|
204
204
|
}
|
|
205
205
|
function normalizeBootstrapData(data) {
|
|
206
206
|
if ((0, _general.isObject)(data.settings)) {
|
|
@@ -222,16 +222,16 @@ function processPublicDepsPackages(brickPackages, pubDeps) {
|
|
|
222
222
|
return Array.from(bricksMap.values());
|
|
223
223
|
}
|
|
224
224
|
function getBrickPackages() {
|
|
225
|
-
var
|
|
226
|
-
return
|
|
225
|
+
var _bootstrapData7;
|
|
226
|
+
return processPublicDepsPackages((_bootstrapData7 = bootstrapData) === null || _bootstrapData7 === void 0 ? void 0 : _bootstrapData7.brickPackages, window.PUBLIC_DEPS) ?? _injected.injectedBrickPackages ?? window.STANDALONE_BRICK_PACKAGES ?? [];
|
|
227
227
|
}
|
|
228
228
|
function _internalApiGetRenderId() {
|
|
229
229
|
var _router6;
|
|
230
230
|
return (_router6 = router) === null || _router6 === void 0 ? void 0 : _router6.getRenderId();
|
|
231
231
|
}
|
|
232
232
|
function _internalApiMatchStoryboard(pathname) {
|
|
233
|
-
var
|
|
234
|
-
return (0, _matchStoryboard.matchStoryboard)((
|
|
233
|
+
var _bootstrapData8;
|
|
234
|
+
return (0, _matchStoryboard.matchStoryboard)(((_bootstrapData8 = bootstrapData) === null || _bootstrapData8 === void 0 ? void 0 : _bootstrapData8.storyboards) ?? [], pathname);
|
|
235
235
|
}
|
|
236
236
|
function _internalApiGetRuntimeContext() {
|
|
237
237
|
var _router7;
|