@vaadin/field-base 23.2.0-alpha2 → 23.2.0-alpha5
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 +3 -3
- package/src/checked-mixin.d.ts +7 -7
- package/src/checked-mixin.js +11 -1
- package/src/delegate-focus-mixin.d.ts +7 -7
- package/src/delegate-state-mixin.d.ts +2 -2
- package/src/field-aria-controller.js +1 -1
- package/src/field-mixin.d.ts +7 -7
- package/src/field-mixin.js +1 -1
- package/src/input-constraints-mixin.d.ts +8 -8
- package/src/input-constraints-mixin.js +1 -1
- package/src/input-control-mixin.d.ts +15 -15
- package/src/input-field-mixin.d.ts +18 -18
- package/src/input-field-mixin.js +10 -4
- package/src/input-mixin.d.ts +2 -2
- package/src/input-mixin.js +9 -7
- package/src/label-mixin.d.ts +3 -3
- package/src/labelled-input-controller.d.ts +1 -1
- package/src/pattern-mixin.d.ts +9 -9
- package/src/pattern-mixin.js +1 -0
- package/src/shadow-focus-mixin.d.ts +9 -9
- package/src/slot-styles-mixin.d.ts +2 -2
- package/src/slot-target-controller.d.ts +1 -1
- package/src/styles/clear-button-styles.d.ts +1 -1
- package/src/styles/field-shared-styles.d.ts +1 -1
- package/src/styles/input-field-container-styles.d.ts +1 -1
- package/src/styles/input-field-shared-styles.d.ts +1 -1
- package/src/validate-mixin.d.ts +10 -2
- package/src/validate-mixin.js +36 -2
- package/src/virtual-keyboard-controller.d.ts +2 -2
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/field-base",
|
|
3
|
-
"version": "23.2.0-
|
|
3
|
+
"version": "23.2.0-alpha5",
|
|
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-
|
|
35
|
+
"@vaadin/component-base": "23.2.0-alpha5",
|
|
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": "
|
|
43
|
+
"gitHead": "c6247fd741d61096d75a71feda4a1faf88b6f0ce"
|
|
44
44
|
}
|
package/src/checked-mixin.d.ts
CHANGED
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
-
import { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
8
|
-
import { DelegateStateMixinClass } from './delegate-state-mixin.js';
|
|
9
|
-
import { InputMixinClass } from './input-mixin.js';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
+
import type { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
8
|
+
import type { DelegateStateMixinClass } from './delegate-state-mixin.js';
|
|
9
|
+
import type { InputMixinClass } from './input-mixin.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* A mixin to manage the checked state.
|
|
13
13
|
*/
|
|
14
14
|
export declare function CheckedMixin<T extends Constructor<object>>(
|
|
15
15
|
base: T,
|
|
16
|
-
):
|
|
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
|
/**
|
package/src/checked-mixin.js
CHANGED
|
@@ -5,6 +5,7 @@
|
|
|
5
5
|
*/
|
|
6
6
|
import { dedupingMixin } from '@polymer/polymer/lib/utils/mixin.js';
|
|
7
7
|
import { DisabledMixin } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
8
|
+
import { isElementFocused } from '@vaadin/component-base/src/focus-utils.js';
|
|
8
9
|
import { DelegateStateMixin } from './delegate-state-mixin.js';
|
|
9
10
|
import { InputMixin } from './input-mixin.js';
|
|
10
11
|
|
|
@@ -39,11 +40,20 @@ export const CheckedMixin = dedupingMixin(
|
|
|
39
40
|
}
|
|
40
41
|
|
|
41
42
|
/**
|
|
43
|
+
* @param {Event} event
|
|
42
44
|
* @protected
|
|
43
45
|
* @override
|
|
44
46
|
*/
|
|
45
47
|
_onChange(event) {
|
|
46
|
-
|
|
48
|
+
const input = event.target;
|
|
49
|
+
|
|
50
|
+
this._toggleChecked(input.checked);
|
|
51
|
+
|
|
52
|
+
// Clicking the checkbox or radio-button in Safari
|
|
53
|
+
// does not make it focused, so we do it manually.
|
|
54
|
+
if (!isElementFocused(input)) {
|
|
55
|
+
input.focus();
|
|
56
|
+
}
|
|
47
57
|
}
|
|
48
58
|
|
|
49
59
|
/** @protected */
|
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
-
import { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
8
|
-
import { FocusMixinClass } from '@vaadin/component-base/src/focus-mixin.js';
|
|
9
|
-
import { TabindexMixinClass } from '@vaadin/component-base/src/tabindex-mixin.js';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
+
import type { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
8
|
+
import type { FocusMixinClass } from '@vaadin/component-base/src/focus-mixin.js';
|
|
9
|
+
import type { TabindexMixinClass } from '@vaadin/component-base/src/tabindex-mixin.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* A mixin to forward focus to an element in the light DOM.
|
|
13
13
|
*/
|
|
14
14
|
export declare function DelegateFocusMixin<T extends Constructor<HTMLElement>>(
|
|
15
15
|
base: T,
|
|
16
|
-
):
|
|
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
|
/**
|
|
@@ -3,14 +3,14 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* A mixin to delegate properties and attributes to a target element.
|
|
10
10
|
*/
|
|
11
11
|
export declare function DelegateStateMixin<T extends Constructor<HTMLElement>>(
|
|
12
12
|
base: T,
|
|
13
|
-
):
|
|
13
|
+
): Constructor<DelegateStateMixinClass> & T;
|
|
14
14
|
|
|
15
15
|
export declare class DelegateStateMixinClass {
|
|
16
16
|
/**
|
package/src/field-mixin.d.ts
CHANGED
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
-
import { ControllerMixinClass } from '@vaadin/component-base/src/controller-mixin.js';
|
|
8
|
-
import { LabelMixinClass } from './label-mixin.js';
|
|
9
|
-
import { ValidateMixinClass } from './validate-mixin.js';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
+
import type { ControllerMixinClass } from '@vaadin/component-base/src/controller-mixin.js';
|
|
8
|
+
import type { LabelMixinClass } from './label-mixin.js';
|
|
9
|
+
import type { ValidateMixinClass } from './validate-mixin.js';
|
|
10
10
|
|
|
11
11
|
/**
|
|
12
12
|
* A mixin to provide common field logic: label, error message and helper text.
|
|
13
13
|
*/
|
|
14
14
|
export declare function FieldMixin<T extends Constructor<HTMLElement>>(
|
|
15
15
|
superclass: T,
|
|
16
|
-
):
|
|
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
|
/**
|
package/src/field-mixin.js
CHANGED
|
@@ -3,23 +3,23 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
-
import { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
8
|
-
import { DelegateStateMixinClass } from './delegate-state-mixin.js';
|
|
9
|
-
import { InputMixinClass } from './input-mixin.js';
|
|
10
|
-
import { ValidateMixinClass } from './validate-mixin.js';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
+
import type { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
8
|
+
import type { DelegateStateMixinClass } from './delegate-state-mixin.js';
|
|
9
|
+
import type { InputMixinClass } from './input-mixin.js';
|
|
10
|
+
import type { ValidateMixinClass } from './validate-mixin.js';
|
|
11
11
|
|
|
12
12
|
/**
|
|
13
13
|
* A mixin to combine multiple input validation constraints.
|
|
14
14
|
*/
|
|
15
15
|
export declare function InputConstraintsMixin<T extends Constructor<HTMLElement>>(
|
|
16
16
|
base: T,
|
|
17
|
-
):
|
|
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
|
/**
|
|
@@ -3,26 +3,25 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
-
import { ControllerMixinClass } from '@vaadin/component-base/src/controller-mixin.js';
|
|
8
|
-
import { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
9
|
-
import { FocusMixinClass } from '@vaadin/component-base/src/focus-mixin.js';
|
|
10
|
-
import { KeyboardMixinClass } from '@vaadin/component-base/src/keyboard-mixin.js';
|
|
11
|
-
import { DelegateFocusMixinClass } from './delegate-focus-mixin.js';
|
|
12
|
-
import { DelegateStateMixinClass } from './delegate-state-mixin.js';
|
|
13
|
-
import { FieldMixinClass } from './field-mixin.js';
|
|
14
|
-
import { InputConstraintsMixinClass } from './input-constraints-mixin.js';
|
|
15
|
-
import { InputMixinClass } from './input-mixin.js';
|
|
16
|
-
import { LabelMixinClass } from './label-mixin.js';
|
|
17
|
-
import { ValidateMixinClass } from './validate-mixin.js';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
+
import type { ControllerMixinClass } from '@vaadin/component-base/src/controller-mixin.js';
|
|
8
|
+
import type { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
9
|
+
import type { FocusMixinClass } from '@vaadin/component-base/src/focus-mixin.js';
|
|
10
|
+
import type { KeyboardMixinClass } from '@vaadin/component-base/src/keyboard-mixin.js';
|
|
11
|
+
import type { DelegateFocusMixinClass } from './delegate-focus-mixin.js';
|
|
12
|
+
import type { DelegateStateMixinClass } from './delegate-state-mixin.js';
|
|
13
|
+
import type { FieldMixinClass } from './field-mixin.js';
|
|
14
|
+
import type { InputConstraintsMixinClass } from './input-constraints-mixin.js';
|
|
15
|
+
import type { InputMixinClass } from './input-mixin.js';
|
|
16
|
+
import type { LabelMixinClass } from './label-mixin.js';
|
|
17
|
+
import type { ValidateMixinClass } from './validate-mixin.js';
|
|
18
18
|
|
|
19
19
|
/**
|
|
20
20
|
* A mixin to provide shared logic for the editable form input controls.
|
|
21
21
|
*/
|
|
22
22
|
export declare function InputControlMixin<T extends Constructor<HTMLElement>>(
|
|
23
23
|
base: T,
|
|
24
|
-
):
|
|
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
|
/**
|
|
@@ -3,27 +3,26 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
-
import { ControllerMixinClass } from '@vaadin/component-base/src/controller-mixin.js';
|
|
8
|
-
import { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
9
|
-
import { FocusMixinClass } from '@vaadin/component-base/src/focus-mixin.js';
|
|
10
|
-
import { KeyboardMixinClass } from '@vaadin/component-base/src/keyboard-mixin.js';
|
|
11
|
-
import { DelegateFocusMixinClass } from './delegate-focus-mixin.js';
|
|
12
|
-
import { DelegateStateMixinClass } from './delegate-state-mixin.js';
|
|
13
|
-
import { FieldMixinClass } from './field-mixin.js';
|
|
14
|
-
import { InputConstraintsMixinClass } from './input-constraints-mixin.js';
|
|
15
|
-
import { InputControlMixinClass } from './input-control-mixin.js';
|
|
16
|
-
import { InputMixinClass } from './input-mixin.js';
|
|
17
|
-
import { LabelMixinClass } from './label-mixin.js';
|
|
18
|
-
import { ValidateMixinClass } from './validate-mixin.js';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
+
import type { ControllerMixinClass } from '@vaadin/component-base/src/controller-mixin.js';
|
|
8
|
+
import type { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
9
|
+
import type { FocusMixinClass } from '@vaadin/component-base/src/focus-mixin.js';
|
|
10
|
+
import type { KeyboardMixinClass } from '@vaadin/component-base/src/keyboard-mixin.js';
|
|
11
|
+
import type { DelegateFocusMixinClass } from './delegate-focus-mixin.js';
|
|
12
|
+
import type { DelegateStateMixinClass } from './delegate-state-mixin.js';
|
|
13
|
+
import type { FieldMixinClass } from './field-mixin.js';
|
|
14
|
+
import type { InputConstraintsMixinClass } from './input-constraints-mixin.js';
|
|
15
|
+
import type { InputControlMixinClass } from './input-control-mixin.js';
|
|
16
|
+
import type { InputMixinClass } from './input-mixin.js';
|
|
17
|
+
import type { LabelMixinClass } from './label-mixin.js';
|
|
18
|
+
import type { ValidateMixinClass } from './validate-mixin.js';
|
|
19
19
|
|
|
20
20
|
/**
|
|
21
21
|
* A mixin to provide logic for vaadin-text-field and related components.
|
|
22
22
|
*/
|
|
23
23
|
export declare function InputFieldMixin<T extends Constructor<HTMLElement>>(
|
|
24
24
|
base: T,
|
|
25
|
-
):
|
|
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: '
|
|
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: '
|
|
66
|
+
autocapitalize: 'characters' | 'none' | 'off' | 'on' | 'sentences' | 'words' | undefined;
|
|
67
67
|
}
|
package/src/input-field-mixin.js
CHANGED
|
@@ -112,14 +112,20 @@ export const InputFieldMixin = (superclass) =>
|
|
|
112
112
|
}
|
|
113
113
|
|
|
114
114
|
/**
|
|
115
|
-
* Override
|
|
115
|
+
* Override an observer from `InputMixin` to validate the field
|
|
116
116
|
* when a new value is set programmatically.
|
|
117
|
-
*
|
|
117
|
+
*
|
|
118
|
+
* @param {string | undefined} newValue
|
|
119
|
+
* @param {string | undefined} oldValue
|
|
118
120
|
* @protected
|
|
119
121
|
* @override
|
|
120
122
|
*/
|
|
121
|
-
|
|
122
|
-
super.
|
|
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();
|
package/src/input-mixin.d.ts
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
7
|
|
|
8
8
|
/**
|
|
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):
|
|
12
|
+
export declare function InputMixin<T extends Constructor<HTMLElement>>(base: T): Constructor<InputMixinClass> & T;
|
|
13
13
|
|
|
14
14
|
export declare class InputMixinClass {
|
|
15
15
|
/**
|
package/src/input-mixin.js
CHANGED
|
@@ -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
|
-
/**
|
|
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
|
-
*
|
|
127
|
-
* @param {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);
|
package/src/label-mixin.d.ts
CHANGED
|
@@ -3,13 +3,13 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
-
import { LabelController } from './label-controller.js';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
+
import type { LabelController } from './label-controller.js';
|
|
8
8
|
|
|
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):
|
|
12
|
+
export declare function LabelMixin<T extends Constructor<HTMLElement>>(base: T): Constructor<LabelMixinClass> & T;
|
|
13
13
|
|
|
14
14
|
export declare class LabelMixinClass {
|
|
15
15
|
/**
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { ReactiveController } from 'lit';
|
|
6
|
+
import type { ReactiveController } from 'lit';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* A controller for linking a `<label>` element with an `<input>` element.
|
package/src/pattern-mixin.d.ts
CHANGED
|
@@ -3,25 +3,25 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
-
import { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
8
|
-
import { DelegateStateMixinClass } from './delegate-state-mixin.js';
|
|
9
|
-
import { InputConstraintsMixinClass } from './input-constraints-mixin.js';
|
|
10
|
-
import { InputMixinClass } from './input-mixin.js';
|
|
11
|
-
import { ValidateMixinClass } from './validate-mixin.js';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
+
import type { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
8
|
+
import type { DelegateStateMixinClass } from './delegate-state-mixin.js';
|
|
9
|
+
import type { InputConstraintsMixinClass } from './input-constraints-mixin.js';
|
|
10
|
+
import type { InputMixinClass } from './input-mixin.js';
|
|
11
|
+
import type { ValidateMixinClass } from './validate-mixin.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* A mixin to provide `pattern` and `preventInvalidInput` properties.
|
|
15
15
|
*/
|
|
16
16
|
export declare function PatternMixin<T extends Constructor<HTMLElement>>(
|
|
17
17
|
base: T,
|
|
18
|
-
):
|
|
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
|
/**
|
package/src/pattern-mixin.js
CHANGED
|
@@ -3,21 +3,21 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
-
import { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
8
|
-
import { FocusMixinClass } from '@vaadin/component-base/src/focus-mixin.js';
|
|
9
|
-
import { KeyboardMixinClass } from '@vaadin/component-base/src/keyboard-mixin.js';
|
|
10
|
-
import { TabindexMixinClass } from '@vaadin/component-base/src/tabindex-mixin.js';
|
|
11
|
-
import { DelegateFocusMixinClass } from './delegate-focus-mixin.js';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
|
+
import type { DisabledMixinClass } from '@vaadin/component-base/src/disabled-mixin.js';
|
|
8
|
+
import type { FocusMixinClass } from '@vaadin/component-base/src/focus-mixin.js';
|
|
9
|
+
import type { KeyboardMixinClass } from '@vaadin/component-base/src/keyboard-mixin.js';
|
|
10
|
+
import type { TabindexMixinClass } from '@vaadin/component-base/src/tabindex-mixin.js';
|
|
11
|
+
import type { DelegateFocusMixinClass } from './delegate-focus-mixin.js';
|
|
12
12
|
|
|
13
13
|
/**
|
|
14
14
|
* A mixin to forward focus to an element in the shadow DOM.
|
|
15
15
|
*/
|
|
16
16
|
export declare function ShadowFocusMixin<T extends Constructor<HTMLElement>>(
|
|
17
17
|
base: T,
|
|
18
|
-
):
|
|
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;
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Mixin to insert styles into the outer scope to handle slotted components.
|
|
@@ -11,7 +11,7 @@ import { Constructor } from '@open-wc/dedupe-mixin';
|
|
|
11
11
|
*/
|
|
12
12
|
export declare function SlotStylesMixin<T extends Constructor<HTMLElement>>(
|
|
13
13
|
base: T,
|
|
14
|
-
):
|
|
14
|
+
): Constructor<SlotStylesMixinClass> & T;
|
|
15
15
|
|
|
16
16
|
export declare class SlotStylesMixinClass {
|
|
17
17
|
/**
|
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { ReactiveController } from 'lit';
|
|
6
|
+
import type { ReactiveController } from 'lit';
|
|
7
7
|
|
|
8
8
|
export class SlotTargetController implements ReactiveController {
|
|
9
9
|
/**
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd..
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { CSSResult } from 'lit';
|
|
6
|
+
import type { CSSResult } from 'lit';
|
|
7
7
|
|
|
8
8
|
export const inputFieldContainer: CSSResult;
|
|
@@ -3,6 +3,6 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd..
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { CSSResult } from 'lit';
|
|
6
|
+
import type { CSSResult } from 'lit';
|
|
7
7
|
|
|
8
8
|
export const inputFieldShared: CSSResult;
|
package/src/validate-mixin.d.ts
CHANGED
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { Constructor } from '@open-wc/dedupe-mixin';
|
|
6
|
+
import type { Constructor } from '@open-wc/dedupe-mixin';
|
|
7
7
|
|
|
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):
|
|
11
|
+
export declare function ValidateMixin<T extends Constructor<HTMLElement>>(base: T): Constructor<ValidateMixinClass> & T;
|
|
12
12
|
|
|
13
13
|
export declare class ValidateMixinClass {
|
|
14
14
|
/**
|
|
@@ -30,4 +30,12 @@ export declare class ValidateMixinClass {
|
|
|
30
30
|
* Returns true if the field value satisfies all constraints (if any).
|
|
31
31
|
*/
|
|
32
32
|
checkValidity(): boolean;
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Fired whenever the field is validated.
|
|
36
|
+
*
|
|
37
|
+
* @event validated
|
|
38
|
+
* @param {Object} detail
|
|
39
|
+
* @param {boolean} detail.valid the result of the validation.
|
|
40
|
+
*/
|
|
33
41
|
}
|
package/src/validate-mixin.js
CHANGED
|
@@ -36,12 +36,17 @@ export const ValidateMixin = dedupingMixin(
|
|
|
36
36
|
}
|
|
37
37
|
|
|
38
38
|
/**
|
|
39
|
-
*
|
|
39
|
+
* Validates the field and sets the `invalid` property based on the result.
|
|
40
|
+
*
|
|
41
|
+
* The method fires a `validated` event with the result of the validation.
|
|
40
42
|
*
|
|
41
43
|
* @return {boolean} True if the value is valid.
|
|
42
44
|
*/
|
|
43
45
|
validate() {
|
|
44
|
-
|
|
46
|
+
const isValid = this.checkValidity();
|
|
47
|
+
this._setInvalid(!isValid);
|
|
48
|
+
this.dispatchEvent(new CustomEvent('validated', { detail: { valid: isValid } }));
|
|
49
|
+
return isValid;
|
|
45
50
|
}
|
|
46
51
|
|
|
47
52
|
/**
|
|
@@ -52,5 +57,34 @@ export const ValidateMixin = dedupingMixin(
|
|
|
52
57
|
checkValidity() {
|
|
53
58
|
return !this.required || !!this.value;
|
|
54
59
|
}
|
|
60
|
+
|
|
61
|
+
/**
|
|
62
|
+
* @param {boolean} invalid
|
|
63
|
+
* @protected
|
|
64
|
+
*/
|
|
65
|
+
_setInvalid(invalid) {
|
|
66
|
+
if (this._shouldSetInvalid(invalid)) {
|
|
67
|
+
this.invalid = invalid;
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
/**
|
|
72
|
+
* Override this method to define whether the given `invalid` state should be set.
|
|
73
|
+
*
|
|
74
|
+
* @param {boolean} _invalid
|
|
75
|
+
* @return {boolean}
|
|
76
|
+
* @protected
|
|
77
|
+
*/
|
|
78
|
+
_shouldSetInvalid(_invalid) {
|
|
79
|
+
return true;
|
|
80
|
+
}
|
|
81
|
+
|
|
82
|
+
/**
|
|
83
|
+
* Fired whenever the field is validated.
|
|
84
|
+
*
|
|
85
|
+
* @event validated
|
|
86
|
+
* @param {Object} detail
|
|
87
|
+
* @param {boolean} detail.valid the result of the validation.
|
|
88
|
+
*/
|
|
55
89
|
},
|
|
56
90
|
);
|
|
@@ -3,12 +3,12 @@
|
|
|
3
3
|
* Copyright (c) 2021 - 2022 Vaadin Ltd.
|
|
4
4
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
5
5
|
*/
|
|
6
|
-
import { ReactiveController } from 'lit';
|
|
6
|
+
import type { ReactiveController } from 'lit';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* A controller which prevents the virtual keyboard from showing up on mobile devices
|
|
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 }
|
|
13
|
+
constructor(host: HTMLElement & { inputElement?: HTMLElement; opened: boolean });
|
|
14
14
|
}
|