@vaadin/number-field 24.2.0-alpha9 → 24.2.0-beta2
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-
|
|
3
|
+
"version": "24.2.0-beta2",
|
|
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-
|
|
42
|
-
"@vaadin/component-base": "24.2.0-
|
|
43
|
-
"@vaadin/field-base": "24.2.0-
|
|
44
|
-
"@vaadin/input-container": "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-
|
|
41
|
+
"@vaadin/a11y-base": "24.2.0-beta2",
|
|
42
|
+
"@vaadin/component-base": "24.2.0-beta2",
|
|
43
|
+
"@vaadin/field-base": "24.2.0-beta2",
|
|
44
|
+
"@vaadin/input-container": "24.2.0-beta2",
|
|
45
|
+
"@vaadin/vaadin-lumo-styles": "24.2.0-beta2",
|
|
46
|
+
"@vaadin/vaadin-material-styles": "24.2.0-beta2",
|
|
47
|
+
"@vaadin/vaadin-themable-mixin": "24.2.0-beta2",
|
|
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": "
|
|
59
|
+
"gitHead": "4b852f9a12d4dade7f0fb3c73b7212436cebf310"
|
|
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
|
|
@@ -217,6 +262,7 @@ export const NumberFieldMixin = (superClass) =>
|
|
|
217
262
|
/** @private */
|
|
218
263
|
_setValue(value) {
|
|
219
264
|
this.value = this.inputElement.value = String(parseFloat(value));
|
|
265
|
+
this.validate();
|
|
220
266
|
this.dispatchEvent(new CustomEvent('change', { bubbles: true }));
|
|
221
267
|
}
|
|
222
268
|
|
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import '@vaadin/input-container/src/vaadin-input-container.js';
|
|
7
7
|
import { html, PolymerElement } from '@polymer/polymer';
|
|
8
|
+
import { defineCustomElement } from '@vaadin/component-base/src/define.js';
|
|
8
9
|
import { ElementMixin } from '@vaadin/component-base/src/element-mixin.js';
|
|
9
10
|
import { TooltipController } from '@vaadin/component-base/src/tooltip-controller.js';
|
|
10
11
|
import { inputFieldShared } from '@vaadin/field-base/src/styles/input-field-shared-styles.js';
|
|
@@ -45,6 +46,7 @@ registerStyles('vaadin-number-field', [inputFieldShared, numberFieldStyles], {
|
|
|
45
46
|
* @fires {CustomEvent} value-changed - Fired when the `value` property changes.
|
|
46
47
|
* @fires {CustomEvent} validated - Fired whenever the field is validated.
|
|
47
48
|
*
|
|
49
|
+
* @customElement
|
|
48
50
|
* @extends HTMLElement
|
|
49
51
|
* @mixes NumberFieldMixin
|
|
50
52
|
* @mixes ElementMixin
|
|
@@ -114,7 +116,8 @@ export class NumberField extends NumberFieldMixin(ThemableMixin(ElementMixin(Pol
|
|
|
114
116
|
this._tooltipController = new TooltipController(this);
|
|
115
117
|
this.addController(this._tooltipController);
|
|
116
118
|
this._tooltipController.setPosition('top');
|
|
119
|
+
this._tooltipController.setAriaTarget(this.inputElement);
|
|
117
120
|
}
|
|
118
121
|
}
|
|
119
122
|
|
|
120
|
-
|
|
123
|
+
defineCustomElement(NumberField);
|
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-
|
|
4
|
+
"version": "24.2.0-beta2",
|
|
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-
|
|
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-beta2/#/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",
|
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/number-field",
|
|
4
|
-
"version": "24.2.0-
|
|
4
|
+
"version": "24.2.0-beta2",
|
|
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-
|
|
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-beta2/#/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
|
{
|