@ionic/core 8.6.3-dev.11751478001.1cb7436f → 8.6.3-nightly.20250620
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
|
@@ -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,
|
|
@@ -187,15 +187,16 @@ const ActionSheet = class {
|
|
|
187
187
|
}
|
|
188
188
|
/**
|
|
189
189
|
* Dismiss the action sheet overlay after it has been presented.
|
|
190
|
-
* This is a no-op if the overlay has not been presented yet. If you want
|
|
191
|
-
* to remove an overlay from the DOM that was never presented, use the
|
|
192
|
-
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
193
190
|
*
|
|
194
191
|
* @param data Any data to emit in the dismiss events.
|
|
195
192
|
* @param role The role of the element that is dismissing the action sheet.
|
|
196
193
|
* This can be useful in a button handler for determining which button was
|
|
197
|
-
* clicked to dismiss the action sheet.
|
|
198
|
-
*
|
|
194
|
+
* clicked to dismiss the action sheet.
|
|
195
|
+
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
196
|
+
*
|
|
197
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
198
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
199
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
199
200
|
*/
|
|
200
201
|
async dismiss(data, role) {
|
|
201
202
|
const unlock = await this.lockController.lock();
|
|
@@ -307,12 +308,12 @@ const ActionSheet = class {
|
|
|
307
308
|
const cancelButton = allButtons.find((b) => b.role === 'cancel');
|
|
308
309
|
const buttons = allButtons.filter((b) => b.role !== 'cancel');
|
|
309
310
|
const headerID = `action-sheet-${overlayIndex}-header`;
|
|
310
|
-
return (h(Host, Object.assign({ key: '
|
|
311
|
+
return (h(Host, Object.assign({ key: '7bbd202ca9e19727e7514abbe073687d982f80c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1" }, htmlAttributes, { style: {
|
|
311
312
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
312
|
-
}, 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: '
|
|
313
|
+
}, 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: {
|
|
313
314
|
'action-sheet-title': true,
|
|
314
315
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
315
|
-
} }, header, this.subHeader && h("div", { key: '
|
|
316
|
+
} }, 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" })));
|
|
316
317
|
}
|
|
317
318
|
get el() { return getElement(this); }
|
|
318
319
|
static get watchers() { return {
|
|
@@ -357,15 +357,16 @@ const Alert = class {
|
|
|
357
357
|
}
|
|
358
358
|
/**
|
|
359
359
|
* Dismiss the alert overlay after it has been presented.
|
|
360
|
-
* This is a no-op if the overlay has not been presented yet. If you want
|
|
361
|
-
* to remove an overlay from the DOM that was never presented, use the
|
|
362
|
-
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
363
360
|
*
|
|
364
361
|
* @param data Any data to emit in the dismiss events.
|
|
365
362
|
* @param role The role of the element that is dismissing the alert.
|
|
366
363
|
* This can be useful in a button handler for determining which button was
|
|
367
|
-
* clicked to dismiss the alert.
|
|
368
|
-
*
|
|
364
|
+
* clicked to dismiss the alert.
|
|
365
|
+
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
366
|
+
*
|
|
367
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
368
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
369
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
369
370
|
*/
|
|
370
371
|
async dismiss(data, role) {
|
|
371
372
|
const unlock = await this.lockController.lock();
|
|
@@ -535,9 +536,9 @@ const Alert = class {
|
|
|
535
536
|
* If neither are defined, do not set aria-labelledby.
|
|
536
537
|
*/
|
|
537
538
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
538
|
-
return (h(Host, { key: '
|
|
539
|
+
return (h(Host, { key: 'f8ee04fe6a97a2585b302c8e1a9eea3b122e3479', tabindex: "-1", style: {
|
|
539
540
|
zIndex: `${20000 + overlayIndex}`,
|
|
540
|
-
}, 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: '
|
|
541
|
+
}, 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" })));
|
|
541
542
|
}
|
|
542
543
|
get el() { return getElement(this); }
|
|
543
544
|
static get watchers() { return {
|
|
@@ -58,7 +58,7 @@ const App = class {
|
|
|
58
58
|
if (typeof window !== 'undefined') {
|
|
59
59
|
import('./keyboard-ywgs5efA.js').then((module) => module.startKeyboardAssist(window));
|
|
60
60
|
}
|
|
61
|
-
import('./focus-visible-
|
|
61
|
+
import('./focus-visible-BmVRXR1y.js').then((module) => (this.focusVisible = module.startFocusVisible()));
|
|
62
62
|
});
|
|
63
63
|
}
|
|
64
64
|
}
|
|
@@ -70,8 +70,6 @@ const App = class {
|
|
|
70
70
|
* a result of another user action. (Ex: We focus the first element
|
|
71
71
|
* inside of a popover when the user presents it, but the popover is not always
|
|
72
72
|
* presented as a result of keyboard action.)
|
|
73
|
-
*
|
|
74
|
-
* @param elements An array of HTML elements to set focus on.
|
|
75
73
|
*/
|
|
76
74
|
async setFocus(elements) {
|
|
77
75
|
if (this.focusVisible) {
|
|
@@ -80,7 +78,7 @@ const App = class {
|
|
|
80
78
|
}
|
|
81
79
|
render() {
|
|
82
80
|
const mode = getIonMode(this);
|
|
83
|
-
return (h(Host, { key: '
|
|
81
|
+
return (h(Host, { key: '03aa892f986330078d112b1e8b010df98fa7e39e', class: {
|
|
84
82
|
[mode]: true,
|
|
85
83
|
'ion-page': true,
|
|
86
84
|
'force-statusbar-padding': config.getBoolean('_forceStatusbarPadding'),
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
4
|
import { o as printIonError, m as printIonWarning, r as registerInstance, d as createEvent, e as getIonMode, w as writeTask, h, j as Host, k as getElement } from './index-B_U9CtaY.js';
|
|
5
|
-
import { startFocusVisible } from './focus-visible-
|
|
5
|
+
import { startFocusVisible } from './focus-visible-BmVRXR1y.js';
|
|
6
6
|
import { r as raf, g as getElementRoot, a as renderHiddenInput, e as clamp } from './helpers-1O4D2b7y.js';
|
|
7
7
|
import { i as isRTL } from './dir-C53feagD.js';
|
|
8
8
|
import { c as createColorClasses, g as getClassMap } from './theme-DiVJyqlX.js';
|
|
@@ -992,8 +992,6 @@ const Datetime = class {
|
|
|
992
992
|
* Confirms the selected datetime value, updates the
|
|
993
993
|
* `value` property, and optionally closes the popover
|
|
994
994
|
* or modal that the datetime was presented in.
|
|
995
|
-
*
|
|
996
|
-
* @param closeOverlay If `true`, closes the parent overlay. Defaults to `false`.
|
|
997
995
|
*/
|
|
998
996
|
async confirm(closeOverlay = false) {
|
|
999
997
|
const { isCalendarPicker, activeParts, preferWheel, workingParts } = this;
|
|
@@ -1027,8 +1025,6 @@ const Datetime = class {
|
|
|
1027
1025
|
* Resets the internal state of the datetime but does not update the value.
|
|
1028
1026
|
* Passing a valid ISO-8601 string will reset the state of the component to the provided date.
|
|
1029
1027
|
* If no value is provided, the internal state will be reset to the clamped value of the min, max and today.
|
|
1030
|
-
*
|
|
1031
|
-
* @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.
|
|
1032
1028
|
*/
|
|
1033
1029
|
async reset(startDate) {
|
|
1034
1030
|
this.processValue(startDate);
|
|
@@ -1038,8 +1034,6 @@ const Datetime = class {
|
|
|
1038
1034
|
* optionally closes the popover
|
|
1039
1035
|
* or modal that the datetime was
|
|
1040
1036
|
* presented in.
|
|
1041
|
-
*
|
|
1042
|
-
* @param closeOverlay If `true`, closes the parent overlay. Defaults to `false`.
|
|
1043
1037
|
*/
|
|
1044
1038
|
async cancel(closeOverlay = false) {
|
|
1045
1039
|
this.ionCancel.emit();
|
|
@@ -1853,7 +1847,7 @@ const Datetime = class {
|
|
|
1853
1847
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
1854
1848
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
1855
1849
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
1856
|
-
return (h(Host, { key: '
|
|
1850
|
+
return (h(Host, { key: '7ea46c27aa5fb01b748dd4d6eb2340ad13f65175', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses(color, {
|
|
1857
1851
|
[mode]: true,
|
|
1858
1852
|
['datetime-readonly']: readonly,
|
|
1859
1853
|
['datetime-disabled']: disabled,
|
|
@@ -1863,7 +1857,7 @@ const Datetime = class {
|
|
|
1863
1857
|
[`datetime-size-${size}`]: true,
|
|
1864
1858
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
1865
1859
|
[`datetime-grid`]: isGridStyle,
|
|
1866
|
-
})) }, h("div", { key: '
|
|
1860
|
+
})) }, h("div", { key: '6964378424c58b053e23279d08eaedf28dfcc315', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
1867
1861
|
}
|
|
1868
1862
|
get el() { return getElement(this); }
|
|
1869
1863
|
static get watchers() { return {
|
|
@@ -225,15 +225,16 @@ const Loading = class {
|
|
|
225
225
|
}
|
|
226
226
|
/**
|
|
227
227
|
* Dismiss the loading overlay after it has been presented.
|
|
228
|
-
* This is a no-op if the overlay has not been presented yet. If you want
|
|
229
|
-
* to remove an overlay from the DOM that was never presented, use the
|
|
230
|
-
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
231
228
|
*
|
|
232
229
|
* @param data Any data to emit in the dismiss events.
|
|
233
230
|
* @param role The role of the element that is dismissing the loading.
|
|
234
231
|
* This can be useful in a button handler for determining which button was
|
|
235
|
-
* clicked to dismiss the loading.
|
|
236
|
-
*
|
|
232
|
+
* clicked to dismiss the loading.
|
|
233
|
+
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
234
|
+
*
|
|
235
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
236
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
237
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
237
238
|
*/
|
|
238
239
|
async dismiss(data, role) {
|
|
239
240
|
const unlock = await this.lockController.lock();
|
|
@@ -275,9 +276,9 @@ const Loading = class {
|
|
|
275
276
|
* Otherwise, don't set aria-labelledby.
|
|
276
277
|
*/
|
|
277
278
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
278
|
-
return (h(Host, Object.assign({ key: '
|
|
279
|
+
return (h(Host, Object.assign({ key: '6369ed244c06c39aa338141bffacf7a861d7da1a', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
279
280
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
280
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '
|
|
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: '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" })));
|
|
281
282
|
}
|
|
282
283
|
get el() { return getElement(this); }
|
|
283
284
|
static get watchers() { return {
|
|
@@ -240,7 +240,7 @@ const Menu = class {
|
|
|
240
240
|
return Promise.resolve(this._isOpen);
|
|
241
241
|
}
|
|
242
242
|
/**
|
|
243
|
-
* Returns `true`
|
|
243
|
+
* Returns `true` is the menu is active.
|
|
244
244
|
*
|
|
245
245
|
* A menu is active when it can be opened or closed, meaning it's enabled
|
|
246
246
|
* and it's not part of a `ion-split-pane`.
|
|
@@ -251,10 +251,6 @@ const Menu = class {
|
|
|
251
251
|
/**
|
|
252
252
|
* Opens the menu. If the menu is already open or it can't be opened,
|
|
253
253
|
* it returns `false`.
|
|
254
|
-
*
|
|
255
|
-
* @param animated If `true`, the menu will animate when opening.
|
|
256
|
-
* If `false`, the menu will open instantly without animation.
|
|
257
|
-
* Defaults to `true`.
|
|
258
254
|
*/
|
|
259
255
|
open(animated = true) {
|
|
260
256
|
return this.setOpen(true, animated);
|
|
@@ -262,38 +258,20 @@ const Menu = class {
|
|
|
262
258
|
/**
|
|
263
259
|
* Closes the menu. If the menu is already closed or it can't be closed,
|
|
264
260
|
* it returns `false`.
|
|
265
|
-
*
|
|
266
|
-
* @param animated If `true`, the menu will animate when closing. If `false`,
|
|
267
|
-
* the menu will close instantly without animation. Defaults to `true`.
|
|
268
|
-
* @param role The role of the element that is closing the menu.
|
|
269
|
-
* This can be useful in a button handler for determining which button was
|
|
270
|
-
* clicked to close the menu. Some examples include:
|
|
271
|
-
* `"cancel"`, `"destructive"`, `"selected"`, and `"backdrop"`.
|
|
272
261
|
*/
|
|
273
262
|
close(animated = true, role) {
|
|
274
263
|
return this.setOpen(false, animated, role);
|
|
275
264
|
}
|
|
276
265
|
/**
|
|
277
|
-
* Toggles the menu. If the menu is already open, it will try to close,
|
|
278
|
-
* otherwise it will try to open it.
|
|
266
|
+
* Toggles the menu. If the menu is already open, it will try to close, otherwise it will try to open it.
|
|
279
267
|
* If the operation can't be completed successfully, it returns `false`.
|
|
280
|
-
*
|
|
281
|
-
* @param animated If `true`, the menu will animate when opening/closing.
|
|
282
|
-
* If `false`, the menu will open/close instantly without animation.
|
|
283
|
-
* Defaults to `true`.
|
|
284
268
|
*/
|
|
285
269
|
toggle(animated = true) {
|
|
286
270
|
return this.setOpen(!this._isOpen, animated);
|
|
287
271
|
}
|
|
288
272
|
/**
|
|
289
|
-
* Opens or closes the
|
|
273
|
+
* Opens or closes the button.
|
|
290
274
|
* If the operation can't be completed successfully, it returns `false`.
|
|
291
|
-
*
|
|
292
|
-
* @param shouldOpen If `true`, the menu will open. If `false`, the menu
|
|
293
|
-
* will close.
|
|
294
|
-
* @param animated If `true`, the menu will animate when opening/closing.
|
|
295
|
-
* If `false`, the menu will open/close instantly without animation.
|
|
296
|
-
* @param role The role of the element that is closing the menu.
|
|
297
275
|
*/
|
|
298
276
|
setOpen(shouldOpen, animated = true, role) {
|
|
299
277
|
return menuController._setOpen(this, shouldOpen, animated, role);
|
|
@@ -658,14 +636,14 @@ const Menu = class {
|
|
|
658
636
|
* the ionBackButton listener in the menu controller
|
|
659
637
|
* will handle closing the menu when Escape is pressed.
|
|
660
638
|
*/
|
|
661
|
-
return (h(Host, { key: '
|
|
639
|
+
return (h(Host, { key: '9e4ae9476a76781f1d228395c9af9e1c39ec82bb', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
662
640
|
[mode]: true,
|
|
663
641
|
[`menu-type-${type}`]: true,
|
|
664
642
|
'menu-enabled': !disabled,
|
|
665
643
|
[`menu-side-${side}`]: true,
|
|
666
644
|
'menu-pane-visible': isPaneVisible,
|
|
667
645
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
668
|
-
} }, h("div", { key: '
|
|
646
|
+
} }, 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" })));
|
|
669
647
|
}
|
|
670
648
|
get el() { return getElement(this); }
|
|
671
649
|
static get watchers() { return {
|
|
@@ -1482,17 +1482,6 @@ const Modal = class {
|
|
|
1482
1482
|
el.dispatchEvent(ev);
|
|
1483
1483
|
}
|
|
1484
1484
|
};
|
|
1485
|
-
/**
|
|
1486
|
-
* When the modal receives focus directly, pass focus to the handle
|
|
1487
|
-
* if it exists and is focusable, otherwise let the focus trap handle it.
|
|
1488
|
-
*/
|
|
1489
|
-
this.onModalFocus = (ev) => {
|
|
1490
|
-
const { dragHandleEl, el } = this;
|
|
1491
|
-
// Only handle focus if the modal itself was focused (not a child element)
|
|
1492
|
-
if (ev.target === el && dragHandleEl && dragHandleEl.tabIndex !== -1) {
|
|
1493
|
-
dragHandleEl.focus();
|
|
1494
|
-
}
|
|
1495
|
-
};
|
|
1496
1485
|
}
|
|
1497
1486
|
onIsOpenChange(newValue, oldValue) {
|
|
1498
1487
|
if (newValue === true && oldValue === false) {
|
|
@@ -1824,13 +1813,13 @@ const Modal = class {
|
|
|
1824
1813
|
}
|
|
1825
1814
|
/**
|
|
1826
1815
|
* Dismiss the modal overlay after it has been presented.
|
|
1816
|
+
*
|
|
1817
|
+
* @param data Any data to emit in the dismiss events.
|
|
1818
|
+
* @param role The role of the element that is dismissing the modal. For example, 'cancel' or 'backdrop'.
|
|
1819
|
+
*
|
|
1827
1820
|
* This is a no-op if the overlay has not been presented yet. If you want
|
|
1828
1821
|
* to remove an overlay from the DOM that was never presented, use the
|
|
1829
1822
|
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
1830
|
-
*
|
|
1831
|
-
* @param data Any data to emit in the dismiss events.
|
|
1832
|
-
* @param role The role of the element that is dismissing the modal.
|
|
1833
|
-
* For example, `cancel` or `backdrop`.
|
|
1834
1823
|
*/
|
|
1835
1824
|
async dismiss(data, role) {
|
|
1836
1825
|
var _a;
|
|
@@ -1902,10 +1891,8 @@ const Modal = class {
|
|
|
1902
1891
|
return eventMethod(this.el, 'ionModalWillDismiss');
|
|
1903
1892
|
}
|
|
1904
1893
|
/**
|
|
1905
|
-
* Move a sheet style modal to a specific breakpoint.
|
|
1906
|
-
*
|
|
1907
|
-
* @param breakpoint The breakpoint value to move the sheet modal to.
|
|
1908
|
-
* Must be a value defined in your `breakpoints` array.
|
|
1894
|
+
* Move a sheet style modal to a specific breakpoint. The breakpoint value must
|
|
1895
|
+
* be a value defined in your `breakpoints` array.
|
|
1909
1896
|
*/
|
|
1910
1897
|
async setCurrentBreakpoint(breakpoint) {
|
|
1911
1898
|
if (!this.isSheetModal) {
|
|
@@ -1964,21 +1951,18 @@ const Modal = class {
|
|
|
1964
1951
|
const mode = getIonMode(this);
|
|
1965
1952
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
1966
1953
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
1967
|
-
|
|
1968
|
-
return (h(Host, Object.assign({ key: '8add05bb43a2cdb5e3cf180147d31eb85a018fe0', "no-router": true,
|
|
1969
|
-
// Allow the modal to be navigable when the handle is focusable
|
|
1970
|
-
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
1954
|
+
return (h(Host, Object.assign({ key: '0bcbdcfcd7d890eb599da3f97f21c317d34f8e0e', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
1971
1955
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1972
|
-
}, 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
|
|
1956
|
+
}, 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',
|
|
1973
1957
|
/*
|
|
1974
1958
|
role and aria-modal must be used on the
|
|
1975
1959
|
same element. They must also be set inside the
|
|
1976
1960
|
shadow DOM otherwise ion-button will not be highlighted
|
|
1977
1961
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
1978
1962
|
*/
|
|
1979
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '
|
|
1963
|
+
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",
|
|
1980
1964
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
1981
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle"
|
|
1965
|
+
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' }))));
|
|
1982
1966
|
}
|
|
1983
1967
|
get el() { return getElement(this); }
|
|
1984
1968
|
static get watchers() { return {
|
|
@@ -1261,8 +1261,6 @@ const Popover = class {
|
|
|
1261
1261
|
* Developers can pass a mouse, touch, or pointer event
|
|
1262
1262
|
* to position the popover relative to where that event
|
|
1263
1263
|
* was dispatched.
|
|
1264
|
-
*
|
|
1265
|
-
* @param event The event to position the popover relative to.
|
|
1266
1264
|
*/
|
|
1267
1265
|
async present(event) {
|
|
1268
1266
|
const unlock = await this.lockController.lock();
|
|
@@ -1326,14 +1324,15 @@ const Popover = class {
|
|
|
1326
1324
|
}
|
|
1327
1325
|
/**
|
|
1328
1326
|
* Dismiss the popover overlay after it has been presented.
|
|
1329
|
-
* This is a no-op if the overlay has not been presented yet. If you want
|
|
1330
|
-
* to remove an overlay from the DOM that was never presented, use the
|
|
1331
|
-
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
1332
1327
|
*
|
|
1333
1328
|
* @param data Any data to emit in the dismiss events.
|
|
1334
|
-
* @param role The role of the element that is dismissing the popover. For example,
|
|
1329
|
+
* @param role The role of the element that is dismissing the popover. For example, 'cancel' or 'backdrop'.
|
|
1335
1330
|
* @param dismissParentPopover If `true`, dismissing this popover will also dismiss
|
|
1336
1331
|
* a parent popover if this popover is nested. Defaults to `true`.
|
|
1332
|
+
*
|
|
1333
|
+
* This is a no-op if the overlay has not been presented yet. If you want
|
|
1334
|
+
* to remove an overlay from the DOM that was never presented, use the
|
|
1335
|
+
* [remove](https://developer.mozilla.org/en-US/docs/Web/API/Element/remove) method.
|
|
1337
1336
|
*/
|
|
1338
1337
|
async dismiss(data, role, dismissParentPopover = true) {
|
|
1339
1338
|
const unlock = await this.lockController.lock();
|
|
@@ -1385,9 +1384,9 @@ const Popover = class {
|
|
|
1385
1384
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
1386
1385
|
const desktop = isPlatform('desktop');
|
|
1387
1386
|
const enableArrow = arrow && !parentPopover;
|
|
1388
|
-
return (h(Host, Object.assign({ key: '
|
|
1387
|
+
return (h(Host, Object.assign({ key: '1de4862099cfcb5035e78008e6dc7c1371846f9a', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
1389
1388
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
1390
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '
|
|
1389
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '981aa4e0102cb93312ffbd8243cdf2a0cdc60469', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: '1a28ed55e9d34ef78cf0eb0178643301fd2dd75d', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '1c206ea5eb3c0b5883a3d45c34cd22dd5ffe4b65', class: "popover-arrow", part: "arrow" }), h("div", { key: '5ba561486a328c0c7ab825995fdbfb7a196429a4', class: "popover-content", part: "content" }, h("slot", { key: '00fc244ce9dcc2dfc677e6c34b7c8e7a330b2b03' })))));
|
|
1391
1390
|
}
|
|
1392
1391
|
get el() { return getElement(this); }
|
|
1393
1392
|
static get watchers() { return {
|
|
@@ -90,6 +90,7 @@ const ReorderGroup = class {
|
|
|
90
90
|
}
|
|
91
91
|
/**
|
|
92
92
|
* Completes the reorder operation. Must be called by the `ionItemReorder` event.
|
|
93
|
+
*
|
|
93
94
|
* If a list of items is passed, the list will be reordered and returned in the
|
|
94
95
|
* proper order.
|
|
95
96
|
*
|
|
@@ -276,7 +277,7 @@ const ReorderGroup = class {
|
|
|
276
277
|
}
|
|
277
278
|
render() {
|
|
278
279
|
const mode = getIonMode(this);
|
|
279
|
-
return (h(Host, { key: '
|
|
280
|
+
return (h(Host, { key: 'f30613b361c5c3095b7928a92fb4b1e8d6eff600', class: {
|
|
280
281
|
[mode]: true,
|
|
281
282
|
'reorder-enabled': !this.disabled,
|
|
282
283
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -674,7 +674,6 @@ const Router = class {
|
|
|
674
674
|
*
|
|
675
675
|
* @param path The path to navigate to.
|
|
676
676
|
* @param direction The direction of the animation. Defaults to `"forward"`.
|
|
677
|
-
* @param animation A custom animation to use for the transition.
|
|
678
677
|
*/
|
|
679
678
|
async push(path, direction = 'forward', animation) {
|
|
680
679
|
var _a;
|
|
@@ -255,8 +255,10 @@ const Searchbar = class {
|
|
|
255
255
|
/**
|
|
256
256
|
* Sets focus on the native `input` in `ion-searchbar`. Use this method instead of the global
|
|
257
257
|
* `input.focus()`.
|
|
258
|
+
*
|
|
258
259
|
* Developers who wish to focus an input when a page enters
|
|
259
260
|
* should call `setFocus()` in the `ionViewDidEnter()` lifecycle method.
|
|
261
|
+
*
|
|
260
262
|
* Developers who wish to focus an input when an overlay is presented
|
|
261
263
|
* should call `setFocus` after `didPresent` has resolved.
|
|
262
264
|
*
|
|
@@ -435,8 +437,8 @@ const Searchbar = class {
|
|
|
435
437
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
436
438
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
437
439
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
438
|
-
const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '
|
|
439
|
-
return (h(Host, { key: '
|
|
440
|
+
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))));
|
|
441
|
+
return (h(Host, { key: 'e1e30cdd79f9f54d5f2d27501012358bc46880e5', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
|
|
440
442
|
[mode]: true,
|
|
441
443
|
'searchbar-animated': animated,
|
|
442
444
|
'searchbar-disabled': this.disabled,
|
|
@@ -446,14 +448,14 @@ const Searchbar = class {
|
|
|
446
448
|
'searchbar-has-focus': this.focused,
|
|
447
449
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
448
450
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
449
|
-
}) }, h("div", { key: '
|
|
451
|
+
}) }, 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) => {
|
|
450
452
|
/**
|
|
451
453
|
* This prevents mobile browsers from
|
|
452
454
|
* blurring the input when the clear
|
|
453
455
|
* button is activated.
|
|
454
456
|
*/
|
|
455
457
|
ev.preventDefault();
|
|
456
|
-
}, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '
|
|
458
|
+
}, 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));
|
|
457
459
|
}
|
|
458
460
|
get el() { return getElement(this); }
|
|
459
461
|
static get watchers() { return {
|
|
@@ -214,7 +214,7 @@ const Select = class {
|
|
|
214
214
|
const scrollSelectedIntoView = () => {
|
|
215
215
|
const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
|
|
216
216
|
if (indexOfSelected > -1) {
|
|
217
|
-
const selectedItem = overlay.querySelector(`.select-interface-option:nth-
|
|
217
|
+
const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
|
|
218
218
|
if (selectedItem) {
|
|
219
219
|
/**
|
|
220
220
|
* Browsers such as Firefox do not
|
|
@@ -734,7 +734,7 @@ const Select = class {
|
|
|
734
734
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
735
735
|
*/
|
|
736
736
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
737
|
-
return (h(Host, { key: '
|
|
737
|
+
return (h(Host, { key: 'e33253af9b9daa14460c7c259fb138b4d2b875ae', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
738
738
|
[mode]: true,
|
|
739
739
|
'in-item': inItem,
|
|
740
740
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -752,7 +752,7 @@ const Select = class {
|
|
|
752
752
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
753
753
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
754
754
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
755
|
-
}) }, h("label", { key: '
|
|
755
|
+
}) }, 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()));
|
|
756
756
|
}
|
|
757
757
|
get el() { return getElement(this); }
|
|
758
758
|
static get watchers() { return {
|