@everymatrix/general-registration 1.55.1 → 1.56.0
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/dist/cjs/checkbox-group-input_13.cjs.entry.js +268 -197
- package/dist/esm/checkbox-group-input_13.entry.js +268 -197
- package/dist/general-registration/general-registration.esm.js +1 -1
- package/dist/general-registration/{p-252a6d81.entry.js → p-5f37e4ba.entry.js} +189 -187
- package/package.json +1 -1
|
@@ -157,13 +157,55 @@ const tooltipIconSvg = 'data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTIiIGhlaWdodD
|
|
|
157
157
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
158
158
|
*/
|
|
159
159
|
|
|
160
|
-
|
|
160
|
+
window.Vaadin ||= {};
|
|
161
|
+
window.Vaadin.featureFlags ||= {};
|
|
162
|
+
|
|
163
|
+
function dashToCamelCase$1(dash) {
|
|
164
|
+
return dash.replace(/-[a-z]/gu, (m) => m[1].toUpperCase());
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
const experimentalMap = {};
|
|
168
|
+
|
|
169
|
+
function defineCustomElement(CustomElement, version = '24.6.5') {
|
|
161
170
|
Object.defineProperty(CustomElement, 'version', {
|
|
162
171
|
get() {
|
|
163
172
|
return version;
|
|
164
173
|
},
|
|
165
174
|
});
|
|
166
175
|
|
|
176
|
+
if (CustomElement.experimental) {
|
|
177
|
+
const featureFlagKey =
|
|
178
|
+
typeof CustomElement.experimental === 'string'
|
|
179
|
+
? CustomElement.experimental
|
|
180
|
+
: `${dashToCamelCase$1(CustomElement.is.split('-').slice(1).join('-'))}Component`;
|
|
181
|
+
|
|
182
|
+
if (!window.Vaadin.featureFlags[featureFlagKey] && !experimentalMap[featureFlagKey]) {
|
|
183
|
+
// Add setter to define experimental component when it's set to true
|
|
184
|
+
experimentalMap[featureFlagKey] = new Set();
|
|
185
|
+
experimentalMap[featureFlagKey].add(CustomElement);
|
|
186
|
+
|
|
187
|
+
Object.defineProperty(window.Vaadin.featureFlags, featureFlagKey, {
|
|
188
|
+
get() {
|
|
189
|
+
return experimentalMap[featureFlagKey].size === 0;
|
|
190
|
+
},
|
|
191
|
+
set(value) {
|
|
192
|
+
if (!!value && experimentalMap[featureFlagKey].size > 0) {
|
|
193
|
+
experimentalMap[featureFlagKey].forEach((elementClass) => {
|
|
194
|
+
customElements.define(elementClass.is, elementClass);
|
|
195
|
+
});
|
|
196
|
+
experimentalMap[featureFlagKey].clear();
|
|
197
|
+
}
|
|
198
|
+
},
|
|
199
|
+
});
|
|
200
|
+
|
|
201
|
+
return;
|
|
202
|
+
} else if (experimentalMap[featureFlagKey]) {
|
|
203
|
+
// Allow to register multiple components with single flag
|
|
204
|
+
experimentalMap[featureFlagKey].add(CustomElement);
|
|
205
|
+
return;
|
|
206
|
+
}
|
|
207
|
+
}
|
|
208
|
+
|
|
167
209
|
const defined = customElements.get(CustomElement.is);
|
|
168
210
|
if (!defined) {
|
|
169
211
|
customElements.define(CustomElement.is, CustomElement);
|
|
@@ -912,7 +954,7 @@ registerStyles('', color, { moduleId: 'lumo-color' });
|
|
|
912
954
|
const fontIcons = i$3`
|
|
913
955
|
@font-face {
|
|
914
956
|
font-family: 'lumo-icons';
|
|
915
|
-
src: url(data:application/font-woff;charset=utf-8;base64,
|
|
957
|
+
src: url(data:application/font-woff;charset=utf-8;base64,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)
|
|
916
958
|
format('woff');
|
|
917
959
|
font-weight: normal;
|
|
918
960
|
font-style: normal;
|
|
@@ -942,25 +984,27 @@ const fontIcons = i$3`
|
|
|
942
984
|
--lumo-icons-cog: '\\ea15';
|
|
943
985
|
--lumo-icons-cross: '\\ea16';
|
|
944
986
|
--lumo-icons-download: '\\ea17';
|
|
945
|
-
--lumo-icons-
|
|
946
|
-
--lumo-icons-
|
|
947
|
-
--lumo-icons-
|
|
948
|
-
--lumo-icons-
|
|
949
|
-
--lumo-icons-eye
|
|
950
|
-
--lumo-icons-
|
|
951
|
-
--lumo-icons-
|
|
952
|
-
--lumo-icons-
|
|
953
|
-
--lumo-icons-
|
|
954
|
-
--lumo-icons-
|
|
955
|
-
--lumo-icons-
|
|
956
|
-
--lumo-icons-
|
|
957
|
-
--lumo-icons-
|
|
958
|
-
--lumo-icons-
|
|
959
|
-
--lumo-icons-
|
|
960
|
-
--lumo-icons-
|
|
961
|
-
--lumo-icons-
|
|
962
|
-
--lumo-icons-
|
|
963
|
-
--lumo-icons-
|
|
987
|
+
--lumo-icons-drag-handle: '\\ea18';
|
|
988
|
+
--lumo-icons-dropdown: '\\ea19';
|
|
989
|
+
--lumo-icons-edit: '\\ea1a';
|
|
990
|
+
--lumo-icons-error: '\\ea1b';
|
|
991
|
+
--lumo-icons-eye: '\\ea1c';
|
|
992
|
+
--lumo-icons-eye-disabled: '\\ea1d';
|
|
993
|
+
--lumo-icons-menu: '\\ea1e';
|
|
994
|
+
--lumo-icons-minus: '\\ea1f';
|
|
995
|
+
--lumo-icons-ordered-list: '\\ea20';
|
|
996
|
+
--lumo-icons-phone: '\\ea21';
|
|
997
|
+
--lumo-icons-photo: '\\ea22';
|
|
998
|
+
--lumo-icons-play: '\\ea23';
|
|
999
|
+
--lumo-icons-plus: '\\ea24';
|
|
1000
|
+
--lumo-icons-redo: '\\ea25';
|
|
1001
|
+
--lumo-icons-reload: '\\ea26';
|
|
1002
|
+
--lumo-icons-resize-handle: '\\ea27';
|
|
1003
|
+
--lumo-icons-search: '\\ea28';
|
|
1004
|
+
--lumo-icons-undo: '\\ea29';
|
|
1005
|
+
--lumo-icons-unordered-list: '\\ea2a';
|
|
1006
|
+
--lumo-icons-upload: '\\ea2b';
|
|
1007
|
+
--lumo-icons-user: '\\ea2c';
|
|
964
1008
|
}
|
|
965
1009
|
`;
|
|
966
1010
|
|
|
@@ -11305,6 +11349,7 @@ const DisabledMixin = dedupingMixin(
|
|
|
11305
11349
|
value: false,
|
|
11306
11350
|
observer: '_disabledChanged',
|
|
11307
11351
|
reflectToAttribute: true,
|
|
11352
|
+
sync: true,
|
|
11308
11353
|
},
|
|
11309
11354
|
};
|
|
11310
11355
|
}
|
|
@@ -12428,6 +12473,8 @@ const InputMixin = dedupingMixin(
|
|
|
12428
12473
|
if (this.inputElement) {
|
|
12429
12474
|
this.inputElement[this._inputElementValueProperty] = value;
|
|
12430
12475
|
}
|
|
12476
|
+
|
|
12477
|
+
this._hasInputValue = value && value.length > 0;
|
|
12431
12478
|
}
|
|
12432
12479
|
|
|
12433
12480
|
/**
|
|
@@ -12621,6 +12668,7 @@ const CheckedMixin = dedupingMixin(
|
|
|
12621
12668
|
value: false,
|
|
12622
12669
|
notify: true,
|
|
12623
12670
|
reflectToAttribute: true,
|
|
12671
|
+
sync: true,
|
|
12624
12672
|
},
|
|
12625
12673
|
};
|
|
12626
12674
|
}
|
|
@@ -13656,6 +13704,22 @@ const ValidateMixin = dedupingMixin(
|
|
|
13656
13704
|
value: false,
|
|
13657
13705
|
},
|
|
13658
13706
|
|
|
13707
|
+
/**
|
|
13708
|
+
* Set to true to enable manual validation mode. This mode disables automatic
|
|
13709
|
+
* constraint validation, allowing you to control the validation process yourself.
|
|
13710
|
+
* You can still trigger constraint validation manually with the `validate()` method
|
|
13711
|
+
* or use `checkValidity()` to assess the component's validity without affecting
|
|
13712
|
+
* the invalid state. In manual validation mode, you can also manipulate
|
|
13713
|
+
* the `invalid` property directly through your application logic without conflicts
|
|
13714
|
+
* with the component's internal validation.
|
|
13715
|
+
*
|
|
13716
|
+
* @attr {boolean} manual-validation
|
|
13717
|
+
*/
|
|
13718
|
+
manualValidation: {
|
|
13719
|
+
type: Boolean,
|
|
13720
|
+
value: false,
|
|
13721
|
+
},
|
|
13722
|
+
|
|
13659
13723
|
/**
|
|
13660
13724
|
* Specifies that the user must fill in a value.
|
|
13661
13725
|
*/
|
|
@@ -13710,6 +13774,14 @@ const ValidateMixin = dedupingMixin(
|
|
|
13710
13774
|
return true;
|
|
13711
13775
|
}
|
|
13712
13776
|
|
|
13777
|
+
/** @protected */
|
|
13778
|
+
_requestValidation() {
|
|
13779
|
+
if (!this.manualValidation) {
|
|
13780
|
+
// eslint-disable-next-line no-restricted-syntax
|
|
13781
|
+
this.validate();
|
|
13782
|
+
}
|
|
13783
|
+
}
|
|
13784
|
+
|
|
13713
13785
|
/**
|
|
13714
13786
|
* Fired whenever the field is validated.
|
|
13715
13787
|
*
|
|
@@ -14232,14 +14304,14 @@ const CheckboxMixin = (superclass) =>
|
|
|
14232
14304
|
// Do not validate when focusout is caused by document
|
|
14233
14305
|
// losing focus, which happens on browser tab switch.
|
|
14234
14306
|
if (!focused && document.hasFocus()) {
|
|
14235
|
-
this.
|
|
14307
|
+
this._requestValidation();
|
|
14236
14308
|
}
|
|
14237
14309
|
}
|
|
14238
14310
|
|
|
14239
14311
|
/** @private */
|
|
14240
14312
|
_checkedChanged(checked) {
|
|
14241
14313
|
if (checked || this.__oldChecked) {
|
|
14242
|
-
this.
|
|
14314
|
+
this._requestValidation();
|
|
14243
14315
|
}
|
|
14244
14316
|
|
|
14245
14317
|
this.__oldChecked = checked;
|
|
@@ -14256,7 +14328,7 @@ const CheckboxMixin = (superclass) =>
|
|
|
14256
14328
|
super._requiredChanged(required);
|
|
14257
14329
|
|
|
14258
14330
|
if (required === false) {
|
|
14259
|
-
this.
|
|
14331
|
+
this._requestValidation();
|
|
14260
14332
|
}
|
|
14261
14333
|
}
|
|
14262
14334
|
|
|
@@ -14956,7 +15028,7 @@ const CheckboxGroupMixin = (superclass) =>
|
|
|
14956
15028
|
});
|
|
14957
15029
|
|
|
14958
15030
|
if (oldValue !== undefined) {
|
|
14959
|
-
this.
|
|
15031
|
+
this._requestValidation();
|
|
14960
15032
|
}
|
|
14961
15033
|
}
|
|
14962
15034
|
|
|
@@ -14996,7 +15068,7 @@ const CheckboxGroupMixin = (superclass) =>
|
|
|
14996
15068
|
// Do not validate when focusout is caused by document
|
|
14997
15069
|
// losing focus, which happens on browser tab switch.
|
|
14998
15070
|
if (!focused && document.hasFocus()) {
|
|
14999
|
-
this.
|
|
15071
|
+
this._requestValidation();
|
|
15000
15072
|
}
|
|
15001
15073
|
}
|
|
15002
15074
|
};
|
|
@@ -17674,6 +17746,7 @@ const OverlayMixin = (superClass) =>
|
|
|
17674
17746
|
notify: true,
|
|
17675
17747
|
observer: '_openedChanged',
|
|
17676
17748
|
reflectToAttribute: true,
|
|
17749
|
+
sync: true,
|
|
17677
17750
|
},
|
|
17678
17751
|
|
|
17679
17752
|
/**
|
|
@@ -17682,6 +17755,7 @@ const OverlayMixin = (superClass) =>
|
|
|
17682
17755
|
*/
|
|
17683
17756
|
owner: {
|
|
17684
17757
|
type: Object,
|
|
17758
|
+
sync: true,
|
|
17685
17759
|
},
|
|
17686
17760
|
|
|
17687
17761
|
/**
|
|
@@ -17689,6 +17763,7 @@ const OverlayMixin = (superClass) =>
|
|
|
17689
17763
|
*/
|
|
17690
17764
|
model: {
|
|
17691
17765
|
type: Object,
|
|
17766
|
+
sync: true,
|
|
17692
17767
|
},
|
|
17693
17768
|
|
|
17694
17769
|
/**
|
|
@@ -17702,6 +17777,7 @@ const OverlayMixin = (superClass) =>
|
|
|
17702
17777
|
*/
|
|
17703
17778
|
renderer: {
|
|
17704
17779
|
type: Object,
|
|
17780
|
+
sync: true,
|
|
17705
17781
|
},
|
|
17706
17782
|
|
|
17707
17783
|
/**
|
|
@@ -17714,6 +17790,7 @@ const OverlayMixin = (superClass) =>
|
|
|
17714
17790
|
value: false,
|
|
17715
17791
|
reflectToAttribute: true,
|
|
17716
17792
|
observer: '_modelessChanged',
|
|
17793
|
+
sync: true,
|
|
17717
17794
|
},
|
|
17718
17795
|
|
|
17719
17796
|
/**
|
|
@@ -17725,6 +17802,7 @@ const OverlayMixin = (superClass) =>
|
|
|
17725
17802
|
type: Boolean,
|
|
17726
17803
|
reflectToAttribute: true,
|
|
17727
17804
|
observer: '_hiddenChanged',
|
|
17805
|
+
sync: true,
|
|
17728
17806
|
},
|
|
17729
17807
|
|
|
17730
17808
|
/**
|
|
@@ -17735,6 +17813,7 @@ const OverlayMixin = (superClass) =>
|
|
|
17735
17813
|
type: Boolean,
|
|
17736
17814
|
value: false,
|
|
17737
17815
|
reflectToAttribute: true,
|
|
17816
|
+
sync: true,
|
|
17738
17817
|
},
|
|
17739
17818
|
};
|
|
17740
17819
|
}
|
|
@@ -19563,6 +19642,21 @@ class InfiniteScroller extends HTMLElement {
|
|
|
19563
19642
|
}
|
|
19564
19643
|
}
|
|
19565
19644
|
|
|
19645
|
+
/** @protected */
|
|
19646
|
+
disconnectedCallback() {
|
|
19647
|
+
if (this._debouncerScrollFinish) {
|
|
19648
|
+
this._debouncerScrollFinish.cancel();
|
|
19649
|
+
}
|
|
19650
|
+
|
|
19651
|
+
if (this._debouncerUpdateClones) {
|
|
19652
|
+
this._debouncerUpdateClones.cancel();
|
|
19653
|
+
}
|
|
19654
|
+
|
|
19655
|
+
if (this.__pendingFinishInit) {
|
|
19656
|
+
cancelAnimationFrame(this.__pendingFinishInit);
|
|
19657
|
+
}
|
|
19658
|
+
}
|
|
19659
|
+
|
|
19566
19660
|
/**
|
|
19567
19661
|
* Force the scroller to update clones after a reset, without
|
|
19568
19662
|
* waiting for the debouncer to resolve.
|
|
@@ -19710,8 +19804,9 @@ class InfiniteScroller extends HTMLElement {
|
|
|
19710
19804
|
}
|
|
19711
19805
|
});
|
|
19712
19806
|
|
|
19713
|
-
requestAnimationFrame(() => {
|
|
19807
|
+
this.__pendingFinishInit = requestAnimationFrame(() => {
|
|
19714
19808
|
this._finishInit();
|
|
19809
|
+
this.__pendingFinishInit = null;
|
|
19715
19810
|
});
|
|
19716
19811
|
}
|
|
19717
19812
|
|
|
@@ -19726,6 +19821,10 @@ class InfiniteScroller extends HTMLElement {
|
|
|
19726
19821
|
itemWrapper.instance = this._createElement();
|
|
19727
19822
|
itemWrapper.appendChild(itemWrapper.instance);
|
|
19728
19823
|
|
|
19824
|
+
if (itemWrapper.instance.performUpdate) {
|
|
19825
|
+
itemWrapper.instance.performUpdate();
|
|
19826
|
+
}
|
|
19827
|
+
|
|
19729
19828
|
Object.keys(tmpInstance).forEach((prop) => {
|
|
19730
19829
|
itemWrapper.instance[prop] = tmpInstance[prop];
|
|
19731
19830
|
});
|
|
@@ -21743,6 +21842,10 @@ const MonthCalendarMixin = (superClass) =>
|
|
|
21743
21842
|
value: () => false,
|
|
21744
21843
|
},
|
|
21745
21844
|
|
|
21845
|
+
enteredDate: {
|
|
21846
|
+
type: Date,
|
|
21847
|
+
},
|
|
21848
|
+
|
|
21746
21849
|
disabled: {
|
|
21747
21850
|
type: Boolean,
|
|
21748
21851
|
reflectToAttribute: true,
|
|
@@ -21762,6 +21865,11 @@ const MonthCalendarMixin = (superClass) =>
|
|
|
21762
21865
|
_notTapping: {
|
|
21763
21866
|
type: Boolean,
|
|
21764
21867
|
},
|
|
21868
|
+
|
|
21869
|
+
/** @private */
|
|
21870
|
+
__hasFocus: {
|
|
21871
|
+
type: Boolean,
|
|
21872
|
+
},
|
|
21765
21873
|
};
|
|
21766
21874
|
}
|
|
21767
21875
|
|
|
@@ -21781,6 +21889,12 @@ const MonthCalendarMixin = (superClass) =>
|
|
|
21781
21889
|
addListener(this.$.monthGrid, 'tap', this._handleTap.bind(this));
|
|
21782
21890
|
}
|
|
21783
21891
|
|
|
21892
|
+
/** @override */
|
|
21893
|
+
_setFocused(focused) {
|
|
21894
|
+
super._setFocused(focused);
|
|
21895
|
+
this.__hasFocus = focused;
|
|
21896
|
+
}
|
|
21897
|
+
|
|
21784
21898
|
/**
|
|
21785
21899
|
* Returns true if all the dates in the month are out of the allowed range
|
|
21786
21900
|
* @protected
|
|
@@ -22076,7 +22190,7 @@ class MonthCalendar extends MonthCalendarMixin(ThemableMixin(PolymerElement)) {
|
|
|
22076
22190
|
<template is="dom-repeat" items="[[week]]">
|
|
22077
22191
|
<td
|
|
22078
22192
|
role="gridcell"
|
|
22079
|
-
part$="[[__getDatePart(item, focusedDate, selectedDate, minDate, maxDate, isDateDisabled)]]"
|
|
22193
|
+
part$="[[__getDatePart(item, focusedDate, selectedDate, minDate, maxDate, isDateDisabled, enteredDate, __hasFocus)]]"
|
|
22080
22194
|
date="[[item]]"
|
|
22081
22195
|
tabindex$="[[__getDayTabindex(item, focusedDate)]]"
|
|
22082
22196
|
disabled$="[[__isDayDisabled(item, minDate, maxDate, isDateDisabled)]]"
|
|
@@ -22134,7 +22248,7 @@ class MonthCalendar extends MonthCalendarMixin(ThemableMixin(PolymerElement)) {
|
|
|
22134
22248
|
|
|
22135
22249
|
/** @private */
|
|
22136
22250
|
// eslint-disable-next-line @typescript-eslint/max-params
|
|
22137
|
-
__getDatePart(date, focusedDate, selectedDate, minDate, maxDate, isDateDisabled) {
|
|
22251
|
+
__getDatePart(date, focusedDate, selectedDate, minDate, maxDate, isDateDisabled, enteredDate, hasFocus) {
|
|
22138
22252
|
const result = ['date'];
|
|
22139
22253
|
const greaterThanToday = date > normalizeDate(new Date());
|
|
22140
22254
|
const lessThanToday = date < normalizeDate(new Date());
|
|
@@ -22143,7 +22257,7 @@ class MonthCalendar extends MonthCalendarMixin(ThemableMixin(PolymerElement)) {
|
|
|
22143
22257
|
result.push('disabled');
|
|
22144
22258
|
}
|
|
22145
22259
|
|
|
22146
|
-
if (
|
|
22260
|
+
if (dateEquals(date, focusedDate) && (hasFocus || dateEquals(date, enteredDate))) {
|
|
22147
22261
|
result.push('focused');
|
|
22148
22262
|
}
|
|
22149
22263
|
|
|
@@ -22166,11 +22280,6 @@ class MonthCalendar extends MonthCalendarMixin(ThemableMixin(PolymerElement)) {
|
|
|
22166
22280
|
return result.join(' ');
|
|
22167
22281
|
}
|
|
22168
22282
|
|
|
22169
|
-
/** @private */
|
|
22170
|
-
__isDayFocused(date, focusedDate) {
|
|
22171
|
-
return dateEquals(date, focusedDate);
|
|
22172
|
-
}
|
|
22173
|
-
|
|
22174
22283
|
/** @private */
|
|
22175
22284
|
__isDaySelected(date, selectedDate) {
|
|
22176
22285
|
return dateEquals(date, selectedDate);
|
|
@@ -22201,11 +22310,7 @@ class MonthCalendar extends MonthCalendarMixin(ThemableMixin(PolymerElement)) {
|
|
|
22201
22310
|
|
|
22202
22311
|
/** @private */
|
|
22203
22312
|
__getDayTabindex(date, focusedDate) {
|
|
22204
|
-
|
|
22205
|
-
return '0';
|
|
22206
|
-
}
|
|
22207
|
-
|
|
22208
|
-
return '-1';
|
|
22313
|
+
return dateEquals(date, focusedDate) ? '0' : '-1';
|
|
22209
22314
|
}
|
|
22210
22315
|
}
|
|
22211
22316
|
|
|
@@ -22324,6 +22429,7 @@ const DatePickerOverlayContentMixin = (superClass) =>
|
|
|
22324
22429
|
initialPosition: {
|
|
22325
22430
|
type: Object,
|
|
22326
22431
|
observer: '_initialPositionChanged',
|
|
22432
|
+
sync: true,
|
|
22327
22433
|
},
|
|
22328
22434
|
|
|
22329
22435
|
_originDate: {
|
|
@@ -22391,6 +22497,11 @@ const DatePickerOverlayContentMixin = (superClass) =>
|
|
|
22391
22497
|
type: Function,
|
|
22392
22498
|
},
|
|
22393
22499
|
|
|
22500
|
+
enteredDate: {
|
|
22501
|
+
type: Date,
|
|
22502
|
+
sync: true,
|
|
22503
|
+
},
|
|
22504
|
+
|
|
22394
22505
|
/**
|
|
22395
22506
|
* Input label
|
|
22396
22507
|
*/
|
|
@@ -22418,7 +22529,7 @@ const DatePickerOverlayContentMixin = (superClass) =>
|
|
|
22418
22529
|
|
|
22419
22530
|
static get observers() {
|
|
22420
22531
|
return [
|
|
22421
|
-
'__updateCalendars(calendars, i18n, minDate, maxDate, selectedDate, focusedDate, showWeekNumbers, _ignoreTaps, _theme, isDateDisabled)',
|
|
22532
|
+
'__updateCalendars(calendars, i18n, minDate, maxDate, selectedDate, focusedDate, showWeekNumbers, _ignoreTaps, _theme, isDateDisabled, enteredDate)',
|
|
22422
22533
|
'__updateCancelButton(_cancelButton, i18n)',
|
|
22423
22534
|
'__updateTodayButton(_todayButton, i18n, minDate, maxDate, isDateDisabled)',
|
|
22424
22535
|
'__updateYears(years, selectedDate, _theme)',
|
|
@@ -22606,6 +22717,7 @@ const DatePickerOverlayContentMixin = (superClass) =>
|
|
|
22606
22717
|
ignoreTaps,
|
|
22607
22718
|
theme,
|
|
22608
22719
|
isDateDisabled,
|
|
22720
|
+
enteredDate,
|
|
22609
22721
|
) {
|
|
22610
22722
|
if (calendars && calendars.length) {
|
|
22611
22723
|
calendars.forEach((calendar) => {
|
|
@@ -22617,6 +22729,7 @@ const DatePickerOverlayContentMixin = (superClass) =>
|
|
|
22617
22729
|
calendar.selectedDate = selectedDate;
|
|
22618
22730
|
calendar.showWeekNumbers = showWeekNumbers;
|
|
22619
22731
|
calendar.ignoreTaps = ignoreTaps;
|
|
22732
|
+
calendar.enteredDate = enteredDate;
|
|
22620
22733
|
|
|
22621
22734
|
if (theme) {
|
|
22622
22735
|
calendar.setAttribute('theme', theme);
|
|
@@ -23725,8 +23838,8 @@ const InputConstraintsMixin = dedupingMixin(
|
|
|
23725
23838
|
const isLastConstraintRemoved = this.__previousHasConstraints && !hasConstraints;
|
|
23726
23839
|
|
|
23727
23840
|
if ((this._hasValue || this.invalid) && hasConstraints) {
|
|
23728
|
-
this.
|
|
23729
|
-
} else if (isLastConstraintRemoved) {
|
|
23841
|
+
this._requestValidation();
|
|
23842
|
+
} else if (isLastConstraintRemoved && !this.manualValidation) {
|
|
23730
23843
|
this._setInvalid(false);
|
|
23731
23844
|
}
|
|
23732
23845
|
|
|
@@ -23744,7 +23857,7 @@ const InputConstraintsMixin = dedupingMixin(
|
|
|
23744
23857
|
_onChange(event) {
|
|
23745
23858
|
event.stopPropagation();
|
|
23746
23859
|
|
|
23747
|
-
this.
|
|
23860
|
+
this._requestValidation();
|
|
23748
23861
|
|
|
23749
23862
|
this.dispatchEvent(
|
|
23750
23863
|
new CustomEvent('change', {
|
|
@@ -23887,30 +24000,6 @@ const InputControlMixin = (superclass) =>
|
|
|
23887
24000
|
}
|
|
23888
24001
|
}
|
|
23889
24002
|
|
|
23890
|
-
/**
|
|
23891
|
-
* Override an event listener inherited from `InputMixin`
|
|
23892
|
-
* to capture native `change` event and make sure that
|
|
23893
|
-
* a new one is dispatched after validation runs.
|
|
23894
|
-
* @param {Event} event
|
|
23895
|
-
* @protected
|
|
23896
|
-
* @override
|
|
23897
|
-
*/
|
|
23898
|
-
_onChange(event) {
|
|
23899
|
-
event.stopPropagation();
|
|
23900
|
-
|
|
23901
|
-
this.validate();
|
|
23902
|
-
|
|
23903
|
-
this.dispatchEvent(
|
|
23904
|
-
new CustomEvent('change', {
|
|
23905
|
-
detail: {
|
|
23906
|
-
sourceEvent: event,
|
|
23907
|
-
},
|
|
23908
|
-
bubbles: event.bubbles,
|
|
23909
|
-
cancelable: event.cancelable,
|
|
23910
|
-
}),
|
|
23911
|
-
);
|
|
23912
|
-
}
|
|
23913
|
-
|
|
23914
24003
|
/**
|
|
23915
24004
|
* Override a method from `InputMixin`.
|
|
23916
24005
|
* @param {!HTMLElement} input
|
|
@@ -24246,6 +24335,62 @@ class VirtualKeyboardController {
|
|
|
24246
24335
|
* This program is available under Apache License Version 2.0, available at https://vaadin.com/license/
|
|
24247
24336
|
*/
|
|
24248
24337
|
|
|
24338
|
+
const datePickerI18nDefaults = Object.freeze({
|
|
24339
|
+
monthNames: [
|
|
24340
|
+
'January',
|
|
24341
|
+
'February',
|
|
24342
|
+
'March',
|
|
24343
|
+
'April',
|
|
24344
|
+
'May',
|
|
24345
|
+
'June',
|
|
24346
|
+
'July',
|
|
24347
|
+
'August',
|
|
24348
|
+
'September',
|
|
24349
|
+
'October',
|
|
24350
|
+
'November',
|
|
24351
|
+
'December',
|
|
24352
|
+
],
|
|
24353
|
+
weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
|
24354
|
+
weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
|
24355
|
+
firstDayOfWeek: 0,
|
|
24356
|
+
today: 'Today',
|
|
24357
|
+
cancel: 'Cancel',
|
|
24358
|
+
referenceDate: '',
|
|
24359
|
+
formatDate(d) {
|
|
24360
|
+
const yearStr = String(d.year).replace(/\d+/u, (y) => '0000'.substr(y.length) + y);
|
|
24361
|
+
return [d.month + 1, d.day, yearStr].join('/');
|
|
24362
|
+
},
|
|
24363
|
+
parseDate(text) {
|
|
24364
|
+
const parts = text.split('/');
|
|
24365
|
+
const today = new Date();
|
|
24366
|
+
let date,
|
|
24367
|
+
month = today.getMonth(),
|
|
24368
|
+
year = today.getFullYear();
|
|
24369
|
+
|
|
24370
|
+
if (parts.length === 3) {
|
|
24371
|
+
month = parseInt(parts[0]) - 1;
|
|
24372
|
+
date = parseInt(parts[1]);
|
|
24373
|
+
year = parseInt(parts[2]);
|
|
24374
|
+
if (parts[2].length < 3 && year >= 0) {
|
|
24375
|
+
const usedReferenceDate = this.referenceDate ? parseDate(this.referenceDate) : new Date();
|
|
24376
|
+
year = getAdjustedYear(usedReferenceDate, year, month, date);
|
|
24377
|
+
}
|
|
24378
|
+
} else if (parts.length === 2) {
|
|
24379
|
+
month = parseInt(parts[0]) - 1;
|
|
24380
|
+
date = parseInt(parts[1]);
|
|
24381
|
+
} else if (parts.length === 1) {
|
|
24382
|
+
date = parseInt(parts[0]);
|
|
24383
|
+
}
|
|
24384
|
+
|
|
24385
|
+
if (date !== undefined) {
|
|
24386
|
+
return { day: date, month, year };
|
|
24387
|
+
}
|
|
24388
|
+
},
|
|
24389
|
+
formatTitle: (monthName, fullYear) => {
|
|
24390
|
+
return `${monthName} ${fullYear}`;
|
|
24391
|
+
},
|
|
24392
|
+
});
|
|
24393
|
+
|
|
24249
24394
|
/**
|
|
24250
24395
|
* @polymerMixin
|
|
24251
24396
|
* @mixes ControllerMixin
|
|
@@ -24319,7 +24464,10 @@ const DatePickerMixin = (subclass) =>
|
|
|
24319
24464
|
* Set true to prevent the overlay from opening automatically.
|
|
24320
24465
|
* @attr {boolean} auto-open-disabled
|
|
24321
24466
|
*/
|
|
24322
|
-
autoOpenDisabled:
|
|
24467
|
+
autoOpenDisabled: {
|
|
24468
|
+
type: Boolean,
|
|
24469
|
+
sync: true,
|
|
24470
|
+
},
|
|
24323
24471
|
|
|
24324
24472
|
/**
|
|
24325
24473
|
* Set true to display ISO-8601 week numbers in the calendar. Notice that
|
|
@@ -24440,63 +24588,7 @@ const DatePickerMixin = (subclass) =>
|
|
|
24440
24588
|
i18n: {
|
|
24441
24589
|
type: Object,
|
|
24442
24590
|
sync: true,
|
|
24443
|
-
value: () => {
|
|
24444
|
-
return {
|
|
24445
|
-
monthNames: [
|
|
24446
|
-
'January',
|
|
24447
|
-
'February',
|
|
24448
|
-
'March',
|
|
24449
|
-
'April',
|
|
24450
|
-
'May',
|
|
24451
|
-
'June',
|
|
24452
|
-
'July',
|
|
24453
|
-
'August',
|
|
24454
|
-
'September',
|
|
24455
|
-
'October',
|
|
24456
|
-
'November',
|
|
24457
|
-
'December',
|
|
24458
|
-
],
|
|
24459
|
-
weekdays: ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'],
|
|
24460
|
-
weekdaysShort: ['Sun', 'Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat'],
|
|
24461
|
-
firstDayOfWeek: 0,
|
|
24462
|
-
today: 'Today',
|
|
24463
|
-
cancel: 'Cancel',
|
|
24464
|
-
referenceDate: '',
|
|
24465
|
-
formatDate(d) {
|
|
24466
|
-
const yearStr = String(d.year).replace(/\d+/u, (y) => '0000'.substr(y.length) + y);
|
|
24467
|
-
return [d.month + 1, d.day, yearStr].join('/');
|
|
24468
|
-
},
|
|
24469
|
-
parseDate(text) {
|
|
24470
|
-
const parts = text.split('/');
|
|
24471
|
-
const today = new Date();
|
|
24472
|
-
let date,
|
|
24473
|
-
month = today.getMonth(),
|
|
24474
|
-
year = today.getFullYear();
|
|
24475
|
-
|
|
24476
|
-
if (parts.length === 3) {
|
|
24477
|
-
month = parseInt(parts[0]) - 1;
|
|
24478
|
-
date = parseInt(parts[1]);
|
|
24479
|
-
year = parseInt(parts[2]);
|
|
24480
|
-
if (parts[2].length < 3 && year >= 0) {
|
|
24481
|
-
const usedReferenceDate = this.referenceDate ? parseDate(this.referenceDate) : new Date();
|
|
24482
|
-
year = getAdjustedYear(usedReferenceDate, year, month, date);
|
|
24483
|
-
}
|
|
24484
|
-
} else if (parts.length === 2) {
|
|
24485
|
-
month = parseInt(parts[0]) - 1;
|
|
24486
|
-
date = parseInt(parts[1]);
|
|
24487
|
-
} else if (parts.length === 1) {
|
|
24488
|
-
date = parseInt(parts[0]);
|
|
24489
|
-
}
|
|
24490
|
-
|
|
24491
|
-
if (date !== undefined) {
|
|
24492
|
-
return { day: date, month, year };
|
|
24493
|
-
}
|
|
24494
|
-
},
|
|
24495
|
-
formatTitle: (monthName, fullYear) => {
|
|
24496
|
-
return `${monthName} ${fullYear}`;
|
|
24497
|
-
},
|
|
24498
|
-
};
|
|
24499
|
-
},
|
|
24591
|
+
value: () => ({ ...datePickerI18nDefaults }),
|
|
24500
24592
|
},
|
|
24501
24593
|
|
|
24502
24594
|
/**
|
|
@@ -24581,18 +24673,10 @@ const DatePickerMixin = (subclass) =>
|
|
|
24581
24673
|
sync: true,
|
|
24582
24674
|
},
|
|
24583
24675
|
|
|
24584
|
-
/**
|
|
24585
|
-
|
|
24586
|
-
|
|
24587
|
-
|
|
24588
|
-
* Read more about why this workaround is needed:
|
|
24589
|
-
* https://github.com/vaadin/web-components/issues/5639
|
|
24590
|
-
*
|
|
24591
|
-
* @protected
|
|
24592
|
-
* @override
|
|
24593
|
-
*/
|
|
24594
|
-
_hasInputValue: {
|
|
24595
|
-
type: Boolean,
|
|
24676
|
+
/** @private */
|
|
24677
|
+
__enteredDate: {
|
|
24678
|
+
type: Date,
|
|
24679
|
+
sync: true,
|
|
24596
24680
|
},
|
|
24597
24681
|
};
|
|
24598
24682
|
}
|
|
@@ -24601,7 +24685,7 @@ const DatePickerMixin = (subclass) =>
|
|
|
24601
24685
|
return [
|
|
24602
24686
|
'_selectedDateChanged(_selectedDate, i18n)',
|
|
24603
24687
|
'_focusedDateChanged(_focusedDate, i18n)',
|
|
24604
|
-
'__updateOverlayContent(_overlayContent, i18n, label, _minDate, _maxDate, _focusedDate, _selectedDate, showWeekNumbers, isDateDisabled)',
|
|
24688
|
+
'__updateOverlayContent(_overlayContent, i18n, label, _minDate, _maxDate, _focusedDate, _selectedDate, showWeekNumbers, isDateDisabled, __enteredDate)',
|
|
24605
24689
|
'__updateOverlayContentTheme(_overlayContent, _theme)',
|
|
24606
24690
|
'__updateOverlayContentFullScreen(_overlayContent, _fullscreen)',
|
|
24607
24691
|
];
|
|
@@ -24619,28 +24703,17 @@ const DatePickerMixin = (subclass) =>
|
|
|
24619
24703
|
this._boundOverlayRenderer = this._overlayRenderer.bind(this);
|
|
24620
24704
|
}
|
|
24621
24705
|
|
|
24622
|
-
/**
|
|
24623
|
-
* @override
|
|
24624
|
-
* @protected
|
|
24625
|
-
*/
|
|
24706
|
+
/** @override */
|
|
24626
24707
|
get _inputElementValue() {
|
|
24627
24708
|
return super._inputElementValue;
|
|
24628
24709
|
}
|
|
24629
24710
|
|
|
24630
|
-
/**
|
|
24631
|
-
* The setter is overridden to reset the `_hasInputValue` property
|
|
24632
|
-
* to false when the input element's value is updated programmatically.
|
|
24633
|
-
* In date-picker, `_hasInputValue` is supposed to indicate true only
|
|
24634
|
-
* if the input has been entered by the user.
|
|
24635
|
-
* Read more about why this workaround is needed:
|
|
24636
|
-
* https://github.com/vaadin/web-components/issues/5639
|
|
24637
|
-
*
|
|
24638
|
-
* @override
|
|
24639
|
-
* @protected
|
|
24640
|
-
*/
|
|
24711
|
+
/** @override */
|
|
24641
24712
|
set _inputElementValue(value) {
|
|
24642
24713
|
super._inputElementValue = value;
|
|
24643
|
-
|
|
24714
|
+
|
|
24715
|
+
const parsedDate = this.__parseDate(value);
|
|
24716
|
+
this.__setEnteredDate(parsedDate);
|
|
24644
24717
|
}
|
|
24645
24718
|
|
|
24646
24719
|
/**
|
|
@@ -24702,7 +24775,7 @@ const DatePickerMixin = (subclass) =>
|
|
|
24702
24775
|
// Do not validate when focusout is caused by document
|
|
24703
24776
|
// losing focus, which happens on browser tab switch.
|
|
24704
24777
|
if (document.hasFocus()) {
|
|
24705
|
-
this.
|
|
24778
|
+
this._requestValidation();
|
|
24706
24779
|
}
|
|
24707
24780
|
}
|
|
24708
24781
|
}
|
|
@@ -24847,13 +24920,8 @@ const DatePickerMixin = (subclass) =>
|
|
|
24847
24920
|
!this._selectedDate || dateAllowed(this._selectedDate, this._minDate, this._maxDate, this.isDateDisabled);
|
|
24848
24921
|
|
|
24849
24922
|
let inputValidity = true;
|
|
24850
|
-
if (this.inputElement) {
|
|
24851
|
-
|
|
24852
|
-
inputValidity = this.inputElement.checkValidity();
|
|
24853
|
-
} else if (this.inputElement.validate) {
|
|
24854
|
-
// Iron-form-elements have the validate API
|
|
24855
|
-
inputValidity = this.inputElement.validate();
|
|
24856
|
-
}
|
|
24923
|
+
if (this.inputElement && this.inputElement.checkValidity) {
|
|
24924
|
+
inputValidity = this.inputElement.checkValidity();
|
|
24857
24925
|
}
|
|
24858
24926
|
|
|
24859
24927
|
return inputValid && isDateValid && inputValidity;
|
|
@@ -24940,10 +25008,10 @@ const DatePickerMixin = (subclass) =>
|
|
|
24940
25008
|
const unparsableValue = this.__unparsableValue;
|
|
24941
25009
|
|
|
24942
25010
|
if (this.__committedValue !== this.value) {
|
|
24943
|
-
this.
|
|
25011
|
+
this._requestValidation();
|
|
24944
25012
|
this.dispatchEvent(new CustomEvent('change', { bubbles: true }));
|
|
24945
25013
|
} else if (this.__committedUnparsableValue !== unparsableValue) {
|
|
24946
|
-
this.
|
|
25014
|
+
this._requestValidation();
|
|
24947
25015
|
this.dispatchEvent(new CustomEvent('unparsable-change'));
|
|
24948
25016
|
}
|
|
24949
25017
|
|
|
@@ -25072,7 +25140,7 @@ const DatePickerMixin = (subclass) =>
|
|
|
25072
25140
|
|
|
25073
25141
|
if (oldValue !== undefined) {
|
|
25074
25142
|
// Validate only if `value` changes after initialization.
|
|
25075
|
-
this.
|
|
25143
|
+
this._requestValidation();
|
|
25076
25144
|
}
|
|
25077
25145
|
}
|
|
25078
25146
|
} else {
|
|
@@ -25099,6 +25167,7 @@ const DatePickerMixin = (subclass) =>
|
|
|
25099
25167
|
selectedDate,
|
|
25100
25168
|
showWeekNumbers,
|
|
25101
25169
|
isDateDisabled,
|
|
25170
|
+
enteredDate,
|
|
25102
25171
|
) {
|
|
25103
25172
|
if (overlayContent) {
|
|
25104
25173
|
overlayContent.i18n = i18n;
|
|
@@ -25109,6 +25178,7 @@ const DatePickerMixin = (subclass) =>
|
|
|
25109
25178
|
overlayContent.selectedDate = selectedDate;
|
|
25110
25179
|
overlayContent.showWeekNumbers = showWeekNumbers;
|
|
25111
25180
|
overlayContent.isDateDisabled = isDateDisabled;
|
|
25181
|
+
overlayContent.enteredDate = enteredDate;
|
|
25112
25182
|
}
|
|
25113
25183
|
}
|
|
25114
25184
|
|
|
@@ -25238,7 +25308,7 @@ const DatePickerMixin = (subclass) =>
|
|
|
25238
25308
|
// Needed in case the value was not changed: open and close dropdown,
|
|
25239
25309
|
// especially on outside click. On Esc key press, do not validate.
|
|
25240
25310
|
if (!this.value && !this._keyboardActive) {
|
|
25241
|
-
this.
|
|
25311
|
+
this._requestValidation();
|
|
25242
25312
|
}
|
|
25243
25313
|
}
|
|
25244
25314
|
|
|
@@ -25430,15 +25500,32 @@ const DatePickerMixin = (subclass) =>
|
|
|
25430
25500
|
this.open();
|
|
25431
25501
|
}
|
|
25432
25502
|
|
|
25433
|
-
|
|
25434
|
-
|
|
25435
|
-
|
|
25436
|
-
|
|
25437
|
-
|
|
25438
|
-
this._focusedDate = parsedDate;
|
|
25439
|
-
}
|
|
25440
|
-
this._ignoreFocusedDateChange = false;
|
|
25503
|
+
const parsedDate = this.__parseDate(this._inputElementValue || '');
|
|
25504
|
+
if (parsedDate) {
|
|
25505
|
+
this._ignoreFocusedDateChange = true;
|
|
25506
|
+
if (!dateEquals(parsedDate, this._focusedDate)) {
|
|
25507
|
+
this._focusedDate = parsedDate;
|
|
25441
25508
|
}
|
|
25509
|
+
this._ignoreFocusedDateChange = false;
|
|
25510
|
+
}
|
|
25511
|
+
|
|
25512
|
+
this.__setEnteredDate(parsedDate);
|
|
25513
|
+
}
|
|
25514
|
+
|
|
25515
|
+
/**
|
|
25516
|
+
* @param {Date} date
|
|
25517
|
+
* @private
|
|
25518
|
+
*/
|
|
25519
|
+
__setEnteredDate(date) {
|
|
25520
|
+
if (date) {
|
|
25521
|
+
if (!dateEquals(this.__enteredDate, date)) {
|
|
25522
|
+
this.__enteredDate = date;
|
|
25523
|
+
}
|
|
25524
|
+
} else if (this.__enteredDate != null) {
|
|
25525
|
+
// Do not override initial undefined value with null
|
|
25526
|
+
// to avoid triggering a Lit update that can cause
|
|
25527
|
+
// other scheduled properties to flush too early.
|
|
25528
|
+
this.__enteredDate = null;
|
|
25442
25529
|
}
|
|
25443
25530
|
}
|
|
25444
25531
|
|
|
@@ -25722,6 +25809,7 @@ class DatePicker extends DatePickerMixin(InputControlMixin(ThemableMixin(Element
|
|
|
25722
25809
|
|
|
25723
25810
|
/** @private */
|
|
25724
25811
|
_onVaadinOverlayClose(e) {
|
|
25812
|
+
// Prevent closing the overlay on label element click
|
|
25725
25813
|
if (e.detail.sourceEvent && e.detail.sourceEvent.composedPath().includes(this)) {
|
|
25726
25814
|
e.preventDefault();
|
|
25727
25815
|
}
|
|
@@ -38570,7 +38658,7 @@ const InputFieldMixin = (superclass) =>
|
|
|
38570
38658
|
// Do not validate when focusout is caused by document
|
|
38571
38659
|
// losing focus, which happens on browser tab switch.
|
|
38572
38660
|
if (!focused && document.hasFocus()) {
|
|
38573
|
-
this.
|
|
38661
|
+
this._requestValidation();
|
|
38574
38662
|
}
|
|
38575
38663
|
}
|
|
38576
38664
|
|
|
@@ -38585,7 +38673,7 @@ const InputFieldMixin = (superclass) =>
|
|
|
38585
38673
|
super._onInput(event);
|
|
38586
38674
|
|
|
38587
38675
|
if (this.invalid) {
|
|
38588
|
-
this.
|
|
38676
|
+
this._requestValidation();
|
|
38589
38677
|
}
|
|
38590
38678
|
}
|
|
38591
38679
|
|
|
@@ -38606,7 +38694,7 @@ const InputFieldMixin = (superclass) =>
|
|
|
38606
38694
|
}
|
|
38607
38695
|
|
|
38608
38696
|
if (this.invalid) {
|
|
38609
|
-
this.
|
|
38697
|
+
this._requestValidation();
|
|
38610
38698
|
}
|
|
38611
38699
|
}
|
|
38612
38700
|
};
|
|
@@ -38800,24 +38888,6 @@ class TextField extends TextFieldMixin(ThemableMixin(ElementMixin(PolymerElement
|
|
|
38800
38888
|
`;
|
|
38801
38889
|
}
|
|
38802
38890
|
|
|
38803
|
-
static get properties() {
|
|
38804
|
-
return {
|
|
38805
|
-
/**
|
|
38806
|
-
* Maximum number of characters (in Unicode code points) that the user can enter.
|
|
38807
|
-
*/
|
|
38808
|
-
maxlength: {
|
|
38809
|
-
type: Number,
|
|
38810
|
-
},
|
|
38811
|
-
|
|
38812
|
-
/**
|
|
38813
|
-
* Minimum number of characters (in Unicode code points) that the user can enter.
|
|
38814
|
-
*/
|
|
38815
|
-
minlength: {
|
|
38816
|
-
type: Number,
|
|
38817
|
-
},
|
|
38818
|
-
};
|
|
38819
|
-
}
|
|
38820
|
-
|
|
38821
38891
|
/** @protected */
|
|
38822
38892
|
ready() {
|
|
38823
38893
|
super.ready();
|
|
@@ -43840,6 +43910,7 @@ const ComboBoxMixin = (subclass) =>
|
|
|
43840
43910
|
/**
|
|
43841
43911
|
* Override LitElement lifecycle callback to handle filter property change.
|
|
43842
43912
|
* @param {Object} props
|
|
43913
|
+
* @protected
|
|
43843
43914
|
*/
|
|
43844
43915
|
updated(props) {
|
|
43845
43916
|
super.updated(props);
|
|
@@ -44561,7 +44632,7 @@ const ComboBoxMixin = (subclass) =>
|
|
|
44561
44632
|
// Do not validate when focusout is caused by document
|
|
44562
44633
|
// losing focus, which happens on browser tab switch.
|
|
44563
44634
|
if (document.hasFocus()) {
|
|
44564
|
-
this.
|
|
44635
|
+
this._requestValidation();
|
|
44565
44636
|
}
|
|
44566
44637
|
|
|
44567
44638
|
if (this.value !== this._lastCommittedValue) {
|