import { upperFirst } from 'lodash/string';
import { ApiEntity } from '@/views/entity/demoentity';
import Button from '@/components/button/src/Button.vue';
import ButtonGroup from '@/components/button/src/ButtonGroup.vue';
const sizes = ['large', '', 'small'];
const types = ['', 'border', 'danger'];
const renderCode = (type: string): string => `${sizes.reduce(
(acc: string, size: string, index: number): string =>
`${acc}${index < 1 ? '\n' : ''} ${upperFirst(size)}${index < types.length - 1 ? '\n' : ''}`,
''
)}
`;
const base: ApiEntity = {
title: '按钮组合',
desc:
'通过按钮组的 v-model 和按钮的 value 进行配合。 dashed 不支持组合按钮。',
code: types.reduce(
(acc: string, type: string, index: number) =>
`${acc}${renderCode(type)}${index < types.length - 1 ? '\n' : ''}`,
''
),
render: (createElement: Function) =>
createElement(
'div',
{
class: 'demo-demo',
},
[
// 主色 start
createElement(ButtonGroup, [
sizes.map((size: string, index: number) =>
createElement(
Button,
{
key: index,
},
[upperFirst(size) || 'Default']
)
),
]),
// 主色 end
createElement('br'),
// border start
createElement(ButtonGroup, [
sizes.map((size: string, index: number) =>
createElement(
Button,
{
props: {
type: 'border',
},
key: index,
},
[upperFirst(size) || 'Default']
)
),
]),
// border end
createElement('br'),
// danger start
createElement(ButtonGroup, [
sizes.map((size: string, index: number) =>
createElement(
Button,
{
props: {
type: 'danger',
},
key: index,
},
[upperFirst(size) || 'Default']
)
),
]),
// danger end
]
),
};
export default base;