@operato/data-grist 0.3.4 → 0.3.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 +82 -0
- package/custom-elements.json +984 -2383
- package/demo/index.html +22 -12
- package/dist/src/data-card/data-card.js +1 -0
- package/dist/src/data-card/data-card.js.map +1 -1
- package/dist/src/data-grid/data-grid-field.d.ts +1 -1
- package/dist/src/data-grid/data-grid-field.js +3 -1
- package/dist/src/data-grid/data-grid-field.js.map +1 -1
- package/dist/src/data-grid/data-grid-header.js +13 -7
- package/dist/src/data-grid/data-grid-header.js.map +1 -1
- package/dist/src/data-grist.js +1 -1
- package/dist/src/data-grist.js.map +1 -1
- package/dist/src/data-list/data-list.js +1 -0
- package/dist/src/data-list/data-list.js.map +1 -1
- package/dist/src/filters/filter-checkbox.js +1 -0
- package/dist/src/filters/filter-checkbox.js.map +1 -1
- package/dist/src/filters/filter-input.js +1 -1
- package/dist/src/filters/filter-input.js.map +1 -1
- package/dist/src/filters/filter-range-date.js +1 -1
- package/dist/src/filters/filter-range-date.js.map +1 -1
- package/dist/src/filters/filter-range-number.js +2 -1
- package/dist/src/filters/filter-range-number.js.map +1 -1
- package/dist/src/filters/filters-form.d.ts +19 -0
- package/dist/src/filters/filters-form.js +99 -0
- package/dist/src/filters/filters-form.js.map +1 -0
- package/dist/src/filters/index.d.ts +1 -0
- package/dist/src/filters/index.js +1 -0
- package/dist/src/filters/index.js.map +1 -1
- package/dist/src/filters/registry.d.ts +5 -5
- package/dist/src/filters/registry.js +25 -25
- package/dist/src/filters/registry.js.map +1 -1
- package/dist/src/gutters/gutter-button.js +1 -0
- package/dist/src/gutters/gutter-button.js.map +1 -1
- package/dist/src/gutters/gutter-row-selector.js +1 -0
- package/dist/src/gutters/gutter-row-selector.js.map +1 -1
- package/dist/src/index.d.ts +1 -2
- package/dist/src/index.js +1 -2
- package/dist/src/index.js.map +1 -1
- package/dist/src/record-view/record-view-body.d.ts +1 -1
- package/dist/src/record-view/record-view-body.js +5 -5
- package/dist/src/record-view/record-view-body.js.map +1 -1
- package/dist/src/record-view/record-view.d.ts +1 -1
- package/dist/src/record-view/record-view.js +1 -3
- package/dist/src/record-view/record-view.js.map +1 -1
- package/dist/src/types.d.ts +4 -3
- package/dist/src/types.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +9 -8
- package/src/data-card/data-card.ts +2 -0
- package/src/data-grid/data-grid-field.ts +4 -2
- package/src/data-grid/data-grid-header.ts +12 -6
- package/src/data-grist.ts +1 -1
- package/src/data-list/data-list.ts +2 -0
- package/src/filters/filter-checkbox.ts +1 -0
- package/src/filters/filter-input.ts +1 -1
- package/src/filters/filter-range-date.ts +1 -1
- package/src/filters/filter-range-number.ts +2 -1
- package/src/filters/filters-form.ts +132 -0
- package/src/filters/index.ts +2 -0
- package/src/filters/registry.ts +26 -26
- package/src/gutters/gutter-button.ts +3 -2
- package/src/gutters/gutter-row-selector.ts +3 -2
- package/src/index.ts +1 -3
- package/src/record-view/record-view-body.ts +7 -7
- package/src/record-view/record-view.ts +2 -4
- package/src/types.ts +34 -4
- package/themes/grist-theme.css +2 -22
- package/dist/src/interfaces/index.d.ts +0 -2
- package/dist/src/interfaces/index.js +0 -3
- package/dist/src/interfaces/index.js.map +0 -1
- package/dist/src/interfaces/ox-grist-search-form.d.ts +0 -6
- package/dist/src/interfaces/ox-grist-search-form.js +0 -2
- package/dist/src/interfaces/ox-grist-search-form.js.map +0 -1
- package/dist/src/interfaces/ox-search-field.d.ts +0 -39
- package/dist/src/interfaces/ox-search-field.js +0 -2
- package/dist/src/interfaces/ox-search-field.js.map +0 -1
- package/dist/src/search-form/index.d.ts +0 -7
- package/dist/src/search-form/index.js +0 -8
- package/dist/src/search-form/index.js.map +0 -1
- package/dist/src/search-form/ox-basic-field.d.ts +0 -18
- package/dist/src/search-form/ox-basic-field.js +0 -75
- package/dist/src/search-form/ox-basic-field.js.map +0 -1
- package/dist/src/search-form/ox-checkbox-field.d.ts +0 -11
- package/dist/src/search-form/ox-checkbox-field.js +0 -60
- package/dist/src/search-form/ox-checkbox-field.js.map +0 -1
- package/dist/src/search-form/ox-grist-search-form.d.ts +0 -11
- package/dist/src/search-form/ox-grist-search-form.js +0 -177
- package/dist/src/search-form/ox-grist-search-form.js.map +0 -1
- package/dist/src/search-form/ox-number-field.d.ts +0 -14
- package/dist/src/search-form/ox-number-field.js +0 -112
- package/dist/src/search-form/ox-number-field.js.map +0 -1
- package/dist/src/search-form/ox-search-form.d.ts +0 -15
- package/dist/src/search-form/ox-search-form.js +0 -53
- package/dist/src/search-form/ox-search-form.js.map +0 -1
- package/dist/src/search-form/ox-select-field.d.ts +0 -21
- package/dist/src/search-form/ox-select-field.js +0 -181
- package/dist/src/search-form/ox-select-field.js.map +0 -1
- package/dist/src/search-form/ox-text-field.d.ts +0 -11
- package/dist/src/search-form/ox-text-field.js +0 -60
- package/dist/src/search-form/ox-text-field.js.map +0 -1
- package/src/interfaces/index.ts +0 -2
- package/src/interfaces/ox-grist-search-form.ts +0 -7
- package/src/interfaces/ox-search-field.ts +0 -52
- package/src/search-form/index.ts +0 -7
- package/src/search-form/ox-basic-field.ts +0 -86
- package/src/search-form/ox-checkbox-field.ts +0 -57
- package/src/search-form/ox-grist-search-form.ts +0 -200
- package/src/search-form/ox-number-field.ts +0 -113
- package/src/search-form/ox-search-form.ts +0 -71
- package/src/search-form/ox-select-field.ts +0 -189
- package/src/search-form/ox-text-field.ts +0 -55
package/src/filters/registry.ts
CHANGED
|
@@ -6,46 +6,46 @@ import { FilterRangeNumber } from './filter-range-number'
|
|
|
6
6
|
import { FilterSelect } from './filter-select'
|
|
7
7
|
|
|
8
8
|
var RENDERERS: {
|
|
9
|
-
[name: string]: FilterSelectRenderer
|
|
9
|
+
[name: string]: FilterSelectRenderer[]
|
|
10
10
|
} = {
|
|
11
|
-
string: FilterInput,
|
|
12
|
-
text: FilterInput,
|
|
13
|
-
email: FilterInput,
|
|
14
|
-
tel: FilterInput,
|
|
15
|
-
integer: FilterRangeNumber,
|
|
16
|
-
float: FilterRangeNumber,
|
|
17
|
-
number: FilterRangeNumber,
|
|
18
|
-
select: FilterSelect,
|
|
19
|
-
boolean: FilterCheckbox,
|
|
20
|
-
checkbox: FilterCheckbox,
|
|
21
|
-
month: FilterRangeDate,
|
|
22
|
-
week: FilterRangeDate,
|
|
23
|
-
date: FilterRangeDate,
|
|
24
|
-
time: FilterRangeDate,
|
|
25
|
-
datetime: FilterRangeDate,
|
|
26
|
-
color: FilterInput,
|
|
27
|
-
progress: FilterRangeNumber,
|
|
28
|
-
link: FilterInput,
|
|
29
|
-
image: FilterInput,
|
|
30
|
-
json5: FilterInput
|
|
11
|
+
string: [FilterInput],
|
|
12
|
+
text: [FilterInput],
|
|
13
|
+
email: [FilterInput],
|
|
14
|
+
tel: [FilterInput],
|
|
15
|
+
integer: [FilterInput, FilterRangeNumber],
|
|
16
|
+
float: [FilterInput, FilterRangeNumber],
|
|
17
|
+
number: [FilterInput, FilterRangeNumber],
|
|
18
|
+
select: [FilterSelect],
|
|
19
|
+
boolean: [FilterCheckbox],
|
|
20
|
+
checkbox: [FilterCheckbox],
|
|
21
|
+
month: [FilterInput, FilterRangeDate],
|
|
22
|
+
week: [FilterInput, FilterRangeDate],
|
|
23
|
+
date: [FilterInput, FilterRangeDate],
|
|
24
|
+
time: [FilterInput, FilterRangeDate],
|
|
25
|
+
datetime: [FilterInput, FilterRangeDate],
|
|
26
|
+
color: [FilterInput],
|
|
27
|
+
progress: [FilterInput, FilterRangeNumber],
|
|
28
|
+
link: [FilterInput],
|
|
29
|
+
image: [FilterInput],
|
|
30
|
+
json5: [FilterInput]
|
|
31
31
|
}
|
|
32
32
|
|
|
33
|
-
export function
|
|
33
|
+
export function registerFilterRenderer(type: string, renderer: FilterSelectRenderer[]) {
|
|
34
34
|
RENDERERS[type] = renderer
|
|
35
35
|
}
|
|
36
36
|
|
|
37
|
-
export function
|
|
37
|
+
export function unregisterFilterRenderer(type: string): void {
|
|
38
38
|
delete RENDERERS[type]
|
|
39
39
|
}
|
|
40
40
|
|
|
41
|
-
export function
|
|
41
|
+
export function getFilterRenderers(): { [name: string]: FilterSelectRenderer[] } {
|
|
42
42
|
return { ...RENDERERS }
|
|
43
43
|
}
|
|
44
44
|
|
|
45
|
-
export function
|
|
45
|
+
export function getFilterRenderer(type: string): FilterSelectRenderer[] {
|
|
46
46
|
if (typeof type == 'function') {
|
|
47
47
|
return type
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
return RENDERERS[type || 'text'] ||
|
|
50
|
+
return RENDERERS[type || 'text'] || [FilterInput]
|
|
51
51
|
}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
import '@material/mwc-icon'
|
|
2
2
|
|
|
3
|
-
import { FieldRenderer, HeaderRenderer } from '../types'
|
|
4
|
-
|
|
5
3
|
import { html } from 'lit'
|
|
6
4
|
|
|
5
|
+
import { FieldRenderer, HeaderRenderer } from '../types'
|
|
6
|
+
|
|
7
7
|
export class GutterButton {
|
|
8
8
|
static instance(config: any = {}) {
|
|
9
9
|
var { icon = 'edit' } = config
|
|
@@ -27,6 +27,7 @@ export class GutterButton {
|
|
|
27
27
|
} as HeaderRenderer
|
|
28
28
|
},
|
|
29
29
|
record: {
|
|
30
|
+
align: 'center',
|
|
30
31
|
renderer: function (value, column, record, rowIndex, field) {
|
|
31
32
|
return html` <mwc-icon style=${inlineRecordStyle}>${iconFn(record)}</mwc-icon> `
|
|
32
33
|
} as FieldRenderer
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { html } from 'lit'
|
|
2
2
|
|
|
3
3
|
import { DataCard } from '../data-card/data-card'
|
|
4
4
|
import { DataGrid } from '../data-grid/data-grid'
|
|
5
5
|
import { DataList } from '../data-list/data-list'
|
|
6
|
-
import {
|
|
6
|
+
import { FieldRenderer, HeaderRenderer } from '../types'
|
|
7
7
|
|
|
8
8
|
export class GutterRowSelector {
|
|
9
9
|
static instance(config = {} as any) {
|
|
@@ -44,6 +44,7 @@ export class GutterRowSelector {
|
|
|
44
44
|
} as HeaderRenderer
|
|
45
45
|
},
|
|
46
46
|
record: {
|
|
47
|
+
align: 'center',
|
|
47
48
|
renderer: function (value, column, record, rowIndex, field) {
|
|
48
49
|
return html`
|
|
49
50
|
<input
|
package/src/index.ts
CHANGED
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
import '@material/mwc-icon'
|
|
2
2
|
import '../data-grid/data-grid-field'
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import { LitElement, css, html } from 'lit'
|
|
4
|
+
import { css, html, LitElement } from 'lit'
|
|
6
5
|
import { customElement, property } from 'lit/decorators.js'
|
|
7
6
|
|
|
8
|
-
import { DataGridField } from '../data-grid/data-grid-field'
|
|
9
7
|
import { ZERO_RECORD } from '../configure/zero-config'
|
|
8
|
+
import { DataGridField } from '../data-grid/data-grid-field'
|
|
9
|
+
import { ColumnConfig, GristRecord } from '../types'
|
|
10
10
|
|
|
11
11
|
const KEY_ENTER = 13
|
|
12
12
|
const KEY_ESC = 27
|
|
@@ -27,6 +27,8 @@ export class RecordViewBody extends LitElement {
|
|
|
27
27
|
}
|
|
28
28
|
|
|
29
29
|
label {
|
|
30
|
+
display: flex;
|
|
31
|
+
align-items: center;
|
|
30
32
|
position: relative;
|
|
31
33
|
text-transform: capitalize;
|
|
32
34
|
|
|
@@ -47,7 +49,6 @@ export class RecordViewBody extends LitElement {
|
|
|
47
49
|
}
|
|
48
50
|
|
|
49
51
|
ox-grid-field {
|
|
50
|
-
padding: 0 0 5px 0;
|
|
51
52
|
border-bottom: var(--record-view-border-bottom);
|
|
52
53
|
font: var(--record-view-font);
|
|
53
54
|
color: var(--record-view-color);
|
|
@@ -84,7 +85,7 @@ export class RecordViewBody extends LitElement {
|
|
|
84
85
|
let dirtyFields = record['__dirtyfields__'] || {}
|
|
85
86
|
|
|
86
87
|
return html`
|
|
87
|
-
<label ?editable=${editable}>${this._renderLabel(column)} <mwc-icon>edit</mwc-icon></label>
|
|
88
|
+
<label ?editable=${editable}><span>${this._renderLabel(column)}</span> <mwc-icon>edit</mwc-icon></label>
|
|
88
89
|
<ox-grid-field
|
|
89
90
|
.rowIndex=${rowIndex}
|
|
90
91
|
.column=${column}
|
|
@@ -127,10 +128,9 @@ export class RecordViewBody extends LitElement {
|
|
|
127
128
|
this.editTarget.removeAttribute('editing')
|
|
128
129
|
this.editTarget = null
|
|
129
130
|
}
|
|
130
|
-
|
|
131
|
+
break
|
|
131
132
|
|
|
132
133
|
default:
|
|
133
|
-
return
|
|
134
134
|
}
|
|
135
135
|
}
|
|
136
136
|
window.addEventListener('keydown', this._focusedListener)
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import '@material/mwc-icon'
|
|
2
2
|
import './record-view-body'
|
|
3
3
|
|
|
4
|
-
import {
|
|
5
|
-
import { LitElement, css, html } from 'lit'
|
|
4
|
+
import { css, html, LitElement } from 'lit'
|
|
6
5
|
import { customElement, property } from 'lit/decorators.js'
|
|
7
6
|
|
|
8
7
|
import { ZERO_RECORD } from '../configure/zero-config'
|
|
8
|
+
import { ColumnConfig, GristRecord } from '../types'
|
|
9
9
|
|
|
10
10
|
@customElement('ox-record-view')
|
|
11
11
|
export class RecordView extends LitElement {
|
|
@@ -24,7 +24,6 @@ export class RecordView extends LitElement {
|
|
|
24
24
|
text-align: right;
|
|
25
25
|
background-color: var(--record-view-footer-background);
|
|
26
26
|
box-shadow: var(--context-toolbar-shadow-line);
|
|
27
|
-
height: var(--record-view-footer-height);
|
|
28
27
|
}
|
|
29
28
|
|
|
30
29
|
[footer] button {
|
|
@@ -32,7 +31,6 @@ export class RecordView extends LitElement {
|
|
|
32
31
|
background-color: transparent;
|
|
33
32
|
border: var(--record-view-footer-button-border);
|
|
34
33
|
border-width: var(--record-view-footer-button-border-width);
|
|
35
|
-
height: var(--record-view-footer-button-height);
|
|
36
34
|
color: var(--record-view-footer-button-color);
|
|
37
35
|
font-size: var(--record-view-footer-button-font);
|
|
38
36
|
line-height: 3;
|
package/src/types.ts
CHANGED
|
@@ -1,12 +1,13 @@
|
|
|
1
|
+
import { TemplateResult } from 'lit-html'
|
|
2
|
+
|
|
1
3
|
import { DataCardField } from './data-card/data-card-field'
|
|
2
4
|
import { DataCardGutter } from './data-card/data-card-gutter'
|
|
5
|
+
import { RecordCard } from './data-card/record-card'
|
|
3
6
|
import { DataGridField } from './data-grid/data-grid-field'
|
|
4
7
|
import { DataListField } from './data-list/data-list-field'
|
|
5
8
|
import { DataListGutter } from './data-list/data-list-gutter'
|
|
6
|
-
import { DataReportField } from './data-report/data-report-field'
|
|
7
|
-
import { RecordCard } from './data-card/record-card'
|
|
8
9
|
import { RecordPartial } from './data-list/record-partial'
|
|
9
|
-
import {
|
|
10
|
+
import { DataReportField } from './data-report/data-report-field'
|
|
10
11
|
|
|
11
12
|
export type GristConfig = {
|
|
12
13
|
columns: ColumnConfig[]
|
|
@@ -18,7 +19,36 @@ export type GristConfig = {
|
|
|
18
19
|
|
|
19
20
|
export type SorterConfig = { name: string; desc?: boolean }
|
|
20
21
|
export type SortersConfig = SorterConfig[]
|
|
21
|
-
export type FilterConfig =
|
|
22
|
+
export type FilterConfig =
|
|
23
|
+
| {
|
|
24
|
+
type: string
|
|
25
|
+
operator?:
|
|
26
|
+
| 'eq'
|
|
27
|
+
| 'between'
|
|
28
|
+
| 'gte'
|
|
29
|
+
| 'lte'
|
|
30
|
+
| 'is_not_true'
|
|
31
|
+
| 'in'
|
|
32
|
+
| 'like'
|
|
33
|
+
| 'i_like'
|
|
34
|
+
| 'noteq'
|
|
35
|
+
| 'is_empty_num_id'
|
|
36
|
+
| 'is_blank'
|
|
37
|
+
| 'is_present'
|
|
38
|
+
| 'is_not_false'
|
|
39
|
+
| 'is_true'
|
|
40
|
+
| 'is_false'
|
|
41
|
+
| 'is_not_null'
|
|
42
|
+
| 'is_null'
|
|
43
|
+
| 'notin_with_null'
|
|
44
|
+
| 'notin'
|
|
45
|
+
| 'gt'
|
|
46
|
+
| 'lt'
|
|
47
|
+
| 'i_nlike'
|
|
48
|
+
| 'nlike'
|
|
49
|
+
options?: { [key: string]: any }
|
|
50
|
+
}
|
|
51
|
+
| boolean
|
|
22
52
|
|
|
23
53
|
export type PaginationConfig = {
|
|
24
54
|
page?: number
|
package/themes/grist-theme.css
CHANGED
|
@@ -3,7 +3,6 @@ body {
|
|
|
3
3
|
--grid-container-border-width: 1px 0;
|
|
4
4
|
|
|
5
5
|
--grist-background-color: var(--main-section-background-color);
|
|
6
|
-
--grist-padding: var(--padding-wide);
|
|
7
6
|
--grist-title-margin: 0 0 0 10px;
|
|
8
7
|
--grist-title-border: none;
|
|
9
8
|
--grist-title-font: bold 16px var(--theme-font);
|
|
@@ -137,38 +136,19 @@ body {
|
|
|
137
136
|
--record-view-edit-border-bottom: 2px solid var(--primary-color);
|
|
138
137
|
--record-view-item-padding: var(--padding-default);
|
|
139
138
|
|
|
140
|
-
--record-view-footer-height: 36px;
|
|
141
139
|
--record-view-footer-background: #586272;
|
|
142
140
|
--record-view-footer-button-border: 1px solid rgba(0, 0, 0, 0.3);
|
|
143
141
|
--record-view-footer-button-border-width: 0 0 0 1px;
|
|
144
|
-
--record-view-footer-button-height: 36px;
|
|
145
142
|
--record-view-footer-button-font: 17px;
|
|
146
143
|
--record-view-footer-button-color: var(--theme-white-color);
|
|
147
|
-
--record-view-footer-iconbutton-size:
|
|
144
|
+
--record-view-footer-iconbutton-size: 35px;
|
|
148
145
|
--record-view-footer-focus-background: var(--primary-color);
|
|
149
146
|
}
|
|
150
147
|
|
|
151
148
|
@media only screen and (max-width: 460px) {
|
|
152
149
|
body {
|
|
153
|
-
--
|
|
150
|
+
--record-view-label-font: bold 15px/32px var(--theme-font);
|
|
154
151
|
--record-view-font: normal 15px/32px var(--theme-font);
|
|
155
|
-
--record-view-footer-height: 50px;
|
|
156
|
-
--record-view-footer-button-height: var(--record-view-footer-height);
|
|
157
|
-
--record-view-footer-iconbutton-size: 35px;
|
|
158
|
-
--record-view-footer-iconbutton-margin: -2px;
|
|
159
|
-
--record-view-footer-iconbutton-display: block;
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
|
|
163
|
-
@media (min-width: 461px) and (max-width: 1024px) {
|
|
164
|
-
body {
|
|
165
|
-
--grist-padding: 0;
|
|
166
|
-
|
|
167
|
-
--record-view-footer-height: 50px;
|
|
168
|
-
--record-view-footer-button-height: var(--record-view-footer-height);
|
|
169
|
-
--record-view-footer-iconbutton-size: 35px;
|
|
170
|
-
--record-view-footer-iconbutton-margin: -2px;
|
|
171
|
-
--record-view-footer-iconbutton-display: block;
|
|
172
152
|
}
|
|
173
153
|
}
|
|
174
154
|
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/interfaces/index.ts"],"names":[],"mappings":"AAAA,cAAc,mBAAmB,CAAA;AACjC,cAAc,wBAAwB,CAAA","sourcesContent":["export * from './ox-search-field'\nexport * from './ox-grist-search-form'\n"]}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ox-grist-search-form.js","sourceRoot":"","sources":["../../../src/interfaces/ox-grist-search-form.ts"],"names":[],"mappings":"","sourcesContent":["export type QueryFilterRangeValue = [from: number, to: number]\n\nexport type QueryFilter = {\n name: string\n operator?: string\n value: any\n}\n"]}
|
|
@@ -1,39 +0,0 @@
|
|
|
1
|
-
export declare type OXSearchFieldType = 'select' | 'checkbox' | 'text' | 'number';
|
|
2
|
-
export interface OXFieldOptionProps {
|
|
3
|
-
name?: string;
|
|
4
|
-
value: string;
|
|
5
|
-
}
|
|
6
|
-
export interface OXBasicFieldProps {
|
|
7
|
-
name: string;
|
|
8
|
-
type?: OXSearchFieldType;
|
|
9
|
-
hidden?: boolean;
|
|
10
|
-
id?: string;
|
|
11
|
-
placeholder?: string;
|
|
12
|
-
handlers?: Record<string, (event: Event) => void>;
|
|
13
|
-
defaultValue?: any;
|
|
14
|
-
operator?: string;
|
|
15
|
-
}
|
|
16
|
-
export interface OXTextFieldProps extends OXBasicFieldProps {
|
|
17
|
-
defaultValue?: string;
|
|
18
|
-
}
|
|
19
|
-
export interface OXNumberFieldProps extends OXBasicFieldProps {
|
|
20
|
-
min?: number;
|
|
21
|
-
max?: number;
|
|
22
|
-
step: number;
|
|
23
|
-
defaultValue?: number;
|
|
24
|
-
}
|
|
25
|
-
export interface OXObjectFieldProps extends OXBasicFieldProps {
|
|
26
|
-
field: string;
|
|
27
|
-
queryName: string;
|
|
28
|
-
defaultValue?: Record<string, any>;
|
|
29
|
-
}
|
|
30
|
-
export interface OXSelectFieldProps extends OXBasicFieldProps {
|
|
31
|
-
searchEnable?: boolean;
|
|
32
|
-
options: OXFieldOptionProps[];
|
|
33
|
-
defaultValue?: any;
|
|
34
|
-
}
|
|
35
|
-
export interface OXCheckboxFieldProps extends OXBasicFieldProps {
|
|
36
|
-
indeterminate?: boolean;
|
|
37
|
-
defaultValue?: boolean;
|
|
38
|
-
}
|
|
39
|
-
export declare type OXSearchFieldProps = OXTextFieldProps | OXNumberFieldProps | OXObjectFieldProps | OXSelectFieldProps | OXCheckboxFieldProps;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ox-search-field.js","sourceRoot":"","sources":["../../../src/interfaces/ox-search-field.ts"],"names":[],"mappings":"","sourcesContent":["export type OXSearchFieldType = 'select' | 'checkbox' | 'text' | 'number'\n\nexport interface OXFieldOptionProps {\n name?: string\n value: string\n}\n\nexport interface OXBasicFieldProps {\n name: string\n type?: OXSearchFieldType\n hidden?: boolean\n id?: string\n placeholder?: string\n handlers?: Record<string, (event: Event) => void>\n defaultValue?: any\n operator?: string\n}\n\nexport interface OXTextFieldProps extends OXBasicFieldProps {\n defaultValue?: string\n}\n\nexport interface OXNumberFieldProps extends OXBasicFieldProps {\n min?: number\n max?: number\n step: number\n defaultValue?: number\n}\n\nexport interface OXObjectFieldProps extends OXBasicFieldProps {\n field: string\n queryName: string\n defaultValue?: Record<string, any>\n}\n\nexport interface OXSelectFieldProps extends OXBasicFieldProps {\n searchEnable?: boolean\n options: OXFieldOptionProps[]\n defaultValue?: any\n}\n\nexport interface OXCheckboxFieldProps extends OXBasicFieldProps {\n indeterminate?: boolean\n defaultValue?: boolean\n}\n\nexport type OXSearchFieldProps =\n | OXTextFieldProps\n | OXNumberFieldProps\n | OXObjectFieldProps\n | OXSelectFieldProps\n | OXCheckboxFieldProps\n"]}
|
|
@@ -1,8 +0,0 @@
|
|
|
1
|
-
export * from './ox-search-form';
|
|
2
|
-
export * from './ox-grist-search-form';
|
|
3
|
-
export * from './ox-basic-field';
|
|
4
|
-
export * from './ox-checkbox-field';
|
|
5
|
-
export * from './ox-number-field';
|
|
6
|
-
export * from './ox-select-field';
|
|
7
|
-
export * from './ox-text-field';
|
|
8
|
-
//# sourceMappingURL=index.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/search-form/index.ts"],"names":[],"mappings":"AAAA,cAAc,kBAAkB,CAAA;AAChC,cAAc,wBAAwB,CAAA;AACtC,cAAc,kBAAkB,CAAA;AAChC,cAAc,qBAAqB,CAAA;AACnC,cAAc,mBAAmB,CAAA;AACjC,cAAc,mBAAmB,CAAA;AACjC,cAAc,iBAAiB,CAAA","sourcesContent":["export * from './ox-search-form'\nexport * from './ox-grist-search-form'\nexport * from './ox-basic-field'\nexport * from './ox-checkbox-field'\nexport * from './ox-number-field'\nexport * from './ox-select-field'\nexport * from './ox-text-field'\n"]}
|
|
@@ -1,18 +0,0 @@
|
|
|
1
|
-
import { LitElement } from 'lit-element';
|
|
2
|
-
import { OXBasicFieldProps } from '../interfaces/ox-search-field';
|
|
3
|
-
export declare abstract class OXBasicField extends LitElement {
|
|
4
|
-
static styles: import("lit-element").CSSResult[];
|
|
5
|
-
field: OXBasicFieldProps;
|
|
6
|
-
private form;
|
|
7
|
-
value?: any;
|
|
8
|
-
abstract setDefaultValue(defaultValue: unknown): void;
|
|
9
|
-
get input(): HTMLInputElement | HTMLSelectElement;
|
|
10
|
-
connectedCallback(): void;
|
|
11
|
-
disconnectedCallback(): void;
|
|
12
|
-
firstUpdated(): void;
|
|
13
|
-
private findFormElement;
|
|
14
|
-
private registerCustomEventHandlers;
|
|
15
|
-
private registerBasicEventHandlers;
|
|
16
|
-
private appendFormData;
|
|
17
|
-
private submit;
|
|
18
|
-
}
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
import { css, LitElement } from 'lit-element';
|
|
2
|
-
export class OXBasicField extends LitElement {
|
|
3
|
-
constructor() {
|
|
4
|
-
super(...arguments);
|
|
5
|
-
this.form = null;
|
|
6
|
-
}
|
|
7
|
-
get input() {
|
|
8
|
-
if (!this.field.name)
|
|
9
|
-
throw new Error('No name property provided');
|
|
10
|
-
const input = this.renderRoot.querySelector(`input[name=${this.field.name}],select[name=${this.field.name}]`);
|
|
11
|
-
if (!input)
|
|
12
|
-
throw new Error('Failed to find input element');
|
|
13
|
-
return input;
|
|
14
|
-
}
|
|
15
|
-
connectedCallback() {
|
|
16
|
-
var _a;
|
|
17
|
-
super.connectedCallback();
|
|
18
|
-
this.form = this.findFormElement();
|
|
19
|
-
(_a = this.form) === null || _a === void 0 ? void 0 : _a.addEventListener('formdata', this.appendFormData.bind(this));
|
|
20
|
-
}
|
|
21
|
-
disconnectedCallback() {
|
|
22
|
-
var _a;
|
|
23
|
-
super.disconnectedCallback();
|
|
24
|
-
(_a = this.form) === null || _a === void 0 ? void 0 : _a.removeEventListener('formdata', this.appendFormData.bind(this));
|
|
25
|
-
this.form = null;
|
|
26
|
-
}
|
|
27
|
-
firstUpdated() {
|
|
28
|
-
const { handlers } = this.field || {};
|
|
29
|
-
this.registerBasicEventHandlers();
|
|
30
|
-
if (handlers)
|
|
31
|
-
this.registerCustomEventHandlers(handlers);
|
|
32
|
-
if (this.field.defaultValue !== undefined)
|
|
33
|
-
this.setDefaultValue(this.field.defaultValue);
|
|
34
|
-
}
|
|
35
|
-
findFormElement() {
|
|
36
|
-
const rootNode = this.getRootNode();
|
|
37
|
-
const forms = Array.from(rootNode.querySelectorAll('form'));
|
|
38
|
-
return forms.find((form) => form.contains(this)) || null;
|
|
39
|
-
}
|
|
40
|
-
registerCustomEventHandlers(handlers) {
|
|
41
|
-
const eventNames = Object.keys(handlers);
|
|
42
|
-
if (!eventNames.length)
|
|
43
|
-
return;
|
|
44
|
-
eventNames.forEach((eventName) => this.input.addEventListener(eventName, handlers[eventName]));
|
|
45
|
-
}
|
|
46
|
-
registerBasicEventHandlers() {
|
|
47
|
-
this.input.onkeydown = (event) => {
|
|
48
|
-
if (event.key === 'Enter')
|
|
49
|
-
this.submit();
|
|
50
|
-
};
|
|
51
|
-
}
|
|
52
|
-
appendFormData({ formData }) {
|
|
53
|
-
formData.append(this.field.name, this.value);
|
|
54
|
-
}
|
|
55
|
-
submit() {
|
|
56
|
-
if (this.form)
|
|
57
|
-
this.dispatchEvent(new CustomEvent('submit-field', { composed: true, bubbles: true }));
|
|
58
|
-
}
|
|
59
|
-
}
|
|
60
|
-
OXBasicField.styles = [
|
|
61
|
-
css `
|
|
62
|
-
input,
|
|
63
|
-
select {
|
|
64
|
-
background-color: transparent;
|
|
65
|
-
border: none;
|
|
66
|
-
box-sizing: border-box;
|
|
67
|
-
outline: none;
|
|
68
|
-
padding: 4px 9px;
|
|
69
|
-
font-size: var(--fontsize-default, 14px);
|
|
70
|
-
color: var(--primary-text-color, #476172);
|
|
71
|
-
font-weight: bold;
|
|
72
|
-
}
|
|
73
|
-
`
|
|
74
|
-
];
|
|
75
|
-
//# sourceMappingURL=ox-basic-field.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ox-basic-field.js","sourceRoot":"","sources":["../../../src/search-form/ox-basic-field.ts"],"names":[],"mappings":"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","sourcesContent":["import { css, LitElement } from 'lit-element'\n\nimport { OXBasicFieldProps } from '../interfaces/ox-search-field'\n\nexport abstract class OXBasicField extends LitElement {\n static styles = [\n css`\n input,\n select {\n background-color: transparent;\n border: none;\n box-sizing: border-box;\n outline: none;\n padding: 4px 9px;\n font-size: var(--fontsize-default, 14px);\n color: var(--primary-text-color, #476172);\n font-weight: bold;\n }\n `\n ]\n\n field!: OXBasicFieldProps\n\n private form: HTMLFormElement | null = null\n value?: any\n\n abstract setDefaultValue(defaultValue: unknown): void\n\n get input(): HTMLInputElement | HTMLSelectElement {\n if (!this.field.name) throw new Error('No name property provided')\n const input: HTMLInputElement | null = this.renderRoot.querySelector(\n `input[name=${this.field.name}],select[name=${this.field.name}]`\n )\n if (!input) throw new Error('Failed to find input element')\n\n return input\n }\n\n override connectedCallback(): void {\n super.connectedCallback()\n this.form = this.findFormElement()\n this.form?.addEventListener('formdata', this.appendFormData.bind(this))\n }\n\n override disconnectedCallback(): void {\n super.disconnectedCallback()\n this.form?.removeEventListener('formdata', this.appendFormData.bind(this))\n this.form = null\n }\n\n override firstUpdated(): void {\n const { handlers } = this.field || {}\n\n this.registerBasicEventHandlers()\n if (handlers) this.registerCustomEventHandlers(handlers)\n if (this.field.defaultValue !== undefined) this.setDefaultValue(this.field.defaultValue)\n }\n\n private findFormElement(): HTMLFormElement | null {\n const rootNode: HTMLElement = this.getRootNode() as HTMLElement\n const forms: HTMLFormElement[] = Array.from(rootNode.querySelectorAll('form'))\n\n return forms.find((form: HTMLFormElement) => form.contains(this)) || null\n }\n\n private registerCustomEventHandlers(handlers: Record<string, (event: Event) => void>): void {\n const eventNames: string[] = Object.keys(handlers)\n if (!eventNames.length) return\n\n eventNames.forEach((eventName: string) => this.input.addEventListener(eventName, handlers[eventName]))\n }\n\n private registerBasicEventHandlers(): void {\n this.input.onkeydown = (event: KeyboardEvent) => {\n if (event.key === 'Enter') this.submit()\n }\n }\n\n private appendFormData({ formData }: FormDataEvent): void {\n formData.append(this.field.name, this.value)\n }\n\n private submit(): void {\n if (this.form) this.dispatchEvent(new CustomEvent('submit-field', { composed: true, bubbles: true }))\n }\n}\n"]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { TemplateResult } from 'lit';
|
|
2
|
-
import { OXCheckboxFieldProps } from '..';
|
|
3
|
-
import { OXBasicField } from './ox-basic-field';
|
|
4
|
-
export declare class OXCheckboxField extends OXBasicField {
|
|
5
|
-
field: OXCheckboxFieldProps;
|
|
6
|
-
value?: boolean;
|
|
7
|
-
static styles: import("lit").CSSResult[];
|
|
8
|
-
setDefaultValue(defaultValue: boolean): void;
|
|
9
|
-
render(): TemplateResult;
|
|
10
|
-
private onClickHandler;
|
|
11
|
-
}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
import { __decorate } from "tslib";
|
|
2
|
-
import { css, html } from 'lit';
|
|
3
|
-
import { ifDefined } from 'lit-html/directives/if-defined.js';
|
|
4
|
-
import { customElement, property } from 'lit/decorators.js';
|
|
5
|
-
import { OXBasicField } from './ox-basic-field';
|
|
6
|
-
let OXCheckboxField = class OXCheckboxField extends OXBasicField {
|
|
7
|
-
setDefaultValue(defaultValue) {
|
|
8
|
-
this.value = defaultValue;
|
|
9
|
-
}
|
|
10
|
-
render() {
|
|
11
|
-
const { name, hidden, placeholder, id } = this.field;
|
|
12
|
-
return html `<label ?hidden=${hidden}>
|
|
13
|
-
<input
|
|
14
|
-
id=${ifDefined(id)}
|
|
15
|
-
type="checkbox"
|
|
16
|
-
name=${name}
|
|
17
|
-
.checked=${Boolean(this.value)}
|
|
18
|
-
@click=${this.onClickHandler.bind(this)}
|
|
19
|
-
/>
|
|
20
|
-
${placeholder || name}
|
|
21
|
-
</label>`;
|
|
22
|
-
}
|
|
23
|
-
onClickHandler() {
|
|
24
|
-
const checkbox = this.input;
|
|
25
|
-
if (!this.field.indeterminate) {
|
|
26
|
-
this.value = !this.value;
|
|
27
|
-
}
|
|
28
|
-
else {
|
|
29
|
-
if (this.value === false) {
|
|
30
|
-
this.value = undefined;
|
|
31
|
-
checkbox.indeterminate = true;
|
|
32
|
-
}
|
|
33
|
-
else if (this.value === undefined) {
|
|
34
|
-
this.value = true;
|
|
35
|
-
}
|
|
36
|
-
else {
|
|
37
|
-
this.value = false;
|
|
38
|
-
}
|
|
39
|
-
}
|
|
40
|
-
}
|
|
41
|
-
};
|
|
42
|
-
OXCheckboxField.styles = [
|
|
43
|
-
css `
|
|
44
|
-
label {
|
|
45
|
-
font-size: var(--fontsize-default, 14px);
|
|
46
|
-
color: var(--primary-text-color, #476172);
|
|
47
|
-
}
|
|
48
|
-
`
|
|
49
|
-
];
|
|
50
|
-
__decorate([
|
|
51
|
-
property({ type: Object })
|
|
52
|
-
], OXCheckboxField.prototype, "field", void 0);
|
|
53
|
-
__decorate([
|
|
54
|
-
property({ type: Boolean })
|
|
55
|
-
], OXCheckboxField.prototype, "value", void 0);
|
|
56
|
-
OXCheckboxField = __decorate([
|
|
57
|
-
customElement('ox-checkbox-field')
|
|
58
|
-
], OXCheckboxField);
|
|
59
|
-
export { OXCheckboxField };
|
|
60
|
-
//# sourceMappingURL=ox-checkbox-field.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ox-checkbox-field.js","sourceRoot":"","sources":["../../../src/search-form/ox-checkbox-field.ts"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAE,IAAI,EAAkB,MAAM,KAAK,CAAA;AAC/C,OAAO,EAAE,SAAS,EAAE,MAAM,mCAAmC,CAAA;AAC7D,OAAO,EAAE,aAAa,EAAE,QAAQ,EAAE,MAAM,mBAAmB,CAAA;AAG3D,OAAO,EAAE,YAAY,EAAE,MAAM,kBAAkB,CAAA;AAG/C,IAAa,eAAe,GAA5B,MAAa,eAAgB,SAAQ,YAAY;IAa/C,eAAe,CAAC,YAAqB;QACnC,IAAI,CAAC,KAAK,GAAG,YAAY,CAAA;IAC3B,CAAC;IAED,MAAM;QACJ,MAAM,EAAE,IAAI,EAAE,MAAM,EAAE,WAAW,EAAE,EAAE,EAAE,GAAG,IAAI,CAAC,KAAK,CAAA;QAEpD,OAAO,IAAI,CAAA,kBAAkB,MAAM;;aAE1B,SAAS,CAAC,EAAE,CAAC;;eAEX,IAAI;mBACA,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC;iBACrB,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,IAAI,CAAC;;QAEvC,WAAW,IAAI,IAAI;aACd,CAAA;IACX,CAAC;IAEO,cAAc;QACpB,MAAM,QAAQ,GAAqB,IAAI,CAAC,KAAyB,CAAA;QAEjE,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,aAAa,EAAE;YAC7B,IAAI,CAAC,KAAK,GAAG,CAAC,IAAI,CAAC,KAAK,CAAA;SACzB;aAAM;YACL,IAAI,IAAI,CAAC,KAAK,KAAK,KAAK,EAAE;gBACxB,IAAI,CAAC,KAAK,GAAG,SAAS,CAAA;gBACtB,QAAQ,CAAC,aAAa,GAAG,IAAI,CAAA;aAC9B;iBAAM,IAAI,IAAI,CAAC,KAAK,KAAK,SAAS,EAAE;gBACnC,IAAI,CAAC,KAAK,GAAG,IAAI,CAAA;aAClB;iBAAM;gBACL,IAAI,CAAC,KAAK,GAAG,KAAK,CAAA;aACnB;SACF;IACH,CAAC;CACF,CAAA;AA5CQ,sBAAM,GAAG;IACd,GAAG,CAAA;;;;;KAKF;CACF,CAAA;AAV2B;IAA3B,QAAQ,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,CAAC;8CAA6B;AAC3B;IAA5B,QAAQ,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,CAAC;8CAAgB;AAFjC,eAAe;IAD3B,aAAa,CAAC,mBAAmB,CAAC;GACtB,eAAe,CAgD3B;SAhDY,eAAe","sourcesContent":["import { css, html, TemplateResult } from 'lit'\nimport { ifDefined } from 'lit-html/directives/if-defined.js'\nimport { customElement, property } from 'lit/decorators.js'\n\nimport { OXCheckboxFieldProps } from '..'\nimport { OXBasicField } from './ox-basic-field'\n\n@customElement('ox-checkbox-field')\nexport class OXCheckboxField extends OXBasicField {\n @property({ type: Object }) field!: OXCheckboxFieldProps\n @property({ type: Boolean }) value?: boolean\n\n static styles = [\n css`\n label {\n font-size: var(--fontsize-default, 14px);\n color: var(--primary-text-color, #476172);\n }\n `\n ]\n\n setDefaultValue(defaultValue: boolean): void {\n this.value = defaultValue\n }\n\n render(): TemplateResult {\n const { name, hidden, placeholder, id } = this.field\n\n return html`<label ?hidden=${hidden}>\n <input\n id=${ifDefined(id)}\n type=\"checkbox\"\n name=${name}\n .checked=${Boolean(this.value)}\n @click=${this.onClickHandler.bind(this)}\n />\n ${placeholder || name}\n </label>`\n }\n\n private onClickHandler(): void {\n const checkbox: HTMLInputElement = this.input as HTMLInputElement\n\n if (!this.field.indeterminate) {\n this.value = !this.value\n } else {\n if (this.value === false) {\n this.value = undefined\n checkbox.indeterminate = true\n } else if (this.value === undefined) {\n this.value = true\n } else {\n this.value = false\n }\n }\n }\n}\n"]}
|
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import { GristConfig } from '../types';
|
|
2
|
-
import { LitElement, TemplateResult } from 'lit';
|
|
3
|
-
import { QueryFilter } from '..';
|
|
4
|
-
export declare class OXGristSearchForm extends LitElement {
|
|
5
|
-
config: GristConfig;
|
|
6
|
-
defaultOperator: string;
|
|
7
|
-
private timeout?;
|
|
8
|
-
render(): TemplateResult;
|
|
9
|
-
private convertToSearchFields;
|
|
10
|
-
get queryFilters(): QueryFilter[];
|
|
11
|
-
}
|