@vaadin/field-base 23.2.0-alpha3 → 23.2.0-alpha4

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/field-base",
3
- "version": "23.2.0-alpha3",
3
+ "version": "23.2.0-alpha4",
4
4
  "publishConfig": {
5
5
  "access": "public"
6
6
  },
@@ -32,7 +32,7 @@
32
32
  "dependencies": {
33
33
  "@open-wc/dedupe-mixin": "^1.3.0",
34
34
  "@polymer/polymer": "^3.0.0",
35
- "@vaadin/component-base": "23.2.0-alpha3",
35
+ "@vaadin/component-base": "23.2.0-alpha4",
36
36
  "lit": "^2.0.0"
37
37
  },
38
38
  "devDependencies": {
@@ -40,5 +40,5 @@
40
40
  "@vaadin/testing-helpers": "^0.3.2",
41
41
  "sinon": "^13.0.2"
42
42
  },
43
- "gitHead": "06e5875be93ca50da2846dafc65a8531010c0576"
43
+ "gitHead": "cbf5f1d0f38ac9b81c65cf9ef5660182e176e598"
44
44
  }
@@ -13,11 +13,11 @@ import type { InputMixinClass } from './input-mixin.js';
13
13
  */
14
14
  export declare function CheckedMixin<T extends Constructor<object>>(
15
15
  base: T,
16
- ): T &
17
- Constructor<CheckedMixinClass> &
16
+ ): Constructor<CheckedMixinClass> &
18
17
  Constructor<DelegateStateMixinClass> &
19
18
  Constructor<DisabledMixinClass> &
20
- Constructor<InputMixinClass>;
19
+ Constructor<InputMixinClass> &
20
+ T;
21
21
 
22
22
  export declare class CheckedMixinClass {
23
23
  /**
@@ -39,6 +39,7 @@ export const CheckedMixin = dedupingMixin(
39
39
  }
40
40
 
41
41
  /**
42
+ * @param {Event} event
42
43
  * @protected
43
44
  * @override
44
45
  */
@@ -13,11 +13,11 @@ import type { TabindexMixinClass } from '@vaadin/component-base/src/tabindex-mix
13
13
  */
14
14
  export declare function DelegateFocusMixin<T extends Constructor<HTMLElement>>(
15
15
  base: T,
16
- ): T &
17
- Constructor<DelegateFocusMixinClass> &
16
+ ): Constructor<DelegateFocusMixinClass> &
18
17
  Constructor<DisabledMixinClass> &
19
18
  Constructor<FocusMixinClass> &
20
- Constructor<TabindexMixinClass>;
19
+ Constructor<TabindexMixinClass> &
20
+ T;
21
21
 
22
22
  export declare class DelegateFocusMixinClass {
23
23
  /**
@@ -10,7 +10,7 @@ import type { Constructor } from '@open-wc/dedupe-mixin';
10
10
  */
11
11
  export declare function DelegateStateMixin<T extends Constructor<HTMLElement>>(
12
12
  base: T,
13
- ): T & Constructor<DelegateStateMixinClass>;
13
+ ): Constructor<DelegateStateMixinClass> & T;
14
14
 
15
15
  export declare class DelegateStateMixinClass {
16
16
  /**
@@ -139,7 +139,7 @@ export class FieldAriaController {
139
139
  return;
140
140
  }
141
141
 
142
- if (!this.__isGroupField) {
142
+ if (['input', 'textarea'].includes(this.__target.localName)) {
143
143
  // Native <input> or <textarea>, required is enough
144
144
  return;
145
145
  }
@@ -13,11 +13,11 @@ import type { ValidateMixinClass } from './validate-mixin.js';
13
13
  */
14
14
  export declare function FieldMixin<T extends Constructor<HTMLElement>>(
15
15
  superclass: T,
16
- ): T &
17
- Constructor<ControllerMixinClass> &
16
+ ): Constructor<ControllerMixinClass> &
18
17
  Constructor<FieldMixinClass> &
19
18
  Constructor<LabelMixinClass> &
20
- Constructor<ValidateMixinClass>;
19
+ Constructor<ValidateMixinClass> &
20
+ T;
21
21
 
22
22
  export declare class FieldMixinClass {
23
23
  /**
@@ -164,7 +164,7 @@ export const FieldMixin = (superclass) =>
164
164
  }
165
165
 
166
166
  /**
167
- * @param {boolean} required
167
+ * @param {boolean} invalid
168
168
  * @protected
169
169
  */
170
170
  _invalidChanged(invalid) {
@@ -14,12 +14,12 @@ import type { ValidateMixinClass } from './validate-mixin.js';
14
14
  */
15
15
  export declare function InputConstraintsMixin<T extends Constructor<HTMLElement>>(
16
16
  base: T,
17
- ): T &
18
- Constructor<DelegateStateMixinClass> &
17
+ ): Constructor<DelegateStateMixinClass> &
19
18
  Constructor<DisabledMixinClass> &
20
19
  Constructor<InputConstraintsMixinClass> &
21
20
  Constructor<InputMixinClass> &
22
- Constructor<ValidateMixinClass>;
21
+ Constructor<ValidateMixinClass> &
22
+ T;
23
23
 
24
24
  export declare class InputConstraintsMixinClass {
25
25
  /**
@@ -21,8 +21,7 @@ import type { ValidateMixinClass } from './validate-mixin.js';
21
21
  */
22
22
  export declare function InputControlMixin<T extends Constructor<HTMLElement>>(
23
23
  base: T,
24
- ): T &
25
- Constructor<ControllerMixinClass> &
24
+ ): Constructor<ControllerMixinClass> &
26
25
  Constructor<DelegateFocusMixinClass> &
27
26
  Constructor<DelegateStateMixinClass> &
28
27
  Constructor<DisabledMixinClass> &
@@ -33,7 +32,8 @@ export declare function InputControlMixin<T extends Constructor<HTMLElement>>(
33
32
  Constructor<InputMixinClass> &
34
33
  Constructor<KeyboardMixinClass> &
35
34
  Constructor<LabelMixinClass> &
36
- Constructor<ValidateMixinClass>;
35
+ Constructor<ValidateMixinClass> &
36
+ T;
37
37
 
38
38
  export declare class InputControlMixinClass {
39
39
  /**
@@ -22,8 +22,7 @@ import type { ValidateMixinClass } from './validate-mixin.js';
22
22
  */
23
23
  export declare function InputFieldMixin<T extends Constructor<HTMLElement>>(
24
24
  base: T,
25
- ): T &
26
- Constructor<ControllerMixinClass> &
25
+ ): Constructor<ControllerMixinClass> &
27
26
  Constructor<DelegateFocusMixinClass> &
28
27
  Constructor<DelegateStateMixinClass> &
29
28
  Constructor<DisabledMixinClass> &
@@ -35,7 +34,8 @@ export declare function InputFieldMixin<T extends Constructor<HTMLElement>>(
35
34
  Constructor<InputMixinClass> &
36
35
  Constructor<KeyboardMixinClass> &
37
36
  Constructor<LabelMixinClass> &
38
- Constructor<ValidateMixinClass>;
37
+ Constructor<ValidateMixinClass> &
38
+ T;
39
39
 
40
40
  export declare class InputFieldMixinClass {
41
41
  /**
@@ -52,7 +52,7 @@ export declare class InputFieldMixinClass {
52
52
  * on: Enable autocorrection.
53
53
  * off: Disable autocorrection.
54
54
  */
55
- autocorrect: 'on' | 'off' | undefined;
55
+ autocorrect: 'off' | 'on' | undefined;
56
56
 
57
57
  /**
58
58
  * This is a property supported by Safari and Chrome that is used to control whether
@@ -63,5 +63,5 @@ export declare class InputFieldMixinClass {
63
63
  * sentences: Sentences capitalization.
64
64
  * none: No capitalization.
65
65
  */
66
- autocapitalize: 'on' | 'off' | 'none' | 'characters' | 'words' | 'sentences' | undefined;
66
+ autocapitalize: 'characters' | 'none' | 'off' | 'on' | 'sentences' | 'words' | undefined;
67
67
  }
@@ -112,14 +112,20 @@ export const InputFieldMixin = (superclass) =>
112
112
  }
113
113
 
114
114
  /**
115
- * Override a method from `InputMixin` to validate the field
115
+ * Override an observer from `InputMixin` to validate the field
116
116
  * when a new value is set programmatically.
117
- * @param {string} value
117
+ *
118
+ * @param {string | undefined} newValue
119
+ * @param {string | undefined} oldValue
118
120
  * @protected
119
121
  * @override
120
122
  */
121
- _forwardInputValue(value) {
122
- super._forwardInputValue(value);
123
+ _valueChanged(newValue, oldValue) {
124
+ super._valueChanged(newValue, oldValue);
125
+
126
+ if (oldValue === undefined) {
127
+ return;
128
+ }
123
129
 
124
130
  if (this.invalid) {
125
131
  this.validate();
@@ -9,7 +9,7 @@ import type { Constructor } from '@open-wc/dedupe-mixin';
9
9
  * A mixin to store the reference to an input element
10
10
  * and add input and change event listeners to it.
11
11
  */
12
- export declare function InputMixin<T extends Constructor<HTMLElement>>(base: T): T & Constructor<InputMixinClass>;
12
+ export declare function InputMixin<T extends Constructor<HTMLElement>>(base: T): Constructor<InputMixinClass> & T;
13
13
 
14
14
  export declare class InputMixinClass {
15
15
  /**
@@ -73,6 +73,7 @@ export const InputMixin = dedupingMixin(
73
73
  * Add event listeners to the input element instance.
74
74
  * Override this method to add custom listeners.
75
75
  * @param {!HTMLElement} input
76
+ * @protected
76
77
  */
77
78
  _addInputListeners(input) {
78
79
  input.addEventListener('input', this._boundOnInput);
@@ -82,6 +83,7 @@ export const InputMixin = dedupingMixin(
82
83
  /**
83
84
  * Remove event listeners from the input element instance.
84
85
  * @param {!HTMLElement} input
86
+ * @protected
85
87
  */
86
88
  _removeInputListeners(input) {
87
89
  input.removeEventListener('input', this._boundOnInput);
@@ -95,7 +97,6 @@ export const InputMixin = dedupingMixin(
95
97
  * for example to skip this in certain conditions.
96
98
  * @param {string} value
97
99
  * @protected
98
- * @override
99
100
  */
100
101
  _forwardInputValue(value) {
101
102
  // Value might be set before an input element is initialized.
@@ -112,7 +113,11 @@ export const InputMixin = dedupingMixin(
112
113
  }
113
114
  }
114
115
 
115
- /** @protected */
116
+ /**
117
+ * @param {HTMLElement | undefined} input
118
+ * @param {HTMLElement | undefined} oldInput
119
+ * @protected
120
+ */
116
121
  _inputElementChanged(input, oldInput) {
117
122
  if (input) {
118
123
  this._addInputListeners(input);
@@ -123,10 +128,9 @@ export const InputMixin = dedupingMixin(
123
128
 
124
129
  /**
125
130
  * An input event listener used to update the field value.
126
- * Override this method with an actual implementation.
127
- * @param {Event} _event
131
+ *
132
+ * @param {Event} event
128
133
  * @protected
129
- * @override
130
134
  */
131
135
  _onInput(event) {
132
136
  // Ignore fake input events e.g. used by clear button.
@@ -140,7 +144,6 @@ export const InputMixin = dedupingMixin(
140
144
  * Override this method with an actual implementation.
141
145
  * @param {Event} _event
142
146
  * @protected
143
- * @override
144
147
  */
145
148
  _onChange(_event) {}
146
149
 
@@ -158,7 +161,6 @@ export const InputMixin = dedupingMixin(
158
161
  * @param {string | undefined} newVal
159
162
  * @param {string | undefined} oldVal
160
163
  * @protected
161
- * @override
162
164
  */
163
165
  _valueChanged(newVal, oldVal) {
164
166
  this._toggleHasValue(newVal !== '' && newVal != null);
@@ -9,7 +9,7 @@ import type { LabelController } from './label-controller.js';
9
9
  /**
10
10
  * A mixin to provide label via corresponding property or named slot.
11
11
  */
12
- export declare function LabelMixin<T extends Constructor<HTMLElement>>(base: T): T & Constructor<LabelMixinClass>;
12
+ export declare function LabelMixin<T extends Constructor<HTMLElement>>(base: T): Constructor<LabelMixinClass> & T;
13
13
 
14
14
  export declare class LabelMixinClass {
15
15
  /**
@@ -15,13 +15,13 @@ import type { ValidateMixinClass } from './validate-mixin.js';
15
15
  */
16
16
  export declare function PatternMixin<T extends Constructor<HTMLElement>>(
17
17
  base: T,
18
- ): T &
19
- Constructor<DelegateStateMixinClass> &
18
+ ): Constructor<DelegateStateMixinClass> &
20
19
  Constructor<DisabledMixinClass> &
21
20
  Constructor<InputConstraintsMixinClass> &
22
21
  Constructor<InputMixinClass> &
23
22
  Constructor<PatternMixinClass> &
24
- Constructor<ValidateMixinClass>;
23
+ Constructor<ValidateMixinClass> &
24
+ T;
25
25
 
26
26
  export declare class PatternMixinClass {
27
27
  /**
@@ -64,6 +64,7 @@ export const PatternMixin = (superclass) =>
64
64
  /**
65
65
  * @param {Event} event
66
66
  * @protected
67
+ * @override
67
68
  */
68
69
  _onInput(event) {
69
70
  this._checkInputValue();
@@ -15,9 +15,9 @@ import type { DelegateFocusMixinClass } from './delegate-focus-mixin.js';
15
15
  */
16
16
  export declare function ShadowFocusMixin<T extends Constructor<HTMLElement>>(
17
17
  base: T,
18
- ): T &
19
- Constructor<DelegateFocusMixinClass> &
18
+ ): Constructor<DelegateFocusMixinClass> &
20
19
  Constructor<DisabledMixinClass> &
21
20
  Constructor<FocusMixinClass> &
22
21
  Constructor<KeyboardMixinClass> &
23
- Constructor<TabindexMixinClass>;
22
+ Constructor<TabindexMixinClass> &
23
+ T;
@@ -11,7 +11,7 @@ import type { Constructor } from '@open-wc/dedupe-mixin';
11
11
  */
12
12
  export declare function SlotStylesMixin<T extends Constructor<HTMLElement>>(
13
13
  base: T,
14
- ): T & Constructor<SlotStylesMixinClass>;
14
+ ): Constructor<SlotStylesMixinClass> & T;
15
15
 
16
16
  export declare class SlotStylesMixinClass {
17
17
  /**
@@ -8,7 +8,7 @@ import type { Constructor } from '@open-wc/dedupe-mixin';
8
8
  /**
9
9
  * A mixin to provide required state and validation logic.
10
10
  */
11
- export declare function ValidateMixin<T extends Constructor<HTMLElement>>(base: T): T & Constructor<ValidateMixinClass>;
11
+ export declare function ValidateMixin<T extends Constructor<HTMLElement>>(base: T): Constructor<ValidateMixinClass> & T;
12
12
 
13
13
  export declare class ValidateMixinClass {
14
14
  /**
@@ -10,5 +10,5 @@ import type { ReactiveController } from 'lit';
10
10
  * when the field's overlay is closed.
11
11
  */
12
12
  export class VirtualKeyboardController implements ReactiveController {
13
- constructor(host: { inputElement?: HTMLElement; opened: boolean } & HTMLElement);
13
+ constructor(host: HTMLElement & { inputElement?: HTMLElement; opened: boolean });
14
14
  }