import { LocationDescriptor } from "history" ; import { SidebarMenu , MenuIcon , MenuRawData } from "./menu" ; import { PluginHistoryState } from "./runtime" ; internal export interface BootstrapData { brickPackages : BrickPackage [ ] ; templatePackages : TemplatePackage [ ] ; navbar : NavbarConf ; storyboards : Storyboard [ ] ; settings : Settings ; desktops : DesktopData [ ] ; siteSort : SiteMapItem [ ] ; } internal export interface RuntimeBootstrapData extends BootstrapData { storyboards : RuntimeStoryboard [ ] ; microApps : MicroApp [ ] ; } internal export interface Settings { featureFlags : FeatureFlags ; homepage : string ; misc ? : Record < string , unknown > ; [ key ] : unknown ; } example export type FeatureFlags = Record < string , boolean > ; /**
 * 微应用基本信息。
 */ export interface MicroApp { /**
     * 应用名称。
     */ name : string ; /**
     * 应用唯一 ID，应使用 `lower-kebab-case` 格式。
     */ id : string ; /**
     * 应用主页地址，如 `/search`。
     */ homepage : string ; /** 应用当前版本。 */ currentVersion ? : string ; remarks example example icons ? : { large : string ; } ; /**
     * 应用图标在 Launchpad 中显示的背景形状。
     */ iconBackground ? : "circle" | "square" ; /**
     * 标记为内部的应用不会出现在 Launchpad 中。
     */ internal ? : boolean ; /**
     * 标记为私有的应用不会出现在应用商店中。
     */ private ? : boolean ; /**
     * 应用的安装状态。
     */ installStatus ? : "ok" | "running" ; remarks status ? : "developing" | "enabled" | "disabled" ; /**
     * 应用是否是 iframe 嵌套老 console 的模式。
     */ legacy ? : "iframe" ; /**
     * 应用在菜单中显示的图标。
     */ menuIcon ? : MenuIcon ; /** {@inheritDoc LayoutType} */ layoutType ? : LayoutType ; /**
     * 应用的默认配置，在开发环境由应用开发者维护。
     */ defaultConfig ? : Record < string , unknown > ; /**
     * 应用的用户配置，在运行环境由用户维护。
     */ userConfig ? : Record < string , unknown > ; /**
     * 合并后的应用配置（运行时得出）。
     */ config ? : Record < string , unknown > ; /** {@inheritDoc AppLocales} */ locales ? : AppLocales ; /**
     * 本地化后的应用名称（运行时得出），本地化获取失败时回退到 `name`。
     */ localeName ? : string ; /**
     * 整个应用不启用登录守卫。
     */ noAuthGuard ? : boolean ; /**
     * 表示该应用是否是来自 BuildAndPush 的。
     */ isBuildPush ? : boolean ; internal $$routeAliasMap ? : RouteAliasMap ; /**
     * 面包屑配置
     */ breadcrumb ? : BreadcrumbConf ; /**
     * 该应用所属主题， dark 已经被用大屏模式，这里使用 dark-v2
     */ theme ? : "light" | "dark-v2" ; } /**
 * 页面整体布局类型。
 */ export type LayoutType = "console" | "business" ; example export type AppLocales = Record < string , AppLocale > ; /**
 * 应用的单个地域的本地化配置。
 */ export interface AppLocale { /**
     * 对某地域显示的应用名称。
     */ name ? : string ; } internal export type RouteAliasMap = Map < string , RouteAliasConf > ; internal export type RouteAliasConf = Pick < RouteConf , "path" | "alias" > ; internal export interface BrickPackage { filePath : string ; bricks ? : string [ ] ; editors ? : string [ ] ; editorsJsFilePath ? : string ; processors ? : string [ ] ; providers ? : string [ ] ; dll ? : string [ ] ; } internal export interface TemplatePackage { templates ? : string [ ] ; filePath : string ; } internal export interface AuthInfo { org ? : number ; username ? : string ; userInstanceId ? : string ; loginFrom ? : string ; accessRule ? : string ; isAdmin ? : boolean ; } internal export interface NavbarConf { menuBar : string ; appBar : string ; loadingBar : string ; } internal export interface PresetBricksConf extends Partial < NavbarConf > { pageNotFound : string ; pageError : string ; } /**
 * 应用的 Storyboard 配置。
 */ export interface Storyboard { /** {@inheritDoc MicroApp} */ app : MicroApp ; internal imports ? : string [ ] ; /**
     * 路由配置列表。
     */ routes ? : RouteConf [ ] ; deprecated internal dependsAll ? : boolean ; /** {@inheritDoc StoryboardMeta} */ meta ? : StoryboardMeta ; } internal export interface RuntimeStoryboard extends Storyboard { $$depsProcessed ? : boolean ; $$registerCustomTemplateProcessed ? : boolean ; $$fulfilled ? : boolean ; $$fulfilling ? : Promise < void > ; } export function isRouteConfOfBricks ( conf ) { return conf . type !== "routes" && ! ! ( conf as RouteConfOfBricks ) . bricks ; } export function isRouteConfOfRoutes ( conf ) { return conf . type === "routes" ; } /**
 * 路由配置，类型可以是构件列表、子路由列表和重定向中的一种。
 */ export type RouteConf = RouteConfOfBricks | RouteConfOfRoutes | RouteConfOfRedirect ; /**
 * 包含一组构件的路由配置。
 */ export interface RouteConfOfBricks extends BaseRouteConf { type ? : "bricks" ; /** 构件列表。 */ bricks : BrickConf [ ] ; /** 分析数据。 */ analyticsData ? : Record < string , unknown > | string ; } /**
 * 包含一组子路由的路由配置。
 */ export interface RouteConfOfRoutes extends BaseRouteConf { type : "routes" ; /** 子路由列表。 */ routes : RouteConf [ ] ; } /**
 * 使用重定向的路由配置。
 */ export interface RouteConfOfRedirect extends BaseRouteConf { type ? : "redirect" ; /** 重定向的目标地址或异步数据处理配置。 */ redirect : string | ResolveConf ; } /**
 * 路由的基本配置信息。
 */ export interface BaseRouteConf { /**
     * 路由地址，通常应使用 `${APP.homepage}` 开头。
     */ path : string ; /**
     * 路由别名，它同时有路由唯一 ID 的作用，应保障在微应用内的唯一性。
     */ alias ? : string ; /**
     * 是否精确匹配（未设置时系统默认会匹配路由地址及其所有子目录地址）。
     */ exact ? : boolean ; /**
     * 标记为公开的路由不需要登录就能进入。
     */ public ? : boolean ; /** {@inheritDoc MenuConf} */ menu ? : MenuConf ; /**
     * 标记为混合的路由，将转换 `legacy: iframe` 模式。例如对于标记了 `legacy: iframe` 的应用，
     * 其中 `hybrid: true` 的路由将使用普通模式渲染页面；而对于其它应用，其中 `hybrid: true`
     * 的路由将使用 iframe 模式渲染页面。
     */ hybrid ? : boolean ; remarks providers ? : ProviderConf [ ] ; /**
     * 预定义的异步数据处理配置列表。
     */ defineResolves ? : DefineResolveConf [ ] ; /**
     * 要重定向的地址或异步处理配置。
     */ redirect ? : string | ResolveConf ; /** {@inheritDoc SeguesConf} */ segues ? : SeguesConf ; /**
     * 上下文配置列表。
     */ context ? : ContextConf [ ] ; /**
     * 预校验的动态权限列表，在编排中可以通过 `<% PERMISSIONS.check("your-action") %>`来校验权限点。
     * 当被校验的权限点为已知字符串，则框架会扫描收集统一校验，不需要在此处声明；
     * 当被校验的权限点需要动态获得，例如通过 `QUERY`,`PATH`,`CTX` 等参数动态计算得到，则需要在 `permissionsPreCheck` 中提前声明。
     * 如果某个权限点需要在接口中获得，也只需要在 Context 中通过异步 Resolve 提前赋值给 Context 即可。
     */ permissionsPreCheck ? : string [ ] ; /**
     * 关联的文档 ID。
     */ documentId ? : string ; } remarks example export interface ContextConf { /**
     * 上下文（数据）名称。
     */ name : string ; /**
     * 自由变量类型的上下文的值。
     */ value ? : unknown ; /**
     * 异步处理配置。如需 transform，将使用转换后的结果的 `value` 字段作为值。
     */ resolve ? : ResolveConf ; /**
     * 要绑定的构件属性名。
     */ property ? : string ; /**
     * 条件配置，根据 `if` 的计算结果来决定是否启用该上下文。不适用于绑定构件属性的数据。
     */ if ? : string | boolean ; /**
     * 当数据发生变化时触发的事件。注意，该事件仅适用于自由变量或异步处理的数据，不适用于绑定构件属性的数据。
     */ onChange ? : BrickEventHandler | BrickEventHandler [ ] ; } remarks example export interface SeguesConf { [ segueId ] : SegueConf ; } /**
 * 页面切换配置。
 */ export interface SegueConf { /**
     * 目标路由的别名。
     */ target : string ; } /**
 * 构件配置。
 */ export interface BrickConf { /**
     * 构件名。
     */ brick ? : string ; /**
     * {@inheritDoc SlotsConf}
     */ slots ? : SlotsConf ; deprecated internal injectDeep ? : boolean ; /**
     * 构件属性。
     */ properties ? : Record < string , unknown > ; /**
     * {@inheritDoc BrickEventsMap}
     */ events ? : BrickEventsMap ; /**
     * 是否将构件放置到一个不可见的背景容器中，它们通常为 Provider 构件。
     */ bg ? : boolean ; /**
     * {@inheritDoc BrickLifeCycle}
     */ lifeCycle ? : BrickLifeCycle ; deprecated internal internalUsedBricks ? : string [ ] ; deprecated internal internalUsedTemplates ? : string [ ] ; deprecated 建议使用 CustomTemplate 代替。
      template ? : string ; deprecated 建议使用 CustomTemplate 代替。
      params ? : Record < string , unknown > ; injectable if ? : string | boolean | ResolveConf ; /**
     * 标记 `portal: true` 的构件将被放置到一个“ https ”容器中，它们通常为
     * *Modal*、*Drawer* 等弹窗容器类型的构件。
      portal ? : boolean ; /**
     * {@inheritDoc BaseRouteConf.context}
     */ context ? : ContextConf [ ] ; /**
     * {@inheritDoc BaseRouteConf.permissionsPreCheck}
     */ permissionsPreCheck ? : string [ ] ; deprecated internal exports ? : Record < string , string > ; } /**
 * Provider 配置。
 */ export type ProviderConf = string | Pick < BrickConf , "brick" | "properties" | "events" | "lifeCycle" > ; internal export interface RuntimeBrickConf extends BrickConf { $$dynamic ? : boolean ; $$resolved ? : boolean ; $$template ? : string ; $$params ? : Record < string , unknown > ; $$lifeCycle ? : BrickLifeCycle ; $$if ? : string | boolean | ResolveConf ; } internal export interface MessageConf { channel : string ; handlers : BrickEventHandler | BrickEventHandler [ ] ; } remarks export interface BrickLifeCycle { /**
     * 定义在构件装载前需要进行的异步数据处理，计算结果将作为属性表赋值给构件。
     */ useResolves ? : ResolveConf [ ] ; /**
     * 定义构件在页面加载前要执行的动作。
     */ onBeforePageLoad ? : BrickEventHandler | BrickEventHandler [ ] ; /**
     * 定义构件在页面加载完成后的动作。
     */ onPageLoad ? : BrickEventHandler | BrickEventHandler [ ] ; internal onPageLeave ? : BrickEventHandler | BrickEventHandler [ ] ; /**
     * 定义构件在页面离开前要执行的动作。
     */ onBeforePageLeave ? : BrickEventHandler | BrickEventHandler [ ] ; /**
     * 定义构件在页面渲染完成后，当页面 URL 中包含非空的 anchor（URL hash 去掉前缀 #）时，需要处理的动作。
     */ onAnchorLoad ? : BrickEventHandler | BrickEventHandler [ ] ; /**
     * 定义构件在页面渲染完成后，当页面 URL 中不包含非空的 anchor（URL hash 去掉前缀 #）时，需要处理的动作。
     */ onAnchorUnload ? : BrickEventHandler | BrickEventHandler [ ] ; internal onMessage ? : MessageConf | MessageConf [ ] ; internal onMessageClose ? : BrickEventHandler | BrickEventHandler [ ] ; } /**
 * 异步数据处理配置。
 */ export type ResolveConf = EntityResolveConf | RefResolveConf ; /**
 * 实体类的异步数据处理配置。
 */ export type EntityResolveConf = UseProviderResolveConf | SelectorProviderResolveConf ; /**
 * 使用 `useProvider` 的异步数据处理配置。
 */ export interface UseProviderResolveConf extends BaseEntityResolveConf { /** 指定要使用的构件名。 */ useProvider : string ; } /**
 * 使用 CSS selector 指定 Provider 的异步数据处理配置。
 */ export interface SelectorProviderResolveConf extends BaseEntityResolveConf { /** Provider 构件的 CSS selector。 */ provider : string ; } /**
 * 实体类的异步数据处理的基本配置信息。
 */ export interface BaseEntityResolveConf { /** 将要执行的构件的方法名，默认为 `resolve`。 */ method ? : string ; injectable args ? : unknown [ ] ; deprecated field ? : string | string [ ] ; deprecated name ? : string ; /**
     * 使用返回数据的指定字段作为数据源。
     */ transformFrom ? : string | string [ ] ; /**
     * 设置在数据转换中对数组的映射处理模式。
     */ transformMapArray ? : boolean | "auto" ; /** {@inheritDoc GeneralTransform} */ transform ? : GeneralTransform ; /** {@inheritDoc HandleReject} */ onReject ? : HandleReject ; /** {@inheritDoc BuiltinBrickEventHandler.if} */ if ? : string | boolean ; } /**
 * 预定义的异步数据处理配置。
 */ export type DefineResolveConf = ( Omit < UseProviderResolveConf , "name" | "onReject" > | Omit < SelectorProviderResolveConf , "name" | "onReject" > ) & { /**
     * 预定义的异步处理 ID。
     */ id : string ; } ; /**
 * 引用类的异步数据处理配置。
 */ export type RefResolveConf = Pick < BaseEntityResolveConf , "name" | "transformFrom" | "transformMapArray" | "transform" | "onReject" | "if" > & { /** 设置要引用的预定义的异步数据处理 ID */ ref : string ; } ; /** {@inheritDoc HandleRejectByTransform} */ export type HandleReject = HandleRejectByTransform | HandleRejectByCatch ; /**
 * 当异步数据处理抛出错误时，使用该错误对象作为数据源进行转换来作为最终结果。
 */ export interface HandleRejectByTransform { /** {@inheritDoc GeneralTransform} */ transform : GeneralTransform ; } /**
 * 当异步数据处理抛出错误时，捕获它，可以设置只对应的构件报错，而不是页面整体报错。
 */ export interface HandleRejectByCatch { /** 只让构件报错。 */ isolatedCrash : true ; } /**
 * 数据转换配置。
 */ export type GeneralTransform = string | TransformMap | TransformItem [ ] ; /**
 * 数据转换表。
 */ export interface TransformMap { [ propName ] : unknown ; } /**
 * 数据转换项。
 */ export interface TransformItem { from ? : string | string [ ] ; to : string | TransformMap ; mapArray ? : boolean | "auto" ; } /**
 * 菜单配置。
 */ export type MenuConf = false | StaticMenuConf | BrickMenuConf | ResolveMenuConf ; /**
 * 静态菜单配置。
 */ export interface StaticMenuConf extends StaticMenuProps { type ? : "static" ; } /**
 * 静态菜单配置信息。
 */ export interface StaticMenuProps { /** 页面标题（显示在浏览器标签栏）。 */ pageTitle ? : string ; /** {@inheritDoc SidebarMenu} */ sidebarMenu ? : SidebarMenu ; /** 引用的菜单 ID。 */ menuId ? : string ; /** 引用的二级菜单 ID。 */ subMenuId ? : string ; /** {@inheritDoc BreadcrumbConf} */ breadcrumb ? : BreadcrumbConf ; internal deprecated injectDeep ? : boolean ; } remarks example export interface BreadcrumbConf { /**
     * 面包屑列表。
     */ items : BreadcrumbItemConf [ ] ; /**
     * 是否覆盖上层路由已有的面包屑列表（默认为追加模式）。
     */ overwrite ? : boolean ; /**
     * 是否显示当前AppName
     * */ noCurrentApp ? : boolean ; } /**
 * 面包屑单项配置。
 */ export interface BreadcrumbItemConf { /** 面包屑文本。 */ text : string ; /** 面包屑对应的链接。 */ to ? : LocationDescriptor < PluginHistoryState > ; } /**
 * 使用构件做数据代理的菜单配置。
 */ export interface BrickMenuConf { type : "brick" ; /** 构件名。 */ brick : string ; deprecated internal injectDeep ? : boolean ; /** {@inheritDoc BrickConf.properties} */ properties ? : Record < string , unknown > ; /** {@inheritDoc BrickEventsMap} */ events ? : BrickEventsMap ; /** {@inheritDoc BrickLifeCycle} */ lifeCycle ? : BrickLifeCycle ; } /**
 * 使用异步数据处理的菜单配置。
 */ export interface ResolveMenuConf { type : "resolve" ; /** {@inheritDoc ResolveConf} */ resolve : ResolveConf ; } remarks example export interface SlotsConf { [ slotName ] : SlotConf ; } /** 插槽配置。 */ export type SlotConf = SlotConfOfBricks | SlotConfOfRoutes ; /** 使用一组构件的插槽配置。 */ export interface SlotConfOfBricks { type : "bricks" ; /** 在插槽中插入的构件列表。 */ bricks : BrickConf [ ] ; } /** 使用一组子路由的插槽配置。 */ export interface SlotConfOfRoutes { type : "routes" ; /** 在插槽中插入的子路由列表。 */ routes : RouteConf [ ] ; } internal export interface SlotsConfOfBricks { [ slotName ] : SlotConfOfBricks ; } internal export type SlotType = "bricks" | "routes" ; remarks export interface BrickEventsMap { [ key ] : BrickEventHandler | BrickEventHandler [ ] ; } /**
 * 事件处理器配置。
 */ export type BrickEventHandler = BuiltinBrickEventHandler | UseProviderEventHandler | CustomBrickEventHandler ; /** 系统内置的事件处理器。 */ export interface BuiltinBrickEventHandler { /** 处理动作名。 */ action : "history.push" | "history.replace" | "history.goBack" | "history.goForward" | "history.reload" | "history.pushQuery" | "history.replaceQuery" | "history.pushAnchor" | "history.block" | "history.unblock" | "segue.push" | "segue.replace" | "alias.push" | "alias.replace" | "localStorage.setItem" | "localStorage.removeItem" | "sessionStorage.setItem" | "sessionStorage.removeItem" | "legacy.go" | "location.reload" | "location.assign" | "window.open" | "event.preventDefault" | "console.log" | "console.error" | "console.warn" | "console.info" | "message.success" | "message.error" | "message.info" | "message.warn" | "handleHttpError" | "context.assign" | "context.replace" | "tpl.dispatchEvent" | "message.subscribe" | "message.unsubscribe" | "theme.setDarkTheme" | "theme.setLightTheme" | "theme.setTheme" | "mode.setDashboardMode" | "mode.setDefaultMode" | "menu.clearMenuTitleCache" | "menu.clearMenuCache" | "analytics.event" ; /** 传递的参数列表 */ args ? : unknown [ ] ; /**
     * 根据条件决定是否执行该动作。
     */ if ? : string | boolean ; /** {@inheritDoc BrickEventHandlerCallback} */ callback ? : BrickEventHandlerCallback ; } /**
 * 使用 Provider 构件进行事件处理的配置。
 */ export interface UseProviderEventHandler { /** {@inheritDoc UseProviderResolveConf.useProvider} */ useProvider : string ; method ? : "resolve" | "saveAs" ; /** {@inheritDoc BuiltinBrickEventHandler.args} */ args ? : unknown [ ] ; /** {@inheritDoc BrickEventHandlerCallback} */ callback ? : BrickEventHandlerCallback ; /** {@inheritDoc ProviderPollOptions} */ poll ? : ProviderPollOptions ; /** {@inheritDoc BuiltinBrickEventHandler.if} */ if ? : string | boolean ; } /**
 * 使用 Provider 进行轮询时的选项配置。
 */ export interface ProviderPollOptions { /** 是否启用轮询。 */ enabled ? : boolean ; /** 每次轮询间隔时间（毫秒），默认为 `3000`。 */ interval ? : number ; /** 第一次轮询延迟时间（毫秒），默认为 `0`。 */ leadingRequestDelay ? : number ; /** 当轮询出现错误时，是否继续轮询。 */ continueOnError ? : boolean ; /** 是否代理系统加载条的显示与隐藏。应配合 `expectPollEnd` 使用。 */ delegateLoadingBar ? : boolean ; /**
     * 提供一个方法以校验轮询是否应该结束。
     * 该方法接收一个参数：当前轮询的执行结果。
     * 轮询结束时将触发 `callback.success` 事件。
     */ expectPollEnd ? : ( result : unknown ) => boolean ; /**
     * 提供一个方法以校验轮询是否应该立即停止，还在等待或进行中的轮询将失效，
     * 不会触发 `progress|success|error|finally` 等事件。
     */ expectPollStopImmediately ? : ( ) => boolean ; } /**
 * 使用指定构件进行事件处理的基本配置。
 */ export interface BaseCustomBrickEventHandler { /**
     * 指定目标构件的 CSS selector。
     */ target ? : string | unknown ; /**
     * 在自定义模板中指定 ref 对应的构件。
     */ targetRef ? : string ; /**
     * 是否使用 `target` 匹配多个构件。
     */ multiple ? : boolean ; /** {@inheritDoc BuiltinBrickEventHandler.if} */ if ? : string | boolean ; } /**
 * 执行指定构件的指定方法的事件处理配置。
 */ export interface ExecuteCustomBrickEventHandler extends BaseCustomBrickEventHandler { /** 指定的方法名。 */ method : string ; /** 传递的参数列表，默认为事件对象。 */ args ? : unknown [ ] ; /** {@inheritDoc BrickEventHandlerCallback} */ callback ? : BrickEventHandlerCallback ; } remarks export interface BrickEventHandlerCallback { /**
     * 事件处理执行成功时要执行的动作。为后续动作传递的事件的 `detail` 为该执行结果。
     */ success ? : BrickEventHandler | BrickEventHandler [ ] ; /**
     * 事件处理执行失败时要执行的动作。为后续动作传递的事件的 `detail` 为该错误对象。
     */ error ? : BrickEventHandler | BrickEventHandler [ ] ; /**
     * 事件处理执行后，无论成功与否，要执行的动作。
     */ finally ? : BrickEventHandler | BrickEventHandler [ ] ; /**
     * 轮询接口时，每次轮询得到结果时要执行的动作。为后续动作传递的事件的 `detail` 为该执行结果。
     */ progress ? : BrickEventHandler | BrickEventHandler [ ] ; } /**
 * 设置指定构件的指定属性的事件处理配置。
 */ export interface SetPropsCustomBrickEventHandler extends BaseCustomBrickEventHandler { /**
     * 要设置的属性表。
     */ properties : Record < string , unknown > ; deprecated internal injectDeep ? : boolean ; } /** 使用指定构件进行事件处理的配置。 */ export type CustomBrickEventHandler = ExecuteCustomBrickEventHandler | SetPropsCustomBrickEventHandler ; internal export interface DesktopData { items : DesktopItem [ ] ; name ? : string ; } internal export interface SiteMapItem { id : string ; name : string ; order : string ; apps : { id ? : string ; sort ? : string ; } [ ] ; } internal export type DesktopItem = DesktopItemApp | DesktopItemDir | DesktopItemCustom ; internal export interface DesktopItemApp { type : "app" ; id : string ; app ? : MicroApp ; } internal export interface DesktopItemDir { type : "dir" ; id : string ; name : string ; items : ( DesktopItemApp | DesktopItemCustom ) [ ] ; } internal export interface DesktopItemCustom { type : "custom" ; id : string ; name : string ; url : string ; } /** 使用 `useBrick` 自行渲染子构件的配置。 */ export type UseBrickConf = UseSingleBrickConf | UseSingleBrickConf [ ] ; /** 使用 `useBrick` 自行渲染子构件的配置（单个）。 */ export interface UseSingleBrickConf { /** 构件名。 */ brick : string ; /** {@inheritDoc BrickConf.properties} */ properties ? : Record < string , unknown > ; /** {@inheritDoc BrickConf.events} */ events ? : BrickEventsMap ; /**
     * 构件生命周期配置。在 `useBrick` 中仅支持 `useResolves`。
     */ lifeCycle ? : Pick < BrickLifeCycle , "useResolves" > ; /** {@inheritDoc BaseEntityResolveConf.transformFrom} */ transformFrom ? : string | string [ ] ; /** {@inheritDoc BaseEntityResolveConf.transform} */ transform ? : GeneralTransform ; /** {@inheritDoc BrickConf.if} */ if ? : string | boolean | ResolveConf ; /** {@inheritDoc UseBrickSlotsConf} */ slots ? : UseBrickSlotsConf ; } /** 在 `useBrick` 中使用的插槽配置表。 */ export interface UseBrickSlotsConf { [ slotName ] : UseBrickSlotConf ; } /** 在 `useBrick` 中使用的插槽配置。 */ export interface UseBrickSlotConf { type ? : "bricks" ; /** 子构件列表。 */ bricks : UseSingleBrickConf [ ] ; } /**
 * 应用的 Storyboard 元信息（包括自定义模板和国际化配置）。
 */ export interface StoryboardMeta { /** 应用定义的自定义模板列表。 */ customTemplates ? : CustomTemplate [ ] ; /** {@inheritDoc MetaI18n} */ i18n ? : MetaI18n ; /** 应用定义的函数列表。 */ functions ? : StoryboardFunction [ ] ; menus ? : MenuRawData [ ] ; /** 应用启用mock服务列表 */ mocks ? : Mocks ; } export interface Mocks { /** mock id */ mockId : string ; /** 使用mock规则列表 */ mockList : MockRule [ ] ; } /**
 * 应用启用mock服务
 */ export interface MockRule { /** uri地址 */ uri : string ; /** provider名称 */ provider : string ; } /**
 * 应用定义的函数。
 */ export interface StoryboardFunction { /** 函数名称。 */ name : string ; /** 函数源码。 */ source : string ; /** 是否使用 TypeScript。 */ typescript ? : boolean ; } example export type MetaI18n = Record < string , Record < string , string > > ; /**
 * 自定义模板配置。
 */ export interface CustomTemplate { /** 自定义模板的名称。 */ name : string ; /** 自定义模板渲染的构件配置列表。 */ bricks : BrickConfInTemplate [ ] ; /** {@inheritDoc CustomTemplateProxy} */ proxy ? : CustomTemplateProxy ; } /**
 * 自定义模板构造声明。
 */ export type CustomTemplateConstructor = Omit < CustomTemplate , "name" > ; /** 自定义模板渲染的构件配置。 */ export type BrickConfInTemplate = Omit < BrickConf , "brick" | "slots" | "template" | "params" > & { /** 构件名。 */ brick : string ; /** 用于在自定义模板内部引用的 ID。 */ ref ? : string ; /** {@inheritDoc SlotsConfInTemplate} */ slots ? : SlotsConfInTemplate ; } ; remarks export interface SlotsConfInTemplate { [ slotName ] : SlotConfInTemplate ; } /** 自定义模板中的构件的插槽配置。 */ export interface SlotConfInTemplate { type : "bricks" ; /** 在插槽中插入的子构件列表。 */ bricks : BrickConfInTemplate [ ] ; } /**
 * 自定义模板的代理配置。
 */ export interface CustomTemplateProxy { /** {@inheritDoc CustomTemplateProxyProperties} */ properties ? : CustomTemplateProxyProperties ; /** {@inheritDoc CustomTemplateProxyEvents} */ events ? : CustomTemplateProxyEvents ; /** {@inheritDoc CustomTemplateProxySlots} */ slots ? : CustomTemplateProxySlots ; /** {@inheritDoc CustomTemplateProxyMethods} */ methods ? : CustomTemplateProxyMethods ; } remarks export interface CustomTemplateProxyProperties { [ name ] : CustomTemplateProxyProperty ; } /** 自定义模板的属性代理配置。 */ export type CustomTemplateProxyProperty = CustomTemplateProxyRefProperty | CustomTemplateProxyVariableProperty ; /** 自定义模板引用内部构件属性的属性代理配置 */ export type CustomTemplateProxyRefProperty = CustomTemplateProxyBasicProperty | CustomTemplateProxyTransformableProperty | CustomTemplateProxyMergeableProperty ; /** 自定义模板的基本属性代理配置。 */ export interface CustomTemplateProxyBasicProperty extends CustomTemplateProxyWithExtra { /** 要代理的构件的属性名。 */ refProperty : string ; } /** 自定义模板的可转换的属性代理配置。 */ export interface CustomTemplateProxyTransformableProperty extends CustomTemplateProxyWithExtra { /** 要代理的构件的属性转换设置。 */ refTransform : GeneralTransform ; } /** 自定义模板的可合并的属性代理配置。 */ export type CustomTemplateProxyMergeableProperty = CustomTemplateProxyMergeablePropertyOfArray | CustomTemplateProxyMergeablePropertyOfObject ; /** 自定义模板的可合并的属性代理配置基类型。 */ export interface CustomTemplateProxyMergeablePropertyBase extends CustomTemplateProxyWithExtra { /** 要合并到的构件的属性名。 */ mergeProperty : string ; } /** 自定义模板的可合并的数组属性代理配置。 */ export interface CustomTemplateProxyMergeablePropertyOfArray extends CustomTemplateProxyMergeablePropertyBase { /** 合并类型。 */ mergeType : "array" ; /** 合并方法。 */ mergeMethod : "append" | "prepend" | "insertAt" ; /** 合并参数。 */ mergeArgs ? : unknown [ ] ; } /** 自定义模板的可合并的对象属性代理配置。 */ export interface CustomTemplateProxyMergeablePropertyOfObject extends CustomTemplateProxyMergeablePropertyBase { /** {@inheritDoc CustomTemplateProxyMergeablePropertyOfArray.mergeType} */ mergeType : "object" ; /** {@inheritDoc CustomTemplateProxyMergeablePropertyOfArray.mergeMethod} */ mergeMethod : "extend" ; } export interface CustomTemplateProxyWithExtra { /** 要代理的构件的引用 ID。 */ ref : string ; /** {@inheritDoc CustomTemplateProxyExtraOneWayRef} */ extraOneWayRefs ? : CustomTemplateProxyExtraOneWayRef [ ] ; } /** 额外的单向（由模板传输给内部构件）属性代理配置。 */ export type CustomTemplateProxyExtraOneWayRef = Omit < CustomTemplateProxyBasicProperty , "extraOneWayRefs" > | Omit < CustomTemplateProxyTransformableProperty , "extraOneWayRefs" > | Omit < CustomTemplateProxyMergeablePropertyOfArray , "extraOneWayRefs" > | Omit < CustomTemplateProxyMergeablePropertyOfObject , "extraOneWayRefs" > ; /** 自定义模板的当作变量供内部构件引用的属性代理配置。 */ export interface CustomTemplateProxyVariableProperty { asVariable : true ; } remarks export interface CustomTemplateProxyEvents { [ name ] : CustomTemplateProxyEvent ; } /**
 * 自定义模板的事件代理配置。
 */ export interface CustomTemplateProxyEvent { /** {@inheritDoc CustomTemplateProxyWithExtra.ref} */ ref : string ; /** 要代理的事件类型名。 */ refEvent : string ; } remarks export interface CustomTemplateProxySlots { [ name ] : CustomTemplateProxySlot ; } /**
 * 自定义模板的插槽代理配置。
 */ export interface CustomTemplateProxySlot { /** {@inheritDoc CustomTemplateProxyWithExtra.ref} */ ref : string ; /** 要代理的插槽名。 */ refSlot : string ; /** 自定义模板的外部声明的子构件将被放置到插槽中的索引位置。 */ refPosition ? : number ; } remarks export interface CustomTemplateProxyMethods { [ name ] : CustomTemplateProxyMethod ; } /**
 * 自定义模板的方法代理配置。
 */ export interface CustomTemplateProxyMethod { /** {@inheritDoc CustomTemplateProxyWithExtra.ref} */ ref : string ; /** 要代理的方法名。 */ refMethod : string ; } internal export interface RefForProxy { brick ? : ProbablyRuntimeBrick ; } internal export interface ProbablyRuntimeBrick { element ? : HTMLElement ; } /**
 * 站点主题。
 */ export type SiteTheme = "light" | "dark" | "dark-v2" ; /**
 * 站点模式。
 */ export type SiteMode = "default" | "dashboard" ; /**
 * 国际化数据，以语言为键、文本内容为值的键值对。
 */ export interface I18nData { [ language ] : string ; }