{"version":3,"file":"button.mjs","sources":["../../../../../../packages/components/button/src/button.ts"],"sourcesContent":["import { buildProps, definePropType } from '@ll-plus/utils'\r\n\r\nimport type { SizeType } from 'ant-design-vue/es/config-provider'\r\n\r\nimport type { IconProps } from '@ll-plus/components'\r\nimport type { ExtractPropTypes } from 'vue'\r\nimport type ButtonGroup from './button-group.vue'\r\nimport type Button from './button.vue'\r\n\r\nexport const mode = ['compact', 'loose'] as const\r\n\r\ntype TriggerType = 'click' | 'hover' | 'contextmenu'\r\ntype ShapeType = 'default' | 'circle' | 'round'\r\n\r\nexport const buttonProps = buildProps({\r\n  // 按钮类型\r\n  type: {\r\n    type: String,\r\n    default: 'default',\r\n  },\r\n\r\n  // 是否禁用\r\n  disabled: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n\r\n  // 按钮文本\r\n  label: {\r\n    type: String,\r\n  },\r\n\r\n  //  图标信息\r\n  icon: {\r\n    type: definePropType<IconProps>(Object),\r\n    default: () => ({\r\n      iconName: '',\r\n      color: '',\r\n      size: '',\r\n    }),\r\n  },\r\n\r\n  // 图标方位\r\n  iconDirection: {\r\n    type: String,\r\n    default: 'left',\r\n  },\r\n\r\n  // 图标和文字间距\r\n  iconSpace: {\r\n    type: Number,\r\n    default: 8,\r\n  },\r\n\r\n  // 是否为灰色类型\r\n  isGray: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n\r\n  // 是否为独占一行\r\n  isBlock: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n\r\n  // 是否显示（用于按钮组）\r\n  accessControl: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n\r\n  // 使用自定义样式\r\n  useCustomStyle: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n\r\n  // 自定义背景\r\n  bgColor: {\r\n    type: String,\r\n  },\r\n\r\n  // 自定义文本色\r\n  color: {\r\n    type: String,\r\n  },\r\n\r\n  // 自定义悬浮背景\r\n  hoverBgColor: {\r\n    type: String,\r\n  },\r\n\r\n  // 自定义悬浮文本色\r\n  hoverColor: {\r\n    type: String,\r\n  },\r\n} as const)\r\n\r\n// 按钮组属性\r\nexport const buttonGroupProps = buildProps({\r\n  // 数据配置\r\n  items: {\r\n    type: definePropType<ButtonProps[]>(Array),\r\n    required: true,\r\n    default: () => [] as ButtonProps[],\r\n  },\r\n\r\n  // 紧凑模式 / 宽松模式\r\n  mode: {\r\n    type: String,\r\n    values: mode,\r\n    default: 'compact',\r\n  },\r\n\r\n  // 最多显示按钮数量\r\n  maxCount: {\r\n    type: Number,\r\n    default: 0,\r\n  },\r\n\r\n  // 按钮尺寸\r\n  size: {\r\n    type: String as () => SizeType,\r\n  },\r\n\r\n  // 图标和文字间距\r\n  iconSpace: {\r\n    type: Number,\r\n    default: 4,\r\n  },\r\n\r\n  // 更多文字\r\n  moreText: {\r\n    type: String,\r\n    default: '',\r\n  },\r\n\r\n  // 更多按钮形状\r\n  moreShape: {\r\n    type: String as () => ShapeType,\r\n    default: 'default',\r\n  },\r\n\r\n  // 更多按钮类型\r\n  moreType: {\r\n    type: String,\r\n    default: 'default',\r\n  },\r\n\r\n  // 更多按钮图标方位\r\n  moreIconDirection: {\r\n    type: String,\r\n    default: 'left',\r\n  },\r\n\r\n  // 更多下拉触发方式\r\n  moreTrigger: {\r\n    type: Array as () => TriggerType[],\r\n    default: () => ['click'],\r\n  },\r\n\r\n  // 按钮图标\r\n  moreIcon: {\r\n    type: String,\r\n    default: 'icon-more',\r\n  },\r\n\r\n  // 是否全部禁用\r\n  disabled: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n\r\n  // 是否为幽灵按钮\r\n  ghost: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n\r\n  // 间距大小\r\n  spaceSize: {\r\n    type: Number,\r\n    default: 8,\r\n  },\r\n\r\n  // 按钮形状\r\n  shape: {\r\n    type: String as () => ShapeType,\r\n    default: 'default',\r\n  },\r\n\r\n  // 是否为无边框模式 ,仅紧凑型生效\r\n  noBorder: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n\r\n  // 可视区文本以文字提示方式展示\r\n  useTip: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n\r\n  // 是否显示文字提示（权重比useTip大）\r\n  showTip: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n\r\n  // 文字提示是否为白色背景\r\n  isWhiteBg: {\r\n    type: Boolean,\r\n    default: true,\r\n  },\r\n\r\n  // 文字提示是否显示箭头\r\n  arrow: {\r\n    type: Boolean,\r\n    default: false,\r\n  },\r\n} as const)\r\n\r\n// props\r\nexport type ButtonProps = ExtractPropTypes<typeof buttonProps>\r\nexport type ButtonGroupProps = ExtractPropTypes<typeof buttonGroupProps>\r\n\r\n// instance\r\nexport type ButtonInstance = InstanceType<typeof Button>\r\nexport type ButtonGroupInstance = InstanceType<typeof ButtonGroup>\r\n"],"names":[],"mappings":"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"}