import type { IComponentPrototype } from "@xirang/studio-helpers";
import { StylePrototypes } from "./common";
export const Menu: IComponentPrototype = {
name: "Menu",
title: "导航菜单",
package: "@xirang/design-antd",
icon: "icon-daohangcaidan",
type: "element",
help: "为页面和功能提供导航的菜单列表,一般分为顶部导航和侧边导航",
hasChildren: true,
childrenName: "MenuItem",
initChildren:
'',
relatedImports: ["MenuItem"],
props: [
...StylePrototypes,
{
name: "defaultOpenKeys",
title: "默认展开项key",
setter: "expressionSetter",
},
{
name: "defaultSelectedKeys",
title: "默认选中项key",
setter: "expressionSetter",
},
{ name: "expandIcon", title: "自定义展开图标", setter: "iconSetter" },
{
name: "forceSubMenuRender",
title: "强制渲染",
tip: "在子菜单展示之前就渲染进 DOM",
setter: "boolSetter",
},
{
name: "inlineCollapsed",
title: "inline菜单收起状态",
setter: "boolSetter",
},
{
name: "inlineIndent",
title: "inline菜单缩进宽度",
setter: "numberSetter",
},
{
name: "mode",
title: "菜单类型",
setter: "pickerSetter",
setterProps: {
options: [
{ label: "vertical", value: "vertical" },
{ label: "horizontal", value: "horizontal" },
{ label: "inline", value: "inline" },
],
},
},
{
name: "multiple",
title: "允许多选",
setter: "boolSetter",
},
{
name: "openKeys",
title: "当前展开菜单项",
setter: "expressionSetter",
},
{
name: "overflowedIndicator",
title: "折叠图标",
setter: "expressionSetter",
},
{
name: "selectable",
title: "允许选中",
setter: "boolSetter",
},
{
name: "selectedKeys",
title: "当前选中菜单key",
setter: "expressionSetter",
},
{
name: "subMenuCloseDelay",
title: "关闭延时",
tip: "用户鼠标离开子菜单后关闭延时,单位:秒",
setter: "numberSetter",
},
{
name: "subMenuOpenDelay",
title: "开启延时",
tip: "用户鼠标进入子菜单后开启延时,单位:秒",
setter: "numberSetter",
},
{
name: "theme",
title: "主题颜色",
setter: "pickerSetter",
setterProps: {
options: [
{ label: "light", value: "light" },
{ label: "dark", value: "dark" },
],
},
},
{
name: "triggerSubMenuAction",
title: "菜单展开/关闭的触发行为",
setter: "pickerSetter",
setterProps: {
options: [
{ label: "hover", value: "hover" },
{ label: "click", value: "click" },
],
},
},
{
name: "onClick",
title: "点击事件",
setter: "actionSetter",
group: "event",
},
{
name: "onDeselect",
title: "取消选中事件",
tip: "仅在 multiple 生效",
setter: "actionSetter",
group: "event",
},
{
name: "onOpenChange",
title: "展开/关闭事件",
setter: "actionSetter",
group: "event",
},
{
name: "onSelect",
title: "选中事件",
setter: "actionSetter",
group: "event",
},
],
};
export const MenuItem: IComponentPrototype = {
name: "MenuItem",
title: "导航菜单",
package: "@xirang/design-antd",
icon: "",
type: "element",
props: [
...StylePrototypes,
{
name: "danger",
title: "展示错误状态样式",
setter: "boolSetter",
},
{
name: "disabled",
title: "是否禁用",
setter: "boolSetter",
},
{ name: "icon", title: "菜单图标", setter: "iconSetter" },
{ name: "key", title: "item key", setter: "textSetter" },
{
name: "title",
title: "收缩悬时浮标题",
setter: "textSetter",
},
],
};
export const MenuSubMenu: IComponentPrototype = {
name: "MenuSubMenu",
title: "导航菜单",
package: "@xirang/design-antd",
icon: "",
type: "element",
props: [
...StylePrototypes,
{
name: "children",
title: "子菜单的菜单项",
setter: "expressionSetter",
},
{
name: "disabled",
title: "是否禁用",
setter: "boolSetter",
},
{ name: "icon", title: "菜单图标", setter: "expressionSetter" },
{ name: "key", title: "唯一标志", setter: "textSetter" },
{
name: "popupClassName",
title: "子菜单样式",
tip: 'mode="inline" 时无效',
setter: "textSetter",
},
{
name: "popupOffset",
title: "子菜单偏移量",
tip: 'mode="inline" 时无效',
setter: "expressionSetter",
},
{ name: "title", title: "子菜单项值", setter: "expressionSetter" },
{
name: "onTitleClick",
title: "点击子菜单标题",
setter: "actionSetter",
group: "event",
},
],
};
export const MenuItemGroup: IComponentPrototype = {
name: "MenuItemGroup",
title: "导航菜单",
package: "@xirang/design-antd",
icon: "",
type: "element",
props: [
...StylePrototypes,
{ name: "children", title: "分组的菜单项", setter: "expressionSetter" },
{ name: "title", title: "分组标题", setter: "expressionSetter" },
],
};
export const MenuDivider: IComponentPrototype = {
name: "MenuDivider",
title: "导航菜单",
package: "@xirang/design-antd",
icon: "",
type: "element",
props: [
...StylePrototypes,
{
name: "dashed",
title: "是否虚线",
setter: "boolSetter",
},
],
};