@next-core/runtime 1.70.0 → 1.71.1

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.
@@ -279,7 +279,7 @@ async function _render(location, isBootstrap) {
279
279
  } else {
280
280
  path = path.replace(/^\/next\//, "/");
281
281
  }
282
- path && (_Runtime.hooks === null || _Runtime.hooks === void 0 || (_hooks$auth2 = _Runtime.hooks.auth) === null || _hooks$auth2 === void 0 || (_hooks$auth2$addPathT = _hooks$auth2.addPathToBlackList) === null || _hooks$auth2$addPathT === void 0 ? void 0 : _hooks$auth2$addPathT.call(_hooks$auth2, path));
282
+ path && path.startsWith("/") && (_Runtime.hooks === null || _Runtime.hooks === void 0 || (_hooks$auth2 = _Runtime.hooks.auth) === null || _hooks$auth2 === void 0 || (_hooks$auth2$addPathT = _hooks$auth2.addPathToBlackList) === null || _hooks$auth2$addPathT === void 0 ? void 0 : _hooks$auth2$addPathT.call(_hooks$auth2, path));
283
283
  });
284
284
  blocked = _Runtime.hooks === null || _Runtime.hooks === void 0 || (_hooks$auth3 = _Runtime.hooks.auth) === null || _hooks$auth3 === void 0 || (_hooks$auth3$isBlocke = _hooks$auth3.isBlockedPath) === null || _hooks$auth3$isBlocke === void 0 ? void 0 : _hooks$auth3$isBlocke.call(_hooks$auth3, location.pathname);
285
285
  }
@@ -1 +1 @@
1
- {"version":3,"file":"Router.js","names":["_history2","require","_http","_cook","_lodash","_history3","_Renderer","_DataStore","_resolveData","_mount","_matchStoryboard","_StoryboardFunctions","_RendererContext","_themeAndMode","_Runtime","_getPageInfo","_markAsComputed","_handleHttpError","_abortController","_setLoginStateCookie","_registerCustomTemplates","_fulfilStoryboard","_enums","_insertPreviewRoutes","_devtools","_setUIVersion","_setAppVariable","_setWatermark","_routeMatchedMap","_ErrorNode","_shouldReloadForError","_computeRealValue","_storyboards","WeakMap","_rendering","_nextRender","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_bootstrapFailed","_Router_brand","WeakSet","Router","constructor","storyboards","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","Set","_classPrivateFieldSet2","history","getHistory","window","addEventListener","event","message","_assertClassBrand2","_getBlockMessageBeforePageLave","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet6","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","initAbortController","nextPrevLocation","listen","prevLocation","_queuedRender","catch","handleHttpError","exports","detail","_classPrivateFieldGet2","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect","to","state","from","_this$redirectCount","_this$redirectCount2","pathname","search","hash","process","env","NODE_ENV","console","error","Error","replace","next","_preRender","nextRender","undefined","_prevLocation$state","_location$state","_location$state2","_classPrivateFieldGet4","ignoreRendering","omittedLocationProps","key","notify","locationsAreEqual","noIncremental","_classPrivateFieldGet3","didPerformIncrementalRender","abortPendingRequest","dispatchPageLeave","storyboard","matchStoryboard","isOutsideApp","reload","devtoolsHookEmit","_render","isBootstrap","_hooks$auth","_hooks$auth$isBlocked","_hooks$flowApi","_hooks$pageView","_classPrivateFieldGet5","_storyboard$app","renderId","uniqueId","blocked","hooks","auth","isBlockedPath","resetAllComputedMarks","clearResolveCache","flowApi","clearCollectWidgetContract","finishPageView","pageView","create","app","currentAppId","id","BOOTSTRAP_UNION_FILE","setAppVariable","appId","version","currentVersion","fulfilStoryboard","_storyboard$meta","_storyboard$meta$forE","_hooks$auth3","_hooks$auth3$isBlocke","meta","blackList","forEach","item","_hooks$auth2","_hooks$auth2$addPathT","path","url","split","computeRealValue","e","addPathToBlackList","setWatermark","appChanged","clearExpressionASTCache","clearFunctionASTCache","flags","getRuntime","getFeatureFlags","prevRendererContext","redirectTo","status","add","redirectToLogin","setLoginStateCookie","main","document","querySelector","portal","renderRoot","tag","RenderTag","ROOT","container","createPortal","cleanUpPreviousRender","_hooks$messageDispatc","unmountTree","dispatchOnUnmount","dispose","clear","messageDispatcher","reset","dispatchEvent","CustomEvent","setTheme","getLocalAppsTheme","theme","setMode","setThemeVariant","getMiscSettings","globalThemeVariant","_hooks$checkInstalled","_hooks$auth4","_hooks$checkPermissio","_storyboard$meta2","_hooks$flowApi2","_storyboard$meta3","checkInstalledApps","preCheckInstalledApps","_internalApiGetAppInBootstrapData","routeHelper","bailout","output","unauthenticated","redirect","mergeMenus","menuRequests","menuConfs","Promise","all","mergeMenuConfs","returnNode","isCurrentBootstrap","isReCatch","isUnauthenticatedError","NO_AUTH_GUARD","HttpAbortError","noAuthGuardLoginPath","shouldReloadForError","failed","node","ErrorNode","blockingList","rendererContext","RendererContext","runtimeContext","query","URLSearchParams","sys","getAuth","getPageInfo","settings","brand","getBrandSettings","ctxStore","DataStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","registerCustomTemplates","registerStoryboardFunctions","functions","collectContract","contracts","stores","clearMatchedRoutes","rootMenuRequestNode","renderRoutes","insertPreviewRoutes","routes","getDataStores","postAsyncRender","child","menuRequestNode","setInitialMenuRequestNode","getMenuRequests","result","resetReloadForError","route","type","dispatchBeforePageLoad","applyTheme","applyMode","setUIVersion","uiVersion","mountTree","scrollTo","dispatchPageLoad","dispatchAnchorLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","initializeMessageDispatcher","store","mountAsyncData","pageTitle","title","isLoggedIn","PageError","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 {\n clearExpressionASTCache,\n clearFunctionASTCache,\n} from \"@next-core/cook\";\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 setThemeVariant,\n} from \"../themeAndMode.js\";\nimport {\n _internalApiGetAppInBootstrapData,\n getRuntime,\n hooks,\n} from \"./Runtime.js\";\nimport { getPageInfo } from \"../getPageInfo.js\";\nimport type {\n MenuRequestNode,\n RenderRoot,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport { resetAllComputedMarks } from \"./compute/markAsComputed.js\";\nimport { handleHttpError, isUnauthenticatedError } from \"../handleHttpError.js\";\nimport { abortPendingRequest, initAbortController } from \"./abortController.js\";\nimport { setLoginStateCookie } from \"../setLoginStateCookie.js\";\nimport { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.js\";\nimport { devtoolsHookEmit } from \"./devtools.js\";\nimport { setUIVersion } from \"../setUIVersion.js\";\nimport { setAppVariable } from \"../setAppVariable.js\";\nimport { setWatermark } from \"../setWatermark.js\";\nimport { clearMatchedRoutes } from \"./routeMatchedMap.js\";\nimport { ErrorNode, PageError } from \"./ErrorNode.js\";\nimport {\n resetReloadForError,\n shouldReloadForError,\n} from \"../shouldReloadForError.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\n\ntype RenderTask = InitialRenderTask | SubsequentRenderTask;\n\ninterface InitialRenderTask {\n location: NextLocation;\n prevLocation?: undefined;\n action?: undefined;\n}\n\ninterface SubsequentRenderTask {\n location: NextLocation;\n prevLocation: NextLocation;\n action: Action;\n}\n\nexport class Router {\n readonly #storyboards: Storyboard[];\n #rendering = false;\n #nextRender?: RenderTask;\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?: { breadcrumb?: BreadcrumbItemConf[] };\n #bootstrapFailed = false;\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 // istanbul ignore next\n getRuntimeContext() {\n return this.#runtimeContext;\n }\n\n getRecentApps() {\n return { currentApp: this.#currentApp, previousApp: this.#previousApp };\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 let nextPrevLocation = history.location;\n history.listen((location, action) => {\n const prevLocation = nextPrevLocation;\n nextPrevLocation = location;\n if (this.#rendering) {\n this.#nextRender = { location, prevLocation, action };\n } else {\n this.#queuedRender({ location, prevLocation, action }).catch(\n handleHttpError\n );\n }\n });\n return this.#queuedRender({ location: history.location });\n }\n\n async #queuedRender(next: RenderTask) {\n this.#rendering = true;\n try {\n await this.#preRender(next);\n } finally {\n this.#rendering = false;\n if (this.#nextRender) {\n const nextRender = this.#nextRender;\n this.#nextRender = undefined;\n await this.#queuedRender(nextRender);\n }\n }\n }\n\n async #preRender({ location, prevLocation, action }: RenderTask) {\n if (prevLocation) {\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 (prevLocation.key === undefined ||\n // or the previous location specified notify false.\n prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = undefined;\n }\n if (\n locationsAreEqual(\n { ...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 // Note: dot not perform incremental render when bootstrap failed.\n if (\n !ignoreRendering &&\n !location.state?.noIncremental &&\n !this.#bootstrapFailed\n ) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(\n location,\n prevLocation\n );\n }\n\n if (ignoreRendering) {\n return;\n }\n\n abortPendingRequest();\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 devtoolsHookEmit(\"locationChange\");\n }\n\n return this.#render(location, !prevLocation);\n }\n\n async #render(location: NextLocation, isBootstrap: boolean): Promise<void> {\n const renderId = (this.#renderId = uniqueId(\"render-id-\"));\n let blocked = hooks?.auth?.isBlockedPath?.(location.pathname);\n\n resetAllComputedMarks();\n clearResolveCache();\n hooks?.flowApi?.clearCollectWidgetContract();\n\n const history = getHistory();\n history.unblock();\n\n // const renderStartTime = performance.now();\n const finishPageView = hooks?.pageView?.create();\n\n const storyboard = blocked\n ? undefined\n : matchStoryboard(this.#storyboards, location.pathname);\n\n const previousApp = this.#runtimeContext?.app;\n const currentAppId = storyboard?.app?.id;\n // dynamically change the value of the APP variable, if it's union app\n if (\n window.BOOTSTRAP_UNION_FILE &&\n currentAppId &&\n currentAppId !== previousApp?.id\n ) {\n setAppVariable({\n appId: currentAppId,\n version: storyboard.app.currentVersion!,\n });\n }\n\n if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n\n const currentApp = (this.#currentApp = storyboard?.app);\n\n if (currentApp) {\n storyboard?.meta?.blackList?.forEach?.((item) => {\n let path = item && (item.to || item.url);\n\n if (!path || typeof path !== \"string\") return;\n\n path = path\n .split(\"?\")[0]\n .replace(/\\${\\s*(?:(?:PATH|CTX)\\.)?(\\w+)\\s*}/g, \":$1\");\n\n if (item.to) {\n try {\n path = computeRealValue(path, {\n app: currentApp,\n } as RuntimeContext) as string;\n } catch (e) /* istanbul ignore next */ {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n } else {\n path = path.replace(/^\\/next\\//, \"/\");\n }\n\n path && hooks?.auth?.addPathToBlackList?.(path);\n });\n blocked = hooks?.auth?.isBlockedPath?.(location.pathname);\n }\n\n setWatermark();\n\n // Storyboard maybe re-assigned, e.g. when open launchpad.\n const appChanged =\n previousApp && currentApp\n ? previousApp.id !== currentApp.id\n : previousApp !== currentApp;\n\n clearExpressionASTCache();\n if (appChanged) {\n clearFunctionASTCache();\n }\n\n // TODO: handle favicon\n\n // Set `Router::#currentApp` before calling `getFeatureFlags()`\n const flags = getRuntime().getFeatureFlags();\n const prevRendererContext = this.#rendererContext;\n\n const redirectTo = (to: string, state?: NextHistoryState): void => {\n finishPageView?.({ status: \"redirected\" });\n this.#rendererContextTrashCan.add(prevRendererContext);\n this.#safeRedirect(to, state, location);\n };\n\n const redirectToLogin = (): void => {\n const to = flags[\"sso-enabled\"] ? \"/sso-auth/login\" : \"/auth/login\";\n setLoginStateCookie(location);\n redirectTo(to, { from: location });\n };\n\n const main = document.querySelector(\"#main-mount-point\") as HTMLElement;\n const portal = document.querySelector(\"#portal-mount-point\") as HTMLElement;\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: main,\n createPortal: portal,\n };\n\n const cleanUpPreviousRender = (): void => {\n unmountTree(main);\n unmountTree(portal);\n\n // Note: redirects can lead to multiple trash renderer contexts.\n this.#rendererContextTrashCan.add(prevRendererContext);\n for (const item of this.#rendererContextTrashCan) {\n if (item) {\n item.dispatchOnUnmount();\n item.dispose();\n }\n }\n this.#rendererContextTrashCan.clear();\n hooks?.messageDispatcher?.reset();\n\n if (appChanged) {\n this.#previousApp = previousApp;\n window.dispatchEvent(\n new CustomEvent(\"app.change\", { detail: { previousApp, currentApp } })\n );\n }\n };\n\n setTheme(\n (currentApp &&\n (getLocalAppsTheme()[currentApp.id] || currentApp.theme)) ||\n \"light\"\n );\n setMode(\"default\");\n setThemeVariant(getRuntime().getMiscSettings().globalThemeVariant);\n\n if (currentApp && !blocked) {\n hooks?.checkInstalledApps?.preCheckInstalledApps(\n storyboard,\n (appId) => !!_internalApiGetAppInBootstrapData(appId)\n );\n\n const routeHelper: RouteHelper = {\n bailout: (output) => {\n if (output.unauthenticated) {\n redirectToLogin();\n return true;\n }\n if (output.redirect) {\n redirectTo(output.redirect.path, output.redirect.state);\n return true;\n }\n // Reset redirect count if no redirect is set.\n this.#redirectCount = 0;\n },\n mergeMenus: async (menuRequests) => {\n const menuConfs = await Promise.all(menuRequests);\n this.#navConfig = mergeMenuConfs(menuConfs);\n window.dispatchEvent(\n new CustomEvent(\"navConfig.change\", { detail: this.#navConfig })\n );\n },\n catch: async (error, returnNode, isCurrentBootstrap, isReCatch) => {\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 if (isCurrentBootstrap) {\n throw error;\n }\n if (!isReCatch && shouldReloadForError(error)) {\n window.location.reload();\n return;\n }\n return {\n failed: true,\n output: {\n node: await ErrorNode(error, returnNode, !isReCatch),\n blockingList: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper, renderId }\n ));\n\n const runtimeContext: RuntimeContext = (this.#runtimeContext = {\n app: currentApp,\n location,\n query: new URLSearchParams(location.search),\n flags,\n sys: {\n ...hooks?.auth?.getAuth(),\n ...getPageInfo(),\n settings: { brand: getRuntime().getBrandSettings() },\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 clearMatchedRoutes();\n const rootMenuRequestNode: MenuRequestNode = {};\n output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n [],\n rootMenuRequestNode\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n rootMenuRequestNode.child = output.menuRequestNode;\n rendererContext.setInitialMenuRequestNode(rootMenuRequestNode);\n await routeHelper.mergeMenus(rendererContext.getMenuRequests());\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Router failed:\", error);\n if (isBootstrap) {\n this.#bootstrapFailed = true;\n }\n const result = await routeHelper.catch(error, renderRoot, isBootstrap);\n if (!result) {\n return;\n }\n ({ failed, output } = result);\n }\n resetReloadForError();\n renderRoot.child = output.node;\n this.#bootstrapFailed = false;\n\n cleanUpPreviousRender();\n\n if ((output.route && output.route.type !== \"routes\") || failed) {\n if (!failed) {\n // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.\n rendererContext.dispatchBeforePageLoad();\n }\n applyTheme();\n applyMode();\n\n setUIVersion(currentApp?.uiVersion);\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n // See https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/guides/scroll-restoration.md\n window.scrollTo(0, 0);\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n rendererContext.initializeMessageDispatcher();\n\n for (const store of stores) {\n store.mountAsyncData();\n }\n\n finishPageView?.({\n status: \"ok\",\n path: output.path,\n pageTitle: document.title,\n });\n } else {\n finishPageView?.({ status: \"failed\" });\n }\n devtoolsHookEmit(\"rendered\");\n\n return;\n }\n } else if (\n !window.NO_AUTH_GUARD &&\n hooks?.auth &&\n !hooks.auth.isLoggedIn()\n ) {\n // Todo(steve): refine after api-gateway supports fetching storyboards before logged in.\n // Redirect to login if no storyboard is matched.\n redirectToLogin();\n return;\n } else {\n cleanUpPreviousRender();\n }\n\n applyTheme();\n applyMode();\n\n const node = await ErrorNode(\n new PageError(\n blocked\n ? \"page blocked\"\n : currentApp\n ? \"page not found\"\n : \"app not found\"\n ),\n renderRoot,\n true\n );\n renderRoot.child = node;\n\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n window.scrollTo(0, 0);\n finishPageView?.({ status: blocked ? \"blocked\" : \"not-found\" });\n devtoolsHookEmit(\"rendered\");\n }\n}\n\nfunction mergeMenuConfs(menuConfs: StaticMenuConf[]) {\n const navConfig = { breadcrumb: [] as BreadcrumbItemConf[] };\n for (const menuConf of menuConfs) {\n const { breadcrumb } = menuConf;\n if (breadcrumb) {\n if (breadcrumb.overwrite) {\n navConfig.breadcrumb = breadcrumb.items;\n } else {\n navConfig.breadcrumb.push(...breadcrumb.items);\n }\n }\n }\n return navConfig;\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"Router.js","names":["_history2","require","_http","_cook","_lodash","_history3","_Renderer","_DataStore","_resolveData","_mount","_matchStoryboard","_StoryboardFunctions","_RendererContext","_themeAndMode","_Runtime","_getPageInfo","_markAsComputed","_handleHttpError","_abortController","_setLoginStateCookie","_registerCustomTemplates","_fulfilStoryboard","_enums","_insertPreviewRoutes","_devtools","_setUIVersion","_setAppVariable","_setWatermark","_routeMatchedMap","_ErrorNode","_shouldReloadForError","_computeRealValue","_storyboards","WeakMap","_rendering","_nextRender","_runtimeContext","_rendererContext","_rendererContextTrashCan","_redirectCount","_renderId","_currentApp","_previousApp","_navConfig","_bootstrapFailed","_Router_brand","WeakSet","Router","constructor","storyboards","_classPrivateMethodInitSpec2","default","_classPrivateFieldInitSpec2","Set","_classPrivateFieldSet2","history","getHistory","window","addEventListener","event","message","_assertClassBrand2","_getBlockMessageBeforePageLave","call","preventDefault","returnValue","block","location","action","getRenderId","_classPrivateFieldGet6","getRuntimeContext","getRecentApps","currentApp","previousApp","getNavConfig","bootstrap","initAbortController","nextPrevLocation","listen","prevLocation","_queuedRender","catch","handleHttpError","exports","detail","_classPrivateFieldGet2","previousMessage","getBlockMessage","dispatchBeforePageLeave","unblock","_safeRedirect","to","state","from","_this$redirectCount","_this$redirectCount2","pathname","search","hash","process","env","NODE_ENV","console","error","Error","replace","next","_preRender","nextRender","undefined","_prevLocation$state","_location$state","_location$state2","_classPrivateFieldGet4","ignoreRendering","omittedLocationProps","key","notify","locationsAreEqual","noIncremental","_classPrivateFieldGet3","didPerformIncrementalRender","abortPendingRequest","dispatchPageLeave","storyboard","matchStoryboard","isOutsideApp","reload","devtoolsHookEmit","_render","isBootstrap","_hooks$auth","_hooks$auth$isBlocked","_hooks$flowApi","_hooks$pageView","_classPrivateFieldGet5","_storyboard$app","renderId","uniqueId","blocked","hooks","auth","isBlockedPath","resetAllComputedMarks","clearResolveCache","flowApi","clearCollectWidgetContract","finishPageView","pageView","create","app","currentAppId","id","BOOTSTRAP_UNION_FILE","setAppVariable","appId","version","currentVersion","fulfilStoryboard","_storyboard$meta","_storyboard$meta$forE","_hooks$auth3","_hooks$auth3$isBlocke","meta","blackList","forEach","item","_hooks$auth2","_hooks$auth2$addPathT","path","url","split","computeRealValue","e","startsWith","addPathToBlackList","setWatermark","appChanged","clearExpressionASTCache","clearFunctionASTCache","flags","getRuntime","getFeatureFlags","prevRendererContext","redirectTo","status","add","redirectToLogin","setLoginStateCookie","main","document","querySelector","portal","renderRoot","tag","RenderTag","ROOT","container","createPortal","cleanUpPreviousRender","_hooks$messageDispatc","unmountTree","dispatchOnUnmount","dispose","clear","messageDispatcher","reset","dispatchEvent","CustomEvent","setTheme","getLocalAppsTheme","theme","setMode","setThemeVariant","getMiscSettings","globalThemeVariant","_hooks$checkInstalled","_hooks$auth4","_hooks$checkPermissio","_storyboard$meta2","_hooks$flowApi2","_storyboard$meta3","checkInstalledApps","preCheckInstalledApps","_internalApiGetAppInBootstrapData","routeHelper","bailout","output","unauthenticated","redirect","mergeMenus","menuRequests","menuConfs","Promise","all","mergeMenuConfs","returnNode","isCurrentBootstrap","isReCatch","isUnauthenticatedError","NO_AUTH_GUARD","HttpAbortError","noAuthGuardLoginPath","shouldReloadForError","failed","node","ErrorNode","blockingList","rendererContext","RendererContext","runtimeContext","query","URLSearchParams","sys","getAuth","getPageInfo","settings","brand","getBrandSettings","ctxStore","DataStore","pendingPermissionsPreCheck","checkPermissions","preCheckPermissions","tplStateStoreMap","Map","formStateStoreMap","registerCustomTemplates","registerStoryboardFunctions","functions","collectContract","contracts","stores","clearMatchedRoutes","rootMenuRequestNode","renderRoutes","insertPreviewRoutes","routes","getDataStores","postAsyncRender","child","menuRequestNode","setInitialMenuRequestNode","getMenuRequests","result","resetReloadForError","route","type","dispatchBeforePageLoad","applyTheme","applyMode","setUIVersion","uiVersion","mountTree","scrollTo","dispatchPageLoad","dispatchAnchorLoad","dispatchOnMount","initializeScrollIntoView","initializeMediaChange","initializeMessageDispatcher","store","mountAsyncData","pageTitle","title","isLoggedIn","PageError","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 {\n clearExpressionASTCache,\n clearFunctionASTCache,\n} from \"@next-core/cook\";\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 setThemeVariant,\n} from \"../themeAndMode.js\";\nimport {\n _internalApiGetAppInBootstrapData,\n getRuntime,\n hooks,\n} from \"./Runtime.js\";\nimport { getPageInfo } from \"../getPageInfo.js\";\nimport type {\n MenuRequestNode,\n RenderRoot,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport { resetAllComputedMarks } from \"./compute/markAsComputed.js\";\nimport { handleHttpError, isUnauthenticatedError } from \"../handleHttpError.js\";\nimport { abortPendingRequest, initAbortController } from \"./abortController.js\";\nimport { setLoginStateCookie } from \"../setLoginStateCookie.js\";\nimport { registerCustomTemplates } from \"./registerCustomTemplates.js\";\nimport { fulfilStoryboard } from \"./fulfilStoryboard.js\";\nimport { RenderTag } from \"./enums.js\";\nimport { insertPreviewRoutes } from \"./insertPreviewRoutes.js\";\nimport { devtoolsHookEmit } from \"./devtools.js\";\nimport { setUIVersion } from \"../setUIVersion.js\";\nimport { setAppVariable } from \"../setAppVariable.js\";\nimport { setWatermark } from \"../setWatermark.js\";\nimport { clearMatchedRoutes } from \"./routeMatchedMap.js\";\nimport { ErrorNode, PageError } from \"./ErrorNode.js\";\nimport {\n resetReloadForError,\n shouldReloadForError,\n} from \"../shouldReloadForError.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\n\ntype RenderTask = InitialRenderTask | SubsequentRenderTask;\n\ninterface InitialRenderTask {\n location: NextLocation;\n prevLocation?: undefined;\n action?: undefined;\n}\n\ninterface SubsequentRenderTask {\n location: NextLocation;\n prevLocation: NextLocation;\n action: Action;\n}\n\nexport class Router {\n readonly #storyboards: Storyboard[];\n #rendering = false;\n #nextRender?: RenderTask;\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?: { breadcrumb?: BreadcrumbItemConf[] };\n #bootstrapFailed = false;\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 // istanbul ignore next\n getRuntimeContext() {\n return this.#runtimeContext;\n }\n\n getRecentApps() {\n return { currentApp: this.#currentApp, previousApp: this.#previousApp };\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 let nextPrevLocation = history.location;\n history.listen((location, action) => {\n const prevLocation = nextPrevLocation;\n nextPrevLocation = location;\n if (this.#rendering) {\n this.#nextRender = { location, prevLocation, action };\n } else {\n this.#queuedRender({ location, prevLocation, action }).catch(\n handleHttpError\n );\n }\n });\n return this.#queuedRender({ location: history.location });\n }\n\n async #queuedRender(next: RenderTask) {\n this.#rendering = true;\n try {\n await this.#preRender(next);\n } finally {\n this.#rendering = false;\n if (this.#nextRender) {\n const nextRender = this.#nextRender;\n this.#nextRender = undefined;\n await this.#queuedRender(nextRender);\n }\n }\n }\n\n async #preRender({ location, prevLocation, action }: RenderTask) {\n if (prevLocation) {\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 (prevLocation.key === undefined ||\n // or the previous location specified notify false.\n prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = undefined;\n }\n if (\n locationsAreEqual(\n { ...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 // Note: dot not perform incremental render when bootstrap failed.\n if (\n !ignoreRendering &&\n !location.state?.noIncremental &&\n !this.#bootstrapFailed\n ) {\n ignoreRendering =\n await this.#rendererContext?.didPerformIncrementalRender(\n location,\n prevLocation\n );\n }\n\n if (ignoreRendering) {\n return;\n }\n\n abortPendingRequest();\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 devtoolsHookEmit(\"locationChange\");\n }\n\n return this.#render(location, !prevLocation);\n }\n\n async #render(location: NextLocation, isBootstrap: boolean): Promise<void> {\n const renderId = (this.#renderId = uniqueId(\"render-id-\"));\n let blocked = hooks?.auth?.isBlockedPath?.(location.pathname);\n\n resetAllComputedMarks();\n clearResolveCache();\n hooks?.flowApi?.clearCollectWidgetContract();\n\n const history = getHistory();\n history.unblock();\n\n // const renderStartTime = performance.now();\n const finishPageView = hooks?.pageView?.create();\n\n const storyboard = blocked\n ? undefined\n : matchStoryboard(this.#storyboards, location.pathname);\n\n const previousApp = this.#runtimeContext?.app;\n const currentAppId = storyboard?.app?.id;\n // dynamically change the value of the APP variable, if it's union app\n if (\n window.BOOTSTRAP_UNION_FILE &&\n currentAppId &&\n currentAppId !== previousApp?.id\n ) {\n setAppVariable({\n appId: currentAppId,\n version: storyboard.app.currentVersion!,\n });\n }\n\n if (storyboard?.app) {\n await fulfilStoryboard(storyboard);\n }\n\n const currentApp = (this.#currentApp = storyboard?.app);\n\n if (currentApp) {\n storyboard?.meta?.blackList?.forEach?.((item) => {\n let path = item && (item.to || item.url);\n\n if (!path || typeof path !== \"string\") return;\n\n path = path\n .split(\"?\")[0]\n .replace(/\\${\\s*(?:(?:PATH|CTX)\\.)?(\\w+)\\s*}/g, \":$1\");\n\n if (item.to) {\n try {\n path = computeRealValue(path, {\n app: currentApp,\n } as RuntimeContext) as string;\n } catch (e) /* istanbul ignore next */ {\n // eslint-disable-next-line no-console\n console.error(e);\n }\n } else {\n path = path.replace(/^\\/next\\//, \"/\");\n }\n\n path && path.startsWith(\"/\") && hooks?.auth?.addPathToBlackList?.(path);\n });\n blocked = hooks?.auth?.isBlockedPath?.(location.pathname);\n }\n\n setWatermark();\n\n // Storyboard maybe re-assigned, e.g. when open launchpad.\n const appChanged =\n previousApp && currentApp\n ? previousApp.id !== currentApp.id\n : previousApp !== currentApp;\n\n clearExpressionASTCache();\n if (appChanged) {\n clearFunctionASTCache();\n }\n\n // TODO: handle favicon\n\n // Set `Router::#currentApp` before calling `getFeatureFlags()`\n const flags = getRuntime().getFeatureFlags();\n const prevRendererContext = this.#rendererContext;\n\n const redirectTo = (to: string, state?: NextHistoryState): void => {\n finishPageView?.({ status: \"redirected\" });\n this.#rendererContextTrashCan.add(prevRendererContext);\n this.#safeRedirect(to, state, location);\n };\n\n const redirectToLogin = (): void => {\n const to = flags[\"sso-enabled\"] ? \"/sso-auth/login\" : \"/auth/login\";\n setLoginStateCookie(location);\n redirectTo(to, { from: location });\n };\n\n const main = document.querySelector(\"#main-mount-point\") as HTMLElement;\n const portal = document.querySelector(\"#portal-mount-point\") as HTMLElement;\n\n const renderRoot: RenderRoot = {\n tag: RenderTag.ROOT,\n container: main,\n createPortal: portal,\n };\n\n const cleanUpPreviousRender = (): void => {\n unmountTree(main);\n unmountTree(portal);\n\n // Note: redirects can lead to multiple trash renderer contexts.\n this.#rendererContextTrashCan.add(prevRendererContext);\n for (const item of this.#rendererContextTrashCan) {\n if (item) {\n item.dispatchOnUnmount();\n item.dispose();\n }\n }\n this.#rendererContextTrashCan.clear();\n hooks?.messageDispatcher?.reset();\n\n if (appChanged) {\n this.#previousApp = previousApp;\n window.dispatchEvent(\n new CustomEvent(\"app.change\", { detail: { previousApp, currentApp } })\n );\n }\n };\n\n setTheme(\n (currentApp &&\n (getLocalAppsTheme()[currentApp.id] || currentApp.theme)) ||\n \"light\"\n );\n setMode(\"default\");\n setThemeVariant(getRuntime().getMiscSettings().globalThemeVariant);\n\n if (currentApp && !blocked) {\n hooks?.checkInstalledApps?.preCheckInstalledApps(\n storyboard,\n (appId) => !!_internalApiGetAppInBootstrapData(appId)\n );\n\n const routeHelper: RouteHelper = {\n bailout: (output) => {\n if (output.unauthenticated) {\n redirectToLogin();\n return true;\n }\n if (output.redirect) {\n redirectTo(output.redirect.path, output.redirect.state);\n return true;\n }\n // Reset redirect count if no redirect is set.\n this.#redirectCount = 0;\n },\n mergeMenus: async (menuRequests) => {\n const menuConfs = await Promise.all(menuRequests);\n this.#navConfig = mergeMenuConfs(menuConfs);\n window.dispatchEvent(\n new CustomEvent(\"navConfig.change\", { detail: this.#navConfig })\n );\n },\n catch: async (error, returnNode, isCurrentBootstrap, isReCatch) => {\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 if (isCurrentBootstrap) {\n throw error;\n }\n if (!isReCatch && shouldReloadForError(error)) {\n window.location.reload();\n return;\n }\n return {\n failed: true,\n output: {\n node: await ErrorNode(error, returnNode, !isReCatch),\n blockingList: [],\n },\n };\n }\n },\n };\n\n const rendererContext = (this.#rendererContext = new RendererContext(\n \"page\",\n { routeHelper, renderId }\n ));\n\n const runtimeContext: RuntimeContext = (this.#runtimeContext = {\n app: currentApp,\n location,\n query: new URLSearchParams(location.search),\n flags,\n sys: {\n ...hooks?.auth?.getAuth(),\n ...getPageInfo(),\n settings: { brand: getRuntime().getBrandSettings() },\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 clearMatchedRoutes();\n const rootMenuRequestNode: MenuRequestNode = {};\n output = await renderRoutes(\n renderRoot,\n insertPreviewRoutes(storyboard.routes),\n runtimeContext,\n rendererContext,\n [],\n rootMenuRequestNode\n );\n if (routeHelper.bailout(output)) {\n return;\n }\n\n stores = getDataStores(runtimeContext);\n\n await postAsyncRender(output, runtimeContext, stores);\n\n rootMenuRequestNode.child = output.menuRequestNode;\n rendererContext.setInitialMenuRequestNode(rootMenuRequestNode);\n await routeHelper.mergeMenus(rendererContext.getMenuRequests());\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Router failed:\", error);\n if (isBootstrap) {\n this.#bootstrapFailed = true;\n }\n const result = await routeHelper.catch(error, renderRoot, isBootstrap);\n if (!result) {\n return;\n }\n ({ failed, output } = result);\n }\n resetReloadForError();\n renderRoot.child = output.node;\n this.#bootstrapFailed = false;\n\n cleanUpPreviousRender();\n\n if ((output.route && output.route.type !== \"routes\") || failed) {\n if (!failed) {\n // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.\n rendererContext.dispatchBeforePageLoad();\n }\n applyTheme();\n applyMode();\n\n setUIVersion(currentApp?.uiVersion);\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n // See https://github.com/ReactTraining/react-router/blob/master/packages/react-router-dom/docs/guides/scroll-restoration.md\n window.scrollTo(0, 0);\n\n if (!failed) {\n rendererContext.dispatchPageLoad();\n rendererContext.dispatchAnchorLoad();\n rendererContext.dispatchOnMount();\n rendererContext.initializeScrollIntoView();\n rendererContext.initializeMediaChange();\n rendererContext.initializeMessageDispatcher();\n\n for (const store of stores) {\n store.mountAsyncData();\n }\n\n finishPageView?.({\n status: \"ok\",\n path: output.path,\n pageTitle: document.title,\n });\n } else {\n finishPageView?.({ status: \"failed\" });\n }\n devtoolsHookEmit(\"rendered\");\n\n return;\n }\n } else if (\n !window.NO_AUTH_GUARD &&\n hooks?.auth &&\n !hooks.auth.isLoggedIn()\n ) {\n // Todo(steve): refine after api-gateway supports fetching storyboards before logged in.\n // Redirect to login if no storyboard is matched.\n redirectToLogin();\n return;\n } else {\n cleanUpPreviousRender();\n }\n\n applyTheme();\n applyMode();\n\n const node = await ErrorNode(\n new PageError(\n blocked\n ? \"page blocked\"\n : currentApp\n ? \"page not found\"\n : \"app not found\"\n ),\n renderRoot,\n true\n );\n renderRoot.child = node;\n\n mountTree(renderRoot);\n\n // Scroll to top after each rendering.\n window.scrollTo(0, 0);\n finishPageView?.({ status: blocked ? \"blocked\" : \"not-found\" });\n devtoolsHookEmit(\"rendered\");\n }\n}\n\nfunction mergeMenuConfs(menuConfs: StaticMenuConf[]) {\n const navConfig = { breadcrumb: [] as BreadcrumbItemConf[] };\n for (const menuConf of menuConfs) {\n const { breadcrumb } = menuConf;\n if (breadcrumb) {\n if (breadcrumb.overwrite) {\n navConfig.breadcrumb = breadcrumb.items;\n } else {\n navConfig.breadcrumb.push(...breadcrumb.items);\n }\n }\n }\n return navConfig;\n}\n"],"mappings":"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","ignoreList":[]}
@@ -161,11 +161,13 @@ function listenerFactory(handlers, runtimeContext, runtimeBrick) {
161
161
  case "context.replace":
162
162
  case "context.refresh":
163
163
  case "context.load":
164
+ case "context.set":
164
165
  handleContextAction(event, method, handler.args, handler.batch ?? true, handler.callback, runtimeContext);
165
166
  break;
166
167
  case "state.update":
167
168
  case "state.refresh":
168
169
  case "state.load":
170
+ case "state.set":
169
171
  handleTplStateAction(event, method, handler.args, handler.batch ?? true, handler.callback, runtimeContext);
170
172
  break;
171
173
  case "tpl.dispatchEvent":
@@ -1 +1 @@
1
- {"version":3,"file":"bindListeners.js","names":["_cook","require","_general","_lodash","_checkIf","_computeRealValue","_history","_getProviderBrick","_poll","_evaluate","_setProperties","_themeAndMode","_utils","_handleHttpError","_Notification","_utils2","_Runtime","_sse","_debugManager","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","checkIf","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","handleHttpError","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","getTplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","applyTheme","theme","applyMode","console","error","handleUseProviderAction","handleCustomAction","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","isEvaluable","isPreEvaluated","computeRealValue","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","setProperties","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","getProviderBrick","Error","tagName","toLowerCase","isUseProvider","computedArgs","argsOrContractConf","computeArgs","hooks","flowApi","isFlowApiProvider","_handler$sse","isArray","params","pick","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","startSSEStream","pollEnabled","poll","enabled","startPoll","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","getHistory","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","isObject","ctxStore","tplStateStore","getTplStateStore","JSON","stringify","formStateStore","getFormStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","isProduction","process","env","NODE_ENV","debugManager","shouldLog","Notification","show","message","_hooks$messageDispatc","messageDispatcher"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\nimport { debugManager } from \"./debugManager.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n case \"event.stopPropagation\":\n event.stopPropagation();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs: unknown[];\n\n let argsOrContractConf: unknown[] | UseProviderContractConf | undefined =\n isUseProvider\n ? computeArgs(handler.args, runtimeContext, event)\n : argsFactory(handler.args, runtimeContext, event, options);\n\n if (\n isUseProvider &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(\n pick(handler, \"params\", \"options\", \"filename\"),\n {\n ...runtimeContext,\n event,\n }\n ) as UseProviderContractConf;\n }\n\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n argsOrContractConf ?? [],\n method,\n handler.sse?.stream\n );\n } else {\n computedArgs = argsOrContractConf ?? [];\n }\n return (realTarget as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n if (isProvider) {\n const pollRuntimeContext = {\n ...runtimeContext,\n event,\n };\n\n const sseStream = computeRealValue(\n handler.sse?.stream,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (sseStream) {\n startSSEStream(\n task as () => Promise<AsyncIterable<unknown>>,\n pollableCallback\n );\n return;\n }\n\n const pollEnabled = computeRealValue(\n handler.poll?.enabled,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (pollEnabled) {\n startPoll(\n task,\n pollableCallback,\n handler.poll as ProviderPollOptions,\n pollRuntimeContext\n );\n\n return;\n }\n }\n\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowOpenAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string,\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction handleWindowPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\n\nfunction handleParentPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n parent.postMessage(...computedArgs);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const isProduction = process.env.NODE_ENV === \"production\";\n\n // 生产环境下,只有调试模式开启且符合日志级别才输出\n if (isProduction && !debugManager.shouldLog(method)) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nasync function handleMessageDispatcher(\n event: Event,\n method: \"subscribe\" | \"unsubscribe\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n callback?: BrickEventHandlerCallback\n) {\n const task = () => {\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks?.messageDispatcher?.[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n runtimeBrick\n );\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n\nfunction computeArgs(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event\n): unknown[] | undefined {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[];\n}\n"],"mappings":"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","ignoreList":[]}
1
+ {"version":3,"file":"bindListeners.js","names":["_cook","require","_general","_lodash","_checkIf","_computeRealValue","_history","_getProviderBrick","_poll","_evaluate","_setProperties","_themeAndMode","_utils","_handleHttpError","_Notification","_utils2","_Runtime","_sse","_debugManager","bindListeners","brick","eventsMap","runtimeContext","Object","entries","forEach","eventType","handlers","listener","listenerFactory","element","addEventListener","$$listeners","push","$$eventListeners","handler","concat","unbindListeners","removeEventListener","length","isBuiltinHandler","action","isUseProviderHandler","useProvider","isCustomHandler","target","targetRef","method","properties","isExecuteCustomHandler","isSetPropsCustomHandler","isConditionalEventHandler","then","runtimeBrick","event","checkIf","else","object","split","handleHistoryAction","args","callback","handleWindowOpenAction","handleWindowPostMessageAction","handleParentPostMessageAction","handleLocationAction","handleStorageAction","preventDefault","stopPropagation","handleConsoleAction","handleMessageAction","handleHttpError","detail","handleContextAction","batch","handleTplStateAction","type","init","argsFactory","tplHostElement","getTplHostElement","dispatchEvent","CustomEvent","handleFormStateAction","handleMessageDispatcher","applyTheme","theme","applyMode","console","error","handleUseProviderAction","handleCustomAction","brickCallback","targets","rawTarget","rawTargetRef","computedTarget","isEvaluable","isPreEvaluated","computeRealValue","multiple","Array","from","document","querySelectorAll","found","querySelector","HTMLElement","computedTargetRef","targetRefs","join","map","ref","_tplHostElement$$$get","$$getElementByRef","call","filter","Boolean","useEventAsDefault","setProperties","targetOrProvider","options","isProvider","task","_hooks$flowApi","realTarget","getProviderBrick","Error","tagName","toLowerCase","isUseProvider","computedArgs","argsOrContractConf","computeArgs","hooks","flowApi","isFlowApiProvider","_handler$sse","isArray","params","pick","getArgsOfFlowApi","sse","stream","callbackFactory","eventCallbackFactory","pollableCallback","progress","success","finally","_handler$sse2","_handler$poll","pollRuntimeContext","sseStream","startSSEStream","pollEnabled","poll","enabled","startPoll","result","err","baseArgsLength","hasCallback","overrideMethod","useEventDetailAsDefault","undefined","blocked","getHistory","url","features","window","open","location","origin","postMessage","parent","batchUpdate","store","updateValues","arg","name","value","updateValue","isBatch","every","isObject","ctxStore","tplStateStore","getTplStateStore","JSON","stringify","formStateStore","getFormStateStore","assign","storage","localStorage","sessionStorage","setItem","removeItem","isProduction","process","env","NODE_ENV","debugManager","shouldLog","Notification","show","message","_hooks$messageDispatc","messageDispatcher"],"sources":["../../../src/internal/bindListeners.ts"],"sourcesContent":["import type {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n ExecuteCustomBrickEventHandler,\n ProviderPollOptions,\n SetPropsCustomBrickEventHandler,\n SiteTheme,\n UseProviderEventHandler,\n ConditionalEventHandler,\n BatchUpdateContextItem,\n UseProviderContractConf,\n} from \"@next-core/types\";\nimport { isEvaluable } from \"@next-core/cook\";\nimport { isObject } from \"@next-core/utils/general\";\nimport { pick } from \"lodash\";\nimport { checkIf } from \"./compute/checkIf.js\";\nimport { computeRealValue } from \"./compute/computeRealValue.js\";\nimport { getHistory } from \"../history.js\";\nimport { getProviderBrick } from \"./data/getProviderBrick.js\";\nimport { PollableCallback, startPoll } from \"./poll.js\";\nimport { isPreEvaluated } from \"./compute/evaluate.js\";\nimport { setProperties } from \"./compute/setProperties.js\";\nimport { applyMode, applyTheme } from \"../themeAndMode.js\";\nimport type {\n ElementHolder,\n RuntimeBrickElement,\n RuntimeContext,\n} from \"./interfaces.js\";\nimport {\n getTplHostElement,\n getTplStateStore,\n} from \"./CustomTemplates/utils.js\";\nimport { handleHttpError } from \"../handleHttpError.js\";\nimport { Notification } from \"../Notification.js\";\nimport { getFormStateStore } from \"./FormRenderer/utils.js\";\nimport { DataStore } from \"./data/DataStore.js\";\nimport { hooks } from \"./Runtime.js\";\nimport { startSSEStream } from \"./sse.js\";\nimport { debugManager } from \"./debugManager.js\";\n\nexport function bindListeners(\n brick: RuntimeBrickElement,\n eventsMap: BrickEventsMap | undefined,\n runtimeContext: RuntimeContext\n): void {\n if (!eventsMap) {\n return;\n }\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n const listener = listenerFactory(handlers, runtimeContext, {\n element: brick,\n });\n brick.addEventListener(eventType, listener);\n\n // Remember added listeners for unbinding.\n if (!brick.$$listeners) {\n brick.$$listeners = [];\n }\n brick.$$listeners.push([eventType, listener]);\n\n // Remember added listeners for devtools.\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n brick.$$eventListeners.push([eventType, null, handler]);\n }\n });\n}\n\nexport function unbindListeners(brick: RuntimeBrickElement): void {\n if (brick.$$listeners) {\n for (const [eventType, listener] of brick.$$listeners) {\n brick.removeEventListener(eventType, listener);\n }\n brick.$$listeners.length = 0;\n }\n}\n\nexport function isBuiltinHandler(\n handler: BrickEventHandler\n): handler is BuiltinBrickEventHandler {\n return typeof (handler as BuiltinBrickEventHandler).action === \"string\";\n}\n\nexport function isUseProviderHandler(\n handler: BrickEventHandler\n): handler is UseProviderEventHandler {\n return typeof (handler as UseProviderEventHandler).useProvider === \"string\";\n}\n\nexport function isCustomHandler(\n handler: BrickEventHandler\n): handler is CustomBrickEventHandler {\n return !!(\n ((handler as CustomBrickEventHandler).target ||\n (handler as CustomBrickEventHandler).targetRef) &&\n ((handler as ExecuteCustomBrickEventHandler).method ||\n (handler as SetPropsCustomBrickEventHandler).properties)\n );\n}\n\nexport function isExecuteCustomHandler(\n handler: CustomBrickEventHandler\n): handler is ExecuteCustomBrickEventHandler {\n return !!(handler as ExecuteCustomBrickEventHandler).method;\n}\n\nexport function isSetPropsCustomHandler(\n handler: CustomBrickEventHandler\n): handler is SetPropsCustomBrickEventHandler {\n return !!(handler as SetPropsCustomBrickEventHandler).properties;\n}\n\nexport function isConditionalEventHandler(\n handler: BrickEventHandler\n): handler is ConditionalEventHandler {\n return !!(handler as ConditionalEventHandler).then;\n}\n\nexport function listenerFactory(\n handlers: BrickEventHandler | BrickEventHandler[],\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function (event: Event): void {\n for (const handler of ([] as BrickEventHandler[]).concat(handlers)) {\n if (!checkIf(handler, { ...runtimeContext, event })) {\n if (handler.else) {\n listenerFactory(handler.else, runtimeContext, runtimeBrick)(event);\n }\n continue;\n }\n\n if (isConditionalEventHandler(handler)) {\n listenerFactory(handler.then, runtimeContext, runtimeBrick)(event);\n } else if (isBuiltinHandler(handler)) {\n const [object, method] = handler.action.split(\".\") as any;\n switch (handler.action) {\n case \"history.push\":\n case \"history.replace\":\n case \"history.pushQuery\":\n case \"history.replaceQuery\":\n case \"history.pushAnchor\":\n case \"history.block\":\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n handleHistoryAction(\n event,\n method,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n // case \"segue.push\":\n // case \"segue.replace\":\n // case \"alias.push\":\n // case \"alias.replace\":\n\n case \"window.open\":\n handleWindowOpenAction(event, handler.args, runtimeContext);\n break;\n\n case \"window.postMessage\":\n handleWindowPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"parent.postMessage\":\n handleParentPostMessageAction(event, handler.args, runtimeContext);\n break;\n\n case \"location.reload\":\n case \"location.assign\":\n handleLocationAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n handleStorageAction(\n event,\n object,\n method,\n handler.args,\n runtimeContext\n );\n break;\n\n case \"event.preventDefault\":\n event.preventDefault();\n break;\n case \"event.stopPropagation\":\n event.stopPropagation();\n break;\n\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n handleConsoleAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n handleMessageAction(event, method, handler.args, runtimeContext);\n break;\n\n case \"handleHttpError\":\n handleHttpError((event as CustomEvent).detail);\n break;\n\n case \"context.assign\":\n case \"context.replace\":\n case \"context.refresh\":\n case \"context.load\":\n case \"context.set\":\n handleContextAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"state.update\":\n case \"state.refresh\":\n case \"state.load\":\n case \"state.set\":\n handleTplStateAction(\n event,\n method,\n handler.args,\n handler.batch ?? true,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"tpl.dispatchEvent\": {\n const [type, init] = argsFactory(\n handler.args,\n runtimeContext,\n event\n ) as [string, CustomEventInit];\n const tplHostElement = getTplHostElement(\n runtimeContext,\n handler.action,\n `: ${type}`\n );\n tplHostElement.dispatchEvent(new CustomEvent(type, init));\n break;\n }\n\n case \"formstate.update\":\n handleFormStateAction(\n event,\n handler.args,\n handler.callback,\n runtimeContext\n );\n break;\n\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n handleMessageDispatcher(\n event,\n method,\n handler.args,\n runtimeContext,\n runtimeBrick,\n handler.callback\n );\n break;\n\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n break;\n case \"theme.setTheme\": {\n const [theme] = argsFactory(handler.args, runtimeContext, event);\n applyTheme(theme as SiteTheme);\n break;\n }\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n applyMode(\n handler.action === \"mode.setDashboardMode\"\n ? \"dashboard\"\n : \"default\"\n );\n break;\n\n // case \"menu.clearMenuTitleCache\":\n // case \"menu.clearMenuCache\":\n\n // case \"analytics.event\":\n\n // case \"preview.debug\":\n\n default:\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n }\n } else if (isUseProviderHandler(handler)) {\n handleUseProviderAction(event, handler, runtimeContext, runtimeBrick);\n } else if (isCustomHandler(handler)) {\n handleCustomAction(event, handler, runtimeContext, runtimeBrick!);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unknown event handler:\", handler);\n }\n }\n };\n}\n\nfunction handleUseProviderAction(\n event: Event,\n handler: UseProviderEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n event,\n handler.useProvider,\n handler,\n method,\n runtimeContext,\n runtimeBrick\n );\n}\n\nfunction handleCustomAction(\n event: Event,\n handler: CustomBrickEventHandler,\n runtimeContext: RuntimeContext,\n runtimeBrick: ElementHolder\n) {\n let targets: HTMLElement[] = [];\n const rawTarget = handler.target;\n const rawTargetRef = handler.targetRef;\n let computedTarget = rawTarget;\n // Allow `target` to be set as evaluable string.\n if (\n typeof rawTarget === \"string\"\n ? isEvaluable(rawTarget)\n : isPreEvaluated(rawTarget)\n ) {\n computedTarget = computeRealValue(rawTarget, { ...runtimeContext, event });\n }\n if (typeof computedTarget === \"string\") {\n if (computedTarget === \"_self\") {\n targets.push(runtimeBrick.element!);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(computedTarget));\n } else {\n const found = document.querySelector(computedTarget) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (computedTarget) {\n if (computedTarget instanceof HTMLElement) {\n targets.push(computedTarget as HTMLElement);\n } else {\n // eslint-disable-next-line no-console\n console.error(\"unexpected target:\", computedTarget);\n }\n } else if (rawTargetRef) {\n let computedTargetRef = rawTargetRef;\n // Allow `targetRef` to be set as evaluable string.\n if (\n typeof rawTargetRef === \"string\"\n ? isEvaluable(rawTargetRef)\n : isPreEvaluated(rawTargetRef)\n ) {\n computedTargetRef = computeRealValue(rawTargetRef, {\n ...runtimeContext,\n event,\n }) as string | string[];\n }\n const targetRefs = ([] as string[]).concat(computedTargetRef);\n const tplHostElement = getTplHostElement(\n runtimeContext,\n \"targetRef\",\n `: ${targetRefs.join(\", \")}`\n );\n targets.push(\n ...(targetRefs\n .map((ref) => tplHostElement.$$getElementByRef?.(ref))\n .filter(Boolean) as HTMLElement[])\n );\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", rawTarget || rawTargetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n event,\n target,\n handler,\n handler.method,\n runtimeContext,\n runtimeBrick,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(targets, handler.properties, {\n ...runtimeContext,\n event,\n });\n }\n}\n\nasync function brickCallback(\n event: Event,\n targetOrProvider: HTMLElement | string,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n options?: ArgsFactoryOptions\n): Promise<void> {\n const isProvider = isUseProviderHandler(handler);\n\n const task = async (): Promise<unknown> => {\n const realTarget = isProvider\n ? await getProviderBrick(targetOrProvider as string)\n : (targetOrProvider as HTMLElement);\n\n if (typeof (realTarget as any)[method] !== \"function\") {\n throw new Error(\n `target <${realTarget.tagName.toLowerCase()}> has no method: ${method}`\n );\n }\n\n const isUseProvider = isUseProviderHandler(handler);\n let computedArgs: unknown[];\n\n let argsOrContractConf: unknown[] | UseProviderContractConf | undefined =\n isUseProvider\n ? computeArgs(handler.args, runtimeContext, event)\n : argsFactory(handler.args, runtimeContext, event, options);\n\n if (\n isUseProvider &&\n hooks?.flowApi?.isFlowApiProvider(handler.useProvider)\n ) {\n if (!Array.isArray(handler.args) && handler.params) {\n argsOrContractConf = computeRealValue(\n pick(handler, \"params\", \"options\", \"filename\"),\n {\n ...runtimeContext,\n event,\n }\n ) as UseProviderContractConf;\n }\n\n computedArgs = await hooks.flowApi.getArgsOfFlowApi(\n handler.useProvider,\n argsOrContractConf ?? [],\n method,\n handler.sse?.stream\n );\n } else {\n computedArgs = argsOrContractConf ?? [];\n }\n return (realTarget as any)[method](...computedArgs);\n };\n\n if (!handler.callback) {\n task();\n return;\n }\n\n const callbackFactory = eventCallbackFactory(\n handler.callback,\n runtimeContext,\n runtimeBrick\n );\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"progress\"),\n success: callbackFactory(\"success\"),\n error: callbackFactory(\"error\"),\n finally: callbackFactory(\"finally\"),\n };\n\n if (isProvider) {\n const pollRuntimeContext = {\n ...runtimeContext,\n event,\n };\n\n const sseStream = computeRealValue(\n handler.sse?.stream,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (sseStream) {\n startSSEStream(\n task as () => Promise<AsyncIterable<unknown>>,\n pollableCallback\n );\n return;\n }\n\n const pollEnabled = computeRealValue(\n handler.poll?.enabled,\n pollRuntimeContext\n ) as boolean | undefined;\n\n if (pollEnabled) {\n startPoll(\n task,\n pollableCallback,\n handler.poll as ProviderPollOptions,\n pollRuntimeContext\n );\n\n return;\n }\n }\n\n try {\n // Try to catch synchronized tasks too.\n const result = await task();\n pollableCallback.success(result);\n } catch (err) {\n pollableCallback.error(err);\n } finally {\n pollableCallback[\"finally\"]();\n }\n}\n\nfunction handleHistoryAction(\n event: Event,\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\"\n | \"goBack\"\n | \"goForward\"\n | \"reload\"\n | \"unblock\",\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n let baseArgsLength = 0;\n let hasCallback = false;\n let overrideMethod = method as \"setBlockMessage\";\n switch (method) {\n case \"push\":\n case \"replace\":\n case \"pushQuery\":\n case \"replaceQuery\":\n case \"pushAnchor\":\n baseArgsLength = 2;\n hasCallback = true;\n break;\n case \"reload\":\n hasCallback = true;\n break;\n case \"block\":\n baseArgsLength = 1;\n overrideMethod = \"setBlockMessage\";\n break;\n }\n let computedArgs: unknown[] = [];\n if (baseArgsLength > 0) {\n computedArgs = argsFactory(args, runtimeContext, event, {\n useEventDetailAsDefault: true,\n });\n computedArgs.length = baseArgsLength;\n }\n if (hasCallback && callback) {\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n undefined\n );\n computedArgs.push((blocked: boolean) => {\n callbackFactory(blocked ? \"error\" : \"success\")({ blocked });\n callbackFactory(\"finally\")({ blocked });\n });\n }\n (getHistory()[overrideMethod] as (...args: unknown[]) => unknown)(\n ...computedArgs\n );\n}\n\nfunction handleWindowOpenAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const [url, target, features] = argsFactory(args, runtimeContext, event) as [\n string,\n string,\n string,\n ];\n window.open(url, target || \"_self\", features);\n}\n\nfunction handleWindowPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n if (computedArgs.length === 1) {\n // Add default target origin\n computedArgs.push(location.origin);\n }\n window.postMessage(...computedArgs);\n}\n\nfunction handleParentPostMessageAction(\n event: Event,\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (parent === window) {\n throw new Error(\"parent is the window itself\");\n }\n const computedArgs = argsFactory(args, runtimeContext, event) as Parameters<\n typeof window.postMessage\n >;\n parent.postMessage(...computedArgs);\n}\n\nfunction batchUpdate(\n args: unknown[],\n batch: boolean,\n method: \"replace\" | \"assign\",\n store: DataStore<\"CTX\" | \"STATE\">,\n runtimeContext: RuntimeContext,\n event: CustomEvent | Event\n): void {\n if (batch) {\n store.updateValues(\n args as BatchUpdateContextItem[],\n method,\n (arg: unknown[]) => {\n return argsFactory(\n arg,\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n }\n );\n } else {\n args.forEach((arg) => {\n const { name, value } = argsFactory(\n [arg],\n runtimeContext,\n event\n )[0] as BatchUpdateContextItem;\n store.updateValue(name, value, method);\n });\n }\n}\n\nfunction handleContextAction(\n event: Event,\n method: \"assign\" | \"replace\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && (method === \"assign\" || method === \"replace\")) {\n batchUpdate(\n args,\n batch,\n method,\n runtimeContext.ctxStore,\n runtimeContext,\n event\n );\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n runtimeContext.ctxStore.updateValue(\n name as string,\n value,\n method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleTplStateAction(\n event: Event,\n method: \"update\" | \"refresh\" | \"load\" | \"set\",\n args: unknown[] | undefined,\n batch: boolean,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const isBatch = Array.isArray(args) && args.every(isObject);\n if (isBatch && method === \"update\") {\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${JSON.stringify(args)}`\n );\n batchUpdate(args, batch, \"replace\", tplStateStore, runtimeContext, event);\n } else {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const tplStateStore = getTplStateStore(\n runtimeContext,\n `state.${method}`,\n `: ${name}`\n );\n tplStateStore.updateValue(\n name as string,\n value,\n method === \"update\" ? \"replace\" : method,\n callback,\n runtimeContext\n );\n }\n}\n\nfunction handleFormStateAction(\n event: Event,\n args: unknown[] | undefined,\n callback: BrickEventHandlerCallback | undefined,\n runtimeContext: RuntimeContext\n) {\n const [name, value] = argsFactory(args, runtimeContext, event);\n const formStateStore = getFormStateStore(\n runtimeContext,\n \"formstate.update\",\n `: ${name}`\n );\n formStateStore.updateValue(\n name as string,\n value,\n \"replace\",\n callback,\n runtimeContext\n );\n}\n\nfunction handleLocationAction(\n event: Event,\n method: \"assign\" | \"reload\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n if (method === \"assign\") {\n const [url] = argsFactory(args, runtimeContext, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n}\n\nfunction handleStorageAction(\n event: Event,\n object: \"localStorage\" | \"sessionStorage\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const storage = object === \"localStorage\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, runtimeContext, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else {\n storage.removeItem(name as string);\n }\n}\n\nfunction handleConsoleAction(\n event: Event,\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const isProduction = process.env.NODE_ENV === \"production\";\n\n // 生产环境下,只有调试模式开启且符合日志级别才输出\n if (isProduction && !debugManager.shouldLog(method)) {\n return;\n }\n\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n })\n );\n}\n\nfunction handleMessageAction(\n event: Event,\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext\n) {\n const computedArgs = argsFactory(args, runtimeContext, event, {\n useEventAsDefault: true,\n });\n Notification.show({\n type: method,\n message: computedArgs[0] as string,\n });\n}\n\nasync function handleMessageDispatcher(\n event: Event,\n method: \"subscribe\" | \"unsubscribe\",\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder,\n callback?: BrickEventHandlerCallback\n) {\n const task = () => {\n const computedArgs = argsFactory(args, runtimeContext, event);\n return hooks?.messageDispatcher?.[method](...computedArgs);\n };\n if (!callback) {\n task();\n return;\n }\n const callbackFactory = eventCallbackFactory(\n callback,\n runtimeContext,\n runtimeBrick\n );\n try {\n const result = await task();\n callbackFactory(\"success\")(result);\n } catch (error) {\n callbackFactory(\"error\")(error);\n } finally {\n callbackFactory(\"finally\")();\n }\n}\n\nexport function eventCallbackFactory(\n callback: BrickEventHandlerCallback,\n runtimeContext: RuntimeContext,\n runtimeBrick?: ElementHolder\n) {\n return function callbackFactory(\n type: \"success\" | \"error\" | \"finally\" | \"progress\"\n ) {\n return function (result?: unknown) {\n const handlers = callback?.[type];\n if (handlers) {\n try {\n const event = new CustomEvent(`callback.${type}`, {\n detail: result,\n });\n listenerFactory(handlers, runtimeContext, runtimeBrick)(event);\n } catch (err) {\n // Do not throw errors in `callback.success` or `callback.progress`,\n // to avoid the following triggering of `callback.error`.\n // eslint-disable-next-line\n console.error(err);\n }\n } else if (type === \"error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n };\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [(event as CustomEvent).detail]\n : [];\n}\n\nfunction computeArgs(\n args: unknown[] | undefined,\n runtimeContext: RuntimeContext,\n event: Event\n): unknown[] | undefined {\n if (!Array.isArray(args)) {\n return args;\n }\n return computeRealValue(args, {\n ...runtimeContext,\n event,\n }) as unknown[];\n}\n"],"mappings":"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","ignoreList":[]}
@@ -4,6 +4,7 @@ Object.defineProperty(exports, "__esModule", {
4
4
  value: true
5
5
  });
6
6
  exports.setRealProperties = setRealProperties;
7
+ exports.setValueForStyle = setValueForStyle;
7
8
  function setRealProperties(brick, realProps) {
8
9
  if (!realProps) {
9
10
  return;
@@ -13,7 +14,11 @@ function setRealProperties(brick, realProps) {
13
14
  case "style":
14
15
  case "dataset":
15
16
  for (const [k, v] of Object.entries(propValue)) {
16
- brick[propName][k] = v;
17
+ if (propName === "style") {
18
+ setValueForStyle(brick.style, k, v);
19
+ } else {
20
+ brick[propName][k] = v;
21
+ }
17
22
  }
18
23
  break;
19
24
  case "constructor":
@@ -26,4 +31,13 @@ function setRealProperties(brick, realProps) {
26
31
  }
27
32
  }
28
33
  }
34
+ function setValueForStyle(style, key, value) {
35
+ if (key.startsWith("--")) {
36
+ style.setProperty(key, value);
37
+ } else if (key === "float") {
38
+ style.cssFloat = value;
39
+ } else {
40
+ style[key] = value;
41
+ }
42
+ }
29
43
  //# sourceMappingURL=setRealProperties.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"setRealProperties.js","names":["setRealProperties","brick","realProps","propName","propValue","Object","entries","k","v","Error"],"sources":["../../../../src/internal/compute/setRealProperties.ts"],"sourcesContent":["export function setRealProperties(\n brick: HTMLElement,\n realProps: Record<string, unknown> | undefined\n): void {\n if (!realProps) {\n return;\n }\n for (const [propName, propValue] of Object.entries(realProps)) {\n switch (propName) {\n case \"style\":\n case \"dataset\":\n for (const [k, v] of Object.entries(\n propValue as Record<string, unknown>\n )) {\n (brick[propName] as unknown as Record<string, unknown>)[k] = v;\n }\n break;\n case \"constructor\":\n case \"__proto__\":\n case \"innerHTML\":\n // `innerHTML` is dangerous, use `textContent` instead.\n throw new Error(`set \\`${propName}\\` is prohibited`);\n default:\n (brick as unknown as Record<string, unknown>)[propName] = propValue;\n }\n }\n}\n"],"mappings":";;;;;;AAAO,SAASA,iBAAiBA,CAC/BC,KAAkB,EAClBC,SAA8C,EACxC;EACN,IAAI,CAACA,SAAS,EAAE;IACd;EACF;EACA,KAAK,MAAM,CAACC,QAAQ,EAAEC,SAAS,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,SAAS,CAAC,EAAE;IAC7D,QAAQC,QAAQ;MACd,KAAK,OAAO;MACZ,KAAK,SAAS;QACZ,KAAK,MAAM,CAACI,CAAC,EAAEC,CAAC,CAAC,IAAIH,MAAM,CAACC,OAAO,CACjCF,SACF,CAAC,EAAE;UACAH,KAAK,CAACE,QAAQ,CAAC,CAAwCI,CAAC,CAAC,GAAGC,CAAC;QAChE;QACA;MACF,KAAK,aAAa;MAClB,KAAK,WAAW;MAChB,KAAK,WAAW;QACd;QACA,MAAM,IAAIC,KAAK,CAAC,SAASN,QAAQ,kBAAkB,CAAC;MACtD;QACGF,KAAK,CAAwCE,QAAQ,CAAC,GAAGC,SAAS;IACvE;EACF;AACF","ignoreList":[]}
1
+ {"version":3,"file":"setRealProperties.js","names":["setRealProperties","brick","realProps","propName","propValue","Object","entries","k","v","setValueForStyle","style","Error","key","value","startsWith","setProperty","cssFloat"],"sources":["../../../../src/internal/compute/setRealProperties.ts"],"sourcesContent":["export function setRealProperties(\n brick: HTMLElement,\n realProps: Record<string, unknown> | undefined\n): void {\n if (!realProps) {\n return;\n }\n for (const [propName, propValue] of Object.entries(realProps)) {\n switch (propName) {\n case \"style\":\n case \"dataset\":\n for (const [k, v] of Object.entries(\n propValue as Record<string, unknown>\n )) {\n if (propName === \"style\") {\n setValueForStyle(brick.style, k, v);\n } else {\n (brick[propName] as unknown as Record<string, unknown>)[k] = v;\n }\n }\n break;\n case \"constructor\":\n case \"__proto__\":\n case \"innerHTML\":\n // `innerHTML` is dangerous, use `textContent` instead.\n throw new Error(`set \\`${propName}\\` is prohibited`);\n default:\n (brick as unknown as Record<string, unknown>)[propName] = propValue;\n }\n }\n}\n\nexport function setValueForStyle(\n style: CSSStyleDeclaration,\n key: string,\n value: unknown\n) {\n if (key.startsWith(\"--\")) {\n style.setProperty(key, value as string);\n } else if (key === \"float\") {\n style.cssFloat = value as string;\n } else {\n (style as unknown as Record<string, unknown>)[key] = value;\n }\n}\n"],"mappings":";;;;;;;AAAO,SAASA,iBAAiBA,CAC/BC,KAAkB,EAClBC,SAA8C,EACxC;EACN,IAAI,CAACA,SAAS,EAAE;IACd;EACF;EACA,KAAK,MAAM,CAACC,QAAQ,EAAEC,SAAS,CAAC,IAAIC,MAAM,CAACC,OAAO,CAACJ,SAAS,CAAC,EAAE;IAC7D,QAAQC,QAAQ;MACd,KAAK,OAAO;MACZ,KAAK,SAAS;QACZ,KAAK,MAAM,CAACI,CAAC,EAAEC,CAAC,CAAC,IAAIH,MAAM,CAACC,OAAO,CACjCF,SACF,CAAC,EAAE;UACD,IAAID,QAAQ,KAAK,OAAO,EAAE;YACxBM,gBAAgB,CAACR,KAAK,CAACS,KAAK,EAAEH,CAAC,EAAEC,CAAC,CAAC;UACrC,CAAC,MAAM;YACJP,KAAK,CAACE,QAAQ,CAAC,CAAwCI,CAAC,CAAC,GAAGC,CAAC;UAChE;QACF;QACA;MACF,KAAK,aAAa;MAClB,KAAK,WAAW;MAChB,KAAK,WAAW;QACd;QACA,MAAM,IAAIG,KAAK,CAAC,SAASR,QAAQ,kBAAkB,CAAC;MACtD;QACGF,KAAK,CAAwCE,QAAQ,CAAC,GAAGC,SAAS;IACvE;EACF;AACF;AAEO,SAASK,gBAAgBA,CAC9BC,KAA0B,EAC1BE,GAAW,EACXC,KAAc,EACd;EACA,IAAID,GAAG,CAACE,UAAU,CAAC,IAAI,CAAC,EAAE;IACxBJ,KAAK,CAACK,WAAW,CAACH,GAAG,EAAEC,KAAe,CAAC;EACzC,CAAC,MAAM,IAAID,GAAG,KAAK,OAAO,EAAE;IAC1BF,KAAK,CAACM,QAAQ,GAAGH,KAAe;EAClC,CAAC,MAAM;IACJH,KAAK,CAAwCE,GAAG,CAAC,GAAGC,KAAK;EAC5D;AACF","ignoreList":[]}
@@ -178,7 +178,7 @@ class DataStore {
178
178
  }
179
179
  if (method === "replace") {
180
180
  item.value = value;
181
- } else {
181
+ } else if (method === "assign") {
182
182
  if ((0, _general.isObject)(item.value)) {
183
183
  Object.assign(item.value, value);
184
184
  } else {
@@ -186,6 +186,19 @@ class DataStore {
186
186
  console.warn(`Non-object current value of "${this.type}.${name}" for "context.assign", try "context.replace" instead.`);
187
187
  item.value = value;
188
188
  }
189
+ } else {
190
+ // method === "set"
191
+ // `context.set` and `state.set` is similar to React's setState,
192
+ // which accepts either a value or an updater function.
193
+ // And if the new value is the same as the current one, do nothing.
194
+ let nextValue = value;
195
+ if (typeof value === "function") {
196
+ nextValue = value(item.value);
197
+ }
198
+ if (Object.is(item.value, nextValue)) {
199
+ return;
200
+ }
201
+ item.value = nextValue;
189
202
  }
190
203
  if (this.batchUpdate) return;
191
204
  item.eventTarget.dispatchEvent(new CustomEvent(this.changeEventType, {