@ionic/core 8.7.18-dev.11770916502.174efd7f → 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.mjs
CHANGED
|
@@ -18571,11 +18571,11 @@ class ItemDivider {
|
|
|
18571
18571
|
}
|
|
18572
18572
|
render() {
|
|
18573
18573
|
const mode = getIonMode$1(this);
|
|
18574
|
-
return (hAsync(Host, { key: '
|
|
18574
|
+
return (hAsync(Host, { key: 'ee8b2c8d5e415c0d8badf84fa7670932da4e809e', class: createColorClasses$1(this.color, {
|
|
18575
18575
|
[mode]: true,
|
|
18576
18576
|
'item-divider-sticky': this.sticky,
|
|
18577
18577
|
item: true,
|
|
18578
|
-
}) }, hAsync("slot", { key: '
|
|
18578
|
+
}) }, 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" }))));
|
|
18579
18579
|
}
|
|
18580
18580
|
get el() { return getElement(this); }
|
|
18581
18581
|
static get style() { return {
|
|
@@ -18605,7 +18605,7 @@ class ItemGroup {
|
|
|
18605
18605
|
}
|
|
18606
18606
|
render() {
|
|
18607
18607
|
const mode = getIonMode$1(this);
|
|
18608
|
-
return (hAsync(Host, { key: '
|
|
18608
|
+
return (hAsync(Host, { key: 'f1743af1d075682f63fae3802c5c5bf050507563', role: "group", class: {
|
|
18609
18609
|
[mode]: true,
|
|
18610
18610
|
// Used internally for styling
|
|
18611
18611
|
[`item-group-${mode}`]: true,
|
|
@@ -18675,12 +18675,12 @@ class ItemOption {
|
|
|
18675
18675
|
href: this.href,
|
|
18676
18676
|
target: this.target,
|
|
18677
18677
|
};
|
|
18678
|
-
return (hAsync(Host, { key: '
|
|
18678
|
+
return (hAsync(Host, { key: '058310ac361612c16f2ef70c74279ba7c24128c5', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
18679
18679
|
[mode]: true,
|
|
18680
18680
|
'item-option-disabled': disabled,
|
|
18681
18681
|
'item-option-expandable': expandable,
|
|
18682
18682
|
'ion-activatable': true,
|
|
18683
|
-
}) }, hAsync(TagType, Object.assign({ key: '
|
|
18683
|
+
}) }, 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' }))));
|
|
18684
18684
|
}
|
|
18685
18685
|
get el() { return getElement(this); }
|
|
18686
18686
|
static get style() { return {
|
|
@@ -18729,7 +18729,7 @@ class ItemOptions {
|
|
|
18729
18729
|
render() {
|
|
18730
18730
|
const mode = getIonMode$1(this);
|
|
18731
18731
|
const isEnd = isEndSide(this.side);
|
|
18732
|
-
return (hAsync(Host, { key: '
|
|
18732
|
+
return (hAsync(Host, { key: '7b4b93984182222c64c7a2a22a18e52ac19e3049', class: {
|
|
18733
18733
|
[mode]: true,
|
|
18734
18734
|
// Used internally for styling
|
|
18735
18735
|
[`item-options-${mode}`]: true,
|
|
@@ -19194,7 +19194,7 @@ class ItemSliding {
|
|
|
19194
19194
|
}
|
|
19195
19195
|
render() {
|
|
19196
19196
|
const mode = getIonMode$1(this);
|
|
19197
|
-
return (hAsync(Host, { key: '
|
|
19197
|
+
return (hAsync(Host, { key: '8fd81d74701402294a48b79c56d6eceadafd4881', class: {
|
|
19198
19198
|
[mode]: true,
|
|
19199
19199
|
'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
|
|
19200
19200
|
'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
|
|
@@ -19299,13 +19299,13 @@ class Label {
|
|
|
19299
19299
|
render() {
|
|
19300
19300
|
const position = this.position;
|
|
19301
19301
|
const mode = getIonMode$1(this);
|
|
19302
|
-
return (hAsync(Host, { key: '
|
|
19302
|
+
return (hAsync(Host, { key: '684ddfa719e34d743489ff05a0df067829257c73', class: createColorClasses$1(this.color, {
|
|
19303
19303
|
[mode]: true,
|
|
19304
19304
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
19305
19305
|
[`label-${position}`]: position !== undefined,
|
|
19306
19306
|
[`label-no-animate`]: this.noAnimate,
|
|
19307
19307
|
'label-rtl': document.dir === 'rtl',
|
|
19308
|
-
}) }, hAsync("slot", { key: '
|
|
19308
|
+
}) }, hAsync("slot", { key: '4aace3e2b36250e832c44f63bea21116d77220fb' })));
|
|
19309
19309
|
}
|
|
19310
19310
|
get el() { return getElement(this); }
|
|
19311
19311
|
static get watchers() { return {
|
|
@@ -19403,10 +19403,10 @@ class ListHeader {
|
|
|
19403
19403
|
render() {
|
|
19404
19404
|
const { lines } = this;
|
|
19405
19405
|
const mode = getIonMode$1(this);
|
|
19406
|
-
return (hAsync(Host, { key: '
|
|
19406
|
+
return (hAsync(Host, { key: '2e529021279761b2b2889885437f619b0e8f71c4', class: createColorClasses$1(this.color, {
|
|
19407
19407
|
[mode]: true,
|
|
19408
19408
|
[`list-header-lines-${lines}`]: lines !== undefined,
|
|
19409
|
-
}) }, hAsync("div", { key: '
|
|
19409
|
+
}) }, hAsync("div", { key: '9a6a11b0db015df79374f6489a40b959bc80b3e4', class: "list-header-inner" }, hAsync("slot", { key: 'ef347fc6afb47850797e2e4d1aeefcd6a318f789' }))));
|
|
19410
19410
|
}
|
|
19411
19411
|
static get style() { return {
|
|
19412
19412
|
ios: listHeaderIosCss,
|
|
@@ -19691,9 +19691,9 @@ class Loading {
|
|
|
19691
19691
|
* Otherwise, don't set aria-labelledby.
|
|
19692
19692
|
*/
|
|
19693
19693
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
19694
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
19694
|
+
return (hAsync(Host, Object.assign({ key: 'f86ddbc600cb5c396b7de38fb5f49625388c3c3f', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
19695
19695
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
19696
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), hAsync("ion-backdrop", { key: '
|
|
19696
|
+
}, 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" })));
|
|
19697
19697
|
}
|
|
19698
19698
|
get el() { return getElement(this); }
|
|
19699
19699
|
static get watchers() { return {
|
|
@@ -20742,14 +20742,14 @@ class Menu {
|
|
|
20742
20742
|
* the ionBackButton listener in the menu controller
|
|
20743
20743
|
* will handle closing the menu when Escape is pressed.
|
|
20744
20744
|
*/
|
|
20745
|
-
return (hAsync(Host, { key: '
|
|
20745
|
+
return (hAsync(Host, { key: '29ef73894e2795e4ce23e59888ffb87faf4dd543', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
20746
20746
|
[mode]: true,
|
|
20747
20747
|
[`menu-type-${type}`]: true,
|
|
20748
20748
|
'menu-enabled': !disabled,
|
|
20749
20749
|
[`menu-side-${side}`]: true,
|
|
20750
20750
|
'menu-pane-visible': isPaneVisible,
|
|
20751
20751
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
20752
|
-
} }, hAsync("div", { key: '
|
|
20752
|
+
} }, 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" })));
|
|
20753
20753
|
}
|
|
20754
20754
|
get el() { return getElement(this); }
|
|
20755
20755
|
static get watchers() { return {
|
|
@@ -20857,7 +20857,7 @@ class MenuButton {
|
|
|
20857
20857
|
type: this.type,
|
|
20858
20858
|
};
|
|
20859
20859
|
const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
|
|
20860
|
-
return (hAsync(Host, { key: '
|
|
20860
|
+
return (hAsync(Host, { key: 'dcade732e366f0687d92cb9ce4065b78b0b41d24', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses$1(color, {
|
|
20861
20861
|
[mode]: true,
|
|
20862
20862
|
button: true, // ion-buttons target .button
|
|
20863
20863
|
'menu-button-hidden': hidden,
|
|
@@ -20866,7 +20866,7 @@ class MenuButton {
|
|
|
20866
20866
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
20867
20867
|
'ion-activatable': true,
|
|
20868
20868
|
'ion-focusable': true,
|
|
20869
|
-
}) }, hAsync("button", Object.assign({ key: '
|
|
20869
|
+
}) }, 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" }))));
|
|
20870
20870
|
}
|
|
20871
20871
|
get el() { return getElement(this); }
|
|
20872
20872
|
static get style() { return {
|
|
@@ -20919,10 +20919,10 @@ class MenuToggle {
|
|
|
20919
20919
|
render() {
|
|
20920
20920
|
const mode = getIonMode$1(this);
|
|
20921
20921
|
const hidden = this.autoHide && !this.visible;
|
|
20922
|
-
return (hAsync(Host, { key: '
|
|
20922
|
+
return (hAsync(Host, { key: '55135952f3a42cb5d21916dfb7b169d894b381e3', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
|
|
20923
20923
|
[mode]: true,
|
|
20924
20924
|
'menu-toggle-hidden': hidden,
|
|
20925
|
-
} }, hAsync("slot", { key: '
|
|
20925
|
+
} }, hAsync("slot", { key: 'e8ecb59a6ec075b07e2a1b8fcdf7df3dd9975a03' })));
|
|
20926
20926
|
}
|
|
20927
20927
|
static get style() { return menuToggleCss; }
|
|
20928
20928
|
static get cmpMeta() { return {
|
|
@@ -22804,170 +22804,9 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
22804
22804
|
};
|
|
22805
22805
|
};
|
|
22806
22806
|
|
|
22807
|
-
|
|
22808
|
-
* These thresholds match the SCSS media query breakpoints in modal.vars.scss
|
|
22809
|
-
* that trigger the centered dialog layout (non-fullscreen modal).
|
|
22810
|
-
*
|
|
22811
|
-
* SCSS defines two height breakpoints: $modal-inset-min-height-small (600px)
|
|
22812
|
-
* and $modal-inset-min-height-large (768px). We use the smaller one because
|
|
22813
|
-
* that's the threshold where the modal transitions from fullscreen to centered
|
|
22814
|
-
* dialog — the larger breakpoint only increases the dialog's height.
|
|
22815
|
-
*/
|
|
22816
|
-
const MODAL_INSET_MIN_WIDTH = 768;
|
|
22817
|
-
const MODAL_INSET_MIN_HEIGHT = 600;
|
|
22818
|
-
const EDGE_THRESHOLD = 5;
|
|
22819
|
-
/**
|
|
22820
|
-
* Cache for resolved root safe-area-top value, invalidated once per frame.
|
|
22821
|
-
*/
|
|
22822
|
-
let cachedRootSafeAreaTop = null;
|
|
22823
|
-
let cacheInvalidationScheduled$1 = false;
|
|
22824
|
-
/**
|
|
22825
|
-
* Determines if the current viewport meets the CSS media query conditions
|
|
22826
|
-
* that cause regular modals to render as centered dialogs instead of fullscreen.
|
|
22827
|
-
* Matches: @media (min-width: 768px) and (min-height: 600px)
|
|
22828
|
-
*/
|
|
22829
|
-
const isCenteredDialogViewport = () => {
|
|
22830
|
-
if (!win$1)
|
|
22831
|
-
return false;
|
|
22832
|
-
return win$1.matchMedia(`(min-width: ${MODAL_INSET_MIN_WIDTH}px) and (min-height: ${MODAL_INSET_MIN_HEIGHT}px)`)
|
|
22833
|
-
.matches;
|
|
22834
|
-
};
|
|
22835
|
-
/**
|
|
22836
|
-
* Resolves the current root --ion-safe-area-top value to pixels.
|
|
22837
|
-
* Uses a temporary element because getComputedStyle on :root returns
|
|
22838
|
-
* the declared value of custom properties (e.g. "env(safe-area-inset-top)")
|
|
22839
|
-
* rather than a resolved number.
|
|
22840
|
-
*
|
|
22841
|
-
* Results are cached for the current frame to avoid repeated reflows.
|
|
22842
|
-
*/
|
|
22843
|
-
const getRootSafeAreaTop = () => {
|
|
22844
|
-
if (cachedRootSafeAreaTop !== null) {
|
|
22845
|
-
return cachedRootSafeAreaTop;
|
|
22846
|
-
}
|
|
22847
|
-
const doc = win$1 === null || win$1 === void 0 ? void 0 : win$1.document;
|
|
22848
|
-
if (!(doc === null || doc === void 0 ? void 0 : doc.body)) {
|
|
22849
|
-
return 0;
|
|
22850
|
-
}
|
|
22851
|
-
const el = doc.createElement('div');
|
|
22852
|
-
el.style.cssText =
|
|
22853
|
-
'position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;' + 'padding-top:var(--ion-safe-area-top,0px);';
|
|
22854
|
-
doc.body.appendChild(el);
|
|
22855
|
-
const value = parseFloat(getComputedStyle(el).paddingTop) || 0;
|
|
22856
|
-
el.remove();
|
|
22857
|
-
cachedRootSafeAreaTop = value;
|
|
22858
|
-
if (!cacheInvalidationScheduled$1) {
|
|
22859
|
-
cacheInvalidationScheduled$1 = true;
|
|
22860
|
-
raf(() => {
|
|
22861
|
-
cachedRootSafeAreaTop = null;
|
|
22862
|
-
cacheInvalidationScheduled$1 = false;
|
|
22863
|
-
});
|
|
22864
|
-
}
|
|
22865
|
-
return value;
|
|
22866
|
-
};
|
|
22867
|
-
/**
|
|
22868
|
-
* Returns the initial safe-area configuration based on modal type.
|
|
22869
|
-
* This is called before animation starts and uses configuration-based prediction.
|
|
22870
|
-
*
|
|
22871
|
-
* @param context - Modal context information
|
|
22872
|
-
* @returns SafeAreaConfig with initial safe-area values
|
|
22873
|
-
*/
|
|
22874
|
-
const getInitialSafeAreaConfig = (context) => {
|
|
22875
|
-
const { isSheetModal, isCardModal } = context;
|
|
22876
|
-
// Sheet modals always zero top safe-area. The sheet height offset from the
|
|
22877
|
-
// top edge is handled by --ion-modal-offset-top (set in modal.tsx) using
|
|
22878
|
-
// the resolved root value, so --ion-safe-area-top is never needed for
|
|
22879
|
-
// height calculation. Keeping it at 0px prevents header content from
|
|
22880
|
-
// getting double-offset padding.
|
|
22881
|
-
if (isSheetModal) {
|
|
22882
|
-
return {
|
|
22883
|
-
top: '0px',
|
|
22884
|
-
bottom: 'inherit',
|
|
22885
|
-
left: '0px',
|
|
22886
|
-
right: '0px',
|
|
22887
|
-
};
|
|
22888
|
-
}
|
|
22889
|
-
// Card modals need safe-area for height calculation.
|
|
22890
|
-
// Note: isCardModal is already gated on mode === 'ios' by the caller.
|
|
22891
|
-
if (isCardModal) {
|
|
22892
|
-
return {
|
|
22893
|
-
top: 'inherit',
|
|
22894
|
-
bottom: 'inherit',
|
|
22895
|
-
left: '0px',
|
|
22896
|
-
right: '0px',
|
|
22897
|
-
};
|
|
22898
|
-
}
|
|
22899
|
-
// On viewports that meet the centered dialog media query breakpoints,
|
|
22900
|
-
// regular modals render as centered dialogs (not fullscreen), so they
|
|
22901
|
-
// don't touch any screen edges and don't need safe-area insets.
|
|
22902
|
-
if (isCenteredDialogViewport()) {
|
|
22903
|
-
return {
|
|
22904
|
-
top: '0px',
|
|
22905
|
-
bottom: '0px',
|
|
22906
|
-
left: '0px',
|
|
22907
|
-
right: '0px',
|
|
22908
|
-
};
|
|
22909
|
-
}
|
|
22910
|
-
// Fullscreen modals on phone - inherit all safe areas
|
|
22911
|
-
return {
|
|
22912
|
-
top: 'inherit',
|
|
22913
|
-
bottom: 'inherit',
|
|
22914
|
-
left: 'inherit',
|
|
22915
|
-
right: 'inherit',
|
|
22916
|
-
};
|
|
22917
|
-
};
|
|
22918
|
-
/**
|
|
22919
|
-
* Returns safe-area configuration based on actual modal position.
|
|
22920
|
-
* Detects which edges the modal overlaps with and only applies safe-area to those edges.
|
|
22921
|
-
*
|
|
22922
|
-
* Note: On Android edge-to-edge (API 36+), getBoundingClientRect() may report
|
|
22923
|
-
* inconsistent values. Sheet and card modals avoid this by using configuration-based
|
|
22924
|
-
* prediction instead. Regular modals use coordinate detection which works reliably
|
|
22925
|
-
* on web and iOS; Android edge-to-edge may need a configuration-based fallback
|
|
22926
|
-
* once a reliable detection mechanism is available.
|
|
22927
|
-
*
|
|
22928
|
-
* @param wrapperEl - The modal wrapper element to measure
|
|
22929
|
-
* @returns SafeAreaConfig based on position
|
|
22930
|
-
*/
|
|
22931
|
-
const getPositionBasedSafeAreaConfig = (wrapperEl) => {
|
|
22932
|
-
var _a, _b;
|
|
22933
|
-
const rect = wrapperEl.getBoundingClientRect();
|
|
22934
|
-
const vh = (_a = win$1 === null || win$1 === void 0 ? void 0 : win$1.innerHeight) !== null && _a !== void 0 ? _a : 0;
|
|
22935
|
-
const vw = (_b = win$1 === null || win$1 === void 0 ? void 0 : win$1.innerWidth) !== null && _b !== void 0 ? _b : 0;
|
|
22936
|
-
// Only apply safe-area to sides where modal overlaps with screen edge
|
|
22937
|
-
return {
|
|
22938
|
-
top: rect.top <= EDGE_THRESHOLD ? 'inherit' : '0px',
|
|
22939
|
-
bottom: rect.bottom >= vh - EDGE_THRESHOLD ? 'inherit' : '0px',
|
|
22940
|
-
left: rect.left <= EDGE_THRESHOLD ? 'inherit' : '0px',
|
|
22941
|
-
right: rect.right >= vw - EDGE_THRESHOLD ? 'inherit' : '0px',
|
|
22942
|
-
};
|
|
22943
|
-
};
|
|
22944
|
-
/**
|
|
22945
|
-
* Applies safe-area CSS custom property overrides to the modal host element.
|
|
22946
|
-
*
|
|
22947
|
-
* @param hostEl - The modal host element (ion-modal)
|
|
22948
|
-
* @param config - Safe-area configuration to apply
|
|
22949
|
-
*/
|
|
22950
|
-
const applySafeAreaOverrides = (hostEl, config) => {
|
|
22951
|
-
hostEl.style.setProperty('--ion-safe-area-top', config.top);
|
|
22952
|
-
hostEl.style.setProperty('--ion-safe-area-bottom', config.bottom);
|
|
22953
|
-
hostEl.style.setProperty('--ion-safe-area-left', config.left);
|
|
22954
|
-
hostEl.style.setProperty('--ion-safe-area-right', config.right);
|
|
22955
|
-
};
|
|
22956
|
-
/**
|
|
22957
|
-
* Clears safe-area CSS custom property overrides from the modal host element.
|
|
22958
|
-
*
|
|
22959
|
-
* @param hostEl - The modal host element (ion-modal)
|
|
22960
|
-
*/
|
|
22961
|
-
const clearSafeAreaOverrides = (hostEl) => {
|
|
22962
|
-
hostEl.style.removeProperty('--ion-safe-area-top');
|
|
22963
|
-
hostEl.style.removeProperty('--ion-safe-area-bottom');
|
|
22964
|
-
hostEl.style.removeProperty('--ion-safe-area-left');
|
|
22965
|
-
hostEl.style.removeProperty('--ion-safe-area-right');
|
|
22966
|
-
};
|
|
22967
|
-
|
|
22968
|
-
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}";
|
|
22807
|
+
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}";
|
|
22969
22808
|
|
|
22970
|
-
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-
|
|
22809
|
+
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}";
|
|
22971
22810
|
|
|
22972
22811
|
// TODO(FW-2832): types
|
|
22973
22812
|
/**
|
|
@@ -23190,31 +23029,13 @@ class Modal {
|
|
|
23190
23029
|
}
|
|
23191
23030
|
}
|
|
23192
23031
|
onWindowResize() {
|
|
23193
|
-
|
|
23032
|
+
// Only handle resize for iOS card modals when no custom animations are provided
|
|
23033
|
+
if (getIonMode$1(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
|
|
23194
23034
|
return;
|
|
23035
|
+
}
|
|
23195
23036
|
clearTimeout(this.resizeTimeout);
|
|
23196
23037
|
this.resizeTimeout = setTimeout(() => {
|
|
23197
|
-
|
|
23198
|
-
// iOS card modals: handle portrait/landscape view transitions
|
|
23199
|
-
if (context.isCardModal && !this.enterAnimation && !this.leaveAnimation) {
|
|
23200
|
-
this.handleViewTransition();
|
|
23201
|
-
}
|
|
23202
|
-
// Sheet modals: re-compute the internal offset property since safe-area
|
|
23203
|
-
// values may change on device rotation (e.g., portrait notch vs landscape).
|
|
23204
|
-
if (context.isSheetModal) {
|
|
23205
|
-
this.updateSheetOffsetTop();
|
|
23206
|
-
}
|
|
23207
|
-
// Regular (non-sheet, non-card) modals: update safe-area overrides
|
|
23208
|
-
// since the viewport may have crossed the centered-dialog breakpoint.
|
|
23209
|
-
if (!context.isSheetModal && !context.isCardModal) {
|
|
23210
|
-
this.updateSafeAreaOverrides();
|
|
23211
|
-
// Re-evaluate fullscreen safe-area padding: clear first, then re-apply
|
|
23212
|
-
if (this.wrapperEl) {
|
|
23213
|
-
this.wrapperEl.style.removeProperty('height');
|
|
23214
|
-
this.wrapperEl.style.removeProperty('padding-bottom');
|
|
23215
|
-
}
|
|
23216
|
-
this.applyFullscreenSafeArea();
|
|
23217
|
-
}
|
|
23038
|
+
this.handleViewTransition();
|
|
23218
23039
|
}, 50); // Debounce to avoid excessive calls during active resizing
|
|
23219
23040
|
}
|
|
23220
23041
|
breakpointsChanged(breakpoints) {
|
|
@@ -23231,9 +23052,6 @@ class Modal {
|
|
|
23231
23052
|
this.triggerController.removeClickListener();
|
|
23232
23053
|
this.cleanupViewTransitionListener();
|
|
23233
23054
|
this.cleanupParentRemovalObserver();
|
|
23234
|
-
// Also called in dismiss() — intentional dual cleanup covers both
|
|
23235
|
-
// dismiss-then-remove and direct DOM removal without dismiss.
|
|
23236
|
-
this.cleanupSafeAreaOverrides();
|
|
23237
23055
|
}
|
|
23238
23056
|
componentWillLoad() {
|
|
23239
23057
|
var _a;
|
|
@@ -23394,11 +23212,6 @@ class Modal {
|
|
|
23394
23212
|
await waitForMount();
|
|
23395
23213
|
}
|
|
23396
23214
|
writeTask(() => this.el.classList.add('show-modal'));
|
|
23397
|
-
// Recalculate isSheetModal before safe-area setup because framework
|
|
23398
|
-
// bindings (e.g., Angular) may not have been applied when componentWillLoad ran.
|
|
23399
|
-
this.isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
|
|
23400
|
-
// Set initial safe-area overrides before animation
|
|
23401
|
-
this.setInitialSafeAreaOverrides();
|
|
23402
23215
|
const hasCardModal = presentingElement !== undefined;
|
|
23403
23216
|
/**
|
|
23404
23217
|
* We need to change the status bar at the
|
|
@@ -23416,10 +23229,6 @@ class Modal {
|
|
|
23416
23229
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
23417
23230
|
expandToScroll: this.expandToScroll,
|
|
23418
23231
|
});
|
|
23419
|
-
// Update safe-area based on actual position after animation
|
|
23420
|
-
this.updateSafeAreaOverrides();
|
|
23421
|
-
// Apply fullscreen safe-area padding if needed
|
|
23422
|
-
this.applyFullscreenSafeArea();
|
|
23423
23232
|
/* tslint:disable-next-line */
|
|
23424
23233
|
if (typeof window !== 'undefined') {
|
|
23425
23234
|
/**
|
|
@@ -23451,7 +23260,13 @@ class Modal {
|
|
|
23451
23260
|
};
|
|
23452
23261
|
window.addEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
23453
23262
|
}
|
|
23454
|
-
|
|
23263
|
+
/**
|
|
23264
|
+
* Recalculate isSheetModal because framework bindings (e.g., Angular)
|
|
23265
|
+
* may not have been applied when componentWillLoad ran.
|
|
23266
|
+
*/
|
|
23267
|
+
const isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
|
|
23268
|
+
this.isSheetModal = isSheetModal;
|
|
23269
|
+
if (isSheetModal) {
|
|
23455
23270
|
this.initSheetGesture();
|
|
23456
23271
|
}
|
|
23457
23272
|
else if (hasCardModal) {
|
|
@@ -23641,9 +23456,6 @@ class Modal {
|
|
|
23641
23456
|
if (this.gestureAnimationDismissing && role !== GESTURE) {
|
|
23642
23457
|
return false;
|
|
23643
23458
|
}
|
|
23644
|
-
// Cancel any pending resize timeout to prevent stale updates during dismiss
|
|
23645
|
-
clearTimeout(this.resizeTimeout);
|
|
23646
|
-
this.resizeTimeout = undefined;
|
|
23647
23459
|
/**
|
|
23648
23460
|
* Because the canDismiss check below is async,
|
|
23649
23461
|
* we need to claim a lock before the check happens,
|
|
@@ -23698,7 +23510,6 @@ class Modal {
|
|
|
23698
23510
|
}
|
|
23699
23511
|
this.cleanupViewTransitionListener();
|
|
23700
23512
|
this.cleanupParentRemovalObserver();
|
|
23701
|
-
this.cleanupSafeAreaOverrides();
|
|
23702
23513
|
this.cleanupChildRoutePassthrough();
|
|
23703
23514
|
}
|
|
23704
23515
|
this.currentBreakpoint = undefined;
|
|
@@ -23819,9 +23630,6 @@ class Modal {
|
|
|
23819
23630
|
this.viewTransitionAnimation = transitionAnimation;
|
|
23820
23631
|
transitionAnimation.play().then(() => {
|
|
23821
23632
|
this.viewTransitionAnimation = undefined;
|
|
23822
|
-
// Wait for a layout pass after the transition so getBoundingClientRect()
|
|
23823
|
-
// in getPositionBasedSafeAreaConfig() reflects the new dimensions.
|
|
23824
|
-
raf(() => this.updateSafeAreaOverrides());
|
|
23825
23633
|
// After orientation transition, recreate the swipe-to-close gesture
|
|
23826
23634
|
// with updated animation that reflects the new presenting element state
|
|
23827
23635
|
this.reinitSwipeToClose();
|
|
@@ -23948,123 +23756,6 @@ class Modal {
|
|
|
23948
23756
|
(_a = this.parentRemovalObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
23949
23757
|
this.parentRemovalObserver = undefined;
|
|
23950
23758
|
}
|
|
23951
|
-
/**
|
|
23952
|
-
* Creates the context object for safe-area utilities.
|
|
23953
|
-
*/
|
|
23954
|
-
getSafeAreaContext() {
|
|
23955
|
-
return {
|
|
23956
|
-
isSheetModal: this.isSheetModal,
|
|
23957
|
-
isCardModal: this.presentingElement !== undefined && getIonMode$1(this) === 'ios',
|
|
23958
|
-
presentingElement: this.presentingElement,
|
|
23959
|
-
breakpoints: this.breakpoints,
|
|
23960
|
-
currentBreakpoint: this.currentBreakpoint,
|
|
23961
|
-
};
|
|
23962
|
-
}
|
|
23963
|
-
/**
|
|
23964
|
-
* Sets initial safe-area overrides before modal animation.
|
|
23965
|
-
* Called in present() before animation starts.
|
|
23966
|
-
*
|
|
23967
|
-
* For sheet modals, the SCSS --height formula uses --ion-modal-offset-top
|
|
23968
|
-
* (an internal property) instead of --ion-safe-area-top. We resolve the
|
|
23969
|
-
* root safe-area-top to pixels and set --ion-modal-offset-top, decoupling
|
|
23970
|
-
* the height calculation from --ion-safe-area-top (which is zeroed for
|
|
23971
|
-
* sheets to prevent header content from getting double-offset padding).
|
|
23972
|
-
*/
|
|
23973
|
-
setInitialSafeAreaOverrides() {
|
|
23974
|
-
const context = this.getSafeAreaContext();
|
|
23975
|
-
const safeAreaConfig = getInitialSafeAreaConfig(context);
|
|
23976
|
-
applySafeAreaOverrides(this.el, safeAreaConfig);
|
|
23977
|
-
// Set the internal offset property with the resolved root safe-area-top value
|
|
23978
|
-
if (context.isSheetModal) {
|
|
23979
|
-
this.updateSheetOffsetTop();
|
|
23980
|
-
}
|
|
23981
|
-
}
|
|
23982
|
-
/**
|
|
23983
|
-
* Resolves the current root --ion-safe-area-top value and sets the
|
|
23984
|
-
* internal --ion-modal-offset-top property on the host element.
|
|
23985
|
-
* Called on present and on resize (e.g., device rotation changes safe-area).
|
|
23986
|
-
*/
|
|
23987
|
-
updateSheetOffsetTop() {
|
|
23988
|
-
const safeAreaTop = getRootSafeAreaTop();
|
|
23989
|
-
this.el.style.setProperty('--ion-modal-offset-top', `${safeAreaTop}px`);
|
|
23990
|
-
}
|
|
23991
|
-
/**
|
|
23992
|
-
* Updates safe-area overrides during dynamic state changes.
|
|
23993
|
-
* Called after animations, during gestures, and on orientation changes.
|
|
23994
|
-
*/
|
|
23995
|
-
updateSafeAreaOverrides() {
|
|
23996
|
-
const { wrapperEl, el } = this;
|
|
23997
|
-
const context = this.getSafeAreaContext();
|
|
23998
|
-
// Sheet modals: safe-area is fully determined at presentation time
|
|
23999
|
-
// (top is always 0px, height is frozen). Nothing to update.
|
|
24000
|
-
if (context.isSheetModal)
|
|
24001
|
-
return;
|
|
24002
|
-
// Card modals have fixed safe-area requirements set by initial prediction.
|
|
24003
|
-
if (context.isCardModal)
|
|
24004
|
-
return;
|
|
24005
|
-
// wrapperEl is required for position-based detection below
|
|
24006
|
-
if (!wrapperEl)
|
|
24007
|
-
return;
|
|
24008
|
-
// Regular modals: use position-based detection to correctly handle both
|
|
24009
|
-
// fullscreen modals and centered dialogs with custom dimensions.
|
|
24010
|
-
const safeAreaConfig = getPositionBasedSafeAreaConfig(wrapperEl);
|
|
24011
|
-
applySafeAreaOverrides(el, safeAreaConfig);
|
|
24012
|
-
}
|
|
24013
|
-
/**
|
|
24014
|
-
* Applies padding-bottom to fullscreen modal wrapper to prevent
|
|
24015
|
-
* content from overlapping system navigation bar.
|
|
24016
|
-
*/
|
|
24017
|
-
applyFullscreenSafeArea() {
|
|
24018
|
-
const { wrapperEl, el } = this;
|
|
24019
|
-
if (!wrapperEl)
|
|
24020
|
-
return;
|
|
24021
|
-
const context = this.getSafeAreaContext();
|
|
24022
|
-
if (context.isSheetModal || context.isCardModal)
|
|
24023
|
-
return;
|
|
24024
|
-
// Check for standard Ionic layout children (ion-content, ion-footer),
|
|
24025
|
-
// searching one level deep for wrapped components (e.g.,
|
|
24026
|
-
// <app-footer><ion-footer>...</ion-footer></app-footer>).
|
|
24027
|
-
// Note: uses a manual loop instead of querySelector(':scope > ...') because
|
|
24028
|
-
// Stencil's mock-doc (used in spec tests) does not support :scope.
|
|
24029
|
-
let hasContent = false;
|
|
24030
|
-
let hasFooter = false;
|
|
24031
|
-
for (const child of Array.from(el.children)) {
|
|
24032
|
-
if (child.tagName === 'ION-CONTENT')
|
|
24033
|
-
hasContent = true;
|
|
24034
|
-
if (child.tagName === 'ION-FOOTER')
|
|
24035
|
-
hasFooter = true;
|
|
24036
|
-
for (const grandchild of Array.from(child.children)) {
|
|
24037
|
-
if (grandchild.tagName === 'ION-CONTENT')
|
|
24038
|
-
hasContent = true;
|
|
24039
|
-
if (grandchild.tagName === 'ION-FOOTER')
|
|
24040
|
-
hasFooter = true;
|
|
24041
|
-
}
|
|
24042
|
-
}
|
|
24043
|
-
// Only apply wrapper padding for standard Ionic layouts (has ion-content
|
|
24044
|
-
// but no ion-footer). Custom modals with raw HTML are fully
|
|
24045
|
-
// developer-controlled and should not be modified.
|
|
24046
|
-
if (!hasContent || hasFooter)
|
|
24047
|
-
return;
|
|
24048
|
-
// Reduce wrapper height by safe-area and add equivalent padding so the
|
|
24049
|
-
// total visual size stays the same but the flex content area shrinks.
|
|
24050
|
-
// Using height + padding instead of box-sizing: border-box avoids
|
|
24051
|
-
// breaking custom modals that set --border-width (border-box would
|
|
24052
|
-
// include the border inside the height, changing the layout).
|
|
24053
|
-
wrapperEl.style.setProperty('height', 'calc(var(--height) - var(--ion-safe-area-bottom, 0px))');
|
|
24054
|
-
wrapperEl.style.setProperty('padding-bottom', 'var(--ion-safe-area-bottom, 0px)');
|
|
24055
|
-
}
|
|
24056
|
-
/**
|
|
24057
|
-
* Clears all safe-area overrides and padding from wrapper.
|
|
24058
|
-
*/
|
|
24059
|
-
cleanupSafeAreaOverrides() {
|
|
24060
|
-
clearSafeAreaOverrides(this.el);
|
|
24061
|
-
// Remove internal sheet offset property
|
|
24062
|
-
this.el.style.removeProperty('--ion-modal-offset-top');
|
|
24063
|
-
if (this.wrapperEl) {
|
|
24064
|
-
this.wrapperEl.style.removeProperty('height');
|
|
24065
|
-
this.wrapperEl.style.removeProperty('padding-bottom');
|
|
24066
|
-
}
|
|
24067
|
-
}
|
|
24068
23759
|
render() {
|
|
24069
23760
|
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
24070
23761
|
const showHandle = handle !== false && isSheetModal;
|
|
@@ -24072,20 +23763,20 @@ class Modal {
|
|
|
24072
23763
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
24073
23764
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
24074
23765
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
24075
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
23766
|
+
return (hAsync(Host, Object.assign({ key: '978ba9cc81464b2d9b4caaf36285d5f7bf7e568d', "no-router": true,
|
|
24076
23767
|
// Allow the modal to be navigable when the handle is focusable
|
|
24077
23768
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
|
|
24078
23769
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
24079
|
-
}, 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: '
|
|
23770
|
+
}, 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',
|
|
24080
23771
|
/*
|
|
24081
23772
|
role and aria-modal must be used on the
|
|
24082
23773
|
same element. They must also be set inside the
|
|
24083
23774
|
shadow DOM otherwise ion-button will not be highlighted
|
|
24084
23775
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
24085
23776
|
*/
|
|
24086
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '
|
|
23777
|
+
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",
|
|
24087
23778
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
24088
|
-
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: '
|
|
23779
|
+
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 }))));
|
|
24089
23780
|
}
|
|
24090
23781
|
get el() { return getElement(this); }
|
|
24091
23782
|
static get watchers() { return {
|
|
@@ -25033,7 +24724,7 @@ class Nav {
|
|
|
25033
24724
|
}
|
|
25034
24725
|
}
|
|
25035
24726
|
render() {
|
|
25036
|
-
return hAsync("slot", { key: '
|
|
24727
|
+
return hAsync("slot", { key: 'a549286b51b1bb23c9ef51f71148452228d0ab14' });
|
|
25037
24728
|
}
|
|
25038
24729
|
get el() { return getElement(this); }
|
|
25039
24730
|
static get watchers() { return {
|
|
@@ -25106,7 +24797,7 @@ class NavLink {
|
|
|
25106
24797
|
};
|
|
25107
24798
|
}
|
|
25108
24799
|
render() {
|
|
25109
|
-
return hAsync(Host, { key: '
|
|
24800
|
+
return hAsync(Host, { key: 'd4d80feb51c0d92b0bedf6952c892f9df3002046', onClick: this.onClick });
|
|
25110
24801
|
}
|
|
25111
24802
|
get el() { return getElement(this); }
|
|
25112
24803
|
static get cmpMeta() { return {
|
|
@@ -25137,9 +24828,9 @@ class Note {
|
|
|
25137
24828
|
}
|
|
25138
24829
|
render() {
|
|
25139
24830
|
const mode = getIonMode$1(this);
|
|
25140
|
-
return (hAsync(Host, { key: '
|
|
24831
|
+
return (hAsync(Host, { key: 'b86a6acc9274df6528d224d4c11ab826a0f84dbc', class: createColorClasses$1(this.color, {
|
|
25141
24832
|
[mode]: true,
|
|
25142
|
-
}) }, hAsync("slot", { key: '
|
|
24833
|
+
}) }, hAsync("slot", { key: '5de76567ed7713827cd277a42db102faf34190c8' })));
|
|
25143
24834
|
}
|
|
25144
24835
|
static get style() { return {
|
|
25145
24836
|
ios: noteIosCss,
|
|
@@ -25899,11 +25590,11 @@ class Picker {
|
|
|
25899
25590
|
render() {
|
|
25900
25591
|
const { htmlAttributes } = this;
|
|
25901
25592
|
const mode = getIonMode$1(this);
|
|
25902
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
25593
|
+
return (hAsync(Host, Object.assign({ key: '80f66d33780d8a1352d24be9cb63a0cc03d01ab5', "aria-modal": "true", tabindex: "-1" }, htmlAttributes, { style: {
|
|
25903
25594
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
25904
25595
|
}, class: Object.assign({ [mode]: true,
|
|
25905
25596
|
// Used internally for styling
|
|
25906
|
-
[`picker-${mode}`]: true, 'overlay-hidden': true }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonPickerWillDismiss: this.dispatchCancelHandler }), hAsync("ion-backdrop", { key: '
|
|
25597
|
+
[`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" })));
|
|
25907
25598
|
}
|
|
25908
25599
|
get el() { return getElement(this); }
|
|
25909
25600
|
static get watchers() { return {
|
|
@@ -26872,9 +26563,9 @@ class PickerColumnCmp {
|
|
|
26872
26563
|
render() {
|
|
26873
26564
|
const col = this.col;
|
|
26874
26565
|
const mode = getIonMode$1(this);
|
|
26875
|
-
return (hAsync(Host, { key: '
|
|
26566
|
+
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: {
|
|
26876
26567
|
'max-width': this.col.columnWidth,
|
|
26877
|
-
} }, col.prefix && (hAsync("div", { key: '
|
|
26568
|
+
} }, 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))));
|
|
26878
26569
|
}
|
|
26879
26570
|
get el() { return getElement(this); }
|
|
26880
26571
|
static get watchers() { return {
|
|
@@ -26991,10 +26682,10 @@ class PickerColumnOption {
|
|
|
26991
26682
|
render() {
|
|
26992
26683
|
const { color, disabled, ariaLabel } = this;
|
|
26993
26684
|
const mode = getIonMode$1(this);
|
|
26994
|
-
return (hAsync(Host, { key: '
|
|
26685
|
+
return (hAsync(Host, { key: 'c45a1c14a351bf57d7113671164852349be5aa8a', class: createColorClasses$1(color, {
|
|
26995
26686
|
[mode]: true,
|
|
26996
26687
|
['option-disabled']: disabled,
|
|
26997
|
-
}) }, hAsync("div", { key: '
|
|
26688
|
+
}) }, hAsync("div", { key: '824930b658c6e3fb493ac4c6c2451d38c6bc4829', class: 'picker-column-option-button', role: "button", "aria-label": ariaLabel, onClick: () => this.onClick() }, hAsync("slot", { key: '019df4dcf46e629bdbebcd46ed3ab29669feab27' }))));
|
|
26998
26689
|
}
|
|
26999
26690
|
get el() { return getElement(this); }
|
|
27000
26691
|
static get watchers() { return {
|
|
@@ -27019,58 +26710,6 @@ class PickerColumnOption {
|
|
|
27019
26710
|
}; }
|
|
27020
26711
|
}
|
|
27021
26712
|
|
|
27022
|
-
/**
|
|
27023
|
-
* Shared per-frame cache for safe-area insets. Avoids creating a temporary
|
|
27024
|
-
* DOM element and forcing a synchronous reflow on every call within the same
|
|
27025
|
-
* frame (e.g., multiple popovers presenting simultaneously). Invalidated
|
|
27026
|
-
* after the next animation frame so values stay fresh across orientation
|
|
27027
|
-
* changes and viewport resizes.
|
|
27028
|
-
*/
|
|
27029
|
-
let cachedInsets = null;
|
|
27030
|
-
let cacheInvalidationScheduled = false;
|
|
27031
|
-
/**
|
|
27032
|
-
* Resolves the current --ion-safe-area-* CSS custom property values
|
|
27033
|
-
* to actual pixel numbers. A temporary element is needed because
|
|
27034
|
-
* getComputedStyle on :root returns the declared value of custom
|
|
27035
|
-
* properties (e.g. "env(safe-area-inset-top)") rather than a
|
|
27036
|
-
* resolved number. By assigning them to standard padding properties,
|
|
27037
|
-
* the browser resolves the value.
|
|
27038
|
-
*
|
|
27039
|
-
* Results are cached for the current frame to avoid repeated reflows.
|
|
27040
|
-
*/
|
|
27041
|
-
const getSafeAreaInsets = (doc) => {
|
|
27042
|
-
if (cachedInsets !== null) {
|
|
27043
|
-
return cachedInsets;
|
|
27044
|
-
}
|
|
27045
|
-
if (doc.body === null) {
|
|
27046
|
-
return { top: 0, bottom: 0, left: 0, right: 0 };
|
|
27047
|
-
}
|
|
27048
|
-
const el = doc.createElement('div');
|
|
27049
|
-
el.style.cssText =
|
|
27050
|
-
'position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;' +
|
|
27051
|
-
'padding-top:var(--ion-safe-area-top,0px);' +
|
|
27052
|
-
'padding-bottom:var(--ion-safe-area-bottom,0px);' +
|
|
27053
|
-
'padding-left:var(--ion-safe-area-left,0px);' +
|
|
27054
|
-
'padding-right:var(--ion-safe-area-right,0px);';
|
|
27055
|
-
doc.body.appendChild(el);
|
|
27056
|
-
const style = getComputedStyle(el);
|
|
27057
|
-
const insets = {
|
|
27058
|
-
top: parseFloat(style.paddingTop) || 0,
|
|
27059
|
-
bottom: parseFloat(style.paddingBottom) || 0,
|
|
27060
|
-
left: parseFloat(style.paddingLeft) || 0,
|
|
27061
|
-
right: parseFloat(style.paddingRight) || 0,
|
|
27062
|
-
};
|
|
27063
|
-
el.remove();
|
|
27064
|
-
cachedInsets = insets;
|
|
27065
|
-
if (!cacheInvalidationScheduled) {
|
|
27066
|
-
cacheInvalidationScheduled = true;
|
|
27067
|
-
raf(() => {
|
|
27068
|
-
cachedInsets = null;
|
|
27069
|
-
cacheInvalidationScheduled = false;
|
|
27070
|
-
});
|
|
27071
|
-
}
|
|
27072
|
-
return insets;
|
|
27073
|
-
};
|
|
27074
26713
|
/**
|
|
27075
26714
|
* Returns the dimensions of the popover
|
|
27076
26715
|
* arrow on `ios` mode. If arrow is disabled
|
|
@@ -27706,10 +27345,8 @@ const calculatePopoverCenterAlign = (side, triggerBoundingBox, contentWidth, con
|
|
|
27706
27345
|
* Adjusts popover positioning coordinates
|
|
27707
27346
|
* such that popover does not appear offscreen
|
|
27708
27347
|
* or overlapping safe area bounds.
|
|
27709
|
-
*
|
|
27710
|
-
* @internal - This is not part of the public API.
|
|
27711
27348
|
*/
|
|
27712
|
-
const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyWidth, bodyHeight, contentWidth, contentHeight,
|
|
27349
|
+
const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyWidth, bodyHeight, contentWidth, contentHeight, safeAreaMargin, contentOriginX, contentOriginY, triggerCoordinates, coordArrowTop = 0, coordArrowLeft = 0, arrowHeight = 0) => {
|
|
27713
27350
|
let arrowTop = coordArrowTop;
|
|
27714
27351
|
const arrowLeft = coordArrowLeft;
|
|
27715
27352
|
let left = coordLeft;
|
|
@@ -27719,19 +27356,16 @@ const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyW
|
|
|
27719
27356
|
let originY = contentOriginY;
|
|
27720
27357
|
let checkSafeAreaLeft = false;
|
|
27721
27358
|
let checkSafeAreaRight = false;
|
|
27722
|
-
let checkSafeAreaTop = false;
|
|
27723
|
-
let checkSafeAreaBottom = false;
|
|
27724
27359
|
const triggerTop = triggerCoordinates
|
|
27725
27360
|
? triggerCoordinates.top + triggerCoordinates.height
|
|
27726
27361
|
: bodyHeight / 2 - contentHeight / 2;
|
|
27727
27362
|
const triggerHeight = triggerCoordinates ? triggerCoordinates.height : 0;
|
|
27728
27363
|
let addPopoverBottomClass = false;
|
|
27729
|
-
const hideArrow = false;
|
|
27730
27364
|
/**
|
|
27731
27365
|
* Adjust popover so it does not
|
|
27732
27366
|
* go off the left of the screen.
|
|
27733
27367
|
*/
|
|
27734
|
-
if (left < bodyPadding +
|
|
27368
|
+
if (left < bodyPadding + safeAreaMargin) {
|
|
27735
27369
|
left = bodyPadding;
|
|
27736
27370
|
checkSafeAreaLeft = true;
|
|
27737
27371
|
originX = 'left';
|
|
@@ -27740,58 +27374,41 @@ const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyW
|
|
|
27740
27374
|
* go off the right of the screen.
|
|
27741
27375
|
*/
|
|
27742
27376
|
}
|
|
27743
|
-
else if (contentWidth + bodyPadding + left +
|
|
27377
|
+
else if (contentWidth + bodyPadding + left + safeAreaMargin > bodyWidth) {
|
|
27744
27378
|
checkSafeAreaRight = true;
|
|
27745
27379
|
left = bodyWidth - contentWidth - bodyPadding;
|
|
27746
27380
|
originX = 'right';
|
|
27747
27381
|
}
|
|
27748
27382
|
/**
|
|
27749
27383
|
* Adjust popover so it does not
|
|
27750
|
-
* go off the
|
|
27751
|
-
* or overlap the bottom safe area.
|
|
27384
|
+
* go off the top of the screen.
|
|
27752
27385
|
* If popover is on the left or the right of
|
|
27753
27386
|
* the trigger, then we should not adjust top
|
|
27754
27387
|
* margins.
|
|
27755
27388
|
*/
|
|
27756
|
-
if (triggerTop + triggerHeight + contentHeight > bodyHeight
|
|
27757
|
-
(
|
|
27758
|
-
/**
|
|
27759
|
-
* Calculate where the popover top would be if flipped
|
|
27760
|
-
* above the trigger. Check whether that position clears
|
|
27761
|
-
* the top safe area with room for bodyPadding.
|
|
27762
|
-
*/
|
|
27763
|
-
const idealFlipTop = triggerTop - contentHeight - triggerHeight - (arrowHeight - 1);
|
|
27764
|
-
if (idealFlipTop >= safeArea.top + bodyPadding) {
|
|
27389
|
+
if (triggerTop + triggerHeight + contentHeight > bodyHeight && (side === 'top' || side === 'bottom')) {
|
|
27390
|
+
if (triggerTop - contentHeight > 0) {
|
|
27765
27391
|
/**
|
|
27766
|
-
*
|
|
27767
|
-
*
|
|
27768
|
-
*
|
|
27392
|
+
* While we strive to align the popover with the trigger
|
|
27393
|
+
* on smaller screens this is not always possible. As a result,
|
|
27394
|
+
* we adjust the popover up so that it does not hang
|
|
27395
|
+
* off the bottom of the screen. However, we do not want to move
|
|
27396
|
+
* the popover up so much that it goes off the top of the screen.
|
|
27397
|
+
*
|
|
27398
|
+
* We chose 12 here so that the popover position looks a bit nicer as
|
|
27399
|
+
* it is not right up against the edge of the screen.
|
|
27769
27400
|
*/
|
|
27770
|
-
top =
|
|
27401
|
+
top = Math.max(12, triggerTop - contentHeight - triggerHeight - (arrowHeight - 1));
|
|
27771
27402
|
arrowTop = top + contentHeight;
|
|
27772
27403
|
originY = 'bottom';
|
|
27773
27404
|
addPopoverBottomClass = true;
|
|
27774
|
-
}
|
|
27775
|
-
else {
|
|
27776
27405
|
/**
|
|
27777
|
-
*
|
|
27778
|
-
*
|
|
27779
|
-
* creates a scrollable area anchored to the trigger.
|
|
27406
|
+
* If not enough room for popover to appear
|
|
27407
|
+
* above trigger, then cut it off.
|
|
27780
27408
|
*/
|
|
27409
|
+
}
|
|
27410
|
+
else {
|
|
27781
27411
|
bottom = bodyPadding;
|
|
27782
|
-
checkSafeAreaBottom = true;
|
|
27783
|
-
/**
|
|
27784
|
-
* When the trigger is near the bottom of the screen,
|
|
27785
|
-
* the calculated top may be at or past the bottom
|
|
27786
|
-
* constraint, leaving zero visible height. In that
|
|
27787
|
-
* case, pull top up to the top safe area so the
|
|
27788
|
-
* popover fills the available space between safe areas.
|
|
27789
|
-
*/
|
|
27790
|
-
const bottomEdge = bodyHeight - safeArea.bottom - bodyPadding;
|
|
27791
|
-
if (top >= bottomEdge) {
|
|
27792
|
-
top = safeArea.top + bodyPadding;
|
|
27793
|
-
checkSafeAreaTop = true;
|
|
27794
|
-
}
|
|
27795
27412
|
}
|
|
27796
27413
|
}
|
|
27797
27414
|
return {
|
|
@@ -27802,12 +27419,9 @@ const calculateWindowAdjustment = (side, coordTop, coordLeft, bodyPadding, bodyW
|
|
|
27802
27419
|
originY,
|
|
27803
27420
|
checkSafeAreaLeft,
|
|
27804
27421
|
checkSafeAreaRight,
|
|
27805
|
-
checkSafeAreaTop,
|
|
27806
|
-
checkSafeAreaBottom,
|
|
27807
27422
|
arrowTop,
|
|
27808
27423
|
arrowLeft,
|
|
27809
27424
|
addPopoverBottomClass,
|
|
27810
|
-
hideArrow,
|
|
27811
27425
|
};
|
|
27812
27426
|
};
|
|
27813
27427
|
const shouldShowArrow = (side, didAdjustBounds = false, ev, trigger) => {
|
|
@@ -27837,15 +27451,6 @@ const shouldShowArrow = (side, didAdjustBounds = false, ev, trigger) => {
|
|
|
27837
27451
|
};
|
|
27838
27452
|
|
|
27839
27453
|
const POPOVER_IOS_BODY_PADDING = 5;
|
|
27840
|
-
/**
|
|
27841
|
-
* Minimum edge margin for iOS popovers ensures visual spacing from screen
|
|
27842
|
-
* edges on devices without safe areas (e.g., older iPhones without notches).
|
|
27843
|
-
* Previously this was a hardcoded `safeAreaMargin = 25` that served dual
|
|
27844
|
-
* purpose: safe-area avoidance AND visual spacing. Now that actual safe-area
|
|
27845
|
-
* insets are read dynamically, this floor preserves the visual spacing when
|
|
27846
|
-
* safe-area values are 0.
|
|
27847
|
-
*/
|
|
27848
|
-
const POPOVER_IOS_MIN_EDGE_MARGIN = 25;
|
|
27849
27454
|
/**
|
|
27850
27455
|
* iOS Popover Enter Animation
|
|
27851
27456
|
*/
|
|
@@ -27871,16 +27476,8 @@ const iosEnterAnimation$1 = (baseEl, opts) => {
|
|
|
27871
27476
|
};
|
|
27872
27477
|
const results = getPopoverPosition(isRTL, contentWidth, contentHeight, arrowWidth, arrowHeight, reference, side, align, defaultPosition, trigger, ev);
|
|
27873
27478
|
const padding = size === 'cover' ? 0 : POPOVER_IOS_BODY_PADDING;
|
|
27874
|
-
const
|
|
27875
|
-
const
|
|
27876
|
-
? { top: 0, bottom: 0, left: 0, right: 0 }
|
|
27877
|
-
: {
|
|
27878
|
-
top: Math.max(rawSafeArea.top, POPOVER_IOS_MIN_EDGE_MARGIN),
|
|
27879
|
-
bottom: Math.max(rawSafeArea.bottom, POPOVER_IOS_MIN_EDGE_MARGIN),
|
|
27880
|
-
left: Math.max(rawSafeArea.left, POPOVER_IOS_MIN_EDGE_MARGIN),
|
|
27881
|
-
right: Math.max(rawSafeArea.right, POPOVER_IOS_MIN_EDGE_MARGIN),
|
|
27882
|
-
};
|
|
27883
|
-
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);
|
|
27479
|
+
const margin = size === 'cover' ? 0 : 25;
|
|
27480
|
+
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);
|
|
27884
27481
|
const baseAnimation = createAnimation();
|
|
27885
27482
|
const backdropAnimation = createAnimation();
|
|
27886
27483
|
const contentAnimation = createAnimation();
|
|
@@ -27911,14 +27508,10 @@ const iosEnterAnimation$1 = (baseEl, opts) => {
|
|
|
27911
27508
|
baseEl.classList.add('popover-bottom');
|
|
27912
27509
|
}
|
|
27913
27510
|
if (bottom !== undefined) {
|
|
27914
|
-
|
|
27915
|
-
if (checkSafeAreaBottom) {
|
|
27916
|
-
bottomValue = `${bottom}px + var(--ion-safe-area-bottom, 0px)`;
|
|
27917
|
-
}
|
|
27918
|
-
contentEl.style.setProperty('bottom', `calc(${bottomValue})`);
|
|
27511
|
+
contentEl.style.setProperty('bottom', `${bottom}px`);
|
|
27919
27512
|
}
|
|
27920
|
-
const safeAreaLeft = ' + var(--ion-safe-area-left,
|
|
27921
|
-
const safeAreaRight = ' - var(--ion-safe-area-right,
|
|
27513
|
+
const safeAreaLeft = ' + var(--ion-safe-area-left, 0)';
|
|
27514
|
+
const safeAreaRight = ' - var(--ion-safe-area-right, 0)';
|
|
27922
27515
|
let leftValue = `${left}px`;
|
|
27923
27516
|
if (checkSafeAreaLeft) {
|
|
27924
27517
|
leftValue = `${left}px${safeAreaLeft}`;
|
|
@@ -27926,11 +27519,7 @@ const iosEnterAnimation$1 = (baseEl, opts) => {
|
|
|
27926
27519
|
if (checkSafeAreaRight) {
|
|
27927
27520
|
leftValue = `${left}px${safeAreaRight}`;
|
|
27928
27521
|
}
|
|
27929
|
-
|
|
27930
|
-
if (checkSafeAreaTop) {
|
|
27931
|
-
topValue = `${top}px + var(--ion-safe-area-top, 0px)`;
|
|
27932
|
-
}
|
|
27933
|
-
contentEl.style.setProperty('top', `calc(${topValue} + var(--offset-y, 0))`);
|
|
27522
|
+
contentEl.style.setProperty('top', `calc(${top}px + var(--offset-y, 0))`);
|
|
27934
27523
|
contentEl.style.setProperty('left', `calc(${leftValue} + var(--offset-x, 0))`);
|
|
27935
27524
|
contentEl.style.setProperty('transform-origin', `${originY} ${originX}`);
|
|
27936
27525
|
if (arrowEl !== null) {
|
|
@@ -28006,23 +27595,7 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
|
|
|
28006
27595
|
};
|
|
28007
27596
|
const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev);
|
|
28008
27597
|
const padding = size === 'cover' ? 0 : POPOVER_MD_BODY_PADDING;
|
|
28009
|
-
|
|
28010
|
-
// This is needed for Android edge-to-edge (API 36+) where system bars overlap content.
|
|
28011
|
-
const safeArea = size === 'cover' ? { top: 0, bottom: 0, left: 0, right: 0 } : getSafeAreaInsets(doc);
|
|
28012
|
-
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);
|
|
28013
|
-
const safeAreaLeftCalc = ' + var(--ion-safe-area-left, 0px)';
|
|
28014
|
-
const safeAreaRightCalc = ' - var(--ion-safe-area-right, 0px)';
|
|
28015
|
-
let leftValue = `${left}px`;
|
|
28016
|
-
if (checkSafeAreaLeft) {
|
|
28017
|
-
leftValue = `${left}px${safeAreaLeftCalc}`;
|
|
28018
|
-
}
|
|
28019
|
-
if (checkSafeAreaRight) {
|
|
28020
|
-
leftValue = `${left}px${safeAreaRightCalc}`;
|
|
28021
|
-
}
|
|
28022
|
-
let topValue = `${top}px`;
|
|
28023
|
-
if (checkSafeAreaTop) {
|
|
28024
|
-
topValue = `${top}px + var(--ion-safe-area-top, 0px)`;
|
|
28025
|
-
}
|
|
27598
|
+
const { originX, originY, top, left, bottom } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, 0, results.originX, results.originY, results.referenceCoordinates);
|
|
28026
27599
|
const baseAnimation = createAnimation();
|
|
28027
27600
|
const backdropAnimation = createAnimation();
|
|
28028
27601
|
const wrapperAnimation = createAnimation();
|
|
@@ -28039,17 +27612,13 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
|
|
|
28039
27612
|
contentAnimation
|
|
28040
27613
|
.addElement(contentEl)
|
|
28041
27614
|
.beforeStyles({
|
|
28042
|
-
top: `calc(${
|
|
28043
|
-
left: `calc(${
|
|
27615
|
+
top: `calc(${top}px + var(--offset-y, 0px))`,
|
|
27616
|
+
left: `calc(${left}px + var(--offset-x, 0px))`,
|
|
28044
27617
|
'transform-origin': `${originY} ${originX}`,
|
|
28045
27618
|
})
|
|
28046
27619
|
.beforeAddWrite(() => {
|
|
28047
27620
|
if (bottom !== undefined) {
|
|
28048
|
-
|
|
28049
|
-
if (checkSafeAreaBottom) {
|
|
28050
|
-
bottomValue = `${bottom}px + var(--ion-safe-area-bottom, 0px)`;
|
|
28051
|
-
}
|
|
28052
|
-
contentEl.style.setProperty('bottom', `calc(${bottomValue})`);
|
|
27621
|
+
contentEl.style.setProperty('bottom', `${bottom}px`);
|
|
28053
27622
|
}
|
|
28054
27623
|
})
|
|
28055
27624
|
.fromTo('transform', 'scale(0.8)', 'scale(1)');
|
|
@@ -28061,7 +27630,7 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
|
|
|
28061
27630
|
if (size === 'cover') {
|
|
28062
27631
|
baseEl.style.setProperty('--width', `${contentWidth}px`);
|
|
28063
27632
|
}
|
|
28064
|
-
if (
|
|
27633
|
+
if (originY === 'bottom') {
|
|
28065
27634
|
baseEl.classList.add('popover-bottom');
|
|
28066
27635
|
}
|
|
28067
27636
|
})
|
|
@@ -28557,9 +28126,9 @@ class Popover {
|
|
|
28557
28126
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
28558
28127
|
const desktop = isPlatform('desktop');
|
|
28559
28128
|
const enableArrow = arrow && !parentPopover;
|
|
28560
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
28129
|
+
return (hAsync(Host, Object.assign({ key: '2edd8333c630efbce59071f8a383e4326e928dbc', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
28561
28130
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
28562
|
-
}, 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: '
|
|
28131
|
+
}, 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' })))));
|
|
28563
28132
|
}
|
|
28564
28133
|
get el() { return getElement(this); }
|
|
28565
28134
|
static get watchers() { return {
|
|
@@ -28664,7 +28233,7 @@ class ProgressBar {
|
|
|
28664
28233
|
const mode = getIonMode$1(this);
|
|
28665
28234
|
// If the progress is displayed as a solid bar.
|
|
28666
28235
|
const progressSolid = buffer === 1;
|
|
28667
|
-
return (hAsync(Host, { key: '
|
|
28236
|
+
return (hAsync(Host, { key: 'c859e48f3d24a458239e36d925e5dc003ed07c6b', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses$1(color, {
|
|
28668
28237
|
[mode]: true,
|
|
28669
28238
|
[`progress-bar-${type}`]: true,
|
|
28670
28239
|
'progress-paused': paused,
|
|
@@ -28849,7 +28418,7 @@ class Radio {
|
|
|
28849
28418
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
28850
28419
|
const mode = getIonMode$1(this);
|
|
28851
28420
|
const inItem = hostContext('ion-item', el);
|
|
28852
|
-
return (hAsync(Host, { key: '
|
|
28421
|
+
return (hAsync(Host, { key: 'af5dc59ed528150872e907ed1036e3e2decba939', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses$1(color, {
|
|
28853
28422
|
[mode]: true,
|
|
28854
28423
|
'in-item': inItem,
|
|
28855
28424
|
'radio-checked': checked,
|
|
@@ -28860,10 +28429,10 @@ class Radio {
|
|
|
28860
28429
|
// Focus and active styling should not apply when the radio is in an item
|
|
28861
28430
|
'ion-activatable': !inItem,
|
|
28862
28431
|
'ion-focusable': !inItem,
|
|
28863
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, hAsync("label", { key: '
|
|
28432
|
+
}), 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: {
|
|
28864
28433
|
'label-text-wrapper': true,
|
|
28865
28434
|
'label-text-wrapper-hidden': !hasLabel,
|
|
28866
|
-
}, part: "label" }, hAsync("slot", { key: '
|
|
28435
|
+
}, part: "label" }, hAsync("slot", { key: '0a4613d29aa783d1882cf889377f7e4fd4fea51d' })), hAsync("div", { key: '191faea79dc4cd8befc4b873f5bd9f5af8ca2acc', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
28867
28436
|
}
|
|
28868
28437
|
get el() { return getElement(this); }
|
|
28869
28438
|
static get watchers() { return {
|
|
@@ -29102,7 +28671,7 @@ class RadioGroup {
|
|
|
29102
28671
|
const { label, labelId, el, name, value } = this;
|
|
29103
28672
|
const mode = getIonMode$1(this);
|
|
29104
28673
|
renderHiddenInput(true, el, name, value, false);
|
|
29105
|
-
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("
|
|
28674
|
+
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' })));
|
|
29106
28675
|
}
|
|
29107
28676
|
get el() { return getElement(this); }
|
|
29108
28677
|
static get watchers() { return {
|
|
@@ -29862,7 +29431,7 @@ class Range {
|
|
|
29862
29431
|
const needsEndAdjustment = inItem && !hasEndContent;
|
|
29863
29432
|
const mode = getIonMode$1(this);
|
|
29864
29433
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
29865
|
-
return (hAsync(Host, { key: '
|
|
29434
|
+
return (hAsync(Host, { key: 'affcac4709096a48a5b4c1864b209b6352f6b078', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses$1(this.color, {
|
|
29866
29435
|
[mode]: true,
|
|
29867
29436
|
'in-item': inItem,
|
|
29868
29437
|
'range-disabled': disabled,
|
|
@@ -29871,10 +29440,10 @@ class Range {
|
|
|
29871
29440
|
[`range-label-placement-${labelPlacement}`]: true,
|
|
29872
29441
|
'range-item-start-adjustment': needsStartAdjustment,
|
|
29873
29442
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
29874
|
-
}) }, hAsync("label", { key: '
|
|
29443
|
+
}) }, hAsync("label", { key: 'c7cf95fa831d10b17c137995d0a9e0cf84006a76', class: "range-wrapper", id: "range-label" }, hAsync("div", { key: '5b8479c7939ae0f94a042c3aafd64316e4577d30', class: {
|
|
29875
29444
|
'label-text-wrapper': true,
|
|
29876
29445
|
'label-text-wrapper-hidden': !hasLabel,
|
|
29877
|
-
}, part: "label" }, label !== undefined ? hAsync("div", { class: "label-text" }, label) : hAsync("slot", { name: "label" })), hAsync("div", { key: '
|
|
29446
|
+
}, 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" })))));
|
|
29878
29447
|
}
|
|
29879
29448
|
get el() { return getElement(this); }
|
|
29880
29449
|
static get watchers() { return {
|
|
@@ -30841,7 +30410,7 @@ class Refresher {
|
|
|
30841
30410
|
}
|
|
30842
30411
|
render() {
|
|
30843
30412
|
const mode = getIonMode$1(this);
|
|
30844
|
-
return (hAsync(Host, { key: '
|
|
30413
|
+
return (hAsync(Host, { key: '06d61cc53260ce146dd6906cc96597e9baaa17cf', slot: "fixed", class: {
|
|
30845
30414
|
[mode]: true,
|
|
30846
30415
|
// Used internally for styling
|
|
30847
30416
|
[`refresher-${mode}`]: true,
|
|
@@ -31065,7 +30634,7 @@ class RefresherContent {
|
|
|
31065
30634
|
const pullingIcon = this.pullingIcon;
|
|
31066
30635
|
const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
|
|
31067
30636
|
const mode = getIonMode$1(this);
|
|
31068
|
-
return (hAsync(Host, { key: '
|
|
30637
|
+
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())));
|
|
31069
30638
|
}
|
|
31070
30639
|
get el() { return getElement(this); }
|
|
31071
30640
|
static get cmpMeta() { return {
|
|
@@ -31106,7 +30675,7 @@ class Reorder {
|
|
|
31106
30675
|
render() {
|
|
31107
30676
|
const mode = getIonMode$1(this);
|
|
31108
30677
|
const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
|
|
31109
|
-
return (hAsync(Host, { key: '
|
|
30678
|
+
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" }))));
|
|
31110
30679
|
}
|
|
31111
30680
|
get el() { return getElement(this); }
|
|
31112
30681
|
static get style() { return {
|
|
@@ -31377,7 +30946,7 @@ class ReorderGroup {
|
|
|
31377
30946
|
}
|
|
31378
30947
|
render() {
|
|
31379
30948
|
const mode = getIonMode$1(this);
|
|
31380
|
-
return (hAsync(Host, { key: '
|
|
30949
|
+
return (hAsync(Host, { key: '9527bbdedaab63d31f562c874a7332ea60c4b47b', class: {
|
|
31381
30950
|
[mode]: true,
|
|
31382
30951
|
'reorder-enabled': !this.disabled,
|
|
31383
30952
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -31493,7 +31062,7 @@ class RippleEffect {
|
|
|
31493
31062
|
}
|
|
31494
31063
|
render() {
|
|
31495
31064
|
const mode = getIonMode$1(this);
|
|
31496
|
-
return (hAsync(Host, { key: '
|
|
31065
|
+
return (hAsync(Host, { key: '3b59cbb44741569a7350f9638b4392add673b6f1', role: "presentation", class: {
|
|
31497
31066
|
[mode]: true,
|
|
31498
31067
|
unbounded: this.unbounded,
|
|
31499
31068
|
} }));
|
|
@@ -32452,10 +32021,10 @@ class RouterLink {
|
|
|
32452
32021
|
rel: this.rel,
|
|
32453
32022
|
target: this.target,
|
|
32454
32023
|
};
|
|
32455
|
-
return (hAsync(Host, { key: '
|
|
32024
|
+
return (hAsync(Host, { key: '8372835161d507c7b821b7536c55f912eb6ce704', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
32456
32025
|
[mode]: true,
|
|
32457
32026
|
'ion-activatable': true,
|
|
32458
|
-
}) }, hAsync("a", Object.assign({ key: '
|
|
32027
|
+
}) }, hAsync("a", Object.assign({ key: '315966e14a17760f3f64197e8315200039787897' }, attrs), hAsync("slot", { key: '95fc1697b884225e85e647dddcaa8f4af8b9a979' }))));
|
|
32459
32028
|
}
|
|
32460
32029
|
static get style() { return routerLinkCss; }
|
|
32461
32030
|
static get cmpMeta() { return {
|
|
@@ -32652,7 +32221,7 @@ class RouterOutlet {
|
|
|
32652
32221
|
return true;
|
|
32653
32222
|
}
|
|
32654
32223
|
render() {
|
|
32655
|
-
return hAsync("slot", { key: '
|
|
32224
|
+
return hAsync("slot", { key: '386c41745b61daba161cf75063da97fe29ba36cb' });
|
|
32656
32225
|
}
|
|
32657
32226
|
get el() { return getElement(this); }
|
|
32658
32227
|
static get watchers() { return {
|
|
@@ -32685,7 +32254,7 @@ class Row {
|
|
|
32685
32254
|
registerInstance(this, hostRef);
|
|
32686
32255
|
}
|
|
32687
32256
|
render() {
|
|
32688
|
-
return (hAsync(Host, { key: '
|
|
32257
|
+
return (hAsync(Host, { key: '8ba906a8cbea060a79ed658c9bf34906f0c11d38', class: getIonMode$1(this) }, hAsync("slot", { key: 'd1009176f45b588fa52c7d9eb336f3c6d3214bb8' })));
|
|
32689
32258
|
}
|
|
32690
32259
|
static get style() { return rowCss; }
|
|
32691
32260
|
static get cmpMeta() { return {
|
|
@@ -33126,8 +32695,8 @@ class Searchbar {
|
|
|
33126
32695
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
33127
32696
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
33128
32697
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
33129
|
-
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '
|
|
33130
|
-
return (hAsync(Host, { key: '
|
|
32698
|
+
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))));
|
|
32699
|
+
return (hAsync(Host, { key: 'bcc5b33a2859903ba11bfc5c611c6a2aaa71d06b', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
|
|
33131
32700
|
[mode]: true,
|
|
33132
32701
|
'searchbar-animated': animated,
|
|
33133
32702
|
'searchbar-disabled': this.disabled,
|
|
@@ -33137,14 +32706,14 @@ class Searchbar {
|
|
|
33137
32706
|
'searchbar-has-focus': this.focused,
|
|
33138
32707
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
33139
32708
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
33140
|
-
}) }, hAsync("div", { key: '
|
|
32709
|
+
}) }, 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) => {
|
|
33141
32710
|
/**
|
|
33142
32711
|
* This prevents mobile browsers from
|
|
33143
32712
|
* blurring the input when the clear
|
|
33144
32713
|
* button is activated.
|
|
33145
32714
|
*/
|
|
33146
32715
|
ev.preventDefault();
|
|
33147
|
-
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '
|
|
32716
|
+
}, 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));
|
|
33148
32717
|
}
|
|
33149
32718
|
get el() { return getElement(this); }
|
|
33150
32719
|
static get watchers() { return {
|
|
@@ -33739,14 +33308,14 @@ class Segment {
|
|
|
33739
33308
|
}
|
|
33740
33309
|
render() {
|
|
33741
33310
|
const mode = getIonMode$1(this);
|
|
33742
|
-
return (hAsync(Host, { key: '
|
|
33311
|
+
return (hAsync(Host, { key: '725cc37b25c539fa5e3ae8d90530ae33ededc3de', role: "tablist", onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
33743
33312
|
[mode]: true,
|
|
33744
33313
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
33745
33314
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
33746
33315
|
'segment-activated': this.activated,
|
|
33747
33316
|
'segment-disabled': this.disabled,
|
|
33748
33317
|
'segment-scrollable': this.scrollable,
|
|
33749
|
-
}) }, hAsync("slot", { key: '
|
|
33318
|
+
}) }, hAsync("slot", { key: 'c51cf7ea50325866a9367d214e12bc3754870335', onSlotchange: this.onSlottedItemsChange })));
|
|
33750
33319
|
}
|
|
33751
33320
|
get el() { return getElement(this); }
|
|
33752
33321
|
static get watchers() { return {
|
|
@@ -33886,7 +33455,7 @@ class SegmentButton {
|
|
|
33886
33455
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
33887
33456
|
const mode = getIonMode$1(this);
|
|
33888
33457
|
const hasSegmentColor = () => (segmentEl === null || segmentEl === void 0 ? void 0 : segmentEl.color) !== undefined;
|
|
33889
|
-
return (hAsync(Host, { key: '
|
|
33458
|
+
return (hAsync(Host, { key: 'f69e2a24198a7c57543dbe66902da039a6569c64', class: {
|
|
33890
33459
|
[mode]: true,
|
|
33891
33460
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
33892
33461
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -33902,7 +33471,7 @@ class SegmentButton {
|
|
|
33902
33471
|
'ion-activatable': true,
|
|
33903
33472
|
'ion-activatable-instant': true,
|
|
33904
33473
|
'ion-focusable': true,
|
|
33905
|
-
} }, hAsync("button", Object.assign({ key: '
|
|
33474
|
+
} }, 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" }))));
|
|
33906
33475
|
}
|
|
33907
33476
|
get el() { return getElement(this); }
|
|
33908
33477
|
static get watchers() { return {
|
|
@@ -33937,7 +33506,7 @@ class SegmentContent {
|
|
|
33937
33506
|
registerInstance(this, hostRef);
|
|
33938
33507
|
}
|
|
33939
33508
|
render() {
|
|
33940
|
-
return (hAsync(Host, { key: '
|
|
33509
|
+
return (hAsync(Host, { key: '665f41a854621f898eaf7ba9a49e77cc9326501e' }, hAsync("slot", { key: '635aa57fbf6167dcd36fe8dc5dfc1c313637ac04' })));
|
|
33941
33510
|
}
|
|
33942
33511
|
static get style() { return segmentContentCss; }
|
|
33943
33512
|
static get cmpMeta() { return {
|
|
@@ -34052,10 +33621,10 @@ class SegmentView {
|
|
|
34052
33621
|
}
|
|
34053
33622
|
render() {
|
|
34054
33623
|
const { disabled, isManualScroll } = this;
|
|
34055
|
-
return (hAsync(Host, { key: '
|
|
33624
|
+
return (hAsync(Host, { key: '1c9bfce83967a93d63c225031a5cd688509d8fc8', class: {
|
|
34056
33625
|
'segment-view-disabled': disabled,
|
|
34057
33626
|
'segment-view-scroll-disabled': isManualScroll === false,
|
|
34058
|
-
} }, hAsync("slot", { key: '
|
|
33627
|
+
} }, hAsync("slot", { key: '19fee034e76fffbdb5f622cb514037c00f9d55d5' })));
|
|
34059
33628
|
}
|
|
34060
33629
|
get el() { return getElement(this); }
|
|
34061
33630
|
static get style() { return {
|
|
@@ -34822,7 +34391,7 @@ class Select {
|
|
|
34822
34391
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
34823
34392
|
*/
|
|
34824
34393
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
34825
|
-
return (hAsync(Host, { key: '
|
|
34394
|
+
return (hAsync(Host, { key: '9f0a833ebc3df27a42146b07bcbb181c05f5e5c4', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
34826
34395
|
[mode]: true,
|
|
34827
34396
|
'in-item': inItem,
|
|
34828
34397
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -34840,7 +34409,7 @@ class Select {
|
|
|
34840
34409
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
34841
34410
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
34842
34411
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
34843
|
-
}) }, hAsync("label", { key: '
|
|
34412
|
+
}) }, 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()));
|
|
34844
34413
|
}
|
|
34845
34414
|
get el() { return getElement(this); }
|
|
34846
34415
|
static get watchers() { return {
|
|
@@ -35001,7 +34570,7 @@ class SelectModal {
|
|
|
35001
34570
|
} }, option.text))));
|
|
35002
34571
|
}
|
|
35003
34572
|
render() {
|
|
35004
|
-
return (hAsync(Host, { key: '
|
|
34573
|
+
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()))));
|
|
35005
34574
|
}
|
|
35006
34575
|
get el() { return getElement(this); }
|
|
35007
34576
|
static get style() { return {
|
|
@@ -35035,7 +34604,7 @@ class SelectOption {
|
|
|
35035
34604
|
this.disabled = false;
|
|
35036
34605
|
}
|
|
35037
34606
|
render() {
|
|
35038
|
-
return hAsync(Host, { key: '
|
|
34607
|
+
return hAsync(Host, { key: '824730b6c1e4f15b716e91b05840e890af5f1577', role: "option", id: this.inputId, class: getIonMode$1(this) });
|
|
35039
34608
|
}
|
|
35040
34609
|
get el() { return getElement(this); }
|
|
35041
34610
|
static get style() { return selectOptionCss; }
|
|
@@ -35152,7 +34721,7 @@ class SelectPopover {
|
|
|
35152
34721
|
render() {
|
|
35153
34722
|
const { header, message, options, subHeader } = this;
|
|
35154
34723
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
35155
|
-
return (hAsync(Host, { key: '
|
|
34724
|
+
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))));
|
|
35156
34725
|
}
|
|
35157
34726
|
get el() { return getElement(this); }
|
|
35158
34727
|
static get style() { return {
|
|
@@ -35202,11 +34771,11 @@ class SkeletonText {
|
|
|
35202
34771
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
35203
34772
|
const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
|
|
35204
34773
|
const mode = getIonMode$1(this);
|
|
35205
|
-
return (hAsync(Host, { key: '
|
|
34774
|
+
return (hAsync(Host, { key: 'cb8da9aba121811b9a4ffdae60ed88105897cb3c', class: {
|
|
35206
34775
|
[mode]: true,
|
|
35207
34776
|
'skeleton-text-animated': animated,
|
|
35208
34777
|
'in-media': inMedia,
|
|
35209
|
-
} }, hAsync("span", { key: '
|
|
34778
|
+
} }, hAsync("span", { key: '5379deee3c76d46d615be0cba14b4f60129ffa25' }, "\u00A0")));
|
|
35210
34779
|
}
|
|
35211
34780
|
get el() { return getElement(this); }
|
|
35212
34781
|
static get style() { return skeletonTextCss; }
|
|
@@ -35258,7 +34827,7 @@ class Spinner {
|
|
|
35258
34827
|
svgs.push(buildLine(spinner, duration, i, spinner.lines));
|
|
35259
34828
|
}
|
|
35260
34829
|
}
|
|
35261
|
-
return (hAsync(Host, { key: '
|
|
34830
|
+
return (hAsync(Host, { key: 'dd1954e557fa14b943e761474e29e4316ba53938', class: createColorClasses$1(self.color, {
|
|
35262
34831
|
[mode]: true,
|
|
35263
34832
|
[`spinner-${spinnerName}`]: true,
|
|
35264
34833
|
'spinner-paused': self.paused || config.getBoolean('_testing'),
|
|
@@ -35357,12 +34926,12 @@ class SplitPane {
|
|
|
35357
34926
|
}
|
|
35358
34927
|
render() {
|
|
35359
34928
|
const mode = getIonMode$1(this);
|
|
35360
|
-
return (hAsync(Host, { key: '
|
|
34929
|
+
return (hAsync(Host, { key: '05c88c009fbe2e223fd261760a2b49da1653ff62', class: {
|
|
35361
34930
|
[mode]: true,
|
|
35362
34931
|
// Used internally for styling
|
|
35363
34932
|
[`split-pane-${mode}`]: true,
|
|
35364
34933
|
'split-pane-visible': this.visible,
|
|
35365
|
-
} }, hAsync("slot", { key: '
|
|
34934
|
+
} }, hAsync("slot", { key: 'b35865082661253c4468520d79234fa5dab5bd35' })));
|
|
35366
34935
|
}
|
|
35367
34936
|
get el() { return getElement(this); }
|
|
35368
34937
|
static get watchers() { return {
|
|
@@ -35428,10 +34997,10 @@ class Tab {
|
|
|
35428
34997
|
}
|
|
35429
34998
|
render() {
|
|
35430
34999
|
const { tab, active, component } = this;
|
|
35431
|
-
return (hAsync(Host, { key: '
|
|
35000
|
+
return (hAsync(Host, { key: 'fbd837bad7a0632336d46a597ace23673b153e48', role: "tabpanel", "aria-hidden": !active ? 'true' : null, "aria-labelledby": `tab-button-${tab}`, class: {
|
|
35432
35001
|
'ion-page': component === undefined,
|
|
35433
35002
|
'tab-hidden': !active,
|
|
35434
|
-
} }, hAsync("slot", { key: '
|
|
35003
|
+
} }, hAsync("slot", { key: '35c218169fda826c9c1337558e0278d0c7f5f26a' })));
|
|
35435
35004
|
}
|
|
35436
35005
|
get el() { return getElement(this); }
|
|
35437
35006
|
static get watchers() { return {
|
|
@@ -35543,11 +35112,11 @@ class TabBar {
|
|
|
35543
35112
|
const { color, translucent, keyboardVisible } = this;
|
|
35544
35113
|
const mode = getIonMode$1(this);
|
|
35545
35114
|
const shouldHide = keyboardVisible && this.el.getAttribute('slot') !== 'top';
|
|
35546
|
-
return (hAsync(Host, { key: '
|
|
35115
|
+
return (hAsync(Host, { key: '24e164eaf81a0bec9237b561465618f10990806c', role: "tablist", "aria-hidden": shouldHide ? 'true' : null, class: createColorClasses$1(color, {
|
|
35547
35116
|
[mode]: true,
|
|
35548
35117
|
'tab-bar-translucent': translucent,
|
|
35549
35118
|
'tab-bar-hidden': shouldHide,
|
|
35550
|
-
}) }, hAsync("slot", { key: '
|
|
35119
|
+
}) }, hAsync("slot", { key: '0ca29a2d97a7c38bbf43f8d79e271b874b4d9be8' })));
|
|
35551
35120
|
}
|
|
35552
35121
|
get el() { return getElement(this); }
|
|
35553
35122
|
static get watchers() { return {
|
|
@@ -35643,7 +35212,7 @@ class TabButton {
|
|
|
35643
35212
|
rel,
|
|
35644
35213
|
target,
|
|
35645
35214
|
};
|
|
35646
|
-
return (hAsync(Host, { key: '
|
|
35215
|
+
return (hAsync(Host, { key: '638b93ef40701ec3aefb89b1579eb91aaf6d4f8a', onClick: this.onClick, onKeyup: this.onKeyUp, id: tab !== undefined ? `tab-button-${tab}` : null, class: {
|
|
35647
35216
|
[mode]: true,
|
|
35648
35217
|
'tab-selected': selected,
|
|
35649
35218
|
'tab-disabled': disabled,
|
|
@@ -35655,7 +35224,7 @@ class TabButton {
|
|
|
35655
35224
|
'ion-activatable': true,
|
|
35656
35225
|
'ion-selectable': true,
|
|
35657
35226
|
'ion-focusable': true,
|
|
35658
|
-
} }, hAsync("a", Object.assign({ key: '
|
|
35227
|
+
} }, 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" }))));
|
|
35659
35228
|
}
|
|
35660
35229
|
get el() { return getElement(this); }
|
|
35661
35230
|
static get style() { return {
|
|
@@ -35846,7 +35415,7 @@ class Tabs {
|
|
|
35846
35415
|
return Array.from(this.el.querySelectorAll('ion-tab'));
|
|
35847
35416
|
}
|
|
35848
35417
|
render() {
|
|
35849
|
-
return (hAsync(Host, { key: '
|
|
35418
|
+
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" })));
|
|
35850
35419
|
}
|
|
35851
35420
|
get el() { return getElement(this); }
|
|
35852
35421
|
static get style() { return tabsCss; }
|
|
@@ -35886,9 +35455,9 @@ class Text {
|
|
|
35886
35455
|
}
|
|
35887
35456
|
render() {
|
|
35888
35457
|
const mode = getIonMode$1(this);
|
|
35889
|
-
return (hAsync(Host, { key: '
|
|
35458
|
+
return (hAsync(Host, { key: 'bfaa49d35f43b8036725ae8a322c716fc6e43bdf', class: createColorClasses$1(this.color, {
|
|
35890
35459
|
[mode]: true,
|
|
35891
|
-
}) }, hAsync("slot", { key: '
|
|
35460
|
+
}) }, hAsync("slot", { key: 'c04880cd1935b42cbe60f58fd523b4d8a96072dc' })));
|
|
35892
35461
|
}
|
|
35893
35462
|
static get style() { return textCss; }
|
|
35894
35463
|
static get cmpMeta() { return {
|
|
@@ -36349,7 +35918,7 @@ class Textarea {
|
|
|
36349
35918
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
36350
35919
|
*/
|
|
36351
35920
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
36352
|
-
return (hAsync(Host, { key: '
|
|
35921
|
+
return (hAsync(Host, { key: '2c9de566803dd007cee3639ddd04accb68663b32', class: createColorClasses$1(this.color, {
|
|
36353
35922
|
[mode]: true,
|
|
36354
35923
|
'has-value': hasValue,
|
|
36355
35924
|
'has-focus': hasFocus,
|
|
@@ -36358,7 +35927,7 @@ class Textarea {
|
|
|
36358
35927
|
[`textarea-shape-${shape}`]: shape !== undefined,
|
|
36359
35928
|
[`textarea-label-placement-${labelPlacement}`]: true,
|
|
36360
35929
|
'textarea-disabled': disabled,
|
|
36361
|
-
}) }, hAsync("label", { key: '
|
|
35930
|
+
}) }, 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()));
|
|
36362
35931
|
}
|
|
36363
35932
|
get el() { return getElement(this); }
|
|
36364
35933
|
static get watchers() { return {
|
|
@@ -36421,7 +35990,7 @@ class Thumbnail {
|
|
|
36421
35990
|
registerInstance(this, hostRef);
|
|
36422
35991
|
}
|
|
36423
35992
|
render() {
|
|
36424
|
-
return (hAsync(Host, { key: '
|
|
35993
|
+
return (hAsync(Host, { key: 'b250e01664238f1dca8f9757b15bc3d5d9387ffa', class: getIonMode$1(this) }, hAsync("slot", { key: '72cb568bccabc983c5186a7596ef6c6d4ebf5ad9' })));
|
|
36425
35994
|
}
|
|
36426
35995
|
static get style() { return thumbnailCss; }
|
|
36427
35996
|
static get cmpMeta() { return {
|
|
@@ -37279,9 +36848,9 @@ class Toast {
|
|
|
37279
36848
|
if (layout === 'stacked' && startButtons.length > 0 && endButtons.length > 0) {
|
|
37280
36849
|
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);
|
|
37281
36850
|
}
|
|
37282
|
-
return (hAsync(Host, Object.assign({ key: '
|
|
36851
|
+
return (hAsync(Host, Object.assign({ key: '4a303f9ebb69614e9dca677d9d80a4a275de0d85', tabindex: "-1" }, this.htmlAttributes, { style: {
|
|
37283
36852
|
zIndex: `${60000 + this.overlayIndex}`,
|
|
37284
|
-
}, 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: '
|
|
36853
|
+
}, 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')))));
|
|
37285
36854
|
}
|
|
37286
36855
|
get el() { return getElement(this); }
|
|
37287
36856
|
static get watchers() { return {
|
|
@@ -37593,7 +37162,7 @@ class Toggle {
|
|
|
37593
37162
|
const value = this.getValue();
|
|
37594
37163
|
const rtl = isRTL$1(el) ? 'rtl' : 'ltr';
|
|
37595
37164
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
37596
|
-
return (hAsync(Host, { key: '
|
|
37165
|
+
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, {
|
|
37597
37166
|
[mode]: true,
|
|
37598
37167
|
'in-item': hostContext('ion-item', el),
|
|
37599
37168
|
'toggle-activated': activated,
|
|
@@ -37603,10 +37172,10 @@ class Toggle {
|
|
|
37603
37172
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
37604
37173
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
37605
37174
|
[`toggle-${rtl}`]: true,
|
|
37606
|
-
}) }, hAsync("label", { key: '
|
|
37175
|
+
}) }, 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: {
|
|
37607
37176
|
'label-text-wrapper': true,
|
|
37608
37177
|
'label-text-wrapper-hidden': !hasLabel,
|
|
37609
|
-
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '
|
|
37178
|
+
}, part: "label", id: inputLabelId, onClick: this.onDivLabelClick }, hAsync("slot", { key: '006dd3558264d69ab020c07005b348adc4ecdd5b' }), this.renderHintText()), hAsync("div", { key: 'dd4e52de31caabee41ec1bc58efecd1e213368c9', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
37610
37179
|
}
|
|
37611
37180
|
get el() { return getElement(this); }
|
|
37612
37181
|
static get watchers() { return {
|
|
@@ -37716,10 +37285,10 @@ class Toolbar {
|
|
|
37716
37285
|
this.childrenStyles.forEach((value) => {
|
|
37717
37286
|
Object.assign(childStyles, value);
|
|
37718
37287
|
});
|
|
37719
|
-
return (hAsync(Host, { key: '
|
|
37288
|
+
return (hAsync(Host, { key: 'b849db2863778dee6c5a251bffa1b3a657aeb036', class: Object.assign(Object.assign({}, childStyles), createColorClasses$1(this.color, {
|
|
37720
37289
|
[mode]: true,
|
|
37721
37290
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
37722
|
-
})) }, hAsync("div", { key: '
|
|
37291
|
+
})) }, 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" }))));
|
|
37723
37292
|
}
|
|
37724
37293
|
get el() { return getElement(this); }
|
|
37725
37294
|
static get style() { return {
|
|
@@ -37765,11 +37334,11 @@ class ToolbarTitle {
|
|
|
37765
37334
|
render() {
|
|
37766
37335
|
const mode = getIonMode$1(this);
|
|
37767
37336
|
const size = this.getSize();
|
|
37768
|
-
return (hAsync(Host, { key: '
|
|
37337
|
+
return (hAsync(Host, { key: '44e63f8439df64c470692904427b417e19406476', class: createColorClasses$1(this.color, {
|
|
37769
37338
|
[mode]: true,
|
|
37770
37339
|
[`title-${size}`]: true,
|
|
37771
37340
|
'title-rtl': document.dir === 'rtl',
|
|
37772
|
-
}) }, hAsync("div", { key: '
|
|
37341
|
+
}) }, hAsync("div", { key: '784cf60a0db16045391891cc8fad0c7dbeba4039', class: "toolbar-title" }, hAsync("slot", { key: '0c720a50479ba257e8756337aeb9b0ab7516a227' }))));
|
|
37773
37342
|
}
|
|
37774
37343
|
get el() { return getElement(this); }
|
|
37775
37344
|
static get watchers() { return {
|