@vaadin/login 23.1.12 → 23.1.13
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 +10 -10
- package/src/vaadin-login-form.d.ts +16 -1
- package/src/vaadin-login-form.js +16 -27
- package/src/vaadin-login-overlay.d.ts +24 -0
- package/src/vaadin-login-overlay.js +3 -0
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@vaadin/login",
|
|
3
|
-
"version": "23.1.
|
|
3
|
+
"version": "23.1.13",
|
|
4
4
|
"publishConfig": {
|
|
5
5
|
"access": "public"
|
|
6
6
|
},
|
|
@@ -35,19 +35,19 @@
|
|
|
35
35
|
"dependencies": {
|
|
36
36
|
"@open-wc/dedupe-mixin": "^1.3.0",
|
|
37
37
|
"@polymer/polymer": "^3.0.0",
|
|
38
|
-
"@vaadin/button": "~23.1.
|
|
39
|
-
"@vaadin/component-base": "~23.1.
|
|
40
|
-
"@vaadin/password-field": "~23.1.
|
|
41
|
-
"@vaadin/text-field": "~23.1.
|
|
42
|
-
"@vaadin/vaadin-lumo-styles": "~23.1.
|
|
43
|
-
"@vaadin/vaadin-material-styles": "~23.1.
|
|
44
|
-
"@vaadin/vaadin-overlay": "~23.1.
|
|
45
|
-
"@vaadin/vaadin-themable-mixin": "~23.1.
|
|
38
|
+
"@vaadin/button": "~23.1.13",
|
|
39
|
+
"@vaadin/component-base": "~23.1.13",
|
|
40
|
+
"@vaadin/password-field": "~23.1.13",
|
|
41
|
+
"@vaadin/text-field": "~23.1.13",
|
|
42
|
+
"@vaadin/vaadin-lumo-styles": "~23.1.13",
|
|
43
|
+
"@vaadin/vaadin-material-styles": "~23.1.13",
|
|
44
|
+
"@vaadin/vaadin-overlay": "~23.1.13",
|
|
45
|
+
"@vaadin/vaadin-themable-mixin": "~23.1.13"
|
|
46
46
|
},
|
|
47
47
|
"devDependencies": {
|
|
48
48
|
"@esm-bundle/chai": "^4.3.4",
|
|
49
49
|
"@vaadin/testing-helpers": "^0.3.2",
|
|
50
50
|
"sinon": "^13.0.2"
|
|
51
51
|
},
|
|
52
|
-
"gitHead": "
|
|
52
|
+
"gitHead": "f1000c776f3644ed1968b7095ad59a65b1e306ff"
|
|
53
53
|
}
|
|
@@ -8,12 +8,26 @@ import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mix
|
|
|
8
8
|
import { LoginMixin } from './vaadin-login-mixin.js';
|
|
9
9
|
export { LoginI18n } from './vaadin-login-mixin.js';
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Fired when the `disabled` property changes.
|
|
13
|
+
*/
|
|
14
|
+
export type LoginFormDisabledChangedEvent = CustomEvent<{ value: boolean }>;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Fired when the `error` property changes.
|
|
18
|
+
*/
|
|
19
|
+
export type LoginFormErrorChangedEvent = CustomEvent<{ value: boolean }>;
|
|
20
|
+
|
|
11
21
|
/**
|
|
12
22
|
* Fired when a user submits the login.
|
|
13
23
|
*/
|
|
14
24
|
export type LoginFormLoginEvent = CustomEvent<{ username: string; password: string }>;
|
|
15
25
|
|
|
16
26
|
export interface LoginFormCustomEventMap {
|
|
27
|
+
'disabled-changed': LoginFormDisabledChangedEvent;
|
|
28
|
+
|
|
29
|
+
'error-changed': LoginFormErrorChangedEvent;
|
|
30
|
+
|
|
17
31
|
'forgot-password': Event;
|
|
18
32
|
|
|
19
33
|
login: LoginFormLoginEvent;
|
|
@@ -46,11 +60,12 @@ export interface LoginFormEventMap extends HTMLElementEventMap, LoginFormCustomE
|
|
|
46
60
|
* `error-message`| Container for error message, contains error-message-title and error-message-description parts. Hidden by default.
|
|
47
61
|
* `error-message-title` | Container for error message title
|
|
48
62
|
* `error-message-description` | Container for error message description
|
|
49
|
-
* `error-message-description` | Container for error message description
|
|
50
63
|
* `footer` | Container additional information text from `i18n` object
|
|
51
64
|
*
|
|
52
65
|
* See [Styling Components](https://vaadin.com/docs/latest/ds/customization/styling-components) documentation.
|
|
53
66
|
*
|
|
67
|
+
* @fires {CustomEvent} disabled-changed - Fired when the `disabled` property changes.
|
|
68
|
+
* @fires {CustomEvent} error-changed - Fired when the `error` property changes.
|
|
54
69
|
* @fires {CustomEvent} forgot-password - Fired when user clicks on the "Forgot password" button.
|
|
55
70
|
* @fires {CustomEvent} login - Fired when a user submits the login.
|
|
56
71
|
*/
|
package/src/vaadin-login-form.js
CHANGED
|
@@ -36,11 +36,12 @@ import { LoginMixin } from './vaadin-login-mixin.js';
|
|
|
36
36
|
* `error-message`| Container for error message, contains error-message-title and error-message-description parts. Hidden by default.
|
|
37
37
|
* `error-message-title` | Container for error message title
|
|
38
38
|
* `error-message-description` | Container for error message description
|
|
39
|
-
* `error-message-description` | Container for error message description
|
|
40
39
|
* `footer` | Container additional information text from `i18n` object
|
|
41
40
|
*
|
|
42
41
|
* See [Styling Components](https://vaadin.com/docs/latest/ds/customization/styling-components) documentation.
|
|
43
42
|
*
|
|
43
|
+
* @fires {CustomEvent} disabled-changed - Fired when the `disabled` property changes.
|
|
44
|
+
* @fires {CustomEvent} error-changed - Fired when the `error` property changes.
|
|
44
45
|
* @fires {CustomEvent} forgot-password - Fired when user clicks on the "Forgot password" button.
|
|
45
46
|
* @fires {CustomEvent} login - Fired when a user submits the login.
|
|
46
47
|
*
|
|
@@ -60,11 +61,9 @@ class LoginForm extends LoginMixin(ElementMixin(ThemableMixin(PolymerElement)))
|
|
|
60
61
|
<vaadin-login-form-wrapper
|
|
61
62
|
theme$="[[_theme]]"
|
|
62
63
|
part="vaadin-login-native-form-wrapper"
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
no-forgot-password="{{noForgotPassword}}"
|
|
67
|
-
i18n="{{i18n}}"
|
|
64
|
+
error="[[error]]"
|
|
65
|
+
no-forgot-password="[[noForgotPassword]]"
|
|
66
|
+
i18n="[[i18n]]"
|
|
68
67
|
on-login="_retargetEvent"
|
|
69
68
|
on-forgot-password="_retargetEvent"
|
|
70
69
|
>
|
|
@@ -110,7 +109,7 @@ class LoginForm extends LoginMixin(ElementMixin(ThemableMixin(PolymerElement)))
|
|
|
110
109
|
/** @protected */
|
|
111
110
|
connectedCallback() {
|
|
112
111
|
super.connectedCallback();
|
|
113
|
-
|
|
112
|
+
|
|
114
113
|
if (!this.noAutofocus) {
|
|
115
114
|
this.$.vaadinLoginUsername.focus();
|
|
116
115
|
}
|
|
@@ -137,7 +136,10 @@ class LoginForm extends LoginMixin(ElementMixin(ThemableMixin(PolymerElement)))
|
|
|
137
136
|
}
|
|
138
137
|
|
|
139
138
|
submit() {
|
|
140
|
-
|
|
139
|
+
const userName = this.$.vaadinLoginUsername;
|
|
140
|
+
const password = this.$.vaadinLoginPassword;
|
|
141
|
+
|
|
142
|
+
if (this.disabled || !(userName.validate() && password.validate())) {
|
|
141
143
|
return;
|
|
142
144
|
}
|
|
143
145
|
|
|
@@ -148,8 +150,8 @@ class LoginForm extends LoginMixin(ElementMixin(ThemableMixin(PolymerElement)))
|
|
|
148
150
|
bubbles: true,
|
|
149
151
|
cancelable: true,
|
|
150
152
|
detail: {
|
|
151
|
-
username:
|
|
152
|
-
password:
|
|
153
|
+
username: userName.value,
|
|
154
|
+
password: password.value,
|
|
153
155
|
},
|
|
154
156
|
};
|
|
155
157
|
|
|
@@ -165,24 +167,14 @@ class LoginForm extends LoginMixin(ElementMixin(ThemableMixin(PolymerElement)))
|
|
|
165
167
|
}
|
|
166
168
|
}
|
|
167
169
|
|
|
168
|
-
/** @private */
|
|
169
|
-
__isValid(input) {
|
|
170
|
-
return (input.validate && input.validate()) || (input.checkValidity && input.checkValidity());
|
|
171
|
-
}
|
|
172
|
-
|
|
173
|
-
/** @private */
|
|
174
|
-
_isEnterKey(e) {
|
|
175
|
-
return e.key === 'Enter' || e.keyCode === 13;
|
|
176
|
-
}
|
|
177
|
-
|
|
178
170
|
/** @private */
|
|
179
171
|
_handleInputKeydown(e) {
|
|
180
|
-
if (
|
|
172
|
+
if (e.key === 'Enter') {
|
|
181
173
|
const { currentTarget: inputActive } = e;
|
|
182
174
|
const nextInput =
|
|
183
175
|
inputActive.id === 'vaadinLoginUsername' ? this.$.vaadinLoginPassword : this.$.vaadinLoginUsername;
|
|
184
|
-
if (
|
|
185
|
-
if (
|
|
176
|
+
if (inputActive.validate()) {
|
|
177
|
+
if (nextInput.validate()) {
|
|
186
178
|
this.submit();
|
|
187
179
|
} else {
|
|
188
180
|
nextInput.focus();
|
|
@@ -193,12 +185,9 @@ class LoginForm extends LoginMixin(ElementMixin(ThemableMixin(PolymerElement)))
|
|
|
193
185
|
|
|
194
186
|
/** @private */
|
|
195
187
|
_handleInputKeyup(e) {
|
|
196
|
-
const isTab = e.key === 'Tab' || e.keyCode === 9;
|
|
197
188
|
const input = e.currentTarget;
|
|
198
|
-
if (
|
|
189
|
+
if (e.key === 'Tab' && input instanceof HTMLInputElement) {
|
|
199
190
|
input.select();
|
|
200
|
-
// IOS 9 workaround: https://stackoverflow.com/a/7436574
|
|
201
|
-
setTimeout(() => input.setSelectionRange(0, 9999));
|
|
202
191
|
}
|
|
203
192
|
}
|
|
204
193
|
}
|
|
@@ -8,12 +8,33 @@ import { ThemableMixin } from '@vaadin/vaadin-themable-mixin/vaadin-themable-mix
|
|
|
8
8
|
import { LoginMixin } from './vaadin-login-mixin.js';
|
|
9
9
|
export { LoginI18n } from './vaadin-login-mixin.js';
|
|
10
10
|
|
|
11
|
+
/**
|
|
12
|
+
* Fired when the `description` property changes.
|
|
13
|
+
*/
|
|
14
|
+
export type LoginOverlayDescriptionChangedEvent = CustomEvent<{ value: string }>;
|
|
15
|
+
|
|
16
|
+
/**
|
|
17
|
+
* Fired when the `disabled` property changes.
|
|
18
|
+
*/
|
|
19
|
+
export type LoginOverlayDisabledChangedEvent = CustomEvent<{ value: boolean }>;
|
|
20
|
+
|
|
21
|
+
/**
|
|
22
|
+
* Fired when the `error` property changes.
|
|
23
|
+
*/
|
|
24
|
+
export type LoginOverlayErrorChangedEvent = CustomEvent<{ value: boolean }>;
|
|
25
|
+
|
|
11
26
|
/**
|
|
12
27
|
* Fired when a user submits the login.
|
|
13
28
|
*/
|
|
14
29
|
export type LoginOverlayLoginEvent = CustomEvent<{ username: string; password: string }>;
|
|
15
30
|
|
|
16
31
|
export interface LoginOverlayCustomEventMap {
|
|
32
|
+
'description-changed': LoginOverlayDescriptionChangedEvent;
|
|
33
|
+
|
|
34
|
+
'disabled-changed': LoginOverlayDisabledChangedEvent;
|
|
35
|
+
|
|
36
|
+
'error-changed': LoginOverlayErrorChangedEvent;
|
|
37
|
+
|
|
17
38
|
'forgot-password': Event;
|
|
18
39
|
|
|
19
40
|
login: LoginOverlayLoginEvent;
|
|
@@ -48,6 +69,9 @@ export interface LoginOverlayEventMap extends HTMLElementEventMap, LoginOverlayC
|
|
|
48
69
|
* See [`<vaadin-login-form>`](#/elements/vaadin-login-form)
|
|
49
70
|
* documentation for `<vaadin-login-form-wrapper>` stylable parts.
|
|
50
71
|
*
|
|
72
|
+
* @fires {CustomEvent} description-changed - Fired when the `description` property changes.
|
|
73
|
+
* @fires {CustomEvent} disabled-changed - Fired when the `disabled` property changes.
|
|
74
|
+
* @fires {CustomEvent} error-changed - Fired when the `error` property changes.
|
|
51
75
|
* @fires {CustomEvent} forgot-password - Fired when user clicks on the "Forgot password" button.
|
|
52
76
|
* @fires {CustomEvent} login - Fired when a user submits the login.
|
|
53
77
|
*/
|
|
@@ -37,6 +37,9 @@ import { LoginMixin } from './vaadin-login-mixin.js';
|
|
|
37
37
|
* See [`<vaadin-login-form>`](#/elements/vaadin-login-form)
|
|
38
38
|
* documentation for `<vaadin-login-form-wrapper>` stylable parts.
|
|
39
39
|
*
|
|
40
|
+
* @fires {CustomEvent} description-changed - Fired when the `description` property changes.
|
|
41
|
+
* @fires {CustomEvent} disabled-changed - Fired when the `disabled` property changes.
|
|
42
|
+
* @fires {CustomEvent} error-changed - Fired when the `error` property changes.
|
|
40
43
|
* @fires {CustomEvent} forgot-password - Fired when user clicks on the "Forgot password" button.
|
|
41
44
|
* @fires {CustomEvent} login - Fired when a user submits the login.
|
|
42
45
|
*
|