1
1
<script >
2
- import { Meta , Template , Story } from ' @storybook/addon-svelte-csf'
2
+ import { Meta , Story } from ' @storybook/addon-svelte-csf'
3
3
import { Datatable , isAboveMobile , isAboveTablet , Progress } from ' ../components/mdc'
4
- import { copyAndModifyArgs } from ' ./helpers.js'
5
4
import { onMount } from ' svelte'
6
5
7
6
const args = {
8
7
class: ' ' , // only works for global classes
9
- onSorted : () => {},
10
- clickable: false ,
8
+ ' on:sorted ' : (e ) => alert (' you sorted the table' ),
9
+ ' on:selectedAll ' : (e ) => alert (' you selected all rows' ),
10
+ ' on:unselectedAll ' : (e ) => alert (' you unselected all rows' ),
11
+ ' on:rowSelectionChanged ' : (e ) => alert (` row ${ e .detail .rowId } was ${ e .detail .selected ? ' selected' : ' unselected' } ` ),
12
+ ' on:click ' : (e ) => alert (` you clicked on row ${ e .detail } ` ),
11
13
}
12
14
13
15
let loaded = false
@@ -19,10 +21,23 @@ onMount(() =>
19
21
)
20
22
</script >
21
23
22
- <Meta title ="Molecule/Datatable" component ={Datatable } />
24
+ <Meta
25
+ title =" Molecule/Datatable"
26
+ component ={Datatable }
27
+ argTypes ={{
28
+ label : { control : ' text' },
29
+ clickable : { control : ' boolean' },
30
+ }}
31
+ />
23
32
24
- <Template let:args >
25
- <Datatable {...args } on:sorted ={args .onSorted }>
33
+ <Story name ="Default" {args }>
34
+ <Datatable
35
+ class ={args .class }
36
+ on:sorted ={args [' on:sorted' ]}
37
+ on:rowSelectionChanged ={args [' on:rowSelectionChanged' ]}
38
+ on:unselectedAll ={args [' on:unselectedAll' ]}
39
+ on:selectedAll ={args [' on:selectedAll' ]}
40
+ >
26
41
<Datatable .Header >
27
42
<Datatable .Header .Item class ={isAboveTablet () ? ' w-50' : ' ' }>Name</Datatable .Header .Item >
28
43
<Datatable .Header .Item >Date</Datatable .Header .Item >
@@ -51,10 +66,117 @@ onMount(() =>
51
66
</Datatable .Data .Row >
52
67
</Datatable .Data >
53
68
</Datatable >
54
- </Template >
69
+ </Story >
55
70
56
- <Story name ="Default" {args } />
71
+ <Story name ="Checkbox" {args }>
72
+ <Datatable
73
+ class ={args .class }
74
+ on:sorted ={args [' on:sorted' ]}
75
+ on:rowSelectionChanged ={args [' on:rowSelectionChanged' ]}
76
+ on:unselectedAll ={args [' on:unselectedAll' ]}
77
+ on:selectedAll ={args [' on:selectedAll' ]}
78
+ >
79
+ <Datatable .Header >
80
+ <Datatable .Header .Checkbox />
81
+ <Datatable .Header .Item class ={isAboveTablet () ? ' w-50' : ' ' }>Name</Datatable .Header .Item >
82
+ <Datatable .Header .Item >Date</Datatable .Header .Item >
83
+ </Datatable .Header >
57
84
58
- <Story name ="Label" args ={copyAndModifyArgs (args , { label: ' label' })} />
85
+ <Datatable .Data >
86
+ <Datatable .Data .Row clickable ={args .clickable }>
87
+ <Datatable .Checkbox />
88
+ <Datatable .Data .Row .Item >item</Datatable .Data .Row .Item >
89
+ <Datatable .Data .Row .Item >today</Datatable .Data .Row .Item >
90
+ </Datatable .Data .Row >
59
91
60
- <Story name ="Clickable row" args ={copyAndModifyArgs (args , { clickable: ' true' })} />
92
+ <Datatable .Data .Row >
93
+ <Datatable .Checkbox />
94
+ <Datatable .Data .Row .Item >item2</Datatable .Data .Row .Item >
95
+ <Datatable .Data .Row .Item >tomorrow</Datatable .Data .Row .Item >
96
+ </Datatable .Data .Row >
97
+
98
+ <Datatable .Data .Row >
99
+ <Datatable .Checkbox />
100
+ <Datatable .Data .Row .Item colspan ={isAboveMobile () ? 6 : 2 }>
101
+ {#if loaded }
102
+ Done loading
103
+ {:else }
104
+ Loading...
105
+ <Progress .Linear barColorProvided ={false } indeterminate />
106
+ {/if }
107
+ </Datatable .Data .Row .Item >
108
+ </Datatable .Data .Row >
109
+ </Datatable .Data >
110
+ </Datatable >
111
+ </Story >
112
+
113
+ <Story name =" Label" >
114
+ <Datatable
115
+ class ={args .class }
116
+ label ={' Label' }
117
+ on:sorted ={args [' on:sorted' ]}
118
+ on:rowSelectionChanged ={args [' on:rowSelectionChanged' ]}
119
+ on:unselectedAll ={args [' on:unselectedAll' ]}
120
+ on:selectedAll ={args [' on:selectedAll' ]}
121
+ >
122
+ <Datatable .Header >
123
+ <Datatable .Header .Item class ={isAboveTablet () ? ' w-50' : ' ' }>Name</Datatable .Header .Item >
124
+ <Datatable .Header .Item >Date</Datatable .Header .Item >
125
+ </Datatable .Header >
126
+
127
+ <Datatable .Data >
128
+ <Datatable .Data .Row clickable ={args .clickable }>
129
+ <Datatable .Data .Row .Item >item</Datatable .Data .Row .Item >
130
+ <Datatable .Data .Row .Item >today</Datatable .Data .Row .Item >
131
+ </Datatable .Data .Row >
132
+
133
+ <Datatable .Data .Row >
134
+ <Datatable .Data .Row .Item >item2</Datatable .Data .Row .Item >
135
+ <Datatable .Data .Row .Item >tomorrow</Datatable .Data .Row .Item >
136
+ </Datatable .Data .Row >
137
+
138
+ <Datatable .Data .Row >
139
+ <Datatable .Data .Row .Item colspan ={isAboveMobile () ? 6 : 2 }>
140
+ {#if loaded }
141
+ Done loading
142
+ {:else }
143
+ Loading...
144
+ <Progress .Linear barColorProvided ={false } indeterminate />
145
+ {/if }
146
+ </Datatable .Data .Row .Item >
147
+ </Datatable .Data .Row >
148
+ </Datatable .Data >
149
+ </Datatable >
150
+ </Story >
151
+
152
+ <Story name =" Clickable row" >
153
+ <Datatable class ={args .class } on:sorted ={args [' on:sorted' ]}>
154
+ <Datatable .Header >
155
+ <Datatable .Header .Item class ={isAboveTablet () ? ' w-50' : ' ' }>Name</Datatable .Header .Item >
156
+ <Datatable .Header .Item >Date</Datatable .Header .Item >
157
+ </Datatable .Header >
158
+
159
+ <Datatable .Data >
160
+ <Datatable .Data .Row on:click ={args [' on:click' ]} clickable =" true}" >
161
+ <Datatable .Data .Row .Item >item</Datatable .Data .Row .Item >
162
+ <Datatable .Data .Row .Item >today</Datatable .Data .Row .Item >
163
+ </Datatable .Data .Row >
164
+
165
+ <Datatable .Data .Row on:click ={args [' on:click' ]} clickable =" true}" >
166
+ <Datatable .Data .Row .Item >item2</Datatable .Data .Row .Item >
167
+ <Datatable .Data .Row .Item >tomorrow</Datatable .Data .Row .Item >
168
+ </Datatable .Data .Row >
169
+
170
+ <Datatable .Data .Row on:click ={args [' on:click' ]} clickable =" true}" >
171
+ <Datatable .Data .Row .Item colspan ={isAboveMobile () ? 6 : 2 }>
172
+ {#if loaded }
173
+ Done loading
174
+ {:else }
175
+ Loading...
176
+ <Progress .Linear barColorProvided ={false } indeterminate />
177
+ {/if }
178
+ </Datatable .Data .Row .Item >
179
+ </Datatable .Data .Row >
180
+ </Datatable .Data >
181
+ </Datatable >
182
+ </Story >
0 commit comments