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: `

Dialog Title

dialog contents

`, props: { open: boolean('open', true) } })) .add('None Header & Footer', () => ({ template: `

dialog contents

`, 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: `

contents

`, props: { } })) .add('None Header & Footer', () => ({ template: `

contents

`, props: { } })); } }