@ionic/core 8.4.1-dev.11732219984.1b9a256c → 8.4.1-dev.11732305980.19d90e1c
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/index4.js +1 -1
- package/components/ion-menu.js +32 -5
- package/components/overlays.js +27 -12
- package/components/radio-group.js +8 -2
- package/dist/cjs/{index-dfb3f752.js → index-8e789962.js} +1 -1
- package/dist/cjs/index.cjs.js +2 -2
- 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-loading.cjs.entry.js +1 -1
- package/dist/cjs/ion-menu_3.cjs.entry.js +34 -7
- 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 +1 -1
- 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/menu/menu.ios.css +1 -4
- package/dist/collection/components/menu/menu.js +30 -2
- package/dist/collection/components/menu/menu.md.css +1 -4
- package/dist/collection/components/radio-group/radio-group.js +30 -1
- package/dist/collection/utils/focus-trap.js +8 -2
- package/dist/collection/utils/menu-controller/animations/overlay.js +1 -1
- package/dist/collection/utils/overlays.js +19 -9
- package/dist/docs.json +1 -1
- package/dist/esm/{index-49472991.js → index-24b48b06.js} +1 -1
- package/dist/esm/index.js +2 -2
- 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-loading.entry.js +1 -1
- package/dist/esm/ion-menu_3.entry.js +34 -7
- 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 +1 -1
- 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-24b48b06.js +4 -0
- 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-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-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-5b5c1505.system.entry.js → p-14e159ea.system.entry.js} +1 -1
- package/dist/ionic/p-19a5be0a.entry.js +4 -0
- 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-2ae283ce.system.entry.js → p-2bd0ae94.system.entry.js} +2 -2
- package/dist/ionic/p-322c5fb4.system.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-857ca696.system.entry.js → p-6499df44.system.entry.js} +1 -1
- package/dist/ionic/{p-a1dee17f.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-ee7ba749.entry.js → p-8b8be2fd.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-b82d4cab.js +4 -0
- package/dist/ionic/{p-73d19329.system.js → p-c449820c.system.js} +1 -1
- package/dist/ionic/{p-5972efea.system.entry.js → p-ddaa748a.system.entry.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-e7ed4a7f.system.js +4 -0
- package/dist/ionic/{p-d7e982e7.system.entry.js → p-e85d901b.system.entry.js} +1 -1
- 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 +87 -20
- package/hydrate/index.mjs +87 -20
- package/package.json +1 -1
- package/dist/esm-es5/index-49472991.js +0 -4
- package/dist/esm-es5/overlays-ae10d43d.js +0 -4
- package/dist/ionic/p-04fc24ee.system.js +0 -4
- package/dist/ionic/p-5c831f49.js +0 -4
- package/dist/ionic/p-7ed7d641.system.entry.js +0 -4
- package/dist/ionic/p-d174ceca.entry.js +0 -4
- package/dist/ionic/p-dec16890.system.js +0 -4
- package/dist/ionic/p-e43c2e19.js +0 -4
- package/dist/ionic/p-e9a173ed.entry.js +0 -4
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) => {
|
|
@@ -17135,7 +17169,7 @@ const menuOverlayAnimation = (menu) => {
|
|
|
17135
17169
|
closedX = -width + 'px';
|
|
17136
17170
|
openedX = '0px';
|
|
17137
17171
|
}
|
|
17138
|
-
menuAnimation.addElement(menu.menuInnerEl).fromTo('
|
|
17172
|
+
menuAnimation.addElement(menu.menuInnerEl).fromTo('transform', `translateX(${closedX})`, `translateX(${openedX})`);
|
|
17139
17173
|
const mode = getIonMode$1(menu);
|
|
17140
17174
|
const isIos = mode === 'ios';
|
|
17141
17175
|
const opacity = isIos ? 0.2 : 0.25;
|
|
@@ -17392,10 +17426,10 @@ const createMenuController = () => {
|
|
|
17392
17426
|
};
|
|
17393
17427
|
const menuController = /*@__PURE__*/ createMenuController();
|
|
17394
17428
|
|
|
17395
|
-
const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{display:-ms-flexbox;display:flex;position:absolute
|
|
17429
|
+
const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;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);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
|
|
17396
17430
|
var IonMenuIosStyle0 = menuIosCss;
|
|
17397
17431
|
|
|
17398
|
-
const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{display:-ms-flexbox;display:flex;position:absolute
|
|
17432
|
+
const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;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);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}";
|
|
17399
17433
|
var IonMenuMdStyle0 = menuMdCss;
|
|
17400
17434
|
|
|
17401
17435
|
const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
|
|
@@ -17816,6 +17850,22 @@ class Menu {
|
|
|
17816
17850
|
}
|
|
17817
17851
|
beforeAnimation(shouldOpen, role) {
|
|
17818
17852
|
assert(!this.isAnimating, '_before() should not be called while animating');
|
|
17853
|
+
/**
|
|
17854
|
+
* When the menu is presented on an Android device, TalkBack's focus rings
|
|
17855
|
+
* may appear in the wrong position due to the transition (specifically
|
|
17856
|
+
* `transform` styles). This occurs because the focus rings are initially
|
|
17857
|
+
* displayed at the starting position of the elements before the transition
|
|
17858
|
+
* begins. This workaround ensures the focus rings do not appear in the
|
|
17859
|
+
* incorrect location.
|
|
17860
|
+
*
|
|
17861
|
+
* If this solution is applied to iOS devices, then it leads to a bug where
|
|
17862
|
+
* the overlays cannot be accessed by screen readers. This is due to
|
|
17863
|
+
* VoiceOver not being able to update the accessibility tree when the
|
|
17864
|
+
* `aria-hidden` is removed.
|
|
17865
|
+
*/
|
|
17866
|
+
if (isPlatform('android')) {
|
|
17867
|
+
this.el.setAttribute('aria-hidden', 'true');
|
|
17868
|
+
}
|
|
17819
17869
|
// this places the menu into the correct location before it animates in
|
|
17820
17870
|
// this css class doesn't actually kick off any animations
|
|
17821
17871
|
this.el.classList.add(SHOW_MENU);
|
|
@@ -17868,6 +17918,16 @@ class Menu {
|
|
|
17868
17918
|
this.blocker.unblock();
|
|
17869
17919
|
}
|
|
17870
17920
|
if (isOpen) {
|
|
17921
|
+
/**
|
|
17922
|
+
* When the menu is presented on an Android device, TalkBack's focus rings
|
|
17923
|
+
* may appear in the wrong position due to the transition (specifically
|
|
17924
|
+
* `transform` styles). The menu is hidden from screen readers during the
|
|
17925
|
+
* transition to prevent this. Once the transition is complete, the menu
|
|
17926
|
+
* is shown again.
|
|
17927
|
+
*/
|
|
17928
|
+
if (isPlatform('android')) {
|
|
17929
|
+
this.el.removeAttribute('aria-hidden');
|
|
17930
|
+
}
|
|
17871
17931
|
// emit open event
|
|
17872
17932
|
this.ionDidOpen.emit();
|
|
17873
17933
|
/**
|
|
@@ -17883,6 +17943,7 @@ class Menu {
|
|
|
17883
17943
|
document.addEventListener('focus', this.handleFocus, true);
|
|
17884
17944
|
}
|
|
17885
17945
|
else {
|
|
17946
|
+
this.el.removeAttribute('aria-hidden');
|
|
17886
17947
|
// remove css classes and unhide content from screen readers
|
|
17887
17948
|
this.el.classList.remove(SHOW_MENU);
|
|
17888
17949
|
/**
|
|
@@ -17949,14 +18010,14 @@ class Menu {
|
|
|
17949
18010
|
* the ionBackButton listener in the menu controller
|
|
17950
18011
|
* will handle closing the menu when Escape is pressed.
|
|
17951
18012
|
*/
|
|
17952
|
-
return (hAsync(Host, { key: '
|
|
18013
|
+
return (hAsync(Host, { key: 'da96fdb4c5ddf60e615cc4cdda7ccdb3fd7e089b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
17953
18014
|
[mode]: true,
|
|
17954
18015
|
[`menu-type-${type}`]: true,
|
|
17955
18016
|
'menu-enabled': !disabled,
|
|
17956
18017
|
[`menu-side-${side}`]: true,
|
|
17957
18018
|
'menu-pane-visible': isPaneVisible,
|
|
17958
18019
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
17959
|
-
} }, hAsync("div", { key: '
|
|
18020
|
+
} }, 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
18021
|
}
|
|
17961
18022
|
get el() { return getElement(this); }
|
|
17962
18023
|
static get watchers() { return {
|
|
@@ -24821,11 +24882,16 @@ class RadioGroup {
|
|
|
24821
24882
|
}
|
|
24822
24883
|
}
|
|
24823
24884
|
}
|
|
24885
|
+
/** @internal */
|
|
24886
|
+
async setFocus() {
|
|
24887
|
+
const radioToFocus = this.getRadios().find((r) => r.tabIndex !== -1);
|
|
24888
|
+
radioToFocus === null || radioToFocus === void 0 ? void 0 : radioToFocus.setFocus();
|
|
24889
|
+
}
|
|
24824
24890
|
render() {
|
|
24825
24891
|
const { label, labelId, el, name, value } = this;
|
|
24826
24892
|
const mode = getIonMode$1(this);
|
|
24827
24893
|
renderHiddenInput(true, el, name, value, false);
|
|
24828
|
-
return hAsync(Host, { key: '
|
|
24894
|
+
return hAsync(Host, { key: 'a853e38901f0f4ba17bbf21ebb5da5b5c20b327e', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
|
|
24829
24895
|
}
|
|
24830
24896
|
get el() { return getElement(this); }
|
|
24831
24897
|
static get watchers() { return {
|
|
@@ -24838,7 +24904,8 @@ class RadioGroup {
|
|
|
24838
24904
|
"allowEmptySelection": [4, "allow-empty-selection"],
|
|
24839
24905
|
"compareWith": [1, "compare-with"],
|
|
24840
24906
|
"name": [1],
|
|
24841
|
-
"value": [1032]
|
|
24907
|
+
"value": [1032],
|
|
24908
|
+
"setFocus": [64]
|
|
24842
24909
|
},
|
|
24843
24910
|
"$listeners$": [[4, "keydown", "onKeydown"]],
|
|
24844
24911
|
"$lazyBundleId$": "-",
|
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) => {
|
|
@@ -17131,7 +17165,7 @@ const menuOverlayAnimation = (menu) => {
|
|
|
17131
17165
|
closedX = -width + 'px';
|
|
17132
17166
|
openedX = '0px';
|
|
17133
17167
|
}
|
|
17134
|
-
menuAnimation.addElement(menu.menuInnerEl).fromTo('
|
|
17168
|
+
menuAnimation.addElement(menu.menuInnerEl).fromTo('transform', `translateX(${closedX})`, `translateX(${openedX})`);
|
|
17135
17169
|
const mode = getIonMode$1(menu);
|
|
17136
17170
|
const isIos = mode === 'ios';
|
|
17137
17171
|
const opacity = isIos ? 0.2 : 0.25;
|
|
@@ -17388,10 +17422,10 @@ const createMenuController = () => {
|
|
|
17388
17422
|
};
|
|
17389
17423
|
const menuController = /*@__PURE__*/ createMenuController();
|
|
17390
17424
|
|
|
17391
|
-
const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{display:-ms-flexbox;display:flex;position:absolute
|
|
17425
|
+
const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;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);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
|
|
17392
17426
|
var IonMenuIosStyle0 = menuIosCss;
|
|
17393
17427
|
|
|
17394
|
-
const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{display:-ms-flexbox;display:flex;position:absolute
|
|
17428
|
+
const menuMdCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;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);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}@supports selector(:dir(rtl)){:host(.menu-side-start:dir(rtl)) .menu-inner{--ion-safe-area-right:unset;--ion-safe-area-left:0px}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}@supports selector(:dir(rtl)){:host(.menu-side-end:dir(rtl)) .menu-inner{--ion-safe-area-left:unset;--ion-safe-area-right:0px}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){-ms-flex:0 1 auto;flex:0 1 auto;width:var(--side-width, var(--width));min-width:var(--side-min-width, var(--min-width));max-width:var(--side-max-width, var(--max-width))}:host(.menu-pane-visible.split-pane-side){left:0;right:0;top:0;bottom:0;position:relative;-webkit-box-shadow:none;box-shadow:none;z-index:0}:host(.menu-pane-visible.split-pane-side.menu-enabled){display:-ms-flexbox;display:flex;-ms-flex-negative:0;flex-shrink:0}:host(.menu-pane-visible.split-pane-side){-ms-flex-order:-1;order:-1}:host(.menu-pane-visible.split-pane-side[side=end]){-ms-flex-order:1;order:1}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none;transform:none;-webkit-box-shadow:none;box-shadow:none}:host(.menu-pane-visible) ion-backdrop{display:hidden !important}:host(.menu-pane-visible.split-pane-side){-webkit-border-start:0;border-inline-start:0;-webkit-border-end:var(--border);border-inline-end:var(--border);border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-pane-visible.split-pane-side[side=end]){-webkit-border-start:var(--border);border-inline-start:var(--border);-webkit-border-end:0;border-inline-end:0;border-top:0;border-bottom:0;min-width:var(--side-min-width);max-width:var(--side-max-width)}:host(.menu-type-overlay) .menu-inner{-webkit-box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18);box-shadow:4px 0px 16px rgba(0, 0, 0, 0.18)}";
|
|
17395
17429
|
var IonMenuMdStyle0 = menuMdCss;
|
|
17396
17430
|
|
|
17397
17431
|
const iosEasing = 'cubic-bezier(0.32,0.72,0,1)';
|
|
@@ -17812,6 +17846,22 @@ class Menu {
|
|
|
17812
17846
|
}
|
|
17813
17847
|
beforeAnimation(shouldOpen, role) {
|
|
17814
17848
|
assert(!this.isAnimating, '_before() should not be called while animating');
|
|
17849
|
+
/**
|
|
17850
|
+
* When the menu is presented on an Android device, TalkBack's focus rings
|
|
17851
|
+
* may appear in the wrong position due to the transition (specifically
|
|
17852
|
+
* `transform` styles). This occurs because the focus rings are initially
|
|
17853
|
+
* displayed at the starting position of the elements before the transition
|
|
17854
|
+
* begins. This workaround ensures the focus rings do not appear in the
|
|
17855
|
+
* incorrect location.
|
|
17856
|
+
*
|
|
17857
|
+
* If this solution is applied to iOS devices, then it leads to a bug where
|
|
17858
|
+
* the overlays cannot be accessed by screen readers. This is due to
|
|
17859
|
+
* VoiceOver not being able to update the accessibility tree when the
|
|
17860
|
+
* `aria-hidden` is removed.
|
|
17861
|
+
*/
|
|
17862
|
+
if (isPlatform('android')) {
|
|
17863
|
+
this.el.setAttribute('aria-hidden', 'true');
|
|
17864
|
+
}
|
|
17815
17865
|
// this places the menu into the correct location before it animates in
|
|
17816
17866
|
// this css class doesn't actually kick off any animations
|
|
17817
17867
|
this.el.classList.add(SHOW_MENU);
|
|
@@ -17864,6 +17914,16 @@ class Menu {
|
|
|
17864
17914
|
this.blocker.unblock();
|
|
17865
17915
|
}
|
|
17866
17916
|
if (isOpen) {
|
|
17917
|
+
/**
|
|
17918
|
+
* When the menu is presented on an Android device, TalkBack's focus rings
|
|
17919
|
+
* may appear in the wrong position due to the transition (specifically
|
|
17920
|
+
* `transform` styles). The menu is hidden from screen readers during the
|
|
17921
|
+
* transition to prevent this. Once the transition is complete, the menu
|
|
17922
|
+
* is shown again.
|
|
17923
|
+
*/
|
|
17924
|
+
if (isPlatform('android')) {
|
|
17925
|
+
this.el.removeAttribute('aria-hidden');
|
|
17926
|
+
}
|
|
17867
17927
|
// emit open event
|
|
17868
17928
|
this.ionDidOpen.emit();
|
|
17869
17929
|
/**
|
|
@@ -17879,6 +17939,7 @@ class Menu {
|
|
|
17879
17939
|
document.addEventListener('focus', this.handleFocus, true);
|
|
17880
17940
|
}
|
|
17881
17941
|
else {
|
|
17942
|
+
this.el.removeAttribute('aria-hidden');
|
|
17882
17943
|
// remove css classes and unhide content from screen readers
|
|
17883
17944
|
this.el.classList.remove(SHOW_MENU);
|
|
17884
17945
|
/**
|
|
@@ -17945,14 +18006,14 @@ class Menu {
|
|
|
17945
18006
|
* the ionBackButton listener in the menu controller
|
|
17946
18007
|
* will handle closing the menu when Escape is pressed.
|
|
17947
18008
|
*/
|
|
17948
|
-
return (hAsync(Host, { key: '
|
|
18009
|
+
return (hAsync(Host, { key: 'da96fdb4c5ddf60e615cc4cdda7ccdb3fd7e089b', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
17949
18010
|
[mode]: true,
|
|
17950
18011
|
[`menu-type-${type}`]: true,
|
|
17951
18012
|
'menu-enabled': !disabled,
|
|
17952
18013
|
[`menu-side-${side}`]: true,
|
|
17953
18014
|
'menu-pane-visible': isPaneVisible,
|
|
17954
18015
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
17955
|
-
} }, hAsync("div", { key: '
|
|
18016
|
+
} }, 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
18017
|
}
|
|
17957
18018
|
get el() { return getElement(this); }
|
|
17958
18019
|
static get watchers() { return {
|
|
@@ -24817,11 +24878,16 @@ class RadioGroup {
|
|
|
24817
24878
|
}
|
|
24818
24879
|
}
|
|
24819
24880
|
}
|
|
24881
|
+
/** @internal */
|
|
24882
|
+
async setFocus() {
|
|
24883
|
+
const radioToFocus = this.getRadios().find((r) => r.tabIndex !== -1);
|
|
24884
|
+
radioToFocus === null || radioToFocus === void 0 ? void 0 : radioToFocus.setFocus();
|
|
24885
|
+
}
|
|
24820
24886
|
render() {
|
|
24821
24887
|
const { label, labelId, el, name, value } = this;
|
|
24822
24888
|
const mode = getIonMode$1(this);
|
|
24823
24889
|
renderHiddenInput(true, el, name, value, false);
|
|
24824
|
-
return hAsync(Host, { key: '
|
|
24890
|
+
return hAsync(Host, { key: 'a853e38901f0f4ba17bbf21ebb5da5b5c20b327e', role: "radiogroup", "aria-labelledby": label ? labelId : null, onClick: this.onClick, class: mode });
|
|
24825
24891
|
}
|
|
24826
24892
|
get el() { return getElement(this); }
|
|
24827
24893
|
static get watchers() { return {
|
|
@@ -24834,7 +24900,8 @@ class RadioGroup {
|
|
|
24834
24900
|
"allowEmptySelection": [4, "allow-empty-selection"],
|
|
24835
24901
|
"compareWith": [1, "compare-with"],
|
|
24836
24902
|
"name": [1],
|
|
24837
|
-
"value": [1032]
|
|
24903
|
+
"value": [1032],
|
|
24904
|
+
"setFocus": [64]
|
|
24838
24905
|
},
|
|
24839
24906
|
"$listeners$": [[4, "keydown", "onKeydown"]],
|
|
24840
24907
|
"$lazyBundleId$": "-",
|
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{MENU_BACK_BUTTON_PRIORITY}from"./hardware-back-button-06ef3c3e.js";import{p as printIonWarning}from"./index-9b0d46f4.js";import{c as componentOnReady}from"./helpers-da915de8.js";import{b as getIonMode}from"./ionic-global-c81d82ab.js";import{c as createAnimation}from"./animation-eab5a4ca.js";var baseAnimation=function(n){return createAnimation().duration(n?400:300)};var menuOverlayAnimation=function(n){var r;var e;var t=n.width+8;var i=createAnimation();var a=createAnimation();if(n.isEndSide){r=t+"px";e="0px"}else{r=-t+"px";e="0px"}i.addElement(n.menuInnerEl).fromTo("left","".concat(r),"".concat(e));var o=getIonMode(n);var u=o==="ios";var c=u?.2:.25;a.addElement(n.backdropEl).fromTo("opacity",.01,c);return baseAnimation(u).addAnimation([i,a])};var menuPushAnimation=function(n){var r;var e;var t=getIonMode(n);var i=n.width;if(n.isEndSide){r=-i+"px";e=i+"px"}else{r=i+"px";e=-i+"px"}var a=createAnimation().addElement(n.menuInnerEl).fromTo("transform","translateX(".concat(e,")"),"translateX(0px)");var o=createAnimation().addElement(n.contentEl).fromTo("transform","translateX(0px)","translateX(".concat(r,")"));var u=createAnimation().addElement(n.backdropEl).fromTo("opacity",.01,.32);return baseAnimation(t==="ios").addAnimation([a,o,u])};var menuRevealAnimation=function(n){var r=getIonMode(n);var e=n.width*(n.isEndSide?-1:1)+"px";var t=createAnimation().addElement(n.contentEl).fromTo("transform","translateX(0px)","translateX(".concat(e,")"));return baseAnimation(r==="ios").addAnimation(t)};var createMenuController=function(){var n=new Map;var r=[];var e=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r;return __generator(this,(function(e){switch(e.label){case 0:return[4,s(n,true)];case 1:r=e.sent();if(r){return[2,r.open()]}return[2,false]}}))}))};var t=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r;return __generator(this,(function(e){switch(e.label){case 0:return[4,n!==undefined?s(n,true):f()];case 1:r=e.sent();if(r!==undefined){return[2,r.close()]}return[2,false]}}))}))};var i=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r;return __generator(this,(function(e){switch(e.label){case 0:return[4,s(n,true)];case 1:r=e.sent();if(r){return[2,r.toggle()]}return[2,false]}}))}))};var a=function(n,r){return __awaiter(void 0,void 0,void 0,(function(){var e;return __generator(this,(function(t){switch(t.label){case 0:return[4,s(r)];case 1:e=t.sent();if(e){e.disabled=!n}return[2,e]}}))}))};var o=function(n,r){return __awaiter(void 0,void 0,void 0,(function(){var e;return __generator(this,(function(t){switch(t.label){case 0:return[4,s(r)];case 1:e=t.sent();if(e){e.swipeGesture=n}return[2,e]}}))}))};var u=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r,r;return __generator(this,(function(e){switch(e.label){case 0:if(!(n!=null))return[3,2];return[4,s(n)];case 1:r=e.sent();return[2,r!==undefined&&r.isOpen()];case 2:return[4,f()];case 3:r=e.sent();return[2,r!==undefined]}}))}))};var c=function(n){return __awaiter(void 0,void 0,void 0,(function(){var r;return __generator(this,(function(e){switch(e.label){case 0:return[4,s(n)];case 1:r=e.sent();if(r){return[2,!r.disabled]}return[2,false]}}))}))};var s=function(n){var e=[];for(var t=1;t<arguments.length;t++){e[t-1]=arguments[t]}return __awaiter(void 0,__spreadArray([n],e,true),void 0,(function(n,e){var t,i,a;if(e===void 0){e=false}return __generator(this,(function(o){switch(o.label){case 0:return[4,x()];case 1:o.sent();if(n==="start"||n==="end"){t=r.filter((function(r){return r.side===n&&!r.disabled}));if(t.length>=1){if(t.length>1&&e){printIonWarning('menuController queried for a menu on the "'.concat(n,'" side, but ').concat(t.length," menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side."),t.map((function(n){return n.el})))}return[2,t[0].el]}i=r.filter((function(r){return r.side===n}));if(i.length>=1){if(i.length>1&&e){printIonWarning('menuController queried for a menu on the "'.concat(n,'" side, but ').concat(i.length," menus were found. The first menu reference will be used. If this is not the behavior you want then pass the ID of the menu instead of its side."),i.map((function(n){return n.el})))}return[2,i[0].el]}}else if(n!=null){return[2,b((function(r){return r.menuId===n}))]}a=b((function(n){return!n.disabled}));if(a){return[2,a]}return[2,r.length>0?r[0].el:undefined]}}))}))};var f=function(){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,x()];case 1:n.sent();return[2,w()]}}))}))};var v=function(){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,x()];case 1:n.sent();return[2,g()]}}))}))};var d=function(){return __awaiter(void 0,void 0,void 0,(function(){return __generator(this,(function(n){switch(n.label){case 0:return[4,x()];case 1:n.sent();return[2,A()]}}))}))};var _=function(r,e){n.set(r,e)};var m=function(n){if(r.indexOf(n)<0){r.push(n)}};var l=function(n){var e=r.indexOf(n);if(e>-1){r.splice(e,1)}};var h=function(n,r,e,t){return __awaiter(void 0,void 0,void 0,(function(){var i;return __generator(this,(function(a){switch(a.label){case 0:if(A()){return[2,false]}if(!r)return[3,3];return[4,f()];case 1:i=a.sent();if(!(i&&n.el!==i))return[3,3];return[4,i.setOpen(false,false)];case 2:a.sent();a.label=3;case 3:return[2,n._setOpen(r,e,t)]}}))}))};var p=function(r,e){var t=n.get(r);if(!t){throw new Error("animation not registered")}var i=t(e);return i};var w=function(){return b((function(n){return n._isOpen}))};var g=function(){return r.map((function(n){return n.el}))};var A=function(){return r.some((function(n){return n.isAnimating}))};var b=function(n){var e=r.find(n);if(e!==undefined){return e.el}return undefined};var x=function(){return Promise.all(Array.from(document.querySelectorAll("ion-menu")).map((function(n){return new Promise((function(r){return componentOnReady(n,r)}))})))};_("reveal",menuRevealAnimation);_("push",menuPushAnimation);_("overlay",menuOverlayAnimation);doc===null||doc===void 0?void 0:doc.addEventListener("ionBackButton",(function(n){var r=w();if(r){n.detail.register(MENU_BACK_BUTTON_PRIORITY,(function(){return r.close()}))}}));return{registerAnimation:_,get:s,getMenus:v,getOpen:f,isEnabled:c,swipeGesture:o,isAnimating:d,isOpen:u,enable:a,toggle:i,close:t,open:e,_getOpenSync:w,_createAnimation:p,_register:m,_unregister:l,_setOpen:h}};var menuController=createMenuController();export{menuController as m};
|
|
@@ -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};
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
var __awaiter=this&&this.__awaiter||function(n,e,r,i){function t(n){return n instanceof r?n:new r((function(e){e(n)}))}return new(r||(r=Promise))((function(r,o){function a(n){try{f(i.next(n))}catch(n){o(n)}}function u(n){try{f(i["throw"](n))}catch(n){o(n)}}function f(n){n.done?r(n.value):t(n.value).then(a,u)}f((i=i.apply(n,e||[])).next())}))};var __generator=this&&this.__generator||function(n,e){var r={label:0,sent:function(){if(o[0]&1)throw o[1];return o[1]},trys:[],ops:[]},i,t,o,a;return a={next:u(0),throw:u(1),return:u(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function u(n){return function(e){return f([n,e])}}function f(u){if(i)throw new TypeError("Generator is already executing.");while(a&&(a=0,u[0]&&(r=0)),r)try{if(i=1,t&&(o=u[0]&2?t["return"]:u[0]?t["throw"]||((o=t["return"])&&o.call(t),0):t.next)&&!(o=o.call(t,u[1])).done)return o;if(t=0,o)u=[u[0]&2,o.value];switch(u[0]){case 0:case 1:o=u;break;case 4:r.label++;return{value:u[1],done:false};case 5:r.label++;t=u[1];u=[0];continue;case 7:u=r.ops.pop();r.trys.pop();continue;default:if(!(o=r.trys,o=o.length>0&&o[o.length-1])&&(u[0]===6||u[0]===2)){r=0;continue}if(u[0]===3&&(!o||u[1]>o[0]&&u[1]<o[3])){r.label=u[1];break}if(u[0]===6&&r.label<o[1]){r.label=o[1];o=u;break}if(o&&r.label<o[2]){r.label=o[2];r.ops.push(u);break}if(o[2])r.ops.pop();r.trys.pop();continue}u=e.call(n,r)}catch(n){u=[6,n];t=0}finally{i=o=0}if(u[0]&5)throw u[1];return{value:u[0]?u[1]:void 0,done:true}}};var __spreadArray=this&&this.__spreadArray||function(n,e,r){if(r||arguments.length===2)for(var i=0,t=e.length,o;i<t;i++){if(o||!(i in e)){if(!o)o=Array.prototype.slice.call(e,0,i);o[i]=e[i]}}return n.concat(o||Array.prototype.slice.call(e))};
|
|
2
|
-
/*!
|
|
3
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
4
|
-
*/System.register(["./p-792919fd.system.js","./p-3ad285e3.system.js","./p-9f3008d4.system.js","./p-a69b9fc5.system.js","./p-8635f5e6.system.js","./p-20d469d0.system.js","./p-ff4b7e40.system.js"],(function(n){"use strict";var e,r,i,t,o,a,u,f,d,c,v,s,l;return{setters:[function(n){e=n.d},function(n){r=n.f;i=n.c;t=n.a;o=n.b;a=n.g},function(n){u=n.OVERLAY_BACK_BUTTON_PRIORITY;f=n.shouldUseCloseWatcher},function(n){d=n.b;c=n.c},function(n){v=n.C},function(n){s=n.B},function(n){l=n.p}],execute:function(){var h=this;var m='[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 p=n("n",(function(n,e){var r=n.querySelector(m);w(r,e!==null&&e!==void 0?e:n)}));var y=n("q",(function(n,e){var r=Array.from(n.querySelectorAll(m));var i=r.length>0?r[r.length-1]:null;w(i,e!==null&&e!==void 0?e:n)}));var w=function(n,e){var i=n;var t=n===null||n===void 0?void 0:n.shadowRoot;if(t){i=t.querySelector(m)||n}if(i){r(i)}else{e.focus()}};var b=0;var _=0;var g=new WeakMap;var O=function(n){return{create:function(e){return P(n,e)},dismiss:function(e,r,i){return M(document,e,r,n,i)},getTop:function(){return __awaiter(this,void 0,void 0,(function(){return __generator(this,(function(e){return[2,V(document,n)]}))}))}}};var k=n("a",O("ion-alert"));var T=n("b",O("ion-action-sheet"));var A=n("l",O("ion-loading"));var x=n("m",O("ion-modal"));var j=n("p",O("ion-picker-legacy"));var S=n("c",O("ion-popover"));var I=n("t",O("ion-toast"));var N=n("j",(function(n){if(typeof document!=="undefined"){G(document)}var e=b++;n.overlayIndex=e}));var D=n("k",(function(n){if(!n.hasAttribute("id")){n.id="ion-overlay-".concat(++_)}return n.id}));var P=function(n,e){if(typeof window!=="undefined"&&typeof window.customElements!=="undefined"){return window.customElements.whenDefined(n).then((function(){var r=document.createElement(n);r.classList.add("overlay-hidden");Object.assign(r,Object.assign(Object.assign({},e),{hasController:true}));J(document).appendChild(r);return new Promise((function(n){return i(r,n)}))}))}return Promise.resolve()};var B=function(n){return n.classList.contains("overlay-hidden")};var C=function(n,e){var i=n;var t=n===null||n===void 0?void 0:n.shadowRoot;if(t){i=t.querySelector(m)||n}if(i){r(i)}else{e.focus()}};var E=function(n,e){var r=V(e,"ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover");var i=n.target;if(!r||!i){return}if(r.classList.contains(un)){return}var t=function(){if(r===i){r.lastFocus=undefined}else if(i.tagName==="ION-TOAST"){C(r.lastFocus,r)}else{var n=a(r);if(!n.contains(i)){return}var t=n.querySelector(".ion-overlay-wrapper");if(!t){return}if(t.contains(i)||i===n.querySelector("ion-backdrop")){r.lastFocus=i}else{var o=r.lastFocus;p(t,r);if(o===e.activeElement){y(t,r)}r.lastFocus=e.activeElement}}};var o=function(){if(r.contains(i)){r.lastFocus=i}else if(i.tagName==="ION-TOAST"){C(r.lastFocus,r)}else{var n=r.lastFocus;p(r);if(n===e.activeElement){y(r)}r.lastFocus=e.activeElement}};if(r.shadowRoot){o()}else{t()}};var G=function(n){if(b===0){b=1;n.addEventListener("focus",(function(e){E(e,n)}),true);n.addEventListener("ionBackButton",(function(e){var r=V(n);if(r===null||r===void 0?void 0:r.backdropDismiss){e.detail.register(u,(function(){r.dismiss(undefined,Z)}))}}));if(!f()){n.addEventListener("keydown",(function(e){if(e.key==="Escape"){var r=V(n);if(r===null||r===void 0?void 0:r.backdropDismiss){r.dismiss(undefined,Z)}}}))}}};var M=function(n,e,r,i,t){var o=V(n,i,t);if(!o){return Promise.reject("overlay does not exist")}return o.dismiss(e,r)};var F=function(n,e){if(e===undefined){e="ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast"}return Array.from(n.querySelectorAll(e)).filter((function(n){return n.overlayIndex>0}))};var L=function(n,e){return F(n,e).filter((function(n){return!B(n)}))};var V=n("o",(function(n,e,r){var i=L(n,e);return r===undefined?i[i.length-1]:i.find((function(n){return n.id===r}))}));var q=function(n){if(n===void 0){n=false}var e=J(document);var r=e.querySelector("ion-router-outlet, ion-nav, #ion-view-container-root");if(!r){return}if(n){r.setAttribute("aria-hidden","true")}else{r.removeAttribute("aria-hidden")}};var z=n("f",(function(n,e,r,i,t){return __awaiter(h,void 0,void 0,(function(){var o,a,u,f,v;return __generator(this,(function(l){switch(l.label){case 0:if(n.presented){return[2]}if(n.el.tagName!=="ION-TOAST"){q(true)}document.body.classList.add(s);on(n.el);tn(n.el);n.presented=true;n.willPresent.emit();(o=n.willPresentShorthand)===null||o===void 0?void 0:o.emit();u=d(n);f=n.enterAnimation?n.enterAnimation:c.get(e,u==="ios"?r:i);return[4,K(n,f,n.el,t)];case 1:v=l.sent();if(v){n.didPresent.emit();(a=n.didPresentShorthand)===null||a===void 0?void 0:a.emit()}if(n.el.tagName!=="ION-TOAST"){W(n.el)}if(n.keyboardClose&&(document.activeElement===null||!n.el.contains(document.activeElement))){n.el.focus()}n.el.removeAttribute("aria-hidden");return[2]}}))}))}));var W=function(n){return __awaiter(h,void 0,void 0,(function(){var e,r;return __generator(this,(function(i){switch(i.label){case 0:e=document.activeElement;if(!e){return[2]}r=e===null||e===void 0?void 0:e.shadowRoot;if(r){e=r.querySelector(m)||e}return[4,n.onDidDismiss()];case 1:i.sent();if(document.activeElement===null||document.activeElement===document.body){e.focus()}return[2]}}))}))};var H=n("g",(function(n,r,i,t,o,a,u){return __awaiter(h,void 0,void 0,(function(){var f,v,l,h,m,p,y,w;return __generator(this,(function(b){switch(b.label){case 0:if(!n.presented){return[2,false]}l=e!==undefined?L(e).filter((function(n){return n.tagName!=="ION-TOAST"})):[];h=l.length===1&&l[0].id===n.el.id;if(h){q(false);document.body.classList.remove(s)}n.presented=false;b.label=1;case 1:b.trys.push([1,4,,5]);tn(n.el);n.el.style.setProperty("pointer-events","none");n.willDismiss.emit({data:r,role:i});(f=n.willDismissShorthand)===null||f===void 0?void 0:f.emit({data:r,role:i});m=d(n);p=n.leaveAnimation?n.leaveAnimation:c.get(t,m==="ios"?o:a);if(!(i!==$))return[3,3];return[4,K(n,p,n.el,u)];case 2:b.sent();b.label=3;case 3:n.didDismiss.emit({data:r,role:i});(v=n.didDismissShorthand)===null||v===void 0?void 0:v.emit({data:r,role:i});y=g.get(n)||[];y.forEach((function(n){return n.destroy()}));g.delete(n);n.el.classList.add("overlay-hidden");n.el.style.removeProperty("pointer-events");if(n.el.lastFocus!==undefined){n.el.lastFocus=undefined}return[3,5];case 4:w=b.sent();console.error(w);return[3,5];case 5:n.el.remove();an();return[2,true]}}))}))}));var J=function(n){return n.querySelector("ion-app")||n.body};var K=function(n,e,r,i){return __awaiter(h,void 0,void 0,(function(){var t,o,a;return __generator(this,(function(u){switch(u.label){case 0:r.classList.remove("overlay-hidden");t=n.el;o=e(t,i);if(!n.animated||!c.getBoolean("animated",true)){o.duration(0)}if(n.keyboardClose){o.beforeAddWrite((function(){var n=r.ownerDocument.activeElement;if(n===null||n===void 0?void 0:n.matches("input,ion-input, ion-textarea")){n.blur()}}))}a=g.get(n)||[];g.set(n,__spreadArray(__spreadArray([],a,true),[o],false));return[4,o.play()];case 1:u.sent();return[2,true]}}))}))};var Q=n("h",(function(n,e){var r;var i=new Promise((function(n){return r=n}));R(n,e,(function(n){r(n.detail)}));return i}));var R=function(n,e,r){var i=function(t){o(n,e,i);r(t)};t(n,e,i)};var U=n("i",(function(n){return n==="cancel"||n===Z}));var X=function(n){return n()};var Y=n("s",(function(n,e){if(typeof n==="function"){var r=c.get("_zoneGate",X);return r((function(){try{return n(e)}catch(n){throw n}}))}return undefined}));var Z=n("B","backdrop");var $=n("G","gesture");var nn=n("O",39);var en=n("d",(function(n){var e=false;var r;var i=v();var t=function(t){if(t===void 0){t=false}if(r&&!t){return{delegate:r,inline:e}}var o=n.el,a=n.hasController,u=n.delegate;var f=o.parentNode;e=f!==null&&!a;r=e?u||i:u;return{inline:e,delegate:r}};var o=function(e){return __awaiter(h,void 0,void 0,(function(){var r,i;return __generator(this,(function(o){switch(o.label){case 0:r=t(true).delegate;if(!r)return[3,2];return[4,r.attachViewToDom(n.el,e)];case 1:return[2,o.sent()];case 2:i=n.hasController;if(i&&e!==undefined){throw new Error("framework delegate is missing")}return[2,null]}}))}))};var a=function(){var e=t().delegate;if(e&&n.el!==undefined){e.removeViewFromDom(n.el.parentElement,n.el)}};return{attachViewToDom:o,removeViewFromDom:a}}));var rn=n("e",(function(){var n;var e=function(){if(n){n();n=undefined}};var r=function(r,i){e();var t=i!==undefined?document.getElementById(i):null;if(!t){l('A trigger element with the ID "'.concat(i,'" 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 o=function(n,e){var r=function(){e.present()};n.addEventListener("click",r);return function(){n.removeEventListener("click",r)}};n=o(t,r)};return{addClickListener:r,removeClickListener:e}}));var tn=function(n){if(e===undefined)return;n.setAttribute("aria-hidden","true")};var on=function(n){var r;if(e===undefined)return;var i=L(e);for(var t=i.length-1;t>=0;t--){var o=i[t];var a=(r=i[t+1])!==null&&r!==void 0?r:n;if(a.hasAttribute("aria-hidden")||a.tagName!=="ION-TOAST"){o.setAttribute("aria-hidden","true")}}};var an=function(){if(e===undefined)return;var n=L(e);for(var r=n.length-1;r>=0;r--){var i=n[r];i.removeAttribute("aria-hidden");if(i.tagName!=="ION-TOAST"){break}}};var un=n("F","ion-disable-focus-trap")}}}));
|
package/dist/ionic/p-5c831f49.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{d as e}from"./p-7b30edcc.js";import{f as n,c as o,a as t,b as i,g as a}from"./p-b51e4004.js";import{OVERLAY_BACK_BUTTON_PRIORITY as r,shouldUseCloseWatcher as d}from"./p-ecceeb90.js";import{b as s,c as l}from"./p-0574e87e.js";import{C as c}from"./p-3cc276f4.js";import{B as u}from"./p-9b97df10.js";import{p as m}from"./p-06fee233.js";const p='[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])',v=(e,n)=>{const o=e.querySelector(p);h(o,null!=n?n:e)},f=(e,n)=>{const o=Array.from(e.querySelectorAll(p));h(o.length>0?o[o.length-1]:null,null!=n?n:e)},h=(e,o)=>{let t=e;const i=null==e?void 0:e.shadowRoot;i&&(t=i.querySelector(p)||e),t?n(t):o.focus()};let b=0,y=0;const w=new WeakMap,g=e=>({create:n=>C(e,n),dismiss:(n,o,t)=>P(document,n,o,e,t),getTop:async()=>E(document,e)}),O=g("ion-alert"),T=g("ion-action-sheet"),k=g("ion-loading"),x=g("ion-modal"),j=g("ion-picker-legacy"),A=g("ion-popover"),I=g("ion-toast"),N=e=>{"undefined"!=typeof document&&B(document);const n=b++;e.overlayIndex=n},S=e=>(e.hasAttribute("id")||(e.id="ion-overlay-"+ ++y),e.id),C=(e,n)=>"undefined"!=typeof window&&void 0!==window.customElements?window.customElements.whenDefined(e).then((()=>{const t=document.createElement(e);return t.classList.add("overlay-hidden"),Object.assign(t,Object.assign(Object.assign({},n),{hasController:!0})),q(document).appendChild(t),new Promise((e=>o(t,e)))})):Promise.resolve(),D=(e,o)=>{let t=e;const i=null==e?void 0:e.shadowRoot;i&&(t=i.querySelector(p)||e),t?n(t):o.focus()},B=e=>{0===b&&(b=1,e.addEventListener("focus",(n=>{((e,n)=>{const o=E(n,"ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover"),t=e.target;o&&t&&(o.classList.contains(ne)||(o.shadowRoot?(()=>{if(o.contains(t))o.lastFocus=t;else if("ION-TOAST"===t.tagName)D(o.lastFocus,o);else{const e=o.lastFocus;v(o),e===n.activeElement&&f(o),o.lastFocus=n.activeElement}})():(()=>{if(o===t)o.lastFocus=void 0;else if("ION-TOAST"===t.tagName)D(o.lastFocus,o);else{const e=a(o);if(!e.contains(t))return;const i=e.querySelector(".ion-overlay-wrapper");if(!i)return;if(i.contains(t)||t===e.querySelector("ion-backdrop"))o.lastFocus=t;else{const e=o.lastFocus;v(i,o),e===n.activeElement&&f(i,o),o.lastFocus=n.activeElement}}})()))})(n,e)}),!0),e.addEventListener("ionBackButton",(n=>{const o=E(e);(null==o?void 0:o.backdropDismiss)&&n.detail.register(r,(()=>{o.dismiss(void 0,K)}))})),d()||e.addEventListener("keydown",(n=>{if("Escape"===n.key){const n=E(e);(null==n?void 0:n.backdropDismiss)&&n.dismiss(void 0,K)}})))},P=(e,n,o,t,i)=>{const a=E(e,t,i);return a?a.dismiss(n,o):Promise.reject("overlay does not exist")},M=(e,n)=>((e,n)=>(void 0===n&&(n="ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-picker-legacy,ion-popover,ion-toast"),Array.from(e.querySelectorAll(n)).filter((e=>e.overlayIndex>0))))(e,n).filter((e=>!e.classList.contains("overlay-hidden"))),E=(e,n,o)=>{const t=M(e,n);return void 0===o?t[t.length-1]:t.find((e=>e.id===o))},F=(e=!1)=>{const n=q(document).querySelector("ion-router-outlet, ion-nav, #ion-view-container-root");n&&(e?n.setAttribute("aria-hidden","true"):n.removeAttribute("aria-hidden"))},G=async(e,n,o,t,i)=>{var a,r;if(e.presented)return;"ION-TOAST"!==e.el.tagName&&F(!0),document.body.classList.add(u),Z(e.el),Y(e.el),e.presented=!0,e.willPresent.emit(),null===(a=e.willPresentShorthand)||void 0===a||a.emit();const d=s(e),c=e.enterAnimation?e.enterAnimation:l.get(n,"ios"===d?o:t);await z(e,c,e.el,i)&&(e.didPresent.emit(),null===(r=e.didPresentShorthand)||void 0===r||r.emit()),"ION-TOAST"!==e.el.tagName&&L(e.el),!e.keyboardClose||null!==document.activeElement&&e.el.contains(document.activeElement)||e.el.focus(),e.el.removeAttribute("aria-hidden")},L=async e=>{let n=document.activeElement;if(!n)return;const o=null==n?void 0:n.shadowRoot;o&&(n=o.querySelector(p)||n),await e.onDidDismiss(),null!==document.activeElement&&document.activeElement!==document.body||n.focus()},V=async(n,o,t,i,a,r,d)=>{var c,m;if(!n.presented)return!1;const p=void 0!==e?M(e).filter((e=>"ION-TOAST"!==e.tagName)):[];1===p.length&&p[0].id===n.el.id&&(F(!1),document.body.classList.remove(u)),n.presented=!1;try{Y(n.el),n.el.style.setProperty("pointer-events","none"),n.willDismiss.emit({data:o,role:t}),null===(c=n.willDismissShorthand)||void 0===c||c.emit({data:o,role:t});const e=s(n),u=n.leaveAnimation?n.leaveAnimation:l.get(i,"ios"===e?a:r);t!==Q&&await z(n,u,n.el,d),n.didDismiss.emit({data:o,role:t}),null===(m=n.didDismissShorthand)||void 0===m||m.emit({data:o,role:t}),(w.get(n)||[]).forEach((e=>e.destroy())),w.delete(n),n.el.classList.add("overlay-hidden"),n.el.style.removeProperty("pointer-events"),void 0!==n.el.lastFocus&&(n.el.lastFocus=void 0)}catch(e){console.error(e)}return n.el.remove(),ee(),!0},q=e=>e.querySelector("ion-app")||e.body,z=async(e,n,o,t)=>{o.classList.remove("overlay-hidden");const i=n(e.el,t);e.animated&&l.getBoolean("animated",!0)||i.duration(0),e.keyboardClose&&i.beforeAddWrite((()=>{const e=o.ownerDocument.activeElement;(null==e?void 0:e.matches("input,ion-input, ion-textarea"))&&e.blur()}));const a=w.get(e)||[];return w.set(e,[...a,i]),await i.play(),!0},W=(e,n)=>{let o;const t=new Promise((e=>o=e));return $(e,n,(e=>{o(e.detail)})),t},$=(e,n,o)=>{const a=t=>{i(e,n,a),o(t)};t(e,n,a)},_=e=>"cancel"===e||e===K,H=e=>e(),J=(e,n)=>{if("function"==typeof e)return l.get("_zoneGate",H)((()=>{try{return e(n)}catch(e){throw e}}))},K="backdrop",Q="gesture",R=39,U=e=>{let n,o=!1;const t=c(),i=(i=!1)=>{if(n&&!i)return{delegate:n,inline:o};const{el:a,hasController:r,delegate:d}=e;return o=null!==a.parentNode&&!r,n=o?d||t:d,{inline:o,delegate:n}};return{attachViewToDom:async n=>{const{delegate:o}=i(!0);if(o)return await o.attachViewToDom(e.el,n);const{hasController:t}=e;if(t&&void 0!==n)throw new Error("framework delegate is missing");return null},removeViewFromDom:()=>{const{delegate:n}=i();n&&void 0!==e.el&&n.removeViewFromDom(e.el.parentElement,e.el)}}},X=()=>{let e;const n=()=>{e&&(e(),e=void 0)};return{addClickListener:(o,t)=>{n();const i=void 0!==t?document.getElementById(t):null;i?e=((e,n)=>{const o=()=>{n.present()};return e.addEventListener("click",o),()=>{e.removeEventListener("click",o)}})(i,o):m(`A trigger element with the ID "${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.`,o)},removeClickListener:n}},Y=n=>{void 0!==e&&n.setAttribute("aria-hidden","true")},Z=n=>{var o;if(void 0===e)return;const t=M(e);for(let e=t.length-1;e>=0;e--){const i=t[e],a=null!==(o=t[e+1])&&void 0!==o?o:n;(a.hasAttribute("aria-hidden")||"ION-TOAST"!==a.tagName)&&i.setAttribute("aria-hidden","true")}},ee=()=>{if(void 0===e)return;const n=M(e);for(let e=n.length-1;e>=0;e--){const o=n[e];if(o.removeAttribute("aria-hidden"),"ION-TOAST"!==o.tagName)break}},ne="ion-disable-focus-trap";export{K as B,ne as F,Q as G,R as O,O as a,T as b,A as c,U as d,X as e,G as f,V as g,W as h,_ as i,N as j,S as k,k as l,x as m,v as n,E as o,j as p,f as q,J as s,I as t}
|