import { storiesOf, moduleMetadata } from '@storybook/angular';
import { action } from '@storybook/addon-actions';
import { withKnobs, text, select, boolean, number } from '@storybook/addon-knobs';
import { ReactiveFormsModule, FormControl } from '@angular/forms';
import { FeiComponentsModule } from '../dist/fei-components';
import { StorybookMetadata } from './util';
import { TooltipPosition } from '../projects/fei-components/src/lib/atoms/tooltip/tooltip.component';
import { PullButtonDirection } from '../projects/fei-components/src/lib/molecules/pull-button/pull-button.component';
import { IconNames } from 'projects/fei-components/src/lib/atoms/icon/icon.component';
const defaultMetadata = {
declarations: [],
imports: [
FeiComponentsModule,
ReactiveFormsModule
]
};
export class MoleculesStories {
static category = 'Molecules';
constructor() {}
importStories(metadata: StorybookMetadata = defaultMetadata) {
storiesOf(`${MoleculesStories.category}/Checkbox Wrapper`, module)
.addDecorator(moduleMetadata(metadata))
.addDecorator(withKnobs)
.add('default', () => ({
template: `
text
`
}));
const tooltipPosition: { [k in TooltipPosition]: TooltipPosition } = {
top: 'top',
right: 'right',
bottom: 'bottom',
left: 'left'
};
storiesOf(`${MoleculesStories.category}/Tooltip Wrapper`, module)
.addDecorator(moduleMetadata(metadata))
.addDecorator(withKnobs)
.add('default', () => ({
template: `
`,
props: {
label: text('label', 'tooltip'),
position: select('position', tooltipPosition, 'top')
}
}));
const pullButtonDirection: { [k in PullButtonDirection]: PullButtonDirection } = {
right: 'right',
left: 'left'
};
storiesOf(`${MoleculesStories.category}/Pull Button`, module)
.addDecorator(moduleMetadata(metadata))
.addDecorator(withKnobs)
.add('default', () => ({
template: `
`,
props: {
direction: select('direction', pullButtonDirection, 'left')
}
}));
storiesOf(`${MoleculesStories.category}/Calendar`, module)
.addDecorator(moduleMetadata(metadata))
.addDecorator(withKnobs)
.add('default', () => ({
template: `
`,
props: {
checkedDateList: [new Date()],
onClickedDate: action('Clicked Date')
}
}));
storiesOf(`${MoleculesStories.category}/Calendar Button`, module)
.addDecorator(moduleMetadata(metadata))
.addDecorator(withKnobs)
.add('default', () => ({
template: `
`,
props: {
date: new Date()
}
}))
.add('label enable', () => ({
template: `
`,
props: {
date: new Date()
}
}));
storiesOf(`${MoleculesStories.category}/Account List Item`, module)
.addDecorator(moduleMetadata(metadata))
.addDecorator(withKnobs)
.add('default', () => ({
template: `
`,
props: {
name: text('name', 'tarou_tanaka'),
img: text('img', 'assets/images/default-account.png')
}
}));
storiesOf(`${MoleculesStories.category}/Dialog`, module)
.addDecorator(moduleMetadata(metadata))
.addDecorator(withKnobs)
.add('default', () => ({
template: `
`,
props: {
open: boolean('open', true)
}
}))
.add('None Header & Footer', () => ({
template: `
`,
props: {
open: boolean('open', true)
}
}));
const iconNames: { [k in IconNames]: IconNames } = {
calendar: 'calendar',
calendarEdit: 'calendarEdit',
close: 'close',
logOut: 'logOut',
timeSpan: 'timeSpan',
users: 'users',
arrow: 'arrow',
arrowTop: 'arrowTop',
arrowBottom: 'arrowBottom',
arrowRight: 'arrowRight',
arrowLeft: 'arrowLeft'
};
storiesOf(`${MoleculesStories.category}/Action Panel Tab`, module)
.addDecorator(moduleMetadata(metadata))
.addDecorator(withKnobs)
.add('default', () => ({
template: `
`,
props: {
icon: select('icon', iconNames, 'users'),
label: text('label', 'icon'),
active: boolean('active', false),
first: boolean('first', false),
last: boolean('last', false)
}
}));
storiesOf(`${MoleculesStories.category}/Action Panel Contents`, module)
.addDecorator(moduleMetadata(metadata))
.addDecorator(withKnobs)
.add('default', () => ({
template: `
`,
props: {
}
}))
.add('None Header & Footer', () => ({
template: `
`,
props: {
}
}));
}
}