@ionic/core 8.6.3-dev.11751478001.1cb7436f → 8.6.3-nightly.20250619
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/action-sheet.js +9 -8
- package/components/alert.js +8 -7
- package/components/focus-visible.js +18 -27
- package/components/ion-app.js +1 -3
- package/components/ion-datetime.js +2 -8
- package/components/ion-loading.js +8 -7
- package/components/ion-menu.js +5 -27
- package/components/ion-reorder-group.js +2 -1
- package/components/ion-router.js +0 -1
- package/components/ion-searchbar.js +6 -4
- package/components/ion-select.js +3 -3
- package/components/ion-toast.js +7 -6
- package/components/modal.js +10 -26
- package/components/popover.js +7 -8
- package/dist/cjs/{focus-visible-ZV7jHMPt.js → focus-visible-CCvKiLh3.js} +18 -27
- package/dist/cjs/ion-action-sheet.cjs.entry.js +9 -8
- package/dist/cjs/ion-alert.cjs.entry.js +8 -7
- package/dist/cjs/ion-app_8.cjs.entry.js +2 -4
- package/dist/cjs/ion-datetime_3.cjs.entry.js +3 -9
- package/dist/cjs/ion-loading.cjs.entry.js +8 -7
- package/dist/cjs/ion-menu_3.cjs.entry.js +5 -27
- package/dist/cjs/ion-modal.cjs.entry.js +10 -26
- package/dist/cjs/ion-popover.cjs.entry.js +7 -8
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +0 -1
- package/dist/cjs/ion-searchbar.cjs.entry.js +6 -4
- package/dist/cjs/ion-select_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-toast.cjs.entry.js +7 -6
- package/dist/collection/components/action-sheet/action-sheet.js +12 -11
- package/dist/collection/components/alert/alert.js +11 -10
- package/dist/collection/components/app/app.js +3 -8
- package/dist/collection/components/datetime/datetime.js +8 -23
- package/dist/collection/components/loading/loading.js +11 -10
- package/dist/collection/components/menu/menu.js +19 -62
- package/dist/collection/components/modal/modal.js +16 -35
- package/dist/collection/components/popover/popover.js +14 -18
- package/dist/collection/components/reorder-group/reorder-group.js +3 -2
- package/dist/collection/components/router/router.js +1 -5
- package/dist/collection/components/searchbar/searchbar.js +7 -5
- package/dist/collection/components/select/select.js +3 -3
- package/dist/collection/components/toast/toast.js +10 -9
- package/dist/collection/utils/focus-visible.js +18 -27
- package/dist/docs.json +72 -138
- package/dist/esm/{focus-visible-DZ2gZBzK.js → focus-visible-BmVRXR1y.js} +18 -27
- package/dist/esm/ion-action-sheet.entry.js +9 -8
- package/dist/esm/ion-alert.entry.js +8 -7
- package/dist/esm/ion-app_8.entry.js +2 -4
- package/dist/esm/ion-datetime_3.entry.js +3 -9
- package/dist/esm/ion-loading.entry.js +8 -7
- package/dist/esm/ion-menu_3.entry.js +5 -27
- package/dist/esm/ion-modal.entry.js +10 -26
- package/dist/esm/ion-popover.entry.js +7 -8
- package/dist/esm/ion-reorder_2.entry.js +2 -1
- package/dist/esm/ion-route_4.entry.js +0 -1
- package/dist/esm/ion-searchbar.entry.js +6 -4
- package/dist/esm/ion-select_3.entry.js +3 -3
- package/dist/esm/ion-toast.entry.js +7 -6
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-b758a177.entry.js → p-2020aa51.entry.js} +1 -1
- package/dist/ionic/p-29759454.entry.js +4 -0
- package/dist/ionic/{p-e37d6c67.entry.js → p-3a4feac2.entry.js} +1 -1
- package/dist/ionic/p-4ddc10ef.entry.js +4 -0
- package/dist/ionic/{p-2d0eccfb.entry.js → p-6b666996.entry.js} +1 -1
- package/dist/ionic/p-7149db7e.entry.js +4 -0
- package/dist/ionic/{p-2d46fbe7.entry.js → p-96389029.entry.js} +1 -1
- package/dist/ionic/{p-0d131a02.entry.js → p-9e699d4a.entry.js} +1 -1
- package/dist/ionic/p-BmVRXR1y.js +4 -0
- package/dist/ionic/p-bec79123.entry.js +4 -0
- package/dist/ionic/{p-03d21728.entry.js → p-cb787a4b.entry.js} +1 -1
- package/dist/ionic/{p-d8429eb4.entry.js → p-cd12ed1c.entry.js} +1 -1
- package/dist/ionic/{p-78a61b3f.entry.js → p-ead42a37.entry.js} +1 -1
- package/dist/types/components/action-sheet/action-sheet.d.ts +6 -5
- package/dist/types/components/alert/alert.d.ts +6 -5
- package/dist/types/components/app/app.d.ts +0 -2
- package/dist/types/components/datetime/datetime.d.ts +0 -6
- package/dist/types/components/loading/loading.d.ts +6 -5
- package/dist/types/components/menu/menu.d.ts +3 -25
- package/dist/types/components/modal/modal.d.ts +6 -14
- package/dist/types/components/popover/popover.d.ts +5 -6
- package/dist/types/components/reorder-group/reorder-group.d.ts +1 -0
- package/dist/types/components/router/router.d.ts +0 -1
- package/dist/types/components/searchbar/searchbar.d.ts +2 -0
- package/dist/types/components/toast/toast.d.ts +5 -4
- package/dist/types/components.d.ts +18 -32
- package/hydrate/index.js +86 -136
- package/hydrate/index.mjs +86 -136
- package/package.json +3 -3
- package/dist/ionic/p-69f91268.entry.js +0 -4
- package/dist/ionic/p-7d5cf8c1.entry.js +0 -4
- package/dist/ionic/p-9e32212d.entry.js +0 -4
- package/dist/ionic/p-DZ2gZBzK.js +0 -4
- package/dist/ionic/p-b9ba04ca.entry.js +0 -4
|
@@ -185,15 +185,16 @@ const ActionSheet = /*@__PURE__*/ proxyCustomElement(class ActionSheet extends H
|
|
|
185
185
|
}
|
|
186
186
|
/**
|
|
187
187
|
* Dismiss the action sheet overlay after it has been presented.
|
|
188
|
-
* This is a no-op if the overlay has not been presented yet. If you want
|
|
189
|
-
* to remove an overlay from the DOM that was never presented, use the
|
|
190
|
-
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
191
188
|
*
|
|
192
189
|
* @param data Any data to emit in the dismiss events.
|
|
193
190
|
* @param role The role of the element that is dismissing the action sheet.
|
|
194
191
|
* This can be useful in a button handler for determining which button was
|
|
195
|
-
* clicked to dismiss the action sheet.
|
|
196
|
-
*
|
|
192
|
+
* clicked to dismiss the action sheet.
|
|
193
|
+
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
194
|
+
*
|
|
195
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
196
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
197
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
197
198
|
*/
|
|
198
199
|
async dismiss(data, role) {
|
|
199
200
|
const unlock = await this.lockController.lock();
|
|
@@ -305,12 +306,12 @@ const ActionSheet = /*@__PURE__*/ proxyCustomElement(class ActionSheet extends H
|
|
|
305
306
|
const cancelButton = allButtons.find((b) => b.role === 'cancel');
|
|
306
307
|
const buttons = allButtons.filter((b) => b.role !== 'cancel');
|
|
307
308
|
const headerID = `action-sheet-${overlayIndex}-header`;
|
|
308
|
-
return (h(Host, Object.assign({ key: '
|
|
309
|
+
return (h(Host, Object.assign({ key: '7bbd202ca9e19727e7514abbe073687d982f80c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
|
|
309
310
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
310
|
-
}, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '
|
|
311
|
+
}, class: Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'action-sheet-translucent': this.translucent }), onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }), h("ion-backdrop", { key: '23344a9221a2e6720d7b9de5249dc37256cafa7b', tappable: this.backdropDismiss }), h("div", { key: 'fbc2ba15549c2ab04e759e82df6e177fd80cc0a6', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '748ee5235d0b4cb26d6f1b7589f77af2e37ad28a', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, h("div", { key: '7ce5fa236cf75e9b1e49c4725c9a811078706554', class: "action-sheet-container" }, h("div", { key: 'dc2251f3bcee4a93e3449f09621cbd2b65d329e9', class: "action-sheet-group", ref: (el) => (this.groupEl = el) }, header !== undefined && (h("div", { key: '48d325c8a852f56ed57a9ada1a6709d05ba32ee2', id: headerID, class: {
|
|
311
312
|
'action-sheet-title': true,
|
|
312
313
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
313
|
-
} }, header, this.subHeader && h("div", { key: '
|
|
314
|
+
} }, header, this.subHeader && h("div", { key: '66093728052eb67f37a35f3232761ce4a08896f3', class: "action-sheet-sub-title" }, this.subHeader))), buttons.map((b) => (h("button", Object.assign({}, b.htmlAttributes, { type: "button", id: b.id, class: buttonClass(b), onClick: () => this.buttonClick(b), disabled: b.disabled }), h("span", { class: "action-sheet-button-inner" }, b.icon && h("ion-icon", { icon: b.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" }), b.text), mode === 'md' && h("ion-ripple-effect", null))))), cancelButton && (h("div", { key: 'f4eb8e3e2885b85af5080df18d0de0bdd1d719de', class: "action-sheet-group action-sheet-group-cancel" }, h("button", Object.assign({ key: '169f4eb09255aba85062baad49ceb151239fbfb7' }, cancelButton.htmlAttributes, { type: "button", class: buttonClass(cancelButton), onClick: () => this.buttonClick(cancelButton) }), h("span", { key: '25fb8a466dd67ea94c79cfb4f9965527e1ce6d42', class: "action-sheet-button-inner" }, cancelButton.icon && (h("ion-icon", { key: 'eb5b071e120a2c86afdf967af6a763a43044d1ca', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && h("ion-ripple-effect", { key: '452ad7e1052b2c681e2d98de8193949755ad4d54' })))))), h("div", { key: 'e1cecf280c987c050d9445e2c458b903f153089b', tabindex: "0", "aria-hidden": "true" })));
|
|
314
315
|
}
|
|
315
316
|
get el() { return this; }
|
|
316
317
|
static get watchers() { return {
|
package/components/alert.js
CHANGED
|
@@ -355,15 +355,16 @@ const Alert = /*@__PURE__*/ proxyCustomElement(class Alert extends HTMLElement {
|
|
|
355
355
|
}
|
|
356
356
|
/**
|
|
357
357
|
* Dismiss the alert overlay after it has been presented.
|
|
358
|
-
* This is a no-op if the overlay has not been presented yet. If you want
|
|
359
|
-
* to remove an overlay from the DOM that was never presented, use the
|
|
360
|
-
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
361
358
|
*
|
|
362
359
|
* @param data Any data to emit in the dismiss events.
|
|
363
360
|
* @param role The role of the element that is dismissing the alert.
|
|
364
361
|
* This can be useful in a button handler for determining which button was
|
|
365
|
-
* clicked to dismiss the alert.
|
|
366
|
-
*
|
|
362
|
+
* clicked to dismiss the alert.
|
|
363
|
+
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
364
|
+
*
|
|
365
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
366
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
367
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
367
368
|
*/
|
|
368
369
|
async dismiss(data, role) {
|
|
369
370
|
const unlock = await this.lockController.lock();
|
|
@@ -533,9 +534,9 @@ const Alert = /*@__PURE__*/ proxyCustomElement(class Alert extends HTMLElement {
|
|
|
533
534
|
* If neither are defined, do not set aria-labelledby.
|
|
534
535
|
*/
|
|
535
536
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
536
|
-
return (h(Host, { key: '
|
|
537
|
+
return (h(Host, { key: 'f8ee04fe6a97a2585b302c8e1a9eea3b122e3479', tabindex: "-1", style: {
|
|
537
538
|
zIndex: `${20000 + overlayIndex}`,
|
|
538
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: '
|
|
539
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'alert-translucent': this.translucent }), onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, h("ion-backdrop", { key: 'e9592e879f51c27ef20016beec12c986be632cf3', tappable: this.backdropDismiss }), h("div", { key: '5e9425c3c8acdea6f8006389689c73220e2ce423', tabindex: "0", "aria-hidden": "true" }), h("div", Object.assign({ key: '615465703e357619681fc36ed7276591a6fe3787', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el) }, htmlAttributes), h("div", { key: '934eba3759456cd4660e10f274edc7859f908461', class: "alert-head" }, header && (h("h2", { key: '7d5d98d71f81f59a2cba227121b6fa01e6cc53b6', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (h("h2", { key: 'e5f5d35748c58a98ee933eb15cb1dcaf8113e9a7', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (h("h3", { key: 'a5cb89ca02bfa9c4828e694cb0835493a9088b05', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), h("div", { key: 'cacffc31c911882df73e6845d15c8bb2d4acab56', tabindex: "0", "aria-hidden": "true" })));
|
|
539
540
|
}
|
|
540
541
|
get el() { return this; }
|
|
541
542
|
static get watchers() { return {
|
|
@@ -19,44 +19,33 @@ const FOCUS_KEYS = [
|
|
|
19
19
|
];
|
|
20
20
|
const startFocusVisible = (rootEl) => {
|
|
21
21
|
let currentFocus = [];
|
|
22
|
-
|
|
23
|
-
// Used to distinguish between pointer and keyboard navigation for focus styling
|
|
24
|
-
let hadPointerEvent = false;
|
|
22
|
+
let keyboardMode = true;
|
|
25
23
|
const ref = rootEl ? rootEl.shadowRoot : document;
|
|
26
24
|
const root = rootEl ? rootEl : document.body;
|
|
27
|
-
// Adds or removes the focused class for styling
|
|
28
25
|
const setFocus = (elements) => {
|
|
29
26
|
currentFocus.forEach((el) => el.classList.remove(ION_FOCUSED));
|
|
30
27
|
elements.forEach((el) => el.classList.add(ION_FOCUSED));
|
|
31
28
|
currentFocus = elements;
|
|
32
29
|
};
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
hadPointerEvent = true;
|
|
37
|
-
// Reset after the event loop so only the immediate focusin is suppressed
|
|
38
|
-
setTimeout(() => {
|
|
39
|
-
hadPointerEvent = false;
|
|
40
|
-
}, 0);
|
|
41
|
-
}
|
|
30
|
+
const pointerDown = () => {
|
|
31
|
+
keyboardMode = false;
|
|
32
|
+
setFocus([]);
|
|
42
33
|
};
|
|
43
|
-
// Clear hadPointerEvent so keyboard navigation shows focus
|
|
44
|
-
// Also, clear focus if the key is not a navigation key
|
|
45
34
|
const onKeydown = (ev) => {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
if (!FOCUS_KEYS.includes(keyboardEvent.key)) {
|
|
35
|
+
keyboardMode = FOCUS_KEYS.includes(ev.key);
|
|
36
|
+
if (!keyboardMode) {
|
|
49
37
|
setFocus([]);
|
|
50
38
|
}
|
|
51
39
|
};
|
|
52
|
-
// Set focus if the last interaction was NOT a pointer event
|
|
53
|
-
// This works around iOS/Safari bugs where keydown is not fired for Tab
|
|
54
40
|
const onFocusin = (ev) => {
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
.
|
|
59
|
-
|
|
41
|
+
if (keyboardMode && ev.composedPath !== undefined) {
|
|
42
|
+
const toFocus = ev.composedPath().filter((el) => {
|
|
43
|
+
// TODO(FW-2832): type
|
|
44
|
+
if (el.classList) {
|
|
45
|
+
return el.classList.contains(ION_FOCUSABLE);
|
|
46
|
+
}
|
|
47
|
+
return false;
|
|
48
|
+
});
|
|
60
49
|
setFocus(toFocus);
|
|
61
50
|
}
|
|
62
51
|
};
|
|
@@ -68,12 +57,14 @@ const startFocusVisible = (rootEl) => {
|
|
|
68
57
|
ref.addEventListener('keydown', onKeydown);
|
|
69
58
|
ref.addEventListener('focusin', onFocusin);
|
|
70
59
|
ref.addEventListener('focusout', onFocusout);
|
|
71
|
-
ref.addEventListener('
|
|
60
|
+
ref.addEventListener('touchstart', pointerDown, { passive: true });
|
|
61
|
+
ref.addEventListener('mousedown', pointerDown);
|
|
72
62
|
const destroy = () => {
|
|
73
63
|
ref.removeEventListener('keydown', onKeydown);
|
|
74
64
|
ref.removeEventListener('focusin', onFocusin);
|
|
75
65
|
ref.removeEventListener('focusout', onFocusout);
|
|
76
|
-
ref.removeEventListener('
|
|
66
|
+
ref.removeEventListener('touchstart', pointerDown);
|
|
67
|
+
ref.removeEventListener('mousedown', pointerDown);
|
|
77
68
|
};
|
|
78
69
|
return {
|
|
79
70
|
destroy,
|
package/components/ion-app.js
CHANGED
|
@@ -61,8 +61,6 @@ const App = /*@__PURE__*/ proxyCustomElement(class App extends HTMLElement {
|
|
|
61
61
|
* a result of another user action. (Ex: We focus the first element
|
|
62
62
|
* inside of a popover when the user presents it, but the popover is not always
|
|
63
63
|
* presented as a result of keyboard action.)
|
|
64
|
-
*
|
|
65
|
-
* @param elements An array of HTML elements to set focus on.
|
|
66
64
|
*/
|
|
67
65
|
async setFocus(elements) {
|
|
68
66
|
if (this.focusVisible) {
|
|
@@ -71,7 +69,7 @@ const App = /*@__PURE__*/ proxyCustomElement(class App extends HTMLElement {
|
|
|
71
69
|
}
|
|
72
70
|
render() {
|
|
73
71
|
const mode = getIonMode(this);
|
|
74
|
-
return (h(Host, { key: '
|
|
72
|
+
return (h(Host, { key: '03aa892f986330078d112b1e8b010df98fa7e39e', class: {
|
|
75
73
|
[mode]: true,
|
|
76
74
|
'ion-page': true,
|
|
77
75
|
'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
|
|
@@ -996,8 +996,6 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
|
|
|
996
996
|
* Confirms the selected datetime value, updates the
|
|
997
997
|
* `value` property, and optionally closes the popover
|
|
998
998
|
* or modal that the datetime was presented in.
|
|
999
|
-
*
|
|
1000
|
-
* @param closeOverlay If `true`, closes the parent overlay. Defaults to `false`.
|
|
1001
999
|
*/
|
|
1002
1000
|
async confirm(closeOverlay = false) {
|
|
1003
1001
|
const { isCalendarPicker, activeParts, preferWheel, workingParts } = this;
|
|
@@ -1031,8 +1029,6 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
|
|
|
1031
1029
|
* Resets the internal state of the datetime but does not update the value.
|
|
1032
1030
|
* Passing a valid ISO-8601 string will reset the state of the component to the provided date.
|
|
1033
1031
|
* If no value is provided, the internal state will be reset to the clamped value of the min, max and today.
|
|
1034
|
-
*
|
|
1035
|
-
* @param startDate A valid [ISO-8601 string](https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date#date_time_string_format) to reset the datetime state to.
|
|
1036
1032
|
*/
|
|
1037
1033
|
async reset(startDate) {
|
|
1038
1034
|
this.processValue(startDate);
|
|
@@ -1042,8 +1038,6 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
|
|
|
1042
1038
|
* optionally closes the popover
|
|
1043
1039
|
* or modal that the datetime was
|
|
1044
1040
|
* presented in.
|
|
1045
|
-
*
|
|
1046
|
-
* @param closeOverlay If `true`, closes the parent overlay. Defaults to `false`.
|
|
1047
1041
|
*/
|
|
1048
1042
|
async cancel(closeOverlay = false) {
|
|
1049
1043
|
this.ionCancel.emit();
|
|
@@ -1857,7 +1851,7 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
|
|
|
1857
1851
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
1858
1852
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
1859
1853
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
1860
|
-
return (h(Host, { key: '
|
|
1854
|
+
return (h(Host, { key: '7ea46c27aa5fb01b748dd4d6eb2340ad13f65175', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
|
|
1861
1855
|
[mode]: true,
|
|
1862
1856
|
['datetime-readonly']: readonly,
|
|
1863
1857
|
['datetime-disabled']: disabled,
|
|
@@ -1867,7 +1861,7 @@ const Datetime = /*@__PURE__*/ proxyCustomElement(class Datetime extends HTMLEle
|
|
|
1867
1861
|
[`datetime-size-${size}`]: true,
|
|
1868
1862
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
1869
1863
|
[`datetime-grid`]: isGridStyle,
|
|
1870
|
-
})) }, h("div", { key: '
|
|
1864
|
+
})) }, h("div", { key: '6964378424c58b053e23279d08eaedf28dfcc315', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
1871
1865
|
}
|
|
1872
1866
|
get el() { return this; }
|
|
1873
1867
|
static get watchers() { return {
|
|
@@ -226,15 +226,16 @@ const Loading = /*@__PURE__*/ proxyCustomElement(class Loading extends HTMLEleme
|
|
|
226
226
|
}
|
|
227
227
|
/**
|
|
228
228
|
* Dismiss the loading overlay after it has been presented.
|
|
229
|
-
* This is a no-op if the overlay has not been presented yet. If you want
|
|
230
|
-
* to remove an overlay from the DOM that was never presented, use the
|
|
231
|
-
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
232
229
|
*
|
|
233
230
|
* @param data Any data to emit in the dismiss events.
|
|
234
231
|
* @param role The role of the element that is dismissing the loading.
|
|
235
232
|
* This can be useful in a button handler for determining which button was
|
|
236
|
-
* clicked to dismiss the loading.
|
|
237
|
-
*
|
|
233
|
+
* clicked to dismiss the loading.
|
|
234
|
+
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
235
|
+
*
|
|
236
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
237
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
238
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
238
239
|
*/
|
|
239
240
|
async dismiss(data, role) {
|
|
240
241
|
const unlock = await this.lockController.lock();
|
|
@@ -276,9 +277,9 @@ const Loading = /*@__PURE__*/ proxyCustomElement(class Loading extends HTMLEleme
|
|
|
276
277
|
* Otherwise, don't set aria-labelledby.
|
|
277
278
|
*/
|
|
278
279
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
279
|
-
return (h(Host, Object.assign({ key: '
|
|
280
|
+
return (h(Host, Object.assign({ key: '6369ed244c06c39aa338141bffacf7a861d7da1a', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
280
281
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
281
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '
|
|
282
|
+
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '1fd5fd8581d59eec321e534f9116f3ec0501010a', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: 'b4028045b0c8fbb9946136d85d939d55120b867c', tabindex: "0", "aria-hidden": "true" }), h("div", { key: 'b045fb0e61cc28e8163d45be18b431918dc27c80', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { key: '2cf9df796f987d1251b3599d10a48ed87a1d0eb9', class: "loading-spinner" }, h("ion-spinner", { key: '371cd41655402326adcb1e2fe1481009a83243b2', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: '2a5e5e66d22ee4c1cef0c93815ef023d47e7a8eb', tabindex: "0", "aria-hidden": "true" })));
|
|
282
283
|
}
|
|
283
284
|
get el() { return this; }
|
|
284
285
|
static get watchers() { return {
|
package/components/ion-menu.js
CHANGED
|
@@ -244,7 +244,7 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
|
|
|
244
244
|
return Promise.resolve(this._isOpen);
|
|
245
245
|
}
|
|
246
246
|
/**
|
|
247
|
-
* Returns `true`
|
|
247
|
+
* Returns `true` is the menu is active.
|
|
248
248
|
*
|
|
249
249
|
* A menu is active when it can be opened or closed, meaning it's enabled
|
|
250
250
|
* and it's not part of a `ion-split-pane`.
|
|
@@ -255,10 +255,6 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
|
|
|
255
255
|
/**
|
|
256
256
|
* Opens the menu. If the menu is already open or it can't be opened,
|
|
257
257
|
* it returns `false`.
|
|
258
|
-
*
|
|
259
|
-
* @param animated If `true`, the menu will animate when opening.
|
|
260
|
-
* If `false`, the menu will open instantly without animation.
|
|
261
|
-
* Defaults to `true`.
|
|
262
258
|
*/
|
|
263
259
|
open(animated = true) {
|
|
264
260
|
return this.setOpen(true, animated);
|
|
@@ -266,38 +262,20 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
|
|
|
266
262
|
/**
|
|
267
263
|
* Closes the menu. If the menu is already closed or it can't be closed,
|
|
268
264
|
* it returns `false`.
|
|
269
|
-
*
|
|
270
|
-
* @param animated If `true`, the menu will animate when closing. If `false`,
|
|
271
|
-
* the menu will close instantly without animation. Defaults to `true`.
|
|
272
|
-
* @param role The role of the element that is closing the menu.
|
|
273
|
-
* This can be useful in a button handler for determining which button was
|
|
274
|
-
* clicked to close the menu. Some examples include:
|
|
275
|
-
* `"cancel"`, `"destructive"`, `"selected"`, and `"backdrop"`.
|
|
276
265
|
*/
|
|
277
266
|
close(animated = true, role) {
|
|
278
267
|
return this.setOpen(false, animated, role);
|
|
279
268
|
}
|
|
280
269
|
/**
|
|
281
|
-
* Toggles the menu. If the menu is already open, it will try to close,
|
|
282
|
-
* otherwise it will try to open it.
|
|
270
|
+
* Toggles the menu. If the menu is already open, it will try to close, otherwise it will try to open it.
|
|
283
271
|
* If the operation can't be completed successfully, it returns `false`.
|
|
284
|
-
*
|
|
285
|
-
* @param animated If `true`, the menu will animate when opening/closing.
|
|
286
|
-
* If `false`, the menu will open/close instantly without animation.
|
|
287
|
-
* Defaults to `true`.
|
|
288
272
|
*/
|
|
289
273
|
toggle(animated = true) {
|
|
290
274
|
return this.setOpen(!this._isOpen, animated);
|
|
291
275
|
}
|
|
292
276
|
/**
|
|
293
|
-
* Opens or closes the
|
|
277
|
+
* Opens or closes the button.
|
|
294
278
|
* If the operation can't be completed successfully, it returns `false`.
|
|
295
|
-
*
|
|
296
|
-
* @param shouldOpen If `true`, the menu will open. If `false`, the menu
|
|
297
|
-
* will close.
|
|
298
|
-
* @param animated If `true`, the menu will animate when opening/closing.
|
|
299
|
-
* If `false`, the menu will open/close instantly without animation.
|
|
300
|
-
* @param role The role of the element that is closing the menu.
|
|
301
279
|
*/
|
|
302
280
|
setOpen(shouldOpen, animated = true, role) {
|
|
303
281
|
return menuController._setOpen(this, shouldOpen, animated, role);
|
|
@@ -662,14 +640,14 @@ const Menu = /*@__PURE__*/ proxyCustomElement(class Menu extends HTMLElement {
|
|
|
662
640
|
* the ionBackButton listener in the menu controller
|
|
663
641
|
* will handle closing the menu when Escape is pressed.
|
|
664
642
|
*/
|
|
665
|
-
return (h(Host, { key: '
|
|
643
|
+
return (h(Host, { key: '9e4ae9476a76781f1d228395c9af9e1c39ec82bb', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
666
644
|
[mode]: true,
|
|
667
645
|
[`menu-type-${type}`]: true,
|
|
668
646
|
'menu-enabled': !disabled,
|
|
669
647
|
[`menu-side-${side}`]: true,
|
|
670
648
|
'menu-pane-visible': isPaneVisible,
|
|
671
649
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
672
|
-
} }, h("div", { key: '
|
|
650
|
+
} }, h("div", { key: 'c6153589d872ac7e3fdf5eedfdb858eb64ccd713', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '9994aac4b22f17db34c9b8b2aa56b8710b9df645' })), h("ion-backdrop", { key: 'f09ac30cc4dd2dcb10628965e659dae5a23baf98', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
|
|
673
651
|
}
|
|
674
652
|
get el() { return this; }
|
|
675
653
|
static get watchers() { return {
|
|
@@ -60,6 +60,7 @@ const ReorderGroup = /*@__PURE__*/ proxyCustomElement(class ReorderGroup extends
|
|
|
60
60
|
}
|
|
61
61
|
/**
|
|
62
62
|
* Completes the reorder operation. Must be called by the `ionItemReorder` event.
|
|
63
|
+
*
|
|
63
64
|
* If a list of items is passed, the list will be reordered and returned in the
|
|
64
65
|
* proper order.
|
|
65
66
|
*
|
|
@@ -246,7 +247,7 @@ const ReorderGroup = /*@__PURE__*/ proxyCustomElement(class ReorderGroup extends
|
|
|
246
247
|
}
|
|
247
248
|
render() {
|
|
248
249
|
const mode = getIonMode(this);
|
|
249
|
-
return (h(Host, { key: '
|
|
250
|
+
return (h(Host, { key: 'f30613b361c5c3095b7928a92fb4b1e8d6eff600', class: {
|
|
250
251
|
[mode]: true,
|
|
251
252
|
'reorder-enabled': !this.disabled,
|
|
252
253
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
package/components/ion-router.js
CHANGED
|
@@ -616,7 +616,6 @@ const Router = /*@__PURE__*/ proxyCustomElement(class Router extends HTMLElement
|
|
|
616
616
|
*
|
|
617
617
|
* @param path The path to navigate to.
|
|
618
618
|
* @param direction The direction of the animation. Defaults to `"forward"`.
|
|
619
|
-
* @param animation A custom animation to use for the transition.
|
|
620
619
|
*/
|
|
621
620
|
async push(path, direction = 'forward', animation) {
|
|
622
621
|
var _a;
|
|
@@ -259,8 +259,10 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
|
|
|
259
259
|
/**
|
|
260
260
|
* Sets focus on the native `input` in `ion-searchbar`. Use this method instead of the global
|
|
261
261
|
* `input.focus()`.
|
|
262
|
+
*
|
|
262
263
|
* Developers who wish to focus an input when a page enters
|
|
263
264
|
* should call `setFocus()` in the `ionViewDidEnter()` lifecycle method.
|
|
265
|
+
*
|
|
264
266
|
* Developers who wish to focus an input when an overlay is presented
|
|
265
267
|
* should call `setFocus` after `didPresent` has resolved.
|
|
266
268
|
*
|
|
@@ -439,8 +441,8 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
|
|
|
439
441
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
440
442
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
441
443
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
442
|
-
const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '
|
|
443
|
-
return (h(Host, { key: '
|
|
444
|
+
const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '5835c36fcb0b52aec956538202a783f6c194d853', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '85df41676bed611467bd4df0002b08baee4f539c', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
445
|
+
return (h(Host, { key: 'e1e30cdd79f9f54d5f2d27501012358bc46880e5', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
|
|
444
446
|
[mode]: true,
|
|
445
447
|
'searchbar-animated': animated,
|
|
446
448
|
'searchbar-disabled': this.disabled,
|
|
@@ -450,14 +452,14 @@ const Searchbar = /*@__PURE__*/ proxyCustomElement(class Searchbar extends HTMLE
|
|
|
450
452
|
'searchbar-has-focus': this.focused,
|
|
451
453
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
452
454
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
453
|
-
}) }, h("div", { key: '
|
|
455
|
+
}) }, h("div", { key: '7e9db147282a35bb1e3c9c6125b9a044e81ddde5', class: "searchbar-input-container" }, h("input", Object.assign({ key: '02f08da21326b78d6cd249d54deab96fd8472ba8', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, h("ion-icon", { key: '048b00348456bd827ae734491c46a67bfb146227', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '71f64339bbfd54ebd26a0946c8ee9d726cd89c04', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
454
456
|
/**
|
|
455
457
|
* This prevents mobile browsers from
|
|
456
458
|
* blurring the input when the clear
|
|
457
459
|
* button is activated.
|
|
458
460
|
*/
|
|
459
461
|
ev.preventDefault();
|
|
460
|
-
}, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '
|
|
462
|
+
}, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '9b1a177b21951c1c95897a468b34bb7bbd63d137', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
461
463
|
}
|
|
462
464
|
get el() { return this; }
|
|
463
465
|
static get watchers() { return {
|
package/components/ion-select.js
CHANGED
|
@@ -235,7 +235,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
|
|
|
235
235
|
const scrollSelectedIntoView = () => {
|
|
236
236
|
const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
|
|
237
237
|
if (indexOfSelected > -1) {
|
|
238
|
-
const selectedItem = overlay.querySelector(`.select-interface-option:nth-
|
|
238
|
+
const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
|
|
239
239
|
if (selectedItem) {
|
|
240
240
|
/**
|
|
241
241
|
* Browsers such as Firefox do not
|
|
@@ -755,7 +755,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
|
|
|
755
755
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
756
756
|
*/
|
|
757
757
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
758
|
-
return (h(Host, { key: '
|
|
758
|
+
return (h(Host, { key: 'e33253af9b9daa14460c7c259fb138b4d2b875ae', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
759
759
|
[mode]: true,
|
|
760
760
|
'in-item': inItem,
|
|
761
761
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -773,7 +773,7 @@ const Select = /*@__PURE__*/ proxyCustomElement(class Select extends HTMLElement
|
|
|
773
773
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
774
774
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
775
775
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
776
|
-
}) }, h("label", { key: '
|
|
776
|
+
}) }, h("label", { key: '03303b7131c77a78a933e8e496e7251b6b5c485b', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '9037674db6a0adc189e887c9048f817d5afdf635', class: "select-wrapper-inner" }, h("slot", { key: '7c9226c838ba4bcf5bc0b234fa1613ce335cf73d', name: "start" }), h("div", { key: 'a7432c3efb5c65f88a5e4b0d35c5a433fa4e949d', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '028e683df26a8f573d7670da76e0ad26d21c83e0', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: '20341bcae3753048ce905d2aceffa5351a0db125', class: "select-highlight" })), this.renderBottomContent()));
|
|
777
777
|
}
|
|
778
778
|
get el() { return this; }
|
|
779
779
|
static get watchers() { return {
|
package/components/ion-toast.js
CHANGED
|
@@ -677,15 +677,16 @@ const Toast = /*@__PURE__*/ proxyCustomElement(class Toast extends HTMLElement {
|
|
|
677
677
|
}
|
|
678
678
|
/**
|
|
679
679
|
* Dismiss the toast overlay after it has been presented.
|
|
680
|
-
* This is a no-op if the overlay has not been presented yet. If you want
|
|
681
|
-
* to remove an overlay from the DOM that was never presented, use the
|
|
682
|
-
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
683
680
|
*
|
|
684
681
|
* @param data Any data to emit in the dismiss events.
|
|
685
682
|
* @param role The role of the element that is dismissing the toast.
|
|
686
683
|
* This can be useful in a button handler for determining which button was
|
|
687
684
|
* clicked to dismiss the toast.
|
|
688
|
-
* Some examples include:
|
|
685
|
+
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
686
|
+
*
|
|
687
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
688
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
689
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
689
690
|
*/
|
|
690
691
|
async dismiss(data, role) {
|
|
691
692
|
var _a, _b;
|
|
@@ -853,9 +854,9 @@ const Toast = /*@__PURE__*/ proxyCustomElement(class Toast extends HTMLElement {
|
|
|
853
854
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
854
855
|
printIonWarning('[ion-toast] - This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
|
|
855
856
|
}
|
|
856
|
-
return (h(Host, Object.assign({ key: '
|
|
857
|
+
return (h(Host, Object.assign({ key: '425be734aee0eeef281ab1609a9f982ce8b5e852', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
857
858
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
858
|
-
}, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '
|
|
859
|
+
}, class: createColorClasses(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), h("div", { key: '7c3ad1a8df9e21fc30fc179c7edebeabcf3c6874', class: wrapperClass }, h("div", { key: 'f950c21e8d7bf92653e0bd52e820ed6b84fa8cf5', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (h("ion-icon", { key: '0266241927dbe16799adb57f9fc11bd5372877b2', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), h("div", { key: '9ef4b87bad672af6a5b693af61375564daf1eeeb', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
|
|
859
860
|
}
|
|
860
861
|
get el() { return this; }
|
|
861
862
|
static get watchers() { return {
|
package/components/modal.js
CHANGED
|
@@ -1484,17 +1484,6 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
|
1484
1484
|
el.dispatchEvent(ev);
|
|
1485
1485
|
}
|
|
1486
1486
|
};
|
|
1487
|
-
/**
|
|
1488
|
-
* When the modal receives focus directly, pass focus to the handle
|
|
1489
|
-
* if it exists and is focusable, otherwise let the focus trap handle it.
|
|
1490
|
-
*/
|
|
1491
|
-
this.onModalFocus = (ev) => {
|
|
1492
|
-
const { dragHandleEl, el } = this;
|
|
1493
|
-
// Only handle focus if the modal itself was focused (not a child element)
|
|
1494
|
-
if (ev.target === el && dragHandleEl && dragHandleEl.tabIndex !== -1) {
|
|
1495
|
-
dragHandleEl.focus();
|
|
1496
|
-
}
|
|
1497
|
-
};
|
|
1498
1487
|
}
|
|
1499
1488
|
onIsOpenChange(newValue, oldValue) {
|
|
1500
1489
|
if (newValue === true && oldValue === false) {
|
|
@@ -1826,13 +1815,13 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
|
1826
1815
|
}
|
|
1827
1816
|
/**
|
|
1828
1817
|
* Dismiss the modal overlay after it has been presented.
|
|
1818
|
+
*
|
|
1819
|
+
* @param data Any data to emit in the dismiss events.
|
|
1820
|
+
* @param role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.
|
|
1821
|
+
*
|
|
1829
1822
|
* This is a no-op if the overlay has not been presented yet. If you want
|
|
1830
1823
|
* to remove an overlay from the DOM that was never presented, use the
|
|
1831
1824
|
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
1832
|
-
*
|
|
1833
|
-
* @param data Any data to emit in the dismiss events.
|
|
1834
|
-
* @param role The role of the element that is dismissing the modal.
|
|
1835
|
-
* For example, `cancel` or `backdrop`.
|
|
1836
1825
|
*/
|
|
1837
1826
|
async dismiss(data, role) {
|
|
1838
1827
|
var _a;
|
|
@@ -1904,10 +1893,8 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
|
1904
1893
|
return eventMethod(this.el, 'ionModalWillDismiss');
|
|
1905
1894
|
}
|
|
1906
1895
|
/**
|
|
1907
|
-
* Move a sheet style modal to a specific breakpoint.
|
|
1908
|
-
*
|
|
1909
|
-
* @param breakpoint The breakpoint value to move the sheet modal to.
|
|
1910
|
-
* Must be a value defined in your `breakpoints` array.
|
|
1896
|
+
* Move a sheet style modal to a specific breakpoint. The breakpoint value must
|
|
1897
|
+
* be a value defined in your `breakpoints` array.
|
|
1911
1898
|
*/
|
|
1912
1899
|
async setCurrentBreakpoint(breakpoint) {
|
|
1913
1900
|
if (!this.isSheetModal) {
|
|
@@ -1966,21 +1953,18 @@ const Modal = /*@__PURE__*/ proxyCustomElement(class Modal extends HTMLElement {
|
|
|
1966
1953
|
const mode = getIonMode(this);
|
|
1967
1954
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
1968
1955
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
1969
|
-
|
|
1970
|
-
return (h(Host, Object.assign({ key: '8add05bb43a2cdb5e3cf180147d31eb85a018fe0', "no-router": true,
|
|
1971
|
-
// Allow the modal to be navigable when the handle is focusable
|
|
1972
|
-
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
1956
|
+
return (h(Host, Object.assign({ key: '0bcbdcfcd7d890eb599da3f97f21c317d34f8e0e', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
1973
1957
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1974
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle
|
|
1958
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: 'd72159e73daa5af7349aa9e8f695aa435eb43069', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: 'fd2d9b13676ae72473881649a397b6eacde03a03', class: "modal-shadow" }), h("div", Object.assign({ key: '908eccb1ad982dcde2dbcff0cbb18b6e60f8ba74',
|
|
1975
1959
|
/*
|
|
1976
1960
|
role and aria-modal must be used on the
|
|
1977
1961
|
same element. They must also be set inside the
|
|
1978
1962
|
shadow DOM otherwise ion-button will not be highlighted
|
|
1979
1963
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
1980
1964
|
*/
|
|
1981
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '
|
|
1965
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '332dc0b40363a77c7be62331d9f26def91c790e9', class: "modal-handle",
|
|
1982
1966
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
1983
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle"
|
|
1967
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: 'c32698350193c450327e97049daf8b8d1fda0d0e' }))));
|
|
1984
1968
|
}
|
|
1985
1969
|
get el() { return this; }
|
|
1986
1970
|
static get watchers() { return {
|