@operato/data-grist 7.1.31 → 7.1.32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (173) hide show
  1. package/CHANGELOG.md +10 -0
  2. package/dist/tsconfig.tsbuildinfo +1 -1
  3. package/package.json +10 -10
  4. package/.storybook/main.js +0 -3
  5. package/.storybook/preview.js +0 -52
  6. package/.storybook/server.mjs +0 -8
  7. package/demo/data-grist-test.html +0 -468
  8. package/demo/favicon.ico +0 -0
  9. package/demo/index.html +0 -541
  10. package/demo/report-test.html +0 -249
  11. package/dist/src/record-view/record-creator.d.ts +0 -17
  12. package/dist/src/record-view/record-creator.js +0 -148
  13. package/dist/src/record-view/record-creator.js.map +0 -1
  14. package/src/accumulator/accumulator.ts +0 -63
  15. package/src/configure/column-builder.ts +0 -114
  16. package/src/configure/config-builder.ts +0 -40
  17. package/src/configure/filters-option-builder.ts +0 -8
  18. package/src/configure/imex-option-builder.ts +0 -5
  19. package/src/configure/list-option-builder.ts +0 -9
  20. package/src/configure/rows-option-builder.ts +0 -38
  21. package/src/configure/tree-option-builder.ts +0 -22
  22. package/src/configure/zero-config.ts +0 -83
  23. package/src/const.ts +0 -1
  24. package/src/data-card/data-card-field.ts +0 -94
  25. package/src/data-card/data-card-gutter-menu.ts +0 -94
  26. package/src/data-card/data-card-gutter.ts +0 -103
  27. package/src/data-card/data-card.ts +0 -154
  28. package/src/data-card/event-handlers/record-card-click-handler.ts +0 -34
  29. package/src/data-card/event-handlers/record-card-dblclick-handler.ts +0 -34
  30. package/src/data-card/record-card.ts +0 -289
  31. package/src/data-consumer.ts +0 -11
  32. package/src/data-grid/data-grid-accum-field.ts +0 -109
  33. package/src/data-grid/data-grid-body-style.ts +0 -99
  34. package/src/data-grid/data-grid-body.ts +0 -753
  35. package/src/data-grid/data-grid-field.ts +0 -236
  36. package/src/data-grid/data-grid-footer.ts +0 -117
  37. package/src/data-grid/data-grid-header.ts +0 -574
  38. package/src/data-grid/data-grid.ts +0 -293
  39. package/src/data-grid/event-handlers/data-grid-body-click-handler.ts +0 -69
  40. package/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.ts +0 -32
  41. package/src/data-grid/event-handlers/data-grid-body-dblclick-handler.ts +0 -42
  42. package/src/data-grid/event-handlers/data-grid-body-focus-change-handler.ts +0 -24
  43. package/src/data-grid/event-handlers/data-grid-body-keydown-handler.ts +0 -234
  44. package/src/data-grist.ts +0 -1233
  45. package/src/data-list/data-list-field.ts +0 -82
  46. package/src/data-list/data-list-gutter.ts +0 -108
  47. package/src/data-list/data-list.ts +0 -145
  48. package/src/data-list/event-handlers/record-partial-click-handler.ts +0 -34
  49. package/src/data-list/event-handlers/record-partial-dblclick-handler.ts +0 -33
  50. package/src/data-list/event-handlers/record-partial-long-press-handler.ts +0 -33
  51. package/src/data-list/record-partial.ts +0 -255
  52. package/src/data-manipulator.ts +0 -426
  53. package/src/data-provider.ts +0 -271
  54. package/src/data-report/data-report-body-style.ts +0 -58
  55. package/src/data-report/data-report-body.ts +0 -189
  56. package/src/data-report/data-report-component.ts +0 -138
  57. package/src/data-report/data-report-field.ts +0 -83
  58. package/src/data-report/data-report-header.ts +0 -242
  59. package/src/data-report/event-handlers/data-report-body-click-handler.ts +0 -38
  60. package/src/data-report/event-handlers/data-report-body-dblclick-handler.ts +0 -25
  61. package/src/data-report/event-handlers/data-report-body-keydown-handler.ts +0 -68
  62. package/src/data-report.ts +0 -424
  63. package/src/editors/index.ts +0 -4
  64. package/src/editors/ox-grist-editor-checkbox.ts +0 -28
  65. package/src/editors/ox-grist-editor-color.ts +0 -10
  66. package/src/editors/ox-grist-editor-date.ts +0 -10
  67. package/src/editors/ox-grist-editor-datetime.ts +0 -27
  68. package/src/editors/ox-grist-editor-email.ts +0 -10
  69. package/src/editors/ox-grist-editor-file.ts +0 -28
  70. package/src/editors/ox-grist-editor-image.ts +0 -31
  71. package/src/editors/ox-grist-editor-month.ts +0 -10
  72. package/src/editors/ox-grist-editor-multiple-select.ts +0 -57
  73. package/src/editors/ox-grist-editor-number.ts +0 -27
  74. package/src/editors/ox-grist-editor-password.ts +0 -10
  75. package/src/editors/ox-grist-editor-select.ts +0 -55
  76. package/src/editors/ox-grist-editor-tel.ts +0 -10
  77. package/src/editors/ox-grist-editor-text.ts +0 -14
  78. package/src/editors/ox-grist-editor-textarea.ts +0 -16
  79. package/src/editors/ox-grist-editor-time.ts +0 -10
  80. package/src/editors/ox-grist-editor-tree.ts +0 -27
  81. package/src/editors/ox-grist-editor-varname.ts +0 -36
  82. package/src/editors/ox-grist-editor-week.ts +0 -10
  83. package/src/editors/ox-grist-editor.ts +0 -207
  84. package/src/editors/ox-input-tree.ts +0 -226
  85. package/src/editors/registry.ts +0 -82
  86. package/src/empty-note.ts +0 -46
  87. package/src/filters/filter-checkbox.ts +0 -49
  88. package/src/filters/filter-input-barcode.ts +0 -34
  89. package/src/filters/filter-input.ts +0 -30
  90. package/src/filters/filter-range-date.ts +0 -81
  91. package/src/filters/filter-range-number.ts +0 -64
  92. package/src/filters/filter-select-buttons.ts +0 -60
  93. package/src/filters/filter-select.ts +0 -68
  94. package/src/filters/filter-styles.ts +0 -119
  95. package/src/filters/filters-form.ts +0 -476
  96. package/src/filters/index.ts +0 -10
  97. package/src/filters/registry.ts +0 -56
  98. package/src/formatters/date-formatter.ts +0 -3
  99. package/src/formatters/index.ts +0 -1
  100. package/src/formatters/number-formatter.ts +0 -3
  101. package/src/formatters/registry.ts +0 -30
  102. package/src/formatters/text-formatter.ts +0 -3
  103. package/src/gutters/gutter-button.ts +0 -51
  104. package/src/gutters/gutter-dirty.ts +0 -96
  105. package/src/gutters/gutter-row-selector.ts +0 -89
  106. package/src/gutters/gutter-sequence.ts +0 -54
  107. package/src/gutters/index.ts +0 -1
  108. package/src/gutters/registry.ts +0 -32
  109. package/src/handlers/contextmenu-tree-mutation.ts +0 -80
  110. package/src/handlers/index.ts +0 -1
  111. package/src/handlers/move-down.ts +0 -44
  112. package/src/handlers/move-up.ts +0 -44
  113. package/src/handlers/record-copy.ts +0 -38
  114. package/src/handlers/record-delete.ts +0 -30
  115. package/src/handlers/record-view-handler.ts +0 -27
  116. package/src/handlers/registry.ts +0 -42
  117. package/src/handlers/select-row-toggle.ts +0 -30
  118. package/src/handlers/select-row.ts +0 -27
  119. package/src/index.ts +0 -17
  120. package/src/personalizer/index.ts +0 -1
  121. package/src/personalizer/ox-grist-filter-personalizer.ts +0 -192
  122. package/src/personalizer/ox-grist-personalizer.ts +0 -226
  123. package/src/record-view/event-handlers/record-view-body-click-handler.ts +0 -33
  124. package/src/record-view/event-handlers/record-view-body-keydown-handler.ts +0 -26
  125. package/src/record-view/index.ts +0 -2
  126. package/src/record-view/ox-record-creator.ts +0 -289
  127. package/src/record-view/record-view-body.ts +0 -250
  128. package/src/record-view/record-view-handler.ts +0 -86
  129. package/src/record-view/record-view.ts +0 -122
  130. package/src/renderers/index.ts +0 -14
  131. package/src/renderers/ox-grist-renderer-boolean.ts +0 -43
  132. package/src/renderers/ox-grist-renderer-color.ts +0 -15
  133. package/src/renderers/ox-grist-renderer-date.ts +0 -62
  134. package/src/renderers/ox-grist-renderer-file.ts +0 -31
  135. package/src/renderers/ox-grist-renderer-image.ts +0 -27
  136. package/src/renderers/ox-grist-renderer-json5.ts +0 -36
  137. package/src/renderers/ox-grist-renderer-link.ts +0 -17
  138. package/src/renderers/ox-grist-renderer-password.ts +0 -7
  139. package/src/renderers/ox-grist-renderer-progress.ts +0 -45
  140. package/src/renderers/ox-grist-renderer-select.ts +0 -58
  141. package/src/renderers/ox-grist-renderer-text.ts +0 -16
  142. package/src/renderers/ox-grist-renderer-textarea.ts +0 -7
  143. package/src/renderers/ox-grist-renderer-tree.ts +0 -189
  144. package/src/renderers/ox-grist-renderer.ts +0 -35
  145. package/src/renderers/registry.ts +0 -111
  146. package/src/sorters/sorters-control.ts +0 -143
  147. package/src/types.ts +0 -813
  148. package/src/utils/index.ts +0 -2
  149. package/src/utils/list-param.ts +0 -72
  150. package/src/utils/supports-passive.ts +0 -13
  151. package/stories/accumulator-format.stories.ts +0 -276
  152. package/stories/barcode-input-filter.stories.ts +0 -216
  153. package/stories/bounded-select-filters.stories.ts +0 -333
  154. package/stories/bounded-select-record.stories.ts +0 -336
  155. package/stories/click-event-custom.stories.ts +0 -288
  156. package/stories/click-event.stories.ts +0 -283
  157. package/stories/creatable-only-column.stories.ts +0 -253
  158. package/stories/default-filters.stories.ts +0 -241
  159. package/stories/dynamic-editable.stories.ts +0 -313
  160. package/stories/empty-sorters.stories.ts +0 -180
  161. package/stories/explicit-fetch.stories.ts +0 -186
  162. package/stories/fixed-column.stories.ts +0 -416
  163. package/stories/grid-setting.stories.ts +0 -501
  164. package/stories/grist-modes.stories.ts +0 -451
  165. package/stories/group-header.stories.ts +0 -442
  166. package/stories/record-view.stories.ts +0 -143
  167. package/stories/textarea.stories.ts +0 -261
  168. package/stories/tree-column-with-checkbox.stories.ts +0 -297
  169. package/stories/tree-column.stories.ts +0 -296
  170. package/tsconfig.json +0 -26
  171. package/web-dev-server.config.mjs +0 -27
  172. package/web-test-runner.config.mjs +0 -45
  173. package/yarn-error.log +0 -16971
@@ -1,451 +0,0 @@
1
- import '../src/index.js'
2
- import '../src/filters/filters-form.js'
3
- import '../src/sorters/sorters-control.js'
4
- import '../src/record-view/ox-record-creator.js'
5
- import '@operato/popup/ox-popup-list.js'
6
- import '@material/web/icon/icon.js'
7
-
8
- import { html, TemplateResult } from 'lit'
9
- import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'
10
-
11
- import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
12
-
13
- import {
14
- ColumnConfig,
15
- FetchHandler,
16
- GristClassifier,
17
- GristEventHandlerSet,
18
- GristRecord,
19
- ValidationCallback
20
- } from '../src/types.js'
21
- import { OxPrompt } from '@operato/popup'
22
-
23
- const fetchHandler: FetchHandler = async ({ page, limit }) => {
24
- var total = 120993
25
- var start = (page! - 1) * limit!
26
-
27
- await new Promise(resolve => setTimeout(resolve, 500))
28
-
29
- return {
30
- total,
31
- records: Array(limit! * page! > total ? total % limit! : limit)
32
- .fill('')
33
- .map((item, idx) => {
34
- return {
35
- id: String(idx),
36
- name: idx % 2 ? `shnam-${start + idx + 1}` : `heartyoh-${start + idx + 1}`,
37
- description: idx % 2 ? `hatiolabmanager${start + idx + 1}1234567890` : `hatiosea manager-${start + idx + 1}`,
38
- email: idx % 2 ? `shnam-${start + idx + 1}@gmail.com` : `heartyoh-${start + idx + 1}@gmail.com`,
39
- active: Math.round(Math.random() * 2) % 2 ? true : false,
40
- barcode: idx % 2 ? `1234567890${start + idx + 1}` : `0987654321${start + idx + 1}`,
41
- company:
42
- idx % 2
43
- ? {
44
- id: '2',
45
- name: 'HatioLAB',
46
- description: `경기도 성남시-${start + idx + 1}`
47
- }
48
- : {
49
- id: '3',
50
- name: 'HatioSEA',
51
- description: `말레이시아 세티아알람-${start + idx + 1}`
52
- },
53
- thumbnail:
54
- idx % 4 === 0
55
- ? '' /* no source */
56
- : idx % 4 === 1
57
- ? `http://www.hatiolab.com/assets/img/operato-biz3.png`
58
- : idx % 4 === 2
59
- ? `http://www.hatiolab.com/assets/img/thingsboard-30.png`
60
- : `http://www.hatiolab.com/wrong-url.png` /* wrong source */,
61
- role: ['admin', 'worker', 'tester'][idx % 3],
62
- color: idx % 2 ? `#87f018` : `#180f87`,
63
- rate: Math.round(Math.random() * 100),
64
- dynamicType: ['text', 'email', 'checkbox', 'color', 'progress', 'barcode'][idx % 5],
65
- dynamicValue: ['abcdefghijkl', 'heartyoh@hatiolab.com', 'true', 'orange', '50', '1234567890'][idx % 5],
66
- homepage:
67
- idx % 2 ? `http://hatiolab.com/${start + idx + 1}` : `http://deadpool.hatiolab.com/${start + idx + 1}`,
68
- json5: {
69
- abc: 'abc',
70
- value: 123
71
- },
72
- createdAt: Date.now(),
73
- updatedAt: Date.now()
74
- }
75
- })
76
- }
77
- }
78
-
79
- const config = {
80
- list: {
81
- thumbnail: 'thumbnail',
82
- fields: ['name', 'description'],
83
- details: ['role', 'email']
84
- },
85
- columns: [
86
- {
87
- type: 'gutter',
88
- gutterName: 'dirty'
89
- },
90
- {
91
- type: 'gutter',
92
- gutterName: 'sequence'
93
- },
94
- {
95
- type: 'gutter',
96
- gutterName: 'row-selector',
97
- multiple: true
98
- },
99
- {
100
- type: 'gutter',
101
- gutterName: 'button',
102
- icon: 'edit',
103
- iconOnly: false,
104
- title: '수정편집',
105
- width: 120,
106
- handlers: {
107
- click: function () {
108
- console.log('clicked')
109
- }
110
- }
111
- },
112
- {
113
- type: 'gutter',
114
- gutterName: 'button',
115
- icon: 'add',
116
- iconOnly: false,
117
- title: '행추가',
118
- width: 120,
119
- handlers: {
120
- click: 'record-copy'
121
- }
122
- },
123
- {
124
- type: 'gutter',
125
- gutterName: 'button',
126
- icon: 'arrow_downward',
127
- title: 'download',
128
- handlers: {
129
- click: 'move-down'
130
- }
131
- },
132
- {
133
- type: 'string',
134
- name: 'id',
135
- hidden: true
136
- },
137
- {
138
- type: 'link',
139
- name: 'name',
140
- label: true,
141
- fixed: true,
142
- header: 'name',
143
- record: {
144
- editable: true,
145
- options: {
146
- // href: 'http://hatiolab.com',
147
- href: function (column: ColumnConfig, record: GristRecord, rowIndex: number) {
148
- return record['homepage']
149
- },
150
- target: '_blank'
151
- }
152
- },
153
- filter: 'search',
154
- sortable: true,
155
- width: 120
156
- },
157
- {
158
- type: 'string',
159
- name: 'description',
160
- header: 'description',
161
- filter: 'search',
162
- record: {
163
- editable: true,
164
- align: 'left'
165
- },
166
- width: 200,
167
- handlers: {
168
- click: (columns, data, column, record, rowIndex, target) => {
169
- alert(`${column!.name} ${record![column!.name]}, row : ${rowIndex}`)
170
- }
171
- } as GristEventHandlerSet
172
- },
173
- {
174
- type: 'email',
175
- name: 'email',
176
- label: true,
177
- header: 'email',
178
- record: {
179
- editable: true
180
- },
181
- filter: 'search',
182
- sortable: true,
183
- width: 130,
184
- validation: (async (after, before, record, column) => {
185
- if (after.indexOf('@') == -1) {
186
- return await OxPrompt.open({
187
- title: '잘못된 이메일 포맷',
188
- text: '그래도 변경하시겠습니까?',
189
- cancelButton: { text: 'No' },
190
- confirmButton: { text: 'Yes' }
191
- })
192
- }
193
- return true
194
- }) as ValidationCallback
195
- },
196
- {
197
- type: 'boolean',
198
- name: 'active',
199
- header: 'active',
200
- record: {
201
- editable: true
202
- },
203
- filter: true,
204
- handlers: {
205
- dblclick: () => {
206
- const grist = document.querySelector('ox-grist') as any
207
- console.log(grist!.dirtyRecords)
208
- }
209
- },
210
- sortable: true,
211
- width: 60
212
- },
213
- {
214
- type: 'select',
215
- name: 'role',
216
- label: true,
217
- header: 'role',
218
- record: {
219
- options: ['', 'admin', 'worker', 'tester'],
220
- editable: true
221
- },
222
- filter: true,
223
- sortable: true,
224
- width: 120
225
- },
226
- {
227
- type: 'color',
228
- name: 'color',
229
- header: 'color',
230
- record: {
231
- editable: true
232
- },
233
- sortable: true,
234
- width: 50
235
- },
236
- {
237
- type: 'float',
238
- name: 'rate',
239
- header: 'rate',
240
- record: {
241
- align: 'right',
242
- editable: true,
243
- defaultValue: 10000.1
244
- },
245
- filter: {
246
- operator: 'between',
247
- value: [1, 100]
248
- },
249
- sortable: true,
250
- width: 50
251
- },
252
- {
253
- type: 'json5',
254
- name: 'json5',
255
- header: 'JSON5',
256
- width: 200
257
- },
258
- {
259
- type: 'image',
260
- name: 'thumbnail',
261
- header: 'thumbnail',
262
- record: {
263
- editable: true,
264
- wide: true
265
- },
266
- width: 120
267
- },
268
- {
269
- type: 'datetime',
270
- name: 'updatedAt',
271
- header: 'updated at',
272
- record: {
273
- editable: true,
274
- defaultValue: {
275
- name: 'now'
276
- }
277
- },
278
- filter: {
279
- operator: 'between',
280
- type: 'datetime',
281
- value: [
282
- {
283
- name: 'today',
284
- params: {
285
- type: 'datetime'
286
- }
287
- },
288
- {
289
- name: 'now',
290
- params: {
291
- type: 'datetime',
292
- relativeDays: 1
293
- }
294
- }
295
- ]
296
- },
297
- sortable: true,
298
- width: 180
299
- },
300
- {
301
- type: 'datetime',
302
- name: 'createdAt',
303
- header: 'created at',
304
- record: {
305
- editable: false
306
- },
307
- sortable: true,
308
- width: 180
309
- }
310
- ],
311
- rows: {
312
- selectable: {
313
- multiple: true
314
- },
315
- handlers: {
316
- focus: 'select-row-toggle'
317
- },
318
- classifier: function (record, rowIndex) {
319
- const rate = record['rate']
320
- const emphasized =
321
- rate < 10 ? ['black', 'white'] : rate < 25 ? ['yellow', 'blue'] : rate < 40 ? ['cyan', 'red'] : undefined
322
- return {
323
- emphasized
324
- }
325
- } as GristClassifier
326
- },
327
- sorters: [
328
- {
329
- name: 'name',
330
- desc: true
331
- },
332
- {
333
- name: 'email'
334
- }
335
- ],
336
- pagination: {
337
- pages: [20, 30, 50, 100, 200]
338
- }
339
- }
340
-
341
- export default {
342
- title: '3 modes in ox-grist',
343
- component: 'ox-grist',
344
- argTypes: {
345
- config: { control: 'object' },
346
- mode: { control: 'select', options: ['GRID', 'LIST', 'CARD'] },
347
- urlParamsSensitive: { control: 'boolean' }
348
- }
349
- }
350
-
351
- interface Story<T> {
352
- (args: T): TemplateResult
353
- args?: Partial<T>
354
- argTypes?: Record<string, unknown>
355
- }
356
-
357
- interface ArgTypes {
358
- config: object
359
- mode: 'GRID' | 'LIST' | 'CARD'
360
- urlParamsSensitive: boolean
361
- fetchHandler: FetchHandler
362
- }
363
-
364
- const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive = false, fetchHandler }: ArgTypes) =>
365
- html` <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
366
-
367
- <link href="/themes/light.css" rel="stylesheet" />
368
- <link href="/themes/dark.css" rel="stylesheet" />
369
- <link href="/themes/spacing.css" rel="stylesheet" />
370
- <link href="/themes/material-theme.css" rel="stylesheet" />
371
- <link href="/themes/grist-theme.css" rel="stylesheet" />
372
-
373
- <link
374
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
375
- rel="stylesheet"
376
- />
377
- <link
378
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Rounded:opsz,wght,FILL@20..48,100..700,0..1"
379
- rel="stylesheet"
380
- />
381
- <link
382
- href="https://fonts.googleapis.com/css2?family=Material+Symbols+Sharp:opsz,wght,FILL@20..48,100..700,0..1"
383
- rel="stylesheet"
384
- />
385
-
386
- <style>
387
- ${MDTypeScaleStyles.cssText}
388
- </style>
389
-
390
- <style>
391
- ${CommonGristStyles.cssText}
392
- ${CommonHeaderStyles.cssText}
393
- </style>
394
-
395
- <style>
396
- ox-grist {
397
- flex: 1;
398
- }
399
-
400
- ox-filters-form {
401
- flex: 1;
402
- }
403
- </style>
404
-
405
- <ox-grist
406
- .config=${config}
407
- .mode=${mode}
408
- .fetchHandler=${fetchHandler}
409
- ?url-params-sensitive=${urlParamsSensitive}
410
- @filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
411
- >
412
- <div slot="headroom" class="header">
413
- <div class="filters">
414
- <ox-filters-form autofocus></ox-filters-form>
415
-
416
- <div id="sorters">
417
- Sort
418
- <md-icon
419
- @click=${(e: Event) => {
420
- const target = e.currentTarget as HTMLElement
421
- ;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
422
- right: 0,
423
- top: target.offsetTop + target.offsetHeight
424
- })
425
- }}
426
- >expand_more</md-icon
427
- >
428
- <ox-popup id="sorter-control">
429
- <ox-sorters-control> </ox-sorters-control>
430
- </ox-popup>
431
- </div>
432
-
433
- <div id="modes">
434
- <md-icon @click=${() => (mode = 'GRID')} ?active=${mode == 'GRID'}>grid_on</md-icon>
435
- <md-icon @click=${() => (mode = 'LIST')} ?active=${mode == 'LIST'}>format_list_bulleted</md-icon>
436
- <md-icon @click=${() => (mode = 'CARD')} ?active=${mode == 'CARD'}>apps</md-icon>
437
- </div>
438
-
439
- <ox-record-creator id="add" light-popup>
440
- <button><md-icon>add</md-icon></button>
441
- </ox-record-creator>
442
- </div>
443
- </div>
444
- </ox-grist>`
445
-
446
- export const Regular = Template.bind({})
447
- Regular.args = {
448
- config,
449
- fetchHandler,
450
- mode: 'GRID'
451
- }