@operato/data-grist 8.0.0-beta.0 → 8.0.0-beta.1

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 (164) hide show
  1. package/CHANGELOG.md +9 -0
  2. package/package.json +10 -10
  3. package/.storybook/main.js +0 -3
  4. package/.storybook/preview.js +0 -52
  5. package/.storybook/server.mjs +0 -8
  6. package/src/accumulator/accumulator.ts +0 -63
  7. package/src/configure/column-builder.ts +0 -114
  8. package/src/configure/config-builder.ts +0 -40
  9. package/src/configure/filters-option-builder.ts +0 -8
  10. package/src/configure/imex-option-builder.ts +0 -5
  11. package/src/configure/list-option-builder.ts +0 -9
  12. package/src/configure/rows-option-builder.ts +0 -38
  13. package/src/configure/tree-option-builder.ts +0 -22
  14. package/src/configure/zero-config.ts +0 -83
  15. package/src/const.ts +0 -1
  16. package/src/data-card/data-card-field.ts +0 -94
  17. package/src/data-card/data-card-gutter-menu.ts +0 -94
  18. package/src/data-card/data-card-gutter.ts +0 -103
  19. package/src/data-card/data-card.ts +0 -154
  20. package/src/data-card/event-handlers/record-card-click-handler.ts +0 -34
  21. package/src/data-card/event-handlers/record-card-dblclick-handler.ts +0 -34
  22. package/src/data-card/record-card.ts +0 -298
  23. package/src/data-consumer.ts +0 -11
  24. package/src/data-grid/data-grid-accum-field.ts +0 -109
  25. package/src/data-grid/data-grid-body-style.ts +0 -85
  26. package/src/data-grid/data-grid-body.ts +0 -765
  27. package/src/data-grid/data-grid-field.ts +0 -227
  28. package/src/data-grid/data-grid-footer.ts +0 -119
  29. package/src/data-grid/data-grid-header.ts +0 -578
  30. package/src/data-grid/data-grid.ts +0 -293
  31. package/src/data-grid/event-handlers/data-grid-body-click-handler.ts +0 -69
  32. package/src/data-grid/event-handlers/data-grid-body-contextmenu-handler.ts +0 -32
  33. package/src/data-grid/event-handlers/data-grid-body-dblclick-handler.ts +0 -42
  34. package/src/data-grid/event-handlers/data-grid-body-focus-change-handler.ts +0 -24
  35. package/src/data-grid/event-handlers/data-grid-body-keydown-handler.ts +0 -234
  36. package/src/data-grist.ts +0 -1233
  37. package/src/data-list/data-list-field.ts +0 -82
  38. package/src/data-list/data-list-gutter.ts +0 -108
  39. package/src/data-list/data-list.ts +0 -145
  40. package/src/data-list/event-handlers/record-partial-click-handler.ts +0 -34
  41. package/src/data-list/event-handlers/record-partial-dblclick-handler.ts +0 -33
  42. package/src/data-list/event-handlers/record-partial-long-press-handler.ts +0 -33
  43. package/src/data-list/record-partial.ts +0 -264
  44. package/src/data-manipulator.ts +0 -426
  45. package/src/data-provider.ts +0 -271
  46. package/src/data-report/data-report-body-style.ts +0 -58
  47. package/src/data-report/data-report-body.ts +0 -189
  48. package/src/data-report/data-report-component.ts +0 -138
  49. package/src/data-report/data-report-field.ts +0 -83
  50. package/src/data-report/data-report-header.ts +0 -242
  51. package/src/data-report/event-handlers/data-report-body-click-handler.ts +0 -38
  52. package/src/data-report/event-handlers/data-report-body-dblclick-handler.ts +0 -25
  53. package/src/data-report/event-handlers/data-report-body-keydown-handler.ts +0 -68
  54. package/src/data-report.ts +0 -424
  55. package/src/editors/index.ts +0 -4
  56. package/src/editors/ox-grist-editor-checkbox.ts +0 -28
  57. package/src/editors/ox-grist-editor-color.ts +0 -10
  58. package/src/editors/ox-grist-editor-date.ts +0 -10
  59. package/src/editors/ox-grist-editor-datetime.ts +0 -27
  60. package/src/editors/ox-grist-editor-email.ts +0 -10
  61. package/src/editors/ox-grist-editor-file.ts +0 -28
  62. package/src/editors/ox-grist-editor-image.ts +0 -31
  63. package/src/editors/ox-grist-editor-month.ts +0 -10
  64. package/src/editors/ox-grist-editor-multiple-select.ts +0 -57
  65. package/src/editors/ox-grist-editor-number.ts +0 -27
  66. package/src/editors/ox-grist-editor-password.ts +0 -10
  67. package/src/editors/ox-grist-editor-select.ts +0 -55
  68. package/src/editors/ox-grist-editor-tel.ts +0 -10
  69. package/src/editors/ox-grist-editor-text.ts +0 -14
  70. package/src/editors/ox-grist-editor-textarea.ts +0 -16
  71. package/src/editors/ox-grist-editor-time.ts +0 -10
  72. package/src/editors/ox-grist-editor-tree.ts +0 -27
  73. package/src/editors/ox-grist-editor-varname.ts +0 -36
  74. package/src/editors/ox-grist-editor-week.ts +0 -10
  75. package/src/editors/ox-grist-editor.ts +0 -207
  76. package/src/editors/ox-input-tree.ts +0 -226
  77. package/src/editors/registry.ts +0 -82
  78. package/src/empty-note.ts +0 -46
  79. package/src/filters/filter-checkbox.ts +0 -49
  80. package/src/filters/filter-input-barcode.ts +0 -34
  81. package/src/filters/filter-input.ts +0 -30
  82. package/src/filters/filter-range-date.ts +0 -81
  83. package/src/filters/filter-range-number.ts +0 -64
  84. package/src/filters/filter-select-buttons.ts +0 -60
  85. package/src/filters/filter-select.ts +0 -68
  86. package/src/filters/filter-styles.ts +0 -119
  87. package/src/filters/filters-form.ts +0 -476
  88. package/src/filters/index.ts +0 -10
  89. package/src/filters/registry.ts +0 -56
  90. package/src/formatters/date-formatter.ts +0 -3
  91. package/src/formatters/index.ts +0 -1
  92. package/src/formatters/number-formatter.ts +0 -3
  93. package/src/formatters/registry.ts +0 -30
  94. package/src/formatters/text-formatter.ts +0 -3
  95. package/src/gutters/gutter-button.ts +0 -51
  96. package/src/gutters/gutter-dirty.ts +0 -96
  97. package/src/gutters/gutter-row-selector.ts +0 -89
  98. package/src/gutters/gutter-sequence.ts +0 -54
  99. package/src/gutters/index.ts +0 -1
  100. package/src/gutters/registry.ts +0 -32
  101. package/src/handlers/contextmenu-tree-mutation.ts +0 -80
  102. package/src/handlers/index.ts +0 -1
  103. package/src/handlers/move-down.ts +0 -44
  104. package/src/handlers/move-up.ts +0 -44
  105. package/src/handlers/record-copy.ts +0 -38
  106. package/src/handlers/record-delete.ts +0 -30
  107. package/src/handlers/record-view-handler.ts +0 -27
  108. package/src/handlers/registry.ts +0 -42
  109. package/src/handlers/select-row-toggle.ts +0 -30
  110. package/src/handlers/select-row.ts +0 -27
  111. package/src/index.ts +0 -17
  112. package/src/personalizer/index.ts +0 -1
  113. package/src/personalizer/ox-grist-filter-personalizer.ts +0 -192
  114. package/src/personalizer/ox-grist-personalizer.ts +0 -226
  115. package/src/record-view/event-handlers/record-view-body-click-handler.ts +0 -33
  116. package/src/record-view/event-handlers/record-view-body-keydown-handler.ts +0 -26
  117. package/src/record-view/index.ts +0 -2
  118. package/src/record-view/ox-record-creator.ts +0 -289
  119. package/src/record-view/record-view-body.ts +0 -257
  120. package/src/record-view/record-view-handler.ts +0 -86
  121. package/src/record-view/record-view.ts +0 -122
  122. package/src/renderers/index.ts +0 -14
  123. package/src/renderers/ox-grist-renderer-boolean.ts +0 -43
  124. package/src/renderers/ox-grist-renderer-color.ts +0 -15
  125. package/src/renderers/ox-grist-renderer-date.ts +0 -62
  126. package/src/renderers/ox-grist-renderer-file.ts +0 -31
  127. package/src/renderers/ox-grist-renderer-image.ts +0 -27
  128. package/src/renderers/ox-grist-renderer-json5.ts +0 -36
  129. package/src/renderers/ox-grist-renderer-link.ts +0 -17
  130. package/src/renderers/ox-grist-renderer-password.ts +0 -7
  131. package/src/renderers/ox-grist-renderer-progress.ts +0 -45
  132. package/src/renderers/ox-grist-renderer-select.ts +0 -58
  133. package/src/renderers/ox-grist-renderer-text.ts +0 -16
  134. package/src/renderers/ox-grist-renderer-textarea.ts +0 -7
  135. package/src/renderers/ox-grist-renderer-tree.ts +0 -189
  136. package/src/renderers/ox-grist-renderer.ts +0 -35
  137. package/src/renderers/registry.ts +0 -111
  138. package/src/sorters/sorters-control.ts +0 -143
  139. package/src/types.ts +0 -813
  140. package/src/utils/index.ts +0 -2
  141. package/src/utils/list-param.ts +0 -72
  142. package/src/utils/supports-passive.ts +0 -13
  143. package/stories/accumulator-format.stories.ts +0 -276
  144. package/stories/barcode-input-filter.stories.ts +0 -216
  145. package/stories/bounded-select-filters.stories.ts +0 -333
  146. package/stories/bounded-select-record.stories.ts +0 -336
  147. package/stories/click-event-custom.stories.ts +0 -287
  148. package/stories/click-event.stories.ts +0 -283
  149. package/stories/creatable-only-column.stories.ts +0 -253
  150. package/stories/default-filters.stories.ts +0 -241
  151. package/stories/dynamic-editable.stories.ts +0 -313
  152. package/stories/empty-sorters.stories.ts +0 -180
  153. package/stories/explicit-fetch.stories.ts +0 -186
  154. package/stories/fixed-column.stories.ts +0 -416
  155. package/stories/grid-setting.stories.ts +0 -501
  156. package/stories/grist-modes.stories.ts +0 -451
  157. package/stories/group-header.stories.ts +0 -442
  158. package/stories/record-view.stories.ts +0 -143
  159. package/stories/textarea.stories.ts +0 -261
  160. package/stories/tree-column-with-checkbox.stories.ts +0 -297
  161. package/stories/tree-column.stories.ts +0 -296
  162. package/tsconfig.json +0 -26
  163. package/web-dev-server.config.mjs +0 -27
  164. package/web-test-runner.config.mjs +0 -45
@@ -1,298 +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
- function getSafeFormatter(locale: string, options: Intl.DateTimeFormatOptions) {
29
- try {
30
- const safeLocale = locale || 'en-US'
31
- return new Intl.DateTimeFormat(safeLocale, options)
32
- } catch (e) {
33
- return new Intl.DateTimeFormat('en-US', options)
34
- }
35
- }
36
-
37
- const formatter = getSafeFormatter(navigator.language, OPTIONS)
38
-
39
- @customElement('ox-record-card')
40
- export class RecordCard extends LitElement {
41
- static styles = [
42
- css`
43
- :host {
44
- display: flex;
45
- flex-direction: column;
46
- align-items: stretch;
47
- position: relative;
48
- background-color: var(--data-card-record-card-background-color);
49
- border-radius: var(--data-card-record-card-border-radius);
50
- border: var(--data-card-record-card-border);
51
- height: min-content;
52
- padding: var(--spacing-small) var(--spacing-none);
53
- }
54
-
55
- :host(:hover) {
56
- background-color: var(--md-sys-color-surface);
57
- border: var(--data-card-record-card-border-hover);
58
- box-shadow: var(--data-card-record-card-boxshadow-hover);
59
- }
60
-
61
- :host([dirty])::before {
62
- content: '';
63
- position: absolute;
64
- left: var(--spacing-none);
65
- top: var(--spacing-none);
66
-
67
- width: var(--spacing-none);
68
- height: var(--spacing-none);
69
- border-top: var(--grid-record-dirty-border-top);
70
- border-right: var(--grid-record-dirty-border-left);
71
- }
72
-
73
- :host[emphasized-row] {
74
- background-color: var(--grid-record-emphasized-background-color);
75
- color: var(--grid-record-emphasized-color);
76
- }
77
-
78
- [dirty] {
79
- position: absolute;
80
- margin: var(--spacing-none);
81
- height: 20px;
82
-
83
- font: var(--grid-record-dirty-icon-font);
84
- text-indent: 1px;
85
- left: var(--spacing-none);
86
- top: var(--spacing-none);
87
- color: var(--grid-record-dirty-color, var(--md-sys-color-error));
88
- }
89
-
90
- [thumbnail] {
91
- height: var(--data-card-thumbnail-height);
92
- border-top-left-radius: var(--data-card-record-card-border-radius);
93
- border-top-right-radius: var(--data-card-record-card-border-radius);
94
- overflow: hidden;
95
- }
96
-
97
- [content] {
98
- display: flex;
99
- flex-direction: column;
100
- gap: var(--spacing-tiny);
101
- margin: var(--data-card-item-margin);
102
- }
103
-
104
- [brief] {
105
- display: flex;
106
- flex-direction: column;
107
- gap: var(--spacing-tiny);
108
- overflow: hidden;
109
- }
110
-
111
- [gutters] {
112
- display: flex;
113
- flex-direction: row;
114
- gap: var(--spacing-small);
115
- margin: var(--spacing-small) var(--spacing-medium);
116
- justify-content: end;
117
- align-items: stretch;
118
- }
119
-
120
- ox-card-field {
121
- font: var(--data-card-item-etc-font);
122
- color: var(--data-card-item-etc-color, var(--md-sys-color-on-surface));
123
- }
124
-
125
- ox-card-field[name] {
126
- font: var(--data-card-item-name-font);
127
- color: var(--data-card-item-name-color, var(--md-sys-color-secondary));
128
- }
129
-
130
- ox-card-field[desc] {
131
- font: var(--data-card-item-disc-font);
132
- color: var(--data-card-item-disc-color, var(--md-sys-color-tertiary));
133
- }
134
- `
135
- ]
136
-
137
- @property({ type: Object }) config: GristConfig = ZERO_CONFIG
138
- @property({ type: Object }) data: GristData = ZERO_DATA
139
- @property({ type: Object }) record: GristRecord = ZERO_RECORD
140
- @property({ type: Number }) rowIndex: number = -1
141
- /*
142
- * row-selector를 사용자가 변경할 때, record-card의 update를 유도하기 위해 selected-row attribute를 property에 추가함.
143
- * (이를 해주지 않으면, 리스트 refresh 경우에 selected-row checkbox가 클리어되지 않는 현상이 발생함.)
144
- */
145
- @property({ type: Boolean, attribute: 'selected-row' }) selectedRow: boolean = false
146
- @property({ attribute: false }) emphasized: any = false
147
-
148
- private _recordView: any
149
- private clickHandler = recordCardClickHandler.bind(this) as EventListener
150
- private dblclickHandler = recordCardDblClickHandler.bind(this) as EventListener
151
-
152
- firstUpdated() {
153
- /*
154
- long-press
155
- TODO. performance를 확인한 후에 활성화하자.
156
- */
157
- // longpressable(this.renderRoot.querySelector('[content]'))
158
- // this.renderRoot.addEventListener('long-press', recordPartialLongPressHandler.bind(this))
159
- this.renderRoot.addEventListener('click', this.clickHandler)
160
- this.renderRoot.addEventListener('dblclick', this.dblclickHandler)
161
-
162
- this.addEventListener('show-record-view', () => this.popupRecordView())
163
- }
164
-
165
- updated(changes: PropertyValues<this>) {
166
- if (changes.has('record') && this._recordView) {
167
- this._recordView.record = this.record
168
- }
169
-
170
- const emphasized = this.emphasized
171
-
172
- if (!!emphasized) {
173
- this.setAttribute('emphasized-row', '')
174
-
175
- if (Symbol.iterator in Object(emphasized)) {
176
- const [backgroundColor, foregroundColor] = emphasized as string[]
177
- backgroundColor && this.style.setProperty('--grid-record-emphasized-background-color', backgroundColor)
178
- foregroundColor && this.style.setProperty('--grid-record-emphasized-color', foregroundColor)
179
- }
180
- } else {
181
- this.removeAttribute('emphasized-row')
182
- }
183
- }
184
-
185
- render() {
186
- const record = this.record
187
- const rowIndex = this.rowIndex
188
- const { columns, list } = this.config
189
- const { thumbnail, fields, details } = list || {}
190
-
191
- const briefFields = fields.map(field => columns.find(column => column.name == field)).filter(column => column) || []
192
- const detailFields =
193
- details.map(field => columns.find(column => column.name == field)).filter(column => column) || []
194
-
195
- const thumbnailColumn = thumbnail ? columns.find(column => column.name == thumbnail) : undefined
196
-
197
- const gutters = (columns || []).filter(column => column.type == 'gutter' && column.forList)
198
-
199
- if (this.hasAttribute('dirty')) {
200
- var dirtyIcon
201
-
202
- switch (this.record['__dirty__']) {
203
- case 'M':
204
- dirtyIcon = 'done'
205
- break
206
- case '+':
207
- dirtyIcon = 'add'
208
- break
209
- case '-':
210
- dirtyIcon = 'remove'
211
- break
212
- }
213
- }
214
-
215
- return html`
216
- ${dirtyIcon ? html` <md-icon dirty>${dirtyIcon}</md-icon> ` : html``}
217
- ${thumbnailColumn
218
- ? html` <ox-card-field
219
- thumbnail
220
- .rowIndex=${rowIndex}
221
- .column=${thumbnailColumn}
222
- .record=${record}
223
- .value=${record[thumbnailColumn?.name || '']}
224
- ></ox-card-field>`
225
- : html``}
226
-
227
- <div content>
228
- <div brief>
229
- ${briefFields.map(
230
- (column, idx) => html`
231
- <ox-card-field
232
- .rowIndex=${rowIndex}
233
- .column=${column}
234
- .record=${record}
235
- .value=${record[column?.name || '']}
236
- ?name=${idx == 0}
237
- ?desc=${idx == 1}
238
- ></ox-card-field>
239
- `
240
- )}
241
- </div>
242
- ${detailFields.length > 0
243
- ? html`
244
- <div detail>
245
- ${detailFields.map(
246
- (column, idx) => html`
247
- <ox-card-field
248
- .rowIndex=${rowIndex}
249
- .column=${column}
250
- .record=${record}
251
- .value=${record[column?.name || '']}
252
- ></ox-card-field>
253
- `
254
- )}
255
- </div>
256
- `
257
- : html``}
258
- </div>
259
-
260
- <div gutters>
261
- ${gutters.map(gutter => {
262
- return html`
263
- <ox-card-gutter
264
- .rowIndex=${rowIndex}
265
- .column=${gutter}
266
- .record=${record}
267
- .value=${record[gutter.name]}
268
- ></ox-card-gutter>
269
- `
270
- })}
271
- </div>
272
- `
273
- }
274
-
275
- popupRecordView() {
276
- var titleField = this.config.list.fields[0] || 'name'
277
- var title = this.record[titleField]
278
-
279
- /* field가 오브젝트형인 경우에는 렌더러를 타이틀로 사용한다. */
280
- if (typeof title == 'object') {
281
- var column = this.config.columns.find(column => column.name == titleField)
282
- title = column?.record.renderer(title, column, this.record, this.rowIndex, this /* cautious */)
283
- }
284
-
285
- this._recordView = RecordViewHandler(
286
- this.config.columns,
287
- this.record,
288
- this.rowIndex,
289
- this,
290
- {
291
- title
292
- },
293
- () => {
294
- delete this._recordView
295
- }
296
- )
297
- }
298
- }
@@ -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,85 +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[selected-row] {
21
- background-color: var(--grid-record-selected-background-color);
22
- color: var(--grid-record-selected-color);
23
- }
24
-
25
- ox-grid-field[focused-row] {
26
- box-shadow: var(--grid-record-focused-box-shadow);
27
- font-weight: bold;
28
- color: var(--grid-record-focused-color);
29
- background-image: var(--focused-background-image);
30
- background-blend-mode: darken;
31
- }
32
-
33
- ox-grid-field[focused] {
34
- border: var(--grid-record-focused-cell-border);
35
- }
36
-
37
- ox-grid-field[emphasized-row],
38
- ox-grid-field[emphasized-row][focused] {
39
- background-color: var(--grid-record-emphasized-background-color);
40
- color: var(--grid-record-emphasized-color);
41
- }
42
-
43
- [editing] {
44
- background-color: var(--grid-record-editing-background-color);
45
- }
46
-
47
- @media print {
48
- :host {
49
- grid-template-columns: var(--grid-template-print-columns);
50
- }
51
- ox-grid-field[focused] {
52
- border: none;
53
- }
54
-
55
- ox-grid-field[selected-row] {
56
- background-color: transparent;
57
- }
58
-
59
- ox-grid-field[emphasized-row] {
60
- background-color: transparent;
61
- color: initial;
62
- }
63
-
64
- ox-grid-field[focused-row] {
65
- background-color: transparent;
66
- color: initial;
67
- }
68
-
69
- ox-grid-field[editing] {
70
- background-color: transparent;
71
- }
72
- }
73
-
74
- @media (prefers-color-scheme: dark) {
75
- ox-grid-field[focused-row] {
76
- background-blend-mode: lighten;
77
- }
78
- }
79
-
80
- @media (prefers-color-scheme: light) {
81
- ox-grid-field[focused-row] {
82
- background-blend-mode: darken;
83
- }
84
- }
85
- `