@neovici/cosmoz-omnitable 14.21.2 → 14.22.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/dist/cosmoz-omnitable-column-amount.js +27 -29
- package/dist/cosmoz-omnitable-column-autocomplete.js +24 -28
- package/dist/cosmoz-omnitable-column-boolean.js +17 -25
- package/dist/cosmoz-omnitable-column-date.js +26 -28
- package/dist/cosmoz-omnitable-column-datetime.js +26 -28
- package/dist/cosmoz-omnitable-column-list-data.js +6 -8
- package/dist/cosmoz-omnitable-column-list-horizontal.js +15 -17
- package/dist/cosmoz-omnitable-column-list-mixin.js +15 -28
- package/dist/cosmoz-omnitable-column-list.js +19 -21
- package/dist/cosmoz-omnitable-column-mixin.js +8 -12
- package/dist/cosmoz-omnitable-column-number.js +27 -29
- package/dist/cosmoz-omnitable-column-time.js +24 -26
- package/dist/cosmoz-omnitable-column.js +11 -13
- package/dist/cosmoz-omnitable-columns.js +9 -11
- package/dist/cosmoz-omnitable-group-row.js +4 -6
- package/dist/cosmoz-omnitable-header-row.js +15 -17
- package/dist/cosmoz-omnitable-item-expand-line.js +5 -7
- package/dist/cosmoz-omnitable-item-expand.js +6 -8
- package/dist/cosmoz-omnitable-item-row.js +5 -7
- package/dist/cosmoz-omnitable-skeleton.js +6 -8
- package/dist/cosmoz-omnitable-styles.js +4 -7
- package/dist/cosmoz-omnitable.d.ts +1 -1
- package/dist/cosmoz-omnitable.d.ts.map +1 -1
- package/dist/cosmoz-omnitable.js +31 -37
- package/dist/grouped-list/cosmoz-grouped-list-row.js +2 -4
- package/dist/grouped-list/cosmoz-grouped-list.js +4 -6
- package/dist/grouped-list/index.js +1 -3
- package/dist/grouped-list/use-collapsible-items.d.ts +4 -4
- package/dist/grouped-list/use-collapsible-items.js +8 -12
- package/dist/grouped-list/use-cosmoz-grouped-list.d.ts +1 -1
- package/dist/grouped-list/use-cosmoz-grouped-list.js +19 -23
- package/dist/grouped-list/use-selected-items.d.ts +10 -10
- package/dist/grouped-list/use-selected-items.js +15 -19
- package/dist/grouped-list/use-weak-state.d.ts +3 -3
- package/dist/grouped-list/use-weak-state.js +6 -10
- package/dist/grouped-list/utils.js +1 -11
- package/dist/lib/compute-layout.js +7 -12
- package/dist/lib/cosmoz-omnitable-amount-range-input.js +14 -16
- package/dist/lib/cosmoz-omnitable-date-input-mixin.js +5 -9
- package/dist/lib/cosmoz-omnitable-date-range-input.js +12 -14
- package/dist/lib/cosmoz-omnitable-datetime-range-input.js +13 -15
- package/dist/lib/cosmoz-omnitable-number-range-input.js +12 -14
- package/dist/lib/cosmoz-omnitable-range-input-mixin.js +8 -12
- package/dist/lib/cosmoz-omnitable-resize-nub.js +5 -7
- package/dist/lib/cosmoz-omnitable-time-range-input.js +12 -14
- package/dist/lib/generic-sorter.js +1 -5
- package/dist/lib/icons.d.ts +4 -4
- package/dist/lib/icons.d.ts.map +1 -1
- package/dist/lib/icons.js +5 -8
- package/dist/lib/layout.js +2 -5
- package/dist/lib/polymer-haunted-render-mixin.js +6 -10
- package/dist/lib/render-footer.d.ts +1 -1
- package/dist/lib/render-footer.d.ts.map +1 -1
- package/dist/lib/render-footer.js +12 -16
- package/dist/lib/render-header.d.ts +1 -1
- package/dist/lib/render-header.d.ts.map +1 -1
- package/dist/lib/render-header.js +5 -9
- package/dist/lib/render-list.d.ts +1 -1
- package/dist/lib/render-list.d.ts.map +1 -1
- package/dist/lib/render-list.js +15 -19
- package/dist/lib/save-as-csv-action.js +3 -7
- package/dist/lib/save-as-xlsx-action.js +5 -9
- package/dist/lib/settings/cosmoz-omnitable-settings.js +33 -71
- package/dist/lib/settings/cosmoz-omnitable-sort-group.d.ts +3 -3
- package/dist/lib/settings/cosmoz-omnitable-sort-group.d.ts.map +1 -1
- package/dist/lib/settings/cosmoz-omnitable-sort-group.js +12 -19
- package/dist/lib/settings/drivers/context.d.ts +10 -2
- package/dist/lib/settings/drivers/context.d.ts.map +1 -1
- package/dist/lib/settings/drivers/context.js +6 -13
- package/dist/lib/settings/drivers/index.js +3 -25
- package/dist/lib/settings/drivers/local.js +1 -3
- package/dist/lib/settings/drivers/remote.js +1 -3
- package/dist/lib/settings/index.js +2 -9
- package/dist/lib/settings/normalize.js +10 -15
- package/dist/lib/settings/style.css.js +5 -8
- package/dist/lib/settings/use-saved-settings.d.ts +2 -2
- package/dist/lib/settings/use-saved-settings.js +9 -11
- package/dist/lib/settings/use-settings-ui.js +12 -14
- package/dist/lib/settings/use-settings.d.ts +12 -6
- package/dist/lib/settings/use-settings.d.ts.map +1 -1
- package/dist/lib/settings/use-settings.js +8 -46
- package/dist/lib/types.js +1 -2
- package/dist/lib/use-canvas-width.js +5 -9
- package/dist/lib/use-dom-columns.d.ts +1 -1
- package/dist/lib/use-dom-columns.d.ts.map +1 -1
- package/dist/lib/use-dom-columns.js +7 -11
- package/dist/lib/use-fast-layout.d.ts +1 -1
- package/dist/lib/use-fast-layout.js +18 -22
- package/dist/lib/use-footer.js +1 -5
- package/dist/lib/use-hash-state.js +11 -15
- package/dist/lib/use-header.js +5 -9
- package/dist/lib/use-layout.d.ts +1 -1
- package/dist/lib/use-layout.d.ts.map +1 -1
- package/dist/lib/use-layout.js +4 -8
- package/dist/lib/use-list.d.ts +10 -2
- package/dist/lib/use-list.d.ts.map +1 -1
- package/dist/lib/use-list.js +21 -25
- package/dist/lib/use-mini.d.ts +1 -1
- package/dist/lib/use-mini.js +5 -9
- package/dist/lib/use-omnitable.d.ts +10 -2
- package/dist/lib/use-omnitable.d.ts.map +1 -1
- package/dist/lib/use-omnitable.js +18 -22
- package/dist/lib/use-processed-items.d.ts +5 -3
- package/dist/lib/use-processed-items.d.ts.map +1 -1
- package/dist/lib/use-processed-items.js +23 -27
- package/dist/lib/use-public-interface.js +16 -20
- package/dist/lib/use-resizable-columns.js +4 -8
- package/dist/lib/use-sort-and-group-options.d.ts +25 -2
- package/dist/lib/use-sort-and-group-options.d.ts.map +1 -1
- package/dist/lib/use-sort-and-group-options.js +12 -16
- package/dist/lib/use-track-size.d.ts +1 -1
- package/dist/lib/use-track-size.d.ts.map +1 -1
- package/dist/lib/use-track-size.js +2 -6
- package/dist/lib/use-tween-array.js +10 -14
- package/dist/lib/utils-amount.js +29 -25
- package/dist/lib/utils-data.js +8 -12
- package/dist/lib/utils-date.js +38 -55
- package/dist/lib/utils-datetime.js +22 -32
- package/dist/lib/utils-number.js +24 -34
- package/dist/lib/utils-time.js +34 -46
- package/dist/lib/utils.js +2 -6
- package/dist/ui-helpers/cosmoz-clear-button.js +5 -7
- package/package.json +143 -134
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const utils_amount_1 = require("./lib/utils-amount");
|
|
12
|
-
const path_1 = require("@polymer/polymer/lib/utils/path");
|
|
1
|
+
import '@neovici/cosmoz-input';
|
|
2
|
+
import '@polymer/paper-dropdown-menu/paper-dropdown-menu';
|
|
3
|
+
import './ui-helpers/cosmoz-clear-button';
|
|
4
|
+
import { PolymerElement } from '@polymer/polymer/polymer-element';
|
|
5
|
+
import { html } from 'lit-html';
|
|
6
|
+
import { columnMixin } from './cosmoz-omnitable-column-mixin';
|
|
7
|
+
import { defaultComputeSource } from './lib/utils-data';
|
|
8
|
+
import './lib/cosmoz-omnitable-amount-range-input';
|
|
9
|
+
import { getComparableValue, getCurrency, applySingleFilter, getString, getInputString, toAmount, toHashString, fromHashString, } from './lib/utils-amount';
|
|
10
|
+
import { get } from '@polymer/polymer/lib/utils/path';
|
|
13
11
|
/**
|
|
14
12
|
* @polymer
|
|
15
13
|
* @customElement
|
|
16
14
|
* @appliesMixin columnMixin
|
|
17
15
|
*/
|
|
18
|
-
class OmnitableColumnAmount extends
|
|
16
|
+
class OmnitableColumnAmount extends columnMixin(PolymerElement) {
|
|
19
17
|
static get properties() {
|
|
20
18
|
return {
|
|
21
19
|
min: { type: Number, value: null, notify: true },
|
|
@@ -35,33 +33,33 @@ class OmnitableColumnAmount extends (0, cosmoz_omnitable_column_mixin_1.columnMi
|
|
|
35
33
|
return { limits: column.limits };
|
|
36
34
|
}
|
|
37
35
|
getFilterFn(column, filter) {
|
|
38
|
-
const min =
|
|
36
|
+
const min = getComparableValue({ ...column, valuePath: 'min' }, filter), max = getComparableValue({ ...column, valuePath: 'max' }, filter);
|
|
39
37
|
if (min == null && max == null) {
|
|
40
38
|
return;
|
|
41
39
|
}
|
|
42
|
-
return
|
|
40
|
+
return applySingleFilter(column, filter);
|
|
43
41
|
}
|
|
44
42
|
getString(column, item) {
|
|
45
|
-
return
|
|
43
|
+
return getString(column, item);
|
|
46
44
|
}
|
|
47
45
|
toXlsxValue(column, item) {
|
|
48
|
-
return
|
|
46
|
+
return getString(column, item);
|
|
49
47
|
}
|
|
50
48
|
cellTitleFn(column, item) {
|
|
51
|
-
return
|
|
49
|
+
return getString(column, item);
|
|
52
50
|
}
|
|
53
51
|
getComparableValue(column, item) {
|
|
54
|
-
return
|
|
52
|
+
return getComparableValue(column, item);
|
|
55
53
|
}
|
|
56
54
|
serializeFilter({ rates }, filter) {
|
|
57
55
|
if (filter == null) {
|
|
58
56
|
return;
|
|
59
57
|
}
|
|
60
|
-
const min =
|
|
58
|
+
const min = toAmount(rates, filter.min), max = toAmount(rates, filter.max);
|
|
61
59
|
if (min == null && max == null) {
|
|
62
60
|
return;
|
|
63
61
|
}
|
|
64
|
-
return
|
|
62
|
+
return toHashString(min) + '~' + toHashString(max);
|
|
65
63
|
}
|
|
66
64
|
deserializeFilter(column, filter) {
|
|
67
65
|
if (filter == null || filter === '') {
|
|
@@ -71,27 +69,27 @@ class OmnitableColumnAmount extends (0, cosmoz_omnitable_column_mixin_1.columnMi
|
|
|
71
69
|
if (!Array.isArray(matches)) {
|
|
72
70
|
return null;
|
|
73
71
|
}
|
|
74
|
-
return { min:
|
|
72
|
+
return { min: fromHashString(matches[1]), max: fromHashString(matches[2]) };
|
|
75
73
|
}
|
|
76
74
|
renderCell(column, { item }) {
|
|
77
|
-
return
|
|
75
|
+
return html `<span>${column.getString(column, item)}</span>`;
|
|
78
76
|
}
|
|
79
77
|
renderEditCell(column, { item }, onItemChange) {
|
|
80
78
|
const onChange = (event) => onItemChange({
|
|
81
79
|
amount: event.target.value,
|
|
82
|
-
currency:
|
|
80
|
+
currency: get(item, column.valuePath)?.currency,
|
|
83
81
|
});
|
|
84
|
-
return
|
|
82
|
+
return html `<cosmoz-input
|
|
85
83
|
no-label-float
|
|
86
84
|
type="number"
|
|
87
85
|
@change=${onChange}
|
|
88
|
-
.value=${
|
|
86
|
+
.value=${getInputString(column, item)}
|
|
89
87
|
>
|
|
90
|
-
<div slot="suffix">${
|
|
88
|
+
<div slot="suffix">${getCurrency(column, item)}</div>
|
|
91
89
|
</cosmoz-input>`;
|
|
92
90
|
}
|
|
93
91
|
renderHeader({ title, min, max, limits, locale, rates, currency, autoupdate, autodetect, }, { filter }, setState, source) {
|
|
94
|
-
return
|
|
92
|
+
return html `<cosmoz-omnitable-amount-range-input
|
|
95
93
|
.title=${title}
|
|
96
94
|
.filter=${filter}
|
|
97
95
|
.values=${source}
|
|
@@ -108,7 +106,7 @@ class OmnitableColumnAmount extends (0, cosmoz_omnitable_column_mixin_1.columnMi
|
|
|
108
106
|
></cosmoz-omnitable-amount-range-input>`;
|
|
109
107
|
}
|
|
110
108
|
computeSource(column, data) {
|
|
111
|
-
return
|
|
109
|
+
return defaultComputeSource(column, data);
|
|
112
110
|
}
|
|
113
111
|
}
|
|
114
112
|
customElements.define('cosmoz-omnitable-column-amount', OmnitableColumnAmount);
|
|
@@ -1,28 +1,24 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const path_1 = require("@polymer/polymer/lib/utils/path");
|
|
15
|
-
const getComparableValue = ({ valuePath, textProperty, valueProperty }, item) => {
|
|
16
|
-
const property = textProperty ? (0, object_1.strProp)(textProperty) : (0, object_1.prop)(valueProperty), values = (0, array_1.array)(valuePath && (0, path_1.get)(item, valuePath)).map(property);
|
|
1
|
+
import '@neovici/cosmoz-autocomplete';
|
|
2
|
+
import { PolymerElement } from '@polymer/polymer/polymer-element.js';
|
|
3
|
+
import { html } from 'lit-html';
|
|
4
|
+
import { when } from 'lit-html/directives/when.js';
|
|
5
|
+
import '@neovici/cosmoz-spinner';
|
|
6
|
+
import { columnMixin, getString } from './cosmoz-omnitable-column-mixin.js';
|
|
7
|
+
import { listColumnMixin, onChange, onFocus, onText, } from './cosmoz-omnitable-column-list-mixin';
|
|
8
|
+
import { prop, strProp } from '@neovici/cosmoz-utils/object';
|
|
9
|
+
import { array } from '@neovici/cosmoz-utils/array';
|
|
10
|
+
import { columnSymbol } from './lib/use-dom-columns';
|
|
11
|
+
import { get } from '@polymer/polymer/lib/utils/path';
|
|
12
|
+
export const getComparableValue = ({ valuePath, textProperty, valueProperty }, item) => {
|
|
13
|
+
const property = textProperty ? strProp(textProperty) : prop(valueProperty), values = array(valuePath && get(item, valuePath)).map(property);
|
|
17
14
|
return values.length > 1 ? values.filter(Boolean).join(',') : values[0];
|
|
18
15
|
};
|
|
19
|
-
exports.getComparableValue = getComparableValue;
|
|
20
16
|
/**
|
|
21
17
|
* @polymer
|
|
22
18
|
* @customElement
|
|
23
19
|
* @appliesMixin columnMixin
|
|
24
20
|
*/
|
|
25
|
-
class OmnitableColumnAutocomplete extends
|
|
21
|
+
class OmnitableColumnAutocomplete extends listColumnMixin(columnMixin(PolymerElement)) {
|
|
26
22
|
static get properties() {
|
|
27
23
|
return {
|
|
28
24
|
headerCellClass: { type: String, value: 'autocomplete-header-cell' },
|
|
@@ -48,21 +44,21 @@ class OmnitableColumnAutocomplete extends (0, cosmoz_omnitable_column_list_mixin
|
|
|
48
44
|
};
|
|
49
45
|
}
|
|
50
46
|
renderCell(column, { item }) {
|
|
51
|
-
return
|
|
47
|
+
return html `<span class="default-column"
|
|
52
48
|
>${column.getString(column, item)}</span
|
|
53
49
|
>`;
|
|
54
50
|
}
|
|
55
51
|
renderEditCell(column, { item }, onItemChange) {
|
|
56
52
|
const onChange = (event) => onItemChange(event.target.value);
|
|
57
|
-
return
|
|
53
|
+
return html `<cosmoz-input
|
|
58
54
|
no-label-float
|
|
59
55
|
type="text"
|
|
60
56
|
@change=${onChange}
|
|
61
|
-
.value=${
|
|
57
|
+
.value=${getString(column, item)}
|
|
62
58
|
></cosmoz-input>`;
|
|
63
59
|
}
|
|
64
60
|
renderHeader(column, { filter, query }, setState, source) {
|
|
65
|
-
return
|
|
61
|
+
return html `<cosmoz-autocomplete-ui
|
|
66
62
|
class="external-values-${column.externalValues}"
|
|
67
63
|
?keep-opened=${column.keepOpened}
|
|
68
64
|
?keep-query=${column.keepQuery}
|
|
@@ -73,18 +69,18 @@ class OmnitableColumnAutocomplete extends (0, cosmoz_omnitable_column_list_mixin
|
|
|
73
69
|
.source=${source}
|
|
74
70
|
.textProperty=${column.textProperty}
|
|
75
71
|
.valueProperty=${column.valueProperty}
|
|
76
|
-
.itemRenderer=${column[
|
|
72
|
+
.itemRenderer=${column[columnSymbol]?.itemRenderer}
|
|
77
73
|
.value=${filter}
|
|
78
74
|
.text=${query}
|
|
79
75
|
.limit=${column.limit}
|
|
80
|
-
.onChange=${
|
|
81
|
-
.onFocus=${
|
|
82
|
-
.onText=${
|
|
83
|
-
>${
|
|
76
|
+
.onChange=${onChange(setState)}
|
|
77
|
+
.onFocus=${onFocus(setState)}
|
|
78
|
+
.onText=${onText(setState)}
|
|
79
|
+
>${when(column.loading, () => html `<cosmoz-spinner slot="suffix"></cosmoz-spinner>`)}</cosmoz-autocomplete-ui
|
|
84
80
|
>`;
|
|
85
81
|
}
|
|
86
82
|
getComparableValue(column, item) {
|
|
87
|
-
return
|
|
83
|
+
return getComparableValue(column, item);
|
|
88
84
|
}
|
|
89
85
|
}
|
|
90
86
|
customElements.define('cosmoz-omnitable-column-autocomplete', OmnitableColumnAutocomplete);
|
|
@@ -1,33 +1,30 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const when_js_1 = require("lit-html/directives/when.js");
|
|
9
|
-
const path_1 = require("@polymer/polymer/lib/utils/path");
|
|
10
|
-
const memoize_1 = require("@neovici/cosmoz-utils/memoize");
|
|
1
|
+
import { PolymerElement } from '@polymer/polymer/polymer-element';
|
|
2
|
+
import { columnMixin } from './cosmoz-omnitable-column-mixin';
|
|
3
|
+
import '@neovici/cosmoz-autocomplete';
|
|
4
|
+
import { html } from 'lit-html';
|
|
5
|
+
import { when } from 'lit-html/directives/when.js';
|
|
6
|
+
import { get } from '@polymer/polymer/lib/utils/path';
|
|
7
|
+
import { memooize } from '@neovici/cosmoz-utils/memoize';
|
|
11
8
|
const computeValue = (value, source) => source.find(({ value: valueProp }) => value === valueProp), computeTooltip = (title, value, source) => {
|
|
12
9
|
const val = computeValue(value, source);
|
|
13
10
|
return val ? val.text : title;
|
|
14
|
-
}, computeItemTooltip = (title, item, valuePath, source) => computeTooltip(title,
|
|
11
|
+
}, computeItemTooltip = (title, item, valuePath, source) => computeTooltip(title, get(item, valuePath), source), computeItemValue = ({ valuePath }, item, source) => computeValue(get(item, valuePath), source), onChange = (setState) => (selection) => {
|
|
15
12
|
setState((state) => ({ ...state, filter: selection?.[0]?.value ?? null }));
|
|
16
13
|
}, onFocus = (setState) => (focused) => {
|
|
17
14
|
setState((state) => ({ ...state, headerFocused: focused }));
|
|
18
15
|
}, onText = (setState) => (text) => {
|
|
19
16
|
setState((state) => ({ ...state, query: text }));
|
|
20
17
|
}, onEditableChange = (onItemChange) => (selection) => onItemChange(selection?.[0]?.value), getString = ({ valuePath, trueLabel, falseLabel }, item) => {
|
|
21
|
-
const value =
|
|
18
|
+
const value = get(item, valuePath);
|
|
22
19
|
return value ? trueLabel : falseLabel;
|
|
23
|
-
}, applySingleFilter = ({ valuePath }, filter) => (item) =>
|
|
20
|
+
}, applySingleFilter = ({ valuePath }, filter) => (item) => get(item, valuePath) === filter, computeSource = memooize((trueLabel, falseLabel) => [
|
|
24
21
|
{ text: trueLabel, value: true },
|
|
25
22
|
{ text: falseLabel, value: false },
|
|
26
23
|
]), toXlsxValue = ({ valuePath, trueLabel, falseLabel }, item) => {
|
|
27
24
|
if (!valuePath) {
|
|
28
25
|
return '';
|
|
29
26
|
}
|
|
30
|
-
return
|
|
27
|
+
return get(item, valuePath) ? trueLabel : falseLabel;
|
|
31
28
|
}, deserializeFilter = (column, filter) => {
|
|
32
29
|
try {
|
|
33
30
|
return JSON.parse(filter);
|
|
@@ -36,18 +33,12 @@ const computeValue = (value, source) => source.find(({ value: valueProp }) => va
|
|
|
36
33
|
return null;
|
|
37
34
|
}
|
|
38
35
|
};
|
|
39
|
-
exports.computeItemValue = computeItemValue;
|
|
40
|
-
exports.onChange = onChange;
|
|
41
|
-
exports.getString = getString;
|
|
42
|
-
exports.computeSource = computeSource;
|
|
43
|
-
exports.toXlsxValue = toXlsxValue;
|
|
44
|
-
exports.deserializeFilter = deserializeFilter;
|
|
45
36
|
/**
|
|
46
37
|
* @polymer
|
|
47
38
|
* @customElement
|
|
48
39
|
* @appliesMixin columnMixin
|
|
49
40
|
*/
|
|
50
|
-
class OmnitableColumnBoolean extends
|
|
41
|
+
class OmnitableColumnBoolean extends columnMixin(PolymerElement) {
|
|
51
42
|
static get properties() {
|
|
52
43
|
return {
|
|
53
44
|
trueLabel: { type: String, value: 'True' },
|
|
@@ -67,7 +58,7 @@ class OmnitableColumnBoolean extends (0, cosmoz_omnitable_column_mixin_1.columnM
|
|
|
67
58
|
}
|
|
68
59
|
renderEditCell(column, { item }, onItemChange) {
|
|
69
60
|
const { trueLabel, falseLabel } = column;
|
|
70
|
-
return
|
|
61
|
+
return html `<cosmoz-autocomplete
|
|
71
62
|
no-label-float
|
|
72
63
|
.title=${computeItemTooltip(column.title, item, column.valuePath, computeSource(trueLabel, falseLabel))}
|
|
73
64
|
.source=${computeSource(trueLabel, falseLabel)}
|
|
@@ -75,11 +66,11 @@ class OmnitableColumnBoolean extends (0, cosmoz_omnitable_column_mixin_1.columnM
|
|
|
75
66
|
.value=${computeItemValue(column, item, computeSource(trueLabel, falseLabel))}
|
|
76
67
|
.onChange=${onEditableChange(onItemChange)}
|
|
77
68
|
.limit=${1}
|
|
78
|
-
>${
|
|
69
|
+
>${when(column.loading, () => html `<cosmoz-spinner slot="suffix"></cosmoz-spinner>`)}</cosmoz-autocomplete
|
|
79
70
|
>`;
|
|
80
71
|
}
|
|
81
72
|
renderHeader(column, { filter, query }, setState, source) {
|
|
82
|
-
return
|
|
73
|
+
return html `<cosmoz-autocomplete-ui
|
|
83
74
|
.label=${column.title}
|
|
84
75
|
.title=${computeItemTooltip(column.title, filter, column.valuePath, source)}
|
|
85
76
|
.source=${source}
|
|
@@ -90,7 +81,7 @@ class OmnitableColumnBoolean extends (0, cosmoz_omnitable_column_mixin_1.columnM
|
|
|
90
81
|
.onFocus=${onFocus(setState)}
|
|
91
82
|
.onText=${onText(setState)}
|
|
92
83
|
.limit=${1}
|
|
93
|
-
>${
|
|
84
|
+
>${when(column.loading, () => html `<cosmoz-spinner slot="suffix"></cosmoz-spinner>`)}</cosmoz-autocomplete-ui
|
|
94
85
|
>`;
|
|
95
86
|
}
|
|
96
87
|
computeSource({ trueLabel, falseLabel }) {
|
|
@@ -110,4 +101,5 @@ class OmnitableColumnBoolean extends (0, cosmoz_omnitable_column_mixin_1.columnM
|
|
|
110
101
|
}
|
|
111
102
|
}
|
|
112
103
|
customElements.define('cosmoz-omnitable-column-boolean', OmnitableColumnBoolean);
|
|
104
|
+
export { getString, computeItemValue, computeSource, toXlsxValue, onChange, deserializeFilter, };
|
|
113
105
|
//# sourceMappingURL=cosmoz-omnitable-column-boolean.js.map
|
|
@@ -1,15 +1,13 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const utils_date_1 = require("./lib/utils-date");
|
|
12
|
-
class OmnitableColumnDate extends (0, cosmoz_omnitable_column_mixin_1.columnMixin)(polymer_element_1.PolymerElement) {
|
|
1
|
+
import { html } from 'lit-html';
|
|
2
|
+
import { PolymerElement } from '@polymer/polymer/polymer-element';
|
|
3
|
+
import '@polymer/paper-dropdown-menu/paper-dropdown-menu';
|
|
4
|
+
import '@neovici/cosmoz-input';
|
|
5
|
+
import './ui-helpers/cosmoz-clear-button';
|
|
6
|
+
import { columnMixin } from './cosmoz-omnitable-column-mixin';
|
|
7
|
+
import './lib/cosmoz-omnitable-date-range-input';
|
|
8
|
+
import { defaultComputeSource } from './lib/utils-data';
|
|
9
|
+
import { getString, getComparableValue, toDate, toHashString, toXlsxValue, applySingleFilter, getInputString, fromInputString, } from './lib/utils-date';
|
|
10
|
+
class OmnitableColumnDate extends columnMixin(PolymerElement) {
|
|
13
11
|
static get properties() {
|
|
14
12
|
return {
|
|
15
13
|
min: { type: Number, value: null, notify: true },
|
|
@@ -26,33 +24,33 @@ class OmnitableColumnDate extends (0, cosmoz_omnitable_column_mixin_1.columnMixi
|
|
|
26
24
|
return { limits: column.limits };
|
|
27
25
|
}
|
|
28
26
|
getFilterFn(column, filter) {
|
|
29
|
-
const min =
|
|
27
|
+
const min = getComparableValue({ ...column, valuePath: 'min' }, filter), max = getComparableValue({ ...column, valuePath: 'max' }, filter);
|
|
30
28
|
if (min == null && max == null) {
|
|
31
29
|
return;
|
|
32
30
|
}
|
|
33
|
-
return
|
|
31
|
+
return applySingleFilter(column, filter);
|
|
34
32
|
}
|
|
35
33
|
getString(column, item) {
|
|
36
|
-
return
|
|
34
|
+
return getString(column, item);
|
|
37
35
|
}
|
|
38
36
|
toXlsxValue(column, item) {
|
|
39
|
-
return
|
|
37
|
+
return toXlsxValue(column, item);
|
|
40
38
|
}
|
|
41
39
|
cellTitleFn(column, item) {
|
|
42
|
-
return
|
|
40
|
+
return getString(column, item);
|
|
43
41
|
}
|
|
44
42
|
getComparableValue(column, item) {
|
|
45
|
-
return
|
|
43
|
+
return getComparableValue(column, item);
|
|
46
44
|
}
|
|
47
45
|
serializeFilter(column, filter) {
|
|
48
46
|
if (filter == null) {
|
|
49
47
|
return;
|
|
50
48
|
}
|
|
51
|
-
const min =
|
|
49
|
+
const min = toDate(filter.min), max = toDate(filter.max);
|
|
52
50
|
if (min == null && max == null) {
|
|
53
51
|
return;
|
|
54
52
|
}
|
|
55
|
-
return
|
|
53
|
+
return toHashString(min) + '~' + toHashString(max);
|
|
56
54
|
}
|
|
57
55
|
deserializeFilter(column, filter) {
|
|
58
56
|
if (filter == null || filter === '') {
|
|
@@ -62,24 +60,24 @@ class OmnitableColumnDate extends (0, cosmoz_omnitable_column_mixin_1.columnMixi
|
|
|
62
60
|
if (!Array.isArray(matches)) {
|
|
63
61
|
return null;
|
|
64
62
|
}
|
|
65
|
-
return { min:
|
|
63
|
+
return { min: toDate(matches[1]), max: toDate(matches[2]) };
|
|
66
64
|
}
|
|
67
65
|
renderCell(column, { item }) {
|
|
68
|
-
return
|
|
69
|
-
${
|
|
66
|
+
return html `<div class="omnitable-cell-date">
|
|
67
|
+
${getString(column, item)}
|
|
70
68
|
</div>`;
|
|
71
69
|
}
|
|
72
70
|
renderEditCell(column, { item }, onItemChange) {
|
|
73
|
-
const onChange = (event) => onItemChange(
|
|
74
|
-
return
|
|
71
|
+
const onChange = (event) => onItemChange(fromInputString(event.target.value));
|
|
72
|
+
return html `<cosmoz-input
|
|
75
73
|
no-label-float
|
|
76
74
|
type="date"
|
|
77
75
|
@change=${onChange}
|
|
78
|
-
.value=${
|
|
76
|
+
.value=${getInputString(column, item)}
|
|
79
77
|
></cosmoz-input>`;
|
|
80
78
|
}
|
|
81
79
|
renderHeader({ title, min, max, limits, locale }, { filter }, setState, source) {
|
|
82
|
-
return
|
|
80
|
+
return html `<cosmoz-omnitable-date-range-input
|
|
83
81
|
.title=${title}
|
|
84
82
|
.filter=${filter}
|
|
85
83
|
.values=${source}
|
|
@@ -92,7 +90,7 @@ class OmnitableColumnDate extends (0, cosmoz_omnitable_column_mixin_1.columnMixi
|
|
|
92
90
|
></cosmoz-omnitable-date-range-input>`;
|
|
93
91
|
}
|
|
94
92
|
computeSource(column, data) {
|
|
95
|
-
return
|
|
93
|
+
return defaultComputeSource(column, data);
|
|
96
94
|
}
|
|
97
95
|
}
|
|
98
96
|
customElements.define('cosmoz-omnitable-column-date', OmnitableColumnDate);
|
|
@@ -1,21 +1,19 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
const utils_data_1 = require("./lib/utils-data");
|
|
12
|
-
require("./lib/cosmoz-omnitable-datetime-range-input");
|
|
1
|
+
import '@polymer/paper-dropdown-menu/paper-dropdown-menu';
|
|
2
|
+
import '@neovici/cosmoz-datetime-input';
|
|
3
|
+
import './ui-helpers/cosmoz-clear-button';
|
|
4
|
+
import { columnMixin } from './cosmoz-omnitable-column-mixin';
|
|
5
|
+
import { PolymerElement } from '@polymer/polymer/polymer-element';
|
|
6
|
+
import { html } from 'lit-html';
|
|
7
|
+
import { fromHashString, getString, toHashString, toXlsxValue, } from './lib/utils-datetime';
|
|
8
|
+
import { applySingleFilter, fromInputString, getComparableValue, toDate, } from './lib/utils-date';
|
|
9
|
+
import { defaultComputeSource } from './lib/utils-data';
|
|
10
|
+
import './lib/cosmoz-omnitable-datetime-range-input';
|
|
13
11
|
/**
|
|
14
12
|
* @polymer
|
|
15
13
|
* @customElement
|
|
16
14
|
* @appliesMixin columnMixin
|
|
17
15
|
*/
|
|
18
|
-
class OmnitableColumnDatetime extends
|
|
16
|
+
class OmnitableColumnDatetime extends columnMixin(PolymerElement) {
|
|
19
17
|
static get is() {
|
|
20
18
|
return 'cosmoz-omnitable-column-datetime';
|
|
21
19
|
}
|
|
@@ -36,33 +34,33 @@ class OmnitableColumnDatetime extends (0, cosmoz_omnitable_column_mixin_1.column
|
|
|
36
34
|
return { limits: column.limits };
|
|
37
35
|
}
|
|
38
36
|
getFilterFn(column, filter) {
|
|
39
|
-
const min =
|
|
37
|
+
const min = getComparableValue({ ...column, valuePath: 'min' }, filter), max = getComparableValue({ ...column, valuePath: 'max' }, filter);
|
|
40
38
|
if (min == null && max == null) {
|
|
41
39
|
return;
|
|
42
40
|
}
|
|
43
|
-
return
|
|
41
|
+
return applySingleFilter(column, filter);
|
|
44
42
|
}
|
|
45
43
|
getString(column, item) {
|
|
46
|
-
return
|
|
44
|
+
return getString(column, item);
|
|
47
45
|
}
|
|
48
46
|
toXlsxValue(column, item) {
|
|
49
|
-
return
|
|
47
|
+
return toXlsxValue(column, item);
|
|
50
48
|
}
|
|
51
49
|
cellTitleFn(column, item) {
|
|
52
|
-
return
|
|
50
|
+
return getString(column, item);
|
|
53
51
|
}
|
|
54
52
|
getComparableValue(column, item) {
|
|
55
|
-
return
|
|
53
|
+
return getComparableValue(column, item);
|
|
56
54
|
}
|
|
57
55
|
serializeFilter(column, filter) {
|
|
58
56
|
if (filter == null) {
|
|
59
57
|
return;
|
|
60
58
|
}
|
|
61
|
-
const min =
|
|
59
|
+
const min = toDate(filter.min), max = toDate(filter.max);
|
|
62
60
|
if (min == null && max == null) {
|
|
63
61
|
return;
|
|
64
62
|
}
|
|
65
|
-
return
|
|
63
|
+
return toHashString(min) + '~' + toHashString(max);
|
|
66
64
|
}
|
|
67
65
|
deserializeFilter(column, filter) {
|
|
68
66
|
if (filter == null || filter === '') {
|
|
@@ -72,22 +70,22 @@ class OmnitableColumnDatetime extends (0, cosmoz_omnitable_column_mixin_1.column
|
|
|
72
70
|
if (!Array.isArray(matches)) {
|
|
73
71
|
return null;
|
|
74
72
|
}
|
|
75
|
-
return { min:
|
|
73
|
+
return { min: fromHashString(matches[1]), max: fromHashString(matches[2]) };
|
|
76
74
|
}
|
|
77
75
|
renderCell(column, { item }) {
|
|
78
|
-
return
|
|
76
|
+
return getString(column, item);
|
|
79
77
|
}
|
|
80
78
|
renderEditCell(column, { item }, onItemChange) {
|
|
81
|
-
const onChange = (event) => onItemChange(
|
|
82
|
-
return
|
|
79
|
+
const onChange = (event) => onItemChange(fromInputString(event.target.value));
|
|
80
|
+
return html `<cosmoz-input
|
|
83
81
|
no-label-float
|
|
84
82
|
type="text"
|
|
85
83
|
@change=${onChange}
|
|
86
|
-
.value=${
|
|
84
|
+
.value=${getString(column, item)}
|
|
87
85
|
></cosmoz-input>`;
|
|
88
86
|
}
|
|
89
87
|
renderHeader({ title, min, max, limits, locale, filterStep }, { filter }, setState, source) {
|
|
90
|
-
return
|
|
88
|
+
return html `<cosmoz-omnitable-datetime-range-input
|
|
91
89
|
.title=${title}
|
|
92
90
|
.filter=${filter}
|
|
93
91
|
.values=${source}
|
|
@@ -101,7 +99,7 @@ class OmnitableColumnDatetime extends (0, cosmoz_omnitable_column_mixin_1.column
|
|
|
101
99
|
></cosmoz-omnitable-datetime-range-input>`;
|
|
102
100
|
}
|
|
103
101
|
computeSource(column, data) {
|
|
104
|
-
return
|
|
102
|
+
return defaultComputeSource(column, data);
|
|
105
103
|
}
|
|
106
104
|
}
|
|
107
105
|
customElements.define(OmnitableColumnDatetime.is, OmnitableColumnDatetime);
|
|
@@ -1,18 +1,16 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
const polymer_element_1 = require("@polymer/polymer/polymer-element");
|
|
6
|
-
const html_tag_1 = require("@polymer/polymer/lib/utils/html-tag");
|
|
1
|
+
import { translatable } from '@neovici/cosmoz-i18next';
|
|
2
|
+
import { mixin, Template } from '@neovici/cosmoz-utils';
|
|
3
|
+
import { PolymerElement } from '@polymer/polymer/polymer-element';
|
|
4
|
+
import { html } from '@polymer/polymer/lib/utils/html-tag';
|
|
7
5
|
window.Cosmoz = window.Cosmoz || {};
|
|
8
6
|
/**
|
|
9
7
|
* @polymer
|
|
10
8
|
* @customElement
|
|
11
9
|
* @appliesMixin translatable
|
|
12
10
|
*/
|
|
13
|
-
class OmnitableColumnListData extends
|
|
11
|
+
class OmnitableColumnListData extends translatable(mixin(Template, PolymerElement)) {
|
|
14
12
|
static get template() {
|
|
15
|
-
return
|
|
13
|
+
return html `
|
|
16
14
|
<style>
|
|
17
15
|
:host {
|
|
18
16
|
display: block;
|
|
@@ -1,22 +1,20 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
const cosmoz_omnitable_column_mixin_1 = require("./cosmoz-omnitable-column-mixin");
|
|
9
|
-
const cosmoz_omnitable_column_list_mixin_1 = require("./cosmoz-omnitable-column-list-mixin");
|
|
1
|
+
import '@neovici/cosmoz-autocomplete';
|
|
2
|
+
import '@neovici/cosmoz-spinner';
|
|
3
|
+
import { PolymerElement } from '@polymer/polymer/polymer-element';
|
|
4
|
+
import { html } from 'lit-html';
|
|
5
|
+
import { when } from 'lit-html/directives/when.js';
|
|
6
|
+
import { columnMixin } from './cosmoz-omnitable-column-mixin';
|
|
7
|
+
import { getTexts, listColumnMixin, onChange, onFocus, onText, } from './cosmoz-omnitable-column-list-mixin';
|
|
10
8
|
/**
|
|
11
9
|
* @polymer
|
|
12
10
|
* @customElement
|
|
13
11
|
* @appliesMixin listColumnMixin
|
|
14
12
|
* @appliesMixin columnMixin
|
|
15
13
|
*/
|
|
16
|
-
class OmnitableColumnListHorizontal extends
|
|
14
|
+
class OmnitableColumnListHorizontal extends listColumnMixin(columnMixin(PolymerElement)) {
|
|
17
15
|
renderCell({ valuePath, textProperty }, { item }) {
|
|
18
|
-
const list =
|
|
19
|
-
return
|
|
16
|
+
const list = getTexts(item, valuePath, textProperty).map((item) => html `<li>${item}</li>`);
|
|
17
|
+
return html `
|
|
20
18
|
<style>
|
|
21
19
|
ul {
|
|
22
20
|
padding: 0;
|
|
@@ -42,17 +40,17 @@ class OmnitableColumnListHorizontal extends (0, cosmoz_omnitable_column_list_mix
|
|
|
42
40
|
return 'not implemented';
|
|
43
41
|
}
|
|
44
42
|
renderHeader(column, { filter, query }, setState, source) {
|
|
45
|
-
return
|
|
43
|
+
return html `<cosmoz-autocomplete-ui
|
|
46
44
|
class="external-values-${column.externalValues}"
|
|
47
45
|
.label=${column.title}
|
|
48
46
|
.source=${source}
|
|
49
47
|
.textProperty=${column.textProperty}
|
|
50
48
|
.value=${filter}
|
|
51
49
|
.text=${query}
|
|
52
|
-
.onChange=${
|
|
53
|
-
.onFocus=${
|
|
54
|
-
.onText=${
|
|
55
|
-
>${
|
|
50
|
+
.onChange=${onChange(setState)}
|
|
51
|
+
.onFocus=${onFocus(setState)}
|
|
52
|
+
.onText=${onText(setState)}
|
|
53
|
+
>${when(column.loading, () => html `<cosmoz-spinner slot="suffix"></cosmoz-spinner>`)}</cosmoz-autocomplete-ui
|
|
56
54
|
> `;
|
|
57
55
|
}
|
|
58
56
|
}
|