@vaadin/number-field 24.2.0-alpha10 → 24.2.0-alpha12

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/number-field",
3
- "version": "24.2.0-alpha10",
3
+ "version": "24.2.0-alpha12",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -38,13 +38,13 @@
38
38
  "dependencies": {
39
39
  "@open-wc/dedupe-mixin": "^1.3.0",
40
40
  "@polymer/polymer": "^3.0.0",
41
- "@vaadin/a11y-base": "24.2.0-alpha10",
42
- "@vaadin/component-base": "24.2.0-alpha10",
43
- "@vaadin/field-base": "24.2.0-alpha10",
44
- "@vaadin/input-container": "24.2.0-alpha10",
45
- "@vaadin/vaadin-lumo-styles": "24.2.0-alpha10",
46
- "@vaadin/vaadin-material-styles": "24.2.0-alpha10",
47
- "@vaadin/vaadin-themable-mixin": "24.2.0-alpha10",
41
+ "@vaadin/a11y-base": "24.2.0-alpha12",
42
+ "@vaadin/component-base": "24.2.0-alpha12",
43
+ "@vaadin/field-base": "24.2.0-alpha12",
44
+ "@vaadin/input-container": "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",
48
48
  "lit": "^2.0.0"
49
49
  },
50
50
  "devDependencies": {
@@ -56,5 +56,5 @@
56
56
  "web-types.json",
57
57
  "web-types.lit.json"
58
58
  ],
59
- "gitHead": "ca16b5f88b00ae05fb6d7c7e9874525048e389f0"
59
+ "gitHead": "854d2809340ef73f765350808bb92ed5c840d147"
60
60
  }
@@ -10,6 +10,7 @@ import type { FocusMixinClass } from '@vaadin/a11y-base/src/focus-mixin.js';
10
10
  import type { KeyboardMixinClass } from '@vaadin/a11y-base/src/keyboard-mixin.js';
11
11
  import type { ControllerMixinClass } from '@vaadin/component-base/src/controller-mixin.js';
12
12
  import type { DelegateStateMixinClass } from '@vaadin/component-base/src/delegate-state-mixin.js';
13
+ import type { SlotStylesMixinClass } from '@vaadin/component-base/src/slot-styles-mixin.js';
13
14
  import type { ClearButtonMixinClass } from '@vaadin/field-base/src/clear-button-mixin.js';
14
15
  import type { FieldMixinClass } from '@vaadin/field-base/src/field-mixin.js';
15
16
  import type { InputConstraintsMixinClass } from '@vaadin/field-base/src/input-constraints-mixin.js';
@@ -17,7 +18,6 @@ import type { InputControlMixinClass } from '@vaadin/field-base/src/input-contro
17
18
  import type { InputFieldMixinClass } from '@vaadin/field-base/src/input-field-mixin.js';
18
19
  import type { InputMixinClass } from '@vaadin/field-base/src/input-mixin.js';
19
20
  import type { LabelMixinClass } from '@vaadin/field-base/src/label-mixin.js';
20
- import type { SlotStylesMixinClass } from '@vaadin/field-base/src/slot-styles-mixin.js';
21
21
  import type { ValidateMixinClass } from '@vaadin/field-base/src/validate-mixin.js';
22
22
 
23
23
  /**
@@ -66,6 +66,7 @@ export const NumberFieldMixin = (superClass) =>
66
66
  constructor() {
67
67
  super();
68
68
  this._setType('number');
69
+ this.__onWheel = this.__onWheel.bind(this);
69
70
  }
70
71
 
71
72
  /** @protected */
@@ -134,6 +135,50 @@ export const NumberFieldMixin = (superClass) =>
134
135
  return !this.invalid;
135
136
  }
136
137
 
138
+ /**
139
+ * Override the method from `InputMixin` to add
140
+ * a wheel event listener to the input element.
141
+ *
142
+ * @param {HTMLElement} input
143
+ * @override
144
+ * @protected
145
+ */
146
+ _addInputListeners(input) {
147
+ super._addInputListeners(input);
148
+ input.addEventListener('wheel', this.__onWheel);
149
+ }
150
+
151
+ /**
152
+ * Override the method from `InputMixin` to remove
153
+ * the wheel event listener from the input element.
154
+ *
155
+ * @param {HTMLElement} input
156
+ * @override
157
+ * @protected
158
+ */
159
+ _removeInputListeners(input) {
160
+ super._removeInputListeners(input);
161
+ input.removeEventListener('wheel', this.__onWheel);
162
+ }
163
+
164
+ /**
165
+ * Prevents default browser behavior for wheel events on the input element
166
+ * when it's focused. More precisely, this prevents the browser from attempting
167
+ * to increment or decrement the value when the mouse wheel is used within
168
+ * the input element.
169
+ *
170
+ * CAVEAT: As a side-effect, this also prevents page scrolling when
171
+ * the pointer is positioned over the field and the field is focused.
172
+ *
173
+ * @param {WheelEvent} event
174
+ * @private
175
+ */
176
+ __onWheel(event) {
177
+ if (this.hasAttribute('focused')) {
178
+ event.preventDefault();
179
+ }
180
+ }
181
+
137
182
  /** @protected */
138
183
  _onDecreaseButtonTouchend(e) {
139
184
  // Cancel the following click and focus events
package/web-types.json CHANGED
@@ -1,14 +1,14 @@
1
1
  {
2
2
  "$schema": "https://json.schemastore.org/web-types",
3
3
  "name": "@vaadin/number-field",
4
- "version": "24.2.0-alpha10",
4
+ "version": "24.2.0-alpha12",
5
5
  "description-markup": "markdown",
6
6
  "contributions": {
7
7
  "html": {
8
8
  "elements": [
9
9
  {
10
10
  "name": "vaadin-number-field",
11
- "description": "`<vaadin-number-field>` is an input field web component that only accepts numeric input.\n\n```html\n<vaadin-number-field label=\"Balance\"></vaadin-number-field>\n```\n\n### Styling\n\n`<vaadin-number-field>` 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-alpha10/#/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`increase-button` | Increase (\"plus\") button\n`decrease-button` | Decrease (\"minus\") button\n\nNote, the `input-prevented` state attribute is only supported when `allowedCharPattern` is set.\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
11
+ "description": "`<vaadin-number-field>` is an input field web component that only accepts numeric input.\n\n```html\n<vaadin-number-field label=\"Balance\"></vaadin-number-field>\n```\n\n### Styling\n\n`<vaadin-number-field>` 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`increase-button` | Increase (\"plus\") button\n`decrease-button` | Decrease (\"minus\") button\n\nNote, the `input-prevented` state attribute is only supported when `allowedCharPattern` is set.\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/number-field",
4
- "version": "24.2.0-alpha10",
4
+ "version": "24.2.0-alpha12",
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-number-field",
19
- "description": "`<vaadin-number-field>` is an input field web component that only accepts numeric input.\n\n```html\n<vaadin-number-field label=\"Balance\"></vaadin-number-field>\n```\n\n### Styling\n\n`<vaadin-number-field>` 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-alpha10/#/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`increase-button` | Increase (\"plus\") button\n`decrease-button` | Decrease (\"minus\") button\n\nNote, the `input-prevented` state attribute is only supported when `allowedCharPattern` is set.\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
19
+ "description": "`<vaadin-number-field>` is an input field web component that only accepts numeric input.\n\n```html\n<vaadin-number-field label=\"Balance\"></vaadin-number-field>\n```\n\n### Styling\n\n`<vaadin-number-field>` 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`increase-button` | Increase (\"plus\") button\n`decrease-button` | Decrease (\"minus\") button\n\nNote, the `input-prevented` state attribute is only supported when `allowedCharPattern` is set.\n\nSee [Styling Components](https://vaadin.com/docs/latest/styling/styling-components) documentation.",
20
20
  "extension": true,
21
21
  "attributes": [
22
22
  {