@neovici/cosmoz-omnitable 12.26.3 → 12.27.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.
@@ -2,10 +2,13 @@ import { _ } from '@neovici/cosmoz-i18next';
2
2
  import { PolymerElement } from '@polymer/polymer';
3
3
  import { html } from 'lit-html';
4
4
  import { ifDefined } from 'lit-html/directives/if-defined.js';
5
+ import '@neovici/cosmoz-input';
5
6
  import { rangeInputMixin } from './cosmoz-omnitable-range-input-mixin';
6
7
  import { polymerHauntedRender } from './polymer-haunted-render-mixin';
7
8
 
8
- class AmountRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerElement)) {
9
+ class AmountRangeInput extends rangeInputMixin(
10
+ polymerHauntedRender(PolymerElement),
11
+ ) {
9
12
  static get properties() {
10
13
  return {
11
14
  /**
@@ -25,19 +28,20 @@ class AmountRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
25
28
  rates: { type: Object },
26
29
  // trigger filter updates manually
27
30
  autoupdate: { type: String, value: false },
28
- _filterText: { type: String, computed: '_computeFilterText(filter.*, _formatters)' }
31
+ _filterText: {
32
+ type: String,
33
+ computed: '_computeFilterText(filter.*, _formatters)',
34
+ },
29
35
  };
30
36
  }
31
37
 
32
38
  static get observers() {
33
- return [
34
- '_valuesChanged(autodetect, currency, values)'
35
- ];
39
+ return ['_valuesChanged(autodetect, currency, values)'];
36
40
  }
37
41
 
38
42
  // eslint-disable-next-line max-lines-per-function
39
43
  render() {
40
- const onOpenedChanged = event => {
44
+ const onOpenedChanged = (event) => {
41
45
  this.headerFocused = event.detail.value;
42
46
  this._onDropdownOpenedChanged(event);
43
47
  };
@@ -49,46 +53,59 @@ class AmountRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
49
53
  display: block;
50
54
  }
51
55
  </style>
52
- <cosmoz-clear-button @click=${ () => this.resetFilter() } ?visible=${ this.hasFilter() }></cosmoz-clear-button>
56
+ <cosmoz-clear-button
57
+ @click=${() => this.resetFilter()}
58
+ ?visible=${this.hasFilter()}
59
+ ></cosmoz-clear-button>
53
60
  <paper-dropdown-menu
54
- label=${ this.title }
55
- placeholder=${ ifDefined(this._filterText) }
56
- class="external-values-${ this.externalValues }"
57
- title=${ this._tooltip }
61
+ label=${this.title}
62
+ placeholder=${ifDefined(this._filterText)}
63
+ class="external-values-${this.externalValues}"
64
+ title=${this._tooltip}
58
65
  horizontal-align="right"
59
- ?opened=${ this.headerFocused }
60
- @opened-changed=${ onOpenedChanged }
66
+ ?opened=${this.headerFocused}
67
+ @opened-changed=${onOpenedChanged}
61
68
  >
62
- <div class="dropdown-content" slot="dropdown-content" style="padding: 15px; min-width: 150px;">
63
- <h3 style="margin: 0;">${ this.title }</h3>
64
- <paper-input
65
- class=${ this._fromClasses }
69
+ <div
70
+ class="dropdown-content"
71
+ slot="dropdown-content"
72
+ style="padding: 15px; min-width: 150px;"
73
+ >
74
+ <h3 style="margin: 0;">${this.title}</h3>
75
+ <cosmoz-input
76
+ class=${this._fromClasses}
66
77
  type="number"
67
- label=${ _('Min amount') }
68
- title=${ _('Minimum amount') }
69
- .value=${ this._filterInput?.min }
70
- @value-changed=${ event => {
71
- this.set('_filterInput.min', event.detail.value);
72
- } }
73
- @blur=${ event => this._onBlur(event) }
74
- @keydown=${ event => this._onKeyDown(event) }
75
- min=${ this._toInputStringAmount(this._limit.fromMin) }
76
- max=${ this._toInputStringAmount(this._limit.fromMax) }
77
- ><div slot="suffix" suffix>${ this.filter?.min?.currency }</div></paper-input>
78
- <paper-input
79
- class=${ this._toClasses }
78
+ title=${_('Minimum amount')}
79
+ label=${_('Min amount')}
80
+ .value=${this._filterInput?.min}
81
+ @value-changed=${(event) => {
82
+ this.set('_filterInput.min', event.detail.value);
83
+ }}
84
+ @blur=${(event) => this._onBlur(event)}
85
+ @keydown=${(event) => this._onKeyDown(event)}
86
+ min=${this._toInputStringAmount(this._limit.fromMin)}
87
+ max=${this._toInputStringAmount(this._limit.fromMax)}
88
+ ><div slot="suffix" suffix>
89
+ ${this.filter?.min?.currency}
90
+ </div></cosmoz-input
91
+ >
92
+ <cosmoz-input
93
+ class=${this._toClasses}
80
94
  type="number"
81
- label=${ _('Max amount') }
82
- title=${ _('Maximum amount') }
83
- .value=${ this._filterInput?.max }
84
- @value-changed=${ event => {
85
- this.set('_filterInput.max', event.detail.value);
86
- } }
87
- @blur=${ event => this._onBlur(event) }
88
- @keydown=${ event => this._onKeyDown(event) }
89
- min=${ this._toInputStringAmount(this._limit.toMin) }
90
- max=${ this._toInputStringAmount(this._limit.toMax) }
91
- ><div slot="suffix" suffix>${ this.filter?.max?.currency }</div></paper-input>
95
+ title=${_('Maximum amount')}
96
+ label=${_('Max amount')}
97
+ .value=${this._filterInput?.max}
98
+ @value-changed=${(event) => {
99
+ this.set('_filterInput.max', event.detail.value);
100
+ }}
101
+ @blur=${(event) => this._onBlur(event)}
102
+ @keydown=${(event) => this._onKeyDown(event)}
103
+ min=${this._toInputStringAmount(this._limit.toMin)}
104
+ max=${this._toInputStringAmount(this._limit.toMax)}
105
+ ><div slot="suffix" suffix>
106
+ ${this.filter?.max?.currency}
107
+ </div></cosmoz-input
108
+ >
92
109
  </div>
93
110
  </paper-dropdown-menu>
94
111
  `;
@@ -136,12 +153,17 @@ class AmountRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
136
153
  * @param {Function} limitFunc The function used to limit the number (Math.min|Math.max)
137
154
  * @returns {Object|void} Value converted to Number or void
138
155
  */
139
- toAmount(value, limit, limitFunc) { // eslint-disable-line max-statements
156
+ toAmount(value, limit, limitFunc) {
157
+ // eslint-disable-line max-statements
140
158
  if (value == null || value === '') {
141
159
  return;
142
160
  }
143
161
 
144
- if (typeof value !== 'object' || value.currency == null || value.currency === '') {
162
+ if (
163
+ typeof value !== 'object' ||
164
+ value.currency == null ||
165
+ value.currency === ''
166
+ ) {
145
167
  return null;
146
168
  }
147
169
 
@@ -151,7 +173,7 @@ class AmountRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
151
173
  }
152
174
  const amount = {
153
175
  currency: value.currency,
154
- amount: number
176
+ amount: number,
155
177
  };
156
178
 
157
179
  if (limitFunc == null || limit == null) {
@@ -215,14 +237,14 @@ class AmountRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
215
237
  getFormatter(currency, locale) {
216
238
  const id = locale ? locale : '',
217
239
  key = currency + id || '',
218
- formatters = this._formatters = this._formatters || {};
240
+ formatters = (this._formatters = this._formatters || {});
219
241
  if (formatters[key]) {
220
242
  return formatters[key];
221
243
  }
222
244
 
223
245
  formatters[key] = new Intl.NumberFormat(locale || undefined, {
224
246
  style: 'currency',
225
- currency
247
+ currency,
226
248
  });
227
249
 
228
250
  return formatters[key];
@@ -239,8 +261,7 @@ class AmountRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
239
261
  if (amount == null) {
240
262
  return '';
241
263
  }
242
- return this.getFormatter(amount.currency, this.locale)
243
- .format(value.amount);
264
+ return this.getFormatter(amount.currency, this.locale).format(value.amount);
244
265
  }
245
266
 
246
267
  _amountValueChanged(event) {
@@ -251,11 +272,16 @@ class AmountRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
251
272
  amountValue = Number(value),
252
273
  newValue = {
253
274
  amount: amountValue,
254
- currency: originalValue.currency
275
+ currency: originalValue.currency,
255
276
  };
256
277
 
257
278
  this.set(this.valuePath, newValue, item);
258
- this._fireItemChangeEvent(item, this.valuePath, originalValue, this.renderValue.bind(this));
279
+ this._fireItemChangeEvent(
280
+ item,
281
+ this.valuePath,
282
+ originalValue,
283
+ this.renderValue.bind(this),
284
+ );
259
285
  }
260
286
 
261
287
  _toInputString(value) {
@@ -275,7 +301,9 @@ class AmountRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
275
301
  if (amount == null) {
276
302
  return null;
277
303
  }
278
- const toCurrency = this.toNumber(amount.amount) * (rates[amount.currency] || 1) / (rates[this.currency] || 1);
304
+ const toCurrency =
305
+ (this.toNumber(amount.amount) * (rates[amount.currency] || 1)) /
306
+ (rates[this.currency] || 1);
279
307
  return toCurrency.toFixed(2);
280
308
  }
281
309
 
@@ -286,10 +314,11 @@ class AmountRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
286
314
  }
287
315
  return this.toValue({
288
316
  amount: number,
289
- currency: property && this.get(['filter', property, 'currency']) || this.currency
317
+ currency:
318
+ (property && this.get(['filter', property, 'currency'])) ||
319
+ this.currency,
290
320
  });
291
321
  }
292
322
  }
293
323
 
294
-
295
324
  customElements.define('cosmoz-omnitable-amount-range-input', AmountRangeInput);
@@ -2,10 +2,13 @@ import { _ } from '@neovici/cosmoz-i18next';
2
2
  import { PolymerElement } from '@polymer/polymer';
3
3
  import { html } from 'lit-html';
4
4
  import { ifDefined } from 'lit-html/directives/if-defined.js';
5
+ import '@neovici/cosmoz-input';
5
6
  import { dateInputMixin } from './cosmoz-omnitable-date-input-mixin';
6
7
  import { polymerHauntedRender } from './polymer-haunted-render-mixin';
7
8
 
8
- class DateRangeInput extends dateInputMixin(polymerHauntedRender(PolymerElement)) {
9
+ class DateRangeInput extends dateInputMixin(
10
+ polymerHauntedRender(PolymerElement),
11
+ ) {
9
12
  // eslint-disable-next-line max-lines-per-function
10
13
  render() {
11
14
  return html`
@@ -15,36 +18,46 @@ class DateRangeInput extends dateInputMixin(polymerHauntedRender(PolymerElement)
15
18
  display: block;
16
19
  }
17
20
  </style>
18
- <cosmoz-clear-button @click=${ () => this.resetFilter() } ?visible=${ this.hasFilter() }></cosmoz-clear-button>
21
+ <cosmoz-clear-button
22
+ @click=${() => this.resetFilter()}
23
+ ?visible=${this.hasFilter()}
24
+ ></cosmoz-clear-button>
19
25
  <paper-dropdown-menu
20
- label=${ this.title }
21
- placeholder=${ ifDefined(this._filterText) }
22
- class="external-values-${ this.externalValues }"
23
- title=${ this._tooltip }
26
+ label=${this.title}
27
+ placeholder=${ifDefined(this._filterText)}
28
+ class="external-values-${this.externalValues}"
29
+ title=${this._tooltip}
24
30
  horizontal-align="right"
25
- ?opened=${ this.headerFocused }
26
- @opened-changed=${ event => {
27
- // TODO: check ots integration
28
- this.headerFocused = event.detail.value;
29
- } }>
30
- <div class="dropdown-content" slot="dropdown-content" style="padding: 15px; min-width: 100px;">
31
- <h3 style="margin: 0;">${ this.title }</h3>
32
- <paper-input
31
+ ?opened=${this.headerFocused}
32
+ @opened-changed=${(event) => {
33
+ // TODO: check ots integration
34
+ this.headerFocused = event.detail.value;
35
+ }}
36
+ >
37
+ <div
38
+ class="dropdown-content"
39
+ slot="dropdown-content"
40
+ style="padding: 15px; min-width: 100px;"
41
+ >
42
+ <h3 style="margin: 0;">${this.title}</h3>
43
+ <cosmoz-input
33
44
  type="date"
34
- label=${ _('From date') }
35
- min=${ this._toInputString(this._limit.fromMin) }
36
- max=${ this._toInputString(this._limit.fromMax) }
37
- .value=${ this._filterInput?.min }
38
- @value-changed=${ event => this.set('_filterInput.min', event.detail.value) }
39
- ></paper-input>
40
- <paper-input
45
+ label=${_('From date')}
46
+ min=${this._toInputString(this._limit.fromMin)}
47
+ max=${this._toInputString(this._limit.fromMax)}
48
+ .value=${this._filterInput?.min}
49
+ @value-changed=${(event) =>
50
+ this.set('_filterInput.min', event.detail.value)}
51
+ ></cosmoz-input>
52
+ <cosmoz-input
41
53
  type="date"
42
- label=${ _('Until date') }
43
- min=${ this._toInputString(this._limit.toMin) }
44
- max=${ this._toInputString(this._limit.toMax) }
45
- .value=${ this._filterInput?.max }
46
- @value-changed=${ event => this.set('_filterInput.max', event.detail.value) }
47
- ></paper-input>
54
+ label=${_('Until date')}
55
+ min=${this._toInputString(this._limit.toMin)}
56
+ max=${this._toInputString(this._limit.toMax)}
57
+ .value=${this._filterInput?.max}
58
+ @value-changed=${(event) =>
59
+ this.set('_filterInput.max', event.detail.value)}
60
+ ></cosmoz-input>
48
61
  </div>
49
62
  </paper-dropdown-menu>
50
63
  `;
@@ -77,5 +90,4 @@ class DateRangeInput extends dateInputMixin(polymerHauntedRender(PolymerElement)
77
90
  }
78
91
  }
79
92
 
80
-
81
93
  customElements.define('cosmoz-omnitable-date-range-input', DateRangeInput);
@@ -5,7 +5,9 @@ import { ifDefined } from 'lit-html/directives/if-defined.js';
5
5
  import { dateInputMixin } from './cosmoz-omnitable-date-input-mixin';
6
6
  import { polymerHauntedRender } from './polymer-haunted-render-mixin';
7
7
 
8
- class DatetimeRangeInput extends dateInputMixin(polymerHauntedRender(PolymerElement)) {
8
+ class DatetimeRangeInput extends dateInputMixin(
9
+ polymerHauntedRender(PolymerElement),
10
+ ) {
9
11
  // eslint-disable-next-line max-lines-per-function
10
12
  render() {
11
13
  return html`
@@ -16,34 +18,45 @@ class DatetimeRangeInput extends dateInputMixin(polymerHauntedRender(PolymerElem
16
18
  }
17
19
  </style>
18
20
 
19
- <cosmoz-clear-button @click=${ () => this.resetFilter() } ?visible=${ this.hasFilter() }></cosmoz-clear-button>
21
+ <cosmoz-clear-button
22
+ @click=${() => this.resetFilter()}
23
+ ?visible=${this.hasFilter()}
24
+ ></cosmoz-clear-button>
20
25
  <paper-dropdown-menu
21
- label=${ this.title }
22
- placeholder=${ ifDefined(this._filterText) }
23
- class="external-values-${ this.externalValues }"
24
- title=${ this._tooltip }
26
+ label=${this.title}
27
+ placeholder=${ifDefined(this._filterText)}
28
+ class="external-values-${this.externalValues}"
29
+ title=${this._tooltip}
25
30
  horizontal-align="right"
26
- ?opened=${ this.headerFocused }
27
- @opened-changed=${ event => this.set('headerFocused', event.detail.value) }>
28
- <div class="dropdown-content" slot="dropdown-content" style="padding: 15px; min-width: 100px;">
29
- <h3 style="margin: 0;">${ this.title }</h3>
31
+ ?opened=${this.headerFocused}
32
+ @opened-changed=${(event) =>
33
+ this.set('headerFocused', event.detail.value)}
34
+ >
35
+ <div
36
+ class="dropdown-content"
37
+ slot="dropdown-content"
38
+ style="padding: 15px; min-width: 100px;"
39
+ >
40
+ <h3 style="margin: 0;">${this.title}</h3>
30
41
  <cosmoz-datetime-input
31
- date-label=${ _('From date') }
32
- time-label=${ _('From time') }
33
- min=${ this._toInputString(this._limit.fromMin) }
34
- max=${ this._toInputString(this._limit.fromMax) }
35
- step=${ this.filterStep }
36
- .value=${ this._filterInput?.min }
37
- @value-changed=${ event => this.set('_filterInput.min', event.detail.value) }
42
+ date-label=${_('From date')}
43
+ time-label=${_('From time')}
44
+ min=${this._toInputString(this._limit.fromMin)}
45
+ max=${this._toInputString(this._limit.fromMax)}
46
+ step=${this.filterStep}
47
+ .value=${this._filterInput?.min}
48
+ @value-changed=${(event) =>
49
+ this.set('_filterInput.min', event.detail.value)}
38
50
  ></cosmoz-datetime-input>
39
51
  <cosmoz-datetime-input
40
- date-label=${ _('To date') }
41
- time-label=${ _('To time') }
42
- min=${ this._toInputString(this._limit.toMin) }
43
- max=${ this._toInputString(this._limit.toMax) }
44
- step=${ this.filterStep }
45
- .value=${ this._filterInput?.max }
46
- @value-changed=${ event => this.set('_filterInput.max', event.detail.value) }
52
+ date-label=${_('To date')}
53
+ time-label=${_('To time')}
54
+ min=${this._toInputString(this._limit.toMin)}
55
+ max=${this._toInputString(this._limit.toMax)}
56
+ step=${this.filterStep}
57
+ .value=${this._filterInput?.max}
58
+ @value-changed=${(event) =>
59
+ this.set('_filterInput.max', event.detail.value)}
47
60
  ></cosmoz-datetime-input>
48
61
  </div>
49
62
  </paper-dropdown-menu>
@@ -65,11 +78,13 @@ class DatetimeRangeInput extends dateInputMixin(polymerHauntedRender(PolymerElem
65
78
  month: 'numeric',
66
79
  day: 'numeric',
67
80
  hour: 'numeric',
68
- minute: 'numeric'
81
+ minute: 'numeric',
69
82
  };
70
83
  return new Intl.DateTimeFormat(locale || undefined, timeFormatOption);
71
84
  }
72
85
  }
73
86
 
74
-
75
- customElements.define('cosmoz-omnitable-datetime-range-input', DatetimeRangeInput);
87
+ customElements.define(
88
+ 'cosmoz-omnitable-datetime-range-input',
89
+ DatetimeRangeInput,
90
+ );
@@ -2,33 +2,37 @@ import { _ } from '@neovici/cosmoz-i18next';
2
2
  import { PolymerElement } from '@polymer/polymer';
3
3
  import { html } from 'lit-html';
4
4
  import { ifDefined } from 'lit-html/directives/if-defined.js';
5
+ import '@neovici/cosmoz-input';
5
6
  import { rangeInputMixin } from './cosmoz-omnitable-range-input-mixin';
6
7
  import { polymerHauntedRender } from './polymer-haunted-render-mixin';
7
8
 
8
- class NumberRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerElement)) {
9
+ class NumberRangeInput extends rangeInputMixin(
10
+ polymerHauntedRender(PolymerElement),
11
+ ) {
9
12
  static get properties() {
10
13
  return {
11
14
  maximumFractionDigits: { type: Number, value: null },
12
15
  minimumFractionDigits: { type: Number, value: null }, // browser default 0 for numbers, currency-specific or 2 for currency
13
16
  formatter: {
14
17
  type: Object,
15
- computed: '_computeFormatter(locale, minimumFractionDigits, maximumFractionDigits)'
18
+ computed:
19
+ '_computeFormatter(locale, minimumFractionDigits, maximumFractionDigits)',
16
20
  },
17
21
  // trigger filter updates manually
18
22
  autoupdate: {
19
23
  type: String,
20
- value: false
24
+ value: false,
21
25
  },
22
26
  _filterText: {
23
27
  type: String,
24
- computed: '_computeFilterText(filter.*, formatter)'
25
- }
28
+ computed: '_computeFilterText(filter.*, formatter)',
29
+ },
26
30
  };
27
31
  }
28
32
 
29
33
  // eslint-disable-next-line max-lines-per-function
30
34
  render() {
31
- const onOpenedChanged = event => {
35
+ const onOpenedChanged = (event) => {
32
36
  this.headerFocused = event.detail.value;
33
37
  this._onDropdownOpenedChanged(event);
34
38
  };
@@ -41,46 +45,51 @@ class NumberRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
41
45
  }
42
46
  </style>
43
47
 
44
- <cosmoz-clear-button @click=${ () => this.resetFilter() } ?visible=${ this.hasFilter() }></cosmoz-clear-button>
48
+ <cosmoz-clear-button
49
+ @click=${() => this.resetFilter()}
50
+ ?visible=${this.hasFilter()}
51
+ ></cosmoz-clear-button>
45
52
  <paper-dropdown-menu
46
- label=${ this.title }
47
- placeholder=${ ifDefined(this._filterText) }
48
- class="external-values-${ this.externalValues }"
49
- title=${ this._tooltip }
53
+ label=${this.title}
54
+ placeholder=${ifDefined(this._filterText)}
55
+ class="external-values-${this.externalValues}"
56
+ title=${this._tooltip}
50
57
  horizontal-align="right"
51
- ?opened=${ this.headerFocused }
52
- @opened-changed=${ onOpenedChanged }
58
+ ?opened=${this.headerFocused}
59
+ @opened-changed=${onOpenedChanged}
53
60
  >
54
- <div class="dropdown-content" slot="dropdown-content" style="padding: 15px; min-width: 100px;">
55
- <h3 style="margin: 0;">${ this.title }</h3>
56
- <paper-input
57
- class=${ this._fromClasses }
61
+ <div
62
+ class="dropdown-content"
63
+ slot="dropdown-content"
64
+ style="padding: 15px; min-width: 100px;"
65
+ >
66
+ <h3 style="margin: 0;">${this.title}</h3>
67
+ <cosmoz-input
68
+ class=${this._fromClasses}
58
69
  type="number"
59
- label=${ _('From') }
60
- .value=${ this._filterInput?.min }
61
- @value-changed=${ event => {
62
- this.set('_filterInput.min', event.detail.value);
63
- } }
64
- @input=${ event => this.onBadInputFloatLabel(event) }
65
- @blur=${ event => this._onBlur(event) }
66
- @keydown=${ event => this._onKeyDown(event) }
67
- min=${ this._toInputString(this._limit.fromMin) }
68
- max=${ this._toInputString(this._limit.fromMax) }
69
- ></paper-input>
70
- <paper-input
71
- class=${ this._toClasses }
70
+ label=${_('From')}
71
+ .value=${this._filterInput?.min}
72
+ @value-changed=${(event) => {
73
+ this.set('_filterInput.min', event.detail.value);
74
+ }}
75
+ @blur=${(event) => this._onBlur(event)}
76
+ @keydown=${(event) => this._onKeyDown(event)}
77
+ min=${this._toInputString(this._limit.fromMin)}
78
+ max=${this._toInputString(this._limit.fromMax)}
79
+ ></cosmoz-input>
80
+ <cosmoz-input
81
+ class=${this._toClasses}
72
82
  type="number"
73
- label=${ _('To') }
74
- .value=${ this._filterInput?.max }
75
- @value-changed=${ event => {
76
- this.set('_filterInput.max', event.detail.value);
77
- } }
78
- @input=${ event => this.onBadInputFloatLabel(event) }
79
- @blur=${ event => this._onBlur(event) }
80
- @keydown=${ event => this._onKeyDown(event) }
81
- min=${ this._toInputString(this._limit.toMin) }
82
- max=${ this._toInputString(this._limit.toMax) }
83
- ></paper-input>
83
+ label=${_('To')}
84
+ .value=${this._filterInput?.max}
85
+ @value-changed=${(event) => {
86
+ this.set('_filterInput.max', event.detail.value);
87
+ }}
88
+ @blur=${(event) => this._onBlur(event)}
89
+ @keydown=${(event) => this._onKeyDown(event)}
90
+ min=${this._toInputString(this._limit.toMin)}
91
+ max=${this._toInputString(this._limit.toMax)}
92
+ ></cosmoz-input>
84
93
  </div>
85
94
  </paper-dropdown-menu>
86
95
  `;
@@ -88,7 +97,7 @@ class NumberRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
88
97
 
89
98
  _computeFormatter(locale, minimumFractionDigits, maximumFractionDigits) {
90
99
  const options = {
91
- localeMatcher: 'best fit' // chrome expects this when using custom options
100
+ localeMatcher: 'best fit', // chrome expects this when using custom options
92
101
  };
93
102
  if (minimumFractionDigits !== null) {
94
103
  options.minimumFractionDigits = minimumFractionDigits;
@@ -99,26 +108,6 @@ class NumberRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
99
108
  return new Intl.NumberFormat(locale || undefined, options);
100
109
  }
101
110
 
102
- /**
103
- * Check if label should float based on validity
104
- *
105
- * Number inputs can have allowed characters that aren't numbers (-,e) and won't
106
- * trigger a value change and thus not float the label.
107
- * However, the validity will report badInput so we can trigger a label float by
108
- * setting it to something truthy but still not visible.
109
- * Fixed in paper-input 3.x
110
- *
111
- * @param {Event} event KeyboardEvent
112
- * @returns {void}
113
- */
114
- onBadInputFloatLabel(event) {
115
- const paperInput = event.currentTarget;
116
- if (paperInput == null || paperInput.tagName !== 'PAPER-INPUT') {
117
- return;
118
- }
119
- paperInput.placeholder = paperInput.$.nativeInput.validity.badInput ? ' ' : '';
120
- }
121
-
122
111
  /**
123
112
  * Get the comparable value of an item.
124
113
  *
@@ -155,5 +144,4 @@ class NumberRangeInput extends rangeInputMixin(polymerHauntedRender(PolymerEleme
155
144
  }
156
145
  }
157
146
 
158
-
159
147
  customElements.define('cosmoz-omnitable-number-range-input', NumberRangeInput);
@@ -308,7 +308,7 @@ export const rangeInputMixin = base => // eslint-disable-line max-lines-per-func
308
308
 
309
309
  _onKeyDown(event) {
310
310
  const input = event.currentTarget,
311
- inputs = Array.from(input.parentElement.querySelectorAll('paper-input')),
311
+ inputs = Array.from(input.parentElement.querySelectorAll('cosmoz-input')),
312
312
  nextInput = inputs[inputs.findIndex(i => i === input) + 1],
313
313
  isLastInput = !nextInput,
314
314
  isFirstInput = inputs[0] === input;
@@ -349,7 +349,7 @@ export const rangeInputMixin = base => // eslint-disable-line max-lines-per-func
349
349
  }
350
350
 
351
351
  // focus the first input after the dropdown is visible
352
- setTimeout(() => currentTarget.querySelector('paper-input').focus(), 100);
352
+ setTimeout(() => currentTarget.querySelector('cosmoz-input').focus(), 100);
353
353
  }
354
354
 
355
355
 
@@ -2,6 +2,7 @@ import { _ } from '@neovici/cosmoz-i18next';
2
2
  import { PolymerElement } from '@polymer/polymer';
3
3
  import { html } from 'lit-html';
4
4
  import { ifDefined } from 'lit-html/directives/if-defined.js';
5
+ import '@neovici/cosmoz-input';
5
6
  import { dateInputMixin } from './cosmoz-omnitable-date-input-mixin';
6
7
  import { polymerHauntedRender } from './polymer-haunted-render-mixin';
7
8
 
@@ -28,20 +29,20 @@ class TimeRangeInput extends dateInputMixin(polymerHauntedRender(PolymerElement)
28
29
  >
29
30
  <div class="dropdown-content" slot="dropdown-content" style="padding: 15px; min-width: 100px;">
30
31
  <h3 style="margin: 0;">${ this.title }</h3>
31
- <paper-input
32
+ <cosmoz-input
32
33
  type="time"
33
34
  label=${ _('From time') }
34
35
  step=${ this.filterStep }
35
36
  .value=${ this._filterInput.min }
36
37
  @value-changed=${ event => this.set('_filterInput.min', event.detail.value) }
37
- ></paper-input>
38
- <paper-input
38
+ ></cosmoz-input>
39
+ <cosmoz-input
39
40
  type="time"
40
41
  label=${ _('Until time') }
41
42
  step=${ this.filterStep }
42
43
  .value=${ this._filterInput.max }
43
44
  @value-changed=${ event => this.set('_filterInput.max', event.detail.value) }
44
- ></paper-input>
45
+ ></cosmoz-input>
45
46
  </div>
46
47
  </paper-dropdown-menu>
47
48
  `;