import type { PropType, ExtractPropTypes } from 'vue'; import type { Theme, ContentWidth } from './typings'; export interface RenderSetting { headerRender?: false; menuRender?: false; menuHeaderRender?: false; } export interface DefaultSettingProps { theme?: Theme; /** * 自定义页眉高度 */ headerHeight?: number; /** * */ layout: 'side' | 'top' | 'mix'; contentWidth: ContentWidth; /** * sticky header */ fixedHeader: boolean; /** * sticky siderbar */ fixSiderbar: boolean; menu: { locale?: boolean; defaultOpenAll?: boolean }; title: string; // Your custom iconfont Symbol script Url // eg://at.alicdn.com/t/font_1039637_btcrd5co4w.js // 注意:如果需要图标多色,Iconfont 图标项目里要进行批量去色处理 // Usage: https://github.com/ant-design/ant-design-pro/pull/3517 iconfontUrl: string; primaryColor: string; colorWeak?: boolean; splitMenus?: boolean; } export type ProSettings = DefaultSettingProps & RenderSetting; export const defaultSettings = { theme: 'light', layout: 'mix', contentWidth: 'Fluid', fixedHeader: true, fixSiderbar: true, menu: { locale: true, }, headerHeight: 48, title: 'Jetlink UI Components', iconfontUrl: '', primaryColor: '#315EFB', }; export const defaultSettingProps = { theme: { type: String as PropType, default: defaultSettings.theme, }, layout: { type: String as PropType, default: defaultSettings.layout, }, contentWidth: { type: String as PropType, default: defaultSettings.contentWidth, }, fixedHeader: { type: Boolean as PropType, default: defaultSettings.fixedHeader, }, fixSiderbar: { type: Boolean as PropType, default: defaultSettings.fixSiderbar, }, menu: { type: Object as PropType, default: () => { return { locale: true, }; }, }, headerHeight: { type: Number as PropType, default: defaultSettings.headerHeight, }, title: { type: String as PropType, default: () => defaultSettings.title, }, iconfontUrl: { type: String as PropType, default: () => defaultSettings.iconfontUrl, }, primaryColor: { type: String as PropType, default: () => defaultSettings.primaryColor, }, }; export type ProSettingsProps = ExtractPropTypes;