@things-factory/grist-ui 4.0.0-y.0 → 4.0.7
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/client/data-grid/data-grid-body-style.js +19 -17
- package/client/data-grid/data-grid-body.js +12 -6
- package/client/data-grid/data-grid-field.js +1 -1
- package/client/data-grist.js +6 -5
- package/client/data-report.js +17 -6
- package/client/editors/registry.js +14 -10
- package/client/renderers/registry.js +9 -5
- package/client/themes/grist-theme.css +2 -2
- package/package.json +9 -6
- package/translations/en.json +2 -2
- package/translations/ko.json +2 -2
- package/translations/zh.json +2 -2
|
@@ -11,32 +11,34 @@ export const dataGridBodyStyle = css`
|
|
|
11
11
|
color: var(--grid-record-color);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
[odd] {
|
|
15
15
|
background-color: var(--grid-record-odd-background-color);
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
[selected-row] {
|
|
19
19
|
background-color: var(--grid-record-selected-background-color);
|
|
20
20
|
color: var(--grid-record-selected-color);
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
|
|
24
|
-
background-color: var(--grid-record-emphasized-background-color);
|
|
25
|
-
color: var(--grid-record-emphasized-color);
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
:host > [focused-row] {
|
|
29
|
-
background-color: var(--grid-record-focused-background-color);
|
|
23
|
+
[focused-row] {
|
|
30
24
|
box-shadow: var(--grid-record-focused-box-shadow);
|
|
31
25
|
font-weight: bold;
|
|
32
26
|
color: var(--grid-record-focused-color);
|
|
27
|
+
background-image: var(--focused-background-image);
|
|
28
|
+
background-blend-mode: darken;
|
|
33
29
|
}
|
|
34
30
|
|
|
35
|
-
|
|
36
|
-
|
|
31
|
+
[focused] {
|
|
32
|
+
border: var(--grid-record-focused-cell-border);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
[emphasized-row],
|
|
36
|
+
[emphasized-row][focused] {
|
|
37
|
+
background-color: var(--grid-record-emphasized-background-color);
|
|
38
|
+
color: var(--grid-record-emphasized-color);
|
|
37
39
|
}
|
|
38
40
|
|
|
39
|
-
|
|
41
|
+
[editing] {
|
|
40
42
|
background-color: var(--grid-record-editing-background-color);
|
|
41
43
|
}
|
|
42
44
|
|
|
@@ -44,25 +46,25 @@ export const dataGridBodyStyle = css`
|
|
|
44
46
|
:host {
|
|
45
47
|
grid-template-columns: var(--grid-template-print-columns);
|
|
46
48
|
}
|
|
47
|
-
|
|
49
|
+
[focused] {
|
|
48
50
|
border: none;
|
|
49
51
|
}
|
|
50
52
|
|
|
51
|
-
|
|
53
|
+
[selected-row] {
|
|
52
54
|
background-color: transparent;
|
|
53
55
|
}
|
|
54
56
|
|
|
55
|
-
|
|
57
|
+
[emphasized-row] {
|
|
56
58
|
background-color: transparent;
|
|
57
59
|
color: initial;
|
|
58
60
|
}
|
|
59
61
|
|
|
60
|
-
|
|
62
|
+
[focused-row] {
|
|
61
63
|
background-color: transparent;
|
|
62
64
|
color: initial;
|
|
63
65
|
}
|
|
64
66
|
|
|
65
|
-
|
|
67
|
+
[editing] {
|
|
66
68
|
background-color: transparent;
|
|
67
69
|
}
|
|
68
70
|
}
|
|
@@ -1,14 +1,14 @@
|
|
|
1
|
-
import
|
|
2
|
-
|
|
1
|
+
import './data-grid-field'
|
|
2
|
+
|
|
3
|
+
import { html, LitElement } from 'lit-element'
|
|
3
4
|
import _ from 'underscore'
|
|
4
5
|
|
|
5
|
-
import '
|
|
6
|
+
import { supportsPassive } from '@things-factory/utils'
|
|
6
7
|
|
|
7
|
-
import {
|
|
8
|
+
import { dataGridBodyStyle } from './data-grid-body-style'
|
|
8
9
|
import { dataGridBodyClickHandler } from './event-handlers/data-grid-body-click-handler'
|
|
9
10
|
import { dataGridBodyDblclickHandler } from './event-handlers/data-grid-body-dblclick-handler'
|
|
10
|
-
|
|
11
|
-
import { dataGridBodyStyle } from './data-grid-body-style'
|
|
11
|
+
import { dataGridBodyKeydownHandler } from './event-handlers/data-grid-body-keydown-handler'
|
|
12
12
|
|
|
13
13
|
const THRESHOLD = 300
|
|
14
14
|
const DATA_PADDING = 3
|
|
@@ -157,6 +157,12 @@ class DataGridBody extends LitElement {
|
|
|
157
157
|
this.shadowRoot.addEventListener('dblclick', dataGridBodyDblclickHandler.bind(this))
|
|
158
158
|
|
|
159
159
|
this.addEventListener('wheel', this._onWheelEvent.bind(this), supportsPassive ? { passive: true } : false)
|
|
160
|
+
|
|
161
|
+
const primaryColor = getComputedStyle(this).getPropertyValue('--primary-color')
|
|
162
|
+
this.style.setProperty(
|
|
163
|
+
'--focused-background-image',
|
|
164
|
+
`url("data:image/svg+xml;utf8,<svg xmlns='http://www.w3.org/2000/svg' width='10' height='10'><rect fill='${primaryColor}' x='0' y='0' width='100%' height='100%' style='opacity:.3'/></svg>")`
|
|
165
|
+
)
|
|
160
166
|
}
|
|
161
167
|
|
|
162
168
|
_onWheelEvent(e) {
|
package/client/data-grist.js
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
-
import { pulltorefresh } from '@things-factory/utils'
|
|
2
|
-
import { css, html, LitElement } from 'lit-element'
|
|
3
|
-
import { buildConfig } from './configure/config-builder'
|
|
4
1
|
import './data-grid/data-grid'
|
|
5
2
|
import './data-list/data-list'
|
|
6
|
-
import { DataProvider } from './data-provider'
|
|
7
3
|
|
|
4
|
+
import { LitElement, css, html } from 'lit-element'
|
|
5
|
+
|
|
6
|
+
import { DataProvider } from './data-provider'
|
|
7
|
+
import Headroom from '@operato/headroom'
|
|
8
8
|
import { HeadroomStyles } from '@things-factory/styles'
|
|
9
|
-
import
|
|
9
|
+
import { buildConfig } from './configure/config-builder'
|
|
10
|
+
import { pulltorefresh } from '@things-factory/utils'
|
|
10
11
|
|
|
11
12
|
const DEFAULT_DATA = {
|
|
12
13
|
page: 1,
|
package/client/data-report.js
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import './data-report/data-report-component'
|
|
2
2
|
|
|
3
|
-
import { css, html
|
|
4
|
-
|
|
5
|
-
import { pulltorefresh } from '@things-factory/utils'
|
|
3
|
+
import { LitElement, css, html } from 'lit-element'
|
|
6
4
|
|
|
5
|
+
import { DataProvider } from './data-provider'
|
|
7
6
|
import { buildColumn } from './configure/column-builder'
|
|
8
7
|
import { buildConfig } from './configure/config-builder'
|
|
9
|
-
import {
|
|
8
|
+
import { i18next } from '@things-factory/i18n-base'
|
|
9
|
+
import { pulltorefresh } from '@things-factory/utils'
|
|
10
10
|
|
|
11
11
|
const DEFAULT_DATA = {
|
|
12
12
|
page: 1,
|
|
@@ -199,7 +199,16 @@ export class DataReport extends LitElement {
|
|
|
199
199
|
var getColumnIndex = name => columns.filter(column => !column.hidden).findIndex(column => column.name == name)
|
|
200
200
|
|
|
201
201
|
/* 그룹 토털 레코드를 추가한다. */
|
|
202
|
-
var groupFieldsForTotalRecord = [
|
|
202
|
+
var groupFieldsForTotalRecord = [
|
|
203
|
+
{
|
|
204
|
+
column: '*',
|
|
205
|
+
title: i18next.exists('text.ox-data-report-grand-total')
|
|
206
|
+
? i18next.t('text.ox-data-report-grand-total')
|
|
207
|
+
: 'grand total',
|
|
208
|
+
align: 'right'
|
|
209
|
+
} /* for total */,
|
|
210
|
+
...groups
|
|
211
|
+
]
|
|
203
212
|
groupFieldsForTotalRecord = groupFieldsForTotalRecord.map(group => {
|
|
204
213
|
return {
|
|
205
214
|
...group,
|
|
@@ -251,7 +260,9 @@ export class DataReport extends LitElement {
|
|
|
251
260
|
{
|
|
252
261
|
'*': {
|
|
253
262
|
titleColumn: groupFieldsForTotalRecord[0].titleColumn,
|
|
254
|
-
value: 'grand
|
|
263
|
+
value: i18next.exists('text.ox-data-report-grand-total')
|
|
264
|
+
? i18next.t('text.ox-data-report-grand-total')
|
|
265
|
+
: 'grand total',
|
|
255
266
|
groupName: '*',
|
|
256
267
|
row: 1,
|
|
257
268
|
rowspan: 1,
|
|
@@ -1,18 +1,20 @@
|
|
|
1
|
+
import { registerEditor as oxRegisterEditor, unregisterEditor as oxUnregisterEditor } from '@operato/data-grist'
|
|
2
|
+
|
|
1
3
|
import {
|
|
2
|
-
|
|
4
|
+
CheckboxInput,
|
|
5
|
+
ColorInput,
|
|
6
|
+
DateInput,
|
|
7
|
+
DateTimeInput,
|
|
3
8
|
EmailInput,
|
|
4
|
-
|
|
5
|
-
|
|
9
|
+
ImageInput,
|
|
10
|
+
MonthInput,
|
|
6
11
|
NumberInput,
|
|
12
|
+
PasswordInput,
|
|
7
13
|
Select,
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
WeekInput,
|
|
11
|
-
DateInput,
|
|
14
|
+
TelInput,
|
|
15
|
+
TextInput,
|
|
12
16
|
TimeInput,
|
|
13
|
-
|
|
14
|
-
ColorInput,
|
|
15
|
-
ImageInput
|
|
17
|
+
WeekInput
|
|
16
18
|
} from './input-editors'
|
|
17
19
|
|
|
18
20
|
var EDITORS = {
|
|
@@ -40,10 +42,12 @@ var EDITORS = {
|
|
|
40
42
|
|
|
41
43
|
export function registerEditor(type, editor) {
|
|
42
44
|
EDITORS[type] = editor
|
|
45
|
+
oxRegisterEditor(type, editor)
|
|
43
46
|
}
|
|
44
47
|
|
|
45
48
|
export function unregisterEditor(type) {
|
|
46
49
|
delete EDITORS[type]
|
|
50
|
+
oxUnregisterEditor(type)
|
|
47
51
|
}
|
|
48
52
|
|
|
49
53
|
export function getEditors() {
|
|
@@ -1,12 +1,14 @@
|
|
|
1
|
+
import { registerRenderer as oxRegisterRenderer, unregisterRenderer as oxUnregisterRenderer } from '@operato/data-grist'
|
|
2
|
+
|
|
1
3
|
import { BooleanRenderer } from './boolean-renderer'
|
|
2
|
-
import { TextRenderer } from './text-renderer'
|
|
3
|
-
import { PasswordRenderer } from './password-renderer'
|
|
4
|
-
import { DateRenderer } from './date-renderer'
|
|
5
4
|
import { ColorRenderer } from './color-renderer'
|
|
6
|
-
import {
|
|
5
|
+
import { DateRenderer } from './date-renderer'
|
|
6
|
+
import { ImageRenderer } from './image-renderer'
|
|
7
7
|
import { LinkRenderer } from './link-renderer'
|
|
8
|
+
import { PasswordRenderer } from './password-renderer'
|
|
9
|
+
import { ProgressRenderer } from './progress-renderer'
|
|
8
10
|
import { SelectRenderer } from './select-renderer'
|
|
9
|
-
import {
|
|
11
|
+
import { TextRenderer } from './text-renderer'
|
|
10
12
|
|
|
11
13
|
var RENDERERS = {
|
|
12
14
|
string: TextRenderer,
|
|
@@ -33,10 +35,12 @@ var RENDERERS = {
|
|
|
33
35
|
|
|
34
36
|
export function registerRenderer(type, renderer) {
|
|
35
37
|
RENDERERS[type] = renderer
|
|
38
|
+
oxRegisterRenderer(type, renderer)
|
|
36
39
|
}
|
|
37
40
|
|
|
38
41
|
export function unregisterRenderer(type) {
|
|
39
42
|
delete RENDERERS[type]
|
|
43
|
+
oxUnregisterRenderer(type)
|
|
40
44
|
}
|
|
41
45
|
|
|
42
46
|
export function getRenderers() {
|
|
@@ -41,10 +41,10 @@ body {
|
|
|
41
41
|
--grid-record-wide-fontsize: var(--fontsize-small);
|
|
42
42
|
--grid-record-selected-background-color: #f1f8e9;
|
|
43
43
|
--grid-record-selected-color: var(--grid-record-color);
|
|
44
|
-
--grid-record-focused-background-color: rgba(var(--primary-color-rgb), 0.
|
|
44
|
+
--grid-record-focused-background-color: rgba(var(--primary-color-rgb), 0.2);
|
|
45
45
|
--grid-record-focused-border: 1px solid var(--primary-color);
|
|
46
46
|
--grid-record-focused-cell-background-color: rgba(var(--primary-color-rgb), 0.25);
|
|
47
|
-
--grid-record-focused-cell-border: 1px
|
|
47
|
+
--grid-record-focused-cell-border: 1px dashed var(--primary-color);
|
|
48
48
|
--grid-record-focused-color: var(--grid-record-color);
|
|
49
49
|
--grid-record-focused-box-shadow: 0px 2px 0px 0px rgb(0 0 0 / 10%);
|
|
50
50
|
--grid-record-emphasized-background-color: var(--primary-color);
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@things-factory/grist-ui",
|
|
3
|
-
"version": "4.0.
|
|
3
|
+
"version": "4.0.7",
|
|
4
4
|
"main": "dist-server/index.js",
|
|
5
5
|
"browser": "client/index.js",
|
|
6
6
|
"things-factory": true,
|
|
@@ -24,11 +24,14 @@
|
|
|
24
24
|
"migration:create": "node ../../node_modules/typeorm/cli.js migration:create -d ./server/migrations"
|
|
25
25
|
},
|
|
26
26
|
"dependencies": {
|
|
27
|
-
"@material/mwc-icon": "^0.
|
|
28
|
-
"@
|
|
29
|
-
"@
|
|
30
|
-
"
|
|
27
|
+
"@material/mwc-icon": "^0.25.3",
|
|
28
|
+
"@operato/data-grist": "^0.2.28",
|
|
29
|
+
"@operato/headroom": "^0.2.26",
|
|
30
|
+
"@things-factory/i18n-base": "^4.0.7",
|
|
31
|
+
"@things-factory/styles": "^4.0.7",
|
|
32
|
+
"@things-factory/utils": "^4.0.7",
|
|
33
|
+
"lit": "^2.0.2",
|
|
31
34
|
"underscore": "^1.11.0"
|
|
32
35
|
},
|
|
33
|
-
"gitHead": "
|
|
36
|
+
"gitHead": "035fa60359aefa9b9111f807fc7e8db6a15a4a6e"
|
|
34
37
|
}
|
package/translations/en.json
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
}
|
|
2
|
+
"text.ox-data-report-grand-total": "grand total"
|
|
3
|
+
}
|
package/translations/ko.json
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
}
|
|
2
|
+
"text.ox-data-report-grand-total": "총합계"
|
|
3
|
+
}
|
package/translations/zh.json
CHANGED
|
@@ -1,3 +1,3 @@
|
|
|
1
1
|
{
|
|
2
|
-
"
|
|
3
|
-
}
|
|
2
|
+
"text.ox-data-report-grand-total": "[zh] grand total"
|
|
3
|
+
}
|