voyager-ionic-core 8.4.0 → 8.4.1
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/header.js +21 -2
- package/components/ion-item-sliding.js +3 -1
- package/components/ion-menu.js +30 -3
- package/components/ion-toast.js +2 -2
- package/components/overlays.js +27 -12
- package/components/radio-group.js +8 -2
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +1 -1
- package/dist/cjs/ion-alert.cjs.entry.js +1 -1
- package/dist/cjs/ion-app_8.cjs.entry.js +21 -2
- package/dist/cjs/ion-datetime_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -1
- package/dist/cjs/ion-loading.cjs.entry.js +1 -1
- package/dist/cjs/ion-menu_3.cjs.entry.js +31 -4
- package/dist/cjs/ion-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +6 -1
- package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-toast.cjs.entry.js +3 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/{overlays-ba0f6986.js → overlays-aa669eb8.js} +26 -11
- package/dist/collection/components/header/header.utils.js +21 -2
- package/dist/collection/components/item-sliding/item-sliding.js +3 -1
- package/dist/collection/components/menu/menu.js +30 -2
- package/dist/collection/components/radio-group/radio-group.js +30 -1
- package/dist/collection/components/toast/toast.ios.css +1 -1
- package/dist/collection/components/toast/toast.md.css +1 -1
- package/dist/collection/utils/focus-trap.js +8 -2
- package/dist/collection/utils/overlays.js +19 -9
- package/dist/docs.json +1 -1
- package/dist/esm/index.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +1 -1
- package/dist/esm/ion-alert.entry.js +1 -1
- package/dist/esm/ion-app_8.entry.js +21 -2
- package/dist/esm/ion-datetime_3.entry.js +1 -1
- package/dist/esm/ion-item-option_3.entry.js +3 -1
- package/dist/esm/ion-loading.entry.js +1 -1
- package/dist/esm/ion-menu_3.entry.js +31 -4
- package/dist/esm/ion-modal.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +6 -1
- package/dist/esm/ion-select-modal.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +1 -1
- package/dist/esm/ion-toast.entry.js +3 -3
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/{overlays-ae10d43d.js → overlays-e7b9d6d9.js} +27 -12
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-select-modal.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/overlays-e7b9d6d9.js +4 -0
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-9ee1e8a6.entry.js → p-04909654.entry.js} +1 -1
- package/dist/ionic/p-0aa833fb.system.js +4 -0
- package/dist/ionic/{p-5393e8bb.system.entry.js → p-1046866e.system.entry.js} +1 -1
- package/dist/ionic/p-12a722b8.system.entry.js +4 -0
- package/dist/ionic/{p-4b000207.entry.js → p-12c45a7c.entry.js} +1 -1
- package/dist/ionic/{p-5b5c1505.system.entry.js → p-14e159ea.system.entry.js} +1 -1
- package/dist/ionic/{p-a49378bb.system.entry.js → p-17a9ca63.system.entry.js} +1 -1
- package/dist/ionic/{p-0161caf9.system.entry.js → p-1fe02220.system.entry.js} +1 -1
- package/dist/ionic/{p-f10b70a1.entry.js → p-2b9b78c7.entry.js} +1 -1
- package/dist/ionic/{p-5bd39e5e.system.entry.js → p-2bd0ae94.system.entry.js} +2 -2
- package/dist/ionic/p-322c5fb4.system.js +1 -1
- package/dist/ionic/{p-4561cd09.system.entry.js → p-404aede0.system.entry.js} +1 -1
- package/dist/ionic/p-508d024a.entry.js +4 -0
- package/dist/ionic/{p-6734db42.system.entry.js → p-626fd66d.system.entry.js} +1 -1
- package/dist/ionic/{p-3b419d79.system.entry.js → p-6416c34c.system.entry.js} +1 -1
- package/dist/ionic/{p-857ca696.system.entry.js → p-6499df44.system.entry.js} +1 -1
- package/dist/ionic/{p-db0c8e7d.entry.js → p-6b280620.entry.js} +1 -1
- package/dist/ionic/{p-1c1b8e1f.entry.js → p-6d6cedc5.entry.js} +1 -1
- package/dist/ionic/{p-1ebd1e27.system.entry.js → p-7ddc46c3.system.entry.js} +1 -1
- package/dist/ionic/{p-a34b4d94.entry.js → p-942b5e13.entry.js} +1 -1
- package/dist/ionic/{p-a1b9a163.entry.js → p-982315a6.entry.js} +1 -1
- package/dist/ionic/{p-a1051806.entry.js → p-9e33104d.entry.js} +1 -1
- package/dist/ionic/{p-9910f786.entry.js → p-a43467d8.entry.js} +1 -1
- package/dist/ionic/{p-1b7605a7.system.entry.js → p-b2272f51.system.entry.js} +1 -1
- package/dist/ionic/{p-4a274c89.entry.js → p-b79ba17c.entry.js} +1 -1
- package/dist/ionic/{p-8f05ba3b.system.js → p-c449820c.system.js} +1 -1
- package/dist/ionic/{p-1e41f2aa.system.entry.js → p-e4f69534.system.entry.js} +1 -1
- package/dist/ionic/p-e6635685.js +4 -0
- package/dist/ionic/p-fbf284c7.entry.js +4 -0
- package/dist/ionic/{p-e2252ad6.entry.js → p-fec61c32.entry.js} +1 -1
- package/dist/types/components/radio-group/radio-group.d.ts +2 -0
- package/dist/types/components.d.ts +1 -0
- package/dist/types/utils/focus-trap.d.ts +1 -1
- package/hydrate/index.js +89 -20
- package/hydrate/index.mjs +89 -20
- package/package.json +1 -1
- package/dist/esm-es5/overlays-ae10d43d.js +0 -4
- package/dist/ionic/p-0437ace4.system.entry.js +0 -4
- package/dist/ionic/p-04fc24ee.system.js +0 -4
- package/dist/ionic/p-09cf2394.entry.js +0 -4
- package/dist/ionic/p-5c831f49.js +0 -4
- package/dist/ionic/p-5f79d8c5.entry.js +0 -4
|
@@ -10,7 +10,7 @@
|
|
|
10
10
|
* Note: We need this distinction because `disabled="false"` is
|
|
11
11
|
* valid usage for the disabled property on ion-button.
|
|
12
12
|
*/
|
|
13
|
-
export declare const focusableQueryString = "[tabindex]:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^=\"-\"]):not([hidden]):not([disabled]), textarea:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), button:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), select:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), .ion-focusable[disabled=\"false\"]:not([tabindex^=\"-\"]):not([hidden])";
|
|
13
|
+
export declare const focusableQueryString = "[tabindex]:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^=\"-\"]):not([hidden]):not([disabled]), textarea:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), button:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), select:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), ion-checkbox:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), ion-radio:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^=\"-\"]):not([hidden]):not([disabled]), .ion-focusable[disabled=\"false\"]:not([tabindex^=\"-\"]):not([hidden])";
|
|
14
14
|
/**
|
|
15
15
|
* Focuses the first descendant in a context
|
|
16
16
|
* that can receive focus. If none exists,
|
package/hydrate/index.js
CHANGED
|
@@ -4392,7 +4392,7 @@ const createLockController = () => {
|
|
|
4392
4392
|
* Note: We need this distinction because `disabled="false"` is
|
|
4393
4393
|
* valid usage for the disabled property on ion-button.
|
|
4394
4394
|
*/
|
|
4395
|
-
const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
|
|
4395
|
+
const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-checkbox:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-radio:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
|
|
4396
4396
|
/**
|
|
4397
4397
|
* Focuses the first descendant in a context
|
|
4398
4398
|
* that can receive focus. If none exists,
|
|
@@ -4447,7 +4447,13 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
|
|
|
4447
4447
|
elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
|
|
4448
4448
|
}
|
|
4449
4449
|
if (elementToFocus) {
|
|
4450
|
-
|
|
4450
|
+
const radioGroup = elementToFocus.closest('ion-radio-group');
|
|
4451
|
+
if (radioGroup) {
|
|
4452
|
+
radioGroup.setFocus();
|
|
4453
|
+
}
|
|
4454
|
+
else {
|
|
4455
|
+
focusVisibleElement(elementToFocus);
|
|
4456
|
+
}
|
|
4451
4457
|
}
|
|
4452
4458
|
else {
|
|
4453
4459
|
// Focus fallback element instead of letting focus escape
|
|
@@ -5398,21 +5404,30 @@ const createTriggerController = () => {
|
|
|
5398
5404
|
* like TalkBack do not announce or interact with the content until the
|
|
5399
5405
|
* animation is complete, avoiding confusion for users.
|
|
5400
5406
|
*
|
|
5401
|
-
*
|
|
5402
|
-
* in
|
|
5403
|
-
* styles)
|
|
5404
|
-
*
|
|
5407
|
+
* When the overlay is presented on an Android device, TalkBack's focus rings
|
|
5408
|
+
* may appear in the wrong position due to the transition (specifically
|
|
5409
|
+
* `transform` styles). This occurs because the focus rings are initially
|
|
5410
|
+
* displayed at the starting position of the elements before the transition
|
|
5411
|
+
* begins. This workaround ensures the focus rings do not appear in the
|
|
5412
|
+
* incorrect location.
|
|
5413
|
+
*
|
|
5414
|
+
* If this solution is applied to iOS devices, then it leads to a bug where
|
|
5415
|
+
* the overlays cannot be accessed by screen readers. This is due to
|
|
5416
|
+
* VoiceOver not being able to update the accessibility tree when the
|
|
5417
|
+
* `aria-hidden` is removed.
|
|
5405
5418
|
*
|
|
5406
5419
|
* @param overlay - The overlay that is being animated.
|
|
5407
5420
|
*/
|
|
5408
5421
|
const hideAnimatingOverlayFromScreenReaders = (overlay) => {
|
|
5409
5422
|
if (doc === undefined)
|
|
5410
5423
|
return;
|
|
5411
|
-
|
|
5412
|
-
|
|
5413
|
-
|
|
5414
|
-
|
|
5415
|
-
|
|
5424
|
+
if (isPlatform('android')) {
|
|
5425
|
+
/**
|
|
5426
|
+
* Once the animation is complete, this attribute will be removed.
|
|
5427
|
+
* This is done at the end of the `present` method.
|
|
5428
|
+
*/
|
|
5429
|
+
overlay.setAttribute('aria-hidden', 'true');
|
|
5430
|
+
}
|
|
5416
5431
|
};
|
|
5417
5432
|
/**
|
|
5418
5433
|
* Ensure that underlying overlays have aria-hidden if necessary so that screen readers
|
|
@@ -13914,13 +13929,32 @@ mainHeaderIndex, scrollHeaderIndex, scrollEl) => {
|
|
|
13914
13929
|
};
|
|
13915
13930
|
const setHeaderActive = (headerIndex, active = true) => {
|
|
13916
13931
|
const headerEl = headerIndex.el;
|
|
13932
|
+
const toolbars = headerIndex.toolbars;
|
|
13933
|
+
const ionTitles = toolbars.map((toolbar) => toolbar.ionTitleEl);
|
|
13917
13934
|
if (active) {
|
|
13918
13935
|
headerEl.classList.remove('header-collapse-condense-inactive');
|
|
13919
|
-
|
|
13936
|
+
ionTitles.forEach((ionTitle) => {
|
|
13937
|
+
if (ionTitle) {
|
|
13938
|
+
ionTitle.removeAttribute('aria-hidden');
|
|
13939
|
+
}
|
|
13940
|
+
});
|
|
13920
13941
|
}
|
|
13921
13942
|
else {
|
|
13922
13943
|
headerEl.classList.add('header-collapse-condense-inactive');
|
|
13923
|
-
|
|
13944
|
+
/**
|
|
13945
|
+
* The small title should only be accessed by screen readers
|
|
13946
|
+
* when the large title collapses into the small title due
|
|
13947
|
+
* to scrolling.
|
|
13948
|
+
*
|
|
13949
|
+
* Originally, the header was given `aria-hidden="true"`
|
|
13950
|
+
* but this caused issues with screen readers not being
|
|
13951
|
+
* able to access any focusable elements within the header.
|
|
13952
|
+
*/
|
|
13953
|
+
ionTitles.forEach((ionTitle) => {
|
|
13954
|
+
if (ionTitle) {
|
|
13955
|
+
ionTitle.setAttribute('aria-hidden', 'true');
|
|
13956
|
+
}
|
|
13957
|
+
});
|
|
13924
13958
|
}
|
|
13925
13959
|
};
|
|
13926
13960
|
const scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {
|
|
@@ -16363,6 +16397,8 @@ class ItemSliding {
|
|
|
16363
16397
|
optsWidth = -this.optsWidthLeftSide;
|
|
16364
16398
|
openAmount = optsWidth + (openAmount - optsWidth) * ELASTIC_FACTOR;
|
|
16365
16399
|
}
|
|
16400
|
+
if (openAmount === 0)
|
|
16401
|
+
return;
|
|
16366
16402
|
this.setOpenAmount(openAmount, false);
|
|
16367
16403
|
}
|
|
16368
16404
|
onEnd(gesture) {
|
|
@@ -16477,7 +16513,7 @@ class ItemSliding {
|
|
|
16477
16513
|
}
|
|
16478
16514
|
render() {
|
|
16479
16515
|
const mode = getIonMode$1(this);
|
|
16480
|
-
return (hAsync(Host, { key: '
|
|
16516
|
+
return (hAsync(Host, { key: 'a5216b11d92a1e1afed09d139212e0df81fdab79', class: {
|
|
16481
16517
|
[mode]: true,
|
|
16482
16518
|
'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
|
|
16483
16519
|
'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
|
|
@@ -17816,6 +17852,22 @@ class Menu {
|
|
|
17816
17852
|
}
|
|
17817
17853
|
beforeAnimation(shouldOpen, role) {
|
|
17818
17854
|
assert(!this.isAnimating, '_before() should not be called while animating');
|
|
17855
|
+
/**
|
|
17856
|
+
* When the menu is presented on an Android device, TalkBack's focus rings
|
|
17857
|
+
* may appear in the wrong position due to the transition (specifically
|
|
17858
|
+
* `transform` styles). This occurs because the focus rings are initially
|
|
17859
|
+
* displayed at the starting position of the elements before the transition
|
|
17860
|
+
* begins. This workaround ensures the focus rings do not appear in the
|
|
17861
|
+
* incorrect location.
|
|
17862
|
+
*
|
|
17863
|
+
* If this solution is applied to iOS devices, then it leads to a bug where
|
|
17864
|
+
* the overlays cannot be accessed by screen readers. This is due to
|
|
17865
|
+
* VoiceOver not being able to update the accessibility tree when the
|
|
17866
|
+
* `aria-hidden` is removed.
|
|
17867
|
+
*/
|
|
17868
|
+
if (isPlatform('android')) {
|
|
17869
|
+
this.el.setAttribute('aria-hidden', 'true');
|
|
17870
|
+
}
|
|
17819
17871
|
// this places the menu into the correct location before it animates in
|
|
17820
17872
|
// this css class doesn't actually kick off any animations
|
|
17821
17873
|
this.el.classList.add(SHOW_MENU);
|
|
@@ -17868,6 +17920,16 @@ class Menu {
|
|
|
17868
17920
|
this.blocker.unblock();
|
|
17869
17921
|
}
|
|
17870
17922
|
if (isOpen) {
|
|
17923
|
+
/**
|
|
17924
|
+
* When the menu is presented on an Android device, TalkBack's focus rings
|
|
17925
|
+
* may appear in the wrong position due to the transition (specifically
|
|
17926
|
+
* `transform` styles). The menu is hidden from screen readers during the
|
|
17927
|
+
* transition to prevent this. Once the transition is complete, the menu
|
|
17928
|
+
* is shown again.
|
|
17929
|
+
*/
|
|
17930
|
+
if (isPlatform('android')) {
|
|
17931
|
+
this.el.removeAttribute('aria-hidden');
|
|
17932
|
+
}
|
|
17871
17933
|
// emit open event
|
|
17872
17934
|
this.ionDidOpen.emit();
|
|
17873
17935
|
/**
|
|
@@ -17883,6 +17945,7 @@ class Menu {
|
|
|
17883
17945
|
document.addEventListener('focus', this.handleFocus, true);
|
|
17884
17946
|
}
|
|
17885
17947
|
else {
|
|
17948
|
+
this.el.removeAttribute('aria-hidden');
|
|
17886
17949
|
// remove css classes and unhide content from screen readers
|
|
17887
17950
|
this.el.classList.remove(SHOW_MENU);
|
|
17888
17951
|
/**
|
|
@@ -17949,14 +18012,14 @@ class Menu {
|
|
|
17949
18012
|
* the ionBackButton listener in the menu controller
|
|
17950
18013
|
* will handle closing the menu when Escape is pressed.
|
|
17951
18014
|
*/
|
|
17952
|
-
return (hAsync(Host, { key: '
|
|
18015
|
+
return (hAsync(Host, { key: 'da96fdb4c5ddf60e615cc4cdda7ccdb3fd7e089b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
17953
18016
|
[mode]: true,
|
|
17954
18017
|
[`menu-type-${type}`]: true,
|
|
17955
18018
|
'menu-enabled': !disabled,
|
|
17956
18019
|
[`menu-side-${side}`]: true,
|
|
17957
18020
|
'menu-pane-visible': isPaneVisible,
|
|
17958
18021
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
17959
|
-
} }, hAsync("div", { key: '
|
|
18022
|
+
} }, hAsync("div", { key: '894e680fe227534711128c7aca980964ddb5a08a', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'e9f5934518dc0cceaeadf1f2820614595fec6bc9' })), hAsync("ion-backdrop", { key: '7282077817657b1bb6c155f1404c0a519fece993', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
|
|
17960
18023
|
}
|
|
17961
18024
|
get el() { return getElement(this); }
|
|
17962
18025
|
static get watchers() { return {
|
|
@@ -24821,11 +24884,16 @@ class RadioGroup {
|
|
|
24821
24884
|
}
|
|
24822
24885
|
}
|
|
24823
24886
|
}
|
|
24887
|
+
/** @internal */
|
|
24888
|
+
async setFocus() {
|
|
24889
|
+
const radioToFocus = this.getRadios().find((r) => r.tabIndex !== -1);
|
|
24890
|
+
radioToFocus === null || radioToFocus === void 0 ? void 0 : radioToFocus.setFocus();
|
|
24891
|
+
}
|
|
24824
24892
|
render() {
|
|
24825
24893
|
const { label, labelId, el, name, value } = this;
|
|
24826
24894
|
const mode = getIonMode$1(this);
|
|
24827
24895
|
renderHiddenInput(true, el, name, value, false);
|
|
24828
|
-
return hAsync(Host, { key: '
|
|
24896
|
+
return hAsync(Host, { key: 'a853e38901f0f4ba17bbf21ebb5da5b5c20b327e', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
|
|
24829
24897
|
}
|
|
24830
24898
|
get el() { return getElement(this); }
|
|
24831
24899
|
static get watchers() { return {
|
|
@@ -24838,7 +24906,8 @@ class RadioGroup {
|
|
|
24838
24906
|
"allowEmptySelection": [4, "allow-empty-selection"],
|
|
24839
24907
|
"compareWith": [1, "compare-with"],
|
|
24840
24908
|
"name": [1],
|
|
24841
|
-
"value": [1032]
|
|
24909
|
+
"value": [1032],
|
|
24910
|
+
"setFocus": [64]
|
|
24842
24911
|
},
|
|
24843
24912
|
"$listeners$": [[4, "keydown", "onKeydown"]],
|
|
24844
24913
|
"$lazyBundleId$": "-",
|
|
@@ -32033,10 +32102,10 @@ const createSwipeToDismissGesture = (el, toastPosition, onDismiss) => {
|
|
|
32033
32102
|
return gesture;
|
|
32034
32103
|
};
|
|
32035
32104
|
|
|
32036
|
-
const toastIosCss = ":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;
|
|
32105
|
+
const toastIosCss = ":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);pointer-events:auto}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-content{min-width:0}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-radius:14px;--button-color:var(--ion-color-primary, #0054e9);--color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--max-width:700px;--max-height:478px;--start:10px;--end:10px;font-size:clamp(14px, 0.875rem, 43.4px)}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;z-index:10}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.toast-translucent) .toast-wrapper{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}:host(.ion-color.toast-translucent) .toast-wrapper{background:rgba(var(--ion-color-base-rgb), 0.8)}}.toast-wrapper.toast-middle{opacity:0.01}.toast-content{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:15px;padding-bottom:15px}.toast-header{margin-bottom:2px;font-weight:500}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;min-height:44px;-webkit-transition:background-color, opacity 100ms linear;transition:background-color, opacity 100ms linear;border:0;background-color:transparent;font-family:var(--ion-font-family);font-size:clamp(17px, 1.0625rem, 21.998px);font-weight:500;overflow:hidden}.toast-button.ion-activated{opacity:0.4}@media (any-hover: hover){.toast-button:hover{opacity:0.6}}";
|
|
32037
32106
|
var IonToastIosStyle0 = toastIosCss;
|
|
32038
32107
|
|
|
32039
|
-
const toastMdCss = ":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;
|
|
32108
|
+
const toastMdCss = ":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);pointer-events:auto}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-content{min-width:0}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-800, var(--ion-background-color-step-800, #333333));--border-radius:4px;--box-shadow:0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);--button-color:var(--ion-color-primary, #0054e9);--color:var(--ion-color-step-50, var(--ion-text-color-step-950, #f2f2f2));--max-width:700px;--start:8px;--end:8px;font-size:0.875rem}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;opacity:0.01;z-index:10}.toast-content{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:14px;padding-bottom:14px}.toast-header{margin-bottom:2px;font-weight:500;line-height:1.25rem}.toast-message{line-height:1.25rem}.toast-layout-baseline .toast-button-group-start{-webkit-margin-start:8px;margin-inline-start:8px}.toast-layout-stacked .toast-button-group-start{-webkit-margin-end:8px;margin-inline-end:8px;margin-top:8px}.toast-layout-baseline .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px}.toast-layout-stacked .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px;margin-bottom:8px}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;font-family:var(--ion-font-family);font-size:0.875rem;font-weight:500;letter-spacing:0.84px;text-transform:uppercase;overflow:hidden}.toast-button-cancel{color:var(--ion-color-step-100, var(--ion-text-color-step-900, #e6e6e6))}.toast-button-icon-only{border-radius:50%;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:9px;padding-bottom:9px;width:36px;height:36px}@media (any-hover: hover){.toast-button:hover{background-color:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08)}.toast-button-cancel:hover{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.08)}}";
|
|
32040
32109
|
var IonToastMdStyle0 = toastMdCss;
|
|
32041
32110
|
|
|
32042
32111
|
// TODO(FW-2832): types
|
package/hydrate/index.mjs
CHANGED
|
@@ -4388,7 +4388,7 @@ const createLockController = () => {
|
|
|
4388
4388
|
* Note: We need this distinction because `disabled="false"` is
|
|
4389
4389
|
* valid usage for the disabled property on ion-button.
|
|
4390
4390
|
*/
|
|
4391
|
-
const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
|
|
4391
|
+
const focusableQueryString = '[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-checkbox:not([tabindex^="-"]):not([hidden]):not([disabled]), ion-radio:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';
|
|
4392
4392
|
/**
|
|
4393
4393
|
* Focuses the first descendant in a context
|
|
4394
4394
|
* that can receive focus. If none exists,
|
|
@@ -4443,7 +4443,13 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
|
|
|
4443
4443
|
elementToFocus = shadowRoot.querySelector(focusableQueryString) || hostToFocus;
|
|
4444
4444
|
}
|
|
4445
4445
|
if (elementToFocus) {
|
|
4446
|
-
|
|
4446
|
+
const radioGroup = elementToFocus.closest('ion-radio-group');
|
|
4447
|
+
if (radioGroup) {
|
|
4448
|
+
radioGroup.setFocus();
|
|
4449
|
+
}
|
|
4450
|
+
else {
|
|
4451
|
+
focusVisibleElement(elementToFocus);
|
|
4452
|
+
}
|
|
4447
4453
|
}
|
|
4448
4454
|
else {
|
|
4449
4455
|
// Focus fallback element instead of letting focus escape
|
|
@@ -5394,21 +5400,30 @@ const createTriggerController = () => {
|
|
|
5394
5400
|
* like TalkBack do not announce or interact with the content until the
|
|
5395
5401
|
* animation is complete, avoiding confusion for users.
|
|
5396
5402
|
*
|
|
5397
|
-
*
|
|
5398
|
-
* in
|
|
5399
|
-
* styles)
|
|
5400
|
-
*
|
|
5403
|
+
* When the overlay is presented on an Android device, TalkBack's focus rings
|
|
5404
|
+
* may appear in the wrong position due to the transition (specifically
|
|
5405
|
+
* `transform` styles). This occurs because the focus rings are initially
|
|
5406
|
+
* displayed at the starting position of the elements before the transition
|
|
5407
|
+
* begins. This workaround ensures the focus rings do not appear in the
|
|
5408
|
+
* incorrect location.
|
|
5409
|
+
*
|
|
5410
|
+
* If this solution is applied to iOS devices, then it leads to a bug where
|
|
5411
|
+
* the overlays cannot be accessed by screen readers. This is due to
|
|
5412
|
+
* VoiceOver not being able to update the accessibility tree when the
|
|
5413
|
+
* `aria-hidden` is removed.
|
|
5401
5414
|
*
|
|
5402
5415
|
* @param overlay - The overlay that is being animated.
|
|
5403
5416
|
*/
|
|
5404
5417
|
const hideAnimatingOverlayFromScreenReaders = (overlay) => {
|
|
5405
5418
|
if (doc === undefined)
|
|
5406
5419
|
return;
|
|
5407
|
-
|
|
5408
|
-
|
|
5409
|
-
|
|
5410
|
-
|
|
5411
|
-
|
|
5420
|
+
if (isPlatform('android')) {
|
|
5421
|
+
/**
|
|
5422
|
+
* Once the animation is complete, this attribute will be removed.
|
|
5423
|
+
* This is done at the end of the `present` method.
|
|
5424
|
+
*/
|
|
5425
|
+
overlay.setAttribute('aria-hidden', 'true');
|
|
5426
|
+
}
|
|
5412
5427
|
};
|
|
5413
5428
|
/**
|
|
5414
5429
|
* Ensure that underlying overlays have aria-hidden if necessary so that screen readers
|
|
@@ -13910,13 +13925,32 @@ mainHeaderIndex, scrollHeaderIndex, scrollEl) => {
|
|
|
13910
13925
|
};
|
|
13911
13926
|
const setHeaderActive = (headerIndex, active = true) => {
|
|
13912
13927
|
const headerEl = headerIndex.el;
|
|
13928
|
+
const toolbars = headerIndex.toolbars;
|
|
13929
|
+
const ionTitles = toolbars.map((toolbar) => toolbar.ionTitleEl);
|
|
13913
13930
|
if (active) {
|
|
13914
13931
|
headerEl.classList.remove('header-collapse-condense-inactive');
|
|
13915
|
-
|
|
13932
|
+
ionTitles.forEach((ionTitle) => {
|
|
13933
|
+
if (ionTitle) {
|
|
13934
|
+
ionTitle.removeAttribute('aria-hidden');
|
|
13935
|
+
}
|
|
13936
|
+
});
|
|
13916
13937
|
}
|
|
13917
13938
|
else {
|
|
13918
13939
|
headerEl.classList.add('header-collapse-condense-inactive');
|
|
13919
|
-
|
|
13940
|
+
/**
|
|
13941
|
+
* The small title should only be accessed by screen readers
|
|
13942
|
+
* when the large title collapses into the small title due
|
|
13943
|
+
* to scrolling.
|
|
13944
|
+
*
|
|
13945
|
+
* Originally, the header was given `aria-hidden="true"`
|
|
13946
|
+
* but this caused issues with screen readers not being
|
|
13947
|
+
* able to access any focusable elements within the header.
|
|
13948
|
+
*/
|
|
13949
|
+
ionTitles.forEach((ionTitle) => {
|
|
13950
|
+
if (ionTitle) {
|
|
13951
|
+
ionTitle.setAttribute('aria-hidden', 'true');
|
|
13952
|
+
}
|
|
13953
|
+
});
|
|
13920
13954
|
}
|
|
13921
13955
|
};
|
|
13922
13956
|
const scaleLargeTitles = (toolbars = [], scale = 1, transition = false) => {
|
|
@@ -16359,6 +16393,8 @@ class ItemSliding {
|
|
|
16359
16393
|
optsWidth = -this.optsWidthLeftSide;
|
|
16360
16394
|
openAmount = optsWidth + (openAmount - optsWidth) * ELASTIC_FACTOR;
|
|
16361
16395
|
}
|
|
16396
|
+
if (openAmount === 0)
|
|
16397
|
+
return;
|
|
16362
16398
|
this.setOpenAmount(openAmount, false);
|
|
16363
16399
|
}
|
|
16364
16400
|
onEnd(gesture) {
|
|
@@ -16473,7 +16509,7 @@ class ItemSliding {
|
|
|
16473
16509
|
}
|
|
16474
16510
|
render() {
|
|
16475
16511
|
const mode = getIonMode$1(this);
|
|
16476
|
-
return (hAsync(Host, { key: '
|
|
16512
|
+
return (hAsync(Host, { key: 'a5216b11d92a1e1afed09d139212e0df81fdab79', class: {
|
|
16477
16513
|
[mode]: true,
|
|
16478
16514
|
'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
|
|
16479
16515
|
'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
|
|
@@ -17812,6 +17848,22 @@ class Menu {
|
|
|
17812
17848
|
}
|
|
17813
17849
|
beforeAnimation(shouldOpen, role) {
|
|
17814
17850
|
assert(!this.isAnimating, '_before() should not be called while animating');
|
|
17851
|
+
/**
|
|
17852
|
+
* When the menu is presented on an Android device, TalkBack's focus rings
|
|
17853
|
+
* may appear in the wrong position due to the transition (specifically
|
|
17854
|
+
* `transform` styles). This occurs because the focus rings are initially
|
|
17855
|
+
* displayed at the starting position of the elements before the transition
|
|
17856
|
+
* begins. This workaround ensures the focus rings do not appear in the
|
|
17857
|
+
* incorrect location.
|
|
17858
|
+
*
|
|
17859
|
+
* If this solution is applied to iOS devices, then it leads to a bug where
|
|
17860
|
+
* the overlays cannot be accessed by screen readers. This is due to
|
|
17861
|
+
* VoiceOver not being able to update the accessibility tree when the
|
|
17862
|
+
* `aria-hidden` is removed.
|
|
17863
|
+
*/
|
|
17864
|
+
if (isPlatform('android')) {
|
|
17865
|
+
this.el.setAttribute('aria-hidden', 'true');
|
|
17866
|
+
}
|
|
17815
17867
|
// this places the menu into the correct location before it animates in
|
|
17816
17868
|
// this css class doesn't actually kick off any animations
|
|
17817
17869
|
this.el.classList.add(SHOW_MENU);
|
|
@@ -17864,6 +17916,16 @@ class Menu {
|
|
|
17864
17916
|
this.blocker.unblock();
|
|
17865
17917
|
}
|
|
17866
17918
|
if (isOpen) {
|
|
17919
|
+
/**
|
|
17920
|
+
* When the menu is presented on an Android device, TalkBack's focus rings
|
|
17921
|
+
* may appear in the wrong position due to the transition (specifically
|
|
17922
|
+
* `transform` styles). The menu is hidden from screen readers during the
|
|
17923
|
+
* transition to prevent this. Once the transition is complete, the menu
|
|
17924
|
+
* is shown again.
|
|
17925
|
+
*/
|
|
17926
|
+
if (isPlatform('android')) {
|
|
17927
|
+
this.el.removeAttribute('aria-hidden');
|
|
17928
|
+
}
|
|
17867
17929
|
// emit open event
|
|
17868
17930
|
this.ionDidOpen.emit();
|
|
17869
17931
|
/**
|
|
@@ -17879,6 +17941,7 @@ class Menu {
|
|
|
17879
17941
|
document.addEventListener('focus', this.handleFocus, true);
|
|
17880
17942
|
}
|
|
17881
17943
|
else {
|
|
17944
|
+
this.el.removeAttribute('aria-hidden');
|
|
17882
17945
|
// remove css classes and unhide content from screen readers
|
|
17883
17946
|
this.el.classList.remove(SHOW_MENU);
|
|
17884
17947
|
/**
|
|
@@ -17945,14 +18008,14 @@ class Menu {
|
|
|
17945
18008
|
* the ionBackButton listener in the menu controller
|
|
17946
18009
|
* will handle closing the menu when Escape is pressed.
|
|
17947
18010
|
*/
|
|
17948
|
-
return (hAsync(Host, { key: '
|
|
18011
|
+
return (hAsync(Host, { key: 'da96fdb4c5ddf60e615cc4cdda7ccdb3fd7e089b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
17949
18012
|
[mode]: true,
|
|
17950
18013
|
[`menu-type-${type}`]: true,
|
|
17951
18014
|
'menu-enabled': !disabled,
|
|
17952
18015
|
[`menu-side-${side}`]: true,
|
|
17953
18016
|
'menu-pane-visible': isPaneVisible,
|
|
17954
18017
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
17955
|
-
} }, hAsync("div", { key: '
|
|
18018
|
+
} }, hAsync("div", { key: '894e680fe227534711128c7aca980964ddb5a08a', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: 'e9f5934518dc0cceaeadf1f2820614595fec6bc9' })), hAsync("ion-backdrop", { key: '7282077817657b1bb6c155f1404c0a519fece993', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
|
|
17956
18019
|
}
|
|
17957
18020
|
get el() { return getElement(this); }
|
|
17958
18021
|
static get watchers() { return {
|
|
@@ -24817,11 +24880,16 @@ class RadioGroup {
|
|
|
24817
24880
|
}
|
|
24818
24881
|
}
|
|
24819
24882
|
}
|
|
24883
|
+
/** @internal */
|
|
24884
|
+
async setFocus() {
|
|
24885
|
+
const radioToFocus = this.getRadios().find((r) => r.tabIndex !== -1);
|
|
24886
|
+
radioToFocus === null || radioToFocus === void 0 ? void 0 : radioToFocus.setFocus();
|
|
24887
|
+
}
|
|
24820
24888
|
render() {
|
|
24821
24889
|
const { label, labelId, el, name, value } = this;
|
|
24822
24890
|
const mode = getIonMode$1(this);
|
|
24823
24891
|
renderHiddenInput(true, el, name, value, false);
|
|
24824
|
-
return hAsync(Host, { key: '
|
|
24892
|
+
return hAsync(Host, { key: 'a853e38901f0f4ba17bbf21ebb5da5b5c20b327e', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
|
|
24825
24893
|
}
|
|
24826
24894
|
get el() { return getElement(this); }
|
|
24827
24895
|
static get watchers() { return {
|
|
@@ -24834,7 +24902,8 @@ class RadioGroup {
|
|
|
24834
24902
|
"allowEmptySelection": [4, "allow-empty-selection"],
|
|
24835
24903
|
"compareWith": [1, "compare-with"],
|
|
24836
24904
|
"name": [1],
|
|
24837
|
-
"value": [1032]
|
|
24905
|
+
"value": [1032],
|
|
24906
|
+
"setFocus": [64]
|
|
24838
24907
|
},
|
|
24839
24908
|
"$listeners$": [[4, "keydown", "onKeydown"]],
|
|
24840
24909
|
"$lazyBundleId$": "-",
|
|
@@ -32029,10 +32098,10 @@ const createSwipeToDismissGesture = (el, toastPosition, onDismiss) => {
|
|
|
32029
32098
|
return gesture;
|
|
32030
32099
|
};
|
|
32031
32100
|
|
|
32032
|
-
const toastIosCss = ":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;
|
|
32101
|
+
const toastIosCss = ":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);pointer-events:auto}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-content{min-width:0}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-radius:14px;--button-color:var(--ion-color-primary, #0054e9);--color:var(--ion-color-step-850, var(--ion-text-color-step-150, #262626));--max-width:700px;--max-height:478px;--start:10px;--end:10px;font-size:clamp(14px, 0.875rem, 43.4px)}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;z-index:10}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.toast-translucent) .toast-wrapper{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}:host(.ion-color.toast-translucent) .toast-wrapper{background:rgba(var(--ion-color-base-rgb), 0.8)}}.toast-wrapper.toast-middle{opacity:0.01}.toast-content{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:15px;padding-bottom:15px}.toast-header{margin-bottom:2px;font-weight:500}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;min-height:44px;-webkit-transition:background-color, opacity 100ms linear;transition:background-color, opacity 100ms linear;border:0;background-color:transparent;font-family:var(--ion-font-family);font-size:clamp(17px, 1.0625rem, 21.998px);font-weight:500;overflow:hidden}.toast-button.ion-activated{opacity:0.4}@media (any-hover: hover){.toast-button:hover{opacity:0.6}}";
|
|
32033
32102
|
var IonToastIosStyle0 = toastIosCss;
|
|
32034
32103
|
|
|
32035
|
-
const toastMdCss = ":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;
|
|
32104
|
+
const toastMdCss = ":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}:host{inset-inline-start:0}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);pointer-events:auto}.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-content{min-width:0}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-800, var(--ion-background-color-step-800, #333333));--border-radius:4px;--box-shadow:0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);--button-color:var(--ion-color-primary, #0054e9);--color:var(--ion-color-step-50, var(--ion-text-color-step-950, #f2f2f2));--max-width:700px;--start:8px;--end:8px;font-size:0.875rem}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;opacity:0.01;z-index:10}.toast-content{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:14px;padding-bottom:14px}.toast-header{margin-bottom:2px;font-weight:500;line-height:1.25rem}.toast-message{line-height:1.25rem}.toast-layout-baseline .toast-button-group-start{-webkit-margin-start:8px;margin-inline-start:8px}.toast-layout-stacked .toast-button-group-start{-webkit-margin-end:8px;margin-inline-end:8px;margin-top:8px}.toast-layout-baseline .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px}.toast-layout-stacked .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px;margin-bottom:8px}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;font-family:var(--ion-font-family);font-size:0.875rem;font-weight:500;letter-spacing:0.84px;text-transform:uppercase;overflow:hidden}.toast-button-cancel{color:var(--ion-color-step-100, var(--ion-text-color-step-900, #e6e6e6))}.toast-button-icon-only{border-radius:50%;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:9px;padding-bottom:9px;width:36px;height:36px}@media (any-hover: hover){.toast-button:hover{background-color:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08)}.toast-button-cancel:hover{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.08)}}";
|
|
32036
32105
|
var IonToastMdStyle0 = toastMdCss;
|
|
32037
32106
|
|
|
32038
32107
|
// TODO(FW-2832): types
|
package/package.json
CHANGED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
import{__awaiter,__generator,__spreadArray}from"tslib";
|
|
2
|
-
/*!
|
|
3
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
4
|
-
*/import{d as doc}from"./index-a5d50daf.js";import{f as focusVisibleElement,c as componentOnReady,a as addEventListener,b as removeEventListener,g as getElementRoot}from"./helpers-da915de8.js";import{OVERLAY_BACK_BUTTON_PRIORITY,shouldUseCloseWatcher}from"./hardware-back-button-06ef3c3e.js";import{b as getIonMode,c as config}from"./ionic-global-c81d82ab.js";import{C as CoreDelegate}from"./framework-delegate-63d1a679.js";import{B as BACKDROP_NO_SCROLL}from"./gesture-controller-314a54f6.js";import{p as printIonWarning}from"./index-9b0d46f4.js";var focusableQueryString='[tabindex]:not([tabindex^="-"]):not([hidden]):not([disabled]), input:not([type=hidden]):not([tabindex^="-"]):not([hidden]):not([disabled]), textarea:not([tabindex^="-"]):not([hidden]):not([disabled]), button:not([tabindex^="-"]):not([hidden]):not([disabled]), select:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable:not([tabindex^="-"]):not([hidden]):not([disabled]), .ion-focusable[disabled="false"]:not([tabindex^="-"]):not([hidden])';var focusFirstDescendant=function(e,n){var r=e.querySelector(focusableQueryString);focusElementInContext(r,n!==null&&n!==void 0?n:e)};var focusLastDescendant=function(e,n){var r=Array.from(e.querySelectorAll(focusableQueryString));var t=r.length>0?r[r.length-1]:null;focusElementInContext(t,n!==null&&n!==void 0?n:e)};var focusElementInContext=function(e,n){var r=e;var t=e===null||e===void 0?void 0:e.shadowRoot;if(t){r=t.querySelector(focusableQueryString)||e}if(r){focusVisibleElement(r)}else{n.focus()}};var lastOverlayIndex=0;var lastId=0;var activeAnimations=new WeakMap;var createController=function(e){return{create:function(n){return createOverlay(e,n)},dismiss:function(n,r,t){return dismissOverlay(document,n,r,e,t)},getTop:function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(n){return[2,getPresentedOverlay(document,e)]}))}))}}};var alertController=createController("ion-alert");var actionSheetController=createController("ion-action-sheet");var loadingController=createController("ion-loading");var modalController=createController("ion-modal");var pickerController=createController("ion-picker-legacy");var popoverController=createController("ion-popover");var toastController=createController("ion-toast");var prepareOverlay=function(e){if(typeof document!=="undefined"){connectListeners(document)}var n=lastOverlayIndex++;e.overlayIndex=n};var setOverlayId=function(e){if(!e.hasAttribute("id")){e.id="ion-overlay-".concat(++lastId)}return e.id};var createOverlay=function(e,n){if(typeof window!=="undefined"&&typeof window.customElements!=="undefined"){return window.customElements.whenDefined(e).then((function(){var r=document.createElement(e);r.classList.add("overlay-hidden");Object.assign(r,Object.assign(Object.assign({},n),{hasController:true}));getAppRoot(document).appendChild(r);return new Promise((function(e){return componentOnReady(r,e)}))}))}return Promise.resolve()};var isOverlayHidden=function(e){return e.classList.contains("overlay-hidden")};var focusElementInOverlay=function(e,n){var r=e;var t=e===null||e===void 0?void 0:e.shadowRoot;if(t){r=t.querySelector(focusableQueryString)||e}if(r){focusVisibleElement(r)}else{n.focus()}};var trapKeyboardFocus=function(e,n){var r=getPresentedOverlay(n,"ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover");var t=e.target;if(!r||!t){return}if(r.classList.contains(FOCUS_TRAP_DISABLE_CLASS)){return}var o=function(){if(r===t){r.lastFocus=undefined}else if(t.tagName==="ION-TOAST"){focusElementInOverlay(r.lastFocus,r)}else{var e=getElementRoot(r);if(!e.contains(t)){return}var o=e.querySelector(".ion-overlay-wrapper");if(!o){return}if(o.contains(t)||t===e.querySelector("ion-backdrop")){r.lastFocus=t}else{var a=r.lastFocus;focusFirstDescendant(o,r);if(a===n.activeElement){focusLastDescendant(o,r)}r.lastFocus=n.activeElement}}};var a=function(){if(r.contains(t)){r.lastFocus=t}else if(t.tagName==="ION-TOAST"){focusElementInOverlay(r.lastFocus,r)}else{var e=r.lastFocus;focusFirstDescendant(r);if(e===n.activeElement){focusLastDescendant(r)}r.lastFocus=n.activeElement}};if(r.shadowRoot){a()}else{o()}};var connectListeners=function(e){if(lastOverlayIndex===0){lastOverlayIndex=1;e.addEventListener("focus",(function(n){trapKeyboardFocus(n,e)}),true);e.addEventListener("ionBackButton",(function(n){var r=getPresentedOverlay(e);if(r===null||r===void 0?void 0:r.backdropDismiss){n.detail.register(OVERLAY_BACK_BUTTON_PRIORITY,(function(){r.dismiss(undefined,BACKDROP)}))}}));if(!shouldUseCloseWatcher()){e.addEventListener("keydown",(function(n){if(n.key==="Escape"){var r=getPresentedOverlay(e);if(r===null||r===void 0?void 0:r.backdropDismiss){r.dismiss(undefined,BACKDROP)}}}))}}};var dismissOverlay=function(e,n,r,t,o){var a=getPresentedOverlay(e,t,o);if(!a){return Promise.reject("overlay does not exist")}return a.dismiss(n,r)};var getOverlays=function(e,n){if(n===undefined){n="ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast"}return Array.from(e.querySelectorAll(n)).filter((function(e){return e.overlayIndex>0}))};var getPresentedOverlays=function(e,n){return getOverlays(e,n).filter((function(e){return!isOverlayHidden(e)}))};var getPresentedOverlay=function(e,n,r){var t=getPresentedOverlays(e,n);return r===undefined?t[t.length-1]:t.find((function(e){return e.id===r}))};var setRootAriaHidden=function(e){if(e===void 0){e=false}var n=getAppRoot(document);var r=n.querySelector("ion-router-outlet, ion-nav, #ion-view-container-root");if(!r){return}if(e){r.setAttribute("aria-hidden","true")}else{r.removeAttribute("aria-hidden")}};var present=function(e,n,r,t,o){return __awaiter(void 0,void 0,void 0,(function(){var a,i,d,s,u;return __generator(this,(function(l){switch(l.label){case 0:if(e.presented){return[2]}if(e.el.tagName!=="ION-TOAST"){setRootAriaHidden(true)}document.body.classList.add(BACKDROP_NO_SCROLL);hideUnderlyingOverlaysFromScreenReaders(e.el);hideAnimatingOverlayFromScreenReaders(e.el);e.presented=true;e.willPresent.emit();(a=e.willPresentShorthand)===null||a===void 0?void 0:a.emit();d=getIonMode(e);s=e.enterAnimation?e.enterAnimation:config.get(n,d==="ios"?r:t);return[4,overlayAnimation(e,s,e.el,o)];case 1:u=l.sent();if(u){e.didPresent.emit();(i=e.didPresentShorthand)===null||i===void 0?void 0:i.emit()}if(e.el.tagName!=="ION-TOAST"){restoreElementFocus(e.el)}if(e.keyboardClose&&(document.activeElement===null||!e.el.contains(document.activeElement))){e.el.focus()}e.el.removeAttribute("aria-hidden");return[2]}}))}))};var restoreElementFocus=function(e){return __awaiter(void 0,void 0,void 0,(function(){var n,r;return __generator(this,(function(t){switch(t.label){case 0:n=document.activeElement;if(!n){return[2]}r=n===null||n===void 0?void 0:n.shadowRoot;if(r){n=r.querySelector(focusableQueryString)||n}return[4,e.onDidDismiss()];case 1:t.sent();if(document.activeElement===null||document.activeElement===document.body){n.focus()}return[2]}}))}))};var dismiss=function(e,n,r,t,o,a,i){return __awaiter(void 0,void 0,void 0,(function(){var d,s,u,l,c,v,f,m;return __generator(this,(function(O){switch(O.label){case 0:if(!e.presented){return[2,false]}u=doc!==undefined?getPresentedOverlays(doc).filter((function(e){return e.tagName!=="ION-TOAST"})):[];l=u.length===1&&u[0].id===e.el.id;if(l){setRootAriaHidden(false);document.body.classList.remove(BACKDROP_NO_SCROLL)}e.presented=false;O.label=1;case 1:O.trys.push([1,4,,5]);hideAnimatingOverlayFromScreenReaders(e.el);e.el.style.setProperty("pointer-events","none");e.willDismiss.emit({data:n,role:r});(d=e.willDismissShorthand)===null||d===void 0?void 0:d.emit({data:n,role:r});c=getIonMode(e);v=e.leaveAnimation?e.leaveAnimation:config.get(t,c==="ios"?o:a);if(!(r!==GESTURE))return[3,3];return[4,overlayAnimation(e,v,e.el,i)];case 2:O.sent();O.label=3;case 3:e.didDismiss.emit({data:n,role:r});(s=e.didDismissShorthand)===null||s===void 0?void 0:s.emit({data:n,role:r});f=activeAnimations.get(e)||[];f.forEach((function(e){return e.destroy()}));activeAnimations.delete(e);e.el.classList.add("overlay-hidden");e.el.style.removeProperty("pointer-events");if(e.el.lastFocus!==undefined){e.el.lastFocus=undefined}return[3,5];case 4:m=O.sent();console.error(m);return[3,5];case 5:e.el.remove();revealOverlaysToScreenReaders();return[2,true]}}))}))};var getAppRoot=function(e){return e.querySelector("ion-app")||e.body};var overlayAnimation=function(e,n,r,t){return __awaiter(void 0,void 0,void 0,(function(){var o,a,i;return __generator(this,(function(d){switch(d.label){case 0:r.classList.remove("overlay-hidden");o=e.el;a=n(o,t);if(!e.animated||!config.getBoolean("animated",true)){a.duration(0)}if(e.keyboardClose){a.beforeAddWrite((function(){var e=r.ownerDocument.activeElement;if(e===null||e===void 0?void 0:e.matches("input,ion-input, ion-textarea")){e.blur()}}))}i=activeAnimations.get(e)||[];activeAnimations.set(e,__spreadArray(__spreadArray([],i,true),[a],false));return[4,a.play()];case 1:d.sent();return[2,true]}}))}))};var eventMethod=function(e,n){var r;var t=new Promise((function(e){return r=e}));onceEvent(e,n,(function(e){r(e.detail)}));return t};var onceEvent=function(e,n,r){var t=function(o){removeEventListener(e,n,t);r(o)};addEventListener(e,n,t)};var isCancel=function(e){return e==="cancel"||e===BACKDROP};var defaultGate=function(e){return e()};var safeCall=function(e,n){if(typeof e==="function"){var r=config.get("_zoneGate",defaultGate);return r((function(){try{return e(n)}catch(e){throw e}}))}return undefined};var BACKDROP="backdrop";var GESTURE="gesture";var OVERLAY_GESTURE_PRIORITY=39;var createDelegateController=function(e){var n=false;var r;var t=CoreDelegate();var o=function(o){if(o===void 0){o=false}if(r&&!o){return{delegate:r,inline:n}}var a=e.el,i=e.hasController,d=e.delegate;var s=a.parentNode;n=s!==null&&!i;r=n?d||t:d;return{inline:n,delegate:r}};var a=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r,t;return __generator(this,(function(a){switch(a.label){case 0:r=o(true).delegate;if(!r)return[3,2];return[4,r.attachViewToDom(e.el,n)];case 1:return[2,a.sent()];case 2:t=e.hasController;if(t&&n!==undefined){throw new Error("framework delegate is missing")}return[2,null]}}))}))};var i=function(){var n=o().delegate;if(n&&e.el!==undefined){n.removeViewFromDom(e.el.parentElement,e.el)}};return{attachViewToDom:a,removeViewFromDom:i}};var createTriggerController=function(){var e;var n=function(){if(e){e();e=undefined}};var r=function(r,t){n();var o=t!==undefined?document.getElementById(t):null;if(!o){printIonWarning('A trigger element with the ID "'.concat(t,'" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on an overlay component.'),r);return}var a=function(e,n){var r=function(){n.present()};e.addEventListener("click",r);return function(){e.removeEventListener("click",r)}};e=a(o,r)};return{addClickListener:r,removeClickListener:n}};var hideAnimatingOverlayFromScreenReaders=function(e){if(doc===undefined)return;e.setAttribute("aria-hidden","true")};var hideUnderlyingOverlaysFromScreenReaders=function(e){var n;if(doc===undefined)return;var r=getPresentedOverlays(doc);for(var t=r.length-1;t>=0;t--){var o=r[t];var a=(n=r[t+1])!==null&&n!==void 0?n:e;if(a.hasAttribute("aria-hidden")||a.tagName!=="ION-TOAST"){o.setAttribute("aria-hidden","true")}}};var revealOverlaysToScreenReaders=function(){if(doc===undefined)return;var e=getPresentedOverlays(doc);for(var n=e.length-1;n>=0;n--){var r=e[n];r.removeAttribute("aria-hidden");if(r.tagName!=="ION-TOAST"){break}}};var FOCUS_TRAP_DISABLE_CLASS="ion-disable-focus-trap";export{BACKDROP as B,FOCUS_TRAP_DISABLE_CLASS as F,GESTURE as G,OVERLAY_GESTURE_PRIORITY as O,alertController as a,actionSheetController as b,popoverController as c,createDelegateController as d,createTriggerController as e,present as f,dismiss as g,eventMethod as h,isCancel as i,prepareOverlay as j,setOverlayId as k,loadingController as l,modalController as m,focusFirstDescendant as n,getPresentedOverlay as o,pickerController as p,focusLastDescendant as q,safeCall as s,toastController as t};
|