@operato/data-grist 7.0.43 → 7.0.45
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 +18 -0
- package/dist/src/data-card/data-card-gutter.js +49 -22
- package/dist/src/data-card/data-card-gutter.js.map +1 -1
- package/dist/src/data-card/data-card.js +4 -3
- package/dist/src/data-card/data-card.js.map +1 -1
- package/dist/src/data-card/record-card.js +23 -52
- package/dist/src/data-card/record-card.js.map +1 -1
- package/dist/src/data-grid/data-grid-field.js +38 -1
- package/dist/src/data-grid/data-grid-field.js.map +1 -1
- package/dist/src/data-list/data-list-gutter.js +26 -1
- package/dist/src/data-list/data-list-gutter.js.map +1 -1
- package/dist/src/gutters/gutter-button.d.ts +18 -1
- package/dist/src/gutters/gutter-button.js +9 -8
- package/dist/src/gutters/gutter-button.js.map +1 -1
- package/dist/src/gutters/gutter-dirty.d.ts +3 -3
- package/dist/src/gutters/gutter-dirty.js +2 -2
- package/dist/src/gutters/gutter-dirty.js.map +1 -1
- package/dist/src/gutters/gutter-row-selector.d.ts +19 -1
- package/dist/src/gutters/gutter-row-selector.js +3 -3
- package/dist/src/gutters/gutter-row-selector.js.map +1 -1
- package/dist/src/gutters/gutter-sequence.d.ts +33 -1
- package/dist/src/gutters/gutter-sequence.js +1 -1
- package/dist/src/gutters/gutter-sequence.js.map +1 -1
- package/dist/src/types.d.ts +6 -0
- package/dist/src/types.js.map +1 -1
- package/dist/stories/grid-setting.stories.js +2 -1
- package/dist/stories/grid-setting.stories.js.map +1 -1
- package/dist/stories/grist-modes.stories.js +8 -3
- package/dist/stories/grist-modes.stories.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +3 -3
- package/src/data-card/data-card-gutter.ts +49 -23
- package/src/data-card/data-card.ts +4 -3
- package/src/data-card/record-card.ts +23 -52
- package/src/data-grid/data-grid-field.ts +38 -1
- package/src/data-list/data-list-gutter.ts +26 -1
- package/src/gutters/gutter-button.ts +10 -10
- package/src/gutters/gutter-dirty.ts +3 -3
- package/src/gutters/gutter-row-selector.ts +4 -4
- package/src/gutters/gutter-sequence.ts +2 -2
- package/src/types.ts +6 -0
- package/stories/grid-setting.stories.ts +2 -1
- package/stories/grist-modes.stories.ts +8 -3
@@ -4,38 +4,61 @@ import { customElement, property } from 'lit/decorators.js'
|
|
4
4
|
import { ZERO_COLUMN, ZERO_RECORD } from '../configure/zero-config'
|
5
5
|
import { ColumnConfig, GristRecord } from '../types'
|
6
6
|
|
7
|
-
const DEFAULT_TEXT_ALIGN = 'left'
|
8
|
-
|
9
7
|
@customElement('ox-card-gutter')
|
10
8
|
export class DataCardGutter extends LitElement {
|
11
9
|
static styles = [
|
12
10
|
css`
|
13
11
|
:host {
|
12
|
+
display: flex;
|
14
13
|
background-color: transparent;
|
15
14
|
align-content: center;
|
16
|
-
|
15
|
+
align-items: center;
|
17
16
|
text-overflow: ellipsis;
|
18
|
-
|
17
|
+
}
|
18
|
+
|
19
|
+
:host([row-selector]) {
|
20
|
+
margin-right: auto;
|
19
21
|
}
|
20
22
|
|
21
23
|
* {
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
24
|
+
border: 0;
|
25
|
+
font-size: var(--md-sys-typescale-label-medium-size, 0.8rem);
|
26
|
+
line-height: var(--md-sys-typescale-label-medium-size, 0.8rem);
|
27
|
+
|
28
|
+
color: var(--md-sys-color-on-primary);
|
29
|
+
background-color: var(--md-sys-color-primary);
|
30
|
+
border-radius: var(--data-card-item-btn-border-radius, var(--md-sys-shape-corner-tiny));
|
31
|
+
|
32
|
+
padding: var(--spacing-small);
|
28
33
|
}
|
29
34
|
|
30
35
|
*:hover {
|
31
36
|
cursor: pointer;
|
32
|
-
background-color: var(--md-sys-color-
|
37
|
+
background-color: var(--md-sys-color-secondary);
|
38
|
+
color: var(--md-sys-color-on-secondary);
|
39
|
+
}
|
40
|
+
|
41
|
+
:host([danger]) button {
|
42
|
+
background-color: var(--md-sys-color-error);
|
33
43
|
color: var(--md-sys-color-on-primary);
|
34
44
|
}
|
35
45
|
|
36
|
-
|
37
|
-
|
38
|
-
|
46
|
+
:host([danger]) button:hover {
|
47
|
+
background-color: var(--md-sys-color-secondary);
|
48
|
+
color: var(--md-sys-color-on-secondary);
|
49
|
+
}
|
50
|
+
|
51
|
+
button {
|
52
|
+
display: flex;
|
53
|
+
gap: var(--spacing-small);
|
54
|
+
border: 0;
|
55
|
+
align-items: center;
|
56
|
+
}
|
57
|
+
|
58
|
+
button md-icon {
|
59
|
+
border: 0;
|
60
|
+
padding: 0;
|
61
|
+
background-color: unset;
|
39
62
|
}
|
40
63
|
`
|
41
64
|
]
|
@@ -60,15 +83,18 @@ export class DataCardGutter extends LitElement {
|
|
60
83
|
|
61
84
|
updated(changes: PropertyValues<this>) {
|
62
85
|
if (changes.has('column')) {
|
63
|
-
|
64
|
-
|
65
|
-
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
70
|
-
|
71
|
-
|
86
|
+
const { gutterName, danger } = this.column
|
87
|
+
|
88
|
+
if (gutterName == 'row-selector') {
|
89
|
+
this.setAttribute('row-selector', '')
|
90
|
+
} else {
|
91
|
+
this.removeAttribute('row-selector')
|
92
|
+
}
|
93
|
+
|
94
|
+
if (danger) {
|
95
|
+
this.setAttribute('danger', '')
|
96
|
+
} else {
|
97
|
+
this.removeAttribute('danger')
|
72
98
|
}
|
73
99
|
}
|
74
100
|
}
|
@@ -17,7 +17,7 @@ export class DataCard extends DataManipulator {
|
|
17
17
|
padding: var(--spacing-medium);
|
18
18
|
|
19
19
|
display: grid;
|
20
|
-
grid-template-columns: repeat(auto-fill, minmax(
|
20
|
+
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
|
21
21
|
grid-template-rows: min-content;
|
22
22
|
grid-gap: var(--spacing-large);
|
23
23
|
}
|
@@ -50,8 +50,8 @@ export class DataCard extends DataManipulator {
|
|
50
50
|
transform: translate(-50%, -50%);
|
51
51
|
}
|
52
52
|
|
53
|
-
|
54
|
-
|
53
|
+
[card][emphasized-row],
|
54
|
+
[card][emphasized-row][focused] {
|
55
55
|
background-color: var(--grid-record-emphasized-background-color);
|
56
56
|
color: var(--grid-record-emphasized-color);
|
57
57
|
}
|
@@ -131,6 +131,7 @@ export class DataCard extends DataManipulator {
|
|
131
131
|
.emphasized=${emphasized}
|
132
132
|
?selected-row=${record['__selected__']}
|
133
133
|
?dirty=${record['__dirty__']}
|
134
|
+
card
|
134
135
|
></ox-record-card>
|
135
136
|
`
|
136
137
|
})}
|
@@ -40,6 +40,7 @@ export class RecordCard extends LitElement {
|
|
40
40
|
border-radius: var(--data-card-record-card-border-radius);
|
41
41
|
border: var(--data-card-record-card-border);
|
42
42
|
height: min-content;
|
43
|
+
padding: var(--spacing-small) var(--spacing-none);
|
43
44
|
}
|
44
45
|
|
45
46
|
:host(:hover) {
|
@@ -78,21 +79,16 @@ export class RecordCard extends LitElement {
|
|
78
79
|
}
|
79
80
|
|
80
81
|
[thumbnail] {
|
81
|
-
width: 100%;
|
82
82
|
height: var(--data-card-thumbnail-height);
|
83
83
|
border-top-left-radius: var(--data-card-record-card-border-radius);
|
84
84
|
border-top-right-radius: var(--data-card-record-card-border-radius);
|
85
85
|
overflow: hidden;
|
86
|
-
margin-top: var(--spacing-medium);
|
87
86
|
}
|
88
87
|
|
89
88
|
[content] {
|
90
|
-
display:
|
91
|
-
|
92
|
-
|
93
|
-
'brief gutters'
|
94
|
-
'detail detail';
|
95
|
-
grid-template-columns: 1fr 35px;
|
89
|
+
display: flex;
|
90
|
+
flex-direction: column;
|
91
|
+
gap: var(--spacing-tiny);
|
96
92
|
margin: var(--data-card-item-margin);
|
97
93
|
}
|
98
94
|
|
@@ -100,20 +96,16 @@ export class RecordCard extends LitElement {
|
|
100
96
|
display: flex;
|
101
97
|
flex-direction: column;
|
102
98
|
gap: var(--spacing-tiny);
|
103
|
-
grid-area: brief;
|
104
99
|
overflow: hidden;
|
105
100
|
}
|
106
101
|
|
107
102
|
[gutters] {
|
108
|
-
|
109
|
-
|
110
|
-
|
111
|
-
|
112
|
-
|
113
|
-
|
114
|
-
|
115
|
-
ox-card-gutter {
|
116
|
-
flex: 0 0 14px;
|
103
|
+
display: flex;
|
104
|
+
flex-direction: row;
|
105
|
+
gap: var(--spacing-small);
|
106
|
+
margin: var(--spacing-small) var(--spacing-medium);
|
107
|
+
justify-content: end;
|
108
|
+
align-items: stretch;
|
117
109
|
}
|
118
110
|
|
119
111
|
ox-card-field {
|
@@ -194,7 +186,6 @@ export class RecordCard extends LitElement {
|
|
194
186
|
const thumbnailColumn = thumbnail ? columns.find(column => column.name == thumbnail) : undefined
|
195
187
|
|
196
188
|
const gutters = (columns || []).filter(column => column.type == 'gutter' && column.forList)
|
197
|
-
const firstGutter = gutters[0]
|
198
189
|
|
199
190
|
if (this.hasAttribute('dirty')) {
|
200
191
|
var dirtyIcon
|
@@ -225,39 +216,6 @@ export class RecordCard extends LitElement {
|
|
225
216
|
: html``}
|
226
217
|
|
227
218
|
<div content>
|
228
|
-
<div gutters>
|
229
|
-
${firstGutter
|
230
|
-
? html`
|
231
|
-
<ox-card-gutter
|
232
|
-
.rowIndex=${rowIndex}
|
233
|
-
.column=${firstGutter}
|
234
|
-
.record=${record}
|
235
|
-
.value=${record[firstGutter.name]}
|
236
|
-
></ox-card-gutter>
|
237
|
-
`
|
238
|
-
: html``}
|
239
|
-
${gutters.length === 2
|
240
|
-
? html`
|
241
|
-
<ox-card-gutter
|
242
|
-
.rowIndex=${rowIndex}
|
243
|
-
.column=${gutters[1]}
|
244
|
-
.record=${record}
|
245
|
-
.value=${record[gutters[1].name]}
|
246
|
-
></ox-card-gutter>
|
247
|
-
`
|
248
|
-
: gutters.length > 2
|
249
|
-
? html`
|
250
|
-
<ox-card-gutter-menu
|
251
|
-
.gutters=${gutters}
|
252
|
-
.rowIndex=${rowIndex}
|
253
|
-
.record=${record}
|
254
|
-
.clickHandler=${this.clickHandler}
|
255
|
-
.dblclickHandler=${this.dblclickHandler}
|
256
|
-
></ox-card-gutter-menu>
|
257
|
-
`
|
258
|
-
: html``}
|
259
|
-
</div>
|
260
|
-
|
261
219
|
<div brief>
|
262
220
|
${briefFields.map(
|
263
221
|
(column, idx) => html`
|
@@ -289,6 +247,19 @@ export class RecordCard extends LitElement {
|
|
289
247
|
`
|
290
248
|
: html``}
|
291
249
|
</div>
|
250
|
+
|
251
|
+
<div gutters>
|
252
|
+
${gutters.map(gutter => {
|
253
|
+
return html`
|
254
|
+
<ox-card-gutter
|
255
|
+
.rowIndex=${rowIndex}
|
256
|
+
.column=${gutter}
|
257
|
+
.record=${record}
|
258
|
+
.value=${record[gutter.name]}
|
259
|
+
></ox-card-gutter>
|
260
|
+
`
|
261
|
+
})}
|
262
|
+
</div>
|
292
263
|
`
|
293
264
|
}
|
294
265
|
|
@@ -39,7 +39,6 @@ export class DataGridField extends LitElement {
|
|
39
39
|
|
40
40
|
:host([gutter]) * {
|
41
41
|
cursor: default;
|
42
|
-
font-size:1.2em;
|
43
42
|
}
|
44
43
|
|
45
44
|
:host([editing]) {
|
@@ -79,6 +78,37 @@ export class DataGridField extends LitElement {
|
|
79
78
|
flex: none;
|
80
79
|
margin: 0 auto;
|
81
80
|
}
|
81
|
+
|
82
|
+
:host > button {
|
83
|
+
display: flex;
|
84
|
+
gap: var(--spacing-small);
|
85
|
+
border: 0;
|
86
|
+
align-items: center;
|
87
|
+
padding: var(--spacing-small);
|
88
|
+
|
89
|
+
color: var(--md-sys-color-on-primary);
|
90
|
+
background-color: var(--md-sys-color-primary);
|
91
|
+
border-radius: var(--data-card-item-btn-border-radius, var(--md-sys-shape-corner-tiny));
|
92
|
+
|
93
|
+
font-size: 0.8rem;
|
94
|
+
line-height: 0.8rem;
|
95
|
+
|
96
|
+
md-icon {
|
97
|
+
border: 0;
|
98
|
+
padding: 0;
|
99
|
+
background-color: unset;
|
100
|
+
}
|
101
|
+
}
|
102
|
+
|
103
|
+
:host([danger]) > button {
|
104
|
+
background-color: var(--md-sys-color-error);
|
105
|
+
color: var(--md-sys-color-on-primary);
|
106
|
+
}
|
107
|
+
|
108
|
+
:host([danger]) > button:hover {
|
109
|
+
background-color: var(--md-sys-color-secondary);
|
110
|
+
color: var(--md-sys-color-on-secondary);
|
111
|
+
}
|
82
112
|
`
|
83
113
|
]
|
84
114
|
|
@@ -154,6 +184,13 @@ export class DataGridField extends LitElement {
|
|
154
184
|
this.style.setProperty('--data-grid-field-justify-content', justify)
|
155
185
|
this.style.setProperty('--data-grid-field-text-align', align)
|
156
186
|
}
|
187
|
+
|
188
|
+
const { danger } = this.column
|
189
|
+
if (danger) {
|
190
|
+
this.setAttribute('danger', '')
|
191
|
+
} else {
|
192
|
+
this.removeAttribute('danger')
|
193
|
+
}
|
157
194
|
}
|
158
195
|
|
159
196
|
if (changes.has('fixed')) {
|
@@ -38,13 +38,31 @@ export class DataListGutter extends LitElement {
|
|
38
38
|
|
39
39
|
* {
|
40
40
|
flex: 1;
|
41
|
-
|
41
|
+
border: 0;
|
42
|
+
font-size: var(--md-sys-typescale-label-medium-size, 0.8rem);
|
43
|
+
line-height: var(--md-sys-typescale-label-medium-size, 0.8rem);
|
44
|
+
|
45
|
+
background-color: transparent;
|
46
|
+
padding: var(--spacing-small);
|
42
47
|
}
|
43
48
|
|
44
49
|
*[center] {
|
45
50
|
flex: none;
|
46
51
|
margin: var(--spacing-none) auto;
|
47
52
|
}
|
53
|
+
|
54
|
+
button {
|
55
|
+
display: flex;
|
56
|
+
gap: var(--spacing-small);
|
57
|
+
border: 0;
|
58
|
+
align-items: center;
|
59
|
+
}
|
60
|
+
|
61
|
+
button md-icon {
|
62
|
+
border: 0;
|
63
|
+
padding: 0;
|
64
|
+
background-color: unset;
|
65
|
+
}
|
48
66
|
`
|
49
67
|
]
|
50
68
|
|
@@ -78,6 +96,13 @@ export class DataListGutter extends LitElement {
|
|
78
96
|
}
|
79
97
|
this.style.setProperty('--data-list-gutter-justify-content', justify)
|
80
98
|
}
|
99
|
+
|
100
|
+
const { danger } = this.column
|
101
|
+
if (danger) {
|
102
|
+
this.setAttribute('danger', '')
|
103
|
+
} else {
|
104
|
+
this.removeAttribute('danger')
|
105
|
+
}
|
81
106
|
}
|
82
107
|
}
|
83
108
|
}
|
@@ -1,35 +1,35 @@
|
|
1
1
|
import '@material/web/icon/icon.js'
|
2
2
|
|
3
3
|
import { html } from 'lit'
|
4
|
+
import { ifDefined } from 'lit/directives/if-defined.js'
|
4
5
|
|
5
|
-
import { FieldRenderer, HeaderRenderer } from '../types'
|
6
|
+
import { ColumnConfig, FieldRenderer, GristRecord, HeaderRenderer } from '../types'
|
6
7
|
|
7
8
|
export class GutterButton {
|
8
|
-
static instance(config:
|
9
|
-
var { icon = 'edit', title } = config
|
9
|
+
static instance(config: Partial<ColumnConfig> = { type: 'gutter', gutterName: 'button' }) {
|
10
|
+
var { icon = 'edit', title, iconOnly = true } = config
|
10
11
|
|
11
|
-
var iconFn = typeof icon == 'function' ? icon : () => icon
|
12
|
-
|
13
|
-
var inlineHeaderStyle = 'margin-top:1px;'
|
14
|
-
var inlineRecordStyle = 'margin-top:1px;'
|
12
|
+
var iconFn = typeof icon == 'function' ? icon : (record?: GristRecord) => icon
|
15
13
|
|
16
14
|
return Object.assign(
|
17
15
|
{},
|
18
16
|
{
|
19
17
|
type: 'gutter',
|
20
|
-
|
18
|
+
gutterName: 'button',
|
21
19
|
width: 26,
|
22
20
|
resizable: false,
|
23
21
|
sortable: false,
|
24
22
|
header: {
|
25
23
|
renderer: function (column) {
|
26
|
-
return html` <md-icon
|
24
|
+
return iconOnly ? html` <md-icon title=${ifDefined(title)}>${iconFn()}</md-icon> ` : title
|
27
25
|
} as HeaderRenderer
|
28
26
|
},
|
29
27
|
record: {
|
30
28
|
align: 'center',
|
31
29
|
renderer: function (value, column, record, rowIndex, field) {
|
32
|
-
return
|
30
|
+
return iconOnly
|
31
|
+
? html` <md-icon title=${ifDefined(title)}>${iconFn(record)}</md-icon> `
|
32
|
+
: html`<button><md-icon>${iconFn()}</md-icon>${title}</button>`
|
33
33
|
} as FieldRenderer
|
34
34
|
},
|
35
35
|
forGrid: true,
|
@@ -50,16 +50,16 @@ class GutterDirtyElement extends LitElement {
|
|
50
50
|
}
|
51
51
|
|
52
52
|
const INLINESTYLE =
|
53
|
-
'font-size: var(--grid-record-fontsize);vertical-align: middle; color: var(--grid-record-dirty-color)'
|
53
|
+
'font-size: var(--grid-record-fontsize); vertical-align: middle; color: var(--grid-record-dirty-color)'
|
54
54
|
|
55
55
|
export class GutterDirty {
|
56
|
-
static instance(config: ColumnConfig = { type: 'gutter', name: '__dirty__' }
|
56
|
+
static instance(config: Partial<ColumnConfig> = { type: 'gutter', name: '__dirty__' }) {
|
57
57
|
return Object.assign(
|
58
58
|
{},
|
59
59
|
{
|
60
60
|
type: 'gutter',
|
61
61
|
name: '__dirty__',
|
62
|
-
|
62
|
+
gutterName: 'dirty',
|
63
63
|
width: 30,
|
64
64
|
resizable: false,
|
65
65
|
sortable: false,
|
@@ -3,16 +3,16 @@ import { html } from 'lit'
|
|
3
3
|
import { DataCard } from '../data-card/data-card'
|
4
4
|
import { DataGrid } from '../data-grid/data-grid'
|
5
5
|
import { DataList } from '../data-list/data-list'
|
6
|
-
import { FieldRenderer, HeaderRenderer } from '../types'
|
6
|
+
import { ColumnConfig, FieldRenderer, HeaderRenderer } from '../types'
|
7
7
|
|
8
8
|
export class GutterRowSelector {
|
9
|
-
static instance(config = {
|
9
|
+
static instance(config: Partial<ColumnConfig> = { type: 'gutter', name: '__selected__' }) {
|
10
10
|
return Object.assign(
|
11
11
|
{},
|
12
12
|
{
|
13
13
|
type: 'gutter',
|
14
14
|
name: '__selected__',
|
15
|
-
|
15
|
+
gutterName: 'row-selector',
|
16
16
|
width: 30,
|
17
17
|
resizable: false,
|
18
18
|
sortable: false,
|
@@ -23,7 +23,7 @@ export class GutterRowSelector {
|
|
23
23
|
return html`
|
24
24
|
<input
|
25
25
|
type="checkbox"
|
26
|
-
.checked=${checked}
|
26
|
+
.checked=${!!checked}
|
27
27
|
@change=${(e: Event) => {
|
28
28
|
let selected = column.multiple ? (e.target as HTMLInputElement).checked : false
|
29
29
|
|
@@ -1,10 +1,10 @@
|
|
1
1
|
import { DataCard } from '../data-card/data-card'
|
2
2
|
import { DataGrid } from '../data-grid/data-grid'
|
3
3
|
import { DataList } from '../data-list/data-list'
|
4
|
-
import { ColumnWidthCallback, FieldRenderer, GristEventHandler } from '../types'
|
4
|
+
import { ColumnConfig, ColumnWidthCallback, FieldRenderer, GristEventHandler } from '../types'
|
5
5
|
|
6
6
|
export class GutterSequence {
|
7
|
-
static instance(config = {
|
7
|
+
static instance(config: Partial<ColumnConfig> = { type: 'gutter', name: '__seq__' }) {
|
8
8
|
return {
|
9
9
|
type: 'gutter',
|
10
10
|
name: '__seq__',
|
package/src/types.ts
CHANGED
@@ -344,7 +344,13 @@ export type ColumnConfig = {
|
|
344
344
|
* 또한 Gutter 열은 행을 선택하거나 행의 상태를 나타내는 체크박스를 포함할 수도 있습니다.
|
345
345
|
*/
|
346
346
|
gutterName?: 'button' | 'sequence' | 'row-selector' | 'dirty'
|
347
|
+
title?: string
|
347
348
|
fixed?: boolean
|
349
|
+
/** [begin] only for button gutter column */
|
350
|
+
icon?: string
|
351
|
+
iconOnly?: boolean
|
352
|
+
danger?: boolean
|
353
|
+
/** [end] only for button gutter column */
|
348
354
|
header: HeaderConfig
|
349
355
|
record: RecordConfig
|
350
356
|
handlers: GristEventHandlerSet
|
@@ -390,6 +390,7 @@ const Template: Story<ArgTypes> = ({
|
|
390
390
|
<link href="/themes/light.css" rel="stylesheet" />
|
391
391
|
<link href="/themes/dark.css" rel="stylesheet" />
|
392
392
|
<link href="/themes/spacing.css" rel="stylesheet" />
|
393
|
+
<link href="/themes/material-theme.css" rel="stylesheet" />
|
393
394
|
<link href="/themes/grist-theme.css" rel="stylesheet" />
|
394
395
|
|
395
396
|
<link
|
@@ -416,7 +417,7 @@ const Template: Story<ArgTypes> = ({
|
|
416
417
|
|
417
418
|
<style>
|
418
419
|
ox-grist {
|
419
|
-
|
420
|
+
flex: 1;
|
420
421
|
}
|
421
422
|
|
422
423
|
ox-filters-form {
|
@@ -100,7 +100,9 @@ const config = {
|
|
100
100
|
type: 'gutter',
|
101
101
|
gutterName: 'button',
|
102
102
|
icon: 'edit',
|
103
|
-
|
103
|
+
iconOnly: false,
|
104
|
+
title: '수정편집',
|
105
|
+
width: 120,
|
104
106
|
handlers: {
|
105
107
|
click: function () {
|
106
108
|
console.log('clicked')
|
@@ -111,7 +113,9 @@ const config = {
|
|
111
113
|
type: 'gutter',
|
112
114
|
gutterName: 'button',
|
113
115
|
icon: 'add',
|
114
|
-
|
116
|
+
iconOnly: false,
|
117
|
+
title: '행추가',
|
118
|
+
width: 120,
|
115
119
|
handlers: {
|
116
120
|
click: 'record-copy'
|
117
121
|
}
|
@@ -362,6 +366,7 @@ const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive =
|
|
362
366
|
<link href="/themes/light.css" rel="stylesheet" />
|
363
367
|
<link href="/themes/dark.css" rel="stylesheet" />
|
364
368
|
<link href="/themes/spacing.css" rel="stylesheet" />
|
369
|
+
<link href="/themes/material-theme.css" rel="stylesheet" />
|
365
370
|
<link href="/themes/grist-theme.css" rel="stylesheet" />
|
366
371
|
|
367
372
|
<link
|
@@ -388,7 +393,7 @@ const Template: Story<ArgTypes> = ({ config, mode = 'GRID', urlParamsSensitive =
|
|
388
393
|
|
389
394
|
<style>
|
390
395
|
ox-grist {
|
391
|
-
|
396
|
+
flex: 1;
|
392
397
|
}
|
393
398
|
|
394
399
|
ox-filters-form {
|