@vaadin/time-picker 24.2.0-alpha12 → 24.2.0-alpha13
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/package.json +11 -11
- package/src/vaadin-time-picker.js +15 -35
- package/web-types.json +2 -2
- package/web-types.lit.json +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/time-picker",
|
|
3
|
-
"version": "24.2.0-
|
|
3
|
+
"version": "24.2.0-alpha13",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -36,15 +36,15 @@
|
|
|
36
36
|
],
|
|
37
37
|
"dependencies": {
|
|
38
38
|
"@polymer/polymer": "^3.0.0",
|
|
39
|
-
"@vaadin/combo-box": "24.2.0-
|
|
40
|
-
"@vaadin/component-base": "24.2.0-
|
|
41
|
-
"@vaadin/field-base": "24.2.0-
|
|
42
|
-
"@vaadin/input-container": "24.2.0-
|
|
43
|
-
"@vaadin/item": "24.2.0-
|
|
44
|
-
"@vaadin/overlay": "24.2.0-
|
|
45
|
-
"@vaadin/vaadin-lumo-styles": "24.2.0-
|
|
46
|
-
"@vaadin/vaadin-material-styles": "24.2.0-
|
|
47
|
-
"@vaadin/vaadin-themable-mixin": "24.2.0-
|
|
39
|
+
"@vaadin/combo-box": "24.2.0-alpha13",
|
|
40
|
+
"@vaadin/component-base": "24.2.0-alpha13",
|
|
41
|
+
"@vaadin/field-base": "24.2.0-alpha13",
|
|
42
|
+
"@vaadin/input-container": "24.2.0-alpha13",
|
|
43
|
+
"@vaadin/item": "24.2.0-alpha13",
|
|
44
|
+
"@vaadin/overlay": "24.2.0-alpha13",
|
|
45
|
+
"@vaadin/vaadin-lumo-styles": "24.2.0-alpha13",
|
|
46
|
+
"@vaadin/vaadin-material-styles": "24.2.0-alpha13",
|
|
47
|
+
"@vaadin/vaadin-themable-mixin": "24.2.0-alpha13"
|
|
48
48
|
},
|
|
49
49
|
"devDependencies": {
|
|
50
50
|
"@esm-bundle/chai": "^4.3.4",
|
|
@@ -55,5 +55,5 @@
|
|
|
55
55
|
"web-types.json",
|
|
56
56
|
"web-types.lit.json"
|
|
57
57
|
],
|
|
58
|
-
"gitHead": "
|
|
58
|
+
"gitHead": "703d17b2149ce7d756518731d8770b0ba6ed8305"
|
|
59
59
|
}
|
|
@@ -18,13 +18,6 @@ import { registerStyles, ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaa
|
|
|
18
18
|
const MIN_ALLOWED_TIME = '00:00:00.000';
|
|
19
19
|
const MAX_ALLOWED_TIME = '23:59:59.999';
|
|
20
20
|
|
|
21
|
-
const TEST_TIME_OBJ = {
|
|
22
|
-
hours: 0,
|
|
23
|
-
minutes: 0,
|
|
24
|
-
seconds: 0,
|
|
25
|
-
milliseconds: 0,
|
|
26
|
-
};
|
|
27
|
-
|
|
28
21
|
registerStyles('vaadin-time-picker', inputFieldShared, { moduleId: 'vaadin-time-picker-styles' });
|
|
29
22
|
|
|
30
23
|
/**
|
|
@@ -235,7 +228,6 @@ class TimePicker extends PatternMixin(InputControlMixin(ThemableMixin(ElementMix
|
|
|
235
228
|
*/
|
|
236
229
|
step: {
|
|
237
230
|
type: Number,
|
|
238
|
-
observer: '__stepChanged',
|
|
239
231
|
},
|
|
240
232
|
|
|
241
233
|
/**
|
|
@@ -468,9 +460,19 @@ class TimePicker extends PatternMixin(InputControlMixin(ThemableMixin(ElementMix
|
|
|
468
460
|
|
|
469
461
|
/** @private */
|
|
470
462
|
__onArrowPressWithStep(step) {
|
|
471
|
-
const
|
|
472
|
-
|
|
473
|
-
|
|
463
|
+
const objWithStep = this.__addStep(this.__getMsec(this.__memoValue), step, true);
|
|
464
|
+
this.__memoValue = objWithStep;
|
|
465
|
+
|
|
466
|
+
// Setting `value` property triggers the synchronous observer
|
|
467
|
+
// that in turn updates `_comboBoxValue` (actual input value)
|
|
468
|
+
// with its own observer where the value can be parsed again,
|
|
469
|
+
// so we set this flag to ensure it does not alter the value.
|
|
470
|
+
this.__useMemo = true;
|
|
471
|
+
this.__skipCommittedValueUpdate = true;
|
|
472
|
+
this.value = this.__formatISO(objWithStep);
|
|
473
|
+
this.__skipCommittedValueUpdate = false;
|
|
474
|
+
this.__useMemo = false;
|
|
475
|
+
|
|
474
476
|
this.validate();
|
|
475
477
|
this.__commitPendingValue();
|
|
476
478
|
}
|
|
@@ -597,7 +599,7 @@ class TimePicker extends PatternMixin(InputControlMixin(ThemableMixin(ElementMix
|
|
|
597
599
|
* @override
|
|
598
600
|
*/
|
|
599
601
|
_valueChanged(value, oldValue) {
|
|
600
|
-
const parsedObj = this.__parseISO(value);
|
|
602
|
+
const parsedObj = (this.__memoValue = this.__parseISO(value));
|
|
601
603
|
const newValue = this.__formatISO(parsedObj) || '';
|
|
602
604
|
|
|
603
605
|
// Mark value set programmatically by the user
|
|
@@ -629,7 +631,7 @@ class TimePicker extends PatternMixin(InputControlMixin(ThemableMixin(ElementMix
|
|
|
629
631
|
return;
|
|
630
632
|
}
|
|
631
633
|
|
|
632
|
-
const parsedObj = this.i18n.parseTime(value);
|
|
634
|
+
const parsedObj = this.__useMemo ? this.__memoValue : this.i18n.parseTime(value);
|
|
633
635
|
const newValue = this.i18n.formatTime(parsedObj) || '';
|
|
634
636
|
|
|
635
637
|
if (parsedObj) {
|
|
@@ -674,28 +676,6 @@ class TimePicker extends PatternMixin(InputControlMixin(ThemableMixin(ElementMix
|
|
|
674
676
|
this.validate();
|
|
675
677
|
}
|
|
676
678
|
|
|
677
|
-
/** @private */
|
|
678
|
-
__stepChanged(step) {
|
|
679
|
-
if (step == null) {
|
|
680
|
-
return;
|
|
681
|
-
}
|
|
682
|
-
|
|
683
|
-
const parsedObj = this.i18n.parseTime(this.i18n.formatTime(TEST_TIME_OBJ));
|
|
684
|
-
if (
|
|
685
|
-
(step % 1 !== 0 && !parsedObj.milliseconds) ||
|
|
686
|
-
(step % 60 !== 0 && !parsedObj.seconds) ||
|
|
687
|
-
(step % (60 * 60) !== 0 && !parsedObj.minutes)
|
|
688
|
-
) {
|
|
689
|
-
console.warn(
|
|
690
|
-
`<vaadin-time-picker> The step ${step} seconds has been rejected because it's not compatible with the provided time formatter.`,
|
|
691
|
-
);
|
|
692
|
-
this.step = this.__previousStep;
|
|
693
|
-
return;
|
|
694
|
-
}
|
|
695
|
-
|
|
696
|
-
this.__previousStep = step;
|
|
697
|
-
}
|
|
698
|
-
|
|
699
679
|
/** @private */
|
|
700
680
|
__updateValue(obj) {
|
|
701
681
|
const timeString = this.__formatISO(this.__validateTime(obj)) || '';
|
package/web-types.json
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/time-picker",
|
|
4
|
-
"version": "24.2.0-
|
|
4
|
+
"version": "24.2.0-alpha13",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"contributions": {
|
|
7
7
|
"html": {
|
|
8
8
|
"elements": [
|
|
9
9
|
{
|
|
10
10
|
"name": "vaadin-time-picker",
|
|
11
|
-
"description": "`<vaadin-time-picker>` is a Web Component providing a time-selection field.\n\n```html\n<vaadin-time-picker></vaadin-time-picker>\n```\n```js\ntimePicker.value = '14:30';\n```\n\nWhen the selected `value` is changed, a `value-changed` event is triggered.\n\n### Styling\n\nThe following custom properties are available for styling:\n\nCustom property | Description | Default\n----------------------------------------|----------------------------|---------\n`--vaadin-field-default-width` | Default width of the field | `12em`\n`--vaadin-combo-box-overlay-max-height` | Max height of the overlay | `65vh`\n\n`<vaadin-time-picker>` provides the same set of shadow DOM parts and state attributes as `<vaadin-text-field>`.\nSee [`<vaadin-text-field>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-
|
|
11
|
+
"description": "`<vaadin-time-picker>` is a Web Component providing a time-selection field.\n\n```html\n<vaadin-time-picker></vaadin-time-picker>\n```\n```js\ntimePicker.value = '14:30';\n```\n\nWhen the selected `value` is changed, a `value-changed` event is triggered.\n\n### Styling\n\nThe following custom properties are available for styling:\n\nCustom property | Description | Default\n----------------------------------------|----------------------------|---------\n`--vaadin-field-default-width` | Default width of the field | `12em`\n`--vaadin-combo-box-overlay-max-height` | Max height of the overlay | `65vh`\n\n`<vaadin-time-picker>` provides the same set of shadow DOM parts and state attributes as `<vaadin-text-field>`.\nSee [`<vaadin-text-field>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha13/#/elements/vaadin-text-field) for the styling documentation.\n\nIn addition to `<vaadin-text-field>` parts, the following parts are available for theming:\n\nPart name | Description\n----------------|----------------\n`toggle-button` | The toggle button\n\nIn addition to `<vaadin-text-field>` state attributes, the following state attributes are available for theming:\n\nAttribute | Description\n----------|------------------------------------------\n`opened` | Set when the time-picker dropdown is open\n\n### Internal components\n\nIn addition to `<vaadin-time-picker>` itself, the following internal\ncomponents are themable:\n\n- `<vaadin-time-picker-combo-box>` - has the same API as [`<vaadin-combo-box-light>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha13/#/elements/vaadin-combo-box-light).\n- `<vaadin-time-picker-overlay>` - has the same API as [`<vaadin-overlay>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha13/#/elements/vaadin-overlay).\n- `<vaadin-time-picker-item>` - has the same API as [`<vaadin-item>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha13/#/elements/vaadin-item).\n- [`<vaadin-input-container>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha13/#/elements/vaadin-input-container) - an internal element wrapping the input.\n\nNote: the `theme` attribute value set on `<vaadin-time-picker>` is\npropagated to the internal components listed above.\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
|
|
12
12
|
"attributes": [
|
|
13
13
|
{
|
|
14
14
|
"name": "disabled",
|
package/web-types.lit.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"$schema": "https://json.schemastore.org/web-types",
|
|
3
3
|
"name": "@vaadin/time-picker",
|
|
4
|
-
"version": "24.2.0-
|
|
4
|
+
"version": "24.2.0-alpha13",
|
|
5
5
|
"description-markup": "markdown",
|
|
6
6
|
"framework": "lit",
|
|
7
7
|
"framework-config": {
|
|
@@ -16,7 +16,7 @@
|
|
|
16
16
|
"elements": [
|
|
17
17
|
{
|
|
18
18
|
"name": "vaadin-time-picker",
|
|
19
|
-
"description": "`<vaadin-time-picker>` is a Web Component providing a time-selection field.\n\n```html\n<vaadin-time-picker></vaadin-time-picker>\n```\n```js\ntimePicker.value = '14:30';\n```\n\nWhen the selected `value` is changed, a `value-changed` event is triggered.\n\n### Styling\n\nThe following custom properties are available for styling:\n\nCustom property | Description | Default\n----------------------------------------|----------------------------|---------\n`--vaadin-field-default-width` | Default width of the field | `12em`\n`--vaadin-combo-box-overlay-max-height` | Max height of the overlay | `65vh`\n\n`<vaadin-time-picker>` provides the same set of shadow DOM parts and state attributes as `<vaadin-text-field>`.\nSee [`<vaadin-text-field>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-
|
|
19
|
+
"description": "`<vaadin-time-picker>` is a Web Component providing a time-selection field.\n\n```html\n<vaadin-time-picker></vaadin-time-picker>\n```\n```js\ntimePicker.value = '14:30';\n```\n\nWhen the selected `value` is changed, a `value-changed` event is triggered.\n\n### Styling\n\nThe following custom properties are available for styling:\n\nCustom property | Description | Default\n----------------------------------------|----------------------------|---------\n`--vaadin-field-default-width` | Default width of the field | `12em`\n`--vaadin-combo-box-overlay-max-height` | Max height of the overlay | `65vh`\n\n`<vaadin-time-picker>` provides the same set of shadow DOM parts and state attributes as `<vaadin-text-field>`.\nSee [`<vaadin-text-field>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha13/#/elements/vaadin-text-field) for the styling documentation.\n\nIn addition to `<vaadin-text-field>` parts, the following parts are available for theming:\n\nPart name | Description\n----------------|----------------\n`toggle-button` | The toggle button\n\nIn addition to `<vaadin-text-field>` state attributes, the following state attributes are available for theming:\n\nAttribute | Description\n----------|------------------------------------------\n`opened` | Set when the time-picker dropdown is open\n\n### Internal components\n\nIn addition to `<vaadin-time-picker>` itself, the following internal\ncomponents are themable:\n\n- `<vaadin-time-picker-combo-box>` - has the same API as [`<vaadin-combo-box-light>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha13/#/elements/vaadin-combo-box-light).\n- `<vaadin-time-picker-overlay>` - has the same API as [`<vaadin-overlay>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha13/#/elements/vaadin-overlay).\n- `<vaadin-time-picker-item>` - has the same API as [`<vaadin-item>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha13/#/elements/vaadin-item).\n- [`<vaadin-input-container>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha13/#/elements/vaadin-input-container) - an internal element wrapping the input.\n\nNote: the `theme` attribute value set on `<vaadin-time-picker>` is\npropagated to the internal components listed above.\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
|
|
20
20
|
"extension": true,
|
|
21
21
|
"attributes": [
|
|
22
22
|
{
|