@operato/data-grist 0.3.14 → 0.3.15
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 +10 -0
- package/assets/images/no-image.png +0 -0
- package/demo/index.html +12 -4
- package/dist/src/data-card/event-handlers/data-card-click-handler.d.ts +6 -0
- package/dist/src/data-card/event-handlers/data-card-click-handler.js +16 -0
- package/dist/src/data-card/event-handlers/data-card-click-handler.js.map +1 -0
- package/dist/src/data-card/event-handlers/data-card-dblclick-handler.d.ts +6 -0
- package/dist/src/data-card/event-handlers/data-card-dblclick-handler.js +16 -0
- package/dist/src/data-card/event-handlers/data-card-dblclick-handler.js.map +1 -0
- package/dist/src/data-list/event-handlers/data-list-click-handler.d.ts +6 -0
- package/dist/src/data-list/event-handlers/data-list-click-handler.js +16 -0
- package/dist/src/data-list/event-handlers/data-list-click-handler.js.map +1 -0
- package/dist/src/data-list/event-handlers/data-list-dblclick-handler.d.ts +6 -0
- package/dist/src/data-list/event-handlers/data-list-dblclick-handler.js +16 -0
- package/dist/src/data-list/event-handlers/data-list-dblclick-handler.js.map +1 -0
- package/dist/src/interfaces/index.d.ts +2 -0
- package/dist/src/interfaces/index.js +3 -0
- package/dist/src/interfaces/index.js.map +1 -0
- package/dist/src/interfaces/ox-grist-search-form.d.ts +6 -0
- package/dist/src/interfaces/ox-grist-search-form.js +2 -0
- package/dist/src/interfaces/ox-grist-search-form.js.map +1 -0
- package/dist/src/interfaces/ox-search-field.d.ts +39 -0
- package/dist/src/interfaces/ox-search-field.js +2 -0
- package/dist/src/interfaces/ox-search-field.js.map +1 -0
- package/dist/src/renderers/image-renderer.js +12 -4
- package/dist/src/renderers/image-renderer.js.map +1 -1
- package/dist/src/search-form/index.d.ts +7 -0
- package/dist/src/search-form/index.js +8 -0
- package/dist/src/search-form/index.js.map +1 -0
- package/dist/src/search-form/ox-basic-field.d.ts +18 -0
- package/dist/src/search-form/ox-basic-field.js +75 -0
- package/dist/src/search-form/ox-basic-field.js.map +1 -0
- package/dist/src/search-form/ox-checkbox-field.d.ts +11 -0
- package/dist/src/search-form/ox-checkbox-field.js +60 -0
- package/dist/src/search-form/ox-checkbox-field.js.map +1 -0
- package/dist/src/search-form/ox-grist-search-form.d.ts +11 -0
- package/dist/src/search-form/ox-grist-search-form.js +177 -0
- package/dist/src/search-form/ox-grist-search-form.js.map +1 -0
- package/dist/src/search-form/ox-number-field.d.ts +14 -0
- package/dist/src/search-form/ox-number-field.js +112 -0
- package/dist/src/search-form/ox-number-field.js.map +1 -0
- package/dist/src/search-form/ox-search-form.d.ts +15 -0
- package/dist/src/search-form/ox-search-form.js +53 -0
- package/dist/src/search-form/ox-search-form.js.map +1 -0
- package/dist/src/search-form/ox-select-field.d.ts +21 -0
- package/dist/src/search-form/ox-select-field.js +181 -0
- package/dist/src/search-form/ox-select-field.js.map +1 -0
- package/dist/src/search-form/ox-text-field.d.ts +11 -0
- package/dist/src/search-form/ox-text-field.js +60 -0
- package/dist/src/search-form/ox-text-field.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +7 -7
- package/src/renderers/image-renderer.ts +14 -5
- package/yarn-error.log +16718 -0
package/CHANGELOG.md
CHANGED
|
@@ -3,6 +3,16 @@
|
|
|
3
3
|
All notable changes to this project will be documented in this file.
|
|
4
4
|
See [Conventional Commits](https://conventionalcommits.org) for commit guidelines.
|
|
5
5
|
|
|
6
|
+
### [0.3.15](https://github.com/hatiolab/operato/compare/v0.3.14...v0.3.15) (2022-01-17)
|
|
7
|
+
|
|
8
|
+
|
|
9
|
+
### :bug: Bug Fix
|
|
10
|
+
|
|
11
|
+
* applied no-image.png to data-grist image-renderer ([18612a6](https://github.com/hatiolab/operato/commit/18612a6ce8bca7dda7edda1168a79c689cae84cc))
|
|
12
|
+
* data-grist image-renderer width limit ([4eda4ed](https://github.com/hatiolab/operato/commit/4eda4edc35863a4803c15f4efd65416bcc33cc8d))
|
|
13
|
+
|
|
14
|
+
|
|
15
|
+
|
|
6
16
|
### [0.3.14](https://github.com/hatiolab/operato/compare/v0.3.13...v0.3.14) (2022-01-16)
|
|
7
17
|
|
|
8
18
|
|
|
Binary file
|
package/demo/index.html
CHANGED
|
@@ -85,9 +85,13 @@
|
|
|
85
85
|
description: `말레이시아 세티아알람-${start + idx + 1}`
|
|
86
86
|
},
|
|
87
87
|
thumbnail:
|
|
88
|
-
idx %
|
|
88
|
+
idx % 4 === 0
|
|
89
|
+
? '' /* no source */
|
|
90
|
+
: idx % 4 === 1
|
|
89
91
|
? `http://www.hatiolab.com/assets/img/operato-biz3.png`
|
|
90
|
-
:
|
|
92
|
+
: idx % 4 === 2
|
|
93
|
+
? `http://www.hatiolab.com/assets/img/thingsboard-30.png`
|
|
94
|
+
: `http://www.hatiolab.com/wrong-url.png` /* wrong source */,
|
|
91
95
|
role: ['admin', 'worker', 'tester'][idx % 3],
|
|
92
96
|
color: idx % 2 ? `#87f018` : `#180f87`,
|
|
93
97
|
rate: Math.round(Math.random() * 100),
|
|
@@ -187,7 +191,9 @@
|
|
|
187
191
|
record: {
|
|
188
192
|
editable: true
|
|
189
193
|
},
|
|
190
|
-
filter:
|
|
194
|
+
filter: {
|
|
195
|
+
operator: 'i_like'
|
|
196
|
+
},
|
|
191
197
|
sortable: true,
|
|
192
198
|
width: 130,
|
|
193
199
|
validation: function (after, before, record, column) {
|
|
@@ -232,7 +238,8 @@
|
|
|
232
238
|
editable: true
|
|
233
239
|
},
|
|
234
240
|
filter: {
|
|
235
|
-
options: ['admin', 'worker', 'tester', 'xyz', 'VERY']
|
|
241
|
+
options: ['admin', 'worker', 'tester', 'xyz', 'VERY'],
|
|
242
|
+
multiple: true /* this case, operator should be 'in' */
|
|
236
243
|
},
|
|
237
244
|
sortable: true,
|
|
238
245
|
width: 120
|
|
@@ -244,6 +251,7 @@
|
|
|
244
251
|
record: {
|
|
245
252
|
editable: true
|
|
246
253
|
},
|
|
254
|
+
filter: true,
|
|
247
255
|
sortable: true,
|
|
248
256
|
width: 50
|
|
249
257
|
},
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ox-card 의 click handler
|
|
3
|
+
*
|
|
4
|
+
* - handler의 this 는 ox-card임.
|
|
5
|
+
*/
|
|
6
|
+
export function dataCardClickHandler(e) {
|
|
7
|
+
e.stopPropagation();
|
|
8
|
+
/* target should be 'ox-record-card' */
|
|
9
|
+
var target = e.target;
|
|
10
|
+
var { record, rowIndex } = target;
|
|
11
|
+
/* do rows click handler */
|
|
12
|
+
// var { click: rowsClick } = this.config.rows.handlers
|
|
13
|
+
// var columns = this.config.columns
|
|
14
|
+
// rowsClick && rowsClick(columns, this.data, null /* column */, record, rowIndex, target)
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data-card-click-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-card-click-handler.js","sourceRoot":"","sources":["../../../../src/data-card/event-handlers/data-card-click-handler.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,CAAa;IAChD,CAAC,CAAC,eAAe,EAAE,CAAA;IAEnB,uCAAuC;IACvC,IAAI,MAAM,GAAG,CAAC,CAAC,MAAuB,CAAA;IACtC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;IAEjC,2BAA2B;IAC3B,uDAAuD;IACvD,oCAAoC;IACpC,0FAA0F;AAC5F,CAAC","sourcesContent":["import { DataCardField } from '../data-card-field'\n\n/**\n * ox-card 의 click handler\n *\n * - handler의 this 는 ox-card임.\n */\nexport function dataCardClickHandler(e: MouseEvent): void {\n e.stopPropagation()\n\n /* target should be 'ox-record-card' */\n var target = e.target as DataCardField\n var { record, rowIndex } = target\n\n /* do rows click handler */\n // var { click: rowsClick } = this.config.rows.handlers\n // var columns = this.config.columns\n // rowsClick && rowsClick(columns, this.data, null /* column */, record, rowIndex, target)\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ox-card 의 dblclick handler
|
|
3
|
+
*
|
|
4
|
+
* - handler의 this 는 ox-card임.
|
|
5
|
+
*/
|
|
6
|
+
export function dataCardDblclickHandler(e) {
|
|
7
|
+
e.stopPropagation();
|
|
8
|
+
/* target should be 'ox-record-card' */
|
|
9
|
+
var target = e.target;
|
|
10
|
+
var { record, rowIndex } = target;
|
|
11
|
+
/* do rows dblclick handler */
|
|
12
|
+
// var { click: rowsDblclick } = this.config.rows.handlers
|
|
13
|
+
// var columns = this.config.columns
|
|
14
|
+
// rowsDblclick && rowsDblclick(columns, this.data, null /* column */, record, rowIndex, target)
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data-card-dblclick-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-card-dblclick-handler.js","sourceRoot":"","sources":["../../../../src/data-card/event-handlers/data-card-dblclick-handler.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,CAAa;IACnD,CAAC,CAAC,eAAe,EAAE,CAAA;IAEnB,uCAAuC;IACvC,IAAI,MAAM,GAAG,CAAC,CAAC,MAAuB,CAAA;IACtC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;IAEjC,8BAA8B;IAC9B,0DAA0D;IAC1D,oCAAoC;IACpC,gGAAgG;AAClG,CAAC","sourcesContent":["import { DataCardField } from '../data-card-field'\n\n/**\n * ox-card 의 dblclick handler\n *\n * - handler의 this 는 ox-card임.\n */\nexport function dataCardDblclickHandler(e: MouseEvent): void {\n e.stopPropagation()\n\n /* target should be 'ox-record-card' */\n var target = e.target as DataCardField\n var { record, rowIndex } = target\n\n /* do rows dblclick handler */\n // var { click: rowsDblclick } = this.config.rows.handlers\n // var columns = this.config.columns\n // rowsDblclick && rowsDblclick(columns, this.data, null /* column */, record, rowIndex, target)\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ox-list 의 click handler
|
|
3
|
+
*
|
|
4
|
+
* - handler의 this 는 ox-list임.
|
|
5
|
+
*/
|
|
6
|
+
export function dataListClickHandler(e) {
|
|
7
|
+
e.stopPropagation();
|
|
8
|
+
/* target should be 'record-partial' */
|
|
9
|
+
var target = e.target;
|
|
10
|
+
var { record, rowIndex } = target;
|
|
11
|
+
/* do rows click handler */
|
|
12
|
+
// var { click: rowsClick } = this.config.rows.handlers
|
|
13
|
+
// var columns = this.config.columns
|
|
14
|
+
// rowsClick && rowsClick(columns, this.data, null /* column */, record, rowIndex, target)
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data-list-click-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-list-click-handler.js","sourceRoot":"","sources":["../../../../src/data-list/event-handlers/data-list-click-handler.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,oBAAoB,CAAC,CAAa;IAChD,CAAC,CAAC,eAAe,EAAE,CAAA;IAEnB,uCAAuC;IACvC,IAAI,MAAM,GAAG,CAAC,CAAC,MAAuB,CAAA;IACtC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;IAEjC,2BAA2B;IAC3B,uDAAuD;IACvD,oCAAoC;IACpC,0FAA0F;AAC5F,CAAC","sourcesContent":["import { DataListField } from '../data-list-field'\n\n/**\n * ox-list 의 click handler\n *\n * - handler의 this 는 ox-list임.\n */\nexport function dataListClickHandler(e: MouseEvent): void {\n e.stopPropagation()\n\n /* target should be 'record-partial' */\n var target = e.target as DataListField\n var { record, rowIndex } = target\n\n /* do rows click handler */\n // var { click: rowsClick } = this.config.rows.handlers\n // var columns = this.config.columns\n // rowsClick && rowsClick(columns, this.data, null /* column */, record, rowIndex, target)\n}\n"]}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* ox-list 의 dblclick handler
|
|
3
|
+
*
|
|
4
|
+
* - handler의 this 는 ox-list임.
|
|
5
|
+
*/
|
|
6
|
+
export function dataListDblclickHandler(e) {
|
|
7
|
+
e.stopPropagation();
|
|
8
|
+
/* target should be 'record-partial' */
|
|
9
|
+
var target = e.target;
|
|
10
|
+
var { record, rowIndex } = target;
|
|
11
|
+
/* do rows dblclick handler */
|
|
12
|
+
// var { click: rowsDblclick } = this.config.rows.handlers
|
|
13
|
+
// var columns = this.config.columns
|
|
14
|
+
// rowsDblclick && rowsDblclick(columns, this.data, null /* column */, record, rowIndex, target)
|
|
15
|
+
}
|
|
16
|
+
//# sourceMappingURL=data-list-dblclick-handler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"data-list-dblclick-handler.js","sourceRoot":"","sources":["../../../../src/data-list/event-handlers/data-list-dblclick-handler.ts"],"names":[],"mappings":"AAEA;;;;GAIG;AACH,MAAM,UAAU,uBAAuB,CAAC,CAAa;IACnD,CAAC,CAAC,eAAe,EAAE,CAAA;IAEnB,uCAAuC;IACvC,IAAI,MAAM,GAAG,CAAC,CAAC,MAAuB,CAAA;IACtC,IAAI,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,MAAM,CAAA;IAEjC,8BAA8B;IAC9B,0DAA0D;IAC1D,oCAAoC;IACpC,gGAAgG;AAClG,CAAC","sourcesContent":["import { DataListField } from '../data-list-field'\n\n/**\n * ox-list 의 dblclick handler\n *\n * - handler의 this 는 ox-list임.\n */\nexport function dataListDblclickHandler(e: MouseEvent): void {\n e.stopPropagation()\n\n /* target should be 'record-partial' */\n var target = e.target as DataListField\n var { record, rowIndex } = target\n\n /* do rows dblclick handler */\n // var { click: rowsDblclick } = this.config.rows.handlers\n // var columns = this.config.columns\n // rowsDblclick && rowsDblclick(columns, this.data, null /* column */, record, rowIndex, target)\n}\n"]}
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -0,0 +1,39 @@
|
|
|
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;
|
|
@@ -0,0 +1 @@
|
|
|
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,9 +1,11 @@
|
|
|
1
1
|
import { html } from 'lit';
|
|
2
|
+
const IMAGE_FALLBACK = new URL('../../../assets/images/no-image.png', import.meta.url).href;
|
|
2
3
|
export const ImageRenderer = (value, column, record, rowIndex, field) => {
|
|
3
|
-
if (!value)
|
|
4
|
-
return html ``;
|
|
5
4
|
let src;
|
|
6
|
-
if (
|
|
5
|
+
if (!value) {
|
|
6
|
+
src = IMAGE_FALLBACK;
|
|
7
|
+
}
|
|
8
|
+
else if (typeof value === 'string') {
|
|
7
9
|
src = value;
|
|
8
10
|
}
|
|
9
11
|
else {
|
|
@@ -11,6 +13,12 @@ export const ImageRenderer = (value, column, record, rowIndex, field) => {
|
|
|
11
13
|
requestAnimationFrame(() => URL.revokeObjectURL(src));
|
|
12
14
|
}
|
|
13
15
|
const { width, height } = column.record.options || {};
|
|
14
|
-
return html ` <img
|
|
16
|
+
return html ` <img
|
|
17
|
+
src=${src}
|
|
18
|
+
width=${width}
|
|
19
|
+
height=${height}
|
|
20
|
+
style="max-width: 100%;"
|
|
21
|
+
onerror="this.src !== '${IMAGE_FALLBACK}' && (this.src = '${IMAGE_FALLBACK}')"
|
|
22
|
+
/>`;
|
|
15
23
|
};
|
|
16
24
|
//# sourceMappingURL=image-renderer.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"image-renderer.js","sourceRoot":"","sources":["../../../src/renderers/image-renderer.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"image-renderer.js","sourceRoot":"","sources":["../../../src/renderers/image-renderer.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,KAAK,CAAA;AAI1B,MAAM,cAAc,GAAG,IAAI,GAAG,CAAC,qCAAqC,EAAE,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC,IAAI,CAAA;AAE3F,MAAM,CAAC,MAAM,aAAa,GAAkB,CAAC,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,KAAK,EAAE,EAAE;IACrF,IAAI,GAAW,CAAA;IAEf,IAAI,CAAC,KAAK,EAAE;QACV,GAAG,GAAG,cAAc,CAAA;KACrB;SAAM,IAAI,OAAO,KAAK,KAAK,QAAQ,EAAE;QACpC,GAAG,GAAG,KAAK,CAAA;KACZ;SAAM;QACL,GAAG,GAAG,GAAG,CAAC,eAAe,CAAC,KAAK,CAAC,CAAA;QAChC,qBAAqB,CAAC,GAAG,EAAE,CAAC,GAAG,CAAC,eAAe,CAAC,GAAG,CAAC,CAAC,CAAA;KACtD;IAED,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,GAAG,MAAM,CAAC,MAAM,CAAC,OAAO,IAAI,EAAE,CAAA;IAErD,OAAO,IAAI,CAAA;UACH,GAAG;YACD,KAAK;aACJ,MAAM;;6BAEU,cAAc,qBAAqB,cAAc;KACzE,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { html } from 'lit'\n\nimport { FieldRenderer } from '../types'\n\nconst IMAGE_FALLBACK = new URL('../../../assets/images/no-image.png', import.meta.url).href\n\nexport const ImageRenderer: FieldRenderer = (value, column, record, rowIndex, field) => {\n let src: string\n\n if (!value) {\n src = IMAGE_FALLBACK\n } else if (typeof value === 'string') {\n src = value\n } else {\n src = URL.createObjectURL(value)\n requestAnimationFrame(() => URL.revokeObjectURL(src))\n }\n\n const { width, height } = column.record.options || {}\n\n return html` <img\n src=${src}\n width=${width}\n height=${height}\n style=\"max-width: 100%;\"\n onerror=\"this.src !== '${IMAGE_FALLBACK}' && (this.src = '${IMAGE_FALLBACK}')\"\n />`\n}\n"]}
|
|
@@ -0,0 +1,8 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -0,0 +1,18 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,75 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
}
|
|
@@ -0,0 +1,60 @@
|
|
|
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
|
|
@@ -0,0 +1 @@
|
|
|
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"]}
|
|
@@ -0,0 +1,11 @@
|
|
|
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
|
+
}
|