@operato/data-grist 2.0.0-alpha.145 → 2.0.0-alpha.148
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.
- package/CHANGELOG.md +25 -0
- package/demo/data-grist-test.html +1 -1
- package/demo/index.html +1 -1
- package/dist/src/data-card/data-card-field.js +2 -2
- package/dist/src/data-card/data-card-field.js.map +1 -1
- package/dist/src/data-card/data-card-gutter-menu.js +5 -5
- package/dist/src/data-card/data-card-gutter-menu.js.map +1 -1
- package/dist/src/data-card/data-card-gutter.js +8 -6
- package/dist/src/data-card/data-card-gutter.js.map +1 -1
- package/dist/src/data-card/data-card.js +7 -9
- package/dist/src/data-card/data-card.js.map +1 -1
- package/dist/src/data-card/record-card.js +9 -10
- package/dist/src/data-card/record-card.js.map +1 -1
- package/dist/src/data-grid/data-grid-accum-field.js +5 -3
- package/dist/src/data-grid/data-grid-accum-field.js.map +1 -1
- package/dist/src/data-grid/data-grid-body-style.js +1 -1
- package/dist/src/data-grid/data-grid-body-style.js.map +1 -1
- package/dist/src/data-grid/data-grid-body.js +3 -3
- package/dist/src/data-grid/data-grid-body.js.map +1 -1
- package/dist/src/data-grid/data-grid-footer.js +2 -2
- package/dist/src/data-grid/data-grid-footer.js.map +1 -1
- package/dist/src/data-grid/data-grid-header.js +4 -4
- package/dist/src/data-grid/data-grid-header.js.map +1 -1
- package/dist/src/data-grid/data-grid.js +13 -1
- package/dist/src/data-grid/data-grid.js.map +1 -1
- package/dist/src/data-list/data-list-field.js +5 -5
- package/dist/src/data-list/data-list-field.js.map +1 -1
- package/dist/src/data-list/data-list-gutter.js +3 -3
- package/dist/src/data-list/data-list-gutter.js.map +1 -1
- package/dist/src/data-list/data-list.js +4 -4
- package/dist/src/data-list/data-list.js.map +1 -1
- package/dist/src/data-list/record-partial.js +9 -10
- package/dist/src/data-list/record-partial.js.map +1 -1
- package/dist/src/editors/ox-input-tree.js +7 -7
- package/dist/src/editors/ox-input-tree.js.map +1 -1
- package/dist/src/filters/filter-input-barcode.js +1 -0
- package/dist/src/filters/filter-input-barcode.js.map +1 -1
- package/dist/src/filters/filter-styles.js +25 -19
- package/dist/src/filters/filter-styles.js.map +1 -1
- package/dist/src/filters/filters-form.js +4 -0
- package/dist/src/filters/filters-form.js.map +1 -1
- package/dist/src/gutters/gutter-dirty.js +1 -1
- package/dist/src/gutters/gutter-dirty.js.map +1 -1
- package/dist/src/renderers/ox-grist-renderer-tree.js +7 -7
- package/dist/src/renderers/ox-grist-renderer-tree.js.map +1 -1
- package/dist/src/sorters/sorters-control.js +3 -3
- package/dist/src/sorters/sorters-control.js.map +1 -1
- package/dist/stories/accumulator-format.stories.d.ts +5 -0
- package/dist/stories/accumulator-format.stories.js +17 -4
- package/dist/stories/accumulator-format.stories.js.map +1 -1
- package/dist/stories/barcode-input-filter.stories.d.ts +5 -0
- package/dist/stories/barcode-input-filter.stories.js +19 -5
- package/dist/stories/barcode-input-filter.stories.js.map +1 -1
- package/dist/stories/bounded-select-filters.stories.d.ts +5 -0
- package/dist/stories/bounded-select-filters.stories.js +21 -7
- package/dist/stories/bounded-select-filters.stories.js.map +1 -1
- package/dist/stories/bounded-select-record.stories.d.ts +5 -0
- package/dist/stories/bounded-select-record.stories.js +21 -7
- package/dist/stories/bounded-select-record.stories.js.map +1 -1
- package/dist/stories/creatable-only-column.stories.d.ts +5 -0
- package/dist/stories/creatable-only-column.stories.js +34 -21
- package/dist/stories/creatable-only-column.stories.js.map +1 -1
- package/dist/stories/default-filters.stories.d.ts +5 -0
- package/dist/stories/default-filters.stories.js +31 -17
- package/dist/stories/default-filters.stories.js.map +1 -1
- package/dist/stories/dynamic-editable.stories.d.ts +5 -0
- package/dist/stories/dynamic-editable.stories.js +34 -21
- package/dist/stories/dynamic-editable.stories.js.map +1 -1
- package/dist/stories/empty-sorters.stories.d.ts +7 -1
- package/dist/stories/empty-sorters.stories.js +31 -17
- package/dist/stories/empty-sorters.stories.js.map +1 -1
- package/dist/stories/explicit-fetch.stories.d.ts +5 -0
- package/dist/stories/explicit-fetch.stories.js +30 -17
- package/dist/stories/explicit-fetch.stories.js.map +1 -1
- package/dist/stories/fixed-column.stories.d.ts +5 -0
- package/dist/stories/fixed-column.stories.js +34 -21
- package/dist/stories/fixed-column.stories.js.map +1 -1
- package/dist/stories/grid-setting.stories.d.ts +5 -0
- package/dist/stories/grid-setting.stories.js +41 -15
- package/dist/stories/grid-setting.stories.js.map +1 -1
- package/dist/stories/grist-modes.stories.d.ts +5 -0
- package/dist/stories/grist-modes.stories.js +39 -26
- package/dist/stories/grist-modes.stories.js.map +1 -1
- package/dist/stories/group-header.stories.d.ts +5 -0
- package/dist/stories/group-header.stories.js +34 -21
- package/dist/stories/group-header.stories.js.map +1 -1
- package/dist/stories/textarea.stories.d.ts +5 -0
- package/dist/stories/textarea.stories.js +27 -13
- package/dist/stories/textarea.stories.js.map +1 -1
- package/dist/stories/tree-column-with-checkbox.stories.d.ts +5 -0
- package/dist/stories/tree-column-with-checkbox.stories.js +34 -21
- package/dist/stories/tree-column-with-checkbox.stories.js.map +1 -1
- package/dist/stories/tree-column.stories.d.ts +5 -0
- package/dist/stories/tree-column.stories.js +34 -21
- package/dist/stories/tree-column.stories.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +6 -6
- package/src/data-card/data-card-field.ts +2 -2
- package/src/data-card/data-card-gutter-menu.ts +5 -5
- package/src/data-card/data-card-gutter.ts +8 -6
- package/src/data-card/data-card.ts +7 -9
- package/src/data-card/record-card.ts +9 -10
- package/src/data-grid/data-grid-accum-field.ts +5 -3
- package/src/data-grid/data-grid-body-style.ts +1 -1
- package/src/data-grid/data-grid-body.ts +4 -3
- package/src/data-grid/data-grid-footer.ts +2 -2
- package/src/data-grid/data-grid-header.ts +4 -4
- package/src/data-grid/data-grid.ts +13 -1
- package/src/data-list/data-list-field.ts +5 -5
- package/src/data-list/data-list-gutter.ts +3 -3
- package/src/data-list/data-list.ts +4 -4
- package/src/data-list/record-partial.ts +9 -10
- package/src/editors/ox-input-tree.ts +7 -7
- package/src/filters/filter-input-barcode.ts +1 -0
- package/src/filters/filter-styles.ts +25 -19
- package/src/filters/filters-form.ts +4 -0
- package/src/gutters/gutter-dirty.ts +1 -1
- package/src/renderers/ox-grist-renderer-tree.ts +7 -7
- package/src/sorters/sorters-control.ts +3 -3
- package/stories/accumulator-format.stories.ts +20 -5
- package/stories/barcode-input-filter.stories.ts +21 -6
- package/stories/bounded-select-filters.stories.ts +24 -8
- package/stories/bounded-select-record.stories.ts +24 -8
- package/stories/creatable-only-column.stories.ts +42 -28
- package/stories/default-filters.stories.ts +39 -24
- package/stories/dynamic-editable.stories.ts +42 -28
- package/stories/empty-sorters.stories.ts +41 -25
- package/stories/explicit-fetch.stories.ts +38 -24
- package/stories/fixed-column.stories.ts +42 -28
- package/stories/grid-setting.stories.ts +44 -16
- package/stories/grist-modes.stories.ts +53 -33
- package/stories/group-header.stories.ts +42 -28
- package/stories/textarea.stories.ts +35 -14
- package/stories/tree-column-with-checkbox.stories.ts +42 -28
- package/stories/tree-column.stories.ts +42 -28
- package/themes/dark-hc.css +151 -0
- package/themes/dark-mc.css +151 -0
- package/themes/dark.css +151 -0
- package/themes/grist-theme.css +99 -100
- package/themes/light-hc.css +151 -0
- package/themes/light-mc.css +151 -0
- package/themes/light.css +151 -0
- package/themes/md-typescale-styles.css +100 -0
- package/themes/spacing.css +43 -0
- package/themes/state-color.css +6 -0
- package/dist/stories/accumulator-format.stories copy.d.ts +0 -40
- package/dist/stories/accumulator-format.stories copy.js +0 -232
- package/dist/stories/accumulator-format.stories copy.js.map +0 -1
- package/themes/app-theme.css +0 -145
- package/themes/form-theme.css +0 -75
- package/themes/oops-theme.css +0 -26
- package/themes/report-theme.css +0 -47
@@ -5,6 +5,7 @@ import '@operato/popup/ox-popup-list.js'
|
|
5
5
|
import '@material/web/icon/icon.js'
|
6
6
|
|
7
7
|
import { html, TemplateResult } from 'lit'
|
8
|
+
import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'
|
8
9
|
|
9
10
|
import { FetchHandler } from '../src/types.js'
|
10
11
|
import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
|
@@ -180,7 +181,8 @@ export default {
|
|
180
181
|
title: 'dynamic-editable for ox-grist',
|
181
182
|
component: 'ox-grist',
|
182
183
|
argTypes: {
|
183
|
-
headerFilter: { control: 'boolean' }
|
184
|
+
headerFilter: { control: 'boolean' },
|
185
|
+
theme: { control: 'select', options: ['light', 'dark'] }
|
184
186
|
}
|
185
187
|
}
|
186
188
|
|
@@ -192,10 +194,18 @@ interface Story<T> {
|
|
192
194
|
|
193
195
|
interface ArgTypes {
|
194
196
|
headerFilter: boolean
|
197
|
+
theme: 'light' | 'dark'
|
195
198
|
}
|
196
199
|
|
197
|
-
const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) =>
|
198
|
-
html` <link
|
200
|
+
const Template: Story<ArgTypes> = ({ headerFilter, theme = 'light' }: ArgTypes) =>
|
201
|
+
html` <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
|
202
|
+
|
203
|
+
<link href="/themes/light.css" rel="stylesheet" />
|
204
|
+
<link href="/themes/dark.css" rel="stylesheet" />
|
205
|
+
<link href="/themes/spacing.css" rel="stylesheet" />
|
206
|
+
<link href="/themes/grist-theme.css" rel="stylesheet" />
|
207
|
+
|
208
|
+
<link
|
199
209
|
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
|
200
210
|
rel="stylesheet"
|
201
211
|
/>
|
@@ -208,15 +218,19 @@ const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) =>
|
|
208
218
|
rel="stylesheet"
|
209
219
|
/>
|
210
220
|
|
211
|
-
<
|
212
|
-
|
213
|
-
|
221
|
+
<style>
|
222
|
+
${MDTypeScaleStyles.cssText}
|
223
|
+
</style>
|
214
224
|
|
215
225
|
<style>
|
216
226
|
${CommonGristStyles.cssText}
|
217
227
|
${CommonHeaderStyles.cssText}
|
218
228
|
</style>
|
219
229
|
|
230
|
+
<script>
|
231
|
+
document.body.classList.add('${theme}')
|
232
|
+
</script>
|
233
|
+
|
220
234
|
<style>
|
221
235
|
ox-grist {
|
222
236
|
height: 600px;
|
@@ -237,31 +251,31 @@ const Template: Story<ArgTypes> = ({ headerFilter }: ArgTypes) =>
|
|
237
251
|
console.log(name, number, chk)
|
238
252
|
}}
|
239
253
|
>
|
240
|
-
<div slot="headroom">
|
241
|
-
<div
|
254
|
+
<div slot="headroom" class="header">
|
255
|
+
<div class="filters">
|
242
256
|
<ox-filters-form></ox-filters-form>
|
243
|
-
</div>
|
244
257
|
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
|
249
|
-
|
250
|
-
|
251
|
-
|
252
|
-
|
253
|
-
|
254
|
-
|
255
|
-
|
256
|
-
|
257
|
-
|
258
|
-
|
259
|
-
|
260
|
-
|
258
|
+
<div id="sorters">
|
259
|
+
Sort
|
260
|
+
<md-icon
|
261
|
+
@click=${(e: Event) => {
|
262
|
+
const target = e.currentTarget as HTMLElement
|
263
|
+
;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
|
264
|
+
right: 0,
|
265
|
+
top: target.offsetTop + target.offsetHeight
|
266
|
+
})
|
267
|
+
}}
|
268
|
+
>expand_more</md-icon
|
269
|
+
>
|
270
|
+
<ox-popup id="sorter-control">
|
271
|
+
<ox-sorters-control> </ox-sorters-control>
|
272
|
+
</ox-popup>
|
273
|
+
</div>
|
261
274
|
|
262
|
-
|
263
|
-
|
264
|
-
|
275
|
+
<ox-record-creator id="add" light-popup>
|
276
|
+
<button><md-icon>add</md-icon></button>
|
277
|
+
</ox-record-creator>
|
278
|
+
</div>
|
265
279
|
</div>
|
266
280
|
</ox-grist>`
|
267
281
|
|
@@ -5,6 +5,7 @@ import '@operato/popup/ox-popup-list.js'
|
|
5
5
|
import '@material/web/icon/icon.js'
|
6
6
|
|
7
7
|
import { html, TemplateResult } from 'lit'
|
8
|
+
import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'
|
8
9
|
|
9
10
|
import { FetchHandler } from '../src/types.js'
|
10
11
|
import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
|
@@ -92,7 +93,9 @@ const config = {
|
|
92
93
|
export default {
|
93
94
|
title: 'empty sorters for ox-grist',
|
94
95
|
component: 'ox-grist',
|
95
|
-
argTypes: {
|
96
|
+
argTypes: {
|
97
|
+
theme: { control: 'select', options: ['light', 'dark'] }
|
98
|
+
}
|
96
99
|
}
|
97
100
|
|
98
101
|
interface Story<T> {
|
@@ -101,10 +104,19 @@ interface Story<T> {
|
|
101
104
|
argTypes?: Record<string, unknown>
|
102
105
|
}
|
103
106
|
|
104
|
-
interface ArgTypes {
|
107
|
+
interface ArgTypes {
|
108
|
+
theme: 'light' | 'dark'
|
109
|
+
}
|
110
|
+
|
111
|
+
const Template: Story<ArgTypes> = ({ theme = 'light' }: ArgTypes) =>
|
112
|
+
html` <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
|
105
113
|
|
106
|
-
|
107
|
-
|
114
|
+
<link href="/themes/light.css" rel="stylesheet" />
|
115
|
+
<link href="/themes/dark.css" rel="stylesheet" />
|
116
|
+
<link href="/themes/spacing.css" rel="stylesheet" />
|
117
|
+
<link href="/themes/grist-theme.css" rel="stylesheet" />
|
118
|
+
|
119
|
+
<link
|
108
120
|
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
|
109
121
|
rel="stylesheet"
|
110
122
|
/>
|
@@ -117,15 +129,19 @@ const Template: Story<ArgTypes> = ({}: ArgTypes) =>
|
|
117
129
|
rel="stylesheet"
|
118
130
|
/>
|
119
131
|
|
120
|
-
<
|
121
|
-
|
122
|
-
|
132
|
+
<style>
|
133
|
+
${MDTypeScaleStyles.cssText}
|
134
|
+
</style>
|
123
135
|
|
124
136
|
<style>
|
125
137
|
${CommonGristStyles.cssText}
|
126
138
|
${CommonHeaderStyles.cssText}
|
127
139
|
</style>
|
128
140
|
|
141
|
+
<script>
|
142
|
+
document.body.classList.add('${theme}')
|
143
|
+
</script>
|
144
|
+
|
129
145
|
<style>
|
130
146
|
ox-grist {
|
131
147
|
height: 600px;
|
@@ -142,26 +158,26 @@ const Template: Story<ArgTypes> = ({}: ArgTypes) =>
|
|
142
158
|
.fetchHandler=${fetchHandler}
|
143
159
|
@filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
|
144
160
|
>
|
145
|
-
<div slot="headroom">
|
146
|
-
<div
|
161
|
+
<div slot="headroom" class="header">
|
162
|
+
<div class="filters">
|
147
163
|
<ox-filters-form></ox-filters-form>
|
148
|
-
</div>
|
149
164
|
|
150
|
-
|
151
|
-
|
152
|
-
|
153
|
-
|
154
|
-
|
155
|
-
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
+
<div id="sorters">
|
166
|
+
Sort
|
167
|
+
<md-icon
|
168
|
+
@click=${(e: Event) => {
|
169
|
+
const target = e.currentTarget as HTMLElement
|
170
|
+
;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
|
171
|
+
right: 0,
|
172
|
+
top: target.offsetTop + target.offsetHeight
|
173
|
+
})
|
174
|
+
}}
|
175
|
+
>expand_more</md-icon
|
176
|
+
>
|
177
|
+
<ox-popup id="sorter-control">
|
178
|
+
<ox-sorters-control> </ox-sorters-control>
|
179
|
+
</ox-popup>
|
180
|
+
</div>
|
165
181
|
</div>
|
166
182
|
</div>
|
167
183
|
</ox-grist>`
|
@@ -5,6 +5,7 @@ import '@operato/popup/ox-popup-list.js'
|
|
5
5
|
import '@material/web/icon/icon.js'
|
6
6
|
|
7
7
|
import { html, TemplateResult } from 'lit'
|
8
|
+
import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'
|
8
9
|
|
9
10
|
import { FetchHandler } from '../src/types.js'
|
10
11
|
import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
|
@@ -94,7 +95,8 @@ export default {
|
|
94
95
|
title: 'explicit-fetch attribute for ox-grist',
|
95
96
|
component: 'ox-grist',
|
96
97
|
argTypes: {
|
97
|
-
explicitFetch: { control: 'boolean' }
|
98
|
+
explicitFetch: { control: 'boolean' },
|
99
|
+
theme: { control: 'select', options: ['light', 'dark'] }
|
98
100
|
}
|
99
101
|
}
|
100
102
|
|
@@ -106,10 +108,18 @@ interface Story<T> {
|
|
106
108
|
|
107
109
|
interface ArgTypes {
|
108
110
|
explicitFetch: boolean
|
111
|
+
theme: 'light' | 'dark'
|
109
112
|
}
|
110
113
|
|
111
|
-
const Template: Story<ArgTypes> = ({ explicitFetch = false }: ArgTypes) =>
|
112
|
-
html` <link
|
114
|
+
const Template: Story<ArgTypes> = ({ explicitFetch = false, theme = 'light' }: ArgTypes) =>
|
115
|
+
html` <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
|
116
|
+
|
117
|
+
<link href="/themes/light.css" rel="stylesheet" />
|
118
|
+
<link href="/themes/dark.css" rel="stylesheet" />
|
119
|
+
<link href="/themes/spacing.css" rel="stylesheet" />
|
120
|
+
<link href="/themes/grist-theme.css" rel="stylesheet" />
|
121
|
+
|
122
|
+
<link
|
113
123
|
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
|
114
124
|
rel="stylesheet"
|
115
125
|
/>
|
@@ -122,15 +132,19 @@ const Template: Story<ArgTypes> = ({ explicitFetch = false }: ArgTypes) =>
|
|
122
132
|
rel="stylesheet"
|
123
133
|
/>
|
124
134
|
|
125
|
-
<
|
126
|
-
|
127
|
-
|
135
|
+
<style>
|
136
|
+
${MDTypeScaleStyles.cssText}
|
137
|
+
</style>
|
128
138
|
|
129
139
|
<style>
|
130
140
|
${CommonGristStyles.cssText}
|
131
141
|
${CommonHeaderStyles.cssText}
|
132
142
|
</style>
|
133
143
|
|
144
|
+
<script>
|
145
|
+
document.body.classList.add('${theme}')
|
146
|
+
</script>
|
147
|
+
|
134
148
|
<style>
|
135
149
|
ox-grist {
|
136
150
|
height: 600px;
|
@@ -148,26 +162,26 @@ const Template: Story<ArgTypes> = ({ explicitFetch = false }: ArgTypes) =>
|
|
148
162
|
.fetchHandler=${fetchHandler}
|
149
163
|
@filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
|
150
164
|
>
|
151
|
-
<div slot="headroom">
|
152
|
-
<div
|
165
|
+
<div slot="headroom" class="header">
|
166
|
+
<div class="filters">
|
153
167
|
<ox-filters-form></ox-filters-form>
|
154
|
-
</div>
|
155
168
|
|
156
|
-
|
157
|
-
|
158
|
-
|
159
|
-
|
160
|
-
|
161
|
-
|
162
|
-
|
163
|
-
|
164
|
-
|
165
|
-
|
166
|
-
|
167
|
-
|
168
|
-
|
169
|
-
|
170
|
-
|
169
|
+
<div id="sorters">
|
170
|
+
Sort
|
171
|
+
<md-icon
|
172
|
+
@click=${(e: Event) => {
|
173
|
+
const target = e.currentTarget as HTMLElement
|
174
|
+
;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
|
175
|
+
right: 0,
|
176
|
+
top: target.offsetTop + target.offsetHeight
|
177
|
+
})
|
178
|
+
}}
|
179
|
+
>expand_more</md-icon
|
180
|
+
>
|
181
|
+
<ox-popup id="sorter-control">
|
182
|
+
<ox-sorters-control> </ox-sorters-control>
|
183
|
+
</ox-popup>
|
184
|
+
</div>
|
171
185
|
</div>
|
172
186
|
</div>
|
173
187
|
</ox-grist>`
|
@@ -6,6 +6,7 @@ import '@operato/popup/ox-popup-list.js'
|
|
6
6
|
import '@material/web/icon/icon.js'
|
7
7
|
|
8
8
|
import { html, TemplateResult } from 'lit'
|
9
|
+
import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'
|
9
10
|
|
10
11
|
import {
|
11
12
|
ColumnConfig,
|
@@ -317,7 +318,8 @@ export default {
|
|
317
318
|
title: 'fixed column',
|
318
319
|
component: 'ox-grist',
|
319
320
|
argTypes: {
|
320
|
-
config: { control: 'object' }
|
321
|
+
config: { control: 'object' },
|
322
|
+
theme: { control: 'select', options: ['light', 'dark'] }
|
321
323
|
}
|
322
324
|
}
|
323
325
|
|
@@ -329,10 +331,18 @@ interface Story<T> {
|
|
329
331
|
|
330
332
|
interface ArgTypes {
|
331
333
|
config: object
|
334
|
+
theme: 'light' | 'dark'
|
332
335
|
}
|
333
336
|
|
334
|
-
const Template: Story<ArgTypes> = ({ config }: ArgTypes) =>
|
335
|
-
html` <link
|
337
|
+
const Template: Story<ArgTypes> = ({ config, theme = 'light' }: ArgTypes) =>
|
338
|
+
html` <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
|
339
|
+
|
340
|
+
<link href="/themes/light.css" rel="stylesheet" />
|
341
|
+
<link href="/themes/dark.css" rel="stylesheet" />
|
342
|
+
<link href="/themes/spacing.css" rel="stylesheet" />
|
343
|
+
<link href="/themes/grist-theme.css" rel="stylesheet" />
|
344
|
+
|
345
|
+
<link
|
336
346
|
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
|
337
347
|
rel="stylesheet"
|
338
348
|
/>
|
@@ -345,15 +355,19 @@ const Template: Story<ArgTypes> = ({ config }: ArgTypes) =>
|
|
345
355
|
rel="stylesheet"
|
346
356
|
/>
|
347
357
|
|
348
|
-
<
|
349
|
-
|
350
|
-
|
358
|
+
<style>
|
359
|
+
${MDTypeScaleStyles.cssText}
|
360
|
+
</style>
|
351
361
|
|
352
362
|
<style>
|
353
363
|
${CommonGristStyles.cssText}
|
354
364
|
${CommonHeaderStyles.cssText}
|
355
365
|
</style>
|
356
366
|
|
367
|
+
<script>
|
368
|
+
document.body.classList.add('${theme}')
|
369
|
+
</script>
|
370
|
+
|
357
371
|
<style>
|
358
372
|
ox-grist {
|
359
373
|
height: 600px;
|
@@ -370,31 +384,31 @@ const Template: Story<ArgTypes> = ({ config }: ArgTypes) =>
|
|
370
384
|
.fetchHandler=${fetchHandler}
|
371
385
|
@filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
|
372
386
|
>
|
373
|
-
<div slot="headroom">
|
374
|
-
<div
|
387
|
+
<div slot="headroom" class="header">
|
388
|
+
<div class="filters">
|
375
389
|
<ox-filters-form autofocus></ox-filters-form>
|
376
|
-
</div>
|
377
390
|
|
378
|
-
|
379
|
-
|
380
|
-
|
381
|
-
|
382
|
-
|
383
|
-
|
384
|
-
|
385
|
-
|
386
|
-
|
387
|
-
|
388
|
-
|
389
|
-
|
390
|
-
|
391
|
-
|
392
|
-
|
393
|
-
|
391
|
+
<div id="sorters">
|
392
|
+
Sort
|
393
|
+
<md-icon
|
394
|
+
@click=${(e: Event) => {
|
395
|
+
const target = e.currentTarget as HTMLElement
|
396
|
+
;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
|
397
|
+
right: 0,
|
398
|
+
top: target.offsetTop + target.offsetHeight
|
399
|
+
})
|
400
|
+
}}
|
401
|
+
>expand_more</md-icon
|
402
|
+
>
|
403
|
+
<ox-popup id="sorter-control">
|
404
|
+
<ox-sorters-control> </ox-sorters-control>
|
405
|
+
</ox-popup>
|
406
|
+
</div>
|
394
407
|
|
395
|
-
|
396
|
-
|
397
|
-
|
408
|
+
<ox-record-creator id="add" light-popup>
|
409
|
+
<button><md-icon>add</md-icon></button>
|
410
|
+
</ox-record-creator>
|
411
|
+
</div>
|
398
412
|
</div>
|
399
413
|
</ox-grist>`
|
400
414
|
|
@@ -11,6 +11,7 @@ import '../src/personalizer/ox-grist-personalizer.js'
|
|
11
11
|
import '../src/personalizer/ox-grist-filter-personalizer.js'
|
12
12
|
|
13
13
|
import { html, TemplateResult } from 'lit'
|
14
|
+
import { styles as MDTypeScaleStyles } from '@material/web/typography/md-typescale-styles'
|
14
15
|
|
15
16
|
import { CommonHeaderStyles, CommonGristStyles } from '@operato/styles'
|
16
17
|
|
@@ -345,6 +346,7 @@ export default {
|
|
345
346
|
config: { control: 'object' },
|
346
347
|
mode: { control: 'select', options: ['GRID', 'LIST', 'CARD'] },
|
347
348
|
urlParamsSensitive: { control: 'boolean' },
|
349
|
+
theme: { control: 'select', options: ['light', 'dark'] },
|
348
350
|
withoutSearch: { control: 'boolean' },
|
349
351
|
debug: { control: 'boolean' }
|
350
352
|
}
|
@@ -362,6 +364,7 @@ interface ArgTypes {
|
|
362
364
|
urlParamsSensitive: boolean
|
363
365
|
withoutSearch: boolean
|
364
366
|
fetchHandler: FetchHandler
|
367
|
+
theme: 'light' | 'dark'
|
365
368
|
debug: boolean
|
366
369
|
}
|
367
370
|
|
@@ -382,9 +385,17 @@ const Template: Story<ArgTypes> = ({
|
|
382
385
|
urlParamsSensitive = false,
|
383
386
|
withoutSearch = false,
|
384
387
|
debug = false,
|
385
|
-
fetchHandler
|
388
|
+
fetchHandler,
|
389
|
+
theme = 'light'
|
386
390
|
}: ArgTypes) =>
|
387
|
-
html` <link
|
391
|
+
html` <link href="https://fonts.googleapis.com/css2?family=Roboto:wght@400;500;700&display=swap" rel="stylesheet" />
|
392
|
+
|
393
|
+
<link href="/themes/light.css" rel="stylesheet" />
|
394
|
+
<link href="/themes/dark.css" rel="stylesheet" />
|
395
|
+
<link href="/themes/spacing.css" rel="stylesheet" />
|
396
|
+
<link href="/themes/grist-theme.css" rel="stylesheet" />
|
397
|
+
|
398
|
+
<link
|
388
399
|
href="https://fonts.googleapis.com/css2?family=Material+Symbols+Outlined:opsz,wght,FILL@20..48,100..700,0..1"
|
389
400
|
rel="stylesheet"
|
390
401
|
/>
|
@@ -397,9 +408,9 @@ const Template: Story<ArgTypes> = ({
|
|
397
408
|
rel="stylesheet"
|
398
409
|
/>
|
399
410
|
|
400
|
-
<
|
401
|
-
|
402
|
-
|
411
|
+
<style>
|
412
|
+
${MDTypeScaleStyles.cssText}
|
413
|
+
</style>
|
403
414
|
|
404
415
|
<style>
|
405
416
|
${CommonGristStyles.cssText} ${CommonHeaderStyles.cssText}
|
@@ -441,22 +452,39 @@ const Template: Story<ArgTypes> = ({
|
|
441
452
|
?url-params-sensitive=${urlParamsSensitive}
|
442
453
|
@filters-change=${(e: Event) => console.log('filters', (e.target as any).filters)}
|
443
454
|
>
|
444
|
-
<div slot="headroom">
|
445
|
-
<div
|
455
|
+
<div slot="headroom" class="header">
|
456
|
+
<div class="filters">
|
446
457
|
<ox-filters-form autofocus ?without-search=${withoutSearch}>
|
447
458
|
<ox-grist-filter-personalizer slot="setting"></ox-grist-filter-personalizer>
|
448
459
|
</ox-filters-form>
|
449
|
-
</div>
|
450
460
|
|
451
|
-
|
452
|
-
|
453
|
-
|
454
|
-
|
455
|
-
|
461
|
+
<div id="sorters">
|
462
|
+
Sort
|
463
|
+
<md-icon
|
464
|
+
@click=${(e: Event) => {
|
465
|
+
const target = e.currentTarget as HTMLElement
|
466
|
+
;(target.closest('#sorters')!.querySelector('#sorter-control') as any).open({
|
467
|
+
right: 0,
|
468
|
+
top: target.offsetTop + target.offsetHeight
|
469
|
+
})
|
470
|
+
}}
|
471
|
+
>expand_more</md-icon
|
472
|
+
>
|
473
|
+
<ox-popup id="sorter-control">
|
474
|
+
<ox-sorters-control> </ox-sorters-control>
|
475
|
+
</ox-popup>
|
476
|
+
</div>
|
477
|
+
|
478
|
+
<div id="modes">
|
479
|
+
<md-icon @click=${() => (mode = 'GRID')} ?active=${mode == 'GRID'}>grid_on</md-icon>
|
480
|
+
<md-icon @click=${() => (mode = 'LIST')} ?active=${mode == 'LIST'}>format_list_bulleted</md-icon>
|
481
|
+
<md-icon @click=${() => (mode = 'CARD')} ?active=${mode == 'CARD'}>apps</md-icon>
|
482
|
+
</div>
|
456
483
|
|
457
|
-
|
458
|
-
|
459
|
-
|
484
|
+
<ox-record-creator id="add" light-popup>
|
485
|
+
<button><md-icon>add</md-icon></button>
|
486
|
+
</ox-record-creator>
|
487
|
+
</div>
|
460
488
|
</div>
|
461
489
|
|
462
490
|
<ox-grist-personalizer slot="setting" ?debug=${debug}></ox-grist-personalizer>
|