@operato/data-grist 7.0.25 → 7.0.27
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 +19 -0
- package/dist/src/data-card/data-card.js +13 -15
- package/dist/src/data-card/data-card.js.map +1 -1
- package/dist/src/data-card/record-card.d.ts +1 -0
- package/dist/src/data-card/record-card.js +33 -2
- package/dist/src/data-card/record-card.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-header.js +1 -1
- package/dist/src/data-grid/data-grid-header.js.map +1 -1
- package/dist/src/data-grid/data-grid.js +1 -1
- package/dist/src/data-grid/data-grid.js.map +1 -1
- package/dist/src/data-grist.js +1 -1
- package/dist/src/data-grist.js.map +1 -1
- package/dist/src/data-list/data-list-field.js +2 -2
- package/dist/src/data-list/data-list-field.js.map +1 -1
- package/dist/src/data-list/data-list.js +13 -2
- package/dist/src/data-list/data-list.js.map +1 -1
- package/dist/src/data-list/record-partial.d.ts +1 -0
- package/dist/src/data-list/record-partial.js +21 -0
- package/dist/src/data-list/record-partial.js.map +1 -1
- package/dist/src/record-view/record-view-body.js +4 -0
- package/dist/src/record-view/record-view-body.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +2 -2
- package/src/data-card/data-card.ts +13 -16
- package/src/data-card/record-card.ts +32 -2
- package/src/data-grid/data-grid-body.ts +3 -3
- package/src/data-grid/data-grid-header.ts +1 -1
- package/src/data-grid/data-grid.ts +1 -1
- package/src/data-grist.ts +1 -1
- package/src/data-list/data-list-field.ts +2 -2
- package/src/data-list/data-list.ts +14 -3
- package/src/data-list/record-partial.ts +20 -0
- package/src/record-view/record-view-body.ts +4 -0
@@ -22,19 +22,6 @@ export class DataCard extends DataManipulator {
|
|
22
22
|
grid-gap: var(--spacing-large);
|
23
23
|
}
|
24
24
|
|
25
|
-
ox-record-card {
|
26
|
-
height: min-content;
|
27
|
-
align-items: stretch;
|
28
|
-
background-color: var(--data-card-record-card-background-color);
|
29
|
-
border: var(--data-card-record-card-border);
|
30
|
-
border-radius: var(--data-card-record-card-border-radius);
|
31
|
-
}
|
32
|
-
ox-record-card:hover {
|
33
|
-
background-color:var(--md-sys-color-surface);
|
34
|
-
border: var(--data-card-record-card-border-hover);
|
35
|
-
box-shadow: var(--data-card-record-card-boxshadow-hover);
|
36
|
-
}
|
37
|
-
|
38
25
|
[selected-row] {
|
39
26
|
background-color: var(--grid-record-selected-background-color);
|
40
27
|
}
|
@@ -63,6 +50,12 @@ export class DataCard extends DataManipulator {
|
|
63
50
|
transform: translate(-50%, -50%);
|
64
51
|
}
|
65
52
|
|
53
|
+
ox-record-card[emphasized-row],
|
54
|
+
ox-record-card[emphasized-row][focused] {
|
55
|
+
background-color: var(--grid-record-emphasized-background-color);
|
56
|
+
color: var(--grid-record-emphasized-color);
|
57
|
+
}
|
58
|
+
|
66
59
|
@media screen and (max-width: 460px) {
|
67
60
|
#setting {
|
68
61
|
grid-template-columns: 1fr;
|
@@ -118,6 +111,7 @@ export class DataCard extends DataManipulator {
|
|
118
111
|
}
|
119
112
|
|
120
113
|
render() {
|
114
|
+
var { classifier } = this.config.rows
|
121
115
|
var records = this._records || []
|
122
116
|
|
123
117
|
if (this.config && this.config.rows.appendable) {
|
@@ -125,18 +119,21 @@ export class DataCard extends DataManipulator {
|
|
125
119
|
}
|
126
120
|
|
127
121
|
return html`
|
128
|
-
${records.map(
|
129
|
-
(record, rowIndex)
|
122
|
+
${records.map((record, rowIndex) => {
|
123
|
+
var { emphasized } = classifier.call(null, record, rowIndex) || {}
|
124
|
+
|
125
|
+
return html`
|
130
126
|
<ox-record-card
|
131
127
|
.config=${this.config}
|
132
128
|
.data=${this.data}
|
133
129
|
.record=${record}
|
134
130
|
.rowIndex=${rowIndex}
|
131
|
+
.emphasized=${emphasized}
|
135
132
|
?selected-row=${record['__selected__']}
|
136
133
|
?dirty=${record['__dirty__']}
|
137
134
|
></ox-record-card>
|
138
135
|
`
|
139
|
-
)}
|
136
|
+
})}
|
140
137
|
${this.empty ? html` <ox-empty-note title="NO RECORDS"></ox-empty-note> ` : html``}
|
141
138
|
${this.isTop
|
142
139
|
? html``
|
@@ -34,8 +34,18 @@ export class RecordCard extends LitElement {
|
|
34
34
|
:host {
|
35
35
|
display: flex;
|
36
36
|
flex-direction: column;
|
37
|
-
align-items:
|
37
|
+
align-items: stretch;
|
38
38
|
position: relative;
|
39
|
+
background-color: var(--data-card-record-card-background-color);
|
40
|
+
border-radius: var(--data-card-record-card-border-radius);
|
41
|
+
border: var(--data-card-record-card-border);
|
42
|
+
height: min-content;
|
43
|
+
}
|
44
|
+
|
45
|
+
:host(:hover) {
|
46
|
+
background-color: var(--md-sys-color-surface);
|
47
|
+
border: var(--data-card-record-card-border-hover);
|
48
|
+
box-shadow: var(--data-card-record-card-boxshadow-hover);
|
39
49
|
}
|
40
50
|
|
41
51
|
:host([dirty])::before {
|
@@ -50,6 +60,11 @@ export class RecordCard extends LitElement {
|
|
50
60
|
border-right: var(--grid-record-dirty-border-left);
|
51
61
|
}
|
52
62
|
|
63
|
+
:host[emphasized-row] {
|
64
|
+
background-color: var(--grid-record-emphasized-background-color);
|
65
|
+
color: var(--grid-record-emphasized-color);
|
66
|
+
}
|
67
|
+
|
53
68
|
[dirty] {
|
54
69
|
position: absolute;
|
55
70
|
margin: var(--spacing-none);
|
@@ -68,7 +83,7 @@ export class RecordCard extends LitElement {
|
|
68
83
|
border-top-left-radius: var(--data-card-record-card-border-radius);
|
69
84
|
border-top-right-radius: var(--data-card-record-card-border-radius);
|
70
85
|
overflow: hidden;
|
71
|
-
margin-top:var(--spacing-medium);
|
86
|
+
margin-top: var(--spacing-medium);
|
72
87
|
}
|
73
88
|
|
74
89
|
[content] {
|
@@ -127,6 +142,7 @@ export class RecordCard extends LitElement {
|
|
127
142
|
* (이를 해주지 않으면, 리스트 refresh 경우에 selected-row checkbox가 클리어되지 않는 현상이 발생함.)
|
128
143
|
*/
|
129
144
|
@property({ type: Boolean, attribute: 'selected-row' }) selectedRow: boolean = false
|
145
|
+
@property({ attribute: false }) emphasized: any = false
|
130
146
|
|
131
147
|
private _recordView: any
|
132
148
|
private clickHandler = recordCardClickHandler.bind(this) as EventListener
|
@@ -149,6 +165,20 @@ export class RecordCard extends LitElement {
|
|
149
165
|
if (changes.has('record') && this._recordView) {
|
150
166
|
this._recordView.record = this.record
|
151
167
|
}
|
168
|
+
|
169
|
+
const emphasized = this.emphasized
|
170
|
+
|
171
|
+
if (!!emphasized) {
|
172
|
+
this.setAttribute('emphasized-row', '')
|
173
|
+
|
174
|
+
if (Symbol.iterator in Object(emphasized)) {
|
175
|
+
const [backgroundColor, foregroundColor] = emphasized as string[]
|
176
|
+
backgroundColor && this.style.setProperty('--grid-record-emphasized-background-color', backgroundColor)
|
177
|
+
foregroundColor && this.style.setProperty('--grid-record-emphasized-color', foregroundColor)
|
178
|
+
}
|
179
|
+
} else {
|
180
|
+
this.removeAttribute('emphasized-row')
|
181
|
+
}
|
152
182
|
}
|
153
183
|
|
154
184
|
render() {
|
@@ -72,13 +72,13 @@ export class DataGridBody extends LitElement {
|
|
72
72
|
border: var(--grid-record-focused-cell-border);
|
73
73
|
background-image: var(--focused-background-image);
|
74
74
|
pointer-events: none;
|
75
|
-
z-index:
|
75
|
+
z-index: 5;
|
76
76
|
}
|
77
77
|
|
78
78
|
[fixed] {
|
79
79
|
position: sticky;
|
80
80
|
background-color: var(--grid-record-background-color);
|
81
|
-
z-index:
|
81
|
+
z-index: 2; /* 고정된 열을 다른 열 위에 표시. */
|
82
82
|
}
|
83
83
|
|
84
84
|
:host([raised]) [fixed] {
|
@@ -89,7 +89,7 @@ export class DataGridBody extends LitElement {
|
|
89
89
|
ox-grid-accum-field {
|
90
90
|
position: sticky;
|
91
91
|
bottom: 0;
|
92
|
-
z-index:
|
92
|
+
z-index: 1;
|
93
93
|
}
|
94
94
|
|
95
95
|
ox-grid-accum-field[fixed] {
|
package/src/data-grist.ts
CHANGED
@@ -47,6 +47,12 @@ export class DataList extends DataManipulator {
|
|
47
47
|
top: 50%;
|
48
48
|
transform: translate(-50%, -50%);
|
49
49
|
}
|
50
|
+
|
51
|
+
ox-record-partial[emphasized-row],
|
52
|
+
ox-record-partial[emphasized-row][focused] {
|
53
|
+
background-color: var(--grid-record-emphasized-background-color);
|
54
|
+
color: var(--grid-record-emphasized-color);
|
55
|
+
}
|
50
56
|
`
|
51
57
|
]
|
52
58
|
|
@@ -96,6 +102,8 @@ export class DataList extends DataManipulator {
|
|
96
102
|
}
|
97
103
|
|
98
104
|
render() {
|
105
|
+
var { classifier } = this.config.rows
|
106
|
+
|
99
107
|
var records = this._records || []
|
100
108
|
|
101
109
|
if (this.config && this.config.rows.appendable) {
|
@@ -103,18 +111,21 @@ export class DataList extends DataManipulator {
|
|
103
111
|
}
|
104
112
|
|
105
113
|
return html`
|
106
|
-
${records.map(
|
107
|
-
(record, rowIndex)
|
114
|
+
${records.map((record, rowIndex) => {
|
115
|
+
var { emphasized } = classifier.call(null, record, rowIndex) || {}
|
116
|
+
|
117
|
+
return html`
|
108
118
|
<ox-record-partial
|
109
119
|
.config=${this.config}
|
110
120
|
.data=${this.data}
|
111
121
|
.record=${record}
|
112
122
|
.rowIndex=${rowIndex}
|
123
|
+
.emphasized=${emphasized}
|
113
124
|
?selected-row=${record['__selected__']}
|
114
125
|
?dirty=${record['__dirty__']}
|
115
126
|
></ox-record-partial>
|
116
127
|
`
|
117
|
-
)}
|
128
|
+
})}
|
118
129
|
${this.empty ? html` <ox-empty-note title="NO RECORDS"></ox-empty-note> ` : html``}
|
119
130
|
${this.isTop
|
120
131
|
? html``
|
@@ -54,6 +54,11 @@ export class RecordPartial extends LitElement {
|
|
54
54
|
border-right: var(--grid-record-dirty-border-left);
|
55
55
|
}
|
56
56
|
|
57
|
+
:host[emphasized-row] {
|
58
|
+
background-color: var(--grid-record-emphasized-background-color);
|
59
|
+
color: var(--grid-record-emphasized-color);
|
60
|
+
}
|
61
|
+
|
57
62
|
:host [dirty] {
|
58
63
|
position: absolute;
|
59
64
|
margin: var(--spacing-none);
|
@@ -112,6 +117,7 @@ export class RecordPartial extends LitElement {
|
|
112
117
|
* (이를 해주지 않으면, 리스트 refresh 경우에 selected-row checkbox가 클리어되지 않는 현상이 발생함.)
|
113
118
|
*/
|
114
119
|
@property({ type: Boolean, attribute: 'selected-row' }) selectedRow: boolean = false
|
120
|
+
@property({ attribute: false }) emphasized: any = false
|
115
121
|
|
116
122
|
private _recordView: any
|
117
123
|
|
@@ -137,6 +143,20 @@ export class RecordPartial extends LitElement {
|
|
137
143
|
if (changes.has('record') && this._recordView) {
|
138
144
|
this._recordView.record = this.record
|
139
145
|
}
|
146
|
+
|
147
|
+
const emphasized = this.emphasized
|
148
|
+
|
149
|
+
if (!!emphasized) {
|
150
|
+
this.setAttribute('emphasized-row', '')
|
151
|
+
|
152
|
+
if (Symbol.iterator in Object(emphasized)) {
|
153
|
+
const [backgroundColor, foregroundColor] = emphasized as string[]
|
154
|
+
backgroundColor && this.style.setProperty('--grid-record-emphasized-background-color', backgroundColor)
|
155
|
+
foregroundColor && this.style.setProperty('--grid-record-emphasized-color', foregroundColor)
|
156
|
+
}
|
157
|
+
} else {
|
158
|
+
this.removeAttribute('emphasized-row')
|
159
|
+
}
|
140
160
|
}
|
141
161
|
|
142
162
|
render() {
|