@vaadin/login 23.1.11 → 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 CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@vaadin/login",
3
- "version": "23.1.11",
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.11",
39
- "@vaadin/component-base": "~23.1.11",
40
- "@vaadin/password-field": "~23.1.11",
41
- "@vaadin/text-field": "~23.1.11",
42
- "@vaadin/vaadin-lumo-styles": "~23.1.11",
43
- "@vaadin/vaadin-material-styles": "~23.1.11",
44
- "@vaadin/vaadin-overlay": "~23.1.11",
45
- "@vaadin/vaadin-themable-mixin": "~23.1.11"
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": "8431798f6d50c35193817be868ddee0de021166c"
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
  */
@@ -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
- action="{{action}}"
64
- disabled="{{disabled}}"
65
- error="{{error}}"
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
- this._handleInputKeydown = this._handleInputKeydown.bind(this);
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
- if (this.disabled || !(this.__isValid(this.$.vaadinLoginUsername) && this.__isValid(this.$.vaadinLoginPassword))) {
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: this.$.vaadinLoginUsername.value,
152
- password: this.$.vaadinLoginPassword.value,
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 (this._isEnterKey(e)) {
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 (this.__isValid(inputActive)) {
185
- if (this.__isValid(nextInput)) {
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 (isTab && input && input.select) {
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
  *