@ionic/core 9.0.1-dev.11787949960.1e63841c → 9.0.1-dev.11788285010.17561004
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 +1 -1
- package/components/ion-accordion-group.js +1 -1
- package/components/ion-accordion.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-app.js +1 -1
- package/components/ion-avatar.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-backdrop.js +1 -1
- package/components/ion-badge.js +1 -1
- package/components/ion-breadcrumb.js +1 -1
- package/components/ion-breadcrumbs.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-buttons.js +1 -1
- package/components/ion-card-content.js +1 -1
- package/components/ion-card-header.js +1 -1
- package/components/ion-card-subtitle.js +1 -1
- package/components/ion-card-title.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-checkbox.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-col.js +1 -1
- package/components/ion-content.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-fab-button.js +1 -1
- package/components/ion-fab-list.js +1 -1
- package/components/ion-fab.js +1 -1
- package/components/ion-footer.js +1 -1
- package/components/ion-grid.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-icon.js +1 -1
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input-otp.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-divider.js +1 -1
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- 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 +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu-toggle.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +1 -1
- package/components/ion-picker-column-option.js +1 -1
- package/components/ion-picker-column.js +1 -1
- package/components/ion-picker.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-radio-group.js +1 -1
- package/components/ion-radio.js +1 -1
- package/components/ion-range.js +1 -1
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-ripple-effect.js +1 -1
- package/components/ion-route-redirect.js +1 -1
- package/components/ion-route.js +1 -1
- package/components/ion-router-link.js +1 -1
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-router.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-segment-content.js +1 -1
- package/components/ion-segment-view.js +1 -1
- package/components/ion-segment.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-option.js +1 -1
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/ion-skeleton-text.js +1 -1
- package/components/ion-spinner.js +1 -1
- package/components/ion-split-pane.js +1 -1
- package/components/ion-tab-bar.js +1 -1
- package/components/ion-tab-button.js +1 -1
- package/components/ion-tab.js +1 -1
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +1 -1
- package/components/ion-textarea.js +1 -1
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +1 -1
- package/components/ion-toast.js +1 -1
- package/components/ion-toggle.js +1 -1
- package/components/ion-toolbar.js +1 -1
- package/{dist/ionic/p-BpG7jkT9.js → components/p-66ogmUZU.js} +1 -1
- package/components/p-6Vp915Y7.js +4 -0
- package/components/{p-B2L09UOs.js → p-7PNwKFZi.js} +1 -1
- package/components/{p-C8mPeq0D.js → p-A8MJRBIY.js} +1 -1
- package/components/p-AQcCdH2_.js +4 -0
- package/components/{p-DkEb3SCT.js → p-B6x5_b9w.js} +1 -1
- package/components/{p-CDKY4TZ_.js → p-B8MQjdvk.js} +1 -1
- package/components/{p-CLZPNP7x.js → p-BA_4ZIEg.js} +1 -1
- package/components/{p-CyKlfXdt.js → p-BFtL8t1r.js} +1 -1
- package/components/{p-RRH-7cpd.js → p-BMfgF-Tv.js} +1 -1
- package/components/{p-l-zxxFre.js → p-BPDxVIRr.js} +1 -1
- package/{dist/ionic/p-BC17SPKH.js → components/p-BSARlp49.js} +1 -1
- package/components/p-BdwCtX8Y.js +4 -0
- package/components/p-Bg4OwDwb.js +4 -0
- package/components/{p-CBhGZ6rF.js → p-BgUIV8NQ.js} +1 -1
- package/components/{p-CxiXpCtB.js → p-Bnc0m4SW.js} +1 -1
- package/components/{p-7qDu1bID.js → p-BpLt_Ptn.js} +1 -1
- package/components/{p-C12SAK00.js → p-BqBDq1Ma.js} +1 -1
- package/components/{p-mXsQnyWB.js → p-BrFaQbGY.js} +1 -1
- package/{dist/ionic/p-CoEa7CiN.js → components/p-BuPAFTWI.js} +1 -1
- package/components/{p-CB06XtlF.js → p-Bx2saTHs.js} +1 -1
- package/components/p-BxhE2W85.js +4 -0
- package/components/p-CHswSpKy.js +4 -0
- package/components/p-CQAjyETU.js +4 -0
- package/components/p-CR9OgE6N.js +4 -0
- package/components/{p-CEkamjav.js → p-CWETxTjE.js} +1 -1
- package/components/p-CaZeZIL2.js +4 -0
- package/components/{p-CuS0-WwK.js → p-CaiZOhfC.js} +1 -1
- package/components/{p-BFwL2yyK.js → p-CgvDC7hC.js} +1 -1
- package/components/p-CqyGR9Aq.js +4 -0
- package/components/{p-DMkSsriG.js → p-D7ysFE2B.js} +1 -1
- package/components/p-DCWfzDM8.js +4 -0
- package/{dist/ionic/p-DA88iqXQ.js → components/p-DDdkefwf.js} +1 -1
- package/components/{p-CJTKYpZv.js → p-DEW7CnUc.js} +1 -1
- package/components/p-DQ1IPvZO.js +4 -0
- package/components/{p-BAJ7NctL.js → p-DcOH6-o5.js} +1 -1
- package/components/p-DfdYCsov.js +4 -0
- package/{dist/ionic/p-DoUx_N0R.js → components/p-DhOoEIAs.js} +1 -1
- package/components/p-Dl_7b_UJ.js +4 -0
- package/components/p-DqAI6tg7.js +4 -0
- package/components/p-DrehWDfv.js +4 -0
- package/components/{p-BWHBdLfY.js → p-DysqCsJu.js} +1 -1
- package/components/{p-BqE7e5gH.js → p-H1f2qsk4.js} +1 -1
- package/components/p-HVYBAhFx.js +4 -0
- package/components/{p-BE9noJ1O.js → p-Kmrg3Fed.js} +1 -1
- package/{dist/ionic/p-wdSUbx5C.js → components/p-RFfE9hF6.js} +1 -1
- package/components/{p-Bcm-GVQM.js → p-SR-LLqp_.js} +1 -1
- package/components/p-eFI3mtEX.js +4 -0
- package/components/{p-5rFO7X8J.js → p-gFwXiYC_.js} +1 -1
- package/components/{p-COxY7PLK.js → p-tX3UxCnU.js} +1 -1
- package/components/{p-VTfnz_8u.js → p-v2NpoOHp.js} +1 -1
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/dist/cjs/{animation-ihPP_z2n.js → animation-D-OqR4a4.js} +1 -1
- package/dist/cjs/{app-globals-BlkzA410.js → app-globals-BzgwARwJ.js} +1 -1
- package/dist/cjs/{button-active-ItGBjzmO.js → button-active-BlWSD7uK.js} +1 -1
- package/dist/cjs/{format-CPIqtp4x.js → format-D7ig6Vm0.js} +1 -1
- package/dist/cjs/{framework-delegate-DhyWUPGg.js → framework-delegate-BZUx4TnE.js} +1 -1
- package/dist/cjs/{hardware-back-button-D5f_kASb.js → hardware-back-button-JOAEFSzc.js} +1 -1
- package/dist/cjs/{helpers-BCLkFTTd.js → helpers-Dj5o76mq.js} +1 -1
- package/dist/cjs/{index-CldjPPyP.js → index-2sO-zkZ2.js} +4 -4
- package/dist/cjs/{index-Bgz6BcKx.js → index-BrVMoqUk.js} +16 -50
- package/dist/cjs/{index-49DTLc_Z.js → index-C8zH6b3d.js} +2 -2
- package/dist/cjs/{index-BcyiqD6R.js → index-CZ6vzt_q.js} +5 -5
- package/dist/cjs/{index-xum7jdbq.js → index-Csue6G3m.js} +2 -2
- package/dist/cjs/{index-BocV_y-c.js → index-EJLjthTK.js} +1 -2
- package/dist/cjs/index.cjs.js +12 -12
- package/dist/cjs/{input-shims-Jisy7U7-.js → input-shims-Bh7bnt2v.js} +3 -3
- package/dist/cjs/{input.utils-BDTpGrfn.js → input.utils-Cq3g9uHy.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +29 -45
- package/dist/cjs/ion-alert.cjs.entry.js +21 -29
- package/dist/cjs/ion-app_8.cjs.entry.js +16 -38
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-back-button.cjs.entry.js +3 -3
- package/dist/cjs/ion-backdrop.cjs.entry.js +2 -2
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-card_5.cjs.entry.js +3 -3
- package/dist/cjs/ion-checkbox.cjs.entry.js +4 -4
- package/dist/cjs/ion-chip.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
- package/dist/cjs/ion-datetime.cjs.entry.js +24 -32
- package/dist/cjs/ion-fab_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-img.cjs.entry.js +3 -3
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-input-otp.cjs.entry.js +3 -3
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +5 -5
- package/dist/cjs/ion-item-option_3.cjs.entry.js +15 -13
- package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
- package/dist/cjs/ion-loading.cjs.entry.js +10 -14
- package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-modal.cjs.entry.js +32 -85
- package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column.cjs.entry.js +46 -210
- package/dist/cjs/ion-picker.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +10 -23
- package/dist/cjs/ion-progress-bar.cjs.entry.js +3 -3
- package/dist/cjs/ion-radio_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-range.cjs.entry.js +4 -4
- package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +2 -2
- package/dist/cjs/ion-route_4.cjs.entry.js +4 -4
- package/dist/cjs/ion-searchbar.cjs.entry.js +3 -3
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment_2.cjs.entry.js +10 -14
- package/dist/cjs/ion-select-modal.cjs.entry.js +8 -8
- package/dist/cjs/ion-select_3.cjs.entry.js +47 -57
- package/dist/cjs/ion-spinner.cjs.entry.js +2 -2
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +3 -3
- 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 +5 -5
- package/dist/cjs/ion-toast.cjs.entry.js +8 -8
- package/dist/cjs/ion-toggle.cjs.entry.js +4 -4
- package/dist/cjs/{ionic-global-BMU-Us1Q.js → ionic-global-DvgIzM2F.js} +1 -1
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-OCcCN--B.js → ios.transition-zIgdoSYe.js} +4 -4
- package/dist/cjs/{item-multiple-inputs-BH9yPC66.js → item-multiple-inputs-DG-ZGm6j.js} +1 -1
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-D0o2IIbo.js → md.transition-CXeJ9rfh.js} +4 -4
- package/dist/cjs/{overlays-HN9joo1Z.js → overlays-Bg0auTQa.js} +34 -59
- package/dist/cjs/{select-option-render-BPjGDlsG.js → select-option-render-7m1WdFzF.js} +2 -2
- package/dist/cjs/{slot-mutation-controller-IQ250LoG.js → slot-mutation-controller-BJEJzx_e.js} +1 -1
- package/dist/cjs/{status-tap-Bakl9czs.js → status-tap-DxbUM5XX.js} +3 -3
- package/dist/cjs/{swipe-back-Cv4OZVJ5.js → swipe-back-F_DBt-Aw.js} +2 -2
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/action-sheet/action-sheet.js +20 -36
- package/dist/collection/components/alert/alert.js +12 -20
- package/dist/collection/components/content/content.js +4 -26
- package/dist/collection/components/datetime/datetime.js +17 -25
- package/dist/collection/components/item-sliding/item-sliding.js +12 -10
- package/dist/collection/components/loading/loading.js +3 -7
- package/dist/collection/components/modal/modal.ios.css +1 -12
- package/dist/collection/components/modal/modal.js +22 -75
- package/dist/collection/components/modal/modal.md.css +1 -12
- package/dist/collection/components/picker-column/picker-column.js +43 -207
- package/dist/collection/components/popover/popover.js +3 -16
- package/dist/collection/components/segment-button/segment-button.js +7 -11
- package/dist/collection/components/select/select.js +39 -49
- package/dist/collection/utils/overlays.js +29 -53
- package/dist/collection/utils/test/playwright/index.js +0 -1
- package/dist/docs.json +48 -279
- package/dist/esm/{animation-B6KGUJwl.js → animation-TxGPYeDn.js} +1 -1
- package/dist/esm/{app-globals-BvutUX8P.js → app-globals-Do8rJest.js} +1 -1
- package/dist/esm/{button-active-DRNebs9r.js → button-active-ChA4D-ml.js} +1 -1
- package/dist/esm/{format-BF3btM7P.js → format-CVk5e_GP.js} +1 -1
- package/dist/esm/{framework-delegate-60cEIAgt.js → framework-delegate-DaLWnISz.js} +1 -1
- package/dist/esm/{hardware-back-button-rhkwRNk2.js → hardware-back-button-D8W4L0JP.js} +1 -1
- package/dist/esm/{helpers-DLLANtRS.js → helpers-BIgoInJU.js} +1 -1
- package/dist/esm/{index-DOrtAUWV.js → index-BmOR8tCv.js} +2 -2
- package/dist/esm/{index-D_7MeuVD.js → index-C5ZdL0qp.js} +5 -5
- package/dist/esm/{index-BZHVn0iF.js → index-C8Dsa6li.js} +4 -4
- package/dist/esm/{index-h81G-QbJ.js → index-CKYcsw8f.js} +16 -50
- package/dist/esm/{index-Bl4BUvBL.js → index-DHw2lZxe.js} +2 -2
- package/dist/esm/{index-JgU5uTSY.js → index-elneMH8y.js} +2 -2
- package/dist/esm/index.js +12 -12
- package/dist/esm/{input-shims-C2ipc_XX.js → input-shims-09NN97kF.js} +3 -3
- package/dist/esm/{input.utils-D-qoPjqr.js → input.utils-BxyH9l1w.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +29 -45
- package/dist/esm/ion-alert.entry.js +21 -29
- package/dist/esm/ion-app_8.entry.js +16 -38
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-back-button.entry.js +3 -3
- package/dist/esm/ion-backdrop.entry.js +2 -2
- package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
- package/dist/esm/ion-button_2.entry.js +3 -3
- package/dist/esm/ion-card_5.entry.js +3 -3
- package/dist/esm/ion-checkbox.entry.js +4 -4
- package/dist/esm/ion-chip.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +2 -2
- package/dist/esm/ion-datetime-button.entry.js +4 -4
- package/dist/esm/ion-datetime.entry.js +24 -32
- package/dist/esm/ion-fab_3.entry.js +3 -3
- package/dist/esm/ion-img.entry.js +3 -3
- package/dist/esm/ion-infinite-scroll_2.entry.js +5 -5
- package/dist/esm/ion-input-otp.entry.js +3 -3
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +5 -5
- package/dist/esm/ion-item-option_3.entry.js +15 -13
- package/dist/esm/ion-item_8.entry.js +3 -3
- package/dist/esm/ion-loading.entry.js +10 -14
- package/dist/esm/ion-menu_3.entry.js +8 -8
- package/dist/esm/ion-modal.entry.js +32 -85
- package/dist/esm/ion-nav_2.entry.js +6 -6
- package/dist/esm/ion-picker-column-option.entry.js +3 -3
- package/dist/esm/ion-picker-column.entry.js +47 -211
- package/dist/esm/ion-picker.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +10 -23
- package/dist/esm/ion-progress-bar.entry.js +3 -3
- package/dist/esm/ion-radio_2.entry.js +4 -4
- package/dist/esm/ion-range.entry.js +4 -4
- package/dist/esm/ion-refresher_2.entry.js +6 -6
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-ripple-effect.entry.js +2 -2
- package/dist/esm/ion-route_4.entry.js +4 -4
- package/dist/esm/ion-searchbar.entry.js +3 -3
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +1 -1
- package/dist/esm/ion-segment_2.entry.js +10 -14
- package/dist/esm/ion-select-modal.entry.js +8 -8
- package/dist/esm/ion-select_3.entry.js +47 -57
- package/dist/esm/ion-spinner.entry.js +2 -2
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +3 -3
- 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 +5 -5
- package/dist/esm/ion-toast.entry.js +8 -8
- package/dist/esm/ion-toggle.entry.js +4 -4
- package/dist/esm/{ionic-global-B7I1sdvg.js → ionic-global-lrowsHfi.js} +1 -1
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-C-6IaIxe.js → ios.transition-BQhADrk1.js} +4 -4
- package/dist/esm/{item-multiple-inputs-DI91syHS.js → item-multiple-inputs-D_N3fDkD.js} +1 -1
- package/dist/esm/loader.js +4 -4
- package/dist/esm/{md.transition-dyqt0t0d.js → md.transition-D58NpmRa.js} +4 -4
- package/dist/esm/{overlays-Dz2cGX5q.js → overlays-BpnIFlXI.js} +35 -59
- package/dist/esm/{select-option-render-CUJpruSC.js → select-option-render-lIuu64EV.js} +2 -2
- package/dist/esm/{slot-mutation-controller-wFuztlVD.js → slot-mutation-controller-rS_T3FDR.js} +1 -1
- package/dist/esm/{status-tap-Dn_42wiy.js → status-tap-CpFQMLl6.js} +3 -3
- package/dist/esm/{swipe-back-CqOqrHW7.js → swipe-back-rmc7zeNW.js} +2 -2
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-025763b2.entry.js → p-05800a02.entry.js} +1 -1
- package/dist/ionic/p-0eb50dca.entry.js +4 -0
- package/dist/ionic/{p-0b52d921.entry.js → p-16e9f542.entry.js} +1 -1
- package/dist/ionic/p-18d532a3.entry.js +4 -0
- package/dist/ionic/{p-a2fccdaa.entry.js → p-1db2afb4.entry.js} +1 -1
- package/dist/ionic/{p-5ed60413.entry.js → p-1df75f9e.entry.js} +1 -1
- package/dist/ionic/{p-2ff12c8a.entry.js → p-295ff427.entry.js} +1 -1
- package/dist/ionic/p-34b9379b.entry.js +4 -0
- package/dist/ionic/{p-cc749877.entry.js → p-39a8d4e0.entry.js} +1 -1
- package/dist/ionic/p-4437015c.entry.js +4 -0
- package/dist/ionic/{p-53ba5651.entry.js → p-478035a7.entry.js} +1 -1
- package/dist/ionic/{p-1a20571c.entry.js → p-485fb218.entry.js} +1 -1
- package/dist/ionic/p-48c859fe.entry.js +4 -0
- package/dist/ionic/p-49b9d405.entry.js +4 -0
- package/dist/ionic/{p-d1539609.entry.js → p-56307aea.entry.js} +1 -1
- package/dist/ionic/{p-eeb65463.entry.js → p-5ee2d7b1.entry.js} +1 -1
- package/dist/ionic/{p-ca57763d.entry.js → p-5f216b79.entry.js} +1 -1
- package/dist/ionic/{p-fb4dabbb.entry.js → p-61c799d1.entry.js} +1 -1
- package/dist/ionic/{p-fe80ebb1.entry.js → p-63bbba8d.entry.js} +1 -1
- package/dist/ionic/p-68507e70.entry.js +4 -0
- package/dist/ionic/{p-43bae3f5.entry.js → p-6f048604.entry.js} +1 -1
- package/dist/ionic/{p-dadcb3d2.entry.js → p-70ee8888.entry.js} +1 -1
- package/dist/ionic/{p-7c859f42.entry.js → p-72ad7c64.entry.js} +1 -1
- package/dist/ionic/{p-90e06e60.entry.js → p-75887ee0.entry.js} +1 -1
- package/dist/ionic/{p-bdc01880.entry.js → p-873a315a.entry.js} +1 -1
- package/dist/ionic/{p-f0645c98.entry.js → p-881b6954.entry.js} +1 -1
- package/dist/ionic/p-886d9e66.entry.js +4 -0
- package/dist/ionic/{p-5dc53bdf.entry.js → p-8dd4c026.entry.js} +1 -1
- package/dist/ionic/{p-9f2d3987.entry.js → p-8e007f11.entry.js} +1 -1
- package/dist/ionic/p-8f464a8f.entry.js +4 -0
- package/dist/ionic/p-8f51110d.entry.js +4 -0
- package/dist/ionic/{p-1f66c230.entry.js → p-90ba736e.entry.js} +1 -1
- package/dist/ionic/{p-8d72244b.entry.js → p-959df5f8.entry.js} +1 -1
- package/dist/ionic/{p-8e388a30.entry.js → p-9e455875.entry.js} +1 -1
- package/{components/p-BcuLPPAE.js → dist/ionic/p-9wczfs_v.js} +1 -1
- package/dist/ionic/{p-C10K-FJg.js → p-B1Y7LZhV.js} +1 -1
- package/dist/ionic/p-B5RyLYvl.js +4 -0
- package/dist/ionic/p-BQv5i5Kf.js +4 -0
- package/dist/ionic/{p-CH8tk7Pr.js → p-BZVE25Gu.js} +1 -1
- package/{components/p-CdSLe3Q3.js → dist/ionic/p-BZxjcGRP.js} +1 -1
- package/dist/ionic/p-BnGA34Pd.js +4 -0
- package/dist/ionic/{p-Q9w8L_Sw.js → p-ByLaqOPm.js} +1 -1
- package/dist/ionic/p-C06QNN45.js +4 -0
- package/dist/ionic/{p-KJ5pLPiN.js → p-C4IBDDj6.js} +1 -1
- package/dist/ionic/p-CCVlNZ__.js +4 -0
- package/dist/ionic/{p-CTBfxfjC.js → p-CDBop-kz.js} +1 -1
- package/dist/ionic/p-CKYcsw8f.js +5 -0
- package/dist/ionic/p-CazSodad.js +4 -0
- package/dist/ionic/{p-S1shXW5M.js → p-ClrlQU2y.js} +1 -1
- package/{components/p-DG-dUCKp.js → dist/ionic/p-D0dfUysx.js} +1 -1
- package/dist/ionic/{p-C2BY_4Wp.js → p-D9yvytgv.js} +1 -1
- package/{components/p-DH0rRXjx.js → dist/ionic/p-DF_Uqql8.js} +1 -1
- package/dist/ionic/{p-DMj-M2c4.js → p-DXJgZWgi.js} +1 -1
- package/dist/ionic/p-DdhHqKj-.js +4 -0
- package/dist/ionic/{p-BRc8gq5v.js → p-De0eY881.js} +1 -1
- package/dist/ionic/p-DgUL3JbO.js +4 -0
- package/dist/ionic/{p-06ZcwRF5.js → p-RzUn7cKs.js} +1 -1
- package/dist/ionic/p-VquyMbjp.js +4 -0
- package/dist/ionic/{p-2aabd568.entry.js → p-a0fee899.entry.js} +1 -1
- package/dist/ionic/{p-9e688396.entry.js → p-a54bcd16.entry.js} +1 -1
- package/dist/ionic/{p-eaeac54e.entry.js → p-aebc4d69.entry.js} +1 -1
- package/dist/ionic/{p-9452849d.entry.js → p-b5f37106.entry.js} +1 -1
- package/dist/ionic/{p-082b8125.entry.js → p-b62bfce8.entry.js} +1 -1
- package/dist/ionic/p-b7a11b58.entry.js +4 -0
- package/dist/ionic/{p-546b1109.entry.js → p-bbf6878c.entry.js} +1 -1
- package/dist/ionic/{p-e93cc1e1.entry.js → p-c49165af.entry.js} +1 -1
- package/dist/ionic/{p-9eba0d8a.entry.js → p-cad4eccf.entry.js} +1 -1
- package/dist/ionic/{p-d1b888de.entry.js → p-cdc5115e.entry.js} +1 -1
- package/dist/ionic/{p-47b8b59a.entry.js → p-d3384a40.entry.js} +1 -1
- package/dist/ionic/{p-f607ad4f.entry.js → p-d8bae128.entry.js} +1 -1
- package/dist/ionic/{p-026e2e4c.entry.js → p-d8deff43.entry.js} +1 -1
- package/dist/ionic/{p-6d84fa9f.entry.js → p-ddfb7e5f.entry.js} +1 -1
- package/dist/ionic/{p-ecfc9c71.entry.js → p-e538f18d.entry.js} +1 -1
- package/dist/ionic/{p-83aa7d47.entry.js → p-f376876b.entry.js} +1 -1
- package/dist/ionic/p-f521b13c.entry.js +4 -0
- package/dist/ionic/{p-ac71362a.entry.js → p-fbd83d4c.entry.js} +1 -1
- package/dist/types/components/action-sheet/action-sheet.d.ts +0 -10
- package/dist/types/components/alert/alert.d.ts +0 -7
- package/dist/types/components/content/content.d.ts +0 -7
- package/dist/types/components/modal/modal.d.ts +0 -8
- package/dist/types/components/picker-column/picker-column.d.ts +0 -42
- package/dist/types/components.d.ts +1 -1
- package/dist/types/stencil-public-runtime.d.ts +0 -12
- package/dist/types/utils/overlays.d.ts +0 -9
- package/dist/types/utils/test/playwright/index.d.ts +0 -1
- package/hydrate/index.js +213 -558
- package/hydrate/index.mjs +213 -558
- package/loader/index.d.ts +1 -1
- package/package.json +2 -2
- package/components/p-BhlP16sB.js +0 -4
- package/components/p-C8Tp0cQy.js +0 -4
- package/components/p-CFtAWaB6.js +0 -4
- package/components/p-CQxPXWNM.js +0 -4
- package/components/p-CRcX0EGs.js +0 -4
- package/components/p-CVNvmbDp.js +0 -4
- package/components/p-CXpy69Ei.js +0 -4
- package/components/p-CoGD-oMG.js +0 -4
- package/components/p-CpYeYl3u.js +0 -4
- package/components/p-D2XJVty5.js +0 -4
- package/components/p-DALTMT_o.js +0 -4
- package/components/p-Dr-rBSUW.js +0 -4
- package/components/p-MHpJ2A_m.js +0 -4
- package/components/p-N6lZFXYR.js +0 -4
- package/components/p-QgdyH-Zs.js +0 -4
- package/components/p-UKksD3f9.js +0 -4
- package/components/p-fP0QF3iG.js +0 -4
- package/components/p-ntAkt4Ra.js +0 -4
- package/components/p-ufB0gCSU.js +0 -4
- package/components/p-z-BF3clL.js +0 -4
- package/dist/collection/utils/test/late-props/late-props.js +0 -69
- package/dist/collection/utils/test/playwright/detach-reattach.js +0 -23
- package/dist/ionic/p-010601fe.entry.js +0 -4
- package/dist/ionic/p-0c2b3555.entry.js +0 -4
- package/dist/ionic/p-326e0d05.entry.js +0 -4
- package/dist/ionic/p-392079fa.entry.js +0 -4
- package/dist/ionic/p-4778b90f.entry.js +0 -4
- package/dist/ionic/p-639d3b55.entry.js +0 -4
- package/dist/ionic/p-7dec112e.entry.js +0 -4
- package/dist/ionic/p-9fef333a.entry.js +0 -4
- package/dist/ionic/p-BRa1Jjxr.js +0 -4
- package/dist/ionic/p-Cc-fFNy8.js +0 -4
- package/dist/ionic/p-Cc4w3fVf.js +0 -4
- package/dist/ionic/p-CvRL-Eju.js +0 -4
- package/dist/ionic/p-D_IgV7tz.js +0 -4
- package/dist/ionic/p-b8cd338d.entry.js +0 -4
- package/dist/ionic/p-d85e59b1.entry.js +0 -4
- package/dist/ionic/p-dad2f3e4.entry.js +0 -4
- package/dist/ionic/p-eab77a74.entry.js +0 -4
- package/dist/ionic/p-h81G-QbJ.js +0 -6
- package/dist/ionic/p-nxFQkv7U.js +0 -4
- package/dist/ionic/p-w3KTiug9.js +0 -4
- package/dist/types/utils/test/playwright/detach-reattach.d.ts +0 -13
package/hydrate/index.js
CHANGED
|
@@ -422,7 +422,7 @@ const appGlobalScript = initialize || (() => {});
|
|
|
422
422
|
const globalScripts = appGlobalScript;
|
|
423
423
|
|
|
424
424
|
/*
|
|
425
|
-
Stencil Hydrate Platform v4.
|
|
425
|
+
Stencil Hydrate Platform v4.43.5 | MIT Licensed | https://stenciljs.com
|
|
426
426
|
*/
|
|
427
427
|
var __create = Object.create;
|
|
428
428
|
var __defProp = Object.defineProperty;
|
|
@@ -757,8 +757,6 @@ var DEFAULT_DOC_DATA = {
|
|
|
757
757
|
};
|
|
758
758
|
var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
|
|
759
759
|
var XLINK_NS = "http://www.w3.org/1999/xlink";
|
|
760
|
-
var MAX_LAZY_LOAD_RETRIES = 3;
|
|
761
|
-
var LAZY_LOAD_RETRY_INTERVAL_MS = 1e3;
|
|
762
760
|
|
|
763
761
|
// src/utils/style.ts
|
|
764
762
|
function createStyleSheetIfNeededAndSupported(styles2) {
|
|
@@ -822,7 +820,7 @@ function getHostSlotNodes(childNodes, hostName, slotName) {
|
|
|
822
820
|
slottedNodes.push(childNode);
|
|
823
821
|
if (typeof slotName !== "undefined") return slottedNodes;
|
|
824
822
|
}
|
|
825
|
-
slottedNodes = [...slottedNodes, ...getHostSlotNodes(
|
|
823
|
+
slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];
|
|
826
824
|
}
|
|
827
825
|
return slottedNodes;
|
|
828
826
|
}
|
|
@@ -1066,11 +1064,6 @@ var h = (nodeName, vnodeData, ...children) => {
|
|
|
1066
1064
|
} else if (child != null && typeof child !== "boolean") {
|
|
1067
1065
|
if (simple = typeof nodeName !== "function" && !isComplexType(child)) {
|
|
1068
1066
|
child = String(child);
|
|
1069
|
-
} else if (typeof nodeName !== "function" && child.$flags$ === void 0) {
|
|
1070
|
-
{
|
|
1071
|
-
consoleError("Invalid vNode child");
|
|
1072
|
-
}
|
|
1073
|
-
continue;
|
|
1074
1067
|
}
|
|
1075
1068
|
if (simple && lastSimple) {
|
|
1076
1069
|
vNodeChildren[vNodeChildren.length - 1].$text$ += child;
|
|
@@ -2306,7 +2299,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
|
|
|
2306
2299
|
}
|
|
2307
2300
|
}
|
|
2308
2301
|
if (newValue == null || newValue === false) {
|
|
2309
|
-
if (newValue !== false || elm.getAttribute(memberName) === ""
|
|
2302
|
+
if (newValue !== false || elm.getAttribute(memberName) === "") {
|
|
2310
2303
|
if (xlink) {
|
|
2311
2304
|
elm.removeAttributeNS(XLINK_NS, memberName);
|
|
2312
2305
|
} else {
|
|
@@ -2323,8 +2316,6 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
|
|
|
2323
2316
|
}
|
|
2324
2317
|
}
|
|
2325
2318
|
};
|
|
2326
|
-
var ENUMERATED_ATTRIBUTES = /* @__PURE__ */ new Set(["draggable", "contenteditable", "spellcheck"]);
|
|
2327
|
-
var isEnumeratedAttribute = (attrName) => ENUMERATED_ATTRIBUTES.has(attrName) || attrName.startsWith("aria-");
|
|
2328
2319
|
var parseClassListRegex = /\s/;
|
|
2329
2320
|
var parseClassList = (value) => {
|
|
2330
2321
|
if (typeof value === "object" && value && "baseVal" in value) {
|
|
@@ -2727,10 +2718,7 @@ var markSlotContentForRelocation = (elm) => {
|
|
|
2727
2718
|
const slotName = childNode["s-sn"];
|
|
2728
2719
|
for (j = hostContentNodes.length - 1; j >= 0; j--) {
|
|
2729
2720
|
node = hostContentNodes[j];
|
|
2730
|
-
if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] &&
|
|
2731
|
-
// `slotName === ''` itself - a matched default node's cached `s-sn` is `''` too, which
|
|
2732
|
-
// would trivially "match" on every re-render and force pointless re-insertion.
|
|
2733
|
-
(!node["s-sh"] || node["s-sh"] !== childNode["s-hn"] || slotName !== "" && getSlotName(node) === slotName)) {
|
|
2721
|
+
if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && (!node["s-sh"] || node["s-sh"] !== childNode["s-hn"])) {
|
|
2734
2722
|
if (isNodeLocatedInSlot(node, slotName)) {
|
|
2735
2723
|
let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
|
|
2736
2724
|
checkSlotFallbackVisibility = true;
|
|
@@ -2800,7 +2788,7 @@ var insertBefore = (parent, newNode, reference, isInitialLoad) => {
|
|
|
2800
2788
|
return newNode;
|
|
2801
2789
|
}
|
|
2802
2790
|
}
|
|
2803
|
-
if (
|
|
2791
|
+
if (parent.__insertBefore) {
|
|
2804
2792
|
return parent.__insertBefore(newNode, reference);
|
|
2805
2793
|
} else {
|
|
2806
2794
|
return parent == null ? void 0 : parent.insertBefore(newNode, reference);
|
|
@@ -3305,12 +3293,10 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
3305
3293
|
|
|
3306
3294
|
// src/runtime/initialize-component.ts
|
|
3307
3295
|
var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
3308
|
-
var _a2;
|
|
3309
3296
|
let Cstr;
|
|
3310
3297
|
try {
|
|
3311
3298
|
if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
|
|
3312
3299
|
hostRef.$flags$ |= 32 /* hasInitializedComponent */;
|
|
3313
|
-
hostRef.$flags$ &= -1025 /* hasFailedLoad */;
|
|
3314
3300
|
const bundleId = cmpMeta.$lazyBundleId$;
|
|
3315
3301
|
if (bundleId) {
|
|
3316
3302
|
const CstrImport = loadModule(cmpMeta);
|
|
@@ -3322,11 +3308,6 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
|
3322
3308
|
Cstr = CstrImport;
|
|
3323
3309
|
}
|
|
3324
3310
|
if (!Cstr) {
|
|
3325
|
-
hostRef.$flags$ &= -33 /* hasInitializedComponent */;
|
|
3326
|
-
hostRef.$loadRetryCount$ = ((_a2 = hostRef.$loadRetryCount$) != null ? _a2 : 0) + 1;
|
|
3327
|
-
if (hostRef.$loadRetryCount$ < MAX_LAZY_LOAD_RETRIES) {
|
|
3328
|
-
hostRef.$flags$ |= 1024 /* hasFailedLoad */;
|
|
3329
|
-
}
|
|
3330
3311
|
throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
|
|
3331
3312
|
}
|
|
3332
3313
|
if (!Cstr.isProxied) {
|
|
@@ -3406,7 +3387,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
|
3406
3387
|
hostRef.$onRenderResolve$();
|
|
3407
3388
|
hostRef.$onRenderResolve$ = void 0;
|
|
3408
3389
|
}
|
|
3409
|
-
if (hostRef.$onReadyResolve$
|
|
3390
|
+
if (hostRef.$onReadyResolve$) {
|
|
3410
3391
|
hostRef.$onReadyResolve$(elm);
|
|
3411
3392
|
}
|
|
3412
3393
|
}
|
|
@@ -3465,8 +3446,6 @@ var connectedCallback = (elm) => {
|
|
|
3465
3446
|
addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
|
|
3466
3447
|
if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
|
|
3467
3448
|
fireConnectedCallback(hostRef.$lazyInstance$, elm);
|
|
3468
|
-
} else if (hostRef.$flags$ & 1024 /* hasFailedLoad */) {
|
|
3469
|
-
setTimeout(() => initializeComponent(elm, hostRef, cmpMeta), LAZY_LOAD_RETRY_INTERVAL_MS);
|
|
3470
3449
|
} else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
|
|
3471
3450
|
hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$, elm));
|
|
3472
3451
|
}
|
|
@@ -7982,15 +7961,6 @@ const activeAnimations = new WeakMap();
|
|
|
7982
7961
|
const isBackdropAlwaysBlocking = (el) => {
|
|
7983
7962
|
return el.showBackdrop !== false && !((el.backdropBreakpoint ?? 0) > 0);
|
|
7984
7963
|
};
|
|
7985
|
-
/**
|
|
7986
|
-
* Whether the overlay takes the app root out of the accessibility tree and
|
|
7987
|
-
* blocks body scroll while presented. Toasts never do, modal and popover can
|
|
7988
|
-
* opt out with `focusTrap={false}`, and a backdrop that does not block
|
|
7989
|
-
* (`showBackdrop={false}`, or a `backdropBreakpoint` above 0) is excluded.
|
|
7990
|
-
*/
|
|
7991
|
-
const locksAppRoot = (el) => {
|
|
7992
|
-
return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
|
|
7993
|
-
};
|
|
7994
7964
|
const createController = (tagName) => {
|
|
7995
7965
|
return {
|
|
7996
7966
|
create(options) {
|
|
@@ -8359,13 +8329,6 @@ const getPresentedOverlay = (doc, overlayTag, id) => {
|
|
|
8359
8329
|
// Otherwise, return the last overlay with the given id
|
|
8360
8330
|
return (id === undefined ? overlays : overlays.filter((o) => o.id === id)).slice(-1)[0];
|
|
8361
8331
|
};
|
|
8362
|
-
/**
|
|
8363
|
-
* The element an app nests its views under. Overlays hide this rather than the
|
|
8364
|
-
* whole root, so the overlay itself (a sibling) stays reachable.
|
|
8365
|
-
*/
|
|
8366
|
-
const getViewContainer = () => {
|
|
8367
|
-
return getAppRoot(document).querySelector('ion-router-outlet, #ion-view-container-root');
|
|
8368
|
-
};
|
|
8369
8332
|
/**
|
|
8370
8333
|
* When an overlay is presented, the main
|
|
8371
8334
|
* focus is the overlay not the page content.
|
|
@@ -8389,7 +8352,8 @@ const getViewContainer = () => {
|
|
|
8389
8352
|
* for main content.
|
|
8390
8353
|
*/
|
|
8391
8354
|
const setRootAriaHidden = (hidden = false) => {
|
|
8392
|
-
const
|
|
8355
|
+
const root = getAppRoot(document);
|
|
8356
|
+
const viewContainer = root.querySelector('ion-router-outlet, #ion-view-container-root');
|
|
8393
8357
|
if (!viewContainer) {
|
|
8394
8358
|
return;
|
|
8395
8359
|
}
|
|
@@ -8414,42 +8378,15 @@ const cleanupRootFocusTrapAccessibility = () => {
|
|
|
8414
8378
|
return;
|
|
8415
8379
|
}
|
|
8416
8380
|
const remainingOverlays = getPresentedOverlays(document);
|
|
8417
|
-
const hasRemainingLocking = remainingOverlays.some((o) =>
|
|
8381
|
+
const hasRemainingLocking = remainingOverlays.some((o) => {
|
|
8382
|
+
const el = o;
|
|
8383
|
+
return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
|
|
8384
|
+
});
|
|
8418
8385
|
if (!hasRemainingLocking) {
|
|
8419
8386
|
setRootAriaHidden(false);
|
|
8420
8387
|
document.body.classList.remove(BACKDROP_NO_SCROLL);
|
|
8421
8388
|
}
|
|
8422
8389
|
};
|
|
8423
|
-
/**
|
|
8424
|
-
* Applies the root lock itself: `aria-hidden` on the view container, and
|
|
8425
|
-
* `backdrop-no-scroll` on the body. Shared by `present()` and the restore
|
|
8426
|
-
* below, which have to stay in lockstep.
|
|
8427
|
-
*/
|
|
8428
|
-
const applyRootLock = (el) => {
|
|
8429
|
-
// Hiding the container the overlay now sits in would hide the overlay too.
|
|
8430
|
-
if (!getViewContainer()?.contains(el)) {
|
|
8431
|
-
setRootAriaHidden(true);
|
|
8432
|
-
}
|
|
8433
|
-
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
8434
|
-
};
|
|
8435
|
-
/**
|
|
8436
|
-
* Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
|
|
8437
|
-
* Call from `connectedCallback` when the overlay is still presented.
|
|
8438
|
-
*
|
|
8439
|
-
* A synchronous move keeps the overlay connected, so the lock survives. A
|
|
8440
|
-
* detach with a re-insert in a later task releases it, which is the shape a
|
|
8441
|
-
* framework produces when it takes a subtree out and puts it back.
|
|
8442
|
-
*/
|
|
8443
|
-
const restoreRootFocusTrapAccessibility = (overlayEl) => {
|
|
8444
|
-
if (typeof document === 'undefined') {
|
|
8445
|
-
return;
|
|
8446
|
-
}
|
|
8447
|
-
const el = overlayEl;
|
|
8448
|
-
if (!locksAppRoot(el)) {
|
|
8449
|
-
return;
|
|
8450
|
-
}
|
|
8451
|
-
applyRootLock(el);
|
|
8452
|
-
};
|
|
8453
8390
|
const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
|
|
8454
8391
|
if (overlay.presented) {
|
|
8455
8392
|
return;
|
|
@@ -8466,7 +8403,15 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
8466
8403
|
restoreElementFocus(overlay.el);
|
|
8467
8404
|
}
|
|
8468
8405
|
/**
|
|
8469
|
-
*
|
|
8406
|
+
* Due to accessibility guidelines, toasts do not have
|
|
8407
|
+
* focus traps.
|
|
8408
|
+
*
|
|
8409
|
+
* All other overlays should have focus traps to prevent
|
|
8410
|
+
* the keyboard focus from leaving the overlay unless
|
|
8411
|
+
* developers explicitly opt out (for example, sheet
|
|
8412
|
+
* modals that should permit background interaction).
|
|
8413
|
+
*
|
|
8414
|
+
* Note: Some apps move inline overlays to a specific container
|
|
8470
8415
|
* during the willPresent lifecycle (e.g., React portals via
|
|
8471
8416
|
* onWillPresent). Defer applying aria-hidden/inert to the app
|
|
8472
8417
|
* root until after willPresent so we can detect where the
|
|
@@ -8475,11 +8420,18 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
8475
8420
|
* to avoid disabling the overlay.
|
|
8476
8421
|
*/
|
|
8477
8422
|
const overlayEl = overlay.el;
|
|
8478
|
-
const
|
|
8423
|
+
const shouldTrapFocus = overlayEl.tagName !== 'ION-TOAST' && overlayEl.focusTrap !== false;
|
|
8424
|
+
const shouldLockRoot = shouldTrapFocus && isBackdropAlwaysBlocking(overlayEl);
|
|
8479
8425
|
overlay.presented = true;
|
|
8480
8426
|
overlay.willPresent.emit();
|
|
8481
8427
|
if (shouldLockRoot) {
|
|
8482
|
-
|
|
8428
|
+
const root = getAppRoot(document);
|
|
8429
|
+
const viewContainer = root.querySelector('ion-router-outlet, #ion-view-container-root');
|
|
8430
|
+
const overlayInsideViewContainer = viewContainer ? viewContainer.contains(overlayEl) : false;
|
|
8431
|
+
if (!overlayInsideViewContainer) {
|
|
8432
|
+
setRootAriaHidden(true);
|
|
8433
|
+
}
|
|
8434
|
+
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
8483
8435
|
}
|
|
8484
8436
|
overlay.willPresentShorthand?.emit();
|
|
8485
8437
|
const mode = getIonMode$1(overlay);
|
|
@@ -8605,9 +8557,12 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
8605
8557
|
* from the root element when the last focus-trapping overlay
|
|
8606
8558
|
* is dismissed.
|
|
8607
8559
|
*/
|
|
8608
|
-
const overlaysLockingRoot = presentedOverlays.filter((o) =>
|
|
8560
|
+
const overlaysLockingRoot = presentedOverlays.filter((o) => {
|
|
8561
|
+
const el = o;
|
|
8562
|
+
return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
|
|
8563
|
+
});
|
|
8609
8564
|
const overlayEl = overlay.el;
|
|
8610
|
-
const locksRoot =
|
|
8565
|
+
const locksRoot = overlayEl.tagName !== 'ION-TOAST' && overlayEl.focusTrap !== false && isBackdropAlwaysBlocking(overlayEl);
|
|
8611
8566
|
/**
|
|
8612
8567
|
* If this is the last visible overlay that is trapping focus
|
|
8613
8568
|
* then we want to re-add the root to the accessibility tree.
|
|
@@ -10603,13 +10558,6 @@ class ActionSheet {
|
|
|
10603
10558
|
connectedCallback() {
|
|
10604
10559
|
prepareOverlay(this.el);
|
|
10605
10560
|
this.triggerChanged();
|
|
10606
|
-
// `componentDidLoad` only fires once per instance, so a reconnect has to
|
|
10607
|
-
// rebuild the gesture its disconnect destroyed.
|
|
10608
|
-
this.setupButtonActiveGesture();
|
|
10609
|
-
// Re-apply the root lock if moved without dismiss() being called
|
|
10610
|
-
if (this.presented) {
|
|
10611
|
-
restoreRootFocusTrapAccessibility(this.el);
|
|
10612
|
-
}
|
|
10613
10561
|
}
|
|
10614
10562
|
disconnectedCallback() {
|
|
10615
10563
|
if (this.gesture) {
|
|
@@ -10629,33 +10577,24 @@ class ActionSheet {
|
|
|
10629
10577
|
// Initialize activeRadioId for radio buttons
|
|
10630
10578
|
this.buttonsChanged();
|
|
10631
10579
|
}
|
|
10632
|
-
|
|
10633
|
-
|
|
10634
|
-
|
|
10635
|
-
|
|
10636
|
-
|
|
10637
|
-
|
|
10638
|
-
|
|
10639
|
-
|
|
10640
|
-
*/
|
|
10641
|
-
setupButtonActiveGesture() {
|
|
10580
|
+
componentDidLoad() {
|
|
10581
|
+
/**
|
|
10582
|
+
* Only create gesture if:
|
|
10583
|
+
* 1. A gesture does not already exist
|
|
10584
|
+
* 2. App is running in iOS mode
|
|
10585
|
+
* 3. A wrapper ref exists
|
|
10586
|
+
* 4. A group ref exists
|
|
10587
|
+
*/
|
|
10642
10588
|
const { groupEl, wrapperEl } = this;
|
|
10643
|
-
if (getIonMode$1(this)
|
|
10644
|
-
|
|
10589
|
+
if (!this.gesture && getIonMode$1(this) === 'ios' && wrapperEl && groupEl) {
|
|
10590
|
+
readTask(() => {
|
|
10591
|
+
const isScrollable = groupEl.scrollHeight > groupEl.clientHeight;
|
|
10592
|
+
if (!isScrollable) {
|
|
10593
|
+
this.gesture = createButtonActiveGesture(wrapperEl, (refEl) => refEl.classList.contains('action-sheet-button'));
|
|
10594
|
+
this.gesture.enable(true);
|
|
10595
|
+
}
|
|
10596
|
+
});
|
|
10645
10597
|
}
|
|
10646
|
-
readTask(() => {
|
|
10647
|
-
// Bail if a call queued ahead of this one already built the gesture
|
|
10648
|
-
// (a second would orphan the first with its listeners still bound), if
|
|
10649
|
-
// the host disconnected while this task waited, or if the group scrolls.
|
|
10650
|
-
if (this.gesture || !this.el.isConnected || groupEl.scrollHeight > groupEl.clientHeight) {
|
|
10651
|
-
return;
|
|
10652
|
-
}
|
|
10653
|
-
this.gesture = createButtonActiveGesture(wrapperEl, (refEl) => refEl.classList.contains('action-sheet-button'));
|
|
10654
|
-
this.gesture.enable(true);
|
|
10655
|
-
});
|
|
10656
|
-
}
|
|
10657
|
-
componentDidLoad() {
|
|
10658
|
-
this.setupButtonActiveGesture();
|
|
10659
10598
|
/**
|
|
10660
10599
|
* If action sheet was rendered with isOpen="true"
|
|
10661
10600
|
* then we should open action sheet immediately.
|
|
@@ -10748,17 +10687,17 @@ class ActionSheet {
|
|
|
10748
10687
|
const cancelButton = allButtons.find((b) => b.role === 'cancel');
|
|
10749
10688
|
const buttons = allButtons.filter((b) => b.role !== 'cancel');
|
|
10750
10689
|
const headerID = `action-sheet-${overlayIndex}-header`;
|
|
10751
|
-
return (hAsync(Host, { key: '
|
|
10690
|
+
return (hAsync(Host, { key: '7685831da9a78b73473246a2cea95cefa79a53c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1", ...htmlAttributes, style: {
|
|
10752
10691
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
10753
10692
|
}, class: {
|
|
10754
10693
|
[mode]: true,
|
|
10755
10694
|
...getClassMap(this.cssClass),
|
|
10756
10695
|
'overlay-hidden': true,
|
|
10757
10696
|
'action-sheet-translucent': this.translucent,
|
|
10758
|
-
}, onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '
|
|
10697
|
+
}, onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: 'c70f00e401cac99b89412d1adb867f35bc855d57', tappable: this.backdropDismiss }), hAsync("div", { key: '3332893ce3098f1435875480b1269b2821d41660', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'eb406b0a9e303d6f94c5c7aa99c6f4c089bfbd41', class: "action-sheet-wrapper ion-overlay-wrapper", ref: (el) => (this.wrapperEl = el) }, hAsync("div", { key: '92ec855379f10e1e0bfce6ff68b45d3cda0c137c', class: "action-sheet-container" }, hAsync("div", { key: 'bc88a396d75396f574961471bf7e6c4edb513353', class: "action-sheet-group", ref: (el) => (this.groupEl = el), role: hasRadioButtons ? 'radiogroup' : undefined }, header !== undefined && (hAsync("div", { key: '33329e0193818888bdcaa443ff5ea301802e0787', id: headerID, class: {
|
|
10759
10698
|
'action-sheet-title': true,
|
|
10760
10699
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
10761
|
-
} }, header, this.subHeader && hAsync("div", { key: '
|
|
10700
|
+
} }, header, this.subHeader && hAsync("div", { key: '92ac5a9217a12b7417f7aca9c4fdb7bf6b051364', class: "action-sheet-sub-title" }, this.subHeader))), this.renderActionSheetButtons(buttons)), cancelButton && (hAsync("div", { key: '020463b830fa48fc3ae647ea64f2aaa4d0969305', class: "action-sheet-group action-sheet-group-cancel" }, hAsync("button", { key: 'cefa9c70a2233f6652a81b1a2eae6e717712144d', ...cancelButton.htmlAttributes, type: "button", class: buttonClass$2(cancelButton), onClick: () => this.buttonClick(cancelButton) }, hAsync("span", { key: '56d7e2f8bfb3644e4476895164d334445fda9b2f', class: "action-sheet-button-inner" }, cancelButton.icon && (hAsync("ion-icon", { key: '6a4a49254ec5cd96f4e0dce9447f90d8cac81913', icon: cancelButton.icon, "aria-hidden": "true", lazy: false, class: "action-sheet-icon" })), cancelButton.text), mode === 'md' && hAsync("ion-ripple-effect", { key: '7d3c6e8d70b0922ea0f75520856285ce1005c891' })))))), hAsync("div", { key: '958fc43e603c6a7f5d1e649d3326fce0f163b5d0', tabindex: "0", "aria-hidden": "true" })));
|
|
10762
10701
|
}
|
|
10763
10702
|
get el() { return getElement(this); }
|
|
10764
10703
|
static get watchers() { return {
|
|
@@ -11140,15 +11079,10 @@ class Alert {
|
|
|
11140
11079
|
this.triggerChanged();
|
|
11141
11080
|
/**
|
|
11142
11081
|
* If the alert was previously connected and is being reattached, the
|
|
11143
|
-
*
|
|
11144
|
-
*
|
|
11082
|
+
* ResizeObserver was disconnected. componentDidLoad only fires once per
|
|
11083
|
+
* instance, so re-establish the observer here on reconnect.
|
|
11145
11084
|
*/
|
|
11146
11085
|
this.setupButtonGroupResizeObserver();
|
|
11147
|
-
this.setupButtonActiveGesture();
|
|
11148
|
-
// Re-apply the root lock if moved without dismiss() being called
|
|
11149
|
-
if (this.presented) {
|
|
11150
|
-
restoreRootFocusTrapAccessibility(this.el);
|
|
11151
|
-
}
|
|
11152
11086
|
}
|
|
11153
11087
|
componentWillLoad() {
|
|
11154
11088
|
if (!this.htmlAttributes?.id) {
|
|
@@ -11170,20 +11104,17 @@ class Alert {
|
|
|
11170
11104
|
this.buttonGroupResizeObserver?.disconnect();
|
|
11171
11105
|
this.buttonGroupResizeObserver = undefined;
|
|
11172
11106
|
}
|
|
11173
|
-
|
|
11174
|
-
|
|
11175
|
-
|
|
11176
|
-
|
|
11177
|
-
|
|
11178
|
-
|
|
11179
|
-
|
|
11107
|
+
componentDidLoad() {
|
|
11108
|
+
/**
|
|
11109
|
+
* Only create gesture if:
|
|
11110
|
+
* 1. A gesture does not already exist
|
|
11111
|
+
* 2. App is running in iOS mode
|
|
11112
|
+
* 3. A wrapper ref exists
|
|
11113
|
+
*/
|
|
11180
11114
|
if (!this.gesture && getIonMode$1(this) === 'ios' && this.wrapperEl) {
|
|
11181
11115
|
this.gesture = createButtonActiveGesture(this.wrapperEl, (refEl) => refEl.classList.contains('alert-button'));
|
|
11182
11116
|
this.gesture.enable(true);
|
|
11183
11117
|
}
|
|
11184
|
-
}
|
|
11185
|
-
componentDidLoad() {
|
|
11186
|
-
this.setupButtonActiveGesture();
|
|
11187
11118
|
this.setupButtonGroupResizeObserver();
|
|
11188
11119
|
/**
|
|
11189
11120
|
* If alert was rendered with isOpen="true"
|
|
@@ -11504,14 +11435,14 @@ class Alert {
|
|
|
11504
11435
|
* If neither are defined, do not set aria-labelledby.
|
|
11505
11436
|
*/
|
|
11506
11437
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
11507
|
-
return (hAsync(Host, { key: '
|
|
11438
|
+
return (hAsync(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
|
|
11508
11439
|
zIndex: `${20000 + overlayIndex}`,
|
|
11509
11440
|
}, class: {
|
|
11510
11441
|
...getClassMap(this.cssClass),
|
|
11511
11442
|
[mode]: true,
|
|
11512
11443
|
'overlay-hidden': true,
|
|
11513
11444
|
'alert-translucent': this.translucent,
|
|
11514
|
-
}, onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '
|
|
11445
|
+
}, onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: 'c3cd05738bc2834f54707edeb2fae06ec10d6fd2', tappable: this.backdropDismiss }), hAsync("div", { key: 'b44fadd9ba7ddf073854c5035538d11ae8e66bc2', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: 'fafea048141a6c7957e62aef31faa8041dd610c1', class: "alert-wrapper ion-overlay-wrapper", role: role, "aria-modal": "true", "aria-labelledby": ariaLabelledBy, "aria-describedby": message !== undefined ? msgId : null, tabindex: "0", ref: (el) => (this.wrapperEl = el), ...htmlAttributes }, hAsync("div", { key: '3ad9d2d4b7cf425eab8293ddc12eff0fe8df1517', class: "alert-head" }, header && (hAsync("h2", { key: '7d9154f5ee595b7e4da6ecf3a20871f104c1256e', id: hdrId, class: "alert-title" }, header)), subHeader && !header && (hAsync("h2", { key: '1f891f38004be6964e9406b84dd580145c42516a', id: subHdrId, class: "alert-sub-title" }, subHeader)), subHeader && header && (hAsync("h3", { key: '2ab4d344ecb7e384e8f6d3d3e59ee5a1bbcc832c', id: subHdrId, class: "alert-sub-title" }, subHeader))), this.renderAlertMessage(msgId), this.renderAlertInputs(), this.renderAlertButtons()), hAsync("div", { key: '78a4ff09aa3aaafcd0dc2a42d036767d83b3cfa2', tabindex: "0", "aria-hidden": "true" })));
|
|
11515
11446
|
}
|
|
11516
11447
|
get el() { return getElement(this); }
|
|
11517
11448
|
static get watchers() { return {
|
|
@@ -13690,23 +13621,6 @@ class Content {
|
|
|
13690
13621
|
const mode = getIonMode$1(this);
|
|
13691
13622
|
return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;
|
|
13692
13623
|
}
|
|
13693
|
-
/**
|
|
13694
|
-
* Whether this component should size itself to its contents height, which
|
|
13695
|
-
* is the case inside any popover and inside a modal whose `--height` is a
|
|
13696
|
-
* content-based value. Those overlays give the content no definite height
|
|
13697
|
-
* to fill.
|
|
13698
|
-
*/
|
|
13699
|
-
shouldSizeToContent() {
|
|
13700
|
-
if (hostContext('ion-popover', this.el)) {
|
|
13701
|
-
return true;
|
|
13702
|
-
}
|
|
13703
|
-
const modal = this.el.closest('ion-modal');
|
|
13704
|
-
if (modal === null) {
|
|
13705
|
-
return false;
|
|
13706
|
-
}
|
|
13707
|
-
const height = getComputedStyle(modal).getPropertyValue('--height').trim();
|
|
13708
|
-
return CONTENT_SIZED_HEIGHTS.includes(height);
|
|
13709
|
-
}
|
|
13710
13624
|
resize() {
|
|
13711
13625
|
}
|
|
13712
13626
|
/**
|
|
@@ -13886,21 +13800,21 @@ class Content {
|
|
|
13886
13800
|
const forceOverscroll = this.shouldForceOverscroll();
|
|
13887
13801
|
const transitionShadow = mode === 'ios';
|
|
13888
13802
|
this.resize();
|
|
13889
|
-
return (hAsync(Host, { key: '
|
|
13803
|
+
return (hAsync(Host, { key: '9551c759df407b10d809171641fc6e8f14d92219', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
|
|
13890
13804
|
[mode]: true,
|
|
13891
13805
|
'content-fullscreen': this.fullscreen,
|
|
13892
|
-
'content-sizing': this.
|
|
13806
|
+
'content-sizing': hostContext('ion-popover', this.el),
|
|
13893
13807
|
overscroll: forceOverscroll,
|
|
13894
13808
|
[`content-${rtl}`]: true,
|
|
13895
13809
|
}), style: {
|
|
13896
13810
|
'--offset-top': `${this.cTop}px`,
|
|
13897
13811
|
'--offset-bottom': `${this.cBottom}px`,
|
|
13898
|
-
}, ...inheritedAttributes }, hAsync("div", { key: '
|
|
13812
|
+
}, ...inheritedAttributes }, hAsync("div", { key: 'c6de8fd226f0d10a534eb107fe032ac155fbe68e', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? hAsync("slot", { name: "fixed" }) : null, hAsync("div", { key: '082fc2936061360060b48221ecb1c864a3711fa0', class: {
|
|
13899
13813
|
'inner-scroll': true,
|
|
13900
13814
|
'scroll-x': scrollX,
|
|
13901
13815
|
'scroll-y': scrollY,
|
|
13902
13816
|
overscroll: (scrollX || scrollY) && forceOverscroll,
|
|
13903
|
-
}, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: '
|
|
13817
|
+
}, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: '0d2286206facb22696a9ca7e74a3f6b7d2397aab' })), transitionShadow ? (hAsync("div", { class: "transition-effect" }, hAsync("div", { class: "transition-cover" }), hAsync("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? hAsync("slot", { name: "fixed" }) : null));
|
|
13904
13818
|
}
|
|
13905
13819
|
get el() { return getElement(this); }
|
|
13906
13820
|
static get watchers() { return {
|
|
@@ -13933,11 +13847,6 @@ class Content {
|
|
|
13933
13847
|
"$attrsToReflect$": [["color", "color"]]
|
|
13934
13848
|
}; }
|
|
13935
13849
|
}
|
|
13936
|
-
/**
|
|
13937
|
-
* `ion-modal` `--height` values that size the modal to its contents, leaving
|
|
13938
|
-
* children an indefinite height to resolve against.
|
|
13939
|
-
*/
|
|
13940
|
-
const CONTENT_SIZED_HEIGHTS = ['auto', 'fit-content', 'min-content', 'max-content'];
|
|
13941
13850
|
const getParentElement = (el) => {
|
|
13942
13851
|
if (el.parentElement) {
|
|
13943
13852
|
// normal element with a parent element
|
|
@@ -17119,6 +17028,7 @@ class Datetime {
|
|
|
17119
17028
|
}
|
|
17120
17029
|
renderCombinedDatePickerColumn() {
|
|
17121
17030
|
const { defaultParts, disabled, workingParts, locale, minParts, maxParts, todayParts, isDateEnabled } = this;
|
|
17031
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17122
17032
|
/**
|
|
17123
17033
|
* By default, generate a range of 3 months:
|
|
17124
17034
|
* Previous month, current month, and next month
|
|
@@ -17174,10 +17084,8 @@ class Datetime {
|
|
|
17174
17084
|
return (hAsync("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a date", class: "date-column", color: this.color, disabled: disabled, value: todayString, onIonChange: (ev) => {
|
|
17175
17085
|
const { value } = ev.detail;
|
|
17176
17086
|
const findPart = parts.find(({ month, day, year }) => value === `${year}-${month}-${day}`);
|
|
17177
|
-
// Read live so parts a sibling column just committed are included.
|
|
17178
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17179
17087
|
this.setWorkingParts({
|
|
17180
|
-
...
|
|
17088
|
+
...workingParts,
|
|
17181
17089
|
...findPart,
|
|
17182
17090
|
});
|
|
17183
17091
|
this.setActiveParts({
|
|
@@ -17254,12 +17162,11 @@ class Datetime {
|
|
|
17254
17162
|
return [];
|
|
17255
17163
|
}
|
|
17256
17164
|
const { disabled, workingParts } = this;
|
|
17165
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17257
17166
|
const pickerColumnValue = (workingParts.day !== null ? workingParts.day : this.defaultParts.day) ?? undefined;
|
|
17258
17167
|
return (hAsync("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a day", class: "day-column", color: this.color, disabled: disabled, value: pickerColumnValue, onIonChange: (ev) => {
|
|
17259
|
-
// Read live so parts a sibling column just committed are included.
|
|
17260
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17261
17168
|
this.setWorkingParts({
|
|
17262
|
-
...
|
|
17169
|
+
...workingParts,
|
|
17263
17170
|
day: ev.detail.value,
|
|
17264
17171
|
});
|
|
17265
17172
|
this.setActiveParts({
|
|
@@ -17274,11 +17181,10 @@ class Datetime {
|
|
|
17274
17181
|
return [];
|
|
17275
17182
|
}
|
|
17276
17183
|
const { disabled, workingParts } = this;
|
|
17184
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17277
17185
|
return (hAsync("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a month", class: "month-column", color: this.color, disabled: disabled, value: workingParts.month, onIonChange: (ev) => {
|
|
17278
|
-
// Read live so parts a sibling column just committed are included.
|
|
17279
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17280
17186
|
this.setWorkingParts({
|
|
17281
|
-
...
|
|
17187
|
+
...workingParts,
|
|
17282
17188
|
month: ev.detail.value,
|
|
17283
17189
|
});
|
|
17284
17190
|
// Month wheel is navigation-only in multi-select mode as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
|
|
@@ -17296,11 +17202,10 @@ class Datetime {
|
|
|
17296
17202
|
return [];
|
|
17297
17203
|
}
|
|
17298
17204
|
const { disabled, workingParts } = this;
|
|
17205
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17299
17206
|
return (hAsync("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a year", class: "year-column", color: this.color, disabled: disabled, value: workingParts.year, onIonChange: (ev) => {
|
|
17300
|
-
// Read live so parts a sibling column just committed are included.
|
|
17301
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17302
17207
|
this.setWorkingParts({
|
|
17303
|
-
...
|
|
17208
|
+
...workingParts,
|
|
17304
17209
|
year: ev.detail.value,
|
|
17305
17210
|
});
|
|
17306
17211
|
// Year wheel is navigation-only in multi-select mode as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
|
|
@@ -17336,14 +17241,13 @@ class Datetime {
|
|
|
17336
17241
|
];
|
|
17337
17242
|
}
|
|
17338
17243
|
renderHourPickerColumn(hoursData) {
|
|
17339
|
-
const { disabled } = this;
|
|
17244
|
+
const { disabled, workingParts } = this;
|
|
17340
17245
|
if (hoursData.length === 0)
|
|
17341
17246
|
return [];
|
|
17342
17247
|
const activePart = this.getActivePartsWithFallback();
|
|
17343
17248
|
return (hAsync("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select an hour", color: this.color, disabled: disabled, value: activePart.hour, numericInput: true, onIonChange: (ev) => {
|
|
17344
|
-
// Read live so parts a sibling column just committed are included.
|
|
17345
17249
|
this.setWorkingParts({
|
|
17346
|
-
...
|
|
17250
|
+
...workingParts,
|
|
17347
17251
|
hour: ev.detail.value,
|
|
17348
17252
|
});
|
|
17349
17253
|
this.setActiveParts({
|
|
@@ -17354,14 +17258,13 @@ class Datetime {
|
|
|
17354
17258
|
} }, hoursData.map((hour) => (hAsync("ion-picker-column-option", { color: this.color, part: hour.value === activePart.hour ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: hour.value, disabled: hour.disabled, value: hour.value }, hour.text)))));
|
|
17355
17259
|
}
|
|
17356
17260
|
renderMinutePickerColumn(minutesData) {
|
|
17357
|
-
const { disabled } = this;
|
|
17261
|
+
const { disabled, workingParts } = this;
|
|
17358
17262
|
if (minutesData.length === 0)
|
|
17359
17263
|
return [];
|
|
17360
17264
|
const activePart = this.getActivePartsWithFallback();
|
|
17361
17265
|
return (hAsync("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a minute", color: this.color, disabled: disabled, value: activePart.minute, numericInput: true, onIonChange: (ev) => {
|
|
17362
|
-
// Read live so parts a sibling column just committed are included.
|
|
17363
17266
|
this.setWorkingParts({
|
|
17364
|
-
...
|
|
17267
|
+
...workingParts,
|
|
17365
17268
|
minute: ev.detail.value,
|
|
17366
17269
|
});
|
|
17367
17270
|
this.setActiveParts({
|
|
@@ -17372,18 +17275,16 @@ class Datetime {
|
|
|
17372
17275
|
} }, minutesData.map((minute) => (hAsync("ion-picker-column-option", { color: this.color, part: minute.value === activePart.minute ? `${WHEEL_ITEM_PART} ${WHEEL_ITEM_ACTIVE_PART}` : WHEEL_ITEM_PART, key: minute.value, disabled: minute.disabled, value: minute.value }, minute.text)))));
|
|
17373
17276
|
}
|
|
17374
17277
|
renderDayPeriodPickerColumn(dayPeriodData) {
|
|
17375
|
-
const { disabled } = this;
|
|
17278
|
+
const { disabled, workingParts } = this;
|
|
17376
17279
|
if (dayPeriodData.length === 0) {
|
|
17377
17280
|
return [];
|
|
17378
17281
|
}
|
|
17379
17282
|
const activePart = this.getActivePartsWithFallback();
|
|
17380
17283
|
const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
|
|
17381
17284
|
return (hAsync("ion-picker-column", { part: WHEEL_PART, "aria-label": "Select a day period", style: isDayPeriodRTL ? { order: '-1' } : {}, color: this.color, disabled: disabled, value: activePart.ampm, onIonChange: (ev) => {
|
|
17382
|
-
|
|
17383
|
-
const currentParts = this.workingParts;
|
|
17384
|
-
const hour = calculateHourFromAMPM(currentParts, ev.detail.value);
|
|
17285
|
+
const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
|
|
17385
17286
|
this.setWorkingParts({
|
|
17386
|
-
...
|
|
17287
|
+
...workingParts,
|
|
17387
17288
|
ampm: ev.detail.value,
|
|
17388
17289
|
hour,
|
|
17389
17290
|
});
|
|
@@ -17735,7 +17636,7 @@ class Datetime {
|
|
|
17735
17636
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
17736
17637
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
17737
17638
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
17738
|
-
return (hAsync(Host, { key: '
|
|
17639
|
+
return (hAsync(Host, { key: 'd8e6dfe5e3bffb1c38a3e37b63b3aec099f40d29', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
|
|
17739
17640
|
...createColorClasses$1(color, {
|
|
17740
17641
|
[mode]: true,
|
|
17741
17642
|
['datetime-readonly']: readonly,
|
|
@@ -17747,7 +17648,7 @@ class Datetime {
|
|
|
17747
17648
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
17748
17649
|
[`datetime-grid`]: isGridStyle,
|
|
17749
17650
|
}),
|
|
17750
|
-
} }, hAsync("div", { key: '
|
|
17651
|
+
} }, hAsync("div", { key: '20889d3c68dd5109633c0e214411a63d6f3025bb', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
17751
17652
|
}
|
|
17752
17653
|
get el() { return getElement(this); }
|
|
17753
17654
|
static get watchers() { return {
|
|
@@ -22429,17 +22330,19 @@ class ItemSliding {
|
|
|
22429
22330
|
}
|
|
22430
22331
|
}
|
|
22431
22332
|
async updateOptions() {
|
|
22432
|
-
const options =
|
|
22433
|
-
/**
|
|
22434
|
-
* Frameworks that assign element props after inserting the element haven't set
|
|
22435
|
-
* `side` while `connectedCallback` runs, so reading it any earlier reports every
|
|
22436
|
-
* option as `end`.
|
|
22437
|
-
*/
|
|
22438
|
-
await Promise.all(options.map((option) => new Promise((resolve) => componentOnReady(option, resolve))));
|
|
22333
|
+
const options = this.el.querySelectorAll('ion-item-options');
|
|
22439
22334
|
let sides = 0;
|
|
22440
22335
|
// Reset left and right options in case they were removed
|
|
22441
22336
|
this.leftOptions = this.rightOptions = undefined;
|
|
22442
|
-
for (
|
|
22337
|
+
for (let i = 0; i < options.length; i++) {
|
|
22338
|
+
const item = options.item(i);
|
|
22339
|
+
/**
|
|
22340
|
+
* We cannot use the componentOnReady helper
|
|
22341
|
+
* util here since we need to wait for all of these items
|
|
22342
|
+
* to be ready before we set `this.sides` and `this.optsDirty`.
|
|
22343
|
+
*/
|
|
22344
|
+
// eslint-disable-next-line custom-rules/no-component-on-ready-method
|
|
22345
|
+
const option = item.componentOnReady !== undefined ? await item.componentOnReady() : item;
|
|
22443
22346
|
const side = isEndSide(option.side ?? option.getAttribute('side')) ? 'end' : 'start';
|
|
22444
22347
|
if (side === 'start') {
|
|
22445
22348
|
this.leftOptions = option;
|
|
@@ -22638,7 +22541,7 @@ class ItemSliding {
|
|
|
22638
22541
|
}
|
|
22639
22542
|
render() {
|
|
22640
22543
|
const mode = getIonMode$1(this);
|
|
22641
|
-
return (hAsync(Host, { key: '
|
|
22544
|
+
return (hAsync(Host, { key: '15f6a98f8c888e86c29827cdf55d98ace08699dd', class: {
|
|
22642
22545
|
[mode]: true,
|
|
22643
22546
|
'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
|
|
22644
22547
|
'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
|
|
@@ -23051,10 +22954,6 @@ class Loading {
|
|
|
23051
22954
|
connectedCallback() {
|
|
23052
22955
|
prepareOverlay(this.el);
|
|
23053
22956
|
this.triggerChanged();
|
|
23054
|
-
// Re-apply the root lock if moved without dismiss() being called
|
|
23055
|
-
if (this.presented) {
|
|
23056
|
-
restoreRootFocusTrapAccessibility(this.el);
|
|
23057
|
-
}
|
|
23058
22957
|
}
|
|
23059
22958
|
componentWillLoad() {
|
|
23060
22959
|
if (this.spinner === undefined) {
|
|
@@ -23155,14 +23054,14 @@ class Loading {
|
|
|
23155
23054
|
* Otherwise, don't set aria-labelledby.
|
|
23156
23055
|
*/
|
|
23157
23056
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
23158
|
-
return (hAsync(Host, { key: '
|
|
23057
|
+
return (hAsync(Host, { key: '2d14122ff3081de73631a7fdd4affdd5c73b8618', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1", ...htmlAttributes, style: {
|
|
23159
23058
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
23160
23059
|
}, onIonBackdropTap: this.onBackdropTap, class: {
|
|
23161
23060
|
...getClassMap(this.cssClass),
|
|
23162
23061
|
[mode]: true,
|
|
23163
23062
|
'overlay-hidden': true,
|
|
23164
23063
|
'loading-translucent': this.translucent,
|
|
23165
|
-
} }, hAsync("ion-backdrop", { key: '
|
|
23064
|
+
} }, hAsync("ion-backdrop", { key: 'b7d5bb0d670a20c159d7f67327bf3b1489449188', visible: this.showBackdrop, tappable: this.backdropDismiss }), hAsync("div", { key: '085ce92bd2004d323ab47eb472b83826e48dc619', tabindex: "0", "aria-hidden": "true" }), hAsync("div", { key: '4ecd5bfc0bbd3da434d32f0f319f867a44c5e1f1', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (hAsync("div", { key: '5a4498e1421e09d01c0ee4312eae5272e95c3127', class: "loading-spinner" }, hAsync("ion-spinner", { key: '1b3bc7d45d775195657ead3535f65e6b79f37e84', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), hAsync("div", { key: 'bc7c5467b9f1c6ab957f79934e97acc713bdec37', tabindex: "0", "aria-hidden": "true" })));
|
|
23166
23065
|
}
|
|
23167
23066
|
get el() { return getElement(this); }
|
|
23168
23067
|
static get watchers() { return {
|
|
@@ -26683,9 +26582,9 @@ const clearSafeAreaOverrides = (hostEl) => {
|
|
|
26683
26582
|
hostEl.style.removeProperty('--ion-safe-area-right');
|
|
26684
26583
|
};
|
|
26685
26584
|
|
|
26686
|
-
const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:
|
|
26585
|
+
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-wrapper{outline:none}.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}`;
|
|
26687
26586
|
|
|
26688
|
-
const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:
|
|
26587
|
+
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-wrapper{outline:none}.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.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}`;
|
|
26689
26588
|
|
|
26690
26589
|
// TODO(FW-2832): types
|
|
26691
26590
|
/**
|
|
@@ -26721,9 +26620,6 @@ class Modal {
|
|
|
26721
26620
|
this.inline = false;
|
|
26722
26621
|
// Whether or not modal is being dismissed via gesture
|
|
26723
26622
|
this.gestureAnimationDismissing = false;
|
|
26724
|
-
// True from the first safe-area write in `present()` until the enter
|
|
26725
|
-
// animation settles. A position-based read in that window is not the rest position.
|
|
26726
|
-
this.isPresenting = false;
|
|
26727
26623
|
this.presented = false;
|
|
26728
26624
|
/** @internal */
|
|
26729
26625
|
this.hasController = false;
|
|
@@ -26960,17 +26856,6 @@ class Modal {
|
|
|
26960
26856
|
const { el } = this;
|
|
26961
26857
|
prepareOverlay(el);
|
|
26962
26858
|
this.triggerChanged();
|
|
26963
|
-
// A disconnect tears down state this presentation still needs and cannot
|
|
26964
|
-
// tell a re-insert from a removal, so put it back.
|
|
26965
|
-
if (this.presented || this.isPresenting) {
|
|
26966
|
-
this.restoreSafeAreaOverrides();
|
|
26967
|
-
}
|
|
26968
|
-
// A relocation from `willPresent` reaches these before `present()` has
|
|
26969
|
-
// applied the lock, so they apply it instead. Both are idempotent.
|
|
26970
|
-
if (this.presented) {
|
|
26971
|
-
restoreRootFocusTrapAccessibility(el);
|
|
26972
|
-
this.initParentRemovalObserver();
|
|
26973
|
-
}
|
|
26974
26859
|
}
|
|
26975
26860
|
disconnectedCallback() {
|
|
26976
26861
|
this.triggerController.removeClickListener();
|
|
@@ -27148,33 +27033,25 @@ class Modal {
|
|
|
27148
27033
|
// Recalculate isSheetModal before safe-area setup because framework
|
|
27149
27034
|
// bindings (e.g., Angular) may not have been applied when componentWillLoad ran.
|
|
27150
27035
|
this.isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
|
|
27151
|
-
|
|
27036
|
+
// Set initial safe-area overrides before animation
|
|
27037
|
+
this.setInitialSafeAreaOverrides();
|
|
27152
27038
|
const hasCardModal = presentingElement !== undefined;
|
|
27153
|
-
|
|
27154
|
-
|
|
27155
|
-
|
|
27156
|
-
|
|
27157
|
-
|
|
27158
|
-
|
|
27159
|
-
|
|
27160
|
-
|
|
27161
|
-
|
|
27162
|
-
*/
|
|
27163
|
-
if (hasCardModal && getIonMode$1(this) === 'ios') {
|
|
27164
|
-
// Cache the original status bar color before the modal is presented
|
|
27165
|
-
this.statusBarStyle = await StatusBar.getStyle();
|
|
27166
|
-
setCardStatusBarDark();
|
|
27167
|
-
}
|
|
27168
|
-
await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
|
|
27169
|
-
presentingEl: presentingElement,
|
|
27170
|
-
currentBreakpoint: this.initialBreakpoint,
|
|
27171
|
-
backdropBreakpoint: this.backdropBreakpoint,
|
|
27172
|
-
expandToScroll: this.expandToScroll,
|
|
27173
|
-
});
|
|
27174
|
-
}
|
|
27175
|
-
finally {
|
|
27176
|
-
this.isPresenting = false;
|
|
27039
|
+
/**
|
|
27040
|
+
* We need to change the status bar at the
|
|
27041
|
+
* start of the animation so that it completes
|
|
27042
|
+
* by the time the card animation is done.
|
|
27043
|
+
*/
|
|
27044
|
+
if (hasCardModal && getIonMode$1(this) === 'ios') {
|
|
27045
|
+
// Cache the original status bar color before the modal is presented
|
|
27046
|
+
this.statusBarStyle = await StatusBar.getStyle();
|
|
27047
|
+
setCardStatusBarDark();
|
|
27177
27048
|
}
|
|
27049
|
+
await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
|
|
27050
|
+
presentingEl: presentingElement,
|
|
27051
|
+
currentBreakpoint: this.initialBreakpoint,
|
|
27052
|
+
backdropBreakpoint: this.backdropBreakpoint,
|
|
27053
|
+
expandToScroll: this.expandToScroll,
|
|
27054
|
+
});
|
|
27178
27055
|
// Update safe-area based on actual position after animation
|
|
27179
27056
|
this.updateSafeAreaOverrides();
|
|
27180
27057
|
// Apply fullscreen safe-area padding if needed
|
|
@@ -27676,9 +27553,6 @@ class Modal {
|
|
|
27676
27553
|
this.cachedOriginalParent.tagName === 'ION-APP') {
|
|
27677
27554
|
return;
|
|
27678
27555
|
}
|
|
27679
|
-
// Both `present()` and a reconnect call this, so drop any existing
|
|
27680
|
-
// observer. Below the guards, so a call that bails cannot leave none.
|
|
27681
|
-
this.cleanupParentRemovalObserver();
|
|
27682
27556
|
this.parentRemovalObserver = new MutationObserver((mutations) => {
|
|
27683
27557
|
mutations.forEach((mutation) => {
|
|
27684
27558
|
if (mutation.type === 'childList' && mutation.removedNodes.length > 0) {
|
|
@@ -27757,9 +27631,6 @@ class Modal {
|
|
|
27757
27631
|
// Set the internal offset property with the resolved root safe-area-top value
|
|
27758
27632
|
if (context.isSheetModal) {
|
|
27759
27633
|
this.updateSheetOffsetTop();
|
|
27760
|
-
// A restore after a DOM move runs this a second time for the same
|
|
27761
|
-
// modal, so drop the previous subscription rather than stacking one.
|
|
27762
|
-
this.unsubscribeRootSafeAreaTop?.();
|
|
27763
27634
|
this.unsubscribeRootSafeAreaTop = onRootSafeAreaTopChange((safeAreaTop) => this.updateSheetOffsetTop(safeAreaTop));
|
|
27764
27635
|
}
|
|
27765
27636
|
}
|
|
@@ -27878,31 +27749,6 @@ class Modal {
|
|
|
27878
27749
|
const { contentEl } = this.findContentAndFooter();
|
|
27879
27750
|
this.clearContentSafeAreaPadding(contentEl);
|
|
27880
27751
|
}
|
|
27881
|
-
/**
|
|
27882
|
-
* Re-applies what `cleanupSafeAreaOverrides()` removed for a modal moved
|
|
27883
|
-
* while presented. Anything needing no measurement goes on synchronously so
|
|
27884
|
-
* the modal is never painted without safe-area. The position-based
|
|
27885
|
-
* correction waits a frame for the layout pass it reads.
|
|
27886
|
-
*/
|
|
27887
|
-
restoreSafeAreaOverrides() {
|
|
27888
|
-
this.setInitialSafeAreaOverrides();
|
|
27889
|
-
this.applyFullscreenSafeArea();
|
|
27890
|
-
raf(() => {
|
|
27891
|
-
// A dismiss or another move can land first, and a read before the enter
|
|
27892
|
-
// animation settles is not the rest position. `present()` redoes it.
|
|
27893
|
-
if (!this.presented || !this.el.isConnected || this.isPresenting) {
|
|
27894
|
-
return;
|
|
27895
|
-
}
|
|
27896
|
-
// A hidden subtree carries `display: none`, so there is no box and the
|
|
27897
|
-
// read would write the safe-area for a modal touching no edge. The
|
|
27898
|
-
// prediction applied above holds until the modal is shown again.
|
|
27899
|
-
const { width, height } = this.el.getBoundingClientRect();
|
|
27900
|
-
if (width === 0 && height === 0) {
|
|
27901
|
-
return;
|
|
27902
|
-
}
|
|
27903
|
-
this.updateSafeAreaOverrides();
|
|
27904
|
-
});
|
|
27905
|
-
}
|
|
27906
27752
|
render() {
|
|
27907
27753
|
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
27908
27754
|
const showHandle = handle !== false && isSheetModal;
|
|
@@ -27910,7 +27756,7 @@ class Modal {
|
|
|
27910
27756
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
27911
27757
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
27912
27758
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
27913
|
-
return (hAsync(Host, { key: '
|
|
27759
|
+
return (hAsync(Host, { key: 'a471c293319cb6ee5ffb7ffafec0b8413e4289de', "no-router": true,
|
|
27914
27760
|
// Allow the modal to be navigable when the handle is focusable
|
|
27915
27761
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1, ...htmlAttributes, style: {
|
|
27916
27762
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
@@ -27923,7 +27769,7 @@ class Modal {
|
|
|
27923
27769
|
'overlay-hidden': true,
|
|
27924
27770
|
[FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
|
|
27925
27771
|
...getClassMap(this.cssClass),
|
|
27926
|
-
}, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, hAsync("ion-backdrop", { key: '
|
|
27772
|
+
}, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, hAsync("ion-backdrop", { key: 'f67934afd4ddad64623856fb641cb6db846df428', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'a23f5cb6cf60c8f717c1dd556bce375829c80a43', class: "modal-shadow" }), hAsync("div", { key: '51eb6cd1070e4b7e49840a78dc7437238c867a01',
|
|
27927
27773
|
/*
|
|
27928
27774
|
role and aria-modal must be used on the
|
|
27929
27775
|
same element. They must also be set inside the
|
|
@@ -27936,9 +27782,9 @@ class Modal {
|
|
|
27936
27782
|
without the tabindex focus() would be a no-op and screen readers
|
|
27937
27783
|
may not properly announce the dialog and its content when it opens.
|
|
27938
27784
|
*/
|
|
27939
|
-
role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (hAsync("button", { key: '
|
|
27785
|
+
role: "dialog", ...inheritedAttributes, "aria-modal": "true", tabIndex: -1, class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }, showHandle && (hAsync("button", { key: 'f49a144642b5c227c0c2b00b33f4c7e37a2bf088', class: "modal-handle",
|
|
27940
27786
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
27941
|
-
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: '
|
|
27787
|
+
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: 'e781c0d5881762c6b61aa432721a38b49580ff64', onSlotchange: this.onSlotChange }))));
|
|
27942
27788
|
}
|
|
27943
27789
|
get el() { return getElement(this); }
|
|
27944
27790
|
static get watchers() { return {
|
|
@@ -29413,12 +29259,6 @@ class PickerColumn {
|
|
|
29413
29259
|
this.isColumnVisible = false;
|
|
29414
29260
|
this.canExitInputMode = true;
|
|
29415
29261
|
this.updateValueTextOnScroll = false;
|
|
29416
|
-
this.isUserScroll = false;
|
|
29417
|
-
/**
|
|
29418
|
-
* The haptics for the wheel picker are an iOS-only feature. As a result,
|
|
29419
|
-
* they should be disabled on Android.
|
|
29420
|
-
*/
|
|
29421
|
-
this.enableHaptics = false;
|
|
29422
29262
|
this.ariaLabel = null;
|
|
29423
29263
|
this.isActive = false;
|
|
29424
29264
|
/**
|
|
@@ -29450,12 +29290,6 @@ class PickerColumn {
|
|
|
29450
29290
|
*/
|
|
29451
29291
|
this.canExitInputMode = canExitInputMode;
|
|
29452
29292
|
this.updateValueTextOnScroll = false;
|
|
29453
|
-
/**
|
|
29454
|
-
* This scroll takes over from whatever the user was doing, so an outside
|
|
29455
|
-
* press must not commit an option the column is only passing through.
|
|
29456
|
-
*/
|
|
29457
|
-
this.isUserScroll = false;
|
|
29458
|
-
this.stopWatchingForOutsidePress();
|
|
29459
29293
|
scrollEl.scroll({
|
|
29460
29294
|
top,
|
|
29461
29295
|
left: 0,
|
|
@@ -29510,117 +29344,6 @@ class PickerColumn {
|
|
|
29510
29344
|
}
|
|
29511
29345
|
this.isActive = state;
|
|
29512
29346
|
};
|
|
29513
|
-
this.clearScrollEndTimeout = () => {
|
|
29514
|
-
if (this.scrollEndTimeout) {
|
|
29515
|
-
clearTimeout(this.scrollEndTimeout);
|
|
29516
|
-
this.scrollEndTimeout = undefined;
|
|
29517
|
-
}
|
|
29518
|
-
};
|
|
29519
|
-
/**
|
|
29520
|
-
* Resets the idle timer that commits the centered option.
|
|
29521
|
-
*/
|
|
29522
|
-
this.resetScrollEndTimeout = () => {
|
|
29523
|
-
this.clearScrollEndTimeout();
|
|
29524
|
-
this.scrollEndTimeout = setTimeout(this.settle, SCROLL_END_DELAY);
|
|
29525
|
-
};
|
|
29526
|
-
/**
|
|
29527
|
-
* Capture so the column still commits if an application's own pointerdown
|
|
29528
|
-
* handler stops the event before it reaches the document.
|
|
29529
|
-
*/
|
|
29530
|
-
this.watchForOutsidePress = () => {
|
|
29531
|
-
doc?.addEventListener('pointerdown', this.onPointerDownOutside, { capture: true });
|
|
29532
|
-
};
|
|
29533
|
-
this.stopWatchingForOutsidePress = () => {
|
|
29534
|
-
doc?.removeEventListener('pointerdown', this.onPointerDownOutside, { capture: true });
|
|
29535
|
-
};
|
|
29536
|
-
/**
|
|
29537
|
-
* Resets everything the current scroll interaction is holding, so nothing
|
|
29538
|
-
* pending on it can commit later.
|
|
29539
|
-
*/
|
|
29540
|
-
this.discardScroll = () => {
|
|
29541
|
-
this.stopWatchingForOutsidePress();
|
|
29542
|
-
this.clearScrollEndTimeout();
|
|
29543
|
-
this.scrollEndCallback = undefined;
|
|
29544
|
-
this.centeredOption = undefined;
|
|
29545
|
-
this.haltedAtScrollTop = undefined;
|
|
29546
|
-
this.isScrolling = false;
|
|
29547
|
-
this.isUserScroll = false;
|
|
29548
|
-
this.canExitInputMode = true;
|
|
29549
|
-
};
|
|
29550
|
-
/**
|
|
29551
|
-
* Commits the option that is currently centered under the highlight and ends
|
|
29552
|
-
* the scroll interaction.
|
|
29553
|
-
*/
|
|
29554
|
-
this.settle = () => {
|
|
29555
|
-
const { centeredOption } = this;
|
|
29556
|
-
this.clearScrollEndTimeout();
|
|
29557
|
-
this.stopWatchingForOutsidePress();
|
|
29558
|
-
this.isUserScroll = false;
|
|
29559
|
-
this.isScrolling = false;
|
|
29560
|
-
this.updateValueTextOnScroll = true;
|
|
29561
|
-
this.enableHaptics && hapticSelectionEnd();
|
|
29562
|
-
/**
|
|
29563
|
-
* Certain tasks (such as those that
|
|
29564
|
-
* cause re-renders) should only be done
|
|
29565
|
-
* once scrolling has finished, otherwise
|
|
29566
|
-
* flickering may occur.
|
|
29567
|
-
*/
|
|
29568
|
-
const { scrollEndCallback } = this;
|
|
29569
|
-
if (scrollEndCallback) {
|
|
29570
|
-
scrollEndCallback();
|
|
29571
|
-
this.scrollEndCallback = undefined;
|
|
29572
|
-
}
|
|
29573
|
-
/**
|
|
29574
|
-
* Reset this flag as the
|
|
29575
|
-
* next scroll interaction could
|
|
29576
|
-
* be a scroll from the user. In this
|
|
29577
|
-
* case, we should exit input mode.
|
|
29578
|
-
*/
|
|
29579
|
-
this.canExitInputMode = true;
|
|
29580
|
-
if (centeredOption !== undefined) {
|
|
29581
|
-
// Cleared here so a later scroll that centers nothing cannot fall back on it.
|
|
29582
|
-
this.centeredOption = undefined;
|
|
29583
|
-
if (centeredOption.isConnected) {
|
|
29584
|
-
this.setValue(centeredOption.value);
|
|
29585
|
-
}
|
|
29586
|
-
}
|
|
29587
|
-
};
|
|
29588
|
-
/**
|
|
29589
|
-
* Commits the option the user can see when they press anything outside of the
|
|
29590
|
-
* column during a scroll they started. This runs on pointerdown rather than
|
|
29591
|
-
* click so the value is up to date by the time an application's own click
|
|
29592
|
-
* handler (a Save button, for example) reads it.
|
|
29593
|
-
*/
|
|
29594
|
-
this.onPointerDownOutside = (ev) => {
|
|
29595
|
-
const { centeredOption, parentEl, scrollEl } = this;
|
|
29596
|
-
if (!this.isScrolling) {
|
|
29597
|
-
return;
|
|
29598
|
-
}
|
|
29599
|
-
/**
|
|
29600
|
-
* The column can live in another component's Shadow DOM, where a document
|
|
29601
|
-
* listener sees the target retargeted to the outer host. The composed path
|
|
29602
|
-
* is the only reliable way to tell a press on the column apart.
|
|
29603
|
-
*/
|
|
29604
|
-
const path = ev.composedPath();
|
|
29605
|
-
/**
|
|
29606
|
-
* A press anywhere in the parent picker counts as inside, so reaching for a
|
|
29607
|
-
* sibling wheel leaves this column coasting.
|
|
29608
|
-
*/
|
|
29609
|
-
if (path.includes(this.el) || (parentEl != null && path.includes(parentEl))) {
|
|
29610
|
-
return;
|
|
29611
|
-
}
|
|
29612
|
-
/**
|
|
29613
|
-
* Landing on the centered option halts the in-flight momentum scroll, so the
|
|
29614
|
-
* committed value and the option the user is left looking at agree. The
|
|
29615
|
-
* option list can be replaced mid-scroll, and a detached option has no
|
|
29616
|
-
* offset to center on.
|
|
29617
|
-
*/
|
|
29618
|
-
if (centeredOption !== undefined && centeredOption.isConnected) {
|
|
29619
|
-
this.centerPickerItemInView(centeredOption, false, false);
|
|
29620
|
-
this.haltedAtScrollTop = scrollEl?.scrollTop;
|
|
29621
|
-
}
|
|
29622
|
-
this.settle();
|
|
29623
|
-
};
|
|
29624
29347
|
/**
|
|
29625
29348
|
* When the column scrolls, the component
|
|
29626
29349
|
* needs to determine which item is centered
|
|
@@ -29628,42 +29351,27 @@ class PickerColumn {
|
|
|
29628
29351
|
* the item object.
|
|
29629
29352
|
*/
|
|
29630
29353
|
this.initializeScrollListener = () => {
|
|
29631
|
-
|
|
29354
|
+
/**
|
|
29355
|
+
* The haptics for the wheel picker are
|
|
29356
|
+
* an iOS-only feature. As a result, they should
|
|
29357
|
+
* be disabled on Android.
|
|
29358
|
+
*/
|
|
29359
|
+
const enableHaptics = isPlatform('ios');
|
|
29632
29360
|
const { el, scrollEl } = this;
|
|
29361
|
+
let timeout;
|
|
29633
29362
|
let activeEl = this.activeItem;
|
|
29634
29363
|
const scrollCallback = () => {
|
|
29635
29364
|
raf(() => {
|
|
29636
|
-
|
|
29637
|
-
* This frame cannot be cancelled, and moving the column disconnects it
|
|
29638
|
-
* without the observer reporting a change, so this checks live state.
|
|
29639
|
-
*/
|
|
29640
|
-
if (!this.el.isConnected || !this.isColumnVisible || !scrollEl)
|
|
29365
|
+
if (!scrollEl)
|
|
29641
29366
|
return;
|
|
29642
|
-
|
|
29643
|
-
|
|
29644
|
-
|
|
29645
|
-
* Still at the halted position, so this frame is the halt landing
|
|
29646
|
-
* rather than the wheel moving, and re-arming would start a second
|
|
29647
|
-
* commit cycle.
|
|
29648
|
-
*/
|
|
29649
|
-
if (Math.abs(scrollEl.scrollTop - haltedAtScrollTop) <= HALT_TOLERANCE)
|
|
29650
|
-
return;
|
|
29651
|
-
this.haltedAtScrollTop = undefined;
|
|
29367
|
+
if (timeout) {
|
|
29368
|
+
clearTimeout(timeout);
|
|
29369
|
+
timeout = undefined;
|
|
29652
29370
|
}
|
|
29653
|
-
// Armed before the early returns below, so a scroll never ends uncommitted.
|
|
29654
|
-
this.resetScrollEndTimeout();
|
|
29655
29371
|
if (!this.isScrolling) {
|
|
29656
|
-
|
|
29372
|
+
enableHaptics && hapticSelectionStart();
|
|
29657
29373
|
this.isScrolling = true;
|
|
29658
29374
|
}
|
|
29659
|
-
/**
|
|
29660
|
-
* Only a user-driven scroll holds an uncommitted selection. Checked every
|
|
29661
|
-
* frame because the user can take hold of the wheel mid-scroll, and
|
|
29662
|
-
* re-adding the same listener is a no-op.
|
|
29663
|
-
*/
|
|
29664
|
-
if (this.isUserScroll) {
|
|
29665
|
-
this.watchForOutsidePress();
|
|
29666
|
-
}
|
|
29667
29375
|
/**
|
|
29668
29376
|
* Select item in the center of the column
|
|
29669
29377
|
* which is the month/year that we want to select
|
|
@@ -29723,23 +29431,18 @@ class PickerColumn {
|
|
|
29723
29431
|
newActiveElement = fallbackActiveElement;
|
|
29724
29432
|
}
|
|
29725
29433
|
}
|
|
29726
|
-
/**
|
|
29727
|
-
* A scroll can land with no selectable option centered, such as an
|
|
29728
|
-
* overscroll bounce briefly centering the empty padding rows. Keep the
|
|
29729
|
-
* current selection until an option is centered again.
|
|
29730
|
-
*/
|
|
29731
|
-
if (newActiveElement === undefined || newActiveElement.disabled) {
|
|
29732
|
-
return;
|
|
29733
|
-
}
|
|
29734
29434
|
if (activeEl !== undefined) {
|
|
29735
29435
|
this.setPickerItemActiveState(activeEl, false);
|
|
29736
29436
|
}
|
|
29437
|
+
if (newActiveElement === undefined || newActiveElement.disabled) {
|
|
29438
|
+
return;
|
|
29439
|
+
}
|
|
29737
29440
|
/**
|
|
29738
29441
|
* If we are selecting a new value,
|
|
29739
29442
|
* we need to run haptics again.
|
|
29740
29443
|
*/
|
|
29741
29444
|
if (newActiveElement !== activeEl) {
|
|
29742
|
-
|
|
29445
|
+
enableHaptics && hapticSelectionChanged();
|
|
29743
29446
|
if (this.canExitInputMode) {
|
|
29744
29447
|
/**
|
|
29745
29448
|
* The native iOS wheel picker
|
|
@@ -29771,14 +29474,32 @@ class PickerColumn {
|
|
|
29771
29474
|
if (this.updateValueTextOnScroll) {
|
|
29772
29475
|
this.assistiveFocusable?.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
|
|
29773
29476
|
}
|
|
29774
|
-
|
|
29477
|
+
timeout = setTimeout(() => {
|
|
29478
|
+
this.isScrolling = false;
|
|
29479
|
+
this.updateValueTextOnScroll = true;
|
|
29480
|
+
enableHaptics && hapticSelectionEnd();
|
|
29481
|
+
/**
|
|
29482
|
+
* Certain tasks (such as those that
|
|
29483
|
+
* cause re-renders) should only be done
|
|
29484
|
+
* once scrolling has finished, otherwise
|
|
29485
|
+
* flickering may occur.
|
|
29486
|
+
*/
|
|
29487
|
+
const { scrollEndCallback } = this;
|
|
29488
|
+
if (scrollEndCallback) {
|
|
29489
|
+
scrollEndCallback();
|
|
29490
|
+
this.scrollEndCallback = undefined;
|
|
29491
|
+
}
|
|
29492
|
+
/**
|
|
29493
|
+
* Reset this flag as the
|
|
29494
|
+
* next scroll interaction could
|
|
29495
|
+
* be a scroll from the user. In this
|
|
29496
|
+
* case, we should exit input mode.
|
|
29497
|
+
*/
|
|
29498
|
+
this.canExitInputMode = true;
|
|
29499
|
+
this.setValue(newActiveElement.value);
|
|
29500
|
+
}, 250);
|
|
29775
29501
|
});
|
|
29776
29502
|
};
|
|
29777
|
-
const userScrollCallback = () => {
|
|
29778
|
-
this.isUserScroll = true;
|
|
29779
|
-
// Taking hold of the wheel ends the halt even if it has not moved yet.
|
|
29780
|
-
this.haltedAtScrollTop = undefined;
|
|
29781
|
-
};
|
|
29782
29503
|
/**
|
|
29783
29504
|
* Wrap this in an raf so that the scroll callback
|
|
29784
29505
|
* does not fire when component is initially shown.
|
|
@@ -29787,19 +29508,8 @@ class PickerColumn {
|
|
|
29787
29508
|
if (!scrollEl)
|
|
29788
29509
|
return;
|
|
29789
29510
|
scrollEl.addEventListener('scroll', scrollCallback);
|
|
29790
|
-
scrollEl.addEventListener('pointerdown', userScrollCallback);
|
|
29791
|
-
scrollEl.addEventListener('wheel', userScrollCallback, { passive: true });
|
|
29792
|
-
/**
|
|
29793
|
-
* A `pointerdown` fires once per touch, so a drag that pauses long enough
|
|
29794
|
-
* to commit would look like a scroll the column started. A `touchmove`
|
|
29795
|
-
* keeps arriving while the finger moves.
|
|
29796
|
-
*/
|
|
29797
|
-
scrollEl.addEventListener('touchmove', userScrollCallback, { passive: true });
|
|
29798
29511
|
this.destroyScrollListener = () => {
|
|
29799
29512
|
scrollEl.removeEventListener('scroll', scrollCallback);
|
|
29800
|
-
scrollEl.removeEventListener('pointerdown', userScrollCallback);
|
|
29801
|
-
scrollEl.removeEventListener('wheel', userScrollCallback);
|
|
29802
|
-
scrollEl.removeEventListener('touchmove', userScrollCallback);
|
|
29803
29513
|
};
|
|
29804
29514
|
});
|
|
29805
29515
|
};
|
|
@@ -29982,14 +29692,6 @@ class PickerColumn {
|
|
|
29982
29692
|
}
|
|
29983
29693
|
else {
|
|
29984
29694
|
this.isColumnVisible = false;
|
|
29985
|
-
/**
|
|
29986
|
-
* The pending timer still runs so it resets the scroll state, but the
|
|
29987
|
-
* option it would have committed is dropped. A column the user cannot
|
|
29988
|
-
* see should not change its value.
|
|
29989
|
-
*/
|
|
29990
|
-
this.stopWatchingForOutsidePress();
|
|
29991
|
-
this.centeredOption = undefined;
|
|
29992
|
-
this.haltedAtScrollTop = undefined;
|
|
29993
29695
|
if (this.destroyScrollListener) {
|
|
29994
29696
|
this.destroyScrollListener();
|
|
29995
29697
|
this.destroyScrollListener = undefined;
|
|
@@ -30060,13 +29762,6 @@ class PickerColumn {
|
|
|
30060
29762
|
connectedCallback() {
|
|
30061
29763
|
this.ariaLabel = this.el.getAttribute('aria-label') ?? 'Select a value';
|
|
30062
29764
|
}
|
|
30063
|
-
disconnectedCallback() {
|
|
30064
|
-
/**
|
|
30065
|
-
* A pending settle would otherwise commit a value on a column that is no
|
|
30066
|
-
* longer in the DOM.
|
|
30067
|
-
*/
|
|
30068
|
-
this.discardScroll();
|
|
30069
|
-
}
|
|
30070
29765
|
get activeItem() {
|
|
30071
29766
|
const { value } = this;
|
|
30072
29767
|
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
@@ -30084,14 +29779,14 @@ class PickerColumn {
|
|
|
30084
29779
|
render() {
|
|
30085
29780
|
const { color, disabled, isActive, numericInput } = this;
|
|
30086
29781
|
const mode = getIonMode$1(this);
|
|
30087
|
-
return (hAsync(Host, { key: '
|
|
29782
|
+
return (hAsync(Host, { key: '78b46ad10d88ea1bb43ca8c36748767912f03224', class: createColorClasses$1(color, {
|
|
30088
29783
|
[mode]: true,
|
|
30089
29784
|
['picker-column-active']: isActive,
|
|
30090
29785
|
['picker-column-numeric-input']: numericInput,
|
|
30091
29786
|
['picker-column-disabled']: disabled,
|
|
30092
|
-
}) }, hAsync("slot", { key: '
|
|
29787
|
+
}) }, hAsync("slot", { key: '761e501df77f7de896ffb3ebb99ebf88c5c3bf70', name: "prefix" }), hAsync("div", { key: '9f4caaeef8ab704522a85f30876d371712f47c5c', class: "picker-opts", ref: (el) => {
|
|
30093
29788
|
this.scrollEl = el;
|
|
30094
|
-
}, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, hAsync("div", { key: '
|
|
29789
|
+
}, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, hAsync("div", { key: '9d3533436aba6c61c93f65f84a077fba832194a0', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '3f18d3a47361f06f55321b65fdf5742a61722b26', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'eac0d20ab8c533ef829875e323e93e1ee2067d6d', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '92e25989ef41cf6f910c73238e1a0a5ac03f1c1f' }), hAsync("div", { key: '33a84644ebdc84108b44a8e3a129b54e824939c8', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '128ad61a3a68c7ff2d2e44a6e968424fcc608a15', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '6e4d59a4f75befcbbf47279a263f28a69b12dbbd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: '3c6621b64438792a3024c90e3d9916a0a3614506', name: "suffix" })));
|
|
30095
29790
|
}
|
|
30096
29791
|
get el() { return getElement(this); }
|
|
30097
29792
|
static get watchers() { return {
|
|
@@ -30123,19 +29818,6 @@ class PickerColumn {
|
|
|
30123
29818
|
}; }
|
|
30124
29819
|
}
|
|
30125
29820
|
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
30126
|
-
/**
|
|
30127
|
-
* How long the column must be idle before the centered option is treated as
|
|
30128
|
-
* the user's selection. Replaceable by the `scrollend` event once that is
|
|
30129
|
-
* supported everywhere (https://caniuse.com/?search=scrollend).
|
|
30130
|
-
*/
|
|
30131
|
-
const SCROLL_END_DELAY = 250;
|
|
30132
|
-
/**
|
|
30133
|
-
* How far, in pixels, the column may report from where it was halted and still
|
|
30134
|
-
* count as having stayed there. Centering targets a position between two snap
|
|
30135
|
-
* points, so mandatory snapping corrects it by half the column height less
|
|
30136
|
-
* three option heights: 2px at the default sizes.
|
|
30137
|
-
*/
|
|
30138
|
-
const HALT_TOLERANCE = 2;
|
|
30139
29821
|
|
|
30140
29822
|
const pickerColumnOptionIosCss = () => `.picker-column-option-button{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%;height:34px;border:0px;outline:none;background:transparent;color:inherit;font-family:var(--ion-font-family, inherit);font-size:inherit;line-height:34px;text-align:inherit;text-overflow:ellipsis;white-space:nowrap;cursor:pointer;overflow:hidden}:host(.option-disabled){opacity:0.4}:host(.option-disabled) .picker-column-option-button{cursor:default}`;
|
|
30141
29823
|
|
|
@@ -31538,13 +31220,6 @@ class Popover {
|
|
|
31538
31220
|
const { configureTriggerInteraction, el } = this;
|
|
31539
31221
|
prepareOverlay(el);
|
|
31540
31222
|
configureTriggerInteraction();
|
|
31541
|
-
// Re-apply the root lock if moved without dismiss() being called
|
|
31542
|
-
if (this.presented) {
|
|
31543
|
-
restoreRootFocusTrapAccessibility(el);
|
|
31544
|
-
// The disconnect tore down the header observer, and `present()` is its
|
|
31545
|
-
// only other caller, so a move mid-layout would lose the recalculation.
|
|
31546
|
-
this.recalculateContentOnHeaderReady();
|
|
31547
|
-
}
|
|
31548
31223
|
}
|
|
31549
31224
|
disconnectedCallback() {
|
|
31550
31225
|
const { destroyTriggerInteraction } = this;
|
|
@@ -31722,12 +31397,6 @@ class Popover {
|
|
|
31722
31397
|
if (!header || contentElements.length === 0) {
|
|
31723
31398
|
return;
|
|
31724
31399
|
}
|
|
31725
|
-
// Both `present()` and a reconnect call this, so drop any existing
|
|
31726
|
-
// observer. Below the guards, so a call that bails cannot leave none.
|
|
31727
|
-
if (this.headerResizeObserver) {
|
|
31728
|
-
this.headerResizeObserver.disconnect();
|
|
31729
|
-
this.headerResizeObserver = undefined;
|
|
31730
|
-
}
|
|
31731
31400
|
this.headerResizeObserver = new ResizeObserver(async () => {
|
|
31732
31401
|
if (header.offsetHeight > 0) {
|
|
31733
31402
|
this.headerResizeObserver?.disconnect();
|
|
@@ -31800,7 +31469,7 @@ class Popover {
|
|
|
31800
31469
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
31801
31470
|
const desktop = isPlatform('desktop');
|
|
31802
31471
|
const enableArrow = arrow && !parentPopover;
|
|
31803
|
-
return (hAsync(Host, { key: '
|
|
31472
|
+
return (hAsync(Host, { key: '52ffc7116969ae1b8b927e67f2acbfe5f5434f70', "aria-modal": "true", "no-router": true, tabindex: "-1", ...htmlAttributes, style: {
|
|
31804
31473
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
31805
31474
|
}, class: {
|
|
31806
31475
|
...getClassMap(this.cssClass),
|
|
@@ -31811,7 +31480,7 @@ class Popover {
|
|
|
31811
31480
|
[`popover-side-${side}`]: true,
|
|
31812
31481
|
[FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
|
|
31813
31482
|
'popover-nested': !!parentPopover,
|
|
31814
|
-
}, onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }, !parentPopover && hAsync("ion-backdrop", { key: '
|
|
31483
|
+
}, onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }, !parentPopover && hAsync("ion-backdrop", { key: '79a8e851dbd22119e21ffb2f4709c555251045c8', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), hAsync("div", { key: 'c46c9f62c3ef3f902e23f27404eaa446a5d8cf88', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && hAsync("div", { key: '9fdcbbc4ea6c7bde74f646d48eb77296b2c9dd83', class: "popover-arrow", part: "arrow" }), hAsync("div", { key: '138e56bb83462ebb0908edb522b45ecf94b82aeb', class: "popover-content", part: "content" }, hAsync("slot", { key: 'daeefcf002e8d89e91d6e0faf7f63f75b68a2dbe' })))));
|
|
31815
31484
|
}
|
|
31816
31485
|
get el() { return getElement(this); }
|
|
31817
31486
|
static get watchers() { return {
|
|
@@ -37606,6 +37275,11 @@ class SegmentButton {
|
|
|
37606
37275
|
addEventListener$1(segmentEl, 'ionSelect', this.updateState);
|
|
37607
37276
|
addEventListener$1(segmentEl, 'ionStyle', this.updateStyle);
|
|
37608
37277
|
}
|
|
37278
|
+
// Prevent buttons from being disabled when associated with segment content
|
|
37279
|
+
if (this.contentId && this.disabled) {
|
|
37280
|
+
printIonWarning(`[ion-segment-button] - Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
|
|
37281
|
+
this.disabled = false;
|
|
37282
|
+
}
|
|
37609
37283
|
}
|
|
37610
37284
|
disconnectedCallback() {
|
|
37611
37285
|
const segmentEl = this.segmentEl;
|
|
@@ -37622,15 +37296,6 @@ class SegmentButton {
|
|
|
37622
37296
|
// Return if there is no contentId defined
|
|
37623
37297
|
if (!this.contentId)
|
|
37624
37298
|
return;
|
|
37625
|
-
/**
|
|
37626
|
-
* Checked here rather than in `connectedCallback` so frameworks that assign element
|
|
37627
|
-
* props after inserting the element have set `disabled` by now. A disabled ion-segment
|
|
37628
|
-
* pushes that onto its buttons too, which this guard should not undo.
|
|
37629
|
-
*/
|
|
37630
|
-
if (this.disabled && this.segmentEl?.disabled !== true) {
|
|
37631
|
-
printIonWarning(`[ion-segment-button] - Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
|
|
37632
|
-
this.disabled = false;
|
|
37633
|
-
}
|
|
37634
37299
|
// Attempt to find the Segment Content by its contentId
|
|
37635
37300
|
const segmentContent = document.getElementById(this.contentId);
|
|
37636
37301
|
// If no associated Segment Content exists, log an error and return
|
|
@@ -37665,7 +37330,7 @@ class SegmentButton {
|
|
|
37665
37330
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
37666
37331
|
const mode = getIonMode$1(this);
|
|
37667
37332
|
const hasSegmentColor = () => segmentEl?.color !== undefined;
|
|
37668
|
-
return (hAsync(Host, { key: '
|
|
37333
|
+
return (hAsync(Host, { key: '2b4b7ad8b981d2ee39aba5b9c734de8a5bd045ba', class: {
|
|
37669
37334
|
[mode]: true,
|
|
37670
37335
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
37671
37336
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -37681,7 +37346,7 @@ class SegmentButton {
|
|
|
37681
37346
|
'ion-activatable': true,
|
|
37682
37347
|
'ion-activatable-instant': true,
|
|
37683
37348
|
'ion-focusable': true,
|
|
37684
|
-
} }, hAsync("button", { key: '
|
|
37349
|
+
} }, hAsync("button", { key: '9cc58cfbe70844a0f5e1a307002e0d04e044be99', "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: '6443551951ce589efdb2d0e1fd1a14e35b82ed19', class: "button-inner" }, hAsync("slot", { key: 'c3548b469ae6e5477d8372cb28bc70dff3a24d18' })), mode === 'md' && hAsync("ion-ripple-effect", { key: 'fb176415ca1702766c4d7a5964ec0bb467bdcb55' })), hAsync("div", { key: 'aa22b4752f8336d0e232a1e0894e87023b284a08', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: '61e29ea52048fa0583fce6c20c81614a4d0199cb', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
37685
37350
|
}
|
|
37686
37351
|
get el() { return getElement(this); }
|
|
37687
37352
|
static get watchers() { return {
|
|
@@ -38725,7 +38390,7 @@ class Select {
|
|
|
38725
38390
|
const hasOutlineFill = mode === 'md' && fill === 'outline';
|
|
38726
38391
|
renderHiddenInput(true, el, name, parseValue(value), disabled);
|
|
38727
38392
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || isExpanded));
|
|
38728
|
-
return (hAsync(Host, { key: '
|
|
38393
|
+
return (hAsync(Host, { key: '5d1e5bf46d0f204efdcb55cc42cfde52e6db304b', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
38729
38394
|
[mode]: true,
|
|
38730
38395
|
'in-item': inItem,
|
|
38731
38396
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -38743,7 +38408,7 @@ class Select {
|
|
|
38743
38408
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
38744
38409
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
38745
38410
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
38746
|
-
}) }, hAsync("label", { key: '
|
|
38411
|
+
}) }, hAsync("label", { key: '15fd1f8e06510ae8472c621cf8cf90e51172e0be', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, hasOutlineFill && this.renderOutlineContainer(), hAsync("div", { key: '7964e3d9351671899793b117896acdda25ec24c4', class: "select-start", part: "start", ref: (el) => (this.startContainerEl = el) }, hAsync("slot", { key: 'aa309ef155c4025acfd7ed5739b5221c85097b36', name: "start" })), hAsync("div", { key: '23d5a9dfea64a9d81b0b36d9426b15bed98901b9', class: "select-control", part: "control" }, this.renderLabel(), hAsync("div", { key: '810da9fbfa8771e09b5fb768d64e5f04858b5833', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox(), !hasFloatingOrStackedLabel && this.renderSelectIcon())), hAsync("div", { key: 'bf1c04704326ecfa14cf2e49bb76d3fb45beb08d', class: "select-end", part: "end" }, hasFloatingOrStackedLabel && this.renderSelectIcon(), hAsync("slot", { key: '76a8bcaeefdcaa908aebd820d93171b08165cee3', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '55a9c417a82323a44e16328fd62a634d9d7c558b', class: "select-highlight" })), this.renderBottomContent()));
|
|
38747
38412
|
}
|
|
38748
38413
|
get el() { return getElement(this); }
|
|
38749
38414
|
static get watchers() { return {
|
|
@@ -38852,14 +38517,29 @@ const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
|
38852
38517
|
return getOptionContent(selectOpt, undefined, true);
|
|
38853
38518
|
}
|
|
38854
38519
|
/**
|
|
38855
|
-
*
|
|
38856
|
-
*
|
|
38857
|
-
*
|
|
38858
|
-
* cannot disagree about what an option's text is. `null` marks an
|
|
38859
|
-
* option with no text, which is dropped from the joined text of a
|
|
38860
|
-
* `multiple` select rather than joined in as an empty entry.
|
|
38520
|
+
* When custom HTML is enabled, extract only the default slot content.
|
|
38521
|
+
* This ensures aria-label and other text-only contexts read only
|
|
38522
|
+
* the relevant option text.
|
|
38861
38523
|
*/
|
|
38862
|
-
|
|
38524
|
+
if (customHTMLEnabled) {
|
|
38525
|
+
const content = getOptionContent(selectOpt);
|
|
38526
|
+
if (typeof content === 'string') {
|
|
38527
|
+
return content;
|
|
38528
|
+
}
|
|
38529
|
+
/**
|
|
38530
|
+
* Elements were found in the default slot, extract and concatenate
|
|
38531
|
+
* their text content while trimming whitespace.
|
|
38532
|
+
*/
|
|
38533
|
+
if (content) {
|
|
38534
|
+
const texts = Array.from(content.childNodes)
|
|
38535
|
+
.map((n) => n.textContent?.trim())
|
|
38536
|
+
.filter((t) => t);
|
|
38537
|
+
return texts.join(' ') || null;
|
|
38538
|
+
}
|
|
38539
|
+
// Empty option
|
|
38540
|
+
return null;
|
|
38541
|
+
}
|
|
38542
|
+
return getDefaultSlotPlainText(selectOpt);
|
|
38863
38543
|
};
|
|
38864
38544
|
/**
|
|
38865
38545
|
* Trims whitespace from all text nodes within a DOM tree.
|
|
@@ -38915,13 +38595,9 @@ const getOptionContent = (option, slotName, useHTML = false) => {
|
|
|
38915
38595
|
if (nodes.length === 0) {
|
|
38916
38596
|
return null;
|
|
38917
38597
|
}
|
|
38918
|
-
|
|
38919
|
-
* Return plain text if no elements are found. This reads the option the
|
|
38920
|
-
* same way the non-custom-HTML path does, so the two do not disagree
|
|
38921
|
-
* about what an option's text is.
|
|
38922
|
-
*/
|
|
38598
|
+
// Return plain text if no elements are found
|
|
38923
38599
|
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
38924
|
-
return
|
|
38600
|
+
return nodes.map((n) => n.textContent?.trim()).join(' ') || null;
|
|
38925
38601
|
}
|
|
38926
38602
|
/**
|
|
38927
38603
|
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
@@ -38977,43 +38653,22 @@ const getOptionDefaultSlot = (option) => {
|
|
|
38977
38653
|
}
|
|
38978
38654
|
return defaultSlotNodes;
|
|
38979
38655
|
};
|
|
38980
|
-
/**
|
|
38981
|
-
* Concatenates the text a node renders, skipping the subtrees of tags
|
|
38982
|
-
* whose contents the browser never paints (`script`, `style`, and the
|
|
38983
|
-
* rest of `blockedTags`). `textContent` includes those, so reading it
|
|
38984
|
-
* directly would put stylesheet or script source into the select text
|
|
38985
|
-
* and the `aria-label`.
|
|
38986
|
-
*
|
|
38987
|
-
* @param node - The node to read text from.
|
|
38988
|
-
* @returns The node's rendered text.
|
|
38989
|
-
*/
|
|
38990
|
-
const getRenderedTextContent = (node) => {
|
|
38991
|
-
if (node.nodeType === Node.TEXT_NODE) {
|
|
38992
|
-
return node.textContent ?? '';
|
|
38993
|
-
}
|
|
38994
|
-
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
38995
|
-
return '';
|
|
38996
|
-
}
|
|
38997
|
-
if (blockedTags.includes(node.tagName.toLowerCase())) {
|
|
38998
|
-
return '';
|
|
38999
|
-
}
|
|
39000
|
-
return Array.from(node.childNodes)
|
|
39001
|
-
.map((child) => getRenderedTextContent(child))
|
|
39002
|
-
.join('');
|
|
39003
|
-
};
|
|
39004
38656
|
/**
|
|
39005
38657
|
* Extracts plain text from only the default slot of an option,
|
|
39006
|
-
* excluding content assigned to named slots (start/end).
|
|
39007
|
-
* concatenated with no separator and collapsible whitespace is
|
|
39008
|
-
* collapsed, approximating how the browser renders the option.
|
|
39009
|
-
* NBSP is not collapsible, so it is preserved.
|
|
39010
|
-
*
|
|
39011
|
-
* @param option - The `ion-select-option` element to read text from.
|
|
39012
|
-
* @returns The option's default slot text.
|
|
38658
|
+
* excluding content assigned to named slots (start/end).
|
|
39013
38659
|
*/
|
|
39014
38660
|
const getDefaultSlotPlainText = (option) => {
|
|
39015
|
-
const
|
|
39016
|
-
|
|
38661
|
+
const texts = Array.from(option.childNodes)
|
|
38662
|
+
.filter((node) => {
|
|
38663
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38664
|
+
return !node.hasAttribute('slot');
|
|
38665
|
+
}
|
|
38666
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38667
|
+
})
|
|
38668
|
+
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
38669
|
+
.map((n) => n.textContent?.trim())
|
|
38670
|
+
.filter((t) => t);
|
|
38671
|
+
return texts.join(' ');
|
|
39017
38672
|
};
|
|
39018
38673
|
/**
|
|
39019
38674
|
* Extracts the rich content from an `ion-select-option`.
|
|
@@ -43089,7 +42744,7 @@ var NAMESPACE = (
|
|
|
43089
42744
|
);
|
|
43090
42745
|
|
|
43091
42746
|
/*
|
|
43092
|
-
Stencil Hydrate Runner v4.
|
|
42747
|
+
Stencil Hydrate Runner v4.43.5 | MIT Licensed | https://stenciljs.com
|
|
43093
42748
|
*/
|
|
43094
42749
|
var __create = Object.create;
|
|
43095
42750
|
var __defProp = Object.defineProperty;
|