var __defProp = Object.defineProperty;
var __getOwnPropSymbols = Object.getOwnPropertySymbols;
var __hasOwnProp = Object.prototype.hasOwnProperty;
var __propIsEnum = Object.prototype.propertyIsEnumerable;
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
var __spreadValues = (a, b) => {
  for (var prop in b || (b = {}))
    if (__hasOwnProp.call(b, prop))
      __defNormalProp(a, prop, b[prop]);
  if (__getOwnPropSymbols)
    for (var prop of __getOwnPropSymbols(b)) {
      if (__propIsEnum.call(b, prop))
        __defNormalProp(a, prop, b[prop]);
    }
  return a;
};
import {
  arrayType,
  boolType,
  funcType,
  objectType,
  oneOf,
  oneOfType,
  stringType,
  vNodeType
} from "@antdv/pro-utils";
function pureSettingProps() {
  return {
    /**
     * @name theme for nav menu
     *
     * @type  'realDark' | 'light' | undefined
     */
    navTheme: oneOf(["light", "realDark"]),
    /**
     * @name layout 的布局方式
     * @type  'side' | 'top' | 'mix'
     *
     * @example 顶部菜单 layout="top"
     * @example 侧边菜单 layout="side"
     * @example 混合布局 既有顶部也有侧边 layout="mix"
     */
    layout: oneOf(["mix", "side", "top"]),
    /** @name layout of content: `Fluid` or `Fixed`, only works when layout is top */
    contentWidth: oneOf(["Fixed", "Fluid"]),
    /** @name sticky header */
    fixedHeader: boolType().def(void 0),
    /** @name sticky siderbar */
    fixSiderbar: boolType().def(void 0),
    /**
     * @name menu 相关的一些配置，可以配置菜单的行为
     *
     * @example 关闭菜单国际化  menu={{ locale: false }}
     * @example 默认打开所有的菜单 menu={{ defaultOpenAll:true }}
     * @example 让菜单处于loading 状态 menu={{ loading: true }}
     * @example 异步加载菜单数据 menu={{params:{ pathname } request: async (params) => { return [{name:"主页",path=params.pathname}]} }}
     * @example 使用 MenuGroup 来聚合菜单 menu={{ mode: 'group' }}
     * @example 取消自动关闭菜单 menu={{ autoClose: false }}
     * @example 忽略收起时自动关闭菜单 menu={{ ignoreFlatMenu: true }}
     */
    menu: objectType(),
    /**
     * 设置为 false，在 layout 中只展示 pageName，而不是 pageName - title
     *
     * @name Layout 的 title，也会显示在浏览器标签上
     */
    title: oneOfType([String, Boolean]).def(void 0),
    /**
     * 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: stringType(),
    /** @name 主色 */
    colorPrimary: stringType(),
    /** @name 全局增加滤镜 */
    colorWeak: boolType(),
    /**
     * 只在 mix 模式下生效
     *
     * @name 切割菜单
     */
    splitMenus: boolType(),
    /**
     * @name 在菜单为空时隐藏Sider
     */
    suppressSiderWhenMenuEmpty: boolType(),
    /**
     * 侧边菜单模式
     */
    siderMenuType: oneOf(["group", "sub"])
  };
}
function globalHeaderProps() {
  return __spreadValues({
    collapsed: boolType(),
    onCollapse: funcType(),
    isMobile: boolType(),
    logo: vNodeType(),
    /**
     * @name 虽然叫menuRender，但是其实是整个 SiderMenu 面板的渲染函数
     *
     * @example 收起时完成不展示菜单 menuRender={(props,defaultDom)=> props.collapsed ? null : defaultDom}
     * @example 不展示菜单 menuRender={false}
     */
    menuRender: oneOfType([Boolean, Function]).def(void 0),
    prefixCls: stringType(),
    /** 相关品牌的列表 */
    appList: arrayType(),
    /** 相关品牌的列表项 点击事件，当事件存在时，appList 内配置的 url 不在自动跳转 */
    itemClick: funcType(),
    menuData: arrayType(),
    onMenuHeaderClick: funcType(),
    menuHeaderRender: oneOfType([Boolean, Function]).def(void 0),
    /**
     * @name 顶部区域的渲染，包含内部的 menu
     *
     * @example headerContentRender={(props) => <div>管理控制台 </div>}
     */
    headerContentRender: oneOfType([Boolean, Function]).def(void 0),
    collapsedButtonRender: oneOfType([Boolean, Function]).def(void 0),
    /** Layout的操作功能列表，不同的 layout 会放到不同的位置 */
    actionsRender: oneOfType([Boolean, Function]).def(void 0),
    /** 头像的设置 */
    avatarProps: oneOfType([Boolean, Object]).def(void 0),
    children: vNodeType()
  }, pureSettingProps());
}
export {
  globalHeaderProps,
  pureSettingProps
};
