1 | import type { MenuDataItem } from '@umijs/route-utils';
|
2 | export type ContentWidth = 'Fluid' | 'Fixed';
|
3 | export type RenderSetting = {
|
4 | headerRender?: false;
|
5 | footerRender?: false;
|
6 | menuRender?: false;
|
7 | menuHeaderRender?: false;
|
8 | };
|
9 | export type PureSettings = {
|
10 | /**
|
11 | * @name theme for nav menu
|
12 | *
|
13 | * @type 'realDark' | 'light' | undefined
|
14 | */
|
15 | navTheme?: 'realDark' | 'light' | undefined;
|
16 | /**
|
17 | * @name layout 的布局方式
|
18 | * @type 'side' | 'top' | 'mix'
|
19 | *
|
20 | * @example 顶部菜单 layout="top"
|
21 | * @example 侧边菜单 layout="side"
|
22 | * @example 混合布局 既有顶部也有侧边 layout="mix"
|
23 | */
|
24 | layout?: 'side' | 'top' | 'mix';
|
25 | /** @name layout of content: `Fluid` or `Fixed`, only works when layout is top */
|
26 | contentWidth?: ContentWidth;
|
27 | /** @name sticky header */
|
28 | fixedHeader?: boolean;
|
29 | /** @name sticky siderbar */
|
30 | fixSiderbar?: boolean;
|
31 | /**
|
32 | * @name menu 相关的一些配置,可以配置菜单的行为
|
33 | *
|
34 | * @example 关闭菜单国际化 menu={{ locale: false }}
|
35 | * @example 默认打开所有的菜单 menu={{ defaultOpenAll:true }}
|
36 | * @example 让菜单处于loading 状态 menu={{ loading: true }}
|
37 | * @example 异步加载菜单数据 menu={{params:{ pathname } request: async (params) => { return [{name:"主页",path=params.pathname}]} }}
|
38 | * @example 使用 MenuGroup 来聚合菜单 menu={{ mode: 'group' }}
|
39 | * @example 取消自动关闭菜单 menu={{ autoClose: false }}
|
40 | * @example 忽略收起时自动关闭菜单 menu={{ ignoreFlatMenu: true }}
|
41 | */
|
42 | menu?: {
|
43 | /**
|
44 | * @name 菜单国际化的配置
|
45 | */
|
46 | locale?: boolean;
|
47 | hideMenuWhenCollapsed?: boolean;
|
48 | /**
|
49 | * 收起时也展示标题
|
50 | */
|
51 | collapsedShowTitle?: boolean;
|
52 | /**
|
53 | * 收起时也展示 分组菜单的标题
|
54 | */
|
55 | collapsedShowGroupTitle?: boolean;
|
56 | /**
|
57 | * @name 默认打开所有的菜单
|
58 | */
|
59 | defaultOpenAll?: boolean;
|
60 | /**
|
61 | * @name 是否忽略用户手动折叠过的菜单状态,如选择忽略,折叠按钮切换之后也可实现展开所有菜单
|
62 | */
|
63 | ignoreFlatMenu?: boolean;
|
64 | /**
|
65 | * @name 菜单的 loading 配置
|
66 | */
|
67 | loading?: boolean;
|
68 | /**
|
69 | * @name 菜单的 loading 发生改变
|
70 | */
|
71 | onLoadingChange?: (loading?: boolean) => void;
|
72 | /**
|
73 | * @name 菜单远程请求时用的参数,只有 params 变化才会重新触发 request
|
74 | *
|
75 | */
|
76 | params?: Record<string, any>;
|
77 | /**
|
78 | * @name 菜单远程请求的方法,只有 params 变化才会重新触发 request
|
79 | */
|
80 | request?: (params: Record<string, any>, defaultMenuData: MenuDataItem[]) => Promise<MenuDataItem[]>;
|
81 | /**
|
82 | * @name 菜单聚合的模式
|
83 | */
|
84 | type?: 'sub' | 'group';
|
85 | /**
|
86 | * @name 取消自动关闭菜单
|
87 | */
|
88 | autoClose?: false;
|
89 | };
|
90 | /**
|
91 | * 设置为 false,在 layout 中只展示 pageName,而不是 pageName - title
|
92 | *
|
93 | * @name Layout 的 title,也会显示在浏览器标签上
|
94 | */
|
95 | title?: string | false;
|
96 | /**
|
97 | * Your custom iconfont Symbol script Url eg://at.alicdn.com/t/font_1039637_btcrd5co4w.js
|
98 | * 注意:如果需要图标多色,Iconfont 图标项目里要进行批量去色处理 Usage: https://github.com/ant-design/ant-design-pro/pull/3517
|
99 | */
|
100 | iconfontUrl?: string;
|
101 | /** @name 主色,需要配合 umi 使用 */
|
102 | colorPrimary?: string;
|
103 | /** @name 全局增加滤镜 */
|
104 | colorWeak?: boolean;
|
105 | /**
|
106 | * 只在 mix 模式下生效
|
107 | *
|
108 | * @name 切割菜单
|
109 | */
|
110 | splitMenus?: boolean;
|
111 | /**
|
112 | * @name 在菜单为空时隐藏Sider
|
113 | */
|
114 | suppressSiderWhenMenuEmpty?: boolean;
|
115 | /**
|
116 | * 侧边菜单模式
|
117 | */
|
118 | siderMenuType?: 'sub' | 'group';
|
119 | };
|
120 | export type ProSettings = PureSettings & RenderSetting;
|
121 | declare const defaultSettings: ProSettings;
|
122 | export { defaultSettings };
|