@operato/data-grist 7.0.26 → 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.
@@ -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) => html`
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: center;
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() {
@@ -40,8 +40,8 @@ export class DataListField extends LitElement {
40
40
  object-fit: contain;
41
41
  width: 100%;
42
42
  height: 100%;
43
- padding: var(--spacing-none)
44
- margin: var(--spacing-none)
43
+ padding: var(--spacing-none);
44
+ margin: var(--spacing-none);
45
45
  }
46
46
 
47
47
  label {
@@ -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) => html`
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() {