@ionic/core 8.7.3-dev.11755622775.1fc05815 → 8.7.3-dev.11755697669.1be2024b
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/components/ion-datetime.js +4 -3
- package/components/ion-input.js +5 -36
- package/components/ion-textarea.js +4 -35
- package/components/overlays.js +15 -6
- package/components/picker-column-option.js +3 -3
- package/components/picker-column.js +3 -39
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/ion-alert.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-input.cjs.entry.js +5 -35
- package/dist/cjs/ion-loading.cjs.entry.js +1 -1
- package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column.cjs.entry.js +3 -39
- package/dist/cjs/ion-popover.cjs.entry.js +1 -1
- package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-textarea.cjs.entry.js +4 -34
- package/dist/cjs/ion-toast.cjs.entry.js +1 -1
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{overlays-CglR7j-u.js → overlays-Ca4z9krz.js} +15 -6
- package/dist/collection/components/datetime/datetime.js +4 -3
- package/dist/collection/components/input/input.js +6 -37
- package/dist/collection/components/picker-column/picker-column.js +3 -39
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +2 -2
- package/dist/collection/components/picker-column-option/picker-column-option.js +1 -1
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +2 -2
- package/dist/collection/components/textarea/textarea.js +5 -36
- package/dist/collection/utils/overlays.js +15 -6
- package/dist/docs.json +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +1 -1
- package/dist/esm/ion-alert.entry.js +1 -1
- package/dist/esm/ion-datetime_3.entry.js +4 -4
- package/dist/esm/ion-input.entry.js +5 -35
- package/dist/esm/ion-loading.entry.js +1 -1
- package/dist/esm/ion-menu_3.entry.js +1 -1
- package/dist/esm/ion-modal.entry.js +1 -1
- package/dist/esm/ion-picker-column-option.entry.js +3 -3
- package/dist/esm/ion-picker-column.entry.js +3 -39
- package/dist/esm/ion-popover.entry.js +1 -1
- package/dist/esm/ion-select-modal.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +1 -1
- package/dist/esm/ion-textarea.entry.js +4 -34
- package/dist/esm/ion-toast.entry.js +1 -1
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{overlays-ZX_4-t_r.js → overlays-C14Rvrme.js} +15 -6
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-91d6ccb0.entry.js → p-05baca9e.entry.js} +1 -1
- package/dist/ionic/p-1488b7cc.entry.js +4 -0
- package/dist/ionic/{p-7bac2c5f.entry.js → p-1be8ffce.entry.js} +1 -1
- package/dist/ionic/p-2e296f4a.entry.js +4 -0
- package/dist/ionic/{p-ac434970.entry.js → p-31393988.entry.js} +1 -1
- package/dist/ionic/{p-982fe1c4.entry.js → p-3c51f2cd.entry.js} +1 -1
- package/dist/ionic/{p-92e8f208.entry.js → p-5b64a786.entry.js} +1 -1
- package/dist/ionic/{p-8d96a0cd.entry.js → p-6d655180.entry.js} +1 -1
- package/dist/ionic/p-8888efe4.entry.js +4 -0
- package/dist/ionic/p-DMk_cMN9.js +4 -0
- package/dist/ionic/{p-c575e7ce.entry.js → p-a67512ba.entry.js} +1 -1
- package/dist/ionic/{p-ab33ef20.entry.js → p-b1c70f1c.entry.js} +1 -1
- package/dist/ionic/p-b292804d.entry.js +4 -0
- package/dist/ionic/{p-f2884bc2.entry.js → p-b6432111.entry.js} +1 -1
- package/dist/ionic/p-c5210d3e.entry.js +4 -0
- package/dist/types/components/input/input.d.ts +0 -9
- package/dist/types/components/picker-column/picker-column.d.ts +0 -7
- package/dist/types/components/textarea/textarea.d.ts +0 -9
- package/hydrate/index.js +33 -96
- package/hydrate/index.mjs +33 -96
- package/package.json +1 -1
- package/dist/ionic/p-187aaf4a.entry.js +0 -4
- package/dist/ionic/p-1d5b934a.entry.js +0 -4
- package/dist/ionic/p-1e34d434.entry.js +0 -4
- package/dist/ionic/p-29032e49.entry.js +0 -4
- package/dist/ionic/p-CSwZyt05.js +0 -4
- package/dist/ionic/p-f456d176.entry.js +0 -4
package/hydrate/index.js
CHANGED
|
@@ -6167,16 +6167,20 @@ const setRootAriaHidden = (hidden = false) => {
|
|
|
6167
6167
|
}
|
|
6168
6168
|
if (hidden) {
|
|
6169
6169
|
viewContainer.setAttribute('aria-hidden', 'true');
|
|
6170
|
+
viewContainer.setAttribute('inert', '');
|
|
6170
6171
|
}
|
|
6171
6172
|
else {
|
|
6172
6173
|
viewContainer.removeAttribute('aria-hidden');
|
|
6174
|
+
viewContainer.removeAttribute('inert');
|
|
6173
6175
|
}
|
|
6174
6176
|
};
|
|
6175
6177
|
const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
|
|
6176
|
-
var _a, _b;
|
|
6178
|
+
var _a, _b, _c;
|
|
6177
6179
|
if (overlay.presented) {
|
|
6178
6180
|
return;
|
|
6179
6181
|
}
|
|
6182
|
+
console.log("presenting overlay...");
|
|
6183
|
+
(_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.blur();
|
|
6180
6184
|
/**
|
|
6181
6185
|
* Due to accessibility guidelines, toasts do not have
|
|
6182
6186
|
* focus traps.
|
|
@@ -6192,7 +6196,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
6192
6196
|
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
6193
6197
|
overlay.presented = true;
|
|
6194
6198
|
overlay.willPresent.emit();
|
|
6195
|
-
(
|
|
6199
|
+
(_b = overlay.willPresentShorthand) === null || _b === void 0 ? void 0 : _b.emit();
|
|
6196
6200
|
const mode = getIonMode$1(overlay);
|
|
6197
6201
|
// get the user's animation fn if one was provided
|
|
6198
6202
|
const animationBuilder = overlay.enterAnimation
|
|
@@ -6201,7 +6205,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
6201
6205
|
const completed = await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
|
|
6202
6206
|
if (completed) {
|
|
6203
6207
|
overlay.didPresent.emit();
|
|
6204
|
-
(
|
|
6208
|
+
(_c = overlay.didPresentShorthand) === null || _c === void 0 ? void 0 : _c.emit();
|
|
6205
6209
|
}
|
|
6206
6210
|
/**
|
|
6207
6211
|
* When an overlay that steals focus
|
|
@@ -6236,6 +6240,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
6236
6240
|
* screen readers.
|
|
6237
6241
|
*/
|
|
6238
6242
|
overlay.el.removeAttribute('aria-hidden');
|
|
6243
|
+
overlay.el.removeAttribute('inert');
|
|
6239
6244
|
};
|
|
6240
6245
|
/**
|
|
6241
6246
|
* When an overlay component is dismissed,
|
|
@@ -6287,10 +6292,11 @@ const restoreElementFocus = async (overlayEl) => {
|
|
|
6287
6292
|
}
|
|
6288
6293
|
};
|
|
6289
6294
|
const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnimation, opts) => {
|
|
6290
|
-
var _a, _b;
|
|
6295
|
+
var _a, _b, _c;
|
|
6291
6296
|
if (!overlay.presented) {
|
|
6292
6297
|
return false;
|
|
6293
6298
|
}
|
|
6299
|
+
(_a = document.activeElement) === null || _a === void 0 ? void 0 : _a.blur();
|
|
6294
6300
|
const presentedOverlays = doc !== undefined ? getPresentedOverlays(doc) : [];
|
|
6295
6301
|
/**
|
|
6296
6302
|
* For accessibility, toasts lack focus traps and don't receive
|
|
@@ -6324,7 +6330,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
6324
6330
|
// Overlay contents should not be clickable during dismiss
|
|
6325
6331
|
overlay.el.style.setProperty('pointer-events', 'none');
|
|
6326
6332
|
overlay.willDismiss.emit({ data, role });
|
|
6327
|
-
(
|
|
6333
|
+
(_b = overlay.willDismissShorthand) === null || _b === void 0 ? void 0 : _b.emit({ data, role });
|
|
6328
6334
|
const mode = getIonMode$1(overlay);
|
|
6329
6335
|
const animationBuilder = overlay.leaveAnimation
|
|
6330
6336
|
? overlay.leaveAnimation
|
|
@@ -6334,7 +6340,7 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
6334
6340
|
await overlayAnimation(overlay, animationBuilder, overlay.el, opts);
|
|
6335
6341
|
}
|
|
6336
6342
|
overlay.didDismiss.emit({ data, role });
|
|
6337
|
-
(
|
|
6343
|
+
(_c = overlay.didDismissShorthand) === null || _c === void 0 ? void 0 : _c.emit({ data, role });
|
|
6338
6344
|
// Get a reference to all animations currently assigned to this overlay
|
|
6339
6345
|
// Then tear them down to return the overlay to its initial visual state
|
|
6340
6346
|
const animations = activeAnimations.get(overlay) || [];
|
|
@@ -6584,6 +6590,7 @@ const hideAnimatingOverlayFromScreenReaders = (overlay) => {
|
|
|
6584
6590
|
* This is done at the end of the `present` method.
|
|
6585
6591
|
*/
|
|
6586
6592
|
overlay.setAttribute('aria-hidden', 'true');
|
|
6593
|
+
overlay.setAttribute('inert', '');
|
|
6587
6594
|
}
|
|
6588
6595
|
};
|
|
6589
6596
|
/**
|
|
@@ -6611,6 +6618,7 @@ const hideUnderlyingOverlaysFromScreenReaders = (newTopMostOverlay) => {
|
|
|
6611
6618
|
*/
|
|
6612
6619
|
if (nextPresentedOverlay.hasAttribute('aria-hidden') || nextPresentedOverlay.tagName !== 'ION-TOAST') {
|
|
6613
6620
|
presentedOverlay.setAttribute('aria-hidden', 'true');
|
|
6621
|
+
presentedOverlay.setAttribute('inert', '');
|
|
6614
6622
|
}
|
|
6615
6623
|
}
|
|
6616
6624
|
};
|
|
@@ -6632,6 +6640,7 @@ const revealOverlaysToScreenReaders = () => {
|
|
|
6632
6640
|
* overlay too so focus can move there since focus is never automatically moved to the Toast.
|
|
6633
6641
|
*/
|
|
6634
6642
|
currentOverlay.removeAttribute('aria-hidden');
|
|
6643
|
+
currentOverlay.removeAttribute('inert');
|
|
6635
6644
|
/**
|
|
6636
6645
|
* If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
|
|
6637
6646
|
* since this overlay should always receive focus. As a result, all underlying overlays should still
|
|
@@ -13531,7 +13540,7 @@ class Datetime {
|
|
|
13531
13540
|
const renderArray = forcePresentation === 'time-date'
|
|
13532
13541
|
? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
|
|
13533
13542
|
: [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
|
|
13534
|
-
return hAsync("ion-picker",
|
|
13543
|
+
return hAsync("ion-picker", { class: FOCUS_TRAP_DISABLE_CLASS }, renderArray);
|
|
13535
13544
|
}
|
|
13536
13545
|
renderDatePickerColumns(forcePresentation) {
|
|
13537
13546
|
return forcePresentation === 'date-time' || forcePresentation === 'time-date'
|
|
@@ -14088,7 +14097,7 @@ class Datetime {
|
|
|
14088
14097
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
14089
14098
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
14090
14099
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
14091
|
-
return (hAsync(Host, { key: '
|
|
14100
|
+
return (hAsync(Host, { key: '57492534800ea059a7c2bbd9f0059cc0b75ae8d2', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
|
|
14092
14101
|
[mode]: true,
|
|
14093
14102
|
['datetime-readonly']: readonly,
|
|
14094
14103
|
['datetime-disabled']: disabled,
|
|
@@ -14098,7 +14107,7 @@ class Datetime {
|
|
|
14098
14107
|
[`datetime-size-${size}`]: true,
|
|
14099
14108
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
14100
14109
|
[`datetime-grid`]: isGridStyle,
|
|
14101
|
-
})) }, hAsync("div", { key: '
|
|
14110
|
+
})) }, hAsync("div", { key: '97dac5e5195635ac0bc5fb472b9d09e5c3c6bbc3', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
14102
14111
|
}
|
|
14103
14112
|
get el() { return getElement(this); }
|
|
14104
14113
|
static get watchers() { return {
|
|
@@ -16629,10 +16638,6 @@ class Input {
|
|
|
16629
16638
|
* is applied in both cases.
|
|
16630
16639
|
*/
|
|
16631
16640
|
this.hasFocus = false;
|
|
16632
|
-
/**
|
|
16633
|
-
* Track validation state for proper aria-live announcements
|
|
16634
|
-
*/
|
|
16635
|
-
this.isInvalid = false;
|
|
16636
16641
|
/**
|
|
16637
16642
|
* Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
|
|
16638
16643
|
* Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
|
|
@@ -16816,18 +16821,10 @@ class Input {
|
|
|
16816
16821
|
componentWillLoad() {
|
|
16817
16822
|
this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes$1(this.el, ['tabindex', 'title', 'data-form-type', 'dir']));
|
|
16818
16823
|
}
|
|
16819
|
-
/**
|
|
16820
|
-
* Checks if the input is in an invalid state based on validation classes
|
|
16821
|
-
*/
|
|
16822
|
-
checkValidationState() {
|
|
16823
|
-
return this.el.classList.contains('ion-touched') && this.el.classList.contains('ion-invalid');
|
|
16824
|
-
}
|
|
16825
16824
|
connectedCallback() {
|
|
16826
16825
|
const { el } = this;
|
|
16827
16826
|
this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () => forceUpdate());
|
|
16828
16827
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
16829
|
-
// Always set initial state
|
|
16830
|
-
this.isInvalid = this.checkValidationState();
|
|
16831
16828
|
this.debounceChanged();
|
|
16832
16829
|
}
|
|
16833
16830
|
componentDidLoad() {
|
|
@@ -16854,11 +16851,6 @@ class Input {
|
|
|
16854
16851
|
this.notchController.destroy();
|
|
16855
16852
|
this.notchController = undefined;
|
|
16856
16853
|
}
|
|
16857
|
-
// Clean up validation observer to prevent memory leaks
|
|
16858
|
-
if (this.validationObserver) {
|
|
16859
|
-
this.validationObserver.disconnect();
|
|
16860
|
-
this.validationObserver = undefined;
|
|
16861
|
-
}
|
|
16862
16854
|
}
|
|
16863
16855
|
/**
|
|
16864
16856
|
* Sets focus on the native `input` in `ion-input`. Use this method instead of the global
|
|
@@ -16967,8 +16959,8 @@ class Input {
|
|
|
16967
16959
|
];
|
|
16968
16960
|
}
|
|
16969
16961
|
getHintTextID() {
|
|
16970
|
-
const {
|
|
16971
|
-
if (
|
|
16962
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
16963
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
16972
16964
|
return errorTextId;
|
|
16973
16965
|
}
|
|
16974
16966
|
if (helperText) {
|
|
@@ -17081,7 +17073,7 @@ class Input {
|
|
|
17081
17073
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
17082
17074
|
*/
|
|
17083
17075
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
17084
|
-
return (hAsync(Host, { key: '
|
|
17076
|
+
return (hAsync(Host, { key: '41b2526627e7d2773a80f011b123284203a71ca0', class: createColorClasses$1(this.color, {
|
|
17085
17077
|
[mode]: true,
|
|
17086
17078
|
'has-value': hasValue,
|
|
17087
17079
|
'has-focus': hasFocus,
|
|
@@ -17092,14 +17084,14 @@ class Input {
|
|
|
17092
17084
|
'in-item': inItem,
|
|
17093
17085
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
17094
17086
|
'input-disabled': disabled,
|
|
17095
|
-
}) }, hAsync("label", { key: '
|
|
17087
|
+
}) }, hAsync("label", { key: '9ab078363e32528102b441ad1791d83f86fdcbdc', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: 'e34b594980ec62e4c618e827fadf7669a39ad0d8', class: "native-wrapper", onClick: this.onLabelClick }, hAsync("slot", { key: '12dc04ead5502e9e5736240e918bf9331bf7b5d9', name: "start" }), hAsync("input", Object.assign({ key: 'df356eb4ced23109b2c0242f36dc043aba8782d6', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes)), this.clearInput && !readonly && !disabled && (hAsync("button", { key: 'f79f68cabcd4ea99419331174a377827db0c0741', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
17096
17088
|
/**
|
|
17097
17089
|
* This prevents mobile browsers from
|
|
17098
17090
|
* blurring the input when the clear
|
|
17099
17091
|
* button is activated.
|
|
17100
17092
|
*/
|
|
17101
17093
|
ev.preventDefault();
|
|
17102
|
-
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '
|
|
17094
|
+
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '237ec07ec2e10f08818a332bb596578c2c49f770', "aria-hidden": "true", icon: clearIconData }))), hAsync("slot", { key: '1f0a3624aa3e8dc3c307a6762230ab698768a5e5', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '8a8cbb82695a722a0010b53dd0b1f1f97534a20b', class: "input-highlight" })), this.renderBottomContent()));
|
|
17103
17095
|
}
|
|
17104
17096
|
get el() { return getElement(this); }
|
|
17105
17097
|
static get watchers() { return {
|
|
@@ -17151,7 +17143,6 @@ class Input {
|
|
|
17151
17143
|
"type": [1],
|
|
17152
17144
|
"value": [1032],
|
|
17153
17145
|
"hasFocus": [32],
|
|
17154
|
-
"isInvalid": [32],
|
|
17155
17146
|
"setFocus": [64],
|
|
17156
17147
|
"getInputElement": [64]
|
|
17157
17148
|
},
|
|
@@ -25522,23 +25513,6 @@ class PickerColumn {
|
|
|
25522
25513
|
var _a;
|
|
25523
25514
|
return el ? (_a = el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : el.innerText : '';
|
|
25524
25515
|
};
|
|
25525
|
-
/**
|
|
25526
|
-
* Render an element that overlays the column. This element is for assistive
|
|
25527
|
-
* tech to allow users to navigate the column up/down. This element should receive
|
|
25528
|
-
* focus as it listens for synthesized keyboard events as required by the
|
|
25529
|
-
* slider role: https://developer.mozilla.org/en-US/docs/Web/Accessibility/ARIA/Roles/slider_role
|
|
25530
|
-
*/
|
|
25531
|
-
this.renderAssistiveFocusable = () => {
|
|
25532
|
-
const { activeItem } = this;
|
|
25533
|
-
const valueText = this.getOptionValueText(activeItem);
|
|
25534
|
-
/**
|
|
25535
|
-
* When using the picker, the valuetext provides important context that valuenow
|
|
25536
|
-
* does not. Additionally, using non-zero valuemin/valuemax values can cause
|
|
25537
|
-
* WebKit to incorrectly announce numeric valuetext values (such as a year
|
|
25538
|
-
* like "2024") as percentages: https://bugs.webkit.org/show_bug.cgi?id=273126
|
|
25539
|
-
*/
|
|
25540
|
-
return (hAsync("div", { ref: (el) => (this.assistiveFocusable = el), class: "assistive-focusable", role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": valueText, "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }));
|
|
25541
|
-
};
|
|
25542
25516
|
}
|
|
25543
25517
|
ariaLabelChanged(newValue) {
|
|
25544
25518
|
this.ariaLabel = newValue;
|
|
@@ -25679,33 +25653,14 @@ class PickerColumn {
|
|
|
25679
25653
|
render() {
|
|
25680
25654
|
const { color, disabled, isActive, numericInput } = this;
|
|
25681
25655
|
const mode = getIonMode$1(this);
|
|
25682
|
-
return (hAsync(Host, { key: '
|
|
25656
|
+
return (hAsync(Host, { key: 'db903fd415f8a2d91994dececca481c1af8ba6a9', class: createColorClasses$1(color, {
|
|
25683
25657
|
[mode]: true,
|
|
25684
25658
|
['picker-column-active']: isActive,
|
|
25685
25659
|
['picker-column-numeric-input']: numericInput,
|
|
25686
25660
|
['picker-column-disabled']: disabled,
|
|
25687
|
-
}) },
|
|
25661
|
+
}) }, hAsync("slot", { key: '02ce9e1dd7df91afcd50b06416552bcffb5dec98', name: "prefix" }), hAsync("div", { key: '6dfd7d2429bec19244a6b1afb4448121963a031b', class: "picker-opts", ref: (el) => {
|
|
25688
25662
|
this.scrollEl = el;
|
|
25689
|
-
},
|
|
25690
|
-
/**
|
|
25691
|
-
* When an element has an overlay scroll style and
|
|
25692
|
-
* a fixed height, Firefox will focus the scrollable
|
|
25693
|
-
* container if the content exceeds the container's
|
|
25694
|
-
* dimensions.
|
|
25695
|
-
*
|
|
25696
|
-
* This causes keyboard navigation to focus to this
|
|
25697
|
-
* element instead of going to the next element in
|
|
25698
|
-
* the tab order.
|
|
25699
|
-
*
|
|
25700
|
-
* The desired behavior is for the user to be able to
|
|
25701
|
-
* focus the assistive focusable element and tab to
|
|
25702
|
-
* the next element in the tab order. Instead of tabbing
|
|
25703
|
-
* to this element.
|
|
25704
|
-
*
|
|
25705
|
-
* To prevent this, we set the tabIndex to -1. This
|
|
25706
|
-
* will match the behavior of the other browsers.
|
|
25707
|
-
*/
|
|
25708
|
-
tabIndex: -1 }, hAsync("div", { key: '13a9ee686132af32240710730765de4c0003a9e8', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'dbccba4920833cfcebe9b0fc763458ec3053705a', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '682b43f83a5ea2e46067457f3af118535e111edb', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: 'd27e1e1dc0504b2f4627a29912a05bb91e8e413a' }), hAsync("div", { key: '61c948dbb9cf7469aed3018542bc0954211585ba', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'cf46c277fbee65e35ff44ce0d53ce12aa9cbf9db', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'bbc0e2d491d3f836ab849493ade2f7fa6ad9244e', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: 'd25cbbe14b2914fe7b878d43b4e3f4a8c8177d24', name: "suffix" })));
|
|
25663
|
+
}, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, hAsync("div", { key: 'e30ce0b9cefbfe4d4441fa33acf595da31855c3f', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '8be2bd293c12c6ba720d9b31d0d561a96f42e97d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '8afdcddddabbf646fbb55cb0ba4448309a2c1dd9', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '6aa0dacc34d6848575ad5b122b9046982308ca43' }), hAsync("div", { key: '92ec8a357414c1b779b11d1dd18fb87a7ee63982', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'b89457cb74b5907c25594ff6720ac54ca537e933', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '5bbc92e6bc24de08e39873bf08c5b668373ac0f8', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: 'd7bf2b519214f0f3576a4ca79844ad97827dd97f', name: "suffix" })));
|
|
25709
25664
|
}
|
|
25710
25665
|
get el() { return getElement(this); }
|
|
25711
25666
|
static get watchers() { return {
|
|
@@ -26097,9 +26052,9 @@ const DECELERATION_FRICTION = 0.97;
|
|
|
26097
26052
|
const MAX_PICKER_SPEED = 90;
|
|
26098
26053
|
const TRANSITION_DURATION = 150;
|
|
26099
26054
|
|
|
26100
|
-
const pickerColumnOptionIosCss = "button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) button{cursor:default}";
|
|
26055
|
+
const pickerColumnOptionIosCss = ".picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}";
|
|
26101
26056
|
|
|
26102
|
-
const pickerColumnOptionMdCss = "button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) button{cursor:default}:host(.option-active){color:var(--ion-color-base)}";
|
|
26057
|
+
const pickerColumnOptionMdCss = ".picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}:host(.option-active){color:var(--ion-color-base)}";
|
|
26103
26058
|
|
|
26104
26059
|
class PickerColumnOption {
|
|
26105
26060
|
constructor(hostRef) {
|
|
@@ -26191,7 +26146,7 @@ class PickerColumnOption {
|
|
|
26191
26146
|
return (hAsync(Host, { key: 'f816729941aabcb31ddfdce3ffe2e2139030d715', class: createColorClasses$1(color, {
|
|
26192
26147
|
[mode]: true,
|
|
26193
26148
|
['option-disabled']: disabled,
|
|
26194
|
-
}) }, hAsync("
|
|
26149
|
+
}) }, hAsync("div", { key: 'd942de84fd14d7dc06b1e5cf4f7920d1dc3c6371', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: 'b0df5717b42209e649097209a01476e1a66f5c5c' }))));
|
|
26195
26150
|
}
|
|
26196
26151
|
get el() { return getElement(this); }
|
|
26197
26152
|
static get watchers() { return {
|
|
@@ -34911,10 +34866,6 @@ class Textarea {
|
|
|
34911
34866
|
* is applied in both cases.
|
|
34912
34867
|
*/
|
|
34913
34868
|
this.hasFocus = false;
|
|
34914
|
-
/**
|
|
34915
|
-
* Track validation state for proper aria-live announcements
|
|
34916
|
-
*/
|
|
34917
|
-
this.isInvalid = false;
|
|
34918
34869
|
/**
|
|
34919
34870
|
* Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
|
|
34920
34871
|
* Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
|
|
@@ -35060,18 +35011,10 @@ class Textarea {
|
|
|
35060
35011
|
this.el.click();
|
|
35061
35012
|
}
|
|
35062
35013
|
}
|
|
35063
|
-
/**
|
|
35064
|
-
* Checks if the textarea is in an invalid state based on validation classes
|
|
35065
|
-
*/
|
|
35066
|
-
checkValidationState() {
|
|
35067
|
-
return this.el.classList.contains('ion-touched') && this.el.classList.contains('ion-invalid');
|
|
35068
|
-
}
|
|
35069
35014
|
connectedCallback() {
|
|
35070
35015
|
const { el } = this;
|
|
35071
35016
|
this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () => forceUpdate());
|
|
35072
35017
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
35073
|
-
// Always set initial state
|
|
35074
|
-
this.isInvalid = this.checkValidationState();
|
|
35075
35018
|
this.debounceChanged();
|
|
35076
35019
|
}
|
|
35077
35020
|
disconnectedCallback() {
|
|
@@ -35083,11 +35026,6 @@ class Textarea {
|
|
|
35083
35026
|
this.notchController.destroy();
|
|
35084
35027
|
this.notchController = undefined;
|
|
35085
35028
|
}
|
|
35086
|
-
// Clean up validation observer to prevent memory leaks
|
|
35087
|
-
if (this.validationObserver) {
|
|
35088
|
-
this.validationObserver.disconnect();
|
|
35089
|
-
this.validationObserver = undefined;
|
|
35090
|
-
}
|
|
35091
35029
|
}
|
|
35092
35030
|
componentWillLoad() {
|
|
35093
35031
|
this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes$1(this.el, ['data-form-type', 'title', 'tabindex', 'dir']));
|
|
@@ -35265,8 +35203,8 @@ class Textarea {
|
|
|
35265
35203
|
];
|
|
35266
35204
|
}
|
|
35267
35205
|
getHintTextID() {
|
|
35268
|
-
const {
|
|
35269
|
-
if (
|
|
35206
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
35207
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
35270
35208
|
return errorTextId;
|
|
35271
35209
|
}
|
|
35272
35210
|
if (helperText) {
|
|
@@ -35325,7 +35263,7 @@ class Textarea {
|
|
|
35325
35263
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
35326
35264
|
*/
|
|
35327
35265
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
35328
|
-
return (hAsync(Host, { key: '
|
|
35266
|
+
return (hAsync(Host, { key: 'd9f2ede0107987fc42c99e310cd2336bad5a5755', class: createColorClasses$1(this.color, {
|
|
35329
35267
|
[mode]: true,
|
|
35330
35268
|
'has-value': hasValue,
|
|
35331
35269
|
'has-focus': hasFocus,
|
|
@@ -35334,7 +35272,7 @@ class Textarea {
|
|
|
35334
35272
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
35335
35273
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
35336
35274
|
'textarea-disabled': disabled,
|
|
35337
|
-
}) }, hAsync("label", { key: '
|
|
35275
|
+
}) }, hAsync("label", { key: '9de598b95237462bb3bccffaefe83afbb43554b8', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: 'e33c426c6541d723ccc246bb404c03687726ff83', class: "textarea-wrapper-inner" }, hAsync("div", { key: '521e11af9d54d281b0a2b1c25bcfc6f742c18296', class: "start-slot-wrapper" }, hAsync("slot", { key: '515523f6ca3ce0e5dd08f3275c21a190fb1ca177', name: "start" })), hAsync("div", { key: '916e01e00de8400ae00ef06bc1fb62d8be2eee08', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '810271e6532d90e27dab1fcb26546113c1ce9cb0', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId }, this.inheritedAttributes), value)), hAsync("div", { key: '80aca9ea9546dca9d38efd291a6b0be384bb6978', class: "end-slot-wrapper" }, hAsync("slot", { key: '407fab16c66a9f4a542369bfecc0d9afa0065977', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: 'f00523a6698fac8a1996e04303487bef01d10f25', class: "textarea-highlight" })), this.renderBottomContent()));
|
|
35338
35276
|
}
|
|
35339
35277
|
get el() { return getElement(this); }
|
|
35340
35278
|
static get watchers() { return {
|
|
@@ -35379,7 +35317,6 @@ class Textarea {
|
|
|
35379
35317
|
"labelPlacement": [1, "label-placement"],
|
|
35380
35318
|
"shape": [1],
|
|
35381
35319
|
"hasFocus": [32],
|
|
35382
|
-
"isInvalid": [32],
|
|
35383
35320
|
"setFocus": [64],
|
|
35384
35321
|
"getInputElement": [64]
|
|
35385
35322
|
},
|