@next-core/brick-kit 2.97.0 → 2.99.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.bundle.js","sources":["../src/core/Bars/BaseBar.ts","../src/core/Bars/AppBar.ts","../src/core/Bars/MenuBar.ts","../src/i18n/constants.ts","../src/internal/getBasePath.ts","../../../node_modules/compare-versions/index.mjs","../src/core/TemplateRegistries.ts","../src/themeAndMode.ts","../../supply/dist/esm/index.js","../src/internal/alias.ts","../src/internal/segue.ts","../src/internal/images.ts","../src/core/CustomTemplates/constants.ts","../src/internal/injected.ts","../src/internal/getNextStateOfUseBrick.ts","../src/transformProperties.ts","../src/internal/devtools.ts","../src/internal/Storage.ts","../src/i18n/locales/en.ts","../src/i18n/locales/zh.ts","../src/i18n/index.ts","../src/core/WidgetI18n.ts","../src/i18nText.ts","../src/auth.ts","../src/internal/checkPermissions.ts","../src/internal/getGeneralGlobals.ts","../src/core/StoryboardFunctionRegistryFactory.ts","../src/core/StoryboardFunctions.ts","../src/core/WidgetFunctions.ts","../src/internal/proxyFactories.ts","../src/internal/evaluate.ts","../src/internal/setProperties.ts","../src/checkIf.ts","../src/internal/menu.ts","../src/core/LazyBrickRegistry.ts","../src/core/Runtime.ts","../src/internal/historyExtended.ts","../src/history.ts","../src/internal/isUnauthenticatedError.ts","../src/handleHttpError.tsx","../src/websocket/WebsocketMessageRequest.ts","../src/websocket/interfaces/index.ts","../src/websocket/WebsocketMessageResponse.ts","../src/websocket/WebSocketService.ts","../src/websocket/WebSocket.ts","../../../node_modules/concat-map/index.js","../../../node_modules/balanced-match/index.js","../../../node_modules/brace-expansion/index.js","../../../node_modules/minimatch/minimatch.js","../src/core/MessageDispatcher.ts","../src/internal/poll.ts","../src/core/FlowApi.ts","../src/internal/bindListeners.ts","../src/core/BrickNode.ts","../../../node_modules/@next-sdk/auth-sdk/dist/index.esm.js","../src/core/processors.ts","../src/providers/CustomApi.ts","../src/core/initAnalytics.ts","../src/core/standaloneBootstrap.ts","../src/core/Kernel.ts","../../../node_modules/@ungap/event-target/esm/index.js","../../brick-types/dist/index.esm.js","../src/internal/misc.ts","../src/internal/getSubStoryboardByRoute.ts","../src/core/CustomTemplates/assertions.ts","../src/core/CustomTemplates/collectRefsInTemplate.ts","../src/core/CustomTemplates/propertyMerge.ts","../src/core/CustomTemplates/collectMergeBases.ts","../src/core/CustomTemplates/expandCustomTemplate.ts","../src/core/CustomTemplates/getTagNameOfCustomTemplate.ts","../src/core/CustomTemplates/handleProxyOfCustomTemplate.ts","../src/core/CustomTemplates/registerCustomTemplate.ts","../src/core/CustomTemplates/CustomTemplateContext.ts","../src/internal/listenOnTrackingContext.ts","../src/core/LocationContext.ts","../src/core/reconciler.ts","../src/internal/makeProviderRefreshable.ts","../src/core/Resolver.ts","../src/internal/shouldBeDefaultCollapsed.ts","../src/core/MockRegistry.ts","../src/core/Router.ts","../src/core/CustomProcessors.ts","../src/runtime.ts","../src/ErrorBoundary.tsx","../src/decorators/utils.ts","../src/decorators/property.ts","../src/decorators/event.ts","../src/decorators/method.ts","../src/useApplyPageTitle.ts","../src/useRecentApps.ts","../src/useCurrentApp.ts","../src/useLocation.ts","../src/BrickAsComponent.tsx","../../../node_modules/rc-pagination/es/locale/zh_CN.js","../../../node_modules/rc-picker/es/locale/zh_CN.js","../../../node_modules/antd/es/time-picker/locale/zh_CN.js","../../../node_modules/antd/es/date-picker/locale/zh_CN.js","../../../node_modules/antd/es/locale/zh_CN.js","../../../node_modules/rc-pagination/es/locale/en_US.js","../../../node_modules/rc-picker/es/locale/en_US.js","../../../node_modules/antd/es/time-picker/locale/en_US.js","../../../node_modules/antd/es/date-picker/locale/en_US.js","../../../node_modules/antd/es/locale/default.js","../src/images/empty-image.png","../src/images/big-empty-image.png","../src/EasyopsEmpty/EasyopsEmpty.tsx","../src/featureFlags.tsx","../src/BrickWrapper.tsx","../src/developHelper.ts","../src/UpdatingElement.ts","../src/elements/ModalElement.ts"],"sourcesContent":["import { MountPoints } from \"@next-core/brick-types\";\nimport { Kernel } from \"../Kernel\";\n\nexport class BaseBar {\n public element: HTMLElement;\n private brick: string;\n\n constructor(private kernel: Kernel, private mountPoint: string) {}\n\n /**\n * Bars will be bootstrapped every time the layout changes.\n *\n * @param brick - The brick name.\n */\n async bootstrap(brick?: string, options?: { testid: string }): Promise<void> {\n // Ignore if the brick is not changed.\n if (this.brick === brick) {\n return;\n }\n this.brick = brick;\n\n // Remove the previous bar element.\n if (this.element) {\n this.element.remove();\n this.element = null;\n }\n // The new brick may be undefined, which indicates no bar element in current layout.\n if (brick) {\n await this.kernel.loadDynamicBricks([brick]);\n this.element = document.createElement(brick);\n if (options?.testid) {\n this.element.dataset.testid = options.testid;\n }\n this.kernel.mountPoints[this.mountPoint as keyof MountPoints].appendChild(\n this.element\n );\n }\n }\n}\n","import { AppBarBrick, BreadcrumbItemConf } from \"@next-core/brick-types\";\nimport { BaseBar } from \"./BaseBar\";\n\nexport class AppBar extends BaseBar {\n // `element` is not available in business layout.\n public declare element: AppBarBrick;\n\n /**\n * 设置页面标题(顶部)\n * @param pageTitle - 标题\n * @deprecated Use `getRuntime().applyPageTitle(...)` or `useApplyPageTitle(...)` instead.\n */\n setPageTitle(pageTitle: string): void {\n if (!this.element) {\n return;\n }\n this.element.pageTitle = pageTitle;\n }\n\n /**\n * 追加面包屑\n * @param breadcrumb - 面包屑配置\n */\n appendBreadcrumb(breadcrumb: BreadcrumbItemConf[]): void {\n if (!this.element) {\n return;\n }\n this.element.breadcrumb = [...this.element.breadcrumb, ...breadcrumb];\n }\n\n /**\n * 设置面包屑\n * @param breadcrumb - 面包屑配置\n */\n setBreadcrumb(breadcrumb: BreadcrumbItemConf[]): void {\n if (!this.element) {\n return;\n }\n this.element.breadcrumb = breadcrumb;\n }\n}\n","import { MenuBarBrick, SidebarMenu } from \"@next-core/brick-types\";\nimport { BaseBar } from \"./BaseBar\";\n\nexport class MenuBar extends BaseBar {\n // `element` is not available in business layout.\n public declare element: MenuBarBrick;\n\n /**\n * 设置应用菜单(左侧菜单)\n * @param menu - 菜单\n */\n setAppMenu(menu: SidebarMenu): void {\n if (!this.element) {\n return;\n }\n this.element.menu = menu;\n }\n\n /**\n * 重置应用菜单(左侧菜单)\n */\n resetAppMenu(): void {\n if (!this.element) {\n return;\n }\n this.element.menu = null;\n this.element.subMenu = null;\n }\n\n /**\n * 折叠/展开应用菜单\n * @param collapsed\n */\n collapse(collapsed: boolean): void {\n if (!this.element) {\n return;\n }\n this.element.collapsed = collapsed;\n }\n\n /**\n * 检查应用菜单是否处于折叠状态\n */\n isCollapsed(): boolean {\n return this.element?.collapsed;\n }\n\n /**\n * 应用菜单已折叠时*软展开/收回*\n * @param collapsed\n */\n softExpand(expanded: boolean): void {\n if (!this.element) {\n return;\n }\n this.element.softExpanded = expanded;\n }\n\n /**\n * 应用菜单是否处于*软展开*状态\n * @param collapsed\n */\n isSoftExpanded(): boolean {\n return this.element?.softExpanded;\n }\n}\n","export const NS_BRICK_KIT = \"brick-kit\";\n\nexport enum K {\n REQUEST_FAILED = \"REQUEST_FAILED\",\n MODAL_OK = \"MODAL_OK\",\n MODAL_CANCEL = \"MODAL_CANCEL\",\n SOMETHING_WENT_WRONG = \"SOMETHING_WENT_WRONG\",\n LOGIN_TIMEOUT_MESSAGE = \"LOGIN_TIMEOUT_MESSAGE\",\n NETWORK_ERROR = \"NETWORK_ERROR\",\n}\n\nexport type Locale = { [key in K]: string };\n","/**\n * Get site's base path, generally will be `/next/` or `/`.\n */\nexport function getBasePath(): string {\n const base = document.querySelector(\"base\");\n const basePath = base ? base.getAttribute(\"href\") : \"/\";\n return basePath;\n}\n","export default function compareVersions(v1, v2) {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0) return r;\n\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n } else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n\n return 0;\n}\n\nexport const validate = (v) =>\n typeof v === 'string' && /^[v\\d]/.test(v) && semver.test(v);\n\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n\n return operatorResMap[operator].includes(res);\n};\n\nexport const satisfies = (v, r) => {\n // if no range operator then \"=\"\n const m = r.match(/^([<>=~^]+)/);\n const op = m ? m[1] : '=';\n\n // if gt/lt/eq then operator compare\n if (op !== '^' && op !== '~') return compare(v, r, op);\n\n // else range of either \"~\" or \"^\" is assumed\n const [v1, v2, v3] = validateAndParse(v);\n const [r1, r2, r3] = validateAndParse(r);\n if (compareStrings(v1, r1) !== 0) return false;\n if (op === '^') {\n return compareSegments([v2, v3], [r2, r3]) >= 0;\n }\n if (compareStrings(v2, r2) !== 0) return false;\n return compareStrings(v3, r3) >= 0;\n};\n\nconst semver =\n /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\nconst validateAndParse = (v) => {\n if (typeof v !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = v.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${v}' received)`);\n }\n match.shift();\n return match;\n};\n\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\n\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\n\nconst forceType = (a, b) =>\n typeof a !== typeof b ? [String(a), String(b)] : [a, b];\n\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b)) return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp) return 1;\n if (ap < bp) return -1;\n return 0;\n};\n\nconst compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || 0, b[i] || 0);\n if (r !== 0) return r;\n }\n return 0;\n};\n\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n};\n\nconst allowedOperators = Object.keys(operatorResMap);\n\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(\n `Invalid operator type, expected string but got ${typeof op}`\n );\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(\n `Invalid operator, expected one of ${allowedOperators.join('|')}`\n );\n }\n};\n","import { BrickTemplateFactory, TemplateRegistry } from \"@next-core/brick-types\";\n\nexport const brickTemplateRegistry: TemplateRegistry<BrickTemplateFactory> = new Map();\n\nexport function registerBrickTemplate(\n name: string,\n factory: BrickTemplateFactory\n): void {\n if (brickTemplateRegistry.has(name)) {\n // eslint-disable-next-line no-console\n console.error(`Brick template of \"${name}\" already registered.`);\n return;\n }\n brickTemplateRegistry.set(name, factory);\n}\n","import { useEffect, useState } from \"react\";\nimport { SiteMode, SiteTheme } from \"@next-core/brick-types\";\n\n// Themes.\nconst DEFAULT_THEME = \"light\";\nlet theme: SiteTheme = DEFAULT_THEME;\n\nexport function setTheme(value: SiteTheme): void {\n if (value !== \"dark\" && value !== \"light\") {\n throw new Error(`Unsupported theme: ${value}`);\n }\n theme = value;\n}\n\nexport function getTheme(): SiteTheme {\n return theme;\n}\n\nexport function getCurrentTheme(): SiteTheme {\n return document.documentElement.dataset.theme as SiteTheme;\n}\n\nexport function applyTheme(value?: SiteTheme): void {\n if (value) {\n setTheme(value);\n } else {\n value = getTheme();\n }\n if (value !== getCurrentTheme()) {\n document.documentElement.dataset.theme = value;\n window.dispatchEvent(\n new CustomEvent<SiteTheme>(\"theme.change\", {\n detail: value,\n })\n );\n }\n}\n\nexport function useCurrentTheme(): SiteTheme {\n const [currentTheme, setCurrentTheme] = useState(getCurrentTheme());\n\n useEffect(() => {\n const listenToThemeChange = (event: Event): void => {\n setCurrentTheme((event as CustomEvent<SiteTheme>).detail);\n };\n window.addEventListener(\"theme.change\", listenToThemeChange);\n return () => {\n window.removeEventListener(\"theme.change\", listenToThemeChange);\n };\n }, []);\n\n return currentTheme;\n}\n\n// Modes.\nconst DEFAULT_MODE = \"default\";\nlet mode: SiteMode = DEFAULT_MODE;\n\nexport function setMode(value: SiteMode): void {\n if (value !== \"dashboard\" && value !== \"default\") {\n throw new Error(`Unsupported mode: ${value}`);\n }\n mode = value;\n}\n\nexport function getMode(): SiteMode {\n return mode;\n}\n\nexport function getCurrentMode(): SiteMode {\n return document.documentElement.dataset.mode as SiteMode;\n}\n\nexport function applyMode(value?: SiteMode): void {\n if (value) {\n setMode(value);\n } else {\n value = getMode();\n }\n if (value !== getCurrentMode()) {\n document.documentElement.dataset.mode = value;\n window.dispatchEvent(\n new CustomEvent<SiteMode>(\"mode.change\", {\n detail: value,\n })\n );\n }\n}\n\nexport function useCurrentMode(): SiteMode {\n const [currentMode, setCurrentMode] = useState(getCurrentMode());\n\n useEffect(() => {\n const listenToModeChange = (event: Event): void => {\n setCurrentMode((event as CustomEvent<SiteMode>).detail);\n };\n window.addEventListener(\"mode.change\", listenToModeChange);\n return () => {\n window.removeEventListener(\"mode.change\", listenToModeChange);\n };\n }, []);\n\n return currentMode;\n}\n","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport lodash from \"lodash\";\nimport moment from \"moment\";\nimport { pipes } from \"@next-core/pipes\";\nexport function supply(attemptToVisitGlobals, providedGlobalVariables) {\n var globalVariables = _objectSpread({}, providedGlobalVariables); // Allow limited browser builtin values.\n\n\n globalVariables[\"undefined\"] = undefined;\n\n for (var variableName of attemptToVisitGlobals) {\n if (!Object.prototype.hasOwnProperty.call(globalVariables, variableName)) {\n var variable = supplyIndividual(variableName);\n\n if (variable !== undefined) {\n globalVariables[variableName] = variable;\n }\n }\n }\n\n return globalVariables;\n}\nvar shouldOmitInLodash = new Set([// Omit all mutable methods from lodash.\n// But allow sequence methods like `_.chain`.\n\"fill\", \"pull\", \"pullAll\", \"pullAllBy\", \"pullAllWith\", \"pullAt\", \"remove\", \"reverse\", \"assign\", \"assignIn\", \"assignInWith\", \"assignWith\", \"defaults\", \"defaultsDeep\", \"merge\", \"mergeWith\", \"set\", \"setWith\", \"unset\", \"update\", \"updateWith\",\n/**\n * Ignore `Function` methods from lodash, too.\n * There are chances to invoke `Object.assign`, etc.\n *\n * E.g.:\n *\n * ```\n * _.wrap(_.method('constructor.assign',{b:2},{b:3}),(func,...a) => func(...a))({})\n * ```\n */\n\"after\", \"ary\", \"before\", \"bind\", \"bindKey\", \"curry\", \"curryRight\", \"debounce\", \"defer\", \"delay\", \"flip\", \"memoize\", \"negate\", \"once\", \"overArgs\", \"partial\", \"partialRight\", \"rearg\", \"rest\", \"spread\", \"throttle\", \"unary\", \"wrap\"]); // Omit all mutable methods from moment.\n\nvar shouldOmitInMoment = new Set([\"lang\", \"langData\", \"locale\", \"localeData\", \"defineLocale\", \"updateLocale\", \"updateOffset\"]);\nvar allowedGlobalObjects = new Set([\"Array\", \"Boolean\", \"Date\", \"Infinity\", \"JSON\", \"Math\", \"NaN\", \"Number\", \"String\", \"decodeURI\", \"decodeURIComponent\", \"encodeURI\", \"encodeURIComponent\", \"isFinite\", \"isNaN\", \"parseFloat\", \"parseInt\", \"Map\", \"Set\", \"URLSearchParams\", \"WeakMap\", \"WeakSet\", \"atob\", \"btoa\"]);\n\nfunction supplyIndividual(variableName) {\n switch (variableName) {\n case \"Object\":\n // Do not allow mutable methods like `Object.assign`.\n return delegateMethods(Object, [\"entries\", \"fromEntries\", \"keys\", \"values\"]);\n\n case \"_\":\n return Object.fromEntries(Object.entries(lodash).filter(entry => !shouldOmitInLodash.has(entry[0])));\n\n case \"moment\":\n return Object.assign(function () {\n return moment(...arguments);\n }, Object.fromEntries(Object.entries(moment).filter(entry => !shouldOmitInMoment.has(entry[0]))));\n\n case \"PIPES\":\n return pipes;\n\n case \"location\":\n return {\n href: location.href,\n origin: location.origin\n };\n\n case \"TAG_URL\":\n return tagUrlFactory(true);\n\n case \"SAFE_TAG_URL\":\n return tagUrlFactory();\n\n default:\n if (allowedGlobalObjects.has(variableName)) {\n return window[variableName];\n }\n\n }\n}\n\nfunction delegateMethods(target, methods) {\n return Object.fromEntries(methods.map(method => [method, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return target[method].apply(target, args);\n }]));\n}\n\n/**\n * Pass `ignoreSlashes` as `true` to encode all tagged expressions\n * as URL components, except for `/` which maybe used in `APP.homepage`.\n *\n * Otherwise encode all tagged expressions as URL components.\n * This will encode `/` as `%2F`. So do not use it directly\n * with `APP.homepage` as in template expressions.\n *\n * @example\n *\n * ```js\n * TAG_URL`${APP.homepage}/list?q=${q}&redirect=${redirect}`\n * ```\n *\n * ```js\n * SAFE_TAG_URL`file/${path}?q=${q}`\n * // `path` will be fully transformed by `encodeURIComponent`.\n * ```\n *\n * ```js\n * // Wrap `APP.homepage` outside of `SAFE_TAG_URL`.\n * `${APP.homepage}/${SAFE_TAG_URL`file/${path}?q=${q}`}`\n * ```\n */\nfunction tagUrlFactory(ignoreSlashes) {\n return function (strings) {\n for (var _len2 = arguments.length, partials = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n partials[_key2 - 1] = arguments[_key2];\n }\n\n var result = [];\n strings.forEach((str, index) => {\n result.push(str);\n\n if (index < partials.length) {\n result.push(ignoreSlashes ? String(partials[index]).replace(/[^/]+/g, p => encodeURIComponent(p)) : encodeURIComponent(String(partials[index])));\n }\n });\n return result.join(\"\");\n };\n}\n//# sourceMappingURL=index.js.map","import { MicroApp } from \"@next-core/brick-types\";\nimport { toPath, computeRealRoutePath } from \"@next-core/brick-utils\";\n\nexport function getUrlByAliasFactory(app: MicroApp) {\n return function getUrlByAlias(\n alias: string,\n pathParams?: Record<string, any>,\n query?: Record<string, any>\n ): string {\n if (!app?.$$routeAliasMap.has(alias)) {\n // eslint-disable-next-line no-console\n throw new Error(`Route alias not found: ${alias}`);\n }\n const routeConf = app.$$routeAliasMap.get(alias);\n let url = toPath(\n computeRealRoutePath(routeConf.path, app) as string,\n pathParams\n );\n if (query) {\n const urlSearchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query as Record<string, any>)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n urlSearchParams.append(key, item);\n }\n } else if (value !== undefined && value !== null && value !== \"\") {\n urlSearchParams.set(key, value);\n }\n }\n const queryString = urlSearchParams.toString();\n if (queryString.length > 0) {\n url += `?${queryString}`;\n }\n }\n return url;\n };\n}\n","import { MicroApp, SeguesConf } from \"@next-core/brick-types\";\nimport { hasOwnProperty } from \"@next-core/brick-utils\";\nimport { getUrlByAliasFactory } from \"./alias\";\n\nexport function getUrlBySegueFactory(app: MicroApp, segues: SeguesConf) {\n return function getUrlBySegue(\n segueId: string,\n pathParams?: Record<string, any>,\n query?: Record<string, any>\n ): string {\n if (!hasOwnProperty(segues, segueId)) {\n // eslint-disable-next-line no-console\n throw new Error(`Segue not found: ${segueId}`);\n }\n const segue = segues[segueId];\n return getUrlByAliasFactory(app)(segue.target, pathParams, query);\n };\n}\n","export interface ImagesFactory {\n get(name: string): string;\n}\n\nexport function imagesFactory(\n appId: string,\n isBuildPush?: boolean\n): ImagesFactory {\n return {\n get(name) {\n return isBuildPush\n ? `api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/next-builder/object/${name}`\n : `${window.PUBLIC_ROOT ?? \"\"}micro-apps/${appId}/images/${name}`;\n },\n };\n}\n\nexport function widgetImagesFactory(widgetId: string): ImagesFactory {\n return {\n get(name) {\n return `${\n window.PUBLIC_ROOT ?? \"\"\n }bricks/${widgetId}/dist/assets/${name}`;\n },\n };\n}\n","import {\n CustomTemplate,\n ProbablyRuntimeBrick,\n RefForProxy,\n RuntimeBrickConf,\n RuntimeBrickElement,\n TemplateRegistry,\n} from \"@next-core/brick-types\";\nimport { RefObject } from \"react\";\n\nexport const customTemplateRegistry: TemplateRegistry<CustomTemplate> =\n new Map();\nexport const appRegistered = new Set<string>();\n\nexport const symbolForComputedPropsFromProxy = Symbol.for(\n \"tpl.computedPropsFromProxy\"\n);\nexport const symbolForRefForProxy = Symbol.for(\"tpl.refForProxy\");\nexport const symbolForParentTemplate = Symbol.for(\"tpl.parentTemplate\");\nexport const symbolForTplContextId = Symbol.for(\"tpl.contextId\");\nexport const symbolForParentRefForUseBrickInPortal = Symbol.for(\n \"parentRefForUseBrickInPortal\"\n);\n\nexport interface RuntimeBrickConfWithTplSymbols extends RuntimeBrickConf {\n [symbolForComputedPropsFromProxy]?: Record<string, any>;\n [symbolForRefForProxy]?: RefForProxy;\n [symbolForParentTemplate]?: ProbablyRuntimeBrick;\n [symbolForTplContextId]?: string;\n}\n\nexport interface RuntimeBrickElementWithTplSymbols extends RuntimeBrickElement {\n [symbolForParentTemplate]?: RuntimeBrickElementWithTplSymbols;\n [symbolForParentRefForUseBrickInPortal]?: RefObject<HTMLElement>;\n}\n","import { isObject } from \"@next-core/brick-utils\";\nimport { isPreEvaluated } from \"./evaluate\";\nimport { symbolForTplContextId } from \"../core/CustomTemplates/constants\";\n\nlet injected = new WeakSet();\n\n// The injected (or transformed) result should never be *injected* again.\n// So does the fetched data from a remote api.\nexport function recursiveMarkAsInjected(value: any): void {\n if (isObject(value)) {\n if (!haveBeenInjected(value)) {\n injected.add(value);\n if (Array.isArray(value)) {\n value.forEach(recursiveMarkAsInjected);\n } else {\n // Only mark pure objects.\n const proto = Object.getPrototypeOf(value);\n if (!proto || proto.constructor === Object) {\n Object.values(value).forEach(recursiveMarkAsInjected);\n }\n }\n }\n }\n}\n\nexport function haveBeenInjected(object: any): boolean {\n return injected.has(object);\n}\n\nexport function resetAllInjected(): void {\n injected = new WeakSet();\n}\n\nexport function cloneDeepWithInjectedMark<T>(value: T): T {\n if (isObject(value) && !isPreEvaluated(value)) {\n const clone = Array.isArray(value)\n ? (value as unknown[]).map((item) => cloneDeepWithInjectedMark(item))\n : Object.fromEntries(\n Object.entries(value).map(([k, v]) => {\n /**\n * object.entries会丢失symbol属性\n * 对useBrick做特殊处理\n */\n if (k === \"useBrick\") {\n const result: any = cloneDeepWithInjectedMark(v);\n if (Array.isArray(v)) {\n for (let i = 0; i < v.length; i++) {\n if (v[i][symbolForTplContextId])\n result[i][symbolForTplContextId] =\n v[i][symbolForTplContextId];\n }\n } else {\n if (v[symbolForTplContextId])\n result[symbolForTplContextId] = v[symbolForTplContextId];\n }\n return [k, v];\n } else {\n return [k, cloneDeepWithInjectedMark(v)];\n }\n })\n );\n if (haveBeenInjected(value)) {\n injected.add(clone);\n }\n return clone as typeof value;\n }\n return value;\n}\n","export enum StateOfUseBrick {\n INITIAL,\n USE_BRICK,\n USE_BRICK_ITEM,\n USE_BRICK_PROPERTIES,\n USE_BRICK_TRANSFORM,\n USE_BRICK_EVENTS,\n USE_BRICK_IF,\n USE_BRICK_SLOTS,\n USE_BRICK_SLOTS_ITEM,\n USE_BRICK_SLOTS_ITEM_BRICKS,\n USE_BRICK_SLOTS_ITEM_BRICKS_ITEM,\n USE_BRICK_LIFECYCLE,\n USE_BRICK_LIFECYCLE_USERESOLVES,\n USE_BRICK_LIFECYCLE_USERESOLVES_ITEM,\n USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_TRANSFORM,\n USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT,\n USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT_TRANSFORM,\n}\n\nexport function isLazyContentInUseBrick(state: StateOfUseBrick): boolean {\n switch (state) {\n case StateOfUseBrick.USE_BRICK_PROPERTIES:\n case StateOfUseBrick.USE_BRICK_TRANSFORM:\n case StateOfUseBrick.USE_BRICK_EVENTS:\n case StateOfUseBrick.USE_BRICK_IF:\n case StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_TRANSFORM:\n case StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT_TRANSFORM:\n return true;\n }\n return false;\n}\n\nexport function getNextStateOfUseBrick(\n state: StateOfUseBrick,\n isArray?: boolean,\n key?: string\n): StateOfUseBrick {\n if (isLazyContentInUseBrick(state)) {\n return state;\n }\n if (isArray) {\n switch (state) {\n case StateOfUseBrick.USE_BRICK:\n return StateOfUseBrick.USE_BRICK_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM;\n case StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES:\n return StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM;\n }\n } else {\n switch (state) {\n case StateOfUseBrick.INITIAL:\n if (key === \"useBrick\") {\n return StateOfUseBrick.USE_BRICK;\n }\n break;\n case StateOfUseBrick.USE_BRICK:\n case StateOfUseBrick.USE_BRICK_ITEM:\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM: {\n switch (key) {\n case \"properties\":\n return StateOfUseBrick.USE_BRICK_PROPERTIES;\n case \"transform\":\n return StateOfUseBrick.USE_BRICK_TRANSFORM;\n case \"events\":\n return StateOfUseBrick.USE_BRICK_EVENTS;\n case \"slots\":\n return StateOfUseBrick.USE_BRICK_SLOTS;\n case \"if\":\n return StateOfUseBrick.USE_BRICK_IF;\n case \"lifeCycle\":\n return StateOfUseBrick.USE_BRICK_LIFECYCLE;\n }\n break;\n }\n case StateOfUseBrick.USE_BRICK_SLOTS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM:\n if (key === \"bricks\") {\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n }\n break;\n case StateOfUseBrick.USE_BRICK_LIFECYCLE:\n if (key === \"useResolves\") {\n return StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES;\n }\n break;\n case StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM: {\n switch (key) {\n case \"transform\":\n return StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_TRANSFORM;\n case \"onReject\":\n return StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT;\n }\n break;\n }\n case StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT:\n if (key === \"transform\") {\n return StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT_TRANSFORM;\n }\n break;\n }\n }\n return StateOfUseBrick.INITIAL;\n}\n","import { get, set } from \"lodash\";\nimport { GeneralTransform, TransformMap } from \"@next-core/brick-types\";\nimport {\n isObject,\n transform,\n isEvaluable,\n trackContext,\n transformAndInject,\n} from \"@next-core/brick-utils\";\nimport {\n evaluate,\n EvaluateOptions,\n isPreEvaluated,\n shouldDismissRecursiveMarkingInjected,\n EvaluateRuntimeContext,\n} from \"./internal/evaluate\";\nimport { haveBeenInjected, recursiveMarkAsInjected } from \"./internal/injected\";\nimport { devtoolsHookEmit } from \"./internal/devtools\";\nimport { setRealProperties } from \"./internal/setProperties\";\nimport {\n getNextStateOfUseBrick,\n isLazyContentInUseBrick,\n StateOfUseBrick,\n} from \"./internal/getNextStateOfUseBrick\";\nimport { TrackingContextItem } from \"./internal/listenOnTrackingContext\";\nimport { _internalApiGetCurrentContext } from \"./core/Runtime\";\nimport { symbolForTplContextId } from \"./core/CustomTemplates/constants\";\n\ninterface TransformOptions {\n isReTransformation?: boolean;\n transformationId?: number;\n allowInject?: boolean;\n}\n\ninterface DoTransformOptions {\n evaluateOptions?: EvaluateOptions;\n trackingContextList?: TrackingContextItem[];\n allowInject?: boolean;\n getTplVariables?: () => Record<string, unknown>;\n $$lazyForUseBrick?: boolean;\n $$stateOfUseBrick?: StateOfUseBrick;\n}\n\n/** @internal */\nexport function transformElementProperties(\n element: HTMLElement,\n data: unknown,\n to: GeneralTransform,\n from?: string | string[],\n mapArray?: boolean | \"auto\"\n): void {\n const result = preprocessTransformProperties(data, to, from, mapArray);\n setRealProperties(element, result, true);\n}\n\n/** @internal */\nexport function transformProperties(\n props: Record<string, unknown>,\n data: unknown,\n to: GeneralTransform,\n from?: string | string[],\n mapArray?: boolean | \"auto\",\n options?: {\n allowInject?: boolean;\n }\n): Record<string, unknown> {\n const result = preprocessTransformProperties(\n data,\n to,\n from,\n mapArray,\n options\n );\n for (const [propName, propValue] of Object.entries(result)) {\n set(props, propName, propValue);\n }\n return props;\n}\n\n/** @internal */\nexport function doTransform(\n data: unknown,\n to: unknown,\n options?: DoTransformOptions\n): unknown {\n const preEvaluated = isPreEvaluated(to);\n if (preEvaluated || typeof to === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`,\n // are kept and to be transformed later.\n const lazy =\n options?.$$lazyForUseBrick &&\n isLazyContentInUseBrick(options.$$stateOfUseBrick);\n if (lazy) {\n // The current data context is not memoized, since a new data context\n // should always be provided before later transformations.\n return to;\n }\n\n let result: unknown;\n let dismissRecursiveMarkingInjected = false;\n if (preEvaluated || isEvaluable(to as string)) {\n const runtimeContext: EvaluateRuntimeContext = {\n data,\n };\n if (options?.getTplVariables)\n runtimeContext.getTplVariables = options.getTplVariables;\n result = evaluate(to as string, runtimeContext, options?.evaluateOptions);\n dismissRecursiveMarkingInjected = shouldDismissRecursiveMarkingInjected(\n to as string\n );\n } else {\n result = options?.allowInject\n ? transformAndInject(\n to as string,\n data,\n _internalApiGetCurrentContext()\n )\n : transform(to as string, data);\n }\n if (!dismissRecursiveMarkingInjected) {\n recursiveMarkAsInjected(result);\n }\n return result;\n }\n\n if (!isObject(to) || haveBeenInjected(to)) {\n return to;\n }\n\n if (Array.isArray(to)) {\n const nextOptions = getNextDoTransformOptions(options, true);\n return to.map((item) => doTransform(data, item, nextOptions));\n }\n\n return Object.fromEntries(\n Object.entries(to).map(([k, v]) => {\n if (Array.isArray(options?.trackingContextList) && isEvaluable(v)) {\n const contextNames = trackContext(v);\n if (contextNames) {\n options.trackingContextList.push({\n contextNames,\n propName: k,\n propValue: v,\n });\n }\n }\n if (k === \"useBrick\") {\n /**\n * 在locationContext中已经为useBrick添加 SymbolTplContextId\n * 在此如果通过Object.enteries遍历useBrick会出现 id丢失对情况,\n * 故需要对 SymbolTplContextId 特殊处理\n */\n const result: any = doTransform(\n data,\n v,\n getNextDoTransformOptions(options, false, k)\n );\n if (Array.isArray(v)) {\n for (let i = 0; i < v.length; i++) {\n if (v[i][symbolForTplContextId])\n result[i][symbolForTplContextId] = v[i][symbolForTplContextId];\n }\n } else {\n if (v[symbolForTplContextId])\n result[symbolForTplContextId] = v[symbolForTplContextId];\n }\n return [k, result];\n } else {\n return [\n k,\n doTransform(data, v, getNextDoTransformOptions(options, false, k)),\n ];\n }\n })\n );\n}\n\n/** @internal */\nexport function reTransformForDevtools(\n transformationId: number,\n data: unknown,\n to: GeneralTransform,\n from?: string | string[],\n mapArray?: boolean | \"auto\",\n allowInject?: boolean\n): void {\n try {\n preprocessTransformProperties(data, to, from, mapArray, {\n isReTransformation: true,\n transformationId,\n allowInject,\n });\n } catch (error) {\n devtoolsHookEmit(\"re-transformation\", {\n id: transformationId,\n error: error.message,\n detail: {\n transform: to,\n data,\n options: { from, mapArray, allowInject },\n },\n });\n }\n}\n\n/** @internal */\nexport function preprocessTransformProperties(\n data: unknown,\n to: GeneralTransform,\n from?: string | string[],\n mapArray?: boolean | \"auto\",\n options?: TransformOptions\n): Record<string, unknown> {\n const props: Record<string, unknown> = {};\n const processedData = from ? get(data, from) : data;\n\n if (Array.isArray(to)) {\n for (const item of to) {\n pipeableTransform(\n props,\n processedData,\n item.to,\n item.from,\n item.mapArray,\n {\n allowInject: options?.allowInject,\n }\n );\n }\n } else {\n pipeableTransform(props, processedData, to, undefined, mapArray, {\n allowInject: options?.allowInject,\n });\n }\n const detail = {\n transform: to,\n data,\n options: { from, mapArray, allowInject: options?.allowInject },\n result: props,\n };\n if (options?.isReTransformation) {\n devtoolsHookEmit(\"re-transformation\", {\n id: options.transformationId,\n detail,\n });\n } else {\n devtoolsHookEmit(\"transformation\", detail);\n }\n return props;\n}\n\nfunction pipeableTransform(\n props: Record<string, unknown>,\n data: unknown,\n to: string | TransformMap,\n from?: string | string[],\n mapArray?: boolean | \"auto\",\n options?: {\n allowInject?: boolean;\n }\n): void {\n if (!to) {\n // Do nothing if `to` is falsy.\n return;\n }\n\n let fromData = from ? get(data, from) : data;\n\n let isArray = Array.isArray(fromData);\n if (!isArray && mapArray === true) {\n isArray = true;\n fromData = [fromData];\n } else if (isArray && mapArray === false) {\n isArray = false;\n }\n\n if (typeof to === \"string\") {\n props[to] = fromData;\n return;\n }\n\n for (const [transformedPropName, transformTo] of Object.entries(to)) {\n // If `fromData` is an array, mapping it's items.\n props[transformedPropName] = isArray\n ? (fromData as unknown[]).map((item) =>\n doTransform(item, transformTo, options)\n )\n : doTransform(fromData, transformTo, options);\n }\n}\n\n/** @internal */\nexport function transformIntermediateData(\n data: unknown,\n to: GeneralTransform,\n from?: string | string[],\n mapArray?: boolean | \"auto\"\n): unknown {\n const intermediateData = from ? get(data, from) : data;\n if (!to) {\n return intermediateData;\n }\n return transformProperties({}, intermediateData, to, undefined, mapArray);\n}\n\nfunction getNextDoTransformOptions(\n options: DoTransformOptions,\n isArray: boolean,\n key?: string\n): DoTransformOptions {\n return options\n ? {\n ...options,\n // Collect tracking context in first level only.\n trackingContextList: undefined,\n $$stateOfUseBrick: options.$$lazyForUseBrick\n ? getNextStateOfUseBrick(\n options.$$stateOfUseBrick ?? StateOfUseBrick.INITIAL,\n isArray,\n key\n )\n : undefined,\n }\n : options;\n}\n","import { evaluate } from \"./evaluate\";\nimport { reTransformForDevtools } from \"../transformProperties\";\n\nexport const MESSAGE_SOURCE_PANEL = \"brick-next-devtools-panel\";\nexport const EVALUATION_EDIT = \"devtools-evaluation-edit\";\nexport const TRANSFORMATION_EDIT = \"devtools-transformation-edit\";\n\ninterface DevtoolsHookContainer {\n __BRICK_NEXT_DEVTOOLS_HOOK__?: DevtoolsHook;\n}\n\ninterface DevtoolsHook {\n emit: (message: any) => void;\n restoreDehydrated: (value: unknown) => any;\n}\n\ninterface EditEvaluationPayload {\n raw: string;\n context: {\n data?: any;\n event?: any;\n };\n id: number;\n}\n\ninterface EditEvaluationPayload {\n type: typeof EVALUATION_EDIT;\n raw: string;\n context: {\n data?: any;\n event?: any;\n };\n id: number;\n}\n\ninterface EditTransformationPayload {\n type: typeof TRANSFORMATION_EDIT;\n data: any;\n transform: any;\n options: {\n from?: string | string[];\n mapArray?: boolean | \"auto\";\n allowInject?: boolean;\n };\n id: number;\n}\n\n/* istanbul ignore next */\nexport function devtoolsHookEmit(type: string, payload?: unknown): void {\n Promise.resolve().then(() => {\n getDevHook()?.emit?.({\n type,\n payload,\n });\n });\n}\n\nexport function listenDevtools(): void {\n window.addEventListener(\"message\", (event: MessageEvent): void => {\n if (event.data?.source !== MESSAGE_SOURCE_PANEL) {\n return;\n }\n const payload: EditEvaluationPayload | EditTransformationPayload =\n event.data.payload;\n if (payload?.type === EVALUATION_EDIT) {\n const { raw, context, id } = payload;\n evaluate(\n raw,\n {\n data: context.data,\n event: restoreDehydrated(context.event),\n },\n {\n isReEvaluation: true,\n evaluationId: id,\n }\n );\n } else if (payload?.type === TRANSFORMATION_EDIT) {\n const {\n data,\n transform,\n id,\n options: { from, mapArray, allowInject },\n } = payload;\n reTransformForDevtools(id, data, transform, from, mapArray, allowInject);\n }\n });\n}\n\nexport function getDevHook(): DevtoolsHook {\n return (window as DevtoolsHookContainer).__BRICK_NEXT_DEVTOOLS_HOOK__;\n}\n\nfunction restoreDehydrated(value: unknown): any {\n return getDevHook()?.restoreDehydrated(value) ?? value;\n}\n","export function getItemFactory(storageType: \"local\" | \"session\"): any {\n return function (name: string) {\n const storage = storageType === \"local\" ? localStorage : sessionStorage;\n return JSON.parse(storage.getItem(name));\n };\n}\n","import { Locale, K } from \"../constants\";\n\nconst locale: Locale = {\n [K.REQUEST_FAILED]: \"Request Failed\",\n [K.MODAL_OK]: \"Ok\",\n [K.MODAL_CANCEL]: \"Cancel\",\n [K.SOMETHING_WENT_WRONG]: \"Something went wrong!\",\n [K.LOGIN_TIMEOUT_MESSAGE]:\n \"You haven't logged in or your login session has expired. Login right now?\",\n [K.NETWORK_ERROR]: \"Network error, please check your network.\",\n};\n\nexport default locale;\n","import { Locale, K } from \"../constants\";\n\nconst locale: Locale = {\n [K.REQUEST_FAILED]: \"请求失败\",\n [K.MODAL_OK]: \"确认\",\n [K.MODAL_CANCEL]: \"取消\",\n [K.SOMETHING_WENT_WRONG]: \"出现了一些问题!\",\n [K.LOGIN_TIMEOUT_MESSAGE]: \"您还未登录或登录信息已过期,现在重新登录?\",\n [K.NETWORK_ERROR]: \"网络错误,请检查您的网络连接。\",\n};\n\nexport default locale;\n","import i18next from \"i18next\";\nimport { NS_BRICK_KIT } from \"./constants\";\nimport en from \"./locales/en\";\nimport zh from \"./locales/zh\";\n\n/** @internal */\nexport const initI18n = (): void => {\n i18next.addResourceBundle(\"en\", NS_BRICK_KIT, en);\n i18next.addResourceBundle(\"zh\", NS_BRICK_KIT, zh);\n};\n\n/** @internal */\nexport function getI18nNamespace(type: \"app\" | \"widget\", id: string): string {\n return `$${type}-${id}`;\n}\n","import i18next, { getFixedT, TFunction } from \"i18next\";\nimport { MetaI18n } from \"@next-core/brick-types\";\nimport { getI18nNamespace } from \"../i18n\";\n\nexport function registerWidgetI18n(widgetId: string, i18n: MetaI18n): void {\n const ns = getI18nNamespace(\"widget\", widgetId);\n Object.entries(i18n).forEach(([lang, resources]) => {\n i18next.addResourceBundle(lang, ns, resources);\n });\n}\n\nexport function widgetI18nFactory(widgetId: string): TFunction {\n return getFixedT(null, getI18nNamespace(\"widget\", widgetId));\n}\n","import i18next from \"i18next\";\nimport { hasOwnProperty } from \"@next-core/brick-utils\";\nimport { I18nData } from \"@next-core/brick-types\";\n\nexport function i18nText(data: I18nData): string {\n if (!data) {\n return;\n }\n const language = i18next.language ?? \"zh-CN\";\n // First, make a perfect match.\n if (hasOwnProperty(data, language)) {\n return data[language];\n }\n // https://en.wikipedia.org/wiki/IETF_language_tag\n const primaryLanguage = language.split(\"-\")[0];\n if (primaryLanguage !== language) {\n // Then, match the primary language (which omits other subtags).\n // E.g., match `zh` if the current language is `zh-CN`.\n return hasOwnProperty(data, primaryLanguage)\n ? data[primaryLanguage]\n : undefined;\n }\n // At last, match the first key which starts with the primary language,\n // if the current language contains primary subtag only.\n // E.g., match `zh-CN` if the current language is `zh`.\n const prefix = `${primaryLanguage}-`;\n for (const key of Object.keys(data)) {\n if (key.startsWith(prefix)) {\n return data[key];\n }\n }\n}\n","import { AuthInfo } from \"@next-core/brick-types\";\nimport { userAnalytics } from \"@next-core/easyops-analytics\";\nimport { resetPermissionPreChecks } from \"./internal/checkPermissions\";\n\nconst auth: AuthInfo = {};\n\n/** @internal */\nexport function authenticate(newAuth: AuthInfo): void {\n Object.assign(auth, {\n org: newAuth.org,\n username: newAuth.username,\n userInstanceId: newAuth.userInstanceId,\n loginFrom: newAuth.loginFrom,\n accessRule: newAuth.accessRule,\n isAdmin: newAuth.isAdmin,\n });\n\n // re-init analytics to set user_id\n if (userAnalytics.initialized) {\n userAnalytics.setUserId(newAuth.userInstanceId);\n }\n}\n\n/**\n * 获取当前登录认证信息。\n *\n * @returns 当前登录认证信息。\n */\nexport function getAuth(): AuthInfo {\n return {\n ...auth,\n };\n}\n\n/** @internal */\nexport function logout(): void {\n auth.org = undefined;\n auth.username = undefined;\n auth.userInstanceId = undefined;\n auth.accessRule = undefined;\n auth.isAdmin = undefined;\n resetPermissionPreChecks();\n\n // re-init analytics to clear user_id\n userAnalytics.setUserId();\n}\n\n/**\n * 查看当前是否已登录。\n *\n * @returns 当前是否已登录。\n */\nexport function isLoggedIn(): boolean {\n return auth.username !== undefined;\n}\n","import { difference } from \"lodash\";\nimport { scanPermissionActionsInStoryboard } from \"@next-core/brick-utils\";\nimport { Storyboard } from \"@next-core/brick-types\";\nimport { PermissionApi_validatePermissions } from \"@next-sdk/micro-app-sdk\";\nimport { getAuth } from \"../auth\";\n\ntype PermissionStatus = \"authorized\" | \"unauthorized\" | \"undefined\";\n\nconst permissionMap = new Map<string, PermissionStatus>();\n\nexport async function preCheckPermissions(\n storyboard: Storyboard\n): Promise<void> {\n const usedActions = scanPermissionActionsInStoryboard(storyboard);\n await validatePermissions(usedActions);\n}\n\nexport async function validatePermissions(\n usedActions: string[]\n): Promise<void> {\n // Do not request known actions.\n const actions = difference(usedActions, Array.from(permissionMap.keys()));\n if (actions.length === 0) {\n return;\n }\n try {\n const result = await PermissionApi_validatePermissions({ actions });\n for (const item of result.actions) {\n permissionMap.set(item.action, item.authorizationStatus);\n if (item.authorizationStatus === \"undefined\") {\n // eslint-disable-next-line no-console\n console.error(`Undefined permission action: \"${item.action}\"`);\n }\n }\n } catch (error) {\n // Allow pre-check to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Pre-check permissions failed\", error);\n }\n}\n\n/**\n * Check the current logged-in user whether to have all\n * permissions of actions passed to it.\n *\n * @param actions - Required permission actions.\n */\nexport function checkPermissions(...actions: string[]): boolean {\n if (getAuth().isAdmin) {\n return true;\n }\n\n for (const action of actions) {\n // Only **exclusively authorized** permissions are ok.\n // Those scenarios below will fail:\n // - unauthorized actions (pre-check results)\n // - undefined actions (pre-check results)\n // - Un-pre-checked or pre-check failed\n switch (permissionMap.get(action)) {\n case \"unauthorized\":\n case \"undefined\":\n return false;\n case undefined:\n // eslint-disable-next-line no-console\n console.error(\n `Un-checked permission action: \"${action}\", please make sure the permission to check is defined in permissionsPreCheck.`\n );\n return false;\n }\n }\n return true;\n}\n\n/**\n * Reset permission pre-checks after logged-out.\n */\nexport function resetPermissionPreChecks(): void {\n permissionMap.clear();\n}\n","import { getFixedT } from \"i18next\";\nimport { identity } from \"lodash\";\nimport type { MicroApp } from \"@next-core/brick-types\";\nimport { widgetI18nFactory } from \"../core/WidgetI18n\";\nimport { i18nText } from \"../i18nText\";\nimport { getI18nNamespace } from \"../i18n\";\nimport { ImagesFactory, imagesFactory, widgetImagesFactory } from \"./images\";\nimport { getBasePath } from \"./getBasePath\";\nimport { checkPermissions } from \"./checkPermissions\";\n\nexport interface GeneralGlobalsOptions {\n collectCoverage?: unknown;\n widgetId?: string;\n app?: PartialMicroApp;\n storyboardFunctions?: unknown;\n}\n\nexport type PartialMicroApp = Pick<MicroApp, \"id\" | \"isBuildPush\">;\n\n// `GeneralGlobals` are globals which are page-state-agnostic,\n// thus they can be used both in storyboard expressions and functions.\nexport function getGeneralGlobals(\n attemptToVisitGlobals: Set<string>,\n options: GeneralGlobalsOptions\n): Record<string, unknown> {\n const globalVariables: Record<string, unknown> = {};\n for (const variableName of attemptToVisitGlobals) {\n const variable = getIndividualGlobal(variableName, options);\n if (variable !== undefined) {\n globalVariables[variableName] = variable;\n }\n }\n return globalVariables;\n}\n\nfunction getIndividualGlobal(\n variableName: string,\n { collectCoverage, widgetId, app, storyboardFunctions }: GeneralGlobalsOptions\n): unknown {\n switch (variableName) {\n case \"BASE_URL\":\n return collectCoverage ? \"/next\" : getBasePath().replace(/\\/$/, \"\");\n case \"FN\":\n return storyboardFunctions;\n case \"IMG\":\n return collectCoverage\n ? fakeImageFactory()\n : widgetId\n ? widgetImagesFactory(widgetId)\n : imagesFactory(app.id, app.isBuildPush);\n case \"I18N\":\n return collectCoverage\n ? identity\n : widgetId\n ? widgetI18nFactory(widgetId)\n : getFixedT(null, getI18nNamespace(\"app\", app.id));\n case \"I18N_TEXT\":\n return collectCoverage ? fakeI18nText : i18nText;\n case \"PERMISSIONS\":\n return {\n check: collectCoverage ? fakeCheckPermissions : checkPermissions,\n };\n }\n}\n\nfunction fakeI18nText(data: Record<string, string>): string {\n return data?.en;\n}\n\nfunction fakeImageFactory(): ImagesFactory {\n return {\n get(name: string) {\n return `mock/images/${name}`;\n },\n };\n}\n\nfunction fakeCheckPermissions(): boolean {\n return true;\n}\n","import {\n MicroApp,\n SimpleFunction,\n StoryboardFunction,\n} from \"@next-core/brick-types\";\nimport { cook, precookFunction, EstreeNode } from \"@next-core/brick-utils\";\nimport { supply } from \"@next-core/supply\";\nimport { getGeneralGlobals } from \"../internal/getGeneralGlobals\";\n\n/** @internal */\nexport type ReadonlyStoryboardFunctions = Readonly<\n Record<string, SimpleFunction>\n>;\n\n/** @internal */\nexport type StoryboardFunctionPatch = Pick<\n StoryboardFunction,\n \"source\" | \"typescript\"\n>;\n\n/** @internal */\nexport interface StoryboardFunctionRegistry {\n /** A readonly proxy for accessing cooked storyboard functions. */\n storyboardFunctions: ReadonlyStoryboardFunctions;\n\n /** Register storyboard functions. */\n registerStoryboardFunctions(\n functions: StoryboardFunction[],\n app?: PartialMicroApp\n ): void;\n\n /** Update a storyboard function during debugging. */\n updateStoryboardFunction(name: string, data: StoryboardFunctionPatch): void;\n}\n\n/** @internal */\nexport interface RuntimeStoryboardFunction {\n source: string;\n typescript?: boolean;\n processed?: boolean;\n cooked?: SimpleFunction;\n}\n\n/** @internal */\nexport interface FunctionCoverageCollector {\n beforeVisit(node: EstreeNode): void;\n beforeEvaluate(node: EstreeNode): void;\n beforeCall(node: EstreeNode): void;\n beforeBranch(node: EstreeNode, branch: string): void;\n}\n\n/** @internal */\nexport interface FunctionCoverageSettings {\n createCollector(name: string): FunctionCoverageCollector;\n}\n\n/** @internal */\nexport type PartialMicroApp = Pick<MicroApp, \"id\" | \"isBuildPush\">;\n\n/** @internal */\nexport function StoryboardFunctionRegistryFactory({\n widgetId,\n collectCoverage,\n}: {\n widgetId?: string;\n collectCoverage?: FunctionCoverageSettings;\n} = {}): StoryboardFunctionRegistry {\n const registeredFunctions = new Map<string, RuntimeStoryboardFunction>();\n\n // Use `Proxy` with a frozen target, to make a readonly function registry.\n const storyboardFunctions = new Proxy(Object.freeze({}), {\n get(target, key) {\n return getStoryboardFunction(key as string);\n },\n }) as ReadonlyStoryboardFunctions;\n\n let currentApp: PartialMicroApp;\n\n function registerStoryboardFunctions(\n functions: StoryboardFunction[],\n app?: PartialMicroApp\n ): void {\n if (app) {\n currentApp = app;\n }\n registeredFunctions.clear();\n if (Array.isArray(functions)) {\n for (const fn of functions) {\n registeredFunctions.set(fn.name, {\n source: fn.source,\n typescript: fn.typescript,\n });\n }\n }\n }\n\n function getStoryboardFunction(name: string): SimpleFunction {\n const fn = registeredFunctions.get(name);\n if (!fn) {\n return undefined;\n }\n if (fn.processed) {\n return fn.cooked;\n }\n let collector: FunctionCoverageCollector;\n if (collectCoverage) {\n collector = collectCoverage.createCollector(name);\n }\n const precooked = precookFunction(fn.source, {\n typescript: fn.typescript,\n hooks: collector && {\n beforeVisit: collector.beforeVisit,\n },\n });\n fn.cooked = cook(precooked.function, fn.source, {\n rules: {\n noVar: true,\n },\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n collectCoverage,\n widgetId,\n app: currentApp,\n storyboardFunctions,\n })\n ),\n hooks: collector && {\n beforeEvaluate: collector.beforeEvaluate,\n beforeCall: collector.beforeCall,\n beforeBranch: collector.beforeBranch,\n },\n }) as SimpleFunction;\n fn.processed = true;\n return fn.cooked;\n }\n\n return {\n storyboardFunctions,\n registerStoryboardFunctions,\n updateStoryboardFunction(\n name: string,\n data: StoryboardFunctionPatch\n ): void {\n registeredFunctions.set(name, {\n source: data.source,\n typescript: data.typescript,\n });\n },\n };\n}\n","import { StoryboardFunctionRegistryFactory } from \"./StoryboardFunctionRegistryFactory\";\n\nexport const { storyboardFunctions, registerStoryboardFunctions } =\n StoryboardFunctionRegistryFactory();\n","import { StoryboardFunction } from \"@next-core/brick-types\";\nimport {\n ReadonlyStoryboardFunctions,\n StoryboardFunctionRegistryFactory,\n} from \"./StoryboardFunctionRegistryFactory\";\n\nconst widgetFunctionRegistry = new Map<string, ReadonlyStoryboardFunctions>();\n\nexport const widgetFunctions = new Proxy(Object.freeze({}), {\n get(target, key: string) {\n return widgetFunctionRegistry.get(key);\n },\n}) as Readonly<Record<string, ReadonlyStoryboardFunctions>>;\n\nexport function registerWidgetFunctions(\n widgetId: string,\n functions: StoryboardFunction[]\n): void {\n if (widgetFunctionRegistry.has(widgetId)) {\n // eslint-disable-next-line no-console\n throw new Error(`Widget functions of \"${widgetId}\" already registered`);\n }\n const { storyboardFunctions, registerStoryboardFunctions } =\n StoryboardFunctionRegistryFactory({ widgetId });\n widgetFunctionRegistry.set(widgetId, storyboardFunctions);\n registerStoryboardFunctions(functions);\n}\n","import { getDevHook } from \"./devtools\";\n\nconst THROW = (): any => {\n throw new Error(\"Can't modify read-only proxy object\");\n};\n\nconst readOnlyHandler: ProxyHandler<object> = {\n set: THROW,\n defineProperty: THROW,\n deleteProperty: THROW,\n setPrototypeOf: THROW,\n};\n\nexport function getReadOnlyProxy(object: object): unknown {\n return new Proxy(object, readOnlyHandler);\n}\n\n// First, we want to make accessing property of globals lazy,\n// So we use *Proxy* to make a dynamic accessor for each of these globals.\n// But we also want to keep them working in devtools.\nexport function getDynamicReadOnlyProxy({\n get,\n ownKeys,\n}: Pick<ProxyHandler<object>, \"get\" | \"ownKeys\">): unknown {\n if (getDevHook()) {\n // In devtools, we extract them at beginning.\n const target = Object.fromEntries(\n (ownKeys(null) as string[]).map((key) => [key, get(null, key, null)])\n );\n return getReadOnlyProxy(target);\n }\n return new Proxy(Object.freeze({}), { get });\n}\n","import { cloneDeep } from \"lodash\";\nimport {\n cook,\n hasOwnProperty,\n isEvaluable,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/brick-utils\";\nimport { supply } from \"@next-core/supply\";\nimport { MicroApp } from \"@next-core/brick-types\";\nimport { _internalApiGetCurrentContext } from \"../core/Runtime\";\nimport { getUrlBySegueFactory } from \"./segue\";\nimport { getUrlByAliasFactory } from \"./alias\";\nimport { widgetImagesFactory } from \"./images\";\nimport { devtoolsHookEmit } from \"./devtools\";\nimport { customProcessorRegistry } from \"../core/exports\";\nimport { getItemFactory } from \"./Storage\";\nimport { getRuntime } from \"../runtime\";\nimport { storyboardFunctions } from \"../core/StoryboardFunctions\";\nimport { widgetFunctions } from \"../core/WidgetFunctions\";\nimport { widgetI18nFactory } from \"../core/WidgetI18n\";\nimport { getGeneralGlobals } from \"./getGeneralGlobals\";\nimport { getReadOnlyProxy, getDynamicReadOnlyProxy } from \"./proxyFactories\";\n\nconst symbolForRaw = Symbol.for(\"pre.evaluated.raw\");\nconst symbolForContext = Symbol.for(\"pre.evaluated.context\");\n\nexport interface PreEvaluated {\n [symbolForRaw]: string;\n [symbolForContext]: EvaluateRuntimeContext;\n}\n\nexport interface EvaluateOptions {\n lazy?: boolean;\n isReEvaluation?: boolean;\n evaluationId?: number;\n}\n\nexport interface EvaluateRuntimeContext {\n event?: CustomEvent;\n data?: unknown;\n getTplVariables?: () => Record<string, unknown>;\n overrideApp?: MicroApp;\n}\n\nexport function isPreEvaluated(raw: unknown): raw is PreEvaluated {\n return !!(raw as PreEvaluated)?.[symbolForRaw];\n}\n\nexport function shouldDismissRecursiveMarkingInjected(\n raw: string | PreEvaluated\n): boolean {\n if (typeof raw === \"string\") {\n return shouldAllowRecursiveEvaluations(raw);\n }\n return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);\n}\n\nconst possibleErrorConstructs = new WeakSet<ErrorConstructor>([\n SyntaxError,\n TypeError,\n ReferenceError,\n]);\n\nexport function getCookErrorConstructor(error: any): ErrorConstructor {\n return possibleErrorConstructs.has(error.constructor)\n ? error.constructor\n : TypeError;\n}\n\n// `raw` should always be asserted to `isEvaluable` or `isPreEvaluated`.\nexport function evaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: EvaluateRuntimeContext = {},\n options: EvaluateOptions = {}\n): unknown {\n if (\n options.isReEvaluation &&\n !(typeof raw === \"string\" && isEvaluable(raw))\n ) {\n devtoolsHookEmit(\"re-evaluation\", {\n id: options.evaluationId,\n detail: { raw, context: {} },\n error: \"Invalid evaluation code\",\n });\n return;\n }\n\n if (typeof raw !== \"string\") {\n // If the `raw` is not a string, it must be a pre-evaluated object.\n // Then fulfil the context, and restore the original `raw`.\n runtimeContext = {\n ...raw[symbolForContext],\n ...runtimeContext,\n };\n raw = raw[symbolForRaw];\n }\n\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult;\n try {\n precooked = preevaluate(raw);\n } catch (error) {\n const message = `${error.message}, in \"${raw}\"`;\n if (options.isReEvaluation) {\n devtoolsHookEmit(\"re-evaluation\", {\n id: options.evaluationId,\n detail: { raw, context: {} },\n error: message,\n });\n return;\n } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n }\n }\n\n const globalVariables: Record<string, unknown> = {};\n const attemptToVisitGlobals = precooked.attemptToVisitGlobals;\n\n const attemptToVisitEvent = attemptToVisitGlobals.has(\"EVENT\");\n const attemptToVisitData = attemptToVisitGlobals.has(\"DATA\");\n const attemptToVisitTpl = attemptToVisitGlobals.has(\"TPL\");\n\n // Ignore evaluating if `event` is missing in context.\n // Since it should be evaluated during events handling.\n let missingEvent = options.lazy === true;\n if (attemptToVisitEvent) {\n if (hasOwnProperty(runtimeContext, \"event\")) {\n globalVariables.EVENT = runtimeContext.event;\n } else {\n // Let's see if pre-evaluation is required (store the `data` in context).\n missingEvent = true;\n }\n }\n\n const missingTpl =\n attemptToVisitTpl && !hasOwnProperty(runtimeContext, \"getTplVariables\");\n const missingData =\n attemptToVisitData && !hasOwnProperty(runtimeContext, \"data\");\n\n const rawWithContext =\n Object.keys(runtimeContext).length > 0\n ? ({\n [symbolForRaw]: raw,\n [symbolForContext]: runtimeContext,\n } as PreEvaluated)\n : raw;\n\n // Since `EVENT`, `DATA` and `TPL` are provided in different context,\n // whenever missing one of them, memorize the current context for later consuming.\n if (missingEvent || missingData || missingTpl) {\n return rawWithContext;\n }\n\n if (attemptToVisitData) {\n globalVariables.DATA = runtimeContext.data;\n }\n\n if (\n attemptToVisitTpl &&\n typeof runtimeContext.getTplVariables === \"function\"\n ) {\n globalVariables.TPL = runtimeContext.getTplVariables();\n }\n\n const {\n app: currentApp,\n query,\n match,\n sys,\n flags,\n hash,\n segues,\n storyboardContext,\n } = _internalApiGetCurrentContext();\n\n const app = runtimeContext.overrideApp ?? currentApp;\n\n function getIndividualGlobal(variableName: string): unknown {\n switch (variableName) {\n case \"ALIAS\":\n return {\n getUrl: getUrlByAliasFactory(app),\n };\n case \"ANCHOR\":\n return hash ? hash.substr(1) : null;\n case \"APP\":\n return cloneDeep(app);\n case \"CTX\":\n return getDynamicReadOnlyProxy({\n get(target, key: string) {\n const item = storyboardContext.get(key);\n return !item\n ? item\n : item.type === \"brick-property\"\n ? item.brick.element?.[item.prop as keyof HTMLElement]\n : item.value;\n },\n ownKeys() {\n return Array.from(storyboardContext.keys());\n },\n });\n case \"FLAGS\":\n return getReadOnlyProxy(flags);\n case \"HASH\":\n return hash;\n case \"INSTALLED_APPS\":\n return {\n has: (appId: string, matchVersion?: string) =>\n getRuntime().hasInstalledApp(appId, matchVersion),\n };\n case \"LOCAL_STORAGE\":\n return {\n getItem: getItemFactory(\"local\"),\n };\n case \"MISC\":\n return getRuntime().getMiscSettings();\n case \"PARAMS\":\n return new URLSearchParams(query);\n case \"PATH\":\n return getReadOnlyProxy(match.params);\n case \"PROCESSORS\":\n return getDynamicReadOnlyProxy({\n get(target, key: string) {\n const pkg = customProcessorRegistry.get(key);\n return pkg\n ? getDynamicReadOnlyProxy({\n get(t, k: string) {\n return pkg.get(k);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n })\n : pkg;\n },\n ownKeys() {\n return Array.from(customProcessorRegistry.keys());\n },\n });\n case \"QUERY\":\n return getDynamicReadOnlyProxy({\n get(target, key: string) {\n return query.has(key) ? query.get(key) : undefined;\n },\n ownKeys() {\n return Array.from(query.keys());\n },\n });\n case \"QUERY_ARRAY\":\n return getDynamicReadOnlyProxy({\n get(target, key: string) {\n return query.has(key) ? query.getAll(key) : undefined;\n },\n ownKeys() {\n return Array.from(query.keys());\n },\n });\n case \"SEGUE\":\n return {\n getUrl: getUrlBySegueFactory(app, segues),\n };\n case \"SESSION_STORAGE\":\n return {\n getItem: getItemFactory(\"session\"),\n };\n case \"SYS\":\n return getReadOnlyProxy(sys);\n case \"__WIDGET_FN__\":\n return widgetFunctions;\n case \"__WIDGET_IMG__\":\n return widgetImagesFactory;\n case \"__WIDGET_I18N__\":\n return widgetI18nFactory;\n }\n }\n\n for (const variableName of attemptToVisitGlobals) {\n const variable = getIndividualGlobal(variableName);\n if (variable !== undefined) {\n globalVariables[variableName] = variable;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(precooked.attemptToVisitGlobals, globalVariables),\n });\n const detail = { raw, context: globalVariables, result };\n if (options.isReEvaluation) {\n devtoolsHookEmit(\"re-evaluation\", {\n id: options.evaluationId,\n detail,\n });\n } else {\n devtoolsHookEmit(\"evaluation\", detail);\n }\n return result;\n } catch (error) {\n const message = `${error.message}, in \"${raw}\"`;\n if (options.isReEvaluation) {\n devtoolsHookEmit(\"re-evaluation\", {\n id: options.evaluationId,\n detail: { raw, context: globalVariables },\n error: message,\n });\n } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n }\n }\n}\n","import { set } from \"lodash\";\nimport { PluginRuntimeContext } from \"@next-core/brick-types\";\nimport {\n isObject,\n inject,\n isEvaluable,\n trackContext,\n} from \"@next-core/brick-utils\";\nimport {\n evaluate,\n EvaluateRuntimeContext,\n isPreEvaluated,\n shouldDismissRecursiveMarkingInjected,\n} from \"./evaluate\";\nimport { haveBeenInjected, recursiveMarkAsInjected } from \"./injected\";\nimport {\n getNextStateOfUseBrick,\n isLazyContentInUseBrick,\n StateOfUseBrick,\n} from \"./getNextStateOfUseBrick\";\nimport { TrackingContextItem } from \"./listenOnTrackingContext\";\n\ninterface ComputeOptions {\n $$lazyForUseBrick?: boolean;\n $$stateOfUseBrick?: StateOfUseBrick;\n}\n\nexport const computeRealValue = (\n value: unknown,\n context: PluginRuntimeContext,\n injectDeep?: boolean,\n internalOptions?: ComputeOptions\n): unknown => {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions?.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissRecursiveMarkingInjected = lazy;\n if (preEvaluated || isEvaluable(value as string)) {\n const runtimeContext: EvaluateRuntimeContext = {};\n const keys = [\"event\", \"getTplVariables\", \"overrideApp\"] as const;\n for (const key of keys) {\n if (context?.[key]) {\n runtimeContext[key as \"event\"] = context[key as \"event\"];\n }\n }\n // The current runtime context is memoized even if the evaluation maybe lazy.\n result = evaluate(value as string, runtimeContext, { lazy });\n dismissRecursiveMarkingInjected = shouldDismissRecursiveMarkingInjected(\n value as string\n );\n } else {\n result = lazy ? value : inject(value as string, context);\n }\n if (!dismissRecursiveMarkingInjected) {\n recursiveMarkAsInjected(result);\n }\n return result;\n }\n\n if (!(injectDeep && isObject(value)) || haveBeenInjected(value)) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextInternalOptions(internalOptions, true);\n return value.map((v) =>\n computeRealValue(v, context, injectDeep, nextOptions)\n );\n }\n\n return Object.fromEntries(\n Object.entries(value).map(([k, v]) => [\n computeRealValue(k, context, false) as string,\n computeRealValue(\n v,\n context,\n injectDeep,\n getNextInternalOptions(internalOptions, false, k)\n ),\n ])\n );\n};\n\nexport function setProperties(\n bricks: HTMLElement | HTMLElement[],\n properties: Record<string, unknown>,\n context: PluginRuntimeContext,\n injectDeep?: boolean\n): void {\n const realProps = computeRealProperties(properties, context, injectDeep);\n if (!Array.isArray(bricks)) {\n bricks = [bricks];\n }\n bricks.forEach((brick) => {\n setRealProperties(brick, realProps);\n });\n}\n\nexport function setRealProperties(\n brick: HTMLElement,\n realProps: Record<string, unknown>,\n extractProps?: boolean\n): void {\n for (const [propName, propValue] of Object.entries(realProps)) {\n if (propName === \"style\" || propName === \"dataset\") {\n for (const [k, v] of Object.entries(propValue)) {\n (brick[propName] as unknown as Record<string, unknown>)[k] = v;\n }\n } else if (propName === \"innerHTML\") {\n // `innerHTML` is dangerous, use `textContent` instead.\n // eslint-disable-next-line no-console\n console.error(\"Please use `textContent` instead of `innerHTML`.\");\n brick.textContent = propValue as string;\n } else {\n if (extractProps) {\n set(brick, propName, propValue);\n } else {\n (brick as unknown as Record<string, unknown>)[propName] = propValue;\n }\n }\n }\n}\n\nexport function computeRealProperties(\n properties: Record<string, unknown>,\n context: PluginRuntimeContext,\n injectDeep?: boolean,\n trackingContextList?: TrackingContextItem[]\n): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n\n if (isObject(properties)) {\n for (const [propName, propValue] of Object.entries(properties)) {\n // Related: https://github.com/facebook/react/issues/11347\n const realValue = computeRealValue(propValue, context, injectDeep, {\n $$lazyForUseBrick: true,\n $$stateOfUseBrick:\n propName === \"useBrick\"\n ? StateOfUseBrick.USE_BRICK\n : StateOfUseBrick.INITIAL,\n });\n if (realValue !== undefined) {\n // For `style` and `dataset`, only object is acceptable.\n if (\n (propName !== \"style\" && propName !== \"dataset\") ||\n isObject(realValue)\n ) {\n result[propName] = realValue;\n }\n }\n if (Array.isArray(trackingContextList) && isEvaluable(propValue)) {\n const contextNames = trackContext(propValue);\n if (contextNames) {\n trackingContextList.push({\n contextNames,\n propName,\n propValue,\n });\n }\n }\n }\n }\n\n return result;\n}\n\nfunction getNextInternalOptions(\n internalOptions: ComputeOptions,\n isArray: boolean,\n key?: string\n): ComputeOptions {\n return internalOptions?.$$lazyForUseBrick\n ? {\n ...internalOptions,\n $$stateOfUseBrick: getNextStateOfUseBrick(\n internalOptions.$$stateOfUseBrick,\n isArray,\n key\n ),\n }\n : internalOptions;\n}\n","import { PluginRuntimeContext } from \"@next-core/brick-types\";\nimport { hasOwnProperty } from \"@next-core/brick-utils\";\nimport { computeRealValue } from \"./internal/setProperties\";\nimport { doTransform } from \"./transformProperties\";\nimport { isPreEvaluated } from \"./internal/evaluate\";\n\ntype GetIf = (rawIf: unknown, ctx: unknown) => unknown;\n\n/**\n * 包含 `if` 条件判断的对象。\n */\nexport interface IfContainer {\n /**\n * 条件判断,可以为表达式字符串。\n *\n * @example\n *\n * ```yaml\n * - brick: your.any-brick\n * if: '<% FLAGS['your-feature-flag'] %>'\n * ```\n */\n if?: unknown;\n}\n\n/** @internal */\nexport function looseCheckIf(\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): boolean {\n return (\n !hasOwnProperty(ifContainer, \"if\") ||\n _looseCheckIf(ifContainer.if, context, computeRealValue as GetIf)\n );\n}\n\n/**\n * 给定一个数据源,根据表达式计算条件判断的结果。\n *\n * @remarks\n *\n * 当 `ifContainer` 中没有出现 `if` 字段时,则认为条件判断为 `true`。\n *\n * 而如果 `if` 为表达式字符串时,将根据给定的数据源 `data` 进行 transform,并返回转换为 boolean 类型后的结果。\n *\n * @example\n *\n * ```ts\n * const brickConf = {\n * if: \"<% DATA.list.length > 0 %>\",\n * brick: \"your.any-brick\"\n * }\n * const data = { list: [] };\n * const result = looseCheckIfByTransform(\n * brickConf,\n * data\n * );\n * // Returns false.\n * ```\n *\n * @example\n *\n * ```ts\n * const brickConf = {\n * if: \"<% DATA.list.length %>\",\n * brick: \"your.any-brick\"\n * }\n * const data = { list: [ 1, 2 ] };\n * const result = looseCheckIfByTransform(\n * brickConf,\n * data\n * );\n * // Returns true.\n * ```\n *\n * @example\n *\n * ```ts\n * const brickConf = {\n * brick: \"your.any-brick\"\n * }\n * const result = looseCheckIfByTransform(\n * brickConf,\n * data\n * );\n * // Returns true.\n * ```\n *\n * @param ifContainer - 包含 `if` 条件判断的配置对象。\n * @param data - 要传递的数据源。\n * @param options - `allowInject` 允许在 `if` 中使用 `${...}` 占位符。\n *\n * @returns 条件判断的结果。\n */\nexport function looseCheckIfByTransform(\n ifContainer: IfContainer,\n data: unknown,\n options?: {\n allowInject?: boolean;\n getTplVariables?: () => Record<string, unknown>;\n }\n): boolean {\n return (\n !hasOwnProperty(ifContainer, \"if\") ||\n _looseCheckIf(ifContainer.if, data, (_rawIf, _data) =>\n doTransform(_data, _rawIf, options)\n )\n );\n}\n\n/** @internal */\nexport function looseCheckIfOfComputed(ifContainer: IfContainer): boolean {\n return !hasOwnProperty(ifContainer, \"if\") || !!ifContainer.if;\n}\n\nfunction _looseCheckIf(rawIf: unknown, ctx: unknown, fn: GetIf): boolean {\n return !!(typeof rawIf === \"string\" || isPreEvaluated(rawIf)\n ? fn(rawIf, ctx)\n : rawIf);\n}\n\n/**\n * @deprecated 现在使用 `looseCheckIf`。\n * @internal\n */\nexport function checkIf(\n rawIf: string | boolean,\n context: PluginRuntimeContext\n): boolean {\n return _checkIf(rawIf, context, computeRealValue as GetIf);\n}\n\n/**\n * @deprecated 现在使用 `looseCheckIfByTransform`。\n * @internal\n */\nexport function checkIfByTransform(\n rawIf: string | boolean,\n data: unknown\n): boolean {\n return _checkIf(rawIf, data, (_rawIf, _data) => doTransform(_data, _rawIf));\n}\n\nfunction _checkIf(rawIf: string | boolean, ctx: unknown, fn: GetIf): boolean {\n if (\n typeof rawIf === \"boolean\" ||\n typeof rawIf === \"string\" ||\n isPreEvaluated(rawIf)\n ) {\n const ifChecked = fn(rawIf, ctx);\n if (ifChecked === false) {\n return false;\n }\n /* istanbul ignore if */\n if (ifChecked !== true) {\n // eslint-disable-next-line no-console\n console.warn(\"Received an unexpected condition result:\", ifChecked);\n }\n } else if (rawIf != null) {\n // eslint-disable-next-line no-console\n console.warn(\"Unsupported `if`:\", rawIf);\n }\n return true;\n}\n","import { isNil, sortBy } from \"lodash\";\nimport {\n SidebarMenuSimpleItem,\n PluginRuntimeContext,\n SidebarMenu,\n MenuRawData,\n MenuItemRawData,\n} from \"@next-core/brick-types\";\nimport { isEvaluable, isObject, preevaluate } from \"@next-core/brick-utils\";\nimport {\n InstanceApi_postSearch,\n InstanceApi_getDetail,\n} from \"@next-sdk/cmdb-sdk\";\nimport { computeRealValue } from \"./setProperties\";\nimport { looseCheckIfOfComputed } from \"../checkIf\";\nimport {\n _internalApiGetCurrentContext,\n _internalApiGetResolver,\n MountRoutesResult,\n Kernel,\n} from \"../core/exports\";\n\nconst symbolAppId = Symbol(\"appId\");\n\ninterface RuntimeMenuItemRawData extends MenuItemRawData {\n [symbolAppId]?: string;\n}\n\n// Caching menu requests to avoid flicker.\nconst menuCache = new Map<string, MenuRawData>();\nconst menuTitleCache = new Map<string, string>();\n\nexport async function constructMenu(\n menuBar: MountRoutesResult[\"menuBar\"],\n context: PluginRuntimeContext,\n kernel: Kernel\n): Promise<void> {\n const hasSubMenu = !!menuBar.subMenuId;\n if (menuBar.menuId) {\n const defaultCollapsed = menuBar.menu?.defaultCollapsed;\n const menu = await processMenu(menuBar.menuId, context, kernel, hasSubMenu);\n\n if (!isNil(defaultCollapsed)) {\n menu.defaultCollapsed = defaultCollapsed;\n }\n\n menuBar.menu = menu;\n }\n if (hasSubMenu) {\n menuBar.subMenu = await processMenu(menuBar.subMenuId, context, kernel);\n } else {\n menuBar.subMenu = null;\n }\n}\n\nexport async function fetchMenuById(\n menuId: string,\n kernel: Kernel\n): Promise<MenuRawData> {\n if (menuCache.has(menuId)) {\n return menuCache.get(menuId);\n }\n const menuList = window.STANDALONE_MICRO_APPS\n ? kernel.getStandaloneMenus(menuId)\n : ((\n await InstanceApi_postSearch(\"EASYOPS_STORYBOARD_MENU\", {\n page: 1,\n page_size: 200,\n fields: {\n menuId: true,\n title: true,\n icon: true,\n link: true,\n titleDataSource: true,\n defaultCollapsed: true,\n defaultCollapsedBreakpoint: true,\n type: true,\n injectMenuGroupId: true,\n dynamicItems: true,\n itemsResolve: true,\n items: true,\n \"items.children\": true,\n \"app.appId\": true,\n },\n query: {\n menuId: {\n $eq: menuId,\n },\n app: {\n $size: {\n $gt: 0,\n },\n },\n },\n })\n ).list as MenuRawData[]);\n await Promise.all(menuList.map(loadDynamicMenuItems));\n const menuData = mergeMenu(menuList);\n if (!menuData) {\n throw new Error(`Menu not found: ${menuId}`);\n }\n reorderMenuItems(menuData);\n menuCache.set(menuId, menuData);\n return menuData;\n}\n\nfunction mergeMenu(menuList: MenuRawData[]): MenuRawData {\n const mainMenu = menuList.find((menu) => menu.type !== \"inject\");\n if (!mainMenu) {\n return undefined;\n }\n const validMenuList: MenuRawData[] = [];\n const injectWithMenus = new Map<string, MenuRawData[]>();\n for (const menu of menuList) {\n if (menu.items?.length > 0) {\n if (menu.type === \"inject\" && menu.injectMenuGroupId) {\n let injectingMenus = injectWithMenus.get(menu.injectMenuGroupId);\n if (!injectingMenus) {\n injectingMenus = [];\n injectWithMenus.set(menu.injectMenuGroupId, injectingMenus);\n }\n injectingMenus.push(menu);\n } else {\n validMenuList.push(menu);\n }\n }\n }\n return {\n ...mainMenu,\n items: validMenuList.flatMap((menu) =>\n processGroupInject(menu.items, menu, injectWithMenus)\n ),\n };\n}\n\nfunction processGroupInject(\n items: MenuItemRawData[],\n menu: MenuRawData,\n injectWithMenus: Map<string, MenuRawData[]>\n): RuntimeMenuItemRawData[] {\n return items?.map((item) => {\n const foundInjectingMenus =\n item.groupId && injectWithMenus.get(item.groupId);\n if (foundInjectingMenus) {\n // Each menu to be injected with should be injected only once.\n injectWithMenus.delete(item.groupId);\n }\n return {\n ...item,\n children: (\n processGroupInject(item.children, menu, injectWithMenus) ?? []\n ).concat(\n foundInjectingMenus\n ? foundInjectingMenus.flatMap((injectingMenu) =>\n processGroupInject(\n injectingMenu.items,\n injectingMenu,\n injectWithMenus\n )\n )\n : []\n ),\n [symbolAppId]: menu.app[0].appId,\n };\n });\n}\n\nasync function loadDynamicMenuItems(menu: MenuRawData): Promise<void> {\n if (menu.dynamicItems && menu.itemsResolve) {\n const itemsConf: Partial<{ items: MenuItemRawData[] }> = {};\n await _internalApiGetResolver().resolveOne(\n \"reference\",\n {\n transform: \"items\",\n transformMapArray: false,\n ...menu.itemsResolve,\n },\n itemsConf,\n null,\n _internalApiGetCurrentContext()\n );\n menu.items = itemsConf.items;\n }\n}\n\nexport async function processMenu(\n menuId: string,\n context: PluginRuntimeContext,\n kernel: Kernel,\n hasSubMenu?: boolean\n): Promise<SidebarMenu> {\n const { items, app, ...restMenuData } = await fetchMenuById(menuId, kernel);\n\n const menuData = {\n ...(await computeRealValueWithOverrideApp(\n restMenuData,\n app[0].appId,\n context,\n kernel\n )),\n items: await computeMenuItemsWithOverrideApp(items, context, kernel),\n };\n\n return {\n title: await processMenuTitle(menuData),\n icon: menuData.icon,\n link: menuData.link,\n menuItems: menuData.items\n .filter(\n // `if` is already evaluated.\n looseCheckIfOfComputed\n )\n .map((item) => {\n const children = item.children?.filter(\n // `if` is already evaluated.\n looseCheckIfOfComputed\n ) as SidebarMenuSimpleItem[];\n return item.type === \"group\"\n ? {\n type: \"group\",\n title: item.text,\n items: children,\n }\n : children?.length\n ? {\n type: \"subMenu\",\n title: item.text,\n icon: item.icon,\n items: children,\n defaultExpanded: item.defaultExpanded,\n }\n : (item as SidebarMenuSimpleItem);\n }),\n defaultCollapsed: menuData.defaultCollapsed || hasSubMenu,\n defaultCollapsedBreakpoint: menuData.defaultCollapsedBreakpoint,\n };\n}\n\nfunction computeMenuItemsWithOverrideApp(\n items: RuntimeMenuItemRawData[],\n context: PluginRuntimeContext,\n kernel: Kernel\n): Promise<RuntimeMenuItemRawData[]> {\n return Promise.all(\n items.map(async ({ children, ...rest }) => ({\n ...(await computeRealValueWithOverrideApp(\n rest,\n rest[symbolAppId],\n context,\n kernel\n )),\n children:\n children &&\n (await computeMenuItemsWithOverrideApp(children, context, kernel)),\n }))\n );\n}\n\nexport async function processMenuTitle(menuData: MenuRawData): Promise<string> {\n if (menuData.title || !menuData.titleDataSource) {\n return menuData.title;\n }\n const cacheKey = JSON.stringify(menuData.titleDataSource);\n if (menuTitleCache.has(cacheKey)) {\n return menuTitleCache.get(cacheKey);\n }\n const { objectId, instanceId, attributeId } = menuData.titleDataSource;\n const attr = attributeId ?? \"name\";\n const instanceData = await InstanceApi_getDetail(objectId, instanceId, {\n fields: attr,\n });\n let title: string;\n if (attributeId === \"#showKey\" && Array.isArray(instanceData[attr])) {\n const [primary, ...rest] = instanceData[attr];\n title = rest.length > 0 ? `${primary}(${rest.join(\",\")})` : String(primary);\n } else {\n title = String(instanceData[attr]);\n }\n menuTitleCache.set(cacheKey, title);\n return title;\n}\n\nexport function clearMenuTitleCache(): void {\n menuTitleCache.clear();\n}\n\nexport function clearMenuCache(): void {\n menuCache.clear();\n}\n\nfunction reorderMenuItems(menuData: MenuRawData): void {\n menuData.items = sortMenuItems(menuData.items).map((item) => ({\n ...item,\n children: sortMenuItems(item.children) as SidebarMenuSimpleItem[],\n }));\n}\n\nfunction sortMenuItems(list: MenuItemRawData[]): MenuItemRawData[] {\n return sortBy(list, (item) => item.sort ?? -Infinity);\n}\n\nconst overriddenGlobals = [\"APP\", \"I18N\"];\n\n/**\n * If the menu contains evaluations which use `APP` or `I18N`,\n * we have to override app in context when computing real values.\n */\nfunction requireOverrideApp(data: unknown, memo = new WeakSet()): boolean {\n if (typeof data === \"string\") {\n if (isEvaluable(data)) {\n if (overriddenGlobals.some((key) => data.includes(key))) {\n const { attemptToVisitGlobals } = preevaluate(data);\n return overriddenGlobals.some((key) => attemptToVisitGlobals.has(key));\n }\n } else {\n return /\\${\\s*APP\\s*\\./.test(data);\n }\n } else if (isObject(data)) {\n // Avoid call stack overflow.\n // istanbul ignore next\n if (memo.has(data)) {\n return false;\n }\n memo.add(data);\n return (Array.isArray(data) ? data : Object.values(data)).some((item) =>\n requireOverrideApp(item, memo)\n );\n }\n\n return false;\n}\n\nasync function computeRealValueWithOverrideApp<T>(\n data: T,\n overrideAppId: string,\n context: PluginRuntimeContext,\n kernel: Kernel\n): Promise<T> {\n let newContext = context;\n if (overrideAppId !== context.app.id && requireOverrideApp(data)) {\n const storyboard = kernel.bootstrapData.storyboards.find(\n (story) => story.app.id === overrideAppId\n );\n if (storyboard) {\n await kernel.fulfilStoryboard(storyboard);\n newContext = {\n ...context,\n overrideApp: storyboard.app,\n };\n }\n }\n return computeRealValue(data, newContext, true) as T;\n}\n","export type LazyBrickImportFunction = () => Promise<unknown>;\n\nconst lazyBrickRegistry = new Map<string, LazyBrickImportFunction>();\nconst requestsMap = new WeakMap<LazyBrickImportFunction, Promise<unknown>>();\n\nexport function registerLazyBricks(\n bricks: string | string[],\n factory: LazyBrickImportFunction\n): void {\n const factoryWrapper: LazyBrickImportFunction = async () => {\n try {\n window.dispatchEvent(new CustomEvent(\"request.start\"));\n await factory();\n } finally {\n window.dispatchEvent(new CustomEvent(\"request.end\"));\n }\n };\n for (const brick of ([] as string[]).concat(bricks)) {\n if (lazyBrickRegistry.has(brick)) {\n throw new Error(`Lazy brick \"${brick}\" is already registered`);\n }\n lazyBrickRegistry.set(brick, factoryWrapper);\n }\n}\n\nexport async function loadLazyBricks(bricks: Iterable<string>): Promise<void> {\n const requests = new Set<Promise<unknown>>();\n for (const brick of bricks) {\n const factory = lazyBrickRegistry.get(brick);\n if (factory) {\n let request = requestsMap.get(factory);\n if (!request) {\n request = factory();\n requestsMap.set(factory, request);\n }\n requests.add(request);\n }\n }\n await Promise.all(requests);\n}\n\nexport function loadAllLazyBricks(): Promise<void> {\n return loadLazyBricks(lazyBrickRegistry.keys());\n}\n","import {\n MountPoints,\n MicroApp,\n InterceptorParams,\n FeatureFlags,\n DesktopData,\n UserInfo,\n BrickPackage,\n Storyboard,\n MagicBrickConfig,\n PluginRuntimeContext,\n BrickConf,\n TemplatePackage,\n SiteMapItem,\n SidebarMenu,\n RouteConf,\n} from \"@next-core/brick-types\";\nimport compareVersions from \"compare-versions\";\nimport {\n Kernel,\n MenuBar,\n AppBar,\n Resolver,\n registerCustomTemplate,\n registerCustomProcessor,\n} from \"./exports\";\nimport { registerBrickTemplate } from \"./TemplateRegistries\";\nimport {\n RelatedApp,\n RouterState,\n RecentApps,\n CustomApiDefinition,\n AbstractRuntime,\n} from \"./interfaces\";\nimport { getBasePath } from \"../internal/getBasePath\";\nimport { getCurrentMode, getCurrentTheme } from \"../themeAndMode\";\nimport { processMenu } from \"../internal/menu\";\nimport { registerLazyBricks } from \"./LazyBrickRegistry\";\nimport { CustomTemplateContext } from \"./CustomTemplates\";\nimport { registerWidgetFunctions } from \"./WidgetFunctions\";\nimport { registerWidgetI18n } from \"./WidgetI18n\";\n\nlet kernel: Kernel;\nlet fakeTplContext: CustomTemplateContext;\n\n/* istanbul ignore next */\nexport function _dev_only_getBrickPackages(): BrickPackage[] {\n // eslint-disable-next-line no-console\n console.warn(\n \"`_dev_only_getBrickPackages()` is deprecated and will always return an empty array, please use `(await BootstrapV2Api_brickPackageInfo()).bricks` instead\"\n );\n return kernel.bootstrapData.brickPackages;\n}\n\n/* istanbul ignore next */\nexport function _dev_only_getTemplatePackages(): TemplatePackage[] {\n // eslint-disable-next-line no-console\n console.warn(\n \"`_dev_only_getTemplatePackages()` is deprecated and will always return an empty array, please use `(await BootstrapV2Api_brickPackageInfo()).templates` instead\"\n );\n return kernel.bootstrapData.templatePackages;\n}\n\n/* istanbul ignore next */\nexport function _dev_only_getStoryboards(): Storyboard[] {\n // Deprecated since the storyboards are probably not fulfilled.\n return [];\n}\n\n/* istanbul ignore next */\nexport function _dev_only_loadDynamicBricksInBrickConf(\n brickConf: BrickConf\n): Promise<void> {\n return kernel.loadDynamicBricksInBrickConf(brickConf);\n}\n\n/* istanbul ignore next */\nexport function _dev_only_loadEditorBricks(\n editorBricks: string[]\n): Promise<void> {\n return kernel.loadEditorBricks(editorBricks);\n}\n\n/* istanbul ignore next */\nexport function _dev_only_getFakeKernel(\n overrides?: Record<string, unknown>\n): Kernel {\n return {\n bootstrapData: kernel.bootstrapData,\n getFeatureFlags: kernel.getFeatureFlags.bind(kernel),\n loadDynamicBricksInBrickConf:\n kernel.loadDynamicBricksInBrickConf.bind(kernel),\n getProviderBrick: kernel.getProviderBrick.bind(kernel),\n ...overrides,\n } as Kernel;\n}\n\nexport class Runtime implements AbstractRuntime {\n async bootstrap(mountPoints: MountPoints): Promise<void> {\n if (kernel !== undefined) {\n throw new Error(\"Cannot bootstrap more than once.\");\n }\n kernel = new Kernel();\n await kernel.bootstrap(mountPoints);\n }\n\n get menuBar(): MenuBar {\n return kernel.menuBar;\n }\n\n get appBar(): AppBar {\n return kernel.appBar;\n }\n\n /* istanbul ignore next */\n getCurrentApp(): MicroApp {\n return kernel.currentApp;\n }\n\n /* istanbul ignore next */\n getRecentApps(): RecentApps {\n return kernel.getRecentApps();\n }\n\n /* istanbul ignore next */\n getCurrentRoute(): RouteConf {\n return kernel.currentRoute;\n }\n\n getMicroApps({\n excludeInstalling = false,\n includeInternal = false,\n } = {}): MicroApp[] {\n let apps = kernel.bootstrapData.microApps;\n if (excludeInstalling) {\n apps = apps.filter((app) => app.installStatus !== \"running\");\n }\n if (!includeInternal) {\n apps = apps.filter((app) => !app.internal);\n }\n return apps;\n }\n\n hasInstalledApp(appId: string, matchVersion?: string): boolean {\n return kernel.bootstrapData.microApps.some((app) => {\n const foundApp = app.id === appId && app.installStatus !== \"running\";\n if (!matchVersion || !foundApp) {\n return foundApp;\n }\n // Valid `matchVersion`:\n // >=1.2.3\n // >1.2.3\n // =1.2.3\n // <=1.2.3\n // <1.2.3\n const matches = matchVersion.match(/^([><]=?|=)(.*)$/);\n try {\n if (!matches) {\n throw new TypeError(`Invalid match version: ${matchVersion}`);\n }\n return compareVersions.compare(\n app.currentVersion,\n matches[2],\n matches[1] as compareVersions.CompareOperator\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n return false;\n });\n }\n\n reloadMicroApps(interceptorParams?: InterceptorParams): Promise<void> {\n return kernel.reloadMicroApps(\n {\n check_login: true,\n },\n interceptorParams\n );\n }\n\n /* istanbul ignore next */\n reloadSharedData(): void {\n return kernel.loadSharedData();\n }\n\n /* istanbul ignore next */\n getDesktops(): DesktopData[] {\n return kernel.bootstrapData.desktops || [];\n }\n\n /* istanbul ignore next */\n getLaunchpadSiteMap(): SiteMapItem[] {\n return kernel.bootstrapData.siteSort || [];\n }\n\n /* istanbul ignore next */\n getAllUserInfo(): UserInfo[] {\n // eslint-disable-next-line no-console\n console.warn(\n \"`getRuntime().getAllUserInfo()` is deprecated and will always return an empty array, please use `await getRuntime().getAllUserMapAsync()` instead\"\n );\n return [];\n }\n\n /* istanbul ignore next */\n getAllUserMap(): Map<string, UserInfo> {\n // eslint-disable-next-line no-console\n console.warn(\n \"`getRuntime().getAllUserMap()` is deprecated and will always return an empty Map, please use `await getRuntime().getAllUserMapAsync()` instead\"\n );\n return new Map();\n }\n\n /* istanbul ignore next */\n getAllUserMapAsync(): Promise<Map<string, UserInfo>> {\n kernel.loadUsersAsync();\n return kernel.allUserMapPromise;\n }\n\n /* istanbul ignore next */\n getMagicBrickConfigMapAsync(): Promise<Map<string, MagicBrickConfig>> {\n kernel.loadMagicBrickConfigAsync();\n return kernel.allMagicBrickConfigMapPromise;\n }\n\n /* istanbul ignore next */\n fetchMenu(menuId: string): Promise<SidebarMenu> {\n return processMenu(menuId, kernel.router.getCurrentContext(), kernel);\n }\n\n /**\n * 切换主体内容 `filter: blur(...)`;\n * @deprecated\n * @param blur\n */\n toggleFilterOfBlur(blur: boolean): void {\n document.body.classList.toggle(\"filter-of-blur\", blur);\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n /* istanbul ignore next */\n getFeatureFlags(): FeatureFlags {\n return kernel.getFeatureFlags();\n }\n\n getHomepage(): string {\n return kernel.bootstrapData.settings?.homepage ?? \"/\";\n }\n\n getBrandSettings(): Record<string, string> {\n return Object.assign(\n { base_title: \"DevOps 管理专家\" },\n kernel.bootstrapData.settings?.brand\n );\n }\n\n getLaunchpadSettings(): { columns: number; rows: number } {\n return Object.assign(\n {\n columns: 7,\n rows: 4,\n },\n kernel.bootstrapData.settings?.launchpad\n );\n }\n\n getMiscSettings(): Record<string, unknown> {\n return Object.assign({}, kernel.bootstrapData.settings?.misc);\n }\n\n registerBrickTemplate = registerBrickTemplate;\n registerCustomTemplate = registerCustomTemplate;\n registerCustomProcessor = registerCustomProcessor;\n registerLazyBricks = registerLazyBricks;\n registerWidgetFunctions = registerWidgetFunctions;\n registerWidgetI18n = registerWidgetI18n;\n\n /* istanbul ignore next */\n getRelatedApps(appId: string): RelatedApp[] {\n // eslint-disable-next-line no-console\n console.warn(\n \"`getRuntime().getRelatedApps()` is deprecated and will always return an empty array, please use `await getRuntime().getRelatedAppsAsync()` instead\"\n );\n return [];\n }\n\n /* istanbul ignore next */\n getRelatedAppsAsync(appId: string): Promise<RelatedApp[]> {\n return kernel.getRelatedAppsAsync(appId);\n }\n\n /* istanbul ignore next */\n popWorkspaceStack(): void {\n return kernel.popWorkspaceStack();\n }\n\n /* istanbul ignore next */\n resetWorkspaceStack(): void {\n kernel.workspaceStack = [];\n }\n\n getBasePath = getBasePath;\n getCurrentTheme = getCurrentTheme;\n getCurrentMode = getCurrentMode;\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetResolver(): Resolver {\n if (process.env.NODE_ENV === \"test\") {\n return { resolve: () => Promise.resolve() } as any;\n }\n return kernel.router.getResolver();\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetRouterState(): RouterState {\n if (process.env.NODE_ENV === \"test\") {\n return \"mounted\";\n }\n return kernel.router.getState();\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetRouterRenderId(): string {\n if (process.env.NODE_ENV === \"test\") {\n return \"render-id-1\";\n }\n return kernel.router.getRenderId();\n}\n\n/* istanbul ignore next */\nexport function _internalApiMessageCloseHandler(event: CloseEvent): void {\n return kernel.router.handleMessageClose(event);\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetCurrentContext(): PluginRuntimeContext {\n if (process.env.NODE_ENV === \"test\") {\n return {} as any;\n }\n return kernel.router.getCurrentContext();\n}\n\nexport function _internalApiHasMatchedApp(pathname: string): boolean {\n for (const { homepage } of kernel.bootstrapData.microApps) {\n if (pathname === homepage || pathname.startsWith(`${homepage}/`)) {\n return true;\n }\n }\n return false;\n}\n\n/* istanbul ignore next */\nexport function _dev_only_checkoutTplContext(\n context: CustomTemplateContext\n): void {\n if (context) {\n fakeTplContext = context;\n } else {\n fakeTplContext = null;\n }\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetTplContext(): CustomTemplateContext {\n if (process.env.NODE_ENV === \"test\") {\n return {} as any;\n }\n if (fakeTplContext) {\n return fakeTplContext;\n }\n return kernel.router.getTplContext();\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetProviderBrick(\n provider: string\n): Promise<HTMLElement> {\n return kernel.getProviderBrick(provider);\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetMicroAppApiOrchestrationMap(): Promise<\n Map<string, CustomApiDefinition>\n> {\n return kernel.allMicroAppApiOrchestrationPromise;\n}\n\n/* istanbul ignore next */\nexport function _internalApiLoadDynamicBricksInBrickConf(\n brickConf: BrickConf\n): Promise<void> {\n return kernel.loadDynamicBricksInBrickConf(brickConf);\n}\n","import { History, LocationDescriptorObject } from \"history\";\nimport {\n PluginHistoryState,\n ExtendedHistory,\n UpdateQueryFunction,\n UpdateQueryOptions,\n UpdateAnchorFunction,\n} from \"@next-core/brick-types\";\nimport { getBasePath } from \"./getBasePath\";\nimport { _internalApiHasMatchedApp } from \"../core/Runtime\";\n\nexport function historyExtended(\n browserHistory: History<PluginHistoryState>\n): ExtendedHistory {\n const { push: originalPush, replace: originalReplace } = browserHistory;\n function updateQueryFactory(method: \"push\" | \"replace\"): UpdateQueryFunction {\n return function updateQuery(\n query: Record<string, any>,\n options: UpdateQueryOptions = {}\n ): void {\n const { extraQuery, clear, keepHash, ...state } = options;\n const urlSearchParams = new URLSearchParams(\n clear ? \"\" : browserHistory.location.search\n );\n const params: Record<string, any> = {};\n Object.assign(params, query, extraQuery);\n for (const [key, value] of Object.entries(params)) {\n if (Array.isArray(value)) {\n urlSearchParams.delete(key);\n for (const item of value) {\n urlSearchParams.append(key, item);\n }\n } else if (value === undefined || value === null || value === \"\") {\n urlSearchParams.delete(key);\n } else {\n urlSearchParams.set(key, value);\n }\n }\n (method === \"push\" ? originalPush : originalReplace)(\n `?${urlSearchParams.toString()}${\n keepHash ? browserHistory.location.hash : \"\"\n }`,\n state\n );\n };\n }\n\n function updateAnchorFactory(\n method: \"push\" /* | \"replace\" */\n ): UpdateAnchorFunction {\n return function updateAnchor(\n hash: string,\n state?: PluginHistoryState\n ): void {\n (method === \"push\" ? originalPush : originalReplace)({\n ...browserHistory.location,\n key: undefined,\n hash,\n state: {\n // The default notify is false\n notify: false,\n ...state,\n },\n });\n };\n }\n\n function reload(): void {\n originalReplace({\n ...browserHistory.location,\n state: {\n ...browserHistory.location.state,\n // Always notify\n notify: true,\n },\n });\n }\n\n let blockMessage: string;\n\n function setBlockMessage(message: string): void {\n blockMessage = message;\n }\n\n function getBlockMessage(): string {\n return blockMessage;\n }\n\n function unblock(): void {\n blockMessage = undefined;\n }\n\n return {\n pushQuery: updateQueryFactory(\"push\"),\n replaceQuery: updateQueryFactory(\"replace\"),\n pushAnchor: updateAnchorFactory(\"push\"),\n // replaceAnchor: updateAnchorFactory(\"replace\"),\n reload,\n setBlockMessage,\n getBlockMessage,\n unblock,\n ...(window.STANDALONE_MICRO_APPS\n ? standaloneHistoryOverridden(browserHistory)\n : null),\n };\n}\n\n/**\n * Override history for standalone micro apps.\n *\n * when `push` or `replace` to other apps, force page refresh.\n */\nfunction standaloneHistoryOverridden(\n browserHistory: History<PluginHistoryState>\n): Pick<History<PluginHistoryState>, \"push\" | \"replace\"> {\n const { push: originalPush, replace: originalReplace } = browserHistory;\n function updateFactory(\n method: \"push\" | \"replace\"\n ): History<PluginHistoryState>[\"push\"] {\n return function update(path, state?) {\n let pathname: string;\n const pathIsString = typeof path === \"string\";\n if (pathIsString) {\n pathname = path;\n } else {\n pathname = path.pathname;\n }\n if (_internalApiHasMatchedApp(pathname)) {\n return (method === \"push\" ? originalPush : originalReplace)(\n path as string,\n state\n );\n }\n // Going to outside apps.\n return location[method === \"push\" ? \"assign\" : \"replace\"](\n pathIsString\n ? getBasePath() + path.replace(/^\\//, \"\")\n : browserHistory.createHref(\n path as LocationDescriptorObject<PluginHistoryState>\n )\n );\n };\n }\n return {\n push: updateFactory(\"push\"),\n replace: updateFactory(\"replace\"),\n };\n}\n","import { createBrowserHistory } from \"history\";\nimport { PluginHistory } from \"@next-core/brick-types\";\nimport { historyExtended } from \"./internal/historyExtended\";\nimport { getBasePath } from \"./internal/getBasePath\";\n\nlet history: PluginHistory;\n\n/** @internal */\nexport function createHistory(): PluginHistory {\n const browserHistory = createBrowserHistory({\n basename: getBasePath().replace(/\\/$/, \"\"),\n });\n Object.assign(browserHistory, historyExtended(browserHistory));\n history = browserHistory as PluginHistory;\n return history;\n}\n\n/**\n * 获取系统会话历史管理器。\n *\n * @returns 系统会话历史管理器。\n */\nexport function getHistory(): PluginHistory {\n return history;\n}\n","import { HttpResponseError } from \"@next-core/brick-http\";\n\nexport function isUnauthenticatedError(error: any): boolean {\n return (\n error instanceof HttpResponseError &&\n error.response.status === 401 &&\n !!error.responseJson &&\n error.responseJson.code === 100003\n );\n}\n","import React from \"react\";\nimport {\n HttpResponseError,\n HttpParseError,\n HttpFetchError,\n} from \"@next-core/brick-http\";\nimport { Modal } from \"antd\";\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\nimport { ModalFunc } from \"antd/lib/modal/confirm\";\nimport i18next from \"i18next\";\nimport { K, NS_BRICK_KIT } from \"./i18n/constants\";\nimport { getHistory } from \"./history\";\nimport { isUnauthenticatedError } from \"./internal/isUnauthenticatedError\";\nimport { getRuntime } from \"./runtime\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(\n error: Error | HttpFetchError | HttpResponseError | HttpParseError | Event\n): string {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n return i18next.t(`${NS_BRICK_KIT}:${K.NETWORK_ERROR}`);\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n return error.toString();\n}\n\nlet unauthenticatedConfirmModal: ReturnType<ModalFunc>;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(\n error: Error | HttpFetchError | HttpResponseError | HttpParseError\n): ReturnType<ModalFunc> {\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error)) {\n // Do not show multiple confirm modals.\n if (unauthenticatedConfirmModal) {\n return;\n }\n unauthenticatedConfirmModal = Modal.confirm({\n icon: <ExclamationCircleOutlined />,\n content: <LoginTimeoutMessage />,\n okText: i18next.t(`${NS_BRICK_KIT}:${K.MODAL_OK}`),\n cancelText: i18next.t(`${NS_BRICK_KIT}:${K.MODAL_CANCEL}`),\n onOk: () => {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined,\n },\n });\n },\n });\n return;\n }\n\n return Modal.error({\n title: i18next.t(`${NS_BRICK_KIT}:${K.REQUEST_FAILED}`),\n content: (\n <div\n style={{\n whiteSpace: \"pre-wrap\",\n }}\n >\n {httpErrorToString(error)}\n </div>\n ),\n okText: i18next.t(`${NS_BRICK_KIT}:${K.MODAL_OK}`),\n });\n}\n\nexport function LoginTimeoutMessage(): React.ReactElement {\n React.useEffect(() => {\n // Unset confirm modal when it's destroyed.\n return () => {\n unauthenticatedConfirmModal = undefined;\n };\n }, []);\n return <div>{i18next.t(`${NS_BRICK_KIT}:${K.LOGIN_TIMEOUT_MESSAGE}`)}</div>;\n}\n","import {\n PluginWebSocketMessageTopic,\n PluginWebSocketMessage,\n PluginWebSocketMessageEvent,\n} from \"./interfaces\";\n\nexport class WebsocketMessageRequest {\n topic: string;\n data: string;\n event: PluginWebSocketMessageEvent;\n message: PluginWebSocketMessage<PluginWebSocketMessageTopic>;\n constructor(\n event: PluginWebSocketMessageEvent,\n topic: PluginWebSocketMessageTopic\n ) {\n this.event = event;\n this.topic = JSON.stringify(topic);\n this.message = {\n event: event,\n payload: topic,\n };\n this.data = JSON.stringify(this.message);\n }\n\n get identity(): string {\n const { system, topic } = this.message.payload;\n return JSON.stringify({\n system,\n topic,\n event: this.event,\n });\n }\n}\n","import {\n BrickEventHandlerCallback,\n PluginRuntimeContext,\n} from \"@next-core/brick-types\";\nimport { RuntimeBrick } from \"../../core/BrickNode\";\n\nexport interface PluginWebSocketOptions {\n url: string;\n reconnectTimeout?: number;\n retryLimit?: number | null;\n}\n\nexport enum PluginWebSocketMessageEvent {\n START_SESSION = \"SYSTEM.START_SESSION\",\n SESSION_STARTED = \"SYSTEM.SESSION_STARTED\",\n SESSION_FINISHED = \"SYSTEM.SESSION_FINISHED\",\n SESSION_RESTORE = \"SYSTEM.SESSION_RESTORE\",\n SESSION_RESTORE_SUCCESS = \"SYSTEM.SESSION_RESTORE_SUCCESS\",\n SESSION_RESTORE_FAILED = \"SYSTEM.SESSION_RESTORE_FAILED\",\n SUB = \"TOPIC.SUB\",\n SUB_SUCCESS = \"TOPIC.SUB_SUCCESS\",\n SUB_FAILED = \"TOPIC.SUB_FAILED\",\n UNSUB = \"TOPIC.UNSUB\",\n UNSUB_SUCCESS = \"TOPIC.UNSUB_SUCCESS\",\n UNSUB_FAILED = \"TOPIC.UNSUB_FAILED\",\n MESSAGE_PUSH = \"MESSAGE.PUSH\",\n}\n\nexport interface PluginWebSocketMessage<T> {\n event: PluginWebSocketMessageEvent;\n sessionId?: string;\n payload: T;\n}\n\nexport interface PluginWebSocketMessageTopic {\n source?: string;\n system: string;\n topic: string;\n}\n\nexport interface PluginWebSocketMessageResponsePayload\n extends PluginWebSocketMessageTopic {\n expire: number;\n message: Record<string, any>;\n}\n\nexport interface MessageBrickEventHandlerCallback\n extends Pick<BrickEventHandlerCallback, \"success\" | \"error\"> {\n runtimeBrick: RuntimeBrick;\n context: PluginRuntimeContext;\n}\n","import {\n PluginWebSocketMessage,\n PluginWebSocketMessageEvent,\n PluginWebSocketMessageResponsePayload,\n} from \"./interfaces\";\n\nexport class WebsocketMessageResponse {\n topic: string;\n data: string;\n event: PluginWebSocketMessageEvent;\n message: PluginWebSocketMessage<PluginWebSocketMessageResponsePayload>;\n\n constructor(response: string) {\n this.data = response;\n this.message = JSON.parse(response);\n this.event = this.message.event;\n const { system, topic } = this.message.payload;\n this.topic = JSON.stringify({ system, topic });\n }\n\n get identity(): string {\n const { system, topic } = this.message.payload;\n let event;\n switch (this.event) {\n case PluginWebSocketMessageEvent.SUB_SUCCESS:\n case PluginWebSocketMessageEvent.SUB_FAILED:\n event = PluginWebSocketMessageEvent.SUB;\n break;\n case PluginWebSocketMessageEvent.UNSUB_SUCCESS:\n case PluginWebSocketMessageEvent.UNSUB_FAILED:\n event = PluginWebSocketMessageEvent.UNSUB;\n break;\n default:\n event = this.event;\n }\n return JSON.stringify({\n system,\n topic,\n event,\n });\n }\n}\n","import { PluginWebSocketOptions } from \"./interfaces\";\nimport { WebsocketMessageResponse } from \"./WebsocketMessageResponse\";\n\nexport class WebSocketService {\n private retryCount = 0;\n private ws: WebSocket = null;\n private lockReconnect = false;\n public options: PluginWebSocketOptions;\n private messageQueue: Set<string> = new Set();\n public state: \"initial\" | \"connecting\" | \"pending\" | \"finished\" = \"initial\";\n\n private readonly defaultOptions: PluginWebSocketOptions = {\n url: null,\n reconnectTimeout: 1000,\n retryLimit: 6,\n };\n\n constructor(options: PluginWebSocketOptions) {\n this.options = { ...this.defaultOptions, ...options };\n this.createWebSocket();\n }\n\n get readyState(): number {\n return this.ws.readyState;\n }\n\n createWebSocket(): void {\n try {\n this.ws = new WebSocket(this.options.url);\n this.state = \"connecting\";\n this.init();\n } catch (e) {\n this.reconnect();\n /* istanbul ignore next */\n throw e;\n }\n }\n\n private init(): void {\n this.ws.onopen = () => {\n this.state = \"pending\";\n this.sendQueuedMessages();\n this.onOpen();\n this.retryCount = 0;\n this.options.reconnectTimeout = this.defaultOptions.reconnectTimeout;\n };\n\n this.ws.onclose = (event: CloseEvent) => {\n if (this.state === \"finished\") {\n this.onClose(event);\n // eslint-disable-next-line no-console\n console.warn(\"WebSocket was closed.\", event);\n }\n // Error code 1000 means that the connection was closed normally.\n // Try to reconnect.\n if (event.code !== 1000) {\n /* istanbul ignore if */\n if (!navigator.onLine) {\n // eslint-disable-next-line no-console\n console.error(\n \"You are offline. Please connect to the Internet and try again.\"\n );\n }\n this.reconnect();\n }\n };\n\n this.ws.onerror = (event: Event) => {\n this.onError(event);\n\n // eslint-disable-next-line no-console\n console.log(\"WebSocket encountered error: \", event);\n this.reconnect();\n };\n\n this.ws.onmessage = (event: MessageEvent) => {\n const response = new WebsocketMessageResponse(event.data);\n this.onMessage(response);\n };\n }\n\n private sendQueuedMessages(): void {\n if (this.messageQueue.size > 0) {\n [...this.messageQueue].forEach((message) => {\n this.messageQueue.delete(message);\n this.send(message);\n });\n }\n }\n\n send(data: string): void {\n if (this.readyState === WebSocket.OPEN) {\n this.ws.send(data);\n } else {\n this.messageQueue.add(data);\n }\n }\n\n reconnect(): void {\n if (\n this.options.retryLimit > 0 &&\n this.options.retryLimit <= this.retryCount\n ) {\n this.state = \"finished\";\n return;\n }\n if (this.lockReconnect) return;\n\n this.lockReconnect = true;\n this.retryCount++;\n this.onReconnect();\n\n // eslint-disable-next-line no-console\n console.warn(\"WebSocket server reconnecting...\");\n setTimeout(() => {\n this.createWebSocket();\n this.lockReconnect = false;\n this.options.reconnectTimeout = this.options.reconnectTimeout * 2;\n }, this.options.reconnectTimeout);\n }\n\n close(): void {\n this.ws.close();\n }\n\n // Override hook function\n /* eslint-disable @typescript-eslint/no-empty-function */\n\n onOpen(): void {}\n\n // istanbul ignore next\n onClose(event: CloseEvent): void {}\n\n onError(event: Event): void {}\n\n onMessage(message: WebsocketMessageResponse): void {}\n\n onReconnect(): void {}\n /* eslint-enable @typescript-eslint/no-empty-function */\n}\n","import { getBasePath } from \"../internal/getBasePath\";\nimport { WebSocketService } from \"./WebSocketService\";\n\nlet websocket: WebSocketService;\n\nexport const createWebSocket = (): WebSocketService => {\n if (!websocket) {\n const protocol = window.location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n websocket = new WebSocketService({\n url: `${protocol}//${\n window.location.host\n }${getBasePath()}api/websocket_service/v1/ws`,\n });\n }\n return websocket;\n};\n\nexport function getWebSocket(): WebSocketService {\n return websocket;\n}\n","module.exports = function (xs, fn) {\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n var x = fn(xs[i], i);\n if (isArray(x)) res.push.apply(res, x);\n else res.push(x);\n }\n return res;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","var concatMap = require('concat-map');\nvar balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction identity(e) {\n return e;\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m || /\\$$/.test(m.pre)) return [str];\n\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = concatMap(n, function(el) { return expand(el, false) });\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n\n return expansions;\n}\n\n","module.exports = minimatch\nminimatch.Minimatch = Minimatch\n\nvar path = { sep: '/' }\ntry {\n path = require('path')\n} catch (er) {}\n\nvar GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}\nvar expand = require('brace-expansion')\n\nvar plTypes = {\n '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},\n '?': { open: '(?:', close: ')?' },\n '+': { open: '(?:', close: ')+' },\n '*': { open: '(?:', close: ')*' },\n '@': { open: '(?:', close: ')' }\n}\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nvar qmark = '[^/]'\n\n// * => any number of characters\nvar star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nvar twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nvar twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'\n\n// characters that need to be escaped in RegExp.\nvar reSpecials = charSet('().*{}+?[]^$\\\\!')\n\n// \"abc\" -> { a:true, b:true, c:true }\nfunction charSet (s) {\n return s.split('').reduce(function (set, c) {\n set[c] = true\n return set\n }, {})\n}\n\n// normalizes slashes.\nvar slashSplit = /\\/+/\n\nminimatch.filter = filter\nfunction filter (pattern, options) {\n options = options || {}\n return function (p, i, list) {\n return minimatch(p, pattern, options)\n }\n}\n\nfunction ext (a, b) {\n a = a || {}\n b = b || {}\n var t = {}\n Object.keys(b).forEach(function (k) {\n t[k] = b[k]\n })\n Object.keys(a).forEach(function (k) {\n t[k] = a[k]\n })\n return t\n}\n\nminimatch.defaults = function (def) {\n if (!def || !Object.keys(def).length) return minimatch\n\n var orig = minimatch\n\n var m = function minimatch (p, pattern, options) {\n return orig.minimatch(p, pattern, ext(def, options))\n }\n\n m.Minimatch = function Minimatch (pattern, options) {\n return new orig.Minimatch(pattern, ext(def, options))\n }\n\n return m\n}\n\nMinimatch.defaults = function (def) {\n if (!def || !Object.keys(def).length) return Minimatch\n return minimatch.defaults(def).Minimatch\n}\n\nfunction minimatch (p, pattern, options) {\n if (typeof pattern !== 'string') {\n throw new TypeError('glob pattern string required')\n }\n\n if (!options) options = {}\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n // \"\" only matches \"\"\n if (pattern.trim() === '') return p === ''\n\n return new Minimatch(pattern, options).match(p)\n}\n\nfunction Minimatch (pattern, options) {\n if (!(this instanceof Minimatch)) {\n return new Minimatch(pattern, options)\n }\n\n if (typeof pattern !== 'string') {\n throw new TypeError('glob pattern string required')\n }\n\n if (!options) options = {}\n pattern = pattern.trim()\n\n // windows support: need to use /, not \\\n if (path.sep !== '/') {\n pattern = pattern.split(path.sep).join('/')\n }\n\n this.options = options\n this.set = []\n this.pattern = pattern\n this.regexp = null\n this.negate = false\n this.comment = false\n this.empty = false\n\n // make the set of regexps etc.\n this.make()\n}\n\nMinimatch.prototype.debug = function () {}\n\nMinimatch.prototype.make = make\nfunction make () {\n // don't do it more than once.\n if (this._made) return\n\n var pattern = this.pattern\n var options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n var set = this.globSet = this.braceExpand()\n\n if (options.debug) this.debug = console.error\n\n this.debug(this.pattern, set)\n\n // step 3: now we have a set, so turn each one into a series of path-portion\n // matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n set = this.globParts = set.map(function (s) {\n return s.split(slashSplit)\n })\n\n this.debug(this.pattern, set)\n\n // glob --> regexps\n set = set.map(function (s, si, set) {\n return s.map(this.parse, this)\n }, this)\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n set = set.filter(function (s) {\n return s.indexOf(false) === -1\n })\n\n this.debug(this.pattern, set)\n\n this.set = set\n}\n\nMinimatch.prototype.parseNegate = parseNegate\nfunction parseNegate () {\n var pattern = this.pattern\n var negate = false\n var options = this.options\n var negateOffset = 0\n\n if (options.nonegate) return\n\n for (var i = 0, l = pattern.length\n ; i < l && pattern.charAt(i) === '!'\n ; i++) {\n negate = !negate\n negateOffset++\n }\n\n if (negateOffset) this.pattern = pattern.substr(negateOffset)\n this.negate = negate\n}\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nminimatch.braceExpand = function (pattern, options) {\n return braceExpand(pattern, options)\n}\n\nMinimatch.prototype.braceExpand = braceExpand\n\nfunction braceExpand (pattern, options) {\n if (!options) {\n if (this instanceof Minimatch) {\n options = this.options\n } else {\n options = {}\n }\n }\n\n pattern = typeof pattern === 'undefined'\n ? this.pattern : pattern\n\n if (typeof pattern === 'undefined') {\n throw new TypeError('undefined pattern')\n }\n\n if (options.nobrace ||\n !pattern.match(/\\{.*\\}/)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nMinimatch.prototype.parse = parse\nvar SUBPARSE = {}\nfunction parse (pattern, isSub) {\n if (pattern.length > 1024 * 64) {\n throw new TypeError('pattern is too long')\n }\n\n var options = this.options\n\n // shortcuts\n if (!options.noglobstar && pattern === '**') return GLOBSTAR\n if (pattern === '') return ''\n\n var re = ''\n var hasMagic = !!options.nocase\n var escaping = false\n // ? => one single character\n var patternListStack = []\n var negativeLists = []\n var stateChar\n var inClass = false\n var reClassStart = -1\n var classStart = -1\n // . and .. never match anything that doesn't start with .,\n // even when options.dot is set.\n var patternStart = pattern.charAt(0) === '.' ? '' // anything\n // not (start or / followed by . or .. followed by / or end)\n : options.dot ? '(?!(?:^|\\\\\\/)\\\\.{1,2}(?:$|\\\\\\/))'\n : '(?!\\\\.)'\n var self = this\n\n function clearStateChar () {\n if (stateChar) {\n // we had some state-tracking character\n // that wasn't consumed by this pass.\n switch (stateChar) {\n case '*':\n re += star\n hasMagic = true\n break\n case '?':\n re += qmark\n hasMagic = true\n break\n default:\n re += '\\\\' + stateChar\n break\n }\n self.debug('clearStateChar %j %j', stateChar, re)\n stateChar = false\n }\n }\n\n for (var i = 0, len = pattern.length, c\n ; (i < len) && (c = pattern.charAt(i))\n ; i++) {\n this.debug('%s\\t%s %s %j', pattern, i, re, c)\n\n // skip over any that are escaped.\n if (escaping && reSpecials[c]) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n switch (c) {\n case '/':\n // completely not allowed, even escaped.\n // Should already be path-split by now.\n return false\n\n case '\\\\':\n clearStateChar()\n escaping = true\n continue\n\n // the various stateChar values\n // for the \"extglob\" stuff.\n case '?':\n case '*':\n case '+':\n case '@':\n case '!':\n this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c)\n\n // all of those are literals inside a class, except that\n // the glob [!a] means [^a] in regexp\n if (inClass) {\n this.debug(' in class')\n if (c === '!' && i === classStart + 1) c = '^'\n re += c\n continue\n }\n\n // if we already have a stateChar, then it means\n // that there was something like ** or +? in there.\n // Handle the stateChar, then proceed with this one.\n self.debug('call clearStateChar %j', stateChar)\n clearStateChar()\n stateChar = c\n // if extglob is disabled, then +(asdf|foo) isn't a thing.\n // just clear the statechar *now*, rather than even diving into\n // the patternList stuff.\n if (options.noext) clearStateChar()\n continue\n\n case '(':\n if (inClass) {\n re += '('\n continue\n }\n\n if (!stateChar) {\n re += '\\\\('\n continue\n }\n\n patternListStack.push({\n type: stateChar,\n start: i - 1,\n reStart: re.length,\n open: plTypes[stateChar].open,\n close: plTypes[stateChar].close\n })\n // negation is (?:(?!js)[^/]*)\n re += stateChar === '!' ? '(?:(?!(?:' : '(?:'\n this.debug('plType %j %j', stateChar, re)\n stateChar = false\n continue\n\n case ')':\n if (inClass || !patternListStack.length) {\n re += '\\\\)'\n continue\n }\n\n clearStateChar()\n hasMagic = true\n var pl = patternListStack.pop()\n // negation is (?:(?!js)[^/]*)\n // The others are (?:<pattern>)<type>\n re += pl.close\n if (pl.type === '!') {\n negativeLists.push(pl)\n }\n pl.reEnd = re.length\n continue\n\n case '|':\n if (inClass || !patternListStack.length || escaping) {\n re += '\\\\|'\n escaping = false\n continue\n }\n\n clearStateChar()\n re += '|'\n continue\n\n // these are mostly the same in regexp and glob\n case '[':\n // swallow any state-tracking char before the [\n clearStateChar()\n\n if (inClass) {\n re += '\\\\' + c\n continue\n }\n\n inClass = true\n classStart = i\n reClassStart = re.length\n re += c\n continue\n\n case ']':\n // a right bracket shall lose its special\n // meaning and represent itself in\n // a bracket expression if it occurs\n // first in the list. -- POSIX.2 2.8.3.2\n if (i === classStart + 1 || !inClass) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n // handle the case where we left a class open.\n // \"[z-a]\" is valid, equivalent to \"\\[z-a\\]\"\n if (inClass) {\n // split where the last [ was, make sure we don't have\n // an invalid re. if so, re-walk the contents of the\n // would-be class to re-translate any characters that\n // were passed through as-is\n // TODO: It would probably be faster to determine this\n // without a try/catch and a new RegExp, but it's tricky\n // to do safely. For now, this is safe and works.\n var cs = pattern.substring(classStart + 1, i)\n try {\n RegExp('[' + cs + ']')\n } catch (er) {\n // not a valid class!\n var sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0] + '\\\\]'\n hasMagic = hasMagic || sp[1]\n inClass = false\n continue\n }\n }\n\n // finish up the class.\n hasMagic = true\n inClass = false\n re += c\n continue\n\n default:\n // swallow any state char that wasn't consumed\n clearStateChar()\n\n if (escaping) {\n // no need\n escaping = false\n } else if (reSpecials[c]\n && !(c === '^' && inClass)) {\n re += '\\\\'\n }\n\n re += c\n\n } // switch\n } // for\n\n // handle the case where we left a class open.\n // \"[abc\" is valid, equivalent to \"\\[abc\"\n if (inClass) {\n // split where the last [ was, and escape it\n // this is a huge pita. We now have to re-walk\n // the contents of the would-be class to re-translate\n // any characters that were passed through as-is\n cs = pattern.substr(classStart + 1)\n sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0]\n hasMagic = hasMagic || sp[1]\n }\n\n // handle the case where we had a +( thing at the *end*\n // of the pattern.\n // each pattern list stack adds 3 chars, and we need to go through\n // and escape any | chars that were passed through as-is for the regexp.\n // Go through and escape them, taking care not to double-escape any\n // | chars that were already escaped.\n for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n var tail = re.slice(pl.reStart + pl.open.length)\n this.debug('setting tail', re, pl)\n // maybe some even number of \\, then maybe 1 \\, followed by a |\n tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, function (_, $1, $2) {\n if (!$2) {\n // the | isn't already escaped, so escape it.\n $2 = '\\\\'\n }\n\n // need to escape all those slashes *again*, without escaping the\n // one that we need for escaping the | character. As it works out,\n // escaping an even number of slashes can be done by simply repeating\n // it exactly after itself. That's why this trick works.\n //\n // I am sorry that you have to see this.\n return $1 + $1 + $2 + '|'\n })\n\n this.debug('tail=%j\\n %s', tail, tail, pl, re)\n var t = pl.type === '*' ? star\n : pl.type === '?' ? qmark\n : '\\\\' + pl.type\n\n hasMagic = true\n re = re.slice(0, pl.reStart) + t + '\\\\(' + tail\n }\n\n // handle trailing things that only matter at the very end.\n clearStateChar()\n if (escaping) {\n // trailing \\\\\n re += '\\\\\\\\'\n }\n\n // only need to apply the nodot start if the re starts with\n // something that could conceivably capture a dot\n var addPatternStart = false\n switch (re.charAt(0)) {\n case '.':\n case '[':\n case '(': addPatternStart = true\n }\n\n // Hack to work around lack of negative lookbehind in JS\n // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n // like 'a.xyz.yz' doesn't match. So, the first negative\n // lookahead, has to look ALL the way ahead, to the end of\n // the pattern.\n for (var n = negativeLists.length - 1; n > -1; n--) {\n var nl = negativeLists[n]\n\n var nlBefore = re.slice(0, nl.reStart)\n var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)\n var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)\n var nlAfter = re.slice(nl.reEnd)\n\n nlLast += nlAfter\n\n // Handle nested stuff like *(*.js|!(*.json)), where open parens\n // mean that we should *not* include the ) in the bit that is considered\n // \"after\" the negated section.\n var openParensBefore = nlBefore.split('(').length - 1\n var cleanAfter = nlAfter\n for (i = 0; i < openParensBefore; i++) {\n cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '')\n }\n nlAfter = cleanAfter\n\n var dollar = ''\n if (nlAfter === '' && isSub !== SUBPARSE) {\n dollar = '$'\n }\n var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast\n re = newRe\n }\n\n // if the re is not \"\" at this point, then we need to make sure\n // it doesn't match against an empty path part.\n // Otherwise a/* will match a/, which it should not.\n if (re !== '' && hasMagic) {\n re = '(?=.)' + re\n }\n\n if (addPatternStart) {\n re = patternStart + re\n }\n\n // parsing just a piece of a larger pattern.\n if (isSub === SUBPARSE) {\n return [re, hasMagic]\n }\n\n // skip the regexp for non-magical patterns\n // unescape anything in it, though, so that it'll be\n // an exact match against a file etc.\n if (!hasMagic) {\n return globUnescape(pattern)\n }\n\n var flags = options.nocase ? 'i' : ''\n try {\n var regExp = new RegExp('^' + re + '$', flags)\n } catch (er) {\n // If it was an invalid regular expression, then it can't match\n // anything. This trick looks for a character after the end of\n // the string, which is of course impossible, except in multi-line\n // mode, but it's not a /m regex.\n return new RegExp('$.')\n }\n\n regExp._glob = pattern\n regExp._src = re\n\n return regExp\n}\n\nminimatch.makeRe = function (pattern, options) {\n return new Minimatch(pattern, options || {}).makeRe()\n}\n\nMinimatch.prototype.makeRe = makeRe\nfunction makeRe () {\n if (this.regexp || this.regexp === false) return this.regexp\n\n // at this point, this.set is a 2d array of partial\n // pattern strings, or \"**\".\n //\n // It's better to use .match(). This function shouldn't\n // be used, really, but it's pretty convenient sometimes,\n // when you just want to work with a regex.\n var set = this.set\n\n if (!set.length) {\n this.regexp = false\n return this.regexp\n }\n var options = this.options\n\n var twoStar = options.noglobstar ? star\n : options.dot ? twoStarDot\n : twoStarNoDot\n var flags = options.nocase ? 'i' : ''\n\n var re = set.map(function (pattern) {\n return pattern.map(function (p) {\n return (p === GLOBSTAR) ? twoStar\n : (typeof p === 'string') ? regExpEscape(p)\n : p._src\n }).join('\\\\\\/')\n }).join('|')\n\n // must match entire pattern\n // ending in a * or ** will make it less strict.\n re = '^(?:' + re + ')$'\n\n // can match anything, as long as it's not this.\n if (this.negate) re = '^(?!' + re + ').*$'\n\n try {\n this.regexp = new RegExp(re, flags)\n } catch (ex) {\n this.regexp = false\n }\n return this.regexp\n}\n\nminimatch.match = function (list, pattern, options) {\n options = options || {}\n var mm = new Minimatch(pattern, options)\n list = list.filter(function (f) {\n return mm.match(f)\n })\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\n\nMinimatch.prototype.match = match\nfunction match (f, partial) {\n this.debug('match', f, this.pattern)\n // short-circuit in the case of busted things.\n // comments, etc.\n if (this.comment) return false\n if (this.empty) return f === ''\n\n if (f === '/' && partial) return true\n\n var options = this.options\n\n // windows: need to use /, not \\\n if (path.sep !== '/') {\n f = f.split(path.sep).join('/')\n }\n\n // treat the test path as a set of pathparts.\n f = f.split(slashSplit)\n this.debug(this.pattern, 'split', f)\n\n // just ONE of the pattern sets in this.set needs to match\n // in order for it to be valid. If negating, then just one\n // match means that we have failed.\n // Either way, return on the first hit.\n\n var set = this.set\n this.debug(this.pattern, 'set', set)\n\n // Find the basename of the path by looking for the last non-empty segment\n var filename\n var i\n for (i = f.length - 1; i >= 0; i--) {\n filename = f[i]\n if (filename) break\n }\n\n for (i = 0; i < set.length; i++) {\n var pattern = set[i]\n var file = f\n if (options.matchBase && pattern.length === 1) {\n file = [filename]\n }\n var hit = this.matchOne(file, pattern, partial)\n if (hit) {\n if (options.flipNegate) return true\n return !this.negate\n }\n }\n\n // didn't get any hits. this is success if it's a negative\n // pattern, failure otherwise.\n if (options.flipNegate) return false\n return this.negate\n}\n\n// set partial to true to test if, for example,\n// \"/a/b\" matches the start of \"/*/b/*/d\"\n// Partial means, if you run out of file before you run\n// out of pattern, then that's fine, as long as all\n// the parts match.\nMinimatch.prototype.matchOne = function (file, pattern, partial) {\n var options = this.options\n\n this.debug('matchOne',\n { 'this': this, file: file, pattern: pattern })\n\n this.debug('matchOne', file.length, pattern.length)\n\n for (var fi = 0,\n pi = 0,\n fl = file.length,\n pl = pattern.length\n ; (fi < fl) && (pi < pl)\n ; fi++, pi++) {\n this.debug('matchOne loop')\n var p = pattern[pi]\n var f = file[fi]\n\n this.debug(pattern, p, f)\n\n // should be impossible.\n // some invalid regexp stuff in the set.\n if (p === false) return false\n\n if (p === GLOBSTAR) {\n this.debug('GLOBSTAR', [pattern, p, f])\n\n // \"**\"\n // a/**/b/**/c would match the following:\n // a/b/x/y/z/c\n // a/x/y/z/b/c\n // a/b/x/b/x/c\n // a/b/c\n // To do this, take the rest of the pattern after\n // the **, and see if it would match the file remainder.\n // If so, return success.\n // If not, the ** \"swallows\" a segment, and try again.\n // This is recursively awful.\n //\n // a/**/b/**/c matching a/b/x/y/z/c\n // - a matches a\n // - doublestar\n // - matchOne(b/x/y/z/c, b/**/c)\n // - b matches b\n // - doublestar\n // - matchOne(x/y/z/c, c) -> no\n // - matchOne(y/z/c, c) -> no\n // - matchOne(z/c, c) -> no\n // - matchOne(c, c) yes, hit\n var fr = fi\n var pr = pi + 1\n if (pr === pl) {\n this.debug('** at the end')\n // a ** at the end will just swallow the rest.\n // We have found a match.\n // however, it will not swallow /.x, unless\n // options.dot is set.\n // . and .. are *never* matched by **, for explosively\n // exponential reasons.\n for (; fi < fl; fi++) {\n if (file[fi] === '.' || file[fi] === '..' ||\n (!options.dot && file[fi].charAt(0) === '.')) return false\n }\n return true\n }\n\n // ok, let's see if we can swallow whatever we can.\n while (fr < fl) {\n var swallowee = file[fr]\n\n this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n // XXX remove this slice. Just pass the start index.\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug('globstar found match!', fr, fl, swallowee)\n // found a match.\n return true\n } else {\n // can't swallow \".\" or \"..\" ever.\n // can only swallow \".foo\" when explicitly asked.\n if (swallowee === '.' || swallowee === '..' ||\n (!options.dot && swallowee.charAt(0) === '.')) {\n this.debug('dot detected!', file, fr, pattern, pr)\n break\n }\n\n // ** swallows a segment, and continue.\n this.debug('globstar swallow a segment, and continue')\n fr++\n }\n }\n\n // no match was found.\n // However, in partial mode, we can't say this is necessarily over.\n // If there's more *pattern* left, then\n if (partial) {\n // ran out of file\n this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n if (fr === fl) return true\n }\n return false\n }\n\n // something other than **\n // non-magic patterns just have to match exactly\n // patterns with magic have been turned into regexps.\n var hit\n if (typeof p === 'string') {\n if (options.nocase) {\n hit = f.toLowerCase() === p.toLowerCase()\n } else {\n hit = f === p\n }\n this.debug('string match', p, f, hit)\n } else {\n hit = f.match(p)\n this.debug('pattern match', p, f, hit)\n }\n\n if (!hit) return false\n }\n\n // Note: ending in / means that we'll get a final \"\"\n // at the end of the pattern. This can only match a\n // corresponding \"\" at the end of the file.\n // If the file ends in /, then it can only match a\n // a pattern that ends in /, unless the pattern just\n // doesn't have any more for it. But, a/b/ should *not*\n // match \"a/b/*\", even though \"\" matches against the\n // [^/]*? pattern, except in partial mode, where it might\n // simply not be reached yet.\n // However, a/b/ should still satisfy a/*\n\n // now either we fell off the end of the pattern, or we're done.\n if (fi === fl && pi === pl) {\n // ran out of pattern and filename at the same time.\n // an exact hit!\n return true\n } else if (fi === fl) {\n // ran out of file, but still had pattern left.\n // this is ok if we're doing the match as part of\n // a glob fs traversal.\n return partial\n } else if (pi === pl) {\n // ran out of pattern, still have file left.\n // this is only acceptable if we're on the very last\n // empty segment of a file with a trailing slash.\n // a/* should match a/b/\n var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')\n return emptyFileEnd\n }\n\n // should be unreachable.\n throw new Error('wtf?')\n}\n\n// replace stuff like \\* with *\nfunction globUnescape (s) {\n return s.replace(/\\\\(.)/g, '$1')\n}\n\nfunction regExpEscape (s) {\n return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n}\n","import {\n BrickEventHandler,\n MessageConf,\n PluginRuntimeContext,\n} from \"@next-core/brick-types\";\nimport {\n WebsocketMessageRequest,\n WebsocketMessageResponse,\n} from \"../websocket\";\nimport {\n MessageBrickEventHandlerCallback,\n PluginWebSocketMessageEvent,\n PluginWebSocketMessageResponsePayload,\n PluginWebSocketMessageTopic,\n} from \"../websocket/interfaces\";\nimport { BrickAndMessage } from \"./LocationContext\";\nimport { listenerFactory } from \"../internal/bindListeners\";\nimport { createWebSocket } from \"../websocket/WebSocket\";\nimport minimatch from \"minimatch\";\nimport { WebSocketService } from \"../websocket/WebSocketService\";\nimport { _internalApiMessageCloseHandler } from \"./Runtime\";\nimport { RuntimeBrick } from \"./BrickNode\";\n\nlet messageDispatcher: MessageDispatcher;\n\nexport function createMessageDispatcher(): MessageDispatcher {\n messageDispatcher = new MessageDispatcher();\n\n return messageDispatcher;\n}\n\nexport function getMessageDispatcher(): MessageDispatcher {\n return messageDispatcher;\n}\n\nexport class MessageDispatcher {\n private ws: WebSocketService;\n private context: PluginRuntimeContext;\n private messages: Map<string, BrickAndMessage[]> = new Map<\n string,\n BrickAndMessage[]\n >();\n private messageCallbackHandlers: Map<\n string,\n MessageBrickEventHandlerCallback[]\n > = new Map();\n private channels: Map<string, string> = new Map();\n\n create(\n brickAndMessages: BrickAndMessage[],\n context: PluginRuntimeContext\n ): void {\n if (Array.isArray(brickAndMessages)) {\n for (const { brick, match, message } of brickAndMessages) {\n ([] as MessageConf[]).concat(message).forEach((massageConf) => {\n const channel = massageConf.channel;\n const handler = { brick, match, message };\n if (this.messages.has(channel)) {\n this.messages.set(channel, [\n ...this.messages.get(channel),\n handler,\n ]);\n } else {\n this.messages.set(channel, [handler]);\n }\n });\n }\n }\n this.context = context;\n }\n\n reset(): void {\n this.messages = new Map();\n this.messageCallbackHandlers = new Map();\n }\n\n subscribe(\n channel: string,\n topic: PluginWebSocketMessageTopic,\n callback?: MessageBrickEventHandlerCallback\n ): void {\n const req = new WebsocketMessageRequest(\n PluginWebSocketMessageEvent.SUB,\n topic\n );\n this.setMessageCallbackHandlers(req.identity, callback);\n\n // Prevent repeated subscriptions to the same topic.\n if (!this.channels.has(req.topic)) {\n this.channels.set(req.topic, channel);\n this.send(req.data);\n }\n }\n\n unsubscribe(\n channel: string,\n topic: PluginWebSocketMessageTopic,\n callback: MessageBrickEventHandlerCallback\n ): void {\n const t = this.getTopicByChannel(channel);\n if (!t) {\n // eslint-disable-next-line no-console\n console.error(`Message channel:\"${channel}\" not found. `);\n return;\n }\n const req = new WebsocketMessageRequest(\n PluginWebSocketMessageEvent.UNSUB,\n JSON.parse(t)\n );\n\n this.setMessageCallbackHandlers(req.identity, callback);\n this.send(req.data);\n this.channels.delete(t);\n }\n\n private getTopicByChannel(channel: string): string | undefined {\n return [...this.channels.entries()]\n .filter(([, v]) => v === channel)\n .map(([v]) => v)[0];\n }\n\n private send(data: string): void {\n if (!(this.ws instanceof WebSocketService)) {\n this.createWebsocketService();\n }\n this.ws.send(data);\n }\n\n private createWebsocketService(): void {\n this.ws = createWebSocket();\n this.ws.onMessage = (message) => {\n this.reducer(message);\n };\n this.ws.onClose = (event: CloseEvent) => {\n this.onClose(event);\n };\n }\n\n onClose(event: CloseEvent): void {\n _internalApiMessageCloseHandler(event);\n }\n\n setMessageCallbackHandlers(\n identity: string,\n callback: MessageBrickEventHandlerCallback\n ): void {\n if (this.messageCallbackHandlers.get(identity)) {\n this.messageCallbackHandlers.set(identity, [\n ...this.messageCallbackHandlers.get(identity),\n ...[].concat(callback).filter(Boolean),\n ]);\n } else {\n this.messageCallbackHandlers.set(\n identity,\n [].concat(callback).filter(Boolean)\n );\n }\n }\n\n private reducer(response: WebsocketMessageResponse): void {\n const { event, message, topic } = response;\n switch (event) {\n case PluginWebSocketMessageEvent.MESSAGE_PUSH: {\n this.messagePushHandler(topic, message?.payload);\n break;\n }\n case PluginWebSocketMessageEvent.SUB_SUCCESS: {\n this.messageSubscribeResponseEventHandler(\n response,\n \"success\",\n PluginWebSocketMessageEvent.SUB_SUCCESS\n );\n break;\n }\n case PluginWebSocketMessageEvent.SUB_FAILED: {\n this.messageSubscribeResponseEventHandler(\n response,\n \"error\",\n PluginWebSocketMessageEvent.SUB_FAILED\n );\n break;\n }\n case PluginWebSocketMessageEvent.UNSUB_SUCCESS: {\n this.messageSubscribeResponseEventHandler(\n response,\n \"success\",\n PluginWebSocketMessageEvent.UNSUB_SUCCESS\n );\n break;\n }\n case PluginWebSocketMessageEvent.UNSUB_FAILED: {\n this.messageSubscribeResponseEventHandler(\n response,\n \"error\",\n PluginWebSocketMessageEvent.UNSUB_FAILED\n );\n break;\n }\n default: {\n // eslint-disable-next-line no-console\n console.error(\"Unknown message event:\", event);\n }\n }\n }\n\n private dispatch(\n event: CustomEvent,\n brick: RuntimeBrick,\n context: PluginRuntimeContext,\n handlers: BrickEventHandler[]\n ): void {\n for (const handler of handlers.filter(Boolean)) {\n listenerFactory(handler, context, brick)(event);\n }\n }\n\n private getMessageHandlersByTopic(\n topic: PluginWebSocketMessageTopic\n ): BrickAndMessage[] {\n const finder = [...this.channels.keys()].find((key) => {\n const t = JSON.parse(key);\n // Support glob expressions\n return t.system === topic.system && minimatch(topic.topic, t.topic);\n });\n\n return this.messages.get(this.channels.get(finder));\n }\n private messagePushHandler(\n topic: string,\n payload: PluginWebSocketMessageResponsePayload\n ): void {\n const handlers = this.getMessageHandlersByTopic(JSON.parse(topic));\n\n if (Array.isArray(handlers)) {\n for (const brickAndMessage of handlers) {\n const event = new CustomEvent(\n PluginWebSocketMessageEvent.MESSAGE_PUSH,\n {\n detail: payload?.message,\n }\n );\n\n this.dispatch(\n event,\n brickAndMessage.brick,\n this.context,\n ([] as MessageConf[])\n .concat(brickAndMessage.message)\n .reduce((prev, curr) => prev.concat(curr?.handlers), [])\n );\n }\n }\n }\n\n private messageSubscribeResponseEventHandler(\n response: WebsocketMessageResponse,\n method: \"success\" | \"error\",\n event: PluginWebSocketMessageEvent\n ): void {\n const callbacks = this.messageCallbackHandlers.get(response.identity);\n if (Array.isArray(callbacks)) {\n for (const handler of callbacks) {\n const e = new CustomEvent(event, {\n detail: response.message,\n });\n\n this.dispatch(\n e,\n handler.runtimeBrick,\n handler.context,\n [].concat(handler?.[method]).filter(Boolean)\n );\n }\n }\n }\n}\n","import { ProviderPollOptions } from \"@next-core/brick-types\";\nimport { _internalApiGetRouterRenderId } from \"../core/Runtime\";\n\nexport type PollableCallbackFunction = (result?: unknown) => unknown;\n\nexport interface PollableCallback {\n progress?: PollableCallbackFunction;\n success?: PollableCallbackFunction;\n error?: PollableCallbackFunction;\n finally?: PollableCallbackFunction;\n}\n\nconst timeoutIdList = new Set<number>();\n\nexport function startPoll(\n task: () => unknown,\n { progress, success, error, finally: finallyCallback }: PollableCallback,\n {\n interval,\n leadingRequestDelay,\n continueOnError,\n delegateLoadingBar,\n expectPollEnd,\n expectPollStopImmediately,\n }: ProviderPollOptions\n): void {\n const currentRenderId = _internalApiGetRouterRenderId();\n let currentTimeoutId: number;\n async function poll(): Promise<void> {\n timeoutIdList.delete(currentTimeoutId);\n let shouldStop: boolean;\n try {\n shouldStop = expectPollStopImmediately?.();\n // Stop polling immediately when the expectation is match before task.\n if (!shouldStop) {\n const result = await task();\n // Stop polling immediately when the expectation is match or a different router\n // is rendering after the task processed.\n shouldStop =\n expectPollStopImmediately?.() ||\n currentRenderId !== _internalApiGetRouterRenderId();\n if (!shouldStop) {\n progress?.(result);\n if (expectPollEnd?.(result)) {\n if (delegateLoadingBar) {\n window.dispatchEvent(new CustomEvent(\"request.end\"));\n }\n success?.(result);\n finallyCallback?.();\n } else {\n delayedPoll(interval ?? 3000);\n }\n }\n }\n } catch (e) {\n // Stop polling immediately when the expectation is match or a different router\n // is rendering after the task processed.\n shouldStop =\n expectPollStopImmediately?.() ||\n currentRenderId !== _internalApiGetRouterRenderId();\n if (!shouldStop) {\n error?.(e);\n if (continueOnError) {\n delayedPoll(interval ?? 3000);\n } else {\n finallyCallback?.();\n }\n }\n } finally {\n // Manually dispatch an event of `request.end` when the polling is stopped immediately.\n if (delegateLoadingBar && shouldStop) {\n window.dispatchEvent(new CustomEvent(\"request.end\"));\n }\n }\n }\n\n function delayedPoll(delay: number): void {\n currentTimeoutId = setTimeout(poll, delay) as unknown as number;\n timeoutIdList.add(currentTimeoutId);\n }\n\n delayedPoll(leadingRequestDelay ?? 0);\n\n if (delegateLoadingBar) {\n window.dispatchEvent(new CustomEvent(\"request.start\"));\n }\n}\n\nexport function clearPollTimeout(): void {\n for (const timeoutId of timeoutIdList) {\n clearTimeout(timeoutId);\n }\n timeoutIdList.clear();\n}\n","import yaml from \"js-yaml\";\nimport { ContractApi_searchSingleContract } from \"@next-sdk/api-gateway-sdk\";\nimport { CustomApiDefinition, CustomApiProfile } from \"./interfaces\";\nimport { _internalApiGetMicroAppApiOrchestrationMap } from \"./Runtime\";\n\nconst flowApiDefinitionPromiseMap = new Map<\n string,\n Promise<CustomApiDefinition>\n>();\n\n// Legacy Custom API: `${namespace}@${name}`\n// Flow API: `${namespace}@${name}:${version}`\nexport function isCustomApiProvider(provider: string): boolean {\n return provider.includes(\"@\");\n}\n\nexport async function getArgsOfCustomApi(\n provider: string,\n originalArgs: unknown[]\n): Promise<unknown[]> {\n if (!isCustomApiProvider(provider)) {\n return originalArgs;\n }\n\n const isFlowApi = provider.includes(\":\");\n\n const apiDefinition = isFlowApi\n ? await fetchFlowApiDefinition(provider)\n : (await _internalApiGetMicroAppApiOrchestrationMap()).get(provider);\n\n if (!apiDefinition) {\n throw new Error(\n `${isFlowApi ? \"Flow\" : \"Legacy Custom\"} API not found: \"${provider}\"`\n );\n }\n\n const apiProfile = getApiProfileFromApiDefinition(provider, apiDefinition);\n\n return getApiArgsFromApiProfile(apiProfile, originalArgs);\n}\n\nfunction getApiArgsFromApiProfile(\n {\n uri,\n method,\n name,\n namespace,\n responseWrapper,\n version,\n isFileType,\n }: CustomApiProfile,\n originalArgs: unknown[]\n): unknown[] {\n let fileName: string;\n if (isFileType) {\n fileName = originalArgs.shift() as string;\n }\n\n const { url, args } = getTransformedUriAndRestArgs(\n uri,\n originalArgs,\n name,\n namespace,\n version\n );\n\n return isFileType\n ? [\n fileName,\n {\n url,\n method,\n responseWrapper: false,\n },\n ...args,\n { responseType: \"blob\" },\n ]\n : [\n {\n url,\n method,\n responseWrapper,\n },\n ...args,\n ];\n}\n\nfunction getTransformedUriAndRestArgs(\n uri: string,\n originalArgs: unknown[],\n name: string,\n namespace: string,\n version?: string\n): { url: string; args: unknown[] } {\n const prefix = version\n ? `api/gateway/${namespace}.${name}@${version}`\n : `api/gateway/api_service.${namespace}.${name}`;\n const restArgs = originalArgs.slice();\n const transformedUri = uri.replace(\n /:([^/]+)/g,\n () => restArgs.shift() as string\n );\n return {\n url: prefix + transformedUri,\n args: restArgs,\n };\n}\n\nfunction getApiProfileFromApiDefinition(\n provider: string,\n api: CustomApiDefinition\n): CustomApiProfile {\n const contract: CustomApiDefinition[\"contract\"] =\n typeof api.contract === \"string\"\n ? (yaml.safeLoad(api.contract, {\n schema: yaml.JSON_SCHEMA,\n json: true,\n }) as CustomApiDefinition[\"contract\"])\n : api.contract;\n const { uri, method = \"GET\" } = contract?.endpoint ?? {};\n const responseWrapper = contract?.response\n ? contract.response.wrapper !== false\n : false;\n if (!uri) {\n throw new Error(\n `Missing endpoint.uri in contract of provider \"${provider}\"`\n );\n }\n return {\n uri,\n method: method.toLowerCase() === \"list\" ? \"get\" : method,\n name: api.name,\n namespace: api.namespace,\n version: api.version,\n isFileType: contract?.response?.type === \"file\",\n responseWrapper,\n };\n}\n\nfunction fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition> {\n let promise = flowApiDefinitionPromiseMap.get(provider);\n if (!promise) {\n promise = _fetchFlowApiDefinition(provider);\n flowApiDefinitionPromiseMap.set(provider, promise);\n }\n return promise;\n}\n\nasync function _fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition> {\n const [namespaceName, nameWithVersion] = provider.split(\"@\");\n const [name, version] = nameWithVersion.split(\":\");\n const { contractData } = await ContractApi_searchSingleContract({\n contractName: `${namespaceName}.${name}`,\n version,\n });\n\n // return undefined if don't found contract\n if (contractData) {\n return {\n name: contractData.name,\n namespace: contractData.namespace?.[0]?.name,\n version: contractData.version,\n contract: {\n endpoint: contractData.endpoint,\n response: contractData.response,\n },\n };\n }\n}\n","import { message } from \"antd\";\nimport { isObject } from \"@next-core/brick-utils\";\nimport { userAnalytics } from \"@next-core/easyops-analytics\";\nimport {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n PluginRuntimeContext,\n ExecuteCustomBrickEventHandler,\n SetPropsCustomBrickEventHandler,\n RuntimeBrickElement,\n StoryboardContextItem,\n UseProviderEventHandler,\n ProviderPollOptions,\n} from \"@next-core/brick-types\";\nimport { handleHttpError, httpErrorToString } from \"../handleHttpError\";\nimport { computeRealValue, setProperties } from \"./setProperties\";\nimport { getHistory } from \"../history\";\nimport {\n _internalApiGetCurrentContext,\n _internalApiGetProviderBrick,\n symbolForParentTemplate,\n RuntimeBrickElementWithTplSymbols,\n symbolForParentRefForUseBrickInPortal,\n RuntimeBrick,\n} from \"../core/exports\";\nimport { getUrlBySegueFactory } from \"./segue\";\nimport { looseCheckIf, IfContainer } from \"../checkIf\";\nimport { getUrlByAliasFactory } from \"./alias\";\nimport { getMessageDispatcher } from \"../core/MessageDispatcher\";\nimport { PluginWebSocketMessageTopic } from \"../websocket/interfaces\";\nimport { applyTheme, applyMode } from \"../themeAndMode\";\nimport { clearMenuTitleCache, clearMenuCache } from \"./menu\";\nimport { PollableCallback, PollableCallbackFunction, startPoll } from \"./poll\";\nimport { getArgsOfCustomApi } from \"../core/FlowApi\";\nimport { getRuntime } from \"../runtime\";\n\nexport function bindListeners(\n brick: HTMLElement,\n eventsMap: BrickEventsMap,\n context?: PluginRuntimeContext\n): void {\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n [].concat(handlers).forEach((handler: BrickEventHandler) => {\n const listener = listenerFactory(handler, context, { element: brick });\n brick.addEventListener(eventType, listener);\n rememberListeners(brick, eventType, listener, handler);\n });\n });\n}\n\nexport function unbindListeners(brick: HTMLElement): void {\n if ((brick as RuntimeBrickElement).$$eventListeners) {\n for (const [eventType, listener] of (brick as RuntimeBrickElement)\n .$$eventListeners) {\n brick.removeEventListener(eventType, listener);\n }\n (brick as RuntimeBrickElement).$$eventListeners = [];\n }\n}\n\nfunction rememberListeners(\n brick: RuntimeBrickElement,\n eventType: string,\n listener: EventListener,\n handler: BrickEventHandler\n): void {\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n brick.$$eventListeners.push([eventType, listener, handler]);\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 listenerFactory(\n handler: BrickEventHandler,\n context: PluginRuntimeContext,\n runtimeBrick: RuntimeBrick\n): EventListener {\n if (isBuiltinHandler(handler)) {\n const method = handler.action.split(\".\")[1] 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 return builtinHistoryListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n return builtinHistoryWithoutArgsListenerFactory(\n method,\n handler,\n context\n );\n case \"segue.push\":\n case \"segue.replace\":\n return builtinSegueListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"alias.push\":\n case \"alias.replace\":\n return builtinAliasListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"legacy.go\":\n return builtinIframeListenerFactory(handler.args, handler, context);\n case \"window.open\":\n return builtinWindowListenerFactory(handler.args, handler, context);\n case \"location.reload\":\n case \"location.assign\":\n return builtinLocationListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n return builtinWebStorageListenerFactory(\n \"local\",\n method,\n handler.args,\n handler,\n context\n );\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n return builtinWebStorageListenerFactory(\n \"session\",\n method,\n handler.args,\n handler,\n context\n );\n case \"event.preventDefault\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n event.preventDefault();\n }) as EventListener;\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n return builtinConsoleListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n return builtinMessageListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"handleHttpError\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n handleHttpError(event.detail);\n }) as EventListener;\n case \"context.assign\":\n case \"context.replace\":\n return builtinContextListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"tpl.dispatchEvent\":\n return builtinTplDispatchEventFactory(\n runtimeBrick,\n handler.args,\n handler,\n context\n );\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n return builtinWebSocketListenerFactory(\n runtimeBrick,\n method,\n handler.args,\n handler,\n handler.callback,\n context\n );\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n }) as EventListener;\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n applyMode(\n handler.action === \"mode.setDashboardMode\" ? \"dashboard\" : \"default\"\n );\n }) as EventListener;\n case \"menu.clearMenuTitleCache\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n clearMenuTitleCache();\n }) as EventListener;\n case \"menu.clearMenuCache\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n clearMenuCache();\n }) as EventListener;\n case \"analytics.event\":\n return builtinAnalyticsListenerFactory(handler.args, handler, context);\n default:\n return () => {\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n };\n }\n }\n\n if (isUseProviderHandler(handler)) {\n return usingProviderFactory(handler, context, runtimeBrick);\n }\n\n if (isCustomHandler(handler)) {\n return customListenerFactory(handler, handler, context, runtimeBrick);\n }\n}\n\nfunction usingProviderFactory(\n handler: UseProviderEventHandler,\n context: PluginRuntimeContext,\n runtimeBrick: RuntimeBrick\n): EventListener {\n return async function (event: CustomEvent): Promise<void> {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n try {\n const providerBrick = await _internalApiGetProviderBrick(\n handler.useProvider\n );\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n providerBrick,\n handler,\n method,\n context,\n runtimeBrick,\n event\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(httpErrorToString(error));\n }\n } as unknown as EventListener;\n}\n\nfunction builtinTplDispatchEventFactory(\n runtimeBrick: RuntimeBrick,\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const tpl = getParentTemplate(runtimeBrick.element);\n if (!tpl) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Parent template not found for brick:\",\n runtimeBrick.element\n );\n return;\n }\n const [type, init] = argsFactory(args, context, event) as [\n string,\n CustomEventInit\n ];\n tpl.dispatchEvent(new CustomEvent(type, init));\n } as EventListener;\n}\n\nfunction builtinContextListenerFactory(\n method: \"assign\" | \"replace\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const [name, value] = argsFactory(args, context, event);\n if (typeof name !== \"string\") {\n // eslint-disable-next-line no-console\n console.error(\"Invalid context name:\", name);\n return;\n }\n const { storyboardContext } = _internalApiGetCurrentContext();\n const contextItem: StoryboardContextItem = storyboardContext.get(name);\n if (!contextItem) {\n // eslint-disable-next-line no-console\n console.warn(\n `Context \"${name}\" is not declared, we recommend declaring it first.`\n );\n storyboardContext.set(name, {\n type: \"free-variable\",\n value,\n });\n return;\n }\n if (contextItem.type !== \"free-variable\") {\n // eslint-disable-next-line no-console\n console.error(\n `Conflict storyboard context \"${name}\", expected \"free-variable\", received \"${contextItem.type}\".`\n );\n return;\n }\n // `context.replace`\n if (method === \"replace\") {\n contextItem.value = value;\n } else {\n // `context.assign`\n const previousValue = contextItem.value;\n if (isObject(previousValue)) {\n Object.assign(previousValue, value);\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `Non-object current value of context \"${name}\" for \"context.assign\", try \"context.replace\" instead.`\n );\n contextItem.value = value;\n }\n }\n contextItem.eventTarget?.dispatchEvent(\n new CustomEvent(\"context.change\", {\n detail: contextItem.value,\n })\n );\n } as EventListener;\n}\n\nfunction builtinLocationListenerFactory(\n method: \"assign\" | \"reload\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n if (method === \"assign\") {\n const [url] = argsFactory(args, context, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n } as EventListener;\n}\n\nfunction builtinSegueListenerFactory(\n method: \"push\" | \"replace\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const { app, segues } = _internalApiGetCurrentContext();\n getHistory()[method](\n getUrlBySegueFactory(\n app,\n segues\n )(\n ...(argsFactory(args, context, event) as Parameters<\n ReturnType<typeof getUrlBySegueFactory>\n >)\n )\n );\n } as EventListener;\n}\n\nfunction builtinAliasListenerFactory(\n method: \"push\" | \"replace\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const { app } = _internalApiGetCurrentContext();\n getHistory()[method](\n getUrlByAliasFactory(app)(\n ...(argsFactory(args, context, event) as Parameters<\n ReturnType<typeof getUrlByAliasFactory>\n >)\n )\n );\n } as EventListener;\n}\n\nfunction builtinWebSocketListenerFactory(\n runtimeBrick: RuntimeBrick,\n method: \"subscribe\" | \"unsubscribe\",\n args: any[],\n ifContainer: IfContainer,\n callback: BrickEventHandlerCallback,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n\n const [channel, messageTopic] = argsFactory(args, context, event) as [\n string,\n PluginWebSocketMessageTopic\n ];\n\n const { system, topic } = messageTopic || {};\n getMessageDispatcher()[method](\n channel,\n { system, topic },\n { ...callback, runtimeBrick, context }\n );\n } as EventListener;\n}\n\nfunction builtinIframeListenerFactory(\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n const legacyIframeMountPoint = document.querySelector(\n \"#legacy-iframe-mount-point\"\n );\n\n const postMessage = (url: string): void => {\n const iframe = legacyIframeMountPoint.firstChild as HTMLIFrameElement;\n if (\n iframe &&\n iframe.contentWindow &&\n (iframe.contentWindow as any).angular\n ) {\n iframe.contentWindow.postMessage(\n {\n type: \"location.url\",\n url,\n },\n location.origin\n );\n }\n };\n\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const [url] = argsFactory(args, context, event) as [string];\n postMessage(url);\n } as EventListener;\n}\n\nfunction builtinWindowListenerFactory(\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const [url, target, features] = argsFactory(args, context, event) as [\n string,\n string,\n string\n ];\n window.open(url, target || \"_self\", features);\n } as EventListener;\n}\n\nfunction builtinAnalyticsListenerFactory(\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const [action, data] = argsFactory(args, context, event) as [\n string,\n Record<string, unknown>\n ];\n const runtime = getRuntime();\n userAnalytics.event(action, {\n micro_app_id: runtime.getCurrentApp()?.id,\n route_alias: runtime.getCurrentRoute()?.alias,\n ...data,\n });\n } as EventListener;\n}\n\nfunction findRefElement(brick: RuntimeBrickElement, ref: string): HTMLElement {\n return getParentTemplate(brick)?.$$getElementByRef?.(ref);\n}\n\nfunction getParentTemplate(brick: RuntimeBrickElement): RuntimeBrickElement {\n let tpl = brick;\n while (\n (tpl =\n (tpl as RuntimeBrickElementWithTplSymbols)[symbolForParentTemplate] ||\n (tpl as RuntimeBrickElementWithTplSymbols)[\n symbolForParentRefForUseBrickInPortal\n ]?.current ||\n tpl.parentElement)\n ) {\n if (tpl.$$typeof === \"custom-template\") {\n return tpl;\n }\n }\n}\n\nfunction customListenerFactory(\n handler: CustomBrickEventHandler,\n ifContainer: IfContainer,\n context: PluginRuntimeContext,\n runtimeBrick: RuntimeBrick\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n let targets: HTMLElement[] = [];\n if (typeof handler.target === \"string\") {\n if (handler.target === \"_self\") {\n targets.push(runtimeBrick.element);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(handler.target));\n } else {\n const found = document.querySelector(handler.target) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (handler.target) {\n targets.push(handler.target as HTMLElement);\n } else if (handler.targetRef) {\n const found = findRefElement(runtimeBrick.element, handler.targetRef);\n if (found) {\n targets.push(found);\n }\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", handler.target || handler.targetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n target,\n handler,\n handler.method,\n context,\n runtimeBrick,\n event,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(\n targets,\n handler.properties,\n {\n ...context,\n event,\n },\n handler.injectDeep !== false\n );\n }\n } as EventListener;\n}\n\nasync function brickCallback(\n target: HTMLElement,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n context: PluginRuntimeContext,\n runtimeBrick: RuntimeBrick,\n event: CustomEvent,\n options?: ArgsFactoryOptions\n): Promise<void> {\n if (typeof (target as any)[method] !== \"function\") {\n // eslint-disable-next-line no-console\n console.error(\"target has no method:\", {\n target,\n method: method,\n });\n return;\n }\n\n const task = async (): Promise<unknown> => {\n let computedArgs = argsFactory(handler.args, context, event, options);\n if (isUseProviderHandler(handler)) {\n computedArgs = await getArgsOfCustomApi(\n handler.useProvider,\n computedArgs\n );\n }\n return (target as any)[method](...computedArgs);\n };\n\n const {\n success,\n error,\n finally: finallyHook,\n progress,\n } = handler.callback ?? {};\n\n if (!(success || error || finallyHook || progress)) {\n task();\n return;\n }\n\n const callbackFactory =\n (\n eventType: string,\n specificHandler: BrickEventHandler | BrickEventHandler[]\n ): PollableCallbackFunction =>\n (result: unknown) => {\n if (specificHandler) {\n try {\n const event = new CustomEvent(eventType, {\n detail: result,\n });\n [].concat(specificHandler).forEach((eachHandler) => {\n listenerFactory(eachHandler, context, runtimeBrick)(event);\n });\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 (eventType === \"callback.error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"callback.progress\", progress),\n success: callbackFactory(\"callback.success\", success),\n error: callbackFactory(\"callback.error\", error),\n finally: callbackFactory(\"callback.finally\", finallyHook),\n };\n\n let poll: ProviderPollOptions;\n if (isUseProviderHandler(handler)) {\n poll = computeRealValue(handler.poll, { ...context, event }, true);\n }\n\n if (poll?.enabled) {\n startPoll(task, pollableCallback, poll);\n } else {\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}\n\nfunction builtinHistoryListenerFactory(\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n (\n getHistory()[method === \"block\" ? \"setBlockMessage\" : method] as (\n ...args: unknown[]\n ) => unknown\n )(\n ...argsFactory(args, context, event, {\n useEventDetailAsDefault: true,\n })\n );\n } as EventListener;\n}\n\nfunction builtinHistoryWithoutArgsListenerFactory(\n method: \"goBack\" | \"goForward\" | \"reload\" | \"unblock\",\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n getHistory()[method]();\n } as EventListener;\n}\n\nfunction builtinConsoleListenerFactory(\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, context, event, {\n useEventAsDefault: true,\n })\n );\n } as EventListener;\n}\n\nfunction builtinMessageListenerFactory(\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent) {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n message[method](\n ...(argsFactory(args, context, event) as Parameters<\n typeof message[\"success\"]\n >)\n );\n } as EventListener;\n}\n\nfunction builtinWebStorageListenerFactory(\n storageType: \"local\" | \"session\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent) {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const storage = storageType === \"local\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, context, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else if (method === \"removeItem\") {\n storage.removeItem(name as string);\n }\n } as EventListener;\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[],\n context: PluginRuntimeContext,\n event: CustomEvent,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(\n args,\n {\n ...context,\n event,\n },\n true\n ) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [event.detail]\n : [];\n}\n","import {\n PluginRuntimeContext,\n BrickLifeCycle,\n RefForProxy,\n} from \"@next-core/brick-types\";\nimport { bindListeners } from \"../internal/bindListeners\";\nimport { setRealProperties } from \"../internal/setProperties\";\nimport { RuntimeCustomTemplateProxy } from \"./CustomTemplates/internalInterfaces\";\nimport {\n handleProxyOfCustomTemplate,\n symbolForParentTemplate,\n RuntimeBrickElementWithTplSymbols,\n} from \"./exports\";\n\nexport interface RuntimeBrick {\n type?: string;\n properties?: Record<string, any>;\n template?: string;\n params?: Record<string, any>;\n events?: Record<string, any>;\n children?: RuntimeBrick[];\n slotId?: string;\n context?: PluginRuntimeContext;\n lifeCycle?: BrickLifeCycle;\n element?: HTMLElement;\n bg?: boolean;\n proxy?: RuntimeCustomTemplateProxy;\n proxyRefs?: Map<string, RefForProxy>;\n refForProxy?: {\n brick?: RuntimeBrick;\n };\n parentTemplate?: RuntimeBrick;\n isParent?: boolean;\n ref?: string;\n}\n\nexport class BrickNode {\n $$brick: RuntimeBrick;\n\n private children: BrickNode[] = [];\n\n constructor(brick: RuntimeBrick) {\n this.$$brick = brick;\n }\n\n mount(): HTMLElement {\n const brick = this.$$brick;\n const tagName = brick.type;\n\n if (tagName.includes(\"-\") && !customElements.get(tagName)) {\n // eslint-disable-next-line no-console\n console.error(`Undefined custom element: ${tagName}`);\n }\n\n // istanbul ignore if\n if (tagName === \"basic-bricks.script-brick\") {\n // eslint-disable-next-line no-console\n console.warn(\n \"`basic-bricks.script-brick` is deprecated, please take caution when using it\"\n );\n }\n\n const node = document.createElement(tagName);\n brick.element = node;\n\n if (brick.slotId) {\n node.setAttribute(\"slot\", brick.slotId);\n }\n setRealProperties(node, brick.properties);\n bindListeners(node, brick.events, brick.context);\n\n if (Array.isArray(brick.children)) {\n this.children = brick.children.map((child) => new BrickNode(child));\n const childNodes = this.children.map((child) => child.mount());\n childNodes.forEach((child) => node.appendChild(child));\n } else {\n this.children = [];\n }\n\n return node;\n }\n\n unmount(): void {\n this.children.forEach((child) => {\n child.unmount();\n });\n }\n\n // Handle proxies later after bricks in portal and main both mounted.\n afterMount(): void {\n const brick = this.$$brick;\n if (brick.parentTemplate) {\n (brick.element as RuntimeBrickElementWithTplSymbols)[\n symbolForParentTemplate\n ] = brick.parentTemplate.element;\n }\n handleProxyOfCustomTemplate(brick);\n this.children.forEach((child) => {\n child.afterMount();\n });\n }\n}\n","import { http } from '@next-core/brick-http';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar login = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data, options) {\n return (yield http.post(\"api/auth/login\", data, options)).data;\n });\n\n return function login(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\nvar logout = options => http.post(\"api/auth/logout\", options);\nvar checkLogin = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(function* (options) {\n return (yield http.get(\"api/auth/login\", options)).data;\n });\n\n return function checkLogin(_x3) {\n return _ref2.apply(this, arguments);\n };\n}();\nvar bootstrap = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator(function* (params, options) {\n return (yield http.get(\"api/auth/bootstrap\", _objectSpread2(_objectSpread2({}, options), {}, {\n params\n }))).data;\n });\n\n return function bootstrap(_x4, _x5) {\n return _ref3.apply(this, arguments);\n };\n}();\nvar getAppStoryboard = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator(function* (appId, params, options) {\n return (yield http.get(\"api/auth/bootstrap/\".concat(appId), _objectSpread2(_objectSpread2({}, options), {}, {\n params\n }))).data;\n });\n\n return function getAppStoryboard(_x6, _x7, _x8) {\n return _ref4.apply(this, arguments);\n };\n}();\n\nexport { bootstrap, checkLogin, getAppStoryboard, login, logout };\n//# sourceMappingURL=index.esm.js.map\n","import { merge } from \"lodash\";\nimport i18next from \"i18next\";\nimport { BootstrapData } from \"@next-core/brick-types\";\nimport { deepFreeze } from \"@next-core/brick-utils\";\n\n/**\n * Merge `app.defaultConfig` and `app.userConfig` to `app.config`.\n *\n * @param bootstrapResponse - Response of bootstrap API.\n */\nexport function processBootstrapResponse(\n bootstrapResponse: BootstrapData\n): void {\n for (const storyboard of bootstrapResponse.storyboards) {\n const app = storyboard.app;\n if (app) {\n app.config = deepFreeze(merge({}, app.defaultConfig, app.userConfig));\n\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `$tmp-${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18next.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18next.getFixedT(null, ns)(\"name\", app.name);\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18next.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n }\n\n if (bootstrapResponse.settings) {\n bootstrapResponse.settings = deepFreeze(bootstrapResponse.settings);\n }\n\n bootstrapResponse.brickPackages = deepFreeze(bootstrapResponse.brickPackages);\n bootstrapResponse.templatePackages = deepFreeze(\n bootstrapResponse.templatePackages\n );\n}\n","import { createProviderClass } from \"@next-core/brick-utils\";\nimport { http, HttpOptions } from \"@next-core/brick-http\";\n\nexport const CUSTOM_API_PROVIDER = \"brick-kit.provider-custom-api\";\n\nexport interface CustomApiParams {\n url: string;\n method?: string;\n responseWrapper?: boolean;\n}\n\nexport async function CustomApi(\n { url, method = \"GET\", responseWrapper = true }: CustomApiParams,\n data: unknown,\n options?: HttpOptions\n): Promise<unknown> {\n const isSimpleRequest = [\"get\", \"delete\", \"head\"].includes(\n method.toLowerCase()\n );\n\n if (isSimpleRequest) {\n const response = await http.simpleRequest(method, url, {\n params: data,\n ...options,\n });\n return responseWrapper ? response.data : response;\n } else {\n const response = await http.requestWithBody(method, url, data, options);\n return responseWrapper ? response.data : response;\n }\n}\n\nexport function registerCustomApi(): void {\n customElements.define(CUSTOM_API_PROVIDER, createProviderClass(CustomApi));\n}\n","import { userAnalytics } from \"@next-core/easyops-analytics\";\nimport { getAuth } from \"../auth\";\nimport { getRuntime } from \"../runtime\";\n\n/** @internal */\nexport function initAnalytics(): void {\n const misc = getRuntime().getMiscSettings();\n const { gaMeasurementId, analyticsDebugMode } = misc as {\n gaMeasurementId?: string;\n analyticsDebugMode?: boolean;\n };\n\n if (gaMeasurementId) {\n userAnalytics.init({\n gaMeasurementId,\n sendPageView: false,\n userId: getAuth().userInstanceId,\n debugMode: analyticsDebugMode,\n });\n }\n}\n","import yaml from \"js-yaml\";\nimport { http } from \"@next-core/brick-http\";\nimport { BootstrapData, Settings } from \"@next-core/brick-types\";\nimport { hasOwnProperty } from \"@next-core/brick-utils\";\n\ninterface StandaloneConf {\n /** The same as `auth.bootstrap.sys_settings` in api gateway conf. */\n sys_settings: StandaloneSettings;\n\n /** For fully standalone micro-apps. */\n user_config?: Record<string, unknown>;\n\n /** For mixed standalone micro-apps. */\n user_config_by_apps?: UserConfigByApps;\n}\n\ntype UserConfigByApps = Record<string, Record<string, unknown>>;\n\ninterface StandaloneSettings extends Omit<Settings, \"featureFlags\"> {\n feature_flags: Record<string, boolean>;\n}\n\nexport async function standaloneBootstrap(): Promise<BootstrapData> {\n const [bootstrapResult, confString] = await Promise.all([\n http.get<BootstrapData>(window.BOOTSTRAP_FILE),\n http.get<string>(`${window.APP_ROOT}conf.yaml`, {\n responseType: \"text\",\n }),\n ]);\n let conf: StandaloneConf;\n try {\n conf = confString\n ? (yaml.safeLoad(confString, {\n schema: yaml.JSON_SCHEMA,\n json: true,\n }) as StandaloneConf)\n : undefined;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse conf.yaml failed\", error);\n throw new Error(\"Invalid conf.yaml\");\n }\n let settings: Settings;\n if (conf) {\n const { sys_settings, user_config, user_config_by_apps } = conf;\n if (sys_settings) {\n const { feature_flags: featureFlags, ...rest } = sys_settings;\n settings = {\n featureFlags,\n ...rest,\n } as Settings;\n }\n if (user_config && bootstrapResult.storyboards.length === 1) {\n bootstrapResult.storyboards[0].app.userConfig = user_config;\n } else if (user_config_by_apps) {\n for (const { app } of bootstrapResult.storyboards) {\n if (hasOwnProperty(user_config_by_apps, app.id)) {\n app.userConfig = user_config_by_apps[app.id];\n }\n }\n }\n }\n return {\n ...bootstrapResult,\n settings,\n };\n}\n","import { cloneDeep, sortBy } from \"lodash\";\nimport {\n loadScript,\n prefetchScript,\n getTemplateDepsOfStoryboard,\n getDllAndDepsOfStoryboard,\n asyncProcessStoryboard,\n scanBricksInBrickConf,\n scanRouteAliasInStoryboard,\n getDllAndDepsByResource,\n scanProcessorsInAny,\n CustomApiInfo,\n} from \"@next-core/brick-utils\";\nimport i18next from \"i18next\";\nimport * as AuthSdk from \"@next-sdk/auth-sdk\";\nimport {\n BootstrapV2Api_bootstrapV2,\n BootstrapV2Api_getAppStoryboardV2,\n} from \"@next-sdk/api-gateway-sdk\";\nimport { UserAdminApi_searchAllUsersInfo } from \"@next-sdk/user-service-sdk\";\nimport { ObjectMicroAppApi_getObjectMicroAppList } from \"@next-sdk/micro-app-sdk\";\nimport { InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport {\n MountPoints,\n BootstrapData,\n RuntimeBootstrapData,\n InterceptorParams,\n MicroApp,\n UserInfo,\n MagicBrickConfig,\n FeatureFlags,\n RuntimeStoryboard,\n BrickConf,\n LayoutType,\n PresetBricksConf,\n RouteConf,\n MenuRawData,\n} from \"@next-core/brick-types\";\nimport { authenticate, isLoggedIn } from \"../auth\";\nimport {\n Router,\n MenuBar,\n AppBar,\n BaseBar,\n registerCustomTemplate,\n} from \"./exports\";\nimport { getHistory } from \"../history\";\nimport {\n RelatedApp,\n VisitedWorkspace,\n RecentApps,\n CustomApiDefinition,\n} from \"./interfaces\";\nimport { processBootstrapResponse } from \"./processors\";\nimport { brickTemplateRegistry } from \"./TemplateRegistries\";\nimport { listenDevtools } from \"../internal/devtools\";\nimport { registerCustomApi, CUSTOM_API_PROVIDER } from \"../providers/CustomApi\";\nimport { loadAllLazyBricks, loadLazyBricks } from \"./LazyBrickRegistry\";\nimport { isCustomApiProvider } from \"./FlowApi\";\nimport { getRuntime } from \"../runtime\";\nimport { initAnalytics } from \"./initAnalytics\";\nimport { standaloneBootstrap } from \"./standaloneBootstrap\";\nimport { getI18nNamespace } from \"../i18n\";\n\nexport class Kernel {\n public mountPoints: MountPoints;\n public bootstrapData: RuntimeBootstrapData;\n public presetBricks: PresetBricksConf;\n public menuBar: MenuBar;\n public appBar: AppBar;\n public loadingBar: BaseBar;\n public router: Router;\n public currentApp: MicroApp;\n public previousApp: MicroApp;\n public nextApp: MicroApp;\n public currentUrl: string;\n public currentRoute: RouteConf;\n public workspaceStack: VisitedWorkspace[] = [];\n public currentLayout: LayoutType;\n public allUserMapPromise: Promise<Map<string, UserInfo>> = Promise.resolve(\n new Map()\n );\n public allMagicBrickConfigMapPromise: Promise<Map<string, MagicBrickConfig>> =\n Promise.resolve(new Map());\n private allRelatedAppsPromise: Promise<RelatedApp[]> = Promise.resolve([]);\n public allMicroAppApiOrchestrationPromise: Promise<\n Map<string, CustomApiDefinition>\n > = Promise.resolve(new Map());\n private providerRepository = new Map<string, HTMLElement>();\n private loadUsersStarted = false;\n private loadMagicBrickConfigStarted = false;\n\n async bootstrap(mountPoints: MountPoints): Promise<void> {\n this.mountPoints = mountPoints;\n await Promise.all([this.loadCheckLogin(), this.loadMicroApps()]);\n if (this.bootstrapData.storyboards.length === 0) {\n throw new Error(\"No storyboard were found.\");\n }\n if (isLoggedIn()) {\n this.loadSharedData();\n }\n this.menuBar = new MenuBar(this, \"menuBar\");\n this.appBar = new AppBar(this, \"appBar\");\n this.loadingBar = new BaseBar(this, \"loadingBar\");\n this.router = new Router(this);\n\n initAnalytics();\n\n await this.router.bootstrap();\n if (!window.STANDALONE_MICRO_APPS) {\n this.legacyAuthGuard();\n }\n listenDevtools();\n }\n\n async layoutBootstrap(layout: LayoutType): Promise<void> {\n const supportedLayouts: LayoutType[] = [\"console\", \"business\"];\n if (!supportedLayouts.includes(layout)) {\n throw new Error(`Unknown layout: ${layout}`);\n }\n this.currentLayout = layout;\n\n this.presetBricks =\n layout === \"business\"\n ? {\n loadingBar: \"business-website.loading-bar\",\n pageNotFound: \"business-website.page-not-found\",\n pageError: \"business-website.page-error\",\n }\n : {\n ...this.bootstrapData.navbar,\n pageNotFound: \"basic-bricks.page-not-found\",\n pageError: \"basic-bricks.page-error\",\n };\n\n for (const item of supportedLayouts) {\n if (item === layout) {\n document.body.classList.add(`layout-${item}`);\n } else {\n document.body.classList.remove(`layout-${item}`);\n }\n }\n\n await Promise.all([\n this.menuBar.bootstrap(this.presetBricks.menuBar, {\n testid: \"brick-next-menu-bar\",\n }),\n this.appBar.bootstrap(this.presetBricks.appBar),\n this.loadingBar.bootstrap(this.presetBricks.loadingBar),\n ]);\n }\n\n private legacyAuthGuard(): void {\n // Listen messages from legacy Console-W,\n // Redirect to login page if received an `auth.guard` message.\n window.addEventListener(\"message\", (event: MessageEvent): void => {\n if (event.origin !== window.location.origin) {\n return;\n }\n const data = Object.assign({}, event.data);\n if (data.type === \"auth.guard\") {\n const history = getHistory();\n const ssoEnabled = this.getFeatureFlags()[\"sso-enabled\"];\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: history.location,\n });\n }\n });\n }\n\n private async loadCheckLogin(): Promise<void> {\n if (!window.NO_AUTH_GUARD) {\n const auth = await AuthSdk.checkLogin();\n if (auth.loggedIn) {\n authenticate(auth);\n }\n }\n }\n\n private async loadMicroApps(\n params?: { check_login?: boolean },\n interceptorParams?: InterceptorParams\n ): Promise<void> {\n const data = await (window.STANDALONE_MICRO_APPS\n ? standaloneBootstrap()\n : BootstrapV2Api_bootstrapV2(\n {\n appFields:\n \"defaultConfig,userConfig,locales,name,homepage,id,currentVersion,installStatus,internal,status,icons\",\n ignoreTemplateFields: \"templates\",\n ignoreBrickFields: \"bricks,processors,providers,editors\",\n ...params,\n },\n {\n interceptorParams,\n }\n ));\n const bootstrapResponse = {\n templatePackages: [],\n ...data,\n } as BootstrapData;\n // Merge `app.defaultConfig` and `app.userConfig` to `app.config`.\n processBootstrapResponse(bootstrapResponse);\n this.bootstrapData = {\n ...bootstrapResponse,\n microApps: bootstrapResponse.storyboards\n .map((storyboard) => storyboard.app)\n .filter(Boolean),\n };\n }\n\n reloadMicroApps(\n params?: { check_login?: boolean },\n interceptorParams?: InterceptorParams\n ): Promise<void> {\n // There is no need to reload standalone micro-apps.\n if (!window.STANDALONE_MICRO_APPS) {\n return this.loadMicroApps(params, interceptorParams);\n }\n }\n\n async fulfilStoryboard(storyboard: RuntimeStoryboard): Promise<void> {\n if (storyboard.$$fulfilled) {\n return;\n }\n if (!storyboard.$$fulfilling) {\n storyboard.$$fulfilling = this.doFulfilStoryboard(storyboard);\n }\n return storyboard.$$fulfilling;\n }\n\n private async doFulfilStoryboard(\n storyboard: RuntimeStoryboard\n ): Promise<void> {\n if (window.STANDALONE_MICRO_APPS) {\n Object.assign(storyboard, { $$fulfilled: true });\n } else {\n const { routes, meta, app } = await BootstrapV2Api_getAppStoryboardV2(\n storyboard.app.id,\n {}\n );\n Object.assign(storyboard, {\n routes,\n meta,\n app: { ...storyboard.app, ...app },\n $$fulfilled: true,\n });\n }\n storyboard.app.$$routeAliasMap = scanRouteAliasInStoryboard(storyboard);\n\n if (storyboard.meta?.i18n) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const i18nNamespace = getI18nNamespace(\"app\", storyboard.app.id);\n // Support any language in `meta.i18n`.\n Object.entries(storyboard.meta.i18n).forEach(([lang, resources]) => {\n i18next.addResourceBundle(lang, i18nNamespace, resources);\n });\n }\n }\n\n async loadDepsOfStoryboard(storyboard: RuntimeStoryboard): Promise<void> {\n const { brickPackages, templatePackages } = this.bootstrapData;\n\n if (storyboard.dependsAll) {\n const dllPath = window.DLL_PATH || {};\n await loadScriptOfDll(Object.values(dllPath));\n await loadScriptOfBricksOrTemplates(\n brickPackages\n .map((item) => item.filePath)\n .concat(templatePackages.map((item) => item.filePath))\n );\n await loadAllLazyBricks();\n } else {\n // 先加载模板\n const templateDeps = getTemplateDepsOfStoryboard(\n storyboard,\n templatePackages\n );\n await loadScriptOfBricksOrTemplates(templateDeps);\n // 加载模板后才能加工得到最终的构件表\n const { dll, deps, bricks } = getDllAndDepsOfStoryboard(\n await asyncProcessStoryboard(\n storyboard,\n brickTemplateRegistry,\n templatePackages\n ),\n brickPackages,\n {\n ignoreBricksInUnusedCustomTemplates: true,\n }\n );\n await loadScriptOfDll(dll);\n await loadScriptOfBricksOrTemplates(deps);\n await loadLazyBricks(bricks);\n }\n }\n\n prefetchDepsOfStoryboard(storyboard: RuntimeStoryboard): void {\n if (storyboard.$$depsProcessed) {\n return;\n }\n const { brickPackages, templatePackages } = this.bootstrapData;\n const templateDeps = getTemplateDepsOfStoryboard(\n storyboard,\n templatePackages\n );\n prefetchScript(templateDeps, window.PUBLIC_ROOT);\n const result = getDllAndDepsOfStoryboard(storyboard, brickPackages);\n prefetchScript(result.dll, window.CORE_ROOT);\n prefetchScript(result.deps, window.PUBLIC_ROOT);\n storyboard.$$depsProcessed = true;\n }\n\n registerCustomTemplatesInStoryboard(storyboard: RuntimeStoryboard): void {\n if (!storyboard.$$registerCustomTemplateProcessed) {\n // 注册自定义模板\n if (Array.isArray(storyboard.meta?.customTemplates)) {\n for (const tpl of storyboard.meta.customTemplates) {\n registerCustomTemplate(\n tpl.name,\n {\n bricks: tpl.bricks,\n proxy: tpl.proxy,\n },\n storyboard.app?.id\n );\n }\n }\n // 每个 storyboard 仅注册一次custom-template\n storyboard.$$registerCustomTemplateProcessed = true;\n }\n }\n\n async loadDynamicBricksInBrickConf(brickConf: BrickConf): Promise<void> {\n // Notice: `brickConf` contains runtime data,\n // which may contains recursive ref,\n // which could cause stack overflow while traversing.\n const bricks = scanBricksInBrickConf(brickConf);\n const processors = scanProcessorsInAny(brickConf);\n await this.loadDynamicBricks(bricks, processors);\n }\n\n async loadDynamicBricks(\n bricks: string[],\n processors?: string[]\n ): Promise<void> {\n const filteredBricks = bricks.filter(\n // Only try to load undefined custom elements.\n (item) => !customElements.get(item)\n );\n // Try to load deps for dynamic added bricks.\n const { dll, deps } = getDllAndDepsByResource(\n {\n bricks: filteredBricks,\n processors,\n },\n this.bootstrapData.brickPackages\n );\n await loadScriptOfDll(dll);\n await loadScriptOfBricksOrTemplates(deps);\n await loadLazyBricks(filteredBricks);\n }\n\n async loadEditorBricks(editorBricks: string[]): Promise<void> {\n const { dll, deps } = getDllAndDepsByResource(\n {\n editorBricks: editorBricks.filter(\n // Only try to load undefined custom elements.\n (item) => !customElements.get(item)\n ),\n },\n this.bootstrapData.brickPackages\n );\n await loadScriptOfDll(dll);\n await loadScriptOfBricksOrTemplates(deps);\n }\n\n firstRendered(): void {\n setTimeout(() => {\n document.body.classList.add(\"first-rendered\");\n });\n }\n\n /**\n * 展开/收起顶栏、侧栏\n * @param visible 是否显示\n */\n toggleBars(visible: boolean): void {\n document.body.classList.toggle(\"bars-hidden\", !visible);\n }\n\n /**\n * 重置顶栏、侧栏\n */\n unsetBars({\n appChanged,\n legacy,\n }: { appChanged?: boolean; legacy?: \"iframe\" } = {}): void {\n this.toggleBars(true);\n if (this.currentLayout !== \"console\") {\n // No bars should be unset for the business layout.\n return;\n }\n if (appChanged) {\n this.menuBar.resetAppMenu();\n }\n if (legacy !== \"iframe\" || appChanged) {\n // 对于 Legacy 页面,仅当切换应用时重设面包屑。\n this.appBar.setBreadcrumb(null);\n }\n getRuntime().applyPageTitle(null);\n }\n\n toggleLegacyIframe(visible: boolean): void {\n document.body.classList.toggle(\"show-legacy-iframe\", visible);\n }\n\n loadSharedData(): void {\n if (!window.STANDALONE_MICRO_APPS) {\n this.loadRelatedAppsAsync();\n }\n }\n\n loadUsersAsync(): void {\n if (!this.loadUsersStarted) {\n this.loadUsersStarted = true;\n this.allUserMapPromise = this.loadUsers();\n }\n }\n\n private async loadUsers(): Promise<Map<string, UserInfo>> {\n const allUserMap: Map<string, UserInfo> = new Map();\n try {\n const query = { state: \"valid\" };\n const fields = {\n name: true,\n nickname: true,\n user_email: true,\n user_tel: true,\n user_icon: true,\n user_memo: true,\n };\n const allUserInfo = (\n await UserAdminApi_searchAllUsersInfo({\n query,\n fields,\n })\n ).list as UserInfo[];\n for (const user of allUserInfo) {\n allUserMap.set(user.name, user);\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Load users error:\", error);\n }\n return allUserMap;\n }\n\n loadMicroAppApiOrchestrationAsync(usedCustomApis: CustomApiInfo[]): void {\n this.allMicroAppApiOrchestrationPromise =\n this.loadMicroAppApiOrchestration(usedCustomApis);\n }\n\n async getMicroAppApiOrchestrationMapAsync(): Promise<\n Map<string, CustomApiDefinition>\n > {\n return await this.allMicroAppApiOrchestrationPromise;\n }\n\n private async loadMicroAppApiOrchestration(\n usedCustomApis: CustomApiInfo[]\n ): Promise<Map<string, CustomApiDefinition>> {\n const allMicroAppApiOrchestrationMap: Map<string, CustomApiDefinition> =\n new Map();\n const legacyCustomApis = usedCustomApis.filter(\n (item) => !item.name.includes(\":\")\n );\n if (legacyCustomApis.length) {\n try {\n const allMicroAppApiOrchestration = (\n await InstanceApi_postSearch(\"MICRO_APP_API_ORCHESTRATION\", {\n page: 1,\n page_size: legacyCustomApis.length,\n fields: {\n name: true,\n namespace: true,\n contract: true,\n config: true,\n type: true,\n },\n query: {\n $or: legacyCustomApis,\n },\n })\n ).list as CustomApiDefinition[];\n for (const api of allMicroAppApiOrchestration) {\n allMicroAppApiOrchestrationMap.set(\n `${api.namespace}@${api.name}`,\n api\n );\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Load legacy custom api error:\", error);\n }\n }\n return allMicroAppApiOrchestrationMap;\n }\n\n loadMagicBrickConfigAsync(): void {\n if (!this.loadMagicBrickConfigStarted) {\n this.loadMagicBrickConfigStarted = true;\n this.allMagicBrickConfigMapPromise = this.loadMagicBrickConfig();\n }\n }\n\n private async loadMagicBrickConfig(): Promise<Map<string, MagicBrickConfig>> {\n const allMagicBrickConfigMap: Map<string, MagicBrickConfig> = new Map();\n try {\n const allMagicBrickConfig = (\n await InstanceApi_postSearch(\"_BRICK_MAGIC\", {\n page: 1,\n // TODO(Lynette): 暂时设置3000,待后台提供全量接口\n page_size: 3000,\n fields: {\n \"*\": true,\n },\n })\n ).list as MagicBrickConfig[];\n for (const config of allMagicBrickConfig) {\n allMagicBrickConfigMap.set(config.selector, config);\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Load magic brick config error:\", error);\n }\n return allMagicBrickConfigMap;\n }\n\n private loadRelatedAppsAsync(): void {\n this.allRelatedAppsPromise = this.loadRelatedApps();\n }\n\n private async loadRelatedApps(): Promise<RelatedApp[]> {\n let relatedApps: RelatedApp[] = [];\n try {\n relatedApps = (await ObjectMicroAppApi_getObjectMicroAppList()).list;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Load related apps error:\", error);\n }\n return relatedApps;\n }\n\n async getRelatedAppsAsync(appId: string): Promise<RelatedApp[]> {\n if (!appId) {\n return [];\n }\n const allRelatedApps = await this.allRelatedAppsPromise;\n const thisApp = allRelatedApps.find((item) => item.microAppId === appId);\n if (!thisApp) {\n return [];\n }\n return sortBy(\n allRelatedApps.filter((item) => item.objectId === thisApp.objectId),\n [\"order\"]\n );\n }\n\n async updateWorkspaceStack(): Promise<void> {\n if (this.currentApp && this.currentApp.id) {\n const workspace: VisitedWorkspace = {\n appId: this.currentApp.id,\n appName: this.currentApp.name,\n appLocaleName: this.currentApp.localeName,\n url: this.currentUrl,\n };\n if (this.workspaceStack.length > 0) {\n const previousWorkspace =\n this.workspaceStack[this.workspaceStack.length - 1];\n const relatedApps = await this.getRelatedAppsAsync(\n previousWorkspace.appId\n );\n if (\n relatedApps.some((item) => item.microAppId === this.currentApp.id)\n ) {\n Object.assign(previousWorkspace, workspace);\n return;\n }\n }\n\n const relatedApps = await this.getRelatedAppsAsync(this.currentApp.id);\n if (relatedApps.length > 0) {\n this.workspaceStack.push(workspace);\n return;\n }\n }\n this.workspaceStack = [];\n }\n\n getPreviousWorkspace(): VisitedWorkspace {\n if (this.workspaceStack.length > 1) {\n return this.workspaceStack[this.workspaceStack.length - 2];\n }\n }\n\n popWorkspaceStack(): void {\n this.workspaceStack.pop();\n }\n\n getRecentApps(): RecentApps {\n return {\n previousApp: this.previousApp,\n currentApp: this.currentApp,\n previousWorkspace: this.getPreviousWorkspace(),\n };\n }\n\n getFeatureFlags(): FeatureFlags {\n return Object.assign({}, this.bootstrapData?.settings?.featureFlags);\n }\n\n getStandaloneMenus(menuId: string): MenuRawData[] {\n const currentAppId = this.currentApp.id;\n const currentStoryboard = this.bootstrapData.storyboards.find(\n (storyboard) => storyboard.app.id === currentAppId\n );\n return (cloneDeep(currentStoryboard.meta?.menus) ?? [])\n .filter((menu) => menu.menuId === menuId)\n .map((menu) => ({\n ...menu,\n app: [{ appId: currentAppId }],\n }));\n }\n\n async getProviderBrick(provider: string): Promise<HTMLElement> {\n if (isCustomApiProvider(provider)) {\n provider = CUSTOM_API_PROVIDER;\n }\n\n if (this.providerRepository.has(provider)) {\n return this.providerRepository.get(provider);\n }\n\n if (provider === CUSTOM_API_PROVIDER && !customElements.get(provider)) {\n registerCustomApi();\n }\n\n await this.loadDynamicBricks([provider]);\n\n if (!customElements.get(provider)) {\n throw new Error(`Provider not defined: \"${provider}\".`);\n }\n const brick = document.createElement(provider);\n this.providerRepository.set(provider, brick);\n return brick;\n }\n}\n\n// Since `@next-dll/editor-bricks-helper` depends on `@next-dll/react-dnd`,\n// always load react-dnd before loading editor-bricks-helper.\nasync function loadScriptOfDll(dlls: string[]): Promise<void> {\n if (dlls.some((dll) => dll.startsWith(\"dll-of-editor-bricks-helper.\"))) {\n const dllPath = window.DLL_PATH || {};\n await loadScript(dllPath[\"react-dnd\"], window.CORE_ROOT);\n }\n // `loadScript` is auto cached, no need to filter out `react-dnd`.\n await loadScript(dlls, window.CORE_ROOT);\n}\n\nfunction loadScriptOfBricksOrTemplates(src: string[]): Promise<unknown> {\n return loadScript(src, window.PUBLIC_ROOT);\n}\n","/*! (c) Andrea Giammarchi - ISC */\nvar self = {};\ntry {\n self.EventTarget = (new EventTarget).constructor;\n} catch(EventTarget) {\n (function (Object, wm) {\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var proto = EventTarget.prototype;\n define(proto, 'addEventListener', function (type, listener, options) {\n for (var\n secret = wm.get(this),\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener)\n return;\n }\n listeners.push({target: this, listener: listener, options: options});\n });\n define(proto, 'dispatchEvent', function (event) {\n var secret = wm.get(this);\n var listeners = secret[event.type];\n if (listeners) {\n define(event, 'target', this);\n define(event, 'currentTarget', this);\n listeners.slice(0).some(dispatch, event);\n delete event.currentTarget;\n delete event.target;\n }\n return true;\n });\n define(proto, 'removeEventListener', function (type, listener) {\n for (var\n secret = wm.get(this),\n /* istanbul ignore next */\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener) {\n listeners.splice(i, 1);\n return;\n }\n }\n });\n self.EventTarget = EventTarget;\n function EventTarget() {'use strict';\n wm.set(this, create(null));\n }\n function define(target, name, value) {\n defineProperty(\n target,\n name,\n {\n configurable: true,\n writable: true,\n value: value\n }\n );\n }\n function dispatch(info) {\n var options = info.options;\n if (options && options.once)\n info.target.removeEventListener(this.type, info.listener);\n if (typeof info.listener === 'function')\n info.listener.call(info.target, this);\n else\n info.listener.handleEvent(this);\n return this._stopImmediatePropagationFlag;\n }\n }(Object, new WeakMap));\n}\nexport default self.EventTarget;\n","/** @internal */\n\n/** @internal */\n\n/** @internal */\nvar BrickEvent;\n/** @internal */\n\n(function (BrickEvent) {\n BrickEvent[\"READ_SORTING_CHANGE\"] = \"read.sorting.change\";\n BrickEvent[\"READ_SEARCH_CHANGE\"] = \"read.search.change\";\n BrickEvent[\"READ_ADVANCED_SEARCH_CHANGE\"] = \"read.advancedSearch.change\";\n BrickEvent[\"READ_PAGINATION_CHANGE\"] = \"read.pagination.change\";\n BrickEvent[\"READ_SELECTION_CHANGE\"] = \"read.selection.change\";\n BrickEvent[\"READ_RELATED_TO_ME_CHANGE\"] = \"read.relatedToMe.change\";\n BrickEvent[\"READ_ALIVE_HOSTS_CHANGE\"] = \"read.alive.hosts.change\";\n BrickEvent[\"READ_CATEGORY_CHANGE\"] = \"read.category.change\";\n BrickEvent[\"READ_MULTIPLE_CLICK_ITEM\"] = \"read.multiple.clickItem\";\n BrickEvent[\"READ_MULTIPLE_CREATE\"] = \"read.multiple.create\";\n BrickEvent[\"CREATE_SINGLE_SUCCESS\"] = \"create.single.success\";\n BrickEvent[\"CREATE_SINGLE_FAILED\"] = \"create.single.failed\";\n BrickEvent[\"CREATE_SINGLE_CANCELED\"] = \"create.single.canceled\";\n BrickEvent[\"CREATE_SINGLE_NEXT\"] = \"create.single.next\";\n BrickEvent[\"CREATE_SINGLE_SELECT\"] = \"create.single.select\";\n BrickEvent[\"UPDATE_SINGLE_SUCCESS\"] = \"update.single.success\";\n BrickEvent[\"UPDATE_SINGLE_FAILED\"] = \"update.single.failed\";\n BrickEvent[\"UPDATE_SINGLE_CANCELED\"] = \"update.single.canceled\";\n BrickEvent[\"DELETE_SINGLE_SUCCESS\"] = \"delete.single.success\";\n BrickEvent[\"DELETE_SINGLE_FAILED\"] = \"delete.single.failed\";\n BrickEvent[\"DELETE_SINGLE_CANCELED\"] = \"delete.single.canceled\";\n BrickEvent[\"CREATE_MULTI_SUCCESS\"] = \"create.multi.success\";\n BrickEvent[\"CREATE_MULTI_FAILED\"] = \"create.multi.failed\";\n BrickEvent[\"CREATE_MULTI_CANCELED\"] = \"create.multi.canceled\";\n BrickEvent[\"DELETE_MULTI_SUCCESS\"] = \"delete.multi.success\";\n BrickEvent[\"DELETE_MULTI_CANCELED\"] = \"delete.multi.canceled\";\n BrickEvent[\"UPDATE_MULTI_SUCCESS\"] = \"update.multi.success\";\n BrickEvent[\"UPDATE_MULTI_CANCELED\"] = \"update.multi.canceled\";\n BrickEvent[\"UPDATE_MULTI_FAILED\"] = \"update.multi.failed\";\n BrickEvent[\"UPDATE_SINGLE_SELECT\"] = \"update.single.select\";\n BrickEvent[\"UPDATE_SINGLE_SELECTED\"] = \"update.single.selected\";\n BrickEvent[\"READ_CARD_LEFT_BTN_CLICK\"] = \"read.card.leftBtn.click\";\n BrickEvent[\"READ_CARD_RIGHT_BTN_CLICK\"] = \"read.card.rightBtn.click\";\n})(BrickEvent || (BrickEvent = {}));\n\n/** @internal */\nvar PropertyDisplayType;\n/** @internal */\n\n(function (PropertyDisplayType) {\n PropertyDisplayType[\"Tag\"] = \"tag\";\n})(PropertyDisplayType || (PropertyDisplayType = {}));\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/**\n * 特性开关字典。\n *\n * @example\n *\n * ```json\n * {\n * \"next-builder-dynamic-menu\": true\n * }\n * ```\n */\n\n/**\n * 微应用基本信息。\n */\n\n/**\n * 页面整体布局类型。\n */\n\n/**\n * 应用的基本信息的本地化配置。\n *\n * @example\n *\n * ```yaml\n * zh:\n * name: 搜索\n * en:\n * name: Search\n * ```\n */\n\n/**\n * 应用的单个地域的本地化配置。\n */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/**\n * 应用的 Storyboard 配置。\n */\n\n/** @internal */\nfunction isRouteConfOfBricks(conf) {\n return conf.type !== \"routes\" && !!conf.bricks;\n}\nfunction isRouteConfOfRoutes(conf) {\n return conf.type === \"routes\";\n}\n/**\n * 路由配置,类型可以是构件列表、子路由列表和重定向中的一种。\n */\n\nexport { BrickEvent, PropertyDisplayType, isRouteConfOfBricks, isRouteConfOfRoutes };\n//# sourceMappingURL=index.esm.js.map\n","import { RuntimeMisc } from \"@next-core/brick-types\";\n\nlet misc: RuntimeMisc;\n\nexport function getRuntimeMisc(): RuntimeMisc {\n if (!misc) {\n misc = {\n isInIframe: false,\n isInIframeOfLegacyConsole: false,\n };\n\n if (window !== window.parent) {\n misc.isInIframe = true;\n try {\n misc.isInIframeOfLegacyConsole = window.origin === window.parent.origin;\n } catch (e) {\n // do nothing\n }\n }\n\n Object.freeze(misc);\n }\n\n return misc;\n}\n","import {\n BrickConf,\n RouteConf,\n RouteConfOfBricks,\n Storyboard,\n} from \"@next-core/brick-types\";\nimport { isObject } from \"@next-core/brick-utils\";\n\nexport type SubStoryboardMatcher = (routes: RouteConf[]) => RouteConf[];\n\nexport function getSubStoryboardByRoute(\n storyboard: Storyboard,\n matcher: SubStoryboardMatcher\n): Storyboard {\n function getSubRoutes(routes: RouteConf[]): RouteConf[] {\n return matcher(routes).map(getSubRoute);\n }\n\n function getSubRoute(route: RouteConf): RouteConf {\n if (route.type === \"routes\") {\n return {\n ...route,\n routes: getSubRoutes(route.routes),\n };\n }\n return {\n ...route,\n bricks: getSubBricks((route as RouteConfOfBricks).bricks),\n } as RouteConfOfBricks;\n }\n\n function getSubBricks(bricks: BrickConf[]): BrickConf[] {\n if (Array.isArray(bricks)) {\n return bricks.map((brickConf) => getSubBrick(brickConf));\n }\n return bricks;\n }\n\n function getSubBrick(brickConf: BrickConf): BrickConf {\n if (isObject(brickConf.slots)) {\n return {\n ...brickConf,\n slots: Object.fromEntries(\n Object.entries(brickConf.slots).map(([slotId, slotConf]) => {\n if (slotConf.type === \"routes\") {\n return [\n slotId,\n {\n ...slotConf,\n routes: getSubRoutes(slotConf.routes),\n },\n ];\n } /* istanbul ignore else: should never reach */ else if (\n slotConf.type === \"bricks\"\n ) {\n return [\n slotId,\n {\n ...slotConf,\n bricks: getSubBricks(slotConf.bricks),\n },\n ];\n }\n /* istanbul ignore next: should never reach */\n return [slotId, slotConf];\n })\n ),\n };\n }\n return brickConf;\n }\n\n return {\n ...storyboard,\n routes: getSubRoutes(storyboard.routes),\n };\n}\n","import {\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxyMergeableProperty,\n CustomTemplateProxyProperty,\n CustomTemplateProxyRefProperty,\n CustomTemplateProxyTransformableProperty,\n CustomTemplateProxyVariableProperty,\n} from \"@next-core/brick-types\";\n\nexport function isBasicProperty(\n propRef: CustomTemplateProxyProperty\n): propRef is CustomTemplateProxyBasicProperty {\n return !!(propRef as CustomTemplateProxyBasicProperty).refProperty;\n}\n\nexport function isTransformableProperty(\n propRef: CustomTemplateProxyProperty\n): propRef is CustomTemplateProxyTransformableProperty {\n return !!(propRef as CustomTemplateProxyTransformableProperty).refTransform;\n}\n\nexport function isMergeableProperty(\n propRef: CustomTemplateProxyProperty\n): propRef is CustomTemplateProxyMergeableProperty {\n return !!(propRef as CustomTemplateProxyMergeableProperty).mergeProperty;\n}\n\nexport function isRefProperty(\n propRef: CustomTemplateProxyProperty\n): propRef is CustomTemplateProxyRefProperty {\n return !!(propRef as CustomTemplateProxyRefProperty).ref;\n}\n\nexport function isVariableProperty(\n propRef: CustomTemplateProxyProperty\n): propRef is CustomTemplateProxyVariableProperty {\n return !!(propRef as CustomTemplateProxyVariableProperty).asVariable;\n}\n","import { BrickConfInTemplate, CustomTemplate } from \"@next-core/brick-types\";\n\ntype RefToBrickConfMap = Map<string, BrickConfInTemplate>;\n\nexport function collectRefsInTemplate(\n template: CustomTemplate\n): RefToBrickConfMap {\n const refMap: RefToBrickConfMap = new Map();\n collectRefsInBrickConfs(template.bricks, refMap);\n return refMap;\n}\n\nfunction collectRefsInBrickConfs(\n brickConfs: BrickConfInTemplate[],\n refMap: RefToBrickConfMap\n): void {\n if (Array.isArray(brickConfs)) {\n for (const item of brickConfs) {\n collectRefsInBrickConf(item, refMap);\n }\n }\n}\n\nfunction collectRefsInBrickConf(\n brickConf: BrickConfInTemplate,\n refMap: RefToBrickConfMap\n): void {\n const { ref, slots } = brickConf;\n if (ref) {\n refMap.set(ref, brickConf);\n }\n if (slots) {\n for (const slotConf of Object.values(slots)) {\n collectRefsInBrickConfs(slotConf.bricks, refMap);\n }\n }\n}\n","import { isObject } from \"@next-core/brick-utils\";\nimport { clamp } from \"lodash\";\nimport { computeRealValue } from \"../../internal/setProperties\";\nimport {\n MergeablePropertyProxy,\n MergeablePropertyProxyOfArray,\n MergeBase,\n} from \"./internalInterfaces\";\n\nexport function propertyMerge(\n conf: MergeablePropertyProxy,\n value: unknown,\n object: Record<string, unknown>\n): unknown {\n return propertyMergeAll(\n conf.$$mergeBase,\n Object.fromEntries(\n conf.$$mergeBase.proxies.map((proxy) => [\n proxy.$$reversedRef,\n proxy === conf ? value : object[proxy.$$reversedRef],\n ])\n )\n );\n}\n\nexport function propertyMergeAll(\n mergeBase: MergeBase,\n object: Record<string, unknown>\n): unknown {\n if (mergeBase.mergeType === \"array\") {\n return propertyMergeAllOfArray(mergeBase, object);\n }\n if (mergeBase.mergeType === \"object\") {\n return propertyMergeAllOfObject(mergeBase, object);\n }\n // istanbul ignore next: should never reach\n throw new TypeError(`unsupported mergeType: \"${mergeBase.mergeType}\"`);\n}\n\nfunction propertyMergeAllOfArray(\n { baseValue, context, proxies }: MergeBase,\n object: Record<string, unknown>\n): unknown[] {\n // Use an approach like template-literal's quasis:\n // `quasi0${0}quais1${1}quasi2...`\n // Every quasi can be merged with multiple items.\n const computedBaseValue = Array.isArray(baseValue)\n ? (computeRealValue(baseValue, context, true) as unknown[])\n : [];\n const quasis: unknown[][] = [];\n const size = computedBaseValue.length + 1;\n for (let i = 0; i < size; i += 1) {\n quasis.push([]);\n }\n\n for (const proxy of proxies as MergeablePropertyProxyOfArray[]) {\n let position: number;\n switch (proxy.mergeMethod) {\n case \"append\":\n position = computedBaseValue.length;\n break;\n case \"prepend\":\n position = 0;\n break;\n case \"insertAt\":\n // Defaults to `-1`.\n position = (proxy.mergeArgs as [number])?.[0] ?? -1;\n if (position < 0) {\n // It's counted from the end if position is negative.\n position += quasis.length;\n }\n position = clamp(position, 0, computedBaseValue.length);\n break;\n // istanbul ignore next: should never reach\n default:\n throw new TypeError(\n `unsupported mergeMethod: \"${proxy.mergeMethod}\" for mergeType \"${proxy.mergeType}\"`\n );\n }\n let patchValue = object[proxy.$$reversedRef] as unknown[];\n if (!Array.isArray(patchValue)) {\n patchValue = [];\n }\n quasis[position].push(...patchValue);\n }\n\n return quasis.flatMap((item, index) =>\n index < computedBaseValue.length\n ? item.concat(computedBaseValue[index])\n : item\n );\n}\n\nfunction propertyMergeAllOfObject(\n { baseValue, proxies, context }: MergeBase,\n object: Record<string, unknown>\n): Record<string, unknown> {\n const computedBaseValue = isObject(baseValue)\n ? (computeRealValue(baseValue, context, true) as Record<string, unknown>)\n : {};\n return proxies.reduce((acc, proxy) => {\n switch (proxy.mergeMethod) {\n case \"extend\":\n return {\n ...acc,\n ...(object[proxy.$$reversedRef] as Record<string, unknown>),\n };\n // istanbul ignore next: should never reach\n default:\n throw new TypeError(\n `unsupported mergeMethod: \"${proxy.mergeMethod}\" for mergeType \"${proxy.mergeType}\"`\n );\n }\n }, computedBaseValue);\n}\n","import {\n BrickConfInTemplate,\n PluginRuntimeContext,\n} from \"@next-core/brick-types\";\nimport { MergeablePropertyProxy, MergeBase } from \"./internalInterfaces\";\n\nexport function collectMergeBases(\n conf: MergeablePropertyProxy,\n mergeBases: Map<string, Map<string, MergeBase>>,\n contextInTemplate: PluginRuntimeContext,\n refToBrickConf: Map<string, BrickConfInTemplate>\n): void {\n let mergeBaseMap: Map<string, MergeBase>;\n if (mergeBases.has(conf.ref)) {\n mergeBaseMap = mergeBases.get(conf.ref);\n } else {\n mergeBaseMap = new Map();\n mergeBases.set(conf.ref, mergeBaseMap);\n }\n\n if (mergeBaseMap.has(conf.mergeProperty)) {\n conf.$$mergeBase = mergeBaseMap.get(conf.mergeProperty);\n // istanbul ignore if: should never reach\n if (conf.mergeType !== conf.$$mergeBase.mergeType) {\n throw new Error(\n `Properties proxy contained different mergeTypes of \"${conf.$$mergeBase.mergeType}\" and \"${conf.mergeType}\"`\n );\n }\n conf.$$mergeBase.proxies.push(conf);\n } else {\n const baseValue = refToBrickConf.get(conf.ref).properties?.[\n conf.mergeProperty\n ];\n conf.$$mergeBase = {\n proxies: [conf],\n mergeType: conf.mergeType,\n baseValue,\n context: contextInTemplate,\n };\n mergeBaseMap.set(conf.mergeProperty, conf.$$mergeBase);\n }\n}\n","import {\n BrickConf,\n BrickConfInTemplate,\n CustomTemplateProxySlot,\n PluginRuntimeContext,\n RefForProxy,\n RuntimeBrickConf,\n SlotsConfOfBricks,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport { hasOwnProperty, isObject } from \"@next-core/brick-utils\";\nimport { clamp } from \"lodash\";\nimport { preprocessTransformProperties } from \"../../transformProperties\";\nimport { RuntimeBrick } from \"../BrickNode\";\nimport {\n MergeBase,\n PropertyProxy,\n RuntimeCustomTemplateProxy,\n RuntimeCustomTemplateProxyProperties,\n} from \"./internalInterfaces\";\nimport {\n isBasicProperty,\n isMergeableProperty,\n isTransformableProperty,\n isVariableProperty,\n} from \"./assertions\";\nimport { collectRefsInTemplate } from \"./collectRefsInTemplate\";\nimport {\n customTemplateRegistry,\n RuntimeBrickConfWithTplSymbols,\n symbolForComputedPropsFromProxy,\n symbolForParentTemplate,\n symbolForRefForProxy,\n symbolForTplContextId,\n} from \"./constants\";\nimport { propertyMergeAll } from \"./propertyMerge\";\nimport { collectMergeBases } from \"./collectMergeBases\";\nimport { CustomTemplateContext } from \"./CustomTemplateContext\";\n\ninterface ProxyContext {\n reversedProxies: ReversedProxies;\n templateProperties: Record<string, unknown>;\n templateSlots: SlotsConfOfBricks;\n templateContextId: string;\n proxyBrick: RuntimeBrick;\n}\n\ninterface ReversedProxies {\n properties: Map<string, PropertyProxy[]>;\n slots: Map<string, SlotProxy[]>;\n mergeBases: Map<string, Map<string, MergeBase>>;\n}\n\ninterface SlotProxy extends CustomTemplateProxySlot {\n $$reversedRef?: string;\n}\n\nexport function expandCustomTemplate(\n brickConf: RuntimeBrickConf,\n proxyBrick: RuntimeBrick,\n context: PluginRuntimeContext,\n tplContext: CustomTemplateContext\n): RuntimeBrickConf {\n const template = customTemplateRegistry.get(brickConf.brick);\n const { bricks, proxy } = template;\n const {\n properties: templateProperties,\n slots: templateSlots,\n ...restBrickConf\n } = brickConf;\n const newBrickConf = restBrickConf as RuntimeBrickConf;\n\n // Get a copy of proxy for each instance of custom template.\n const proxyCopy: RuntimeCustomTemplateProxy = {\n ...proxy,\n };\n proxyBrick.proxy = proxyCopy;\n proxyBrick.proxyRefs = new Map();\n\n const refToBrickConf = collectRefsInTemplate(template);\n\n // Reversed proxies are used for expand storyboard before rendering page.\n const reversedProxies: ReversedProxies = {\n properties: new Map(),\n slots: new Map(),\n mergeBases: new Map(),\n };\n\n const tplVariables: Record<string, unknown> = {};\n const templateContextId = tplContext.createContext();\n const getTplVariables = (): Record<string, unknown> =>\n tplContext.getContext(templateContextId);\n\n if (proxy?.properties) {\n const refPropertiesCopy = {} as RuntimeCustomTemplateProxyProperties;\n proxyCopy.$$properties = refPropertiesCopy;\n\n for (const [reversedRef, conf] of Object.entries(proxy.properties)) {\n if (isVariableProperty(conf)) {\n tplVariables[reversedRef] = templateProperties?.[reversedRef];\n } else {\n // Variable property proxies have no refs.\n refPropertiesCopy[reversedRef] = {\n ...conf,\n extraOneWayRefs: Array.isArray(conf.extraOneWayRefs)\n ? conf.extraOneWayRefs.map((extraConf) => ({ ...extraConf }))\n : undefined,\n };\n }\n }\n\n tplContext.sealContext(templateContextId, tplVariables, proxyBrick);\n\n const reversedProperties = reversedProxies.properties;\n for (const [reversedRef, conf] of Object.entries(refPropertiesCopy)) {\n let proxies: PropertyProxy[];\n if (reversedProperties.has(conf.ref)) {\n proxies = reversedProperties.get(conf.ref);\n } else {\n proxies = [];\n reversedProperties.set(conf.ref, proxies);\n }\n conf.$$reversedRef = reversedRef;\n\n if (isMergeableProperty(conf)) {\n collectMergeBases(\n conf,\n reversedProxies.mergeBases,\n {\n ...context,\n getTplVariables,\n },\n refToBrickConf\n );\n }\n\n proxies.push(conf);\n\n // Properties may have extra refs.\n if (Array.isArray(conf.extraOneWayRefs)) {\n for (const extraRef of conf.extraOneWayRefs) {\n let extraProxies: PropertyProxy[];\n if (reversedProperties.has(extraRef.ref)) {\n extraProxies = reversedProperties.get(extraRef.ref);\n } else {\n extraProxies = [];\n reversedProperties.set(extraRef.ref, extraProxies);\n }\n (extraRef as PropertyProxy).$$reversedRef = reversedRef;\n extraProxies.push(extraRef);\n }\n }\n }\n }\n\n if (proxy?.slots) {\n const reveredSlots = reversedProxies.slots;\n for (const [reversedRef, conf] of Object.entries<SlotProxy>(proxy.slots)) {\n let proxies: SlotProxy[];\n if (reveredSlots.has(conf.ref)) {\n proxies = reveredSlots.get(conf.ref);\n } else {\n proxies = [];\n reveredSlots.set(conf.ref, proxies);\n }\n conf.$$reversedRef = reversedRef;\n proxies.push(conf);\n }\n }\n\n const proxyContext: ProxyContext = {\n reversedProxies,\n templateProperties,\n templateSlots: templateSlots as SlotsConfOfBricks,\n templateContextId,\n proxyBrick,\n };\n\n newBrickConf.slots = {\n \"\": {\n type: \"bricks\",\n bricks: bricks.map((item) => expandBrickInTemplate(item, proxyContext)),\n },\n };\n\n return newBrickConf;\n}\n\nfunction expandBrickInTemplate(\n brickConfInTemplate: BrickConfInTemplate,\n proxyContext: ProxyContext\n): RuntimeBrickConfWithTplSymbols {\n // Ignore `if: null` to make `looseCheckIf` working.\n if (brickConfInTemplate.if === null) {\n delete brickConfInTemplate.if;\n }\n const {\n ref,\n slots: slotsInTemplate,\n ...restBrickConfInTemplate\n } = brickConfInTemplate;\n const {\n reversedProxies,\n templateProperties,\n templateSlots,\n templateContextId,\n proxyBrick: { proxyRefs },\n } = proxyContext;\n const computedPropsFromProxy: Record<string, unknown> = {};\n let refForProxy: RefForProxy;\n let parentTemplate: RuntimeBrick;\n\n if (restBrickConfInTemplate.bg || restBrickConfInTemplate.portal) {\n parentTemplate = proxyContext.proxyBrick;\n }\n\n const slots: SlotsConfOfBricks = Object.fromEntries(\n Object.entries(slotsInTemplate ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map((item) =>\n expandBrickInTemplate(item, proxyContext)\n ),\n },\n ])\n );\n\n // 递归遍历properties下UseBrick, 目的是为了获取底下所有代理属性\n const walkUseBrickInProperties = (properties: Record<string, unknown>) => {\n if (!properties) return;\n Object.entries(properties).forEach(([key, value]) => {\n if (isObject(value)) {\n if (key === \"useBrick\") {\n if (Array.isArray(value)) {\n value.forEach((item) => {\n expandBrickInTemplate(item as BrickConfInTemplate, proxyContext);\n });\n } else {\n expandBrickInTemplate(value as BrickConfInTemplate, proxyContext);\n }\n } else {\n walkUseBrickInProperties(value);\n }\n }\n });\n };\n walkUseBrickInProperties(brickConfInTemplate.properties);\n\n if (ref) {\n refForProxy = {};\n proxyRefs.set(ref, refForProxy);\n\n // Reversed proxies are used for expand storyboard before rendering page.\n if (reversedProxies.properties.has(ref)) {\n Object.assign(\n computedPropsFromProxy,\n Object.fromEntries(\n reversedProxies.properties\n .get(ref)\n .flatMap((item) => {\n // `propValue` is computed.\n const propValue = templateProperties?.[item.$$reversedRef];\n if (isTransformableProperty(item)) {\n return Object.entries(\n preprocessTransformProperties(\n {\n [item.$$reversedRef]: propValue,\n },\n item.refTransform\n )\n );\n }\n if (isBasicProperty(item)) {\n return [[item.refProperty, propValue]];\n }\n // Ignore Variable properties.\n // And mergeable properties are processed later.\n return [];\n })\n .filter((item) => item[1] !== undefined)\n )\n );\n }\n\n // Brick properties can be merged multiple times.\n if (reversedProxies.mergeBases.has(ref)) {\n Object.assign(\n computedPropsFromProxy,\n Object.fromEntries(\n Array.from(reversedProxies.mergeBases.get(ref).entries())\n .map(([mergeProperty, mergeBase]) => [\n mergeProperty,\n propertyMergeAll(mergeBase, templateProperties ?? {}),\n ])\n .filter((item) => item[1] !== undefined)\n )\n );\n }\n\n // Use an approach like template-literal's quasis:\n // `quasi0${0}quais1${1}quasi2...`\n // Every quasi (indexed by `refPosition`) can be slotted with multiple bricks.\n const quasisMap = new Map<string, BrickConf[][]>();\n\n if (reversedProxies.slots.has(ref)) {\n for (const item of reversedProxies.slots.get(ref)) {\n if (!quasisMap.has(item.refSlot)) {\n const quasis: BrickConf[][] = [];\n // The size of quasis should be the existed slotted bricks' size plus one.\n const size = hasOwnProperty(slots, item.refSlot)\n ? slots[item.refSlot].bricks.length + 1\n : 1;\n for (let i = 0; i < size; i += 1) {\n quasis.push([]);\n }\n quasisMap.set(item.refSlot, quasis);\n }\n const expandableSlot = quasisMap.get(item.refSlot);\n const refPosition = item.refPosition ?? -1;\n expandableSlot[\n clamp(\n refPosition < 0 ? expandableSlot.length + refPosition : refPosition,\n 0,\n expandableSlot.length - 1\n )\n ].push(...(templateSlots?.[item.$$reversedRef]?.bricks ?? []));\n }\n }\n\n for (const [slotName, quasis] of quasisMap.entries()) {\n if (!hasOwnProperty(slots, slotName)) {\n slots[slotName] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n const slotConf = slots[slotName];\n slotConf.bricks = quasis.flatMap((bricks, index) =>\n index < slotConf.bricks.length\n ? bricks.concat(slotConf.bricks[index])\n : bricks\n );\n\n if (slotConf.bricks.length === 0) {\n delete slots[slotName];\n }\n }\n }\n\n return {\n ...restBrickConfInTemplate,\n slots,\n [symbolForComputedPropsFromProxy]: computedPropsFromProxy,\n [symbolForRefForProxy]: refForProxy,\n [symbolForParentTemplate]: parentTemplate,\n [symbolForTplContextId]: templateContextId,\n };\n}\n","import { customTemplateRegistry } from \"./constants\";\n\n// If it's a custom template, return the tag name of the template.\n// Otherwise, return false.\nexport function getTagNameOfCustomTemplate(\n brick: string,\n appId?: string\n): false | string {\n // When a template is registered by an app, it's namespace maybe missed.\n if (!brick.includes(\".\") && appId) {\n const tagName = `${appId}.${brick}`;\n if (customTemplateRegistry.has(tagName)) {\n return tagName;\n }\n }\n if (customTemplateRegistry.has(brick)) {\n return brick;\n }\n return false;\n}\n","import {\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxyProperty,\n} from \"@next-core/brick-types\";\nimport { transformElementProperties } from \"../../transformProperties\";\nimport { RuntimeBrick } from \"../BrickNode\";\nimport {\n isMergeableProperty,\n isRefProperty,\n isTransformableProperty,\n} from \"./assertions\";\nimport { propertyMerge } from \"./propertyMerge\";\n\nexport function handleProxyOfCustomTemplate(brick: RuntimeBrick): void {\n if (!brick.proxyRefs) {\n return;\n }\n\n const node = brick.element as any;\n\n function getElementByRef(ref: string): HTMLElement {\n if (brick.proxyRefs.has(ref)) {\n return brick.proxyRefs.get(ref).brick?.element;\n }\n }\n\n // For usages of `targetRef: \"...\"`.\n // `tpl.$$getElementByRef(ref)` will return the ref element inside a custom template.\n if (!node.$$getElementByRef) {\n Object.defineProperty(node, \"$$getElementByRef\", {\n value: getElementByRef,\n });\n }\n\n if (!brick.proxy) {\n return;\n }\n\n const handleExtraOneWayRefs = (\n propName: string,\n propRef: CustomTemplateProxyProperty,\n value: unknown\n ): void => {\n if (isRefProperty(propRef) && Array.isArray(propRef.extraOneWayRefs)) {\n for (const extraRef of propRef.extraOneWayRefs) {\n const extraRefElement = getElementByRef(extraRef.ref) as any;\n // should always have refElement.\n // istanbul ignore else\n if (extraRefElement) {\n if (isTransformableProperty(extraRef)) {\n transformElementProperties(\n extraRefElement as HTMLElement,\n {\n [propName]: value,\n },\n extraRef.refTransform\n );\n } else if (isMergeableProperty(extraRef)) {\n extraRefElement[extraRef.mergeProperty] = propertyMerge(\n extraRef,\n value,\n node\n );\n } else {\n extraRefElement[\n (extraRef as CustomTemplateProxyBasicProperty).refProperty\n ] = value;\n }\n }\n }\n }\n };\n\n const { $$properties: properties, events, methods } = brick.proxy;\n if (properties) {\n for (const [propName, propRef] of Object.entries(properties)) {\n const refElement = getElementByRef(propRef.ref) as any;\n // should always have refElement.\n // istanbul ignore else\n if (refElement) {\n if (isTransformableProperty(propRef) || isMergeableProperty(propRef)) {\n // Create a non-enumerable symbol property to delegate the tpl root property.\n const delegatedPropSymbol = Symbol(`delegatedProp:${propName}`);\n node[delegatedPropSymbol] = node[propName];\n Object.defineProperty(node, propName, {\n get: function () {\n return node[delegatedPropSymbol];\n },\n set: function (value: unknown) {\n node[delegatedPropSymbol] = value;\n if (isTransformableProperty(propRef)) {\n transformElementProperties(\n refElement,\n {\n [propName]: value,\n },\n propRef.refTransform\n );\n } else {\n refElement[propRef.mergeProperty] = propertyMerge(\n propRef,\n value,\n node\n );\n }\n handleExtraOneWayRefs(propName, propRef, value);\n },\n enumerable: true,\n });\n } else {\n Object.defineProperty(node, propName, {\n get: function () {\n return refElement[propRef.refProperty];\n },\n set: function (value: unknown) {\n refElement[propRef.refProperty] = value;\n handleExtraOneWayRefs(propName, propRef, value);\n },\n enumerable: true,\n });\n }\n }\n }\n }\n\n if (events) {\n for (const [eventType, eventRef] of Object.entries(events)) {\n const refElement = getElementByRef(eventRef.ref) as any;\n // should always have refElement.\n // istanbul ignore else\n if (refElement) {\n const listener = (e: Event) => {\n if (e.bubbles) {\n e.stopPropagation();\n }\n (node as HTMLElement).dispatchEvent(\n new CustomEvent(eventType, {\n detail: (e as CustomEvent).detail,\n bubbles: e.bubbles,\n cancelable: e.cancelable,\n composed: e.composed,\n })\n );\n };\n /**\n * useBrick 重新渲染会导致事件重复绑定发生\n * 为了防止代理事件重复绑定, 增加$$proxyEvents\n * 每次设置代理属性方法, 提前判断之前是否已经绑定, 如若有, 则解绑并删除\n */\n if (refElement.$$proxyEvents) {\n refElement.$$proxyEvents = (\n refElement.$$proxyEvents as Array<\n [string, string, (e: Event) => void]\n >\n ).filter(([proxyEvent, event, listener]) => {\n if (proxyEvent === eventType) {\n refElement.removeEventListener(event, listener);\n return false;\n }\n return true;\n });\n } else {\n refElement.$$proxyEvents = [];\n }\n refElement.$$proxyEvents.push([eventType, eventRef.refEvent, listener]);\n refElement.addEventListener(eventRef.refEvent, listener);\n }\n }\n }\n\n if (methods) {\n for (const [method, methodRef] of Object.entries(methods)) {\n const refElement = getElementByRef(methodRef.ref) as any;\n // should always have refElement.\n // istanbul ignore else\n if (refElement) {\n Object.defineProperty(node, method, {\n value: function (...args: unknown[]) {\n return refElement[methodRef.refMethod](...args);\n },\n });\n }\n }\n }\n}\n","import { CustomTemplateConstructor } from \"@next-core/brick-types\";\nimport { appRegistered, customTemplateRegistry } from \"./constants\";\n\nexport function registerCustomTemplate(\n tplName: string,\n tplConstructor: CustomTemplateConstructor,\n appId?: string\n): void {\n let tagName = tplName;\n // When a template is registered by an app, its namespace maybe missed.\n if (appId && !tplName.includes(\".\")) {\n tagName = `${appId}.${tplName}`;\n }\n if (customTemplateRegistry.has(tagName)) {\n // When open launchpad, the storyboard will be updated.\n // However, we can't *undefine* a custom element.\n // Just ignore re-registering custom templates.\n if (!appId || appRegistered.has(appId)) {\n // eslint-disable-next-line no-console\n console.error(`Custom template of \"${tagName}\" already registered.`);\n }\n return;\n }\n if (customElements.get(tagName)) {\n // eslint-disable-next-line no-console\n console.error(\n `Custom template of \"${tagName}\" already defined by customElements.`\n );\n return;\n }\n customTemplateRegistry.set(tagName, {\n ...tplConstructor,\n name: tagName,\n });\n\n // Collect defined properties of the template.\n const props = Object.keys(tplConstructor.proxy?.properties || {});\n\n const nativeProp = props.find((prop) => prop in HTMLElement.prototype);\n // istanbul ignore if\n if (nativeProp !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\n `In custom template \"${tagName}\", \"${nativeProp}\" is a native HTMLElement property, and should be avoid to be used as a brick property.`\n );\n }\n\n customElements.define(\n tagName,\n class TplElement extends HTMLElement {\n get $$typeof(): string {\n return \"custom-template\";\n }\n\n static get _dev_only_definedProperties(): string[] {\n return props;\n }\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n }\n }\n );\n if (appId) {\n appRegistered.add(appId);\n }\n}\n","import { uniqueId } from \"lodash\";\nimport { RuntimeBrick } from \"../BrickNode\";\n\nexport class CustomTemplateContext {\n private contextMap = new Map<string, Record<string, unknown>>();\n private brickMap = new Map<string, RuntimeBrick>();\n private propsMap = new Map<string, string[]>();\n\n createContext(): string {\n return uniqueId(\"tpl-ctx-\");\n }\n\n sealContext(\n id: string,\n value: Record<string, unknown>,\n brick: RuntimeBrick\n ): void {\n Object.freeze(value);\n this.contextMap.set(id, value);\n this.brickMap.set(id, brick);\n this.propsMap.set(id, Object.keys(value));\n }\n\n getContext(id: string): Record<string, unknown> {\n const brick = this.brickMap.get(id);\n if (brick.element) {\n const props = this.propsMap.get(id);\n return Object.fromEntries(\n props.map((prop) => [prop, (brick.element as any)[prop]])\n );\n }\n return this.contextMap.get(id);\n }\n\n getBrick(id: string): RuntimeBrick {\n return this.brickMap.get(id);\n }\n}\n","import {\n PluginRuntimeContext,\n StoryboardContextItemFreeVariable,\n} from \"@next-core/brick-types\";\nimport { setProperties } from \"./setProperties\";\nimport { RuntimeBrick } from \"../core/BrickNode\";\n\nexport interface TrackingContextItem {\n contextNames: string[];\n propName: string;\n propValue: string;\n}\n\nexport function listenOnTrackingContext(\n brick: RuntimeBrick,\n trackingContextList: TrackingContextItem[],\n context: PluginRuntimeContext\n): void {\n for (const track of trackingContextList) {\n const listener = (): void => {\n if (brick.element) {\n setProperties(\n brick.element,\n { [track.propName]: track.propValue },\n context,\n true\n );\n }\n };\n for (const contextName of track.contextNames) {\n const ctx = context.storyboardContext.get(contextName);\n (ctx as StoryboardContextItemFreeVariable)?.eventTarget?.addEventListener(\n \"context.change\",\n listener\n );\n }\n }\n}\n","import { omit, orderBy, set } from \"lodash\";\nimport EventTarget from \"@ungap/event-target\";\nimport {\n PluginLocation,\n MatchResult,\n RouteConf,\n RuntimeStoryboard,\n BrickConf,\n PluginHistoryState,\n SidebarMenu,\n SidebarSubMenu,\n MenuConf,\n BreadcrumbItemConf,\n MicroApp,\n ProviderConf,\n PluginRuntimeContext,\n BrickEventHandler,\n ResolveConf,\n StaticMenuProps,\n SeguesConf,\n ContextConf,\n StoryboardContext,\n StoryboardContextItem,\n MessageConf,\n BrickLifeCycle,\n Storyboard,\n StaticMenuConf,\n isRouteConfOfBricks,\n isRouteConfOfRoutes,\n} from \"@next-core/brick-types\";\nimport {\n isObject,\n matchPath,\n computeRealRoutePath,\n hasOwnProperty,\n resolveContextConcurrently,\n} from \"@next-core/brick-utils\";\nimport { Action, Location } from \"history\";\nimport { listenerFactory } from \"../internal/bindListeners\";\nimport {\n computeRealProperties,\n computeRealValue,\n} from \"../internal/setProperties\";\nimport { isLoggedIn, getAuth } from \"../auth\";\nimport { getHistory } from \"../history\";\nimport {\n RuntimeBrick,\n Kernel,\n appendBrick,\n Resolver,\n expandCustomTemplate,\n MountableElement,\n getTagNameOfCustomTemplate,\n symbolForComputedPropsFromProxy,\n symbolForRefForProxy,\n symbolForParentTemplate,\n ResolveRequestError,\n RuntimeBrickConfWithTplSymbols,\n CustomTemplateContext,\n} from \"./exports\";\nimport { RedirectConf } from \"./interfaces\";\nimport { looseCheckIf, IfContainer } from \"../checkIf\";\nimport { getMessageDispatcher, MessageDispatcher } from \"./MessageDispatcher\";\nimport { getRuntimeMisc } from \"../internal/misc\";\nimport { httpErrorToString } from \"../handleHttpError\";\nimport {\n getSubStoryboardByRoute,\n SubStoryboardMatcher,\n} from \"../internal/getSubStoryboardByRoute\";\nimport { symbolForTplContextId } from \"./CustomTemplates\";\nimport { validatePermissions } from \"../internal/checkPermissions\";\nimport {\n listenOnTrackingContext,\n TrackingContextItem,\n} from \"../internal/listenOnTrackingContext\";\n\nexport type MatchRoutesResult =\n | {\n match: MatchResult;\n route: RouteConf;\n }\n | \"missed\"\n | \"unauthenticated\";\n\nexport interface MountRoutesResult {\n main: RuntimeBrick[];\n menuInBg: RuntimeBrick[];\n menuBar: {\n menu?: Partial<SidebarMenu>;\n subMenu?: Partial<SidebarSubMenu>;\n menuId?: string;\n subMenuId?: string;\n };\n portal: RuntimeBrick[];\n appBar: {\n pageTitle?: string;\n breadcrumb: BreadcrumbItemConf[];\n documentId?: string;\n noCurrentApp?: boolean;\n };\n flags: {\n unauthenticated?: boolean;\n redirect?: {\n path: string;\n state?: PluginHistoryState;\n };\n barsHidden?: boolean;\n hybrid?: boolean;\n failed?: boolean;\n };\n route?: RouteConf;\n analyticsData?: Record<string, unknown>;\n}\n\ninterface BrickAndLifeCycleHandler {\n brick: RuntimeBrick;\n match: MatchResult;\n tplContextId?: string;\n handler: BrickEventHandler | BrickEventHandler[];\n}\n\nexport interface BrickAndMessage {\n brick: RuntimeBrick;\n match: MatchResult;\n tplContextId?: string;\n message: MessageConf | MessageConf[];\n}\n\nexport class LocationContext {\n private readonly query: URLSearchParams;\n readonly resolver: Resolver;\n readonly messageDispatcher: MessageDispatcher;\n private readonly beforePageLoadHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly pageLoadHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly beforePageLeaveHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly pageLeaveHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly anchorLoadHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly anchorUnloadHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly messageCloseHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly messageHandlers: BrickAndMessage[] = [];\n private readonly segues: SeguesConf = {};\n private currentMatch: MatchResult;\n private readonly storyboardContext: StoryboardContext = new Map();\n private readonly tplContext = new CustomTemplateContext();\n\n constructor(private kernel: Kernel, private location: PluginLocation) {\n this.resolver = new Resolver(kernel);\n this.query = new URLSearchParams(location.search);\n this.messageDispatcher = getMessageDispatcher();\n }\n\n private getContext({\n match,\n tplContextId,\n }: {\n match: MatchResult;\n tplContextId?: string;\n }): PluginRuntimeContext {\n const auth = getAuth();\n const context: PluginRuntimeContext = {\n hash: this.location.hash,\n query: this.query,\n match,\n app: this.kernel.nextApp,\n sys: {\n org: auth.org,\n username: auth.username,\n userInstanceId: auth.userInstanceId,\n loginFrom: auth.loginFrom,\n accessRule: auth.accessRule,\n isAdmin: auth.isAdmin,\n ...getRuntimeMisc(),\n },\n flags: this.kernel.getFeatureFlags(),\n segues: this.segues,\n storyboardContext: this.storyboardContext,\n };\n if (tplContextId) {\n context.getTplVariables = () => this.tplContext.getContext(tplContextId);\n }\n return context;\n }\n\n getCurrentContext(): PluginRuntimeContext {\n return this.getContext({\n match: this.currentMatch,\n });\n }\n\n private async defineStoryboardFreeContext(\n contextConfs: ContextConf[],\n coreContext: PluginRuntimeContext,\n brick?: RuntimeBrick\n ): Promise<void> {\n await resolveContextConcurrently(contextConfs, (contextConf: ContextConf) =>\n this.resolveStoryboardContext(contextConf, coreContext, brick)\n );\n }\n\n private async resolveStoryboardContext(\n contextConf: ContextConf,\n coreContext: PluginRuntimeContext,\n brick?: RuntimeBrick\n ): Promise<boolean> {\n if (contextConf.property) {\n if (brick) {\n this.setStoryboardContext(contextConf.name, {\n type: \"brick-property\",\n brick,\n prop: contextConf.property,\n });\n }\n } else {\n if (!looseCheckIf(contextConf, coreContext)) {\n return false;\n }\n let isResolve = false;\n let value: unknown;\n if (contextConf.resolve) {\n if (looseCheckIf(contextConf.resolve, coreContext)) {\n isResolve = true;\n const valueConf: Record<string, unknown> = {};\n await this.resolver.resolveOne(\n \"reference\",\n {\n transform: \"value\",\n transformMapArray: false,\n ...contextConf.resolve,\n },\n valueConf,\n null,\n coreContext\n );\n value = valueConf.value;\n } else if (!hasOwnProperty(contextConf, \"value\")) {\n return false;\n }\n }\n if (!isResolve && contextConf.value !== undefined) {\n value = computeRealValue(contextConf.value, coreContext, true);\n }\n const newContext: StoryboardContextItem = {\n type: \"free-variable\",\n value,\n // This is required for tracking context, even if no `onChange` is specified.\n eventTarget: new EventTarget(),\n };\n if (contextConf.onChange) {\n for (const handler of ([] as BrickEventHandler[]).concat(\n contextConf.onChange\n )) {\n newContext.eventTarget.addEventListener(\n \"context.change\",\n listenerFactory(handler, coreContext, brick)\n );\n }\n }\n this.setStoryboardContext(contextConf.name, newContext);\n }\n return true;\n }\n\n private setStoryboardContext(\n name: string,\n item: StoryboardContextItem\n ): void {\n if (this.storyboardContext.has(name)) {\n // eslint-disable-next-line no-console\n console.warn(\n `Storyboard context \"${name}\" have already existed, it will be replaced.`\n );\n }\n this.storyboardContext.set(name, item);\n }\n\n private matchRoutes(routes: RouteConf[], app: MicroApp): MatchRoutesResult {\n for (const route of routes) {\n const computedPath = computeRealRoutePath(route.path, app);\n if ([].concat(computedPath).includes(undefined)) {\n // eslint-disable-next-line no-console\n console.error(\"Invalid route with invalid path:\", route);\n return \"missed\";\n }\n const match = matchPath(this.location.pathname, {\n path: computedPath,\n exact: route.exact,\n });\n if (match !== null) {\n if (app.noAuthGuard || route.public || isLoggedIn()) {\n this.currentMatch = match;\n return { match, route };\n }\n return \"unauthenticated\";\n }\n }\n return \"missed\";\n }\n\n matchStoryboard(storyboards: RuntimeStoryboard[]): RuntimeStoryboard {\n if (window.STANDALONE_MICRO_APPS && storyboards.length === 1) {\n return storyboards[0];\n }\n // Put apps with longer homepage before shorter ones.\n // E.g., `/legacy/tool` will match first before `/legacy`.\n // This enables two apps with relationship of parent-child of homepage.\n const sortedStoryboards = orderBy(\n storyboards,\n (storyboard) => storyboard.app?.homepage?.length ?? 0,\n \"desc\"\n );\n for (const storyboard of sortedStoryboards) {\n const homepage = storyboard.app?.homepage;\n if (typeof homepage === \"string\" && homepage[0] === \"/\") {\n if (\n matchPath(this.location.pathname, {\n path: homepage,\n exact: homepage === \"/\",\n })\n ) {\n return storyboard;\n }\n }\n }\n }\n\n getSubStoryboardByRoute(storyboard: Storyboard): Storyboard {\n const matcher: SubStoryboardMatcher = (routes) => {\n const matched = this.matchRoutes(routes, storyboard.app);\n return isObject(matched) ? [matched.route] : [];\n };\n return getSubStoryboardByRoute(storyboard, matcher);\n }\n\n async mountRoutes(\n routes: RouteConf[],\n slotId?: string,\n mountRoutesResult?: MountRoutesResult\n ): Promise<MountRoutesResult> {\n const matched = this.matchRoutes(routes, this.kernel.nextApp);\n let redirect: string | ResolveConf;\n const redirectConf: RedirectConf = {};\n let context: PluginRuntimeContext;\n let route: RouteConf;\n switch (matched) {\n case \"missed\":\n break;\n case \"unauthenticated\":\n mountRoutesResult.flags.unauthenticated = true;\n break;\n default:\n mountRoutesResult.route = route = matched.route;\n if (route.segues) {\n Object.assign(this.segues, route.segues);\n }\n if (route.hybrid) {\n mountRoutesResult.flags.hybrid = true;\n }\n context = this.getContext({ match: matched.match });\n this.resolver.defineResolves(route.defineResolves, context);\n await this.mountProviders(\n route.providers,\n matched.match,\n slotId,\n mountRoutesResult\n );\n\n if (Array.isArray(route.context)) {\n await this.defineStoryboardFreeContext(route.context, context);\n }\n await this.preCheckPermissions(route, context);\n\n redirect = computeRealValue(route.redirect, context, true) as\n | string\n | ResolveConf;\n\n if (redirect) {\n if (typeof redirect === \"string\") {\n // Directly redirect.\n mountRoutesResult.flags.redirect = {\n path: redirect,\n };\n break;\n } else {\n // Resolvable redirect.\n await this.resolver.resolveOne(\"reference\", redirect, redirectConf);\n if (redirectConf.redirect) {\n mountRoutesResult.flags.redirect = {\n path: redirectConf.redirect,\n };\n break;\n }\n }\n }\n\n await this.mountMenu(route.menu, matched.match, mountRoutesResult);\n\n if (route.documentId) {\n mountRoutesResult.appBar.documentId = route.documentId;\n }\n\n if (isRouteConfOfRoutes(route) && Array.isArray(route.routes)) {\n await this.mountRoutes(route.routes, slotId, mountRoutesResult);\n } else if (isRouteConfOfBricks(route) && Array.isArray(route.bricks)) {\n await this.mountBricks(\n route.bricks,\n matched.match,\n slotId,\n mountRoutesResult\n );\n\n // analytics data (page_view event)\n if (route.analyticsData) {\n mountRoutesResult.analyticsData = computeRealValue(\n route.analyticsData,\n context,\n true\n ) as Record<string, unknown>;\n }\n }\n }\n return mountRoutesResult;\n }\n\n private async mountMenu(\n menuConf: MenuConf,\n match: MatchResult,\n mountRoutesResult: MountRoutesResult\n ): Promise<void> {\n if (menuConf === false) {\n // `route.menu` 设置为 `false` 表示不显示顶栏和侧栏。\n mountRoutesResult.flags.barsHidden = true;\n return;\n }\n\n // `route.menu` 留空表示不做处理。\n if (!menuConf) {\n return;\n }\n\n const context = this.getContext({ match });\n\n if (menuConf.type === \"brick\") {\n // eslint-disable-next-line no-console\n console.warn(\n \"menu type `brick` is deprecated, please use menu type `resolve` instead\"\n );\n // 如果某个路由的菜单无法配置为静态的 json,\n // 那么可以将菜单配置指定为一个构件,这个构件会被装载到背景容器中(不会在界面中显示),\n // 应该在这个构件的 `connectedCallback` 中执行相关菜单设置,\n // 例如 `getRuntime().menuBar.setAppMenu(...)`。\n const brick: RuntimeBrick = {\n type: menuConf.brick,\n properties: computeRealProperties(\n menuConf.properties,\n context,\n menuConf.injectDeep !== false\n ),\n events: isObject(menuConf.events) ? menuConf.events : {},\n context,\n children: [],\n };\n\n this.registerHandlersFromLifeCycle(menuConf.lifeCycle, brick, match);\n\n // Then, resolve the brick.\n await this.resolver.resolve(menuConf, brick, context);\n\n mountRoutesResult.menuInBg.push(brick);\n return;\n }\n\n let injectDeep = (menuConf as StaticMenuProps).injectDeep;\n if (menuConf.type === \"resolve\") {\n await this.resolver.resolveOne(\n \"reference\",\n {\n transformMapArray: false,\n ...menuConf.resolve,\n },\n menuConf,\n null,\n context\n );\n injectDeep = false;\n }\n\n // 静态菜单配置,仅在有值时才设置,这样可以让菜单设置也具有按路由层级覆盖的能力。\n const otherMenuConf = omit(menuConf, [\"injectDeep\", \"type\"]);\n const injectedMenuConf =\n injectDeep !== false\n ? computeRealValue(otherMenuConf, context, true)\n : otherMenuConf;\n const { sidebarMenu, pageTitle, breadcrumb, menuId, subMenuId } =\n injectedMenuConf as StaticMenuConf;\n\n if (menuId) {\n mountRoutesResult.menuBar.menuId = menuId;\n mountRoutesResult.menuBar.menu = sidebarMenu;\n } else if (sidebarMenu) {\n mountRoutesResult.menuBar.menu = sidebarMenu;\n mountRoutesResult.menuBar.menuId = null;\n }\n if (subMenuId) {\n mountRoutesResult.menuBar.subMenuId = subMenuId;\n }\n if (pageTitle) {\n mountRoutesResult.appBar.pageTitle = pageTitle;\n }\n if (breadcrumb) {\n if (breadcrumb.overwrite) {\n mountRoutesResult.appBar.breadcrumb = breadcrumb.items;\n } else {\n mountRoutesResult.appBar.breadcrumb = [\n ...mountRoutesResult.appBar.breadcrumb,\n ...breadcrumb.items,\n ];\n }\n if (hasOwnProperty(breadcrumb, \"noCurrentApp\"))\n mountRoutesResult.appBar.noCurrentApp = breadcrumb.noCurrentApp;\n }\n }\n\n private async mountProviders(\n providers: ProviderConf[],\n match: MatchResult,\n slotId: string,\n mountRoutesResult: MountRoutesResult\n ): Promise<void> {\n if (Array.isArray(providers)) {\n for (const providerConf of providers) {\n await this.mountBrick(\n {\n ...(typeof providerConf === \"string\"\n ? {\n brick: providerConf,\n }\n : providerConf),\n bg: true,\n injectDeep: true,\n },\n match,\n slotId,\n mountRoutesResult\n );\n }\n }\n }\n\n private async mountBricks(\n bricks: BrickConf[],\n match: MatchResult,\n slotId: string,\n mountRoutesResult: MountRoutesResult,\n tplStack?: string[]\n ): Promise<void> {\n for (const brickConf of bricks) {\n try {\n await this.mountBrick(\n brickConf,\n match,\n slotId,\n mountRoutesResult,\n tplStack?.slice()\n );\n } catch (error) {\n if (error instanceof ResolveRequestError) {\n const errorMessage = httpErrorToString(error.rawError);\n const brickName = brickConf.template || brickConf.brick;\n const isLegacyTemplate = !!brickConf.template;\n mountRoutesResult.main.push({\n type: \"basic-bricks.brick-error\",\n properties: {\n // `textContent` is for compatibility when\n // `basic-bricks.brick-error` does not exists.\n textContent: `${\n isLegacyTemplate ? \"Legacy template\" : \"Brick\"\n } <${brickName}> ResolveRequestError: \"${errorMessage}\"`,\n errorType: \"ResolveRequestError\",\n errorMessage,\n brickName,\n isLegacyTemplate,\n },\n events: {},\n slotId,\n });\n } else {\n throw error;\n }\n }\n }\n }\n\n private async checkResolvableIf(\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n ): Promise<boolean> {\n if (isObject(ifContainer.if)) {\n const ifChecked = computeRealValue(ifContainer.if, context, true);\n\n const ifConf: IfContainer = {};\n await this.resolver.resolveOne(\n \"reference\",\n ifChecked as ResolveConf,\n ifConf\n );\n return !hasOwnProperty(ifConf, \"if\") || !!ifConf.if;\n }\n\n return looseCheckIf(ifContainer, context);\n }\n\n private async preCheckPermissions(\n container: BrickConf | RouteConf,\n context: PluginRuntimeContext\n ): Promise<void> {\n if (\n isLoggedIn() &&\n !getAuth().isAdmin &&\n container.permissionsPreCheck &&\n Array.isArray(container.permissionsPreCheck)\n ) {\n const usedActions = computeRealValue(\n container.permissionsPreCheck,\n context,\n true\n );\n await validatePermissions(usedActions as string[]);\n }\n }\n\n async mountBrick(\n brickConf: BrickConf,\n match: MatchResult,\n slotId: string,\n mountRoutesResult: MountRoutesResult,\n tplStack: string[] = []\n ): Promise<void> {\n const tplContextId = (brickConf as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ];\n const context = this.getContext({\n match,\n tplContextId,\n });\n\n // First, check whether the brick should be rendered.\n if (!(await this.checkResolvableIf(brickConf, context))) {\n return;\n }\n\n // Then, resolve the template to a brick.\n if (brickConf.template) {\n await this.resolver.resolve(brickConf, null, context);\n }\n\n // Check `if` again for dynamic loaded templates.\n if (!(await this.checkResolvableIf(brickConf, context))) {\n return;\n }\n\n // If it's a custom template, `tplTagName` is the tag name of the template.\n // Otherwise, `tplTagName` is false.\n const tplTagName = getTagNameOfCustomTemplate(\n brickConf.brick,\n this.kernel.nextApp?.id\n );\n\n if (tplTagName) {\n if (tplStack.includes(tplTagName)) {\n throw new Error(`Circular custom template: \"${tplTagName}\"`);\n }\n tplStack.push(tplTagName);\n }\n\n const brick: RuntimeBrick = {};\n\n if (Array.isArray(brickConf.context)) {\n await this.defineStoryboardFreeContext(brickConf.context, context, brick);\n }\n\n await this.preCheckPermissions(brickConf, context);\n\n const trackingContextList: TrackingContextItem[] = [];\n\n Object.assign(brick, {\n type: tplTagName || brickConf.brick,\n properties: computeRealProperties(\n brickConf.properties,\n context,\n brickConf.injectDeep !== false,\n trackingContextList\n ),\n events: isObject(brickConf.events) ? brickConf.events : {},\n context,\n children: [],\n slotId,\n refForProxy: (brickConf as RuntimeBrickConfWithTplSymbols)[\n symbolForRefForProxy\n ],\n parentTemplate: (brickConf as RuntimeBrickConfWithTplSymbols)[\n symbolForParentTemplate\n ],\n });\n\n if (\n (brickConf as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ) {\n Object.entries(\n (brickConf as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ).forEach(([propName, propValue]) => {\n set(brick.properties, propName, propValue);\n });\n }\n\n listenOnTrackingContext(brick, trackingContextList, context);\n\n if (brick.refForProxy) {\n brick.refForProxy.brick = brick;\n }\n\n this.registerHandlersFromLifeCycle(\n brickConf.lifeCycle,\n brick,\n match,\n tplContextId\n );\n\n // Then, resolve the brick.\n await this.resolver.resolve(brickConf, brick, context);\n\n let expandedBrickConf = brickConf;\n if (tplTagName) {\n expandedBrickConf = expandCustomTemplate(\n {\n ...brickConf,\n brick: tplTagName,\n // Properties are computed for custom templates.\n properties: brick.properties,\n },\n brick,\n context,\n this.tplContext\n );\n\n // Try to load deps for dynamic added bricks.\n await this.kernel.loadDynamicBricksInBrickConf(expandedBrickConf);\n }\n\n const useBrickList: RuntimeBrickConfWithTplSymbols[] = [];\n\n const walkUseBrickInProperties = (\n properties: Record<string, unknown> = {}\n ) => {\n Object.entries(properties).forEach(([key, value]) => {\n // 在测试环境发现有人写成 useBrick: true, 故做了一个兼容处理, 防止报错\n if (key === \"useBrick\" && isObject(value)) {\n useBrickList.push(value);\n }\n if (isObject(value)) {\n walkUseBrickInProperties(value);\n }\n });\n };\n const setTplIdForUseBrick = (list: RuntimeBrickConfWithTplSymbols[]) => {\n if (Array.isArray(list)) {\n list.forEach((item) => {\n if (Array.isArray(item)) {\n setTplIdForUseBrick(item);\n } else {\n item[symbolForTplContextId] = tplContextId;\n if (item.slots) {\n const slotsContent = Object.values(item.slots);\n slotsContent.forEach((slotItem) => {\n setTplIdForUseBrick((slotItem as any).bricks);\n });\n }\n }\n });\n }\n };\n // 如果properteis中存在useBrick, 则递归遍历并赋值tplContextId\n if (tplContextId) {\n walkUseBrickInProperties(brick.properties);\n if (useBrickList.length > 0) {\n setTplIdForUseBrick(useBrickList);\n }\n }\n\n if (expandedBrickConf.exports) {\n for (const [prop, ctxName] of Object.entries(expandedBrickConf.exports)) {\n if (typeof ctxName === \"string\" && ctxName.startsWith(\"CTX.\")) {\n this.setStoryboardContext(ctxName.substr(4), {\n type: \"brick-property\",\n brick,\n prop,\n });\n }\n }\n }\n\n if (expandedBrickConf.bg) {\n appendBrick(brick, this.kernel.mountPoints.bg as MountableElement);\n } else {\n if (expandedBrickConf.portal) {\n // A portal brick has no slotId.\n brick.slotId = undefined;\n // Make parent portal bricks appear before child bricks.\n // This makes z-index of a child brick be higher than its parent.\n mountRoutesResult.portal.push(brick);\n }\n if (isObject(expandedBrickConf.slots)) {\n for (const [slotId, slotConf] of Object.entries(\n expandedBrickConf.slots\n )) {\n const slottedMountRoutesResult = {\n ...mountRoutesResult,\n main: brick.children,\n };\n if (slotConf.type === \"bricks\") {\n await this.mountBricks(\n slotConf.bricks,\n match,\n slotId,\n slottedMountRoutesResult,\n tplStack\n );\n } else if (slotConf.type === \"routes\") {\n await this.mountRoutes(\n slotConf.routes,\n slotId,\n slottedMountRoutesResult\n );\n }\n }\n }\n if (!expandedBrickConf.portal) {\n mountRoutesResult.main.push(brick);\n }\n }\n }\n\n private registerHandlersFromLifeCycle(\n lifeCycle: BrickLifeCycle,\n brick: RuntimeBrick,\n match: MatchResult,\n tplContextId?: string\n ): void {\n const {\n onBeforePageLoad,\n onPageLoad,\n onBeforePageLeave,\n onPageLeave,\n onAnchorLoad,\n onAnchorUnload,\n onMessage,\n onMessageClose,\n } = lifeCycle ?? {};\n\n if (onBeforePageLoad) {\n this.beforePageLoadHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onBeforePageLoad,\n });\n }\n\n if (onPageLoad) {\n this.pageLoadHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onPageLoad,\n });\n }\n\n if (onBeforePageLeave) {\n this.beforePageLeaveHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onBeforePageLeave,\n });\n }\n\n if (onPageLeave) {\n this.pageLeaveHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onPageLeave,\n });\n }\n\n if (onAnchorLoad) {\n this.anchorLoadHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onAnchorLoad,\n });\n }\n\n if (onAnchorUnload) {\n this.anchorUnloadHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onAnchorUnload,\n });\n }\n\n if (onMessage) {\n this.messageHandlers.push({\n brick,\n match,\n tplContextId,\n message: onMessage,\n });\n }\n\n if (onMessageClose) {\n this.messageCloseHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onMessageClose,\n });\n }\n }\n\n handleBeforePageLoad(): void {\n this.dispatchLifeCycleEvent(\n new CustomEvent(\"page.beforeLoad\"),\n this.beforePageLoadHandlers\n );\n }\n\n handlePageLoad(): void {\n const event = new CustomEvent(\"page.load\");\n\n this.dispatchLifeCycleEvent(event, this.pageLoadHandlers);\n\n // Currently only for e2e testing\n window.dispatchEvent(event);\n }\n\n handleBeforePageLeave(detail: {\n location?: Location<PluginHistoryState>;\n action?: Action;\n }): void {\n this.dispatchLifeCycleEvent(\n new CustomEvent(\"page.beforeLeave\", {\n detail,\n }),\n this.beforePageLeaveHandlers\n );\n }\n\n handlePageLeave(): void {\n this.dispatchLifeCycleEvent(\n new CustomEvent(\"page.leave\"),\n this.pageLeaveHandlers\n );\n }\n\n handleAnchorLoad(): void {\n const hash = getHistory().location.hash;\n if (hash && hash !== \"#\") {\n this.dispatchLifeCycleEvent(\n new CustomEvent(\"anchor.load\", {\n detail: {\n hash,\n anchor: hash.substr(1),\n },\n }),\n this.anchorLoadHandlers\n );\n } else {\n this.dispatchLifeCycleEvent(\n new CustomEvent(\"anchor.unload\"),\n this.anchorUnloadHandlers\n );\n }\n }\n\n handleMessage(): void {\n this.messageDispatcher.create(\n this.messageHandlers,\n this.getCurrentContext()\n );\n }\n\n handleMessageClose(event: CloseEvent): void {\n this.dispatchLifeCycleEvent(\n new CustomEvent<CloseEvent>(\"message.close\", {\n detail: event,\n }),\n this.messageCloseHandlers\n );\n }\n\n getCurrentMatch(): MatchResult {\n return this.currentMatch;\n }\n\n getTplContext(): CustomTemplateContext {\n return this.tplContext;\n }\n\n private dispatchLifeCycleEvent(\n event: CustomEvent,\n handlers: BrickAndLifeCycleHandler[]\n ): void {\n for (const brickAndHandler of handlers) {\n for (const handler of ([] as BrickEventHandler[]).concat(\n brickAndHandler.handler\n )) {\n listenerFactory(\n handler,\n this.getContext({\n match: brickAndHandler.match,\n tplContextId: brickAndHandler.tplContextId,\n }),\n brickAndHandler.brick\n )(event);\n }\n }\n }\n}\n","import { setRealProperties } from \"../internal/setProperties\";\nimport { RuntimeBrick, BrickNode } from \"./exports\";\n\nexport interface MountableElement extends HTMLElement {\n $$rootBricks: BrickNode[];\n}\n\nexport function unmountTree(mountPoint: MountableElement): void {\n if (Array.isArray(mountPoint.$$rootBricks)) {\n mountPoint.$$rootBricks.forEach((brick) => {\n brick.unmount();\n });\n mountPoint.$$rootBricks = [];\n }\n mountPoint.innerHTML = \"\";\n}\n\n// Todo(steve): reconcile.\nexport function mountTree(\n bricks: RuntimeBrick[],\n mountPoint: MountableElement\n): void {\n // Destroy any existing tree\n if (mountPoint.firstChild) {\n unmountTree(mountPoint);\n }\n\n // Create the top-level internal instance\n const rootBricks = bricks.map((brick) => new BrickNode(brick));\n\n // Mount the top-level component into the container\n const nodes = rootBricks.map((brick) => brick.mount());\n nodes.forEach((node) => mountPoint.appendChild(node));\n\n // Save a reference to the internal instance\n mountPoint.$$rootBricks = rootBricks;\n}\n\nexport function afterMountTree(mountPoint: MountableElement): void {\n if (Array.isArray(mountPoint.$$rootBricks)) {\n mountPoint.$$rootBricks.forEach((brick) => {\n brick.afterMount();\n });\n }\n}\n\nexport function mountStaticNode(\n mountPoint: HTMLElement,\n properties: Record<string, any>\n): void {\n setRealProperties(mountPoint, properties);\n}\n\nexport function appendBrick(\n brick: RuntimeBrick,\n mountPoint: MountableElement\n): void {\n const brickNode = new BrickNode(brick);\n mountPoint.appendChild(brickNode.mount());\n if (!mountPoint.$$rootBricks) {\n mountPoint.$$rootBricks = [];\n }\n mountPoint.$$rootBricks.push(brickNode);\n}\n","import { get } from \"lodash\";\nimport {\n GeneralTransform,\n HandleReject,\n HandleRejectByTransform,\n} from \"@next-core/brick-types\";\nimport {\n transformIntermediateData,\n transformElementProperties,\n} from \"../transformProperties\";\nimport { computeRealValue } from \"./setProperties\";\nimport { RuntimeBrick } from \"../core/exports\";\nimport { handleHttpError } from \"../handleHttpError\";\nimport { recursiveMarkAsInjected } from \"./injected\";\n\nexport interface ProviderDependents {\n brick: RuntimeBrick;\n method: string;\n args: any[];\n field?: string | string[];\n transform?: GeneralTransform;\n transformFrom?: string | string[];\n transformMapArray?: boolean | \"auto\";\n onReject?: HandleReject;\n ref?: string;\n intermediateTransform?: GeneralTransform;\n intermediateTransformFrom?: string | string[];\n intermediateTransformMapArray?: boolean | \"auto\";\n}\n\nexport interface IntervalSettings {\n delay: number;\n ignoreErrors?: boolean;\n timeoutId?: any;\n}\n\nexport interface RefreshOptions {\n ignoreErrors?: boolean;\n throwErrors?: boolean;\n $$scheduled?: boolean;\n}\n\nexport interface RefreshableProvider extends Element {\n interval?: IntervalSettings;\n\n // 使用 `$` 作前缀表明这是运行时追加的属性/方法。\n $refresh: (options?: RefreshOptions) => Promise<void>;\n\n // 使用 `$$` 作前缀表明这是运行时追加的内部属性/方法。\n $$dependents: ProviderDependents[];\n\n $clearInterval?: () => void;\n\n $$intervalCleared?: boolean;\n\n [key: string]: any;\n}\n\nexport function makeProviderRefreshable(\n providerBrick: RefreshableProvider\n): void {\n if (!providerBrick.$refresh) {\n // Use a symbol key to make a private property.\n const keyOfIntervalStopped = Symbol(\"intervalStopped\");\n Object.defineProperties(providerBrick, {\n $$dependents: {\n value: [],\n },\n $stopInterval: {\n value: () => {\n (providerBrick as any)[keyOfIntervalStopped] = true;\n },\n },\n // Currently don't support `$restartInterval`.\n // $restartInterval: {\n // value: () => {\n // (providerBrick as any)[keyOfIntervalStopped] = false;\n // }\n // },\n $refresh: {\n value: async function ({\n ignoreErrors,\n throwErrors,\n $$scheduled,\n }: RefreshOptions = {}) {\n if ($$scheduled && (providerBrick as any)[keyOfIntervalStopped]) {\n return;\n }\n const cache = new Map();\n try {\n await Promise.all(\n (this as RefreshableProvider).$$dependents.map(\n async ({\n brick,\n method,\n args,\n field,\n transform,\n transformFrom,\n transformMapArray,\n onReject,\n ref,\n intermediateTransform,\n intermediateTransformFrom,\n intermediateTransformMapArray,\n }) => {\n const cacheKey = JSON.stringify({\n method,\n args,\n });\n let promise: Promise<any>;\n if (cache.has(cacheKey)) {\n promise = cache.get(cacheKey);\n } else {\n const actualArgs = args\n ? brick.context\n ? computeRealValue(args, brick.context, true)\n : args\n : providerBrick.args || [];\n promise = providerBrick[method](...actualArgs);\n cache.set(cacheKey, promise);\n }\n let data: any;\n\n async function fetchData(): Promise<void> {\n const value = await promise;\n data =\n field === null || field === undefined\n ? value\n : get(value, field);\n // The fetched data and its inner objects should never be *injected* again.\n recursiveMarkAsInjected(data);\n }\n\n if (onReject) {\n // Transform as `onReject.transform` when provider failed.\n try {\n await fetchData();\n } catch (error) {\n const onRejectTransform = (\n onReject as HandleRejectByTransform\n ).transform;\n if (onRejectTransform) {\n transformElementProperties(\n brick.element,\n error,\n brick.context\n ? (computeRealValue(\n onRejectTransform,\n brick.context,\n true\n ) as GeneralTransform)\n : onRejectTransform\n );\n }\n return;\n }\n } else {\n await fetchData();\n }\n\n if (ref) {\n data = transformIntermediateData(\n data,\n brick.context\n ? (computeRealValue(\n intermediateTransform,\n brick.context,\n true\n ) as GeneralTransform)\n : intermediateTransform,\n intermediateTransformFrom,\n intermediateTransformMapArray\n );\n }\n\n transformElementProperties(\n brick.element,\n data,\n brick.context\n ? (computeRealValue(\n transform,\n brick.context,\n true\n ) as GeneralTransform)\n : transform,\n transformFrom,\n transformMapArray\n );\n }\n )\n );\n } catch (error) {\n if (!ignoreErrors) {\n // 默认提示错误,但不抛出错误。\n handleHttpError(error);\n if (throwErrors) {\n throw error;\n }\n }\n }\n },\n },\n });\n }\n}\n","import { get } from \"lodash\";\nimport {\n BrickConf,\n PluginRuntimeContext,\n RuntimeBrickConf,\n RefResolveConf,\n EntityResolveConf,\n DefineResolveConf,\n ResolveConf,\n HandleRejectByTransform,\n UseProviderResolveConf,\n SelectorProviderResolveConf,\n HandleReject,\n HandleRejectByCatch,\n GeneralTransform,\n} from \"@next-core/brick-types\";\nimport { asyncProcessBrick } from \"@next-core/brick-utils\";\nimport { computeRealValue } from \"../internal/setProperties\";\nimport { Kernel, RuntimeBrick } from \"./exports\";\nimport {\n makeProviderRefreshable,\n RefreshableProvider,\n IntervalSettings,\n} from \"../internal/makeProviderRefreshable\";\nimport { brickTemplateRegistry } from \"./TemplateRegistries\";\nimport {\n transformProperties,\n transformIntermediateData,\n} from \"../transformProperties\";\nimport { recursiveMarkAsInjected } from \"../internal/injected\";\nimport { looseCheckIf } from \"../checkIf\";\nimport { getArgsOfCustomApi } from \"./FlowApi\";\n\nexport class Resolver {\n private readonly cache: Map<string, Promise<any>> = new Map();\n private refreshQueue: Map<RefreshableProvider, IntervalSettings> = new Map();\n private readonly definedResolves: Map<string, DefineResolveConf> = new Map();\n private active = true;\n\n constructor(private kernel: Kernel) {}\n\n resetRefreshQueue(): void {\n if (this.refreshQueue.size > 0) {\n for (const interval of this.refreshQueue.values()) {\n clearTimeout(interval.timeoutId);\n }\n this.refreshQueue = new Map();\n }\n this.active = false;\n }\n\n defineResolves(\n resolves: DefineResolveConf[],\n context: PluginRuntimeContext\n ): void {\n if (Array.isArray(resolves)) {\n for (const resolveConf of resolves) {\n this.definedResolves.set(resolveConf.id, {\n ...resolveConf,\n args: computeRealValue(resolveConf.args, context, true) as unknown[],\n });\n }\n }\n }\n\n async resolve(\n brickConf: BrickConf,\n brick: RuntimeBrick,\n context?: PluginRuntimeContext\n ): Promise<void> {\n const useResolves = (brickConf.lifeCycle?.useResolves ?? []).filter(\n (r: ResolveConf) => {\n return looseCheckIf(r, context);\n }\n );\n\n await Promise.all(\n useResolves.map((resolveConf: ResolveConf) =>\n this.resolveOne(\"brick\", resolveConf, brickConf, brick, context)\n )\n );\n if (brickConf.template) {\n (brickConf as RuntimeBrickConf).$$resolved = true;\n\n // Try to process templates.\n await asyncProcessBrick(\n brickConf,\n brickTemplateRegistry,\n this.kernel.bootstrapData.templatePackages\n );\n\n // Try to load deps for dynamic added bricks.\n await this.kernel.loadDynamicBricksInBrickConf(brickConf);\n }\n }\n\n async resolveOne(\n type: \"brick\",\n resolveConf: ResolveConf,\n conf: BrickConf,\n brick?: RuntimeBrick,\n context?: PluginRuntimeContext\n ): Promise<void>;\n async resolveOne(\n type: \"reference\",\n resolveConf: ResolveConf,\n conf: Record<string, any>,\n brick?: RuntimeBrick,\n context?: PluginRuntimeContext\n ): Promise<void>;\n async resolveOne(\n type: \"brick\" | \"reference\",\n resolveConf: ResolveConf,\n conf: BrickConf | Record<string, any>,\n brick?: RuntimeBrick,\n context?: PluginRuntimeContext\n ): Promise<void> {\n const brickConf = conf as BrickConf;\n const propsReference = conf as Record<string, any>;\n let actualResolveConf: EntityResolveConf;\n const { ref, onReject } = resolveConf as RefResolveConf;\n if (ref) {\n if (!this.definedResolves.has(ref)) {\n throw new Error(\n `Provider ref not found: \"${ref}\" in ${\n type === \"reference\"\n ? \"reference\"\n : brickConf.template\n ? `template ${brickConf.template}`\n : `brick ${brick.type}`\n }`\n );\n }\n actualResolveConf = this.definedResolves.get(ref);\n } else {\n actualResolveConf = resolveConf as EntityResolveConf;\n }\n\n let data: any;\n const {\n name,\n provider,\n useProvider,\n method = \"resolve\",\n args,\n field,\n transformFrom,\n transformMapArray,\n transform,\n } = actualResolveConf as UseProviderResolveConf &\n SelectorProviderResolveConf;\n\n let providerBrick: RefreshableProvider;\n\n if (useProvider) {\n providerBrick = (await this.kernel.getProviderBrick(useProvider)) as any;\n } else {\n providerBrick = this.kernel.mountPoints.bg.querySelector(provider);\n\n if (!providerBrick) {\n throw new Error(\n `Provider not found: \"${provider}\" in ${\n type === \"reference\"\n ? \"reference\"\n : brickConf.template\n ? `template ${brickConf.template}`\n : `brick ${brick.type}`\n }`\n );\n }\n\n const providerTagName = providerBrick.tagName.toLowerCase();\n\n if (!customElements.get(providerTagName)) {\n throw new Error(\n `Provider not defined: \"${providerTagName}\", please make sure the related package is installed.`\n );\n }\n\n makeProviderRefreshable(providerBrick);\n\n if (providerBrick.interval && !this.refreshQueue.has(providerBrick)) {\n this.refreshQueue.set(providerBrick, { ...providerBrick.interval });\n }\n\n // Currently we can't refresh dynamic templates.\n if (type !== \"reference\" && !brickConf.template) {\n providerBrick.$$dependents.push({\n brick,\n method,\n args,\n field,\n ...(ref\n ? {\n ref,\n intermediateTransform: transform || name,\n intermediateTransformFrom: transformFrom,\n intermediateTransformMapArray: transformMapArray,\n transform: resolveConf.transform,\n transformFrom: resolveConf.transformFrom,\n transformMapArray: resolveConf.transformMapArray,\n onReject,\n }\n : {\n transform: transform || name,\n transformFrom,\n transformMapArray,\n }),\n });\n }\n }\n\n const cacheKey = JSON.stringify({\n provider,\n useProvider,\n method,\n args,\n });\n let promise: Promise<any>;\n if (this.cache.has(cacheKey)) {\n promise = this.cache.get(cacheKey);\n } else {\n let actualArgs = args\n ? ref\n ? args // `args` are already computed for `defineResolves`\n : context\n ? computeRealValue(args, context, true)\n : args\n : providerBrick.args || [];\n\n promise = (async () => {\n if (useProvider) {\n actualArgs = await getArgsOfCustomApi(useProvider, actualArgs);\n }\n return providerBrick[method](...actualArgs);\n })();\n this.cache.set(cacheKey, promise);\n }\n\n let props: Record<string, any>;\n if (type === \"reference\") {\n props = propsReference;\n } else if (brickConf.template) {\n // It's a dynamic template.\n if (!brickConf.params) {\n // eslint-disable-next-line require-atomic-updates\n brickConf.params = {};\n }\n props = brickConf.params;\n } else {\n // It's a dynamic brick.\n props = brick.properties;\n }\n\n async function fetchData(): Promise<void> {\n const value = await promise;\n data = field === null || field === undefined ? value : get(value, field);\n // The fetched data and its inner objects should never be *injected* again.\n recursiveMarkAsInjected(data);\n }\n\n if (onReject) {\n // Transform as `onReject.transform` when provider failed.\n try {\n await fetchData();\n } catch (error) {\n if (isHandleRejectByTransform(onReject)) {\n transformProperties(\n props,\n error,\n context\n ? (computeRealValue(\n onReject.transform,\n context,\n true\n ) as GeneralTransform)\n : onReject.transform\n );\n return;\n } else if (isHandleRejectByCatch(onReject)) {\n throw new ResolveRequestError(error);\n } else {\n throw error;\n }\n }\n } else {\n await fetchData();\n }\n\n if (ref) {\n data = transformIntermediateData(\n data,\n context\n ? (computeRealValue(transform, context, true) as GeneralTransform)\n : transform,\n transformFrom,\n transformMapArray\n );\n }\n\n transformProperties(\n props,\n data,\n // Also support legacy `name`\n context\n ? (computeRealValue(\n resolveConf.transform || resolveConf.name,\n context,\n true\n ) as GeneralTransform)\n : resolveConf.transform || resolveConf.name,\n resolveConf.transformFrom,\n resolveConf.transformMapArray\n );\n }\n\n scheduleRefreshing(): void {\n for (const [providerBrick, interval] of this.refreshQueue.entries()) {\n const request = async (): Promise<void> => {\n await providerBrick.$refresh({\n ignoreErrors: interval.ignoreErrors,\n throwErrors: true,\n $$scheduled: true,\n });\n if (this.active) {\n // eslint-disable-next-line require-atomic-updates\n interval.timeoutId = setTimeout(request, interval.delay);\n }\n };\n interval.timeoutId = setTimeout(request, interval.delay);\n }\n }\n}\n\nfunction isHandleRejectByTransform(\n onReject: HandleReject\n): onReject is HandleRejectByTransform {\n return !!(onReject as HandleRejectByTransform).transform;\n}\n\nfunction isHandleRejectByCatch(\n onReject: HandleReject\n): onReject is HandleRejectByCatch {\n return !!(onReject as HandleRejectByCatch).isolatedCrash;\n}\n\nexport class ResolveRequestError extends Error {\n rawError: any;\n\n constructor(rawError: any) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(rawError.message);\n\n this.name = \"ResolveRequestError\";\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // istanbul ignore else\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ResolveRequestError);\n }\n\n this.rawError = rawError;\n }\n}\n","export function shouldBeDefaultCollapsed(\n defaultCollapsed: boolean,\n defaultCollapsedBreakpoint: number\n): boolean {\n return (\n defaultCollapsed ||\n (defaultCollapsedBreakpoint &&\n document.documentElement.clientWidth < defaultCollapsedBreakpoint)\n );\n}\n","import { Mocks, MockRule } from \"@next-core/brick-types/src/manifest\";\n\nlet mocks: Mocks = {\n mockId: null,\n mockList: [],\n};\n\nexport function registerMock(useMocks: Mocks): void {\n if (useMocks)\n mocks = {\n ...useMocks,\n mockList: useMocks.mockList?.map((item) => ({\n ...item,\n uri: item.uri\n .replace(\n /(easyops\\.api\\.)(.+)(@\\d+\\.\\d+\\.\\d+(?=\\/))(.+)/,\n (_match, p1, p2, _p3, p4) => {\n return `(${p1})?${p2}(@\\\\d+\\\\.\\\\d+\\\\.\\\\d+)?${p4}$`;\n }\n )\n .replace(/:\\w+/g, \"[\\\\w|-]+\"),\n })),\n };\n}\n\nexport function getMockList(): MockRule[] {\n return mocks.mockList;\n}\n\nexport const getMockId = (requestUrl: string): string | undefined => {\n if (mocks.mockList.find((item) => new RegExp(item.uri).test(requestUrl)))\n return mocks.mockId;\n return undefined;\n};\n","import { locationsAreEqual, createPath, Action, Location } from \"history\";\nimport { uniqueId } from \"lodash\";\nimport {\n LayoutType,\n PluginHistoryState,\n PluginLocation,\n PluginRuntimeContext,\n} from \"@next-core/brick-types\";\nimport {\n restoreDynamicTemplates,\n scanCustomApisInStoryboard,\n mapCustomApisToNameAndNamespace,\n CustomApiInfo,\n} from \"@next-core/brick-utils\";\nimport { apiAnalyzer, userAnalytics } from \"@next-core/easyops-analytics\";\nimport {\n LocationContext,\n mountTree,\n mountStaticNode,\n Kernel,\n MountableElement,\n unmountTree,\n MountRoutesResult,\n appendBrick,\n Resolver,\n} from \"./exports\";\nimport { getHistory } from \"../history\";\nimport { httpErrorToString, handleHttpError } from \"../handleHttpError\";\nimport { isUnauthenticatedError } from \"../internal/isUnauthenticatedError\";\nimport { RecentApps, RouterState } from \"./interfaces\";\nimport { resetAllInjected } from \"../internal/injected\";\nimport { getAuth, isLoggedIn } from \"../auth\";\nimport { devtoolsHookEmit } from \"../internal/devtools\";\nimport { afterMountTree } from \"./reconciler\";\nimport { constructMenu } from \"../internal/menu\";\nimport { getRuntimeMisc } from \"../internal/misc\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"../themeAndMode\";\nimport { preCheckPermissions } from \"../internal/checkPermissions\";\nimport { clearPollTimeout } from \"../internal/poll\";\nimport { shouldBeDefaultCollapsed } from \"../internal/shouldBeDefaultCollapsed\";\nimport { CustomTemplateContext } from \"./CustomTemplates\";\nimport { registerStoryboardFunctions } from \"./StoryboardFunctions\";\nimport { HttpResponseError } from \"@next-core/brick-http\";\nimport { registerMock } from \"./MockRegistry\";\n\nexport class Router {\n private defaultCollapsed = false;\n private locationContext: LocationContext;\n private rendering = false;\n private nextLocation: PluginLocation;\n private prevLocation: PluginLocation;\n private state: RouterState = \"initial\";\n private renderId: string;\n private readonly featureFlags: Record<string, boolean>;\n\n constructor(private kernel: Kernel) {\n this.featureFlags = this.kernel.getFeatureFlags();\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 private getBlockMessageBeforePageLave(detail: {\n location?: Location<PluginHistoryState>;\n action?: Action;\n }): string {\n const history = getHistory();\n const previousMessage = history.getBlockMessage();\n this.locationContext?.handleBeforePageLeave(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 private locationChangeNotify(from: string, to: string): void {\n if (this.featureFlags[\"log-location-change\"]) {\n const username = getAuth().username;\n const params = new URLSearchParams();\n params.append(\"u\", username);\n params.append(\"f\", from);\n params.append(\"t\", to);\n params.append(\"ts\", (+new Date()).toString());\n const image = new Image();\n image.src = `${\n window.CORE_ROOT ?? \"\"\n }assets/ea/analytics.jpg?${params.toString()}`;\n }\n }\n\n async bootstrap(): Promise<void> {\n const history = getHistory();\n this.prevLocation = history.location;\n this.locationChangeNotify(\"\", history.location.pathname);\n history.listen(async (location: PluginLocation, action: Action) => {\n let ignoreRendering = false;\n const omittedLocationProps: Partial<PluginLocation> = {\n hash: null,\n state: null,\n };\n // Omit the \"key\" when checking whether locations are equal in certain situations.\n if (\n // When current location is triggered by browser action of hash link.\n location.key === undefined ||\n // When current location is triggered by browser action of non-push-or-replace,\n // such as goBack or goForward,\n (action === \"POP\" &&\n // and the previous location was triggered by hash link,\n (this.prevLocation.key === undefined ||\n // or the previous location specified notify false.\n this.prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = null;\n }\n if (\n locationsAreEqual(\n { ...this.prevLocation, ...omittedLocationProps },\n { ...location, ...omittedLocationProps }\n ) ||\n (action !== \"POP\" && location.state?.notify === false)\n ) {\n // Ignore rendering if location not changed except hash, state and optional key.\n // Ignore rendering if notify is `false`.\n ignoreRendering = true;\n }\n if (ignoreRendering) {\n this.prevLocation = location;\n return;\n }\n\n this.locationChangeNotify(this.prevLocation.pathname, location.pathname);\n this.prevLocation = location;\n this.locationContext.handlePageLeave();\n this.locationContext.messageDispatcher.reset();\n if (this.rendering) {\n this.nextLocation = location;\n } else {\n try {\n devtoolsHookEmit(\"locationChange\");\n await this.queuedRender(location);\n } catch (e) {\n handleHttpError(e);\n }\n }\n });\n await this.queuedRender(history.location);\n this.kernel.firstRendered();\n }\n\n private async queuedRender(location: PluginLocation): Promise<void> {\n this.rendering = true;\n try {\n await this.render(location);\n } finally {\n this.rendering = false;\n if (this.nextLocation) {\n const nextLocation = this.nextLocation;\n this.nextLocation = null;\n await this.queuedRender(nextLocation);\n }\n }\n }\n\n private async render(location: PluginLocation): Promise<void> {\n this.state = \"initial\";\n this.renderId = uniqueId(\"render-id-\");\n\n resetAllInjected();\n clearPollTimeout();\n\n if (this.locationContext) {\n this.locationContext.resolver.resetRefreshQueue();\n }\n\n const history = getHistory();\n history.unblock();\n\n // Create the page tracker before page load.\n // And the API Analyzer maybe disabled.\n const pageTracker = apiAnalyzer.getInstance()?.pageTracker();\n\n const locationContext = (this.locationContext = new LocationContext(\n this.kernel,\n location\n ));\n\n const storyboard = locationContext.matchStoryboard(\n this.kernel.bootstrapData.storyboards\n );\n\n if (storyboard) {\n await this.kernel.fulfilStoryboard(storyboard);\n\n // 将动态解析后的模板还原,以便重新动态解析。\n restoreDynamicTemplates(storyboard);\n\n // 预加载权限信息\n if (isLoggedIn() && !getAuth().isAdmin) {\n await preCheckPermissions(storyboard);\n }\n\n // 如果找到匹配的 storyboard,那么根据路由匹配得到的 sub-storyboard 加载它的依赖库。\n const subStoryboard =\n this.locationContext.getSubStoryboardByRoute(storyboard);\n await this.kernel.loadDepsOfStoryboard(subStoryboard);\n\n // 注册 Storyboard 中定义的自定义模板和函数。\n this.kernel.registerCustomTemplatesInStoryboard(storyboard);\n registerStoryboardFunctions(storyboard.meta?.functions, storyboard.app);\n\n registerMock(storyboard.meta?.mocks);\n }\n\n const { mountPoints, currentApp: previousApp } = this.kernel;\n const currentApp = storyboard ? storyboard.app : undefined;\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 const legacy = currentApp ? currentApp.legacy : undefined;\n this.kernel.nextApp = currentApp;\n const layoutType: LayoutType = currentApp?.layoutType || \"console\";\n\n devtoolsHookEmit(\"rendering\");\n\n unmountTree(mountPoints.bg as MountableElement);\n\n const redirectToLogin = (): void => {\n history.replace(\n this.featureFlags[\"sso-enabled\"] ? \"/sso-auth/login\" : \"/auth/login\",\n {\n from: location,\n }\n );\n };\n\n if (storyboard) {\n if (appChanged && currentApp.id && isLoggedIn()) {\n const usedCustomApis: CustomApiInfo[] = mapCustomApisToNameAndNamespace(\n scanCustomApisInStoryboard(storyboard)\n );\n if (usedCustomApis?.length) {\n await this.kernel.loadMicroAppApiOrchestrationAsync(usedCustomApis);\n }\n }\n\n const mountRoutesResult: MountRoutesResult = {\n main: [],\n menuInBg: [],\n menuBar: {},\n portal: [],\n appBar: {\n breadcrumb: [],\n documentId: null,\n noCurrentApp: currentApp.breadcrumb?.noCurrentApp ?? false,\n },\n flags: {\n redirect: undefined,\n hybrid: false,\n failed: false,\n },\n };\n try {\n await locationContext.mountRoutes(\n storyboard.routes,\n undefined,\n mountRoutesResult\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error)) {\n mountRoutesResult.flags.unauthenticated = true;\n } else {\n await this.kernel.layoutBootstrap(layoutType);\n const brickPageError = this.kernel.presetBricks.pageError;\n await this.kernel.loadDynamicBricks([brickPageError]);\n\n mountRoutesResult.flags.failed = true;\n mountRoutesResult.main = [\n {\n type: brickPageError,\n properties: {\n error: httpErrorToString(error),\n code:\n error instanceof HttpResponseError\n ? error.response.status\n : null,\n },\n events: {},\n },\n ];\n mountRoutesResult.portal = [];\n }\n }\n\n const {\n main,\n menuInBg,\n menuBar,\n appBar,\n flags,\n portal,\n route,\n analyticsData,\n } = mountRoutesResult;\n\n const { unauthenticated, redirect, barsHidden, hybrid, failed } = flags;\n\n if (unauthenticated) {\n redirectToLogin();\n return;\n }\n\n if (redirect) {\n history.replace(redirect.path, redirect.state);\n return;\n }\n\n if (appChanged) {\n this.kernel.currentApp = currentApp;\n this.kernel.previousApp = previousApp;\n }\n this.kernel.currentUrl = createPath(location);\n this.kernel.currentRoute = route;\n await Promise.all([\n ...(window.STANDALONE_MICRO_APPS\n ? []\n : [this.kernel.updateWorkspaceStack()]),\n this.kernel.layoutBootstrap(layoutType),\n ]);\n\n this.state = \"ready-to-mount\";\n\n // Unmount main tree to avoid app change fired before new routes mounted.\n unmountTree(mountPoints.main as MountableElement);\n unmountTree(mountPoints.portal as MountableElement);\n\n const actualLegacy =\n (legacy === \"iframe\" && !hybrid) || (legacy !== \"iframe\" && hybrid)\n ? \"iframe\"\n : undefined;\n this.kernel.unsetBars({ appChanged, legacy: actualLegacy });\n\n setTheme(\"light\");\n setMode(\"default\");\n // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.\n this.locationContext.handleBeforePageLoad();\n applyTheme();\n applyMode();\n\n if (appChanged) {\n window.dispatchEvent(\n new CustomEvent<RecentApps>(\"app.change\", {\n detail: this.kernel.getRecentApps(),\n })\n );\n }\n\n if (barsHidden || getRuntimeMisc().isInIframeOfLegacyConsole) {\n this.kernel.toggleBars(false);\n } else if (this.kernel.currentLayout === \"console\") {\n await constructMenu(\n menuBar,\n this.locationContext.getCurrentContext(),\n this.kernel\n );\n if (\n shouldBeDefaultCollapsed(\n menuBar.menu?.defaultCollapsed,\n menuBar.menu?.defaultCollapsedBreakpoint\n )\n ) {\n this.kernel.menuBar.collapse(true);\n this.defaultCollapsed = true;\n } else {\n if (this.defaultCollapsed) {\n this.kernel.menuBar.collapse(false);\n }\n this.defaultCollapsed = false;\n }\n if (actualLegacy === \"iframe\") {\n // Do not modify breadcrumb in iframe mode,\n // it will be *popped* from iframe automatically.\n delete appBar.breadcrumb;\n }\n mountStaticNode(this.kernel.menuBar.element, menuBar);\n mountStaticNode(this.kernel.appBar.element, appBar);\n }\n\n this.kernel.toggleLegacyIframe(actualLegacy === \"iframe\");\n\n menuInBg.forEach((brick) => {\n appendBrick(brick, mountPoints.portal as MountableElement);\n });\n\n if (main.length > 0 || portal.length > 0) {\n main.length > 0 &&\n mountTree(main, mountPoints.main as MountableElement);\n portal.length > 0 &&\n mountTree(portal, mountPoints.portal as MountableElement);\n\n afterMountTree(mountPoints.main as MountableElement);\n afterMountTree(mountPoints.portal as MountableElement);\n afterMountTree(mountPoints.bg as MountableElement);\n\n if (!failed) {\n this.locationContext.handlePageLoad();\n this.locationContext.handleAnchorLoad();\n this.locationContext.resolver.scheduleRefreshing();\n this.locationContext.handleMessage();\n }\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 pageTracker?.(locationContext.getCurrentMatch().path);\n\n // analytics page_view event\n userAnalytics.event(\"page_view\", {\n micro_app_id: this.kernel.currentApp.id,\n route_alias: route?.alias,\n ...analyticsData,\n });\n\n this.state = \"mounted\";\n\n devtoolsHookEmit(\"rendered\");\n\n // Try to prefetch during a browser's idle periods.\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback\n if (typeof (window as any).requestIdleCallback === \"function\") {\n (window as any).requestIdleCallback(() => {\n this.kernel.prefetchDepsOfStoryboard(storyboard);\n });\n } else {\n Promise.resolve().then(() => {\n this.kernel.prefetchDepsOfStoryboard(storyboard);\n });\n }\n return;\n }\n } else if (!window.NO_AUTH_GUARD && !isLoggedIn()) {\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 }\n\n await this.kernel.layoutBootstrap(layoutType);\n const brickPageNotFound = this.kernel.presetBricks.pageNotFound;\n await this.kernel.loadDynamicBricks([brickPageNotFound]);\n\n this.state = \"ready-to-mount\";\n\n mountTree(\n [\n {\n type: brickPageNotFound,\n properties: {\n url: history.createHref(location),\n },\n events: {},\n },\n ],\n mountPoints.main as MountableElement\n );\n unmountTree(mountPoints.portal as MountableElement);\n\n // Scroll to top after each rendering.\n window.scrollTo(0, 0);\n\n this.state = \"mounted\";\n devtoolsHookEmit(\"rendered\");\n }\n\n /* istanbul ignore next */\n getResolver(): Resolver {\n return this.locationContext.resolver;\n }\n\n getState(): RouterState {\n return this.state;\n }\n\n /* istanbul ignore next */\n getRenderId(): string {\n return this.renderId;\n }\n\n /* istanbul ignore next */\n getCurrentContext(): PluginRuntimeContext {\n return this.locationContext.getCurrentContext();\n }\n\n /* istanbul ignore next */\n getTplContext(): CustomTemplateContext {\n return this.locationContext.getTplContext();\n }\n\n /* istanbul ignore next */\n handleMessageClose(event: CloseEvent): void {\n return this.locationContext.handleMessageClose(event);\n }\n}\n","export type CustomProcessorFunc = (...args: any[]) => any;\n\nexport const customProcessorRegistry = new Map<\n string,\n Map<string, CustomProcessorFunc>\n>();\n\nexport function registerCustomProcessor(\n processorFullName: string,\n processorFunc: CustomProcessorFunc\n): void {\n // `namespace` should be the camelCase of the package name.\n const [namespace, processorName] = processorFullName.split(\".\");\n let registry = customProcessorRegistry.get(namespace);\n if (!registry) {\n registry = new Map();\n customProcessorRegistry.set(namespace, registry);\n }\n if (registry.has(processorName)) {\n // eslint-disable-next-line no-console\n throw new Error(\n `Custom processor of \"${processorFullName}\" already registered`\n );\n }\n registry.set(processorName, processorFunc);\n}\n","import { Runtime } from \"./core/exports\";\nimport { createHistory } from \"./history\";\nimport { createMessageDispatcher } from \"./core/MessageDispatcher\";\n\nlet runtime: Runtime;\n\n/** @internal */\nexport function createRuntime(): Runtime {\n createHistory();\n createMessageDispatcher();\n runtime = new Runtime();\n return runtime;\n}\n\n/**\n * 获取系统运行时对象。\n *\n * @example\n *\n * ```ts\n * import { getRuntime } from \"@next-core/brick-kit\";\n *\n * const flags = getRuntime.getFeatureFlags();\n * ```\n *\n * @returns 详见 {@link AbstractRuntime}\n */\nexport function getRuntime(): Runtime {\n return runtime;\n}\n","import React from \"react\";\nimport {\n withTranslation,\n WithTranslation,\n // `WithTranslationProps` and `Subtract` is required for api-extractor.\n WithTranslationProps,\n Subtract,\n} from \"react-i18next\";\nimport { httpErrorToString } from \"./handleHttpError\";\nimport { NS_BRICK_KIT, K } from \"./i18n/constants\";\n\ninterface ErrorBoundaryState {\n error: any;\n}\n\n// Ref https://reactjs.org/docs/error-boundaries.html\nclass LegacyErrorBoundary extends React.Component<\n WithTranslation<typeof NS_BRICK_KIT>,\n ErrorBoundaryState\n> {\n constructor(props: WithTranslation<typeof NS_BRICK_KIT>) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return { error };\n }\n\n /* componentDidCatch(error, info) {\n // You can also log the error to an error reporting service\n logErrorToMyService(error, info);\n } */\n\n render(): React.ReactNode {\n if (this.state.error) {\n // You can render any custom fallback UI\n return (\n <div data-testid=\"error-boundary\">\n <h3>{this.props.t(K.SOMETHING_WENT_WRONG)}</h3>\n <p>{httpErrorToString(this.state.error)}</p>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n\n/** @internal */\nexport const ErrorBoundary: React.ComponentType<\n Omit<\n Subtract<WithTranslation<typeof NS_BRICK_KIT>, WithTranslationProps>,\n keyof WithTranslation<typeof NS_BRICK_KIT>\n > &\n WithTranslationProps\n> = withTranslation(NS_BRICK_KIT)(LegacyErrorBoundary);\n","import { getRuntime } from \"../runtime\";\nimport { PropertyDeclaration } from \"../UpdatingElement\";\n\nexport function warnNativeHtmlElementProperty(\n key: string,\n options?: PropertyDeclaration\n): void {\n // Testing env is ignored to simplify dependents testing.\n // istanbul ignore if\n if (\n key in HTMLElement.prototype &&\n !options?.__deprecated_and_for_compatibility_only\n ) {\n const message = `\"${key}\" is a native HTMLElement property, and is deprecated to be used as a brick property.`;\n // istanbul ignore if\n if (process.env.NODE_ENV === \"test\") {\n // Allow existed properties to work.\n // But throw error at test, to avoid new conflicted properties.\n throw new Error(message);\n }\n // eslint-disable-next-line no-console\n console[\n getRuntime().getFeatureFlags()[\"development-mode\"] ? \"error\" : \"warn\"\n ](message);\n }\n}\n","// Inspired by [LitElement](https://github.com/Polymer/lit-element)\nimport { PropertyDeclaration, UpdatingElement } from \"../UpdatingElement\";\nimport { ClassElement } from \"./interfaces\";\nimport { warnNativeHtmlElementProperty } from \"./utils\";\n\n// About the (most likely) related version of decorator proposal:\n// https://github.com/tc39/proposal-decorators/blob/691d95e67052e125239a725d2756cb8a039c5fb9/previous/METAPROGRAMMING.md\n\n/**\n * 构件属性装饰器。\n *\n * @example\n *\n * ```ts\n * class MyBrickElement extends UpdatingElement {\n * @property()\n * myStringProp: string;\n *\n * @property({ type: Number })\n * myNumberProp: number;\n *\n * @property({ type: Boolean })\n * myBooleanProperty: boolean;\n *\n * @property({ attribute: false })\n * myComplexProperty: MyComplexInterface;\n * }\n * ```\n *\n * @param options - 构件属性的选项。\n */\nexport function property(options?: PropertyDeclaration): any {\n return function decorateProperty(element: ClassElement): ClassElement {\n if (options?.__unstable_doNotDecorate) {\n return element;\n }\n if (element.kind !== \"field\" || typeof element.key !== \"string\") {\n throw new Error(\n \"`@property()` only support decorate class string property\"\n );\n }\n if (\n typeof element.initializer === \"function\" &&\n options?.attribute !== false\n ) {\n throw new Error(\"`@property()` currently not support initialize value\");\n }\n\n warnNativeHtmlElementProperty(element.key, options);\n\n // createProperty() takes care of defining the property, but we still\n // must return some kind of descriptor, so return a descriptor for an\n // unused prototype field. The finisher calls createProperty().\n return {\n kind: \"field\",\n key: Symbol(),\n placement: \"own\",\n descriptor: {},\n initializer(this: { [key: string]: unknown }) {\n if (typeof element.initializer === \"function\") {\n this[element.key as string] = element.initializer.call(this);\n }\n },\n finisher(Class: typeof UpdatingElement) {\n Class.createProperty(element.key as string, options);\n },\n };\n };\n}\n","import { UpdatingElement, EventDeclaration } from \"../UpdatingElement\";\nimport { ClassElement } from \"./interfaces\";\nimport { warnNativeHtmlElementProperty } from \"./utils\";\n\n/**\n * 构件事件装饰器。\n *\n * @example\n *\n * ```ts\n * class MyBrickElement extends UpdatingElement {\n * @event({\n * type: \"my-brick.my-event\",\n * })\n * private _myEventEmitter: EventEmitter<number>;\n *\n * private _triggerMyEvent = (): void => {\n * this._myEventEmitter.emit(123);\n * };\n * }\n * ```\n *\n * @param options - 构件事件的选项。\n */\nexport function event(options: EventDeclaration): any {\n return function decorateEvent(element: ClassElement): ClassElement {\n if (element.kind !== \"field\" || typeof element.key !== \"string\") {\n throw new Error(\"`@event()` only support decorate class string property\");\n }\n\n if (typeof element.initializer === \"function\") {\n throw new Error(\"`@event()` currently not support initialize value\");\n }\n\n warnNativeHtmlElementProperty(element.key);\n\n return {\n kind: \"field\",\n key: Symbol(),\n placement: \"own\",\n descriptor: {},\n finisher(Class: typeof UpdatingElement) {\n Class.createEventEmitter(element.key as string, options);\n },\n };\n };\n}\n","import { UpdatingElement } from \"../UpdatingElement\";\nimport { ClassElement } from \"./interfaces\";\nimport { warnNativeHtmlElementProperty } from \"./utils\";\n\n/**\n * 构件方法装饰器。\n *\n * @example\n *\n * ```ts\n * class MyBrickElement extends UpdatingElement {\n * @method()\n * myMethod(): void {\n * // Do something.\n * }\n * }\n * ```\n */\nexport function method(): any {\n return function decorateMethod(element: ClassElement): ClassElement {\n if (element.kind !== \"method\" || typeof element.key !== \"string\") {\n throw new Error(\"`@method()` only support decorate class string method\");\n }\n\n warnNativeHtmlElementProperty(element.key);\n\n return {\n ...element,\n finisher(Class: typeof UpdatingElement) {\n Class.createMethod(element.key as string);\n },\n };\n };\n}\n","import { useEffect } from \"react\";\nimport { getRuntime } from \"./runtime\";\n\n/**\n * 设置页面标题,将更新浏览器标签页显示的标题。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent(props) {\n * useApplyPageTitle(props.pageTitle);\n * // ...\n * }\n * ```\n *\n * @param pageTitle - 页面标题。\n */\nexport function useApplyPageTitle(pageTitle: string): void {\n useEffect(() => {\n getRuntime().applyPageTitle(pageTitle);\n }, [pageTitle]);\n}\n","import React from \"react\";\nimport { RecentApps } from \"./core/interfaces\";\nimport { getRuntime } from \"./runtime\";\n\n/** @internal */\nexport function useRecentApps(): RecentApps {\n const [recentApps, setRecentApps] = React.useState<RecentApps>(\n getRuntime().getRecentApps()\n );\n\n React.useEffect(() => {\n const listener = ((event: CustomEvent<RecentApps>) => {\n setRecentApps(event.detail);\n }) as EventListener;\n window.addEventListener(\"app.change\", listener);\n return () => window.removeEventListener(\"app.change\", listener);\n }, []);\n\n return recentApps;\n}\n","import { MicroApp } from \"@next-core/brick-types\";\nimport { useRecentApps } from \"./useRecentApps\";\n\n/**\n * 获取当前所在微应用信息的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const app = useCurrentApp();\n * return <div>{app.id}</div>;\n * }\n * ```\n *\n * @returns 当前所在微应用的信息。\n */\nexport function useCurrentApp(): MicroApp {\n return useRecentApps().currentApp;\n}\n","import React from \"react\";\nimport { Location } from \"history\";\nimport { PluginHistoryState } from \"@next-core/brick-types\";\nimport { getHistory } from \"./history\";\n\n/** @internal */\nexport function useLocation(): Location<PluginHistoryState> {\n const history = getHistory();\n const [location, setLocation] = React.useState(history.location);\n\n React.useEffect(() => {\n const unlisten = history.listen((location) => setLocation(location));\n return unlisten;\n }, [history]);\n\n return location;\n}\n","import { set, isEmpty } from \"lodash\";\nimport React, { forwardRef, useImperativeHandle, useRef } from \"react\";\nimport { isObject } from \"@next-core/brick-utils\";\nimport {\n UseBrickConf,\n UseSingleBrickConf,\n RuntimeBrickElement,\n BrickEventsMap,\n UseBrickSlotsConf,\n BrickConf,\n ProbablyRuntimeBrick,\n RuntimeBrickConf,\n SlotsConf,\n CustomTemplateProxyEvents,\n CustomTemplateProxyProperties,\n CustomTemplateProxyMethods,\n} from \"@next-core/brick-types\";\nimport { bindListeners, unbindListeners } from \"./internal/bindListeners\";\nimport { setRealProperties } from \"./internal/setProperties\";\nimport {\n RuntimeBrick,\n RuntimeBrickElementWithTplSymbols,\n symbolForParentRefForUseBrickInPortal,\n _internalApiGetCurrentContext,\n _internalApiGetResolver,\n _internalApiGetRouterState,\n _internalApiLoadDynamicBricksInBrickConf,\n _internalApiGetTplContext,\n RuntimeBrickConfWithTplSymbols,\n symbolForTplContextId,\n symbolForRefForProxy,\n symbolForComputedPropsFromProxy,\n} from \"./core/exports\";\nimport { handleHttpError } from \"./handleHttpError\";\nimport { transformProperties, doTransform } from \"./transformProperties\";\nimport { looseCheckIfByTransform } from \"./checkIf\";\nimport { isPreEvaluated } from \"./internal/evaluate\";\nimport { cloneDeepWithInjectedMark } from \"./internal/injected\";\nimport {\n CustomTemplateContext,\n expandCustomTemplate,\n} from \"./core/CustomTemplates\";\nimport { getTagNameOfCustomTemplate } from \"./core/CustomTemplates/getTagNameOfCustomTemplate\";\nimport { handleProxyOfCustomTemplate } from \"./core/CustomTemplates/handleProxyOfCustomTemplate\";\nimport {\n listenOnTrackingContext,\n TrackingContextItem,\n} from \"./internal/listenOnTrackingContext\";\nimport { RuntimeCustomTemplateProxy } from \"./core/CustomTemplates/internalInterfaces\";\n\ninterface BrickAsComponentProps {\n useBrick: UseBrickConf;\n data?: unknown;\n\n /**\n * This is only required for useBrick in portal.\n */\n parentRefForUseBrickInPortal?: React.RefObject<HTMLElement>;\n}\n\ninterface SingleBrickAsComponentProps extends BrickAsComponentProps {\n useBrick: UseSingleBrickConf;\n refCallback?: (element: HTMLElement) => void;\n immediatelyRefCallback?: (element: HTMLElement) => void;\n}\n\nconst setProxyRefForSlots = (slots: UseBrickSlotsConf) => {\n slotsToChildren(slots).forEach((item) => {\n if (\n (item as RuntimeBrickConfWithTplSymbols)[symbolForRefForProxy] !==\n undefined\n ) {\n (item as RuntimeBrickConfWithTplSymbols)[symbolForRefForProxy].brick =\n item as ProbablyRuntimeBrick;\n }\n if (!isEmpty(item.slots)) {\n setProxyRefForSlots(item.slots);\n }\n });\n};\n\nconst setProxyRef = (\n useBrick: UseSingleBrickConf,\n brick: RuntimeBrick,\n tplContext: CustomTemplateContext\n) => {\n let template;\n const tplTagName = getTagNameOfCustomTemplate(\n useBrick.brick,\n _internalApiGetCurrentContext().app?.id\n );\n if (tplTagName) {\n // 如果是模板, 需要展开解析模板, 并遍历模板中的slots, 再给slots的brick绑定值给自身\n // 为后续ProxyRefs获取brick做值缓存\n const tplConf: RuntimeBrickConf = {\n brick: tplTagName,\n properties: brick.properties,\n events: useBrick.events,\n lifeCycle: useBrick.lifeCycle,\n slots: useBrick.slots as SlotsConf,\n };\n template = expandCustomTemplate(\n tplConf,\n brick,\n _internalApiGetCurrentContext(),\n tplContext\n );\n setProxyRefForSlots(template.slots as UseBrickSlotsConf);\n } else if (\n (useBrick as RuntimeBrickConfWithTplSymbols)[symbolForRefForProxy]\n ) {\n (useBrick as RuntimeBrickConfWithTplSymbols)[symbolForRefForProxy].brick =\n brick;\n setProxyRefForSlots(useBrick.slots as UseBrickSlotsConf);\n }\n return template;\n};\n\nconst getCurrentRunTimeBrick = (\n useBrick: UseSingleBrickConf,\n data: unknown,\n tplContext: CustomTemplateContext\n): RuntimeBrick => {\n const trackingContextList: TrackingContextItem[] = [];\n\n const transformOption: Record<string, any> = {\n // Keep lazy fields inside `useBrick` inside the `properties`.\n // They will be transformed by their `BrickAsComponent` later.\n $$lazyForUseBrick: true,\n trackingContextList,\n allowInject: true,\n };\n\n if ((useBrick as RuntimeBrickConfWithTplSymbols)[symbolForTplContextId]) {\n transformOption.getTplVariables = () =>\n tplContext.getContext(\n (useBrick as RuntimeBrickConfWithTplSymbols)[symbolForTplContextId]\n );\n }\n const properties = doTransform(\n data,\n cloneDeepWithInjectedMark(useBrick.properties) || {},\n transformOption\n );\n\n const brick: RuntimeBrick = {\n ...useBrick,\n type: useBrick.brick,\n // Now transform data in properties too.\n properties,\n };\n\n const runtimeContext = _internalApiGetCurrentContext();\n\n listenOnTrackingContext(brick, trackingContextList, runtimeContext);\n\n return brick;\n};\n\nexport const handleProxyOfParentTemplate = (\n brick: RuntimeBrick,\n tplContextId: string,\n tplContext: CustomTemplateContext\n) => {\n if (tplContextId && tplContext) {\n const tplBrick = tplContext.getBrick(tplContextId);\n /**\n * 如果存在brick.ref, 表明当前brick为custom-template对外暴露的插槽部分\n * 此部分构件不被 expandCustomTemplate 方法正常解析, 需要额外处理\n * 保证父构件上proxyRefs指向的准确性, 并执行其代理方法属性\n */\n if (brick.ref && tplBrick) {\n const proxyBrick = tplBrick.proxyRefs.get(brick.ref);\n if (proxyBrick) {\n const getFilterProxy = (\n proxy: RuntimeCustomTemplateProxy = {},\n ref: string\n ): RuntimeCustomTemplateProxy => {\n const getFilterByRef = (\n obj:\n | CustomTemplateProxyEvents\n | CustomTemplateProxyProperties\n | CustomTemplateProxyMethods,\n ref: string\n ) => {\n if (!obj) return;\n return Object.fromEntries(\n Object.entries(obj).filter(([k, v]) => {\n if (v.ref === ref) {\n return [k, v];\n }\n })\n );\n };\n const events = getFilterByRef(proxy.events, ref);\n const properties = getFilterByRef(proxy.properties, ref);\n const methods = getFilterByRef(proxy.methods, ref);\n const $$properties = getFilterByRef(proxy.$$properties, ref);\n\n return {\n $$properties,\n events,\n properties,\n methods,\n };\n };\n\n const proxyBrick = {\n // children 继承template上proxy等属性\n ...tplBrick,\n element: brick.element,\n };\n tplBrick.proxyRefs.set(brick.ref, {\n brick: proxyBrick,\n });\n // 对单独ref brick进行proxy赋值\n const singleRefBrickProxyMap = new Map();\n singleRefBrickProxyMap.set(brick.ref, {\n brick: proxyBrick,\n });\n handleProxyOfCustomTemplate({\n ...tplBrick,\n proxyRefs: singleRefBrickProxyMap,\n proxy: getFilterProxy(tplBrick.proxy, brick.ref),\n });\n setRealProperties(tplBrick.element, tplBrick.properties);\n }\n }\n }\n};\n\n/**\n * 可以渲染单个 `useBrick` 的 React 组件。\n *\n * @example\n *\n * ```tsx\n * <BrickAsComponent\n * useBrick={{\n * brick: \"your.any-brick\"\n * }}\n * data={yourData}\n * />\n * ```\n *\n * @param props - 属性。\n */\nexport const SingleBrickAsComponent = React.memo(\n function SingleBrickAsComponent({\n useBrick,\n data,\n parentRefForUseBrickInPortal,\n refCallback,\n immediatelyRefCallback,\n }: SingleBrickAsComponentProps): React.ReactElement {\n const tplContext = _internalApiGetTplContext();\n let template: RuntimeBrickConf;\n let brick: RuntimeBrick;\n\n const isBrickAvailable = React.useMemo(() => {\n if (isObject(useBrick.if) && !isPreEvaluated(useBrick.if)) {\n // eslint-disable-next-line\n console.warn(\"Currently resolvable-if in `useBrick` is not supported.\");\n } else if (\n !looseCheckIfByTransform(useBrick, data, {\n allowInject: true,\n // useBrick 中嵌套custom-template的情况下, 会存在丢失getTplVariables的情况, 因此需要在此进行补充\n getTplVariables: () =>\n tplContext.getContext(\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ]\n ),\n })\n ) {\n return false;\n }\n\n return true;\n }, [useBrick, data]);\n\n const runtimeBrick = React.useMemo(async () => {\n if (!isBrickAvailable) {\n return null;\n }\n\n // If the router state is initial, ignore rendering the sub-brick.\n if (_internalApiGetRouterState() === \"initial\") {\n return;\n }\n\n _internalApiLoadDynamicBricksInBrickConf(useBrick as BrickConf).catch(\n handleHttpError\n );\n\n brick = getCurrentRunTimeBrick(useBrick, data, tplContext);\n\n template = setProxyRef(useBrick, brick, tplContext);\n\n // Let `transform` works still.\n transformProperties(\n brick.properties,\n data,\n useBrick.transform,\n useBrick.transformFrom,\n undefined,\n {\n allowInject: true,\n }\n );\n\n // 设置 properties refProperty值\n if (\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ) {\n Object.entries(\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ).forEach(([propName, propValue]) => {\n set(brick.properties, propName, propValue);\n });\n }\n\n const runtimeContext = _internalApiGetCurrentContext();\n\n if (useBrick.lifeCycle) {\n const resolver = _internalApiGetResolver();\n await resolver.resolve(\n {\n brick: useBrick.brick,\n lifeCycle: useBrick.lifeCycle,\n },\n brick,\n runtimeContext\n );\n }\n\n return brick;\n }, [useBrick, data, isBrickAvailable]);\n\n const innerRefCallback = React.useCallback(\n async (element: HTMLElement) => {\n immediatelyRefCallback?.(element);\n if (element) {\n let brick: RuntimeBrick;\n try {\n brick = await runtimeBrick;\n } catch (e) {\n handleHttpError(e);\n }\n // sub-brick rendering is ignored.\n if (!brick) {\n return;\n }\n brick.element = element;\n\n setRealProperties(element, brick.properties);\n unbindListeners(element);\n if (brick.events) {\n bindListeners(\n element,\n transformEvents(data, brick.events),\n _internalApiGetCurrentContext()\n );\n }\n // 设置proxyEvent\n handleProxyOfCustomTemplate(brick);\n\n const tplContextId = (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ];\n handleProxyOfParentTemplate(brick, tplContextId, tplContext);\n\n // Memoize the parent ref of useBrick.\n (element as RuntimeBrickElementWithTplSymbols)[\n symbolForParentRefForUseBrickInPortal\n ] = parentRefForUseBrickInPortal;\n\n if ((element as RuntimeBrickElement).$$typeof !== \"custom-template\") {\n if (!useBrick.brick.includes(\"-\")) {\n (element as RuntimeBrickElement).$$typeof = \"native\";\n } else if (!customElements.get(useBrick.brick)) {\n (element as RuntimeBrickElement).$$typeof = \"invalid\";\n }\n }\n }\n\n refCallback?.(element);\n },\n [\n runtimeBrick,\n useBrick,\n data,\n refCallback,\n immediatelyRefCallback,\n parentRefForUseBrickInPortal,\n ]\n );\n\n if (!isBrickAvailable) {\n return null;\n }\n\n if (template) {\n return React.createElement(\n template.brick,\n {\n ref: innerRefCallback,\n },\n ...slotsToChildren(template.slots as UseBrickSlotsConf).map(\n (item: UseSingleBrickConf, index: number) => {\n return (\n <SingleBrickAsComponent key={index} useBrick={item} data={data} />\n );\n }\n )\n );\n } else {\n return React.createElement(\n useBrick.brick,\n {\n ref: innerRefCallback,\n },\n ...slotsToChildren(useBrick.slots).map(\n (item: UseSingleBrickConf, index: number) => {\n if (\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ] &&\n !(item as RuntimeBrickConfWithTplSymbols)[symbolForTplContextId]\n ) {\n (item as RuntimeBrickConfWithTplSymbols)[symbolForTplContextId] =\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ];\n }\n return (\n <SingleBrickAsComponent key={index} useBrick={item} data={data} />\n );\n }\n )\n );\n }\n }\n);\n\n/**\n * 可以渲染 `useBrick` 的 React 组件。\n *\n * @remarks `useBrick` 可以传递单个或多个构件配置。\n *\n * @example\n *\n * ```tsx\n * <BrickAsComponent\n * useBrick={{\n * brick: \"your.any-brick\"\n * }}\n * data={yourData}\n * parentRefForUseBrickInPortal={yourParentElementRef}\n * />\n * ```\n *\n * @param props - 属性。\n */\nexport function BrickAsComponent({\n useBrick,\n data,\n parentRefForUseBrickInPortal,\n}: BrickAsComponentProps): React.ReactElement {\n if (Array.isArray(useBrick)) {\n return (\n <>\n {useBrick.map((item, index) => (\n <SingleBrickAsComponent\n key={index}\n useBrick={item}\n data={data}\n parentRefForUseBrickInPortal={parentRefForUseBrickInPortal}\n />\n ))}\n </>\n );\n }\n return (\n <SingleBrickAsComponent\n useBrick={useBrick}\n data={data}\n parentRefForUseBrickInPortal={parentRefForUseBrickInPortal}\n />\n );\n}\n\nfunction slotsToChildren(slots: UseBrickSlotsConf): UseSingleBrickConf[] {\n if (!slots) {\n return [];\n }\n return Object.entries(slots).flatMap(([slot, slotConf]) =>\n Array.isArray(slotConf.bricks)\n ? slotConf.bricks.map((child) => ({\n ...child,\n properties: {\n ...child.properties,\n slot,\n },\n }))\n : []\n );\n}\n\nfunction transformEvents(\n data: unknown,\n events: BrickEventsMap\n): BrickEventsMap {\n return doTransform(data, events, {\n evaluateOptions: {\n lazy: true,\n },\n }) as BrickEventsMap;\n}\n\n/* istanbul ignore next */\n// eslint-disable-next-line react/display-name\nexport const ForwardRefSingleBrickAsComponent = React.memo(\n forwardRef<HTMLElement, SingleBrickAsComponentProps>(\n function LegacySingleBrickAsComponent(\n {\n useBrick,\n data,\n parentRefForUseBrickInPortal,\n refCallback,\n }: SingleBrickAsComponentProps,\n ref\n ): React.ReactElement {\n const brickRef = useRef<HTMLElement>();\n const tplContext = _internalApiGetTplContext();\n let template: RuntimeBrickConf;\n let brick: RuntimeBrick;\n\n const isBrickAvailable = React.useMemo(() => {\n if (isObject(useBrick.if) && !isPreEvaluated(useBrick.if)) {\n // eslint-disable-next-line\n console.warn(\n \"Currently resolvable-if in `useBrick` is not supported.\"\n );\n } else if (\n !looseCheckIfByTransform(useBrick, data, { allowInject: true })\n ) {\n return false;\n }\n\n return true;\n }, [useBrick, data]);\n\n /* istanbul ignore next (never reach in test) */\n useImperativeHandle(ref, () => {\n return brickRef.current;\n });\n\n const runtimeBrick = React.useMemo(async () => {\n if (!isBrickAvailable) {\n return null;\n }\n\n // If the router state is initial, ignore rendering the sub-brick.\n if (_internalApiGetRouterState() === \"initial\") {\n return;\n }\n\n _internalApiLoadDynamicBricksInBrickConf(useBrick as BrickConf).catch(\n handleHttpError\n );\n\n const trackingContextList: TrackingContextItem[] = [];\n\n brick = getCurrentRunTimeBrick(useBrick, data, tplContext);\n\n template = setProxyRef(useBrick, brick, tplContext);\n\n // Let `transform` works still.\n transformProperties(\n brick.properties,\n data,\n useBrick.transform,\n useBrick.transformFrom,\n undefined,\n {\n allowInject: true,\n }\n );\n\n // 设置 properties refProperty值\n if (\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ) {\n Object.entries(\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ).forEach(([propName, propValue]) => {\n set(brick.properties, propName, propValue);\n });\n }\n\n const runtimeContext = _internalApiGetCurrentContext();\n\n if (useBrick.lifeCycle) {\n const resolver = _internalApiGetResolver();\n await resolver.resolve(\n {\n brick: useBrick.brick,\n lifeCycle: useBrick.lifeCycle,\n },\n brick,\n runtimeContext\n );\n }\n\n listenOnTrackingContext(brick, trackingContextList, runtimeContext);\n\n return brick;\n }, [useBrick, data, isBrickAvailable]);\n\n const innerRefCallback = React.useCallback(\n async (element: HTMLElement) => {\n brickRef.current = element;\n\n if (element) {\n let brick: RuntimeBrick;\n try {\n brick = await runtimeBrick;\n } catch (e) {\n handleHttpError(e);\n }\n // sub-brick rendering is ignored.\n if (!brick) {\n return;\n }\n brick.element = element;\n setRealProperties(element, brick.properties);\n unbindListeners(element);\n if (useBrick.events) {\n bindListeners(\n element,\n transformEvents(data, useBrick.events),\n _internalApiGetCurrentContext()\n );\n }\n // 设置proxyEvent\n handleProxyOfCustomTemplate(brick);\n\n const tplContextId = (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ];\n handleProxyOfParentTemplate(brick, tplContextId, tplContext);\n\n // Memoize the parent ref of useBrick.\n (element as RuntimeBrickElementWithTplSymbols)[\n symbolForParentRefForUseBrickInPortal\n ] = parentRefForUseBrickInPortal;\n\n if (\n (element as RuntimeBrickElement).$$typeof !== \"custom-template\"\n ) {\n if (!useBrick.brick.includes(\"-\")) {\n (element as RuntimeBrickElement).$$typeof = \"native\";\n } else if (!customElements.get(useBrick.brick)) {\n (element as RuntimeBrickElement).$$typeof = \"invalid\";\n }\n }\n }\n refCallback?.(element);\n },\n [\n runtimeBrick,\n useBrick,\n data,\n refCallback,\n parentRefForUseBrickInPortal,\n ]\n );\n\n if (!isBrickAvailable) {\n return null;\n }\n\n if (template) {\n return React.createElement(\n template.brick,\n {\n ref: innerRefCallback,\n },\n ...slotsToChildren(template.slots as UseBrickSlotsConf).map(\n (item: UseSingleBrickConf, index: number) => {\n return (\n <SingleBrickAsComponent\n key={index}\n useBrick={item}\n data={data}\n />\n );\n }\n )\n );\n } else {\n return React.createElement(\n useBrick.brick,\n {\n ref: innerRefCallback,\n },\n ...slotsToChildren(useBrick.slots).map(\n (item: UseSingleBrickConf, index: number) => {\n if (\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ] &&\n !(item as RuntimeBrickConfWithTplSymbols)[symbolForTplContextId]\n ) {\n (item as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ] = (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ];\n }\n return (\n <SingleBrickAsComponent\n key={index}\n useBrick={item}\n data={data}\n />\n );\n }\n )\n );\n }\n }\n )\n);\n","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页'\n};","var locale = {\n locale: 'zh_CN',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '确定',\n timeSelect: '选择时间',\n dateSelect: '选择日期',\n weekSelect: '选择周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上个月 (翻页上键)',\n nextMonth: '下个月 (翻页下键)',\n monthSelect: '选择月份',\n yearSelect: '选择年份',\n decadeSelect: '选择年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH时mm分ss秒',\n previousYear: '上一年 (Control键加左方向键)',\n nextYear: '下一年 (Control键加右方向键)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世纪',\n nextCentury: '下一世纪'\n};\nexport default locale;","var locale = {\n placeholder: '请选择时间',\n rangePlaceholder: ['开始时间', '结束时间']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/zh_CN\";\nimport TimePickerLocale from '../../time-picker/locale/zh_CN'; // 统一合并为完整的 Locale\n\nvar locale = {\n lang: _extends({\n placeholder: '请选择日期',\n yearPlaceholder: '请选择年份',\n quarterPlaceholder: '请选择季度',\n monthPlaceholder: '请选择月份',\n weekPlaceholder: '请选择周',\n rangePlaceholder: ['开始日期', '结束日期'],\n rangeYearPlaceholder: ['开始年份', '结束年份'],\n rangeMonthPlaceholder: ['开始月份', '结束月份'],\n rangeWeekPlaceholder: ['开始周', '结束周']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n}; // should add whitespace between char in Button\n\nlocale.lang.ok = '确 定'; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/zh_CN\";\nimport DatePicker from '../date-picker/locale/zh_CN';\nimport TimePicker from '../time-picker/locale/zh_CN';\nimport Calendar from '../calendar/locale/zh_CN';\nvar typeTemplate = '${label}不是一个有效的${type}';\nvar localeValues = {\n locale: 'zh-cn',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n // locales for all components\n global: {\n placeholder: '请选择'\n },\n Table: {\n filterTitle: '筛选',\n filterConfirm: '确定',\n filterReset: '重置',\n filterEmptyText: '无筛选项',\n selectAll: '全选当页',\n selectInvert: '反选当页',\n selectNone: '清空所有',\n selectionAll: '全选所有',\n sortTitle: '排序',\n expand: '展开行',\n collapse: '关闭行',\n triggerDesc: '点击降序',\n triggerAsc: '点击升序',\n cancelSort: '取消排序'\n },\n Modal: {\n okText: '确定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Popconfirm: {\n cancelText: '取消',\n okText: '确定'\n },\n Transfer: {\n searchPlaceholder: '请输入搜索内容',\n itemUnit: '项',\n itemsUnit: '项',\n remove: '删除',\n selectCurrent: '全选当页',\n removeCurrent: '删除当页',\n selectAll: '全选所有',\n removeAll: '删除全部',\n selectInvert: '反选当页'\n },\n Upload: {\n uploading: '文件上传中',\n removeFile: '删除文件',\n uploadError: '上传错误',\n previewFile: '预览文件',\n downloadFile: '下载文件'\n },\n Empty: {\n description: '暂无数据'\n },\n Icon: {\n icon: '图标'\n },\n Text: {\n edit: '编辑',\n copy: '复制',\n copied: '复制成功',\n expand: '展开'\n },\n PageHeader: {\n back: '返回'\n },\n Form: {\n optional: '(可选)',\n defaultValidateMessages: {\n \"default\": '字段验证错误${label}',\n required: '请输入${label}',\n \"enum\": '${label}必须是其中一个[${enum}]',\n whitespace: '${label}不能为空字符',\n date: {\n format: '${label}日期格式无效',\n parse: '${label}不能转换为日期',\n invalid: '${label}是一个无效日期'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label}须为${len}个字符',\n min: '${label}最少${min}个字符',\n max: '${label}最多${max}个字符',\n range: '${label}须在${min}-${max}字符之间'\n },\n number: {\n len: '${label}必须等于${len}',\n min: '${label}最小值为${min}',\n max: '${label}最大值为${max}',\n range: '${label}须在${min}-${max}之间'\n },\n array: {\n len: '须为${len}个${label}',\n min: '最少${min}个${label}',\n max: '最多${max}个${label}',\n range: '${label}数量须在${min}-${max}之间'\n },\n pattern: {\n mismatch: '${label}与模式不匹配${pattern}'\n }\n }\n },\n Image: {\n preview: '预览'\n }\n};\nexport default localeValues;","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: '',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages'\n};","var locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nexport default locale;","var locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US'; // Merge into a locale object\n\nvar locale = {\n lang: _extends({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n}; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nimport Calendar from '../calendar/locale/en_US';\nvar typeTemplate = '${label} is not a valid ${type}';\nvar localeValues = {\n locale: 'en',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No Data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n \"default\": 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n \"enum\": '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n }\n};\nexport default localeValues;","export default \"empty-image.8e18d87fea570ef0.png\"","export default \"big-empty-image.397ff6359f4066d8.png\"","import React, { useMemo } from \"react\";\nimport { Empty } from \"antd\";\nimport { getIllustration, IllustrationProps } from \"@next-core/illustrations\";\n\nimport emptyImage from \"../images/empty-image.png\";\nimport bigEmptyImage from \"../images/big-empty-image.png\";\n\n// @internal\nexport interface EasyopsEmptyProps {\n background?: string;\n description?: string | React.ReactNode;\n imageStyle?: React.CSSProperties;\n illustration?: IllustrationProps;\n useBigEmptyImage?: boolean;\n}\n\n/**\n * 用于展示空数据的 React 组件。\n */\nexport function EasyopsEmpty(props: EasyopsEmptyProps): React.ReactElement {\n const illustration = useMemo(\n () => props.illustration && getIllustration(props.illustration),\n [props.illustration]\n );\n const _emptyImage = props.useBigEmptyImage ? bigEmptyImage : emptyImage;\n const image = props.illustration ? illustration : getImageUrl(_emptyImage);\n const imageStyle =\n props.imageStyle ??\n (props.useBigEmptyImage ? undefined : { height: \"60px\" });\n\n return (\n <Empty\n image={image}\n imageStyle={imageStyle}\n description={props.description}\n />\n );\n}\n\nfunction getImageUrl(url: string): string {\n return `${window.CORE_ROOT ?? \"\"}assets/${url}`;\n}\n\n/**\n * 调用后获得一个默认的展示空数据的 React 组件。\n */\nexport function renderEasyopsEmpty(): React.ReactNode {\n return <EasyopsEmpty />;\n}\n","import React, { createContext, useContext } from \"react\";\nimport { FeatureFlags as FeatureFlagsType } from \"@next-core/brick-types\";\nconst FeatureFlagsContext = createContext<FeatureFlagsType>(null);\n\nexport const FeatureFlagsProvider = FeatureFlagsContext.Provider;\n\ninterface featureFlagsProps {\n name: string | string[];\n fallback?: React.ReactNode | React.ReactElement;\n}\n\n/**\n * 显示特性开关\n *\n * @example\n *\n * ```tsx\n * featureFlags = {\"enabled-foo\": true, \"enabled-bar\": true}\n *\n * function MyReactComponent(props) {\n * // 返回所有的特性开关名称数组\n * const featureFlags = useFeatureFlags();\n * console.log(featureFlags)\n * // Output: [\"enabled-foo\", \"enabled-bar\"]\n *\n * // ...\n * }\n *\n * featureFlags = {\"enabled-foo\": true}\n * function MyReactComponent(props) {\n * // 返回传入的特性开关名布尔值数组\n * const [isEnabledFoo, isEnabledBar] = useFeatureFlags([\"enabled-foo\", \"enabled-bar\"]);\n * console.log([isEnabledFoo, isEnabledBar])\n * // Output: [true, false]\n *\n * // ...\n * }\n * ```\n *\n * @param name - 特性开关名称\n *\n * @returns boolean[] | string[]\n */\nexport function useFeatureFlags(\n name?: string | string[]\n): boolean[] | string[] {\n const featureFlags = useContext(FeatureFlagsContext);\n const flagNames = [].concat(name).filter(Boolean);\n return flagNames.length\n ? flagNames.map((flag) => !!featureFlags[flag])\n : Object.keys(featureFlags).filter((flag) => !!featureFlags[flag]);\n}\n\n/**\n * 特性开关 React 组件\n * @example\n *\n * ```tsx\n * featureFlags = {\"enabled-foo\": true}\n *\n * <DisplayByFeatureFlags name={[\"enable-foo\"]}>\n * <div>Can you see me?</div>\n * </DisplayByFeatureFlags>\n * // 显示 `Can you see me?`\n *\n *\n * featureFlags = {\"enabled-foo\": true}\n * <DisplayByFeatureFlags fallback={<h1>Good to see you.</h1>} name={\"enable-bar\"}>\n * <div>Can you see me?</div>\n * </DisplayByFeatureFlags>\n * // 显示 `Good to see you.`\n *\n * ```\n * @param name - 特性开关名称\n *\n * @param fallback - 如果没有开启传入的特性开关则渲染此属性内传入的 React Node\n */\nexport function DisplayByFeatureFlags(\n props: React.PropsWithChildren<featureFlagsProps>\n): React.ReactElement {\n const featureFlags = useFeatureFlags(props.name) as boolean[];\n\n return featureFlags.every((flag) => !!flag) ? (\n <>{props.children}</>\n ) : props?.fallback ? (\n <>{props?.fallback}</>\n ) : null;\n}\n","import React from \"react\";\nimport i18n from \"i18next\";\nimport { ConfigProvider } from \"antd\";\nimport zhCN from \"antd/es/locale/zh_CN\";\nimport enUS from \"antd/es/locale/en_US\";\n\nimport { ErrorBoundary } from \"./ErrorBoundary\";\nimport { EasyopsEmpty, EasyopsEmptyProps } from \"./EasyopsEmpty\";\nimport { FeatureFlagsProvider } from \"./featureFlags\";\nimport { getRuntime } from \"./runtime\";\n\ninterface BrickWrapperProps {\n children?: React.ReactElement;\n wrapperConfig?: {\n empty?: EasyopsEmptyProps;\n };\n}\n\n/**\n * 构件的 React 组件包装器,包含 ErrorBoundary, ConfigProvider, FeatureFlagsProvider。\n */\nexport function BrickWrapper(props: BrickWrapperProps): React.ReactElement {\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n // istanbul ignore next\n const featureFlags =\n process.env.NODE_ENV === \"test\" ? {} : getRuntime().getFeatureFlags();\n return (\n <ErrorBoundary>\n <FeatureFlagsProvider value={featureFlags}>\n <ConfigProvider\n locale={locale}\n autoInsertSpaceInButton={false}\n renderEmpty={() => <EasyopsEmpty {...props.wrapperConfig?.empty} />}\n >\n {props.children}\n </ConfigProvider>\n </FeatureFlagsProvider>\n </ErrorBoundary>\n );\n}\n","import { asyncProcessBrick } from \"@next-core/brick-utils\";\nimport { BrickConf } from \"@next-core/brick-types\";\nimport { brickTemplateRegistry } from \"./core/TemplateRegistries\";\nimport {\n LocationContext,\n mountTree,\n unmountTree,\n afterMountTree,\n _dev_only_getBrickPackages,\n _dev_only_getStoryboards,\n _dev_only_loadDynamicBricksInBrickConf,\n _dev_only_getTemplatePackages,\n _dev_only_getFakeKernel,\n _dev_only_loadEditorBricks,\n _dev_only_checkoutTplContext,\n} from \"./core/exports\";\n\n/** @internal */\nexport const developHelper = {\n asyncProcessBrick(brickConf: BrickConf): Promise<void> {\n return asyncProcessBrick(\n brickConf,\n brickTemplateRegistry,\n _dev_only_getTemplatePackages()\n );\n },\n LocationContext,\n mountTree,\n unmountTree,\n afterMountTree,\n getBrickPackages: _dev_only_getBrickPackages,\n getTemplatePackages: _dev_only_getTemplatePackages,\n getStoryboards: _dev_only_getStoryboards,\n loadEditorBricks: _dev_only_loadEditorBricks,\n loadDynamicBricksInBrickConf: _dev_only_loadDynamicBricksInBrickConf,\n getFakeKernel: _dev_only_getFakeKernel,\n checkoutTplContext: _dev_only_checkoutTplContext,\n};\n","// Inspired by [LitElement](https://github.com/Polymer/lit-element)\n\ntype TypeHint = typeof String | typeof Number | typeof Boolean;\n\n/**\n * Converts property values to and from attribute values.\n */\ninterface ComplexAttributeConverter<Type = unknown> {\n /**\n * Function called to convert an attribute value to a property\n * value.\n */\n fromAttribute?(value: string | null, type?: TypeHint): Type;\n\n /**\n * Function called to convert a property value to an attribute\n * value.\n *\n * It returns unknown instead of string, to be compatible with\n * https://github.com/WICG/trusted-types (and similar efforts).\n */\n toAttribute?(value: Type, type?: TypeHint): unknown;\n}\n\n/**\n * Defines options for a property accessor.\n */\nexport interface PropertyDeclaration<Type = unknown> {\n /**\n * Indicates how and whether the property becomes an observed attribute.\n * If the value is `false`, the property is not added to `observedAttributes`.\n * If true or absent, the lowercased property name is observed (e.g. `fooBar`\n * becomes `foobar`). If a string, the string value is observed (e.g\n * `attribute: 'foo-bar'`).\n */\n readonly attribute?: boolean | string;\n\n /**\n * Indicates the type of the property. This is used only as a hint for the\n * `converter` to determine how to convert the attribute\n * to/from a property.\n */\n readonly type?: TypeHint;\n\n /**\n * Indicates how to convert the attribute to/from a property. If this value\n * is a function, it is used to convert the attribute value a the property\n * value. If it's an object, it can have keys for `fromAttribute` and\n * `toAttribute`. If no `toAttribute` function is provided and\n * `reflect` is set to `true`, the property value is set directly to the\n * attribute. A default `converter` is used if none is provided; it supports\n * `Boolean`, `String`, `Number`, `Object`, and `Array`. Note,\n * when a property changes and the converter is used to update the attribute,\n * the property is never updated again as a result of the attribute changing,\n * and vice versa.\n */\n readonly converter?: ComplexAttributeConverter<Type>;\n\n /**\n * Indicates if the property should reflect to an attribute.\n * If `true`, when the property is set, the attribute is set using the\n * attribute name determined according to the rules for the `attribute`\n * property option and the value of the property converted using the rules\n * from the `converter` property option.\n */\n readonly reflect?: boolean;\n\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n\n /**\n * Indicates whether an accessor will be created for this property. By\n * default, an accessor will be generated for this property that requests an\n * update when set. If this flag is `true`, no accessor will be created, and\n * it will be the user's responsibility to call\n * `this.requestUpdate(propertyName, oldValue)` to request an update when\n * the property changes.\n */\n readonly noAccessor?: boolean;\n\n /**\n * Used for existed properties which require `@property` do not decorate.\n * This should be used for legacy props only.\n *\n * @internal\n */\n readonly __unstable_doNotDecorate?: boolean;\n\n /**\n * Used for existed properties that are conflicted with html native properties.\n *\n * @internal\n */\n readonly __deprecated_and_for_compatibility_only?: boolean;\n}\n\nconst defaultConverter: ComplexAttributeConverter = {\n toAttribute(value: unknown, type?: TypeHint): unknown {\n switch (type) {\n case Boolean:\n return value ? \"\" : null;\n }\n return value;\n },\n\n fromAttribute(value: string | null, type?: TypeHint) {\n switch (type) {\n case Boolean:\n return value !== null;\n case Number:\n return value === null ? null : Number(value);\n }\n return value;\n },\n};\n\ninterface HasChanged {\n (value: unknown, old: unknown): boolean;\n}\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nconst notEqual: HasChanged = (value: unknown, old: unknown): boolean => {\n // This ensures (old==NaN, value==NaN) always returns false\n return old !== value && (old === old || value === value);\n};\n\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: true,\n hasChanged: notEqual,\n};\n\nfunction attributeNameForProperty(\n name: PropertyKey,\n options: PropertyDeclaration\n): string {\n const attribute = options.attribute;\n return attribute === false\n ? undefined\n : typeof attribute === \"string\"\n ? attribute\n : typeof name === \"string\"\n ? name.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`)\n : undefined;\n}\n\n/**\n * 构件事件的选项。\n */\nexport interface EventDeclaration extends EventInit {\n /**\n * 事件类型名。\n */\n type: string;\n}\n\n/** 事件发送器 */\nexport interface EventEmitter<T = unknown> {\n /** 发出事件。 */\n emit: (detail?: T) => boolean;\n}\n\n/**\n * 普通构件的抽象基类。\n *\n * @example\n *\n * ```ts\n * class MyBrickElement extends UpdatingElement {\n * @property()\n * myProp: string;\n *\n * _render() {\n * if (this.isConnected) {\n * // ...\n * }\n * }\n * }\n * ```\n */\nexport abstract class UpdatingElement extends HTMLElement {\n private _hasRequestedRender = false;\n private static _observedAttributes = new Set<string>();\n private static __dev_only_definedProperties = new Set<string>();\n private static __dev_only_definedMethods = new Set<string>();\n private static __dev_only_definedEvents = new Set<string>();\n\n /** @internal */\n static get observedAttributes(): string[] {\n this._ensureObservedAttributes();\n return Array.from(this._observedAttributes);\n }\n\n /** @internal */\n static get _dev_only_definedProperties(): string[] {\n this._ensureDefinedProperties();\n return Array.from(this.__dev_only_definedProperties);\n }\n\n /** @internal */\n static get _dev_only_definedMethods(): string[] {\n this._ensureDefinedMethods();\n return Array.from(this.__dev_only_definedMethods);\n }\n\n /** @internal */\n static get _dev_only_definedEvents(): string[] {\n this._ensureDefinedEvents();\n return Array.from(this.__dev_only_definedEvents);\n }\n\n /** @internal */\n get $$typeof(): string {\n return \"brick\";\n }\n\n /** @internal */\n attributeChangedCallback(\n name: string,\n old: string | null,\n value: string | null\n ): void {\n if (old !== value) {\n this._enqueueRender();\n }\n }\n\n // Enure multiple property settings will trigger rendering only once.\n private _enqueueRender(): void {\n // If the element is not connected,\n // let `connectedCallback()` do the job of rendering.\n if (this.isConnected && !this._hasRequestedRender) {\n this._hasRequestedRender = true;\n Promise.resolve().then(() => {\n this._hasRequestedRender = false;\n this._render();\n });\n }\n }\n\n private static _ensureObservedAttributes(): void {\n // eslint-disable-next-line no-prototype-builtins\n if (!this.hasOwnProperty(\"_observedAttributes\")) {\n const superClass = Object.getPrototypeOf(this);\n this._observedAttributes = new Set<string>(\n // eslint-disable-next-line no-prototype-builtins\n superClass.hasOwnProperty(\"_observedAttributes\")\n ? superClass._observedAttributes\n : null\n );\n }\n }\n\n private static _ensureDefinedProperties(): void {\n // eslint-disable-next-line no-prototype-builtins\n if (!this.hasOwnProperty(\"__dev_only_definedProperties\")) {\n const superClass = Object.getPrototypeOf(this);\n this.__dev_only_definedProperties = new Set<string>(\n // eslint-disable-next-line no-prototype-builtins\n superClass.hasOwnProperty(\"__dev_only_definedProperties\")\n ? superClass.__dev_only_definedProperties\n : null\n );\n }\n }\n\n private static _ensureDefinedMethods(): void {\n // eslint-disable-next-line no-prototype-builtins\n if (!this.hasOwnProperty(\"__dev_only_definedMethods\")) {\n const superClass = Object.getPrototypeOf(this);\n this.__dev_only_definedMethods = new Set<string>(\n // eslint-disable-next-line no-prototype-builtins\n superClass.hasOwnProperty(\"__dev_only_definedMethods\")\n ? superClass.__dev_only_definedMethods\n : null\n );\n }\n }\n\n private static _ensureDefinedEvents(): void {\n // eslint-disable-next-line no-prototype-builtins\n if (!this.hasOwnProperty(\"__dev_only_definedEvents\")) {\n const superClass = Object.getPrototypeOf(this);\n this.__dev_only_definedEvents = new Set<string>(\n // eslint-disable-next-line no-prototype-builtins\n superClass.hasOwnProperty(\"__dev_only_definedEvents\")\n ? superClass.__dev_only_definedEvents\n : null\n );\n }\n }\n\n /** @internal */\n static createProperty(name: string, options?: PropertyDeclaration): void {\n this._ensureObservedAttributes();\n this._ensureDefinedProperties();\n\n options = Object.assign({}, defaultPropertyDeclaration, options);\n\n // eslint-disable-next-line no-prototype-builtins\n if (options.noAccessor || this.prototype.hasOwnProperty(name)) {\n return;\n }\n\n this.__dev_only_definedProperties.add(name);\n\n const attr = attributeNameForProperty(name, options);\n\n if (attr === undefined) {\n // Create a non-enumerable symbol property to delegate the property.\n const delegatedPropSymbol = Symbol(`delegatedProp:${name}`);\n Object.defineProperty(this.prototype, name, {\n get(): any {\n return (this as any)[delegatedPropSymbol];\n },\n set(this: UpdatingElement, value: unknown) {\n const oldValue = (this as any)[name];\n if (options.hasChanged(value, oldValue)) {\n (this as any)[delegatedPropSymbol] = value;\n this._enqueueRender();\n }\n },\n enumerable: true,\n });\n return;\n }\n\n this._observedAttributes.add(attr);\n\n Object.defineProperty(this.prototype, name, {\n get(): any {\n return options.converter.fromAttribute(\n (this as HTMLElement).getAttribute(attr),\n options.type\n );\n },\n set(this: UpdatingElement, value: unknown) {\n const oldValue = (this as any)[name];\n if (options.hasChanged(value, oldValue)) {\n const attrValue = options.converter.toAttribute(value, options.type);\n if (attrValue === undefined) {\n return;\n }\n if (attrValue === null) {\n this.removeAttribute(attr);\n } else {\n this.setAttribute(attr, attrValue as string);\n }\n }\n },\n enumerable: true,\n });\n }\n\n /** @internal */\n static createMethod(name: string): void {\n this._ensureDefinedMethods();\n this.__dev_only_definedMethods.add(name);\n }\n\n /** @internal */\n static createEventEmitter(name: string, options: EventDeclaration): void {\n this._ensureDefinedEvents();\n\n // eslint-disable-next-line no-prototype-builtins\n if (this.prototype.hasOwnProperty(name)) {\n return;\n }\n\n const { type, ...eventInit } = options;\n this.__dev_only_definedEvents.add(type);\n\n // Make event emitter readonly.\n Object.defineProperty(this.prototype, name, {\n get(): EventEmitter {\n return Object.freeze({\n emit: <T>(detail: T): boolean =>\n this.dispatchEvent(new CustomEvent(type, { ...eventInit, detail })),\n });\n },\n });\n }\n\n /**\n * 当构件的属性改变时,将自动调用 `this._render()` 方法。\n */\n protected abstract _render(): void;\n}\n","import { merge } from \"lodash\";\nimport { UpdatingElement } from \"../UpdatingElement\";\nimport { property } from \"../decorators\";\n\n/**\n * 模态框类构件的抽象基类。\n */\nexport abstract class ModalElement extends UpdatingElement {\n /**\n * 模态框当前是否可见。\n */\n @property({\n type: Boolean,\n })\n public isVisible: boolean;\n\n /**\n * 打开模态框。\n *\n * @param e - 事件。\n */\n openModal = (e?: CustomEvent): void => {\n if (e) {\n if (typeof e.detail === \"object\" && !Array.isArray(e.detail)) {\n merge(this, e.detail);\n } else {\n merge(this, { detail: e.detail });\n }\n }\n this.isVisible = true;\n this._render();\n };\n\n /**\n * 关闭模态框。\n */\n closeModal = (): void => {\n this.isVisible = false;\n this._render();\n };\n}\n"],"names":["BaseBar","constructor","kernel","mountPoint","bootstrap","brick","options","element","remove","loadDynamicBricks","document","createElement","testid","dataset","mountPoints","appendChild","AppBar","setPageTitle","pageTitle","appendBreadcrumb","breadcrumb","setBreadcrumb","MenuBar","setAppMenu","menu","resetAppMenu","subMenu","collapse","collapsed","isCollapsed","softExpand","expanded","softExpanded","isSoftExpanded","NS_BRICK_KIT","K","getBasePath","base","querySelector","basePath","getAttribute","compareVersions","v1","v2","n1","validateAndParse","n2","p1","pop","p2","r","compareSegments","split","semver","v","TypeError","match","Error","shift","isWildcard","s","tryParse","n","parseInt","isNaN","forceType","a","b","String","compareStrings","ap","bp","i","Math","max","length","brickTemplateRegistry","Map","registerBrickTemplate","name","factory","has","console","error","set","DEFAULT_THEME","theme","setTheme","value","getTheme","getCurrentTheme","documentElement","applyTheme","window","dispatchEvent","CustomEvent","detail","useCurrentTheme","currentTheme","setCurrentTheme","useState","useEffect","listenToThemeChange","event","addEventListener","removeEventListener","DEFAULT_MODE","mode","setMode","getMode","getCurrentMode","applyMode","useCurrentMode","currentMode","setCurrentMode","listenToModeChange","globalVariables","_objectSpread","Object","variable","supplyIndividual","shouldOmitInLodash","shouldOmitInMoment","allowedGlobalObjects","delegateMethods","entry","moment","pipes","href","location","origin","tagUrlFactory","method","args","target","partials","result","strings","index","ignoreSlashes","p","encodeURIComponent","getUrlByAliasFactory","app","getUrlByAlias","alias","pathParams","query","$$routeAliasMap","routeConf","get","url","toPath","computeRealRoutePath","path","urlSearchParams","URLSearchParams","key","entries","Array","isArray","item","append","undefined","queryString","toString","getUrlBySegueFactory","segues","getUrlBySegue","segueId","hasOwnProperty","segue","imagesFactory","appId","isBuildPush","PUBLIC_ROOT","widgetImagesFactory","widgetId","customTemplateRegistry","appRegistered","Set","symbolForComputedPropsFromProxy","Symbol","for","symbolForRefForProxy","symbolForParentTemplate","symbolForTplContextId","symbolForParentRefForUseBrickInPortal","injected","WeakSet","recursiveMarkAsInjected","isObject","haveBeenInjected","add","forEach","proto","getPrototypeOf","values","object","resetAllInjected","cloneDeepWithInjectedMark","isPreEvaluated","clone","map","fromEntries","k","StateOfUseBrick","isLazyContentInUseBrick","state","USE_BRICK_PROPERTIES","USE_BRICK_TRANSFORM","USE_BRICK_EVENTS","USE_BRICK_IF","USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_TRANSFORM","USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT_TRANSFORM","getNextStateOfUseBrick","USE_BRICK","USE_BRICK_ITEM","USE_BRICK_SLOTS_ITEM_BRICKS","USE_BRICK_SLOTS_ITEM_BRICKS_ITEM","USE_BRICK_LIFECYCLE_USERESOLVES","USE_BRICK_LIFECYCLE_USERESOLVES_ITEM","INITIAL","USE_BRICK_SLOTS","USE_BRICK_LIFECYCLE","USE_BRICK_SLOTS_ITEM","USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT","transformElementProperties","data","to","from","mapArray","preprocessTransformProperties","setRealProperties","transformProperties","props","propName","propValue","doTransform","preEvaluated","lazy","$$lazyForUseBrick","$$stateOfUseBrick","dismissRecursiveMarkingInjected","isEvaluable","runtimeContext","getTplVariables","evaluate","evaluateOptions","shouldDismissRecursiveMarkingInjected","allowInject","transformAndInject","_internalApiGetCurrentContext","transform","nextOptions","getNextDoTransformOptions","trackingContextList","contextNames","trackContext","push","reTransformForDevtools","transformationId","isReTransformation","devtoolsHookEmit","id","message","processedData","pipeableTransform","fromData","transformedPropName","transformTo","transformIntermediateData","intermediateData","MESSAGE_SOURCE_PANEL","EVALUATION_EDIT","TRANSFORMATION_EDIT","type","payload","Promise","resolve","then","getDevHook","emit","listenDevtools","source","raw","context","restoreDehydrated","isReEvaluation","evaluationId","__BRICK_NEXT_DEVTOOLS_HOOK__","getItemFactory","storageType","storage","localStorage","sessionStorage","JSON","parse","getItem","locale","REQUEST_FAILED","MODAL_OK","MODAL_CANCEL","SOMETHING_WENT_WRONG","LOGIN_TIMEOUT_MESSAGE","NETWORK_ERROR","initI18n","i18next","addResourceBundle","en","zh","getI18nNamespace","registerWidgetI18n","i18n","ns","lang","resources","widgetI18nFactory","getFixedT","i18nText","language","primaryLanguage","prefix","keys","startsWith","auth","authenticate","newAuth","assign","org","username","userInstanceId","loginFrom","accessRule","isAdmin","userAnalytics","initialized","setUserId","getAuth","logout","resetPermissionPreChecks","isLoggedIn","permissionMap","preCheckPermissions","storyboard","usedActions","scanPermissionActionsInStoryboard","validatePermissions","actions","difference","PermissionApi_validatePermissions","action","authorizationStatus","checkPermissions","clear","getGeneralGlobals","attemptToVisitGlobals","variableName","getIndividualGlobal","collectCoverage","storyboardFunctions","replace","fakeImageFactory","identity","fakeI18nText","check","fakeCheckPermissions","StoryboardFunctionRegistryFactory","registeredFunctions","Proxy","freeze","getStoryboardFunction","currentApp","registerStoryboardFunctions","functions","fn","typescript","processed","cooked","collector","createCollector","precooked","precookFunction","hooks","beforeVisit","cook","function","rules","noVar","supply","beforeEvaluate","beforeCall","beforeBranch","updateStoryboardFunction","widgetFunctionRegistry","widgetFunctions","registerWidgetFunctions","THROW","readOnlyHandler","defineProperty","deleteProperty","setPrototypeOf","getReadOnlyProxy","getDynamicReadOnlyProxy","ownKeys","symbolForRaw","symbolForContext","shouldAllowRecursiveEvaluations","possibleErrorConstructs","SyntaxError","ReferenceError","getCookErrorConstructor","preevaluate","errorConstructor","attemptToVisitEvent","attemptToVisitData","attemptToVisitTpl","missingEvent","EVENT","missingTpl","missingData","rawWithContext","DATA","TPL","sys","flags","hash","storyboardContext","overrideApp","getUrl","substr","cloneDeep","prop","matchVersion","getRuntime","hasInstalledApp","getMiscSettings","params","pkg","customProcessorRegistry","t","getAll","expression","computeRealValue","injectDeep","internalOptions","inject","getNextInternalOptions","setProperties","bricks","properties","realProps","computeRealProperties","extractProps","textContent","realValue","looseCheckIf","ifContainer","_looseCheckIf","if","looseCheckIfByTransform","_rawIf","_data","looseCheckIfOfComputed","rawIf","ctx","checkIf","_checkIf","checkIfByTransform","ifChecked","warn","symbolAppId","menuCache","menuTitleCache","constructMenu","menuBar","hasSubMenu","subMenuId","menuId","defaultCollapsed","processMenu","isNil","fetchMenuById","menuList","STANDALONE_MICRO_APPS","getStandaloneMenus","InstanceApi_postSearch","page","page_size","fields","title","icon","link","titleDataSource","defaultCollapsedBreakpoint","injectMenuGroupId","dynamicItems","itemsResolve","items","$eq","$size","$gt","list","all","loadDynamicMenuItems","menuData","mergeMenu","reorderMenuItems","mainMenu","find","validMenuList","injectWithMenus","injectingMenus","flatMap","processGroupInject","foundInjectingMenus","groupId","delete","children","concat","injectingMenu","itemsConf","_internalApiGetResolver","resolveOne","transformMapArray","restMenuData","computeRealValueWithOverrideApp","computeMenuItemsWithOverrideApp","processMenuTitle","menuItems","filter","text","defaultExpanded","rest","cacheKey","stringify","objectId","instanceId","attributeId","attr","instanceData","InstanceApi_getDetail","primary","join","clearMenuTitleCache","clearMenuCache","sortMenuItems","sortBy","sort","Infinity","overriddenGlobals","requireOverrideApp","memo","some","includes","test","overrideAppId","newContext","bootstrapData","storyboards","story","fulfilStoryboard","lazyBrickRegistry","requestsMap","WeakMap","registerLazyBricks","factoryWrapper","loadLazyBricks","requests","request","loadAllLazyBricks","fakeTplContext","_dev_only_getBrickPackages","brickPackages","_dev_only_getTemplatePackages","templatePackages","_dev_only_getStoryboards","_dev_only_loadDynamicBricksInBrickConf","brickConf","loadDynamicBricksInBrickConf","_dev_only_loadEditorBricks","editorBricks","loadEditorBricks","_dev_only_getFakeKernel","overrides","getFeatureFlags","bind","getProviderBrick","Runtime","registerCustomTemplate","registerCustomProcessor","Kernel","appBar","getCurrentApp","getRecentApps","getCurrentRoute","currentRoute","getMicroApps","excludeInstalling","includeInternal","apps","microApps","installStatus","internal","foundApp","matches","compare","currentVersion","reloadMicroApps","interceptorParams","check_login","reloadSharedData","loadSharedData","getDesktops","desktops","getLaunchpadSiteMap","siteSort","getAllUserInfo","getAllUserMap","getAllUserMapAsync","loadUsersAsync","allUserMapPromise","getMagicBrickConfigMapAsync","loadMagicBrickConfigAsync","allMagicBrickConfigMapPromise","fetchMenu","router","getCurrentContext","toggleFilterOfBlur","blur","body","classList","toggle","toggleLaunchpadEffect","open","getHomepage","settings","homepage","getBrandSettings","base_title","brand","getLaunchpadSettings","columns","rows","launchpad","misc","getRelatedApps","getRelatedAppsAsync","popWorkspaceStack","resetWorkspaceStack","workspaceStack","applyPageTitle","baseTitle","process","env","NODE_ENV","getResolver","_internalApiGetRouterState","getState","_internalApiGetRouterRenderId","getRenderId","_internalApiMessageCloseHandler","handleMessageClose","_internalApiHasMatchedApp","pathname","_dev_only_checkoutTplContext","_internalApiGetTplContext","getTplContext","_internalApiGetProviderBrick","provider","_internalApiGetMicroAppApiOrchestrationMap","allMicroAppApiOrchestrationPromise","_internalApiLoadDynamicBricksInBrickConf","historyExtended","browserHistory","originalPush","originalReplace","updateQueryFactory","updateQuery","extraQuery","keepHash","search","updateAnchorFactory","updateAnchor","notify","reload","blockMessage","setBlockMessage","getBlockMessage","unblock","pushQuery","replaceQuery","pushAnchor","standaloneHistoryOverridden","updateFactory","update","pathIsString","createHref","history","createHistory","createBrowserHistory","basename","getHistory","isUnauthenticatedError","HttpResponseError","response","status","responseJson","code","httpErrorToString","Event","HTMLScriptElement","src","HttpFetchError","msg","unauthenticatedConfirmModal","handleHttpError","Modal","confirm","React","ExclamationCircleOutlined","content","okText","cancelText","onOk","ssoEnabled","whiteSpace","LoginTimeoutMessage","WebsocketMessageRequest","topic","system","PluginWebSocketMessageEvent","WebsocketMessageResponse","SUB_SUCCESS","SUB_FAILED","SUB","UNSUB_SUCCESS","UNSUB_FAILED","UNSUB","WebSocketService","reconnectTimeout","retryLimit","defaultOptions","createWebSocket","readyState","ws","WebSocket","init","e","reconnect","onopen","sendQueuedMessages","onOpen","retryCount","onclose","onClose","navigator","onLine","onerror","onError","log","onmessage","onMessage","messageQueue","size","send","OPEN","lockReconnect","onReconnect","setTimeout","close","websocket","protocol","host","concatMap","xs","res","x","apply","prototype","call","balancedMatch","balanced","str","RegExp","maybeMatch","range","start","end","pre","slice","post","reg","m","begs","beg","left","right","ai","indexOf","bi","require$$0","require$$1","braceExpansion","expandTop","escSlash","random","escOpen","escClose","escComma","escPeriod","numeric","charCodeAt","escapeBraces","unescapeBraces","parseCommaParts","parts","postParts","expand","embrace","isPadded","el","lte","y","gte","isTop","expansions","isNumericSequence","isAlphaSequence","isSequence","isOptions","N","width","incr","abs","reverse","pad","c","fromCharCode","need","z","j","expansion","minimatch_1","minimatch","Minimatch","sep","require","er","GLOBSTAR","plTypes","qmark","star","twoStarDot","twoStarNoDot","reSpecials","charSet","reduce","slashSplit","pattern","ext","defaults","def","orig","nocomment","charAt","trim","regexp","negate","comment","empty","make","debug","_made","parseNegate","globSet","braceExpand","globParts","si","negateOffset","nonegate","l","nobrace","SUBPARSE","isSub","noglobstar","re","hasMagic","nocase","escaping","patternListStack","negativeLists","stateChar","inClass","reClassStart","classStart","patternStart","dot","self","clearStateChar","len","noext","reStart","pl","reEnd","cs","substring","sp","tail","_","$1","$2","addPatternStart","nl","nlBefore","nlFirst","nlLast","nlAfter","openParensBefore","cleanAfter","dollar","newRe","globUnescape","regExp","_glob","_src","makeRe","twoStar","regExpEscape","ex","mm","f","nonull","partial","filename","file","matchBase","hit","matchOne","flipNegate","fi","pi","fl","fr","pr","swallowee","toLowerCase","emptyFileEnd","messageDispatcher","createMessageDispatcher","MessageDispatcher","getMessageDispatcher","create","brickAndMessages","massageConf","channel","handler","messages","reset","messageCallbackHandlers","subscribe","callback","req","setMessageCallbackHandlers","channels","unsubscribe","getTopicByChannel","createWebsocketService","reducer","Boolean","MESSAGE_PUSH","messagePushHandler","messageSubscribeResponseEventHandler","dispatch","handlers","listenerFactory","getMessageHandlersByTopic","finder","brickAndMessage","prev","curr","callbacks","runtimeBrick","timeoutIdList","startPoll","task","progress","success","finally","finallyCallback","interval","leadingRequestDelay","continueOnError","delegateLoadingBar","expectPollEnd","expectPollStopImmediately","currentRenderId","currentTimeoutId","poll","shouldStop","delayedPoll","delay","clearPollTimeout","timeoutId","clearTimeout","flowApiDefinitionPromiseMap","isCustomApiProvider","getArgsOfCustomApi","originalArgs","isFlowApi","apiDefinition","fetchFlowApiDefinition","apiProfile","getApiProfileFromApiDefinition","getApiArgsFromApiProfile","uri","namespace","responseWrapper","version","isFileType","fileName","getTransformedUriAndRestArgs","responseType","restArgs","transformedUri","api","contract","yaml","safeLoad","schema","JSON_SCHEMA","json","endpoint","wrapper","promise","_fetchFlowApiDefinition","namespaceName","nameWithVersion","contractData","ContractApi_searchSingleContract","contractName","bindListeners","eventsMap","eventType","listener","rememberListeners","unbindListeners","$$eventListeners","isBuiltinHandler","isUseProviderHandler","useProvider","isCustomHandler","targetRef","isExecuteCustomHandler","isSetPropsCustomHandler","builtinHistoryListenerFactory","builtinHistoryWithoutArgsListenerFactory","builtinSegueListenerFactory","builtinAliasListenerFactory","builtinIframeListenerFactory","builtinWindowListenerFactory","builtinLocationListenerFactory","builtinWebStorageListenerFactory","preventDefault","builtinConsoleListenerFactory","builtinMessageListenerFactory","builtinContextListenerFactory","builtinTplDispatchEventFactory","builtinWebSocketListenerFactory","builtinAnalyticsListenerFactory","usingProviderFactory","customListenerFactory","providerBrick","brickCallback","tpl","getParentTemplate","argsFactory","contextItem","previousValue","eventTarget","messageTopic","legacyIframeMountPoint","postMessage","iframe","firstChild","contentWindow","angular","features","runtime","micro_app_id","route_alias","findRefElement","ref","$$getElementByRef","current","parentElement","$$typeof","targets","multiple","querySelectorAll","found","useEventAsDefault","computedArgs","finallyHook","callbackFactory","specificHandler","eachHandler","err","pollableCallback","enabled","useEventDetailAsDefault","setItem","removeItem","BrickNode","$$brick","mount","tagName","customElements","node","slotId","setAttribute","events","child","childNodes","unmount","afterMount","parentTemplate","handleProxyOfCustomTemplate","checkLogin","_asyncToGenerator","http","processBootstrapResponse","bootstrapResponse","config","deepFreeze","merge","defaultConfig","userConfig","locales","localeName","removeResourceBundle","CUSTOM_API_PROVIDER","CustomApi","isSimpleRequest","simpleRequest","requestWithBody","registerCustomApi","define","createProviderClass","initAnalytics","gaMeasurementId","analyticsDebugMode","sendPageView","userId","debugMode","standaloneBootstrap","bootstrapResult","confString","BOOTSTRAP_FILE","APP_ROOT","conf","sys_settings","user_config","user_config_by_apps","feature_flags","featureFlags","loadCheckLogin","loadMicroApps","loadingBar","Router","legacyAuthGuard","layoutBootstrap","layout","supportedLayouts","currentLayout","presetBricks","pageNotFound","pageError","navbar","NO_AUTH_GUARD","AuthSdk","loggedIn","BootstrapV2Api_bootstrapV2","appFields","ignoreTemplateFields","ignoreBrickFields","$$fulfilled","$$fulfilling","doFulfilStoryboard","routes","meta","BootstrapV2Api_getAppStoryboardV2","scanRouteAliasInStoryboard","i18nNamespace","loadDepsOfStoryboard","dependsAll","dllPath","DLL_PATH","loadScriptOfDll","loadScriptOfBricksOrTemplates","filePath","templateDeps","getTemplateDepsOfStoryboard","dll","deps","getDllAndDepsOfStoryboard","asyncProcessStoryboard","ignoreBricksInUnusedCustomTemplates","prefetchDepsOfStoryboard","$$depsProcessed","prefetchScript","CORE_ROOT","registerCustomTemplatesInStoryboard","$$registerCustomTemplateProcessed","customTemplates","proxy","scanBricksInBrickConf","processors","scanProcessorsInAny","filteredBricks","getDllAndDepsByResource","firstRendered","toggleBars","visible","unsetBars","appChanged","legacy","toggleLegacyIframe","loadRelatedAppsAsync","loadUsersStarted","loadUsers","allUserMap","nickname","user_email","user_tel","user_icon","user_memo","allUserInfo","UserAdminApi_searchAllUsersInfo","user","loadMicroAppApiOrchestrationAsync","usedCustomApis","loadMicroAppApiOrchestration","getMicroAppApiOrchestrationMapAsync","allMicroAppApiOrchestrationMap","legacyCustomApis","allMicroAppApiOrchestration","$or","loadMagicBrickConfigStarted","loadMagicBrickConfig","allMagicBrickConfigMap","allMagicBrickConfig","selector","allRelatedAppsPromise","loadRelatedApps","relatedApps","ObjectMicroAppApi_getObjectMicroAppList","allRelatedApps","thisApp","microAppId","updateWorkspaceStack","workspace","appName","appLocaleName","currentUrl","previousWorkspace","getPreviousWorkspace","previousApp","currentAppId","currentStoryboard","menus","providerRepository","dlls","loadScript","EventTarget","wm","secret","listeners","currentTarget","splice","configurable","writable","info","once","handleEvent","_stopImmediatePropagationFlag","BrickEvent","PropertyDisplayType","getRuntimeMisc","isInIframe","isInIframeOfLegacyConsole","parent","getSubStoryboardByRoute","matcher","getSubRoutes","getSubRoute","route","getSubBricks","getSubBrick","slots","slotConf","isBasicProperty","propRef","refProperty","isTransformableProperty","refTransform","isMergeableProperty","mergeProperty","isRefProperty","isVariableProperty","asVariable","collectRefsInTemplate","template","refMap","collectRefsInBrickConfs","brickConfs","collectRefsInBrickConf","propertyMerge","propertyMergeAll","$$mergeBase","proxies","$$reversedRef","mergeBase","mergeType","propertyMergeAllOfArray","propertyMergeAllOfObject","baseValue","computedBaseValue","quasis","position","mergeMethod","mergeArgs","clamp","patchValue","acc","collectMergeBases","mergeBases","contextInTemplate","refToBrickConf","mergeBaseMap","expandCustomTemplate","proxyBrick","tplContext","templateProperties","templateSlots","restBrickConf","newBrickConf","proxyCopy","proxyRefs","reversedProxies","tplVariables","templateContextId","createContext","getContext","refPropertiesCopy","$$properties","reversedRef","extraOneWayRefs","extraConf","sealContext","reversedProperties","extraRef","extraProxies","reveredSlots","proxyContext","expandBrickInTemplate","brickConfInTemplate","slotsInTemplate","restBrickConfInTemplate","computedPropsFromProxy","refForProxy","bg","portal","slotName","walkUseBrickInProperties","quasisMap","refSlot","expandableSlot","refPosition","getTagNameOfCustomTemplate","getElementByRef","handleExtraOneWayRefs","extraRefElement","methods","refElement","delegatedPropSymbol","enumerable","eventRef","bubbles","stopPropagation","cancelable","composed","$$proxyEvents","proxyEvent","refEvent","methodRef","refMethod","tplName","tplConstructor","nativeProp","HTMLElement","TplElement","_dev_only_definedProperties","connectedCallback","style","display","CustomTemplateContext","uniqueId","contextMap","brickMap","propsMap","getBrick","listenOnTrackingContext","track","contextName","LocationContext","resolver","Resolver","tplContextId","nextApp","currentMatch","defineStoryboardFreeContext","contextConfs","coreContext","resolveContextConcurrently","contextConf","resolveStoryboardContext","property","setStoryboardContext","isResolve","valueConf","onChange","matchRoutes","computedPath","matchPath","exact","noAuthGuard","public","matchStoryboard","sortedStoryboards","orderBy","matched","mountRoutes","mountRoutesResult","redirect","redirectConf","unauthenticated","hybrid","defineResolves","mountProviders","providers","mountMenu","documentId","isRouteConfOfRoutes","isRouteConfOfBricks","mountBricks","analyticsData","menuConf","barsHidden","registerHandlersFromLifeCycle","lifeCycle","menuInBg","otherMenuConf","omit","injectedMenuConf","sidebarMenu","overwrite","noCurrentApp","providerConf","mountBrick","tplStack","ResolveRequestError","errorMessage","rawError","brickName","isLegacyTemplate","main","errorType","checkResolvableIf","ifConf","container","permissionsPreCheck","tplTagName","expandedBrickConf","useBrickList","setTplIdForUseBrick","slotsContent","slotItem","exports","ctxName","appendBrick","slottedMountRoutesResult","onBeforePageLoad","onPageLoad","onBeforePageLeave","onPageLeave","onAnchorLoad","onAnchorUnload","onMessageClose","beforePageLoadHandlers","pageLoadHandlers","beforePageLeaveHandlers","pageLeaveHandlers","anchorLoadHandlers","anchorUnloadHandlers","messageHandlers","messageCloseHandlers","handleBeforePageLoad","dispatchLifeCycleEvent","handlePageLoad","handleBeforePageLeave","handlePageLeave","handleAnchorLoad","anchor","handleMessage","getCurrentMatch","brickAndHandler","unmountTree","$$rootBricks","innerHTML","mountTree","rootBricks","nodes","afterMountTree","mountStaticNode","brickNode","makeProviderRefreshable","$refresh","keyOfIntervalStopped","defineProperties","$$dependents","$stopInterval","ignoreErrors","throwErrors","$$scheduled","cache","field","transformFrom","onReject","intermediateTransform","intermediateTransformFrom","intermediateTransformMapArray","actualArgs","fetchData","onRejectTransform","resetRefreshQueue","refreshQueue","active","resolves","resolveConf","definedResolves","useResolves","$$resolved","asyncProcessBrick","propsReference","actualResolveConf","providerTagName","isHandleRejectByTransform","isHandleRejectByCatch","scheduleRefreshing","isolatedCrash","captureStackTrace","shouldBeDefaultCollapsed","clientWidth","mocks","mockId","mockList","registerMock","useMocks","_match","_p3","p4","getMockId","requestUrl","getBlockMessageBeforePageLave","returnValue","block","previousMessage","locationContext","locationChangeNotify","Date","image","Image","prevLocation","listen","ignoreRendering","omittedLocationProps","locationsAreEqual","rendering","nextLocation","queuedRender","render","renderId","pageTracker","apiAnalyzer","getInstance","restoreDynamicTemplates","subStoryboard","layoutType","redirectToLogin","mapCustomApisToNameAndNamespace","scanCustomApisInStoryboard","failed","brickPageError","createPath","actualLegacy","scrollTo","requestIdleCallback","brickPageNotFound","processorFullName","processorFunc","processorName","registry","createRuntime","LegacyErrorBoundary","Component","getDerivedStateFromError","ErrorBoundary","withTranslation","warnNativeHtmlElementProperty","__deprecated_and_for_compatibility_only","decorateProperty","__unstable_doNotDecorate","kind","initializer","attribute","placement","descriptor","finisher","Class","createProperty","decorateEvent","createEventEmitter","decorateMethod","createMethod","useApplyPageTitle","useRecentApps","recentApps","setRecentApps","useCurrentApp","useLocation","setLocation","unlisten","setProxyRefForSlots","slotsToChildren","isEmpty","setProxyRef","useBrick","tplConf","getCurrentRunTimeBrick","transformOption","handleProxyOfParentTemplate","tplBrick","getFilterProxy","getFilterByRef","obj","singleRefBrickProxyMap","SingleBrickAsComponent","parentRefForUseBrickInPortal","refCallback","immediatelyRefCallback","isBrickAvailable","useMemo","catch","innerRefCallback","useCallback","transformEvents","BrickAsComponent","slot","ForwardRefSingleBrickAsComponent","forwardRef","LegacySingleBrickAsComponent","brickRef","useRef","useImperativeHandle","items_per_page","jump_to","jump_to_confirm","prev_page","next_page","prev_5","next_5","prev_3","next_3","today","now","backToToday","ok","timeSelect","dateSelect","weekSelect","month","year","previousMonth","nextMonth","monthSelect","yearSelect","decadeSelect","yearFormat","dayFormat","dateFormat","dateTimeFormat","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","placeholder","rangePlaceholder","_extends","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","typeTemplate","localeValues","Pagination","DatePicker","TimePicker","Calendar","global","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","selectAll","selectInvert","selectNone","selectionAll","sortTitle","triggerDesc","triggerAsc","cancelSort","justOkText","Popconfirm","Transfer","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Empty","description","Icon","Text","edit","copy","copied","PageHeader","back","Form","optional","defaultValidateMessages","required","whitespace","date","format","invalid","types","string","array","number","integer","email","hex","min","mismatch","preview","monthBeforeYear","emptyText","titles","EasyopsEmpty","illustration","getIllustration","_emptyImage","useBigEmptyImage","bigEmptyImage","emptyImage","getImageUrl","imageStyle","height","renderEasyopsEmpty","FeatureFlagsContext","FeatureFlagsProvider","Provider","useFeatureFlags","useContext","flagNames","flag","DisplayByFeatureFlags","every","fallback","BrickWrapper","enUS","zhCN","ConfigProvider","wrapperConfig","developHelper","getBrickPackages","getTemplatePackages","getStoryboards","getFakeKernel","checkoutTplContext","defaultConverter","toAttribute","fromAttribute","Number","notEqual","old","defaultPropertyDeclaration","converter","reflect","hasChanged","attributeNameForProperty","char","UpdatingElement","observedAttributes","_ensureObservedAttributes","_observedAttributes","_ensureDefinedProperties","__dev_only_definedProperties","_dev_only_definedMethods","_ensureDefinedMethods","__dev_only_definedMethods","_dev_only_definedEvents","_ensureDefinedEvents","__dev_only_definedEvents","attributeChangedCallback","_enqueueRender","isConnected","_hasRequestedRender","_render","superClass","noAccessor","oldValue","attrValue","removeAttribute","eventInit","ModalElement","isVisible"],"mappings":"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"}
1
+ {"version":3,"file":"index.bundle.js","sources":["../src/core/Bars/BaseBar.ts","../src/core/Bars/AppBar.ts","../src/core/Bars/MenuBar.ts","../src/i18n/constants.ts","../src/internal/getBasePath.ts","../../../node_modules/compare-versions/index.mjs","../src/core/TemplateRegistries.ts","../src/themeAndMode.ts","../../supply/dist/esm/index.js","../src/internal/alias.ts","../src/internal/segue.ts","../src/internal/images.ts","../src/core/CustomTemplates/constants.ts","../src/internal/injected.ts","../src/internal/getNextStateOfUseBrick.ts","../src/transformProperties.ts","../src/internal/devtools.ts","../src/internal/Storage.ts","../src/i18n/locales/en.ts","../src/i18n/locales/zh.ts","../src/i18n/index.ts","../src/core/WidgetI18n.ts","../src/i18nText.ts","../src/auth.ts","../src/internal/checkPermissions.ts","../src/internal/getGeneralGlobals.ts","../src/core/StoryboardFunctionRegistryFactory.ts","../src/core/StoryboardFunctions.ts","../src/core/WidgetFunctions.ts","../src/internal/proxyFactories.ts","../src/internal/evaluate.ts","../src/internal/setProperties.ts","../src/checkIf.ts","../src/internal/menu.ts","../src/core/LazyBrickRegistry.ts","../src/core/Runtime.ts","../src/internal/historyExtended.ts","../src/history.ts","../src/internal/isUnauthenticatedError.ts","../src/handleHttpError.tsx","../src/websocket/WebsocketMessageRequest.ts","../src/websocket/interfaces/index.ts","../src/websocket/WebsocketMessageResponse.ts","../src/websocket/WebSocketService.ts","../src/websocket/WebSocket.ts","../../../node_modules/concat-map/index.js","../../../node_modules/balanced-match/index.js","../../../node_modules/brace-expansion/index.js","../../../node_modules/minimatch/minimatch.js","../src/core/MessageDispatcher.ts","../src/internal/poll.ts","../src/core/FlowApi.ts","../src/internal/bindListeners.ts","../src/core/BrickNode.ts","../../../node_modules/@next-sdk/auth-sdk/dist/index.esm.js","../src/core/processors.ts","../src/providers/CustomApi.ts","../src/core/initAnalytics.ts","../src/core/standaloneBootstrap.ts","../src/core/Kernel.ts","../../../node_modules/@ungap/event-target/esm/index.js","../../brick-types/dist/index.esm.js","../src/internal/misc.ts","../src/internal/getSubStoryboardByRoute.ts","../src/core/CustomTemplates/assertions.ts","../src/core/CustomTemplates/collectRefsInTemplate.ts","../src/core/CustomTemplates/propertyMerge.ts","../src/core/CustomTemplates/collectMergeBases.ts","../src/core/CustomTemplates/expandCustomTemplate.ts","../src/core/CustomTemplates/getTagNameOfCustomTemplate.ts","../src/core/CustomTemplates/handleProxyOfCustomTemplate.ts","../src/core/CustomTemplates/registerCustomTemplate.ts","../src/core/CustomTemplates/CustomTemplateContext.ts","../src/internal/listenOnTrackingContext.ts","../src/core/LocationContext.ts","../src/core/reconciler.ts","../src/internal/makeProviderRefreshable.ts","../src/core/Resolver.ts","../src/internal/shouldBeDefaultCollapsed.ts","../src/core/MockRegistry.ts","../src/core/Router.ts","../src/core/CustomProcessors.ts","../src/runtime.ts","../src/ErrorBoundary.tsx","../src/decorators/utils.ts","../src/decorators/property.ts","../src/decorators/event.ts","../src/decorators/method.ts","../src/useApplyPageTitle.ts","../src/useRecentApps.ts","../src/useCurrentApp.ts","../src/useLocation.ts","../src/BrickAsComponent.tsx","../../../node_modules/rc-pagination/es/locale/zh_CN.js","../../../node_modules/rc-picker/es/locale/zh_CN.js","../../../node_modules/antd/es/time-picker/locale/zh_CN.js","../../../node_modules/antd/es/date-picker/locale/zh_CN.js","../../../node_modules/antd/es/locale/zh_CN.js","../../../node_modules/rc-pagination/es/locale/en_US.js","../../../node_modules/rc-picker/es/locale/en_US.js","../../../node_modules/antd/es/time-picker/locale/en_US.js","../../../node_modules/antd/es/date-picker/locale/en_US.js","../../../node_modules/antd/es/locale/default.js","../src/EasyopsEmpty/EasyopsEmpty.tsx","../src/featureFlags.tsx","../src/BrickWrapper.tsx","../src/developHelper.ts","../src/UpdatingElement.ts","../src/elements/ModalElement.ts"],"sourcesContent":["import { MountPoints } from \"@next-core/brick-types\";\nimport { Kernel } from \"../Kernel\";\n\nexport class BaseBar {\n public element: HTMLElement;\n private brick: string;\n\n constructor(private kernel: Kernel, private mountPoint: string) {}\n\n /**\n * Bars will be bootstrapped every time the layout changes.\n *\n * @param brick - The brick name.\n */\n async bootstrap(brick?: string, options?: { testid: string }): Promise<void> {\n // Ignore if the brick is not changed.\n if (this.brick === brick) {\n return;\n }\n this.brick = brick;\n\n // Remove the previous bar element.\n if (this.element) {\n this.element.remove();\n this.element = null;\n }\n // The new brick may be undefined, which indicates no bar element in current layout.\n if (brick) {\n await this.kernel.loadDynamicBricks([brick]);\n this.element = document.createElement(brick);\n if (options?.testid) {\n this.element.dataset.testid = options.testid;\n }\n this.kernel.mountPoints[this.mountPoint as keyof MountPoints].appendChild(\n this.element\n );\n }\n }\n}\n","import { AppBarBrick, BreadcrumbItemConf } from \"@next-core/brick-types\";\nimport { BaseBar } from \"./BaseBar\";\n\nexport class AppBar extends BaseBar {\n // `element` is not available in business layout.\n public declare element: AppBarBrick;\n\n /**\n * 设置页面标题(顶部)\n * @param pageTitle - 标题\n * @deprecated Use `getRuntime().applyPageTitle(...)` or `useApplyPageTitle(...)` instead.\n */\n setPageTitle(pageTitle: string): void {\n if (!this.element) {\n return;\n }\n this.element.pageTitle = pageTitle;\n }\n\n /**\n * 追加面包屑\n * @param breadcrumb - 面包屑配置\n */\n appendBreadcrumb(breadcrumb: BreadcrumbItemConf[]): void {\n if (!this.element) {\n return;\n }\n this.element.breadcrumb = [...this.element.breadcrumb, ...breadcrumb];\n }\n\n /**\n * 设置面包屑\n * @param breadcrumb - 面包屑配置\n */\n setBreadcrumb(breadcrumb: BreadcrumbItemConf[]): void {\n if (!this.element) {\n return;\n }\n this.element.breadcrumb = breadcrumb;\n }\n}\n","import { MenuBarBrick, SidebarMenu } from \"@next-core/brick-types\";\nimport { BaseBar } from \"./BaseBar\";\n\nexport class MenuBar extends BaseBar {\n // `element` is not available in business layout.\n public declare element: MenuBarBrick;\n\n /**\n * 设置应用菜单(左侧菜单)\n * @param menu - 菜单\n */\n setAppMenu(menu: SidebarMenu): void {\n if (!this.element) {\n return;\n }\n this.element.menu = menu;\n }\n\n /**\n * 重置应用菜单(左侧菜单)\n */\n resetAppMenu(): void {\n if (!this.element) {\n return;\n }\n this.element.menu = null;\n this.element.subMenu = null;\n }\n\n /**\n * 折叠/展开应用菜单\n * @param collapsed\n */\n collapse(collapsed: boolean): void {\n if (!this.element) {\n return;\n }\n this.element.collapsed = collapsed;\n }\n\n /**\n * 检查应用菜单是否处于折叠状态\n */\n isCollapsed(): boolean {\n return this.element?.collapsed;\n }\n\n /**\n * 应用菜单已折叠时*软展开/收回*\n * @param collapsed\n */\n softExpand(expanded: boolean): void {\n if (!this.element) {\n return;\n }\n this.element.softExpanded = expanded;\n }\n\n /**\n * 应用菜单是否处于*软展开*状态\n * @param collapsed\n */\n isSoftExpanded(): boolean {\n return this.element?.softExpanded;\n }\n}\n","export const NS_BRICK_KIT = \"brick-kit\";\n\nexport enum K {\n REQUEST_FAILED = \"REQUEST_FAILED\",\n MODAL_OK = \"MODAL_OK\",\n MODAL_CANCEL = \"MODAL_CANCEL\",\n SOMETHING_WENT_WRONG = \"SOMETHING_WENT_WRONG\",\n LOGIN_TIMEOUT_MESSAGE = \"LOGIN_TIMEOUT_MESSAGE\",\n NETWORK_ERROR = \"NETWORK_ERROR\",\n}\n\nexport type Locale = { [key in K]: string };\n","/**\n * Get site's base path, generally will be `/next/` or `/`.\n */\nexport function getBasePath(): string {\n const base = document.querySelector(\"base\");\n const basePath = base ? base.getAttribute(\"href\") : \"/\";\n return basePath;\n}\n","export default function compareVersions(v1, v2) {\n // validate input and split into segments\n const n1 = validateAndParse(v1);\n const n2 = validateAndParse(v2);\n\n // pop off the patch\n const p1 = n1.pop();\n const p2 = n2.pop();\n\n // validate numbers\n const r = compareSegments(n1, n2);\n if (r !== 0) return r;\n\n // validate pre-release\n if (p1 && p2) {\n return compareSegments(p1.split('.'), p2.split('.'));\n } else if (p1 || p2) {\n return p1 ? -1 : 1;\n }\n\n return 0;\n}\n\nexport const validate = (v) =>\n typeof v === 'string' && /^[v\\d]/.test(v) && semver.test(v);\n\nexport const compare = (v1, v2, operator) => {\n // validate input operator\n assertValidOperator(operator);\n\n // since result of compareVersions can only be -1 or 0 or 1\n // a simple map can be used to replace switch\n const res = compareVersions(v1, v2);\n\n return operatorResMap[operator].includes(res);\n};\n\nexport const satisfies = (v, r) => {\n // if no range operator then \"=\"\n const m = r.match(/^([<>=~^]+)/);\n const op = m ? m[1] : '=';\n\n // if gt/lt/eq then operator compare\n if (op !== '^' && op !== '~') return compare(v, r, op);\n\n // else range of either \"~\" or \"^\" is assumed\n const [v1, v2, v3] = validateAndParse(v);\n const [r1, r2, r3] = validateAndParse(r);\n if (compareStrings(v1, r1) !== 0) return false;\n if (op === '^') {\n return compareSegments([v2, v3], [r2, r3]) >= 0;\n }\n if (compareStrings(v2, r2) !== 0) return false;\n return compareStrings(v3, r3) >= 0;\n};\n\nconst semver =\n /^[v^~<>=]*?(\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+)(?:\\.([x*]|\\d+))?(?:-([\\da-z\\-]+(?:\\.[\\da-z\\-]+)*))?(?:\\+[\\da-z\\-]+(?:\\.[\\da-z\\-]+)*)?)?)?$/i;\n\nconst validateAndParse = (v) => {\n if (typeof v !== 'string') {\n throw new TypeError('Invalid argument expected string');\n }\n const match = v.match(semver);\n if (!match) {\n throw new Error(`Invalid argument not valid semver ('${v}' received)`);\n }\n match.shift();\n return match;\n};\n\nconst isWildcard = (s) => s === '*' || s === 'x' || s === 'X';\n\nconst tryParse = (v) => {\n const n = parseInt(v, 10);\n return isNaN(n) ? v : n;\n};\n\nconst forceType = (a, b) =>\n typeof a !== typeof b ? [String(a), String(b)] : [a, b];\n\nconst compareStrings = (a, b) => {\n if (isWildcard(a) || isWildcard(b)) return 0;\n const [ap, bp] = forceType(tryParse(a), tryParse(b));\n if (ap > bp) return 1;\n if (ap < bp) return -1;\n return 0;\n};\n\nconst compareSegments = (a, b) => {\n for (let i = 0; i < Math.max(a.length, b.length); i++) {\n const r = compareStrings(a[i] || 0, b[i] || 0);\n if (r !== 0) return r;\n }\n return 0;\n};\n\nconst operatorResMap = {\n '>': [1],\n '>=': [0, 1],\n '=': [0],\n '<=': [-1, 0],\n '<': [-1],\n};\n\nconst allowedOperators = Object.keys(operatorResMap);\n\nconst assertValidOperator = (op) => {\n if (typeof op !== 'string') {\n throw new TypeError(\n `Invalid operator type, expected string but got ${typeof op}`\n );\n }\n if (allowedOperators.indexOf(op) === -1) {\n throw new Error(\n `Invalid operator, expected one of ${allowedOperators.join('|')}`\n );\n }\n};\n","import { BrickTemplateFactory, TemplateRegistry } from \"@next-core/brick-types\";\n\nexport const brickTemplateRegistry: TemplateRegistry<BrickTemplateFactory> = new Map();\n\nexport function registerBrickTemplate(\n name: string,\n factory: BrickTemplateFactory\n): void {\n if (brickTemplateRegistry.has(name)) {\n // eslint-disable-next-line no-console\n console.error(`Brick template of \"${name}\" already registered.`);\n return;\n }\n brickTemplateRegistry.set(name, factory);\n}\n","import { useEffect, useState } from \"react\";\nimport { SiteMode, SiteTheme } from \"@next-core/brick-types\";\n\n// Themes.\nconst DEFAULT_THEME = \"light\";\nexport const DARK_THEME = \"dark-v2\" as SiteTheme;\nlet theme: SiteTheme = DEFAULT_THEME;\n\nexport function setTheme(value: SiteTheme): void {\n if (value !== \"dark\" && value !== \"light\" && value !== \"dark-v2\") {\n throw new Error(`Unsupported theme: ${value}`);\n }\n theme = value;\n}\n\nexport function getTheme(): SiteTheme {\n return theme;\n}\n\nexport function getCurrentTheme(): SiteTheme {\n return document.documentElement.dataset.theme as SiteTheme;\n}\n\nexport function applyTheme(value?: SiteTheme): void {\n if (value) {\n setTheme(value);\n } else {\n value = getTheme();\n }\n if (value !== getCurrentTheme()) {\n document.documentElement.dataset.theme = value;\n window.dispatchEvent(\n new CustomEvent<SiteTheme>(\"theme.change\", {\n detail: value,\n })\n );\n }\n}\n\nexport function useCurrentTheme(): SiteTheme {\n const [currentTheme, setCurrentTheme] = useState(getCurrentTheme());\n\n useEffect(() => {\n const listenToThemeChange = (event: Event): void => {\n setCurrentTheme((event as CustomEvent<SiteTheme>).detail);\n };\n window.addEventListener(\"theme.change\", listenToThemeChange);\n return () => {\n window.removeEventListener(\"theme.change\", listenToThemeChange);\n };\n }, []);\n\n return currentTheme;\n}\n\n// Modes.\nconst DEFAULT_MODE = \"default\";\nlet mode: SiteMode = DEFAULT_MODE;\n\nexport function setMode(value: SiteMode): void {\n if (value !== \"dashboard\" && value !== \"default\") {\n throw new Error(`Unsupported mode: ${value}`);\n }\n mode = value;\n}\n\nexport function getMode(): SiteMode {\n return mode;\n}\n\nexport function getCurrentMode(): SiteMode {\n return document.documentElement.dataset.mode as SiteMode;\n}\n\nexport function applyMode(value?: SiteMode): void {\n if (value) {\n setMode(value);\n } else {\n value = getMode();\n }\n if (value !== getCurrentMode()) {\n document.documentElement.dataset.mode = value;\n window.dispatchEvent(\n new CustomEvent<SiteMode>(\"mode.change\", {\n detail: value,\n })\n );\n }\n}\n\nexport function useCurrentMode(): SiteMode {\n const [currentMode, setCurrentMode] = useState(getCurrentMode());\n\n useEffect(() => {\n const listenToModeChange = (event: Event): void => {\n setCurrentMode((event as CustomEvent<SiteMode>).detail);\n };\n window.addEventListener(\"mode.change\", listenToModeChange);\n return () => {\n window.removeEventListener(\"mode.change\", listenToModeChange);\n };\n }, []);\n\n return currentMode;\n}\n","import _objectSpread from \"@babel/runtime/helpers/objectSpread2\";\nimport lodash from \"lodash\";\nimport moment from \"moment\";\nimport { pipes } from \"@next-core/pipes\";\nexport function supply(attemptToVisitGlobals, providedGlobalVariables) {\n var globalVariables = _objectSpread({}, providedGlobalVariables); // Allow limited browser builtin values.\n\n\n globalVariables[\"undefined\"] = undefined;\n\n for (var variableName of attemptToVisitGlobals) {\n if (!Object.prototype.hasOwnProperty.call(globalVariables, variableName)) {\n var variable = supplyIndividual(variableName);\n\n if (variable !== undefined) {\n globalVariables[variableName] = variable;\n }\n }\n }\n\n return globalVariables;\n}\nvar shouldOmitInLodash = new Set([// Omit all mutable methods from lodash.\n// But allow sequence methods like `_.chain`.\n\"fill\", \"pull\", \"pullAll\", \"pullAllBy\", \"pullAllWith\", \"pullAt\", \"remove\", \"reverse\", \"assign\", \"assignIn\", \"assignInWith\", \"assignWith\", \"defaults\", \"defaultsDeep\", \"merge\", \"mergeWith\", \"set\", \"setWith\", \"unset\", \"update\", \"updateWith\",\n/**\n * Ignore `Function` methods from lodash, too.\n * There are chances to invoke `Object.assign`, etc.\n *\n * E.g.:\n *\n * ```\n * _.wrap(_.method('constructor.assign',{b:2},{b:3}),(func,...a) => func(...a))({})\n * ```\n */\n\"after\", \"ary\", \"before\", \"bind\", \"bindKey\", \"curry\", \"curryRight\", \"debounce\", \"defer\", \"delay\", \"flip\", \"memoize\", \"negate\", \"once\", \"overArgs\", \"partial\", \"partialRight\", \"rearg\", \"rest\", \"spread\", \"throttle\", \"unary\", \"wrap\"]); // Omit all mutable methods from moment.\n\nvar shouldOmitInMoment = new Set([\"lang\", \"langData\", \"locale\", \"localeData\", \"defineLocale\", \"updateLocale\", \"updateOffset\"]);\nvar allowedGlobalObjects = new Set([\"Array\", \"Boolean\", \"Date\", \"Infinity\", \"JSON\", \"Math\", \"NaN\", \"Number\", \"String\", \"decodeURI\", \"decodeURIComponent\", \"encodeURI\", \"encodeURIComponent\", \"isFinite\", \"isNaN\", \"parseFloat\", \"parseInt\", \"Map\", \"Set\", \"URLSearchParams\", \"WeakMap\", \"WeakSet\", \"atob\", \"btoa\"]);\n\nfunction supplyIndividual(variableName) {\n switch (variableName) {\n case \"Object\":\n // Do not allow mutable methods like `Object.assign`.\n return delegateMethods(Object, [\"entries\", \"fromEntries\", \"keys\", \"values\"]);\n\n case \"_\":\n return Object.fromEntries(Object.entries(lodash).filter(entry => !shouldOmitInLodash.has(entry[0])));\n\n case \"moment\":\n return Object.assign(function () {\n return moment(...arguments);\n }, Object.fromEntries(Object.entries(moment).filter(entry => !shouldOmitInMoment.has(entry[0]))));\n\n case \"PIPES\":\n return pipes;\n\n case \"location\":\n return {\n href: location.href,\n origin: location.origin\n };\n\n case \"TAG_URL\":\n return tagUrlFactory(true);\n\n case \"SAFE_TAG_URL\":\n return tagUrlFactory();\n\n default:\n if (allowedGlobalObjects.has(variableName)) {\n return window[variableName];\n }\n\n }\n}\n\nfunction delegateMethods(target, methods) {\n return Object.fromEntries(methods.map(method => [method, function () {\n for (var _len = arguments.length, args = new Array(_len), _key = 0; _key < _len; _key++) {\n args[_key] = arguments[_key];\n }\n\n return target[method].apply(target, args);\n }]));\n}\n\n/**\n * Pass `ignoreSlashes` as `true` to encode all tagged expressions\n * as URL components, except for `/` which maybe used in `APP.homepage`.\n *\n * Otherwise encode all tagged expressions as URL components.\n * This will encode `/` as `%2F`. So do not use it directly\n * with `APP.homepage` as in template expressions.\n *\n * @example\n *\n * ```js\n * TAG_URL`${APP.homepage}/list?q=${q}&redirect=${redirect}`\n * ```\n *\n * ```js\n * SAFE_TAG_URL`file/${path}?q=${q}`\n * // `path` will be fully transformed by `encodeURIComponent`.\n * ```\n *\n * ```js\n * // Wrap `APP.homepage` outside of `SAFE_TAG_URL`.\n * `${APP.homepage}/${SAFE_TAG_URL`file/${path}?q=${q}`}`\n * ```\n */\nfunction tagUrlFactory(ignoreSlashes) {\n return function (strings) {\n for (var _len2 = arguments.length, partials = new Array(_len2 > 1 ? _len2 - 1 : 0), _key2 = 1; _key2 < _len2; _key2++) {\n partials[_key2 - 1] = arguments[_key2];\n }\n\n var result = [];\n strings.forEach((str, index) => {\n result.push(str);\n\n if (index < partials.length) {\n result.push(ignoreSlashes ? String(partials[index]).replace(/[^/]+/g, p => encodeURIComponent(p)) : encodeURIComponent(String(partials[index])));\n }\n });\n return result.join(\"\");\n };\n}\n//# sourceMappingURL=index.js.map","import { MicroApp } from \"@next-core/brick-types\";\nimport { toPath, computeRealRoutePath } from \"@next-core/brick-utils\";\n\nexport function getUrlByAliasFactory(app: MicroApp) {\n return function getUrlByAlias(\n alias: string,\n pathParams?: Record<string, any>,\n query?: Record<string, any>\n ): string {\n if (!app?.$$routeAliasMap.has(alias)) {\n // eslint-disable-next-line no-console\n throw new Error(`Route alias not found: ${alias}`);\n }\n const routeConf = app.$$routeAliasMap.get(alias);\n let url = toPath(\n computeRealRoutePath(routeConf.path, app) as string,\n pathParams\n );\n if (query) {\n const urlSearchParams = new URLSearchParams();\n for (const [key, value] of Object.entries(query as Record<string, any>)) {\n if (Array.isArray(value)) {\n for (const item of value) {\n urlSearchParams.append(key, item);\n }\n } else if (value !== undefined && value !== null && value !== \"\") {\n urlSearchParams.set(key, value);\n }\n }\n const queryString = urlSearchParams.toString();\n if (queryString.length > 0) {\n url += `?${queryString}`;\n }\n }\n return url;\n };\n}\n","import { MicroApp, SeguesConf } from \"@next-core/brick-types\";\nimport { hasOwnProperty } from \"@next-core/brick-utils\";\nimport { getUrlByAliasFactory } from \"./alias\";\n\nexport function getUrlBySegueFactory(app: MicroApp, segues: SeguesConf) {\n return function getUrlBySegue(\n segueId: string,\n pathParams?: Record<string, any>,\n query?: Record<string, any>\n ): string {\n if (!hasOwnProperty(segues, segueId)) {\n // eslint-disable-next-line no-console\n throw new Error(`Segue not found: ${segueId}`);\n }\n const segue = segues[segueId];\n return getUrlByAliasFactory(app)(segue.target, pathParams, query);\n };\n}\n","export interface ImagesFactory {\n get(name: string): string;\n}\n\nexport function imagesFactory(\n appId: string,\n isBuildPush?: boolean\n): ImagesFactory {\n return {\n get(name) {\n return isBuildPush\n ? `api/gateway/object_store.object_store.GetObject/api/v1/objectStore/bucket/next-builder/object/${name}`\n : `${window.PUBLIC_ROOT ?? \"\"}micro-apps/${appId}/images/${name}`;\n },\n };\n}\n\nexport function widgetImagesFactory(widgetId: string): ImagesFactory {\n return {\n get(name) {\n return `${\n window.PUBLIC_ROOT ?? \"\"\n }bricks/${widgetId}/dist/assets/${name}`;\n },\n };\n}\n","import {\n CustomTemplate,\n ProbablyRuntimeBrick,\n RefForProxy,\n RuntimeBrickConf,\n RuntimeBrickElement,\n TemplateRegistry,\n} from \"@next-core/brick-types\";\nimport { RefObject } from \"react\";\n\nexport const customTemplateRegistry: TemplateRegistry<CustomTemplate> =\n new Map();\nexport const appRegistered = new Set<string>();\n\nexport const symbolForComputedPropsFromProxy = Symbol.for(\n \"tpl.computedPropsFromProxy\"\n);\nexport const symbolForRefForProxy = Symbol.for(\"tpl.refForProxy\");\nexport const symbolForParentTemplate = Symbol.for(\"tpl.parentTemplate\");\nexport const symbolForTplContextId = Symbol.for(\"tpl.contextId\");\nexport const symbolForParentRefForUseBrickInPortal = Symbol.for(\n \"parentRefForUseBrickInPortal\"\n);\n\nexport interface RuntimeBrickConfWithTplSymbols extends RuntimeBrickConf {\n [symbolForComputedPropsFromProxy]?: Record<string, any>;\n [symbolForRefForProxy]?: RefForProxy;\n [symbolForParentTemplate]?: ProbablyRuntimeBrick;\n [symbolForTplContextId]?: string;\n}\n\nexport interface RuntimeBrickElementWithTplSymbols extends RuntimeBrickElement {\n [symbolForParentTemplate]?: RuntimeBrickElementWithTplSymbols;\n [symbolForParentRefForUseBrickInPortal]?: RefObject<HTMLElement>;\n}\n","import { isObject } from \"@next-core/brick-utils\";\nimport { isPreEvaluated } from \"./evaluate\";\nimport { symbolForTplContextId } from \"../core/CustomTemplates/constants\";\n\nlet injected = new WeakSet();\n\n// The injected (or transformed) result should never be *injected* again.\n// So does the fetched data from a remote api.\nexport function recursiveMarkAsInjected(value: any): void {\n if (isObject(value)) {\n if (!haveBeenInjected(value)) {\n injected.add(value);\n if (Array.isArray(value)) {\n value.forEach(recursiveMarkAsInjected);\n } else {\n // Only mark pure objects.\n const proto = Object.getPrototypeOf(value);\n if (!proto || proto.constructor === Object) {\n Object.values(value).forEach(recursiveMarkAsInjected);\n }\n }\n }\n }\n}\n\nexport function haveBeenInjected(object: any): boolean {\n return injected.has(object);\n}\n\nexport function resetAllInjected(): void {\n injected = new WeakSet();\n}\n\nexport function cloneDeepWithInjectedMark<T>(value: T): T {\n if (isObject(value) && !isPreEvaluated(value)) {\n const clone = Array.isArray(value)\n ? (value as unknown[]).map((item) => cloneDeepWithInjectedMark(item))\n : Object.fromEntries(\n Object.entries(value).map(([k, v]) => {\n /**\n * object.entries会丢失symbol属性\n * 对useBrick做特殊处理\n */\n if (k === \"useBrick\") {\n const result: any = cloneDeepWithInjectedMark(v);\n if (Array.isArray(v)) {\n for (let i = 0; i < v.length; i++) {\n if (v[i][symbolForTplContextId])\n result[i][symbolForTplContextId] =\n v[i][symbolForTplContextId];\n }\n } else {\n if (v[symbolForTplContextId])\n result[symbolForTplContextId] = v[symbolForTplContextId];\n }\n return [k, v];\n } else {\n return [k, cloneDeepWithInjectedMark(v)];\n }\n })\n );\n if (haveBeenInjected(value)) {\n injected.add(clone);\n }\n return clone as typeof value;\n }\n return value;\n}\n","export enum StateOfUseBrick {\n INITIAL,\n USE_BRICK,\n USE_BRICK_ITEM,\n USE_BRICK_PROPERTIES,\n USE_BRICK_TRANSFORM,\n USE_BRICK_EVENTS,\n USE_BRICK_IF,\n USE_BRICK_SLOTS,\n USE_BRICK_SLOTS_ITEM,\n USE_BRICK_SLOTS_ITEM_BRICKS,\n USE_BRICK_SLOTS_ITEM_BRICKS_ITEM,\n USE_BRICK_LIFECYCLE,\n USE_BRICK_LIFECYCLE_USERESOLVES,\n USE_BRICK_LIFECYCLE_USERESOLVES_ITEM,\n USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_TRANSFORM,\n USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT,\n USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT_TRANSFORM,\n}\n\nexport function isLazyContentInUseBrick(state: StateOfUseBrick): boolean {\n switch (state) {\n case StateOfUseBrick.USE_BRICK_PROPERTIES:\n case StateOfUseBrick.USE_BRICK_TRANSFORM:\n case StateOfUseBrick.USE_BRICK_EVENTS:\n case StateOfUseBrick.USE_BRICK_IF:\n case StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_TRANSFORM:\n case StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT_TRANSFORM:\n return true;\n }\n return false;\n}\n\nexport function getNextStateOfUseBrick(\n state: StateOfUseBrick,\n isArray?: boolean,\n key?: string\n): StateOfUseBrick {\n if (isLazyContentInUseBrick(state)) {\n return state;\n }\n if (isArray) {\n switch (state) {\n case StateOfUseBrick.USE_BRICK:\n return StateOfUseBrick.USE_BRICK_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM;\n case StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES:\n return StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM;\n }\n } else {\n switch (state) {\n case StateOfUseBrick.INITIAL:\n if (key === \"useBrick\") {\n return StateOfUseBrick.USE_BRICK;\n }\n break;\n case StateOfUseBrick.USE_BRICK:\n case StateOfUseBrick.USE_BRICK_ITEM:\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS_ITEM: {\n switch (key) {\n case \"properties\":\n return StateOfUseBrick.USE_BRICK_PROPERTIES;\n case \"transform\":\n return StateOfUseBrick.USE_BRICK_TRANSFORM;\n case \"events\":\n return StateOfUseBrick.USE_BRICK_EVENTS;\n case \"slots\":\n return StateOfUseBrick.USE_BRICK_SLOTS;\n case \"if\":\n return StateOfUseBrick.USE_BRICK_IF;\n case \"lifeCycle\":\n return StateOfUseBrick.USE_BRICK_LIFECYCLE;\n }\n break;\n }\n case StateOfUseBrick.USE_BRICK_SLOTS:\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM;\n case StateOfUseBrick.USE_BRICK_SLOTS_ITEM:\n if (key === \"bricks\") {\n return StateOfUseBrick.USE_BRICK_SLOTS_ITEM_BRICKS;\n }\n break;\n case StateOfUseBrick.USE_BRICK_LIFECYCLE:\n if (key === \"useResolves\") {\n return StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES;\n }\n break;\n case StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM: {\n switch (key) {\n case \"transform\":\n return StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_TRANSFORM;\n case \"onReject\":\n return StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT;\n }\n break;\n }\n case StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT:\n if (key === \"transform\") {\n return StateOfUseBrick.USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT_TRANSFORM;\n }\n break;\n }\n }\n return StateOfUseBrick.INITIAL;\n}\n","import { get, set } from \"lodash\";\nimport { GeneralTransform, TransformMap } from \"@next-core/brick-types\";\nimport {\n isObject,\n transform,\n isEvaluable,\n trackContext,\n transformAndInject,\n} from \"@next-core/brick-utils\";\nimport {\n evaluate,\n EvaluateOptions,\n isPreEvaluated,\n shouldDismissRecursiveMarkingInjected,\n EvaluateRuntimeContext,\n} from \"./internal/evaluate\";\nimport { haveBeenInjected, recursiveMarkAsInjected } from \"./internal/injected\";\nimport { devtoolsHookEmit } from \"./internal/devtools\";\nimport { setRealProperties } from \"./internal/setProperties\";\nimport {\n getNextStateOfUseBrick,\n isLazyContentInUseBrick,\n StateOfUseBrick,\n} from \"./internal/getNextStateOfUseBrick\";\nimport { TrackingContextItem } from \"./internal/listenOnTrackingContext\";\nimport { _internalApiGetCurrentContext } from \"./core/Runtime\";\nimport { symbolForTplContextId } from \"./core/CustomTemplates/constants\";\n\ninterface TransformOptions {\n isReTransformation?: boolean;\n transformationId?: number;\n allowInject?: boolean;\n}\n\ninterface DoTransformOptions {\n evaluateOptions?: EvaluateOptions;\n trackingContextList?: TrackingContextItem[];\n allowInject?: boolean;\n getTplVariables?: () => Record<string, unknown>;\n $$lazyForUseBrick?: boolean;\n $$stateOfUseBrick?: StateOfUseBrick;\n}\n\n/** @internal */\nexport function transformElementProperties(\n element: HTMLElement,\n data: unknown,\n to: GeneralTransform,\n from?: string | string[],\n mapArray?: boolean | \"auto\"\n): void {\n const result = preprocessTransformProperties(data, to, from, mapArray);\n setRealProperties(element, result, true);\n}\n\n/** @internal */\nexport function transformProperties(\n props: Record<string, unknown>,\n data: unknown,\n to: GeneralTransform,\n from?: string | string[],\n mapArray?: boolean | \"auto\",\n options?: {\n allowInject?: boolean;\n }\n): Record<string, unknown> {\n const result = preprocessTransformProperties(\n data,\n to,\n from,\n mapArray,\n options\n );\n for (const [propName, propValue] of Object.entries(result)) {\n set(props, propName, propValue);\n }\n return props;\n}\n\n/** @internal */\nexport function doTransform(\n data: unknown,\n to: unknown,\n options?: DoTransformOptions\n): unknown {\n const preEvaluated = isPreEvaluated(to);\n if (preEvaluated || typeof to === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`,\n // are kept and to be transformed later.\n const lazy =\n options?.$$lazyForUseBrick &&\n isLazyContentInUseBrick(options.$$stateOfUseBrick);\n if (lazy) {\n // The current data context is not memoized, since a new data context\n // should always be provided before later transformations.\n return to;\n }\n\n let result: unknown;\n let dismissRecursiveMarkingInjected = false;\n if (preEvaluated || isEvaluable(to as string)) {\n const runtimeContext: EvaluateRuntimeContext = {\n data,\n };\n if (options?.getTplVariables)\n runtimeContext.getTplVariables = options.getTplVariables;\n result = evaluate(to as string, runtimeContext, options?.evaluateOptions);\n dismissRecursiveMarkingInjected = shouldDismissRecursiveMarkingInjected(\n to as string\n );\n } else {\n result = options?.allowInject\n ? transformAndInject(\n to as string,\n data,\n _internalApiGetCurrentContext()\n )\n : transform(to as string, data);\n }\n if (!dismissRecursiveMarkingInjected) {\n recursiveMarkAsInjected(result);\n }\n return result;\n }\n\n if (!isObject(to) || haveBeenInjected(to)) {\n return to;\n }\n\n if (Array.isArray(to)) {\n const nextOptions = getNextDoTransformOptions(options, true);\n return to.map((item) => doTransform(data, item, nextOptions));\n }\n\n return Object.fromEntries(\n Object.entries(to).map(([k, v]) => {\n if (Array.isArray(options?.trackingContextList) && isEvaluable(v)) {\n const contextNames = trackContext(v);\n if (contextNames) {\n options.trackingContextList.push({\n contextNames,\n propName: k,\n propValue: v,\n });\n }\n }\n if (k === \"useBrick\") {\n /**\n * 在locationContext中已经为useBrick添加 SymbolTplContextId\n * 在此如果通过Object.enteries遍历useBrick会出现 id丢失对情况,\n * 故需要对 SymbolTplContextId 特殊处理\n */\n const result: any = doTransform(\n data,\n v,\n getNextDoTransformOptions(options, false, k)\n );\n if (Array.isArray(v)) {\n for (let i = 0; i < v.length; i++) {\n if (v[i][symbolForTplContextId])\n result[i][symbolForTplContextId] = v[i][symbolForTplContextId];\n }\n } else {\n if (v[symbolForTplContextId])\n result[symbolForTplContextId] = v[symbolForTplContextId];\n }\n return [k, result];\n } else {\n return [\n k,\n doTransform(data, v, getNextDoTransformOptions(options, false, k)),\n ];\n }\n })\n );\n}\n\n/** @internal */\nexport function reTransformForDevtools(\n transformationId: number,\n data: unknown,\n to: GeneralTransform,\n from?: string | string[],\n mapArray?: boolean | \"auto\",\n allowInject?: boolean\n): void {\n try {\n preprocessTransformProperties(data, to, from, mapArray, {\n isReTransformation: true,\n transformationId,\n allowInject,\n });\n } catch (error) {\n devtoolsHookEmit(\"re-transformation\", {\n id: transformationId,\n error: error.message,\n detail: {\n transform: to,\n data,\n options: { from, mapArray, allowInject },\n },\n });\n }\n}\n\n/** @internal */\nexport function preprocessTransformProperties(\n data: unknown,\n to: GeneralTransform,\n from?: string | string[],\n mapArray?: boolean | \"auto\",\n options?: TransformOptions\n): Record<string, unknown> {\n const props: Record<string, unknown> = {};\n const processedData = from ? get(data, from) : data;\n\n if (Array.isArray(to)) {\n for (const item of to) {\n pipeableTransform(\n props,\n processedData,\n item.to,\n item.from,\n item.mapArray,\n {\n allowInject: options?.allowInject,\n }\n );\n }\n } else {\n pipeableTransform(props, processedData, to, undefined, mapArray, {\n allowInject: options?.allowInject,\n });\n }\n const detail = {\n transform: to,\n data,\n options: { from, mapArray, allowInject: options?.allowInject },\n result: props,\n };\n if (options?.isReTransformation) {\n devtoolsHookEmit(\"re-transformation\", {\n id: options.transformationId,\n detail,\n });\n } else {\n devtoolsHookEmit(\"transformation\", detail);\n }\n return props;\n}\n\nfunction pipeableTransform(\n props: Record<string, unknown>,\n data: unknown,\n to: string | TransformMap,\n from?: string | string[],\n mapArray?: boolean | \"auto\",\n options?: {\n allowInject?: boolean;\n }\n): void {\n if (!to) {\n // Do nothing if `to` is falsy.\n return;\n }\n\n let fromData = from ? get(data, from) : data;\n\n let isArray = Array.isArray(fromData);\n if (!isArray && mapArray === true) {\n isArray = true;\n fromData = [fromData];\n } else if (isArray && mapArray === false) {\n isArray = false;\n }\n\n if (typeof to === \"string\") {\n props[to] = fromData;\n return;\n }\n\n for (const [transformedPropName, transformTo] of Object.entries(to)) {\n // If `fromData` is an array, mapping it's items.\n props[transformedPropName] = isArray\n ? (fromData as unknown[]).map((item) =>\n doTransform(item, transformTo, options)\n )\n : doTransform(fromData, transformTo, options);\n }\n}\n\n/** @internal */\nexport function transformIntermediateData(\n data: unknown,\n to: GeneralTransform,\n from?: string | string[],\n mapArray?: boolean | \"auto\"\n): unknown {\n const intermediateData = from ? get(data, from) : data;\n if (!to) {\n return intermediateData;\n }\n return transformProperties({}, intermediateData, to, undefined, mapArray);\n}\n\nfunction getNextDoTransformOptions(\n options: DoTransformOptions,\n isArray: boolean,\n key?: string\n): DoTransformOptions {\n return options\n ? {\n ...options,\n // Collect tracking context in first level only.\n trackingContextList: undefined,\n $$stateOfUseBrick: options.$$lazyForUseBrick\n ? getNextStateOfUseBrick(\n options.$$stateOfUseBrick ?? StateOfUseBrick.INITIAL,\n isArray,\n key\n )\n : undefined,\n }\n : options;\n}\n","import { evaluate } from \"./evaluate\";\nimport { reTransformForDevtools } from \"../transformProperties\";\n\nexport const MESSAGE_SOURCE_PANEL = \"brick-next-devtools-panel\";\nexport const EVALUATION_EDIT = \"devtools-evaluation-edit\";\nexport const TRANSFORMATION_EDIT = \"devtools-transformation-edit\";\n\ninterface DevtoolsHookContainer {\n __BRICK_NEXT_DEVTOOLS_HOOK__?: DevtoolsHook;\n}\n\ninterface DevtoolsHook {\n emit: (message: any) => void;\n restoreDehydrated: (value: unknown) => any;\n}\n\ninterface EditEvaluationPayload {\n raw: string;\n context: {\n data?: any;\n event?: any;\n };\n id: number;\n}\n\ninterface EditEvaluationPayload {\n type: typeof EVALUATION_EDIT;\n raw: string;\n context: {\n data?: any;\n event?: any;\n };\n id: number;\n}\n\ninterface EditTransformationPayload {\n type: typeof TRANSFORMATION_EDIT;\n data: any;\n transform: any;\n options: {\n from?: string | string[];\n mapArray?: boolean | \"auto\";\n allowInject?: boolean;\n };\n id: number;\n}\n\n/* istanbul ignore next */\nexport function devtoolsHookEmit(type: string, payload?: unknown): void {\n Promise.resolve().then(() => {\n getDevHook()?.emit?.({\n type,\n payload,\n });\n });\n}\n\nexport function listenDevtools(): void {\n window.addEventListener(\"message\", (event: MessageEvent): void => {\n if (event.data?.source !== MESSAGE_SOURCE_PANEL) {\n return;\n }\n const payload: EditEvaluationPayload | EditTransformationPayload =\n event.data.payload;\n if (payload?.type === EVALUATION_EDIT) {\n const { raw, context, id } = payload;\n evaluate(\n raw,\n {\n data: context.data,\n event: restoreDehydrated(context.event),\n },\n {\n isReEvaluation: true,\n evaluationId: id,\n }\n );\n } else if (payload?.type === TRANSFORMATION_EDIT) {\n const {\n data,\n transform,\n id,\n options: { from, mapArray, allowInject },\n } = payload;\n reTransformForDevtools(id, data, transform, from, mapArray, allowInject);\n }\n });\n}\n\nexport function getDevHook(): DevtoolsHook {\n return (window as DevtoolsHookContainer).__BRICK_NEXT_DEVTOOLS_HOOK__;\n}\n\nfunction restoreDehydrated(value: unknown): any {\n return getDevHook()?.restoreDehydrated(value) ?? value;\n}\n","export function getItemFactory(storageType: \"local\" | \"session\"): any {\n return function (name: string) {\n const storage = storageType === \"local\" ? localStorage : sessionStorage;\n return JSON.parse(storage.getItem(name));\n };\n}\n","import { Locale, K } from \"../constants\";\n\nconst locale: Locale = {\n [K.REQUEST_FAILED]: \"Request Failed\",\n [K.MODAL_OK]: \"Ok\",\n [K.MODAL_CANCEL]: \"Cancel\",\n [K.SOMETHING_WENT_WRONG]: \"Something went wrong!\",\n [K.LOGIN_TIMEOUT_MESSAGE]:\n \"You haven't logged in or your login session has expired. Login right now?\",\n [K.NETWORK_ERROR]: \"Network error, please check your network.\",\n};\n\nexport default locale;\n","import { Locale, K } from \"../constants\";\n\nconst locale: Locale = {\n [K.REQUEST_FAILED]: \"请求失败\",\n [K.MODAL_OK]: \"确认\",\n [K.MODAL_CANCEL]: \"取消\",\n [K.SOMETHING_WENT_WRONG]: \"出现了一些问题!\",\n [K.LOGIN_TIMEOUT_MESSAGE]: \"您还未登录或登录信息已过期,现在重新登录?\",\n [K.NETWORK_ERROR]: \"网络错误,请检查您的网络连接。\",\n};\n\nexport default locale;\n","import i18next from \"i18next\";\nimport { NS_BRICK_KIT } from \"./constants\";\nimport en from \"./locales/en\";\nimport zh from \"./locales/zh\";\n\n/** @internal */\nexport const initI18n = (): void => {\n i18next.addResourceBundle(\"en\", NS_BRICK_KIT, en);\n i18next.addResourceBundle(\"zh\", NS_BRICK_KIT, zh);\n};\n\n/** @internal */\nexport function getI18nNamespace(type: \"app\" | \"widget\", id: string): string {\n return `$${type}-${id}`;\n}\n","import i18next, { getFixedT, TFunction } from \"i18next\";\nimport { MetaI18n } from \"@next-core/brick-types\";\nimport { getI18nNamespace } from \"../i18n\";\n\nexport function registerWidgetI18n(widgetId: string, i18n: MetaI18n): void {\n const ns = getI18nNamespace(\"widget\", widgetId);\n Object.entries(i18n).forEach(([lang, resources]) => {\n i18next.addResourceBundle(lang, ns, resources);\n });\n}\n\nexport function widgetI18nFactory(widgetId: string): TFunction {\n return getFixedT(null, getI18nNamespace(\"widget\", widgetId));\n}\n","import i18next from \"i18next\";\nimport { hasOwnProperty } from \"@next-core/brick-utils\";\nimport { I18nData } from \"@next-core/brick-types\";\n\nexport function i18nText(data: I18nData): string {\n if (!data) {\n return;\n }\n const language = i18next.language ?? \"zh-CN\";\n // First, make a perfect match.\n if (hasOwnProperty(data, language)) {\n return data[language];\n }\n // https://en.wikipedia.org/wiki/IETF_language_tag\n const primaryLanguage = language.split(\"-\")[0];\n if (primaryLanguage !== language) {\n // Then, match the primary language (which omits other subtags).\n // E.g., match `zh` if the current language is `zh-CN`.\n return hasOwnProperty(data, primaryLanguage)\n ? data[primaryLanguage]\n : undefined;\n }\n // At last, match the first key which starts with the primary language,\n // if the current language contains primary subtag only.\n // E.g., match `zh-CN` if the current language is `zh`.\n const prefix = `${primaryLanguage}-`;\n for (const key of Object.keys(data)) {\n if (key.startsWith(prefix)) {\n return data[key];\n }\n }\n}\n","import { AuthInfo } from \"@next-core/brick-types\";\nimport { userAnalytics } from \"@next-core/easyops-analytics\";\nimport { resetPermissionPreChecks } from \"./internal/checkPermissions\";\n\nconst auth: AuthInfo = {};\n\n/** @internal */\nexport function authenticate(newAuth: AuthInfo): void {\n Object.assign(auth, {\n org: newAuth.org,\n username: newAuth.username,\n userInstanceId: newAuth.userInstanceId,\n loginFrom: newAuth.loginFrom,\n accessRule: newAuth.accessRule,\n isAdmin: newAuth.isAdmin,\n });\n\n // re-init analytics to set user_id\n if (userAnalytics.initialized) {\n userAnalytics.setUserId(newAuth.userInstanceId);\n }\n}\n\n/**\n * 获取当前登录认证信息。\n *\n * @returns 当前登录认证信息。\n */\nexport function getAuth(): AuthInfo {\n return {\n ...auth,\n };\n}\n\n/** @internal */\nexport function logout(): void {\n auth.org = undefined;\n auth.username = undefined;\n auth.userInstanceId = undefined;\n auth.accessRule = undefined;\n auth.isAdmin = undefined;\n resetPermissionPreChecks();\n\n // re-init analytics to clear user_id\n userAnalytics.setUserId();\n}\n\n/**\n * 查看当前是否已登录。\n *\n * @returns 当前是否已登录。\n */\nexport function isLoggedIn(): boolean {\n return auth.username !== undefined;\n}\n","import { difference } from \"lodash\";\nimport { scanPermissionActionsInStoryboard } from \"@next-core/brick-utils\";\nimport { Storyboard } from \"@next-core/brick-types\";\nimport { PermissionApi_validatePermissions } from \"@next-sdk/micro-app-sdk\";\nimport { getAuth } from \"../auth\";\n\ntype PermissionStatus = \"authorized\" | \"unauthorized\" | \"undefined\";\n\nconst permissionMap = new Map<string, PermissionStatus>();\n\nexport async function preCheckPermissions(\n storyboard: Storyboard\n): Promise<void> {\n const usedActions = scanPermissionActionsInStoryboard(storyboard);\n await validatePermissions(usedActions);\n}\n\nexport async function validatePermissions(\n usedActions: string[]\n): Promise<void> {\n // Do not request known actions.\n const actions = difference(usedActions, Array.from(permissionMap.keys()));\n if (actions.length === 0) {\n return;\n }\n try {\n const result = await PermissionApi_validatePermissions({ actions });\n for (const item of result.actions) {\n permissionMap.set(item.action, item.authorizationStatus);\n if (item.authorizationStatus === \"undefined\") {\n // eslint-disable-next-line no-console\n console.error(`Undefined permission action: \"${item.action}\"`);\n }\n }\n } catch (error) {\n // Allow pre-check to fail, and\n // make it not crash when the backend service is not updated.\n // eslint-disable-next-line no-console\n console.error(\"Pre-check permissions failed\", error);\n }\n}\n\n/**\n * Check the current logged-in user whether to have all\n * permissions of actions passed to it.\n *\n * @param actions - Required permission actions.\n */\nexport function checkPermissions(...actions: string[]): boolean {\n if (getAuth().isAdmin) {\n return true;\n }\n\n for (const action of actions) {\n // Only **exclusively authorized** permissions are ok.\n // Those scenarios below will fail:\n // - unauthorized actions (pre-check results)\n // - undefined actions (pre-check results)\n // - Un-pre-checked or pre-check failed\n switch (permissionMap.get(action)) {\n case \"unauthorized\":\n case \"undefined\":\n return false;\n case undefined:\n // eslint-disable-next-line no-console\n console.error(\n `Un-checked permission action: \"${action}\", please make sure the permission to check is defined in permissionsPreCheck.`\n );\n return false;\n }\n }\n return true;\n}\n\n/**\n * Reset permission pre-checks after logged-out.\n */\nexport function resetPermissionPreChecks(): void {\n permissionMap.clear();\n}\n","import { getFixedT } from \"i18next\";\nimport { identity } from \"lodash\";\nimport type { MicroApp } from \"@next-core/brick-types\";\nimport { widgetI18nFactory } from \"../core/WidgetI18n\";\nimport { i18nText } from \"../i18nText\";\nimport { getI18nNamespace } from \"../i18n\";\nimport { ImagesFactory, imagesFactory, widgetImagesFactory } from \"./images\";\nimport { getBasePath } from \"./getBasePath\";\nimport { checkPermissions } from \"./checkPermissions\";\n\nexport interface GeneralGlobalsOptions {\n collectCoverage?: unknown;\n widgetId?: string;\n app?: PartialMicroApp;\n storyboardFunctions?: unknown;\n}\n\nexport type PartialMicroApp = Pick<MicroApp, \"id\" | \"isBuildPush\">;\n\n// `GeneralGlobals` are globals which are page-state-agnostic,\n// thus they can be used both in storyboard expressions and functions.\nexport function getGeneralGlobals(\n attemptToVisitGlobals: Set<string>,\n options: GeneralGlobalsOptions\n): Record<string, unknown> {\n const globalVariables: Record<string, unknown> = {};\n for (const variableName of attemptToVisitGlobals) {\n const variable = getIndividualGlobal(variableName, options);\n if (variable !== undefined) {\n globalVariables[variableName] = variable;\n }\n }\n return globalVariables;\n}\n\nfunction getIndividualGlobal(\n variableName: string,\n { collectCoverage, widgetId, app, storyboardFunctions }: GeneralGlobalsOptions\n): unknown {\n switch (variableName) {\n case \"BASE_URL\":\n return collectCoverage ? \"/next\" : getBasePath().replace(/\\/$/, \"\");\n case \"FN\":\n return storyboardFunctions;\n case \"IMG\":\n return collectCoverage\n ? fakeImageFactory()\n : widgetId\n ? widgetImagesFactory(widgetId)\n : imagesFactory(app.id, app.isBuildPush);\n case \"I18N\":\n return collectCoverage\n ? identity\n : widgetId\n ? widgetI18nFactory(widgetId)\n : getFixedT(null, getI18nNamespace(\"app\", app.id));\n case \"I18N_TEXT\":\n return collectCoverage ? fakeI18nText : i18nText;\n case \"PERMISSIONS\":\n return {\n check: collectCoverage ? fakeCheckPermissions : checkPermissions,\n };\n }\n}\n\nfunction fakeI18nText(data: Record<string, string>): string {\n return data?.en;\n}\n\nfunction fakeImageFactory(): ImagesFactory {\n return {\n get(name: string) {\n return `mock/images/${name}`;\n },\n };\n}\n\nfunction fakeCheckPermissions(): boolean {\n return true;\n}\n","import {\n MicroApp,\n SimpleFunction,\n StoryboardFunction,\n} from \"@next-core/brick-types\";\nimport { cook, precookFunction, EstreeNode } from \"@next-core/brick-utils\";\nimport { supply } from \"@next-core/supply\";\nimport { getGeneralGlobals } from \"../internal/getGeneralGlobals\";\n\n/** @internal */\nexport type ReadonlyStoryboardFunctions = Readonly<\n Record<string, SimpleFunction>\n>;\n\n/** @internal */\nexport type StoryboardFunctionPatch = Pick<\n StoryboardFunction,\n \"source\" | \"typescript\"\n>;\n\n/** @internal */\nexport interface StoryboardFunctionRegistry {\n /** A readonly proxy for accessing cooked storyboard functions. */\n storyboardFunctions: ReadonlyStoryboardFunctions;\n\n /** Register storyboard functions. */\n registerStoryboardFunctions(\n functions: StoryboardFunction[],\n app?: PartialMicroApp\n ): void;\n\n /** Update a storyboard function during debugging. */\n updateStoryboardFunction(name: string, data: StoryboardFunctionPatch): void;\n}\n\n/** @internal */\nexport interface RuntimeStoryboardFunction {\n source: string;\n typescript?: boolean;\n processed?: boolean;\n cooked?: SimpleFunction;\n}\n\n/** @internal */\nexport interface FunctionCoverageCollector {\n beforeVisit(node: EstreeNode): void;\n beforeEvaluate(node: EstreeNode): void;\n beforeCall(node: EstreeNode): void;\n beforeBranch(node: EstreeNode, branch: string): void;\n}\n\n/** @internal */\nexport interface FunctionCoverageSettings {\n createCollector(name: string): FunctionCoverageCollector;\n}\n\n/** @internal */\nexport type PartialMicroApp = Pick<MicroApp, \"id\" | \"isBuildPush\">;\n\n/** @internal */\nexport function StoryboardFunctionRegistryFactory({\n widgetId,\n collectCoverage,\n}: {\n widgetId?: string;\n collectCoverage?: FunctionCoverageSettings;\n} = {}): StoryboardFunctionRegistry {\n const registeredFunctions = new Map<string, RuntimeStoryboardFunction>();\n\n // Use `Proxy` with a frozen target, to make a readonly function registry.\n const storyboardFunctions = new Proxy(Object.freeze({}), {\n get(target, key) {\n return getStoryboardFunction(key as string);\n },\n }) as ReadonlyStoryboardFunctions;\n\n let currentApp: PartialMicroApp;\n\n function registerStoryboardFunctions(\n functions: StoryboardFunction[],\n app?: PartialMicroApp\n ): void {\n if (app) {\n currentApp = app;\n }\n registeredFunctions.clear();\n if (Array.isArray(functions)) {\n for (const fn of functions) {\n registeredFunctions.set(fn.name, {\n source: fn.source,\n typescript: fn.typescript,\n });\n }\n }\n }\n\n function getStoryboardFunction(name: string): SimpleFunction {\n const fn = registeredFunctions.get(name);\n if (!fn) {\n return undefined;\n }\n if (fn.processed) {\n return fn.cooked;\n }\n let collector: FunctionCoverageCollector;\n if (collectCoverage) {\n collector = collectCoverage.createCollector(name);\n }\n const precooked = precookFunction(fn.source, {\n typescript: fn.typescript,\n hooks: collector && {\n beforeVisit: collector.beforeVisit,\n },\n });\n fn.cooked = cook(precooked.function, fn.source, {\n rules: {\n noVar: true,\n },\n globalVariables: supply(\n precooked.attemptToVisitGlobals,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n collectCoverage,\n widgetId,\n app: currentApp,\n storyboardFunctions,\n })\n ),\n hooks: collector && {\n beforeEvaluate: collector.beforeEvaluate,\n beforeCall: collector.beforeCall,\n beforeBranch: collector.beforeBranch,\n },\n }) as SimpleFunction;\n fn.processed = true;\n return fn.cooked;\n }\n\n return {\n storyboardFunctions,\n registerStoryboardFunctions,\n updateStoryboardFunction(\n name: string,\n data: StoryboardFunctionPatch\n ): void {\n registeredFunctions.set(name, {\n source: data.source,\n typescript: data.typescript,\n });\n },\n };\n}\n","import { StoryboardFunctionRegistryFactory } from \"./StoryboardFunctionRegistryFactory\";\n\nexport const { storyboardFunctions, registerStoryboardFunctions } =\n StoryboardFunctionRegistryFactory();\n","import { StoryboardFunction } from \"@next-core/brick-types\";\nimport {\n ReadonlyStoryboardFunctions,\n StoryboardFunctionRegistryFactory,\n} from \"./StoryboardFunctionRegistryFactory\";\n\nconst widgetFunctionRegistry = new Map<string, ReadonlyStoryboardFunctions>();\n\nexport const widgetFunctions = new Proxy(Object.freeze({}), {\n get(target, key: string) {\n return widgetFunctionRegistry.get(key);\n },\n}) as Readonly<Record<string, ReadonlyStoryboardFunctions>>;\n\nexport function registerWidgetFunctions(\n widgetId: string,\n functions: StoryboardFunction[]\n): void {\n if (widgetFunctionRegistry.has(widgetId)) {\n // eslint-disable-next-line no-console\n throw new Error(`Widget functions of \"${widgetId}\" already registered`);\n }\n const { storyboardFunctions, registerStoryboardFunctions } =\n StoryboardFunctionRegistryFactory({ widgetId });\n widgetFunctionRegistry.set(widgetId, storyboardFunctions);\n registerStoryboardFunctions(functions);\n}\n","import { getDevHook } from \"./devtools\";\n\nconst THROW = (): any => {\n throw new Error(\"Can't modify read-only proxy object\");\n};\n\nconst readOnlyHandler: ProxyHandler<object> = {\n set: THROW,\n defineProperty: THROW,\n deleteProperty: THROW,\n setPrototypeOf: THROW,\n};\n\nexport function getReadOnlyProxy(object: object): unknown {\n return new Proxy(object, readOnlyHandler);\n}\n\n// First, we want to make accessing property of globals lazy,\n// So we use *Proxy* to make a dynamic accessor for each of these globals.\n// But we also want to keep them working in devtools.\nexport function getDynamicReadOnlyProxy({\n get,\n ownKeys,\n}: Pick<ProxyHandler<object>, \"get\" | \"ownKeys\">): unknown {\n if (getDevHook()) {\n // In devtools, we extract them at beginning.\n const target = Object.fromEntries(\n (ownKeys(null) as string[]).map((key) => [key, get(null, key, null)])\n );\n return getReadOnlyProxy(target);\n }\n return new Proxy(Object.freeze({}), { get });\n}\n","import { cloneDeep } from \"lodash\";\nimport {\n cook,\n hasOwnProperty,\n isEvaluable,\n preevaluate,\n PreevaluateResult,\n shouldAllowRecursiveEvaluations,\n} from \"@next-core/brick-utils\";\nimport { supply } from \"@next-core/supply\";\nimport { MicroApp } from \"@next-core/brick-types\";\nimport { _internalApiGetCurrentContext } from \"../core/Runtime\";\nimport { getUrlBySegueFactory } from \"./segue\";\nimport { getUrlByAliasFactory } from \"./alias\";\nimport { widgetImagesFactory } from \"./images\";\nimport { devtoolsHookEmit } from \"./devtools\";\nimport { customProcessorRegistry } from \"../core/exports\";\nimport { getItemFactory } from \"./Storage\";\nimport { getRuntime } from \"../runtime\";\nimport { storyboardFunctions } from \"../core/StoryboardFunctions\";\nimport { widgetFunctions } from \"../core/WidgetFunctions\";\nimport { widgetI18nFactory } from \"../core/WidgetI18n\";\nimport { getGeneralGlobals } from \"./getGeneralGlobals\";\nimport { getReadOnlyProxy, getDynamicReadOnlyProxy } from \"./proxyFactories\";\nimport { getTheme, DARK_THEME } from \"../themeAndMode\";\n\nconst symbolForRaw = Symbol.for(\"pre.evaluated.raw\");\nconst symbolForContext = Symbol.for(\"pre.evaluated.context\");\n\nexport interface PreEvaluated {\n [symbolForRaw]: string;\n [symbolForContext]: EvaluateRuntimeContext;\n}\n\nexport interface EvaluateOptions {\n lazy?: boolean;\n isReEvaluation?: boolean;\n evaluationId?: number;\n}\n\nexport interface EvaluateRuntimeContext {\n event?: CustomEvent;\n data?: unknown;\n getTplVariables?: () => Record<string, unknown>;\n overrideApp?: MicroApp;\n}\n\nexport function isPreEvaluated(raw: unknown): raw is PreEvaluated {\n return !!(raw as PreEvaluated)?.[symbolForRaw];\n}\n\nexport function shouldDismissRecursiveMarkingInjected(\n raw: string | PreEvaluated\n): boolean {\n if (typeof raw === \"string\") {\n return shouldAllowRecursiveEvaluations(raw);\n }\n return shouldAllowRecursiveEvaluations(raw[symbolForRaw]);\n}\n\nconst possibleErrorConstructs = new WeakSet<ErrorConstructor>([\n SyntaxError,\n TypeError,\n ReferenceError,\n]);\n\nexport function getCookErrorConstructor(error: any): ErrorConstructor {\n return possibleErrorConstructs.has(error.constructor)\n ? error.constructor\n : TypeError;\n}\n\n// `raw` should always be asserted to `isEvaluable` or `isPreEvaluated`.\nexport function evaluate(\n raw: string | PreEvaluated, // string or pre-evaluated object.\n runtimeContext: EvaluateRuntimeContext = {},\n options: EvaluateOptions = {}\n): unknown {\n if (\n options.isReEvaluation &&\n !(typeof raw === \"string\" && isEvaluable(raw))\n ) {\n devtoolsHookEmit(\"re-evaluation\", {\n id: options.evaluationId,\n detail: { raw, context: {} },\n error: \"Invalid evaluation code\",\n });\n return;\n }\n\n if (typeof raw !== \"string\") {\n // If the `raw` is not a string, it must be a pre-evaluated object.\n // Then fulfil the context, and restore the original `raw`.\n runtimeContext = {\n ...raw[symbolForContext],\n ...runtimeContext,\n };\n raw = raw[symbolForRaw];\n }\n\n // A `SyntaxError` maybe thrown.\n let precooked: PreevaluateResult;\n try {\n precooked = preevaluate(raw);\n } catch (error) {\n const message = `${error.message}, in \"${raw}\"`;\n if (options.isReEvaluation) {\n devtoolsHookEmit(\"re-evaluation\", {\n id: options.evaluationId,\n detail: { raw, context: {} },\n error: message,\n });\n return;\n } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n }\n }\n\n const globalVariables: Record<string, unknown> = {};\n const attemptToVisitGlobals = precooked.attemptToVisitGlobals;\n\n const attemptToVisitEvent = attemptToVisitGlobals.has(\"EVENT\");\n const attemptToVisitData = attemptToVisitGlobals.has(\"DATA\");\n const attemptToVisitTpl = attemptToVisitGlobals.has(\"TPL\");\n\n // Ignore evaluating if `event` is missing in context.\n // Since it should be evaluated during events handling.\n let missingEvent = options.lazy === true;\n if (attemptToVisitEvent) {\n if (hasOwnProperty(runtimeContext, \"event\")) {\n globalVariables.EVENT = runtimeContext.event;\n } else {\n // Let's see if pre-evaluation is required (store the `data` in context).\n missingEvent = true;\n }\n }\n\n const missingTpl =\n attemptToVisitTpl && !hasOwnProperty(runtimeContext, \"getTplVariables\");\n const missingData =\n attemptToVisitData && !hasOwnProperty(runtimeContext, \"data\");\n\n const rawWithContext =\n Object.keys(runtimeContext).length > 0\n ? ({\n [symbolForRaw]: raw,\n [symbolForContext]: runtimeContext,\n } as PreEvaluated)\n : raw;\n\n // Since `EVENT`, `DATA` and `TPL` are provided in different context,\n // whenever missing one of them, memorize the current context for later consuming.\n if (missingEvent || missingData || missingTpl) {\n return rawWithContext;\n }\n\n if (attemptToVisitData) {\n globalVariables.DATA = runtimeContext.data;\n }\n\n if (\n attemptToVisitTpl &&\n typeof runtimeContext.getTplVariables === \"function\"\n ) {\n globalVariables.TPL = runtimeContext.getTplVariables();\n }\n\n const {\n app: currentApp,\n query,\n match,\n sys,\n flags,\n hash,\n segues,\n storyboardContext,\n } = _internalApiGetCurrentContext();\n\n const app = runtimeContext.overrideApp ?? currentApp;\n\n function getIndividualGlobal(variableName: string): unknown {\n switch (variableName) {\n case \"ALIAS\":\n return {\n getUrl: getUrlByAliasFactory(app),\n };\n case \"ANCHOR\":\n return hash ? hash.substr(1) : null;\n case \"APP\":\n return cloneDeep(app);\n case \"CTX\":\n return getDynamicReadOnlyProxy({\n get(target, key: string) {\n const item = storyboardContext.get(key);\n return !item\n ? item\n : item.type === \"brick-property\"\n ? item.brick.element?.[item.prop as keyof HTMLElement]\n : item.value;\n },\n ownKeys() {\n return Array.from(storyboardContext.keys());\n },\n });\n case \"FLAGS\":\n return getReadOnlyProxy(flags);\n case \"HASH\":\n return hash;\n case \"INSTALLED_APPS\":\n return {\n has: (appId: string, matchVersion?: string) =>\n getRuntime().hasInstalledApp(appId, matchVersion),\n };\n case \"LOCAL_STORAGE\":\n return {\n getItem: getItemFactory(\"local\"),\n };\n case \"MISC\":\n return getRuntime().getMiscSettings();\n case \"PARAMS\":\n return new URLSearchParams(query);\n case \"PATH\":\n return getReadOnlyProxy(match.params);\n case \"PROCESSORS\":\n return getDynamicReadOnlyProxy({\n get(target, key: string) {\n const pkg = customProcessorRegistry.get(key);\n return pkg\n ? getDynamicReadOnlyProxy({\n get(t, k: string) {\n return pkg.get(k);\n },\n ownKeys() {\n return Array.from(pkg.keys());\n },\n })\n : pkg;\n },\n ownKeys() {\n return Array.from(customProcessorRegistry.keys());\n },\n });\n case \"QUERY\":\n return getDynamicReadOnlyProxy({\n get(target, key: string) {\n return query.has(key) ? query.get(key) : undefined;\n },\n ownKeys() {\n return Array.from(query.keys());\n },\n });\n case \"QUERY_ARRAY\":\n return getDynamicReadOnlyProxy({\n get(target, key: string) {\n return query.has(key) ? query.getAll(key) : undefined;\n },\n ownKeys() {\n return Array.from(query.keys());\n },\n });\n case \"SEGUE\":\n return {\n getUrl: getUrlBySegueFactory(app, segues),\n };\n case \"THEME\":\n return {\n getTheme,\n };\n case \"SESSION_STORAGE\":\n return {\n getItem: getItemFactory(\"session\"),\n };\n case \"SYS\":\n return getReadOnlyProxy(sys);\n case \"__WIDGET_FN__\":\n return widgetFunctions;\n case \"__WIDGET_IMG__\":\n return widgetImagesFactory;\n case \"__WIDGET_I18N__\":\n return widgetI18nFactory;\n }\n }\n\n for (const variableName of attemptToVisitGlobals) {\n const variable = getIndividualGlobal(variableName);\n if (variable !== undefined) {\n globalVariables[variableName] = variable;\n }\n }\n\n Object.assign(\n globalVariables,\n getGeneralGlobals(precooked.attemptToVisitGlobals, {\n storyboardFunctions,\n app,\n })\n );\n\n try {\n const result = cook(precooked.expression, precooked.source, {\n globalVariables: supply(precooked.attemptToVisitGlobals, globalVariables),\n });\n const detail = { raw, context: globalVariables, result };\n if (options.isReEvaluation) {\n devtoolsHookEmit(\"re-evaluation\", {\n id: options.evaluationId,\n detail,\n });\n } else {\n devtoolsHookEmit(\"evaluation\", detail);\n }\n return result;\n } catch (error) {\n const message = `${error.message}, in \"${raw}\"`;\n if (options.isReEvaluation) {\n devtoolsHookEmit(\"re-evaluation\", {\n id: options.evaluationId,\n detail: { raw, context: globalVariables },\n error: message,\n });\n } else {\n const errorConstructor = getCookErrorConstructor(error);\n throw new errorConstructor(message);\n }\n }\n}\n","import { set } from \"lodash\";\nimport { PluginRuntimeContext } from \"@next-core/brick-types\";\nimport {\n isObject,\n inject,\n isEvaluable,\n trackContext,\n} from \"@next-core/brick-utils\";\nimport {\n evaluate,\n EvaluateRuntimeContext,\n isPreEvaluated,\n shouldDismissRecursiveMarkingInjected,\n} from \"./evaluate\";\nimport { haveBeenInjected, recursiveMarkAsInjected } from \"./injected\";\nimport {\n getNextStateOfUseBrick,\n isLazyContentInUseBrick,\n StateOfUseBrick,\n} from \"./getNextStateOfUseBrick\";\nimport { TrackingContextItem } from \"./listenOnTrackingContext\";\n\ninterface ComputeOptions {\n $$lazyForUseBrick?: boolean;\n $$stateOfUseBrick?: StateOfUseBrick;\n}\n\nexport const computeRealValue = (\n value: unknown,\n context: PluginRuntimeContext,\n injectDeep?: boolean,\n internalOptions?: ComputeOptions\n): unknown => {\n const preEvaluated = isPreEvaluated(value);\n\n if (preEvaluated || typeof value === \"string\") {\n // For `useBrick`, some fields such as `properties`/`transform`/`events`/`if`,\n // are kept and to be evaluated later.\n const lazy =\n internalOptions?.$$lazyForUseBrick &&\n isLazyContentInUseBrick(internalOptions.$$stateOfUseBrick);\n\n let result: unknown;\n let dismissRecursiveMarkingInjected = lazy;\n if (preEvaluated || isEvaluable(value as string)) {\n const runtimeContext: EvaluateRuntimeContext = {};\n const keys = [\"event\", \"getTplVariables\", \"overrideApp\"] as const;\n for (const key of keys) {\n if (context?.[key]) {\n runtimeContext[key as \"event\"] = context[key as \"event\"];\n }\n }\n // The current runtime context is memoized even if the evaluation maybe lazy.\n result = evaluate(value as string, runtimeContext, { lazy });\n dismissRecursiveMarkingInjected = shouldDismissRecursiveMarkingInjected(\n value as string\n );\n } else {\n result = lazy ? value : inject(value as string, context);\n }\n if (!dismissRecursiveMarkingInjected) {\n recursiveMarkAsInjected(result);\n }\n return result;\n }\n\n if (!(injectDeep && isObject(value)) || haveBeenInjected(value)) {\n return value;\n }\n\n if (Array.isArray(value)) {\n const nextOptions = getNextInternalOptions(internalOptions, true);\n return value.map((v) =>\n computeRealValue(v, context, injectDeep, nextOptions)\n );\n }\n\n return Object.fromEntries(\n Object.entries(value).map(([k, v]) => [\n computeRealValue(k, context, false) as string,\n computeRealValue(\n v,\n context,\n injectDeep,\n getNextInternalOptions(internalOptions, false, k)\n ),\n ])\n );\n};\n\nexport function setProperties(\n bricks: HTMLElement | HTMLElement[],\n properties: Record<string, unknown>,\n context: PluginRuntimeContext,\n injectDeep?: boolean\n): void {\n const realProps = computeRealProperties(properties, context, injectDeep);\n if (!Array.isArray(bricks)) {\n bricks = [bricks];\n }\n bricks.forEach((brick) => {\n setRealProperties(brick, realProps);\n });\n}\n\nexport function setRealProperties(\n brick: HTMLElement,\n realProps: Record<string, unknown>,\n extractProps?: boolean\n): void {\n for (const [propName, propValue] of Object.entries(realProps)) {\n if (propName === \"style\" || propName === \"dataset\") {\n for (const [k, v] of Object.entries(propValue)) {\n (brick[propName] as unknown as Record<string, unknown>)[k] = v;\n }\n } else if (propName === \"innerHTML\") {\n // `innerHTML` is dangerous, use `textContent` instead.\n // eslint-disable-next-line no-console\n console.error(\"Please use `textContent` instead of `innerHTML`.\");\n brick.textContent = propValue as string;\n } else {\n if (extractProps) {\n set(brick, propName, propValue);\n } else {\n (brick as unknown as Record<string, unknown>)[propName] = propValue;\n }\n }\n }\n}\n\nexport function computeRealProperties(\n properties: Record<string, unknown>,\n context: PluginRuntimeContext,\n injectDeep?: boolean,\n trackingContextList?: TrackingContextItem[]\n): Record<string, unknown> {\n const result: Record<string, unknown> = {};\n\n if (isObject(properties)) {\n for (const [propName, propValue] of Object.entries(properties)) {\n // Related: https://github.com/facebook/react/issues/11347\n const realValue = computeRealValue(propValue, context, injectDeep, {\n $$lazyForUseBrick: true,\n $$stateOfUseBrick:\n propName === \"useBrick\"\n ? StateOfUseBrick.USE_BRICK\n : StateOfUseBrick.INITIAL,\n });\n if (realValue !== undefined) {\n // For `style` and `dataset`, only object is acceptable.\n if (\n (propName !== \"style\" && propName !== \"dataset\") ||\n isObject(realValue)\n ) {\n result[propName] = realValue;\n }\n }\n if (Array.isArray(trackingContextList) && isEvaluable(propValue)) {\n const contextNames = trackContext(propValue);\n if (contextNames) {\n trackingContextList.push({\n contextNames,\n propName,\n propValue,\n });\n }\n }\n }\n }\n\n return result;\n}\n\nfunction getNextInternalOptions(\n internalOptions: ComputeOptions,\n isArray: boolean,\n key?: string\n): ComputeOptions {\n return internalOptions?.$$lazyForUseBrick\n ? {\n ...internalOptions,\n $$stateOfUseBrick: getNextStateOfUseBrick(\n internalOptions.$$stateOfUseBrick,\n isArray,\n key\n ),\n }\n : internalOptions;\n}\n","import { PluginRuntimeContext } from \"@next-core/brick-types\";\nimport { hasOwnProperty } from \"@next-core/brick-utils\";\nimport { computeRealValue } from \"./internal/setProperties\";\nimport { doTransform } from \"./transformProperties\";\nimport { isPreEvaluated } from \"./internal/evaluate\";\n\ntype GetIf = (rawIf: unknown, ctx: unknown) => unknown;\n\n/**\n * 包含 `if` 条件判断的对象。\n */\nexport interface IfContainer {\n /**\n * 条件判断,可以为表达式字符串。\n *\n * @example\n *\n * ```yaml\n * - brick: your.any-brick\n * if: '<% FLAGS['your-feature-flag'] %>'\n * ```\n */\n if?: unknown;\n}\n\n/** @internal */\nexport function looseCheckIf(\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): boolean {\n return (\n !hasOwnProperty(ifContainer, \"if\") ||\n _looseCheckIf(ifContainer.if, context, computeRealValue as GetIf)\n );\n}\n\n/**\n * 给定一个数据源,根据表达式计算条件判断的结果。\n *\n * @remarks\n *\n * 当 `ifContainer` 中没有出现 `if` 字段时,则认为条件判断为 `true`。\n *\n * 而如果 `if` 为表达式字符串时,将根据给定的数据源 `data` 进行 transform,并返回转换为 boolean 类型后的结果。\n *\n * @example\n *\n * ```ts\n * const brickConf = {\n * if: \"<% DATA.list.length > 0 %>\",\n * brick: \"your.any-brick\"\n * }\n * const data = { list: [] };\n * const result = looseCheckIfByTransform(\n * brickConf,\n * data\n * );\n * // Returns false.\n * ```\n *\n * @example\n *\n * ```ts\n * const brickConf = {\n * if: \"<% DATA.list.length %>\",\n * brick: \"your.any-brick\"\n * }\n * const data = { list: [ 1, 2 ] };\n * const result = looseCheckIfByTransform(\n * brickConf,\n * data\n * );\n * // Returns true.\n * ```\n *\n * @example\n *\n * ```ts\n * const brickConf = {\n * brick: \"your.any-brick\"\n * }\n * const result = looseCheckIfByTransform(\n * brickConf,\n * data\n * );\n * // Returns true.\n * ```\n *\n * @param ifContainer - 包含 `if` 条件判断的配置对象。\n * @param data - 要传递的数据源。\n * @param options - `allowInject` 允许在 `if` 中使用 `${...}` 占位符。\n *\n * @returns 条件判断的结果。\n */\nexport function looseCheckIfByTransform(\n ifContainer: IfContainer,\n data: unknown,\n options?: {\n allowInject?: boolean;\n getTplVariables?: () => Record<string, unknown>;\n }\n): boolean {\n return (\n !hasOwnProperty(ifContainer, \"if\") ||\n _looseCheckIf(ifContainer.if, data, (_rawIf, _data) =>\n doTransform(_data, _rawIf, options)\n )\n );\n}\n\n/** @internal */\nexport function looseCheckIfOfComputed(ifContainer: IfContainer): boolean {\n return !hasOwnProperty(ifContainer, \"if\") || !!ifContainer.if;\n}\n\nfunction _looseCheckIf(rawIf: unknown, ctx: unknown, fn: GetIf): boolean {\n return !!(typeof rawIf === \"string\" || isPreEvaluated(rawIf)\n ? fn(rawIf, ctx)\n : rawIf);\n}\n\n/**\n * @deprecated 现在使用 `looseCheckIf`。\n * @internal\n */\nexport function checkIf(\n rawIf: string | boolean,\n context: PluginRuntimeContext\n): boolean {\n return _checkIf(rawIf, context, computeRealValue as GetIf);\n}\n\n/**\n * @deprecated 现在使用 `looseCheckIfByTransform`。\n * @internal\n */\nexport function checkIfByTransform(\n rawIf: string | boolean,\n data: unknown\n): boolean {\n return _checkIf(rawIf, data, (_rawIf, _data) => doTransform(_data, _rawIf));\n}\n\nfunction _checkIf(rawIf: string | boolean, ctx: unknown, fn: GetIf): boolean {\n if (\n typeof rawIf === \"boolean\" ||\n typeof rawIf === \"string\" ||\n isPreEvaluated(rawIf)\n ) {\n const ifChecked = fn(rawIf, ctx);\n if (ifChecked === false) {\n return false;\n }\n /* istanbul ignore if */\n if (ifChecked !== true) {\n // eslint-disable-next-line no-console\n console.warn(\"Received an unexpected condition result:\", ifChecked);\n }\n } else if (rawIf != null) {\n // eslint-disable-next-line no-console\n console.warn(\"Unsupported `if`:\", rawIf);\n }\n return true;\n}\n","import { isNil, sortBy } from \"lodash\";\nimport {\n SidebarMenuSimpleItem,\n PluginRuntimeContext,\n SidebarMenu,\n MenuRawData,\n MenuItemRawData,\n} from \"@next-core/brick-types\";\nimport { isEvaluable, isObject, preevaluate } from \"@next-core/brick-utils\";\nimport {\n InstanceApi_postSearch,\n InstanceApi_getDetail,\n} from \"@next-sdk/cmdb-sdk\";\nimport { computeRealValue } from \"./setProperties\";\nimport { looseCheckIfOfComputed } from \"../checkIf\";\nimport {\n _internalApiGetCurrentContext,\n _internalApiGetResolver,\n MountRoutesResult,\n Kernel,\n} from \"../core/exports\";\n\nconst symbolAppId = Symbol(\"appId\");\n\ninterface RuntimeMenuItemRawData extends MenuItemRawData {\n [symbolAppId]?: string;\n}\n\n// Caching menu requests to avoid flicker.\nconst menuCache = new Map<string, MenuRawData>();\nconst menuTitleCache = new Map<string, string>();\n\nexport async function constructMenu(\n menuBar: MountRoutesResult[\"menuBar\"],\n context: PluginRuntimeContext,\n kernel: Kernel\n): Promise<void> {\n const hasSubMenu = !!menuBar.subMenuId;\n if (menuBar.menuId) {\n const defaultCollapsed = menuBar.menu?.defaultCollapsed;\n const menu = await processMenu(menuBar.menuId, context, kernel, hasSubMenu);\n\n if (!isNil(defaultCollapsed)) {\n menu.defaultCollapsed = defaultCollapsed;\n }\n\n menuBar.menu = menu;\n }\n if (hasSubMenu) {\n menuBar.subMenu = await processMenu(menuBar.subMenuId, context, kernel);\n } else {\n menuBar.subMenu = null;\n }\n}\n\nexport async function fetchMenuById(\n menuId: string,\n kernel: Kernel\n): Promise<MenuRawData> {\n if (menuCache.has(menuId)) {\n return menuCache.get(menuId);\n }\n const menuList = window.STANDALONE_MICRO_APPS\n ? kernel.getStandaloneMenus(menuId)\n : ((\n await InstanceApi_postSearch(\"EASYOPS_STORYBOARD_MENU\", {\n page: 1,\n page_size: 200,\n fields: {\n menuId: true,\n title: true,\n icon: true,\n link: true,\n titleDataSource: true,\n defaultCollapsed: true,\n defaultCollapsedBreakpoint: true,\n type: true,\n injectMenuGroupId: true,\n dynamicItems: true,\n itemsResolve: true,\n items: true,\n \"items.children\": true,\n \"app.appId\": true,\n },\n query: {\n menuId: {\n $eq: menuId,\n },\n app: {\n $size: {\n $gt: 0,\n },\n },\n },\n })\n ).list as MenuRawData[]);\n await Promise.all(menuList.map(loadDynamicMenuItems));\n const menuData = mergeMenu(menuList);\n if (!menuData) {\n throw new Error(`Menu not found: ${menuId}`);\n }\n reorderMenuItems(menuData);\n menuCache.set(menuId, menuData);\n return menuData;\n}\n\nfunction mergeMenu(menuList: MenuRawData[]): MenuRawData {\n const mainMenu = menuList.find((menu) => menu.type !== \"inject\");\n if (!mainMenu) {\n return undefined;\n }\n const validMenuList: MenuRawData[] = [];\n const injectWithMenus = new Map<string, MenuRawData[]>();\n for (const menu of menuList) {\n if (menu.items?.length > 0) {\n if (menu.type === \"inject\" && menu.injectMenuGroupId) {\n let injectingMenus = injectWithMenus.get(menu.injectMenuGroupId);\n if (!injectingMenus) {\n injectingMenus = [];\n injectWithMenus.set(menu.injectMenuGroupId, injectingMenus);\n }\n injectingMenus.push(menu);\n } else {\n validMenuList.push(menu);\n }\n }\n }\n return {\n ...mainMenu,\n items: validMenuList.flatMap((menu) =>\n processGroupInject(menu.items, menu, injectWithMenus)\n ),\n };\n}\n\nfunction processGroupInject(\n items: MenuItemRawData[],\n menu: MenuRawData,\n injectWithMenus: Map<string, MenuRawData[]>\n): RuntimeMenuItemRawData[] {\n return items?.map((item) => {\n const foundInjectingMenus =\n item.groupId && injectWithMenus.get(item.groupId);\n if (foundInjectingMenus) {\n // Each menu to be injected with should be injected only once.\n injectWithMenus.delete(item.groupId);\n }\n return {\n ...item,\n children: (\n processGroupInject(item.children, menu, injectWithMenus) ?? []\n ).concat(\n foundInjectingMenus\n ? foundInjectingMenus.flatMap((injectingMenu) =>\n processGroupInject(\n injectingMenu.items,\n injectingMenu,\n injectWithMenus\n )\n )\n : []\n ),\n [symbolAppId]: menu.app[0].appId,\n };\n });\n}\n\nasync function loadDynamicMenuItems(menu: MenuRawData): Promise<void> {\n if (menu.dynamicItems && menu.itemsResolve) {\n const itemsConf: Partial<{ items: MenuItemRawData[] }> = {};\n await _internalApiGetResolver().resolveOne(\n \"reference\",\n {\n transform: \"items\",\n transformMapArray: false,\n ...menu.itemsResolve,\n },\n itemsConf,\n null,\n _internalApiGetCurrentContext()\n );\n menu.items = itemsConf.items;\n }\n}\n\nexport async function processMenu(\n menuId: string,\n context: PluginRuntimeContext,\n kernel: Kernel,\n hasSubMenu?: boolean\n): Promise<SidebarMenu> {\n const { items, app, ...restMenuData } = await fetchMenuById(menuId, kernel);\n\n const menuData = {\n ...(await computeRealValueWithOverrideApp(\n restMenuData,\n app[0].appId,\n context,\n kernel\n )),\n items: await computeMenuItemsWithOverrideApp(items, context, kernel),\n };\n\n return {\n title: await processMenuTitle(menuData),\n icon: menuData.icon,\n link: menuData.link,\n menuItems: menuData.items\n .filter(\n // `if` is already evaluated.\n looseCheckIfOfComputed\n )\n .map((item) => {\n const children = item.children?.filter(\n // `if` is already evaluated.\n looseCheckIfOfComputed\n ) as SidebarMenuSimpleItem[];\n return item.type === \"group\"\n ? {\n type: \"group\",\n title: item.text,\n items: children,\n }\n : children?.length\n ? {\n type: \"subMenu\",\n title: item.text,\n icon: item.icon,\n items: children,\n defaultExpanded: item.defaultExpanded,\n }\n : (item as SidebarMenuSimpleItem);\n }),\n defaultCollapsed: menuData.defaultCollapsed || hasSubMenu,\n defaultCollapsedBreakpoint: menuData.defaultCollapsedBreakpoint,\n };\n}\n\nfunction computeMenuItemsWithOverrideApp(\n items: RuntimeMenuItemRawData[],\n context: PluginRuntimeContext,\n kernel: Kernel\n): Promise<RuntimeMenuItemRawData[]> {\n return Promise.all(\n items.map(async ({ children, ...rest }) => ({\n ...(await computeRealValueWithOverrideApp(\n rest,\n rest[symbolAppId],\n context,\n kernel\n )),\n children:\n children &&\n (await computeMenuItemsWithOverrideApp(children, context, kernel)),\n }))\n );\n}\n\nexport async function processMenuTitle(menuData: MenuRawData): Promise<string> {\n if (menuData.title || !menuData.titleDataSource) {\n return menuData.title;\n }\n const cacheKey = JSON.stringify(menuData.titleDataSource);\n if (menuTitleCache.has(cacheKey)) {\n return menuTitleCache.get(cacheKey);\n }\n const { objectId, instanceId, attributeId } = menuData.titleDataSource;\n const attr = attributeId ?? \"name\";\n const instanceData = await InstanceApi_getDetail(objectId, instanceId, {\n fields: attr,\n });\n let title: string;\n if (attributeId === \"#showKey\" && Array.isArray(instanceData[attr])) {\n const [primary, ...rest] = instanceData[attr];\n title = rest.length > 0 ? `${primary}(${rest.join(\",\")})` : String(primary);\n } else {\n title = String(instanceData[attr]);\n }\n menuTitleCache.set(cacheKey, title);\n return title;\n}\n\nexport function clearMenuTitleCache(): void {\n menuTitleCache.clear();\n}\n\nexport function clearMenuCache(): void {\n menuCache.clear();\n}\n\nfunction reorderMenuItems(menuData: MenuRawData): void {\n menuData.items = sortMenuItems(menuData.items).map((item) => ({\n ...item,\n children: sortMenuItems(item.children) as SidebarMenuSimpleItem[],\n }));\n}\n\nfunction sortMenuItems(list: MenuItemRawData[]): MenuItemRawData[] {\n return sortBy(list, (item) => item.sort ?? -Infinity);\n}\n\nconst overriddenGlobals = [\"APP\", \"I18N\"];\n\n/**\n * If the menu contains evaluations which use `APP` or `I18N`,\n * we have to override app in context when computing real values.\n */\nfunction requireOverrideApp(data: unknown, memo = new WeakSet()): boolean {\n if (typeof data === \"string\") {\n if (isEvaluable(data)) {\n if (overriddenGlobals.some((key) => data.includes(key))) {\n const { attemptToVisitGlobals } = preevaluate(data);\n return overriddenGlobals.some((key) => attemptToVisitGlobals.has(key));\n }\n } else {\n return /\\${\\s*APP\\s*\\./.test(data);\n }\n } else if (isObject(data)) {\n // Avoid call stack overflow.\n // istanbul ignore next\n if (memo.has(data)) {\n return false;\n }\n memo.add(data);\n return (Array.isArray(data) ? data : Object.values(data)).some((item) =>\n requireOverrideApp(item, memo)\n );\n }\n\n return false;\n}\n\nasync function computeRealValueWithOverrideApp<T>(\n data: T,\n overrideAppId: string,\n context: PluginRuntimeContext,\n kernel: Kernel\n): Promise<T> {\n let newContext = context;\n if (overrideAppId !== context.app.id && requireOverrideApp(data)) {\n const storyboard = kernel.bootstrapData.storyboards.find(\n (story) => story.app.id === overrideAppId\n );\n if (storyboard) {\n await kernel.fulfilStoryboard(storyboard);\n newContext = {\n ...context,\n overrideApp: storyboard.app,\n };\n }\n }\n return computeRealValue(data, newContext, true) as T;\n}\n","export type LazyBrickImportFunction = () => Promise<unknown>;\n\nconst lazyBrickRegistry = new Map<string, LazyBrickImportFunction>();\nconst requestsMap = new WeakMap<LazyBrickImportFunction, Promise<unknown>>();\n\nexport function registerLazyBricks(\n bricks: string | string[],\n factory: LazyBrickImportFunction\n): void {\n const factoryWrapper: LazyBrickImportFunction = async () => {\n try {\n window.dispatchEvent(new CustomEvent(\"request.start\"));\n await factory();\n } finally {\n window.dispatchEvent(new CustomEvent(\"request.end\"));\n }\n };\n for (const brick of ([] as string[]).concat(bricks)) {\n if (lazyBrickRegistry.has(brick)) {\n throw new Error(`Lazy brick \"${brick}\" is already registered`);\n }\n lazyBrickRegistry.set(brick, factoryWrapper);\n }\n}\n\nexport async function loadLazyBricks(bricks: Iterable<string>): Promise<void> {\n const requests = new Set<Promise<unknown>>();\n for (const brick of bricks) {\n const factory = lazyBrickRegistry.get(brick);\n if (factory) {\n let request = requestsMap.get(factory);\n if (!request) {\n request = factory();\n requestsMap.set(factory, request);\n }\n requests.add(request);\n }\n }\n await Promise.all(requests);\n}\n\nexport function loadAllLazyBricks(): Promise<void> {\n return loadLazyBricks(lazyBrickRegistry.keys());\n}\n","import {\n MountPoints,\n MicroApp,\n InterceptorParams,\n FeatureFlags,\n DesktopData,\n UserInfo,\n BrickPackage,\n Storyboard,\n MagicBrickConfig,\n PluginRuntimeContext,\n BrickConf,\n TemplatePackage,\n SiteMapItem,\n SidebarMenu,\n RouteConf,\n} from \"@next-core/brick-types\";\nimport compareVersions from \"compare-versions\";\nimport {\n Kernel,\n MenuBar,\n AppBar,\n Resolver,\n registerCustomTemplate,\n registerCustomProcessor,\n} from \"./exports\";\nimport { registerBrickTemplate } from \"./TemplateRegistries\";\nimport {\n RelatedApp,\n RouterState,\n RecentApps,\n CustomApiDefinition,\n AbstractRuntime,\n} from \"./interfaces\";\nimport { getBasePath } from \"../internal/getBasePath\";\nimport { getCurrentMode, getCurrentTheme } from \"../themeAndMode\";\nimport { processMenu } from \"../internal/menu\";\nimport { registerLazyBricks } from \"./LazyBrickRegistry\";\nimport { CustomTemplateContext } from \"./CustomTemplates\";\nimport { registerWidgetFunctions } from \"./WidgetFunctions\";\nimport { registerWidgetI18n } from \"./WidgetI18n\";\n\nlet kernel: Kernel;\nlet fakeTplContext: CustomTemplateContext;\n\n/* istanbul ignore next */\nexport function _dev_only_getBrickPackages(): BrickPackage[] {\n // eslint-disable-next-line no-console\n console.warn(\n \"`_dev_only_getBrickPackages()` is deprecated and will always return an empty array, please use `(await BootstrapV2Api_brickPackageInfo()).bricks` instead\"\n );\n return kernel.bootstrapData.brickPackages;\n}\n\n/* istanbul ignore next */\nexport function _dev_only_getTemplatePackages(): TemplatePackage[] {\n // eslint-disable-next-line no-console\n console.warn(\n \"`_dev_only_getTemplatePackages()` is deprecated and will always return an empty array, please use `(await BootstrapV2Api_brickPackageInfo()).templates` instead\"\n );\n return kernel.bootstrapData.templatePackages;\n}\n\n/* istanbul ignore next */\nexport function _dev_only_getStoryboards(): Storyboard[] {\n // Deprecated since the storyboards are probably not fulfilled.\n return [];\n}\n\n/* istanbul ignore next */\nexport function _dev_only_loadDynamicBricksInBrickConf(\n brickConf: BrickConf\n): Promise<void> {\n return kernel.loadDynamicBricksInBrickConf(brickConf);\n}\n\n/* istanbul ignore next */\nexport function _dev_only_loadEditorBricks(\n editorBricks: string[]\n): Promise<void> {\n return kernel.loadEditorBricks(editorBricks);\n}\n\n/* istanbul ignore next */\nexport function _dev_only_getFakeKernel(\n overrides?: Record<string, unknown>\n): Kernel {\n return {\n bootstrapData: kernel.bootstrapData,\n getFeatureFlags: kernel.getFeatureFlags.bind(kernel),\n loadDynamicBricksInBrickConf:\n kernel.loadDynamicBricksInBrickConf.bind(kernel),\n getProviderBrick: kernel.getProviderBrick.bind(kernel),\n ...overrides,\n } as Kernel;\n}\n\nexport class Runtime implements AbstractRuntime {\n async bootstrap(mountPoints: MountPoints): Promise<void> {\n if (kernel !== undefined) {\n throw new Error(\"Cannot bootstrap more than once.\");\n }\n kernel = new Kernel();\n await kernel.bootstrap(mountPoints);\n }\n\n get menuBar(): MenuBar {\n return kernel.menuBar;\n }\n\n get appBar(): AppBar {\n return kernel.appBar;\n }\n\n /* istanbul ignore next */\n getCurrentApp(): MicroApp {\n return kernel.currentApp;\n }\n\n /* istanbul ignore next */\n getRecentApps(): RecentApps {\n return kernel.getRecentApps();\n }\n\n /* istanbul ignore next */\n getCurrentRoute(): RouteConf {\n return kernel.currentRoute;\n }\n\n getMicroApps({\n excludeInstalling = false,\n includeInternal = false,\n } = {}): MicroApp[] {\n let apps = kernel.bootstrapData.microApps;\n if (excludeInstalling) {\n apps = apps.filter((app) => app.installStatus !== \"running\");\n }\n if (!includeInternal) {\n apps = apps.filter((app) => !app.internal);\n }\n return apps;\n }\n\n hasInstalledApp(appId: string, matchVersion?: string): boolean {\n return kernel.bootstrapData.microApps.some((app) => {\n const foundApp = app.id === appId && app.installStatus !== \"running\";\n if (!matchVersion || !foundApp) {\n return foundApp;\n }\n // Valid `matchVersion`:\n // >=1.2.3\n // >1.2.3\n // =1.2.3\n // <=1.2.3\n // <1.2.3\n const matches = matchVersion.match(/^([><]=?|=)(.*)$/);\n try {\n if (!matches) {\n throw new TypeError(`Invalid match version: ${matchVersion}`);\n }\n return compareVersions.compare(\n app.currentVersion,\n matches[2],\n matches[1] as compareVersions.CompareOperator\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n }\n return false;\n });\n }\n\n reloadMicroApps(interceptorParams?: InterceptorParams): Promise<void> {\n return kernel.reloadMicroApps(\n {\n check_login: true,\n },\n interceptorParams\n );\n }\n\n /* istanbul ignore next */\n reloadSharedData(): void {\n return kernel.loadSharedData();\n }\n\n /* istanbul ignore next */\n getDesktops(): DesktopData[] {\n return kernel.bootstrapData.desktops || [];\n }\n\n /* istanbul ignore next */\n getLaunchpadSiteMap(): SiteMapItem[] {\n return kernel.bootstrapData.siteSort || [];\n }\n\n /* istanbul ignore next */\n getAllUserInfo(): UserInfo[] {\n // eslint-disable-next-line no-console\n console.warn(\n \"`getRuntime().getAllUserInfo()` is deprecated and will always return an empty array, please use `await getRuntime().getAllUserMapAsync()` instead\"\n );\n return [];\n }\n\n /* istanbul ignore next */\n getAllUserMap(): Map<string, UserInfo> {\n // eslint-disable-next-line no-console\n console.warn(\n \"`getRuntime().getAllUserMap()` is deprecated and will always return an empty Map, please use `await getRuntime().getAllUserMapAsync()` instead\"\n );\n return new Map();\n }\n\n /* istanbul ignore next */\n getAllUserMapAsync(): Promise<Map<string, UserInfo>> {\n kernel.loadUsersAsync();\n return kernel.allUserMapPromise;\n }\n\n /* istanbul ignore next */\n getMagicBrickConfigMapAsync(): Promise<Map<string, MagicBrickConfig>> {\n kernel.loadMagicBrickConfigAsync();\n return kernel.allMagicBrickConfigMapPromise;\n }\n\n /* istanbul ignore next */\n fetchMenu(menuId: string): Promise<SidebarMenu> {\n return processMenu(menuId, kernel.router.getCurrentContext(), kernel);\n }\n\n /**\n * 切换主体内容 `filter: blur(...)`;\n * @deprecated\n * @param blur\n */\n toggleFilterOfBlur(blur: boolean): void {\n document.body.classList.toggle(\"filter-of-blur\", blur);\n }\n\n toggleLaunchpadEffect(open: boolean): void {\n document.body.classList.toggle(\"launchpad-open\", open);\n }\n\n /* istanbul ignore next */\n getFeatureFlags(): FeatureFlags {\n return kernel.getFeatureFlags();\n }\n\n getHomepage(): string {\n return kernel.bootstrapData.settings?.homepage ?? \"/\";\n }\n\n getBrandSettings(): Record<string, string> {\n return Object.assign(\n { base_title: \"DevOps 管理专家\" },\n kernel.bootstrapData.settings?.brand\n );\n }\n\n getLaunchpadSettings(): { columns: number; rows: number } {\n return Object.assign(\n {\n columns: 7,\n rows: 4,\n },\n kernel.bootstrapData.settings?.launchpad\n );\n }\n\n getMiscSettings(): Record<string, unknown> {\n return Object.assign({}, kernel.bootstrapData.settings?.misc);\n }\n\n registerBrickTemplate = registerBrickTemplate;\n registerCustomTemplate = registerCustomTemplate;\n registerCustomProcessor = registerCustomProcessor;\n registerLazyBricks = registerLazyBricks;\n registerWidgetFunctions = registerWidgetFunctions;\n registerWidgetI18n = registerWidgetI18n;\n\n /* istanbul ignore next */\n getRelatedApps(appId: string): RelatedApp[] {\n // eslint-disable-next-line no-console\n console.warn(\n \"`getRuntime().getRelatedApps()` is deprecated and will always return an empty array, please use `await getRuntime().getRelatedAppsAsync()` instead\"\n );\n return [];\n }\n\n /* istanbul ignore next */\n getRelatedAppsAsync(appId: string): Promise<RelatedApp[]> {\n return kernel.getRelatedAppsAsync(appId);\n }\n\n /* istanbul ignore next */\n popWorkspaceStack(): void {\n return kernel.popWorkspaceStack();\n }\n\n /* istanbul ignore next */\n resetWorkspaceStack(): void {\n kernel.workspaceStack = [];\n }\n\n getBasePath = getBasePath;\n getCurrentTheme = getCurrentTheme;\n getCurrentMode = getCurrentMode;\n\n applyPageTitle(pageTitle: string): void {\n const baseTitle = this.getBrandSettings().base_title;\n document.title = pageTitle ? `${pageTitle} - ${baseTitle}` : baseTitle;\n }\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetResolver(): Resolver {\n if (process.env.NODE_ENV === \"test\") {\n return { resolve: () => Promise.resolve() } as any;\n }\n return kernel.router.getResolver();\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetRouterState(): RouterState {\n if (process.env.NODE_ENV === \"test\") {\n return \"mounted\";\n }\n return kernel.router.getState();\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetRouterRenderId(): string {\n if (process.env.NODE_ENV === \"test\") {\n return \"render-id-1\";\n }\n return kernel.router.getRenderId();\n}\n\n/* istanbul ignore next */\nexport function _internalApiMessageCloseHandler(event: CloseEvent): void {\n return kernel.router.handleMessageClose(event);\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetCurrentContext(): PluginRuntimeContext {\n if (process.env.NODE_ENV === \"test\") {\n return {} as any;\n }\n return kernel.router.getCurrentContext();\n}\n\nexport function _internalApiHasMatchedApp(pathname: string): boolean {\n for (const { homepage } of kernel.bootstrapData.microApps) {\n if (pathname === homepage || pathname.startsWith(`${homepage}/`)) {\n return true;\n }\n }\n return false;\n}\n\n/* istanbul ignore next */\nexport function _dev_only_checkoutTplContext(\n context: CustomTemplateContext\n): void {\n if (context) {\n fakeTplContext = context;\n } else {\n fakeTplContext = null;\n }\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetTplContext(): CustomTemplateContext {\n if (process.env.NODE_ENV === \"test\") {\n return {} as any;\n }\n if (fakeTplContext) {\n return fakeTplContext;\n }\n return kernel.router.getTplContext();\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetProviderBrick(\n provider: string\n): Promise<HTMLElement> {\n return kernel.getProviderBrick(provider);\n}\n\n/* istanbul ignore next */\nexport function _internalApiGetMicroAppApiOrchestrationMap(): Promise<\n Map<string, CustomApiDefinition>\n> {\n return kernel.allMicroAppApiOrchestrationPromise;\n}\n\n/* istanbul ignore next */\nexport function _internalApiLoadDynamicBricksInBrickConf(\n brickConf: BrickConf\n): Promise<void> {\n return kernel.loadDynamicBricksInBrickConf(brickConf);\n}\n","import { History, LocationDescriptorObject } from \"history\";\nimport {\n PluginHistoryState,\n ExtendedHistory,\n UpdateQueryFunction,\n UpdateQueryOptions,\n UpdateAnchorFunction,\n} from \"@next-core/brick-types\";\nimport { getBasePath } from \"./getBasePath\";\nimport { _internalApiHasMatchedApp } from \"../core/Runtime\";\n\nexport function historyExtended(\n browserHistory: History<PluginHistoryState>\n): ExtendedHistory {\n const { push: originalPush, replace: originalReplace } = browserHistory;\n function updateQueryFactory(method: \"push\" | \"replace\"): UpdateQueryFunction {\n return function updateQuery(\n query: Record<string, any>,\n options: UpdateQueryOptions = {}\n ): void {\n const { extraQuery, clear, keepHash, ...state } = options;\n const urlSearchParams = new URLSearchParams(\n clear ? \"\" : browserHistory.location.search\n );\n const params: Record<string, any> = {};\n Object.assign(params, query, extraQuery);\n for (const [key, value] of Object.entries(params)) {\n if (Array.isArray(value)) {\n urlSearchParams.delete(key);\n for (const item of value) {\n urlSearchParams.append(key, item);\n }\n } else if (value === undefined || value === null || value === \"\") {\n urlSearchParams.delete(key);\n } else {\n urlSearchParams.set(key, value);\n }\n }\n (method === \"push\" ? originalPush : originalReplace)(\n `?${urlSearchParams.toString()}${\n keepHash ? browserHistory.location.hash : \"\"\n }`,\n state\n );\n };\n }\n\n function updateAnchorFactory(\n method: \"push\" /* | \"replace\" */\n ): UpdateAnchorFunction {\n return function updateAnchor(\n hash: string,\n state?: PluginHistoryState\n ): void {\n (method === \"push\" ? originalPush : originalReplace)({\n ...browserHistory.location,\n key: undefined,\n hash,\n state: {\n // The default notify is false\n notify: false,\n ...state,\n },\n });\n };\n }\n\n function reload(): void {\n originalReplace({\n ...browserHistory.location,\n state: {\n ...browserHistory.location.state,\n // Always notify\n notify: true,\n },\n });\n }\n\n let blockMessage: string;\n\n function setBlockMessage(message: string): void {\n blockMessage = message;\n }\n\n function getBlockMessage(): string {\n return blockMessage;\n }\n\n function unblock(): void {\n blockMessage = undefined;\n }\n\n return {\n pushQuery: updateQueryFactory(\"push\"),\n replaceQuery: updateQueryFactory(\"replace\"),\n pushAnchor: updateAnchorFactory(\"push\"),\n // replaceAnchor: updateAnchorFactory(\"replace\"),\n reload,\n setBlockMessage,\n getBlockMessage,\n unblock,\n ...(window.STANDALONE_MICRO_APPS\n ? standaloneHistoryOverridden(browserHistory)\n : null),\n };\n}\n\n/**\n * Override history for standalone micro apps.\n *\n * when `push` or `replace` to other apps, force page refresh.\n */\nfunction standaloneHistoryOverridden(\n browserHistory: History<PluginHistoryState>\n): Pick<History<PluginHistoryState>, \"push\" | \"replace\"> {\n const { push: originalPush, replace: originalReplace } = browserHistory;\n function updateFactory(\n method: \"push\" | \"replace\"\n ): History<PluginHistoryState>[\"push\"] {\n return function update(path, state?) {\n let pathname: string;\n const pathIsString = typeof path === \"string\";\n if (pathIsString) {\n pathname = path;\n } else {\n pathname = path.pathname;\n }\n if (_internalApiHasMatchedApp(pathname)) {\n return (method === \"push\" ? originalPush : originalReplace)(\n path as string,\n state\n );\n }\n // Going to outside apps.\n return location[method === \"push\" ? \"assign\" : \"replace\"](\n pathIsString\n ? getBasePath() + path.replace(/^\\//, \"\")\n : browserHistory.createHref(\n path as LocationDescriptorObject<PluginHistoryState>\n )\n );\n };\n }\n return {\n push: updateFactory(\"push\"),\n replace: updateFactory(\"replace\"),\n };\n}\n","import { createBrowserHistory } from \"history\";\nimport { PluginHistory } from \"@next-core/brick-types\";\nimport { historyExtended } from \"./internal/historyExtended\";\nimport { getBasePath } from \"./internal/getBasePath\";\n\nlet history: PluginHistory;\n\n/** @internal */\nexport function createHistory(): PluginHistory {\n const browserHistory = createBrowserHistory({\n basename: getBasePath().replace(/\\/$/, \"\"),\n });\n Object.assign(browserHistory, historyExtended(browserHistory));\n history = browserHistory as PluginHistory;\n return history;\n}\n\n/**\n * 获取系统会话历史管理器。\n *\n * @returns 系统会话历史管理器。\n */\nexport function getHistory(): PluginHistory {\n return history;\n}\n","import { HttpResponseError } from \"@next-core/brick-http\";\n\nexport function isUnauthenticatedError(error: any): boolean {\n return (\n error instanceof HttpResponseError &&\n error.response.status === 401 &&\n !!error.responseJson &&\n error.responseJson.code === 100003\n );\n}\n","import React from \"react\";\nimport {\n HttpResponseError,\n HttpParseError,\n HttpFetchError,\n} from \"@next-core/brick-http\";\nimport { Modal } from \"antd\";\nimport { ExclamationCircleOutlined } from \"@ant-design/icons\";\nimport { ModalFunc } from \"antd/lib/modal/confirm\";\nimport i18next from \"i18next\";\nimport { K, NS_BRICK_KIT } from \"./i18n/constants\";\nimport { getHistory } from \"./history\";\nimport { isUnauthenticatedError } from \"./internal/isUnauthenticatedError\";\nimport { getRuntime } from \"./runtime\";\n\n/**\n * 将 http 请求错误转换为可读的字符串。\n *\n * @remarks\n *\n * 将依次尝试读取返回的 JSON 格式数据的字符串类型的 `error` 和 `msg` 字段,如果没有找到则返回 `error.toString()` 的结果。\n *\n * @param error - 错误对象。\n *\n * @returns 转换为字符串的错误信息。\n */\nexport function httpErrorToString(\n error: Error | HttpFetchError | HttpResponseError | HttpParseError | Event\n): string {\n if (error instanceof Event && error.target instanceof HTMLScriptElement) {\n return error.target.src;\n }\n if (error instanceof HttpFetchError) {\n return i18next.t(`${NS_BRICK_KIT}:${K.NETWORK_ERROR}`);\n }\n if (error instanceof HttpResponseError) {\n if (error.responseJson) {\n if (typeof error.responseJson.error === \"string\") {\n return error.responseJson.error;\n } else if (typeof error.responseJson.msg === \"string\") {\n return error.responseJson.msg;\n }\n }\n }\n return error.toString();\n}\n\nlet unauthenticatedConfirmModal: ReturnType<ModalFunc>;\n\n/**\n * 处理 http 请求错误(使用 AntDesign 模态框弹出错误信息)。\n *\n * @param error - 错误对象。\n */\nexport function handleHttpError(\n error: Error | HttpFetchError | HttpResponseError | HttpParseError\n): ReturnType<ModalFunc> {\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error)) {\n // Do not show multiple confirm modals.\n if (unauthenticatedConfirmModal) {\n return;\n }\n unauthenticatedConfirmModal = Modal.confirm({\n icon: <ExclamationCircleOutlined />,\n content: <LoginTimeoutMessage />,\n okText: i18next.t(`${NS_BRICK_KIT}:${K.MODAL_OK}`),\n cancelText: i18next.t(`${NS_BRICK_KIT}:${K.MODAL_CANCEL}`),\n onOk: () => {\n const ssoEnabled = getRuntime().getFeatureFlags()[\"sso-enabled\"];\n const history = getHistory();\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: {\n ...history.location,\n state: undefined,\n },\n });\n },\n });\n return;\n }\n\n return Modal.error({\n title: i18next.t(`${NS_BRICK_KIT}:${K.REQUEST_FAILED}`),\n content: (\n <div\n style={{\n whiteSpace: \"pre-wrap\",\n }}\n >\n {httpErrorToString(error)}\n </div>\n ),\n okText: i18next.t(`${NS_BRICK_KIT}:${K.MODAL_OK}`),\n });\n}\n\nexport function LoginTimeoutMessage(): React.ReactElement {\n React.useEffect(() => {\n // Unset confirm modal when it's destroyed.\n return () => {\n unauthenticatedConfirmModal = undefined;\n };\n }, []);\n return <div>{i18next.t(`${NS_BRICK_KIT}:${K.LOGIN_TIMEOUT_MESSAGE}`)}</div>;\n}\n","import {\n PluginWebSocketMessageTopic,\n PluginWebSocketMessage,\n PluginWebSocketMessageEvent,\n} from \"./interfaces\";\n\nexport class WebsocketMessageRequest {\n topic: string;\n data: string;\n event: PluginWebSocketMessageEvent;\n message: PluginWebSocketMessage<PluginWebSocketMessageTopic>;\n constructor(\n event: PluginWebSocketMessageEvent,\n topic: PluginWebSocketMessageTopic\n ) {\n this.event = event;\n this.topic = JSON.stringify(topic);\n this.message = {\n event: event,\n payload: topic,\n };\n this.data = JSON.stringify(this.message);\n }\n\n get identity(): string {\n const { system, topic } = this.message.payload;\n return JSON.stringify({\n system,\n topic,\n event: this.event,\n });\n }\n}\n","import {\n BrickEventHandlerCallback,\n PluginRuntimeContext,\n} from \"@next-core/brick-types\";\nimport { RuntimeBrick } from \"../../core/BrickNode\";\n\nexport interface PluginWebSocketOptions {\n url: string;\n reconnectTimeout?: number;\n retryLimit?: number | null;\n}\n\nexport enum PluginWebSocketMessageEvent {\n START_SESSION = \"SYSTEM.START_SESSION\",\n SESSION_STARTED = \"SYSTEM.SESSION_STARTED\",\n SESSION_FINISHED = \"SYSTEM.SESSION_FINISHED\",\n SESSION_RESTORE = \"SYSTEM.SESSION_RESTORE\",\n SESSION_RESTORE_SUCCESS = \"SYSTEM.SESSION_RESTORE_SUCCESS\",\n SESSION_RESTORE_FAILED = \"SYSTEM.SESSION_RESTORE_FAILED\",\n SUB = \"TOPIC.SUB\",\n SUB_SUCCESS = \"TOPIC.SUB_SUCCESS\",\n SUB_FAILED = \"TOPIC.SUB_FAILED\",\n UNSUB = \"TOPIC.UNSUB\",\n UNSUB_SUCCESS = \"TOPIC.UNSUB_SUCCESS\",\n UNSUB_FAILED = \"TOPIC.UNSUB_FAILED\",\n MESSAGE_PUSH = \"MESSAGE.PUSH\",\n}\n\nexport interface PluginWebSocketMessage<T> {\n event: PluginWebSocketMessageEvent;\n sessionId?: string;\n payload: T;\n}\n\nexport interface PluginWebSocketMessageTopic {\n source?: string;\n system: string;\n topic: string;\n}\n\nexport interface PluginWebSocketMessageResponsePayload\n extends PluginWebSocketMessageTopic {\n expire: number;\n message: Record<string, any>;\n}\n\nexport interface MessageBrickEventHandlerCallback\n extends Pick<BrickEventHandlerCallback, \"success\" | \"error\"> {\n runtimeBrick: RuntimeBrick;\n context: PluginRuntimeContext;\n}\n","import {\n PluginWebSocketMessage,\n PluginWebSocketMessageEvent,\n PluginWebSocketMessageResponsePayload,\n} from \"./interfaces\";\n\nexport class WebsocketMessageResponse {\n topic: string;\n data: string;\n event: PluginWebSocketMessageEvent;\n message: PluginWebSocketMessage<PluginWebSocketMessageResponsePayload>;\n\n constructor(response: string) {\n this.data = response;\n this.message = JSON.parse(response);\n this.event = this.message.event;\n const { system, topic } = this.message.payload;\n this.topic = JSON.stringify({ system, topic });\n }\n\n get identity(): string {\n const { system, topic } = this.message.payload;\n let event;\n switch (this.event) {\n case PluginWebSocketMessageEvent.SUB_SUCCESS:\n case PluginWebSocketMessageEvent.SUB_FAILED:\n event = PluginWebSocketMessageEvent.SUB;\n break;\n case PluginWebSocketMessageEvent.UNSUB_SUCCESS:\n case PluginWebSocketMessageEvent.UNSUB_FAILED:\n event = PluginWebSocketMessageEvent.UNSUB;\n break;\n default:\n event = this.event;\n }\n return JSON.stringify({\n system,\n topic,\n event,\n });\n }\n}\n","import { PluginWebSocketOptions } from \"./interfaces\";\nimport { WebsocketMessageResponse } from \"./WebsocketMessageResponse\";\n\nexport class WebSocketService {\n private retryCount = 0;\n private ws: WebSocket = null;\n private lockReconnect = false;\n public options: PluginWebSocketOptions;\n private messageQueue: Set<string> = new Set();\n public state: \"initial\" | \"connecting\" | \"pending\" | \"finished\" = \"initial\";\n\n private readonly defaultOptions: PluginWebSocketOptions = {\n url: null,\n reconnectTimeout: 1000,\n retryLimit: 6,\n };\n\n constructor(options: PluginWebSocketOptions) {\n this.options = { ...this.defaultOptions, ...options };\n this.createWebSocket();\n }\n\n get readyState(): number {\n return this.ws.readyState;\n }\n\n createWebSocket(): void {\n try {\n this.ws = new WebSocket(this.options.url);\n this.state = \"connecting\";\n this.init();\n } catch (e) {\n this.reconnect();\n /* istanbul ignore next */\n throw e;\n }\n }\n\n private init(): void {\n this.ws.onopen = () => {\n this.state = \"pending\";\n this.sendQueuedMessages();\n this.onOpen();\n this.retryCount = 0;\n this.options.reconnectTimeout = this.defaultOptions.reconnectTimeout;\n };\n\n this.ws.onclose = (event: CloseEvent) => {\n if (this.state === \"finished\") {\n this.onClose(event);\n // eslint-disable-next-line no-console\n console.warn(\"WebSocket was closed.\", event);\n }\n // Error code 1000 means that the connection was closed normally.\n // Try to reconnect.\n if (event.code !== 1000) {\n /* istanbul ignore if */\n if (!navigator.onLine) {\n // eslint-disable-next-line no-console\n console.error(\n \"You are offline. Please connect to the Internet and try again.\"\n );\n }\n this.reconnect();\n }\n };\n\n this.ws.onerror = (event: Event) => {\n this.onError(event);\n\n // eslint-disable-next-line no-console\n console.log(\"WebSocket encountered error: \", event);\n this.reconnect();\n };\n\n this.ws.onmessage = (event: MessageEvent) => {\n const response = new WebsocketMessageResponse(event.data);\n this.onMessage(response);\n };\n }\n\n private sendQueuedMessages(): void {\n if (this.messageQueue.size > 0) {\n [...this.messageQueue].forEach((message) => {\n this.messageQueue.delete(message);\n this.send(message);\n });\n }\n }\n\n send(data: string): void {\n if (this.readyState === WebSocket.OPEN) {\n this.ws.send(data);\n } else {\n this.messageQueue.add(data);\n }\n }\n\n reconnect(): void {\n if (\n this.options.retryLimit > 0 &&\n this.options.retryLimit <= this.retryCount\n ) {\n this.state = \"finished\";\n return;\n }\n if (this.lockReconnect) return;\n\n this.lockReconnect = true;\n this.retryCount++;\n this.onReconnect();\n\n // eslint-disable-next-line no-console\n console.warn(\"WebSocket server reconnecting...\");\n setTimeout(() => {\n this.createWebSocket();\n this.lockReconnect = false;\n this.options.reconnectTimeout = this.options.reconnectTimeout * 2;\n }, this.options.reconnectTimeout);\n }\n\n close(): void {\n this.ws.close();\n }\n\n // Override hook function\n /* eslint-disable @typescript-eslint/no-empty-function */\n\n onOpen(): void {}\n\n // istanbul ignore next\n onClose(event: CloseEvent): void {}\n\n onError(event: Event): void {}\n\n onMessage(message: WebsocketMessageResponse): void {}\n\n onReconnect(): void {}\n /* eslint-enable @typescript-eslint/no-empty-function */\n}\n","import { getBasePath } from \"../internal/getBasePath\";\nimport { WebSocketService } from \"./WebSocketService\";\n\nlet websocket: WebSocketService;\n\nexport const createWebSocket = (): WebSocketService => {\n if (!websocket) {\n const protocol = window.location.protocol === \"https:\" ? \"wss:\" : \"ws:\";\n websocket = new WebSocketService({\n url: `${protocol}//${\n window.location.host\n }${getBasePath()}api/websocket_service/v1/ws`,\n });\n }\n return websocket;\n};\n\nexport function getWebSocket(): WebSocketService {\n return websocket;\n}\n","module.exports = function (xs, fn) {\n var res = [];\n for (var i = 0; i < xs.length; i++) {\n var x = fn(xs[i], i);\n if (isArray(x)) res.push.apply(res, x);\n else res.push(x);\n }\n return res;\n};\n\nvar isArray = Array.isArray || function (xs) {\n return Object.prototype.toString.call(xs) === '[object Array]';\n};\n","'use strict';\nmodule.exports = balanced;\nfunction balanced(a, b, str) {\n if (a instanceof RegExp) a = maybeMatch(a, str);\n if (b instanceof RegExp) b = maybeMatch(b, str);\n\n var r = range(a, b, str);\n\n return r && {\n start: r[0],\n end: r[1],\n pre: str.slice(0, r[0]),\n body: str.slice(r[0] + a.length, r[1]),\n post: str.slice(r[1] + b.length)\n };\n}\n\nfunction maybeMatch(reg, str) {\n var m = str.match(reg);\n return m ? m[0] : null;\n}\n\nbalanced.range = range;\nfunction range(a, b, str) {\n var begs, beg, left, right, result;\n var ai = str.indexOf(a);\n var bi = str.indexOf(b, ai + 1);\n var i = ai;\n\n if (ai >= 0 && bi > 0) {\n begs = [];\n left = str.length;\n\n while (i >= 0 && !result) {\n if (i == ai) {\n begs.push(i);\n ai = str.indexOf(a, i + 1);\n } else if (begs.length == 1) {\n result = [ begs.pop(), bi ];\n } else {\n beg = begs.pop();\n if (beg < left) {\n left = beg;\n right = bi;\n }\n\n bi = str.indexOf(b, i + 1);\n }\n\n i = ai < bi && ai >= 0 ? ai : bi;\n }\n\n if (begs.length) {\n result = [ left, right ];\n }\n }\n\n return result;\n}\n","var concatMap = require('concat-map');\nvar balanced = require('balanced-match');\n\nmodule.exports = expandTop;\n\nvar escSlash = '\\0SLASH'+Math.random()+'\\0';\nvar escOpen = '\\0OPEN'+Math.random()+'\\0';\nvar escClose = '\\0CLOSE'+Math.random()+'\\0';\nvar escComma = '\\0COMMA'+Math.random()+'\\0';\nvar escPeriod = '\\0PERIOD'+Math.random()+'\\0';\n\nfunction numeric(str) {\n return parseInt(str, 10) == str\n ? parseInt(str, 10)\n : str.charCodeAt(0);\n}\n\nfunction escapeBraces(str) {\n return str.split('\\\\\\\\').join(escSlash)\n .split('\\\\{').join(escOpen)\n .split('\\\\}').join(escClose)\n .split('\\\\,').join(escComma)\n .split('\\\\.').join(escPeriod);\n}\n\nfunction unescapeBraces(str) {\n return str.split(escSlash).join('\\\\')\n .split(escOpen).join('{')\n .split(escClose).join('}')\n .split(escComma).join(',')\n .split(escPeriod).join('.');\n}\n\n\n// Basically just str.split(\",\"), but handling cases\n// where we have nested braced sections, which should be\n// treated as individual members, like {a,{b,c},d}\nfunction parseCommaParts(str) {\n if (!str)\n return [''];\n\n var parts = [];\n var m = balanced('{', '}', str);\n\n if (!m)\n return str.split(',');\n\n var pre = m.pre;\n var body = m.body;\n var post = m.post;\n var p = pre.split(',');\n\n p[p.length-1] += '{' + body + '}';\n var postParts = parseCommaParts(post);\n if (post.length) {\n p[p.length-1] += postParts.shift();\n p.push.apply(p, postParts);\n }\n\n parts.push.apply(parts, p);\n\n return parts;\n}\n\nfunction expandTop(str) {\n if (!str)\n return [];\n\n // I don't know why Bash 4.3 does this, but it does.\n // Anything starting with {} will have the first two bytes preserved\n // but *only* at the top level, so {},a}b will not expand to anything,\n // but a{},b}c will be expanded to [a}c,abc].\n // One could argue that this is a bug in Bash, but since the goal of\n // this module is to match Bash's rules, we escape a leading {}\n if (str.substr(0, 2) === '{}') {\n str = '\\\\{\\\\}' + str.substr(2);\n }\n\n return expand(escapeBraces(str), true).map(unescapeBraces);\n}\n\nfunction identity(e) {\n return e;\n}\n\nfunction embrace(str) {\n return '{' + str + '}';\n}\nfunction isPadded(el) {\n return /^-?0\\d/.test(el);\n}\n\nfunction lte(i, y) {\n return i <= y;\n}\nfunction gte(i, y) {\n return i >= y;\n}\n\nfunction expand(str, isTop) {\n var expansions = [];\n\n var m = balanced('{', '}', str);\n if (!m || /\\$$/.test(m.pre)) return [str];\n\n var isNumericSequence = /^-?\\d+\\.\\.-?\\d+(?:\\.\\.-?\\d+)?$/.test(m.body);\n var isAlphaSequence = /^[a-zA-Z]\\.\\.[a-zA-Z](?:\\.\\.-?\\d+)?$/.test(m.body);\n var isSequence = isNumericSequence || isAlphaSequence;\n var isOptions = m.body.indexOf(',') >= 0;\n if (!isSequence && !isOptions) {\n // {a},b}\n if (m.post.match(/,.*\\}/)) {\n str = m.pre + '{' + m.body + escClose + m.post;\n return expand(str);\n }\n return [str];\n }\n\n var n;\n if (isSequence) {\n n = m.body.split(/\\.\\./);\n } else {\n n = parseCommaParts(m.body);\n if (n.length === 1) {\n // x{{a,b}}y ==> x{a}y x{b}y\n n = expand(n[0], false).map(embrace);\n if (n.length === 1) {\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n return post.map(function(p) {\n return m.pre + n[0] + p;\n });\n }\n }\n }\n\n // at this point, n is the parts, and we know it's not a comma set\n // with a single entry.\n\n // no need to expand pre, since it is guaranteed to be free of brace-sets\n var pre = m.pre;\n var post = m.post.length\n ? expand(m.post, false)\n : [''];\n\n var N;\n\n if (isSequence) {\n var x = numeric(n[0]);\n var y = numeric(n[1]);\n var width = Math.max(n[0].length, n[1].length)\n var incr = n.length == 3\n ? Math.abs(numeric(n[2]))\n : 1;\n var test = lte;\n var reverse = y < x;\n if (reverse) {\n incr *= -1;\n test = gte;\n }\n var pad = n.some(isPadded);\n\n N = [];\n\n for (var i = x; test(i, y); i += incr) {\n var c;\n if (isAlphaSequence) {\n c = String.fromCharCode(i);\n if (c === '\\\\')\n c = '';\n } else {\n c = String(i);\n if (pad) {\n var need = width - c.length;\n if (need > 0) {\n var z = new Array(need + 1).join('0');\n if (i < 0)\n c = '-' + z + c.slice(1);\n else\n c = z + c;\n }\n }\n }\n N.push(c);\n }\n } else {\n N = concatMap(n, function(el) { return expand(el, false) });\n }\n\n for (var j = 0; j < N.length; j++) {\n for (var k = 0; k < post.length; k++) {\n var expansion = pre + N[j] + post[k];\n if (!isTop || isSequence || expansion)\n expansions.push(expansion);\n }\n }\n\n return expansions;\n}\n\n","module.exports = minimatch\nminimatch.Minimatch = Minimatch\n\nvar path = { sep: '/' }\ntry {\n path = require('path')\n} catch (er) {}\n\nvar GLOBSTAR = minimatch.GLOBSTAR = Minimatch.GLOBSTAR = {}\nvar expand = require('brace-expansion')\n\nvar plTypes = {\n '!': { open: '(?:(?!(?:', close: '))[^/]*?)'},\n '?': { open: '(?:', close: ')?' },\n '+': { open: '(?:', close: ')+' },\n '*': { open: '(?:', close: ')*' },\n '@': { open: '(?:', close: ')' }\n}\n\n// any single thing other than /\n// don't need to escape / when using new RegExp()\nvar qmark = '[^/]'\n\n// * => any number of characters\nvar star = qmark + '*?'\n\n// ** when dots are allowed. Anything goes, except .. and .\n// not (^ or / followed by one or two dots followed by $ or /),\n// followed by anything, any number of times.\nvar twoStarDot = '(?:(?!(?:\\\\\\/|^)(?:\\\\.{1,2})($|\\\\\\/)).)*?'\n\n// not a ^ or / followed by a dot,\n// followed by anything, any number of times.\nvar twoStarNoDot = '(?:(?!(?:\\\\\\/|^)\\\\.).)*?'\n\n// characters that need to be escaped in RegExp.\nvar reSpecials = charSet('().*{}+?[]^$\\\\!')\n\n// \"abc\" -> { a:true, b:true, c:true }\nfunction charSet (s) {\n return s.split('').reduce(function (set, c) {\n set[c] = true\n return set\n }, {})\n}\n\n// normalizes slashes.\nvar slashSplit = /\\/+/\n\nminimatch.filter = filter\nfunction filter (pattern, options) {\n options = options || {}\n return function (p, i, list) {\n return minimatch(p, pattern, options)\n }\n}\n\nfunction ext (a, b) {\n a = a || {}\n b = b || {}\n var t = {}\n Object.keys(b).forEach(function (k) {\n t[k] = b[k]\n })\n Object.keys(a).forEach(function (k) {\n t[k] = a[k]\n })\n return t\n}\n\nminimatch.defaults = function (def) {\n if (!def || !Object.keys(def).length) return minimatch\n\n var orig = minimatch\n\n var m = function minimatch (p, pattern, options) {\n return orig.minimatch(p, pattern, ext(def, options))\n }\n\n m.Minimatch = function Minimatch (pattern, options) {\n return new orig.Minimatch(pattern, ext(def, options))\n }\n\n return m\n}\n\nMinimatch.defaults = function (def) {\n if (!def || !Object.keys(def).length) return Minimatch\n return minimatch.defaults(def).Minimatch\n}\n\nfunction minimatch (p, pattern, options) {\n if (typeof pattern !== 'string') {\n throw new TypeError('glob pattern string required')\n }\n\n if (!options) options = {}\n\n // shortcut: comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n return false\n }\n\n // \"\" only matches \"\"\n if (pattern.trim() === '') return p === ''\n\n return new Minimatch(pattern, options).match(p)\n}\n\nfunction Minimatch (pattern, options) {\n if (!(this instanceof Minimatch)) {\n return new Minimatch(pattern, options)\n }\n\n if (typeof pattern !== 'string') {\n throw new TypeError('glob pattern string required')\n }\n\n if (!options) options = {}\n pattern = pattern.trim()\n\n // windows support: need to use /, not \\\n if (path.sep !== '/') {\n pattern = pattern.split(path.sep).join('/')\n }\n\n this.options = options\n this.set = []\n this.pattern = pattern\n this.regexp = null\n this.negate = false\n this.comment = false\n this.empty = false\n\n // make the set of regexps etc.\n this.make()\n}\n\nMinimatch.prototype.debug = function () {}\n\nMinimatch.prototype.make = make\nfunction make () {\n // don't do it more than once.\n if (this._made) return\n\n var pattern = this.pattern\n var options = this.options\n\n // empty patterns and comments match nothing.\n if (!options.nocomment && pattern.charAt(0) === '#') {\n this.comment = true\n return\n }\n if (!pattern) {\n this.empty = true\n return\n }\n\n // step 1: figure out negation, etc.\n this.parseNegate()\n\n // step 2: expand braces\n var set = this.globSet = this.braceExpand()\n\n if (options.debug) this.debug = console.error\n\n this.debug(this.pattern, set)\n\n // step 3: now we have a set, so turn each one into a series of path-portion\n // matching patterns.\n // These will be regexps, except in the case of \"**\", which is\n // set to the GLOBSTAR object for globstar behavior,\n // and will not contain any / characters\n set = this.globParts = set.map(function (s) {\n return s.split(slashSplit)\n })\n\n this.debug(this.pattern, set)\n\n // glob --> regexps\n set = set.map(function (s, si, set) {\n return s.map(this.parse, this)\n }, this)\n\n this.debug(this.pattern, set)\n\n // filter out everything that didn't compile properly.\n set = set.filter(function (s) {\n return s.indexOf(false) === -1\n })\n\n this.debug(this.pattern, set)\n\n this.set = set\n}\n\nMinimatch.prototype.parseNegate = parseNegate\nfunction parseNegate () {\n var pattern = this.pattern\n var negate = false\n var options = this.options\n var negateOffset = 0\n\n if (options.nonegate) return\n\n for (var i = 0, l = pattern.length\n ; i < l && pattern.charAt(i) === '!'\n ; i++) {\n negate = !negate\n negateOffset++\n }\n\n if (negateOffset) this.pattern = pattern.substr(negateOffset)\n this.negate = negate\n}\n\n// Brace expansion:\n// a{b,c}d -> abd acd\n// a{b,}c -> abc ac\n// a{0..3}d -> a0d a1d a2d a3d\n// a{b,c{d,e}f}g -> abg acdfg acefg\n// a{b,c}d{e,f}g -> abdeg acdeg abdeg abdfg\n//\n// Invalid sets are not expanded.\n// a{2..}b -> a{2..}b\n// a{b}c -> a{b}c\nminimatch.braceExpand = function (pattern, options) {\n return braceExpand(pattern, options)\n}\n\nMinimatch.prototype.braceExpand = braceExpand\n\nfunction braceExpand (pattern, options) {\n if (!options) {\n if (this instanceof Minimatch) {\n options = this.options\n } else {\n options = {}\n }\n }\n\n pattern = typeof pattern === 'undefined'\n ? this.pattern : pattern\n\n if (typeof pattern === 'undefined') {\n throw new TypeError('undefined pattern')\n }\n\n if (options.nobrace ||\n !pattern.match(/\\{.*\\}/)) {\n // shortcut. no need to expand.\n return [pattern]\n }\n\n return expand(pattern)\n}\n\n// parse a component of the expanded set.\n// At this point, no pattern may contain \"/\" in it\n// so we're going to return a 2d array, where each entry is the full\n// pattern, split on '/', and then turned into a regular expression.\n// A regexp is made at the end which joins each array with an\n// escaped /, and another full one which joins each regexp with |.\n//\n// Following the lead of Bash 4.1, note that \"**\" only has special meaning\n// when it is the *only* thing in a path portion. Otherwise, any series\n// of * is equivalent to a single *. Globstar behavior is enabled by\n// default, and can be disabled by setting options.noglobstar.\nMinimatch.prototype.parse = parse\nvar SUBPARSE = {}\nfunction parse (pattern, isSub) {\n if (pattern.length > 1024 * 64) {\n throw new TypeError('pattern is too long')\n }\n\n var options = this.options\n\n // shortcuts\n if (!options.noglobstar && pattern === '**') return GLOBSTAR\n if (pattern === '') return ''\n\n var re = ''\n var hasMagic = !!options.nocase\n var escaping = false\n // ? => one single character\n var patternListStack = []\n var negativeLists = []\n var stateChar\n var inClass = false\n var reClassStart = -1\n var classStart = -1\n // . and .. never match anything that doesn't start with .,\n // even when options.dot is set.\n var patternStart = pattern.charAt(0) === '.' ? '' // anything\n // not (start or / followed by . or .. followed by / or end)\n : options.dot ? '(?!(?:^|\\\\\\/)\\\\.{1,2}(?:$|\\\\\\/))'\n : '(?!\\\\.)'\n var self = this\n\n function clearStateChar () {\n if (stateChar) {\n // we had some state-tracking character\n // that wasn't consumed by this pass.\n switch (stateChar) {\n case '*':\n re += star\n hasMagic = true\n break\n case '?':\n re += qmark\n hasMagic = true\n break\n default:\n re += '\\\\' + stateChar\n break\n }\n self.debug('clearStateChar %j %j', stateChar, re)\n stateChar = false\n }\n }\n\n for (var i = 0, len = pattern.length, c\n ; (i < len) && (c = pattern.charAt(i))\n ; i++) {\n this.debug('%s\\t%s %s %j', pattern, i, re, c)\n\n // skip over any that are escaped.\n if (escaping && reSpecials[c]) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n switch (c) {\n case '/':\n // completely not allowed, even escaped.\n // Should already be path-split by now.\n return false\n\n case '\\\\':\n clearStateChar()\n escaping = true\n continue\n\n // the various stateChar values\n // for the \"extglob\" stuff.\n case '?':\n case '*':\n case '+':\n case '@':\n case '!':\n this.debug('%s\\t%s %s %j <-- stateChar', pattern, i, re, c)\n\n // all of those are literals inside a class, except that\n // the glob [!a] means [^a] in regexp\n if (inClass) {\n this.debug(' in class')\n if (c === '!' && i === classStart + 1) c = '^'\n re += c\n continue\n }\n\n // if we already have a stateChar, then it means\n // that there was something like ** or +? in there.\n // Handle the stateChar, then proceed with this one.\n self.debug('call clearStateChar %j', stateChar)\n clearStateChar()\n stateChar = c\n // if extglob is disabled, then +(asdf|foo) isn't a thing.\n // just clear the statechar *now*, rather than even diving into\n // the patternList stuff.\n if (options.noext) clearStateChar()\n continue\n\n case '(':\n if (inClass) {\n re += '('\n continue\n }\n\n if (!stateChar) {\n re += '\\\\('\n continue\n }\n\n patternListStack.push({\n type: stateChar,\n start: i - 1,\n reStart: re.length,\n open: plTypes[stateChar].open,\n close: plTypes[stateChar].close\n })\n // negation is (?:(?!js)[^/]*)\n re += stateChar === '!' ? '(?:(?!(?:' : '(?:'\n this.debug('plType %j %j', stateChar, re)\n stateChar = false\n continue\n\n case ')':\n if (inClass || !patternListStack.length) {\n re += '\\\\)'\n continue\n }\n\n clearStateChar()\n hasMagic = true\n var pl = patternListStack.pop()\n // negation is (?:(?!js)[^/]*)\n // The others are (?:<pattern>)<type>\n re += pl.close\n if (pl.type === '!') {\n negativeLists.push(pl)\n }\n pl.reEnd = re.length\n continue\n\n case '|':\n if (inClass || !patternListStack.length || escaping) {\n re += '\\\\|'\n escaping = false\n continue\n }\n\n clearStateChar()\n re += '|'\n continue\n\n // these are mostly the same in regexp and glob\n case '[':\n // swallow any state-tracking char before the [\n clearStateChar()\n\n if (inClass) {\n re += '\\\\' + c\n continue\n }\n\n inClass = true\n classStart = i\n reClassStart = re.length\n re += c\n continue\n\n case ']':\n // a right bracket shall lose its special\n // meaning and represent itself in\n // a bracket expression if it occurs\n // first in the list. -- POSIX.2 2.8.3.2\n if (i === classStart + 1 || !inClass) {\n re += '\\\\' + c\n escaping = false\n continue\n }\n\n // handle the case where we left a class open.\n // \"[z-a]\" is valid, equivalent to \"\\[z-a\\]\"\n if (inClass) {\n // split where the last [ was, make sure we don't have\n // an invalid re. if so, re-walk the contents of the\n // would-be class to re-translate any characters that\n // were passed through as-is\n // TODO: It would probably be faster to determine this\n // without a try/catch and a new RegExp, but it's tricky\n // to do safely. For now, this is safe and works.\n var cs = pattern.substring(classStart + 1, i)\n try {\n RegExp('[' + cs + ']')\n } catch (er) {\n // not a valid class!\n var sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0] + '\\\\]'\n hasMagic = hasMagic || sp[1]\n inClass = false\n continue\n }\n }\n\n // finish up the class.\n hasMagic = true\n inClass = false\n re += c\n continue\n\n default:\n // swallow any state char that wasn't consumed\n clearStateChar()\n\n if (escaping) {\n // no need\n escaping = false\n } else if (reSpecials[c]\n && !(c === '^' && inClass)) {\n re += '\\\\'\n }\n\n re += c\n\n } // switch\n } // for\n\n // handle the case where we left a class open.\n // \"[abc\" is valid, equivalent to \"\\[abc\"\n if (inClass) {\n // split where the last [ was, and escape it\n // this is a huge pita. We now have to re-walk\n // the contents of the would-be class to re-translate\n // any characters that were passed through as-is\n cs = pattern.substr(classStart + 1)\n sp = this.parse(cs, SUBPARSE)\n re = re.substr(0, reClassStart) + '\\\\[' + sp[0]\n hasMagic = hasMagic || sp[1]\n }\n\n // handle the case where we had a +( thing at the *end*\n // of the pattern.\n // each pattern list stack adds 3 chars, and we need to go through\n // and escape any | chars that were passed through as-is for the regexp.\n // Go through and escape them, taking care not to double-escape any\n // | chars that were already escaped.\n for (pl = patternListStack.pop(); pl; pl = patternListStack.pop()) {\n var tail = re.slice(pl.reStart + pl.open.length)\n this.debug('setting tail', re, pl)\n // maybe some even number of \\, then maybe 1 \\, followed by a |\n tail = tail.replace(/((?:\\\\{2}){0,64})(\\\\?)\\|/g, function (_, $1, $2) {\n if (!$2) {\n // the | isn't already escaped, so escape it.\n $2 = '\\\\'\n }\n\n // need to escape all those slashes *again*, without escaping the\n // one that we need for escaping the | character. As it works out,\n // escaping an even number of slashes can be done by simply repeating\n // it exactly after itself. That's why this trick works.\n //\n // I am sorry that you have to see this.\n return $1 + $1 + $2 + '|'\n })\n\n this.debug('tail=%j\\n %s', tail, tail, pl, re)\n var t = pl.type === '*' ? star\n : pl.type === '?' ? qmark\n : '\\\\' + pl.type\n\n hasMagic = true\n re = re.slice(0, pl.reStart) + t + '\\\\(' + tail\n }\n\n // handle trailing things that only matter at the very end.\n clearStateChar()\n if (escaping) {\n // trailing \\\\\n re += '\\\\\\\\'\n }\n\n // only need to apply the nodot start if the re starts with\n // something that could conceivably capture a dot\n var addPatternStart = false\n switch (re.charAt(0)) {\n case '.':\n case '[':\n case '(': addPatternStart = true\n }\n\n // Hack to work around lack of negative lookbehind in JS\n // A pattern like: *.!(x).!(y|z) needs to ensure that a name\n // like 'a.xyz.yz' doesn't match. So, the first negative\n // lookahead, has to look ALL the way ahead, to the end of\n // the pattern.\n for (var n = negativeLists.length - 1; n > -1; n--) {\n var nl = negativeLists[n]\n\n var nlBefore = re.slice(0, nl.reStart)\n var nlFirst = re.slice(nl.reStart, nl.reEnd - 8)\n var nlLast = re.slice(nl.reEnd - 8, nl.reEnd)\n var nlAfter = re.slice(nl.reEnd)\n\n nlLast += nlAfter\n\n // Handle nested stuff like *(*.js|!(*.json)), where open parens\n // mean that we should *not* include the ) in the bit that is considered\n // \"after\" the negated section.\n var openParensBefore = nlBefore.split('(').length - 1\n var cleanAfter = nlAfter\n for (i = 0; i < openParensBefore; i++) {\n cleanAfter = cleanAfter.replace(/\\)[+*?]?/, '')\n }\n nlAfter = cleanAfter\n\n var dollar = ''\n if (nlAfter === '' && isSub !== SUBPARSE) {\n dollar = '$'\n }\n var newRe = nlBefore + nlFirst + nlAfter + dollar + nlLast\n re = newRe\n }\n\n // if the re is not \"\" at this point, then we need to make sure\n // it doesn't match against an empty path part.\n // Otherwise a/* will match a/, which it should not.\n if (re !== '' && hasMagic) {\n re = '(?=.)' + re\n }\n\n if (addPatternStart) {\n re = patternStart + re\n }\n\n // parsing just a piece of a larger pattern.\n if (isSub === SUBPARSE) {\n return [re, hasMagic]\n }\n\n // skip the regexp for non-magical patterns\n // unescape anything in it, though, so that it'll be\n // an exact match against a file etc.\n if (!hasMagic) {\n return globUnescape(pattern)\n }\n\n var flags = options.nocase ? 'i' : ''\n try {\n var regExp = new RegExp('^' + re + '$', flags)\n } catch (er) {\n // If it was an invalid regular expression, then it can't match\n // anything. This trick looks for a character after the end of\n // the string, which is of course impossible, except in multi-line\n // mode, but it's not a /m regex.\n return new RegExp('$.')\n }\n\n regExp._glob = pattern\n regExp._src = re\n\n return regExp\n}\n\nminimatch.makeRe = function (pattern, options) {\n return new Minimatch(pattern, options || {}).makeRe()\n}\n\nMinimatch.prototype.makeRe = makeRe\nfunction makeRe () {\n if (this.regexp || this.regexp === false) return this.regexp\n\n // at this point, this.set is a 2d array of partial\n // pattern strings, or \"**\".\n //\n // It's better to use .match(). This function shouldn't\n // be used, really, but it's pretty convenient sometimes,\n // when you just want to work with a regex.\n var set = this.set\n\n if (!set.length) {\n this.regexp = false\n return this.regexp\n }\n var options = this.options\n\n var twoStar = options.noglobstar ? star\n : options.dot ? twoStarDot\n : twoStarNoDot\n var flags = options.nocase ? 'i' : ''\n\n var re = set.map(function (pattern) {\n return pattern.map(function (p) {\n return (p === GLOBSTAR) ? twoStar\n : (typeof p === 'string') ? regExpEscape(p)\n : p._src\n }).join('\\\\\\/')\n }).join('|')\n\n // must match entire pattern\n // ending in a * or ** will make it less strict.\n re = '^(?:' + re + ')$'\n\n // can match anything, as long as it's not this.\n if (this.negate) re = '^(?!' + re + ').*$'\n\n try {\n this.regexp = new RegExp(re, flags)\n } catch (ex) {\n this.regexp = false\n }\n return this.regexp\n}\n\nminimatch.match = function (list, pattern, options) {\n options = options || {}\n var mm = new Minimatch(pattern, options)\n list = list.filter(function (f) {\n return mm.match(f)\n })\n if (mm.options.nonull && !list.length) {\n list.push(pattern)\n }\n return list\n}\n\nMinimatch.prototype.match = match\nfunction match (f, partial) {\n this.debug('match', f, this.pattern)\n // short-circuit in the case of busted things.\n // comments, etc.\n if (this.comment) return false\n if (this.empty) return f === ''\n\n if (f === '/' && partial) return true\n\n var options = this.options\n\n // windows: need to use /, not \\\n if (path.sep !== '/') {\n f = f.split(path.sep).join('/')\n }\n\n // treat the test path as a set of pathparts.\n f = f.split(slashSplit)\n this.debug(this.pattern, 'split', f)\n\n // just ONE of the pattern sets in this.set needs to match\n // in order for it to be valid. If negating, then just one\n // match means that we have failed.\n // Either way, return on the first hit.\n\n var set = this.set\n this.debug(this.pattern, 'set', set)\n\n // Find the basename of the path by looking for the last non-empty segment\n var filename\n var i\n for (i = f.length - 1; i >= 0; i--) {\n filename = f[i]\n if (filename) break\n }\n\n for (i = 0; i < set.length; i++) {\n var pattern = set[i]\n var file = f\n if (options.matchBase && pattern.length === 1) {\n file = [filename]\n }\n var hit = this.matchOne(file, pattern, partial)\n if (hit) {\n if (options.flipNegate) return true\n return !this.negate\n }\n }\n\n // didn't get any hits. this is success if it's a negative\n // pattern, failure otherwise.\n if (options.flipNegate) return false\n return this.negate\n}\n\n// set partial to true to test if, for example,\n// \"/a/b\" matches the start of \"/*/b/*/d\"\n// Partial means, if you run out of file before you run\n// out of pattern, then that's fine, as long as all\n// the parts match.\nMinimatch.prototype.matchOne = function (file, pattern, partial) {\n var options = this.options\n\n this.debug('matchOne',\n { 'this': this, file: file, pattern: pattern })\n\n this.debug('matchOne', file.length, pattern.length)\n\n for (var fi = 0,\n pi = 0,\n fl = file.length,\n pl = pattern.length\n ; (fi < fl) && (pi < pl)\n ; fi++, pi++) {\n this.debug('matchOne loop')\n var p = pattern[pi]\n var f = file[fi]\n\n this.debug(pattern, p, f)\n\n // should be impossible.\n // some invalid regexp stuff in the set.\n if (p === false) return false\n\n if (p === GLOBSTAR) {\n this.debug('GLOBSTAR', [pattern, p, f])\n\n // \"**\"\n // a/**/b/**/c would match the following:\n // a/b/x/y/z/c\n // a/x/y/z/b/c\n // a/b/x/b/x/c\n // a/b/c\n // To do this, take the rest of the pattern after\n // the **, and see if it would match the file remainder.\n // If so, return success.\n // If not, the ** \"swallows\" a segment, and try again.\n // This is recursively awful.\n //\n // a/**/b/**/c matching a/b/x/y/z/c\n // - a matches a\n // - doublestar\n // - matchOne(b/x/y/z/c, b/**/c)\n // - b matches b\n // - doublestar\n // - matchOne(x/y/z/c, c) -> no\n // - matchOne(y/z/c, c) -> no\n // - matchOne(z/c, c) -> no\n // - matchOne(c, c) yes, hit\n var fr = fi\n var pr = pi + 1\n if (pr === pl) {\n this.debug('** at the end')\n // a ** at the end will just swallow the rest.\n // We have found a match.\n // however, it will not swallow /.x, unless\n // options.dot is set.\n // . and .. are *never* matched by **, for explosively\n // exponential reasons.\n for (; fi < fl; fi++) {\n if (file[fi] === '.' || file[fi] === '..' ||\n (!options.dot && file[fi].charAt(0) === '.')) return false\n }\n return true\n }\n\n // ok, let's see if we can swallow whatever we can.\n while (fr < fl) {\n var swallowee = file[fr]\n\n this.debug('\\nglobstar while', file, fr, pattern, pr, swallowee)\n\n // XXX remove this slice. Just pass the start index.\n if (this.matchOne(file.slice(fr), pattern.slice(pr), partial)) {\n this.debug('globstar found match!', fr, fl, swallowee)\n // found a match.\n return true\n } else {\n // can't swallow \".\" or \"..\" ever.\n // can only swallow \".foo\" when explicitly asked.\n if (swallowee === '.' || swallowee === '..' ||\n (!options.dot && swallowee.charAt(0) === '.')) {\n this.debug('dot detected!', file, fr, pattern, pr)\n break\n }\n\n // ** swallows a segment, and continue.\n this.debug('globstar swallow a segment, and continue')\n fr++\n }\n }\n\n // no match was found.\n // However, in partial mode, we can't say this is necessarily over.\n // If there's more *pattern* left, then\n if (partial) {\n // ran out of file\n this.debug('\\n>>> no match, partial?', file, fr, pattern, pr)\n if (fr === fl) return true\n }\n return false\n }\n\n // something other than **\n // non-magic patterns just have to match exactly\n // patterns with magic have been turned into regexps.\n var hit\n if (typeof p === 'string') {\n if (options.nocase) {\n hit = f.toLowerCase() === p.toLowerCase()\n } else {\n hit = f === p\n }\n this.debug('string match', p, f, hit)\n } else {\n hit = f.match(p)\n this.debug('pattern match', p, f, hit)\n }\n\n if (!hit) return false\n }\n\n // Note: ending in / means that we'll get a final \"\"\n // at the end of the pattern. This can only match a\n // corresponding \"\" at the end of the file.\n // If the file ends in /, then it can only match a\n // a pattern that ends in /, unless the pattern just\n // doesn't have any more for it. But, a/b/ should *not*\n // match \"a/b/*\", even though \"\" matches against the\n // [^/]*? pattern, except in partial mode, where it might\n // simply not be reached yet.\n // However, a/b/ should still satisfy a/*\n\n // now either we fell off the end of the pattern, or we're done.\n if (fi === fl && pi === pl) {\n // ran out of pattern and filename at the same time.\n // an exact hit!\n return true\n } else if (fi === fl) {\n // ran out of file, but still had pattern left.\n // this is ok if we're doing the match as part of\n // a glob fs traversal.\n return partial\n } else if (pi === pl) {\n // ran out of pattern, still have file left.\n // this is only acceptable if we're on the very last\n // empty segment of a file with a trailing slash.\n // a/* should match a/b/\n var emptyFileEnd = (fi === fl - 1) && (file[fi] === '')\n return emptyFileEnd\n }\n\n // should be unreachable.\n throw new Error('wtf?')\n}\n\n// replace stuff like \\* with *\nfunction globUnescape (s) {\n return s.replace(/\\\\(.)/g, '$1')\n}\n\nfunction regExpEscape (s) {\n return s.replace(/[-[\\]{}()*+?.,\\\\^$|#\\s]/g, '\\\\$&')\n}\n","import {\n BrickEventHandler,\n MessageConf,\n PluginRuntimeContext,\n} from \"@next-core/brick-types\";\nimport {\n WebsocketMessageRequest,\n WebsocketMessageResponse,\n} from \"../websocket\";\nimport {\n MessageBrickEventHandlerCallback,\n PluginWebSocketMessageEvent,\n PluginWebSocketMessageResponsePayload,\n PluginWebSocketMessageTopic,\n} from \"../websocket/interfaces\";\nimport { BrickAndMessage } from \"./LocationContext\";\nimport { listenerFactory } from \"../internal/bindListeners\";\nimport { createWebSocket } from \"../websocket/WebSocket\";\nimport minimatch from \"minimatch\";\nimport { WebSocketService } from \"../websocket/WebSocketService\";\nimport { _internalApiMessageCloseHandler } from \"./Runtime\";\nimport { RuntimeBrick } from \"./BrickNode\";\n\nlet messageDispatcher: MessageDispatcher;\n\nexport function createMessageDispatcher(): MessageDispatcher {\n messageDispatcher = new MessageDispatcher();\n\n return messageDispatcher;\n}\n\nexport function getMessageDispatcher(): MessageDispatcher {\n return messageDispatcher;\n}\n\nexport class MessageDispatcher {\n private ws: WebSocketService;\n private context: PluginRuntimeContext;\n private messages: Map<string, BrickAndMessage[]> = new Map<\n string,\n BrickAndMessage[]\n >();\n private messageCallbackHandlers: Map<\n string,\n MessageBrickEventHandlerCallback[]\n > = new Map();\n private channels: Map<string, string> = new Map();\n\n create(\n brickAndMessages: BrickAndMessage[],\n context: PluginRuntimeContext\n ): void {\n if (Array.isArray(brickAndMessages)) {\n for (const { brick, match, message } of brickAndMessages) {\n ([] as MessageConf[]).concat(message).forEach((massageConf) => {\n const channel = massageConf.channel;\n const handler = { brick, match, message };\n if (this.messages.has(channel)) {\n this.messages.set(channel, [\n ...this.messages.get(channel),\n handler,\n ]);\n } else {\n this.messages.set(channel, [handler]);\n }\n });\n }\n }\n this.context = context;\n }\n\n reset(): void {\n this.messages = new Map();\n this.messageCallbackHandlers = new Map();\n }\n\n subscribe(\n channel: string,\n topic: PluginWebSocketMessageTopic,\n callback?: MessageBrickEventHandlerCallback\n ): void {\n const req = new WebsocketMessageRequest(\n PluginWebSocketMessageEvent.SUB,\n topic\n );\n this.setMessageCallbackHandlers(req.identity, callback);\n\n // Prevent repeated subscriptions to the same topic.\n if (!this.channels.has(req.topic)) {\n this.channels.set(req.topic, channel);\n this.send(req.data);\n }\n }\n\n unsubscribe(\n channel: string,\n topic: PluginWebSocketMessageTopic,\n callback: MessageBrickEventHandlerCallback\n ): void {\n const t = this.getTopicByChannel(channel);\n if (!t) {\n // eslint-disable-next-line no-console\n console.error(`Message channel:\"${channel}\" not found. `);\n return;\n }\n const req = new WebsocketMessageRequest(\n PluginWebSocketMessageEvent.UNSUB,\n JSON.parse(t)\n );\n\n this.setMessageCallbackHandlers(req.identity, callback);\n this.send(req.data);\n this.channels.delete(t);\n }\n\n private getTopicByChannel(channel: string): string | undefined {\n return [...this.channels.entries()]\n .filter(([, v]) => v === channel)\n .map(([v]) => v)[0];\n }\n\n private send(data: string): void {\n if (!(this.ws instanceof WebSocketService)) {\n this.createWebsocketService();\n }\n this.ws.send(data);\n }\n\n private createWebsocketService(): void {\n this.ws = createWebSocket();\n this.ws.onMessage = (message) => {\n this.reducer(message);\n };\n this.ws.onClose = (event: CloseEvent) => {\n this.onClose(event);\n };\n }\n\n onClose(event: CloseEvent): void {\n _internalApiMessageCloseHandler(event);\n }\n\n setMessageCallbackHandlers(\n identity: string,\n callback: MessageBrickEventHandlerCallback\n ): void {\n if (this.messageCallbackHandlers.get(identity)) {\n this.messageCallbackHandlers.set(identity, [\n ...this.messageCallbackHandlers.get(identity),\n ...[].concat(callback).filter(Boolean),\n ]);\n } else {\n this.messageCallbackHandlers.set(\n identity,\n [].concat(callback).filter(Boolean)\n );\n }\n }\n\n private reducer(response: WebsocketMessageResponse): void {\n const { event, message, topic } = response;\n switch (event) {\n case PluginWebSocketMessageEvent.MESSAGE_PUSH: {\n this.messagePushHandler(topic, message?.payload);\n break;\n }\n case PluginWebSocketMessageEvent.SUB_SUCCESS: {\n this.messageSubscribeResponseEventHandler(\n response,\n \"success\",\n PluginWebSocketMessageEvent.SUB_SUCCESS\n );\n break;\n }\n case PluginWebSocketMessageEvent.SUB_FAILED: {\n this.messageSubscribeResponseEventHandler(\n response,\n \"error\",\n PluginWebSocketMessageEvent.SUB_FAILED\n );\n break;\n }\n case PluginWebSocketMessageEvent.UNSUB_SUCCESS: {\n this.messageSubscribeResponseEventHandler(\n response,\n \"success\",\n PluginWebSocketMessageEvent.UNSUB_SUCCESS\n );\n break;\n }\n case PluginWebSocketMessageEvent.UNSUB_FAILED: {\n this.messageSubscribeResponseEventHandler(\n response,\n \"error\",\n PluginWebSocketMessageEvent.UNSUB_FAILED\n );\n break;\n }\n default: {\n // eslint-disable-next-line no-console\n console.error(\"Unknown message event:\", event);\n }\n }\n }\n\n private dispatch(\n event: CustomEvent,\n brick: RuntimeBrick,\n context: PluginRuntimeContext,\n handlers: BrickEventHandler[]\n ): void {\n for (const handler of handlers.filter(Boolean)) {\n listenerFactory(handler, context, brick)(event);\n }\n }\n\n private getMessageHandlersByTopic(\n topic: PluginWebSocketMessageTopic\n ): BrickAndMessage[] {\n const finder = [...this.channels.keys()].find((key) => {\n const t = JSON.parse(key);\n // Support glob expressions\n return t.system === topic.system && minimatch(topic.topic, t.topic);\n });\n\n return this.messages.get(this.channels.get(finder));\n }\n private messagePushHandler(\n topic: string,\n payload: PluginWebSocketMessageResponsePayload\n ): void {\n const handlers = this.getMessageHandlersByTopic(JSON.parse(topic));\n\n if (Array.isArray(handlers)) {\n for (const brickAndMessage of handlers) {\n const event = new CustomEvent(\n PluginWebSocketMessageEvent.MESSAGE_PUSH,\n {\n detail: payload?.message,\n }\n );\n\n this.dispatch(\n event,\n brickAndMessage.brick,\n this.context,\n ([] as MessageConf[])\n .concat(brickAndMessage.message)\n .reduce((prev, curr) => prev.concat(curr?.handlers), [])\n );\n }\n }\n }\n\n private messageSubscribeResponseEventHandler(\n response: WebsocketMessageResponse,\n method: \"success\" | \"error\",\n event: PluginWebSocketMessageEvent\n ): void {\n const callbacks = this.messageCallbackHandlers.get(response.identity);\n if (Array.isArray(callbacks)) {\n for (const handler of callbacks) {\n const e = new CustomEvent(event, {\n detail: response.message,\n });\n\n this.dispatch(\n e,\n handler.runtimeBrick,\n handler.context,\n [].concat(handler?.[method]).filter(Boolean)\n );\n }\n }\n }\n}\n","import { ProviderPollOptions } from \"@next-core/brick-types\";\nimport { _internalApiGetRouterRenderId } from \"../core/Runtime\";\n\nexport type PollableCallbackFunction = (result?: unknown) => unknown;\n\nexport interface PollableCallback {\n progress?: PollableCallbackFunction;\n success?: PollableCallbackFunction;\n error?: PollableCallbackFunction;\n finally?: PollableCallbackFunction;\n}\n\nconst timeoutIdList = new Set<number>();\n\nexport function startPoll(\n task: () => unknown,\n { progress, success, error, finally: finallyCallback }: PollableCallback,\n {\n interval,\n leadingRequestDelay,\n continueOnError,\n delegateLoadingBar,\n expectPollEnd,\n expectPollStopImmediately,\n }: ProviderPollOptions\n): void {\n const currentRenderId = _internalApiGetRouterRenderId();\n let currentTimeoutId: number;\n async function poll(): Promise<void> {\n timeoutIdList.delete(currentTimeoutId);\n let shouldStop: boolean;\n try {\n shouldStop = expectPollStopImmediately?.();\n // Stop polling immediately when the expectation is match before task.\n if (!shouldStop) {\n const result = await task();\n // Stop polling immediately when the expectation is match or a different router\n // is rendering after the task processed.\n shouldStop =\n expectPollStopImmediately?.() ||\n currentRenderId !== _internalApiGetRouterRenderId();\n if (!shouldStop) {\n progress?.(result);\n if (expectPollEnd?.(result)) {\n if (delegateLoadingBar) {\n window.dispatchEvent(new CustomEvent(\"request.end\"));\n }\n success?.(result);\n finallyCallback?.();\n } else {\n delayedPoll(interval ?? 3000);\n }\n }\n }\n } catch (e) {\n // Stop polling immediately when the expectation is match or a different router\n // is rendering after the task processed.\n shouldStop =\n expectPollStopImmediately?.() ||\n currentRenderId !== _internalApiGetRouterRenderId();\n if (!shouldStop) {\n error?.(e);\n if (continueOnError) {\n delayedPoll(interval ?? 3000);\n } else {\n finallyCallback?.();\n }\n }\n } finally {\n // Manually dispatch an event of `request.end` when the polling is stopped immediately.\n if (delegateLoadingBar && shouldStop) {\n window.dispatchEvent(new CustomEvent(\"request.end\"));\n }\n }\n }\n\n function delayedPoll(delay: number): void {\n currentTimeoutId = setTimeout(poll, delay) as unknown as number;\n timeoutIdList.add(currentTimeoutId);\n }\n\n delayedPoll(leadingRequestDelay ?? 0);\n\n if (delegateLoadingBar) {\n window.dispatchEvent(new CustomEvent(\"request.start\"));\n }\n}\n\nexport function clearPollTimeout(): void {\n for (const timeoutId of timeoutIdList) {\n clearTimeout(timeoutId);\n }\n timeoutIdList.clear();\n}\n","import yaml from \"js-yaml\";\nimport { ContractApi_searchSingleContract } from \"@next-sdk/api-gateway-sdk\";\nimport { CustomApiDefinition, CustomApiProfile } from \"./interfaces\";\nimport { _internalApiGetMicroAppApiOrchestrationMap } from \"./Runtime\";\n\nconst flowApiDefinitionPromiseMap = new Map<\n string,\n Promise<CustomApiDefinition>\n>();\n\n// Legacy Custom API: `${namespace}@${name}`\n// Flow API: `${namespace}@${name}:${version}`\nexport function isCustomApiProvider(provider: string): boolean {\n return provider.includes(\"@\");\n}\n\nexport async function getArgsOfCustomApi(\n provider: string,\n originalArgs: unknown[]\n): Promise<unknown[]> {\n if (!isCustomApiProvider(provider)) {\n return originalArgs;\n }\n\n const isFlowApi = provider.includes(\":\");\n\n const apiDefinition = isFlowApi\n ? await fetchFlowApiDefinition(provider)\n : (await _internalApiGetMicroAppApiOrchestrationMap()).get(provider);\n\n if (!apiDefinition) {\n throw new Error(\n `${isFlowApi ? \"Flow\" : \"Legacy Custom\"} API not found: \"${provider}\"`\n );\n }\n\n const apiProfile = getApiProfileFromApiDefinition(provider, apiDefinition);\n\n return getApiArgsFromApiProfile(apiProfile, originalArgs);\n}\n\nfunction getApiArgsFromApiProfile(\n {\n uri,\n method,\n name,\n namespace,\n responseWrapper,\n version,\n isFileType,\n }: CustomApiProfile,\n originalArgs: unknown[]\n): unknown[] {\n let fileName: string;\n if (isFileType) {\n fileName = originalArgs.shift() as string;\n }\n\n const { url, args } = getTransformedUriAndRestArgs(\n uri,\n originalArgs,\n name,\n namespace,\n version\n );\n\n return isFileType\n ? [\n fileName,\n {\n url,\n method,\n responseWrapper: false,\n },\n ...args,\n { responseType: \"blob\" },\n ]\n : [\n {\n url,\n method,\n responseWrapper,\n },\n ...args,\n ];\n}\n\nfunction getTransformedUriAndRestArgs(\n uri: string,\n originalArgs: unknown[],\n name: string,\n namespace: string,\n version?: string\n): { url: string; args: unknown[] } {\n const prefix = version\n ? `api/gateway/${namespace}.${name}@${version}`\n : `api/gateway/api_service.${namespace}.${name}`;\n const restArgs = originalArgs.slice();\n const transformedUri = uri.replace(\n /:([^/]+)/g,\n () => restArgs.shift() as string\n );\n return {\n url: prefix + transformedUri,\n args: restArgs,\n };\n}\n\nfunction getApiProfileFromApiDefinition(\n provider: string,\n api: CustomApiDefinition\n): CustomApiProfile {\n const contract: CustomApiDefinition[\"contract\"] =\n typeof api.contract === \"string\"\n ? (yaml.safeLoad(api.contract, {\n schema: yaml.JSON_SCHEMA,\n json: true,\n }) as CustomApiDefinition[\"contract\"])\n : api.contract;\n const { uri, method = \"GET\" } = contract?.endpoint ?? {};\n const responseWrapper = contract?.response\n ? contract.response.wrapper !== false\n : false;\n if (!uri) {\n throw new Error(\n `Missing endpoint.uri in contract of provider \"${provider}\"`\n );\n }\n return {\n uri,\n method: method.toLowerCase() === \"list\" ? \"get\" : method,\n name: api.name,\n namespace: api.namespace,\n version: api.version,\n isFileType: contract?.response?.type === \"file\",\n responseWrapper,\n };\n}\n\nfunction fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition> {\n let promise = flowApiDefinitionPromiseMap.get(provider);\n if (!promise) {\n promise = _fetchFlowApiDefinition(provider);\n flowApiDefinitionPromiseMap.set(provider, promise);\n }\n return promise;\n}\n\nasync function _fetchFlowApiDefinition(\n provider: string\n): Promise<CustomApiDefinition> {\n const [namespaceName, nameWithVersion] = provider.split(\"@\");\n const [name, version] = nameWithVersion.split(\":\");\n const { contractData } = await ContractApi_searchSingleContract({\n contractName: `${namespaceName}.${name}`,\n version,\n });\n\n // return undefined if don't found contract\n if (contractData) {\n return {\n name: contractData.name,\n namespace: contractData.namespace?.[0]?.name,\n version: contractData.version,\n contract: {\n endpoint: contractData.endpoint,\n response: contractData.response,\n },\n };\n }\n}\n","import { message } from \"antd\";\nimport { isObject } from \"@next-core/brick-utils\";\nimport { userAnalytics } from \"@next-core/easyops-analytics\";\nimport {\n BrickEventHandler,\n BrickEventHandlerCallback,\n BrickEventsMap,\n BuiltinBrickEventHandler,\n CustomBrickEventHandler,\n PluginRuntimeContext,\n ExecuteCustomBrickEventHandler,\n SetPropsCustomBrickEventHandler,\n RuntimeBrickElement,\n StoryboardContextItem,\n UseProviderEventHandler,\n ProviderPollOptions,\n SiteTheme,\n} from \"@next-core/brick-types\";\nimport { handleHttpError, httpErrorToString } from \"../handleHttpError\";\nimport { computeRealValue, setProperties } from \"./setProperties\";\nimport { getHistory } from \"../history\";\nimport {\n _internalApiGetCurrentContext,\n _internalApiGetProviderBrick,\n symbolForParentTemplate,\n RuntimeBrickElementWithTplSymbols,\n symbolForParentRefForUseBrickInPortal,\n RuntimeBrick,\n} from \"../core/exports\";\nimport { getUrlBySegueFactory } from \"./segue\";\nimport { looseCheckIf, IfContainer } from \"../checkIf\";\nimport { getUrlByAliasFactory } from \"./alias\";\nimport { getMessageDispatcher } from \"../core/MessageDispatcher\";\nimport { PluginWebSocketMessageTopic } from \"../websocket/interfaces\";\nimport { applyTheme, applyMode } from \"../themeAndMode\";\nimport { clearMenuTitleCache, clearMenuCache } from \"./menu\";\nimport { PollableCallback, PollableCallbackFunction, startPoll } from \"./poll\";\nimport { getArgsOfCustomApi } from \"../core/FlowApi\";\nimport { getRuntime } from \"../runtime\";\n\nexport function bindListeners(\n brick: HTMLElement,\n eventsMap: BrickEventsMap,\n context?: PluginRuntimeContext\n): void {\n Object.entries(eventsMap).forEach(([eventType, handlers]) => {\n [].concat(handlers).forEach((handler: BrickEventHandler) => {\n const listener = listenerFactory(handler, context, { element: brick });\n brick.addEventListener(eventType, listener);\n rememberListeners(brick, eventType, listener, handler);\n });\n });\n}\n\nexport function unbindListeners(brick: HTMLElement): void {\n if ((brick as RuntimeBrickElement).$$eventListeners) {\n for (const [eventType, listener] of (brick as RuntimeBrickElement)\n .$$eventListeners) {\n brick.removeEventListener(eventType, listener);\n }\n (brick as RuntimeBrickElement).$$eventListeners = [];\n }\n}\n\nfunction rememberListeners(\n brick: RuntimeBrickElement,\n eventType: string,\n listener: EventListener,\n handler: BrickEventHandler\n): void {\n if (!brick.$$eventListeners) {\n brick.$$eventListeners = [];\n }\n brick.$$eventListeners.push([eventType, listener, handler]);\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 listenerFactory(\n handler: BrickEventHandler,\n context: PluginRuntimeContext,\n runtimeBrick: RuntimeBrick\n): EventListener {\n if (isBuiltinHandler(handler)) {\n const method = handler.action.split(\".\")[1] 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 return builtinHistoryListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"history.goBack\":\n case \"history.goForward\":\n case \"history.reload\":\n case \"history.unblock\":\n return builtinHistoryWithoutArgsListenerFactory(\n method,\n handler,\n context\n );\n case \"segue.push\":\n case \"segue.replace\":\n return builtinSegueListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"alias.push\":\n case \"alias.replace\":\n return builtinAliasListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"legacy.go\":\n return builtinIframeListenerFactory(handler.args, handler, context);\n case \"window.open\":\n return builtinWindowListenerFactory(handler.args, handler, context);\n case \"location.reload\":\n case \"location.assign\":\n return builtinLocationListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"localStorage.setItem\":\n case \"localStorage.removeItem\":\n return builtinWebStorageListenerFactory(\n \"local\",\n method,\n handler.args,\n handler,\n context\n );\n case \"sessionStorage.setItem\":\n case \"sessionStorage.removeItem\":\n return builtinWebStorageListenerFactory(\n \"session\",\n method,\n handler.args,\n handler,\n context\n );\n case \"event.preventDefault\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n event.preventDefault();\n }) as EventListener;\n case \"console.log\":\n case \"console.error\":\n case \"console.warn\":\n case \"console.info\":\n return builtinConsoleListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"message.success\":\n case \"message.error\":\n case \"message.info\":\n case \"message.warn\":\n return builtinMessageListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"handleHttpError\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n handleHttpError(event.detail);\n }) as EventListener;\n case \"context.assign\":\n case \"context.replace\":\n return builtinContextListenerFactory(\n method,\n handler.args,\n handler,\n context\n );\n case \"tpl.dispatchEvent\":\n return builtinTplDispatchEventFactory(\n runtimeBrick,\n handler.args,\n handler,\n context\n );\n case \"message.subscribe\":\n case \"message.unsubscribe\":\n return builtinWebSocketListenerFactory(\n runtimeBrick,\n method,\n handler.args,\n handler,\n handler.callback,\n context\n );\n case \"theme.setDarkTheme\":\n case \"theme.setLightTheme\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n applyTheme(\n handler.action === \"theme.setDarkTheme\" ? \"dark\" : \"light\"\n );\n }) as EventListener;\n case \"theme.setTheme\":\n return builtinThemeListenerFactory(handler.args, handler, context);\n case \"mode.setDashboardMode\":\n case \"mode.setDefaultMode\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n applyMode(\n handler.action === \"mode.setDashboardMode\" ? \"dashboard\" : \"default\"\n );\n }) as EventListener;\n case \"menu.clearMenuTitleCache\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n clearMenuTitleCache();\n }) as EventListener;\n case \"menu.clearMenuCache\":\n return ((event: CustomEvent) => {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n clearMenuCache();\n }) as EventListener;\n case \"analytics.event\":\n return builtinAnalyticsListenerFactory(handler.args, handler, context);\n default:\n return () => {\n // eslint-disable-next-line no-console\n console.error(\"unknown event listener action:\", handler.action);\n };\n }\n }\n\n if (isUseProviderHandler(handler)) {\n return usingProviderFactory(handler, context, runtimeBrick);\n }\n\n if (isCustomHandler(handler)) {\n return customListenerFactory(handler, handler, context, runtimeBrick);\n }\n}\n\nfunction usingProviderFactory(\n handler: UseProviderEventHandler,\n context: PluginRuntimeContext,\n runtimeBrick: RuntimeBrick\n): EventListener {\n return async function (event: CustomEvent): Promise<void> {\n if (!looseCheckIf(handler, { ...context, event })) {\n return;\n }\n try {\n const providerBrick = await _internalApiGetProviderBrick(\n handler.useProvider\n );\n const method = handler.method !== \"saveAs\" ? \"resolve\" : \"saveAs\";\n brickCallback(\n providerBrick,\n handler,\n method,\n context,\n runtimeBrick,\n event\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(httpErrorToString(error));\n }\n } as unknown as EventListener;\n}\n\nfunction builtinTplDispatchEventFactory(\n runtimeBrick: RuntimeBrick,\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const tpl = getParentTemplate(runtimeBrick.element);\n if (!tpl) {\n // eslint-disable-next-line no-console\n console.warn(\n \"Parent template not found for brick:\",\n runtimeBrick.element\n );\n return;\n }\n const [type, init] = argsFactory(args, context, event) as [\n string,\n CustomEventInit\n ];\n tpl.dispatchEvent(new CustomEvent(type, init));\n } as EventListener;\n}\n\nfunction builtinContextListenerFactory(\n method: \"assign\" | \"replace\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const [name, value] = argsFactory(args, context, event);\n if (typeof name !== \"string\") {\n // eslint-disable-next-line no-console\n console.error(\"Invalid context name:\", name);\n return;\n }\n const { storyboardContext } = _internalApiGetCurrentContext();\n const contextItem: StoryboardContextItem = storyboardContext.get(name);\n if (!contextItem) {\n // eslint-disable-next-line no-console\n console.warn(\n `Context \"${name}\" is not declared, we recommend declaring it first.`\n );\n storyboardContext.set(name, {\n type: \"free-variable\",\n value,\n });\n return;\n }\n if (contextItem.type !== \"free-variable\") {\n // eslint-disable-next-line no-console\n console.error(\n `Conflict storyboard context \"${name}\", expected \"free-variable\", received \"${contextItem.type}\".`\n );\n return;\n }\n // `context.replace`\n if (method === \"replace\") {\n contextItem.value = value;\n } else {\n // `context.assign`\n const previousValue = contextItem.value;\n if (isObject(previousValue)) {\n Object.assign(previousValue, value);\n } else {\n // eslint-disable-next-line no-console\n console.warn(\n `Non-object current value of context \"${name}\" for \"context.assign\", try \"context.replace\" instead.`\n );\n contextItem.value = value;\n }\n }\n contextItem.eventTarget?.dispatchEvent(\n new CustomEvent(\"context.change\", {\n detail: contextItem.value,\n })\n );\n } as EventListener;\n}\n\nfunction builtinLocationListenerFactory(\n method: \"assign\" | \"reload\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n if (method === \"assign\") {\n const [url] = argsFactory(args, context, event) as [string];\n location.assign(url);\n } else {\n location[method]();\n }\n } as EventListener;\n}\n\nfunction builtinSegueListenerFactory(\n method: \"push\" | \"replace\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const { app, segues } = _internalApiGetCurrentContext();\n getHistory()[method](\n getUrlBySegueFactory(\n app,\n segues\n )(\n ...(argsFactory(args, context, event) as Parameters<\n ReturnType<typeof getUrlBySegueFactory>\n >)\n )\n );\n } as EventListener;\n}\n\nfunction builtinAliasListenerFactory(\n method: \"push\" | \"replace\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const { app } = _internalApiGetCurrentContext();\n getHistory()[method](\n getUrlByAliasFactory(app)(\n ...(argsFactory(args, context, event) as Parameters<\n ReturnType<typeof getUrlByAliasFactory>\n >)\n )\n );\n } as EventListener;\n}\n\nfunction builtinWebSocketListenerFactory(\n runtimeBrick: RuntimeBrick,\n method: \"subscribe\" | \"unsubscribe\",\n args: any[],\n ifContainer: IfContainer,\n callback: BrickEventHandlerCallback,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n\n const [channel, messageTopic] = argsFactory(args, context, event) as [\n string,\n PluginWebSocketMessageTopic\n ];\n\n const { system, topic } = messageTopic || {};\n getMessageDispatcher()[method](\n channel,\n { system, topic },\n { ...callback, runtimeBrick, context }\n );\n } as EventListener;\n}\n\nfunction builtinIframeListenerFactory(\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n const legacyIframeMountPoint = document.querySelector(\n \"#legacy-iframe-mount-point\"\n );\n\n const postMessage = (url: string): void => {\n const iframe = legacyIframeMountPoint.firstChild as HTMLIFrameElement;\n if (\n iframe &&\n iframe.contentWindow &&\n (iframe.contentWindow as any).angular\n ) {\n iframe.contentWindow.postMessage(\n {\n type: \"location.url\",\n url,\n },\n location.origin\n );\n }\n };\n\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const [url] = argsFactory(args, context, event) as [string];\n postMessage(url);\n } as EventListener;\n}\n\nfunction builtinWindowListenerFactory(\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const [url, target, features] = argsFactory(args, context, event) as [\n string,\n string,\n string\n ];\n window.open(url, target || \"_self\", features);\n } as EventListener;\n}\n\nfunction builtinAnalyticsListenerFactory(\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const [action, data] = argsFactory(args, context, event) as [\n string,\n Record<string, unknown>\n ];\n const runtime = getRuntime();\n userAnalytics.event(action, {\n micro_app_id: runtime.getCurrentApp()?.id,\n route_alias: runtime.getCurrentRoute()?.alias,\n ...data,\n });\n } as EventListener;\n}\n\nfunction builtinThemeListenerFactory(\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const [theme] = argsFactory(args, context, event);\n applyTheme(theme as SiteTheme);\n } as EventListener;\n}\n\nfunction findRefElement(brick: RuntimeBrickElement, ref: string): HTMLElement {\n return getParentTemplate(brick)?.$$getElementByRef?.(ref);\n}\n\nfunction getParentTemplate(brick: RuntimeBrickElement): RuntimeBrickElement {\n let tpl = brick;\n while (\n (tpl =\n (tpl as RuntimeBrickElementWithTplSymbols)[symbolForParentTemplate] ||\n (tpl as RuntimeBrickElementWithTplSymbols)[\n symbolForParentRefForUseBrickInPortal\n ]?.current ||\n tpl.parentElement)\n ) {\n if (tpl.$$typeof === \"custom-template\") {\n return tpl;\n }\n }\n}\n\nfunction customListenerFactory(\n handler: CustomBrickEventHandler,\n ifContainer: IfContainer,\n context: PluginRuntimeContext,\n runtimeBrick: RuntimeBrick\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n let targets: HTMLElement[] = [];\n if (typeof handler.target === \"string\") {\n if (handler.target === \"_self\") {\n targets.push(runtimeBrick.element);\n } else if (handler.multiple) {\n targets = Array.from(document.querySelectorAll(handler.target));\n } else {\n const found = document.querySelector(handler.target) as HTMLElement;\n if (found !== null) {\n targets.push(found);\n }\n }\n } else if (handler.target) {\n targets.push(handler.target as HTMLElement);\n } else if (handler.targetRef) {\n const found = findRefElement(runtimeBrick.element, handler.targetRef);\n if (found) {\n targets.push(found);\n }\n }\n if (targets.length === 0) {\n // eslint-disable-next-line no-console\n console.error(\"target not found:\", handler.target || handler.targetRef);\n return;\n }\n if (isExecuteCustomHandler(handler)) {\n targets.forEach((target) => {\n brickCallback(\n target,\n handler,\n handler.method,\n context,\n runtimeBrick,\n event,\n {\n useEventAsDefault: true,\n }\n );\n });\n } else if (isSetPropsCustomHandler(handler)) {\n setProperties(\n targets,\n handler.properties,\n {\n ...context,\n event,\n },\n handler.injectDeep !== false\n );\n }\n } as EventListener;\n}\n\nasync function brickCallback(\n target: HTMLElement,\n handler: ExecuteCustomBrickEventHandler | UseProviderEventHandler,\n method: string,\n context: PluginRuntimeContext,\n runtimeBrick: RuntimeBrick,\n event: CustomEvent,\n options?: ArgsFactoryOptions\n): Promise<void> {\n if (typeof (target as any)[method] !== \"function\") {\n // eslint-disable-next-line no-console\n console.error(\"target has no method:\", {\n target,\n method: method,\n });\n return;\n }\n\n const task = async (): Promise<unknown> => {\n let computedArgs = argsFactory(handler.args, context, event, options);\n if (isUseProviderHandler(handler)) {\n computedArgs = await getArgsOfCustomApi(\n handler.useProvider,\n computedArgs\n );\n }\n return (target as any)[method](...computedArgs);\n };\n\n const {\n success,\n error,\n finally: finallyHook,\n progress,\n } = handler.callback ?? {};\n\n if (!(success || error || finallyHook || progress)) {\n task();\n return;\n }\n\n const callbackFactory =\n (\n eventType: string,\n specificHandler: BrickEventHandler | BrickEventHandler[]\n ): PollableCallbackFunction =>\n (result: unknown) => {\n if (specificHandler) {\n try {\n const event = new CustomEvent(eventType, {\n detail: result,\n });\n [].concat(specificHandler).forEach((eachHandler) => {\n listenerFactory(eachHandler, context, runtimeBrick)(event);\n });\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 (eventType === \"callback.error\") {\n // eslint-disable-next-line\n console.error(\"Unhandled callback error:\", result);\n }\n };\n\n const pollableCallback: Required<PollableCallback> = {\n progress: callbackFactory(\"callback.progress\", progress),\n success: callbackFactory(\"callback.success\", success),\n error: callbackFactory(\"callback.error\", error),\n finally: callbackFactory(\"callback.finally\", finallyHook),\n };\n\n let poll: ProviderPollOptions;\n if (isUseProviderHandler(handler)) {\n poll = computeRealValue(handler.poll, { ...context, event }, true);\n }\n\n if (poll?.enabled) {\n startPoll(task, pollableCallback, poll);\n } else {\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}\n\nfunction builtinHistoryListenerFactory(\n method:\n | \"push\"\n | \"replace\"\n | \"pushQuery\"\n | \"replaceQuery\"\n | \"pushAnchor\"\n | \"block\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n (\n getHistory()[method === \"block\" ? \"setBlockMessage\" : method] as (\n ...args: unknown[]\n ) => unknown\n )(\n ...argsFactory(args, context, event, {\n useEventDetailAsDefault: true,\n })\n );\n } as EventListener;\n}\n\nfunction builtinHistoryWithoutArgsListenerFactory(\n method: \"goBack\" | \"goForward\" | \"reload\" | \"unblock\",\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n getHistory()[method]();\n } as EventListener;\n}\n\nfunction builtinConsoleListenerFactory(\n method: \"log\" | \"error\" | \"warn\" | \"info\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent): void {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n // eslint-disable-next-line no-console\n console[method](\n ...argsFactory(args, context, event, {\n useEventAsDefault: true,\n })\n );\n } as EventListener;\n}\n\nfunction builtinMessageListenerFactory(\n method: \"success\" | \"error\" | \"info\" | \"warn\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent) {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n message[method](\n ...(argsFactory(args, context, event) as Parameters<\n typeof message[\"success\"]\n >)\n );\n } as EventListener;\n}\n\nfunction builtinWebStorageListenerFactory(\n storageType: \"local\" | \"session\",\n method: \"setItem\" | \"removeItem\",\n args: unknown[],\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n): EventListener {\n return function (event: CustomEvent) {\n if (!looseCheckIf(ifContainer, { ...context, event })) {\n return;\n }\n const storage = storageType === \"local\" ? localStorage : sessionStorage;\n const [name, value] = argsFactory(args, context, event);\n if (method === \"setItem\") {\n if (value !== undefined) {\n storage.setItem(name as string, JSON.stringify(value));\n }\n } else if (method === \"removeItem\") {\n storage.removeItem(name as string);\n }\n } as EventListener;\n}\n\ninterface ArgsFactoryOptions {\n useEventAsDefault?: boolean;\n useEventDetailAsDefault?: boolean;\n}\n\nfunction argsFactory(\n args: unknown[],\n context: PluginRuntimeContext,\n event: CustomEvent,\n options: ArgsFactoryOptions = {}\n): unknown[] {\n return Array.isArray(args)\n ? (computeRealValue(\n args,\n {\n ...context,\n event,\n },\n true\n ) as unknown[])\n : options.useEventAsDefault\n ? [event]\n : options.useEventDetailAsDefault\n ? [event.detail]\n : [];\n}\n","import {\n PluginRuntimeContext,\n BrickLifeCycle,\n RefForProxy,\n} from \"@next-core/brick-types\";\nimport { bindListeners } from \"../internal/bindListeners\";\nimport { setRealProperties } from \"../internal/setProperties\";\nimport { RuntimeCustomTemplateProxy } from \"./CustomTemplates/internalInterfaces\";\nimport {\n handleProxyOfCustomTemplate,\n symbolForParentTemplate,\n RuntimeBrickElementWithTplSymbols,\n} from \"./exports\";\n\nexport interface RuntimeBrick {\n type?: string;\n properties?: Record<string, any>;\n template?: string;\n params?: Record<string, any>;\n events?: Record<string, any>;\n children?: RuntimeBrick[];\n slotId?: string;\n context?: PluginRuntimeContext;\n lifeCycle?: BrickLifeCycle;\n element?: HTMLElement;\n bg?: boolean;\n proxy?: RuntimeCustomTemplateProxy;\n proxyRefs?: Map<string, RefForProxy>;\n refForProxy?: {\n brick?: RuntimeBrick;\n };\n parentTemplate?: RuntimeBrick;\n isParent?: boolean;\n ref?: string;\n}\n\nexport class BrickNode {\n $$brick: RuntimeBrick;\n\n private children: BrickNode[] = [];\n\n constructor(brick: RuntimeBrick) {\n this.$$brick = brick;\n }\n\n mount(): HTMLElement {\n const brick = this.$$brick;\n const tagName = brick.type;\n\n if (tagName.includes(\"-\") && !customElements.get(tagName)) {\n // eslint-disable-next-line no-console\n console.error(`Undefined custom element: ${tagName}`);\n }\n\n // istanbul ignore if\n if (tagName === \"basic-bricks.script-brick\") {\n // eslint-disable-next-line no-console\n console.warn(\n \"`basic-bricks.script-brick` is deprecated, please take caution when using it\"\n );\n }\n\n const node = document.createElement(tagName);\n brick.element = node;\n\n if (brick.slotId) {\n node.setAttribute(\"slot\", brick.slotId);\n }\n setRealProperties(node, brick.properties);\n bindListeners(node, brick.events, brick.context);\n\n if (Array.isArray(brick.children)) {\n this.children = brick.children.map((child) => new BrickNode(child));\n const childNodes = this.children.map((child) => child.mount());\n childNodes.forEach((child) => node.appendChild(child));\n } else {\n this.children = [];\n }\n\n return node;\n }\n\n unmount(): void {\n this.children.forEach((child) => {\n child.unmount();\n });\n }\n\n // Handle proxies later after bricks in portal and main both mounted.\n afterMount(): void {\n const brick = this.$$brick;\n if (brick.parentTemplate) {\n (brick.element as RuntimeBrickElementWithTplSymbols)[\n symbolForParentTemplate\n ] = brick.parentTemplate.element;\n }\n handleProxyOfCustomTemplate(brick);\n this.children.forEach((child) => {\n child.afterMount();\n });\n }\n}\n","import { http } from '@next-core/brick-http';\n\nfunction asyncGeneratorStep(gen, resolve, reject, _next, _throw, key, arg) {\n try {\n var info = gen[key](arg);\n var value = info.value;\n } catch (error) {\n reject(error);\n return;\n }\n\n if (info.done) {\n resolve(value);\n } else {\n Promise.resolve(value).then(_next, _throw);\n }\n}\n\nfunction _asyncToGenerator(fn) {\n return function () {\n var self = this,\n args = arguments;\n return new Promise(function (resolve, reject) {\n var gen = fn.apply(self, args);\n\n function _next(value) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"next\", value);\n }\n\n function _throw(err) {\n asyncGeneratorStep(gen, resolve, reject, _next, _throw, \"throw\", err);\n }\n\n _next(undefined);\n });\n };\n}\n\nfunction _defineProperty(obj, key, value) {\n if (key in obj) {\n Object.defineProperty(obj, key, {\n value: value,\n enumerable: true,\n configurable: true,\n writable: true\n });\n } else {\n obj[key] = value;\n }\n\n return obj;\n}\n\nfunction ownKeys(object, enumerableOnly) {\n var keys = Object.keys(object);\n\n if (Object.getOwnPropertySymbols) {\n var symbols = Object.getOwnPropertySymbols(object);\n if (enumerableOnly) symbols = symbols.filter(function (sym) {\n return Object.getOwnPropertyDescriptor(object, sym).enumerable;\n });\n keys.push.apply(keys, symbols);\n }\n\n return keys;\n}\n\nfunction _objectSpread2(target) {\n for (var i = 1; i < arguments.length; i++) {\n var source = arguments[i] != null ? arguments[i] : {};\n\n if (i % 2) {\n ownKeys(Object(source), true).forEach(function (key) {\n _defineProperty(target, key, source[key]);\n });\n } else if (Object.getOwnPropertyDescriptors) {\n Object.defineProperties(target, Object.getOwnPropertyDescriptors(source));\n } else {\n ownKeys(Object(source)).forEach(function (key) {\n Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key));\n });\n }\n }\n\n return target;\n}\n\nvar login = /*#__PURE__*/function () {\n var _ref = _asyncToGenerator(function* (data, options) {\n return (yield http.post(\"api/auth/login\", data, options)).data;\n });\n\n return function login(_x, _x2) {\n return _ref.apply(this, arguments);\n };\n}();\nvar logout = options => http.post(\"api/auth/logout\", options);\nvar checkLogin = /*#__PURE__*/function () {\n var _ref2 = _asyncToGenerator(function* (options) {\n return (yield http.get(\"api/auth/login\", options)).data;\n });\n\n return function checkLogin(_x3) {\n return _ref2.apply(this, arguments);\n };\n}();\nvar bootstrap = /*#__PURE__*/function () {\n var _ref3 = _asyncToGenerator(function* (params, options) {\n return (yield http.get(\"api/auth/bootstrap\", _objectSpread2(_objectSpread2({}, options), {}, {\n params\n }))).data;\n });\n\n return function bootstrap(_x4, _x5) {\n return _ref3.apply(this, arguments);\n };\n}();\nvar getAppStoryboard = /*#__PURE__*/function () {\n var _ref4 = _asyncToGenerator(function* (appId, params, options) {\n return (yield http.get(\"api/auth/bootstrap/\".concat(appId), _objectSpread2(_objectSpread2({}, options), {}, {\n params\n }))).data;\n });\n\n return function getAppStoryboard(_x6, _x7, _x8) {\n return _ref4.apply(this, arguments);\n };\n}();\n\nexport { bootstrap, checkLogin, getAppStoryboard, login, logout };\n//# sourceMappingURL=index.esm.js.map\n","import { merge } from \"lodash\";\nimport i18next from \"i18next\";\nimport { BootstrapData } from \"@next-core/brick-types\";\nimport { deepFreeze } from \"@next-core/brick-utils\";\n\n/**\n * Merge `app.defaultConfig` and `app.userConfig` to `app.config`.\n *\n * @param bootstrapResponse - Response of bootstrap API.\n */\nexport function processBootstrapResponse(\n bootstrapResponse: BootstrapData\n): void {\n for (const storyboard of bootstrapResponse.storyboards) {\n const app = storyboard.app;\n if (app) {\n app.config = deepFreeze(merge({}, app.defaultConfig, app.userConfig));\n\n if (app.locales) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const ns = `$tmp-${app.id}`;\n // Support any languages in `app.locales`.\n Object.entries(app.locales).forEach(([lang, resources]) => {\n i18next.addResourceBundle(lang, ns, resources);\n });\n // Use `app.name` as the fallback `app.localeName`.\n app.localeName = i18next.getFixedT(null, ns)(\"name\", app.name);\n // Remove the temporary i18n resource bundles.\n Object.keys(app.locales).forEach((lang) => {\n i18next.removeResourceBundle(lang, ns);\n });\n } else {\n app.localeName = app.name;\n }\n }\n }\n\n if (bootstrapResponse.settings) {\n bootstrapResponse.settings = deepFreeze(bootstrapResponse.settings);\n }\n\n bootstrapResponse.brickPackages = deepFreeze(bootstrapResponse.brickPackages);\n bootstrapResponse.templatePackages = deepFreeze(\n bootstrapResponse.templatePackages\n );\n}\n","import { createProviderClass } from \"@next-core/brick-utils\";\nimport { http, HttpOptions } from \"@next-core/brick-http\";\n\nexport const CUSTOM_API_PROVIDER = \"brick-kit.provider-custom-api\";\n\nexport interface CustomApiParams {\n url: string;\n method?: string;\n responseWrapper?: boolean;\n}\n\nexport async function CustomApi(\n { url, method = \"GET\", responseWrapper = true }: CustomApiParams,\n data: unknown,\n options?: HttpOptions\n): Promise<unknown> {\n const isSimpleRequest = [\"get\", \"delete\", \"head\"].includes(\n method.toLowerCase()\n );\n\n if (isSimpleRequest) {\n const response = await http.simpleRequest(method, url, {\n params: data,\n ...options,\n });\n return responseWrapper ? response.data : response;\n } else {\n const response = await http.requestWithBody(method, url, data, options);\n return responseWrapper ? response.data : response;\n }\n}\n\nexport function registerCustomApi(): void {\n customElements.define(CUSTOM_API_PROVIDER, createProviderClass(CustomApi));\n}\n","import { userAnalytics } from \"@next-core/easyops-analytics\";\nimport { getAuth } from \"../auth\";\nimport { getRuntime } from \"../runtime\";\n\n/** @internal */\nexport function initAnalytics(): void {\n const misc = getRuntime().getMiscSettings();\n const { gaMeasurementId, analyticsDebugMode } = misc as {\n gaMeasurementId?: string;\n analyticsDebugMode?: boolean;\n };\n\n if (gaMeasurementId) {\n userAnalytics.init({\n gaMeasurementId,\n sendPageView: false,\n userId: getAuth().userInstanceId,\n debugMode: analyticsDebugMode,\n });\n }\n}\n","import yaml from \"js-yaml\";\nimport { http } from \"@next-core/brick-http\";\nimport { BootstrapData, Settings } from \"@next-core/brick-types\";\nimport { hasOwnProperty } from \"@next-core/brick-utils\";\n\ninterface StandaloneConf {\n /** The same as `auth.bootstrap.sys_settings` in api gateway conf. */\n sys_settings: StandaloneSettings;\n\n /** For fully standalone micro-apps. */\n user_config?: Record<string, unknown>;\n\n /** For mixed standalone micro-apps. */\n user_config_by_apps?: UserConfigByApps;\n}\n\ntype UserConfigByApps = Record<string, Record<string, unknown>>;\n\ninterface StandaloneSettings extends Omit<Settings, \"featureFlags\"> {\n feature_flags: Record<string, boolean>;\n}\n\nexport async function standaloneBootstrap(): Promise<BootstrapData> {\n const [bootstrapResult, confString] = await Promise.all([\n http.get<BootstrapData>(window.BOOTSTRAP_FILE),\n http.get<string>(`${window.APP_ROOT}conf.yaml`, {\n responseType: \"text\",\n }),\n ]);\n let conf: StandaloneConf;\n try {\n conf = confString\n ? (yaml.safeLoad(confString, {\n schema: yaml.JSON_SCHEMA,\n json: true,\n }) as StandaloneConf)\n : undefined;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(\"Parse conf.yaml failed\", error);\n throw new Error(\"Invalid conf.yaml\");\n }\n let settings: Settings;\n if (conf) {\n const { sys_settings, user_config, user_config_by_apps } = conf;\n if (sys_settings) {\n const { feature_flags: featureFlags, ...rest } = sys_settings;\n settings = {\n featureFlags,\n ...rest,\n } as Settings;\n }\n if (user_config && bootstrapResult.storyboards.length === 1) {\n bootstrapResult.storyboards[0].app.userConfig = user_config;\n } else if (user_config_by_apps) {\n for (const { app } of bootstrapResult.storyboards) {\n if (hasOwnProperty(user_config_by_apps, app.id)) {\n app.userConfig = user_config_by_apps[app.id];\n }\n }\n }\n }\n return {\n ...bootstrapResult,\n settings,\n };\n}\n","import { cloneDeep, sortBy } from \"lodash\";\nimport {\n loadScript,\n prefetchScript,\n getTemplateDepsOfStoryboard,\n getDllAndDepsOfStoryboard,\n asyncProcessStoryboard,\n scanBricksInBrickConf,\n scanRouteAliasInStoryboard,\n getDllAndDepsByResource,\n scanProcessorsInAny,\n CustomApiInfo,\n} from \"@next-core/brick-utils\";\nimport i18next from \"i18next\";\nimport * as AuthSdk from \"@next-sdk/auth-sdk\";\nimport {\n BootstrapV2Api_bootstrapV2,\n BootstrapV2Api_getAppStoryboardV2,\n} from \"@next-sdk/api-gateway-sdk\";\nimport { UserAdminApi_searchAllUsersInfo } from \"@next-sdk/user-service-sdk\";\nimport { ObjectMicroAppApi_getObjectMicroAppList } from \"@next-sdk/micro-app-sdk\";\nimport { InstanceApi_postSearch } from \"@next-sdk/cmdb-sdk\";\nimport {\n MountPoints,\n BootstrapData,\n RuntimeBootstrapData,\n InterceptorParams,\n MicroApp,\n UserInfo,\n MagicBrickConfig,\n FeatureFlags,\n RuntimeStoryboard,\n BrickConf,\n LayoutType,\n PresetBricksConf,\n RouteConf,\n MenuRawData,\n} from \"@next-core/brick-types\";\nimport { authenticate, isLoggedIn } from \"../auth\";\nimport {\n Router,\n MenuBar,\n AppBar,\n BaseBar,\n registerCustomTemplate,\n} from \"./exports\";\nimport { getHistory } from \"../history\";\nimport {\n RelatedApp,\n VisitedWorkspace,\n RecentApps,\n CustomApiDefinition,\n} from \"./interfaces\";\nimport { processBootstrapResponse } from \"./processors\";\nimport { brickTemplateRegistry } from \"./TemplateRegistries\";\nimport { listenDevtools } from \"../internal/devtools\";\nimport { registerCustomApi, CUSTOM_API_PROVIDER } from \"../providers/CustomApi\";\nimport { loadAllLazyBricks, loadLazyBricks } from \"./LazyBrickRegistry\";\nimport { isCustomApiProvider } from \"./FlowApi\";\nimport { getRuntime } from \"../runtime\";\nimport { initAnalytics } from \"./initAnalytics\";\nimport { standaloneBootstrap } from \"./standaloneBootstrap\";\nimport { getI18nNamespace } from \"../i18n\";\n\nexport class Kernel {\n public mountPoints: MountPoints;\n public bootstrapData: RuntimeBootstrapData;\n public presetBricks: PresetBricksConf;\n public menuBar: MenuBar;\n public appBar: AppBar;\n public loadingBar: BaseBar;\n public router: Router;\n public currentApp: MicroApp;\n public previousApp: MicroApp;\n public nextApp: MicroApp;\n public currentUrl: string;\n public currentRoute: RouteConf;\n public workspaceStack: VisitedWorkspace[] = [];\n public currentLayout: LayoutType;\n public allUserMapPromise: Promise<Map<string, UserInfo>> = Promise.resolve(\n new Map()\n );\n public allMagicBrickConfigMapPromise: Promise<Map<string, MagicBrickConfig>> =\n Promise.resolve(new Map());\n private allRelatedAppsPromise: Promise<RelatedApp[]> = Promise.resolve([]);\n public allMicroAppApiOrchestrationPromise: Promise<\n Map<string, CustomApiDefinition>\n > = Promise.resolve(new Map());\n private providerRepository = new Map<string, HTMLElement>();\n private loadUsersStarted = false;\n private loadMagicBrickConfigStarted = false;\n\n async bootstrap(mountPoints: MountPoints): Promise<void> {\n this.mountPoints = mountPoints;\n await Promise.all([this.loadCheckLogin(), this.loadMicroApps()]);\n if (this.bootstrapData.storyboards.length === 0) {\n throw new Error(\"No storyboard were found.\");\n }\n if (isLoggedIn()) {\n this.loadSharedData();\n }\n this.menuBar = new MenuBar(this, \"menuBar\");\n this.appBar = new AppBar(this, \"appBar\");\n this.loadingBar = new BaseBar(this, \"loadingBar\");\n this.router = new Router(this);\n\n initAnalytics();\n\n await this.router.bootstrap();\n if (!window.STANDALONE_MICRO_APPS) {\n this.legacyAuthGuard();\n }\n listenDevtools();\n }\n\n async layoutBootstrap(layout: LayoutType): Promise<void> {\n const supportedLayouts: LayoutType[] = [\"console\", \"business\"];\n if (!supportedLayouts.includes(layout)) {\n throw new Error(`Unknown layout: ${layout}`);\n }\n this.currentLayout = layout;\n\n this.presetBricks =\n layout === \"business\"\n ? {\n loadingBar: \"business-website.loading-bar\",\n pageNotFound: \"business-website.page-not-found\",\n pageError: \"business-website.page-error\",\n }\n : {\n ...this.bootstrapData.navbar,\n pageNotFound: \"basic-bricks.page-not-found\",\n pageError: \"basic-bricks.page-error\",\n };\n\n for (const item of supportedLayouts) {\n if (item === layout) {\n document.body.classList.add(`layout-${item}`);\n } else {\n document.body.classList.remove(`layout-${item}`);\n }\n }\n\n await Promise.all([\n this.menuBar.bootstrap(this.presetBricks.menuBar, {\n testid: \"brick-next-menu-bar\",\n }),\n this.appBar.bootstrap(this.presetBricks.appBar),\n this.loadingBar.bootstrap(this.presetBricks.loadingBar),\n ]);\n }\n\n private legacyAuthGuard(): void {\n // Listen messages from legacy Console-W,\n // Redirect to login page if received an `auth.guard` message.\n window.addEventListener(\"message\", (event: MessageEvent): void => {\n if (event.origin !== window.location.origin) {\n return;\n }\n const data = Object.assign({}, event.data);\n if (data.type === \"auth.guard\") {\n const history = getHistory();\n const ssoEnabled = this.getFeatureFlags()[\"sso-enabled\"];\n history.push(ssoEnabled ? \"/sso-auth/login\" : \"/auth/login\", {\n from: history.location,\n });\n }\n });\n }\n\n private async loadCheckLogin(): Promise<void> {\n if (!window.NO_AUTH_GUARD) {\n const auth = await AuthSdk.checkLogin();\n if (auth.loggedIn) {\n authenticate(auth);\n }\n }\n }\n\n private async loadMicroApps(\n params?: { check_login?: boolean },\n interceptorParams?: InterceptorParams\n ): Promise<void> {\n const data = await (window.STANDALONE_MICRO_APPS\n ? standaloneBootstrap()\n : BootstrapV2Api_bootstrapV2(\n {\n appFields:\n \"defaultConfig,userConfig,locales,name,homepage,id,currentVersion,installStatus,internal,status,icons\",\n ignoreTemplateFields: \"templates\",\n ignoreBrickFields: \"bricks,processors,providers,editors\",\n ...params,\n },\n {\n interceptorParams,\n }\n ));\n const bootstrapResponse = {\n templatePackages: [],\n ...data,\n } as BootstrapData;\n // Merge `app.defaultConfig` and `app.userConfig` to `app.config`.\n processBootstrapResponse(bootstrapResponse);\n this.bootstrapData = {\n ...bootstrapResponse,\n microApps: bootstrapResponse.storyboards\n .map((storyboard) => storyboard.app)\n .filter(Boolean),\n };\n }\n\n reloadMicroApps(\n params?: { check_login?: boolean },\n interceptorParams?: InterceptorParams\n ): Promise<void> {\n // There is no need to reload standalone micro-apps.\n if (!window.STANDALONE_MICRO_APPS) {\n return this.loadMicroApps(params, interceptorParams);\n }\n }\n\n async fulfilStoryboard(storyboard: RuntimeStoryboard): Promise<void> {\n if (storyboard.$$fulfilled) {\n return;\n }\n if (!storyboard.$$fulfilling) {\n storyboard.$$fulfilling = this.doFulfilStoryboard(storyboard);\n }\n return storyboard.$$fulfilling;\n }\n\n private async doFulfilStoryboard(\n storyboard: RuntimeStoryboard\n ): Promise<void> {\n if (window.STANDALONE_MICRO_APPS) {\n Object.assign(storyboard, { $$fulfilled: true });\n } else {\n const { routes, meta, app } = await BootstrapV2Api_getAppStoryboardV2(\n storyboard.app.id,\n {}\n );\n Object.assign(storyboard, {\n routes,\n meta,\n app: { ...storyboard.app, ...app },\n $$fulfilled: true,\n });\n }\n storyboard.app.$$routeAliasMap = scanRouteAliasInStoryboard(storyboard);\n\n if (storyboard.meta?.i18n) {\n // Prefix to avoid conflict between brick package's i18n namespace.\n const i18nNamespace = getI18nNamespace(\"app\", storyboard.app.id);\n // Support any language in `meta.i18n`.\n Object.entries(storyboard.meta.i18n).forEach(([lang, resources]) => {\n i18next.addResourceBundle(lang, i18nNamespace, resources);\n });\n }\n }\n\n async loadDepsOfStoryboard(storyboard: RuntimeStoryboard): Promise<void> {\n const { brickPackages, templatePackages } = this.bootstrapData;\n\n if (storyboard.dependsAll) {\n const dllPath = window.DLL_PATH || {};\n await loadScriptOfDll(Object.values(dllPath));\n await loadScriptOfBricksOrTemplates(\n brickPackages\n .map((item) => item.filePath)\n .concat(templatePackages.map((item) => item.filePath))\n );\n await loadAllLazyBricks();\n } else {\n // 先加载模板\n const templateDeps = getTemplateDepsOfStoryboard(\n storyboard,\n templatePackages\n );\n await loadScriptOfBricksOrTemplates(templateDeps);\n // 加载模板后才能加工得到最终的构件表\n const { dll, deps, bricks } = getDllAndDepsOfStoryboard(\n await asyncProcessStoryboard(\n storyboard,\n brickTemplateRegistry,\n templatePackages\n ),\n brickPackages,\n {\n ignoreBricksInUnusedCustomTemplates: true,\n }\n );\n await loadScriptOfDll(dll);\n await loadScriptOfBricksOrTemplates(deps);\n await loadLazyBricks(bricks);\n }\n }\n\n prefetchDepsOfStoryboard(storyboard: RuntimeStoryboard): void {\n if (storyboard.$$depsProcessed) {\n return;\n }\n const { brickPackages, templatePackages } = this.bootstrapData;\n const templateDeps = getTemplateDepsOfStoryboard(\n storyboard,\n templatePackages\n );\n prefetchScript(templateDeps, window.PUBLIC_ROOT);\n const result = getDllAndDepsOfStoryboard(storyboard, brickPackages);\n prefetchScript(result.dll, window.CORE_ROOT);\n prefetchScript(result.deps, window.PUBLIC_ROOT);\n storyboard.$$depsProcessed = true;\n }\n\n registerCustomTemplatesInStoryboard(storyboard: RuntimeStoryboard): void {\n if (!storyboard.$$registerCustomTemplateProcessed) {\n // 注册自定义模板\n if (Array.isArray(storyboard.meta?.customTemplates)) {\n for (const tpl of storyboard.meta.customTemplates) {\n registerCustomTemplate(\n tpl.name,\n {\n bricks: tpl.bricks,\n proxy: tpl.proxy,\n },\n storyboard.app?.id\n );\n }\n }\n // 每个 storyboard 仅注册一次custom-template\n storyboard.$$registerCustomTemplateProcessed = true;\n }\n }\n\n async loadDynamicBricksInBrickConf(brickConf: BrickConf): Promise<void> {\n // Notice: `brickConf` contains runtime data,\n // which may contains recursive ref,\n // which could cause stack overflow while traversing.\n const bricks = scanBricksInBrickConf(brickConf);\n const processors = scanProcessorsInAny(brickConf);\n await this.loadDynamicBricks(bricks, processors);\n }\n\n async loadDynamicBricks(\n bricks: string[],\n processors?: string[]\n ): Promise<void> {\n const filteredBricks = bricks.filter(\n // Only try to load undefined custom elements.\n (item) => !customElements.get(item)\n );\n // Try to load deps for dynamic added bricks.\n const { dll, deps } = getDllAndDepsByResource(\n {\n bricks: filteredBricks,\n processors,\n },\n this.bootstrapData.brickPackages\n );\n await loadScriptOfDll(dll);\n await loadScriptOfBricksOrTemplates(deps);\n await loadLazyBricks(filteredBricks);\n }\n\n async loadEditorBricks(editorBricks: string[]): Promise<void> {\n const { dll, deps } = getDllAndDepsByResource(\n {\n editorBricks: editorBricks.filter(\n // Only try to load undefined custom elements.\n (item) => !customElements.get(item)\n ),\n },\n this.bootstrapData.brickPackages\n );\n await loadScriptOfDll(dll);\n await loadScriptOfBricksOrTemplates(deps);\n }\n\n firstRendered(): void {\n setTimeout(() => {\n document.body.classList.add(\"first-rendered\");\n });\n }\n\n /**\n * 展开/收起顶栏、侧栏\n * @param visible 是否显示\n */\n toggleBars(visible: boolean): void {\n document.body.classList.toggle(\"bars-hidden\", !visible);\n }\n\n /**\n * 重置顶栏、侧栏\n */\n unsetBars({\n appChanged,\n legacy,\n }: { appChanged?: boolean; legacy?: \"iframe\" } = {}): void {\n this.toggleBars(true);\n if (this.currentLayout !== \"console\") {\n // No bars should be unset for the business layout.\n return;\n }\n if (appChanged) {\n this.menuBar.resetAppMenu();\n }\n if (legacy !== \"iframe\" || appChanged) {\n // 对于 Legacy 页面,仅当切换应用时重设面包屑。\n this.appBar.setBreadcrumb(null);\n }\n getRuntime().applyPageTitle(null);\n }\n\n toggleLegacyIframe(visible: boolean): void {\n document.body.classList.toggle(\"show-legacy-iframe\", visible);\n }\n\n loadSharedData(): void {\n if (!window.STANDALONE_MICRO_APPS) {\n this.loadRelatedAppsAsync();\n }\n }\n\n loadUsersAsync(): void {\n if (!this.loadUsersStarted) {\n this.loadUsersStarted = true;\n this.allUserMapPromise = this.loadUsers();\n }\n }\n\n private async loadUsers(): Promise<Map<string, UserInfo>> {\n const allUserMap: Map<string, UserInfo> = new Map();\n try {\n const query = { state: \"valid\" };\n const fields = {\n name: true,\n nickname: true,\n user_email: true,\n user_tel: true,\n user_icon: true,\n user_memo: true,\n };\n const allUserInfo = (\n await UserAdminApi_searchAllUsersInfo({\n query,\n fields,\n })\n ).list as UserInfo[];\n for (const user of allUserInfo) {\n allUserMap.set(user.name, user);\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Load users error:\", error);\n }\n return allUserMap;\n }\n\n loadMicroAppApiOrchestrationAsync(usedCustomApis: CustomApiInfo[]): void {\n this.allMicroAppApiOrchestrationPromise =\n this.loadMicroAppApiOrchestration(usedCustomApis);\n }\n\n async getMicroAppApiOrchestrationMapAsync(): Promise<\n Map<string, CustomApiDefinition>\n > {\n return await this.allMicroAppApiOrchestrationPromise;\n }\n\n private async loadMicroAppApiOrchestration(\n usedCustomApis: CustomApiInfo[]\n ): Promise<Map<string, CustomApiDefinition>> {\n const allMicroAppApiOrchestrationMap: Map<string, CustomApiDefinition> =\n new Map();\n const legacyCustomApis = usedCustomApis.filter(\n (item) => !item.name.includes(\":\")\n );\n if (legacyCustomApis.length) {\n try {\n const allMicroAppApiOrchestration = (\n await InstanceApi_postSearch(\"MICRO_APP_API_ORCHESTRATION\", {\n page: 1,\n page_size: legacyCustomApis.length,\n fields: {\n name: true,\n namespace: true,\n contract: true,\n config: true,\n type: true,\n },\n query: {\n $or: legacyCustomApis,\n },\n })\n ).list as CustomApiDefinition[];\n for (const api of allMicroAppApiOrchestration) {\n allMicroAppApiOrchestrationMap.set(\n `${api.namespace}@${api.name}`,\n api\n );\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Load legacy custom api error:\", error);\n }\n }\n return allMicroAppApiOrchestrationMap;\n }\n\n loadMagicBrickConfigAsync(): void {\n if (!this.loadMagicBrickConfigStarted) {\n this.loadMagicBrickConfigStarted = true;\n this.allMagicBrickConfigMapPromise = this.loadMagicBrickConfig();\n }\n }\n\n private async loadMagicBrickConfig(): Promise<Map<string, MagicBrickConfig>> {\n const allMagicBrickConfigMap: Map<string, MagicBrickConfig> = new Map();\n try {\n const allMagicBrickConfig = (\n await InstanceApi_postSearch(\"_BRICK_MAGIC\", {\n page: 1,\n // TODO(Lynette): 暂时设置3000,待后台提供全量接口\n page_size: 3000,\n fields: {\n \"*\": true,\n },\n })\n ).list as MagicBrickConfig[];\n for (const config of allMagicBrickConfig) {\n allMagicBrickConfigMap.set(config.selector, config);\n }\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Load magic brick config error:\", error);\n }\n return allMagicBrickConfigMap;\n }\n\n private loadRelatedAppsAsync(): void {\n this.allRelatedAppsPromise = this.loadRelatedApps();\n }\n\n private async loadRelatedApps(): Promise<RelatedApp[]> {\n let relatedApps: RelatedApp[] = [];\n try {\n relatedApps = (await ObjectMicroAppApi_getObjectMicroAppList()).list;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(\"Load related apps error:\", error);\n }\n return relatedApps;\n }\n\n async getRelatedAppsAsync(appId: string): Promise<RelatedApp[]> {\n if (!appId) {\n return [];\n }\n const allRelatedApps = await this.allRelatedAppsPromise;\n const thisApp = allRelatedApps.find((item) => item.microAppId === appId);\n if (!thisApp) {\n return [];\n }\n return sortBy(\n allRelatedApps.filter((item) => item.objectId === thisApp.objectId),\n [\"order\"]\n );\n }\n\n async updateWorkspaceStack(): Promise<void> {\n if (this.currentApp && this.currentApp.id) {\n const workspace: VisitedWorkspace = {\n appId: this.currentApp.id,\n appName: this.currentApp.name,\n appLocaleName: this.currentApp.localeName,\n url: this.currentUrl,\n };\n if (this.workspaceStack.length > 0) {\n const previousWorkspace =\n this.workspaceStack[this.workspaceStack.length - 1];\n const relatedApps = await this.getRelatedAppsAsync(\n previousWorkspace.appId\n );\n if (\n relatedApps.some((item) => item.microAppId === this.currentApp.id)\n ) {\n Object.assign(previousWorkspace, workspace);\n return;\n }\n }\n\n const relatedApps = await this.getRelatedAppsAsync(this.currentApp.id);\n if (relatedApps.length > 0) {\n this.workspaceStack.push(workspace);\n return;\n }\n }\n this.workspaceStack = [];\n }\n\n getPreviousWorkspace(): VisitedWorkspace {\n if (this.workspaceStack.length > 1) {\n return this.workspaceStack[this.workspaceStack.length - 2];\n }\n }\n\n popWorkspaceStack(): void {\n this.workspaceStack.pop();\n }\n\n getRecentApps(): RecentApps {\n return {\n previousApp: this.previousApp,\n currentApp: this.currentApp,\n previousWorkspace: this.getPreviousWorkspace(),\n };\n }\n\n getFeatureFlags(): FeatureFlags {\n return Object.assign({}, this.bootstrapData?.settings?.featureFlags);\n }\n\n getStandaloneMenus(menuId: string): MenuRawData[] {\n const currentAppId = this.currentApp.id;\n const currentStoryboard = this.bootstrapData.storyboards.find(\n (storyboard) => storyboard.app.id === currentAppId\n );\n return (cloneDeep(currentStoryboard.meta?.menus) ?? [])\n .filter((menu) => menu.menuId === menuId)\n .map((menu) => ({\n ...menu,\n app: [{ appId: currentAppId }],\n }));\n }\n\n async getProviderBrick(provider: string): Promise<HTMLElement> {\n if (isCustomApiProvider(provider)) {\n provider = CUSTOM_API_PROVIDER;\n }\n\n if (this.providerRepository.has(provider)) {\n return this.providerRepository.get(provider);\n }\n\n if (provider === CUSTOM_API_PROVIDER && !customElements.get(provider)) {\n registerCustomApi();\n }\n\n await this.loadDynamicBricks([provider]);\n\n if (!customElements.get(provider)) {\n throw new Error(`Provider not defined: \"${provider}\".`);\n }\n const brick = document.createElement(provider);\n this.providerRepository.set(provider, brick);\n return brick;\n }\n}\n\n// Since `@next-dll/editor-bricks-helper` depends on `@next-dll/react-dnd`,\n// always load react-dnd before loading editor-bricks-helper.\nasync function loadScriptOfDll(dlls: string[]): Promise<void> {\n if (dlls.some((dll) => dll.startsWith(\"dll-of-editor-bricks-helper.\"))) {\n const dllPath = window.DLL_PATH || {};\n await loadScript(dllPath[\"react-dnd\"], window.CORE_ROOT);\n }\n // `loadScript` is auto cached, no need to filter out `react-dnd`.\n await loadScript(dlls, window.CORE_ROOT);\n}\n\nfunction loadScriptOfBricksOrTemplates(src: string[]): Promise<unknown> {\n return loadScript(src, window.PUBLIC_ROOT);\n}\n","/*! (c) Andrea Giammarchi - ISC */\nvar self = {};\ntry {\n self.EventTarget = (new EventTarget).constructor;\n} catch(EventTarget) {\n (function (Object, wm) {\n var create = Object.create;\n var defineProperty = Object.defineProperty;\n var proto = EventTarget.prototype;\n define(proto, 'addEventListener', function (type, listener, options) {\n for (var\n secret = wm.get(this),\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener)\n return;\n }\n listeners.push({target: this, listener: listener, options: options});\n });\n define(proto, 'dispatchEvent', function (event) {\n var secret = wm.get(this);\n var listeners = secret[event.type];\n if (listeners) {\n define(event, 'target', this);\n define(event, 'currentTarget', this);\n listeners.slice(0).some(dispatch, event);\n delete event.currentTarget;\n delete event.target;\n }\n return true;\n });\n define(proto, 'removeEventListener', function (type, listener) {\n for (var\n secret = wm.get(this),\n /* istanbul ignore next */\n listeners = secret[type] || (secret[type] = []),\n i = 0, length = listeners.length; i < length; i++\n ) {\n if (listeners[i].listener === listener) {\n listeners.splice(i, 1);\n return;\n }\n }\n });\n self.EventTarget = EventTarget;\n function EventTarget() {'use strict';\n wm.set(this, create(null));\n }\n function define(target, name, value) {\n defineProperty(\n target,\n name,\n {\n configurable: true,\n writable: true,\n value: value\n }\n );\n }\n function dispatch(info) {\n var options = info.options;\n if (options && options.once)\n info.target.removeEventListener(this.type, info.listener);\n if (typeof info.listener === 'function')\n info.listener.call(info.target, this);\n else\n info.listener.handleEvent(this);\n return this._stopImmediatePropagationFlag;\n }\n }(Object, new WeakMap));\n}\nexport default self.EventTarget;\n","/** @internal */\n\n/** @internal */\n\n/** @internal */\nvar BrickEvent;\n/** @internal */\n\n(function (BrickEvent) {\n BrickEvent[\"READ_SORTING_CHANGE\"] = \"read.sorting.change\";\n BrickEvent[\"READ_SEARCH_CHANGE\"] = \"read.search.change\";\n BrickEvent[\"READ_ADVANCED_SEARCH_CHANGE\"] = \"read.advancedSearch.change\";\n BrickEvent[\"READ_PAGINATION_CHANGE\"] = \"read.pagination.change\";\n BrickEvent[\"READ_SELECTION_CHANGE\"] = \"read.selection.change\";\n BrickEvent[\"READ_RELATED_TO_ME_CHANGE\"] = \"read.relatedToMe.change\";\n BrickEvent[\"READ_ALIVE_HOSTS_CHANGE\"] = \"read.alive.hosts.change\";\n BrickEvent[\"READ_CATEGORY_CHANGE\"] = \"read.category.change\";\n BrickEvent[\"READ_MULTIPLE_CLICK_ITEM\"] = \"read.multiple.clickItem\";\n BrickEvent[\"READ_MULTIPLE_CREATE\"] = \"read.multiple.create\";\n BrickEvent[\"CREATE_SINGLE_SUCCESS\"] = \"create.single.success\";\n BrickEvent[\"CREATE_SINGLE_FAILED\"] = \"create.single.failed\";\n BrickEvent[\"CREATE_SINGLE_CANCELED\"] = \"create.single.canceled\";\n BrickEvent[\"CREATE_SINGLE_NEXT\"] = \"create.single.next\";\n BrickEvent[\"CREATE_SINGLE_SELECT\"] = \"create.single.select\";\n BrickEvent[\"UPDATE_SINGLE_SUCCESS\"] = \"update.single.success\";\n BrickEvent[\"UPDATE_SINGLE_FAILED\"] = \"update.single.failed\";\n BrickEvent[\"UPDATE_SINGLE_CANCELED\"] = \"update.single.canceled\";\n BrickEvent[\"DELETE_SINGLE_SUCCESS\"] = \"delete.single.success\";\n BrickEvent[\"DELETE_SINGLE_FAILED\"] = \"delete.single.failed\";\n BrickEvent[\"DELETE_SINGLE_CANCELED\"] = \"delete.single.canceled\";\n BrickEvent[\"CREATE_MULTI_SUCCESS\"] = \"create.multi.success\";\n BrickEvent[\"CREATE_MULTI_FAILED\"] = \"create.multi.failed\";\n BrickEvent[\"CREATE_MULTI_CANCELED\"] = \"create.multi.canceled\";\n BrickEvent[\"DELETE_MULTI_SUCCESS\"] = \"delete.multi.success\";\n BrickEvent[\"DELETE_MULTI_CANCELED\"] = \"delete.multi.canceled\";\n BrickEvent[\"UPDATE_MULTI_SUCCESS\"] = \"update.multi.success\";\n BrickEvent[\"UPDATE_MULTI_CANCELED\"] = \"update.multi.canceled\";\n BrickEvent[\"UPDATE_MULTI_FAILED\"] = \"update.multi.failed\";\n BrickEvent[\"UPDATE_SINGLE_SELECT\"] = \"update.single.select\";\n BrickEvent[\"UPDATE_SINGLE_SELECTED\"] = \"update.single.selected\";\n BrickEvent[\"READ_CARD_LEFT_BTN_CLICK\"] = \"read.card.leftBtn.click\";\n BrickEvent[\"READ_CARD_RIGHT_BTN_CLICK\"] = \"read.card.rightBtn.click\";\n})(BrickEvent || (BrickEvent = {}));\n\n/** @internal */\nvar PropertyDisplayType;\n/** @internal */\n\n(function (PropertyDisplayType) {\n PropertyDisplayType[\"Tag\"] = \"tag\";\n})(PropertyDisplayType || (PropertyDisplayType = {}));\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/**\n * 特性开关字典。\n *\n * @example\n *\n * ```json\n * {\n * \"next-builder-dynamic-menu\": true\n * }\n * ```\n */\n\n/**\n * 微应用基本信息。\n */\n\n/**\n * 页面整体布局类型。\n */\n\n/**\n * 应用的基本信息的本地化配置。\n *\n * @example\n *\n * ```yaml\n * zh:\n * name: 搜索\n * en:\n * name: Search\n * ```\n */\n\n/**\n * 应用的单个地域的本地化配置。\n */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/** @internal */\n\n/**\n * 应用的 Storyboard 配置。\n */\n\n/** @internal */\nfunction isRouteConfOfBricks(conf) {\n return conf.type !== \"routes\" && !!conf.bricks;\n}\nfunction isRouteConfOfRoutes(conf) {\n return conf.type === \"routes\";\n}\n/**\n * 路由配置,类型可以是构件列表、子路由列表和重定向中的一种。\n */\n\nexport { BrickEvent, PropertyDisplayType, isRouteConfOfBricks, isRouteConfOfRoutes };\n//# sourceMappingURL=index.esm.js.map\n","import { RuntimeMisc } from \"@next-core/brick-types\";\n\nlet misc: RuntimeMisc;\n\nexport function getRuntimeMisc(): RuntimeMisc {\n if (!misc) {\n misc = {\n isInIframe: false,\n isInIframeOfLegacyConsole: false,\n };\n\n if (window !== window.parent) {\n misc.isInIframe = true;\n try {\n misc.isInIframeOfLegacyConsole = window.origin === window.parent.origin;\n } catch (e) {\n // do nothing\n }\n }\n\n Object.freeze(misc);\n }\n\n return misc;\n}\n","import {\n BrickConf,\n RouteConf,\n RouteConfOfBricks,\n Storyboard,\n} from \"@next-core/brick-types\";\nimport { isObject } from \"@next-core/brick-utils\";\n\nexport type SubStoryboardMatcher = (routes: RouteConf[]) => RouteConf[];\n\nexport function getSubStoryboardByRoute(\n storyboard: Storyboard,\n matcher: SubStoryboardMatcher\n): Storyboard {\n function getSubRoutes(routes: RouteConf[]): RouteConf[] {\n return matcher(routes).map(getSubRoute);\n }\n\n function getSubRoute(route: RouteConf): RouteConf {\n if (route.type === \"routes\") {\n return {\n ...route,\n routes: getSubRoutes(route.routes),\n };\n }\n return {\n ...route,\n bricks: getSubBricks((route as RouteConfOfBricks).bricks),\n } as RouteConfOfBricks;\n }\n\n function getSubBricks(bricks: BrickConf[]): BrickConf[] {\n if (Array.isArray(bricks)) {\n return bricks.map((brickConf) => getSubBrick(brickConf));\n }\n return bricks;\n }\n\n function getSubBrick(brickConf: BrickConf): BrickConf {\n if (isObject(brickConf.slots)) {\n return {\n ...brickConf,\n slots: Object.fromEntries(\n Object.entries(brickConf.slots).map(([slotId, slotConf]) => {\n if (slotConf.type === \"routes\") {\n return [\n slotId,\n {\n ...slotConf,\n routes: getSubRoutes(slotConf.routes),\n },\n ];\n } /* istanbul ignore else: should never reach */ else if (\n slotConf.type === \"bricks\"\n ) {\n return [\n slotId,\n {\n ...slotConf,\n bricks: getSubBricks(slotConf.bricks),\n },\n ];\n }\n /* istanbul ignore next: should never reach */\n return [slotId, slotConf];\n })\n ),\n };\n }\n return brickConf;\n }\n\n return {\n ...storyboard,\n routes: getSubRoutes(storyboard.routes),\n };\n}\n","import {\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxyMergeableProperty,\n CustomTemplateProxyProperty,\n CustomTemplateProxyRefProperty,\n CustomTemplateProxyTransformableProperty,\n CustomTemplateProxyVariableProperty,\n} from \"@next-core/brick-types\";\n\nexport function isBasicProperty(\n propRef: CustomTemplateProxyProperty\n): propRef is CustomTemplateProxyBasicProperty {\n return !!(propRef as CustomTemplateProxyBasicProperty).refProperty;\n}\n\nexport function isTransformableProperty(\n propRef: CustomTemplateProxyProperty\n): propRef is CustomTemplateProxyTransformableProperty {\n return !!(propRef as CustomTemplateProxyTransformableProperty).refTransform;\n}\n\nexport function isMergeableProperty(\n propRef: CustomTemplateProxyProperty\n): propRef is CustomTemplateProxyMergeableProperty {\n return !!(propRef as CustomTemplateProxyMergeableProperty).mergeProperty;\n}\n\nexport function isRefProperty(\n propRef: CustomTemplateProxyProperty\n): propRef is CustomTemplateProxyRefProperty {\n return !!(propRef as CustomTemplateProxyRefProperty).ref;\n}\n\nexport function isVariableProperty(\n propRef: CustomTemplateProxyProperty\n): propRef is CustomTemplateProxyVariableProperty {\n return !!(propRef as CustomTemplateProxyVariableProperty).asVariable;\n}\n","import { BrickConfInTemplate, CustomTemplate } from \"@next-core/brick-types\";\n\ntype RefToBrickConfMap = Map<string, BrickConfInTemplate>;\n\nexport function collectRefsInTemplate(\n template: CustomTemplate\n): RefToBrickConfMap {\n const refMap: RefToBrickConfMap = new Map();\n collectRefsInBrickConfs(template.bricks, refMap);\n return refMap;\n}\n\nfunction collectRefsInBrickConfs(\n brickConfs: BrickConfInTemplate[],\n refMap: RefToBrickConfMap\n): void {\n if (Array.isArray(brickConfs)) {\n for (const item of brickConfs) {\n collectRefsInBrickConf(item, refMap);\n }\n }\n}\n\nfunction collectRefsInBrickConf(\n brickConf: BrickConfInTemplate,\n refMap: RefToBrickConfMap\n): void {\n const { ref, slots } = brickConf;\n if (ref) {\n refMap.set(ref, brickConf);\n }\n if (slots) {\n for (const slotConf of Object.values(slots)) {\n collectRefsInBrickConfs(slotConf.bricks, refMap);\n }\n }\n}\n","import { isObject } from \"@next-core/brick-utils\";\nimport { clamp } from \"lodash\";\nimport { computeRealValue } from \"../../internal/setProperties\";\nimport {\n MergeablePropertyProxy,\n MergeablePropertyProxyOfArray,\n MergeBase,\n} from \"./internalInterfaces\";\n\nexport function propertyMerge(\n conf: MergeablePropertyProxy,\n value: unknown,\n object: Record<string, unknown>\n): unknown {\n return propertyMergeAll(\n conf.$$mergeBase,\n Object.fromEntries(\n conf.$$mergeBase.proxies.map((proxy) => [\n proxy.$$reversedRef,\n proxy === conf ? value : object[proxy.$$reversedRef],\n ])\n )\n );\n}\n\nexport function propertyMergeAll(\n mergeBase: MergeBase,\n object: Record<string, unknown>\n): unknown {\n if (mergeBase.mergeType === \"array\") {\n return propertyMergeAllOfArray(mergeBase, object);\n }\n if (mergeBase.mergeType === \"object\") {\n return propertyMergeAllOfObject(mergeBase, object);\n }\n // istanbul ignore next: should never reach\n throw new TypeError(`unsupported mergeType: \"${mergeBase.mergeType}\"`);\n}\n\nfunction propertyMergeAllOfArray(\n { baseValue, context, proxies }: MergeBase,\n object: Record<string, unknown>\n): unknown[] {\n // Use an approach like template-literal's quasis:\n // `quasi0${0}quais1${1}quasi2...`\n // Every quasi can be merged with multiple items.\n const computedBaseValue = Array.isArray(baseValue)\n ? (computeRealValue(baseValue, context, true) as unknown[])\n : [];\n const quasis: unknown[][] = [];\n const size = computedBaseValue.length + 1;\n for (let i = 0; i < size; i += 1) {\n quasis.push([]);\n }\n\n for (const proxy of proxies as MergeablePropertyProxyOfArray[]) {\n let position: number;\n switch (proxy.mergeMethod) {\n case \"append\":\n position = computedBaseValue.length;\n break;\n case \"prepend\":\n position = 0;\n break;\n case \"insertAt\":\n // Defaults to `-1`.\n position = (proxy.mergeArgs as [number])?.[0] ?? -1;\n if (position < 0) {\n // It's counted from the end if position is negative.\n position += quasis.length;\n }\n position = clamp(position, 0, computedBaseValue.length);\n break;\n // istanbul ignore next: should never reach\n default:\n throw new TypeError(\n `unsupported mergeMethod: \"${proxy.mergeMethod}\" for mergeType \"${proxy.mergeType}\"`\n );\n }\n let patchValue = object[proxy.$$reversedRef] as unknown[];\n if (!Array.isArray(patchValue)) {\n patchValue = [];\n }\n quasis[position].push(...patchValue);\n }\n\n return quasis.flatMap((item, index) =>\n index < computedBaseValue.length\n ? item.concat(computedBaseValue[index])\n : item\n );\n}\n\nfunction propertyMergeAllOfObject(\n { baseValue, proxies, context }: MergeBase,\n object: Record<string, unknown>\n): Record<string, unknown> {\n const computedBaseValue = isObject(baseValue)\n ? (computeRealValue(baseValue, context, true) as Record<string, unknown>)\n : {};\n return proxies.reduce((acc, proxy) => {\n switch (proxy.mergeMethod) {\n case \"extend\":\n return {\n ...acc,\n ...(object[proxy.$$reversedRef] as Record<string, unknown>),\n };\n // istanbul ignore next: should never reach\n default:\n throw new TypeError(\n `unsupported mergeMethod: \"${proxy.mergeMethod}\" for mergeType \"${proxy.mergeType}\"`\n );\n }\n }, computedBaseValue);\n}\n","import {\n BrickConfInTemplate,\n PluginRuntimeContext,\n} from \"@next-core/brick-types\";\nimport { MergeablePropertyProxy, MergeBase } from \"./internalInterfaces\";\n\nexport function collectMergeBases(\n conf: MergeablePropertyProxy,\n mergeBases: Map<string, Map<string, MergeBase>>,\n contextInTemplate: PluginRuntimeContext,\n refToBrickConf: Map<string, BrickConfInTemplate>\n): void {\n let mergeBaseMap: Map<string, MergeBase>;\n if (mergeBases.has(conf.ref)) {\n mergeBaseMap = mergeBases.get(conf.ref);\n } else {\n mergeBaseMap = new Map();\n mergeBases.set(conf.ref, mergeBaseMap);\n }\n\n if (mergeBaseMap.has(conf.mergeProperty)) {\n conf.$$mergeBase = mergeBaseMap.get(conf.mergeProperty);\n // istanbul ignore if: should never reach\n if (conf.mergeType !== conf.$$mergeBase.mergeType) {\n throw new Error(\n `Properties proxy contained different mergeTypes of \"${conf.$$mergeBase.mergeType}\" and \"${conf.mergeType}\"`\n );\n }\n conf.$$mergeBase.proxies.push(conf);\n } else {\n const baseValue = refToBrickConf.get(conf.ref).properties?.[\n conf.mergeProperty\n ];\n conf.$$mergeBase = {\n proxies: [conf],\n mergeType: conf.mergeType,\n baseValue,\n context: contextInTemplate,\n };\n mergeBaseMap.set(conf.mergeProperty, conf.$$mergeBase);\n }\n}\n","import {\n BrickConf,\n BrickConfInTemplate,\n CustomTemplateProxySlot,\n PluginRuntimeContext,\n RefForProxy,\n RuntimeBrickConf,\n SlotsConfOfBricks,\n UseBrickConf,\n} from \"@next-core/brick-types\";\nimport { hasOwnProperty, isObject } from \"@next-core/brick-utils\";\nimport { clamp } from \"lodash\";\nimport { preprocessTransformProperties } from \"../../transformProperties\";\nimport { RuntimeBrick } from \"../BrickNode\";\nimport {\n MergeBase,\n PropertyProxy,\n RuntimeCustomTemplateProxy,\n RuntimeCustomTemplateProxyProperties,\n} from \"./internalInterfaces\";\nimport {\n isBasicProperty,\n isMergeableProperty,\n isTransformableProperty,\n isVariableProperty,\n} from \"./assertions\";\nimport { collectRefsInTemplate } from \"./collectRefsInTemplate\";\nimport {\n customTemplateRegistry,\n RuntimeBrickConfWithTplSymbols,\n symbolForComputedPropsFromProxy,\n symbolForParentTemplate,\n symbolForRefForProxy,\n symbolForTplContextId,\n} from \"./constants\";\nimport { propertyMergeAll } from \"./propertyMerge\";\nimport { collectMergeBases } from \"./collectMergeBases\";\nimport { CustomTemplateContext } from \"./CustomTemplateContext\";\n\ninterface ProxyContext {\n reversedProxies: ReversedProxies;\n templateProperties: Record<string, unknown>;\n templateSlots: SlotsConfOfBricks;\n templateContextId: string;\n proxyBrick: RuntimeBrick;\n}\n\ninterface ReversedProxies {\n properties: Map<string, PropertyProxy[]>;\n slots: Map<string, SlotProxy[]>;\n mergeBases: Map<string, Map<string, MergeBase>>;\n}\n\ninterface SlotProxy extends CustomTemplateProxySlot {\n $$reversedRef?: string;\n}\n\nexport function expandCustomTemplate(\n brickConf: RuntimeBrickConf,\n proxyBrick: RuntimeBrick,\n context: PluginRuntimeContext,\n tplContext: CustomTemplateContext\n): RuntimeBrickConf {\n const template = customTemplateRegistry.get(brickConf.brick);\n const { bricks, proxy } = template;\n const {\n properties: templateProperties,\n slots: templateSlots,\n ...restBrickConf\n } = brickConf;\n const newBrickConf = restBrickConf as RuntimeBrickConf;\n\n // Get a copy of proxy for each instance of custom template.\n const proxyCopy: RuntimeCustomTemplateProxy = {\n ...proxy,\n };\n proxyBrick.proxy = proxyCopy;\n proxyBrick.proxyRefs = new Map();\n\n const refToBrickConf = collectRefsInTemplate(template);\n\n // Reversed proxies are used for expand storyboard before rendering page.\n const reversedProxies: ReversedProxies = {\n properties: new Map(),\n slots: new Map(),\n mergeBases: new Map(),\n };\n\n const tplVariables: Record<string, unknown> = {};\n const templateContextId = tplContext.createContext();\n const getTplVariables = (): Record<string, unknown> =>\n tplContext.getContext(templateContextId);\n\n if (proxy?.properties) {\n const refPropertiesCopy = {} as RuntimeCustomTemplateProxyProperties;\n proxyCopy.$$properties = refPropertiesCopy;\n\n for (const [reversedRef, conf] of Object.entries(proxy.properties)) {\n if (isVariableProperty(conf)) {\n tplVariables[reversedRef] = templateProperties?.[reversedRef];\n } else {\n // Variable property proxies have no refs.\n refPropertiesCopy[reversedRef] = {\n ...conf,\n extraOneWayRefs: Array.isArray(conf.extraOneWayRefs)\n ? conf.extraOneWayRefs.map((extraConf) => ({ ...extraConf }))\n : undefined,\n };\n }\n }\n\n tplContext.sealContext(templateContextId, tplVariables, proxyBrick);\n\n const reversedProperties = reversedProxies.properties;\n for (const [reversedRef, conf] of Object.entries(refPropertiesCopy)) {\n let proxies: PropertyProxy[];\n if (reversedProperties.has(conf.ref)) {\n proxies = reversedProperties.get(conf.ref);\n } else {\n proxies = [];\n reversedProperties.set(conf.ref, proxies);\n }\n conf.$$reversedRef = reversedRef;\n\n if (isMergeableProperty(conf)) {\n collectMergeBases(\n conf,\n reversedProxies.mergeBases,\n {\n ...context,\n getTplVariables,\n },\n refToBrickConf\n );\n }\n\n proxies.push(conf);\n\n // Properties may have extra refs.\n if (Array.isArray(conf.extraOneWayRefs)) {\n for (const extraRef of conf.extraOneWayRefs) {\n let extraProxies: PropertyProxy[];\n if (reversedProperties.has(extraRef.ref)) {\n extraProxies = reversedProperties.get(extraRef.ref);\n } else {\n extraProxies = [];\n reversedProperties.set(extraRef.ref, extraProxies);\n }\n (extraRef as PropertyProxy).$$reversedRef = reversedRef;\n extraProxies.push(extraRef);\n }\n }\n }\n }\n\n if (proxy?.slots) {\n const reveredSlots = reversedProxies.slots;\n for (const [reversedRef, conf] of Object.entries<SlotProxy>(proxy.slots)) {\n let proxies: SlotProxy[];\n if (reveredSlots.has(conf.ref)) {\n proxies = reveredSlots.get(conf.ref);\n } else {\n proxies = [];\n reveredSlots.set(conf.ref, proxies);\n }\n conf.$$reversedRef = reversedRef;\n proxies.push(conf);\n }\n }\n\n const proxyContext: ProxyContext = {\n reversedProxies,\n templateProperties,\n templateSlots: templateSlots as SlotsConfOfBricks,\n templateContextId,\n proxyBrick,\n };\n\n newBrickConf.slots = {\n \"\": {\n type: \"bricks\",\n bricks: bricks.map((item) => expandBrickInTemplate(item, proxyContext)),\n },\n };\n\n return newBrickConf;\n}\n\nfunction expandBrickInTemplate(\n brickConfInTemplate: BrickConfInTemplate,\n proxyContext: ProxyContext\n): RuntimeBrickConfWithTplSymbols {\n // Ignore `if: null` to make `looseCheckIf` working.\n if (brickConfInTemplate.if === null) {\n delete brickConfInTemplate.if;\n }\n const {\n ref,\n slots: slotsInTemplate,\n ...restBrickConfInTemplate\n } = brickConfInTemplate;\n const {\n reversedProxies,\n templateProperties,\n templateSlots,\n templateContextId,\n proxyBrick: { proxyRefs },\n } = proxyContext;\n const computedPropsFromProxy: Record<string, unknown> = {};\n let refForProxy: RefForProxy;\n let parentTemplate: RuntimeBrick;\n\n if (restBrickConfInTemplate.bg || restBrickConfInTemplate.portal) {\n parentTemplate = proxyContext.proxyBrick;\n }\n\n const slots: SlotsConfOfBricks = Object.fromEntries(\n Object.entries(slotsInTemplate ?? {}).map(([slotName, slotConf]) => [\n slotName,\n {\n type: \"bricks\",\n bricks: (slotConf.bricks ?? []).map((item) =>\n expandBrickInTemplate(item, proxyContext)\n ),\n },\n ])\n );\n\n // 递归遍历properties下UseBrick, 目的是为了获取底下所有代理属性\n const walkUseBrickInProperties = (properties: Record<string, unknown>) => {\n if (!properties) return;\n Object.entries(properties).forEach(([key, value]) => {\n if (isObject(value)) {\n if (key === \"useBrick\") {\n if (Array.isArray(value)) {\n value.forEach((item) => {\n expandBrickInTemplate(item as BrickConfInTemplate, proxyContext);\n });\n } else {\n expandBrickInTemplate(value as BrickConfInTemplate, proxyContext);\n }\n } else {\n walkUseBrickInProperties(value);\n }\n }\n });\n };\n walkUseBrickInProperties(brickConfInTemplate.properties);\n\n if (ref) {\n refForProxy = {};\n proxyRefs.set(ref, refForProxy);\n\n // Reversed proxies are used for expand storyboard before rendering page.\n if (reversedProxies.properties.has(ref)) {\n Object.assign(\n computedPropsFromProxy,\n Object.fromEntries(\n reversedProxies.properties\n .get(ref)\n .flatMap((item) => {\n // `propValue` is computed.\n const propValue = templateProperties?.[item.$$reversedRef];\n if (isTransformableProperty(item)) {\n return Object.entries(\n preprocessTransformProperties(\n {\n [item.$$reversedRef]: propValue,\n },\n item.refTransform\n )\n );\n }\n if (isBasicProperty(item)) {\n return [[item.refProperty, propValue]];\n }\n // Ignore Variable properties.\n // And mergeable properties are processed later.\n return [];\n })\n .filter((item) => item[1] !== undefined)\n )\n );\n }\n\n // Brick properties can be merged multiple times.\n if (reversedProxies.mergeBases.has(ref)) {\n Object.assign(\n computedPropsFromProxy,\n Object.fromEntries(\n Array.from(reversedProxies.mergeBases.get(ref).entries())\n .map(([mergeProperty, mergeBase]) => [\n mergeProperty,\n propertyMergeAll(mergeBase, templateProperties ?? {}),\n ])\n .filter((item) => item[1] !== undefined)\n )\n );\n }\n\n // Use an approach like template-literal's quasis:\n // `quasi0${0}quais1${1}quasi2...`\n // Every quasi (indexed by `refPosition`) can be slotted with multiple bricks.\n const quasisMap = new Map<string, BrickConf[][]>();\n\n if (reversedProxies.slots.has(ref)) {\n for (const item of reversedProxies.slots.get(ref)) {\n if (!quasisMap.has(item.refSlot)) {\n const quasis: BrickConf[][] = [];\n // The size of quasis should be the existed slotted bricks' size plus one.\n const size = hasOwnProperty(slots, item.refSlot)\n ? slots[item.refSlot].bricks.length + 1\n : 1;\n for (let i = 0; i < size; i += 1) {\n quasis.push([]);\n }\n quasisMap.set(item.refSlot, quasis);\n }\n const expandableSlot = quasisMap.get(item.refSlot);\n const refPosition = item.refPosition ?? -1;\n expandableSlot[\n clamp(\n refPosition < 0 ? expandableSlot.length + refPosition : refPosition,\n 0,\n expandableSlot.length - 1\n )\n ].push(...(templateSlots?.[item.$$reversedRef]?.bricks ?? []));\n }\n }\n\n for (const [slotName, quasis] of quasisMap.entries()) {\n if (!hasOwnProperty(slots, slotName)) {\n slots[slotName] = {\n type: \"bricks\",\n bricks: [],\n };\n }\n const slotConf = slots[slotName];\n slotConf.bricks = quasis.flatMap((bricks, index) =>\n index < slotConf.bricks.length\n ? bricks.concat(slotConf.bricks[index])\n : bricks\n );\n\n if (slotConf.bricks.length === 0) {\n delete slots[slotName];\n }\n }\n }\n\n return {\n ...restBrickConfInTemplate,\n slots,\n [symbolForComputedPropsFromProxy]: computedPropsFromProxy,\n [symbolForRefForProxy]: refForProxy,\n [symbolForParentTemplate]: parentTemplate,\n [symbolForTplContextId]: templateContextId,\n };\n}\n","import { customTemplateRegistry } from \"./constants\";\n\n// If it's a custom template, return the tag name of the template.\n// Otherwise, return false.\nexport function getTagNameOfCustomTemplate(\n brick: string,\n appId?: string\n): false | string {\n // When a template is registered by an app, it's namespace maybe missed.\n if (!brick.includes(\".\") && appId) {\n const tagName = `${appId}.${brick}`;\n if (customTemplateRegistry.has(tagName)) {\n return tagName;\n }\n }\n if (customTemplateRegistry.has(brick)) {\n return brick;\n }\n return false;\n}\n","import {\n CustomTemplateProxyBasicProperty,\n CustomTemplateProxyProperty,\n} from \"@next-core/brick-types\";\nimport { transformElementProperties } from \"../../transformProperties\";\nimport { RuntimeBrick } from \"../BrickNode\";\nimport {\n isMergeableProperty,\n isRefProperty,\n isTransformableProperty,\n} from \"./assertions\";\nimport { propertyMerge } from \"./propertyMerge\";\n\nexport function handleProxyOfCustomTemplate(brick: RuntimeBrick): void {\n if (!brick.proxyRefs) {\n return;\n }\n\n const node = brick.element as any;\n\n function getElementByRef(ref: string): HTMLElement {\n if (brick.proxyRefs.has(ref)) {\n return brick.proxyRefs.get(ref).brick?.element;\n }\n }\n\n // For usages of `targetRef: \"...\"`.\n // `tpl.$$getElementByRef(ref)` will return the ref element inside a custom template.\n if (!node.$$getElementByRef) {\n Object.defineProperty(node, \"$$getElementByRef\", {\n value: getElementByRef,\n });\n }\n\n if (!brick.proxy) {\n return;\n }\n\n const handleExtraOneWayRefs = (\n propName: string,\n propRef: CustomTemplateProxyProperty,\n value: unknown\n ): void => {\n if (isRefProperty(propRef) && Array.isArray(propRef.extraOneWayRefs)) {\n for (const extraRef of propRef.extraOneWayRefs) {\n const extraRefElement = getElementByRef(extraRef.ref) as any;\n // should always have refElement.\n // istanbul ignore else\n if (extraRefElement) {\n if (isTransformableProperty(extraRef)) {\n transformElementProperties(\n extraRefElement as HTMLElement,\n {\n [propName]: value,\n },\n extraRef.refTransform\n );\n } else if (isMergeableProperty(extraRef)) {\n extraRefElement[extraRef.mergeProperty] = propertyMerge(\n extraRef,\n value,\n node\n );\n } else {\n extraRefElement[\n (extraRef as CustomTemplateProxyBasicProperty).refProperty\n ] = value;\n }\n }\n }\n }\n };\n\n const { $$properties: properties, events, methods } = brick.proxy;\n if (properties) {\n for (const [propName, propRef] of Object.entries(properties)) {\n const refElement = getElementByRef(propRef.ref) as any;\n // should always have refElement.\n // istanbul ignore else\n if (refElement) {\n if (isTransformableProperty(propRef) || isMergeableProperty(propRef)) {\n // Create a non-enumerable symbol property to delegate the tpl root property.\n const delegatedPropSymbol = Symbol(`delegatedProp:${propName}`);\n node[delegatedPropSymbol] = node[propName];\n Object.defineProperty(node, propName, {\n get: function () {\n return node[delegatedPropSymbol];\n },\n set: function (value: unknown) {\n node[delegatedPropSymbol] = value;\n if (isTransformableProperty(propRef)) {\n transformElementProperties(\n refElement,\n {\n [propName]: value,\n },\n propRef.refTransform\n );\n } else {\n refElement[propRef.mergeProperty] = propertyMerge(\n propRef,\n value,\n node\n );\n }\n handleExtraOneWayRefs(propName, propRef, value);\n },\n enumerable: true,\n });\n } else {\n Object.defineProperty(node, propName, {\n get: function () {\n return refElement[propRef.refProperty];\n },\n set: function (value: unknown) {\n refElement[propRef.refProperty] = value;\n handleExtraOneWayRefs(propName, propRef, value);\n },\n enumerable: true,\n });\n }\n }\n }\n }\n\n if (events) {\n for (const [eventType, eventRef] of Object.entries(events)) {\n const refElement = getElementByRef(eventRef.ref) as any;\n // should always have refElement.\n // istanbul ignore else\n if (refElement) {\n const listener = (e: Event) => {\n if (e.bubbles) {\n e.stopPropagation();\n }\n (node as HTMLElement).dispatchEvent(\n new CustomEvent(eventType, {\n detail: (e as CustomEvent).detail,\n bubbles: e.bubbles,\n cancelable: e.cancelable,\n composed: e.composed,\n })\n );\n };\n /**\n * useBrick 重新渲染会导致事件重复绑定发生\n * 为了防止代理事件重复绑定, 增加$$proxyEvents\n * 每次设置代理属性方法, 提前判断之前是否已经绑定, 如若有, 则解绑并删除\n */\n if (refElement.$$proxyEvents) {\n refElement.$$proxyEvents = (\n refElement.$$proxyEvents as Array<\n [string, string, (e: Event) => void]\n >\n ).filter(([proxyEvent, event, listener]) => {\n if (proxyEvent === eventType) {\n refElement.removeEventListener(event, listener);\n return false;\n }\n return true;\n });\n } else {\n refElement.$$proxyEvents = [];\n }\n refElement.$$proxyEvents.push([eventType, eventRef.refEvent, listener]);\n refElement.addEventListener(eventRef.refEvent, listener);\n }\n }\n }\n\n if (methods) {\n for (const [method, methodRef] of Object.entries(methods)) {\n const refElement = getElementByRef(methodRef.ref) as any;\n // should always have refElement.\n // istanbul ignore else\n if (refElement) {\n Object.defineProperty(node, method, {\n value: function (...args: unknown[]) {\n return refElement[methodRef.refMethod](...args);\n },\n });\n }\n }\n }\n}\n","import { CustomTemplateConstructor } from \"@next-core/brick-types\";\nimport { appRegistered, customTemplateRegistry } from \"./constants\";\n\nexport function registerCustomTemplate(\n tplName: string,\n tplConstructor: CustomTemplateConstructor,\n appId?: string\n): void {\n let tagName = tplName;\n // When a template is registered by an app, its namespace maybe missed.\n if (appId && !tplName.includes(\".\")) {\n tagName = `${appId}.${tplName}`;\n }\n if (customTemplateRegistry.has(tagName)) {\n // When open launchpad, the storyboard will be updated.\n // However, we can't *undefine* a custom element.\n // Just ignore re-registering custom templates.\n if (!appId || appRegistered.has(appId)) {\n // eslint-disable-next-line no-console\n console.error(`Custom template of \"${tagName}\" already registered.`);\n }\n return;\n }\n if (customElements.get(tagName)) {\n // eslint-disable-next-line no-console\n console.error(\n `Custom template of \"${tagName}\" already defined by customElements.`\n );\n return;\n }\n customTemplateRegistry.set(tagName, {\n ...tplConstructor,\n name: tagName,\n });\n\n // Collect defined properties of the template.\n const props = Object.keys(tplConstructor.proxy?.properties || {});\n\n const nativeProp = props.find((prop) => prop in HTMLElement.prototype);\n // istanbul ignore if\n if (nativeProp !== undefined) {\n // eslint-disable-next-line no-console\n console.error(\n `In custom template \"${tagName}\", \"${nativeProp}\" is a native HTMLElement property, and should be avoid to be used as a brick property.`\n );\n }\n\n customElements.define(\n tagName,\n class TplElement extends HTMLElement {\n get $$typeof(): string {\n return \"custom-template\";\n }\n\n static get _dev_only_definedProperties(): string[] {\n return props;\n }\n\n connectedCallback(): void {\n // Don't override user's style settings.\n // istanbul ignore else\n if (!this.style.display) {\n this.style.display = \"block\";\n }\n }\n }\n );\n if (appId) {\n appRegistered.add(appId);\n }\n}\n","import { uniqueId } from \"lodash\";\nimport { RuntimeBrick } from \"../BrickNode\";\n\nexport class CustomTemplateContext {\n private contextMap = new Map<string, Record<string, unknown>>();\n private brickMap = new Map<string, RuntimeBrick>();\n private propsMap = new Map<string, string[]>();\n\n createContext(): string {\n return uniqueId(\"tpl-ctx-\");\n }\n\n sealContext(\n id: string,\n value: Record<string, unknown>,\n brick: RuntimeBrick\n ): void {\n Object.freeze(value);\n this.contextMap.set(id, value);\n this.brickMap.set(id, brick);\n this.propsMap.set(id, Object.keys(value));\n }\n\n getContext(id: string): Record<string, unknown> {\n const brick = this.brickMap.get(id);\n if (brick.element) {\n const props = this.propsMap.get(id);\n return Object.fromEntries(\n props.map((prop) => [prop, (brick.element as any)[prop]])\n );\n }\n return this.contextMap.get(id);\n }\n\n getBrick(id: string): RuntimeBrick {\n return this.brickMap.get(id);\n }\n}\n","import {\n PluginRuntimeContext,\n StoryboardContextItemFreeVariable,\n} from \"@next-core/brick-types\";\nimport { setProperties } from \"./setProperties\";\nimport { RuntimeBrick } from \"../core/BrickNode\";\n\nexport interface TrackingContextItem {\n contextNames: string[];\n propName: string;\n propValue: string;\n}\n\nexport function listenOnTrackingContext(\n brick: RuntimeBrick,\n trackingContextList: TrackingContextItem[],\n context: PluginRuntimeContext\n): void {\n for (const track of trackingContextList) {\n const listener = (): void => {\n if (brick.element) {\n setProperties(\n brick.element,\n { [track.propName]: track.propValue },\n context,\n true\n );\n }\n };\n for (const contextName of track.contextNames) {\n const ctx = context.storyboardContext.get(contextName);\n (ctx as StoryboardContextItemFreeVariable)?.eventTarget?.addEventListener(\n \"context.change\",\n listener\n );\n }\n }\n}\n","import { omit, orderBy, set } from \"lodash\";\nimport EventTarget from \"@ungap/event-target\";\nimport {\n PluginLocation,\n MatchResult,\n RouteConf,\n RuntimeStoryboard,\n BrickConf,\n PluginHistoryState,\n SidebarMenu,\n SidebarSubMenu,\n MenuConf,\n BreadcrumbItemConf,\n MicroApp,\n ProviderConf,\n PluginRuntimeContext,\n BrickEventHandler,\n ResolveConf,\n StaticMenuProps,\n SeguesConf,\n ContextConf,\n StoryboardContext,\n StoryboardContextItem,\n MessageConf,\n BrickLifeCycle,\n Storyboard,\n StaticMenuConf,\n isRouteConfOfBricks,\n isRouteConfOfRoutes,\n} from \"@next-core/brick-types\";\nimport {\n isObject,\n matchPath,\n computeRealRoutePath,\n hasOwnProperty,\n resolveContextConcurrently,\n} from \"@next-core/brick-utils\";\nimport { Action, Location } from \"history\";\nimport { listenerFactory } from \"../internal/bindListeners\";\nimport {\n computeRealProperties,\n computeRealValue,\n} from \"../internal/setProperties\";\nimport { isLoggedIn, getAuth } from \"../auth\";\nimport { getHistory } from \"../history\";\nimport {\n RuntimeBrick,\n Kernel,\n appendBrick,\n Resolver,\n expandCustomTemplate,\n MountableElement,\n getTagNameOfCustomTemplate,\n symbolForComputedPropsFromProxy,\n symbolForRefForProxy,\n symbolForParentTemplate,\n ResolveRequestError,\n RuntimeBrickConfWithTplSymbols,\n CustomTemplateContext,\n} from \"./exports\";\nimport { RedirectConf } from \"./interfaces\";\nimport { looseCheckIf, IfContainer } from \"../checkIf\";\nimport { getMessageDispatcher, MessageDispatcher } from \"./MessageDispatcher\";\nimport { getRuntimeMisc } from \"../internal/misc\";\nimport { httpErrorToString } from \"../handleHttpError\";\nimport {\n getSubStoryboardByRoute,\n SubStoryboardMatcher,\n} from \"../internal/getSubStoryboardByRoute\";\nimport { symbolForTplContextId } from \"./CustomTemplates\";\nimport { validatePermissions } from \"../internal/checkPermissions\";\nimport {\n listenOnTrackingContext,\n TrackingContextItem,\n} from \"../internal/listenOnTrackingContext\";\n\nexport type MatchRoutesResult =\n | {\n match: MatchResult;\n route: RouteConf;\n }\n | \"missed\"\n | \"unauthenticated\";\n\nexport interface MountRoutesResult {\n main: RuntimeBrick[];\n menuInBg: RuntimeBrick[];\n menuBar: {\n menu?: Partial<SidebarMenu>;\n subMenu?: Partial<SidebarSubMenu>;\n menuId?: string;\n subMenuId?: string;\n };\n portal: RuntimeBrick[];\n appBar: {\n pageTitle?: string;\n breadcrumb: BreadcrumbItemConf[];\n documentId?: string;\n noCurrentApp?: boolean;\n };\n flags: {\n unauthenticated?: boolean;\n redirect?: {\n path: string;\n state?: PluginHistoryState;\n };\n barsHidden?: boolean;\n hybrid?: boolean;\n failed?: boolean;\n };\n route?: RouteConf;\n analyticsData?: Record<string, unknown>;\n}\n\ninterface BrickAndLifeCycleHandler {\n brick: RuntimeBrick;\n match: MatchResult;\n tplContextId?: string;\n handler: BrickEventHandler | BrickEventHandler[];\n}\n\nexport interface BrickAndMessage {\n brick: RuntimeBrick;\n match: MatchResult;\n tplContextId?: string;\n message: MessageConf | MessageConf[];\n}\n\nexport class LocationContext {\n private readonly query: URLSearchParams;\n readonly resolver: Resolver;\n readonly messageDispatcher: MessageDispatcher;\n private readonly beforePageLoadHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly pageLoadHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly beforePageLeaveHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly pageLeaveHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly anchorLoadHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly anchorUnloadHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly messageCloseHandlers: BrickAndLifeCycleHandler[] = [];\n private readonly messageHandlers: BrickAndMessage[] = [];\n private readonly segues: SeguesConf = {};\n private currentMatch: MatchResult;\n private readonly storyboardContext: StoryboardContext = new Map();\n private readonly tplContext = new CustomTemplateContext();\n\n constructor(private kernel: Kernel, private location: PluginLocation) {\n this.resolver = new Resolver(kernel);\n this.query = new URLSearchParams(location.search);\n this.messageDispatcher = getMessageDispatcher();\n }\n\n private getContext({\n match,\n tplContextId,\n }: {\n match: MatchResult;\n tplContextId?: string;\n }): PluginRuntimeContext {\n const auth = getAuth();\n const context: PluginRuntimeContext = {\n hash: this.location.hash,\n query: this.query,\n match,\n app: this.kernel.nextApp,\n sys: {\n org: auth.org,\n username: auth.username,\n userInstanceId: auth.userInstanceId,\n loginFrom: auth.loginFrom,\n accessRule: auth.accessRule,\n isAdmin: auth.isAdmin,\n ...getRuntimeMisc(),\n },\n flags: this.kernel.getFeatureFlags(),\n segues: this.segues,\n storyboardContext: this.storyboardContext,\n };\n if (tplContextId) {\n context.getTplVariables = () => this.tplContext.getContext(tplContextId);\n }\n return context;\n }\n\n getCurrentContext(): PluginRuntimeContext {\n return this.getContext({\n match: this.currentMatch,\n });\n }\n\n private async defineStoryboardFreeContext(\n contextConfs: ContextConf[],\n coreContext: PluginRuntimeContext,\n brick?: RuntimeBrick\n ): Promise<void> {\n await resolveContextConcurrently(contextConfs, (contextConf: ContextConf) =>\n this.resolveStoryboardContext(contextConf, coreContext, brick)\n );\n }\n\n private async resolveStoryboardContext(\n contextConf: ContextConf,\n coreContext: PluginRuntimeContext,\n brick?: RuntimeBrick\n ): Promise<boolean> {\n if (contextConf.property) {\n if (brick) {\n this.setStoryboardContext(contextConf.name, {\n type: \"brick-property\",\n brick,\n prop: contextConf.property,\n });\n }\n } else {\n if (!looseCheckIf(contextConf, coreContext)) {\n return false;\n }\n let isResolve = false;\n let value: unknown;\n if (contextConf.resolve) {\n if (looseCheckIf(contextConf.resolve, coreContext)) {\n isResolve = true;\n const valueConf: Record<string, unknown> = {};\n await this.resolver.resolveOne(\n \"reference\",\n {\n transform: \"value\",\n transformMapArray: false,\n ...contextConf.resolve,\n },\n valueConf,\n null,\n coreContext\n );\n value = valueConf.value;\n } else if (!hasOwnProperty(contextConf, \"value\")) {\n return false;\n }\n }\n if (!isResolve && contextConf.value !== undefined) {\n value = computeRealValue(contextConf.value, coreContext, true);\n }\n const newContext: StoryboardContextItem = {\n type: \"free-variable\",\n value,\n // This is required for tracking context, even if no `onChange` is specified.\n eventTarget: new EventTarget(),\n };\n if (contextConf.onChange) {\n for (const handler of ([] as BrickEventHandler[]).concat(\n contextConf.onChange\n )) {\n newContext.eventTarget.addEventListener(\n \"context.change\",\n listenerFactory(handler, coreContext, brick)\n );\n }\n }\n this.setStoryboardContext(contextConf.name, newContext);\n }\n return true;\n }\n\n private setStoryboardContext(\n name: string,\n item: StoryboardContextItem\n ): void {\n if (this.storyboardContext.has(name)) {\n // eslint-disable-next-line no-console\n console.warn(\n `Storyboard context \"${name}\" have already existed, it will be replaced.`\n );\n }\n this.storyboardContext.set(name, item);\n }\n\n private matchRoutes(routes: RouteConf[], app: MicroApp): MatchRoutesResult {\n for (const route of routes) {\n const computedPath = computeRealRoutePath(route.path, app);\n if ([].concat(computedPath).includes(undefined)) {\n // eslint-disable-next-line no-console\n console.error(\"Invalid route with invalid path:\", route);\n return \"missed\";\n }\n const match = matchPath(this.location.pathname, {\n path: computedPath,\n exact: route.exact,\n });\n if (match !== null) {\n if (app.noAuthGuard || route.public || isLoggedIn()) {\n this.currentMatch = match;\n return { match, route };\n }\n return \"unauthenticated\";\n }\n }\n return \"missed\";\n }\n\n matchStoryboard(storyboards: RuntimeStoryboard[]): RuntimeStoryboard {\n if (window.STANDALONE_MICRO_APPS && storyboards.length === 1) {\n return storyboards[0];\n }\n // Put apps with longer homepage before shorter ones.\n // E.g., `/legacy/tool` will match first before `/legacy`.\n // This enables two apps with relationship of parent-child of homepage.\n const sortedStoryboards = orderBy(\n storyboards,\n (storyboard) => storyboard.app?.homepage?.length ?? 0,\n \"desc\"\n );\n for (const storyboard of sortedStoryboards) {\n const homepage = storyboard.app?.homepage;\n if (typeof homepage === \"string\" && homepage[0] === \"/\") {\n if (\n matchPath(this.location.pathname, {\n path: homepage,\n exact: homepage === \"/\",\n })\n ) {\n return storyboard;\n }\n }\n }\n }\n\n getSubStoryboardByRoute(storyboard: Storyboard): Storyboard {\n const matcher: SubStoryboardMatcher = (routes) => {\n const matched = this.matchRoutes(routes, storyboard.app);\n return isObject(matched) ? [matched.route] : [];\n };\n return getSubStoryboardByRoute(storyboard, matcher);\n }\n\n async mountRoutes(\n routes: RouteConf[],\n slotId?: string,\n mountRoutesResult?: MountRoutesResult\n ): Promise<MountRoutesResult> {\n const matched = this.matchRoutes(routes, this.kernel.nextApp);\n let redirect: string | ResolveConf;\n const redirectConf: RedirectConf = {};\n let context: PluginRuntimeContext;\n let route: RouteConf;\n switch (matched) {\n case \"missed\":\n break;\n case \"unauthenticated\":\n mountRoutesResult.flags.unauthenticated = true;\n break;\n default:\n mountRoutesResult.route = route = matched.route;\n if (route.segues) {\n Object.assign(this.segues, route.segues);\n }\n if (route.hybrid) {\n mountRoutesResult.flags.hybrid = true;\n }\n context = this.getContext({ match: matched.match });\n this.resolver.defineResolves(route.defineResolves, context);\n await this.mountProviders(\n route.providers,\n matched.match,\n slotId,\n mountRoutesResult\n );\n\n if (Array.isArray(route.context)) {\n await this.defineStoryboardFreeContext(route.context, context);\n }\n await this.preCheckPermissions(route, context);\n\n redirect = computeRealValue(route.redirect, context, true) as\n | string\n | ResolveConf;\n\n if (redirect) {\n if (typeof redirect === \"string\") {\n // Directly redirect.\n mountRoutesResult.flags.redirect = {\n path: redirect,\n };\n break;\n } else {\n // Resolvable redirect.\n await this.resolver.resolveOne(\"reference\", redirect, redirectConf);\n if (redirectConf.redirect) {\n mountRoutesResult.flags.redirect = {\n path: redirectConf.redirect,\n };\n break;\n }\n }\n }\n\n await this.mountMenu(route.menu, matched.match, mountRoutesResult);\n\n if (route.documentId) {\n mountRoutesResult.appBar.documentId = route.documentId;\n }\n\n if (isRouteConfOfRoutes(route) && Array.isArray(route.routes)) {\n await this.mountRoutes(route.routes, slotId, mountRoutesResult);\n } else if (isRouteConfOfBricks(route) && Array.isArray(route.bricks)) {\n await this.mountBricks(\n route.bricks,\n matched.match,\n slotId,\n mountRoutesResult\n );\n\n // analytics data (page_view event)\n if (route.analyticsData) {\n mountRoutesResult.analyticsData = computeRealValue(\n route.analyticsData,\n context,\n true\n ) as Record<string, unknown>;\n }\n }\n }\n return mountRoutesResult;\n }\n\n private async mountMenu(\n menuConf: MenuConf,\n match: MatchResult,\n mountRoutesResult: MountRoutesResult\n ): Promise<void> {\n if (menuConf === false) {\n // `route.menu` 设置为 `false` 表示不显示顶栏和侧栏。\n mountRoutesResult.flags.barsHidden = true;\n return;\n }\n\n // `route.menu` 留空表示不做处理。\n if (!menuConf) {\n return;\n }\n\n const context = this.getContext({ match });\n\n if (menuConf.type === \"brick\") {\n // eslint-disable-next-line no-console\n console.warn(\n \"menu type `brick` is deprecated, please use menu type `resolve` instead\"\n );\n // 如果某个路由的菜单无法配置为静态的 json,\n // 那么可以将菜单配置指定为一个构件,这个构件会被装载到背景容器中(不会在界面中显示),\n // 应该在这个构件的 `connectedCallback` 中执行相关菜单设置,\n // 例如 `getRuntime().menuBar.setAppMenu(...)`。\n const brick: RuntimeBrick = {\n type: menuConf.brick,\n properties: computeRealProperties(\n menuConf.properties,\n context,\n menuConf.injectDeep !== false\n ),\n events: isObject(menuConf.events) ? menuConf.events : {},\n context,\n children: [],\n };\n\n this.registerHandlersFromLifeCycle(menuConf.lifeCycle, brick, match);\n\n // Then, resolve the brick.\n await this.resolver.resolve(menuConf, brick, context);\n\n mountRoutesResult.menuInBg.push(brick);\n return;\n }\n\n let injectDeep = (menuConf as StaticMenuProps).injectDeep;\n if (menuConf.type === \"resolve\") {\n await this.resolver.resolveOne(\n \"reference\",\n {\n transformMapArray: false,\n ...menuConf.resolve,\n },\n menuConf,\n null,\n context\n );\n injectDeep = false;\n }\n\n // 静态菜单配置,仅在有值时才设置,这样可以让菜单设置也具有按路由层级覆盖的能力。\n const otherMenuConf = omit(menuConf, [\"injectDeep\", \"type\"]);\n const injectedMenuConf =\n injectDeep !== false\n ? computeRealValue(otherMenuConf, context, true)\n : otherMenuConf;\n const { sidebarMenu, pageTitle, breadcrumb, menuId, subMenuId } =\n injectedMenuConf as StaticMenuConf;\n\n if (menuId) {\n mountRoutesResult.menuBar.menuId = menuId;\n mountRoutesResult.menuBar.menu = sidebarMenu;\n } else if (sidebarMenu) {\n mountRoutesResult.menuBar.menu = sidebarMenu;\n mountRoutesResult.menuBar.menuId = null;\n }\n if (subMenuId) {\n mountRoutesResult.menuBar.subMenuId = subMenuId;\n }\n if (pageTitle) {\n mountRoutesResult.appBar.pageTitle = pageTitle;\n }\n if (breadcrumb) {\n if (breadcrumb.overwrite) {\n mountRoutesResult.appBar.breadcrumb = breadcrumb.items;\n } else {\n mountRoutesResult.appBar.breadcrumb = [\n ...mountRoutesResult.appBar.breadcrumb,\n ...breadcrumb.items,\n ];\n }\n if (hasOwnProperty(breadcrumb, \"noCurrentApp\"))\n mountRoutesResult.appBar.noCurrentApp = breadcrumb.noCurrentApp;\n }\n }\n\n private async mountProviders(\n providers: ProviderConf[],\n match: MatchResult,\n slotId: string,\n mountRoutesResult: MountRoutesResult\n ): Promise<void> {\n if (Array.isArray(providers)) {\n for (const providerConf of providers) {\n await this.mountBrick(\n {\n ...(typeof providerConf === \"string\"\n ? {\n brick: providerConf,\n }\n : providerConf),\n bg: true,\n injectDeep: true,\n },\n match,\n slotId,\n mountRoutesResult\n );\n }\n }\n }\n\n private async mountBricks(\n bricks: BrickConf[],\n match: MatchResult,\n slotId: string,\n mountRoutesResult: MountRoutesResult,\n tplStack?: string[]\n ): Promise<void> {\n for (const brickConf of bricks) {\n try {\n await this.mountBrick(\n brickConf,\n match,\n slotId,\n mountRoutesResult,\n tplStack?.slice()\n );\n } catch (error) {\n if (error instanceof ResolveRequestError) {\n const errorMessage = httpErrorToString(error.rawError);\n const brickName = brickConf.template || brickConf.brick;\n const isLegacyTemplate = !!brickConf.template;\n mountRoutesResult.main.push({\n type: \"basic-bricks.brick-error\",\n properties: {\n // `textContent` is for compatibility when\n // `basic-bricks.brick-error` does not exists.\n textContent: `${\n isLegacyTemplate ? \"Legacy template\" : \"Brick\"\n } <${brickName}> ResolveRequestError: \"${errorMessage}\"`,\n errorType: \"ResolveRequestError\",\n errorMessage,\n brickName,\n isLegacyTemplate,\n },\n events: {},\n slotId,\n });\n } else {\n throw error;\n }\n }\n }\n }\n\n private async checkResolvableIf(\n ifContainer: IfContainer,\n context: PluginRuntimeContext\n ): Promise<boolean> {\n if (isObject(ifContainer.if)) {\n const ifChecked = computeRealValue(ifContainer.if, context, true);\n\n const ifConf: IfContainer = {};\n await this.resolver.resolveOne(\n \"reference\",\n ifChecked as ResolveConf,\n ifConf\n );\n return !hasOwnProperty(ifConf, \"if\") || !!ifConf.if;\n }\n\n return looseCheckIf(ifContainer, context);\n }\n\n private async preCheckPermissions(\n container: BrickConf | RouteConf,\n context: PluginRuntimeContext\n ): Promise<void> {\n if (\n isLoggedIn() &&\n !getAuth().isAdmin &&\n container.permissionsPreCheck &&\n Array.isArray(container.permissionsPreCheck)\n ) {\n const usedActions = computeRealValue(\n container.permissionsPreCheck,\n context,\n true\n );\n await validatePermissions(usedActions as string[]);\n }\n }\n\n async mountBrick(\n brickConf: BrickConf,\n match: MatchResult,\n slotId: string,\n mountRoutesResult: MountRoutesResult,\n tplStack: string[] = []\n ): Promise<void> {\n const tplContextId = (brickConf as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ];\n const context = this.getContext({\n match,\n tplContextId,\n });\n\n // First, check whether the brick should be rendered.\n if (!(await this.checkResolvableIf(brickConf, context))) {\n return;\n }\n\n // Then, resolve the template to a brick.\n if (brickConf.template) {\n await this.resolver.resolve(brickConf, null, context);\n }\n\n // Check `if` again for dynamic loaded templates.\n if (!(await this.checkResolvableIf(brickConf, context))) {\n return;\n }\n\n // If it's a custom template, `tplTagName` is the tag name of the template.\n // Otherwise, `tplTagName` is false.\n const tplTagName = getTagNameOfCustomTemplate(\n brickConf.brick,\n this.kernel.nextApp?.id\n );\n\n if (tplTagName) {\n if (tplStack.includes(tplTagName)) {\n throw new Error(`Circular custom template: \"${tplTagName}\"`);\n }\n tplStack.push(tplTagName);\n }\n\n const brick: RuntimeBrick = {};\n\n if (Array.isArray(brickConf.context)) {\n await this.defineStoryboardFreeContext(brickConf.context, context, brick);\n }\n\n await this.preCheckPermissions(brickConf, context);\n\n const trackingContextList: TrackingContextItem[] = [];\n\n Object.assign(brick, {\n type: tplTagName || brickConf.brick,\n properties: computeRealProperties(\n brickConf.properties,\n context,\n brickConf.injectDeep !== false,\n trackingContextList\n ),\n events: isObject(brickConf.events) ? brickConf.events : {},\n context,\n children: [],\n slotId,\n refForProxy: (brickConf as RuntimeBrickConfWithTplSymbols)[\n symbolForRefForProxy\n ],\n parentTemplate: (brickConf as RuntimeBrickConfWithTplSymbols)[\n symbolForParentTemplate\n ],\n });\n\n if (\n (brickConf as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ) {\n Object.entries(\n (brickConf as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ).forEach(([propName, propValue]) => {\n set(brick.properties, propName, propValue);\n });\n }\n\n listenOnTrackingContext(brick, trackingContextList, context);\n\n if (brick.refForProxy) {\n brick.refForProxy.brick = brick;\n }\n\n this.registerHandlersFromLifeCycle(\n brickConf.lifeCycle,\n brick,\n match,\n tplContextId\n );\n\n // Then, resolve the brick.\n await this.resolver.resolve(brickConf, brick, context);\n\n let expandedBrickConf = brickConf;\n if (tplTagName) {\n expandedBrickConf = expandCustomTemplate(\n {\n ...brickConf,\n brick: tplTagName,\n // Properties are computed for custom templates.\n properties: brick.properties,\n },\n brick,\n context,\n this.tplContext\n );\n\n // Try to load deps for dynamic added bricks.\n await this.kernel.loadDynamicBricksInBrickConf(expandedBrickConf);\n }\n\n const useBrickList: RuntimeBrickConfWithTplSymbols[] = [];\n\n const walkUseBrickInProperties = (\n properties: Record<string, unknown> = {}\n ) => {\n Object.entries(properties).forEach(([key, value]) => {\n // 在测试环境发现有人写成 useBrick: true, 故做了一个兼容处理, 防止报错\n if (key === \"useBrick\" && isObject(value)) {\n useBrickList.push(value);\n }\n if (isObject(value)) {\n walkUseBrickInProperties(value);\n }\n });\n };\n const setTplIdForUseBrick = (list: RuntimeBrickConfWithTplSymbols[]) => {\n if (Array.isArray(list)) {\n list.forEach((item) => {\n if (Array.isArray(item)) {\n setTplIdForUseBrick(item);\n } else {\n item[symbolForTplContextId] = tplContextId;\n if (item.slots) {\n const slotsContent = Object.values(item.slots);\n slotsContent.forEach((slotItem) => {\n setTplIdForUseBrick((slotItem as any).bricks);\n });\n }\n }\n });\n }\n };\n // 如果properteis中存在useBrick, 则递归遍历并赋值tplContextId\n if (tplContextId) {\n walkUseBrickInProperties(brick.properties);\n if (useBrickList.length > 0) {\n setTplIdForUseBrick(useBrickList);\n }\n }\n\n if (expandedBrickConf.exports) {\n for (const [prop, ctxName] of Object.entries(expandedBrickConf.exports)) {\n if (typeof ctxName === \"string\" && ctxName.startsWith(\"CTX.\")) {\n this.setStoryboardContext(ctxName.substr(4), {\n type: \"brick-property\",\n brick,\n prop,\n });\n }\n }\n }\n\n if (expandedBrickConf.bg) {\n appendBrick(brick, this.kernel.mountPoints.bg as MountableElement);\n } else {\n if (expandedBrickConf.portal) {\n // A portal brick has no slotId.\n brick.slotId = undefined;\n // Make parent portal bricks appear before child bricks.\n // This makes z-index of a child brick be higher than its parent.\n mountRoutesResult.portal.push(brick);\n }\n if (isObject(expandedBrickConf.slots)) {\n for (const [slotId, slotConf] of Object.entries(\n expandedBrickConf.slots\n )) {\n const slottedMountRoutesResult = {\n ...mountRoutesResult,\n main: brick.children,\n };\n if (slotConf.type === \"bricks\") {\n await this.mountBricks(\n slotConf.bricks,\n match,\n slotId,\n slottedMountRoutesResult,\n tplStack\n );\n } else if (slotConf.type === \"routes\") {\n await this.mountRoutes(\n slotConf.routes,\n slotId,\n slottedMountRoutesResult\n );\n }\n }\n }\n if (!expandedBrickConf.portal) {\n mountRoutesResult.main.push(brick);\n }\n }\n }\n\n private registerHandlersFromLifeCycle(\n lifeCycle: BrickLifeCycle,\n brick: RuntimeBrick,\n match: MatchResult,\n tplContextId?: string\n ): void {\n const {\n onBeforePageLoad,\n onPageLoad,\n onBeforePageLeave,\n onPageLeave,\n onAnchorLoad,\n onAnchorUnload,\n onMessage,\n onMessageClose,\n } = lifeCycle ?? {};\n\n if (onBeforePageLoad) {\n this.beforePageLoadHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onBeforePageLoad,\n });\n }\n\n if (onPageLoad) {\n this.pageLoadHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onPageLoad,\n });\n }\n\n if (onBeforePageLeave) {\n this.beforePageLeaveHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onBeforePageLeave,\n });\n }\n\n if (onPageLeave) {\n this.pageLeaveHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onPageLeave,\n });\n }\n\n if (onAnchorLoad) {\n this.anchorLoadHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onAnchorLoad,\n });\n }\n\n if (onAnchorUnload) {\n this.anchorUnloadHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onAnchorUnload,\n });\n }\n\n if (onMessage) {\n this.messageHandlers.push({\n brick,\n match,\n tplContextId,\n message: onMessage,\n });\n }\n\n if (onMessageClose) {\n this.messageCloseHandlers.push({\n brick,\n match,\n tplContextId,\n handler: onMessageClose,\n });\n }\n }\n\n handleBeforePageLoad(): void {\n this.dispatchLifeCycleEvent(\n new CustomEvent(\"page.beforeLoad\"),\n this.beforePageLoadHandlers\n );\n }\n\n handlePageLoad(): void {\n const event = new CustomEvent(\"page.load\");\n\n this.dispatchLifeCycleEvent(event, this.pageLoadHandlers);\n\n // Currently only for e2e testing\n window.dispatchEvent(event);\n }\n\n handleBeforePageLeave(detail: {\n location?: Location<PluginHistoryState>;\n action?: Action;\n }): void {\n this.dispatchLifeCycleEvent(\n new CustomEvent(\"page.beforeLeave\", {\n detail,\n }),\n this.beforePageLeaveHandlers\n );\n }\n\n handlePageLeave(): void {\n this.dispatchLifeCycleEvent(\n new CustomEvent(\"page.leave\"),\n this.pageLeaveHandlers\n );\n }\n\n handleAnchorLoad(): void {\n const hash = getHistory().location.hash;\n if (hash && hash !== \"#\") {\n this.dispatchLifeCycleEvent(\n new CustomEvent(\"anchor.load\", {\n detail: {\n hash,\n anchor: hash.substr(1),\n },\n }),\n this.anchorLoadHandlers\n );\n } else {\n this.dispatchLifeCycleEvent(\n new CustomEvent(\"anchor.unload\"),\n this.anchorUnloadHandlers\n );\n }\n }\n\n handleMessage(): void {\n this.messageDispatcher.create(\n this.messageHandlers,\n this.getCurrentContext()\n );\n }\n\n handleMessageClose(event: CloseEvent): void {\n this.dispatchLifeCycleEvent(\n new CustomEvent<CloseEvent>(\"message.close\", {\n detail: event,\n }),\n this.messageCloseHandlers\n );\n }\n\n getCurrentMatch(): MatchResult {\n return this.currentMatch;\n }\n\n getTplContext(): CustomTemplateContext {\n return this.tplContext;\n }\n\n private dispatchLifeCycleEvent(\n event: CustomEvent,\n handlers: BrickAndLifeCycleHandler[]\n ): void {\n for (const brickAndHandler of handlers) {\n for (const handler of ([] as BrickEventHandler[]).concat(\n brickAndHandler.handler\n )) {\n listenerFactory(\n handler,\n this.getContext({\n match: brickAndHandler.match,\n tplContextId: brickAndHandler.tplContextId,\n }),\n brickAndHandler.brick\n )(event);\n }\n }\n }\n}\n","import { setRealProperties } from \"../internal/setProperties\";\nimport { RuntimeBrick, BrickNode } from \"./exports\";\n\nexport interface MountableElement extends HTMLElement {\n $$rootBricks: BrickNode[];\n}\n\nexport function unmountTree(mountPoint: MountableElement): void {\n if (Array.isArray(mountPoint.$$rootBricks)) {\n mountPoint.$$rootBricks.forEach((brick) => {\n brick.unmount();\n });\n mountPoint.$$rootBricks = [];\n }\n mountPoint.innerHTML = \"\";\n}\n\n// Todo(steve): reconcile.\nexport function mountTree(\n bricks: RuntimeBrick[],\n mountPoint: MountableElement\n): void {\n // Destroy any existing tree\n if (mountPoint.firstChild) {\n unmountTree(mountPoint);\n }\n\n // Create the top-level internal instance\n const rootBricks = bricks.map((brick) => new BrickNode(brick));\n\n // Mount the top-level component into the container\n const nodes = rootBricks.map((brick) => brick.mount());\n nodes.forEach((node) => mountPoint.appendChild(node));\n\n // Save a reference to the internal instance\n mountPoint.$$rootBricks = rootBricks;\n}\n\nexport function afterMountTree(mountPoint: MountableElement): void {\n if (Array.isArray(mountPoint.$$rootBricks)) {\n mountPoint.$$rootBricks.forEach((brick) => {\n brick.afterMount();\n });\n }\n}\n\nexport function mountStaticNode(\n mountPoint: HTMLElement,\n properties: Record<string, any>\n): void {\n setRealProperties(mountPoint, properties);\n}\n\nexport function appendBrick(\n brick: RuntimeBrick,\n mountPoint: MountableElement\n): void {\n const brickNode = new BrickNode(brick);\n mountPoint.appendChild(brickNode.mount());\n if (!mountPoint.$$rootBricks) {\n mountPoint.$$rootBricks = [];\n }\n mountPoint.$$rootBricks.push(brickNode);\n}\n","import { get } from \"lodash\";\nimport {\n GeneralTransform,\n HandleReject,\n HandleRejectByTransform,\n} from \"@next-core/brick-types\";\nimport {\n transformIntermediateData,\n transformElementProperties,\n} from \"../transformProperties\";\nimport { computeRealValue } from \"./setProperties\";\nimport { RuntimeBrick } from \"../core/exports\";\nimport { handleHttpError } from \"../handleHttpError\";\nimport { recursiveMarkAsInjected } from \"./injected\";\n\nexport interface ProviderDependents {\n brick: RuntimeBrick;\n method: string;\n args: any[];\n field?: string | string[];\n transform?: GeneralTransform;\n transformFrom?: string | string[];\n transformMapArray?: boolean | \"auto\";\n onReject?: HandleReject;\n ref?: string;\n intermediateTransform?: GeneralTransform;\n intermediateTransformFrom?: string | string[];\n intermediateTransformMapArray?: boolean | \"auto\";\n}\n\nexport interface IntervalSettings {\n delay: number;\n ignoreErrors?: boolean;\n timeoutId?: any;\n}\n\nexport interface RefreshOptions {\n ignoreErrors?: boolean;\n throwErrors?: boolean;\n $$scheduled?: boolean;\n}\n\nexport interface RefreshableProvider extends Element {\n interval?: IntervalSettings;\n\n // 使用 `$` 作前缀表明这是运行时追加的属性/方法。\n $refresh: (options?: RefreshOptions) => Promise<void>;\n\n // 使用 `$$` 作前缀表明这是运行时追加的内部属性/方法。\n $$dependents: ProviderDependents[];\n\n $clearInterval?: () => void;\n\n $$intervalCleared?: boolean;\n\n [key: string]: any;\n}\n\nexport function makeProviderRefreshable(\n providerBrick: RefreshableProvider\n): void {\n if (!providerBrick.$refresh) {\n // Use a symbol key to make a private property.\n const keyOfIntervalStopped = Symbol(\"intervalStopped\");\n Object.defineProperties(providerBrick, {\n $$dependents: {\n value: [],\n },\n $stopInterval: {\n value: () => {\n (providerBrick as any)[keyOfIntervalStopped] = true;\n },\n },\n // Currently don't support `$restartInterval`.\n // $restartInterval: {\n // value: () => {\n // (providerBrick as any)[keyOfIntervalStopped] = false;\n // }\n // },\n $refresh: {\n value: async function ({\n ignoreErrors,\n throwErrors,\n $$scheduled,\n }: RefreshOptions = {}) {\n if ($$scheduled && (providerBrick as any)[keyOfIntervalStopped]) {\n return;\n }\n const cache = new Map();\n try {\n await Promise.all(\n (this as RefreshableProvider).$$dependents.map(\n async ({\n brick,\n method,\n args,\n field,\n transform,\n transformFrom,\n transformMapArray,\n onReject,\n ref,\n intermediateTransform,\n intermediateTransformFrom,\n intermediateTransformMapArray,\n }) => {\n const cacheKey = JSON.stringify({\n method,\n args,\n });\n let promise: Promise<any>;\n if (cache.has(cacheKey)) {\n promise = cache.get(cacheKey);\n } else {\n const actualArgs = args\n ? brick.context\n ? computeRealValue(args, brick.context, true)\n : args\n : providerBrick.args || [];\n promise = providerBrick[method](...actualArgs);\n cache.set(cacheKey, promise);\n }\n let data: any;\n\n async function fetchData(): Promise<void> {\n const value = await promise;\n data =\n field === null || field === undefined\n ? value\n : get(value, field);\n // The fetched data and its inner objects should never be *injected* again.\n recursiveMarkAsInjected(data);\n }\n\n if (onReject) {\n // Transform as `onReject.transform` when provider failed.\n try {\n await fetchData();\n } catch (error) {\n const onRejectTransform = (\n onReject as HandleRejectByTransform\n ).transform;\n if (onRejectTransform) {\n transformElementProperties(\n brick.element,\n error,\n brick.context\n ? (computeRealValue(\n onRejectTransform,\n brick.context,\n true\n ) as GeneralTransform)\n : onRejectTransform\n );\n }\n return;\n }\n } else {\n await fetchData();\n }\n\n if (ref) {\n data = transformIntermediateData(\n data,\n brick.context\n ? (computeRealValue(\n intermediateTransform,\n brick.context,\n true\n ) as GeneralTransform)\n : intermediateTransform,\n intermediateTransformFrom,\n intermediateTransformMapArray\n );\n }\n\n transformElementProperties(\n brick.element,\n data,\n brick.context\n ? (computeRealValue(\n transform,\n brick.context,\n true\n ) as GeneralTransform)\n : transform,\n transformFrom,\n transformMapArray\n );\n }\n )\n );\n } catch (error) {\n if (!ignoreErrors) {\n // 默认提示错误,但不抛出错误。\n handleHttpError(error);\n if (throwErrors) {\n throw error;\n }\n }\n }\n },\n },\n });\n }\n}\n","import { get } from \"lodash\";\nimport {\n BrickConf,\n PluginRuntimeContext,\n RuntimeBrickConf,\n RefResolveConf,\n EntityResolveConf,\n DefineResolveConf,\n ResolveConf,\n HandleRejectByTransform,\n UseProviderResolveConf,\n SelectorProviderResolveConf,\n HandleReject,\n HandleRejectByCatch,\n GeneralTransform,\n} from \"@next-core/brick-types\";\nimport { asyncProcessBrick } from \"@next-core/brick-utils\";\nimport { computeRealValue } from \"../internal/setProperties\";\nimport { Kernel, RuntimeBrick } from \"./exports\";\nimport {\n makeProviderRefreshable,\n RefreshableProvider,\n IntervalSettings,\n} from \"../internal/makeProviderRefreshable\";\nimport { brickTemplateRegistry } from \"./TemplateRegistries\";\nimport {\n transformProperties,\n transformIntermediateData,\n} from \"../transformProperties\";\nimport { recursiveMarkAsInjected } from \"../internal/injected\";\nimport { looseCheckIf } from \"../checkIf\";\nimport { getArgsOfCustomApi } from \"./FlowApi\";\n\nexport class Resolver {\n private readonly cache: Map<string, Promise<any>> = new Map();\n private refreshQueue: Map<RefreshableProvider, IntervalSettings> = new Map();\n private readonly definedResolves: Map<string, DefineResolveConf> = new Map();\n private active = true;\n\n constructor(private kernel: Kernel) {}\n\n resetRefreshQueue(): void {\n if (this.refreshQueue.size > 0) {\n for (const interval of this.refreshQueue.values()) {\n clearTimeout(interval.timeoutId);\n }\n this.refreshQueue = new Map();\n }\n this.active = false;\n }\n\n defineResolves(\n resolves: DefineResolveConf[],\n context: PluginRuntimeContext\n ): void {\n if (Array.isArray(resolves)) {\n for (const resolveConf of resolves) {\n this.definedResolves.set(resolveConf.id, {\n ...resolveConf,\n args: computeRealValue(resolveConf.args, context, true) as unknown[],\n });\n }\n }\n }\n\n async resolve(\n brickConf: BrickConf,\n brick: RuntimeBrick,\n context?: PluginRuntimeContext\n ): Promise<void> {\n const useResolves = (brickConf.lifeCycle?.useResolves ?? []).filter(\n (r: ResolveConf) => {\n return looseCheckIf(r, context);\n }\n );\n\n await Promise.all(\n useResolves.map((resolveConf: ResolveConf) =>\n this.resolveOne(\"brick\", resolveConf, brickConf, brick, context)\n )\n );\n if (brickConf.template) {\n (brickConf as RuntimeBrickConf).$$resolved = true;\n\n // Try to process templates.\n await asyncProcessBrick(\n brickConf,\n brickTemplateRegistry,\n this.kernel.bootstrapData.templatePackages\n );\n\n // Try to load deps for dynamic added bricks.\n await this.kernel.loadDynamicBricksInBrickConf(brickConf);\n }\n }\n\n async resolveOne(\n type: \"brick\",\n resolveConf: ResolveConf,\n conf: BrickConf,\n brick?: RuntimeBrick,\n context?: PluginRuntimeContext\n ): Promise<void>;\n async resolveOne(\n type: \"reference\",\n resolveConf: ResolveConf,\n conf: Record<string, any>,\n brick?: RuntimeBrick,\n context?: PluginRuntimeContext\n ): Promise<void>;\n async resolveOne(\n type: \"brick\" | \"reference\",\n resolveConf: ResolveConf,\n conf: BrickConf | Record<string, any>,\n brick?: RuntimeBrick,\n context?: PluginRuntimeContext\n ): Promise<void> {\n const brickConf = conf as BrickConf;\n const propsReference = conf as Record<string, any>;\n let actualResolveConf: EntityResolveConf;\n const { ref, onReject } = resolveConf as RefResolveConf;\n if (ref) {\n if (!this.definedResolves.has(ref)) {\n throw new Error(\n `Provider ref not found: \"${ref}\" in ${\n type === \"reference\"\n ? \"reference\"\n : brickConf.template\n ? `template ${brickConf.template}`\n : `brick ${brick.type}`\n }`\n );\n }\n actualResolveConf = this.definedResolves.get(ref);\n } else {\n actualResolveConf = resolveConf as EntityResolveConf;\n }\n\n let data: any;\n const {\n name,\n provider,\n useProvider,\n method = \"resolve\",\n args,\n field,\n transformFrom,\n transformMapArray,\n transform,\n } = actualResolveConf as UseProviderResolveConf &\n SelectorProviderResolveConf;\n\n let providerBrick: RefreshableProvider;\n\n if (useProvider) {\n providerBrick = (await this.kernel.getProviderBrick(useProvider)) as any;\n } else {\n providerBrick = this.kernel.mountPoints.bg.querySelector(provider);\n\n if (!providerBrick) {\n throw new Error(\n `Provider not found: \"${provider}\" in ${\n type === \"reference\"\n ? \"reference\"\n : brickConf.template\n ? `template ${brickConf.template}`\n : `brick ${brick.type}`\n }`\n );\n }\n\n const providerTagName = providerBrick.tagName.toLowerCase();\n\n if (!customElements.get(providerTagName)) {\n throw new Error(\n `Provider not defined: \"${providerTagName}\", please make sure the related package is installed.`\n );\n }\n\n makeProviderRefreshable(providerBrick);\n\n if (providerBrick.interval && !this.refreshQueue.has(providerBrick)) {\n this.refreshQueue.set(providerBrick, { ...providerBrick.interval });\n }\n\n // Currently we can't refresh dynamic templates.\n if (type !== \"reference\" && !brickConf.template) {\n providerBrick.$$dependents.push({\n brick,\n method,\n args,\n field,\n ...(ref\n ? {\n ref,\n intermediateTransform: transform || name,\n intermediateTransformFrom: transformFrom,\n intermediateTransformMapArray: transformMapArray,\n transform: resolveConf.transform,\n transformFrom: resolveConf.transformFrom,\n transformMapArray: resolveConf.transformMapArray,\n onReject,\n }\n : {\n transform: transform || name,\n transformFrom,\n transformMapArray,\n }),\n });\n }\n }\n\n const cacheKey = JSON.stringify({\n provider,\n useProvider,\n method,\n args,\n });\n let promise: Promise<any>;\n if (this.cache.has(cacheKey)) {\n promise = this.cache.get(cacheKey);\n } else {\n let actualArgs = args\n ? ref\n ? args // `args` are already computed for `defineResolves`\n : context\n ? computeRealValue(args, context, true)\n : args\n : providerBrick.args || [];\n\n promise = (async () => {\n if (useProvider) {\n actualArgs = await getArgsOfCustomApi(useProvider, actualArgs);\n }\n return providerBrick[method](...actualArgs);\n })();\n this.cache.set(cacheKey, promise);\n }\n\n let props: Record<string, any>;\n if (type === \"reference\") {\n props = propsReference;\n } else if (brickConf.template) {\n // It's a dynamic template.\n if (!brickConf.params) {\n // eslint-disable-next-line require-atomic-updates\n brickConf.params = {};\n }\n props = brickConf.params;\n } else {\n // It's a dynamic brick.\n props = brick.properties;\n }\n\n async function fetchData(): Promise<void> {\n const value = await promise;\n data = field === null || field === undefined ? value : get(value, field);\n // The fetched data and its inner objects should never be *injected* again.\n recursiveMarkAsInjected(data);\n }\n\n if (onReject) {\n // Transform as `onReject.transform` when provider failed.\n try {\n await fetchData();\n } catch (error) {\n if (isHandleRejectByTransform(onReject)) {\n transformProperties(\n props,\n error,\n context\n ? (computeRealValue(\n onReject.transform,\n context,\n true\n ) as GeneralTransform)\n : onReject.transform\n );\n return;\n } else if (isHandleRejectByCatch(onReject)) {\n throw new ResolveRequestError(error);\n } else {\n throw error;\n }\n }\n } else {\n await fetchData();\n }\n\n if (ref) {\n data = transformIntermediateData(\n data,\n context\n ? (computeRealValue(transform, context, true) as GeneralTransform)\n : transform,\n transformFrom,\n transformMapArray\n );\n }\n\n transformProperties(\n props,\n data,\n // Also support legacy `name`\n context\n ? (computeRealValue(\n resolveConf.transform || resolveConf.name,\n context,\n true\n ) as GeneralTransform)\n : resolveConf.transform || resolveConf.name,\n resolveConf.transformFrom,\n resolveConf.transformMapArray\n );\n }\n\n scheduleRefreshing(): void {\n for (const [providerBrick, interval] of this.refreshQueue.entries()) {\n const request = async (): Promise<void> => {\n await providerBrick.$refresh({\n ignoreErrors: interval.ignoreErrors,\n throwErrors: true,\n $$scheduled: true,\n });\n if (this.active) {\n // eslint-disable-next-line require-atomic-updates\n interval.timeoutId = setTimeout(request, interval.delay);\n }\n };\n interval.timeoutId = setTimeout(request, interval.delay);\n }\n }\n}\n\nfunction isHandleRejectByTransform(\n onReject: HandleReject\n): onReject is HandleRejectByTransform {\n return !!(onReject as HandleRejectByTransform).transform;\n}\n\nfunction isHandleRejectByCatch(\n onReject: HandleReject\n): onReject is HandleRejectByCatch {\n return !!(onReject as HandleRejectByCatch).isolatedCrash;\n}\n\nexport class ResolveRequestError extends Error {\n rawError: any;\n\n constructor(rawError: any) {\n // Pass remaining arguments (including vendor specific ones) to parent constructor\n super(rawError.message);\n\n this.name = \"ResolveRequestError\";\n\n // Maintains proper stack trace for where our error was thrown (only available on V8)\n // istanbul ignore else\n if (Error.captureStackTrace) {\n Error.captureStackTrace(this, ResolveRequestError);\n }\n\n this.rawError = rawError;\n }\n}\n","export function shouldBeDefaultCollapsed(\n defaultCollapsed: boolean,\n defaultCollapsedBreakpoint: number\n): boolean {\n return (\n defaultCollapsed ||\n (defaultCollapsedBreakpoint &&\n document.documentElement.clientWidth < defaultCollapsedBreakpoint)\n );\n}\n","import { Mocks, MockRule } from \"@next-core/brick-types/src/manifest\";\n\nlet mocks: Mocks = {\n mockId: null,\n mockList: [],\n};\n\nexport function registerMock(useMocks: Mocks): void {\n if (useMocks)\n mocks = {\n ...useMocks,\n mockList: useMocks.mockList?.map((item) => ({\n ...item,\n uri: item.uri\n .replace(\n /(easyops\\.api\\.)(.+)(@\\d+\\.\\d+\\.\\d+(?=\\/))(.+)/,\n (_match, p1, p2, _p3, p4) => {\n return `(${p1})?${p2}(@\\\\d+\\\\.\\\\d+\\\\.\\\\d+)?${p4}$`;\n }\n )\n .replace(/:\\w+/g, \"[\\\\w|-]+\"),\n })),\n };\n}\n\nexport function getMockList(): MockRule[] {\n return mocks.mockList;\n}\n\nexport const getMockId = (requestUrl: string): string | undefined => {\n if (mocks.mockList.find((item) => new RegExp(item.uri).test(requestUrl)))\n return mocks.mockId;\n return undefined;\n};\n","import { locationsAreEqual, createPath, Action, Location } from \"history\";\nimport { uniqueId } from \"lodash\";\nimport {\n LayoutType,\n PluginHistoryState,\n PluginLocation,\n PluginRuntimeContext,\n} from \"@next-core/brick-types\";\nimport {\n restoreDynamicTemplates,\n scanCustomApisInStoryboard,\n mapCustomApisToNameAndNamespace,\n CustomApiInfo,\n} from \"@next-core/brick-utils\";\nimport { apiAnalyzer, userAnalytics } from \"@next-core/easyops-analytics\";\nimport {\n LocationContext,\n mountTree,\n mountStaticNode,\n Kernel,\n MountableElement,\n unmountTree,\n MountRoutesResult,\n appendBrick,\n Resolver,\n} from \"./exports\";\nimport { getHistory } from \"../history\";\nimport { httpErrorToString, handleHttpError } from \"../handleHttpError\";\nimport { isUnauthenticatedError } from \"../internal/isUnauthenticatedError\";\nimport { RecentApps, RouterState } from \"./interfaces\";\nimport { resetAllInjected } from \"../internal/injected\";\nimport { getAuth, isLoggedIn } from \"../auth\";\nimport { devtoolsHookEmit } from \"../internal/devtools\";\nimport { afterMountTree } from \"./reconciler\";\nimport { constructMenu } from \"../internal/menu\";\nimport { getRuntimeMisc } from \"../internal/misc\";\nimport { applyMode, applyTheme, setMode, setTheme } from \"../themeAndMode\";\nimport { preCheckPermissions } from \"../internal/checkPermissions\";\nimport { clearPollTimeout } from \"../internal/poll\";\nimport { shouldBeDefaultCollapsed } from \"../internal/shouldBeDefaultCollapsed\";\nimport { CustomTemplateContext } from \"./CustomTemplates\";\nimport { registerStoryboardFunctions } from \"./StoryboardFunctions\";\nimport { HttpResponseError } from \"@next-core/brick-http\";\nimport { registerMock } from \"./MockRegistry\";\n\nexport class Router {\n private defaultCollapsed = false;\n private locationContext: LocationContext;\n private rendering = false;\n private nextLocation: PluginLocation;\n private prevLocation: PluginLocation;\n private state: RouterState = \"initial\";\n private renderId: string;\n private readonly featureFlags: Record<string, boolean>;\n\n constructor(private kernel: Kernel) {\n this.featureFlags = this.kernel.getFeatureFlags();\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 private getBlockMessageBeforePageLave(detail: {\n location?: Location<PluginHistoryState>;\n action?: Action;\n }): string {\n const history = getHistory();\n const previousMessage = history.getBlockMessage();\n this.locationContext?.handleBeforePageLeave(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 private locationChangeNotify(from: string, to: string): void {\n if (this.featureFlags[\"log-location-change\"]) {\n const username = getAuth().username;\n const params = new URLSearchParams();\n params.append(\"u\", username);\n params.append(\"f\", from);\n params.append(\"t\", to);\n params.append(\"ts\", (+new Date()).toString());\n const image = new Image();\n image.src = `${\n window.CORE_ROOT ?? \"\"\n }assets/ea/analytics.jpg?${params.toString()}`;\n }\n }\n\n async bootstrap(): Promise<void> {\n const history = getHistory();\n this.prevLocation = history.location;\n this.locationChangeNotify(\"\", history.location.pathname);\n history.listen(async (location: PluginLocation, action: Action) => {\n let ignoreRendering = false;\n const omittedLocationProps: Partial<PluginLocation> = {\n hash: null,\n state: null,\n };\n // Omit the \"key\" when checking whether locations are equal in certain situations.\n if (\n // When current location is triggered by browser action of hash link.\n location.key === undefined ||\n // When current location is triggered by browser action of non-push-or-replace,\n // such as goBack or goForward,\n (action === \"POP\" &&\n // and the previous location was triggered by hash link,\n (this.prevLocation.key === undefined ||\n // or the previous location specified notify false.\n this.prevLocation.state?.notify === false))\n ) {\n omittedLocationProps.key = null;\n }\n if (\n locationsAreEqual(\n { ...this.prevLocation, ...omittedLocationProps },\n { ...location, ...omittedLocationProps }\n ) ||\n (action !== \"POP\" && location.state?.notify === false)\n ) {\n // Ignore rendering if location not changed except hash, state and optional key.\n // Ignore rendering if notify is `false`.\n ignoreRendering = true;\n }\n if (ignoreRendering) {\n this.prevLocation = location;\n return;\n }\n\n this.locationChangeNotify(this.prevLocation.pathname, location.pathname);\n this.prevLocation = location;\n this.locationContext.handlePageLeave();\n this.locationContext.messageDispatcher.reset();\n if (this.rendering) {\n this.nextLocation = location;\n } else {\n try {\n devtoolsHookEmit(\"locationChange\");\n await this.queuedRender(location);\n } catch (e) {\n handleHttpError(e);\n }\n }\n });\n await this.queuedRender(history.location);\n this.kernel.firstRendered();\n }\n\n private async queuedRender(location: PluginLocation): Promise<void> {\n this.rendering = true;\n try {\n await this.render(location);\n } finally {\n this.rendering = false;\n if (this.nextLocation) {\n const nextLocation = this.nextLocation;\n this.nextLocation = null;\n await this.queuedRender(nextLocation);\n }\n }\n }\n\n private async render(location: PluginLocation): Promise<void> {\n this.state = \"initial\";\n this.renderId = uniqueId(\"render-id-\");\n\n resetAllInjected();\n clearPollTimeout();\n\n if (this.locationContext) {\n this.locationContext.resolver.resetRefreshQueue();\n }\n\n const history = getHistory();\n history.unblock();\n\n // Create the page tracker before page load.\n // And the API Analyzer maybe disabled.\n const pageTracker = apiAnalyzer.getInstance()?.pageTracker();\n\n const locationContext = (this.locationContext = new LocationContext(\n this.kernel,\n location\n ));\n\n const storyboard = locationContext.matchStoryboard(\n this.kernel.bootstrapData.storyboards\n );\n\n if (storyboard) {\n await this.kernel.fulfilStoryboard(storyboard);\n\n // 将动态解析后的模板还原,以便重新动态解析。\n restoreDynamicTemplates(storyboard);\n\n // 预加载权限信息\n if (isLoggedIn() && !getAuth().isAdmin) {\n await preCheckPermissions(storyboard);\n }\n\n // 如果找到匹配的 storyboard,那么根据路由匹配得到的 sub-storyboard 加载它的依赖库。\n const subStoryboard =\n this.locationContext.getSubStoryboardByRoute(storyboard);\n await this.kernel.loadDepsOfStoryboard(subStoryboard);\n\n // 注册 Storyboard 中定义的自定义模板和函数。\n this.kernel.registerCustomTemplatesInStoryboard(storyboard);\n registerStoryboardFunctions(storyboard.meta?.functions, storyboard.app);\n\n registerMock(storyboard.meta?.mocks);\n }\n\n const { mountPoints, currentApp: previousApp } = this.kernel;\n const currentApp = storyboard ? storyboard.app : undefined;\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 const legacy = currentApp ? currentApp.legacy : undefined;\n this.kernel.nextApp = currentApp;\n const layoutType: LayoutType = currentApp?.layoutType || \"console\";\n\n devtoolsHookEmit(\"rendering\");\n\n unmountTree(mountPoints.bg as MountableElement);\n\n const redirectToLogin = (): void => {\n history.replace(\n this.featureFlags[\"sso-enabled\"] ? \"/sso-auth/login\" : \"/auth/login\",\n {\n from: location,\n }\n );\n };\n\n if (storyboard) {\n if (appChanged && currentApp.id && isLoggedIn()) {\n const usedCustomApis: CustomApiInfo[] = mapCustomApisToNameAndNamespace(\n scanCustomApisInStoryboard(storyboard)\n );\n if (usedCustomApis?.length) {\n await this.kernel.loadMicroAppApiOrchestrationAsync(usedCustomApis);\n }\n }\n\n const mountRoutesResult: MountRoutesResult = {\n main: [],\n menuInBg: [],\n menuBar: {},\n portal: [],\n appBar: {\n breadcrumb: [],\n documentId: null,\n noCurrentApp: currentApp.breadcrumb?.noCurrentApp ?? false,\n },\n flags: {\n redirect: undefined,\n hybrid: false,\n failed: false,\n },\n };\n try {\n await locationContext.mountRoutes(\n storyboard.routes,\n undefined,\n mountRoutesResult\n );\n } catch (error) {\n // eslint-disable-next-line no-console\n console.error(error);\n\n // Redirect to login page if not logged in.\n if (isUnauthenticatedError(error)) {\n mountRoutesResult.flags.unauthenticated = true;\n } else {\n await this.kernel.layoutBootstrap(layoutType);\n const brickPageError = this.kernel.presetBricks.pageError;\n await this.kernel.loadDynamicBricks([brickPageError]);\n\n mountRoutesResult.flags.failed = true;\n mountRoutesResult.main = [\n {\n type: brickPageError,\n properties: {\n error: httpErrorToString(error),\n code:\n error instanceof HttpResponseError\n ? error.response.status\n : null,\n },\n events: {},\n },\n ];\n mountRoutesResult.portal = [];\n }\n }\n\n const {\n main,\n menuInBg,\n menuBar,\n appBar,\n flags,\n portal,\n route,\n analyticsData,\n } = mountRoutesResult;\n\n const { unauthenticated, redirect, barsHidden, hybrid, failed } = flags;\n\n if (unauthenticated) {\n redirectToLogin();\n return;\n }\n\n if (redirect) {\n history.replace(redirect.path, redirect.state);\n return;\n }\n\n if (appChanged) {\n this.kernel.currentApp = currentApp;\n this.kernel.previousApp = previousApp;\n }\n this.kernel.currentUrl = createPath(location);\n this.kernel.currentRoute = route;\n await Promise.all([\n ...(window.STANDALONE_MICRO_APPS\n ? []\n : [this.kernel.updateWorkspaceStack()]),\n this.kernel.layoutBootstrap(layoutType),\n ]);\n\n this.state = \"ready-to-mount\";\n\n // Unmount main tree to avoid app change fired before new routes mounted.\n unmountTree(mountPoints.main as MountableElement);\n unmountTree(mountPoints.portal as MountableElement);\n\n const actualLegacy =\n (legacy === \"iframe\" && !hybrid) || (legacy !== \"iframe\" && hybrid)\n ? \"iframe\"\n : undefined;\n this.kernel.unsetBars({ appChanged, legacy: actualLegacy });\n\n setTheme(currentApp.theme ?? \"light\");\n setMode(\"default\");\n // There is a window to set theme and mode by `lifeCycle.onBeforePageLoad`.\n this.locationContext.handleBeforePageLoad();\n applyTheme();\n applyMode();\n\n if (appChanged) {\n window.dispatchEvent(\n new CustomEvent<RecentApps>(\"app.change\", {\n detail: this.kernel.getRecentApps(),\n })\n );\n }\n\n if (barsHidden || getRuntimeMisc().isInIframeOfLegacyConsole) {\n this.kernel.toggleBars(false);\n } else if (this.kernel.currentLayout === \"console\") {\n await constructMenu(\n menuBar,\n this.locationContext.getCurrentContext(),\n this.kernel\n );\n if (\n shouldBeDefaultCollapsed(\n menuBar.menu?.defaultCollapsed,\n menuBar.menu?.defaultCollapsedBreakpoint\n )\n ) {\n this.kernel.menuBar.collapse(true);\n this.defaultCollapsed = true;\n } else {\n if (this.defaultCollapsed) {\n this.kernel.menuBar.collapse(false);\n }\n this.defaultCollapsed = false;\n }\n if (actualLegacy === \"iframe\") {\n // Do not modify breadcrumb in iframe mode,\n // it will be *popped* from iframe automatically.\n delete appBar.breadcrumb;\n }\n mountStaticNode(this.kernel.menuBar.element, menuBar);\n mountStaticNode(this.kernel.appBar.element, appBar);\n }\n\n this.kernel.toggleLegacyIframe(actualLegacy === \"iframe\");\n\n menuInBg.forEach((brick) => {\n appendBrick(brick, mountPoints.portal as MountableElement);\n });\n\n if (main.length > 0 || portal.length > 0) {\n main.length > 0 &&\n mountTree(main, mountPoints.main as MountableElement);\n portal.length > 0 &&\n mountTree(portal, mountPoints.portal as MountableElement);\n\n afterMountTree(mountPoints.main as MountableElement);\n afterMountTree(mountPoints.portal as MountableElement);\n afterMountTree(mountPoints.bg as MountableElement);\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 this.locationContext.handlePageLoad();\n this.locationContext.handleAnchorLoad();\n this.locationContext.resolver.scheduleRefreshing();\n this.locationContext.handleMessage();\n }\n\n pageTracker?.(locationContext.getCurrentMatch().path);\n\n // analytics page_view event\n userAnalytics.event(\"page_view\", {\n micro_app_id: this.kernel.currentApp.id,\n route_alias: route?.alias,\n ...analyticsData,\n });\n\n this.state = \"mounted\";\n\n devtoolsHookEmit(\"rendered\");\n\n // Try to prefetch during a browser's idle periods.\n // https://developer.mozilla.org/en-US/docs/Web/API/Window/requestIdleCallback\n if (typeof (window as any).requestIdleCallback === \"function\") {\n (window as any).requestIdleCallback(() => {\n this.kernel.prefetchDepsOfStoryboard(storyboard);\n });\n } else {\n Promise.resolve().then(() => {\n this.kernel.prefetchDepsOfStoryboard(storyboard);\n });\n }\n return;\n }\n } else if (!window.NO_AUTH_GUARD && !isLoggedIn()) {\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 }\n\n await this.kernel.layoutBootstrap(layoutType);\n const brickPageNotFound = this.kernel.presetBricks.pageNotFound;\n await this.kernel.loadDynamicBricks([brickPageNotFound]);\n\n this.state = \"ready-to-mount\";\n\n mountTree(\n [\n {\n type: brickPageNotFound,\n properties: {\n url: history.createHref(location),\n },\n events: {},\n },\n ],\n mountPoints.main as MountableElement\n );\n unmountTree(mountPoints.portal as MountableElement);\n\n // Scroll to top after each rendering.\n window.scrollTo(0, 0);\n\n this.state = \"mounted\";\n devtoolsHookEmit(\"rendered\");\n }\n\n /* istanbul ignore next */\n getResolver(): Resolver {\n return this.locationContext.resolver;\n }\n\n getState(): RouterState {\n return this.state;\n }\n\n /* istanbul ignore next */\n getRenderId(): string {\n return this.renderId;\n }\n\n /* istanbul ignore next */\n getCurrentContext(): PluginRuntimeContext {\n return this.locationContext.getCurrentContext();\n }\n\n /* istanbul ignore next */\n getTplContext(): CustomTemplateContext {\n return this.locationContext.getTplContext();\n }\n\n /* istanbul ignore next */\n handleMessageClose(event: CloseEvent): void {\n return this.locationContext.handleMessageClose(event);\n }\n}\n","export type CustomProcessorFunc = (...args: any[]) => any;\n\nexport const customProcessorRegistry = new Map<\n string,\n Map<string, CustomProcessorFunc>\n>();\n\nexport function registerCustomProcessor(\n processorFullName: string,\n processorFunc: CustomProcessorFunc\n): void {\n // `namespace` should be the camelCase of the package name.\n const [namespace, processorName] = processorFullName.split(\".\");\n let registry = customProcessorRegistry.get(namespace);\n if (!registry) {\n registry = new Map();\n customProcessorRegistry.set(namespace, registry);\n }\n if (registry.has(processorName)) {\n // eslint-disable-next-line no-console\n throw new Error(\n `Custom processor of \"${processorFullName}\" already registered`\n );\n }\n registry.set(processorName, processorFunc);\n}\n","import { Runtime } from \"./core/exports\";\nimport { createHistory } from \"./history\";\nimport { createMessageDispatcher } from \"./core/MessageDispatcher\";\n\nlet runtime: Runtime;\n\n/** @internal */\nexport function createRuntime(): Runtime {\n createHistory();\n createMessageDispatcher();\n runtime = new Runtime();\n return runtime;\n}\n\n/**\n * 获取系统运行时对象。\n *\n * @example\n *\n * ```ts\n * import { getRuntime } from \"@next-core/brick-kit\";\n *\n * const flags = getRuntime.getFeatureFlags();\n * ```\n *\n * @returns 详见 {@link AbstractRuntime}\n */\nexport function getRuntime(): Runtime {\n return runtime;\n}\n","import React from \"react\";\nimport {\n withTranslation,\n WithTranslation,\n // `WithTranslationProps` and `Subtract` is required for api-extractor.\n WithTranslationProps,\n Subtract,\n} from \"react-i18next\";\nimport { httpErrorToString } from \"./handleHttpError\";\nimport { NS_BRICK_KIT, K } from \"./i18n/constants\";\n\ninterface ErrorBoundaryState {\n error: any;\n}\n\n// Ref https://reactjs.org/docs/error-boundaries.html\nclass LegacyErrorBoundary extends React.Component<\n WithTranslation<typeof NS_BRICK_KIT>,\n ErrorBoundaryState\n> {\n constructor(props: WithTranslation<typeof NS_BRICK_KIT>) {\n super(props);\n this.state = { error: null };\n }\n\n static getDerivedStateFromError(error: Error): ErrorBoundaryState {\n // Update state so the next render will show the fallback UI.\n return { error };\n }\n\n /* componentDidCatch(error, info) {\n // You can also log the error to an error reporting service\n logErrorToMyService(error, info);\n } */\n\n render(): React.ReactNode {\n if (this.state.error) {\n // You can render any custom fallback UI\n return (\n <div data-testid=\"error-boundary\">\n <h3>{this.props.t(K.SOMETHING_WENT_WRONG)}</h3>\n <p>{httpErrorToString(this.state.error)}</p>\n </div>\n );\n }\n\n return this.props.children;\n }\n}\n\n/** @internal */\nexport const ErrorBoundary: React.ComponentType<\n Omit<\n Subtract<WithTranslation<typeof NS_BRICK_KIT>, WithTranslationProps>,\n keyof WithTranslation<typeof NS_BRICK_KIT>\n > &\n WithTranslationProps\n> = withTranslation(NS_BRICK_KIT)(LegacyErrorBoundary);\n","import { getRuntime } from \"../runtime\";\nimport { PropertyDeclaration } from \"../UpdatingElement\";\n\nexport function warnNativeHtmlElementProperty(\n key: string,\n options?: PropertyDeclaration\n): void {\n // Testing env is ignored to simplify dependents testing.\n // istanbul ignore if\n if (\n key in HTMLElement.prototype &&\n !options?.__deprecated_and_for_compatibility_only\n ) {\n const message = `\"${key}\" is a native HTMLElement property, and is deprecated to be used as a brick property.`;\n // istanbul ignore if\n if (process.env.NODE_ENV === \"test\") {\n // Allow existed properties to work.\n // But throw error at test, to avoid new conflicted properties.\n throw new Error(message);\n }\n // eslint-disable-next-line no-console\n console[\n getRuntime().getFeatureFlags()[\"development-mode\"] ? \"error\" : \"warn\"\n ](message);\n }\n}\n","// Inspired by [LitElement](https://github.com/Polymer/lit-element)\nimport { PropertyDeclaration, UpdatingElement } from \"../UpdatingElement\";\nimport { ClassElement } from \"./interfaces\";\nimport { warnNativeHtmlElementProperty } from \"./utils\";\n\n// About the (most likely) related version of decorator proposal:\n// https://github.com/tc39/proposal-decorators/blob/691d95e67052e125239a725d2756cb8a039c5fb9/previous/METAPROGRAMMING.md\n\n/**\n * 构件属性装饰器。\n *\n * @example\n *\n * ```ts\n * class MyBrickElement extends UpdatingElement {\n * @property()\n * myStringProp: string;\n *\n * @property({ type: Number })\n * myNumberProp: number;\n *\n * @property({ type: Boolean })\n * myBooleanProperty: boolean;\n *\n * @property({ attribute: false })\n * myComplexProperty: MyComplexInterface;\n * }\n * ```\n *\n * @param options - 构件属性的选项。\n */\nexport function property(options?: PropertyDeclaration): any {\n return function decorateProperty(element: ClassElement): ClassElement {\n if (options?.__unstable_doNotDecorate) {\n return element;\n }\n if (element.kind !== \"field\" || typeof element.key !== \"string\") {\n throw new Error(\n \"`@property()` only support decorate class string property\"\n );\n }\n if (\n typeof element.initializer === \"function\" &&\n options?.attribute !== false\n ) {\n throw new Error(\"`@property()` currently not support initialize value\");\n }\n\n warnNativeHtmlElementProperty(element.key, options);\n\n // createProperty() takes care of defining the property, but we still\n // must return some kind of descriptor, so return a descriptor for an\n // unused prototype field. The finisher calls createProperty().\n return {\n kind: \"field\",\n key: Symbol(),\n placement: \"own\",\n descriptor: {},\n initializer(this: { [key: string]: unknown }) {\n if (typeof element.initializer === \"function\") {\n this[element.key as string] = element.initializer.call(this);\n }\n },\n finisher(Class: typeof UpdatingElement) {\n Class.createProperty(element.key as string, options);\n },\n };\n };\n}\n","import { UpdatingElement, EventDeclaration } from \"../UpdatingElement\";\nimport { ClassElement } from \"./interfaces\";\nimport { warnNativeHtmlElementProperty } from \"./utils\";\n\n/**\n * 构件事件装饰器。\n *\n * @example\n *\n * ```ts\n * class MyBrickElement extends UpdatingElement {\n * @event({\n * type: \"my-brick.my-event\",\n * })\n * private _myEventEmitter: EventEmitter<number>;\n *\n * private _triggerMyEvent = (): void => {\n * this._myEventEmitter.emit(123);\n * };\n * }\n * ```\n *\n * @param options - 构件事件的选项。\n */\nexport function event(options: EventDeclaration): any {\n return function decorateEvent(element: ClassElement): ClassElement {\n if (element.kind !== \"field\" || typeof element.key !== \"string\") {\n throw new Error(\"`@event()` only support decorate class string property\");\n }\n\n if (typeof element.initializer === \"function\") {\n throw new Error(\"`@event()` currently not support initialize value\");\n }\n\n warnNativeHtmlElementProperty(element.key);\n\n return {\n kind: \"field\",\n key: Symbol(),\n placement: \"own\",\n descriptor: {},\n finisher(Class: typeof UpdatingElement) {\n Class.createEventEmitter(element.key as string, options);\n },\n };\n };\n}\n","import { UpdatingElement } from \"../UpdatingElement\";\nimport { ClassElement } from \"./interfaces\";\nimport { warnNativeHtmlElementProperty } from \"./utils\";\n\n/**\n * 构件方法装饰器。\n *\n * @example\n *\n * ```ts\n * class MyBrickElement extends UpdatingElement {\n * @method()\n * myMethod(): void {\n * // Do something.\n * }\n * }\n * ```\n */\nexport function method(): any {\n return function decorateMethod(element: ClassElement): ClassElement {\n if (element.kind !== \"method\" || typeof element.key !== \"string\") {\n throw new Error(\"`@method()` only support decorate class string method\");\n }\n\n warnNativeHtmlElementProperty(element.key);\n\n return {\n ...element,\n finisher(Class: typeof UpdatingElement) {\n Class.createMethod(element.key as string);\n },\n };\n };\n}\n","import { useEffect } from \"react\";\nimport { getRuntime } from \"./runtime\";\n\n/**\n * 设置页面标题,将更新浏览器标签页显示的标题。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent(props) {\n * useApplyPageTitle(props.pageTitle);\n * // ...\n * }\n * ```\n *\n * @param pageTitle - 页面标题。\n */\nexport function useApplyPageTitle(pageTitle: string): void {\n useEffect(() => {\n getRuntime().applyPageTitle(pageTitle);\n }, [pageTitle]);\n}\n","import React from \"react\";\nimport { RecentApps } from \"./core/interfaces\";\nimport { getRuntime } from \"./runtime\";\n\n/** @internal */\nexport function useRecentApps(): RecentApps {\n const [recentApps, setRecentApps] = React.useState<RecentApps>(\n getRuntime().getRecentApps()\n );\n\n React.useEffect(() => {\n const listener = ((event: CustomEvent<RecentApps>) => {\n setRecentApps(event.detail);\n }) as EventListener;\n window.addEventListener(\"app.change\", listener);\n return () => window.removeEventListener(\"app.change\", listener);\n }, []);\n\n return recentApps;\n}\n","import { MicroApp } from \"@next-core/brick-types\";\nimport { useRecentApps } from \"./useRecentApps\";\n\n/**\n * 获取当前所在微应用信息的 React hooks。\n *\n * @example\n *\n * ```tsx\n * function MyReactComponent() {\n * const app = useCurrentApp();\n * return <div>{app.id}</div>;\n * }\n * ```\n *\n * @returns 当前所在微应用的信息。\n */\nexport function useCurrentApp(): MicroApp {\n return useRecentApps().currentApp;\n}\n","import React from \"react\";\nimport { Location } from \"history\";\nimport { PluginHistoryState } from \"@next-core/brick-types\";\nimport { getHistory } from \"./history\";\n\n/** @internal */\nexport function useLocation(): Location<PluginHistoryState> {\n const history = getHistory();\n const [location, setLocation] = React.useState(history.location);\n\n React.useEffect(() => {\n const unlisten = history.listen((location) => setLocation(location));\n return unlisten;\n }, [history]);\n\n return location;\n}\n","import { set, isEmpty } from \"lodash\";\nimport React, { forwardRef, useImperativeHandle, useRef } from \"react\";\nimport { isObject } from \"@next-core/brick-utils\";\nimport {\n UseBrickConf,\n UseSingleBrickConf,\n RuntimeBrickElement,\n BrickEventsMap,\n UseBrickSlotsConf,\n BrickConf,\n ProbablyRuntimeBrick,\n RuntimeBrickConf,\n SlotsConf,\n CustomTemplateProxyEvents,\n CustomTemplateProxyProperties,\n CustomTemplateProxyMethods,\n} from \"@next-core/brick-types\";\nimport { bindListeners, unbindListeners } from \"./internal/bindListeners\";\nimport { setRealProperties } from \"./internal/setProperties\";\nimport {\n RuntimeBrick,\n RuntimeBrickElementWithTplSymbols,\n symbolForParentRefForUseBrickInPortal,\n _internalApiGetCurrentContext,\n _internalApiGetResolver,\n _internalApiGetRouterState,\n _internalApiLoadDynamicBricksInBrickConf,\n _internalApiGetTplContext,\n RuntimeBrickConfWithTplSymbols,\n symbolForTplContextId,\n symbolForRefForProxy,\n symbolForComputedPropsFromProxy,\n} from \"./core/exports\";\nimport { handleHttpError } from \"./handleHttpError\";\nimport { transformProperties, doTransform } from \"./transformProperties\";\nimport { looseCheckIfByTransform } from \"./checkIf\";\nimport { isPreEvaluated } from \"./internal/evaluate\";\nimport { cloneDeepWithInjectedMark } from \"./internal/injected\";\nimport {\n CustomTemplateContext,\n expandCustomTemplate,\n} from \"./core/CustomTemplates\";\nimport { getTagNameOfCustomTemplate } from \"./core/CustomTemplates/getTagNameOfCustomTemplate\";\nimport { handleProxyOfCustomTemplate } from \"./core/CustomTemplates/handleProxyOfCustomTemplate\";\nimport {\n listenOnTrackingContext,\n TrackingContextItem,\n} from \"./internal/listenOnTrackingContext\";\nimport { RuntimeCustomTemplateProxy } from \"./core/CustomTemplates/internalInterfaces\";\n\ninterface BrickAsComponentProps {\n useBrick: UseBrickConf;\n data?: unknown;\n\n /**\n * This is only required for useBrick in portal.\n */\n parentRefForUseBrickInPortal?: React.RefObject<HTMLElement>;\n}\n\ninterface SingleBrickAsComponentProps extends BrickAsComponentProps {\n useBrick: UseSingleBrickConf;\n refCallback?: (element: HTMLElement) => void;\n immediatelyRefCallback?: (element: HTMLElement) => void;\n}\n\nconst setProxyRefForSlots = (slots: UseBrickSlotsConf) => {\n slotsToChildren(slots).forEach((item) => {\n if (\n (item as RuntimeBrickConfWithTplSymbols)[symbolForRefForProxy] !==\n undefined\n ) {\n (item as RuntimeBrickConfWithTplSymbols)[symbolForRefForProxy].brick =\n item as ProbablyRuntimeBrick;\n }\n if (!isEmpty(item.slots)) {\n setProxyRefForSlots(item.slots);\n }\n });\n};\n\nconst setProxyRef = (\n useBrick: UseSingleBrickConf,\n brick: RuntimeBrick,\n tplContext: CustomTemplateContext\n) => {\n let template;\n const tplTagName = getTagNameOfCustomTemplate(\n useBrick.brick,\n _internalApiGetCurrentContext().app?.id\n );\n if (tplTagName) {\n // 如果是模板, 需要展开解析模板, 并遍历模板中的slots, 再给slots的brick绑定值给自身\n // 为后续ProxyRefs获取brick做值缓存\n const tplConf: RuntimeBrickConf = {\n brick: tplTagName,\n properties: brick.properties,\n events: useBrick.events,\n lifeCycle: useBrick.lifeCycle,\n slots: useBrick.slots as SlotsConf,\n };\n template = expandCustomTemplate(\n tplConf,\n brick,\n _internalApiGetCurrentContext(),\n tplContext\n );\n setProxyRefForSlots(template.slots as UseBrickSlotsConf);\n } else if (\n (useBrick as RuntimeBrickConfWithTplSymbols)[symbolForRefForProxy]\n ) {\n (useBrick as RuntimeBrickConfWithTplSymbols)[symbolForRefForProxy].brick =\n brick;\n setProxyRefForSlots(useBrick.slots as UseBrickSlotsConf);\n }\n return template;\n};\n\nconst getCurrentRunTimeBrick = (\n useBrick: UseSingleBrickConf,\n data: unknown,\n tplContext: CustomTemplateContext\n): RuntimeBrick => {\n const trackingContextList: TrackingContextItem[] = [];\n\n const transformOption: Record<string, any> = {\n // Keep lazy fields inside `useBrick` inside the `properties`.\n // They will be transformed by their `BrickAsComponent` later.\n $$lazyForUseBrick: true,\n trackingContextList,\n allowInject: true,\n };\n\n if ((useBrick as RuntimeBrickConfWithTplSymbols)[symbolForTplContextId]) {\n transformOption.getTplVariables = () =>\n tplContext.getContext(\n (useBrick as RuntimeBrickConfWithTplSymbols)[symbolForTplContextId]\n );\n }\n const properties = doTransform(\n data,\n cloneDeepWithInjectedMark(useBrick.properties) || {},\n transformOption\n );\n\n const brick: RuntimeBrick = {\n ...useBrick,\n type: useBrick.brick,\n // Now transform data in properties too.\n properties,\n };\n\n const runtimeContext = _internalApiGetCurrentContext();\n\n listenOnTrackingContext(brick, trackingContextList, runtimeContext);\n\n return brick;\n};\n\nexport const handleProxyOfParentTemplate = (\n brick: RuntimeBrick,\n tplContextId: string,\n tplContext: CustomTemplateContext\n) => {\n if (tplContextId && tplContext) {\n const tplBrick = tplContext.getBrick(tplContextId);\n /**\n * 如果存在brick.ref, 表明当前brick为custom-template对外暴露的插槽部分\n * 此部分构件不被 expandCustomTemplate 方法正常解析, 需要额外处理\n * 保证父构件上proxyRefs指向的准确性, 并执行其代理方法属性\n */\n if (brick.ref && tplBrick) {\n const proxyBrick = tplBrick.proxyRefs.get(brick.ref);\n if (proxyBrick) {\n const getFilterProxy = (\n proxy: RuntimeCustomTemplateProxy = {},\n ref: string\n ): RuntimeCustomTemplateProxy => {\n const getFilterByRef = (\n obj:\n | CustomTemplateProxyEvents\n | CustomTemplateProxyProperties\n | CustomTemplateProxyMethods,\n ref: string\n ) => {\n if (!obj) return;\n return Object.fromEntries(\n Object.entries(obj).filter(([k, v]) => {\n if (v.ref === ref) {\n return [k, v];\n }\n })\n );\n };\n const events = getFilterByRef(proxy.events, ref);\n const properties = getFilterByRef(proxy.properties, ref);\n const methods = getFilterByRef(proxy.methods, ref);\n const $$properties = getFilterByRef(proxy.$$properties, ref);\n\n return {\n $$properties,\n events,\n properties,\n methods,\n };\n };\n\n const proxyBrick = {\n // children 继承template上proxy等属性\n ...tplBrick,\n element: brick.element,\n };\n tplBrick.proxyRefs.set(brick.ref, {\n brick: proxyBrick,\n });\n // 对单独ref brick进行proxy赋值\n const singleRefBrickProxyMap = new Map();\n singleRefBrickProxyMap.set(brick.ref, {\n brick: proxyBrick,\n });\n handleProxyOfCustomTemplate({\n ...tplBrick,\n proxyRefs: singleRefBrickProxyMap,\n proxy: getFilterProxy(tplBrick.proxy, brick.ref),\n });\n setRealProperties(tplBrick.element, tplBrick.properties);\n }\n }\n }\n};\n\n/**\n * 可以渲染单个 `useBrick` 的 React 组件。\n *\n * @example\n *\n * ```tsx\n * <BrickAsComponent\n * useBrick={{\n * brick: \"your.any-brick\"\n * }}\n * data={yourData}\n * />\n * ```\n *\n * @param props - 属性。\n */\nexport const SingleBrickAsComponent = React.memo(\n function SingleBrickAsComponent({\n useBrick,\n data,\n parentRefForUseBrickInPortal,\n refCallback,\n immediatelyRefCallback,\n }: SingleBrickAsComponentProps): React.ReactElement {\n const tplContext = _internalApiGetTplContext();\n let template: RuntimeBrickConf;\n let brick: RuntimeBrick;\n\n const isBrickAvailable = React.useMemo(() => {\n if (isObject(useBrick.if) && !isPreEvaluated(useBrick.if)) {\n // eslint-disable-next-line\n console.warn(\"Currently resolvable-if in `useBrick` is not supported.\");\n } else if (\n !looseCheckIfByTransform(useBrick, data, {\n allowInject: true,\n // useBrick 中嵌套custom-template的情况下, 会存在丢失getTplVariables的情况, 因此需要在此进行补充\n getTplVariables: () =>\n tplContext.getContext(\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ]\n ),\n })\n ) {\n return false;\n }\n\n return true;\n }, [useBrick, data]);\n\n const runtimeBrick = React.useMemo(async () => {\n if (!isBrickAvailable) {\n return null;\n }\n\n // If the router state is initial, ignore rendering the sub-brick.\n if (_internalApiGetRouterState() === \"initial\") {\n return;\n }\n\n _internalApiLoadDynamicBricksInBrickConf(useBrick as BrickConf).catch(\n handleHttpError\n );\n\n brick = getCurrentRunTimeBrick(useBrick, data, tplContext);\n\n template = setProxyRef(useBrick, brick, tplContext);\n\n // Let `transform` works still.\n transformProperties(\n brick.properties,\n data,\n useBrick.transform,\n useBrick.transformFrom,\n undefined,\n {\n allowInject: true,\n }\n );\n\n // 设置 properties refProperty值\n if (\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ) {\n Object.entries(\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ).forEach(([propName, propValue]) => {\n set(brick.properties, propName, propValue);\n });\n }\n\n const runtimeContext = _internalApiGetCurrentContext();\n\n if (useBrick.lifeCycle) {\n const resolver = _internalApiGetResolver();\n await resolver.resolve(\n {\n brick: useBrick.brick,\n lifeCycle: useBrick.lifeCycle,\n },\n brick,\n runtimeContext\n );\n }\n\n return brick;\n }, [useBrick, data, isBrickAvailable]);\n\n const innerRefCallback = React.useCallback(\n async (element: HTMLElement) => {\n immediatelyRefCallback?.(element);\n if (element) {\n let brick: RuntimeBrick;\n try {\n brick = await runtimeBrick;\n } catch (e) {\n handleHttpError(e);\n }\n // sub-brick rendering is ignored.\n if (!brick) {\n return;\n }\n brick.element = element;\n\n setRealProperties(element, brick.properties);\n unbindListeners(element);\n if (brick.events) {\n bindListeners(\n element,\n transformEvents(data, brick.events),\n _internalApiGetCurrentContext()\n );\n }\n // 设置proxyEvent\n handleProxyOfCustomTemplate(brick);\n\n const tplContextId = (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ];\n handleProxyOfParentTemplate(brick, tplContextId, tplContext);\n\n // Memoize the parent ref of useBrick.\n (element as RuntimeBrickElementWithTplSymbols)[\n symbolForParentRefForUseBrickInPortal\n ] = parentRefForUseBrickInPortal;\n\n if ((element as RuntimeBrickElement).$$typeof !== \"custom-template\") {\n if (!useBrick.brick.includes(\"-\")) {\n (element as RuntimeBrickElement).$$typeof = \"native\";\n } else if (!customElements.get(useBrick.brick)) {\n (element as RuntimeBrickElement).$$typeof = \"invalid\";\n }\n }\n }\n\n refCallback?.(element);\n },\n [\n runtimeBrick,\n useBrick,\n data,\n refCallback,\n immediatelyRefCallback,\n parentRefForUseBrickInPortal,\n ]\n );\n\n if (!isBrickAvailable) {\n return null;\n }\n\n if (template) {\n return React.createElement(\n template.brick,\n {\n ref: innerRefCallback,\n },\n ...slotsToChildren(template.slots as UseBrickSlotsConf).map(\n (item: UseSingleBrickConf, index: number) => {\n return (\n <SingleBrickAsComponent key={index} useBrick={item} data={data} />\n );\n }\n )\n );\n } else {\n return React.createElement(\n useBrick.brick,\n {\n ref: innerRefCallback,\n },\n ...slotsToChildren(useBrick.slots).map(\n (item: UseSingleBrickConf, index: number) => {\n if (\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ] &&\n !(item as RuntimeBrickConfWithTplSymbols)[symbolForTplContextId]\n ) {\n (item as RuntimeBrickConfWithTplSymbols)[symbolForTplContextId] =\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ];\n }\n return (\n <SingleBrickAsComponent key={index} useBrick={item} data={data} />\n );\n }\n )\n );\n }\n }\n);\n\n/**\n * 可以渲染 `useBrick` 的 React 组件。\n *\n * @remarks `useBrick` 可以传递单个或多个构件配置。\n *\n * @example\n *\n * ```tsx\n * <BrickAsComponent\n * useBrick={{\n * brick: \"your.any-brick\"\n * }}\n * data={yourData}\n * parentRefForUseBrickInPortal={yourParentElementRef}\n * />\n * ```\n *\n * @param props - 属性。\n */\nexport function BrickAsComponent({\n useBrick,\n data,\n parentRefForUseBrickInPortal,\n}: BrickAsComponentProps): React.ReactElement {\n if (Array.isArray(useBrick)) {\n return (\n <>\n {useBrick.map((item, index) => (\n <SingleBrickAsComponent\n key={index}\n useBrick={item}\n data={data}\n parentRefForUseBrickInPortal={parentRefForUseBrickInPortal}\n />\n ))}\n </>\n );\n }\n return (\n <SingleBrickAsComponent\n useBrick={useBrick}\n data={data}\n parentRefForUseBrickInPortal={parentRefForUseBrickInPortal}\n />\n );\n}\n\nfunction slotsToChildren(slots: UseBrickSlotsConf): UseSingleBrickConf[] {\n if (!slots) {\n return [];\n }\n return Object.entries(slots).flatMap(([slot, slotConf]) =>\n Array.isArray(slotConf.bricks)\n ? slotConf.bricks.map((child) => ({\n ...child,\n properties: {\n ...child.properties,\n slot,\n },\n }))\n : []\n );\n}\n\nfunction transformEvents(\n data: unknown,\n events: BrickEventsMap\n): BrickEventsMap {\n return doTransform(data, events, {\n evaluateOptions: {\n lazy: true,\n },\n }) as BrickEventsMap;\n}\n\n/* istanbul ignore next */\n// eslint-disable-next-line react/display-name\nexport const ForwardRefSingleBrickAsComponent = React.memo(\n forwardRef<HTMLElement, SingleBrickAsComponentProps>(\n function LegacySingleBrickAsComponent(\n {\n useBrick,\n data,\n parentRefForUseBrickInPortal,\n refCallback,\n }: SingleBrickAsComponentProps,\n ref\n ): React.ReactElement {\n const brickRef = useRef<HTMLElement>();\n const tplContext = _internalApiGetTplContext();\n let template: RuntimeBrickConf;\n let brick: RuntimeBrick;\n\n const isBrickAvailable = React.useMemo(() => {\n if (isObject(useBrick.if) && !isPreEvaluated(useBrick.if)) {\n // eslint-disable-next-line\n console.warn(\n \"Currently resolvable-if in `useBrick` is not supported.\"\n );\n } else if (\n !looseCheckIfByTransform(useBrick, data, { allowInject: true })\n ) {\n return false;\n }\n\n return true;\n }, [useBrick, data]);\n\n /* istanbul ignore next (never reach in test) */\n useImperativeHandle(ref, () => {\n return brickRef.current;\n });\n\n const runtimeBrick = React.useMemo(async () => {\n if (!isBrickAvailable) {\n return null;\n }\n\n // If the router state is initial, ignore rendering the sub-brick.\n if (_internalApiGetRouterState() === \"initial\") {\n return;\n }\n\n _internalApiLoadDynamicBricksInBrickConf(useBrick as BrickConf).catch(\n handleHttpError\n );\n\n const trackingContextList: TrackingContextItem[] = [];\n\n brick = getCurrentRunTimeBrick(useBrick, data, tplContext);\n\n template = setProxyRef(useBrick, brick, tplContext);\n\n // Let `transform` works still.\n transformProperties(\n brick.properties,\n data,\n useBrick.transform,\n useBrick.transformFrom,\n undefined,\n {\n allowInject: true,\n }\n );\n\n // 设置 properties refProperty值\n if (\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ) {\n Object.entries(\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForComputedPropsFromProxy\n ]\n ).forEach(([propName, propValue]) => {\n set(brick.properties, propName, propValue);\n });\n }\n\n const runtimeContext = _internalApiGetCurrentContext();\n\n if (useBrick.lifeCycle) {\n const resolver = _internalApiGetResolver();\n await resolver.resolve(\n {\n brick: useBrick.brick,\n lifeCycle: useBrick.lifeCycle,\n },\n brick,\n runtimeContext\n );\n }\n\n listenOnTrackingContext(brick, trackingContextList, runtimeContext);\n\n return brick;\n }, [useBrick, data, isBrickAvailable]);\n\n const innerRefCallback = React.useCallback(\n async (element: HTMLElement) => {\n brickRef.current = element;\n\n if (element) {\n let brick: RuntimeBrick;\n try {\n brick = await runtimeBrick;\n } catch (e) {\n handleHttpError(e);\n }\n // sub-brick rendering is ignored.\n if (!brick) {\n return;\n }\n brick.element = element;\n setRealProperties(element, brick.properties);\n unbindListeners(element);\n if (useBrick.events) {\n bindListeners(\n element,\n transformEvents(data, useBrick.events),\n _internalApiGetCurrentContext()\n );\n }\n // 设置proxyEvent\n handleProxyOfCustomTemplate(brick);\n\n const tplContextId = (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ];\n handleProxyOfParentTemplate(brick, tplContextId, tplContext);\n\n // Memoize the parent ref of useBrick.\n (element as RuntimeBrickElementWithTplSymbols)[\n symbolForParentRefForUseBrickInPortal\n ] = parentRefForUseBrickInPortal;\n\n if (\n (element as RuntimeBrickElement).$$typeof !== \"custom-template\"\n ) {\n if (!useBrick.brick.includes(\"-\")) {\n (element as RuntimeBrickElement).$$typeof = \"native\";\n } else if (!customElements.get(useBrick.brick)) {\n (element as RuntimeBrickElement).$$typeof = \"invalid\";\n }\n }\n }\n refCallback?.(element);\n },\n [\n runtimeBrick,\n useBrick,\n data,\n refCallback,\n parentRefForUseBrickInPortal,\n ]\n );\n\n if (!isBrickAvailable) {\n return null;\n }\n\n if (template) {\n return React.createElement(\n template.brick,\n {\n ref: innerRefCallback,\n },\n ...slotsToChildren(template.slots as UseBrickSlotsConf).map(\n (item: UseSingleBrickConf, index: number) => {\n return (\n <SingleBrickAsComponent\n key={index}\n useBrick={item}\n data={data}\n />\n );\n }\n )\n );\n } else {\n return React.createElement(\n useBrick.brick,\n {\n ref: innerRefCallback,\n },\n ...slotsToChildren(useBrick.slots).map(\n (item: UseSingleBrickConf, index: number) => {\n if (\n (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ] &&\n !(item as RuntimeBrickConfWithTplSymbols)[symbolForTplContextId]\n ) {\n (item as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ] = (useBrick as RuntimeBrickConfWithTplSymbols)[\n symbolForTplContextId\n ];\n }\n return (\n <SingleBrickAsComponent\n key={index}\n useBrick={item}\n data={data}\n />\n );\n }\n )\n );\n }\n }\n )\n);\n","export default {\n // Options.jsx\n items_per_page: '条/页',\n jump_to: '跳至',\n jump_to_confirm: '确定',\n page: '页',\n // Pagination.jsx\n prev_page: '上一页',\n next_page: '下一页',\n prev_5: '向前 5 页',\n next_5: '向后 5 页',\n prev_3: '向前 3 页',\n next_3: '向后 3 页'\n};","var locale = {\n locale: 'zh_CN',\n today: '今天',\n now: '此刻',\n backToToday: '返回今天',\n ok: '确定',\n timeSelect: '选择时间',\n dateSelect: '选择日期',\n weekSelect: '选择周',\n clear: '清除',\n month: '月',\n year: '年',\n previousMonth: '上个月 (翻页上键)',\n nextMonth: '下个月 (翻页下键)',\n monthSelect: '选择月份',\n yearSelect: '选择年份',\n decadeSelect: '选择年代',\n yearFormat: 'YYYY年',\n dayFormat: 'D日',\n dateFormat: 'YYYY年M月D日',\n dateTimeFormat: 'YYYY年M月D日 HH时mm分ss秒',\n previousYear: '上一年 (Control键加左方向键)',\n nextYear: '下一年 (Control键加右方向键)',\n previousDecade: '上一年代',\n nextDecade: '下一年代',\n previousCentury: '上一世纪',\n nextCentury: '下一世纪'\n};\nexport default locale;","var locale = {\n placeholder: '请选择时间',\n rangePlaceholder: ['开始时间', '结束时间']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/zh_CN\";\nimport TimePickerLocale from '../../time-picker/locale/zh_CN'; // 统一合并为完整的 Locale\n\nvar locale = {\n lang: _extends({\n placeholder: '请选择日期',\n yearPlaceholder: '请选择年份',\n quarterPlaceholder: '请选择季度',\n monthPlaceholder: '请选择月份',\n weekPlaceholder: '请选择周',\n rangePlaceholder: ['开始日期', '结束日期'],\n rangeYearPlaceholder: ['开始年份', '结束年份'],\n rangeMonthPlaceholder: ['开始月份', '结束月份'],\n rangeWeekPlaceholder: ['开始周', '结束周']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n}; // should add whitespace between char in Button\n\nlocale.lang.ok = '确 定'; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/zh_CN\";\nimport DatePicker from '../date-picker/locale/zh_CN';\nimport TimePicker from '../time-picker/locale/zh_CN';\nimport Calendar from '../calendar/locale/zh_CN';\nvar typeTemplate = '${label}不是一个有效的${type}';\nvar localeValues = {\n locale: 'zh-cn',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n // locales for all components\n global: {\n placeholder: '请选择'\n },\n Table: {\n filterTitle: '筛选',\n filterConfirm: '确定',\n filterReset: '重置',\n filterEmptyText: '无筛选项',\n selectAll: '全选当页',\n selectInvert: '反选当页',\n selectNone: '清空所有',\n selectionAll: '全选所有',\n sortTitle: '排序',\n expand: '展开行',\n collapse: '关闭行',\n triggerDesc: '点击降序',\n triggerAsc: '点击升序',\n cancelSort: '取消排序'\n },\n Modal: {\n okText: '确定',\n cancelText: '取消',\n justOkText: '知道了'\n },\n Popconfirm: {\n cancelText: '取消',\n okText: '确定'\n },\n Transfer: {\n searchPlaceholder: '请输入搜索内容',\n itemUnit: '项',\n itemsUnit: '项',\n remove: '删除',\n selectCurrent: '全选当页',\n removeCurrent: '删除当页',\n selectAll: '全选所有',\n removeAll: '删除全部',\n selectInvert: '反选当页'\n },\n Upload: {\n uploading: '文件上传中',\n removeFile: '删除文件',\n uploadError: '上传错误',\n previewFile: '预览文件',\n downloadFile: '下载文件'\n },\n Empty: {\n description: '暂无数据'\n },\n Icon: {\n icon: '图标'\n },\n Text: {\n edit: '编辑',\n copy: '复制',\n copied: '复制成功',\n expand: '展开'\n },\n PageHeader: {\n back: '返回'\n },\n Form: {\n optional: '(可选)',\n defaultValidateMessages: {\n \"default\": '字段验证错误${label}',\n required: '请输入${label}',\n \"enum\": '${label}必须是其中一个[${enum}]',\n whitespace: '${label}不能为空字符',\n date: {\n format: '${label}日期格式无效',\n parse: '${label}不能转换为日期',\n invalid: '${label}是一个无效日期'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label}须为${len}个字符',\n min: '${label}最少${min}个字符',\n max: '${label}最多${max}个字符',\n range: '${label}须在${min}-${max}字符之间'\n },\n number: {\n len: '${label}必须等于${len}',\n min: '${label}最小值为${min}',\n max: '${label}最大值为${max}',\n range: '${label}须在${min}-${max}之间'\n },\n array: {\n len: '须为${len}个${label}',\n min: '最少${min}个${label}',\n max: '最多${max}个${label}',\n range: '${label}数量须在${min}-${max}之间'\n },\n pattern: {\n mismatch: '${label}与模式不匹配${pattern}'\n }\n }\n },\n Image: {\n preview: '预览'\n }\n};\nexport default localeValues;","export default {\n // Options.jsx\n items_per_page: '/ page',\n jump_to: 'Go to',\n jump_to_confirm: 'confirm',\n page: '',\n // Pagination.jsx\n prev_page: 'Previous Page',\n next_page: 'Next Page',\n prev_5: 'Previous 5 Pages',\n next_5: 'Next 5 Pages',\n prev_3: 'Previous 3 Pages',\n next_3: 'Next 3 Pages'\n};","var locale = {\n locale: 'en_US',\n today: 'Today',\n now: 'Now',\n backToToday: 'Back to today',\n ok: 'Ok',\n clear: 'Clear',\n month: 'Month',\n year: 'Year',\n timeSelect: 'select time',\n dateSelect: 'select date',\n weekSelect: 'Choose a week',\n monthSelect: 'Choose a month',\n yearSelect: 'Choose a year',\n decadeSelect: 'Choose a decade',\n yearFormat: 'YYYY',\n dateFormat: 'M/D/YYYY',\n dayFormat: 'D',\n dateTimeFormat: 'M/D/YYYY HH:mm:ss',\n monthBeforeYear: true,\n previousMonth: 'Previous month (PageUp)',\n nextMonth: 'Next month (PageDown)',\n previousYear: 'Last year (Control + left)',\n nextYear: 'Next year (Control + right)',\n previousDecade: 'Last decade',\n nextDecade: 'Next decade',\n previousCentury: 'Last century',\n nextCentury: 'Next century'\n};\nexport default locale;","var locale = {\n placeholder: 'Select time',\n rangePlaceholder: ['Start time', 'End time']\n};\nexport default locale;","import _extends from \"@babel/runtime/helpers/esm/extends\";\nimport CalendarLocale from \"rc-picker/es/locale/en_US\";\nimport TimePickerLocale from '../../time-picker/locale/en_US'; // Merge into a locale object\n\nvar locale = {\n lang: _extends({\n placeholder: 'Select date',\n yearPlaceholder: 'Select year',\n quarterPlaceholder: 'Select quarter',\n monthPlaceholder: 'Select month',\n weekPlaceholder: 'Select week',\n rangePlaceholder: ['Start date', 'End date'],\n rangeYearPlaceholder: ['Start year', 'End year'],\n rangeMonthPlaceholder: ['Start month', 'End month'],\n rangeWeekPlaceholder: ['Start week', 'End week']\n }, CalendarLocale),\n timePickerLocale: _extends({}, TimePickerLocale)\n}; // All settings at:\n// https://github.com/ant-design/ant-design/blob/master/components/date-picker/locale/example.json\n\nexport default locale;","/* eslint-disable no-template-curly-in-string */\nimport Pagination from \"rc-pagination/es/locale/en_US\";\nimport DatePicker from '../date-picker/locale/en_US';\nimport TimePicker from '../time-picker/locale/en_US';\nimport Calendar from '../calendar/locale/en_US';\nvar typeTemplate = '${label} is not a valid ${type}';\nvar localeValues = {\n locale: 'en',\n Pagination: Pagination,\n DatePicker: DatePicker,\n TimePicker: TimePicker,\n Calendar: Calendar,\n global: {\n placeholder: 'Please select'\n },\n Table: {\n filterTitle: 'Filter menu',\n filterConfirm: 'OK',\n filterReset: 'Reset',\n filterEmptyText: 'No filters',\n emptyText: 'No data',\n selectAll: 'Select current page',\n selectInvert: 'Invert current page',\n selectNone: 'Clear all data',\n selectionAll: 'Select all data',\n sortTitle: 'Sort',\n expand: 'Expand row',\n collapse: 'Collapse row',\n triggerDesc: 'Click to sort descending',\n triggerAsc: 'Click to sort ascending',\n cancelSort: 'Click to cancel sorting'\n },\n Modal: {\n okText: 'OK',\n cancelText: 'Cancel',\n justOkText: 'OK'\n },\n Popconfirm: {\n okText: 'OK',\n cancelText: 'Cancel'\n },\n Transfer: {\n titles: ['', ''],\n searchPlaceholder: 'Search here',\n itemUnit: 'item',\n itemsUnit: 'items',\n remove: 'Remove',\n selectCurrent: 'Select current page',\n removeCurrent: 'Remove current page',\n selectAll: 'Select all data',\n removeAll: 'Remove all data',\n selectInvert: 'Invert current page'\n },\n Upload: {\n uploading: 'Uploading...',\n removeFile: 'Remove file',\n uploadError: 'Upload error',\n previewFile: 'Preview file',\n downloadFile: 'Download file'\n },\n Empty: {\n description: 'No Data'\n },\n Icon: {\n icon: 'icon'\n },\n Text: {\n edit: 'Edit',\n copy: 'Copy',\n copied: 'Copied',\n expand: 'Expand'\n },\n PageHeader: {\n back: 'Back'\n },\n Form: {\n optional: '(optional)',\n defaultValidateMessages: {\n \"default\": 'Field validation error for ${label}',\n required: 'Please enter ${label}',\n \"enum\": '${label} must be one of [${enum}]',\n whitespace: '${label} cannot be a blank character',\n date: {\n format: '${label} date format is invalid',\n parse: '${label} cannot be converted to a date',\n invalid: '${label} is an invalid date'\n },\n types: {\n string: typeTemplate,\n method: typeTemplate,\n array: typeTemplate,\n object: typeTemplate,\n number: typeTemplate,\n date: typeTemplate,\n \"boolean\": typeTemplate,\n integer: typeTemplate,\n \"float\": typeTemplate,\n regexp: typeTemplate,\n email: typeTemplate,\n url: typeTemplate,\n hex: typeTemplate\n },\n string: {\n len: '${label} must be ${len} characters',\n min: '${label} must be at least ${min} characters',\n max: '${label} must be up to ${max} characters',\n range: '${label} must be between ${min}-${max} characters'\n },\n number: {\n len: '${label} must be equal to ${len}',\n min: '${label} must be minimum ${min}',\n max: '${label} must be maximum ${max}',\n range: '${label} must be between ${min}-${max}'\n },\n array: {\n len: 'Must be ${len} ${label}',\n min: 'At least ${min} ${label}',\n max: 'At most ${max} ${label}',\n range: 'The amount of ${label} must be between ${min}-${max}'\n },\n pattern: {\n mismatch: '${label} does not match the pattern ${pattern}'\n }\n }\n },\n Image: {\n preview: 'Preview'\n }\n};\nexport default localeValues;","import React, { useMemo } from \"react\";\nimport { Empty } from \"antd\";\nimport { getIllustration, IllustrationProps } from \"@next-core/illustrations\";\n\nimport emptyImage from \"../images/empty-image.svg\";\nimport bigEmptyImage from \"../images/big-empty-image.svg\";\n\n// @internal\nexport interface EasyopsEmptyProps {\n background?: string;\n description?: string | React.ReactNode;\n imageStyle?: React.CSSProperties;\n illustration?: IllustrationProps;\n useBigEmptyImage?: boolean;\n}\n\n/**\n * 用于展示空数据的 React 组件。\n */\nexport function EasyopsEmpty(props: EasyopsEmptyProps): React.ReactElement {\n const illustration = useMemo(\n () => props.illustration && getIllustration(props.illustration),\n [props.illustration]\n );\n const _emptyImage = props.useBigEmptyImage ? bigEmptyImage : emptyImage;\n const image = props.illustration\n ? illustration\n : React.createElement(_emptyImage);\n const imageStyle =\n props.imageStyle ??\n (props.useBigEmptyImage ? undefined : { height: \"60px\" });\n\n return (\n <Empty\n image={image}\n imageStyle={imageStyle}\n description={props.description}\n style={{ color: \"var(--text-color-secondary)\" }}\n />\n );\n}\n\n/**\n * 调用后获得一个默认的展示空数据的 React 组件。\n */\nexport function renderEasyopsEmpty(): React.ReactNode {\n return <EasyopsEmpty />;\n}\n","import React, { createContext, useContext } from \"react\";\nimport { FeatureFlags as FeatureFlagsType } from \"@next-core/brick-types\";\nconst FeatureFlagsContext = createContext<FeatureFlagsType>(null);\n\nexport const FeatureFlagsProvider = FeatureFlagsContext.Provider;\n\ninterface featureFlagsProps {\n name: string | string[];\n fallback?: React.ReactNode | React.ReactElement;\n}\n\n/**\n * 显示特性开关\n *\n * @example\n *\n * ```tsx\n * featureFlags = {\"enabled-foo\": true, \"enabled-bar\": true}\n *\n * function MyReactComponent(props) {\n * // 返回所有的特性开关名称数组\n * const featureFlags = useFeatureFlags();\n * console.log(featureFlags)\n * // Output: [\"enabled-foo\", \"enabled-bar\"]\n *\n * // ...\n * }\n *\n * featureFlags = {\"enabled-foo\": true}\n * function MyReactComponent(props) {\n * // 返回传入的特性开关名布尔值数组\n * const [isEnabledFoo, isEnabledBar] = useFeatureFlags([\"enabled-foo\", \"enabled-bar\"]);\n * console.log([isEnabledFoo, isEnabledBar])\n * // Output: [true, false]\n *\n * // ...\n * }\n * ```\n *\n * @param name - 特性开关名称\n *\n * @returns boolean[] | string[]\n */\nexport function useFeatureFlags(\n name?: string | string[]\n): boolean[] | string[] {\n const featureFlags = useContext(FeatureFlagsContext);\n const flagNames = [].concat(name).filter(Boolean);\n return flagNames.length\n ? flagNames.map((flag) => !!featureFlags[flag])\n : Object.keys(featureFlags).filter((flag) => !!featureFlags[flag]);\n}\n\n/**\n * 特性开关 React 组件\n * @example\n *\n * ```tsx\n * featureFlags = {\"enabled-foo\": true}\n *\n * <DisplayByFeatureFlags name={[\"enable-foo\"]}>\n * <div>Can you see me?</div>\n * </DisplayByFeatureFlags>\n * // 显示 `Can you see me?`\n *\n *\n * featureFlags = {\"enabled-foo\": true}\n * <DisplayByFeatureFlags fallback={<h1>Good to see you.</h1>} name={\"enable-bar\"}>\n * <div>Can you see me?</div>\n * </DisplayByFeatureFlags>\n * // 显示 `Good to see you.`\n *\n * ```\n * @param name - 特性开关名称\n *\n * @param fallback - 如果没有开启传入的特性开关则渲染此属性内传入的 React Node\n */\nexport function DisplayByFeatureFlags(\n props: React.PropsWithChildren<featureFlagsProps>\n): React.ReactElement {\n const featureFlags = useFeatureFlags(props.name) as boolean[];\n\n return featureFlags.every((flag) => !!flag) ? (\n <>{props.children}</>\n ) : props?.fallback ? (\n <>{props?.fallback}</>\n ) : null;\n}\n","import React from \"react\";\nimport i18n from \"i18next\";\nimport { ConfigProvider } from \"antd\";\nimport zhCN from \"antd/es/locale/zh_CN\";\nimport enUS from \"antd/es/locale/en_US\";\n\nimport { ErrorBoundary } from \"./ErrorBoundary\";\nimport { EasyopsEmpty, EasyopsEmptyProps } from \"./EasyopsEmpty\";\nimport { FeatureFlagsProvider } from \"./featureFlags\";\nimport { getRuntime } from \"./runtime\";\n\ninterface BrickWrapperProps {\n children?: React.ReactElement;\n wrapperConfig?: {\n empty?: EasyopsEmptyProps;\n };\n}\n\n/**\n * 构件的 React 组件包装器,包含 ErrorBoundary, ConfigProvider, FeatureFlagsProvider。\n */\nexport function BrickWrapper(props: BrickWrapperProps): React.ReactElement {\n const locale =\n i18n.language && i18n.language.split(\"-\")[0] === \"en\" ? enUS : zhCN;\n // istanbul ignore next\n const featureFlags =\n process.env.NODE_ENV === \"test\" ? {} : getRuntime().getFeatureFlags();\n return (\n <ErrorBoundary>\n <FeatureFlagsProvider value={featureFlags}>\n <ConfigProvider\n locale={locale}\n autoInsertSpaceInButton={false}\n renderEmpty={() => <EasyopsEmpty {...props.wrapperConfig?.empty} />}\n >\n {props.children}\n </ConfigProvider>\n </FeatureFlagsProvider>\n </ErrorBoundary>\n );\n}\n","import { asyncProcessBrick } from \"@next-core/brick-utils\";\nimport { BrickConf } from \"@next-core/brick-types\";\nimport { brickTemplateRegistry } from \"./core/TemplateRegistries\";\nimport {\n LocationContext,\n mountTree,\n unmountTree,\n afterMountTree,\n _dev_only_getBrickPackages,\n _dev_only_getStoryboards,\n _dev_only_loadDynamicBricksInBrickConf,\n _dev_only_getTemplatePackages,\n _dev_only_getFakeKernel,\n _dev_only_loadEditorBricks,\n _dev_only_checkoutTplContext,\n} from \"./core/exports\";\n\n/** @internal */\nexport const developHelper = {\n asyncProcessBrick(brickConf: BrickConf): Promise<void> {\n return asyncProcessBrick(\n brickConf,\n brickTemplateRegistry,\n _dev_only_getTemplatePackages()\n );\n },\n LocationContext,\n mountTree,\n unmountTree,\n afterMountTree,\n getBrickPackages: _dev_only_getBrickPackages,\n getTemplatePackages: _dev_only_getTemplatePackages,\n getStoryboards: _dev_only_getStoryboards,\n loadEditorBricks: _dev_only_loadEditorBricks,\n loadDynamicBricksInBrickConf: _dev_only_loadDynamicBricksInBrickConf,\n getFakeKernel: _dev_only_getFakeKernel,\n checkoutTplContext: _dev_only_checkoutTplContext,\n};\n","// Inspired by [LitElement](https://github.com/Polymer/lit-element)\n\ntype TypeHint = typeof String | typeof Number | typeof Boolean;\n\n/**\n * Converts property values to and from attribute values.\n */\ninterface ComplexAttributeConverter<Type = unknown> {\n /**\n * Function called to convert an attribute value to a property\n * value.\n */\n fromAttribute?(value: string | null, type?: TypeHint): Type;\n\n /**\n * Function called to convert a property value to an attribute\n * value.\n *\n * It returns unknown instead of string, to be compatible with\n * https://github.com/WICG/trusted-types (and similar efforts).\n */\n toAttribute?(value: Type, type?: TypeHint): unknown;\n}\n\n/**\n * Defines options for a property accessor.\n */\nexport interface PropertyDeclaration<Type = unknown> {\n /**\n * Indicates how and whether the property becomes an observed attribute.\n * If the value is `false`, the property is not added to `observedAttributes`.\n * If true or absent, the lowercased property name is observed (e.g. `fooBar`\n * becomes `foobar`). If a string, the string value is observed (e.g\n * `attribute: 'foo-bar'`).\n */\n readonly attribute?: boolean | string;\n\n /**\n * Indicates the type of the property. This is used only as a hint for the\n * `converter` to determine how to convert the attribute\n * to/from a property.\n */\n readonly type?: TypeHint;\n\n /**\n * Indicates how to convert the attribute to/from a property. If this value\n * is a function, it is used to convert the attribute value a the property\n * value. If it's an object, it can have keys for `fromAttribute` and\n * `toAttribute`. If no `toAttribute` function is provided and\n * `reflect` is set to `true`, the property value is set directly to the\n * attribute. A default `converter` is used if none is provided; it supports\n * `Boolean`, `String`, `Number`, `Object`, and `Array`. Note,\n * when a property changes and the converter is used to update the attribute,\n * the property is never updated again as a result of the attribute changing,\n * and vice versa.\n */\n readonly converter?: ComplexAttributeConverter<Type>;\n\n /**\n * Indicates if the property should reflect to an attribute.\n * If `true`, when the property is set, the attribute is set using the\n * attribute name determined according to the rules for the `attribute`\n * property option and the value of the property converted using the rules\n * from the `converter` property option.\n */\n readonly reflect?: boolean;\n\n /**\n * A function that indicates if a property should be considered changed when\n * it is set. The function should take the `newValue` and `oldValue` and\n * return `true` if an update should be requested.\n */\n hasChanged?(value: Type, oldValue: Type): boolean;\n\n /**\n * Indicates whether an accessor will be created for this property. By\n * default, an accessor will be generated for this property that requests an\n * update when set. If this flag is `true`, no accessor will be created, and\n * it will be the user's responsibility to call\n * `this.requestUpdate(propertyName, oldValue)` to request an update when\n * the property changes.\n */\n readonly noAccessor?: boolean;\n\n /**\n * Used for existed properties which require `@property` do not decorate.\n * This should be used for legacy props only.\n *\n * @internal\n */\n readonly __unstable_doNotDecorate?: boolean;\n\n /**\n * Used for existed properties that are conflicted with html native properties.\n *\n * @internal\n */\n readonly __deprecated_and_for_compatibility_only?: boolean;\n}\n\nconst defaultConverter: ComplexAttributeConverter = {\n toAttribute(value: unknown, type?: TypeHint): unknown {\n switch (type) {\n case Boolean:\n return value ? \"\" : null;\n }\n return value;\n },\n\n fromAttribute(value: string | null, type?: TypeHint) {\n switch (type) {\n case Boolean:\n return value !== null;\n case Number:\n return value === null ? null : Number(value);\n }\n return value;\n },\n};\n\ninterface HasChanged {\n (value: unknown, old: unknown): boolean;\n}\n\n/**\n * Change function that returns true if `value` is different from `oldValue`.\n * This method is used as the default for a property's `hasChanged` function.\n */\nconst notEqual: HasChanged = (value: unknown, old: unknown): boolean => {\n // This ensures (old==NaN, value==NaN) always returns false\n return old !== value && (old === old || value === value);\n};\n\nconst defaultPropertyDeclaration: PropertyDeclaration = {\n attribute: true,\n type: String,\n converter: defaultConverter,\n reflect: true,\n hasChanged: notEqual,\n};\n\nfunction attributeNameForProperty(\n name: PropertyKey,\n options: PropertyDeclaration\n): string {\n const attribute = options.attribute;\n return attribute === false\n ? undefined\n : typeof attribute === \"string\"\n ? attribute\n : typeof name === \"string\"\n ? name.replace(/[A-Z]/g, (char) => `-${char.toLowerCase()}`)\n : undefined;\n}\n\n/**\n * 构件事件的选项。\n */\nexport interface EventDeclaration extends EventInit {\n /**\n * 事件类型名。\n */\n type: string;\n}\n\n/** 事件发送器 */\nexport interface EventEmitter<T = unknown> {\n /** 发出事件。 */\n emit: (detail?: T) => boolean;\n}\n\n/**\n * 普通构件的抽象基类。\n *\n * @example\n *\n * ```ts\n * class MyBrickElement extends UpdatingElement {\n * @property()\n * myProp: string;\n *\n * _render() {\n * if (this.isConnected) {\n * // ...\n * }\n * }\n * }\n * ```\n */\nexport abstract class UpdatingElement extends HTMLElement {\n private _hasRequestedRender = false;\n private static _observedAttributes = new Set<string>();\n private static __dev_only_definedProperties = new Set<string>();\n private static __dev_only_definedMethods = new Set<string>();\n private static __dev_only_definedEvents = new Set<string>();\n\n /** @internal */\n static get observedAttributes(): string[] {\n this._ensureObservedAttributes();\n return Array.from(this._observedAttributes);\n }\n\n /** @internal */\n static get _dev_only_definedProperties(): string[] {\n this._ensureDefinedProperties();\n return Array.from(this.__dev_only_definedProperties);\n }\n\n /** @internal */\n static get _dev_only_definedMethods(): string[] {\n this._ensureDefinedMethods();\n return Array.from(this.__dev_only_definedMethods);\n }\n\n /** @internal */\n static get _dev_only_definedEvents(): string[] {\n this._ensureDefinedEvents();\n return Array.from(this.__dev_only_definedEvents);\n }\n\n /** @internal */\n get $$typeof(): string {\n return \"brick\";\n }\n\n /** @internal */\n attributeChangedCallback(\n name: string,\n old: string | null,\n value: string | null\n ): void {\n if (old !== value) {\n this._enqueueRender();\n }\n }\n\n // Enure multiple property settings will trigger rendering only once.\n private _enqueueRender(): void {\n // If the element is not connected,\n // let `connectedCallback()` do the job of rendering.\n if (this.isConnected && !this._hasRequestedRender) {\n this._hasRequestedRender = true;\n Promise.resolve().then(() => {\n this._hasRequestedRender = false;\n this._render();\n });\n }\n }\n\n private static _ensureObservedAttributes(): void {\n // eslint-disable-next-line no-prototype-builtins\n if (!this.hasOwnProperty(\"_observedAttributes\")) {\n const superClass = Object.getPrototypeOf(this);\n this._observedAttributes = new Set<string>(\n // eslint-disable-next-line no-prototype-builtins\n superClass.hasOwnProperty(\"_observedAttributes\")\n ? superClass._observedAttributes\n : null\n );\n }\n }\n\n private static _ensureDefinedProperties(): void {\n // eslint-disable-next-line no-prototype-builtins\n if (!this.hasOwnProperty(\"__dev_only_definedProperties\")) {\n const superClass = Object.getPrototypeOf(this);\n this.__dev_only_definedProperties = new Set<string>(\n // eslint-disable-next-line no-prototype-builtins\n superClass.hasOwnProperty(\"__dev_only_definedProperties\")\n ? superClass.__dev_only_definedProperties\n : null\n );\n }\n }\n\n private static _ensureDefinedMethods(): void {\n // eslint-disable-next-line no-prototype-builtins\n if (!this.hasOwnProperty(\"__dev_only_definedMethods\")) {\n const superClass = Object.getPrototypeOf(this);\n this.__dev_only_definedMethods = new Set<string>(\n // eslint-disable-next-line no-prototype-builtins\n superClass.hasOwnProperty(\"__dev_only_definedMethods\")\n ? superClass.__dev_only_definedMethods\n : null\n );\n }\n }\n\n private static _ensureDefinedEvents(): void {\n // eslint-disable-next-line no-prototype-builtins\n if (!this.hasOwnProperty(\"__dev_only_definedEvents\")) {\n const superClass = Object.getPrototypeOf(this);\n this.__dev_only_definedEvents = new Set<string>(\n // eslint-disable-next-line no-prototype-builtins\n superClass.hasOwnProperty(\"__dev_only_definedEvents\")\n ? superClass.__dev_only_definedEvents\n : null\n );\n }\n }\n\n /** @internal */\n static createProperty(name: string, options?: PropertyDeclaration): void {\n this._ensureObservedAttributes();\n this._ensureDefinedProperties();\n\n options = Object.assign({}, defaultPropertyDeclaration, options);\n\n // eslint-disable-next-line no-prototype-builtins\n if (options.noAccessor || this.prototype.hasOwnProperty(name)) {\n return;\n }\n\n this.__dev_only_definedProperties.add(name);\n\n const attr = attributeNameForProperty(name, options);\n\n if (attr === undefined) {\n // Create a non-enumerable symbol property to delegate the property.\n const delegatedPropSymbol = Symbol(`delegatedProp:${name}`);\n Object.defineProperty(this.prototype, name, {\n get(): any {\n return (this as any)[delegatedPropSymbol];\n },\n set(this: UpdatingElement, value: unknown) {\n const oldValue = (this as any)[name];\n if (options.hasChanged(value, oldValue)) {\n (this as any)[delegatedPropSymbol] = value;\n this._enqueueRender();\n }\n },\n enumerable: true,\n });\n return;\n }\n\n this._observedAttributes.add(attr);\n\n Object.defineProperty(this.prototype, name, {\n get(): any {\n return options.converter.fromAttribute(\n (this as HTMLElement).getAttribute(attr),\n options.type\n );\n },\n set(this: UpdatingElement, value: unknown) {\n const oldValue = (this as any)[name];\n if (options.hasChanged(value, oldValue)) {\n const attrValue = options.converter.toAttribute(value, options.type);\n if (attrValue === undefined) {\n return;\n }\n if (attrValue === null) {\n this.removeAttribute(attr);\n } else {\n this.setAttribute(attr, attrValue as string);\n }\n }\n },\n enumerable: true,\n });\n }\n\n /** @internal */\n static createMethod(name: string): void {\n this._ensureDefinedMethods();\n this.__dev_only_definedMethods.add(name);\n }\n\n /** @internal */\n static createEventEmitter(name: string, options: EventDeclaration): void {\n this._ensureDefinedEvents();\n\n // eslint-disable-next-line no-prototype-builtins\n if (this.prototype.hasOwnProperty(name)) {\n return;\n }\n\n const { type, ...eventInit } = options;\n this.__dev_only_definedEvents.add(type);\n\n // Make event emitter readonly.\n Object.defineProperty(this.prototype, name, {\n get(): EventEmitter {\n return Object.freeze({\n emit: <T>(detail: T): boolean =>\n this.dispatchEvent(new CustomEvent(type, { ...eventInit, detail })),\n });\n },\n });\n }\n\n /**\n * 当构件的属性改变时,将自动调用 `this._render()` 方法。\n */\n protected abstract _render(): void;\n}\n","import { merge } from \"lodash\";\nimport { UpdatingElement } from \"../UpdatingElement\";\nimport { property } from \"../decorators\";\n\n/**\n * 模态框类构件的抽象基类。\n */\nexport abstract class ModalElement extends UpdatingElement {\n /**\n * 模态框当前是否可见。\n */\n @property({\n type: Boolean,\n })\n public isVisible: boolean;\n\n /**\n * 打开模态框。\n *\n * @param e - 事件。\n */\n openModal = (e?: CustomEvent): void => {\n if (e) {\n if (typeof e.detail === \"object\" && !Array.isArray(e.detail)) {\n merge(this, e.detail);\n } else {\n merge(this, { detail: e.detail });\n }\n }\n this.isVisible = true;\n this._render();\n };\n\n /**\n * 关闭模态框。\n */\n closeModal = (): void => {\n this.isVisible = false;\n this._render();\n };\n}\n"],"names":["BaseBar","constructor","kernel","mountPoint","bootstrap","brick","options","element","remove","loadDynamicBricks","document","createElement","testid","dataset","mountPoints","appendChild","AppBar","setPageTitle","pageTitle","appendBreadcrumb","breadcrumb","setBreadcrumb","MenuBar","setAppMenu","menu","resetAppMenu","subMenu","collapse","collapsed","isCollapsed","softExpand","expanded","softExpanded","isSoftExpanded","NS_BRICK_KIT","K","getBasePath","base","querySelector","basePath","getAttribute","compareVersions","v1","v2","n1","validateAndParse","n2","p1","pop","p2","r","compareSegments","split","semver","v","TypeError","match","Error","shift","isWildcard","s","tryParse","n","parseInt","isNaN","forceType","a","b","String","compareStrings","ap","bp","i","Math","max","length","brickTemplateRegistry","Map","registerBrickTemplate","name","factory","has","console","error","set","DEFAULT_THEME","theme","setTheme","value","getTheme","getCurrentTheme","documentElement","applyTheme","window","dispatchEvent","CustomEvent","detail","useCurrentTheme","currentTheme","setCurrentTheme","useState","useEffect","listenToThemeChange","event","addEventListener","removeEventListener","DEFAULT_MODE","mode","setMode","getMode","getCurrentMode","applyMode","useCurrentMode","currentMode","setCurrentMode","listenToModeChange","globalVariables","_objectSpread","Object","variable","supplyIndividual","shouldOmitInLodash","shouldOmitInMoment","allowedGlobalObjects","delegateMethods","entry","moment","pipes","href","location","origin","tagUrlFactory","method","args","target","partials","result","strings","index","ignoreSlashes","p","encodeURIComponent","getUrlByAliasFactory","app","getUrlByAlias","alias","pathParams","query","$$routeAliasMap","routeConf","get","url","toPath","computeRealRoutePath","path","urlSearchParams","URLSearchParams","key","entries","Array","isArray","item","append","undefined","queryString","toString","getUrlBySegueFactory","segues","getUrlBySegue","segueId","hasOwnProperty","segue","imagesFactory","appId","isBuildPush","PUBLIC_ROOT","widgetImagesFactory","widgetId","customTemplateRegistry","appRegistered","Set","symbolForComputedPropsFromProxy","Symbol","for","symbolForRefForProxy","symbolForParentTemplate","symbolForTplContextId","symbolForParentRefForUseBrickInPortal","injected","WeakSet","recursiveMarkAsInjected","isObject","haveBeenInjected","add","forEach","proto","getPrototypeOf","values","object","resetAllInjected","cloneDeepWithInjectedMark","isPreEvaluated","clone","map","fromEntries","k","StateOfUseBrick","isLazyContentInUseBrick","state","USE_BRICK_PROPERTIES","USE_BRICK_TRANSFORM","USE_BRICK_EVENTS","USE_BRICK_IF","USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_TRANSFORM","USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT_TRANSFORM","getNextStateOfUseBrick","USE_BRICK","USE_BRICK_ITEM","USE_BRICK_SLOTS_ITEM_BRICKS","USE_BRICK_SLOTS_ITEM_BRICKS_ITEM","USE_BRICK_LIFECYCLE_USERESOLVES","USE_BRICK_LIFECYCLE_USERESOLVES_ITEM","INITIAL","USE_BRICK_SLOTS","USE_BRICK_LIFECYCLE","USE_BRICK_SLOTS_ITEM","USE_BRICK_LIFECYCLE_USERESOLVES_ITEM_ONREJECT","transformElementProperties","data","to","from","mapArray","preprocessTransformProperties","setRealProperties","transformProperties","props","propName","propValue","doTransform","preEvaluated","lazy","$$lazyForUseBrick","$$stateOfUseBrick","dismissRecursiveMarkingInjected","isEvaluable","runtimeContext","getTplVariables","evaluate","evaluateOptions","shouldDismissRecursiveMarkingInjected","allowInject","transformAndInject","_internalApiGetCurrentContext","transform","nextOptions","getNextDoTransformOptions","trackingContextList","contextNames","trackContext","push","reTransformForDevtools","transformationId","isReTransformation","devtoolsHookEmit","id","message","processedData","pipeableTransform","fromData","transformedPropName","transformTo","transformIntermediateData","intermediateData","MESSAGE_SOURCE_PANEL","EVALUATION_EDIT","TRANSFORMATION_EDIT","type","payload","Promise","resolve","then","getDevHook","emit","listenDevtools","source","raw","context","restoreDehydrated","isReEvaluation","evaluationId","__BRICK_NEXT_DEVTOOLS_HOOK__","getItemFactory","storageType","storage","localStorage","sessionStorage","JSON","parse","getItem","locale","REQUEST_FAILED","MODAL_OK","MODAL_CANCEL","SOMETHING_WENT_WRONG","LOGIN_TIMEOUT_MESSAGE","NETWORK_ERROR","initI18n","i18next","addResourceBundle","en","zh","getI18nNamespace","registerWidgetI18n","i18n","ns","lang","resources","widgetI18nFactory","getFixedT","i18nText","language","primaryLanguage","prefix","keys","startsWith","auth","authenticate","newAuth","assign","org","username","userInstanceId","loginFrom","accessRule","isAdmin","userAnalytics","initialized","setUserId","getAuth","logout","resetPermissionPreChecks","isLoggedIn","permissionMap","preCheckPermissions","storyboard","usedActions","scanPermissionActionsInStoryboard","validatePermissions","actions","difference","PermissionApi_validatePermissions","action","authorizationStatus","checkPermissions","clear","getGeneralGlobals","attemptToVisitGlobals","variableName","getIndividualGlobal","collectCoverage","storyboardFunctions","replace","fakeImageFactory","identity","fakeI18nText","check","fakeCheckPermissions","StoryboardFunctionRegistryFactory","registeredFunctions","Proxy","freeze","getStoryboardFunction","currentApp","registerStoryboardFunctions","functions","fn","typescript","processed","cooked","collector","createCollector","precooked","precookFunction","hooks","beforeVisit","cook","function","rules","noVar","supply","beforeEvaluate","beforeCall","beforeBranch","updateStoryboardFunction","widgetFunctionRegistry","widgetFunctions","registerWidgetFunctions","THROW","readOnlyHandler","defineProperty","deleteProperty","setPrototypeOf","getReadOnlyProxy","getDynamicReadOnlyProxy","ownKeys","symbolForRaw","symbolForContext","shouldAllowRecursiveEvaluations","possibleErrorConstructs","SyntaxError","ReferenceError","getCookErrorConstructor","preevaluate","errorConstructor","attemptToVisitEvent","attemptToVisitData","attemptToVisitTpl","missingEvent","EVENT","missingTpl","missingData","rawWithContext","DATA","TPL","sys","flags","hash","storyboardContext","overrideApp","getUrl","substr","cloneDeep","prop","matchVersion","getRuntime","hasInstalledApp","getMiscSettings","params","pkg","customProcessorRegistry","t","getAll","expression","computeRealValue","injectDeep","internalOptions","inject","getNextInternalOptions","setProperties","bricks","properties","realProps","computeRealProperties","extractProps","textContent","realValue","looseCheckIf","ifContainer","_looseCheckIf","if","looseCheckIfByTransform","_rawIf","_data","looseCheckIfOfComputed","rawIf","ctx","checkIf","_checkIf","checkIfByTransform","ifChecked","warn","symbolAppId","menuCache","menuTitleCache","constructMenu","menuBar","hasSubMenu","subMenuId","menuId","defaultCollapsed","processMenu","isNil","fetchMenuById","menuList","STANDALONE_MICRO_APPS","getStandaloneMenus","InstanceApi_postSearch","page","page_size","fields","title","icon","link","titleDataSource","defaultCollapsedBreakpoint","injectMenuGroupId","dynamicItems","itemsResolve","items","$eq","$size","$gt","list","all","loadDynamicMenuItems","menuData","mergeMenu","reorderMenuItems","mainMenu","find","validMenuList","injectWithMenus","injectingMenus","flatMap","processGroupInject","foundInjectingMenus","groupId","delete","children","concat","injectingMenu","itemsConf","_internalApiGetResolver","resolveOne","transformMapArray","restMenuData","computeRealValueWithOverrideApp","computeMenuItemsWithOverrideApp","processMenuTitle","menuItems","filter","text","defaultExpanded","rest","cacheKey","stringify","objectId","instanceId","attributeId","attr","instanceData","InstanceApi_getDetail","primary","join","clearMenuTitleCache","clearMenuCache","sortMenuItems","sortBy","sort","Infinity","overriddenGlobals","requireOverrideApp","memo","some","includes","test","overrideAppId","newContext","bootstrapData","storyboards","story","fulfilStoryboard","lazyBrickRegistry","requestsMap","WeakMap","registerLazyBricks","factoryWrapper","loadLazyBricks","requests","request","loadAllLazyBricks","fakeTplContext","_dev_only_getBrickPackages","brickPackages","_dev_only_getTemplatePackages","templatePackages","_dev_only_getStoryboards","_dev_only_loadDynamicBricksInBrickConf","brickConf","loadDynamicBricksInBrickConf","_dev_only_loadEditorBricks","editorBricks","loadEditorBricks","_dev_only_getFakeKernel","overrides","getFeatureFlags","bind","getProviderBrick","Runtime","registerCustomTemplate","registerCustomProcessor","Kernel","appBar","getCurrentApp","getRecentApps","getCurrentRoute","currentRoute","getMicroApps","excludeInstalling","includeInternal","apps","microApps","installStatus","internal","foundApp","matches","compare","currentVersion","reloadMicroApps","interceptorParams","check_login","reloadSharedData","loadSharedData","getDesktops","desktops","getLaunchpadSiteMap","siteSort","getAllUserInfo","getAllUserMap","getAllUserMapAsync","loadUsersAsync","allUserMapPromise","getMagicBrickConfigMapAsync","loadMagicBrickConfigAsync","allMagicBrickConfigMapPromise","fetchMenu","router","getCurrentContext","toggleFilterOfBlur","blur","body","classList","toggle","toggleLaunchpadEffect","open","getHomepage","settings","homepage","getBrandSettings","base_title","brand","getLaunchpadSettings","columns","rows","launchpad","misc","getRelatedApps","getRelatedAppsAsync","popWorkspaceStack","resetWorkspaceStack","workspaceStack","applyPageTitle","baseTitle","process","env","NODE_ENV","getResolver","_internalApiGetRouterState","getState","_internalApiGetRouterRenderId","getRenderId","_internalApiMessageCloseHandler","handleMessageClose","_internalApiHasMatchedApp","pathname","_dev_only_checkoutTplContext","_internalApiGetTplContext","getTplContext","_internalApiGetProviderBrick","provider","_internalApiGetMicroAppApiOrchestrationMap","allMicroAppApiOrchestrationPromise","_internalApiLoadDynamicBricksInBrickConf","historyExtended","browserHistory","originalPush","originalReplace","updateQueryFactory","updateQuery","extraQuery","keepHash","search","updateAnchorFactory","updateAnchor","notify","reload","blockMessage","setBlockMessage","getBlockMessage","unblock","pushQuery","replaceQuery","pushAnchor","standaloneHistoryOverridden","updateFactory","update","pathIsString","createHref","history","createHistory","createBrowserHistory","basename","getHistory","isUnauthenticatedError","HttpResponseError","response","status","responseJson","code","httpErrorToString","Event","HTMLScriptElement","src","HttpFetchError","msg","unauthenticatedConfirmModal","handleHttpError","Modal","confirm","React","ExclamationCircleOutlined","content","okText","cancelText","onOk","ssoEnabled","whiteSpace","LoginTimeoutMessage","WebsocketMessageRequest","topic","system","PluginWebSocketMessageEvent","WebsocketMessageResponse","SUB_SUCCESS","SUB_FAILED","SUB","UNSUB_SUCCESS","UNSUB_FAILED","UNSUB","WebSocketService","reconnectTimeout","retryLimit","defaultOptions","createWebSocket","readyState","ws","WebSocket","init","e","reconnect","onopen","sendQueuedMessages","onOpen","retryCount","onclose","onClose","navigator","onLine","onerror","onError","log","onmessage","onMessage","messageQueue","size","send","OPEN","lockReconnect","onReconnect","setTimeout","close","websocket","protocol","host","concatMap","xs","res","x","apply","prototype","call","balancedMatch","balanced","str","RegExp","maybeMatch","range","start","end","pre","slice","post","reg","m","begs","beg","left","right","ai","indexOf","bi","require$$0","require$$1","braceExpansion","expandTop","escSlash","random","escOpen","escClose","escComma","escPeriod","numeric","charCodeAt","escapeBraces","unescapeBraces","parseCommaParts","parts","postParts","expand","embrace","isPadded","el","lte","y","gte","isTop","expansions","isNumericSequence","isAlphaSequence","isSequence","isOptions","N","width","incr","abs","reverse","pad","c","fromCharCode","need","z","j","expansion","minimatch_1","minimatch","Minimatch","sep","require","er","GLOBSTAR","plTypes","qmark","star","twoStarDot","twoStarNoDot","reSpecials","charSet","reduce","slashSplit","pattern","ext","defaults","def","orig","nocomment","charAt","trim","regexp","negate","comment","empty","make","debug","_made","parseNegate","globSet","braceExpand","globParts","si","negateOffset","nonegate","l","nobrace","SUBPARSE","isSub","noglobstar","re","hasMagic","nocase","escaping","patternListStack","negativeLists","stateChar","inClass","reClassStart","classStart","patternStart","dot","self","clearStateChar","len","noext","reStart","pl","reEnd","cs","substring","sp","tail","_","$1","$2","addPatternStart","nl","nlBefore","nlFirst","nlLast","nlAfter","openParensBefore","cleanAfter","dollar","newRe","globUnescape","regExp","_glob","_src","makeRe","twoStar","regExpEscape","ex","mm","f","nonull","partial","filename","file","matchBase","hit","matchOne","flipNegate","fi","pi","fl","fr","pr","swallowee","toLowerCase","emptyFileEnd","messageDispatcher","createMessageDispatcher","MessageDispatcher","getMessageDispatcher","create","brickAndMessages","massageConf","channel","handler","messages","reset","messageCallbackHandlers","subscribe","callback","req","setMessageCallbackHandlers","channels","unsubscribe","getTopicByChannel","createWebsocketService","reducer","Boolean","MESSAGE_PUSH","messagePushHandler","messageSubscribeResponseEventHandler","dispatch","handlers","listenerFactory","getMessageHandlersByTopic","finder","brickAndMessage","prev","curr","callbacks","runtimeBrick","timeoutIdList","startPoll","task","progress","success","finally","finallyCallback","interval","leadingRequestDelay","continueOnError","delegateLoadingBar","expectPollEnd","expectPollStopImmediately","currentRenderId","currentTimeoutId","poll","shouldStop","delayedPoll","delay","clearPollTimeout","timeoutId","clearTimeout","flowApiDefinitionPromiseMap","isCustomApiProvider","getArgsOfCustomApi","originalArgs","isFlowApi","apiDefinition","fetchFlowApiDefinition","apiProfile","getApiProfileFromApiDefinition","getApiArgsFromApiProfile","uri","namespace","responseWrapper","version","isFileType","fileName","getTransformedUriAndRestArgs","responseType","restArgs","transformedUri","api","contract","yaml","safeLoad","schema","JSON_SCHEMA","json","endpoint","wrapper","promise","_fetchFlowApiDefinition","namespaceName","nameWithVersion","contractData","ContractApi_searchSingleContract","contractName","bindListeners","eventsMap","eventType","listener","rememberListeners","unbindListeners","$$eventListeners","isBuiltinHandler","isUseProviderHandler","useProvider","isCustomHandler","targetRef","isExecuteCustomHandler","isSetPropsCustomHandler","builtinHistoryListenerFactory","builtinHistoryWithoutArgsListenerFactory","builtinSegueListenerFactory","builtinAliasListenerFactory","builtinIframeListenerFactory","builtinWindowListenerFactory","builtinLocationListenerFactory","builtinWebStorageListenerFactory","preventDefault","builtinConsoleListenerFactory","builtinMessageListenerFactory","builtinContextListenerFactory","builtinTplDispatchEventFactory","builtinWebSocketListenerFactory","builtinThemeListenerFactory","builtinAnalyticsListenerFactory","usingProviderFactory","customListenerFactory","providerBrick","brickCallback","tpl","getParentTemplate","argsFactory","contextItem","previousValue","eventTarget","messageTopic","legacyIframeMountPoint","postMessage","iframe","firstChild","contentWindow","angular","features","runtime","micro_app_id","route_alias","findRefElement","ref","$$getElementByRef","current","parentElement","$$typeof","targets","multiple","querySelectorAll","found","useEventAsDefault","computedArgs","finallyHook","callbackFactory","specificHandler","eachHandler","err","pollableCallback","enabled","useEventDetailAsDefault","setItem","removeItem","BrickNode","$$brick","mount","tagName","customElements","node","slotId","setAttribute","events","child","childNodes","unmount","afterMount","parentTemplate","handleProxyOfCustomTemplate","checkLogin","_asyncToGenerator","http","processBootstrapResponse","bootstrapResponse","config","deepFreeze","merge","defaultConfig","userConfig","locales","localeName","removeResourceBundle","CUSTOM_API_PROVIDER","CustomApi","isSimpleRequest","simpleRequest","requestWithBody","registerCustomApi","define","createProviderClass","initAnalytics","gaMeasurementId","analyticsDebugMode","sendPageView","userId","debugMode","standaloneBootstrap","bootstrapResult","confString","BOOTSTRAP_FILE","APP_ROOT","conf","sys_settings","user_config","user_config_by_apps","feature_flags","featureFlags","loadCheckLogin","loadMicroApps","loadingBar","Router","legacyAuthGuard","layoutBootstrap","layout","supportedLayouts","currentLayout","presetBricks","pageNotFound","pageError","navbar","NO_AUTH_GUARD","AuthSdk","loggedIn","BootstrapV2Api_bootstrapV2","appFields","ignoreTemplateFields","ignoreBrickFields","$$fulfilled","$$fulfilling","doFulfilStoryboard","routes","meta","BootstrapV2Api_getAppStoryboardV2","scanRouteAliasInStoryboard","i18nNamespace","loadDepsOfStoryboard","dependsAll","dllPath","DLL_PATH","loadScriptOfDll","loadScriptOfBricksOrTemplates","filePath","templateDeps","getTemplateDepsOfStoryboard","dll","deps","getDllAndDepsOfStoryboard","asyncProcessStoryboard","ignoreBricksInUnusedCustomTemplates","prefetchDepsOfStoryboard","$$depsProcessed","prefetchScript","CORE_ROOT","registerCustomTemplatesInStoryboard","$$registerCustomTemplateProcessed","customTemplates","proxy","scanBricksInBrickConf","processors","scanProcessorsInAny","filteredBricks","getDllAndDepsByResource","firstRendered","toggleBars","visible","unsetBars","appChanged","legacy","toggleLegacyIframe","loadRelatedAppsAsync","loadUsersStarted","loadUsers","allUserMap","nickname","user_email","user_tel","user_icon","user_memo","allUserInfo","UserAdminApi_searchAllUsersInfo","user","loadMicroAppApiOrchestrationAsync","usedCustomApis","loadMicroAppApiOrchestration","getMicroAppApiOrchestrationMapAsync","allMicroAppApiOrchestrationMap","legacyCustomApis","allMicroAppApiOrchestration","$or","loadMagicBrickConfigStarted","loadMagicBrickConfig","allMagicBrickConfigMap","allMagicBrickConfig","selector","allRelatedAppsPromise","loadRelatedApps","relatedApps","ObjectMicroAppApi_getObjectMicroAppList","allRelatedApps","thisApp","microAppId","updateWorkspaceStack","workspace","appName","appLocaleName","currentUrl","previousWorkspace","getPreviousWorkspace","previousApp","currentAppId","currentStoryboard","menus","providerRepository","dlls","loadScript","EventTarget","wm","secret","listeners","currentTarget","splice","configurable","writable","info","once","handleEvent","_stopImmediatePropagationFlag","BrickEvent","PropertyDisplayType","getRuntimeMisc","isInIframe","isInIframeOfLegacyConsole","parent","getSubStoryboardByRoute","matcher","getSubRoutes","getSubRoute","route","getSubBricks","getSubBrick","slots","slotConf","isBasicProperty","propRef","refProperty","isTransformableProperty","refTransform","isMergeableProperty","mergeProperty","isRefProperty","isVariableProperty","asVariable","collectRefsInTemplate","template","refMap","collectRefsInBrickConfs","brickConfs","collectRefsInBrickConf","propertyMerge","propertyMergeAll","$$mergeBase","proxies","$$reversedRef","mergeBase","mergeType","propertyMergeAllOfArray","propertyMergeAllOfObject","baseValue","computedBaseValue","quasis","position","mergeMethod","mergeArgs","clamp","patchValue","acc","collectMergeBases","mergeBases","contextInTemplate","refToBrickConf","mergeBaseMap","expandCustomTemplate","proxyBrick","tplContext","templateProperties","templateSlots","restBrickConf","newBrickConf","proxyCopy","proxyRefs","reversedProxies","tplVariables","templateContextId","createContext","getContext","refPropertiesCopy","$$properties","reversedRef","extraOneWayRefs","extraConf","sealContext","reversedProperties","extraRef","extraProxies","reveredSlots","proxyContext","expandBrickInTemplate","brickConfInTemplate","slotsInTemplate","restBrickConfInTemplate","computedPropsFromProxy","refForProxy","bg","portal","slotName","walkUseBrickInProperties","quasisMap","refSlot","expandableSlot","refPosition","getTagNameOfCustomTemplate","getElementByRef","handleExtraOneWayRefs","extraRefElement","methods","refElement","delegatedPropSymbol","enumerable","eventRef","bubbles","stopPropagation","cancelable","composed","$$proxyEvents","proxyEvent","refEvent","methodRef","refMethod","tplName","tplConstructor","nativeProp","HTMLElement","TplElement","_dev_only_definedProperties","connectedCallback","style","display","CustomTemplateContext","uniqueId","contextMap","brickMap","propsMap","getBrick","listenOnTrackingContext","track","contextName","LocationContext","resolver","Resolver","tplContextId","nextApp","currentMatch","defineStoryboardFreeContext","contextConfs","coreContext","resolveContextConcurrently","contextConf","resolveStoryboardContext","property","setStoryboardContext","isResolve","valueConf","onChange","matchRoutes","computedPath","matchPath","exact","noAuthGuard","public","matchStoryboard","sortedStoryboards","orderBy","matched","mountRoutes","mountRoutesResult","redirect","redirectConf","unauthenticated","hybrid","defineResolves","mountProviders","providers","mountMenu","documentId","isRouteConfOfRoutes","isRouteConfOfBricks","mountBricks","analyticsData","menuConf","barsHidden","registerHandlersFromLifeCycle","lifeCycle","menuInBg","otherMenuConf","omit","injectedMenuConf","sidebarMenu","overwrite","noCurrentApp","providerConf","mountBrick","tplStack","ResolveRequestError","errorMessage","rawError","brickName","isLegacyTemplate","main","errorType","checkResolvableIf","ifConf","container","permissionsPreCheck","tplTagName","expandedBrickConf","useBrickList","setTplIdForUseBrick","slotsContent","slotItem","exports","ctxName","appendBrick","slottedMountRoutesResult","onBeforePageLoad","onPageLoad","onBeforePageLeave","onPageLeave","onAnchorLoad","onAnchorUnload","onMessageClose","beforePageLoadHandlers","pageLoadHandlers","beforePageLeaveHandlers","pageLeaveHandlers","anchorLoadHandlers","anchorUnloadHandlers","messageHandlers","messageCloseHandlers","handleBeforePageLoad","dispatchLifeCycleEvent","handlePageLoad","handleBeforePageLeave","handlePageLeave","handleAnchorLoad","anchor","handleMessage","getCurrentMatch","brickAndHandler","unmountTree","$$rootBricks","innerHTML","mountTree","rootBricks","nodes","afterMountTree","mountStaticNode","brickNode","makeProviderRefreshable","$refresh","keyOfIntervalStopped","defineProperties","$$dependents","$stopInterval","ignoreErrors","throwErrors","$$scheduled","cache","field","transformFrom","onReject","intermediateTransform","intermediateTransformFrom","intermediateTransformMapArray","actualArgs","fetchData","onRejectTransform","resetRefreshQueue","refreshQueue","active","resolves","resolveConf","definedResolves","useResolves","$$resolved","asyncProcessBrick","propsReference","actualResolveConf","providerTagName","isHandleRejectByTransform","isHandleRejectByCatch","scheduleRefreshing","isolatedCrash","captureStackTrace","shouldBeDefaultCollapsed","clientWidth","mocks","mockId","mockList","registerMock","useMocks","_match","_p3","p4","getMockId","requestUrl","getBlockMessageBeforePageLave","returnValue","block","previousMessage","locationContext","locationChangeNotify","Date","image","Image","prevLocation","listen","ignoreRendering","omittedLocationProps","locationsAreEqual","rendering","nextLocation","queuedRender","render","renderId","pageTracker","apiAnalyzer","getInstance","restoreDynamicTemplates","subStoryboard","layoutType","redirectToLogin","mapCustomApisToNameAndNamespace","scanCustomApisInStoryboard","failed","brickPageError","createPath","actualLegacy","scrollTo","requestIdleCallback","brickPageNotFound","processorFullName","processorFunc","processorName","registry","createRuntime","LegacyErrorBoundary","Component","getDerivedStateFromError","ErrorBoundary","withTranslation","warnNativeHtmlElementProperty","__deprecated_and_for_compatibility_only","decorateProperty","__unstable_doNotDecorate","kind","initializer","attribute","placement","descriptor","finisher","Class","createProperty","decorateEvent","createEventEmitter","decorateMethod","createMethod","useApplyPageTitle","useRecentApps","recentApps","setRecentApps","useCurrentApp","useLocation","setLocation","unlisten","setProxyRefForSlots","slotsToChildren","isEmpty","setProxyRef","useBrick","tplConf","getCurrentRunTimeBrick","transformOption","handleProxyOfParentTemplate","tplBrick","getFilterProxy","getFilterByRef","obj","singleRefBrickProxyMap","SingleBrickAsComponent","parentRefForUseBrickInPortal","refCallback","immediatelyRefCallback","isBrickAvailable","useMemo","catch","innerRefCallback","useCallback","transformEvents","BrickAsComponent","slot","ForwardRefSingleBrickAsComponent","forwardRef","LegacySingleBrickAsComponent","brickRef","useRef","useImperativeHandle","items_per_page","jump_to","jump_to_confirm","prev_page","next_page","prev_5","next_5","prev_3","next_3","today","now","backToToday","ok","timeSelect","dateSelect","weekSelect","month","year","previousMonth","nextMonth","monthSelect","yearSelect","decadeSelect","yearFormat","dayFormat","dateFormat","dateTimeFormat","previousYear","nextYear","previousDecade","nextDecade","previousCentury","nextCentury","placeholder","rangePlaceholder","_extends","yearPlaceholder","quarterPlaceholder","monthPlaceholder","weekPlaceholder","rangeYearPlaceholder","rangeMonthPlaceholder","rangeWeekPlaceholder","CalendarLocale","timePickerLocale","TimePickerLocale","typeTemplate","localeValues","Pagination","DatePicker","TimePicker","Calendar","global","Table","filterTitle","filterConfirm","filterReset","filterEmptyText","selectAll","selectInvert","selectNone","selectionAll","sortTitle","triggerDesc","triggerAsc","cancelSort","justOkText","Popconfirm","Transfer","searchPlaceholder","itemUnit","itemsUnit","selectCurrent","removeCurrent","removeAll","Upload","uploading","removeFile","uploadError","previewFile","downloadFile","Empty","description","Icon","Text","edit","copy","copied","PageHeader","back","Form","optional","defaultValidateMessages","required","whitespace","date","format","invalid","types","string","array","number","integer","email","hex","min","mismatch","preview","monthBeforeYear","emptyText","titles","EasyopsEmpty","illustration","getIllustration","_emptyImage","useBigEmptyImage","bigEmptyImage","emptyImage","imageStyle","height","color","renderEasyopsEmpty","FeatureFlagsContext","FeatureFlagsProvider","Provider","useFeatureFlags","useContext","flagNames","flag","DisplayByFeatureFlags","every","fallback","BrickWrapper","enUS","zhCN","ConfigProvider","wrapperConfig","developHelper","getBrickPackages","getTemplatePackages","getStoryboards","getFakeKernel","checkoutTplContext","defaultConverter","toAttribute","fromAttribute","Number","notEqual","old","defaultPropertyDeclaration","converter","reflect","hasChanged","attributeNameForProperty","char","UpdatingElement","observedAttributes","_ensureObservedAttributes","_observedAttributes","_ensureDefinedProperties","__dev_only_definedProperties","_dev_only_definedMethods","_ensureDefinedMethods","__dev_only_definedMethods","_dev_only_definedEvents","_ensureDefinedEvents","__dev_only_definedEvents","attributeChangedCallback","_enqueueRender","isConnected","_hasRequestedRender","_render","superClass","noAccessor","oldValue","attrValue","removeAttribute","eventInit","ModalElement","isVisible"],"mappings":"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"}