@ionic/core 8.7.18-dev.11771020096.1ca03a6d → 8.7.18-dev.11771365900.125bf49c
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/index.js +13 -14
- package/components/ion-accordion-group.js +3 -4
- package/components/ion-accordion.js +6 -7
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-app.js +11 -12
- package/components/ion-avatar.js +3 -3
- package/components/ion-back-button.js +8 -9
- package/components/ion-backdrop.js +1 -1
- package/components/ion-badge.js +4 -4
- package/components/ion-breadcrumb.js +7 -7
- package/components/ion-breadcrumbs.js +4 -4
- package/components/ion-button.js +1 -1
- package/components/ion-buttons.js +1 -1
- package/components/ion-card-content.js +3 -3
- package/components/ion-card-header.js +4 -4
- package/components/ion-card-subtitle.js +4 -4
- package/components/ion-card-title.js +4 -4
- package/components/ion-card.js +6 -6
- package/components/ion-checkbox.js +1 -1
- package/components/ion-chip.js +5 -5
- package/components/ion-col.js +3 -3
- package/components/ion-content.js +1 -1
- package/components/ion-datetime-button.js +7 -8
- package/components/ion-datetime.js +19 -20
- package/components/ion-fab-button.js +8 -8
- package/components/ion-fab-list.js +3 -3
- package/components/ion-fab.js +3 -3
- package/components/ion-footer.js +6 -6
- package/components/ion-grid.js +3 -3
- package/components/ion-header.js +1 -1
- package/components/ion-icon.js +1 -1
- package/components/ion-img.js +4 -4
- package/components/ion-infinite-scroll-content.js +5 -6
- package/components/ion-infinite-scroll.js +4 -4
- package/components/ion-input-otp.js +6 -7
- package/components/ion-input-password-toggle.js +8 -9
- package/components/ion-input.js +13 -13
- package/components/ion-item-divider.js +6 -6
- package/components/ion-item-group.js +4 -4
- package/components/ion-item-option.js +7 -7
- package/components/ion-item-options.js +5 -5
- package/components/ion-item-sliding.js +8 -9
- package/components/ion-item.js +1 -1
- package/components/ion-label.js +1 -1
- package/components/ion-list-header.js +1 -1
- package/components/ion-list.js +1 -1
- package/components/ion-loading.js +13 -14
- package/components/ion-menu-button.js +12 -13
- package/components/ion-menu-toggle.js +7 -7
- package/components/ion-menu.js +14 -18
- package/components/ion-modal.js +1 -1
- package/components/ion-nav-link.js +3 -3
- package/components/ion-nav.js +9 -14
- package/components/ion-note.js +6 -6
- package/components/ion-picker-column-option.js +1 -1
- package/components/ion-picker-column.js +1 -1
- package/components/ion-picker-legacy-column.js +1 -1
- package/components/ion-picker-legacy.js +12 -13
- package/components/ion-picker.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.js +6 -7
- package/components/ion-radio-group.js +1 -1
- package/components/ion-radio.js +1 -1
- package/components/ion-range.js +11 -12
- package/components/ion-refresher-content.js +9 -10
- package/components/ion-refresher.js +12 -13
- package/components/ion-reorder-group.js +8 -8
- package/components/ion-reorder.js +6 -6
- package/components/ion-ripple-effect.js +1 -1
- package/components/ion-route-redirect.js +2 -2
- package/components/ion-route.js +2 -2
- package/components/ion-router-link.js +6 -6
- package/components/ion-router-outlet.js +10 -11
- package/components/ion-router.js +3 -4
- package/components/ion-row.js +4 -4
- package/components/ion-searchbar.js +12 -13
- package/components/ion-segment-button.js +8 -9
- package/components/ion-segment-content.js +3 -3
- package/components/ion-segment-view.js +5 -5
- package/components/ion-segment.js +9 -9
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-option.js +4 -4
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +36 -37
- package/components/ion-skeleton-text.js +6 -7
- package/components/ion-spinner.js +1 -1
- package/components/ion-split-pane.js +5 -12
- package/components/ion-tab-bar.js +7 -7
- package/components/ion-tab-button.js +7 -8
- package/components/ion-tab.js +5 -14
- package/components/ion-tabs.js +3 -4
- package/components/ion-text.js +6 -6
- package/components/ion-textarea.js +13 -13
- package/components/ion-thumbnail.js +4 -4
- package/components/ion-title.js +1 -1
- package/components/ion-toast.js +17 -20
- package/components/ion-toggle.js +15 -16
- package/components/ion-toolbar.js +1 -1
- package/components/{list.js → p-B25GjpND.js} +3 -3
- package/components/{buttons.js → p-BBFQmhcD.js} +3 -3
- package/components/{index5.js → p-BC-awmYt.js} +6 -6
- package/components/{picker.js → p-BHbOsu99.js} +3 -3
- package/components/{title.js → p-BTlwXR9e.js} +6 -6
- package/components/{alert.js → p-BcazQttQ.js} +12 -13
- package/components/{spinner.js → p-BdGshsIJ.js} +5 -6
- package/components/{input.utils.js → p-BfS7vSpC.js} +3 -3
- package/components/{ios.transition.js → p-BhRFCLuX.js} +2 -2
- package/components/{backdrop.js → p-Bhnhnzjz.js} +3 -3
- package/components/{notch-controller.js → p-BmcqD0EN.js} +2 -2
- package/components/{radio-group.js → p-BnpDIASH.js} +7 -7
- package/components/{hardware-back-button.js → p-Boi6hecl.js} +2 -2
- package/components/{radio.js → p-Bt_moUyl.js} +8 -8
- package/components/{ionic-global.js → p-Bxl5etF4.js} +1 -2
- package/components/{picker-column-option.js → p-ByjmWt3s.js} +7 -7
- package/components/{md.transition.js → p-C04oPyjT.js} +2 -2
- package/components/{capacitor.js → p-CIGNaXM1.js} +1 -1
- package/components/{config.js → p-CIJwkzL6.js} +1 -1
- package/components/{select-modal.js → p-CJrGvZ1Z.js} +19 -19
- package/components/{animation.js → p-CL12ApCQ.js} +2 -2
- package/components/{label.js → p-CUfY9DTD.js} +6 -6
- package/components/{action-sheet.js → p-CXJR56Oq.js} +12 -12
- package/components/{index3.js → p-Cl0B-RWe.js} +1 -1
- package/components/{keyboard-controller.js → p-CtWGkNnJ.js} +2 -2
- package/components/{index7.js → p-Cyd00tgZ.js} +2 -2
- package/components/{picker-column2.js → p-CzAJ3ArC.js} +9 -9
- package/components/{menu-toggle-util.js → p-CzW34QBh.js} +1 -1
- package/components/{refresher.utils.js → p-D0zXRwcr.js} +3 -3
- package/components/{keyboard2.js → p-D13Eaw-8.js} +1 -1
- package/components/{select-popover.js → p-D3KEyQ8e.js} +15 -15
- package/components/{helpers.js → p-D5hF6rwn.js} +1 -1
- package/components/{keyboard.js → p-D6Ynv7Xh.js} +1 -1
- package/components/{button-active.js → p-D8eD2iBA.js} +3 -3
- package/components/{button.js → p-DK2Bn1Mc.js} +6 -7
- package/components/{picker-column.js → p-DKRQWlK2.js} +7 -7
- package/components/{index8.js → p-DNDUsygf.js} +2 -2
- package/components/{content.js → p-DPm73mCi.js} +7 -7
- package/components/{popover.js → p-DRHwNkVo.js} +43 -166
- package/components/{index2.js → p-DTWZF6wg.js} +4 -5
- package/components/p-DWoUQeZ3.js +3012 -0
- package/components/{header.js → p-DX0w75a9.js} +6 -6
- package/components/{toolbar.js → p-Dt8zaCLQ.js} +6 -6
- package/components/{checkbox.js → p-DyFBFrV7.js} +7 -7
- package/components/{status-tap.js → p-DyHPCMyn.js} +3 -3
- package/components/{modal.js → p-IHgAGzvW.js} +35 -345
- package/components/{ripple-effect.js → p-LgLeKTkH.js} +4 -4
- package/components/{list-header.js → p-NhiRFRn9.js} +6 -6
- package/components/{input-shims.js → p-OuiHmXO5.js} +4 -4
- package/components/{icon.js → p-Wro9IPHE.js} +6 -6
- package/components/{item.js → p-aIWC4ZEV.js} +8 -8
- package/components/{overlays.js → p-c-XJ9XhZ.js} +7 -7
- package/components/{haptic.js → p-cyNmxje6.js} +1 -1
- package/components/{swipe-back.js → p-fVuFT3Wd.js} +3 -3
- package/components/{framework-delegate.js → p-l_lso3Zl.js} +1 -1
- package/components/{data.js → p-mQp4lwQD.js} +2 -2
- package/dist/cjs/ion-app_8.cjs.entry.js +5 -5
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +11 -11
- package/dist/cjs/ion-loading.cjs.entry.js +2 -2
- package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-modal.cjs.entry.js +17 -326
- package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +32 -154
- package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-range.cjs.entry.js +3 -3
- package/dist/cjs/ion-refresher_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-select-modal.cjs.entry.js +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +2 -2
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/collection/components/item-divider/item-divider.js +2 -2
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +2 -2
- package/dist/collection/components/item-options/item-options.js +1 -1
- package/dist/collection/components/item-sliding/item-sliding.js +1 -1
- package/dist/collection/components/label/label.js +2 -2
- package/dist/collection/components/list-header/list-header.js +2 -2
- package/dist/collection/components/loading/loading.js +2 -2
- package/dist/collection/components/menu/menu.js +2 -2
- package/dist/collection/components/menu-button/menu-button.js +2 -2
- package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
- package/dist/collection/components/modal/modal.ios.css +5 -6
- package/dist/collection/components/modal/modal.js +15 -164
- package/dist/collection/components/modal/modal.md.css +5 -6
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/nav-link/nav-link.js +1 -1
- package/dist/collection/components/note/note.js +2 -2
- package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
- package/dist/collection/components/picker-legacy/picker.js +2 -2
- package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
- package/dist/collection/components/popover/animations/ios.enter.js +8 -33
- package/dist/collection/components/popover/animations/md.enter.js +6 -26
- package/dist/collection/components/popover/popover.js +2 -2
- package/dist/collection/components/popover/utils.js +19 -96
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio/radio.js +3 -3
- package/dist/collection/components/radio-group/radio-group.js +1 -1
- package/dist/collection/components/range/range.js +3 -3
- package/dist/collection/components/refresher/refresher.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +1 -1
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +4 -4
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment-button/segment-button.js +2 -2
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +2 -2
- package/dist/collection/components/select/select.js +2 -2
- package/dist/collection/components/select-modal/select-modal.js +1 -1
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/select-popover/select-popover.js +1 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/textarea.js +2 -2
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.js +3 -3
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/docs.json +1 -1
- package/dist/esm/ion-app_8.entry.js +5 -5
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +1 -1
- package/dist/esm/ion-datetime_3.entry.js +4 -4
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +11 -11
- package/dist/esm/ion-loading.entry.js +2 -2
- package/dist/esm/ion-menu_3.entry.js +6 -6
- package/dist/esm/ion-modal.entry.js +17 -326
- package/dist/esm/ion-nav_2.entry.js +2 -2
- package/dist/esm/ion-picker-column-option.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +32 -154
- package/dist/esm/ion-progress-bar.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +4 -4
- package/dist/esm/ion-range.entry.js +3 -3
- package/dist/esm/ion-refresher_2.entry.js +2 -2
- package/dist/esm/ion-reorder_2.entry.js +2 -2
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +4 -4
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +4 -4
- package/dist/esm/ion-select-modal.entry.js +1 -1
- package/dist/esm/ion-select_3.entry.js +4 -4
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +2 -2
- package/dist/esm/ion-toggle.entry.js +3 -3
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-074839fc.entry.js → p-01e27965.entry.js} +1 -1
- package/dist/ionic/p-0ca0fe9c.entry.js +4 -0
- package/dist/ionic/{p-316c0420.entry.js → p-221a3d8c.entry.js} +1 -1
- package/dist/ionic/{p-3a6caca9.entry.js → p-2668188b.entry.js} +1 -1
- package/dist/ionic/{p-d3014190.entry.js → p-2bd1ea35.entry.js} +1 -1
- package/dist/ionic/{p-a127bee2.entry.js → p-30333874.entry.js} +1 -1
- package/dist/ionic/{p-0e8c8a10.entry.js → p-31db96da.entry.js} +1 -1
- package/dist/ionic/{p-1647c46c.entry.js → p-363d1209.entry.js} +1 -1
- package/dist/ionic/p-3ec563c1.entry.js +4 -0
- package/dist/ionic/{p-c19af093.entry.js → p-42db6404.entry.js} +1 -1
- package/dist/ionic/{p-db82892c.entry.js → p-46a38cfd.entry.js} +1 -1
- package/dist/ionic/{p-eb024a5b.entry.js → p-4eec1a5e.entry.js} +1 -1
- package/dist/ionic/{p-0dfa5a37.entry.js → p-530fcd71.entry.js} +1 -1
- package/dist/ionic/{p-72c38b88.entry.js → p-5c8f7253.entry.js} +1 -1
- package/dist/ionic/{p-172a579f.entry.js → p-5d6fb6e3.entry.js} +1 -1
- package/dist/ionic/{p-dbbe606a.entry.js → p-652318c3.entry.js} +1 -1
- package/dist/ionic/{p-2a939845.entry.js → p-6f37536a.entry.js} +1 -1
- package/dist/ionic/{p-4e41ea20.entry.js → p-72af946b.entry.js} +1 -1
- package/dist/ionic/p-7f98e710.entry.js +4 -0
- package/dist/ionic/{p-6d070558.entry.js → p-82d5bb3d.entry.js} +1 -1
- package/dist/ionic/p-906bb44d.entry.js +4 -0
- package/dist/ionic/{p-2dbb90cb.entry.js → p-97eb0812.entry.js} +1 -1
- package/dist/ionic/{p-31f7095f.entry.js → p-a4a9f5ae.entry.js} +1 -1
- package/dist/ionic/{p-86f53961.entry.js → p-b8551510.entry.js} +1 -1
- package/dist/ionic/p-bc293244.entry.js +4 -0
- package/dist/ionic/{p-d126e8d3.entry.js → p-bce86e56.entry.js} +1 -1
- package/dist/ionic/{p-02d76786.entry.js → p-be263062.entry.js} +1 -1
- package/dist/ionic/{p-639dd543.entry.js → p-c175d792.entry.js} +1 -1
- package/dist/ionic/{p-020af078.entry.js → p-cc2a9936.entry.js} +1 -1
- package/dist/ionic/{p-1ccd6829.entry.js → p-e338f669.entry.js} +1 -1
- package/dist/ionic/{p-6241ce47.entry.js → p-eaf3f5ff.entry.js} +1 -1
- package/dist/ionic/{p-f8f22cc0.entry.js → p-fb0271ae.entry.js} +1 -1
- package/dist/ionic/{p-370e4237.entry.js → p-fbb00634.entry.js} +1 -1
- package/dist/types/components/modal/modal.d.ts +0 -35
- package/dist/types/components/popover/utils.d.ts +1 -23
- package/hydrate/index.js +137 -568
- package/hydrate/index.mjs +137 -568
- package/package.json +1 -1
- package/components/index4.js +0 -121
- package/dist/collection/components/modal/safe-area-utils.js +0 -165
- package/dist/ionic/p-3e69999d.entry.js +0 -4
- package/dist/ionic/p-51a60e0f.entry.js +0 -4
- package/dist/ionic/p-94de5cfa.entry.js +0 -4
- package/dist/ionic/p-cc3446d5.entry.js +0 -4
- package/dist/ionic/p-dd1aef77.entry.js +0 -4
- package/dist/types/components/modal/safe-area-utils.d.ts +0 -66
- /package/components/{lock-controller.js → p-B-hirT0v.js} +0 -0
- /package/components/{gesture-controller.js → p-BTEOs1at.js} +0 -0
- /package/components/{focus-visible.js → p-BmVRXR1y.js} +0 -0
- /package/components/{dir.js → p-C53feagD.js} +0 -0
- /package/components/{index6.js → p-CO7fmmxt.js} +0 -0
- /package/components/{validity.js → p-DJztqcrH.js} +0 -0
- /package/components/{theme.js → p-DiVJyqlX.js} +0 -0
- /package/components/{watch-options.js → p-Dtdm8lKC.js} +0 -0
- /package/components/{index9.js → p-ZjP4CjeZ.js} +0 -0
- /package/components/{cubic-bezier.js → p-hHmYLOfE.js} +0 -0
package/hydrate/index.js
CHANGED
|
@@ -18573,11 +18573,11 @@ class ItemDivider {
|
|
|
18573
18573
|
}
|
|
18574
18574
|
render() {
|
|
18575
18575
|
const mode = getIonMode$1(this);
|
|
18576
|
-
return (hAsync(Host, { key: '
|
|
18576
|
+
return (hAsync(Host, { key: 'ee8b2c8d5e415c0d8badf84fa7670932da4e809e', class: createColorClasses$1(this.color, {
|
|
18577
18577
|
[mode]: true,
|
|
18578
18578
|
'item-divider-sticky': this.sticky,
|
|
18579
18579
|
item: true,
|
|
18580
|
-
}) }, hAsync("slot", { key: '
|
|
18580
|
+
}) }, hAsync("slot", { key: 'a1b7bbb1a008b0a56887f130d166931033801746', name: "start" }), hAsync("div", { key: '9d572da46ab616bdf881098e96aa6796a249507f', class: "item-divider-inner" }, hAsync("div", { key: 'a57a2c17093b74b9e4f8fd2778230a440b293aa1', class: "item-divider-wrapper" }, hAsync("slot", { key: 'ef15ebf58f3acd4b4d1b7c51144e26c3759dba49' })), hAsync("slot", { key: '1787c2400534301fe72b8ec213d0ce1e8f75b65a', name: "end" }))));
|
|
18581
18581
|
}
|
|
18582
18582
|
get el() { return getElement(this); }
|
|
18583
18583
|
static get style() { return {
|
|
@@ -18607,7 +18607,7 @@ class ItemGroup {
|
|
|
18607
18607
|
}
|
|
18608
18608
|
render() {
|
|
18609
18609
|
const mode = getIonMode$1(this);
|
|
18610
|
-
return (hAsync(Host, { key: '
|
|
18610
|
+
return (hAsync(Host, { key: 'f1743af1d075682f63fae3802c5c5bf050507563', role: "group", class: {
|
|
18611
18611
|
[mode]: true,
|
|
18612
18612
|
// Used internally for styling
|
|
18613
18613
|
[`item-group-${mode}`]: true,
|
|
@@ -18677,12 +18677,12 @@ class ItemOption {
|
|
|
18677
18677
|
href: this.href,
|
|
18678
18678
|
target: this.target,
|
|
18679
18679
|
};
|
|
18680
|
-
return (hAsync(Host, { key: '
|
|
18680
|
+
return (hAsync(Host, { key: '058310ac361612c16f2ef70c74279ba7c24128c5', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
18681
18681
|
[mode]: true,
|
|
18682
18682
|
'item-option-disabled': disabled,
|
|
18683
18683
|
'item-option-expandable': expandable,
|
|
18684
18684
|
'ion-activatable': true,
|
|
18685
|
-
}) }, hAsync(TagType, Object.assign({ key: '
|
|
18685
|
+
}) }, hAsync(TagType, Object.assign({ key: '045052656ab652bec065d421950fe9ea00dc1141' }, attrs, { class: "button-native", part: "native", disabled: disabled }), hAsync("span", { key: '988b9166c0dda3c822a99ceace4c105339b2465b', class: "button-inner" }, hAsync("slot", { key: '8050b870ada6b09283f8acbcbb6d2bd1c76508b3', name: "top" }), hAsync("div", { key: 'a206e7b09e660c878ce3c5b61d018e8cdd89dc55', class: "horizontal-wrapper" }, hAsync("slot", { key: '394e5e4ce14cd19b5d5eafca29bb9f971f5f0741', name: "start" }), hAsync("slot", { key: 'dd4c3a1bee7622df40a3d8f2a298045b772f1600', name: "icon-only" }), hAsync("slot", { key: '318f3ec97b722c5e7df1a78b1e0439f919d0aacc' }), hAsync("slot", { key: 'fff6a9a602cf7bd698528982f91742a2d36ea245', name: "end" })), hAsync("slot", { key: '26b4bb155701d8080b486dbad7bb9a6d2e35182c', name: "bottom" })), mode === 'md' && hAsync("ion-ripple-effect", { key: '152b74643bf0f5725c39bfdbb940f0f32ec83d58' }))));
|
|
18686
18686
|
}
|
|
18687
18687
|
get el() { return getElement(this); }
|
|
18688
18688
|
static get style() { return {
|
|
@@ -18731,7 +18731,7 @@ class ItemOptions {
|
|
|
18731
18731
|
render() {
|
|
18732
18732
|
const mode = getIonMode$1(this);
|
|
18733
18733
|
const isEnd = isEndSide(this.side);
|
|
18734
|
-
return (hAsync(Host, { key: '
|
|
18734
|
+
return (hAsync(Host, { key: '7b4b93984182222c64c7a2a22a18e52ac19e3049', class: {
|
|
18735
18735
|
[mode]: true,
|
|
18736
18736
|
// Used internally for styling
|
|
18737
18737
|
[`item-options-${mode}`]: true,
|
|
@@ -19196,7 +19196,7 @@ class ItemSliding {
|
|
|
19196
19196
|
}
|
|
19197
19197
|
render() {
|
|
19198
19198
|
const mode = getIonMode$1(this);
|
|
19199
|
-
return (hAsync(Host, { key: '
|
|
19199
|
+
return (hAsync(Host, { key: '8fd81d74701402294a48b79c56d6eceadafd4881', class: {
|
|
19200
19200
|
[mode]: true,
|
|
19201
19201
|
'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
|
|
19202
19202
|
'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
|
|
@@ -19301,13 +19301,13 @@ class Label {
|
|
|
19301
19301
|
render() {
|
|
19302
19302
|
const position = this.position;
|
|
19303
19303
|
const mode = getIonMode$1(this);
|
|
19304
|
-
return (hAsync(Host, { key: '
|
|
19304
|
+
return (hAsync(Host, { key: '684ddfa719e34d743489ff05a0df067829257c73', class: createColorClasses$1(this.color, {
|
|
19305
19305
|
[mode]: true,
|
|
19306
19306
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
19307
19307
|
[`label-${position}`]: position !== undefined,
|
|
19308
19308
|
[`label-no-animate`]: this.noAnimate,
|
|
19309
19309
|
'label-rtl': document.dir === 'rtl',
|
|
19310
|
-
}) }, hAsync("slot", { key: '
|
|
19310
|
+
}) }, hAsync("slot", { key: '4aace3e2b36250e832c44f63bea21116d77220fb' })));
|
|
19311
19311
|
}
|
|
19312
19312
|
get el() { return getElement(this); }
|
|
19313
19313
|
static get watchers() { return {
|
|
@@ -19405,10 +19405,10 @@ class ListHeader {
|
|
|
19405
19405
|
render() {
|
|
19406
19406
|
const { lines } = this;
|
|
19407
19407
|
const mode = getIonMode$1(this);
|
|
19408
|
-
return (hAsync(Host, { key: '
|
|
19408
|
+
return (hAsync(Host, { key: '2e529021279761b2b2889885437f619b0e8f71c4', class: createColorClasses$1(this.color, {
|
|
19409
19409
|
[mode]: true,
|
|
19410
19410
|
[`list-header-lines-${lines}`]: lines !== undefined,
|
|
19411
|
-
}) }, hAsync("div", { key: '
|
|
19411
|
+
}) }, hAsync("div", { key: '9a6a11b0db015df79374f6489a40b959bc80b3e4', class: "list-header-inner" }, hAsync("slot", { key: 'ef347fc6afb47850797e2e4d1aeefcd6a318f789' }))));
|
|
19412
19412
|
}
|
|
19413
19413
|
static get style() { return {
|
|
19414
19414
|
ios: listHeaderIosCss,
|
|
@@ -19693,9 +19693,9 @@ class Loading {
|
|
|
19693
19693
|
* Otherwise, don't set aria-labelledby.
|
|
19694
19694
|
*/
|
|
19695
19695
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
19696
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
19696
|
+
return (hAsync(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
19697
19697
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
19698
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '
|
|
19698
|
+
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: 'b53727aaddc37ef3c685fcc150c6d5193290a847', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '4c61bede8e0a4e47daa6f1f9d0f364ef6aec0bc3', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '84e51ceb07118f1eaeb757df28801c255496931b', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: 'fc97f1912e0fc558b7c309a5bc084415f5f620b2', class: "loading-spinner" }, hAsync("ion-spinner", { key: '6e186d856cd3f10f22c3e317ef00f31b4216459c', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'dcbe9d9a619daa1c08174e73827bdabeb59dde92', tabindex: "0", "aria-hidden": "true" })));
|
|
19699
19699
|
}
|
|
19700
19700
|
get el() { return getElement(this); }
|
|
19701
19701
|
static get watchers() { return {
|
|
@@ -20744,14 +20744,14 @@ class Menu {
|
|
|
20744
20744
|
* the ionBackButton listener in the menu controller
|
|
20745
20745
|
* will handle closing the menu when Escape is pressed.
|
|
20746
20746
|
*/
|
|
20747
|
-
return (hAsync(Host, { key: '
|
|
20747
|
+
return (hAsync(Host, { key: '29ef73894e2795e4ce23e59888ffb87faf4dd543', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
20748
20748
|
[mode]: true,
|
|
20749
20749
|
[`menu-type-${type}`]: true,
|
|
20750
20750
|
'menu-enabled': !disabled,
|
|
20751
20751
|
[`menu-side-${side}`]: true,
|
|
20752
20752
|
'menu-pane-visible': isPaneVisible,
|
|
20753
20753
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
20754
|
-
} }, hAsync("div", { key: '
|
|
20754
|
+
} }, hAsync("div", { key: '22e44f7bd602ee0c96550f0dfc22ac81c0033ad6', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, hAsync("slot", { key: '7bbef92fe03bb3ce4d3981eb8535aab449aab2fc' })), hAsync("ion-backdrop", { key: '9ab8d5b61563e16b212c71c03869d4fc23a0400b', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
|
|
20755
20755
|
}
|
|
20756
20756
|
get el() { return getElement(this); }
|
|
20757
20757
|
static get watchers() { return {
|
|
@@ -20859,7 +20859,7 @@ class MenuButton {
|
|
|
20859
20859
|
type: this.type,
|
|
20860
20860
|
};
|
|
20861
20861
|
const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
|
|
20862
|
-
return (hAsync(Host, { key: '
|
|
20862
|
+
return (hAsync(Host, { key: 'dcade732e366f0687d92cb9ce4065b78b0b41d24', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
|
|
20863
20863
|
[mode]: true,
|
|
20864
20864
|
button: true, // ion-buttons target .button
|
|
20865
20865
|
'menu-button-hidden': hidden,
|
|
@@ -20868,7 +20868,7 @@ class MenuButton {
|
|
|
20868
20868
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
20869
20869
|
'ion-activatable': true,
|
|
20870
20870
|
'ion-focusable': true,
|
|
20871
|
-
}) }, hAsync("button", Object.assign({ key: '
|
|
20871
|
+
}) }, hAsync("button", Object.assign({ key: '7c4a449e239679376f38471d95fd602f9caec5f6' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), hAsync("span", { key: '8bb5bf453280a66109198c970b678ad800c7a8cf', class: "button-inner" }, hAsync("slot", { key: '7f78b1e7a0695f2bd600d13ca81f50dd8b965726' }, hAsync("ion-icon", { key: '9f67f5bb06b1f03a6e5df9ecbe23ebf69fb40756', part: "icon", icon: menuIcon, mode: mode, lazy: false, "aria-hidden": "true" }))), mode === 'md' && hAsync("ion-ripple-effect", { key: '10be7145c614144e94c3cc0b92dc5ee4e1587fe6', type: "unbounded" }))));
|
|
20872
20872
|
}
|
|
20873
20873
|
get el() { return getElement(this); }
|
|
20874
20874
|
static get style() { return {
|
|
@@ -20921,10 +20921,10 @@ class MenuToggle {
|
|
|
20921
20921
|
render() {
|
|
20922
20922
|
const mode = getIonMode$1(this);
|
|
20923
20923
|
const hidden = this.autoHide && !this.visible;
|
|
20924
|
-
return (hAsync(Host, { key: '
|
|
20924
|
+
return (hAsync(Host, { key: '55135952f3a42cb5d21916dfb7b169d894b381e3', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
|
|
20925
20925
|
[mode]: true,
|
|
20926
20926
|
'menu-toggle-hidden': hidden,
|
|
20927
|
-
} }, hAsync("slot", { key: '
|
|
20927
|
+
} }, hAsync("slot", { key: 'e8ecb59a6ec075b07e2a1b8fcdf7df3dd9975a03' })));
|
|
20928
20928
|
}
|
|
20929
20929
|
static get style() { return menuToggleCss; }
|
|
20930
20930
|
static get cmpMeta() { return {
|
|
@@ -22806,170 +22806,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
22806
22806
|
};
|
|
22807
22807
|
};
|
|
22808
22808
|
|
|
22809
|
-
|
|
22810
|
-
* These thresholds match the SCSS media query breakpoints in modal.vars.scss
|
|
22811
|
-
* that trigger the centered dialog layout (non-fullscreen modal).
|
|
22812
|
-
*
|
|
22813
|
-
* SCSS defines two height breakpoints: $modal-inset-min-height-small (600px)
|
|
22814
|
-
* and $modal-inset-min-height-large (768px). We use the smaller one because
|
|
22815
|
-
* that's the threshold where the modal transitions from fullscreen to centered
|
|
22816
|
-
* dialog — the larger breakpoint only increases the dialog's height.
|
|
22817
|
-
*/
|
|
22818
|
-
const MODAL_INSET_MIN_WIDTH = 768;
|
|
22819
|
-
const MODAL_INSET_MIN_HEIGHT = 600;
|
|
22820
|
-
const EDGE_THRESHOLD = 5;
|
|
22821
|
-
/**
|
|
22822
|
-
* Cache for resolved root safe-area-top value, invalidated once per frame.
|
|
22823
|
-
*/
|
|
22824
|
-
let cachedRootSafeAreaTop = null;
|
|
22825
|
-
let cacheInvalidationScheduled$1 = false;
|
|
22826
|
-
/**
|
|
22827
|
-
* Determines if the current viewport meets the CSS media query conditions
|
|
22828
|
-
* that cause regular modals to render as centered dialogs instead of fullscreen.
|
|
22829
|
-
* Matches: @media (min-width: 768px) and (min-height: 600px)
|
|
22830
|
-
*/
|
|
22831
|
-
const isCenteredDialogViewport = () => {
|
|
22832
|
-
if (!win$1)
|
|
22833
|
-
return false;
|
|
22834
|
-
return win$1.matchMedia(`(min-width: ${MODAL_INSET_MIN_WIDTH}px) and (min-height: ${MODAL_INSET_MIN_HEIGHT}px)`)
|
|
22835
|
-
.matches;
|
|
22836
|
-
};
|
|
22837
|
-
/**
|
|
22838
|
-
* Resolves the current root --ion-safe-area-top value to pixels.
|
|
22839
|
-
* Uses a temporary element because getComputedStyle on :root returns
|
|
22840
|
-
* the declared value of custom properties (e.g. "env(safe-area-inset-top)")
|
|
22841
|
-
* rather than a resolved number.
|
|
22842
|
-
*
|
|
22843
|
-
* Results are cached for the current frame to avoid repeated reflows.
|
|
22844
|
-
*/
|
|
22845
|
-
const getRootSafeAreaTop = () => {
|
|
22846
|
-
if (cachedRootSafeAreaTop !== null) {
|
|
22847
|
-
return cachedRootSafeAreaTop;
|
|
22848
|
-
}
|
|
22849
|
-
const doc = win$1 === null || win$1 === void 0 ? void 0 : win$1.document;
|
|
22850
|
-
if (!(doc === null || doc === void 0 ? void 0 : doc.body)) {
|
|
22851
|
-
return 0;
|
|
22852
|
-
}
|
|
22853
|
-
const el = doc.createElement('div');
|
|
22854
|
-
el.style.cssText =
|
|
22855
|
-
'position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;' + 'padding-top:var(--ion-safe-area-top,0px);';
|
|
22856
|
-
doc.body.appendChild(el);
|
|
22857
|
-
const value = parseFloat(getComputedStyle(el).paddingTop) || 0;
|
|
22858
|
-
el.remove();
|
|
22859
|
-
cachedRootSafeAreaTop = value;
|
|
22860
|
-
if (!cacheInvalidationScheduled$1) {
|
|
22861
|
-
cacheInvalidationScheduled$1 = true;
|
|
22862
|
-
raf(() => {
|
|
22863
|
-
cachedRootSafeAreaTop = null;
|
|
22864
|
-
cacheInvalidationScheduled$1 = false;
|
|
22865
|
-
});
|
|
22866
|
-
}
|
|
22867
|
-
return value;
|
|
22868
|
-
};
|
|
22869
|
-
/**
|
|
22870
|
-
* Returns the initial safe-area configuration based on modal type.
|
|
22871
|
-
* This is called before animation starts and uses configuration-based prediction.
|
|
22872
|
-
*
|
|
22873
|
-
* @param context - Modal context information
|
|
22874
|
-
* @returns SafeAreaConfig with initial safe-area values
|
|
22875
|
-
*/
|
|
22876
|
-
const getInitialSafeAreaConfig = (context) => {
|
|
22877
|
-
const { isSheetModal, isCardModal } = context;
|
|
22878
|
-
// Sheet modals always zero top safe-area. The sheet height offset from the
|
|
22879
|
-
// top edge is handled by --ion-modal-offset-top (set in modal.tsx) using
|
|
22880
|
-
// the resolved root value, so --ion-safe-area-top is never needed for
|
|
22881
|
-
// height calculation. Keeping it at 0px prevents header content from
|
|
22882
|
-
// getting double-offset padding.
|
|
22883
|
-
if (isSheetModal) {
|
|
22884
|
-
return {
|
|
22885
|
-
top: '0px',
|
|
22886
|
-
bottom: 'inherit',
|
|
22887
|
-
left: '0px',
|
|
22888
|
-
right: '0px',
|
|
22889
|
-
};
|
|
22890
|
-
}
|
|
22891
|
-
// Card modals need safe-area for height calculation.
|
|
22892
|
-
// Note: isCardModal is already gated on mode === 'ios' by the caller.
|
|
22893
|
-
if (isCardModal) {
|
|
22894
|
-
return {
|
|
22895
|
-
top: 'inherit',
|
|
22896
|
-
bottom: 'inherit',
|
|
22897
|
-
left: '0px',
|
|
22898
|
-
right: '0px',
|
|
22899
|
-
};
|
|
22900
|
-
}
|
|
22901
|
-
// On viewports that meet the centered dialog media query breakpoints,
|
|
22902
|
-
// regular modals render as centered dialogs (not fullscreen), so they
|
|
22903
|
-
// don't touch any screen edges and don't need safe-area insets.
|
|
22904
|
-
if (isCenteredDialogViewport()) {
|
|
22905
|
-
return {
|
|
22906
|
-
top: '0px',
|
|
22907
|
-
bottom: '0px',
|
|
22908
|
-
left: '0px',
|
|
22909
|
-
right: '0px',
|
|
22910
|
-
};
|
|
22911
|
-
}
|
|
22912
|
-
// Fullscreen modals on phone - inherit all safe areas
|
|
22913
|
-
return {
|
|
22914
|
-
top: 'inherit',
|
|
22915
|
-
bottom: 'inherit',
|
|
22916
|
-
left: 'inherit',
|
|
22917
|
-
right: 'inherit',
|
|
22918
|
-
};
|
|
22919
|
-
};
|
|
22920
|
-
/**
|
|
22921
|
-
* Returns safe-area configuration based on actual modal position.
|
|
22922
|
-
* Detects which edges the modal overlaps with and only applies safe-area to those edges.
|
|
22923
|
-
*
|
|
22924
|
-
* Note: On Android edge-to-edge (API 36+), getBoundingClientRect() may report
|
|
22925
|
-
* inconsistent values. Sheet and card modals avoid this by using configuration-based
|
|
22926
|
-
* prediction instead. Regular modals use coordinate detection which works reliably
|
|
22927
|
-
* on web and iOS; Android edge-to-edge may need a configuration-based fallback
|
|
22928
|
-
* once a reliable detection mechanism is available.
|
|
22929
|
-
*
|
|
22930
|
-
* @param wrapperEl - The modal wrapper element to measure
|
|
22931
|
-
* @returns SafeAreaConfig based on position
|
|
22932
|
-
*/
|
|
22933
|
-
const getPositionBasedSafeAreaConfig = (wrapperEl) => {
|
|
22934
|
-
var _a, _b;
|
|
22935
|
-
const rect = wrapperEl.getBoundingClientRect();
|
|
22936
|
-
const vh = (_a = win$1 === null || win$1 === void 0 ? void 0 : win$1.innerHeight) !== null && _a !== void 0 ? _a : 0;
|
|
22937
|
-
const vw = (_b = win$1 === null || win$1 === void 0 ? void 0 : win$1.innerWidth) !== null && _b !== void 0 ? _b : 0;
|
|
22938
|
-
// Only apply safe-area to sides where modal overlaps with screen edge
|
|
22939
|
-
return {
|
|
22940
|
-
top: rect.top <= EDGE_THRESHOLD ? 'inherit' : '0px',
|
|
22941
|
-
bottom: rect.bottom >= vh - EDGE_THRESHOLD ? 'inherit' : '0px',
|
|
22942
|
-
left: rect.left <= EDGE_THRESHOLD ? 'inherit' : '0px',
|
|
22943
|
-
right: rect.right >= vw - EDGE_THRESHOLD ? 'inherit' : '0px',
|
|
22944
|
-
};
|
|
22945
|
-
};
|
|
22946
|
-
/**
|
|
22947
|
-
* Applies safe-area CSS custom property overrides to the modal host element.
|
|
22948
|
-
*
|
|
22949
|
-
* @param hostEl - The modal host element (ion-modal)
|
|
22950
|
-
* @param config - Safe-area configuration to apply
|
|
22951
|
-
*/
|
|
22952
|
-
const applySafeAreaOverrides = (hostEl, config) => {
|
|
22953
|
-
hostEl.style.setProperty('--ion-safe-area-top', config.top);
|
|
22954
|
-
hostEl.style.setProperty('--ion-safe-area-bottom', config.bottom);
|
|
22955
|
-
hostEl.style.setProperty('--ion-safe-area-left', config.left);
|
|
22956
|
-
hostEl.style.setProperty('--ion-safe-area-right', config.right);
|
|
22957
|
-
};
|
|
22958
|
-
/**
|
|
22959
|
-
* Clears safe-area CSS custom property overrides from the modal host element.
|
|
22960
|
-
*
|
|
22961
|
-
* @param hostEl - The modal host element (ion-modal)
|
|
22962
|
-
*/
|
|
22963
|
-
const clearSafeAreaOverrides = (hostEl) => {
|
|
22964
|
-
hostEl.style.removeProperty('--ion-safe-area-top');
|
|
22965
|
-
hostEl.style.removeProperty('--ion-safe-area-bottom');
|
|
22966
|
-
hostEl.style.removeProperty('--ion-safe-area-left');
|
|
22967
|
-
hostEl.style.removeProperty('--ion-safe-area-right');
|
|
22968
|
-
};
|
|
22969
|
-
|
|
22970
|
-
const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{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);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-modal-offset-top, 0px) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}";
|
|
22809
|
+
const modalIosCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{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);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}";
|
|
22971
22810
|
|
|
22972
|
-
const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{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);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-
|
|
22811
|
+
const modalMdCss = ":host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{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);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:\"\"}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}";
|
|
22973
22812
|
|
|
22974
22813
|
// TODO(FW-2832): types
|
|
22975
22814
|
/**
|
|
@@ -23192,31 +23031,13 @@ class Modal {
|
|
|
23192
23031
|
}
|
|
23193
23032
|
}
|
|
23194
23033
|
onWindowResize() {
|
|
23195
|
-
|
|
23034
|
+
// Only handle resize for iOS card modals when no custom animations are provided
|
|
23035
|
+
if (getIonMode$1(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
|
|
23196
23036
|
return;
|
|
23037
|
+
}
|
|
23197
23038
|
clearTimeout(this.resizeTimeout);
|
|
23198
23039
|
this.resizeTimeout = setTimeout(() => {
|
|
23199
|
-
|
|
23200
|
-
// iOS card modals: handle portrait/landscape view transitions
|
|
23201
|
-
if (context.isCardModal && !this.enterAnimation && !this.leaveAnimation) {
|
|
23202
|
-
this.handleViewTransition();
|
|
23203
|
-
}
|
|
23204
|
-
// Sheet modals: re-compute the internal offset property since safe-area
|
|
23205
|
-
// values may change on device rotation (e.g., portrait notch vs landscape).
|
|
23206
|
-
if (context.isSheetModal) {
|
|
23207
|
-
this.updateSheetOffsetTop();
|
|
23208
|
-
}
|
|
23209
|
-
// Regular (non-sheet, non-card) modals: update safe-area overrides
|
|
23210
|
-
// since the viewport may have crossed the centered-dialog breakpoint.
|
|
23211
|
-
if (!context.isSheetModal && !context.isCardModal) {
|
|
23212
|
-
this.updateSafeAreaOverrides();
|
|
23213
|
-
// Re-evaluate fullscreen safe-area padding: clear first, then re-apply
|
|
23214
|
-
if (this.wrapperEl) {
|
|
23215
|
-
this.wrapperEl.style.removeProperty('height');
|
|
23216
|
-
this.wrapperEl.style.removeProperty('padding-bottom');
|
|
23217
|
-
}
|
|
23218
|
-
this.applyFullscreenSafeArea();
|
|
23219
|
-
}
|
|
23040
|
+
this.handleViewTransition();
|
|
23220
23041
|
}, 50); // Debounce to avoid excessive calls during active resizing
|
|
23221
23042
|
}
|
|
23222
23043
|
breakpointsChanged(breakpoints) {
|
|
@@ -23233,9 +23054,6 @@ class Modal {
|
|
|
23233
23054
|
this.triggerController.removeClickListener();
|
|
23234
23055
|
this.cleanupViewTransitionListener();
|
|
23235
23056
|
this.cleanupParentRemovalObserver();
|
|
23236
|
-
// Also called in dismiss() — intentional dual cleanup covers both
|
|
23237
|
-
// dismiss-then-remove and direct DOM removal without dismiss.
|
|
23238
|
-
this.cleanupSafeAreaOverrides();
|
|
23239
23057
|
}
|
|
23240
23058
|
componentWillLoad() {
|
|
23241
23059
|
var _a;
|
|
@@ -23396,11 +23214,6 @@ class Modal {
|
|
|
23396
23214
|
await waitForMount();
|
|
23397
23215
|
}
|
|
23398
23216
|
writeTask(() => this.el.classList.add('show-modal'));
|
|
23399
|
-
// Recalculate isSheetModal before safe-area setup because framework
|
|
23400
|
-
// bindings (e.g., Angular) may not have been applied when componentWillLoad ran.
|
|
23401
|
-
this.isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
|
|
23402
|
-
// Set initial safe-area overrides before animation
|
|
23403
|
-
this.setInitialSafeAreaOverrides();
|
|
23404
23217
|
const hasCardModal = presentingElement !== undefined;
|
|
23405
23218
|
/**
|
|
23406
23219
|
* We need to change the status bar at the
|
|
@@ -23418,10 +23231,6 @@ class Modal {
|
|
|
23418
23231
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
23419
23232
|
expandToScroll: this.expandToScroll,
|
|
23420
23233
|
});
|
|
23421
|
-
// Update safe-area based on actual position after animation
|
|
23422
|
-
this.updateSafeAreaOverrides();
|
|
23423
|
-
// Apply fullscreen safe-area padding if needed
|
|
23424
|
-
this.applyFullscreenSafeArea();
|
|
23425
23234
|
/* tslint:disable-next-line */
|
|
23426
23235
|
if (typeof window !== 'undefined') {
|
|
23427
23236
|
/**
|
|
@@ -23453,7 +23262,13 @@ class Modal {
|
|
|
23453
23262
|
};
|
|
23454
23263
|
window.addEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
23455
23264
|
}
|
|
23456
|
-
|
|
23265
|
+
/**
|
|
23266
|
+
* Recalculate isSheetModal because framework bindings (e.g., Angular)
|
|
23267
|
+
* may not have been applied when componentWillLoad ran.
|
|
23268
|
+
*/
|
|
23269
|
+
const isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
|
|
23270
|
+
this.isSheetModal = isSheetModal;
|
|
23271
|
+
if (isSheetModal) {
|
|
23457
23272
|
this.initSheetGesture();
|
|
23458
23273
|
}
|
|
23459
23274
|
else if (hasCardModal) {
|
|
@@ -23643,9 +23458,6 @@ class Modal {
|
|
|
23643
23458
|
if (this.gestureAnimationDismissing && role !== GESTURE) {
|
|
23644
23459
|
return false;
|
|
23645
23460
|
}
|
|
23646
|
-
// Cancel any pending resize timeout to prevent stale updates during dismiss
|
|
23647
|
-
clearTimeout(this.resizeTimeout);
|
|
23648
|
-
this.resizeTimeout = undefined;
|
|
23649
23461
|
/**
|
|
23650
23462
|
* Because the canDismiss check below is async,
|
|
23651
23463
|
* we need to claim a lock before the check happens,
|
|
@@ -23700,7 +23512,6 @@ class Modal {
|
|
|
23700
23512
|
}
|
|
23701
23513
|
this.cleanupViewTransitionListener();
|
|
23702
23514
|
this.cleanupParentRemovalObserver();
|
|
23703
|
-
this.cleanupSafeAreaOverrides();
|
|
23704
23515
|
this.cleanupChildRoutePassthrough();
|
|
23705
23516
|
}
|
|
23706
23517
|
this.currentBreakpoint = undefined;
|
|
@@ -23821,9 +23632,6 @@ class Modal {
|
|
|
23821
23632
|
this.viewTransitionAnimation = transitionAnimation;
|
|
23822
23633
|
transitionAnimation.play().then(() => {
|
|
23823
23634
|
this.viewTransitionAnimation = undefined;
|
|
23824
|
-
// Wait for a layout pass after the transition so getBoundingClientRect()
|
|
23825
|
-
// in getPositionBasedSafeAreaConfig() reflects the new dimensions.
|
|
23826
|
-
raf(() => this.updateSafeAreaOverrides());
|
|
23827
23635
|
// After orientation transition, recreate the swipe-to-close gesture
|
|
23828
23636
|
// with updated animation that reflects the new presenting element state
|
|
23829
23637
|
this.reinitSwipeToClose();
|
|
@@ -23950,123 +23758,6 @@ class Modal {
|
|
|
23950
23758
|
(_a = this.parentRemovalObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
23951
23759
|
this.parentRemovalObserver = undefined;
|
|
23952
23760
|
}
|
|
23953
|
-
/**
|
|
23954
|
-
* Creates the context object for safe-area utilities.
|
|
23955
|
-
*/
|
|
23956
|
-
getSafeAreaContext() {
|
|
23957
|
-
return {
|
|
23958
|
-
isSheetModal: this.isSheetModal,
|
|
23959
|
-
isCardModal: this.presentingElement !== undefined && getIonMode$1(this) === 'ios',
|
|
23960
|
-
presentingElement: this.presentingElement,
|
|
23961
|
-
breakpoints: this.breakpoints,
|
|
23962
|
-
currentBreakpoint: this.currentBreakpoint,
|
|
23963
|
-
};
|
|
23964
|
-
}
|
|
23965
|
-
/**
|
|
23966
|
-
* Sets initial safe-area overrides before modal animation.
|
|
23967
|
-
* Called in present() before animation starts.
|
|
23968
|
-
*
|
|
23969
|
-
* For sheet modals, the SCSS --height formula uses --ion-modal-offset-top
|
|
23970
|
-
* (an internal property) instead of --ion-safe-area-top. We resolve the
|
|
23971
|
-
* root safe-area-top to pixels and set --ion-modal-offset-top, decoupling
|
|
23972
|
-
* the height calculation from --ion-safe-area-top (which is zeroed for
|
|
23973
|
-
* sheets to prevent header content from getting double-offset padding).
|
|
23974
|
-
*/
|
|
23975
|
-
setInitialSafeAreaOverrides() {
|
|
23976
|
-
const context = this.getSafeAreaContext();
|
|
23977
|
-
const safeAreaConfig = getInitialSafeAreaConfig(context);
|
|
23978
|
-
applySafeAreaOverrides(this.el, safeAreaConfig);
|
|
23979
|
-
// Set the internal offset property with the resolved root safe-area-top value
|
|
23980
|
-
if (context.isSheetModal) {
|
|
23981
|
-
this.updateSheetOffsetTop();
|
|
23982
|
-
}
|
|
23983
|
-
}
|
|
23984
|
-
/**
|
|
23985
|
-
* Resolves the current root --ion-safe-area-top value and sets the
|
|
23986
|
-
* internal --ion-modal-offset-top property on the host element.
|
|
23987
|
-
* Called on present and on resize (e.g., device rotation changes safe-area).
|
|
23988
|
-
*/
|
|
23989
|
-
updateSheetOffsetTop() {
|
|
23990
|
-
const safeAreaTop = getRootSafeAreaTop();
|
|
23991
|
-
this.el.style.setProperty('--ion-modal-offset-top', `${safeAreaTop}px`);
|
|
23992
|
-
}
|
|
23993
|
-
/**
|
|
23994
|
-
* Updates safe-area overrides during dynamic state changes.
|
|
23995
|
-
* Called after animations, during gestures, and on orientation changes.
|
|
23996
|
-
*/
|
|
23997
|
-
updateSafeAreaOverrides() {
|
|
23998
|
-
const { wrapperEl, el } = this;
|
|
23999
|
-
const context = this.getSafeAreaContext();
|
|
24000
|
-
// Sheet modals: safe-area is fully determined at presentation time
|
|
24001
|
-
// (top is always 0px, height is frozen). Nothing to update.
|
|
24002
|
-
if (context.isSheetModal)
|
|
24003
|
-
return;
|
|
24004
|
-
// Card modals have fixed safe-area requirements set by initial prediction.
|
|
24005
|
-
if (context.isCardModal)
|
|
24006
|
-
return;
|
|
24007
|
-
// wrapperEl is required for position-based detection below
|
|
24008
|
-
if (!wrapperEl)
|
|
24009
|
-
return;
|
|
24010
|
-
// Regular modals: use position-based detection to correctly handle both
|
|
24011
|
-
// fullscreen modals and centered dialogs with custom dimensions.
|
|
24012
|
-
const safeAreaConfig = getPositionBasedSafeAreaConfig(wrapperEl);
|
|
24013
|
-
applySafeAreaOverrides(el, safeAreaConfig);
|
|
24014
|
-
}
|
|
24015
|
-
/**
|
|
24016
|
-
* Applies padding-bottom to fullscreen modal wrapper to prevent
|
|
24017
|
-
* content from overlapping system navigation bar.
|
|
24018
|
-
*/
|
|
24019
|
-
applyFullscreenSafeArea() {
|
|
24020
|
-
const { wrapperEl, el } = this;
|
|
24021
|
-
if (!wrapperEl)
|
|
24022
|
-
return;
|
|
24023
|
-
const context = this.getSafeAreaContext();
|
|
24024
|
-
if (context.isSheetModal || context.isCardModal)
|
|
24025
|
-
return;
|
|
24026
|
-
// Check for standard Ionic layout children (ion-content, ion-footer),
|
|
24027
|
-
// searching one level deep for wrapped components (e.g.,
|
|
24028
|
-
// <app-footer><ion-footer>...</ion-footer></app-footer>).
|
|
24029
|
-
// Note: uses a manual loop instead of querySelector(':scope > ...') because
|
|
24030
|
-
// Stencil's mock-doc (used in spec tests) does not support :scope.
|
|
24031
|
-
let hasContent = false;
|
|
24032
|
-
let hasFooter = false;
|
|
24033
|
-
for (const child of Array.from(el.children)) {
|
|
24034
|
-
if (child.tagName === 'ION-CONTENT')
|
|
24035
|
-
hasContent = true;
|
|
24036
|
-
if (child.tagName === 'ION-FOOTER')
|
|
24037
|
-
hasFooter = true;
|
|
24038
|
-
for (const grandchild of Array.from(child.children)) {
|
|
24039
|
-
if (grandchild.tagName === 'ION-CONTENT')
|
|
24040
|
-
hasContent = true;
|
|
24041
|
-
if (grandchild.tagName === 'ION-FOOTER')
|
|
24042
|
-
hasFooter = true;
|
|
24043
|
-
}
|
|
24044
|
-
}
|
|
24045
|
-
// Only apply wrapper padding for standard Ionic layouts (has ion-content
|
|
24046
|
-
// but no ion-footer). Custom modals with raw HTML are fully
|
|
24047
|
-
// developer-controlled and should not be modified.
|
|
24048
|
-
if (!hasContent || hasFooter)
|
|
24049
|
-
return;
|
|
24050
|
-
// Reduce wrapper height by safe-area and add equivalent padding so the
|
|
24051
|
-
// total visual size stays the same but the flex content area shrinks.
|
|
24052
|
-
// Using height + padding instead of box-sizing: border-box avoids
|
|
24053
|
-
// breaking custom modals that set --border-width (border-box would
|
|
24054
|
-
// include the border inside the height, changing the layout).
|
|
24055
|
-
wrapperEl.style.setProperty('height', 'calc(var(--height) - var(--ion-safe-area-bottom, 0px))');
|
|
24056
|
-
wrapperEl.style.setProperty('padding-bottom', 'var(--ion-safe-area-bottom, 0px)');
|
|
24057
|
-
}
|
|
24058
|
-
/**
|
|
24059
|
-
* Clears all safe-area overrides and padding from wrapper.
|
|
24060
|
-
*/
|
|
24061
|
-
cleanupSafeAreaOverrides() {
|
|
24062
|
-
clearSafeAreaOverrides(this.el);
|
|
24063
|
-
// Remove internal sheet offset property
|
|
24064
|
-
this.el.style.removeProperty('--ion-modal-offset-top');
|
|
24065
|
-
if (this.wrapperEl) {
|
|
24066
|
-
this.wrapperEl.style.removeProperty('height');
|
|
24067
|
-
this.wrapperEl.style.removeProperty('padding-bottom');
|
|
24068
|
-
}
|
|
24069
|
-
}
|
|
24070
23761
|
render() {
|
|
24071
23762
|
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
24072
23763
|
const showHandle = handle !== false && isSheetModal;
|
|
@@ -24074,20 +23765,20 @@ class Modal {
|
|
|
24074
23765
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
24075
23766
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
24076
23767
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
24077
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
23768
|
+
return (hAsync(Host, Object.assign({ key: '978ba9cc81464b2d9b4caaf36285d5f7bf7e568d', "no-router": true,
|
|
24078
23769
|
// Allow the modal to be navigable when the handle is focusable
|
|
24079
23770
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
24080
23771
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
24081
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '
|
|
23772
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '9f95566d8e0c06bb9607f514484848c250f35f1f', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '91ff26d4f3ab4367f3a2940f51c6a5a3d4c972c3', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '064b2dba13854505a4eb1f5e54296ac79cb7a2bd',
|
|
24082
23773
|
/*
|
|
24083
23774
|
role and aria-modal must be used on the
|
|
24084
23775
|
same element. They must also be set inside the
|
|
24085
23776
|
shadow DOM otherwise ion-button will not be highlighted
|
|
24086
23777
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
24087
23778
|
*/
|
|
24088
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '
|
|
23779
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'b579b08b114022032d078a527111456ceefc7b35', class: "modal-handle",
|
|
24089
23780
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
24090
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: '
|
|
23781
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: 'dacea58475b72d9c0209934ff31f3be6b9ac8c85', onSlotchange: this.onSlotChange }))));
|
|
24091
23782
|
}
|
|
24092
23783
|
get el() { return getElement(this); }
|
|
24093
23784
|
static get watchers() { return {
|
|
@@ -25035,7 +24726,7 @@ class Nav {
|
|
|
25035
24726
|
}
|
|
25036
24727
|
}
|
|
25037
24728
|
render() {
|
|
25038
|
-
return hAsync("slot", { key: '
|
|
24729
|
+
return hAsync("slot", { key: 'a549286b51b1bb23c9ef51f71148452228d0ab14' });
|
|
25039
24730
|
}
|
|
25040
24731
|
get el() { return getElement(this); }
|
|
25041
24732
|
static get watchers() { return {
|
|
@@ -25108,7 +24799,7 @@ class NavLink {
|
|
|
25108
24799
|
};
|
|
25109
24800
|
}
|
|
25110
24801
|
render() {
|
|
25111
|
-
return hAsync(Host, { key: '
|
|
24802
|
+
return hAsync(Host, { key: 'd4d80feb51c0d92b0bedf6952c892f9df3002046', onClick: this.onClick });
|
|
25112
24803
|
}
|
|
25113
24804
|
get el() { return getElement(this); }
|
|
25114
24805
|
static get cmpMeta() { return {
|
|
@@ -25139,9 +24830,9 @@ class Note {
|
|
|
25139
24830
|
}
|
|
25140
24831
|
render() {
|
|
25141
24832
|
const mode = getIonMode$1(this);
|
|
25142
|
-
return (hAsync(Host, { key: '
|
|
24833
|
+
return (hAsync(Host, { key: 'b86a6acc9274df6528d224d4c11ab826a0f84dbc', class: createColorClasses$1(this.color, {
|
|
25143
24834
|
[mode]: true,
|
|
25144
|
-
}) }, hAsync("slot", { key: '
|
|
24835
|
+
}) }, hAsync("slot", { key: '5de76567ed7713827cd277a42db102faf34190c8' })));
|
|
25145
24836
|
}
|
|
25146
24837
|
static get style() { return {
|
|
25147
24838
|
ios: noteIosCss,
|
|
@@ -25901,11 +25592,11 @@ class Picker {
|
|
|
25901
25592
|
render() {
|
|
25902
25593
|
const { htmlAttributes } = this;
|
|
25903
25594
|
const mode = getIonMode$1(this);
|
|
25904
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
25595
|
+
return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
|
|
25905
25596
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
25906
25597
|
}, class: Object.assign({ [mode]: true,
|
|
25907
25598
|
// Used internally for styling
|
|
25908
|
-
[`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '
|
|
25599
|
+
[`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '97fb8e10ba08b197610cb8c0cdea61103883d55f', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: 'b3969cb6fbf7153623d14e3ca1493d3370efb211', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '299268483c3727e698d9135bfdf40349a7050ac1', class: "picker-wrapper ion-overlay-wrapper", role: "dialog" }, hAsync("div", { key: '95394de3ef691899b7dbf416f56fd3e86bbdce3f', class: "picker-toolbar" }, this.buttons.map((b) => (hAsync("div", { class: buttonWrapperClass(b) }, hAsync("button", { type: "button", onClick: () => this.buttonClick(b), class: buttonClass$1(b) }, b.text))))), hAsync("div", { key: '05f18bb8d00dc0e22f691b7e41f90f729a6c66d7', class: "picker-columns" }, hAsync("div", { key: '4a8fdf224effc0af67fd413e2e6aca8a78d1cf43', class: "picker-above-highlight" }), this.presented && this.columns.map((c) => hAsync("ion-picker-legacy-column", { col: c })), hAsync("div", { key: 'e50a31db45e3f39e9d0fed36a21be9257eec09bf', class: "picker-below-highlight" }))), hAsync("div", { key: '5a78cb2176ac807ea0c195c6b76cd0e8eef9d4c0', tabindex: "0", "aria-hidden": "true" })));
|
|
25909
25600
|
}
|
|
25910
25601
|
get el() { return getElement(this); }
|
|
25911
25602
|
static get watchers() { return {
|
|
@@ -26874,9 +26565,9 @@ class PickerColumnCmp {
|
|
|
26874
26565
|
render() {
|
|
26875
26566
|
const col = this.col;
|
|
26876
26567
|
const mode = getIonMode$1(this);
|
|
26877
|
-
return (hAsync(Host, { key: '
|
|
26568
|
+
return (hAsync(Host, { key: '86125e95f18837dfd021db01777d72a1562d8ee3', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
|
|
26878
26569
|
'max-width': this.col.columnWidth,
|
|
26879
|
-
} }, col.prefix && (hAsync("div", { key: '
|
|
26570
|
+
} }, col.prefix && (hAsync("div", { key: 'b0f3d39e0bd128781066ffefb7a1e40d12a9e76d', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '0b106ac4d56916eaaa7f09d1b68348b3754b7bba', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '00ff2f9dbb4561787e5a5223327c6a2a33f8362e', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
|
|
26880
26571
|
}
|
|
26881
26572
|
get el() { return getElement(this); }
|
|
26882
26573
|
static get watchers() { return {
|
|
@@ -26993,10 +26684,10 @@ class PickerColumnOption {
|
|
|
26993
26684
|
render() {
|
|
26994
26685
|
const { color, disabled, ariaLabel } = this;
|
|
26995
26686
|
const mode = getIonMode$1(this);
|
|
26996
|
-
return (hAsync(Host, { key: '
|
|
26687
|
+
return (hAsync(Host, { key: 'c45a1c14a351bf57d7113671164852349be5aa8a', class: createColorClasses$1(color, {
|
|
26997
26688
|
[mode]: true,
|
|
26998
26689
|
['option-disabled']: disabled,
|
|
26999
|
-
}) }, hAsync("div", { key: '
|
|
26690
|
+
}) }, hAsync("div", { key: '824930b658c6e3fb493ac4c6c2451d38c6bc4829', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: '019df4dcf46e629bdbebcd46ed3ab29669feab27' }))));
|
|
27000
26691
|
}
|
|
27001
26692
|
get el() { return getElement(this); }
|
|
27002
26693
|
static get watchers() { return {
|
|
@@ -27021,58 +26712,6 @@ class PickerColumnOption {
|
|
|
27021
26712
|
}; }
|
|
27022
26713
|
}
|
|
27023
26714
|
|
|
27024
|
-
/**
|
|
27025
|
-
* Shared per-frame cache for safe-area insets. Avoids creating a temporary
|
|
27026
|
-
* DOM element and forcing a synchronous reflow on every call within the same
|
|
27027
|
-
* frame (e.g., multiple popovers presenting simultaneously). Invalidated
|
|
27028
|
-
* after the next animation frame so values stay fresh across orientation
|
|
27029
|
-
* changes and viewport resizes.
|
|
27030
|
-
*/
|
|
27031
|
-
let cachedInsets = null;
|
|
27032
|
-
let cacheInvalidationScheduled = false;
|
|
27033
|
-
/**
|
|
27034
|
-
* Resolves the current --ion-safe-area-* CSS custom property values
|
|
27035
|
-
* to actual pixel numbers. A temporary element is needed because
|
|
27036
|
-
* getComputedStyle on :root returns the declared value of custom
|
|
27037
|
-
* properties (e.g. "env(safe-area-inset-top)") rather than a
|
|
27038
|
-
* resolved number. By assigning them to standard padding properties,
|
|
27039
|
-
* the browser resolves the value.
|
|
27040
|
-
*
|
|
27041
|
-
* Results are cached for the current frame to avoid repeated reflows.
|
|
27042
|
-
*/
|
|
27043
|
-
const getSafeAreaInsets = (doc) => {
|
|
27044
|
-
if (cachedInsets !== null) {
|
|
27045
|
-
return cachedInsets;
|
|
27046
|
-
}
|
|
27047
|
-
if (doc.body === null) {
|
|
27048
|
-
return { top: 0, bottom: 0, left: 0, right: 0 };
|
|
27049
|
-
}
|
|
27050
|
-
const el = doc.createElement('div');
|
|
27051
|
-
el.style.cssText =
|
|
27052
|
-
'position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;' +
|
|
27053
|
-
'padding-top:var(--ion-safe-area-top,0px);' +
|
|
27054
|
-
'padding-bottom:var(--ion-safe-area-bottom,0px);' +
|
|
27055
|
-
'padding-left:var(--ion-safe-area-left,0px);' +
|
|
27056
|
-
'padding-right:var(--ion-safe-area-right,0px);';
|
|
27057
|
-
doc.body.appendChild(el);
|
|
27058
|
-
const style = getComputedStyle(el);
|
|
27059
|
-
const insets = {
|
|
27060
|
-
top: parseFloat(style.paddingTop) || 0,
|
|
27061
|
-
bottom: parseFloat(style.paddingBottom) || 0,
|
|
27062
|
-
left: parseFloat(style.paddingLeft) || 0,
|
|
27063
|
-
right: parseFloat(style.paddingRight) || 0,
|
|
27064
|
-
};
|
|
27065
|
-
el.remove();
|
|
27066
|
-
cachedInsets = insets;
|
|
27067
|
-
if (!cacheInvalidationScheduled) {
|
|
27068
|
-
cacheInvalidationScheduled = true;
|
|
27069
|
-
raf(() => {
|
|
27070
|
-
cachedInsets = null;
|
|
27071
|
-
cacheInvalidationScheduled = false;
|
|
27072
|
-
});
|
|
27073
|
-
}
|
|
27074
|
-
return insets;
|
|
27075
|
-
};
|
|
27076
26715
|
/**
|
|
27077
26716
|
* Returns the dimensions of the popover
|
|
27078
26717
|
* arrow on `ios` mode. If arrow is disabled
|
|
@@ -27708,10 +27347,8 @@ const calculatePopoverCenterAlign = (side, triggerBoundingBox, contentWidth, con
|
|
|
27708
27347
|
* Adjusts popover positioning coordinates
|
|
27709
27348
|
* such that popover does not appear offscreen
|
|
27710
27349
|
* or overlapping safe area bounds.
|
|
27711
|
-
*
|
|
27712
|
-
* @internal - This is not part of the public API.
|
|
27713
27350
|
*/
|
|
27714
|
-
const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyWidth, bodyHeight, contentWidth, contentHeight,
|
|
27351
|
+
const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyWidth, bodyHeight, contentWidth, contentHeight, safeAreaMargin, contentOriginX, contentOriginY, triggerCoordinates, coordArrowTop = 0, coordArrowLeft = 0, arrowHeight = 0) => {
|
|
27715
27352
|
let arrowTop = coordArrowTop;
|
|
27716
27353
|
const arrowLeft = coordArrowLeft;
|
|
27717
27354
|
let left = coordLeft;
|
|
@@ -27721,19 +27358,16 @@ const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyW
|
|
|
27721
27358
|
let originY = contentOriginY;
|
|
27722
27359
|
let checkSafeAreaLeft = false;
|
|
27723
27360
|
let checkSafeAreaRight = false;
|
|
27724
|
-
let checkSafeAreaTop = false;
|
|
27725
|
-
let checkSafeAreaBottom = false;
|
|
27726
27361
|
const triggerTop = triggerCoordinates
|
|
27727
27362
|
? triggerCoordinates.top + triggerCoordinates.height
|
|
27728
27363
|
: bodyHeight / 2 - contentHeight / 2;
|
|
27729
27364
|
const triggerHeight = triggerCoordinates ? triggerCoordinates.height : 0;
|
|
27730
27365
|
let addPopoverBottomClass = false;
|
|
27731
|
-
const hideArrow = false;
|
|
27732
27366
|
/**
|
|
27733
27367
|
* Adjust popover so it does not
|
|
27734
27368
|
* go off the left of the screen.
|
|
27735
27369
|
*/
|
|
27736
|
-
if (left < bodyPadding +
|
|
27370
|
+
if (left < bodyPadding + safeAreaMargin) {
|
|
27737
27371
|
left = bodyPadding;
|
|
27738
27372
|
checkSafeAreaLeft = true;
|
|
27739
27373
|
originX = 'left';
|
|
@@ -27742,58 +27376,41 @@ const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyW
|
|
|
27742
27376
|
* go off the right of the screen.
|
|
27743
27377
|
*/
|
|
27744
27378
|
}
|
|
27745
|
-
else if (contentWidth + bodyPadding + left +
|
|
27379
|
+
else if (contentWidth + bodyPadding + left + safeAreaMargin > bodyWidth) {
|
|
27746
27380
|
checkSafeAreaRight = true;
|
|
27747
27381
|
left = bodyWidth - contentWidth - bodyPadding;
|
|
27748
27382
|
originX = 'right';
|
|
27749
27383
|
}
|
|
27750
27384
|
/**
|
|
27751
27385
|
* Adjust popover so it does not
|
|
27752
|
-
* go off the
|
|
27753
|
-
* or overlap the bottom safe area.
|
|
27386
|
+
* go off the top of the screen.
|
|
27754
27387
|
* If popover is on the left or the right of
|
|
27755
27388
|
* the trigger, then we should not adjust top
|
|
27756
27389
|
* margins.
|
|
27757
27390
|
*/
|
|
27758
|
-
if (triggerTop + triggerHeight + contentHeight > bodyHeight
|
|
27759
|
-
(
|
|
27760
|
-
/**
|
|
27761
|
-
* Calculate where the popover top would be if flipped
|
|
27762
|
-
* above the trigger. Check whether that position clears
|
|
27763
|
-
* the top safe area with room for bodyPadding.
|
|
27764
|
-
*/
|
|
27765
|
-
const idealFlipTop = triggerTop - contentHeight - triggerHeight - (arrowHeight - 1);
|
|
27766
|
-
if (idealFlipTop >= safeArea.top + bodyPadding) {
|
|
27391
|
+
if (triggerTop + triggerHeight + contentHeight > bodyHeight && (side === 'top' || side === 'bottom')) {
|
|
27392
|
+
if (triggerTop - contentHeight > 0) {
|
|
27767
27393
|
/**
|
|
27768
|
-
*
|
|
27769
|
-
*
|
|
27770
|
-
*
|
|
27394
|
+
* While we strive to align the popover with the trigger
|
|
27395
|
+
* on smaller screens this is not always possible. As a result,
|
|
27396
|
+
* we adjust the popover up so that it does not hang
|
|
27397
|
+
* off the bottom of the screen. However, we do not want to move
|
|
27398
|
+
* the popover up so much that it goes off the top of the screen.
|
|
27399
|
+
*
|
|
27400
|
+
* We chose 12 here so that the popover position looks a bit nicer as
|
|
27401
|
+
* it is not right up against the edge of the screen.
|
|
27771
27402
|
*/
|
|
27772
|
-
top =
|
|
27403
|
+
top = Math.max(12, triggerTop - contentHeight - triggerHeight - (arrowHeight - 1));
|
|
27773
27404
|
arrowTop = top + contentHeight;
|
|
27774
27405
|
originY = 'bottom';
|
|
27775
27406
|
addPopoverBottomClass = true;
|
|
27776
|
-
}
|
|
27777
|
-
else {
|
|
27778
27407
|
/**
|
|
27779
|
-
*
|
|
27780
|
-
*
|
|
27781
|
-
* creates a scrollable area anchored to the trigger.
|
|
27408
|
+
* If not enough room for popover to appear
|
|
27409
|
+
* above trigger, then cut it off.
|
|
27782
27410
|
*/
|
|
27411
|
+
}
|
|
27412
|
+
else {
|
|
27783
27413
|
bottom = bodyPadding;
|
|
27784
|
-
checkSafeAreaBottom = true;
|
|
27785
|
-
/**
|
|
27786
|
-
* When the trigger is near the bottom of the screen,
|
|
27787
|
-
* the calculated top may be at or past the bottom
|
|
27788
|
-
* constraint, leaving zero visible height. In that
|
|
27789
|
-
* case, pull top up to the top safe area so the
|
|
27790
|
-
* popover fills the available space between safe areas.
|
|
27791
|
-
*/
|
|
27792
|
-
const bottomEdge = bodyHeight - safeArea.bottom - bodyPadding;
|
|
27793
|
-
if (top >= bottomEdge) {
|
|
27794
|
-
top = safeArea.top + bodyPadding;
|
|
27795
|
-
checkSafeAreaTop = true;
|
|
27796
|
-
}
|
|
27797
27414
|
}
|
|
27798
27415
|
}
|
|
27799
27416
|
return {
|
|
@@ -27804,12 +27421,9 @@ const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyW
|
|
|
27804
27421
|
originY,
|
|
27805
27422
|
checkSafeAreaLeft,
|
|
27806
27423
|
checkSafeAreaRight,
|
|
27807
|
-
checkSafeAreaTop,
|
|
27808
|
-
checkSafeAreaBottom,
|
|
27809
27424
|
arrowTop,
|
|
27810
27425
|
arrowLeft,
|
|
27811
27426
|
addPopoverBottomClass,
|
|
27812
|
-
hideArrow,
|
|
27813
27427
|
};
|
|
27814
27428
|
};
|
|
27815
27429
|
const shouldShowArrow = (side, didAdjustBounds = false, ev, trigger) => {
|
|
@@ -27839,15 +27453,6 @@ const shouldShowArrow = (side, didAdjustBounds = false, ev, trigger) => {
|
|
|
27839
27453
|
};
|
|
27840
27454
|
|
|
27841
27455
|
const POPOVER_IOS_BODY_PADDING = 5;
|
|
27842
|
-
/**
|
|
27843
|
-
* Minimum edge margin for iOS popovers ensures visual spacing from screen
|
|
27844
|
-
* edges on devices without safe areas (e.g., older iPhones without notches).
|
|
27845
|
-
* Previously this was a hardcoded `safeAreaMargin = 25` that served dual
|
|
27846
|
-
* purpose: safe-area avoidance AND visual spacing. Now that actual safe-area
|
|
27847
|
-
* insets are read dynamically, this floor preserves the visual spacing when
|
|
27848
|
-
* safe-area values are 0.
|
|
27849
|
-
*/
|
|
27850
|
-
const POPOVER_IOS_MIN_EDGE_MARGIN = 25;
|
|
27851
27456
|
/**
|
|
27852
27457
|
* iOS Popover Enter Animation
|
|
27853
27458
|
*/
|
|
@@ -27873,16 +27478,8 @@ const iosEnterAnimation$1 = (baseEl, opts) => {
|
|
|
27873
27478
|
};
|
|
27874
27479
|
const results = getPopoverPosition(isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, trigger, ev);
|
|
27875
27480
|
const padding = size === 'cover' ? 0 : POPOVER_IOS_BODY_PADDING;
|
|
27876
|
-
const
|
|
27877
|
-
const
|
|
27878
|
-
? { top: 0, bottom: 0, left: 0, right: 0 }
|
|
27879
|
-
: {
|
|
27880
|
-
top: Math.max(rawSafeArea.top, POPOVER_IOS_MIN_EDGE_MARGIN),
|
|
27881
|
-
bottom: Math.max(rawSafeArea.bottom, POPOVER_IOS_MIN_EDGE_MARGIN),
|
|
27882
|
-
left: Math.max(rawSafeArea.left, POPOVER_IOS_MIN_EDGE_MARGIN),
|
|
27883
|
-
right: Math.max(rawSafeArea.right, POPOVER_IOS_MIN_EDGE_MARGIN),
|
|
27884
|
-
};
|
|
27885
|
-
const { originX, originY, top, left, bottom, checkSafeAreaLeft, checkSafeAreaRight, checkSafeAreaTop, checkSafeAreaBottom, arrowTop, arrowLeft, addPopoverBottomClass} = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, safeArea, results.originX, results.originY, results.referenceCoordinates, results.arrowTop, results.arrowLeft, arrowHeight);
|
|
27481
|
+
const margin = size === 'cover' ? 0 : 25;
|
|
27482
|
+
const { originX, originY, top, left, bottom, checkSafeAreaLeft, checkSafeAreaRight, arrowTop, arrowLeft, addPopoverBottomClass, } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, margin, results.originX, results.originY, results.referenceCoordinates, results.arrowTop, results.arrowLeft, arrowHeight);
|
|
27886
27483
|
const baseAnimation = createAnimation();
|
|
27887
27484
|
const backdropAnimation = createAnimation();
|
|
27888
27485
|
const contentAnimation = createAnimation();
|
|
@@ -27913,14 +27510,10 @@ const iosEnterAnimation$1 = (baseEl, opts) => {
|
|
|
27913
27510
|
baseEl.classList.add('popover-bottom');
|
|
27914
27511
|
}
|
|
27915
27512
|
if (bottom !== undefined) {
|
|
27916
|
-
|
|
27917
|
-
if (checkSafeAreaBottom) {
|
|
27918
|
-
bottomValue = `${bottom}px + var(--ion-safe-area-bottom, 0px)`;
|
|
27919
|
-
}
|
|
27920
|
-
contentEl.style.setProperty('bottom', `calc(${bottomValue})`);
|
|
27513
|
+
contentEl.style.setProperty('bottom', `${bottom}px`);
|
|
27921
27514
|
}
|
|
27922
|
-
const safeAreaLeft = ' + var(--ion-safe-area-left,
|
|
27923
|
-
const safeAreaRight = ' - var(--ion-safe-area-right,
|
|
27515
|
+
const safeAreaLeft = ' + var(--ion-safe-area-left, 0)';
|
|
27516
|
+
const safeAreaRight = ' - var(--ion-safe-area-right, 0)';
|
|
27924
27517
|
let leftValue = `${left}px`;
|
|
27925
27518
|
if (checkSafeAreaLeft) {
|
|
27926
27519
|
leftValue = `${left}px${safeAreaLeft}`;
|
|
@@ -27928,11 +27521,7 @@ const iosEnterAnimation$1 = (baseEl, opts) => {
|
|
|
27928
27521
|
if (checkSafeAreaRight) {
|
|
27929
27522
|
leftValue = `${left}px${safeAreaRight}`;
|
|
27930
27523
|
}
|
|
27931
|
-
|
|
27932
|
-
if (checkSafeAreaTop) {
|
|
27933
|
-
topValue = `${top}px + var(--ion-safe-area-top, 0px)`;
|
|
27934
|
-
}
|
|
27935
|
-
contentEl.style.setProperty('top', `calc(${topValue} + var(--offset-y, 0))`);
|
|
27524
|
+
contentEl.style.setProperty('top', `calc(${top}px + var(--offset-y, 0))`);
|
|
27936
27525
|
contentEl.style.setProperty('left', `calc(${leftValue} + var(--offset-x, 0))`);
|
|
27937
27526
|
contentEl.style.setProperty('transform-origin', `${originY} ${originX}`);
|
|
27938
27527
|
if (arrowEl !== null) {
|
|
@@ -28008,23 +27597,7 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
|
|
|
28008
27597
|
};
|
|
28009
27598
|
const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev);
|
|
28010
27599
|
const padding = size === 'cover' ? 0 : POPOVER_MD_BODY_PADDING;
|
|
28011
|
-
|
|
28012
|
-
// This is needed for Android edge-to-edge (API 36+) where system bars overlap content.
|
|
28013
|
-
const safeArea = size === 'cover' ? { top: 0, bottom: 0, left: 0, right: 0 } : getSafeAreaInsets(doc);
|
|
28014
|
-
const { originX, originY, top, left, bottom, checkSafeAreaLeft, checkSafeAreaRight, checkSafeAreaTop, checkSafeAreaBottom, addPopoverBottomClass, } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, safeArea, results.originX, results.originY, results.referenceCoordinates);
|
|
28015
|
-
const safeAreaLeftCalc = ' + var(--ion-safe-area-left, 0px)';
|
|
28016
|
-
const safeAreaRightCalc = ' - var(--ion-safe-area-right, 0px)';
|
|
28017
|
-
let leftValue = `${left}px`;
|
|
28018
|
-
if (checkSafeAreaLeft) {
|
|
28019
|
-
leftValue = `${left}px${safeAreaLeftCalc}`;
|
|
28020
|
-
}
|
|
28021
|
-
if (checkSafeAreaRight) {
|
|
28022
|
-
leftValue = `${left}px${safeAreaRightCalc}`;
|
|
28023
|
-
}
|
|
28024
|
-
let topValue = `${top}px`;
|
|
28025
|
-
if (checkSafeAreaTop) {
|
|
28026
|
-
topValue = `${top}px + var(--ion-safe-area-top, 0px)`;
|
|
28027
|
-
}
|
|
27600
|
+
const { originX, originY, top, left, bottom } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, 0, results.originX, results.originY, results.referenceCoordinates);
|
|
28028
27601
|
const baseAnimation = createAnimation();
|
|
28029
27602
|
const backdropAnimation = createAnimation();
|
|
28030
27603
|
const wrapperAnimation = createAnimation();
|
|
@@ -28041,17 +27614,13 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
|
|
|
28041
27614
|
contentAnimation
|
|
28042
27615
|
.addElement(contentEl)
|
|
28043
27616
|
.beforeStyles({
|
|
28044
|
-
top: `calc(${
|
|
28045
|
-
left: `calc(${
|
|
27617
|
+
top: `calc(${top}px + var(--offset-y, 0px))`,
|
|
27618
|
+
left: `calc(${left}px + var(--offset-x, 0px))`,
|
|
28046
27619
|
'transform-origin': `${originY} ${originX}`,
|
|
28047
27620
|
})
|
|
28048
27621
|
.beforeAddWrite(() => {
|
|
28049
27622
|
if (bottom !== undefined) {
|
|
28050
|
-
|
|
28051
|
-
if (checkSafeAreaBottom) {
|
|
28052
|
-
bottomValue = `${bottom}px + var(--ion-safe-area-bottom, 0px)`;
|
|
28053
|
-
}
|
|
28054
|
-
contentEl.style.setProperty('bottom', `calc(${bottomValue})`);
|
|
27623
|
+
contentEl.style.setProperty('bottom', `${bottom}px`);
|
|
28055
27624
|
}
|
|
28056
27625
|
})
|
|
28057
27626
|
.fromTo('transform', 'scale(0.8)', 'scale(1)');
|
|
@@ -28063,7 +27632,7 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
|
|
|
28063
27632
|
if (size === 'cover') {
|
|
28064
27633
|
baseEl.style.setProperty('--width', `${contentWidth}px`);
|
|
28065
27634
|
}
|
|
28066
|
-
if (
|
|
27635
|
+
if (originY === 'bottom') {
|
|
28067
27636
|
baseEl.classList.add('popover-bottom');
|
|
28068
27637
|
}
|
|
28069
27638
|
})
|
|
@@ -28559,9 +28128,9 @@ class Popover {
|
|
|
28559
28128
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
28560
28129
|
const desktop = isPlatform('desktop');
|
|
28561
28130
|
const enableArrow = arrow && !parentPopover;
|
|
28562
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
28131
|
+
return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
28563
28132
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
28564
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: '
|
|
28133
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && hAsync("ion-backdrop", { key: 'aac4e68b08197534375e8ea3f8c9ea0c10ab2af4', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'b7f4ebf57d4148b32856b0075d286f454be8de5d', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '607d94c28d73e8e957175a7c0f6e8a99ec4dcd53', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '4366a5a5de550c09895e923f345583508e1ec30c', class: "popover-content", part: "content" }, hAsync("slot", { key: 'eb7886fbc99c15b667b7d825d24f1c12d9380f03' })))));
|
|
28565
28134
|
}
|
|
28566
28135
|
get el() { return getElement(this); }
|
|
28567
28136
|
static get watchers() { return {
|
|
@@ -28666,7 +28235,7 @@ class ProgressBar {
|
|
|
28666
28235
|
const mode = getIonMode$1(this);
|
|
28667
28236
|
// If the progress is displayed as a solid bar.
|
|
28668
28237
|
const progressSolid = buffer === 1;
|
|
28669
|
-
return (hAsync(Host, { key: '
|
|
28238
|
+
return (hAsync(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
|
|
28670
28239
|
[mode]: true,
|
|
28671
28240
|
[`progress-bar-${type}`]: true,
|
|
28672
28241
|
'progress-paused': paused,
|
|
@@ -28851,7 +28420,7 @@ class Radio {
|
|
|
28851
28420
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
28852
28421
|
const mode = getIonMode$1(this);
|
|
28853
28422
|
const inItem = hostContext('ion-item', el);
|
|
28854
|
-
return (hAsync(Host, { key: '
|
|
28423
|
+
return (hAsync(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
|
|
28855
28424
|
[mode]: true,
|
|
28856
28425
|
'in-item': inItem,
|
|
28857
28426
|
'radio-checked': checked,
|
|
@@ -28862,10 +28431,10 @@ class Radio {
|
|
|
28862
28431
|
// Focus and active styling should not apply when the radio is in an item
|
|
28863
28432
|
'ion-activatable': !inItem,
|
|
28864
28433
|
'ion-focusable': !inItem,
|
|
28865
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '
|
|
28434
|
+
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '1312aba3259a87fe23a6911cdfa477e309469c8b', class: "radio-wrapper" }, hAsync("div", { key: 'b342aa27e240a300836d2a135658d346b95daf09', class: {
|
|
28866
28435
|
'label-text-wrapper': true,
|
|
28867
28436
|
'label-text-wrapper-hidden': !hasLabel,
|
|
28868
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
28437
|
+
}, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
28869
28438
|
}
|
|
28870
28439
|
get el() { return getElement(this); }
|
|
28871
28440
|
static get watchers() { return {
|
|
@@ -29104,7 +28673,7 @@ class RadioGroup {
|
|
|
29104
28673
|
const { label, labelId, el, name, value } = this;
|
|
29105
28674
|
const mode = getIonMode$1(this);
|
|
29106
28675
|
renderHiddenInput(true, el, name, value, false);
|
|
29107
|
-
return (hAsync(Host, { key: 'db593b3ed511e9395e3c7bfd91b787328692cd6d', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), hAsync("
|
|
28676
|
+
return (hAsync(Host, { key: 'db593b3ed511e9395e3c7bfd91b787328692cd6d', role: "radiogroup", "aria-labelledby": label ? labelId : null, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, class: mode }, this.renderHintText(), hAsync("slot", { key: 'd683b01c1ba34fe843c4b320bce4661a117472a5' })));
|
|
29108
28677
|
}
|
|
29109
28678
|
get el() { return getElement(this); }
|
|
29110
28679
|
static get watchers() { return {
|
|
@@ -29864,7 +29433,7 @@ class Range {
|
|
|
29864
29433
|
const needsEndAdjustment = inItem && !hasEndContent;
|
|
29865
29434
|
const mode = getIonMode$1(this);
|
|
29866
29435
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
29867
|
-
return (hAsync(Host, { key: '
|
|
29436
|
+
return (hAsync(Host, { key: 'affcac4709096a48a5b4c1864b209b6352f6b078', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
|
|
29868
29437
|
[mode]: true,
|
|
29869
29438
|
'in-item': inItem,
|
|
29870
29439
|
'range-disabled': disabled,
|
|
@@ -29873,10 +29442,10 @@ class Range {
|
|
|
29873
29442
|
[`range-label-placement-${labelPlacement}`]: true,
|
|
29874
29443
|
'range-item-start-adjustment': needsStartAdjustment,
|
|
29875
29444
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
29876
|
-
}) }, hAsync("label", { key: '
|
|
29445
|
+
}) }, hAsync("label", { key: 'c7cf95fa831d10b17c137995d0a9e0cf84006a76', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '5b8479c7939ae0f94a042c3aafd64316e4577d30', class: {
|
|
29877
29446
|
'label-text-wrapper': true,
|
|
29878
29447
|
'label-text-wrapper-hidden': !hasLabel,
|
|
29879
|
-
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '
|
|
29448
|
+
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '3c275d822b29a8008e044722e8b6bdabd3ecfad7', class: "native-wrapper" }, hAsync("slot", { key: '03c849d0aa708914984ad57ca292bc5fc66ecad5', name: "start" }), this.renderRangeSlider(), hAsync("slot", { key: '10ca7b8152cac00b45d8fa98ad91410f59fd176a', name: "end" })))));
|
|
29880
29449
|
}
|
|
29881
29450
|
get el() { return getElement(this); }
|
|
29882
29451
|
static get watchers() { return {
|
|
@@ -30843,7 +30412,7 @@ class Refresher {
|
|
|
30843
30412
|
}
|
|
30844
30413
|
render() {
|
|
30845
30414
|
const mode = getIonMode$1(this);
|
|
30846
|
-
return (hAsync(Host, { key: '
|
|
30415
|
+
return (hAsync(Host, { key: '06d61cc53260ce146dd6906cc96597e9baaa17cf', slot: "fixed", class: {
|
|
30847
30416
|
[mode]: true,
|
|
30848
30417
|
// Used internally for styling
|
|
30849
30418
|
[`refresher-${mode}`]: true,
|
|
@@ -31067,7 +30636,7 @@ class RefresherContent {
|
|
|
31067
30636
|
const pullingIcon = this.pullingIcon;
|
|
31068
30637
|
const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
|
|
31069
30638
|
const mode = getIonMode$1(this);
|
|
31070
|
-
return (hAsync(Host, { key: '
|
|
30639
|
+
return (hAsync(Host, { key: '4add42b9fdfded359d1b054d04c2c6ff48e028c8', class: mode }, hAsync("div", { key: '45d4e4e0adfed7f96dd1849767aa2cde947de044', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (hAsync("div", { key: '6bd6c8ef5bf6e10699eec3bd8646431bfe1077a0', class: "refresher-pulling-icon" }, hAsync("div", { key: '852d20414da53352c8e58bc627e0fda38eff97cb', class: "spinner-arrow-container" }, hAsync("ion-spinner", { key: '0dde3578a80cc4b77a07c4d1db1af80c7eb10c27', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (hAsync("div", { key: 'c71dbfcf416a19c30fed38f722ebf0358c2181dd', class: "arrow-container" }, hAsync("ion-icon", { key: 'fa7c2cf624e7a9c41964e66cabc88c594da6d1fd', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (hAsync("div", { key: '3dd68c9968b421c379d1c4349ba619ee0a189c6d', class: "refresher-pulling-icon" }, hAsync("ion-icon", { key: 'f83bceceae4fa8245f91939fb6db589a595e975b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), hAsync("div", { key: '98e22ceb0f7883e871f815f6199f5cb313e2e086', class: "refresher-refreshing" }, this.refreshingSpinner && (hAsync("div", { key: 'faabe8a9b61c02a00994ef978bb82b9ba4537214', class: "refresher-refreshing-icon" }, hAsync("ion-spinner", { key: '029a0c073ee1a07f01211e12ba2abc985cf21ed7', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
|
|
31071
30640
|
}
|
|
31072
30641
|
get el() { return getElement(this); }
|
|
31073
30642
|
static get cmpMeta() { return {
|
|
@@ -31108,7 +30677,7 @@ class Reorder {
|
|
|
31108
30677
|
render() {
|
|
31109
30678
|
const mode = getIonMode$1(this);
|
|
31110
30679
|
const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
|
|
31111
|
-
return (hAsync(Host, { key: '
|
|
30680
|
+
return (hAsync(Host, { key: 'b869db61ca6393cf1476f2111a66b387b567c6d1', class: mode }, hAsync("slot", { key: 'a78edd1776835282b8b5c841377018f36c83296c' }, hAsync("ion-icon", { key: '7fb067c47bbb9a7258e5063f028282cc097d0f94', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
|
|
31112
30681
|
}
|
|
31113
30682
|
get el() { return getElement(this); }
|
|
31114
30683
|
static get style() { return {
|
|
@@ -31379,7 +30948,7 @@ class ReorderGroup {
|
|
|
31379
30948
|
}
|
|
31380
30949
|
render() {
|
|
31381
30950
|
const mode = getIonMode$1(this);
|
|
31382
|
-
return (hAsync(Host, { key: '
|
|
30951
|
+
return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
|
|
31383
30952
|
[mode]: true,
|
|
31384
30953
|
'reorder-enabled': !this.disabled,
|
|
31385
30954
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -31495,7 +31064,7 @@ class RippleEffect {
|
|
|
31495
31064
|
}
|
|
31496
31065
|
render() {
|
|
31497
31066
|
const mode = getIonMode$1(this);
|
|
31498
|
-
return (hAsync(Host, { key: '
|
|
31067
|
+
return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
|
|
31499
31068
|
[mode]: true,
|
|
31500
31069
|
unbounded: this.unbounded,
|
|
31501
31070
|
} }));
|
|
@@ -32454,10 +32023,10 @@ class RouterLink {
|
|
|
32454
32023
|
rel: this.rel,
|
|
32455
32024
|
target: this.target,
|
|
32456
32025
|
};
|
|
32457
|
-
return (hAsync(Host, { key: '
|
|
32026
|
+
return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
32458
32027
|
[mode]: true,
|
|
32459
32028
|
'ion-activatable': true,
|
|
32460
|
-
}) }, hAsync("a", Object.assign({ key: '
|
|
32029
|
+
}) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
|
|
32461
32030
|
}
|
|
32462
32031
|
static get style() { return routerLinkCss; }
|
|
32463
32032
|
static get cmpMeta() { return {
|
|
@@ -32654,7 +32223,7 @@ class RouterOutlet {
|
|
|
32654
32223
|
return true;
|
|
32655
32224
|
}
|
|
32656
32225
|
render() {
|
|
32657
|
-
return hAsync("slot", { key: '
|
|
32226
|
+
return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
|
|
32658
32227
|
}
|
|
32659
32228
|
get el() { return getElement(this); }
|
|
32660
32229
|
static get watchers() { return {
|
|
@@ -32687,7 +32256,7 @@ class Row {
|
|
|
32687
32256
|
registerInstance(this, hostRef);
|
|
32688
32257
|
}
|
|
32689
32258
|
render() {
|
|
32690
|
-
return (hAsync(Host, { key: '
|
|
32259
|
+
return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
|
|
32691
32260
|
}
|
|
32692
32261
|
static get style() { return rowCss; }
|
|
32693
32262
|
static get cmpMeta() { return {
|
|
@@ -33128,8 +32697,8 @@ class Searchbar {
|
|
|
33128
32697
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
33129
32698
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
33130
32699
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
33131
|
-
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '
|
|
33132
|
-
return (hAsync(Host, { key: '
|
|
32700
|
+
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: 'bf574336a561a5bf66c771fb606a9b19adbecb68', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '747ad4368bda5044198259d5bc8f7be9e472e5af', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
32701
|
+
return (hAsync(Host, { key: 'bcc5b33a2859903ba11bfc5c611c6a2aaa71d06b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
|
|
33133
32702
|
[mode]: true,
|
|
33134
32703
|
'searchbar-animated': animated,
|
|
33135
32704
|
'searchbar-disabled': this.disabled,
|
|
@@ -33139,14 +32708,14 @@ class Searchbar {
|
|
|
33139
32708
|
'searchbar-has-focus': this.focused,
|
|
33140
32709
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
33141
32710
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
33142
|
-
}) }, hAsync("div", { key: '
|
|
32711
|
+
}) }, hAsync("div", { key: 'ac0dbf5ddd9c4eb6d714f45c62c44ba3d0bf034d', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '4b9fdac1b0d5a7a68bf61a6beb00f166434d3e84', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: '32a889c48b3960560a3873061b4ac5a8a5ce532f', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: '71222df691ef0b95008e619f755224d069ee9388', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
33143
32712
|
/**
|
|
33144
32713
|
* This prevents mobile browsers from
|
|
33145
32714
|
* blurring the input when the clear
|
|
33146
32715
|
* button is activated.
|
|
33147
32716
|
*/
|
|
33148
32717
|
ev.preventDefault();
|
|
33149
|
-
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '
|
|
32718
|
+
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'f1c8c0bd8fbb655085875731d3ece387dbe2967e', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
33150
32719
|
}
|
|
33151
32720
|
get el() { return getElement(this); }
|
|
33152
32721
|
static get watchers() { return {
|
|
@@ -33741,14 +33310,14 @@ class Segment {
|
|
|
33741
33310
|
}
|
|
33742
33311
|
render() {
|
|
33743
33312
|
const mode = getIonMode$1(this);
|
|
33744
|
-
return (hAsync(Host, { key: '
|
|
33313
|
+
return (hAsync(Host, { key: '725cc37b25c539fa5e3ae8d90530ae33ededc3de', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
33745
33314
|
[mode]: true,
|
|
33746
33315
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
33747
33316
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
33748
33317
|
'segment-activated': this.activated,
|
|
33749
33318
|
'segment-disabled': this.disabled,
|
|
33750
33319
|
'segment-scrollable': this.scrollable,
|
|
33751
|
-
}) }, hAsync("slot", { key: '
|
|
33320
|
+
}) }, hAsync("slot", { key: 'c51cf7ea50325866a9367d214e12bc3754870335', onSlotchange: this.onSlottedItemsChange })));
|
|
33752
33321
|
}
|
|
33753
33322
|
get el() { return getElement(this); }
|
|
33754
33323
|
static get watchers() { return {
|
|
@@ -33888,7 +33457,7 @@ class SegmentButton {
|
|
|
33888
33457
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
33889
33458
|
const mode = getIonMode$1(this);
|
|
33890
33459
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
33891
|
-
return (hAsync(Host, { key: '
|
|
33460
|
+
return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
|
|
33892
33461
|
[mode]: true,
|
|
33893
33462
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
33894
33463
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -33904,7 +33473,7 @@ class SegmentButton {
|
|
|
33904
33473
|
'ion-activatable': true,
|
|
33905
33474
|
'ion-activatable-instant': true,
|
|
33906
33475
|
'ion-focusable': true,
|
|
33907
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
33476
|
+
} }, hAsync("button", Object.assign({ key: '0a6fea3a374074af19f7ece0ba3a7cf1e269ab6d', "aria-selected": checked ? 'true' : 'false', role: "tab", ref: (el) => (this.nativeEl = el), type: type, class: "button-native", part: "native", disabled: disabled }, this.inheritedAttributes), hAsync("span", { key: '991018a38c59a6f3d76b2e952e5569c874d2c13e', class: "button-inner" }, hAsync("slot", { key: '23c547c80108025027b913c7fcbec189286627a3' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '7faa9d06ab6aa7346d16b0b6808979759a79650c' })), hAsync("div", { key: '0d61badf2c227dc38e20185b2b2bb590a5efa434', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: 'a84035752b78491c344179d1e61d109fb4bd1cf1', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
33908
33477
|
}
|
|
33909
33478
|
get el() { return getElement(this); }
|
|
33910
33479
|
static get watchers() { return {
|
|
@@ -33939,7 +33508,7 @@ class SegmentContent {
|
|
|
33939
33508
|
registerInstance(this, hostRef);
|
|
33940
33509
|
}
|
|
33941
33510
|
render() {
|
|
33942
|
-
return (hAsync(Host, { key: '
|
|
33511
|
+
return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
|
|
33943
33512
|
}
|
|
33944
33513
|
static get style() { return segmentContentCss; }
|
|
33945
33514
|
static get cmpMeta() { return {
|
|
@@ -34054,10 +33623,10 @@ class SegmentView {
|
|
|
34054
33623
|
}
|
|
34055
33624
|
render() {
|
|
34056
33625
|
const { disabled, isManualScroll } = this;
|
|
34057
|
-
return (hAsync(Host, { key: '
|
|
33626
|
+
return (hAsync(Host, { key: '1c9bfce83967a93d63c225031a5cd688509d8fc8', class: {
|
|
34058
33627
|
'segment-view-disabled': disabled,
|
|
34059
33628
|
'segment-view-scroll-disabled': isManualScroll === false,
|
|
34060
|
-
} }, hAsync("slot", { key: '
|
|
33629
|
+
} }, hAsync("slot", { key: '19fee034e76fffbdb5f622cb514037c00f9d55d5' })));
|
|
34061
33630
|
}
|
|
34062
33631
|
get el() { return getElement(this); }
|
|
34063
33632
|
static get style() { return {
|
|
@@ -34824,7 +34393,7 @@ class Select {
|
|
|
34824
34393
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
34825
34394
|
*/
|
|
34826
34395
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
34827
|
-
return (hAsync(Host, { key: '
|
|
34396
|
+
return (hAsync(Host, { key: '9f0a833ebc3df27a42146b07bcbb181c05f5e5c4', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
34828
34397
|
[mode]: true,
|
|
34829
34398
|
'in-item': inItem,
|
|
34830
34399
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -34842,7 +34411,7 @@ class Select {
|
|
|
34842
34411
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
34843
34412
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
34844
34413
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
34845
|
-
}) }, hAsync("label", { key: '
|
|
34414
|
+
}) }, hAsync("label", { key: '4b32396d8557c0d1cba13440a11e66b8eb7b13a9', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: 'd226cc8e30cd5202c235476cfa1632fc40bc609f', class: "select-wrapper-inner" }, hAsync("slot", { key: 'df813ff3b7de518c70ea4fedd25bcb965607026d', name: "start" }), hAsync("div", { key: '4a4e9348a136c598b7b08f80ecdcca268afec2d5', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), hAsync("slot", { key: 'f168d8b42a1e193ad27d09e5f1553b231f0332e5', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && hAsync("div", { key: 'ec3deede22dd403cb16a08f532ae4809cf86a3e7', class: "select-highlight" })), this.renderBottomContent()));
|
|
34846
34415
|
}
|
|
34847
34416
|
get el() { return getElement(this); }
|
|
34848
34417
|
static get watchers() { return {
|
|
@@ -35003,7 +34572,7 @@ class SelectModal {
|
|
|
35003
34572
|
} }, option.text))));
|
|
35004
34573
|
}
|
|
35005
34574
|
render() {
|
|
35006
|
-
return (hAsync(Host, { key: '
|
|
34575
|
+
return (hAsync(Host, { key: '5bffdb106e6f628dae2e2aeb9ee8008b5c547b3a', class: getIonMode$1(this) }, hAsync("ion-header", { key: '4de1c33b0504372f8a0a26123e4e086080ee1ecb' }, hAsync("ion-toolbar", { key: '5d55a67d1db4352c260e9e0457d5dac6110b6598' }, this.header !== undefined && hAsync("ion-title", { key: '4f07fe8a9af8c9bd0852af2a9b95517d16356e50' }, this.header), hAsync("ion-buttons", { key: 'ca676a34f7cd3dd6b465b0d803434c2e2c8536c5', slot: "end" }, hAsync("ion-button", { key: '801ed63a357c7c9d354668851db65e5c1b0e1abe', onClick: () => this.closeModal() }, "Close")))), hAsync("ion-content", { key: 'f3c239ec9d84b8ed7413ea9db6efa18e29aca285' }, hAsync("ion-list", { key: '40c157e9abe477171a39ae7e6e1cd4ed08735cb4' }, this.multiple === true ? this.renderCheckboxOptions() : this.renderRadioOptions()))));
|
|
35007
34576
|
}
|
|
35008
34577
|
get el() { return getElement(this); }
|
|
35009
34578
|
static get style() { return {
|
|
@@ -35037,7 +34606,7 @@ class SelectOption {
|
|
|
35037
34606
|
this.disabled = false;
|
|
35038
34607
|
}
|
|
35039
34608
|
render() {
|
|
35040
|
-
return hAsync(Host, { key: '
|
|
34609
|
+
return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
|
|
35041
34610
|
}
|
|
35042
34611
|
get el() { return getElement(this); }
|
|
35043
34612
|
static get style() { return selectOptionCss; }
|
|
@@ -35154,7 +34723,7 @@ class SelectPopover {
|
|
|
35154
34723
|
render() {
|
|
35155
34724
|
const { header, message, options, subHeader } = this;
|
|
35156
34725
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
35157
|
-
return (hAsync(Host, { key: '
|
|
34726
|
+
return (hAsync(Host, { key: '0c9845a40d3fc392b0a7d64e2a6ed27d94bb7634', class: getIonMode$1(this) }, hAsync("ion-list", { key: '84a30f6661b0f8c00e6fa199658ed2adbcf27358' }, header !== undefined && hAsync("ion-list-header", { key: '13f5f56bbfbc06751fa516291a2da72629b60ece' }, header), hasSubHeaderOrMessage && (hAsync("ion-item", { key: '3d39d18e720e798bbde334e79e6832091c7dfb81' }, hAsync("ion-label", { key: 'd3051b0d140120b44bf5e79572f6f287e7cfb03a', class: "ion-text-wrap" }, subHeader !== undefined && hAsync("h3", { key: 'b16805956f3316f8ec703c123b76f717488e8637' }, subHeader), message !== undefined && hAsync("p", { key: '2215ac4ab4146a14e75a79192e319a8016286b5f' }, message)))), this.renderOptions(options))));
|
|
35158
34727
|
}
|
|
35159
34728
|
get el() { return getElement(this); }
|
|
35160
34729
|
static get style() { return {
|
|
@@ -35204,11 +34773,11 @@ class SkeletonText {
|
|
|
35204
34773
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
35205
34774
|
const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
|
|
35206
34775
|
const mode = getIonMode$1(this);
|
|
35207
|
-
return (hAsync(Host, { key: '
|
|
34776
|
+
return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
|
|
35208
34777
|
[mode]: true,
|
|
35209
34778
|
'skeleton-text-animated': animated,
|
|
35210
34779
|
'in-media': inMedia,
|
|
35211
|
-
} }, hAsync("span", { key: '
|
|
34780
|
+
} }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
|
|
35212
34781
|
}
|
|
35213
34782
|
get el() { return getElement(this); }
|
|
35214
34783
|
static get style() { return skeletonTextCss; }
|
|
@@ -35260,7 +34829,7 @@ class Spinner {
|
|
|
35260
34829
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
35261
34830
|
}
|
|
35262
34831
|
}
|
|
35263
|
-
return (hAsync(Host, { key: '
|
|
34832
|
+
return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
|
|
35264
34833
|
[mode]: true,
|
|
35265
34834
|
[`spinner-${spinnerName}`]: true,
|
|
35266
34835
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|
|
@@ -35359,12 +34928,12 @@ class SplitPane {
|
|
|
35359
34928
|
}
|
|
35360
34929
|
render() {
|
|
35361
34930
|
const mode = getIonMode$1(this);
|
|
35362
|
-
return (hAsync(Host, { key: '
|
|
34931
|
+
return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
|
|
35363
34932
|
[mode]: true,
|
|
35364
34933
|
// Used internally for styling
|
|
35365
34934
|
[`split-pane-${mode}`]: true,
|
|
35366
34935
|
'split-pane-visible': this.visible,
|
|
35367
|
-
} }, hAsync("slot", { key: '
|
|
34936
|
+
} }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
|
|
35368
34937
|
}
|
|
35369
34938
|
get el() { return getElement(this); }
|
|
35370
34939
|
static get watchers() { return {
|
|
@@ -35430,10 +34999,10 @@ class Tab {
|
|
|
35430
34999
|
}
|
|
35431
35000
|
render() {
|
|
35432
35001
|
const { tab, active, component } = this;
|
|
35433
|
-
return (hAsync(Host, { key: '
|
|
35002
|
+
return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
|
|
35434
35003
|
'ion-page': component === undefined,
|
|
35435
35004
|
'tab-hidden': !active,
|
|
35436
|
-
} }, hAsync("slot", { key: '
|
|
35005
|
+
} }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
|
|
35437
35006
|
}
|
|
35438
35007
|
get el() { return getElement(this); }
|
|
35439
35008
|
static get watchers() { return {
|
|
@@ -35545,11 +35114,11 @@ class TabBar {
|
|
|
35545
35114
|
const { color, translucent, keyboardVisible } = this;
|
|
35546
35115
|
const mode = getIonMode$1(this);
|
|
35547
35116
|
const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
|
|
35548
|
-
return (hAsync(Host, { key: '
|
|
35117
|
+
return (hAsync(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
|
|
35549
35118
|
[mode]: true,
|
|
35550
35119
|
'tab-bar-translucent': translucent,
|
|
35551
35120
|
'tab-bar-hidden': shouldHide,
|
|
35552
|
-
}) }, hAsync("slot", { key: '
|
|
35121
|
+
}) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
|
|
35553
35122
|
}
|
|
35554
35123
|
get el() { return getElement(this); }
|
|
35555
35124
|
static get watchers() { return {
|
|
@@ -35645,7 +35214,7 @@ class TabButton {
|
|
|
35645
35214
|
rel,
|
|
35646
35215
|
target,
|
|
35647
35216
|
};
|
|
35648
|
-
return (hAsync(Host, { key: '
|
|
35217
|
+
return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
35649
35218
|
[mode]: true,
|
|
35650
35219
|
'tab-selected': selected,
|
|
35651
35220
|
'tab-disabled': disabled,
|
|
@@ -35657,7 +35226,7 @@ class TabButton {
|
|
|
35657
35226
|
'ion-activatable': true,
|
|
35658
35227
|
'ion-selectable': true,
|
|
35659
35228
|
'ion-focusable': true,
|
|
35660
|
-
} }, hAsync("a", Object.assign({ key: '
|
|
35229
|
+
} }, hAsync("a", Object.assign({ key: 'c053d32fbcdad8d5e4a409956b47164d7a080c6b' }, attrs, { class: "button-native", part: "native", role: "tab", "aria-selected": selected ? 'true' : null, "aria-disabled": disabled ? 'true' : null, tabindex: disabled ? '-1' : undefined }, inheritedAttributes), hAsync("span", { key: 'b3b460d33ec978a46b069442280d31b23bc8e794', class: "button-inner" }, hAsync("slot", { key: '87b3928475c941263261101b8fae27c6370d4671' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '6532e5b4546aebe4becaebe1c93ce0e6aedaffe7', type: "unbounded" }))));
|
|
35661
35230
|
}
|
|
35662
35231
|
get el() { return getElement(this); }
|
|
35663
35232
|
static get style() { return {
|
|
@@ -35848,7 +35417,7 @@ class Tabs {
|
|
|
35848
35417
|
return Array.from(this.el.querySelectorAll('ion-tab'));
|
|
35849
35418
|
}
|
|
35850
35419
|
render() {
|
|
35851
|
-
return (hAsync(Host, { key: '
|
|
35420
|
+
return (hAsync(Host, { key: 'c7131135b31aa312dc0207602561e1c0f4ac3e53', onIonTabButtonClick: this.onTabClicked }, hAsync("slot", { key: '6c46e91c0389bbcea1f15f35cf3ea513a74ac545', name: "top" }), hAsync("div", { key: '4f1b649d8bb60b61402b97359de204979c5eda52', class: "tabs-inner" }, hAsync("slot", { key: '8d1ef4952be4fb33567376e1083ea4da697fcae0' })), hAsync("slot", { key: '260b8da8031494e9cb4635b3d22c49a433042db1', name: "bottom" })));
|
|
35852
35421
|
}
|
|
35853
35422
|
get el() { return getElement(this); }
|
|
35854
35423
|
static get style() { return tabsCss; }
|
|
@@ -35888,9 +35457,9 @@ class Text {
|
|
|
35888
35457
|
}
|
|
35889
35458
|
render() {
|
|
35890
35459
|
const mode = getIonMode$1(this);
|
|
35891
|
-
return (hAsync(Host, { key: '
|
|
35460
|
+
return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
|
|
35892
35461
|
[mode]: true,
|
|
35893
|
-
}) }, hAsync("slot", { key: '
|
|
35462
|
+
}) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
|
|
35894
35463
|
}
|
|
35895
35464
|
static get style() { return textCss; }
|
|
35896
35465
|
static get cmpMeta() { return {
|
|
@@ -36351,7 +35920,7 @@ class Textarea {
|
|
|
36351
35920
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
36352
35921
|
*/
|
|
36353
35922
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
36354
|
-
return (hAsync(Host, { key: '
|
|
35923
|
+
return (hAsync(Host, { key: '2c9de566803dd007cee3639ddd04accb68663b32', class: createColorClasses$1(this.color, {
|
|
36355
35924
|
[mode]: true,
|
|
36356
35925
|
'has-value': hasValue,
|
|
36357
35926
|
'has-focus': hasFocus,
|
|
@@ -36360,7 +35929,7 @@ class Textarea {
|
|
|
36360
35929
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
36361
35930
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
36362
35931
|
'textarea-disabled': disabled,
|
|
36363
|
-
}) }, hAsync("label", { key: '
|
|
35932
|
+
}) }, hAsync("label", { key: 'a0602b57fae26f148729b19c296de31b4923ad44', class: "textarea-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), hAsync("div", { key: '4ff96c999ba015c6c94be888da76d2dbd33020d7', class: "textarea-wrapper-inner" }, hAsync("div", { key: '8827db21d38d6c0bc2949f183b976eca692210be', class: "start-slot-wrapper" }, hAsync("slot", { key: 'e90b69e2b427a51f9a6ec201053e55b914ef5b9d', name: "start" })), hAsync("div", { key: '22de2b64734d6a677939ff372df9de13b58923e6', class: "native-wrapper", ref: (el) => (this.textareaWrapper = el) }, hAsync("textarea", Object.assign({ key: '0e125c47ae292bea21484824746dbee922e728b0', class: "native-textarea", ref: (el) => (this.nativeInput = el), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, minLength: this.minlength, maxLength: this.maxlength, name: this.name, placeholder: this.placeholder || '', readOnly: this.readonly, required: this.required, spellcheck: this.spellcheck, cols: this.cols, rows: this.rows, wrap: this.wrap, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeyDown, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined }, this.inheritedAttributes), value)), hAsync("div", { key: '52d8f9048596cd598a99b74e3d0b322890d8513d', class: "end-slot-wrapper" }, hAsync("slot", { key: 'd9c8a7c33c47533dfe2eb8b12006c7f38d3cd11b', name: "end" }))), shouldRenderHighlight && hAsync("div", { key: 'aaf672b846a35f0aeb0b3ec172dc808eb871eb5a', class: "textarea-highlight" })), this.renderBottomContent()));
|
|
36364
35933
|
}
|
|
36365
35934
|
get el() { return getElement(this); }
|
|
36366
35935
|
static get watchers() { return {
|
|
@@ -36423,7 +35992,7 @@ class Thumbnail {
|
|
|
36423
35992
|
registerInstance(this, hostRef);
|
|
36424
35993
|
}
|
|
36425
35994
|
render() {
|
|
36426
|
-
return (hAsync(Host, { key: '
|
|
35995
|
+
return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
|
|
36427
35996
|
}
|
|
36428
35997
|
static get style() { return thumbnailCss; }
|
|
36429
35998
|
static get cmpMeta() { return {
|
|
@@ -37281,9 +36850,9 @@ class Toast {
|
|
|
37281
36850
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
37282
36851
|
printIonWarning('[ion-toast] - This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.', el);
|
|
37283
36852
|
}
|
|
37284
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
36853
|
+
return (hAsync(Host, Object.assign({ key: '4a303f9ebb69614e9dca677d9d80a4a275de0d85', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
37285
36854
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
37286
|
-
}, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '
|
|
36855
|
+
}, class: createColorClasses$1(this.color, Object.assign(Object.assign({ [mode]: true }, getClassMap(this.cssClass)), { 'overlay-hidden': true, 'toast-translucent': this.translucent })), onIonToastWillDismiss: this.dispatchCancelHandler }), hAsync("div", { key: '4f58fcbba8dce9834eab743fc91715935216f3d0', class: wrapperClass }, hAsync("div", { key: 'bbc7b73b186432bd4be8247c5de2ce3b2551fb0a', class: "toast-container", part: "container" }, this.renderButtons(startButtons, 'start'), this.icon !== undefined && (hAsync("ion-icon", { key: '0b953478eb739ceb864373416183bfbf5ce2f9f1', class: "toast-icon", part: "icon", icon: this.icon, lazy: false, "aria-hidden": "true" })), hAsync("div", { key: '7a63497d1c0440256218426194851a969b042ca6', class: "toast-content", role: "status", "aria-atomic": "true", "aria-live": "polite" }, !revealContentToScreenReader && header !== undefined && this.renderHeader('oldHeader', 'true'), !revealContentToScreenReader && message !== undefined && this.renderToastMessage('oldMessage', 'true'), revealContentToScreenReader && header !== undefined && this.renderHeader('header'), revealContentToScreenReader && message !== undefined && this.renderToastMessage('header')), this.renderButtons(endButtons, 'end')))));
|
|
37287
36856
|
}
|
|
37288
36857
|
get el() { return getElement(this); }
|
|
37289
36858
|
static get watchers() { return {
|
|
@@ -37595,7 +37164,7 @@ class Toggle {
|
|
|
37595
37164
|
const value = this.getValue();
|
|
37596
37165
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
37597
37166
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
37598
|
-
return (hAsync(Host, { key: '
|
|
37167
|
+
return (hAsync(Host, { key: '736e1dcfca34fd41f6f0632652e7f86d6996a232', role: "switch", "aria-checked": `${checked}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, onClick: this.onClick, "aria-labelledby": hasLabel ? inputLabelId : null, "aria-label": inheritedAttributes['aria-label'] || null, "aria-disabled": disabled ? 'true' : null, "aria-required": required ? 'true' : undefined, tabindex: disabled ? undefined : 0, onKeyDown: this.onKeyDown, onFocus: this.onFocus, onBlur: this.onBlur, class: createColorClasses$1(color, {
|
|
37599
37168
|
[mode]: true,
|
|
37600
37169
|
'in-item': hostContext('ion-item', el),
|
|
37601
37170
|
'toggle-activated': activated,
|
|
@@ -37605,10 +37174,10 @@ class Toggle {
|
|
|
37605
37174
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
37606
37175
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
37607
37176
|
[`toggle-${rtl}`]: true,
|
|
37608
|
-
}) }, hAsync("label", { key: '
|
|
37177
|
+
}) }, hAsync("label", { key: 'e697739fd3964c1c6c23331cf7e38a9841c46a6a', class: "toggle-wrapper", htmlFor: inputId }, hAsync("input", Object.assign({ key: '3d500b8c1bc879591249d183c1abb3f5f26aff6b', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, required: required }, inheritedAttributes)), hAsync("div", { key: 'e38f3fe0e66b4ca434fd81514f5ef771c2960841', class: {
|
|
37609
37178
|
'label-text-wrapper': true,
|
|
37610
37179
|
'label-text-wrapper-hidden': !hasLabel,
|
|
37611
|
-
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '
|
|
37180
|
+
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), hAsync("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
37612
37181
|
}
|
|
37613
37182
|
get el() { return getElement(this); }
|
|
37614
37183
|
static get watchers() { return {
|
|
@@ -37718,10 +37287,10 @@ class Toolbar {
|
|
|
37718
37287
|
this.childrenStyles.forEach((value) => {
|
|
37719
37288
|
Object.assign(childStyles, value);
|
|
37720
37289
|
});
|
|
37721
|
-
return (hAsync(Host, { key: '
|
|
37290
|
+
return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
37722
37291
|
[mode]: true,
|
|
37723
37292
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
37724
|
-
})) }, hAsync("div", { key: '
|
|
37293
|
+
})) }, hAsync("div", { key: '67f5bba9c4f527c3f35bfe1313a2b85741f9b246', class: "toolbar-background", part: "background" }), hAsync("div", { key: '085e8c68f056e5b0deb9d1606431fbeb45dae8e5', class: "toolbar-container", part: "container" }, hAsync("slot", { key: '15227c79c3baf883fd8c43fdb7e1313453933c79', name: "start" }), hAsync("slot", { key: '0b8a7f7e685aa31c80d9bc03446ccc3a9d07e0e8', name: "secondary" }), hAsync("div", { key: '57e4628c1fa89df79dd80456259db961bb691404', class: "toolbar-content", part: "content" }, hAsync("slot", { key: '82c2f6e1acf8d96db259bd8baf295881801edbd5' })), hAsync("slot", { key: 'b2d4afb15214199f206c0a5e08b581e4c9c2f58a', name: "primary" }), hAsync("slot", { key: 'bfb909a0c472f8834046c2ea23bef2f562167ad3', name: "end" }))));
|
|
37725
37294
|
}
|
|
37726
37295
|
get el() { return getElement(this); }
|
|
37727
37296
|
static get style() { return {
|
|
@@ -37767,11 +37336,11 @@ class ToolbarTitle {
|
|
|
37767
37336
|
render() {
|
|
37768
37337
|
const mode = getIonMode$1(this);
|
|
37769
37338
|
const size = this.getSize();
|
|
37770
|
-
return (hAsync(Host, { key: '
|
|
37339
|
+
return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
|
|
37771
37340
|
[mode]: true,
|
|
37772
37341
|
[`title-${size}`]: true,
|
|
37773
37342
|
'title-rtl': document.dir === 'rtl',
|
|
37774
|
-
}) }, hAsync("div", { key: '
|
|
37343
|
+
}) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
|
|
37775
37344
|
}
|
|
37776
37345
|
get el() { return getElement(this); }
|
|
37777
37346
|
static get watchers() { return {
|