@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,289 +0,0 @@
1
- import '@material/web/icon/icon.js'
2
- import './data-card-field'
3
- import '../record-view'
4
- import './data-card-gutter'
5
- import './data-card-gutter-menu'
6
-
7
- import { GristConfig, GristData, GristRecord } from '../types'
8
- import { LitElement, PropertyValues, css, html } from 'lit'
9
- import { ZERO_CONFIG, ZERO_DATA, ZERO_RECORD } from '../configure/zero-config'
10
- import { customElement, property } from 'lit/decorators.js'
11
-
12
- import { RecordViewHandler } from '../record-view/record-view-handler'
13
- import { recordCardClickHandler } from './event-handlers/record-card-click-handler'
14
- import { recordCardDblClickHandler } from './event-handlers/record-card-dblclick-handler'
15
-
16
- // TODO 로케일 설정에 따라서 포맷이 바뀌도록 해야한다.
17
- const OPTIONS: Intl.DateTimeFormatOptions = {
18
- year: 'numeric',
19
- month: 'numeric',
20
- day: 'numeric',
21
- hour: 'numeric',
22
- minute: 'numeric',
23
- second: 'numeric',
24
- hour12: false
25
- // timeZone: 'America/Los_Angeles'
26
- }
27
-
28
- const formatter = new Intl.DateTimeFormat(navigator.language, OPTIONS)
29
-
30
- @customElement('ox-record-card')
31
- export class RecordCard extends LitElement {
32
- static styles = [
33
- css`
34
- :host {
35
- display: flex;
36
- flex-direction: column;
37
- align-items: stretch;
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
- padding: var(--spacing-small) var(--spacing-none);
44
- }
45
-
46
- :host(:hover) {
47
- background-color: var(--md-sys-color-surface);
48
- border: var(--data-card-record-card-border-hover);
49
- box-shadow: var(--data-card-record-card-boxshadow-hover);
50
- }
51
-
52
- :host([dirty])::before {
53
- content: '';
54
- position: absolute;
55
- left: var(--spacing-none);
56
- top: var(--spacing-none);
57
-
58
- width: var(--spacing-none);
59
- height: var(--spacing-none);
60
- border-top: var(--grid-record-dirty-border-top);
61
- border-right: var(--grid-record-dirty-border-left);
62
- }
63
-
64
- :host[emphasized-row] {
65
- background-color: var(--grid-record-emphasized-background-color);
66
- color: var(--grid-record-emphasized-color);
67
- }
68
-
69
- [dirty] {
70
- position: absolute;
71
- margin: var(--spacing-none);
72
- height: 20px;
73
-
74
- font: var(--grid-record-dirty-icon-font);
75
- text-indent: 1px;
76
- left: var(--spacing-none);
77
- top: var(--spacing-none);
78
- color: var(--grid-record-dirty-color, var(--md-sys-color-error));
79
- }
80
-
81
- [thumbnail] {
82
- height: var(--data-card-thumbnail-height);
83
- border-top-left-radius: var(--data-card-record-card-border-radius);
84
- border-top-right-radius: var(--data-card-record-card-border-radius);
85
- overflow: hidden;
86
- }
87
-
88
- [content] {
89
- display: flex;
90
- flex-direction: column;
91
- gap: var(--spacing-tiny);
92
- margin: var(--data-card-item-margin);
93
- }
94
-
95
- [brief] {
96
- display: flex;
97
- flex-direction: column;
98
- gap: var(--spacing-tiny);
99
- overflow: hidden;
100
- }
101
-
102
- [gutters] {
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;
109
- }
110
-
111
- ox-card-field {
112
- font: var(--data-card-item-etc-font);
113
- color: var(--data-card-item-etc-color, var(--md-sys-color-on-surface));
114
- }
115
-
116
- ox-card-field[name] {
117
- font: var(--data-card-item-name-font);
118
- color: var(--data-card-item-name-color, var(--md-sys-color-secondary));
119
- }
120
-
121
- ox-card-field[desc] {
122
- font: var(--data-card-item-disc-font);
123
- color: var(--data-card-item-disc-color, var(--md-sys-color-tertiary));
124
- }
125
- `
126
- ]
127
-
128
- @property({ type: Object }) config: GristConfig = ZERO_CONFIG
129
- @property({ type: Object }) data: GristData = ZERO_DATA
130
- @property({ type: Object }) record: GristRecord = ZERO_RECORD
131
- @property({ type: Number }) rowIndex: number = -1
132
- /*
133
- * row-selector를 사용자가 변경할 때, record-card의 update를 유도하기 위해 selected-row attribute를 property에 추가함.
134
- * (이를 해주지 않으면, 리스트 refresh 경우에 selected-row checkbox가 클리어되지 않는 현상이 발생함.)
135
- */
136
- @property({ type: Boolean, attribute: 'selected-row' }) selectedRow: boolean = false
137
- @property({ attribute: false }) emphasized: any = false
138
-
139
- private _recordView: any
140
- private clickHandler = recordCardClickHandler.bind(this) as EventListener
141
- private dblclickHandler = recordCardDblClickHandler.bind(this) as EventListener
142
-
143
- firstUpdated() {
144
- /*
145
- long-press
146
- TODO. performance를 확인한 후에 활성화하자.
147
- */
148
- // longpressable(this.renderRoot.querySelector('[content]'))
149
- // this.renderRoot.addEventListener('long-press', recordPartialLongPressHandler.bind(this))
150
- this.renderRoot.addEventListener('click', this.clickHandler)
151
- this.renderRoot.addEventListener('dblclick', this.dblclickHandler)
152
-
153
- this.addEventListener('show-record-view', () => this.popupRecordView())
154
- }
155
-
156
- updated(changes: PropertyValues<this>) {
157
- if (changes.has('record') && this._recordView) {
158
- this._recordView.record = this.record
159
- }
160
-
161
- const emphasized = this.emphasized
162
-
163
- if (!!emphasized) {
164
- this.setAttribute('emphasized-row', '')
165
-
166
- if (Symbol.iterator in Object(emphasized)) {
167
- const [backgroundColor, foregroundColor] = emphasized as string[]
168
- backgroundColor && this.style.setProperty('--grid-record-emphasized-background-color', backgroundColor)
169
- foregroundColor && this.style.setProperty('--grid-record-emphasized-color', foregroundColor)
170
- }
171
- } else {
172
- this.removeAttribute('emphasized-row')
173
- }
174
- }
175
-
176
- render() {
177
- const record = this.record
178
- const rowIndex = this.rowIndex
179
- const { columns, list } = this.config
180
- const { thumbnail, fields, details } = list || {}
181
-
182
- const briefFields = fields.map(field => columns.find(column => column.name == field)).filter(column => column) || []
183
- const detailFields =
184
- details.map(field => columns.find(column => column.name == field)).filter(column => column) || []
185
-
186
- const thumbnailColumn = thumbnail ? columns.find(column => column.name == thumbnail) : undefined
187
-
188
- const gutters = (columns || []).filter(column => column.type == 'gutter' && column.forList)
189
-
190
- if (this.hasAttribute('dirty')) {
191
- var dirtyIcon
192
-
193
- switch (this.record['__dirty__']) {
194
- case 'M':
195
- dirtyIcon = 'done'
196
- break
197
- case '+':
198
- dirtyIcon = 'add'
199
- break
200
- case '-':
201
- dirtyIcon = 'remove'
202
- break
203
- }
204
- }
205
-
206
- return html`
207
- ${dirtyIcon ? html` <md-icon dirty>${dirtyIcon}</md-icon> ` : html``}
208
- ${thumbnailColumn
209
- ? html` <ox-card-field
210
- thumbnail
211
- .rowIndex=${rowIndex}
212
- .column=${thumbnailColumn}
213
- .record=${record}
214
- .value=${record[thumbnailColumn?.name || '']}
215
- ></ox-card-field>`
216
- : html``}
217
-
218
- <div content>
219
- <div brief>
220
- ${briefFields.map(
221
- (column, idx) => html`
222
- <ox-card-field
223
- .rowIndex=${rowIndex}
224
- .column=${column}
225
- .record=${record}
226
- .value=${record[column?.name || '']}
227
- ?name=${idx == 0}
228
- ?desc=${idx == 1}
229
- ></ox-card-field>
230
- `
231
- )}
232
- </div>
233
- ${detailFields.length > 0
234
- ? html`
235
- <div detail>
236
- ${detailFields.map(
237
- (column, idx) => html`
238
- <ox-card-field
239
- .rowIndex=${rowIndex}
240
- .column=${column}
241
- .record=${record}
242
- .value=${record[column?.name || '']}
243
- ></ox-card-field>
244
- `
245
- )}
246
- </div>
247
- `
248
- : html``}
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>
263
- `
264
- }
265
-
266
- popupRecordView() {
267
- var titleField = this.config.list.fields[0] || 'name'
268
- var title = this.record[titleField]
269
-
270
- /* field가 오브젝트형인 경우에는 렌더러를 타이틀로 사용한다. */
271
- if (typeof title == 'object') {
272
- var column = this.config.columns.find(column => column.name == titleField)
273
- title = column?.record.renderer(title, column, this.record, this.rowIndex, this /* cautious */)
274
- }
275
-
276
- this._recordView = RecordViewHandler(
277
- this.config.columns,
278
- this.record,
279
- this.rowIndex,
280
- this,
281
- {
282
- title
283
- },
284
- () => {
285
- delete this._recordView
286
- }
287
- )
288
- }
289
- }
@@ -1,11 +0,0 @@
1
- import { FetchHandler, GristData } from './types'
2
-
3
- export interface DataConsumer extends EventTarget {
4
- data: any
5
- _data: GristData
6
- mode: 'GRID' | 'LIST' | 'CARD' | 'REPORT'
7
- checkDirties(): void
8
- fetchHandler?: FetchHandler
9
- showSpinner(): void
10
- hideSpinner(): void
11
- }
@@ -1,109 +0,0 @@
1
- import { css, html, LitElement, PropertyValues, TemplateResult, nothing } from 'lit'
2
- import { customElement, property } from 'lit/decorators.js'
3
-
4
- import { ZERO_COLUMN } from '../configure/zero-config'
5
- import { AccumulatorObject, ColumnConfig, GristRecord } from '../types'
6
- import { i18next } from '@operato/i18n'
7
-
8
- const DEFAULT_TEXT_ALIGN = 'left'
9
-
10
- @customElement('ox-grid-accum-field')
11
- export class DataGridAccumField extends LitElement {
12
- static styles = [
13
- css`
14
- :host {
15
- display: flex;
16
-
17
- align-items: center;
18
- justify-content: var(--data-grid-field-justify-content, flex-start);
19
- position: relative;
20
-
21
- white-space: nowrap;
22
- background-color: var(--md-sys-color-primary-container);
23
- border: var(--grid-record-border-bottom);
24
- border-width: 1px 0;
25
- padding: var(--spacing-small);
26
-
27
- font-size: var(--grid-record-wide-fontsize);
28
- color: var(--md-sys-color-primary);
29
- font-weight: var(--md-sys-typescale-label-large-weight, var(--md-ref-typeface-weight-medium, 500));
30
-
31
- min-height: 30px;
32
- box-sizing: border-box;
33
- }
34
-
35
- span,
36
- pre {
37
- display: block;
38
- text-overflow: ellipsis;
39
- overflow: hidden;
40
- }
41
-
42
- * {
43
- margin: 0;
44
- text-align: var(--data-grid-field-text-align);
45
- }
46
-
47
- *[center] {
48
- flex: none;
49
- margin: 0 auto;
50
- }
51
-
52
- md-icon {
53
- font-size: 1.5em;
54
- }
55
- `
56
- ]
57
-
58
- @property({ type: String, attribute: true }) align = DEFAULT_TEXT_ALIGN
59
- @property({ type: Object }) record: GristRecord = {}
60
- @property({ type: Object }) column: ColumnConfig = ZERO_COLUMN
61
- @property({ type: Number }) rowIndex = -1
62
- @property({ type: Number }) columnIndex = 0
63
- @property({ type: Boolean }) editing = false
64
- @property({ type: Object }) value = {}
65
- @property({ attribute: false }) emphasized: any = false
66
- @property({ type: String, attribute: true }) fixed?: string
67
-
68
- render(): TemplateResult {
69
- if (!this.column || !this.column.accumulator) {
70
- return this.columnIndex == 0 ? html`<md-icon>functions</md-icon>` : html`${nothing}`
71
- }
72
-
73
- var { value, column, record, rowIndex } = this
74
- var { renderer } = column.record
75
-
76
- // tag가 true이면 value 앞에 (sum) 같은 태그 생성
77
- var { accumulator } = column
78
- let tag = ''
79
- if (typeof accumulator === 'object' && typeof accumulator.type === 'string' && accumulator?.tag) {
80
- tag = `(${i18next.t(`label.accumulator_${accumulator.type}`)})`
81
- }
82
-
83
- return html`${tag}&nbsp;${renderer?.call(this, value, column, record, rowIndex, this)}`
84
- }
85
-
86
- updated(changes: PropertyValues<this>) {
87
- if (changes.has('column')) {
88
- var align = this.column.record.align || DEFAULT_TEXT_ALIGN
89
- if (align != DEFAULT_TEXT_ALIGN) {
90
- let justify = 'center'
91
- switch (align) {
92
- case 'right':
93
- justify = 'flex-end'
94
- break
95
- }
96
- this.style.setProperty('--data-grid-field-justify-content', justify)
97
- this.style.setProperty('--data-grid-field-text-align', align)
98
- }
99
- }
100
-
101
- if (changes.has('fixed')) {
102
- if (this.fixed) {
103
- this.style.left = this.fixed + 'px'
104
- } else {
105
- this.style.left = 'unset'
106
- }
107
- }
108
- }
109
- }
@@ -1,99 +0,0 @@
1
- import { css } from 'lit'
2
-
3
- export const dataGridBodyStyle = css`
4
- :host {
5
- display: grid;
6
- grid-template-columns: var(--grid-template-columns);
7
- grid-auto-rows: var(--grid-record-height, min-content);
8
-
9
- overflow: auto;
10
- outline: none;
11
- color: var(--grid-record-color);
12
- position: relative;
13
- border-bottom: var(--grid-body-bottom-border);
14
- }
15
-
16
- ox-grid-field[odd] {
17
- background-color: var(--grid-record-odd-background-color);
18
- }
19
-
20
- ox-grid-field[disabled] {
21
- background-color: var(--grid-record-disabled-background-color, var(--grid-record-background-color));
22
- color: var(--grid-record-disabled-color, var(--grid-record-color));
23
- opacity: var(--grid-record-disabled-opacity, 1);
24
- }
25
- ox-grid-field[odd][disabled] {
26
- background-color: var(
27
- --grid-odd-record-disabled-background-color,
28
- var(--grid-record-disabled-background-color, var(--grid-record-odd-background-color))
29
- );
30
- color: var(--grid-odd-record-disabled-color, var(--grid-record-disabled-color, var(--grid-record-color)));
31
- opacity: var(--grid-odd-record-disabled-opacity, var(--grid-record-disabled-opacity, 1));
32
- }
33
-
34
- ox-grid-field[selected-row] {
35
- background-color: var(--grid-record-selected-background-color);
36
- color: var(--grid-record-selected-color);
37
- }
38
-
39
- ox-grid-field[focused-row] {
40
- box-shadow: var(--grid-record-focused-box-shadow);
41
- font-weight: bold;
42
- color: var(--grid-record-focused-color);
43
- background-image: var(--focused-background-image);
44
- background-blend-mode: darken;
45
- }
46
-
47
- ox-grid-field[focused] {
48
- border: var(--grid-record-focused-cell-border);
49
- }
50
-
51
- ox-grid-field[emphasized-row],
52
- ox-grid-field[emphasized-row][focused] {
53
- background-color: var(--grid-record-emphasized-background-color);
54
- color: var(--grid-record-emphasized-color);
55
- }
56
-
57
- [editing] {
58
- background-color: var(--grid-record-editing-background-color);
59
- }
60
-
61
- @media print {
62
- :host {
63
- grid-template-columns: var(--grid-template-print-columns);
64
- }
65
- ox-grid-field[focused] {
66
- border: none;
67
- }
68
-
69
- ox-grid-field[selected-row] {
70
- background-color: transparent;
71
- }
72
-
73
- ox-grid-field[emphasized-row] {
74
- background-color: transparent;
75
- color: initial;
76
- }
77
-
78
- ox-grid-field[focused-row] {
79
- background-color: transparent;
80
- color: initial;
81
- }
82
-
83
- ox-grid-field[editing] {
84
- background-color: transparent;
85
- }
86
- }
87
-
88
- @media (prefers-color-scheme: dark) {
89
- ox-grid-field[focused-row] {
90
- background-blend-mode: lighten;
91
- }
92
- }
93
-
94
- @media (prefers-color-scheme: light) {
95
- ox-grid-field[focused-row] {
96
- background-blend-mode: darken;
97
- }
98
- }
99
- `