@ionic/core 8.7.3-dev.11755622775.1fc05815 → 8.7.3-dev.11755696506.17b8097b
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 +7 -1
- 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-DFkeeMZX.js} +7 -1
- 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 +7 -1
- 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-BfCgLYdD.js} +7 -1
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-1488b7cc.entry.js +4 -0
- package/dist/ionic/{p-ab33ef20.entry.js → p-1e6a6fde.entry.js} +1 -1
- package/dist/ionic/{p-982fe1c4.entry.js → p-31f7216f.entry.js} +1 -1
- package/dist/ionic/{p-c575e7ce.entry.js → p-4d57f91a.entry.js} +1 -1
- package/dist/ionic/p-5c138549.entry.js +4 -0
- package/dist/ionic/p-8888efe4.entry.js +4 -0
- package/dist/ionic/{p-92e8f208.entry.js → p-9f8f01e6.entry.js} +1 -1
- package/dist/ionic/p-b292804d.entry.js +4 -0
- package/dist/ionic/{p-91d6ccb0.entry.js → p-b92a19c8.entry.js} +1 -1
- package/dist/ionic/p-c5210d3e.entry.js +4 -0
- package/dist/ionic/{p-f2884bc2.entry.js → p-e206b074.entry.js} +1 -1
- package/dist/ionic/{p-7bac2c5f.entry.js → p-e61fd4b2.entry.js} +1 -1
- package/dist/ionic/{p-ac434970.entry.js → p-eb9b64a6.entry.js} +1 -1
- package/dist/ionic/{p-8d96a0cd.entry.js → p-ef5372b6.entry.js} +1 -1
- package/dist/ionic/p-ly6Zj1CK.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 +25 -91
- package/hydrate/index.mjs +25 -91
- 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,9 +6167,11 @@ 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) => {
|
|
@@ -6177,6 +6179,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
6177
6179
|
if (overlay.presented) {
|
|
6178
6180
|
return;
|
|
6179
6181
|
}
|
|
6182
|
+
console.log("presenting overlay...");
|
|
6180
6183
|
/**
|
|
6181
6184
|
* Due to accessibility guidelines, toasts do not have
|
|
6182
6185
|
* focus traps.
|
|
@@ -6186,7 +6189,6 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
6186
6189
|
*/
|
|
6187
6190
|
if (overlay.el.tagName !== 'ION-TOAST') {
|
|
6188
6191
|
setRootAriaHidden(true);
|
|
6189
|
-
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
6190
6192
|
}
|
|
6191
6193
|
hideUnderlyingOverlaysFromScreenReaders(overlay.el);
|
|
6192
6194
|
hideAnimatingOverlayFromScreenReaders(overlay.el);
|
|
@@ -6236,6 +6238,7 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
6236
6238
|
* screen readers.
|
|
6237
6239
|
*/
|
|
6238
6240
|
overlay.el.removeAttribute('aria-hidden');
|
|
6241
|
+
overlay.el.removeAttribute('inert');
|
|
6239
6242
|
};
|
|
6240
6243
|
/**
|
|
6241
6244
|
* When an overlay component is dismissed,
|
|
@@ -6584,6 +6587,7 @@ const hideAnimatingOverlayFromScreenReaders = (overlay) => {
|
|
|
6584
6587
|
* This is done at the end of the `present` method.
|
|
6585
6588
|
*/
|
|
6586
6589
|
overlay.setAttribute('aria-hidden', 'true');
|
|
6590
|
+
overlay.setAttribute('inert', '');
|
|
6587
6591
|
}
|
|
6588
6592
|
};
|
|
6589
6593
|
/**
|
|
@@ -6611,6 +6615,7 @@ const hideUnderlyingOverlaysFromScreenReaders = (newTopMostOverlay) => {
|
|
|
6611
6615
|
*/
|
|
6612
6616
|
if (nextPresentedOverlay.hasAttribute('aria-hidden') || nextPresentedOverlay.tagName !== 'ION-TOAST') {
|
|
6613
6617
|
presentedOverlay.setAttribute('aria-hidden', 'true');
|
|
6618
|
+
presentedOverlay.setAttribute('inert', '');
|
|
6614
6619
|
}
|
|
6615
6620
|
}
|
|
6616
6621
|
};
|
|
@@ -6632,6 +6637,7 @@ const revealOverlaysToScreenReaders = () => {
|
|
|
6632
6637
|
* overlay too so focus can move there since focus is never automatically moved to the Toast.
|
|
6633
6638
|
*/
|
|
6634
6639
|
currentOverlay.removeAttribute('aria-hidden');
|
|
6640
|
+
currentOverlay.removeAttribute('inert');
|
|
6635
6641
|
/**
|
|
6636
6642
|
* If we found a non-Toast element then we can just remove aria-hidden and stop searching entirely
|
|
6637
6643
|
* since this overlay should always receive focus. As a result, all underlying overlays should still
|
|
@@ -13531,7 +13537,7 @@ class Datetime {
|
|
|
13531
13537
|
const renderArray = forcePresentation === 'time-date'
|
|
13532
13538
|
? [this.renderTimePickerColumns(forcePresentation), this.renderDatePickerColumns(forcePresentation)]
|
|
13533
13539
|
: [this.renderDatePickerColumns(forcePresentation), this.renderTimePickerColumns(forcePresentation)];
|
|
13534
|
-
return hAsync("ion-picker",
|
|
13540
|
+
return hAsync("ion-picker", { class: FOCUS_TRAP_DISABLE_CLASS }, renderArray);
|
|
13535
13541
|
}
|
|
13536
13542
|
renderDatePickerColumns(forcePresentation) {
|
|
13537
13543
|
return forcePresentation === 'date-time' || forcePresentation === 'time-date'
|
|
@@ -14088,7 +14094,7 @@ class Datetime {
|
|
|
14088
14094
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
14089
14095
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
14090
14096
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
14091
|
-
return (hAsync(Host, { key: '
|
|
14097
|
+
return (hAsync(Host, { key: '57492534800ea059a7c2bbd9f0059cc0b75ae8d2', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
|
|
14092
14098
|
[mode]: true,
|
|
14093
14099
|
['datetime-readonly']: readonly,
|
|
14094
14100
|
['datetime-disabled']: disabled,
|
|
@@ -14098,7 +14104,7 @@ class Datetime {
|
|
|
14098
14104
|
[`datetime-size-${size}`]: true,
|
|
14099
14105
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
14100
14106
|
[`datetime-grid`]: isGridStyle,
|
|
14101
|
-
})) }, hAsync("div", { key: '
|
|
14107
|
+
})) }, hAsync("div", { key: '97dac5e5195635ac0bc5fb472b9d09e5c3c6bbc3', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
14102
14108
|
}
|
|
14103
14109
|
get el() { return getElement(this); }
|
|
14104
14110
|
static get watchers() { return {
|
|
@@ -16629,10 +16635,6 @@ class Input {
|
|
|
16629
16635
|
* is applied in both cases.
|
|
16630
16636
|
*/
|
|
16631
16637
|
this.hasFocus = false;
|
|
16632
|
-
/**
|
|
16633
|
-
* Track validation state for proper aria-live announcements
|
|
16634
|
-
*/
|
|
16635
|
-
this.isInvalid = false;
|
|
16636
16638
|
/**
|
|
16637
16639
|
* Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
|
|
16638
16640
|
* Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
|
|
@@ -16816,18 +16818,10 @@ class Input {
|
|
|
16816
16818
|
componentWillLoad() {
|
|
16817
16819
|
this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes$1(this.el, ['tabindex', 'title', 'data-form-type', 'dir']));
|
|
16818
16820
|
}
|
|
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
16821
|
connectedCallback() {
|
|
16826
16822
|
const { el } = this;
|
|
16827
16823
|
this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () => forceUpdate());
|
|
16828
16824
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
16829
|
-
// Always set initial state
|
|
16830
|
-
this.isInvalid = this.checkValidationState();
|
|
16831
16825
|
this.debounceChanged();
|
|
16832
16826
|
}
|
|
16833
16827
|
componentDidLoad() {
|
|
@@ -16854,11 +16848,6 @@ class Input {
|
|
|
16854
16848
|
this.notchController.destroy();
|
|
16855
16849
|
this.notchController = undefined;
|
|
16856
16850
|
}
|
|
16857
|
-
// Clean up validation observer to prevent memory leaks
|
|
16858
|
-
if (this.validationObserver) {
|
|
16859
|
-
this.validationObserver.disconnect();
|
|
16860
|
-
this.validationObserver = undefined;
|
|
16861
|
-
}
|
|
16862
16851
|
}
|
|
16863
16852
|
/**
|
|
16864
16853
|
* Sets focus on the native `input` in `ion-input`. Use this method instead of the global
|
|
@@ -16967,8 +16956,8 @@ class Input {
|
|
|
16967
16956
|
];
|
|
16968
16957
|
}
|
|
16969
16958
|
getHintTextID() {
|
|
16970
|
-
const {
|
|
16971
|
-
if (
|
|
16959
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
16960
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
16972
16961
|
return errorTextId;
|
|
16973
16962
|
}
|
|
16974
16963
|
if (helperText) {
|
|
@@ -17081,7 +17070,7 @@ class Input {
|
|
|
17081
17070
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
17082
17071
|
*/
|
|
17083
17072
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
17084
|
-
return (hAsync(Host, { key: '
|
|
17073
|
+
return (hAsync(Host, { key: '41b2526627e7d2773a80f011b123284203a71ca0', class: createColorClasses$1(this.color, {
|
|
17085
17074
|
[mode]: true,
|
|
17086
17075
|
'has-value': hasValue,
|
|
17087
17076
|
'has-focus': hasFocus,
|
|
@@ -17092,14 +17081,14 @@ class Input {
|
|
|
17092
17081
|
'in-item': inItem,
|
|
17093
17082
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
17094
17083
|
'input-disabled': disabled,
|
|
17095
|
-
}) }, hAsync("label", { key: '
|
|
17084
|
+
}) }, 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
17085
|
/**
|
|
17097
17086
|
* This prevents mobile browsers from
|
|
17098
17087
|
* blurring the input when the clear
|
|
17099
17088
|
* button is activated.
|
|
17100
17089
|
*/
|
|
17101
17090
|
ev.preventDefault();
|
|
17102
|
-
}, onClick: this.clearTextInput }, hAsync("ion-icon", { key: '
|
|
17091
|
+
}, 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
17092
|
}
|
|
17104
17093
|
get el() { return getElement(this); }
|
|
17105
17094
|
static get watchers() { return {
|
|
@@ -17151,7 +17140,6 @@ class Input {
|
|
|
17151
17140
|
"type": [1],
|
|
17152
17141
|
"value": [1032],
|
|
17153
17142
|
"hasFocus": [32],
|
|
17154
|
-
"isInvalid": [32],
|
|
17155
17143
|
"setFocus": [64],
|
|
17156
17144
|
"getInputElement": [64]
|
|
17157
17145
|
},
|
|
@@ -25522,23 +25510,6 @@ class PickerColumn {
|
|
|
25522
25510
|
var _a;
|
|
25523
25511
|
return el ? (_a = el.getAttribute('aria-label')) !== null && _a !== void 0 ? _a : el.innerText : '';
|
|
25524
25512
|
};
|
|
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
25513
|
}
|
|
25543
25514
|
ariaLabelChanged(newValue) {
|
|
25544
25515
|
this.ariaLabel = newValue;
|
|
@@ -25679,33 +25650,14 @@ class PickerColumn {
|
|
|
25679
25650
|
render() {
|
|
25680
25651
|
const { color, disabled, isActive, numericInput } = this;
|
|
25681
25652
|
const mode = getIonMode$1(this);
|
|
25682
|
-
return (hAsync(Host, { key: '
|
|
25653
|
+
return (hAsync(Host, { key: 'db903fd415f8a2d91994dececca481c1af8ba6a9', class: createColorClasses$1(color, {
|
|
25683
25654
|
[mode]: true,
|
|
25684
25655
|
['picker-column-active']: isActive,
|
|
25685
25656
|
['picker-column-numeric-input']: numericInput,
|
|
25686
25657
|
['picker-column-disabled']: disabled,
|
|
25687
|
-
}) },
|
|
25658
|
+
}) }, hAsync("slot", { key: '02ce9e1dd7df91afcd50b06416552bcffb5dec98', name: "prefix" }), hAsync("div", { key: '6dfd7d2429bec19244a6b1afb4448121963a031b', class: "picker-opts", ref: (el) => {
|
|
25688
25659
|
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" })));
|
|
25660
|
+
}, 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
25661
|
}
|
|
25710
25662
|
get el() { return getElement(this); }
|
|
25711
25663
|
static get watchers() { return {
|
|
@@ -26097,9 +26049,9 @@ const DECELERATION_FRICTION = 0.97;
|
|
|
26097
26049
|
const MAX_PICKER_SPEED = 90;
|
|
26098
26050
|
const TRANSITION_DURATION = 150;
|
|
26099
26051
|
|
|
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}";
|
|
26052
|
+
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
26053
|
|
|
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)}";
|
|
26054
|
+
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
26055
|
|
|
26104
26056
|
class PickerColumnOption {
|
|
26105
26057
|
constructor(hostRef) {
|
|
@@ -26191,7 +26143,7 @@ class PickerColumnOption {
|
|
|
26191
26143
|
return (hAsync(Host, { key: 'f816729941aabcb31ddfdce3ffe2e2139030d715', class: createColorClasses$1(color, {
|
|
26192
26144
|
[mode]: true,
|
|
26193
26145
|
['option-disabled']: disabled,
|
|
26194
|
-
}) }, hAsync("
|
|
26146
|
+
}) }, hAsync("div", { key: 'd942de84fd14d7dc06b1e5cf4f7920d1dc3c6371', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: 'b0df5717b42209e649097209a01476e1a66f5c5c' }))));
|
|
26195
26147
|
}
|
|
26196
26148
|
get el() { return getElement(this); }
|
|
26197
26149
|
static get watchers() { return {
|
|
@@ -34911,10 +34863,6 @@ class Textarea {
|
|
|
34911
34863
|
* is applied in both cases.
|
|
34912
34864
|
*/
|
|
34913
34865
|
this.hasFocus = false;
|
|
34914
|
-
/**
|
|
34915
|
-
* Track validation state for proper aria-live announcements
|
|
34916
|
-
*/
|
|
34917
|
-
this.isInvalid = false;
|
|
34918
34866
|
/**
|
|
34919
34867
|
* Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
|
|
34920
34868
|
* Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
|
|
@@ -35060,18 +35008,10 @@ class Textarea {
|
|
|
35060
35008
|
this.el.click();
|
|
35061
35009
|
}
|
|
35062
35010
|
}
|
|
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
35011
|
connectedCallback() {
|
|
35070
35012
|
const { el } = this;
|
|
35071
35013
|
this.slotMutationController = createSlotMutationController(el, ['label', 'start', 'end'], () => forceUpdate());
|
|
35072
35014
|
this.notchController = createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
35073
|
-
// Always set initial state
|
|
35074
|
-
this.isInvalid = this.checkValidationState();
|
|
35075
35015
|
this.debounceChanged();
|
|
35076
35016
|
}
|
|
35077
35017
|
disconnectedCallback() {
|
|
@@ -35083,11 +35023,6 @@ class Textarea {
|
|
|
35083
35023
|
this.notchController.destroy();
|
|
35084
35024
|
this.notchController = undefined;
|
|
35085
35025
|
}
|
|
35086
|
-
// Clean up validation observer to prevent memory leaks
|
|
35087
|
-
if (this.validationObserver) {
|
|
35088
|
-
this.validationObserver.disconnect();
|
|
35089
|
-
this.validationObserver = undefined;
|
|
35090
|
-
}
|
|
35091
35026
|
}
|
|
35092
35027
|
componentWillLoad() {
|
|
35093
35028
|
this.inheritedAttributes = Object.assign(Object.assign({}, inheritAriaAttributes(this.el)), inheritAttributes$1(this.el, ['data-form-type', 'title', 'tabindex', 'dir']));
|
|
@@ -35265,8 +35200,8 @@ class Textarea {
|
|
|
35265
35200
|
];
|
|
35266
35201
|
}
|
|
35267
35202
|
getHintTextID() {
|
|
35268
|
-
const {
|
|
35269
|
-
if (
|
|
35203
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
35204
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
35270
35205
|
return errorTextId;
|
|
35271
35206
|
}
|
|
35272
35207
|
if (helperText) {
|
|
@@ -35325,7 +35260,7 @@ class Textarea {
|
|
|
35325
35260
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
35326
35261
|
*/
|
|
35327
35262
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
35328
|
-
return (hAsync(Host, { key: '
|
|
35263
|
+
return (hAsync(Host, { key: 'd9f2ede0107987fc42c99e310cd2336bad5a5755', class: createColorClasses$1(this.color, {
|
|
35329
35264
|
[mode]: true,
|
|
35330
35265
|
'has-value': hasValue,
|
|
35331
35266
|
'has-focus': hasFocus,
|
|
@@ -35334,7 +35269,7 @@ class Textarea {
|
|
|
35334
35269
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
35335
35270
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
35336
35271
|
'textarea-disabled': disabled,
|
|
35337
|
-
}) }, hAsync("label", { key: '
|
|
35272
|
+
}) }, 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
35273
|
}
|
|
35339
35274
|
get el() { return getElement(this); }
|
|
35340
35275
|
static get watchers() { return {
|
|
@@ -35379,7 +35314,6 @@ class Textarea {
|
|
|
35379
35314
|
"labelPlacement": [1, "label-placement"],
|
|
35380
35315
|
"shape": [1],
|
|
35381
35316
|
"hasFocus": [32],
|
|
35382
|
-
"isInvalid": [32],
|
|
35383
35317
|
"setFocus": [64],
|
|
35384
35318
|
"getInputElement": [64]
|
|
35385
35319
|
},
|