@operato/data-grist 2.0.0-beta.1 → 2.0.0-beta.13
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 +84 -0
- package/dist/src/data-card/data-card-gutter-menu.js +2 -0
- package/dist/src/data-card/data-card-gutter-menu.js.map +1 -1
- package/dist/src/data-card/record-card.js +4 -4
- package/dist/src/data-card/record-card.js.map +1 -1
- package/dist/src/data-grid/data-grid-body.js +3 -0
- package/dist/src/data-grid/data-grid-body.js.map +1 -1
- package/dist/src/data-grid/data-grid-field.d.ts +1 -0
- package/dist/src/data-grid/data-grid-field.js +2 -0
- package/dist/src/data-grid/data-grid-field.js.map +1 -1
- package/dist/src/data-grid/data-grid-header.d.ts +1 -0
- package/dist/src/data-grid/data-grid-header.js +3 -11
- package/dist/src/data-grid/data-grid-header.js.map +1 -1
- package/dist/src/data-list/record-partial.js +4 -4
- package/dist/src/data-list/record-partial.js.map +1 -1
- package/dist/src/editors/ox-grist-editor-date.js +1 -1
- package/dist/src/editors/ox-grist-editor-date.js.map +1 -1
- package/dist/src/editors/ox-grist-editor-datetime.js +1 -1
- package/dist/src/editors/ox-grist-editor-datetime.js.map +1 -1
- package/dist/src/renderers/ox-grist-renderer-json5.js +3 -0
- package/dist/src/renderers/ox-grist-renderer-json5.js.map +1 -1
- package/dist/src/renderers/ox-grist-renderer-text.js +2 -12
- package/dist/src/renderers/ox-grist-renderer-text.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/data-card/data-card-gutter-menu.ts +2 -0
- package/src/data-card/record-card.ts +4 -4
- package/src/data-grid/data-grid-body.ts +4 -0
- package/src/data-grid/data-grid-field.ts +3 -1
- package/src/data-grid/data-grid-header.ts +4 -12
- package/src/data-list/record-partial.ts +4 -4
- package/src/editors/ox-grist-editor-date.ts +1 -1
- package/src/editors/ox-grist-editor-datetime.ts +1 -1
- package/src/renderers/ox-grist-renderer-json5.ts +4 -0
- package/src/renderers/ox-grist-renderer-text.ts +2 -14
- package/themes/grist-theme.css +4 -0
@@ -59,7 +59,7 @@ export class RecordCard extends LitElement {
|
|
59
59
|
text-indent: 1px;
|
60
60
|
left: var(--spacing-none);
|
61
61
|
top: var(--spacing-none);
|
62
|
-
color: var(--grid-record-dirty-color);
|
62
|
+
color: var(--grid-record-dirty-color, var(--md-sys-color-error));
|
63
63
|
}
|
64
64
|
|
65
65
|
[thumbnail] {
|
@@ -102,17 +102,17 @@ export class RecordCard extends LitElement {
|
|
102
102
|
|
103
103
|
ox-card-field {
|
104
104
|
font: var(--data-card-item-etc-font);
|
105
|
-
color: var(--data-card-item-etc-color);
|
105
|
+
color: var(--data-card-item-etc-color, var(--md-sys-color-on-surface));
|
106
106
|
}
|
107
107
|
|
108
108
|
ox-card-field[name] {
|
109
109
|
font: var(--data-card-item-name-font);
|
110
|
-
color: var(--data-card-item-name-color);
|
110
|
+
color: var(--data-card-item-name-color, var(--md-sys-color-secondary));
|
111
111
|
}
|
112
112
|
|
113
113
|
ox-card-field[desc] {
|
114
114
|
font: var(--data-card-item-disc-font);
|
115
|
-
color: var(--data-card-item-disc-color);
|
115
|
+
color: var(--data-card-item-disc-color, var(--md-sys-color-tertiary));
|
116
116
|
}
|
117
117
|
`
|
118
118
|
]
|
@@ -545,6 +545,10 @@ export class DataGridBody extends LitElement {
|
|
545
545
|
const opacity = selectBlock.style.opacity
|
546
546
|
|
547
547
|
selectBlock.setAttribute('data-tooltip', 'copied to clipboard!')
|
548
|
+
const rect = selectBlock.getBoundingClientRect()
|
549
|
+
selectBlock.style.setProperty('--tooltip-top', `${rect.top}px`)
|
550
|
+
selectBlock.style.setProperty('--tooltip-left', `${rect.left}px`)
|
551
|
+
|
548
552
|
selectBlock.style.backgroundColor = 'red'
|
549
553
|
selectBlock.style.opacity = '0.5'
|
550
554
|
await sleep(500)
|
@@ -3,10 +3,10 @@ import { css, html, LitElement, PropertyValues, TemplateResult } from 'lit'
|
|
3
3
|
import { customElement, property } from 'lit/decorators.js'
|
4
4
|
|
5
5
|
import { TooltipStyles } from '@operato/styles'
|
6
|
+
import { TooltipReactiveController } from '@operato/utils'
|
6
7
|
|
7
8
|
import { ZERO_COLUMN } from '../configure/zero-config'
|
8
9
|
import { ColumnConfig, GristRecord } from '../types'
|
9
|
-
import { getRenderer } from '../renderers'
|
10
10
|
|
11
11
|
const DEFAULT_TEXT_ALIGN = 'left'
|
12
12
|
|
@@ -103,6 +103,8 @@ export class DataGridField extends LitElement {
|
|
103
103
|
private _onFieldChange: (e: Event) => void = e => {}
|
104
104
|
private _onKeydownInEditingMode: (e: KeyboardEvent) => void = e => {}
|
105
105
|
|
106
|
+
private tooltipController?: TooltipReactiveController = new TooltipReactiveController(this)
|
107
|
+
|
106
108
|
render(): TemplateResult {
|
107
109
|
if (!this.column) {
|
108
110
|
return html``
|
@@ -8,7 +8,7 @@ import throttle from 'lodash-es/throttle'
|
|
8
8
|
|
9
9
|
import { OxPopup } from '@operato/popup'
|
10
10
|
import { TooltipStyles } from '@operato/styles'
|
11
|
-
import {
|
11
|
+
import { TooltipReactiveController, closestElement } from '@operato/utils'
|
12
12
|
|
13
13
|
import { ZERO_COLUMNS, ZERO_DATA } from '../configure/zero-config'
|
14
14
|
import { FilterStyles } from '../filters/filter-styles'
|
@@ -163,6 +163,8 @@ export class DataGridHeader extends LitElement {
|
|
163
163
|
private _lastAccVal?: number
|
164
164
|
private _throttledNotifier?: any
|
165
165
|
|
166
|
+
private tooltipController?: TooltipReactiveController = new TooltipReactiveController(this)
|
167
|
+
|
166
168
|
connectedCallback() {
|
167
169
|
super.connectedCallback()
|
168
170
|
|
@@ -232,19 +234,9 @@ export class DataGridHeader extends LitElement {
|
|
232
234
|
>
|
233
235
|
<span
|
234
236
|
for-title
|
237
|
+
data-reactive-tooltip
|
235
238
|
style="text-align:${align || column.record.align || 'left'};"
|
236
239
|
@click=${(e: MouseEvent) => this._changeSort(column)}
|
237
|
-
@mouseover=${(e: MouseEvent) => {
|
238
|
-
const element = e.target as HTMLSpanElement
|
239
|
-
|
240
|
-
if (detectOverflow(element)) {
|
241
|
-
element.setAttribute('data-tooltip', element.textContent!.trim())
|
242
|
-
}
|
243
|
-
}}
|
244
|
-
@mouseout=${(e: MouseEvent) => {
|
245
|
-
const element = e.target as HTMLSpanElement
|
246
|
-
element.removeAttribute('data-tooltip')
|
247
|
-
}}
|
248
240
|
>${this._renderHeader(column)}
|
249
241
|
</span>
|
250
242
|
|
@@ -62,7 +62,7 @@ export class RecordPartial extends LitElement {
|
|
62
62
|
text-indent: 1px;
|
63
63
|
left: var(--spacing-none);
|
64
64
|
top: var(--spacing-none);
|
65
|
-
color: var(--grid-record-dirty-color);
|
65
|
+
color: var(--grid-record-dirty-color, var(--md-sys-color-error));
|
66
66
|
}
|
67
67
|
|
68
68
|
[content] {
|
@@ -88,17 +88,17 @@ export class RecordPartial extends LitElement {
|
|
88
88
|
|
89
89
|
ox-list-field {
|
90
90
|
font: var(--data-list-item-etc-font);
|
91
|
-
color: var(--data-list-item-etc-color);
|
91
|
+
color: var(--data-list-item-etc-color, var(--md-sys-color-on-surface));
|
92
92
|
}
|
93
93
|
|
94
94
|
ox-list-field[name] {
|
95
95
|
font: var(--data-list-item-name-font);
|
96
|
-
color: var(--data-list-item-name-color);
|
96
|
+
color: var(--data-list-item-name-color, var(--md-sys-color-secondary));
|
97
97
|
}
|
98
98
|
|
99
99
|
ox-list-field[desc] {
|
100
100
|
font: var(--data-list-item-disc-font);
|
101
|
-
color: var(--data-list-item-disc-color);
|
101
|
+
color: var(--data-list-item-disc-color, var(--md-sys-color-tertiary));
|
102
102
|
}
|
103
103
|
`
|
104
104
|
]
|
@@ -5,6 +5,6 @@ import { html } from 'lit'
|
|
5
5
|
@customElement('ox-grist-editor-date')
|
6
6
|
export class OxGristEditorDate extends OxGristEditor {
|
7
7
|
get editorTemplate() {
|
8
|
-
return html` <input type="date" .value=${this.value} /> `
|
8
|
+
return html` <input type="date" .value=${this.value} max="9999-12-31" /> `
|
9
9
|
}
|
10
10
|
}
|
@@ -22,6 +22,6 @@ export class OxGristEditorDateTime extends OxGristEditor {
|
|
22
22
|
}
|
23
23
|
|
24
24
|
get editorTemplate() {
|
25
|
-
return html` <input type="datetime-local" .value=${this.value} /> `
|
25
|
+
return html` <input type="datetime-local" .value=${this.value} max="9999-12-31T23:59" /> `
|
26
26
|
}
|
27
27
|
}
|
@@ -11,6 +11,10 @@ function onmouseover(e: Event) {
|
|
11
11
|
} catch {}
|
12
12
|
|
13
13
|
element.setAttribute('data-tooltip', JSON5.stringify(parsed, null, 2))
|
14
|
+
|
15
|
+
const rect = element.getBoundingClientRect()
|
16
|
+
element.style.setProperty('--tooltip-top', `${rect.top + rect.height}px`)
|
17
|
+
element.style.setProperty('--tooltip-left', `${rect.left}px`)
|
14
18
|
}
|
15
19
|
|
16
20
|
function onmouseout(e: Event) {
|
@@ -1,21 +1,9 @@
|
|
1
1
|
import { html } from 'lit'
|
2
2
|
|
3
|
-
import {
|
3
|
+
import { format as formatter } from '@operato/utils'
|
4
4
|
|
5
5
|
import { FieldRenderer } from '../types'
|
6
6
|
|
7
|
-
function onmouseover(e: Event) {
|
8
|
-
const element = e.target as HTMLSpanElement
|
9
|
-
if (detectOverflow(element)) {
|
10
|
-
element.setAttribute('data-tooltip', element.textContent!)
|
11
|
-
}
|
12
|
-
}
|
13
|
-
|
14
|
-
function onmouseout(e: Event) {
|
15
|
-
const element = e.target as HTMLSpanElement
|
16
|
-
element.removeAttribute('data-tooltip')
|
17
|
-
}
|
18
|
-
|
19
7
|
export const OxGristRendererText: FieldRenderer = (value, column, record, rowIndex, field) => {
|
20
8
|
var { format } = column.record || {}
|
21
9
|
|
@@ -24,5 +12,5 @@ export const OxGristRendererText: FieldRenderer = (value, column, record, rowInd
|
|
24
12
|
text = formatter(format, text)
|
25
13
|
}
|
26
14
|
|
27
|
-
return html`<span
|
15
|
+
return html`<span data-reactive-tooltip>${text} </span>`
|
28
16
|
}
|