@next-core/runtime 1.22.2 → 1.22.4
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/CustomTemplates.js +1 -1
- package/dist/cjs/CustomTemplates.js.map +1 -1
- package/dist/cjs/auth.js +1 -1
- package/dist/cjs/auth.js.map +1 -1
- package/dist/cjs/createRoot.js +3 -3
- package/dist/cjs/createRoot.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/constants.js +3 -1
- package/dist/cjs/internal/CustomTemplates/constants.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js +2 -1
- package/dist/cjs/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js +7 -6
- package/dist/cjs/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js +1 -0
- package/dist/cjs/internal/FormRenderer/expandFormRenderer.js.map +1 -1
- package/dist/cjs/internal/Renderer.js +6 -3
- package/dist/cjs/internal/Renderer.js.map +1 -1
- package/dist/cjs/internal/RendererContext.js +5 -5
- package/dist/cjs/internal/RendererContext.js.map +1 -1
- package/dist/cjs/internal/Router.js +6 -6
- package/dist/cjs/internal/Router.js.map +1 -1
- package/dist/cjs/internal/compute/evaluate.js +10 -6
- package/dist/cjs/internal/compute/evaluate.js.map +1 -1
- package/dist/cjs/internal/data/DataStore.js +3 -3
- package/dist/cjs/internal/data/DataStore.js.map +1 -1
- package/dist/cjs/internal/devtools.js +1 -1
- package/dist/cjs/internal/devtools.js.map +1 -1
- package/dist/cjs/internal/historyExtended.js +2 -2
- package/dist/cjs/internal/historyExtended.js.map +1 -1
- package/dist/cjs/internal/interfaces.js.map +1 -1
- package/dist/cjs/internal/mount.js +1 -1
- package/dist/cjs/internal/mount.js.map +1 -1
- package/dist/cjs/internal/poll.js +5 -5
- package/dist/cjs/internal/poll.js.map +1 -1
- package/dist/esm/CustomTemplates.js +3 -4
- package/dist/esm/CustomTemplates.js.map +1 -1
- package/dist/esm/auth.js +1 -1
- package/dist/esm/auth.js.map +1 -1
- package/dist/esm/createRoot.js +3 -3
- package/dist/esm/createRoot.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/constants.js +1 -0
- package/dist/esm/internal/CustomTemplates/constants.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js +2 -1
- package/dist/esm/internal/CustomTemplates/expandCustomTemplate.js.map +1 -1
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js +8 -7
- package/dist/esm/internal/CustomTemplates/setupTemplateProxy.js.map +1 -1
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js +1 -0
- package/dist/esm/internal/FormRenderer/expandFormRenderer.js.map +1 -1
- package/dist/esm/internal/Renderer.js +7 -4
- package/dist/esm/internal/Renderer.js.map +1 -1
- package/dist/esm/internal/RendererContext.js +5 -5
- package/dist/esm/internal/RendererContext.js.map +1 -1
- package/dist/esm/internal/Router.js +6 -6
- package/dist/esm/internal/Router.js.map +1 -1
- package/dist/esm/internal/compute/evaluate.js +10 -6
- package/dist/esm/internal/compute/evaluate.js.map +1 -1
- package/dist/esm/internal/data/DataStore.js +3 -3
- package/dist/esm/internal/data/DataStore.js.map +1 -1
- package/dist/esm/internal/devtools.js +1 -1
- package/dist/esm/internal/devtools.js.map +1 -1
- package/dist/esm/internal/historyExtended.js +2 -2
- package/dist/esm/internal/historyExtended.js.map +1 -1
- package/dist/esm/internal/interfaces.js.map +1 -1
- package/dist/esm/internal/mount.js +1 -1
- package/dist/esm/internal/mount.js.map +1 -1
- package/dist/esm/internal/poll.js +5 -5
- package/dist/esm/internal/poll.js.map +1 -1
- package/dist/types/internal/CustomTemplates/constants.d.ts +2 -0
- package/dist/types/internal/compute/WidgetI18n.d.ts +1 -1
- package/dist/types/internal/interfaces.d.ts +1 -0
- package/package.json +13 -13
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"RendererContext.js","names":["isEmpty","remove","listenerFactory","getHistory","getReadOnlyProxy","mediaEventTarget","mountTree","RenderTag","unbindTemplateProxy","hooks","commonLifeCycles","pageOnlyLifeCycles","_routeHelper","WeakMap","_memoizedLifeCycle","_observers","_mediaListener","_arbitraryLifeCycle","_memoized","_allMenuRequests","_memoizedMenuRequestMap","_locationChangeCallbacks","_unmountBricks","WeakSet","_initializeRerenderBricks","_dispatchGeneralLifeCycle","_addObserver","RendererContext","constructor","scope","options","_options$unknownBrick","_classPrivateMethodInitSpec","_defineProperty","_classPrivateFieldInitSpec","writable","value","onBeforePageLoad","onPageLoad","onPageLeave","onBeforePageLeave","onAnchorLoad","onAnchorUnload","onMediaChange","onScrollIntoView","onMount","onUnmount","onMessage","onMessageClose","Map","unknownBricks","_classPrivateFieldSet","routeHelper","setInitialMenuRequests","menuRequests","memoizeMenuRequests","route","_classPrivateFieldGet","set","reMergeMenuRequests","routes","currentRoute","_this","_asyncToGenerator","previousMenuRequest","previousRoute","get","mergedMenuRequests","previousIndex","indexOf","length","push","splice","delete","mergeMenus","reBailout","output","bailout","reCatch","error","returnNode","catch","didPerformIncrementalRender","location","_this2","results","Promise","all","map","callback","some","result","performIncrementalRender","registerBrickLifeCycle","brick","lifeCycle","lifeCycleTypes","key","handlers","useResolves","console","registerArbitraryLifeCycle","fn","arbitraryCallbacks","add","Set","memoize","slotId","keyPath","node","memKey","join","mem","last","getLastNode","lastNormal","getLastNormalNode","lastPortal","getLastPortalNode","reRender","_prevLastNormal$eleme","_prevLastNormal$eleme2","_prevLastPortal$eleme","_prevLastPortal$eleme2","memoized","prevNode","prevLast","prevLastNormal","prevLastPortal","insertBeforeChild","element","nextSibling","insertPortalBeforeChild","prevSibling","current","child","sibling","fragment","document","createDocumentFragment","portalFragment","renderRoot","tag","ROOT","container","createPortal","return","removeBricks","getBrickRange","_classPrivateMethodGet","_unmountBricks2","call","_returnNode$container","insertBefore","_returnNode$element","childNodes","_root","root","Error","portal","newBricks","_initializeRerenderBricks2","dispose","list","Object","values","observer","disconnect","clear","removeEventListener","undefined","dispatchBeforePageLoad","_dispatchGeneralLifeCycle2","CustomEvent","dispatchPageLoad","event","window","dispatchEvent","dispatchBeforePageLeave","detail","dispatchPageLeave","dispatchAnchorLoad","hash","anchor","substring","initializeScrollIntoView","conf","_addObserver2","initializeMediaChange","addEventListener","initializeMessageDispatcher","_hooks$messageDispatc","_loop","_loop2","_hooks$messageDispatc2","messageDispatcher","channel","runtimeContext","concat","confList","onClose","dispatchOnMount","dispatchOnUnmount","bricks","unmountList","removed","item","has","_brick$element","_brick$element2","observers","$$tplStateStore","unmountEvent","mountEvent","type","process","env","NODE_ENV","includes","_conf$threshold","threshold","IntersectionObserver","entries","forEach","entry","isIntersecting","intersectionRatio","observe","_last","_currentReturn","currentReturn","from","to","range","_currentReturn2"],"sources":["../../../src/internal/RendererContext.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickLifeCycle,\n MessageConf,\n RouteConf,\n ScrollIntoViewConf,\n StaticMenuConf,\n} from \"@next-core/types\";\nimport type { Action, Location } from \"history\";\nimport { isEmpty, remove } from \"lodash\";\nimport { listenerFactory } from \"./bindListeners.js\";\nimport { NextHistoryState, NextLocation, getHistory } from \"../history.js\";\nimport { getReadOnlyProxy } from \"./proxyFactories.js\";\nimport { Media, mediaEventTarget } from \"./mediaQuery.js\";\nimport type { RenderBrick, RenderNode, RenderRoot } 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) => Promise<boolean>;\n\nconst commonLifeCycles = [\n \"onMount\",\n \"onUnmount\",\n \"onMediaChange\",\n \"onScrollIntoView\",\n \"onMessage\",\n \"onMessageClose\",\n] as const;\n\nconst pageOnlyLifeCycles = [\n \"onBeforePageLoad\",\n \"onPageLoad\",\n \"onPageLeave\",\n \"onBeforePageLeave\",\n \"onAnchorLoad\",\n \"onAnchorUnload\",\n] as const;\n\nexport interface RendererContextOptions {\n unknownBricks?: \"silent\" | \"throw\";\n routeHelper?: RouteHelper;\n}\n\nexport interface RouteHelper {\n bailout: (output: RenderOutput) => true | undefined;\n mergeMenus: (menuRequests: Promise<StaticMenuConf>[]) => Promise<void>;\n catch: (\n error: unknown,\n returnNode: RenderNode\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 #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 }\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?: RenderBrick;\n last?: RenderBrick;\n lastNormal?: RenderBrick | undefined;\n lastPortal?: RenderBrick | undefined;\n }\n >\n >;\n #allMenuRequests?: Promise<StaticMenuConf>[];\n #memoizedMenuRequestMap?: WeakMap<RouteConf, Promise<StaticMenuConf>>;\n\n setInitialMenuRequests(menuRequests: Promise<StaticMenuConf>[]) {\n this.#allMenuRequests = menuRequests;\n }\n\n memoizeMenuRequests(\n route: RouteConf,\n menuRequests: Promise<StaticMenuConf>[]\n ) {\n if (!this.#memoizedMenuRequestMap) {\n this.#memoizedMenuRequestMap = new WeakMap();\n }\n this.#memoizedMenuRequestMap.set(route, menuRequests[0]);\n }\n\n async reMergeMenuRequests(\n routes: RouteConf[],\n currentRoute: RouteConf | undefined,\n menuRequests: Promise<StaticMenuConf>[]\n ) {\n let previousMenuRequest: Promise<StaticMenuConf> | undefined;\n let previousRoute: RouteConf | undefined;\n for (const route of routes) {\n previousMenuRequest = this.#memoizedMenuRequestMap!.get(route);\n if (previousMenuRequest) {\n previousRoute = route;\n break;\n }\n }\n const mergedMenuRequests = this.#allMenuRequests!;\n const previousIndex = previousMenuRequest\n ? mergedMenuRequests.indexOf(previousMenuRequest)\n : -1;\n if (previousIndex === -1) {\n if (!menuRequests.length) {\n return;\n }\n mergedMenuRequests.push(...menuRequests);\n } else {\n mergedMenuRequests.splice(\n previousIndex,\n mergedMenuRequests.length - previousIndex,\n ...menuRequests\n );\n }\n if (previousRoute && previousRoute !== currentRoute) {\n this.#memoizedMenuRequestMap!.delete(previousRoute);\n }\n await this.#routeHelper!.mergeMenus(mergedMenuRequests);\n }\n\n reBailout(output: RenderOutput) {\n return this.#routeHelper!.bailout(output);\n }\n\n reCatch(error: unknown, returnNode: RenderNode) {\n return this.#routeHelper!.catch(error, returnNode);\n }\n\n #locationChangeCallbacks: LocationChangeCallback[] = [];\n\n async didPerformIncrementalRender(location: Location<NextHistoryState>) {\n const results = await Promise.all(\n this.#locationChangeCallbacks.map((callback) => callback(location))\n );\n return results.some((result) => result);\n }\n\n /**\n * When `callback` resolved to `true` which means incremental rendering is performed,\n * ignore normal rendering.\n */\n performIncrementalRender(callback: LocationChangeCallback) {\n this.#locationChangeCallbacks.push(callback);\n }\n\n registerBrickLifeCycle(\n brick: RenderBrick,\n lifeCycle: BrickLifeCycle | undefined\n ): void {\n if (!lifeCycle) {\n return;\n }\n const lifeCycleTypes = [\n ...commonLifeCycles,\n ...(this.scope === \"page\" ? pageOnlyLifeCycles : []),\n ];\n for (const key of lifeCycleTypes) {\n const handlers = (lifeCycle as BrickLifeCycle)[key as \"onPageLoad\"];\n if (handlers) {\n this.#memoizedLifeCycle[key as \"onPageLoad\"].push({\n brick,\n handlers: handlers as BrickEventHandler | BrickEventHandler[],\n });\n }\n }\n // istanbul ignore next\n if (!isEmpty((lifeCycle as { useResolves?: unknown }).useResolves)) {\n // eslint-disable-next-line no-console\n console.error(\"`lifeCycle.useResolves` is dropped in v3:\", lifeCycle);\n }\n }\n\n registerArbitraryLifeCycle(lifeCycle: string, fn: () => void): void {\n const arbitraryCallbacks = this.#arbitraryLifeCycle.get(lifeCycle);\n if (arbitraryCallbacks) {\n arbitraryCallbacks.add(fn);\n } else {\n this.#arbitraryLifeCycle.set(lifeCycle, new Set([fn]));\n }\n }\n\n #unmountBricks(bricks: Set<RenderBrick>): void {\n const lifeCycleTypes = [\n ...commonLifeCycles,\n ...(this.scope === \"page\" ? pageOnlyLifeCycles : []),\n ];\n const unmountList: {\n brick: RenderBrick;\n handlers: BrickEventHandler | BrickEventHandler[];\n }[] = [];\n\n // Clear life cycle handlers, record `onUnmount` at the same time\n for (const key of lifeCycleTypes) {\n const removed = remove(\n this.#memoizedLifeCycle[key as \"onPageLoad\"],\n (item) => bricks.has(item.brick)\n );\n if (key === \"onUnmount\") {\n unmountList.push(...removed);\n }\n }\n\n // Clear intersection observers\n for (const brick of bricks) {\n const observers = this.#observers.get(brick);\n if (observers?.length) {\n for (const observer of observers) {\n observer.disconnect();\n }\n observers.length = 0;\n this.#observers.delete(brick);\n }\n\n unbindTemplateProxy(brick);\n delete brick.element?.$$tplStateStore;\n\n // Also remove the element\n brick.element?.remove();\n }\n\n // Dispatch unmount events\n const unmountEvent = new CustomEvent(\"unmount\");\n for (const { brick, handlers } of unmountList) {\n listenerFactory(handlers, brick.runtimeContext, brick)(unmountEvent);\n }\n }\n\n #initializeRerenderBricks(bricks: Set<RenderBrick>): void {\n const mountEvent = new CustomEvent(\"mount\");\n for (const { brick, handlers } of this.#memoizedLifeCycle.onMount) {\n if (bricks.has(brick)) {\n listenerFactory(handlers, brick.runtimeContext, brick)(mountEvent);\n }\n }\n\n for (const { brick, handlers: conf } of this.#memoizedLifeCycle\n .onScrollIntoView) {\n if (bricks.has(brick)) {\n this.#addObserver(brick, conf);\n }\n }\n }\n\n memoize(\n slotId: string | undefined,\n keyPath: number[],\n node: RenderBrick | undefined,\n returnNode: RenderNode\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: RenderBrick | undefined,\n returnNode: RenderNode\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 const insertBeforeChild = prevLastNormal?.element?.nextSibling ?? null;\n const insertPortalBeforeChild =\n prevLastPortal?.element?.nextSibling ?? null;\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: RenderBrick | 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 if (root?.tag !== RenderTag.ROOT) {\n throw new Error(\"Cannot find render root node\");\n }\n const portal =\n typeof root.createPortal === \"function\"\n ? root.createPortal()\n : root.createPortal;\n portal.insertBefore(portalFragment, insertPortalBeforeChild);\n }\n\n const newBricks = getBrickRange(node, last);\n this.#initializeRerenderBricks(newBricks);\n }\n\n dispose(): void {\n for (const list of Object.values(this.#memoizedLifeCycle)) {\n list.length = 0;\n }\n for (const list of this.#observers.values()) {\n for (const observer of list) {\n observer.disconnect();\n }\n list.length = 0;\n }\n this.#observers.clear();\n if (this.#mediaListener) {\n mediaEventTarget.removeEventListener(\"change\", this.#mediaListener);\n this.#mediaListener = undefined;\n }\n this.#memoized = undefined;\n this.#allMenuRequests = undefined;\n this.#memoizedMenuRequestMap = undefined;\n this.#arbitraryLifeCycle.clear();\n this.#locationChangeCallbacks.length = 0;\n }\n\n // Note: no `onScrollIntoView` and `onMessage`\n #dispatchGeneralLifeCycle(\n type:\n | \"onBeforePageLoad\"\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onBeforePageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMediaChange\"\n | \"onMessageClose\"\n | \"onMount\"\n | \"onUnmount\",\n event: Event\n ): void {\n // istanbul ignore next\n if (\n process.env.NODE_ENV === \"development\" &&\n this.scope === \"fragment\" &&\n pageOnlyLifeCycles.includes(type as \"onPageLoad\")\n ) {\n throw new Error(\n `\\`lifeCycle.${type}\\` cannot be used in ${this.scope}.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n for (const { brick, handlers } of this.#memoizedLifeCycle[type]) {\n listenerFactory(handlers, brick.runtimeContext, brick)(event);\n }\n const arbitraryCallbacks = this.#arbitraryLifeCycle.get(type);\n if (arbitraryCallbacks) {\n for (const fn of arbitraryCallbacks) {\n fn();\n }\n }\n }\n\n dispatchBeforePageLoad(): void {\n this.#dispatchGeneralLifeCycle(\n \"onBeforePageLoad\",\n new CustomEvent(\"page.beforeLoad\")\n );\n }\n\n dispatchPageLoad(): void {\n const event = new CustomEvent(\"page.load\");\n this.#dispatchGeneralLifeCycle(\"onPageLoad\", event);\n // Currently only for e2e testing\n window.dispatchEvent(event);\n }\n\n dispatchBeforePageLeave(detail: {\n location?: NextLocation;\n action?: Action;\n }): void {\n this.#dispatchGeneralLifeCycle(\n \"onBeforePageLeave\",\n new CustomEvent(\"page.beforeLeave\", { detail })\n );\n }\n\n dispatchPageLeave(): void {\n this.#dispatchGeneralLifeCycle(\n \"onPageLeave\",\n new CustomEvent(\"page.leave\")\n );\n }\n\n dispatchAnchorLoad(): void {\n const { hash } = getHistory().location;\n if (hash && hash !== \"#\") {\n this.#dispatchGeneralLifeCycle(\n \"onAnchorLoad\",\n new CustomEvent(\"anchor.load\", {\n detail: {\n hash,\n anchor: hash.substring(1),\n },\n })\n );\n } else {\n this.#dispatchGeneralLifeCycle(\n \"onAnchorUnload\",\n new CustomEvent(\"anchor.unload\")\n );\n }\n }\n\n initializeScrollIntoView(): void {\n for (const { brick, handlers: conf } of this.#memoizedLifeCycle\n .onScrollIntoView) {\n this.#addObserver(brick, conf);\n }\n }\n\n #addObserver(brick: RenderBrick, conf: ScrollIntoViewConf) {\n const threshold = conf.threshold ?? 0.1;\n const observer = new IntersectionObserver(\n (entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (entry.intersectionRatio >= threshold) {\n listenerFactory(\n conf.handlers,\n brick.runtimeContext,\n brick\n )(new CustomEvent(\"scroll.into.view\"));\n observer.disconnect();\n }\n }\n });\n },\n {\n threshold,\n }\n );\n observer.observe(brick.element!);\n let list = this.#observers.get(brick);\n if (!list) {\n list = [];\n this.#observers.set(brick, list);\n }\n list.push(observer);\n }\n\n initializeMediaChange(): void {\n this.#mediaListener = (event) => {\n this.#dispatchGeneralLifeCycle(\n \"onMediaChange\",\n new CustomEvent(\"media.change\", {\n detail: getReadOnlyProxy((event as CustomEvent<Media>).detail),\n })\n );\n };\n mediaEventTarget.addEventListener(\"change\", this.#mediaListener);\n }\n\n initializeMessageDispatcher(): void {\n for (const { brick, handlers: confList } of this.#memoizedLifeCycle\n .onMessage) {\n for (const conf of ([] as MessageConf[]).concat(confList)) {\n hooks?.messageDispatcher?.onMessage(conf.channel, (detail) => {\n listenerFactory(\n conf.handlers,\n brick.runtimeContext,\n brick\n )(new CustomEvent(\"message.push\", { detail }));\n });\n }\n }\n\n hooks?.messageDispatcher?.onClose(() => {\n this.#dispatchGeneralLifeCycle(\n \"onMessageClose\",\n new CustomEvent(\"message.close\")\n );\n });\n }\n\n dispatchOnMount(): void {\n this.#dispatchGeneralLifeCycle(\"onMount\", new CustomEvent(\"mount\"));\n }\n\n dispatchOnUnmount(): void {\n this.#dispatchGeneralLifeCycle(\"onUnmount\", new CustomEvent(\"unmount\"));\n }\n}\n\nfunction getLastNode(node: RenderBrick | undefined): RenderBrick | undefined {\n let last = node;\n while (last?.sibling) {\n last = last.sibling;\n }\n return last;\n}\n\nfunction getLastNormalNode(\n node: RenderBrick | undefined\n): RenderBrick | undefined {\n let last: RenderBrick | undefined;\n let current = node;\n while (current) {\n if (!current.portal) {\n last = current;\n }\n current = current.sibling;\n }\n return last;\n}\n\nfunction getLastPortalNode(\n node: RenderBrick | undefined\n): RenderBrick | undefined {\n let last: RenderBrick | undefined;\n let current = node;\n while (current) {\n if (current.portal) {\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: RenderNode | 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: RenderBrick | undefined,\n to: RenderBrick | undefined\n): Set<RenderBrick> {\n const range = new Set<RenderBrick>();\n let current = from;\n while (current) {\n range.add(current);\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: RenderNode | null | undefined = current.return;\n while (currentReturn && currentReturn !== to) {\n if (currentReturn.sibling) {\n break;\n }\n currentReturn = currentReturn.return;\n }\n if (currentReturn === to) {\n break;\n }\n current = currentReturn?.sibling;\n }\n }\n return range;\n}\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"RendererContext.js","names":["isEmpty","remove","listenerFactory","getHistory","getReadOnlyProxy","mediaEventTarget","mountTree","RenderTag","unbindTemplateProxy","hooks","commonLifeCycles","pageOnlyLifeCycles","_routeHelper","WeakMap","_memoizedLifeCycle","_observers","_mediaListener","_arbitraryLifeCycle","_memoized","_allMenuRequests","_memoizedMenuRequestMap","_locationChangeCallbacks","_unmountBricks","WeakSet","_initializeRerenderBricks","_dispatchGeneralLifeCycle","_addObserver","RendererContext","constructor","scope","options","_options$unknownBrick","_classPrivateMethodInitSpec","_defineProperty","_classPrivateFieldInitSpec","writable","value","onBeforePageLoad","onPageLoad","onPageLeave","onBeforePageLeave","onAnchorLoad","onAnchorUnload","onMediaChange","onScrollIntoView","onMount","onUnmount","onMessage","onMessageClose","Map","unknownBricks","_classPrivateFieldSet","routeHelper","setInitialMenuRequests","menuRequests","memoizeMenuRequests","route","_classPrivateFieldGet","set","reMergeMenuRequests","routes","currentRoute","_this","_asyncToGenerator","previousMenuRequest","previousRoute","get","mergedMenuRequests","previousIndex","indexOf","length","push","splice","delete","mergeMenus","reBailout","output","bailout","reCatch","error","returnNode","catch","didPerformIncrementalRender","location","_this2","results","Promise","all","map","callback","some","result","performIncrementalRender","registerBrickLifeCycle","brick","lifeCycle","lifeCycleTypes","key","handlers","useResolves","console","registerArbitraryLifeCycle","fn","arbitraryCallbacks","add","Set","memoize","slotId","keyPath","node","memKey","join","mem","last","getLastNode","lastNormal","getLastNormalNode","lastPortal","getLastPortalNode","reRender","_prevLastNormal$eleme","_prevLastNormal$eleme2","_prevLastPortal$eleme","_prevLastPortal$eleme2","memoized","prevNode","prevLast","prevLastNormal","prevLastPortal","insertBeforeChild","element","nextSibling","insertPortalBeforeChild","prevSibling","current","child","sibling","fragment","document","createDocumentFragment","portalFragment","renderRoot","tag","ROOT","container","createPortal","return","removeBricks","getBrickRange","_classPrivateMethodGet","_unmountBricks2","call","_returnNode$container","insertBefore","_returnNode$element","childNodes","_root","root","Error","portal","newBricks","_initializeRerenderBricks2","dispose","list","Object","values","observer","disconnect","clear","removeEventListener","undefined","dispatchBeforePageLoad","_dispatchGeneralLifeCycle2","CustomEvent","dispatchPageLoad","event","window","dispatchEvent","dispatchBeforePageLeave","detail","dispatchPageLeave","dispatchAnchorLoad","hash","anchor","substring","initializeScrollIntoView","conf","_addObserver2","initializeMediaChange","addEventListener","initializeMessageDispatcher","_hooks$messageDispatc","_loop","_loop2","_hooks$messageDispatc2","messageDispatcher","channel","runtimeContext","concat","confList","onClose","dispatchOnMount","dispatchOnUnmount","bricks","unmountList","removed","item","has","_brick$element","_brick$element2","observers","$$tplStateStore","unmountEvent","mountEvent","type","process","env","NODE_ENV","includes","_conf$threshold","threshold","IntersectionObserver","entries","forEach","entry","isIntersecting","intersectionRatio","observe","_last","_currentReturn","currentReturn","from","to","range","_currentReturn2"],"sources":["../../../src/internal/RendererContext.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickLifeCycle,\n MessageConf,\n RouteConf,\n ScrollIntoViewConf,\n StaticMenuConf,\n} from \"@next-core/types\";\nimport type { Action, Location } from \"history\";\nimport { isEmpty, remove } from \"lodash\";\nimport { listenerFactory } from \"./bindListeners.js\";\nimport { NextHistoryState, NextLocation, getHistory } from \"../history.js\";\nimport { getReadOnlyProxy } from \"./proxyFactories.js\";\nimport { Media, mediaEventTarget } from \"./mediaQuery.js\";\nimport type { RenderBrick, RenderNode, RenderRoot } 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) => Promise<boolean>;\n\nconst commonLifeCycles = [\n \"onMount\",\n \"onUnmount\",\n \"onMediaChange\",\n \"onScrollIntoView\",\n \"onMessage\",\n \"onMessageClose\",\n] as const;\n\nconst pageOnlyLifeCycles = [\n \"onBeforePageLoad\",\n \"onPageLoad\",\n \"onPageLeave\",\n \"onBeforePageLeave\",\n \"onAnchorLoad\",\n \"onAnchorUnload\",\n] as const;\n\nexport interface RendererContextOptions {\n unknownBricks?: \"silent\" | \"throw\";\n routeHelper?: RouteHelper;\n}\n\nexport interface RouteHelper {\n bailout: (output: RenderOutput) => true | undefined;\n mergeMenus: (menuRequests: Promise<StaticMenuConf>[]) => Promise<void>;\n catch: (\n error: unknown,\n returnNode: RenderNode\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 #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 }\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?: RenderBrick;\n last?: RenderBrick;\n lastNormal?: RenderBrick | undefined;\n lastPortal?: RenderBrick | undefined;\n }\n >\n >;\n #allMenuRequests?: Promise<StaticMenuConf>[];\n #memoizedMenuRequestMap?: WeakMap<RouteConf, Promise<StaticMenuConf>>;\n\n setInitialMenuRequests(menuRequests: Promise<StaticMenuConf>[]) {\n this.#allMenuRequests = menuRequests;\n }\n\n memoizeMenuRequests(\n route: RouteConf,\n menuRequests: Promise<StaticMenuConf>[]\n ) {\n if (!this.#memoizedMenuRequestMap) {\n this.#memoizedMenuRequestMap = new WeakMap();\n }\n this.#memoizedMenuRequestMap.set(route, menuRequests[0]);\n }\n\n async reMergeMenuRequests(\n routes: RouteConf[],\n currentRoute: RouteConf | undefined,\n menuRequests: Promise<StaticMenuConf>[]\n ) {\n let previousMenuRequest: Promise<StaticMenuConf> | undefined;\n let previousRoute: RouteConf | undefined;\n for (const route of routes) {\n previousMenuRequest = this.#memoizedMenuRequestMap!.get(route);\n if (previousMenuRequest) {\n previousRoute = route;\n break;\n }\n }\n const mergedMenuRequests = this.#allMenuRequests!;\n const previousIndex = previousMenuRequest\n ? mergedMenuRequests.indexOf(previousMenuRequest)\n : -1;\n if (previousIndex === -1) {\n if (!menuRequests.length) {\n return;\n }\n mergedMenuRequests.push(...menuRequests);\n } else {\n mergedMenuRequests.splice(\n previousIndex,\n mergedMenuRequests.length - previousIndex,\n ...menuRequests\n );\n }\n if (previousRoute && previousRoute !== currentRoute) {\n this.#memoizedMenuRequestMap!.delete(previousRoute);\n }\n await this.#routeHelper!.mergeMenus(mergedMenuRequests);\n }\n\n reBailout(output: RenderOutput) {\n return this.#routeHelper!.bailout(output);\n }\n\n reCatch(error: unknown, returnNode: RenderNode) {\n return this.#routeHelper!.catch(error, returnNode);\n }\n\n #locationChangeCallbacks: LocationChangeCallback[] = [];\n\n async didPerformIncrementalRender(location: Location<NextHistoryState>) {\n const results = await Promise.all(\n this.#locationChangeCallbacks.map((callback) => callback(location))\n );\n return results.some((result) => result);\n }\n\n /**\n * When `callback` resolved to `true` which means incremental rendering is performed,\n * ignore normal rendering.\n */\n performIncrementalRender(callback: LocationChangeCallback) {\n this.#locationChangeCallbacks.push(callback);\n }\n\n registerBrickLifeCycle(\n brick: RenderBrick,\n lifeCycle: BrickLifeCycle | undefined\n ): void {\n if (!lifeCycle) {\n return;\n }\n const lifeCycleTypes = [\n ...commonLifeCycles,\n ...(this.scope === \"page\" ? pageOnlyLifeCycles : []),\n ];\n for (const key of lifeCycleTypes) {\n const handlers = (lifeCycle as BrickLifeCycle)[key as \"onPageLoad\"];\n if (handlers) {\n this.#memoizedLifeCycle[key as \"onPageLoad\"].push({\n brick,\n handlers: handlers as BrickEventHandler | BrickEventHandler[],\n });\n }\n }\n // istanbul ignore next\n if (!isEmpty((lifeCycle as { useResolves?: unknown }).useResolves)) {\n // eslint-disable-next-line no-console\n console.error(\"`lifeCycle.useResolves` is dropped in v3:\", lifeCycle);\n }\n }\n\n registerArbitraryLifeCycle(lifeCycle: string, fn: () => void): void {\n const arbitraryCallbacks = this.#arbitraryLifeCycle.get(lifeCycle);\n if (arbitraryCallbacks) {\n arbitraryCallbacks.add(fn);\n } else {\n this.#arbitraryLifeCycle.set(lifeCycle, new Set([fn]));\n }\n }\n\n #unmountBricks(bricks: Set<RenderBrick>): void {\n const lifeCycleTypes = [\n ...commonLifeCycles,\n ...(this.scope === \"page\" ? pageOnlyLifeCycles : []),\n ];\n const unmountList: {\n brick: RenderBrick;\n handlers: BrickEventHandler | BrickEventHandler[];\n }[] = [];\n\n // Clear life cycle handlers, record `onUnmount` at the same time\n for (const key of lifeCycleTypes) {\n const removed = remove(\n this.#memoizedLifeCycle[key as \"onPageLoad\"],\n (item) => bricks.has(item.brick)\n );\n if (key === \"onUnmount\") {\n unmountList.push(...removed);\n }\n }\n\n // Clear intersection observers\n for (const brick of bricks) {\n const observers = this.#observers.get(brick);\n if (observers?.length) {\n for (const observer of observers) {\n observer.disconnect();\n }\n observers.length = 0;\n this.#observers.delete(brick);\n }\n\n unbindTemplateProxy(brick);\n delete brick.element?.$$tplStateStore;\n\n // Also remove the element\n brick.element?.remove();\n }\n\n // Dispatch unmount events\n const unmountEvent = new CustomEvent(\"unmount\");\n for (const { brick, handlers } of unmountList) {\n listenerFactory(handlers, brick.runtimeContext, brick)(unmountEvent);\n }\n }\n\n #initializeRerenderBricks(bricks: Set<RenderBrick>): void {\n const mountEvent = new CustomEvent(\"mount\");\n for (const { brick, handlers } of this.#memoizedLifeCycle.onMount) {\n if (bricks.has(brick)) {\n listenerFactory(handlers, brick.runtimeContext, brick)(mountEvent);\n }\n }\n\n for (const { brick, handlers: conf } of this.#memoizedLifeCycle\n .onScrollIntoView) {\n if (bricks.has(brick)) {\n this.#addObserver(brick, conf);\n }\n }\n }\n\n memoize(\n slotId: string | undefined,\n keyPath: number[],\n node: RenderBrick | undefined,\n returnNode: RenderNode\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: RenderBrick | undefined,\n returnNode: RenderNode\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 const insertBeforeChild = prevLastNormal?.element?.nextSibling ?? null;\n const insertPortalBeforeChild =\n prevLastPortal?.element?.nextSibling ?? null;\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: RenderBrick | 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 if (root?.tag !== RenderTag.ROOT) {\n throw new Error(\"Cannot find render root node\");\n }\n const portal =\n typeof root.createPortal === \"function\"\n ? root.createPortal()\n : root.createPortal;\n portal.insertBefore(portalFragment, insertPortalBeforeChild);\n }\n\n const newBricks = getBrickRange(node, last);\n this.#initializeRerenderBricks(newBricks);\n }\n\n dispose(): void {\n for (const list of Object.values(this.#memoizedLifeCycle)) {\n list.length = 0;\n }\n for (const list of this.#observers.values()) {\n for (const observer of list) {\n observer.disconnect();\n }\n list.length = 0;\n }\n this.#observers.clear();\n if (this.#mediaListener) {\n mediaEventTarget.removeEventListener(\"change\", this.#mediaListener);\n this.#mediaListener = undefined;\n }\n this.#memoized = undefined;\n this.#allMenuRequests = undefined;\n this.#memoizedMenuRequestMap = undefined;\n this.#arbitraryLifeCycle.clear();\n this.#locationChangeCallbacks.length = 0;\n }\n\n // Note: no `onScrollIntoView` and `onMessage`\n #dispatchGeneralLifeCycle(\n type:\n | \"onBeforePageLoad\"\n | \"onPageLoad\"\n | \"onPageLeave\"\n | \"onBeforePageLeave\"\n | \"onAnchorLoad\"\n | \"onAnchorUnload\"\n | \"onMediaChange\"\n | \"onMessageClose\"\n | \"onMount\"\n | \"onUnmount\",\n event: Event\n ): void {\n // istanbul ignore next\n if (\n process.env.NODE_ENV === \"development\" &&\n this.scope === \"fragment\" &&\n pageOnlyLifeCycles.includes(type as \"onPageLoad\")\n ) {\n throw new Error(\n `\\`lifeCycle.${type}\\` cannot be used in ${this.scope}.\\nThis is a bug of Brick Next, please report it.`\n );\n }\n for (const { brick, handlers } of this.#memoizedLifeCycle[type]) {\n listenerFactory(handlers, brick.runtimeContext, brick)(event);\n }\n const arbitraryCallbacks = this.#arbitraryLifeCycle.get(type);\n if (arbitraryCallbacks) {\n for (const fn of arbitraryCallbacks) {\n fn();\n }\n }\n }\n\n dispatchBeforePageLoad(): void {\n this.#dispatchGeneralLifeCycle(\n \"onBeforePageLoad\",\n new CustomEvent(\"page.beforeLoad\")\n );\n }\n\n dispatchPageLoad(): void {\n const event = new CustomEvent(\"page.load\");\n this.#dispatchGeneralLifeCycle(\"onPageLoad\", event);\n // Currently only for e2e testing\n window.dispatchEvent(event);\n }\n\n dispatchBeforePageLeave(detail: {\n location?: NextLocation;\n action?: Action;\n }): void {\n this.#dispatchGeneralLifeCycle(\n \"onBeforePageLeave\",\n new CustomEvent(\"page.beforeLeave\", { detail })\n );\n }\n\n dispatchPageLeave(): void {\n this.#dispatchGeneralLifeCycle(\n \"onPageLeave\",\n new CustomEvent(\"page.leave\")\n );\n }\n\n dispatchAnchorLoad(): void {\n const { hash } = getHistory().location;\n if (hash && hash !== \"#\") {\n this.#dispatchGeneralLifeCycle(\n \"onAnchorLoad\",\n new CustomEvent(\"anchor.load\", {\n detail: {\n hash,\n anchor: hash.substring(1),\n },\n })\n );\n } else {\n this.#dispatchGeneralLifeCycle(\n \"onAnchorUnload\",\n new CustomEvent(\"anchor.unload\")\n );\n }\n }\n\n initializeScrollIntoView(): void {\n for (const { brick, handlers: conf } of this.#memoizedLifeCycle\n .onScrollIntoView) {\n this.#addObserver(brick, conf);\n }\n }\n\n #addObserver(brick: RenderBrick, conf: ScrollIntoViewConf) {\n const threshold = conf.threshold ?? 0.1;\n const observer = new IntersectionObserver(\n (entries, observer) => {\n entries.forEach((entry) => {\n if (entry.isIntersecting) {\n if (entry.intersectionRatio >= threshold) {\n listenerFactory(\n conf.handlers,\n brick.runtimeContext,\n brick\n )(new CustomEvent(\"scroll.into.view\"));\n observer.disconnect();\n }\n }\n });\n },\n {\n threshold,\n }\n );\n observer.observe(brick.element!);\n let list = this.#observers.get(brick);\n if (!list) {\n list = [];\n this.#observers.set(brick, list);\n }\n list.push(observer);\n }\n\n initializeMediaChange(): void {\n this.#mediaListener = (event) => {\n this.#dispatchGeneralLifeCycle(\n \"onMediaChange\",\n new CustomEvent(\"media.change\", {\n detail: getReadOnlyProxy((event as CustomEvent<Media>).detail),\n })\n );\n };\n mediaEventTarget.addEventListener(\"change\", this.#mediaListener);\n }\n\n initializeMessageDispatcher(): void {\n for (const { brick, handlers: confList } of this.#memoizedLifeCycle\n .onMessage) {\n for (const conf of ([] as MessageConf[]).concat(confList)) {\n hooks?.messageDispatcher?.onMessage(conf.channel, (detail) => {\n listenerFactory(\n conf.handlers,\n brick.runtimeContext,\n brick\n )(new CustomEvent(\"message.push\", { detail }));\n });\n }\n }\n\n hooks?.messageDispatcher?.onClose(() => {\n this.#dispatchGeneralLifeCycle(\n \"onMessageClose\",\n new CustomEvent(\"message.close\")\n );\n });\n }\n\n dispatchOnMount(): void {\n this.#dispatchGeneralLifeCycle(\"onMount\", new CustomEvent(\"mount\"));\n }\n\n dispatchOnUnmount(): void {\n this.#dispatchGeneralLifeCycle(\"onUnmount\", new CustomEvent(\"unmount\"));\n }\n}\n\nfunction getLastNode(node: RenderBrick | undefined): RenderBrick | undefined {\n let last = node;\n while (last?.sibling) {\n last = last.sibling;\n }\n return last;\n}\n\nfunction getLastNormalNode(\n node: RenderBrick | undefined\n): RenderBrick | undefined {\n let last: RenderBrick | undefined;\n let current = node;\n while (current) {\n if (!current.portal) {\n last = current;\n }\n current = current.sibling;\n }\n return last;\n}\n\nfunction getLastPortalNode(\n node: RenderBrick | undefined\n): RenderBrick | undefined {\n let last: RenderBrick | undefined;\n let current = node;\n while (current) {\n if (current.portal) {\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: RenderNode | 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: RenderBrick | undefined,\n to: RenderBrick | undefined\n): Set<RenderBrick> {\n const range = new Set<RenderBrick>();\n let current = from;\n while (current) {\n range.add(current);\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: RenderNode | 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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"}
|
|
@@ -180,7 +180,7 @@ export class Router {
|
|
|
180
180
|
}
|
|
181
181
|
abortPendingRequest();
|
|
182
182
|
_classPrivateFieldSet(_this, _prevLocation, location);
|
|
183
|
-
(_classPrivateFieldGet4 = _classPrivateFieldGet(_this, _rendererContext)) === null || _classPrivateFieldGet4 === void 0
|
|
183
|
+
(_classPrivateFieldGet4 = _classPrivateFieldGet(_this, _rendererContext)) === null || _classPrivateFieldGet4 === void 0 || _classPrivateFieldGet4.dispatchPageLeave();
|
|
184
184
|
if (action === "POP") {
|
|
185
185
|
var storyboard = matchStoryboard(_classPrivateFieldGet(_this, _storyboards), location.pathname);
|
|
186
186
|
// When a browser action of goBack or goForward is performing,
|
|
@@ -208,7 +208,7 @@ function _getBlockMessageBeforePageLave2(detail) {
|
|
|
208
208
|
var _classPrivateFieldGet5;
|
|
209
209
|
var history = getHistory();
|
|
210
210
|
var previousMessage = history.getBlockMessage();
|
|
211
|
-
(_classPrivateFieldGet5 = _classPrivateFieldGet(this, _rendererContext)) === null || _classPrivateFieldGet5 === void 0
|
|
211
|
+
(_classPrivateFieldGet5 = _classPrivateFieldGet(this, _rendererContext)) === null || _classPrivateFieldGet5 === void 0 || _classPrivateFieldGet5.dispatchBeforePageLeave(detail);
|
|
212
212
|
var message = history.getBlockMessage();
|
|
213
213
|
if (!previousMessage && message) {
|
|
214
214
|
// Auto unblock only if new block was introduced by `onBeforePageLeave`.
|
|
@@ -261,7 +261,7 @@ function _render3() {
|
|
|
261
261
|
_classPrivateFieldSet(this, _renderId, uniqueId("render-id-1"));
|
|
262
262
|
resetAllComputedMarks();
|
|
263
263
|
clearResolveCache();
|
|
264
|
-
hooks === null || hooks === void 0 || (_hooks$flowApi = hooks.flowApi) === null || _hooks$flowApi === void 0
|
|
264
|
+
hooks === null || hooks === void 0 || (_hooks$flowApi = hooks.flowApi) === null || _hooks$flowApi === void 0 || _hooks$flowApi.clearCollectWidgetContract();
|
|
265
265
|
var history = getHistory();
|
|
266
266
|
history.unblock();
|
|
267
267
|
var renderStartTime = performance.now();
|
|
@@ -311,7 +311,7 @@ function _render3() {
|
|
|
311
311
|
}
|
|
312
312
|
}
|
|
313
313
|
_classPrivateFieldGet(this, _rendererContextTrashCan).clear();
|
|
314
|
-
hooks === null || hooks === void 0 || (_hooks$messageDispatc = hooks.messageDispatcher) === null || _hooks$messageDispatc === void 0
|
|
314
|
+
hooks === null || hooks === void 0 || (_hooks$messageDispatc = hooks.messageDispatcher) === null || _hooks$messageDispatc === void 0 || _hooks$messageDispatc.reset();
|
|
315
315
|
if (appChanged) {
|
|
316
316
|
_classPrivateFieldSet(this, _previousApp, previousApp);
|
|
317
317
|
window.dispatchEvent(new CustomEvent("app.change", {
|
|
@@ -326,7 +326,7 @@ function _render3() {
|
|
|
326
326
|
setMode("default");
|
|
327
327
|
if (currentApp) {
|
|
328
328
|
var _hooks$checkInstalled, _hooks$auth, _hooks$checkPermissio, _storyboard$meta, _hooks$flowApi2, _storyboard$meta2;
|
|
329
|
-
hooks === null || hooks === void 0 || (_hooks$checkInstalled = hooks.checkInstalledApps) === null || _hooks$checkInstalled === void 0
|
|
329
|
+
hooks === null || hooks === void 0 || (_hooks$checkInstalled = hooks.checkInstalledApps) === null || _hooks$checkInstalled === void 0 || _hooks$checkInstalled.preCheckInstalledApps(storyboard, appId => !!_internalApiGetAppInBootstrapData(appId));
|
|
330
330
|
var routeHelper = {
|
|
331
331
|
bailout: output => {
|
|
332
332
|
if (output.unauthenticated) {
|
|
@@ -404,7 +404,7 @@ function _render3() {
|
|
|
404
404
|
_classPrivateFieldSet(this, _navConfig, undefined);
|
|
405
405
|
registerCustomTemplates(storyboard);
|
|
406
406
|
registerStoryboardFunctions((_storyboard$meta = storyboard.meta) === null || _storyboard$meta === void 0 ? void 0 : _storyboard$meta.functions, currentApp);
|
|
407
|
-
hooks === null || hooks === void 0 || (_hooks$flowApi2 = hooks.flowApi) === null || _hooks$flowApi2 === void 0
|
|
407
|
+
hooks === null || hooks === void 0 || (_hooks$flowApi2 = hooks.flowApi) === null || _hooks$flowApi2 === void 0 || _hooks$flowApi2.collectContract((_storyboard$meta2 = storyboard.meta) === null || _storyboard$meta2 === void 0 ? void 0 : _storyboard$meta2.contracts);
|
|
408
408
|
var failed = false;
|
|
409
409
|
var output;
|
|
410
410
|
var stores = [];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Router.js","names":["locationsAreEqual","HttpAbortError","uniqueId","getHistory","getDataStores","postAsyncRender","renderRoutes","DataStore","clearResolveCache","mountTree","unmountTree","isOutsideApp","matchStoryboard","registerStoryboardFunctions","RendererContext","applyMode","applyTheme","getLocalAppsTheme","setMode","setTheme","_internalApiGetAppInBootstrapData","getRuntime","hooks","getPageInfo","resetAllComputedMarks","handleHttpError","httpErrorToString","isUnauthenticatedError","abortPendingRequest","initAbortController","registerCustomTemplates","fulfilStoryboard","RenderTag","insertPreviewRoutes","_storyboards","WeakMap","_rendering","_prevLocation","_nextLocation","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_getBlockMessageBeforePageLave","WeakSet","_safeRedirect","_queuedRender","_render","Router","constructor","storyboards","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","writable","value","Set","_classPrivateFieldSet","history","window","addEventListener","event","message","_classPrivateMethodGet","_getBlockMessageBeforePageLave2","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","_this","renderId","listen","_ref","_asyncToGenerator","_classPrivateFieldGet2","_location$state","_classPrivateFieldGet4","currentRenderId","ignoreRendering","omittedLocationProps","hash","undefined","state","key","notify","_objectSpread","_classPrivateFieldGet3","didPerformIncrementalRender","dispatchPageLeave","storyboard","pathname","reload","_queuedRender2","catch","_x","_x2","apply","arguments","detail","_classPrivateFieldGet5","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect2","to","from","_this$redirectCount","_this$redirectCount2","concat","search","process","env","NODE_ENV","console","error","Error","replace","_x3","_queuedRender3","_render2","nextLocation","_x4","_render3","_hooks$flowApi","_classPrivateFieldGet6","_this2","flowApi","clearCollectWidgetContract","renderStartTime","performance","now","app","appChanged","id","flags","getFeatureFlags","prevRendererContext","redirectTo","add","redirectToLogin","main","document","querySelector","portal","renderRoot","tag","ROOT","container","createPortal","cleanUpPreviousRender","_hooks$messageDispatc","item","dispatchOnUnmount","dispose","clear","messageDispatcher","reset","dispatchEvent","CustomEvent","theme","_hooks$checkInstalled","_hooks$auth","_hooks$checkPermissio","_storyboard$meta","_hooks$flowApi2","_storyboard$meta2","checkInstalledApps","preCheckInstalledApps","appId","routeHelper","bailout","output","unauthenticated","redirect","path","mergeMenus","_ref2","menuRequests","menuConfs","Promise","all","mergeMenuConfs","_x5","returnNode","NO_AUTH_GUARD","noAuthGuardLoginPath","getMiscSettings","failed","node","BRICK","type","properties","textContent","runtimeContext","return","blockingList","rendererContext","query","URLSearchParams","sys","auth","getAuth","settings","brand","getBrandSettings","ctxStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","meta","functions","collectContract","contracts","stores","routes","setInitialMenuRequests","result","child","route","dispatchBeforePageLoad","scrollTo","dispatchPageLoad","dispatchAnchorLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","initializeMessageDispatcher","store","mountAsyncData","renderTime","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 { RenderBrick, RenderRoot, RuntimeContext } 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 { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.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) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(location);\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 this.#renderId = uniqueId(\"render-id-1\");\n\n resetAllComputedMarks();\n clearResolveCache();\n hooks?.flowApi?.clearCollectWidgetContract();\n\n const history = getHistory();\n history.unblock();\n\n const renderStartTime = performance.now();\n\n const storyboard = matchStoryboard(this.#storyboards, location.pathname);\n\n const previousApp = this.#runtimeContext?.app;\n if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n const currentApp = (this.#currentApp = storyboard?.app);\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 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 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 },\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 },\n runtimeContext: null!,\n return: returnNode,\n },\n blockingList: [],\n menuRequests: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper }\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 output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n []\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n await routeHelper.mergeMenus(output.menuRequests);\n rendererContext.setInitialMenuRequests(output.menuRequests);\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 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\n const renderTime = performance.now() - renderStartTime;\n window.dispatchEvent(\n new CustomEvent(\"route.render\", {\n detail: {\n renderTime,\n },\n })\n );\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 }\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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"}
|
|
1
|
+
{"version":3,"file":"Router.js","names":["locationsAreEqual","HttpAbortError","uniqueId","getHistory","getDataStores","postAsyncRender","renderRoutes","DataStore","clearResolveCache","mountTree","unmountTree","isOutsideApp","matchStoryboard","registerStoryboardFunctions","RendererContext","applyMode","applyTheme","getLocalAppsTheme","setMode","setTheme","_internalApiGetAppInBootstrapData","getRuntime","hooks","getPageInfo","resetAllComputedMarks","handleHttpError","httpErrorToString","isUnauthenticatedError","abortPendingRequest","initAbortController","registerCustomTemplates","fulfilStoryboard","RenderTag","insertPreviewRoutes","_storyboards","WeakMap","_rendering","_prevLocation","_nextLocation","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_getBlockMessageBeforePageLave","WeakSet","_safeRedirect","_queuedRender","_render","Router","constructor","storyboards","_classPrivateMethodInitSpec","_classPrivateFieldInitSpec","writable","value","Set","_classPrivateFieldSet","history","window","addEventListener","event","message","_classPrivateMethodGet","_getBlockMessageBeforePageLave2","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","_this","renderId","listen","_ref","_asyncToGenerator","_classPrivateFieldGet2","_location$state","_classPrivateFieldGet4","currentRenderId","ignoreRendering","omittedLocationProps","hash","undefined","state","key","notify","_objectSpread","_classPrivateFieldGet3","didPerformIncrementalRender","dispatchPageLeave","storyboard","pathname","reload","_queuedRender2","catch","_x","_x2","apply","arguments","detail","_classPrivateFieldGet5","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect2","to","from","_this$redirectCount","_this$redirectCount2","concat","search","process","env","NODE_ENV","console","error","Error","replace","_x3","_queuedRender3","_render2","nextLocation","_x4","_render3","_hooks$flowApi","_classPrivateFieldGet6","_this2","flowApi","clearCollectWidgetContract","renderStartTime","performance","now","app","appChanged","id","flags","getFeatureFlags","prevRendererContext","redirectTo","add","redirectToLogin","main","document","querySelector","portal","renderRoot","tag","ROOT","container","createPortal","cleanUpPreviousRender","_hooks$messageDispatc","item","dispatchOnUnmount","dispose","clear","messageDispatcher","reset","dispatchEvent","CustomEvent","theme","_hooks$checkInstalled","_hooks$auth","_hooks$checkPermissio","_storyboard$meta","_hooks$flowApi2","_storyboard$meta2","checkInstalledApps","preCheckInstalledApps","appId","routeHelper","bailout","output","unauthenticated","redirect","path","mergeMenus","_ref2","menuRequests","menuConfs","Promise","all","mergeMenuConfs","_x5","returnNode","NO_AUTH_GUARD","noAuthGuardLoginPath","getMiscSettings","failed","node","BRICK","type","properties","textContent","runtimeContext","return","blockingList","rendererContext","query","URLSearchParams","sys","auth","getAuth","settings","brand","getBrandSettings","ctxStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","meta","functions","collectContract","contracts","stores","routes","setInitialMenuRequests","result","child","route","dispatchBeforePageLoad","scrollTo","dispatchPageLoad","dispatchAnchorLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","initializeMessageDispatcher","store","mountAsyncData","renderTime","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 { RenderBrick, RenderRoot, RuntimeContext } 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 { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.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) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(location);\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 this.#renderId = uniqueId(\"render-id-1\");\n\n resetAllComputedMarks();\n clearResolveCache();\n hooks?.flowApi?.clearCollectWidgetContract();\n\n const history = getHistory();\n history.unblock();\n\n const renderStartTime = performance.now();\n\n const storyboard = matchStoryboard(this.#storyboards, location.pathname);\n\n const previousApp = this.#runtimeContext?.app;\n if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n const currentApp = (this.#currentApp = storyboard?.app);\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 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 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 },\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 },\n runtimeContext: null!,\n return: returnNode,\n },\n blockingList: [],\n menuRequests: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper }\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 output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n []\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n await routeHelper.mergeMenus(output.menuRequests);\n rendererContext.setInitialMenuRequests(output.menuRequests);\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 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\n const renderTime = performance.now() - renderStartTime;\n window.dispatchEvent(\n new CustomEvent(\"route.render\", {\n detail: {\n renderTime,\n },\n })\n );\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 }\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":";;;;;;;AAAA,SAAiBA,iBAAiB,QAAQ,SAAS;AAOnD,SAASC,cAAc,QAAQ,iBAAiB;AAChD,SAASC,QAAQ,QAAQ,QAAQ;AACjC,SAAyCC,UAAU,QAAQ,eAAe;AAC1E,SAEEC,aAAa,EACbC,eAAe,EACfC,YAAY,QACP,eAAe;AACtB,SAASC,SAAS,QAAQ,qBAAqB;AAC/C,SAASC,iBAAiB,QAAQ,uBAAuB;AACzD,SAASC,SAAS,EAAEC,WAAW,QAAQ,YAAY;AACnD,SAASC,YAAY,EAAEC,eAAe,QAAQ,sBAAsB;AACpE,SAASC,2BAA2B,QAAQ,kCAAkC;AAC9E,SAASC,eAAe,QAAqB,sBAAsB;AACnE,SACEC,SAAS,EACTC,UAAU,EACVC,iBAAiB,EACjBC,OAAO,EACPC,QAAQ,QACH,oBAAoB;AAC3B,SACEC,iCAAiC,EACjCC,UAAU,EACVC,KAAK,QACA,cAAc;AACrB,SAASC,WAAW,QAAQ,mBAAmB;AAE/C,SAASC,qBAAqB,QAAQ,6BAA6B;AACnE,SACEC,eAAe,EACfC,iBAAiB,EACjBC,sBAAsB,QACjB,uBAAuB;AAC9B,SAASC,mBAAmB,EAAEC,mBAAmB,QAAQ,sBAAsB;AAC/E,SAASC,uBAAuB,QAAQ,8BAA8B;AACtE,SAASC,gBAAgB,QAAQ,uBAAuB;AACxD,SAASC,SAAS,QAAQ,YAAY;AACtC,SAASC,mBAAmB,QAAQ,0BAA0B;AAAC,IAAAC,YAAA,oBAAAC,OAAA;AAAA,IAAAC,UAAA,oBAAAD,OAAA;AAAA,IAAAE,aAAA,oBAAAF,OAAA;AAAA,IAAAG,aAAA,oBAAAH,OAAA;AAAA,IAAAI,eAAA,oBAAAJ,OAAA;AAAA,IAAAK,gBAAA,oBAAAL,OAAA;AAAA,IAAAM,wBAAA,oBAAAN,OAAA;AAAA,IAAAO,cAAA,oBAAAP,OAAA;AAAA,IAAAQ,SAAA,oBAAAR,OAAA;AAAA,IAAAS,WAAA,oBAAAT,OAAA;AAAA,IAAAU,YAAA,oBAAAV,OAAA;AAAA,IAAAW,UAAA,oBAAAX,OAAA;AAAA,IAAAY,8BAAA,oBAAAC,OAAA;AAAA,IAAAC,aAAA,oBAAAD,OAAA;AAAA,IAAAE,aAAA,oBAAAF,OAAA;AAAA,IAAAG,OAAA,oBAAAH,OAAA;AAE/D,OAAO,MAAMI,MAAM,CAAC;EAgBlBC,WAAWA,CAACC,WAAyB,EAAE;IAAAC,2BAAA,OAAAJ,OAAA;IAAAI,2BAAA,OAAAL,aAAA;IAAAK,2BAAA,OAAAN,aAAA;IAAAM,2BAAA,OAAAR,8BAAA;IAAAS,0BAAA,OAAAtB,YAAA;MAAAuB,QAAA;MAAAC,KAAA;IAAA;IAAAF,0BAAA,OAAApB,UAAA;MAAAqB,QAAA;MAAAC,KAAA,EAd1B;IAAK;IAAAF,0BAAA,OAAAnB,aAAA;MAAAoB,QAAA;MAAAC,KAAA;IAAA;IAAAF,0BAAA,OAAAlB,aAAA;MAAAmB,QAAA;MAAAC,KAAA;IAAA;IAAAF,0BAAA,OAAAjB,eAAA;MAAAkB,QAAA;MAAAC,KAAA;IAAA;IAAAF,0BAAA,OAAAhB,gBAAA;MAAAiB,QAAA;MAAAC,KAAA;IAAA;IAAAF,0BAAA,OAAAf,wBAAA;MAAAgB,QAAA;MAAAC,KAAA,EAKS,IAAIC,GAAG,CAA8B;IAAC;IAAAH,0BAAA,OAAAd,cAAA;MAAAe,QAAA;MAAAC,KAAA,EAChD;IAAC;IAAAF,0BAAA,OAAAb,SAAA;MAAAc,QAAA;MAAAC,KAAA;IAAA;IAAAF,0BAAA,OAAAZ,WAAA;MAAAa,QAAA;MAAAC,KAAA;IAAA;IAAAF,0BAAA,OAAAX,YAAA;MAAAY,QAAA;MAAAC,KAAA;IAAA;IAAAF,0BAAA,OAAAV,UAAA;MAAAW,QAAA;MAAAC,KAAA;IAAA;IAShBE,qBAAA,KAAI,EAAA1B,YAAA,EAAgBoB,WAAW;IAE/B,IAAMO,QAAO,GAAG1D,UAAU,CAAC,CAAC;IAC5B2D,MAAM,CAACC,gBAAgB,CAAC,cAAc,EAAGC,KAAK,IAAK;MACjD,IAAMC,OAAO,GAAAC,sBAAA,CAAG,IAAI,EAAAnB,8BAAA,EAAAoB,+BAAA,EAAAC,IAAA,CAAJ,IAAI,EAAgC,CAAC,CAAC,CAAC;MACvD;MACA,IAAIH,OAAO,EAAE;QACX;QACA;QACAD,KAAK,CAACK,cAAc,CAAC,CAAC;QACtB;QACAL,KAAK,CAACM,WAAW,GAAG,EAAE;MACxB,CAAC,MAAM;QACL;QACA,OAAON,KAAK,CAACM,WAAW;MAC1B;IACF,CAAC,CAAC;IAEFT,QAAO,CAACU,KAAK,CAAC,CAACC,QAAQ,EAAEC,MAAM,KAAAP,sBAAA,CAC7B,IAAI,EAAAnB,8BAAA,EAAAoB,+BAAA,EAAAC,IAAA,CAAJ,IAAI,EAAgC;MAAEI,QAAQ;MAAEC;IAAO,CAAC,CAC1D,CAAC;EACH;EAEAC,WAAWA,CAAA,EAAG;IACZ,OAAAC,qBAAA,CAAO,IAAI,EAAAhC,SAAA;EACb;EAEAiC,iBAAiBA,CAAA,EAAG;IAClB,OAAAD,qBAAA,CAAO,IAAI,EAAApC,eAAA;EACb;EAEAsC,aAAaA,CAAA,EAAG;IACd,OAAO;MACLC,UAAU,EAAAH,qBAAA,CAAE,IAAI,EAAA/B,WAAA,CAAY;MAC5BmC,WAAW,EAAAJ,qBAAA,CAAE,IAAI,EAAA9B,YAAA;IACnB,CAAC;EACH;EAEAmC,YAAYA,CAAA,EAAG;IACb,OAAAL,qBAAA,CAAO,IAAI,EAAA7B,UAAA;EACb;EAoCAmC,SAASA,CAAA,EAAG;IAAA,IAAAC,KAAA;IACVrD,mBAAmB,CAAC,CAAC;IACrB,IAAMgC,OAAO,GAAG1D,UAAU,CAAC,CAAC;IAC5ByD,qBAAA,KAAI,EAAAvB,aAAA,EAAiBwB,OAAO,CAACW,QAAQ;IACrC,IAAIW,QAAQ,GAAG,CAAC;IAChBtB,OAAO,CAACuB,MAAM;MAAA,IAAAC,IAAA,GAAAC,iBAAA,CAAC,WAAOd,QAAQ,EAAEC,MAAM,EAAK;QAAA,IAAAc,sBAAA,EAAAC,eAAA,EAAAC,sBAAA;QACzC,IAAMC,eAAe,GAAG,EAAEP,QAAQ;QAClC,IAAIQ,eAAoC;QACxC,IAAMC,oBAA2C,GAAG;UAClDC,IAAI,EAAEC,SAAS;UACfC,KAAK,EAAED;QACT,CAAC;QACD;QACA;QACE;QACAtB,QAAQ,CAACwB,GAAG,KAAKF,SAAS;QAC1B;QACA;QACCrB,MAAM,KAAK,KAAK;QACf;QACCE,qBAAA,CAAAO,KAAI,EAAA7C,aAAA,EAAe2D,GAAG,KAAKF,SAAS;QACnC;QACA,EAAAP,sBAAA,GAAAZ,qBAAA,CAAAO,KAAI,EAAA7C,aAAA,EAAe0D,KAAK,cAAAR,sBAAA,uBAAxBA,sBAAA,CAA0BU,MAAM,MAAK,KAAK,CAAE,EAChD;UACAL,oBAAoB,CAACI,GAAG,GAAGF,SAAS;QACtC;QACA,IACE9F,iBAAiB,CAAAkG,aAAA,CAAAA,aAAA,KAAAvB,qBAAA,CACVO,KAAI,EAAA7C,aAAA,IAAmBuD,oBAAoB,GAAAM,aAAA,CAAAA,aAAA,KAC3C1B,QAAQ,GAAKoB,oBAAoB,CACxC,CAAC,IACAnB,MAAM,KAAK,KAAK,IAAI,EAAAe,eAAA,GAAAhB,QAAQ,CAACuB,KAAK,cAAAP,eAAA,uBAAdA,eAAA,CAAgBS,MAAM,MAAK,KAAM,EACtD;UACA;UACA;UACAN,eAAe,GAAG,IAAI;QACxB;QAEA,IAAI,CAACA,eAAe,EAAE;UAAA,IAAAQ,sBAAA;UACpBR,eAAe,UAAAQ,sBAAA,GAAAxB,qBAAA,CACPO,KAAI,EAAA1C,gBAAA,eAAA2D,sBAAA,uBAAJA,sBAAA,CAAuBC,2BAA2B,CAAC5B,QAAQ,CAAC;QACtE;;QAEA;QACA,IAAIW,QAAQ,KAAKO,eAAe,EAAE;UAChC;QACF;QAEA,IAAIC,eAAe,EAAE;UACnB/B,qBAAA,CAAAsB,KAAI,EAAA7C,aAAA,EAAiBmC,QAAQ;UAC7B;QACF;QAEA5C,mBAAmB,CAAC,CAAC;QACrBgC,qBAAA,CAAAsB,KAAI,EAAA7C,aAAA,EAAiBmC,QAAQ;QAC7B,CAAAiB,sBAAA,GAAAd,qBAAA,CAAAO,KAAI,EAAA1C,gBAAA,eAAAiD,sBAAA,eAAJA,sBAAA,CAAuBY,iBAAiB,CAAC,CAAC;QAE1C,IAAI5B,MAAM,KAAK,KAAK,EAAE;UACpB,IAAM6B,UAAU,GAAG1F,eAAe,CAAA+D,qBAAA,CAChCO,KAAI,EAAAhD,YAAA,GACJsC,QAAQ,CAAC+B,QACX,CAAC;UACD;UACA;UACA,IAAI5F,YAAY,CAAC2F,UAAU,CAAC,EAAE;YAC5BxC,MAAM,CAACU,QAAQ,CAACgC,MAAM,CAAC,CAAC;YACxB;UACF;QACF;QAEA,IAAA7B,qBAAA,CAAIO,KAAI,EAAA9C,UAAA,GAAa;UACnBwB,qBAAA,CAAAsB,KAAI,EAAA5C,aAAA,EAAiBkC,QAAQ;QAC/B,CAAC,MAAM;UACL;UACAN,sBAAA,CAAAgB,KAAI,EAAAhC,aAAA,EAAAuD,cAAA,EAAArC,IAAA,CAAJc,KAAI,EAAeV,QAAQ,EAAEkC,KAAK,CAACjF,eAAe,CAAC;QACrD;MACF,CAAC;MAAA,iBAAAkF,EAAA,EAAAC,GAAA;QAAA,OAAAvB,IAAA,CAAAwB,KAAA,OAAAC,SAAA;MAAA;IAAA,IAAC;IACF,OAAA5C,sBAAA,CAAO,IAAI,EAAAhB,aAAA,EAAAuD,cAAA,EAAArC,IAAA,CAAJ,IAAI,EAAeP,OAAO,CAACW,QAAQ;EAC5C;AAwSF;AAAC,SAAAL,gCAxZgC4C,MAG9B,EAAsB;EAAA,IAAAC,sBAAA;EACrB,IAAMnD,OAAO,GAAG1D,UAAU,CAAC,CAAC;EAC5B,IAAM8G,eAAe,GAAGpD,OAAO,CAACqD,eAAe,CAAC,CAAC;EACjD,CAAAF,sBAAA,GAAArC,qBAAA,KAAI,EAAAnC,gBAAA,eAAAwE,sBAAA,eAAJA,sBAAA,CAAuBG,uBAAuB,CAACJ,MAAM,CAAC;EACtD,IAAM9C,OAAO,GAAGJ,OAAO,CAACqD,eAAe,CAAC,CAAC;EACzC,IAAI,CAACD,eAAe,IAAIhD,OAAO,EAAE;IAC/B;IACAJ,OAAO,CAACuD,OAAO,CAAC,CAAC;EACnB;EACA,OAAOnD,OAAO;AAChB;AAAC,SAAAoD,eAGCC,EAAU,EACVvB,KAAmC,EACnCwB,IAAkB,EACZ;EAAA,IAAAC,mBAAA,EAAAC,oBAAA;EACN,IAAI,CAAA7D,qBAAA,KAAI,EAAAlB,cAAA,GAAA8E,mBAAA,GAAA7C,qBAAA,CAAJ,IAAI,EAAAjC,cAAA,GAAA+E,oBAAA,GAAAD,mBAAA,IAAAA,mBAAA,IAAAC,oBAAA,IAAoB,EAAE,EAAE;IAC9B,IAAMxD,OAAO,yCAAAyD,MAAA,CAAwCH,IAAI,CAAChB,QAAQ,EAAAmB,MAAA,CAAGH,IAAI,CAACI,MAAM,EAAAD,MAAA,CAAGH,IAAI,CAAC1B,IAAI,cAAA6B,MAAA,CAASJ,EAAE,OAAG;IAC1G;IACA,IAAIM,OAAO,CAACC,GAAG,CAACC,QAAQ,KAAK,MAAM,EAAE;MACnC;MACAC,OAAO,CAACC,KAAK,CAAC/D,OAAO,CAAC;MACtB;IACF,CAAC,MAAM;MACL,MAAM,IAAIgE,KAAK,CAAChE,OAAO,CAAC;IAC1B;EACF;EACA9D,UAAU,CAAC,CAAC,CAAC+H,OAAO,CAACZ,EAAE,EAAEvB,KAAK,CAAC;AACjC;AAAC,SAAAU,eAAA0B,GAAA;EAAA,OAAAC,cAAA,CAAAvB,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAsB,eAAA;EAAAA,cAAA,GAAA9C,iBAAA,YAkFmBd,QAAsB,EAAiB;IACzDZ,qBAAA,KAAI,EAAAxB,UAAA,EAAc,IAAI;IACtB,IAAI;MACF,MAAA8B,sBAAA,CAAM,IAAI,EAAAf,OAAA,EAAAkF,QAAA,EAAAjE,IAAA,CAAJ,IAAI,EAASI,QAAQ;IAC7B,CAAC,SAAS;MACRZ,qBAAA,KAAI,EAAAxB,UAAA,EAAc,KAAK;MACvB,IAAAuC,qBAAA,CAAI,IAAI,EAAArC,aAAA,GAAgB;QACtB,IAAMgG,YAAY,GAAA3D,qBAAA,CAAG,IAAI,EAAArC,aAAA,CAAc;QACvCsB,qBAAA,KAAI,EAAAtB,aAAA,EAAiBwD,SAAS;QAC9B,MAAA5B,sBAAA,CAAM,IAAI,EAAAhB,aAAA,EAAAuD,cAAA,EAAArC,IAAA,CAAJ,IAAI,EAAekE,YAAY;MACvC;IACF;EACF,CAAC;EAAA,OAAAF,cAAA,CAAAvB,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAAuB,SAAAE,GAAA;EAAA,OAAAC,QAAA,CAAA3B,KAAA,OAAAC,SAAA;AAAA;AAAA,SAAA0B,SAAA;EAAAA,QAAA,GAAAlD,iBAAA,YAEad,QAAsB,EAAiB;IAAA,IAAAiE,cAAA;MAAAC,sBAAA;MAAAC,MAAA;IACnD/E,qBAAA,KAAI,EAAAjB,SAAA,EAAazC,QAAQ,CAAC,aAAa,CAAC;IAExCsB,qBAAqB,CAAC,CAAC;IACvBhB,iBAAiB,CAAC,CAAC;IACnBc,KAAK,aAALA,KAAK,gBAAAmH,cAAA,GAALnH,KAAK,CAAEsH,OAAO,cAAAH,cAAA,eAAdA,cAAA,CAAgBI,0BAA0B,CAAC,CAAC;IAE5C,IAAMhF,OAAO,GAAG1D,UAAU,CAAC,CAAC;IAC5B0D,OAAO,CAACuD,OAAO,CAAC,CAAC;IAEjB,IAAM0B,eAAe,GAAGC,WAAW,CAACC,GAAG,CAAC,CAAC;IAEzC,IAAM1C,UAAU,GAAG1F,eAAe,CAAA+D,qBAAA,CAAC,IAAI,EAAAzC,YAAA,GAAesC,QAAQ,CAAC+B,QAAQ,CAAC;IAExE,IAAMxB,WAAW,IAAA2D,sBAAA,GAAA/D,qBAAA,CAAG,IAAI,EAAApC,eAAA,eAAAmG,sBAAA,uBAAJA,sBAAA,CAAsBO,GAAG;IAC7C,IAAI3C,UAAU,aAAVA,UAAU,eAAVA,UAAU,CAAE2C,GAAG,EAAE;MACnB,MAAMlH,gBAAgB,CAACuE,UAAU,CAAC;IACpC;IACA,IAAMxB,UAAU,GAAAlB,qBAAA,CAAI,IAAI,EAAAhB,WAAA,EAAe0D,UAAU,aAAVA,UAAU,uBAAVA,UAAU,CAAE2C,GAAG,CAAC;;IAEvD;IACA,IAAMC,UAAU,GACdnE,WAAW,IAAID,UAAU,GACrBC,WAAW,CAACoE,EAAE,KAAKrE,UAAU,CAACqE,EAAE,GAChCpE,WAAW,KAAKD,UAAU;;IAEhC;;IAEA;IACA,IAAMsE,KAAK,GAAG/H,UAAU,CAAC,CAAC,CAACgI,eAAe,CAAC,CAAC;IAC5C,IAAMC,mBAAmB,GAAA3E,qBAAA,CAAG,IAAI,EAAAnC,gBAAA,CAAiB;IAEjD,IAAM+G,UAAU,GAAGA,CAACjC,EAAU,EAAEvB,KAAwB,KAAW;MACjEpB,qBAAA,KAAI,EAAAlC,wBAAA,EAA0B+G,GAAG,CAACF,mBAAmB,CAAC;MACtDpF,sBAAA,KAAI,EAAAjB,aAAA,EAAAoE,cAAA,EAAAjD,IAAA,CAAJ,IAAI,EAAekD,EAAE,EAAEvB,KAAK,EAAEvB,QAAQ;IACxC,CAAC;IAED,IAAMiF,eAAe,GAAGA,CAAA,KAAY;MAClC,IAAMnC,EAAE,GAAG8B,KAAK,CAAC,aAAa,CAAC,GAAG,iBAAiB,GAAG,aAAa;MACnEG,UAAU,CAACjC,EAAE,EAAE;QAAEC,IAAI,EAAE/C;MAAS,CAAC,CAAC;IACpC,CAAC;IAED,IAAMkF,IAAI,GAAGC,QAAQ,CAACC,aAAa,CAAC,mBAAmB,CAAgB;IACvE,IAAMC,MAAM,GAAGF,QAAQ,CAACC,aAAa,CAAC,qBAAqB,CAAgB;IAE3E,IAAME,UAAsB,GAAG;MAC7BC,GAAG,EAAE/H,SAAS,CAACgI,IAAI;MACnBC,SAAS,EAAEP,IAAI;MACfQ,YAAY,EAAEL;IAChB,CAAC;IAED,IAAMM,qBAAqB,GAAGA,CAAA,KAAY;MAAA,IAAAC,qBAAA;MACxC1J,WAAW,CAACgJ,IAAI,CAAC;MACjBhJ,WAAW,CAACmJ,MAAM,CAAC;;MAEnB;MACAlF,qBAAA,KAAI,EAAAlC,wBAAA,EAA0B+G,GAAG,CAACF,mBAAmB,CAAC;MACtD,KAAK,IAAMe,IAAI,IAAA1F,qBAAA,CAAI,IAAI,EAAAlC,wBAAA,GAA2B;QAChD,IAAI4H,IAAI,EAAE;UACRA,IAAI,CAACC,iBAAiB,CAAC,CAAC;UACxBD,IAAI,CAACE,OAAO,CAAC,CAAC;QAChB;MACF;MACA5F,qBAAA,KAAI,EAAAlC,wBAAA,EAA0B+H,KAAK,CAAC,CAAC;MACrClJ,KAAK,aAALA,KAAK,gBAAA8I,qBAAA,GAAL9I,KAAK,CAAEmJ,iBAAiB,cAAAL,qBAAA,eAAxBA,qBAAA,CAA0BM,KAAK,CAAC,CAAC;MAEjC,IAAIxB,UAAU,EAAE;QACdtF,qBAAA,KAAI,EAAAf,YAAA,EAAgBkC,WAAW;QAC/BjB,MAAM,CAAC6G,aAAa,CAClB,IAAIC,WAAW,CAAC,YAAY,EAAE;UAC5B7D,MAAM,EAAE;YACNhC,WAAW;YACXD;UACF;QACF,CAAC,CACH,CAAC;MACH;IACF,CAAC;IAED3D,QAAQ,CACL2D,UAAU,KACR7D,iBAAiB,CAAC,CAAC,CAAC6D,UAAU,CAACqE,EAAE,CAAC,IAAIrE,UAAU,CAAC+F,KAAK,CAAC,IACxD,OACJ,CAAC;IACD3J,OAAO,CAAC,SAAS,CAAC;IAElB,IAAI4D,UAAU,EAAE;MAAA,IAAAgG,qBAAA,EAAAC,WAAA,EAAAC,qBAAA,EAAAC,gBAAA,EAAAC,eAAA,EAAAC,iBAAA;MACd7J,KAAK,aAALA,KAAK,gBAAAwJ,qBAAA,GAALxJ,KAAK,CAAE8J,kBAAkB,cAAAN,qBAAA,eAAzBA,qBAAA,CAA2BO,qBAAqB,CAC9C/E,UAAU,EACTgF,KAAK,IAAK,CAAC,CAAClK,iCAAiC,CAACkK,KAAK,CACtD,CAAC;MAED,IAAMC,WAAwB,GAAG;QAC/BC,OAAO,EAAGC,MAAM,IAAK;UACnB,IAAIA,MAAM,CAACC,eAAe,EAAE;YAC1BjC,eAAe,CAAC,CAAC;YACjB,OAAO,IAAI;UACb;UACA,IAAIgC,MAAM,CAACE,QAAQ,EAAE;YACnBpC,UAAU,CAACkC,MAAM,CAACE,QAAQ,CAACC,IAAI,EAAEH,MAAM,CAACE,QAAQ,CAAC5F,KAAK,CAAC;YACvD,OAAO,IAAI;UACb;UACA;UACAnC,qBAAA,KAAI,EAAAlB,cAAA,EAAkB,CAAC;QACzB,CAAC;QACDmJ,UAAU;UAAA,IAAAC,KAAA,GAAAxG,iBAAA,CAAE,WAAOyG,YAAY,EAAK;YAClC,IAAMC,SAAS,SAASC,OAAO,CAACC,GAAG,CAACH,YAAY,CAAC;YACjDnI,qBAAA,CAAA+E,MAAI,EAAA7F,UAAA,EAAcqJ,cAAc,CAACH,SAAS,CAAC;UAC7C,CAAC;UAAA,gBAAAH,WAAAO,GAAA;YAAA,OAAAN,KAAA,CAAAjF,KAAA,OAAAC,SAAA;UAAA;QAAA;QACDJ,KAAK,EAAEA,CAACsB,KAAK,EAAEqE,UAAU,KAAK;UAC5B,IAAI1K,sBAAsB,CAACqG,KAAK,CAAC,IAAI,CAAClE,MAAM,CAACwI,aAAa,EAAE;YAC1D7C,eAAe,CAAC,CAAC;YACjB;UACF,CAAC,MAAM,IAAIzB,KAAK,YAAY/H,cAAc,EAAE;YAC1C0E,qBAAA,KAAI,EAAAlC,wBAAA,EAA0B+G,GAAG,CAACF,mBAAmB,CAAC;YACtD;UACF,CAAC,MAAM;YACL,IAAMiD,oBAAoB,GACxBlL,UAAU,CAAC,CAAC,CAACmL,eAAe,CAAC,CAAC,CAACD,oBAAoB;YACrD,IAAI5K,sBAAsB,CAACqG,KAAK,CAAC,IAAIuE,oBAAoB,EAAE;cACzDhD,UAAU,CAACgD,oBAAoB,EAAY;gBAAEhF,IAAI,EAAE/C;cAAS,CAAC,CAAC;cAC9D;YACF;YACA,OAAO;cACLiI,MAAM,EAAE,IAAI;cACZhB,MAAM,EAAE;gBACNiB,IAAI,EAAE;kBACJ3C,GAAG,EAAE/H,SAAS,CAAC2K,KAAK;kBACpBC,IAAI,EAAE,KAAK;kBACXC,UAAU,EAAE;oBACVC,WAAW,EAAEpL,iBAAiB,CAACsG,KAAK;kBACtC,CAAC;kBACD+E,cAAc,EAAE,IAAK;kBACrBC,MAAM,EAAEX;gBACV,CAAC;gBACDY,YAAY,EAAE,EAAE;gBAChBlB,YAAY,EAAE;cAChB;YACF,CAAC;UACH;QACF;MACF,CAAC;MAED,IAAMmB,eAAe,GAAAtJ,qBAAA,CAAI,IAAI,EAAApB,gBAAA,EAAoB,IAAI1B,eAAe,CAClE,MAAM,EACN;QAAEyK;MAAY,CAChB,CAAC,CAAC;MAEF,IAAMwB,cAA8B,GAAAnJ,qBAAA,CAAI,IAAI,EAAArB,eAAA,EAAmB;QAC7D0G,GAAG,EAAEnE,UAAU;QACfN,QAAQ;QACR2I,KAAK,EAAE,IAAIC,eAAe,CAAC5I,QAAQ,CAACmD,MAAM,CAAC;QAC3CyB,KAAK;QACLiE,GAAG,EAAAnH,aAAA,CAAAA,aAAA,CAAAA,aAAA,KACE5E,KAAK,aAALA,KAAK,gBAAAyJ,WAAA,GAALzJ,KAAK,CAAEgM,IAAI,cAAAvC,WAAA,uBAAXA,WAAA,CAAawC,OAAO,CAAC,CAAC,GACtBhM,WAAW,CAAC,CAAC;UAChBiM,QAAQ,EAAE;YACRC,KAAK,EAAEpM,UAAU,CAAC,CAAC,CAACqM,gBAAgB,CAAC;UACvC;QAAC,EACF;QACDC,QAAQ,EAAE,IAAIpN,SAAS,CAAC,KAAK,EAAEuF,SAAS,EAAEoH,eAAe,CAAC;QAC1DU,0BAA0B,EAAE,CAC1BtM,KAAK,aAALA,KAAK,gBAAA0J,qBAAA,GAAL1J,KAAK,CAAEuM,gBAAgB,cAAA7C,qBAAA,uBAAvBA,qBAAA,CAAyB8C,mBAAmB,CAACxH,UAAU,CAAC,CACzD;QACDyH,gBAAgB,EAAE,IAAIC,GAAG,CAA6B,CAAC;QACvDC,iBAAiB,EAAE,IAAID,GAAG,CAAkC;MAC9D,CAAC,CAAC;MAEFpK,qBAAA,KAAI,EAAAd,UAAA,EAAcgD,SAAS;MAE3BhE,uBAAuB,CAACwE,UAAU,CAAC;MACnCzF,2BAA2B,EAAAoK,gBAAA,GAAC3E,UAAU,CAAC4H,IAAI,cAAAjD,gBAAA,uBAAfA,gBAAA,CAAiBkD,SAAS,EAAErJ,UAAU,CAAC;MACnExD,KAAK,aAALA,KAAK,gBAAA4J,eAAA,GAAL5J,KAAK,CAAEsH,OAAO,cAAAsC,eAAA,eAAdA,eAAA,CAAgBkD,eAAe,EAAAjD,iBAAA,GAAC7E,UAAU,CAAC4H,IAAI,cAAA/C,iBAAA,uBAAfA,iBAAA,CAAiBkD,SAAS,CAAC;MAE3D,IAAI5B,MAAM,GAAG,KAAK;MAClB,IAAIhB,MAAoB;MACxB,IAAI6C,MAAmD,GAAG,EAAE;MAE5D,IAAI;QACF7C,MAAM,SAASnL,YAAY,CACzBwJ,UAAU,EACV7H,mBAAmB,CAACqE,UAAU,CAACiI,MAAM,CAAC,EACtCxB,cAAc,EACdG,eAAe,EACf,EACF,CAAC;QACD,IAAI3B,WAAW,CAACC,OAAO,CAACC,MAAM,CAAC,EAAE;UAC/B;QACF;QAEA6C,MAAM,GAAGlO,aAAa,CAAC2M,cAAc,CAAC;QAEtC,MAAM1M,eAAe,CAACoL,MAAM,EAAEsB,cAAc,EAAEuB,MAAM,CAAC;QAErD,MAAM/C,WAAW,CAACM,UAAU,CAACJ,MAAM,CAACM,YAAY,CAAC;QACjDmB,eAAe,CAACsB,sBAAsB,CAAC/C,MAAM,CAACM,YAAY,CAAC;MAC7D,CAAC,CAAC,OAAO/D,KAAK,EAAE;QACd;QACAD,OAAO,CAACC,KAAK,CAAC,gBAAgB,EAAEA,KAAK,CAAC;QAEtC,IAAMyG,MAAM,GAAGlD,WAAW,CAAC7E,KAAK,CAACsB,KAAK,EAAE8B,UAAU,CAAC;QACnD,IAAI,CAAC2E,MAAM,EAAE;UACX;QACF;QACA,CAAC;UAAEhC,MAAM;UAAEhB;QAAO,CAAC,GAAGgD,MAAM;MAC9B;MACA3E,UAAU,CAAC4E,KAAK,GAAGjD,MAAM,CAACiB,IAAI;MAE9BvC,qBAAqB,CAAC,CAAC;MAEvB,IAAKsB,MAAM,CAACkD,KAAK,IAAIlD,MAAM,CAACkD,KAAK,CAAC/B,IAAI,KAAK,QAAQ,IAAKH,MAAM,EAAE;QAC9D,IAAI,CAACA,MAAM,EAAE;UACX;UACAS,eAAe,CAAC0B,sBAAsB,CAAC,CAAC;QAC1C;QACA5N,UAAU,CAAC,CAAC;QACZD,SAAS,CAAC,CAAC;QAEXN,SAAS,CAACqJ,UAAU,CAAC;;QAErB;QACA;QACAhG,MAAM,CAAC+K,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;QAErB,IAAI,CAACpC,MAAM,EAAE;UACXS,eAAe,CAAC4B,gBAAgB,CAAC,CAAC;UAClC5B,eAAe,CAAC6B,kBAAkB,CAAC,CAAC;UACpC7B,eAAe,CAAC8B,eAAe,CAAC,CAAC;UACjC9B,eAAe,CAAC+B,wBAAwB,CAAC,CAAC;UAC1C/B,eAAe,CAACgC,qBAAqB,CAAC,CAAC;UACvChC,eAAe,CAACiC,2BAA2B,CAAC,CAAC;UAE7C,KAAK,IAAMC,KAAK,IAAId,MAAM,EAAE;YAC1Bc,KAAK,CAACC,cAAc,CAAC,CAAC;UACxB;QACF;QAEA,IAAMC,UAAU,GAAGvG,WAAW,CAACC,GAAG,CAAC,CAAC,GAAGF,eAAe;QACtDhF,MAAM,CAAC6G,aAAa,CAClB,IAAIC,WAAW,CAAC,cAAc,EAAE;UAC9B7D,MAAM,EAAE;YACNuI;UACF;QACF,CAAC,CACH,CAAC;QAED;MACF;IACF,CAAC,MAAM,IACL,CAACxL,MAAM,CAACwI,aAAa,IACrBhL,KAAK,aAALA,KAAK,eAALA,KAAK,CAAEgM,IAAI,IACX,CAAChM,KAAK,CAACgM,IAAI,CAACiC,UAAU,CAAC,CAAC,EACxB;MACA;MACA;MACA9F,eAAe,CAAC,CAAC;MACjB;IACF,CAAC,MAAM;MACLU,qBAAqB,CAAC,CAAC;IACzB;IAEAnJ,UAAU,CAAC,CAAC;IACZD,SAAS,CAAC,CAAC;IAEX,IAAM2L,IAAiB,GAAG;MACxB3C,GAAG,EAAE/H,SAAS,CAAC2K,KAAK;MACpBC,IAAI,EAAE,KAAK;MACXC,UAAU,EAAE;QACVC,WAAW,EAAE;MACf,CAAC;MACDC,cAAc,EAAE,IAAK;MACrBC,MAAM,EAAElD;IACV,CAAC;IACDA,UAAU,CAAC4E,KAAK,GAAGhC,IAAI;IAEvBjM,SAAS,CAACqJ,UAAU,CAAC;;IAErB;IACAhG,MAAM,CAAC+K,QAAQ,CAAC,CAAC,EAAE,CAAC,CAAC;EACvB,CAAC;EAAA,OAAArG,QAAA,CAAA3B,KAAA,OAAAC,SAAA;AAAA;AAGH,SAASqF,cAAcA,CAACH,SAA2B,EAAE;EACnD,IAAMwD,SAAS,GAAG;IAChBC,UAAU,EAAE;EACd,CAAC;EACD,KAAK,IAAMC,QAAQ,IAAI1D,SAAS,EAAE;IAChC,IAAM;MAAEyD;IAAW,CAAC,GAAGC,QAAQ;IAC/B,IAAID,UAAU,EAAE;MACd,IAAIA,UAAU,CAACE,SAAS,EAAE;QACxBH,SAAS,CAACC,UAAU,GAAGA,UAAU,CAACG,KAAK;MACzC,CAAC,MAAM;QACLJ,SAAS,CAACC,UAAU,CAACI,IAAI,CAAC,GAAGJ,UAAU,CAACG,KAAK,CAAC;MAChD;IACF;EACF;EACA,OAAOJ,SAAS;AAClB"}
|
|
@@ -260,13 +260,17 @@ runtimeContext) {
|
|
|
260
260
|
});
|
|
261
261
|
break;
|
|
262
262
|
case "ITEM":
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
266
|
-
|
|
267
|
-
|
|
263
|
+
case "INDEX":
|
|
264
|
+
{
|
|
265
|
+
var property = variableName === "ITEM" ? "forEachItem" : "forEachIndex";
|
|
266
|
+
if (!hasOwnProperty(runtimeContext, property)) {
|
|
267
|
+
// eslint-disable-next-line no-console
|
|
268
|
+
console.error("Using `".concat(variableName, "` but no `:forEach` is found, check your expression: \"").concat(raw, "\""));
|
|
269
|
+
} else {
|
|
270
|
+
globalVariables[variableName] = runtimeContext[property];
|
|
271
|
+
}
|
|
272
|
+
break;
|
|
268
273
|
}
|
|
269
|
-
break;
|
|
270
274
|
case "LOCAL_STORAGE":
|
|
271
275
|
globalVariables[variableName] = getReadOnlyProxy({
|
|
272
276
|
getItem: getStorageItem("local")
|