-
Notifications
You must be signed in to change notification settings - Fork 5
/
Copy pathcosmoz-omnitable-column-list-horizontal.js
67 lines (59 loc) · 1.67 KB
/
cosmoz-omnitable-column-list-horizontal.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
import '@neovici/cosmoz-autocomplete';
import { PolymerElement } from '@polymer/polymer/polymer-element';
import {
html, nothing
} from 'lit-html';
import { columnMixin } from './cosmoz-omnitable-column-mixin';
import { getTexts, listColumnMixin, onChange, onFocus, onText } from './cosmoz-omnitable-column-list-mixin';
/**
* @polymer
* @customElement
* @appliesMixin listColumnMixin
* @appliesMixin columnMixin
*/
class OmnitableColumnListHorizontal extends listColumnMixin(columnMixin(PolymerElement)) {
renderCell({ valuePath, textProperty }, { item }) {
const list = getTexts(item, valuePath, textProperty).map(item => html`<li>${ item }</li>`);
return html`
<style>
ul {
padding: 0;
display: inline;
list-style: none;
}
ul li {
display: inline;
}
ul li:after {
content: ", ";
}
ul li:last-child:after {
content: "";
}
</style>
<ul>${ list }</ul>
`;
}
renderEditCell() {
return 'not implemented';
}
renderHeader(column, { filter, query }, setState, source) {
const
spinner = column.loading
? html`<paper-spinner-lite style="width: 20px; height: 20px;" suffix slot="suffix" active></paper-spinner-lite>`
: nothing;
return html`<cosmoz-autocomplete-ui
class="external-values-${ column.externalValues }"
.label=${ column.title }
.source=${ source }
.textProperty=${ column.textProperty }
.value=${ filter }
.text=${ query }
.onChange=${ onChange(setState) }
.onFocus=${ onFocus(setState) }
.onText=${ onText(setState) }
>${ spinner }</cosmoz-autocomplete-ui>
`;
}
}
customElements.define('cosmoz-omnitable-column-list-horizontal', OmnitableColumnListHorizontal);