@operato/data-grist 2.0.0-alpha.99 → 2.0.0-beta.0
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 +433 -0
- package/demo/data-grist-test.html +1 -1
- package/demo/index.html +1 -1
- package/dist/src/data-card/data-card-field.js +2 -2
- package/dist/src/data-card/data-card-field.js.map +1 -1
- package/dist/src/data-card/data-card-gutter-menu.js +5 -5
- package/dist/src/data-card/data-card-gutter-menu.js.map +1 -1
- package/dist/src/data-card/data-card-gutter.js +6 -6
- package/dist/src/data-card/data-card-gutter.js.map +1 -1
- package/dist/src/data-card/data-card.js +7 -9
- package/dist/src/data-card/data-card.js.map +1 -1
- package/dist/src/data-card/record-card.js +9 -10
- package/dist/src/data-card/record-card.js.map +1 -1
- package/dist/src/data-grid/data-grid-accum-field.js +12 -5
- package/dist/src/data-grid/data-grid-accum-field.js.map +1 -1
- package/dist/src/data-grid/data-grid-body-style.js +12 -0
- package/dist/src/data-grid/data-grid-body-style.js.map +1 -1
- package/dist/src/data-grid/data-grid-body.d.ts +0 -1
- package/dist/src/data-grid/data-grid-body.js +14 -21
- package/dist/src/data-grid/data-grid-body.js.map +1 -1
- package/dist/src/data-grid/data-grid-field.js +8 -2
- package/dist/src/data-grid/data-grid-field.js.map +1 -1
- package/dist/src/data-grid/data-grid-footer.js +4 -2
- package/dist/src/data-grid/data-grid-footer.js.map +1 -1
- package/dist/src/data-grid/data-grid-header.js +9 -6
- package/dist/src/data-grid/data-grid-header.js.map +1 -1
- package/dist/src/data-grid/data-grid.js +23 -1
- package/dist/src/data-grid/data-grid.js.map +1 -1
- package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js +3 -0
- package/dist/src/data-grid/event-handlers/data-grid-body-click-handler.js.map +1 -1
- package/dist/src/data-grist.d.ts +10 -2
- package/dist/src/data-grist.js +71 -8
- package/dist/src/data-grist.js.map +1 -1
- package/dist/src/data-list/data-list-field.js +5 -5
- package/dist/src/data-list/data-list-field.js.map +1 -1
- package/dist/src/data-list/data-list-gutter.js +3 -3
- package/dist/src/data-list/data-list-gutter.js.map +1 -1
- package/dist/src/data-list/data-list.js +4 -4
- package/dist/src/data-list/data-list.js.map +1 -1
- package/dist/src/data-list/record-partial.js +9 -10
- package/dist/src/data-list/record-partial.js.map +1 -1
- package/dist/src/data-manipulator.d.ts +1 -1
- package/dist/src/data-manipulator.js +5 -5
- package/dist/src/data-manipulator.js.map +1 -1
- package/dist/src/data-report/data-report-field.js +2 -1
- package/dist/src/data-report/data-report-field.js.map +1 -1
- package/dist/src/data-report/data-report-header.js +2 -2
- package/dist/src/data-report/data-report-header.js.map +1 -1
- package/dist/src/editors/ox-grist-editor-select.js +37 -25
- package/dist/src/editors/ox-grist-editor-select.js.map +1 -1
- package/dist/src/editors/ox-input-tree.js +8 -8
- package/dist/src/editors/ox-input-tree.js.map +1 -1
- package/dist/src/filters/filter-input-barcode.js +1 -0
- package/dist/src/filters/filter-input-barcode.js.map +1 -1
- package/dist/src/filters/filter-select.js +30 -16
- package/dist/src/filters/filter-select.js.map +1 -1
- package/dist/src/filters/filter-styles.js +46 -31
- package/dist/src/filters/filter-styles.js.map +1 -1
- package/dist/src/filters/filters-form.d.ts +15 -4
- package/dist/src/filters/filters-form.js +205 -70
- package/dist/src/filters/filters-form.js.map +1 -1
- package/dist/src/gutters/gutter-dirty.js +2 -2
- package/dist/src/gutters/gutter-dirty.js.map +1 -1
- package/dist/src/index.d.ts +1 -0
- package/dist/src/index.js +1 -0
- package/dist/src/index.js.map +1 -1
- package/dist/src/personalizer/index.d.ts +1 -0
- package/dist/src/personalizer/index.js +2 -0
- package/dist/src/personalizer/index.js.map +1 -0
- package/dist/src/personalizer/ox-grist-filter-personalizer.d.ts +8 -0
- package/dist/src/personalizer/ox-grist-filter-personalizer.js +177 -0
- package/dist/src/personalizer/ox-grist-filter-personalizer.js.map +1 -0
- package/dist/src/personalizer/ox-grist-personalizer.d.ts +8 -0
- package/dist/src/personalizer/ox-grist-personalizer.js +178 -0
- package/dist/src/personalizer/ox-grist-personalizer.js.map +1 -0
- package/dist/src/record-view/record-creator.js +2 -2
- package/dist/src/record-view/record-creator.js.map +1 -1
- package/dist/src/renderers/ox-grist-renderer-select.js +34 -4
- package/dist/src/renderers/ox-grist-renderer-select.js.map +1 -1
- package/dist/src/renderers/ox-grist-renderer-tree.js +8 -8
- package/dist/src/renderers/ox-grist-renderer-tree.js.map +1 -1
- package/dist/src/sorters/sorters-control.js +3 -3
- package/dist/src/sorters/sorters-control.js.map +1 -1
- package/dist/src/types.d.ts +41 -2
- package/dist/src/types.js.map +1 -1
- package/dist/stories/{accumulator.stories.d.ts → accumulator-format.stories.d.ts} +9 -0
- package/dist/stories/{accumulator.stories.js → accumulator-format.stories.js} +24 -12
- package/dist/stories/accumulator-format.stories.js.map +1 -0
- package/dist/stories/barcode-input-filter.stories.d.ts +5 -0
- package/dist/stories/barcode-input-filter.stories.js +29 -5
- package/dist/stories/barcode-input-filter.stories.js.map +1 -1
- package/dist/stories/bounded-select-filters.stories.d.ts +30 -0
- package/dist/stories/bounded-select-filters.stories.js +288 -0
- package/dist/stories/bounded-select-filters.stories.js.map +1 -0
- package/dist/stories/bounded-select-record.stories.d.ts +30 -0
- package/dist/stories/bounded-select-record.stories.js +291 -0
- package/dist/stories/bounded-select-record.stories.js.map +1 -0
- package/dist/stories/click-event.stories.d.ts +41 -0
- package/dist/stories/click-event.stories.js +234 -0
- package/dist/stories/click-event.stories.js.map +1 -0
- package/dist/stories/creatable-only-column.stories.d.ts +5 -0
- package/dist/stories/creatable-only-column.stories.js +46 -21
- package/dist/stories/creatable-only-column.stories.js.map +1 -1
- package/dist/stories/default-filters.stories.d.ts +5 -0
- package/dist/stories/default-filters.stories.js +84 -17
- package/dist/stories/default-filters.stories.js.map +1 -1
- package/dist/stories/dynamic-editable.stories.d.ts +5 -0
- package/dist/stories/dynamic-editable.stories.js +44 -21
- package/dist/stories/dynamic-editable.stories.js.map +1 -1
- package/dist/stories/empty-sorters.stories.d.ts +7 -1
- package/dist/stories/empty-sorters.stories.js +41 -17
- package/dist/stories/empty-sorters.stories.js.map +1 -1
- package/dist/stories/explicit-fetch.stories.d.ts +5 -0
- package/dist/stories/explicit-fetch.stories.js +40 -17
- package/dist/stories/explicit-fetch.stories.js.map +1 -1
- package/dist/stories/fixed-column.stories.d.ts +5 -0
- package/dist/stories/fixed-column.stories.js +53 -30
- package/dist/stories/fixed-column.stories.js.map +1 -1
- package/dist/stories/grid-setting.stories.d.ts +20 -4
- package/dist/stories/grid-setting.stories.js +96 -51
- package/dist/stories/grid-setting.stories.js.map +1 -1
- package/dist/stories/grist-modes.stories.d.ts +8 -2
- package/dist/stories/grist-modes.stories.js +58 -35
- package/dist/stories/grist-modes.stories.js.map +1 -1
- package/dist/stories/group-header.stories.d.ts +5 -0
- package/dist/stories/group-header.stories.js +53 -30
- package/dist/stories/group-header.stories.js.map +1 -1
- package/dist/stories/textarea.stories.d.ts +8 -2
- package/dist/stories/textarea.stories.js +37 -13
- package/dist/stories/textarea.stories.js.map +1 -1
- package/dist/stories/tree-column-with-checkbox.stories.d.ts +5 -0
- package/dist/stories/tree-column-with-checkbox.stories.js +44 -21
- package/dist/stories/tree-column-with-checkbox.stories.js.map +1 -1
- package/dist/stories/tree-column.stories.d.ts +5 -0
- package/dist/stories/tree-column.stories.js +44 -21
- package/dist/stories/tree-column.stories.js.map +1 -1
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/docs/default-value/value-generator/date-generator.md +29 -0
- package/docs/default-value/value-generator/hour-time-generator.md +33 -0
- package/docs/default-value/value-generator/minute-time-generator.md +33 -0
- package/docs/default-value/value-generator/month-date-generator.md +2 -0
- package/docs/default-value/value-generator/now-generator.md +29 -0
- package/docs/default-value/value-generator/time-generator.md +31 -0
- package/docs/default-value/value-generator/today-generator.md +29 -0
- package/docs/default-value/value-generator/week-date-generator.md +31 -0
- package/docs/default-value/value-generator/year-date-generator.md +31 -0
- package/package.json +15 -10
- package/src/data-card/data-card-field.ts +2 -2
- package/src/data-card/data-card-gutter-menu.ts +5 -5
- package/src/data-card/data-card-gutter.ts +6 -6
- package/src/data-card/data-card.ts +7 -9
- package/src/data-card/record-card.ts +9 -10
- package/src/data-grid/data-grid-accum-field.ts +11 -5
- package/src/data-grid/data-grid-body-style.ts +12 -0
- package/src/data-grid/data-grid-body.ts +16 -29
- package/src/data-grid/data-grid-field.ts +7 -2
- package/src/data-grid/data-grid-footer.ts +4 -2
- package/src/data-grid/data-grid-header.ts +8 -6
- package/src/data-grid/data-grid.ts +23 -1
- package/src/data-grid/event-handlers/data-grid-body-click-handler.ts +4 -0
- package/src/data-grist.ts +88 -8
- package/src/data-list/data-list-field.ts +5 -5
- package/src/data-list/data-list-gutter.ts +3 -3
- package/src/data-list/data-list.ts +4 -4
- package/src/data-list/record-partial.ts +9 -10
- package/src/data-manipulator.ts +5 -5
- package/src/data-report/data-report-field.ts +2 -1
- package/src/data-report/data-report-header.ts +2 -2
- package/src/editors/ox-grist-editor-select.ts +41 -28
- package/src/editors/ox-input-tree.ts +8 -8
- package/src/filters/filter-input-barcode.ts +1 -0
- package/src/filters/filter-select.ts +41 -28
- package/src/filters/filter-styles.ts +46 -31
- package/src/filters/filters-form.ts +273 -119
- package/src/gutters/gutter-dirty.ts +2 -2
- package/src/index.ts +1 -0
- package/src/personalizer/index.ts +1 -0
- package/src/personalizer/ox-grist-filter-personalizer.ts +191 -0
- package/src/personalizer/ox-grist-personalizer.ts +192 -0
- package/src/record-view/record-creator.ts +2 -2
- package/src/renderers/ox-grist-renderer-select.ts +41 -6
- package/src/renderers/ox-grist-renderer-tree.ts +8 -8
- package/src/sorters/sorters-control.ts +3 -3
- package/src/types.ts +53 -2
- package/stories/{accumulator.stories.ts → accumulator-format.stories.ts} +33 -12
- package/stories/barcode-input-filter.stories.ts +31 -6
- package/stories/bounded-select-filters.stories.ts +339 -0
- package/stories/bounded-select-record.stories.ts +342 -0
- package/stories/click-event.stories.ts +269 -0
- package/stories/creatable-only-column.stories.ts +54 -28
- package/stories/default-filters.stories.ts +92 -24
- package/stories/dynamic-editable.stories.ts +52 -28
- package/stories/empty-sorters.stories.ts +51 -25
- package/stories/explicit-fetch.stories.ts +48 -24
- package/stories/fixed-column.stories.ts +62 -39
- package/stories/grid-setting.stories.ts +120 -63
- package/stories/grist-modes.stories.ts +74 -46
- package/stories/group-header.stories.ts +61 -39
- package/stories/textarea.stories.ts +49 -17
- package/stories/tree-column-with-checkbox.stories.ts +52 -28
- package/stories/tree-column.stories.ts +52 -28
- package/themes/dark-hc.css +151 -0
- package/themes/dark-mc.css +151 -0
- package/themes/dark.css +151 -0
- package/themes/grist-theme.css +103 -100
- package/themes/light-hc.css +151 -0
- package/themes/light-mc.css +151 -0
- package/themes/light.css +151 -0
- package/themes/md-typescale-styles.css +100 -0
- package/themes/spacing.css +43 -0
- package/themes/state-color.css +6 -0
- package/dist/stories/accumulator.stories.js.map +0 -1
- package/themes/app-theme.css +0 -145
- package/themes/form-theme.css +0 -75
- package/themes/oops-theme.css +0 -26
- package/themes/report-theme.css +0 -47
@@ -1,17 +1,9 @@
|
|
1
1
|
import '@operato/input/ox-checkbox.js';
|
2
|
-
import { html } from 'lit
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
const
|
7
|
-
var options = (filter === null || filter === void 0 ? void 0 : filter.options) || column.record.options || [];
|
8
|
-
if (typeof options === 'function') {
|
9
|
-
if (!(filter === null || filter === void 0 ? void 0 : filter.options)) {
|
10
|
-
console.warn('ox-grist의 column.filter 속성에서는 column.record.options의 함수형 options을 사용할 수 없으므로, filter 속성에서 재지정해야한다.');
|
11
|
-
}
|
12
|
-
options = options.call(column, owner);
|
13
|
-
}
|
14
|
-
options = options.map((option) => {
|
2
|
+
import { html } from 'lit';
|
3
|
+
import { until } from 'lit/directives/until.js';
|
4
|
+
import { OxFiltersForm } from './filters-form';
|
5
|
+
function buildOptions(options, operator) {
|
6
|
+
const selectOptionObjects = options.map(option => {
|
15
7
|
switch (typeof option) {
|
16
8
|
case 'string':
|
17
9
|
return {
|
@@ -20,7 +12,7 @@ export const FilterSelect = (column, value, owner) => {
|
|
20
12
|
};
|
21
13
|
case 'object':
|
22
14
|
return {
|
23
|
-
display: option.display,
|
15
|
+
display: option.display || option.name,
|
24
16
|
value: option.value
|
25
17
|
};
|
26
18
|
default:
|
@@ -29,10 +21,32 @@ export const FilterSelect = (column, value, owner) => {
|
|
29
21
|
});
|
30
22
|
return operator === 'in'
|
31
23
|
? html `
|
32
|
-
${
|
24
|
+
${selectOptionObjects === null || selectOptionObjects === void 0 ? void 0 : selectOptionObjects.filter(option => !!option).map(({ value, display, name }) => html ` <ox-checkbox option value=${value}>${display || name}</ox-checkbox> `)}
|
33
25
|
`
|
34
26
|
: html `
|
35
|
-
${
|
27
|
+
${selectOptionObjects === null || selectOptionObjects === void 0 ? void 0 : selectOptionObjects.map(({ value, display, name }) => html ` <div option value=${value}>${display || name} </div> `)}
|
36
28
|
`;
|
29
|
+
}
|
30
|
+
export const FilterSelect = (column, value, owner) => {
|
31
|
+
/* value는 filters-form이나 grid-header에서 처리되므로 이 곳에서는 무시한다. */
|
32
|
+
const filter = column.filter;
|
33
|
+
const operator = filter === null || filter === void 0 ? void 0 : filter.operator;
|
34
|
+
const form = owner;
|
35
|
+
var options = (filter === null || filter === void 0 ? void 0 : filter.options) || column.record.options || [];
|
36
|
+
if (typeof options === 'function') {
|
37
|
+
if (!(filter === null || filter === void 0 ? void 0 : filter.options)) {
|
38
|
+
console.warn('ox-grist의 column.filter 속성에서는 column.record.options의 함수형 options을 사용할 수 없으므로, filter 속성에서 재지정해야한다.');
|
39
|
+
}
|
40
|
+
options = options.call(null, value, column, form instanceof OxFiltersForm ? form.getFormObjectValue() : {}, owner);
|
41
|
+
if (options instanceof Promise) {
|
42
|
+
return html `${until(options.then(options => buildOptions(options, operator)))}`;
|
43
|
+
}
|
44
|
+
else {
|
45
|
+
return buildOptions((options || []), operator);
|
46
|
+
}
|
47
|
+
}
|
48
|
+
else {
|
49
|
+
return buildOptions((options || []), operator);
|
50
|
+
}
|
37
51
|
};
|
38
52
|
//# sourceMappingURL=filter-select.js.map
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filter-select.js","sourceRoot":"","sources":["../../../src/filters/filter-select.ts"],"names":[],"mappings":"AAAA,OAAO,+BAA+B,CAAA;
|
1
|
+
{"version":3,"file":"filter-select.js","sourceRoot":"","sources":["../../../src/filters/filter-select.ts"],"names":[],"mappings":"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","sourcesContent":["import '@operato/input/ox-checkbox.js'\n\nimport { html } from 'lit'\nimport { until } from 'lit/directives/until.js'\n\nimport { FilterConfigObject, FilterOperator, FilterSelectRenderer, SelectOption, SelectOptionObject } from '../types'\nimport { OxFiltersForm } from './filters-form'\nimport { DataGridHeader } from '../data-grid/data-grid-header'\n\nfunction buildOptions(options: SelectOption[], operator?: FilterOperator) {\n const selectOptionObjects = options.map(option => {\n switch (typeof option) {\n case 'string':\n return {\n display: option,\n value: option\n }\n case 'object':\n return {\n display: option.display || option.name,\n value: option.value\n }\n default:\n return option\n }\n }) as SelectOptionObject[]\n\n return operator === 'in'\n ? html`\n ${selectOptionObjects\n ?.filter(option => !!option)\n .map(\n ({ value, display, name }) => html` <ox-checkbox option value=${value}>${display || name}</ox-checkbox> `\n )}\n `\n : html`\n ${selectOptionObjects?.map(\n ({ value, display, name }) => html` <div option value=${value}>${display || name} </div> `\n )}\n `\n}\n\nexport const FilterSelect: FilterSelectRenderer = (column, value, owner) => {\n /* value는 filters-form이나 grid-header에서 처리되므로 이 곳에서는 무시한다. */\n const filter = column.filter as FilterConfigObject\n const operator = filter?.operator\n const form = owner as OxFiltersForm | DataGridHeader\n\n var options = filter?.options || column.record.options || []\n\n if (typeof options === 'function') {\n if (!filter?.options) {\n console.warn(\n 'ox-grist의 column.filter 속성에서는 column.record.options의 함수형 options을 사용할 수 없으므로, filter 속성에서 재지정해야한다.'\n )\n }\n\n options = options.call(null, value, column, form instanceof OxFiltersForm ? form.getFormObjectValue() : {}, owner)\n\n if (options instanceof Promise) {\n return html`${until(options.then(options => buildOptions(options, operator)))}`\n } else {\n return buildOptions((options || []) as SelectOption[], operator)\n }\n } else {\n return buildOptions((options || []) as SelectOption[], operator)\n }\n}\n"]}
|
@@ -1,15 +1,15 @@
|
|
1
1
|
import { css } from 'lit';
|
2
2
|
export const FilterStyles = css `
|
3
3
|
:host {
|
4
|
-
--ox-filters-input-placeholder-color: var(--input-placeholder-color, var(--
|
4
|
+
--ox-filters-input-placeholder-color: var(--input-placeholder-color, var(--md-sys-color-on-surface));
|
5
5
|
|
6
6
|
--ox-filters-input-border: var(--input-border, 1px solid rgba(0, 0, 0, 0.2));
|
7
|
-
--ox-filters-input-focus-border: var(--input-focus-border, 1px solid var(--
|
7
|
+
--ox-filters-input-focus-border: var(--input-focus-border, 1px solid var(--md-sys-color-outline-variant));
|
8
8
|
--ox-filters-input-font: var(--input-font, normal 14px var(--theme-font));
|
9
|
-
--ox-filters-input-color: var(--input-color, var(--
|
10
|
-
--ox-filters-input-focus-color: var(--input-focus-color, var(--
|
9
|
+
--ox-filters-input-color: var(--input-color, var(--md-sys-color-on-surface));
|
10
|
+
--ox-filters-input-focus-color: var(--input-focus-color, var(--md-sys-color-on-surface-variant));
|
11
11
|
--ox-filters-label-font: var(--label-font, normal 14px var(--theme-font));
|
12
|
-
--ox-filters-label-color: var(--label-color, var(--
|
12
|
+
--ox-filters-label-color: var(--label-color, var(--md-sys-color-on-surface));
|
13
13
|
--ox-filters-input-background-color: transparent;
|
14
14
|
|
15
15
|
--ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);
|
@@ -21,7 +21,7 @@ export const FilterStyles = css `
|
|
21
21
|
|
22
22
|
label {
|
23
23
|
font: var(--ox-filters-label-font);
|
24
|
-
color: var(--ox-filters-label-color);
|
24
|
+
color: var(--ox-filters-label-color, var(--md-sys-color-on-surface));
|
25
25
|
}
|
26
26
|
|
27
27
|
span {
|
@@ -29,44 +29,40 @@ export const FilterStyles = css `
|
|
29
29
|
}
|
30
30
|
|
31
31
|
input::placeholder {
|
32
|
-
color: var(--ox-filters-input-placeholder-color);
|
32
|
+
color: var(--ox-filters-input-placeholder-color, var(--md-sys-color-surface-dim));
|
33
33
|
opacity: 0.6;
|
34
34
|
}
|
35
35
|
|
36
|
-
input
|
36
|
+
input,
|
37
|
+
ox-input-search,
|
38
|
+
[filter-input] {
|
37
39
|
padding: var(--ox-filters-input-padding);
|
38
40
|
}
|
39
41
|
|
40
|
-
label > span + *,
|
41
42
|
ox-select,
|
42
|
-
input
|
43
|
+
ox-input-search,
|
44
|
+
input,
|
45
|
+
[filter-input] {
|
43
46
|
border: none;
|
44
|
-
border-bottom: var(--ox-filters-input-border);
|
47
|
+
border-bottom: var(--ox-filters-input-border, var(--md-sys-color-outline));
|
45
48
|
font: var(--ox-filters-input-font);
|
46
|
-
color: var(--ox-filters-input-color);
|
49
|
+
color: var(--ox-filters-input-color, var(--md-sys-color-on-surface));
|
47
50
|
background-color: var(--ox-filters-input-background-color, transparent);
|
48
51
|
}
|
49
52
|
|
50
|
-
label > span + * {
|
51
|
-
min-width: 120px;
|
52
|
-
}
|
53
|
-
|
54
53
|
ox-select:focus,
|
55
|
-
input:focus
|
54
|
+
input:focus,
|
55
|
+
[filter-input]:focus {
|
56
56
|
outline: none;
|
57
|
-
border-bottom: var(--ox-filters-input-focus-border);
|
58
|
-
color: var(--ox-filters-input-focus-color);
|
57
|
+
border-bottom: var(--ox-filters-input-focus-border, var(--md-sys-color-outline-variant));
|
58
|
+
color: var(--ox-filters-input-focus-color, var(--md-sys-color-on-surface-variant));
|
59
59
|
}
|
60
60
|
|
61
61
|
ox-select {
|
62
|
-
min-width:
|
62
|
+
min-width: 90px;
|
63
63
|
max-width: 170px;
|
64
64
|
}
|
65
65
|
|
66
|
-
ox-input-barcode {
|
67
|
-
min-width: 150px;
|
68
|
-
}
|
69
|
-
|
70
66
|
ox-input-search {
|
71
67
|
max-width: 150px;
|
72
68
|
}
|
@@ -82,21 +78,40 @@ export const FilterStyles = css `
|
|
82
78
|
max-width: 170px;
|
83
79
|
}
|
84
80
|
|
81
|
+
[filter-input] {
|
82
|
+
min-width: 140px;
|
83
|
+
max-width: 170px;
|
84
|
+
}
|
85
|
+
|
85
86
|
@media only screen and (max-width: 460px) {
|
86
87
|
:host {
|
87
88
|
--ox-filters-form-label-font: bold 13px var(--theme-font);
|
88
89
|
--ox-filters-input-font: normal 16px var(--theme-font);
|
89
90
|
}
|
90
91
|
|
91
|
-
input
|
92
|
-
|
93
|
-
|
92
|
+
ox-input-barcode {
|
93
|
+
max-width: unset;
|
94
|
+
flex: 1;
|
95
|
+
}
|
96
|
+
|
97
|
+
ox-input-search {
|
98
|
+
max-width: unset;
|
99
|
+
}
|
100
|
+
|
101
|
+
ox-select {
|
102
|
+
max-width: unset;
|
103
|
+
}
|
104
|
+
|
105
|
+
ox-checkbox {
|
106
|
+
max-width: unset;
|
107
|
+
}
|
108
|
+
|
109
|
+
input[type='number'] {
|
110
|
+
max-width: unset;
|
94
111
|
}
|
95
112
|
|
96
|
-
input
|
97
|
-
|
98
|
-
padding-right: var(--padding-narrow);
|
99
|
-
min-width: 91%;
|
113
|
+
input {
|
114
|
+
flex: 1;
|
100
115
|
}
|
101
116
|
}
|
102
117
|
`;
|
@@ -1 +1 @@
|
|
1
|
-
{"version":3,"file":"filter-styles.js","sourceRoot":"","sources":["../../../src/filters/filter-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA
|
1
|
+
{"version":3,"file":"filter-styles.js","sourceRoot":"","sources":["../../../src/filters/filter-styles.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,GAAG,EAAE,MAAM,KAAK,CAAA;AAEzB,MAAM,CAAC,MAAM,YAAY,GAAG,GAAG,CAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAmH9B,CAAA","sourcesContent":["import { css } from 'lit'\n\nexport const FilterStyles = css`\n :host {\n --ox-filters-input-placeholder-color: var(--input-placeholder-color, var(--md-sys-color-on-surface));\n\n --ox-filters-input-border: var(--input-border, 1px solid rgba(0, 0, 0, 0.2));\n --ox-filters-input-focus-border: var(--input-focus-border, 1px solid var(--md-sys-color-outline-variant));\n --ox-filters-input-font: var(--input-font, normal 14px var(--theme-font));\n --ox-filters-input-color: var(--input-color, var(--md-sys-color-on-surface));\n --ox-filters-input-focus-color: var(--input-focus-color, var(--md-sys-color-on-surface-variant));\n --ox-filters-label-font: var(--label-font, normal 14px var(--theme-font));\n --ox-filters-label-color: var(--label-color, var(--md-sys-color-on-surface));\n --ox-filters-input-background-color: transparent;\n\n --ox-filters-form-gap: var(--input-gap-vertical, 8px) var(--input-gap-horizontal, 16px);\n --ox-filters-input-padding: var(--input-padding, 6px 2px);\n\n --ox-select-padding: var(--ox-filters-input-padding);\n --ox-checkbox-background-color: var(--ox-filters-input-background-color, transparent);\n }\n\n label {\n font: var(--ox-filters-label-font);\n color: var(--ox-filters-label-color, var(--md-sys-color-on-surface));\n }\n\n span {\n text-transform: capitalize;\n }\n\n input::placeholder {\n color: var(--ox-filters-input-placeholder-color, var(--md-sys-color-surface-dim));\n opacity: 0.6;\n }\n\n input,\n ox-input-search,\n [filter-input] {\n padding: var(--ox-filters-input-padding);\n }\n\n ox-select,\n ox-input-search,\n input,\n [filter-input] {\n border: none;\n border-bottom: var(--ox-filters-input-border, var(--md-sys-color-outline));\n font: var(--ox-filters-input-font);\n color: var(--ox-filters-input-color, var(--md-sys-color-on-surface));\n background-color: var(--ox-filters-input-background-color, transparent);\n }\n\n ox-select:focus,\n input:focus,\n [filter-input]:focus {\n outline: none;\n border-bottom: var(--ox-filters-input-focus-border, var(--md-sys-color-outline-variant));\n color: var(--ox-filters-input-focus-color, var(--md-sys-color-on-surface-variant));\n }\n\n ox-select {\n min-width: 90px;\n max-width: 170px;\n }\n\n ox-input-search {\n max-width: 150px;\n }\n\n input[type='number'] {\n max-width: 90px;\n }\n\n input[type*='date'],\n input[type*='time'],\n input[type='week'],\n input[type='month'] {\n max-width: 170px;\n }\n\n [filter-input] {\n min-width: 140px;\n max-width: 170px;\n }\n\n @media only screen and (max-width: 460px) {\n :host {\n --ox-filters-form-label-font: bold 13px var(--theme-font);\n --ox-filters-input-font: normal 16px var(--theme-font);\n }\n\n ox-input-barcode {\n max-width: unset;\n flex: 1;\n }\n\n ox-input-search {\n max-width: unset;\n }\n\n ox-select {\n max-width: unset;\n }\n\n ox-checkbox {\n max-width: unset;\n }\n\n input[type='number'] {\n max-width: unset;\n }\n\n input {\n flex: 1;\n }\n }\n`\n"]}
|
@@ -3,28 +3,39 @@ import '@operato/input/ox-select.js';
|
|
3
3
|
import '@operato/popup/ox-popup-list.js';
|
4
4
|
import '@operato/input/ox-input-search.js';
|
5
5
|
import { LitElement, PropertyValues, TemplateResult } from 'lit';
|
6
|
-
import {
|
6
|
+
import { PagePreferenceProvider } from '@operato/p13n';
|
7
|
+
import { FilterPreference } from '../types.js';
|
8
|
+
import { ColumnConfig, FilterOperator, FilterValue, GristConfig, PersonalGristPreference } from '../types';
|
7
9
|
export type QueryFilterRangeValue = [from: number, to: number];
|
8
10
|
export type QueryFilter = {
|
9
11
|
name: string;
|
10
12
|
operator: FilterOperator;
|
11
13
|
value: any;
|
12
14
|
};
|
13
|
-
export declare class
|
15
|
+
export declare class OxFiltersForm extends LitElement {
|
14
16
|
static styles: import("lit").CSSResult[];
|
15
17
|
value: FilterValue[];
|
16
18
|
withoutSearch: boolean;
|
17
19
|
autofocus: boolean;
|
18
20
|
empty: boolean;
|
21
|
+
personalConfigProvider?: PagePreferenceProvider;
|
22
|
+
personalConfig?: PersonalGristPreference;
|
23
|
+
personalFilters?: FilterPreference[];
|
19
24
|
config: GristConfig;
|
20
25
|
filterColumns: ColumnConfig[];
|
21
26
|
searchColumns: ColumnConfig[];
|
22
27
|
form: HTMLFormElement;
|
28
|
+
private autoUpdateTargetsOnChange;
|
29
|
+
private objectValue?;
|
23
30
|
connectedCallback(): void;
|
24
|
-
buildDefaultValue(operator:
|
25
|
-
updated(changes: PropertyValues<this>): void
|
31
|
+
buildDefaultValue(operator: FilterOperator, defaultValue: any): any;
|
32
|
+
updated(changes: PropertyValues<this>): Promise<void>;
|
26
33
|
render(): TemplateResult;
|
34
|
+
applyUpdatedConfiguration(): void;
|
27
35
|
getQueryFilters(): Promise<QueryFilter[]>;
|
28
36
|
setInputValue(name: string, value: any): void;
|
29
37
|
getInputValue(name: string): any;
|
38
|
+
private updateObjectValues;
|
39
|
+
getFormObjectValue(): object | undefined;
|
40
|
+
reset(): void;
|
30
41
|
}
|