@vaadin/time-picker 24.2.0-alpha12 → 24.2.0-alpha14

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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/time-picker",
3
- "version": "24.2.0-alpha12",
3
+ "version": "24.2.0-alpha14",
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-alpha12",
40
- "@vaadin/component-base": "24.2.0-alpha12",
41
- "@vaadin/field-base": "24.2.0-alpha12",
42
- "@vaadin/input-container": "24.2.0-alpha12",
43
- "@vaadin/item": "24.2.0-alpha12",
44
- "@vaadin/overlay": "24.2.0-alpha12",
45
- "@vaadin/vaadin-lumo-styles": "24.2.0-alpha12",
46
- "@vaadin/vaadin-material-styles": "24.2.0-alpha12",
47
- "@vaadin/vaadin-themable-mixin": "24.2.0-alpha12"
39
+ "@vaadin/combo-box": "24.2.0-alpha14",
40
+ "@vaadin/component-base": "24.2.0-alpha14",
41
+ "@vaadin/field-base": "24.2.0-alpha14",
42
+ "@vaadin/input-container": "24.2.0-alpha14",
43
+ "@vaadin/item": "24.2.0-alpha14",
44
+ "@vaadin/overlay": "24.2.0-alpha14",
45
+ "@vaadin/vaadin-lumo-styles": "24.2.0-alpha14",
46
+ "@vaadin/vaadin-material-styles": "24.2.0-alpha14",
47
+ "@vaadin/vaadin-themable-mixin": "24.2.0-alpha14"
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": "854d2809340ef73f765350808bb92ed5c840d147"
58
+ "gitHead": "203a2fda8d879db6ee8bccd7cf5b915de3e5008b"
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,16 @@ class TimePicker extends PatternMixin(InputControlMixin(ThemableMixin(ElementMix
468
460
 
469
461
  /** @private */
470
462
  __onArrowPressWithStep(step) {
471
- const parsedObj = this.i18n.parseTime(this._comboBoxValue);
472
- const objWithStep = this.__addStep(this.__getMsec(parsedObj), step, true);
463
+ const objWithStep = this.__addStep(this.__getMsec(this.__memoValue), step, true);
464
+ this.__memoValue = objWithStep;
465
+
466
+ // Setting `_comboBoxValue` property triggers the synchronous
467
+ // observer where the value can be parsed again, so we set
468
+ // this flag to ensure it does not alter the value.
469
+ this.__useMemo = true;
473
470
  this._comboBoxValue = this.i18n.formatTime(objWithStep);
471
+ this.__useMemo = false;
472
+
474
473
  this.validate();
475
474
  this.__commitPendingValue();
476
475
  }
@@ -597,7 +596,7 @@ class TimePicker extends PatternMixin(InputControlMixin(ThemableMixin(ElementMix
597
596
  * @override
598
597
  */
599
598
  _valueChanged(value, oldValue) {
600
- const parsedObj = this.__parseISO(value);
599
+ const parsedObj = (this.__memoValue = this.__parseISO(value));
601
600
  const newValue = this.__formatISO(parsedObj) || '';
602
601
 
603
602
  // Mark value set programmatically by the user
@@ -629,7 +628,7 @@ class TimePicker extends PatternMixin(InputControlMixin(ThemableMixin(ElementMix
629
628
  return;
630
629
  }
631
630
 
632
- const parsedObj = this.i18n.parseTime(value);
631
+ const parsedObj = this.__useMemo ? this.__memoValue : this.i18n.parseTime(value);
633
632
  const newValue = this.i18n.formatTime(parsedObj) || '';
634
633
 
635
634
  if (parsedObj) {
@@ -674,28 +673,6 @@ class TimePicker extends PatternMixin(InputControlMixin(ThemableMixin(ElementMix
674
673
  this.validate();
675
674
  }
676
675
 
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
676
  /** @private */
700
677
  __updateValue(obj) {
701
678
  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-alpha12",
4
+ "version": "24.2.0-alpha14",
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-alpha12/#/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-alpha12/#/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-alpha12/#/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-alpha12/#/elements/vaadin-item).\n- [`<vaadin-input-container>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha12/#/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.",
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-alpha14/#/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-alpha14/#/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-alpha14/#/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-alpha14/#/elements/vaadin-item).\n- [`<vaadin-input-container>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha14/#/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",
@@ -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-alpha12",
4
+ "version": "24.2.0-alpha14",
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-alpha12/#/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-alpha12/#/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-alpha12/#/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-alpha12/#/elements/vaadin-item).\n- [`<vaadin-input-container>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha12/#/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.",
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-alpha14/#/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-alpha14/#/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-alpha14/#/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-alpha14/#/elements/vaadin-item).\n- [`<vaadin-input-container>`](https://cdn.vaadin.com/vaadin-web-components/24.2.0-alpha14/#/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
  {