import { html } from '@skhemata/skhemata-base';
import '../skhemata-form';
import { argTypes, ArgTypes, Story } from './argTypes';
export default {
title: 'General/SkhemataForm/SkhemataFormRepeat',
component: 'skhemata-blog',
argTypes: {
...argTypes,
repeatedFields: {
control: 'Object',
description: 'Array of inputs to be repeated `type` is the type of input to be used. `attributes` is the attributes that are tied to the input to function. `content` is what will be fed into the `` element of the component. This is the list of allowed `types` that correspond to components: `[textbox, textarea, dropdown, dropzone, button, quill, checkbox, toggle]`',
table: {
category: 'HTML Attributes',
type: {
summary: 'object',
detail: JSON.stringify(
[
{
type: 'string',
attributes: 'object',
content: 'string',
}
],
null,
2
),
},
},
},
rowName: {
control: 'text',
description: 'Base title of a new row. Whenever a new row is added, the title will be "rowName" #number',
table: {
category: 'HTML Attributes',
type: 'text',
},
},
addRowButtonText: {
control: 'text',
description: 'Text display for the add row button',
table: {
category: 'HTML Attributes',
type: 'string',
},
},
removeRowButtonText: {
control: 'text',
description: 'Text display for remove row button',
table: {
category: 'HTML Attributes',
type: 'string',
},
},
rowLimit: {
control: 'number',
description: 'Number determining max amount of rows',
table: {
category: 'HTML Attributes',
type: 'number',
},
},
},
};
const defaultArgs = {
repeatedFields: [
{
type: 'toggle',
attributes: {
name: "toggle",
description: "sample toggle",
onText: "ON",
offText:"OFF",
label: 'Toggle',
required: true
}
},
{
type: 'checkbox',
attributes: {
name: "check",
description: "sample checkbox",
onText: "ON",
offText:"OFF",
label: 'Checkbox',
required: true
}
},
{
type: 'dropdown',
attributes: {
name: "dropdown",
description: "sample text",
label: 'dropdown',
required: true,
},
content: ''
}
]
};
const Template: Story = ({ label = 'My Repeater', repeatedFields = defaultArgs.repeatedFields}: ArgTypes) => html`
`;
export const Example = Template.bind({});
Example.args = {
label: 'My Repeater',
repeatedFields: [
{
type: 'toggle',
attributes: {
name: "toggle",
description: "sample toggle",
onText: "ON",
offText:"OFF",
label: 'Toggle',
required: true
}
},
{
type: 'checkbox',
attributes: {
name: "check",
description: "sample checkbox",
onText: "ON",
offText:"OFF",
label: 'Checkbox',
required: true
}
},
{
type: 'dropdown',
attributes: {
name: "dropdown",
description: "sample text",
label: 'dropdown',
required: true,
},
content: ''
}
]
};
Example.parameters = {
docs: {
source: {
code: `
`,
},
},
};