@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.mjs
CHANGED
|
@@ -420,7 +420,7 @@ const appGlobalScript = initialize || (() => {});
|
|
|
420
420
|
const globalScripts = appGlobalScript;
|
|
421
421
|
|
|
422
422
|
/*
|
|
423
|
-
Stencil Hydrate Platform v4.
|
|
423
|
+
Stencil Hydrate Platform v4.43.5 | MIT Licensed | https://stenciljs.com
|
|
424
424
|
*/
|
|
425
425
|
var __create = Object.create;
|
|
426
426
|
var __defProp = Object.defineProperty;
|
|
@@ -755,8 +755,6 @@ var DEFAULT_DOC_DATA = {
|
|
|
755
755
|
};
|
|
756
756
|
var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
|
|
757
757
|
var XLINK_NS = "http://www.w3.org/1999/xlink";
|
|
758
|
-
var MAX_LAZY_LOAD_RETRIES = 3;
|
|
759
|
-
var LAZY_LOAD_RETRY_INTERVAL_MS = 1e3;
|
|
760
758
|
|
|
761
759
|
// src/utils/style.ts
|
|
762
760
|
function createStyleSheetIfNeededAndSupported(styles2) {
|
|
@@ -820,7 +818,7 @@ function getHostSlotNodes(childNodes, hostName, slotName) {
|
|
|
820
818
|
slottedNodes.push(childNode);
|
|
821
819
|
if (typeof slotName !== "undefined") return slottedNodes;
|
|
822
820
|
}
|
|
823
|
-
slottedNodes = [...slottedNodes, ...getHostSlotNodes(
|
|
821
|
+
slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode.childNodes, hostName, slotName)];
|
|
824
822
|
}
|
|
825
823
|
return slottedNodes;
|
|
826
824
|
}
|
|
@@ -1064,11 +1062,6 @@ var h = (nodeName, vnodeData, ...children) => {
|
|
|
1064
1062
|
} else if (child != null && typeof child !== "boolean") {
|
|
1065
1063
|
if (simple = typeof nodeName !== "function" && !isComplexType(child)) {
|
|
1066
1064
|
child = String(child);
|
|
1067
|
-
} else if (typeof nodeName !== "function" && child.$flags$ === void 0) {
|
|
1068
|
-
{
|
|
1069
|
-
consoleError("Invalid vNode child");
|
|
1070
|
-
}
|
|
1071
|
-
continue;
|
|
1072
1065
|
}
|
|
1073
1066
|
if (simple && lastSimple) {
|
|
1074
1067
|
vNodeChildren[vNodeChildren.length - 1].$text$ += child;
|
|
@@ -2304,7 +2297,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
|
|
|
2304
2297
|
}
|
|
2305
2298
|
}
|
|
2306
2299
|
if (newValue == null || newValue === false) {
|
|
2307
|
-
if (newValue !== false || elm.getAttribute(memberName) === ""
|
|
2300
|
+
if (newValue !== false || elm.getAttribute(memberName) === "") {
|
|
2308
2301
|
if (xlink) {
|
|
2309
2302
|
elm.removeAttributeNS(XLINK_NS, memberName);
|
|
2310
2303
|
} else {
|
|
@@ -2321,8 +2314,6 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
|
|
|
2321
2314
|
}
|
|
2322
2315
|
}
|
|
2323
2316
|
};
|
|
2324
|
-
var ENUMERATED_ATTRIBUTES = /* @__PURE__ */ new Set(["draggable", "contenteditable", "spellcheck"]);
|
|
2325
|
-
var isEnumeratedAttribute = (attrName) => ENUMERATED_ATTRIBUTES.has(attrName) || attrName.startsWith("aria-");
|
|
2326
2317
|
var parseClassListRegex = /\s/;
|
|
2327
2318
|
var parseClassList = (value) => {
|
|
2328
2319
|
if (typeof value === "object" && value && "baseVal" in value) {
|
|
@@ -2725,10 +2716,7 @@ var markSlotContentForRelocation = (elm) => {
|
|
|
2725
2716
|
const slotName = childNode["s-sn"];
|
|
2726
2717
|
for (j = hostContentNodes.length - 1; j >= 0; j--) {
|
|
2727
2718
|
node = hostContentNodes[j];
|
|
2728
|
-
if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] &&
|
|
2729
|
-
// `slotName === ''` itself - a matched default node's cached `s-sn` is `''` too, which
|
|
2730
|
-
// would trivially "match" on every re-render and force pointless re-insertion.
|
|
2731
|
-
(!node["s-sh"] || node["s-sh"] !== childNode["s-hn"] || slotName !== "" && getSlotName(node) === slotName)) {
|
|
2719
|
+
if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && (!node["s-sh"] || node["s-sh"] !== childNode["s-hn"])) {
|
|
2732
2720
|
if (isNodeLocatedInSlot(node, slotName)) {
|
|
2733
2721
|
let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
|
|
2734
2722
|
checkSlotFallbackVisibility = true;
|
|
@@ -2798,7 +2786,7 @@ var insertBefore = (parent, newNode, reference, isInitialLoad) => {
|
|
|
2798
2786
|
return newNode;
|
|
2799
2787
|
}
|
|
2800
2788
|
}
|
|
2801
|
-
if (
|
|
2789
|
+
if (parent.__insertBefore) {
|
|
2802
2790
|
return parent.__insertBefore(newNode, reference);
|
|
2803
2791
|
} else {
|
|
2804
2792
|
return parent == null ? void 0 : parent.insertBefore(newNode, reference);
|
|
@@ -3303,12 +3291,10 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
3303
3291
|
|
|
3304
3292
|
// src/runtime/initialize-component.ts
|
|
3305
3293
|
var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
3306
|
-
var _a2;
|
|
3307
3294
|
let Cstr;
|
|
3308
3295
|
try {
|
|
3309
3296
|
if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
|
|
3310
3297
|
hostRef.$flags$ |= 32 /* hasInitializedComponent */;
|
|
3311
|
-
hostRef.$flags$ &= -1025 /* hasFailedLoad */;
|
|
3312
3298
|
const bundleId = cmpMeta.$lazyBundleId$;
|
|
3313
3299
|
if (bundleId) {
|
|
3314
3300
|
const CstrImport = loadModule(cmpMeta);
|
|
@@ -3320,11 +3306,6 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
|
3320
3306
|
Cstr = CstrImport;
|
|
3321
3307
|
}
|
|
3322
3308
|
if (!Cstr) {
|
|
3323
|
-
hostRef.$flags$ &= -33 /* hasInitializedComponent */;
|
|
3324
|
-
hostRef.$loadRetryCount$ = ((_a2 = hostRef.$loadRetryCount$) != null ? _a2 : 0) + 1;
|
|
3325
|
-
if (hostRef.$loadRetryCount$ < MAX_LAZY_LOAD_RETRIES) {
|
|
3326
|
-
hostRef.$flags$ |= 1024 /* hasFailedLoad */;
|
|
3327
|
-
}
|
|
3328
3309
|
throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
|
|
3329
3310
|
}
|
|
3330
3311
|
if (!Cstr.isProxied) {
|
|
@@ -3404,7 +3385,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
|
3404
3385
|
hostRef.$onRenderResolve$();
|
|
3405
3386
|
hostRef.$onRenderResolve$ = void 0;
|
|
3406
3387
|
}
|
|
3407
|
-
if (hostRef.$onReadyResolve$
|
|
3388
|
+
if (hostRef.$onReadyResolve$) {
|
|
3408
3389
|
hostRef.$onReadyResolve$(elm);
|
|
3409
3390
|
}
|
|
3410
3391
|
}
|
|
@@ -3463,8 +3444,6 @@ var connectedCallback = (elm) => {
|
|
|
3463
3444
|
addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
|
|
3464
3445
|
if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
|
|
3465
3446
|
fireConnectedCallback(hostRef.$lazyInstance$, elm);
|
|
3466
|
-
} else if (hostRef.$flags$ & 1024 /* hasFailedLoad */) {
|
|
3467
|
-
setTimeout(() => initializeComponent(elm, hostRef, cmpMeta), LAZY_LOAD_RETRY_INTERVAL_MS);
|
|
3468
3447
|
} else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
|
|
3469
3448
|
hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$, elm));
|
|
3470
3449
|
}
|
|
@@ -7980,15 +7959,6 @@ const activeAnimations = new WeakMap();
|
|
|
7980
7959
|
const isBackdropAlwaysBlocking = (el) => {
|
|
7981
7960
|
return el.showBackdrop !== false && !((el.backdropBreakpoint ?? 0) > 0);
|
|
7982
7961
|
};
|
|
7983
|
-
/**
|
|
7984
|
-
* Whether the overlay takes the app root out of the accessibility tree and
|
|
7985
|
-
* blocks body scroll while presented. Toasts never do, modal and popover can
|
|
7986
|
-
* opt out with `focusTrap={false}`, and a backdrop that does not block
|
|
7987
|
-
* (`showBackdrop={false}`, or a `backdropBreakpoint` above 0) is excluded.
|
|
7988
|
-
*/
|
|
7989
|
-
const locksAppRoot = (el) => {
|
|
7990
|
-
return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
|
|
7991
|
-
};
|
|
7992
7962
|
const createController = (tagName) => {
|
|
7993
7963
|
return {
|
|
7994
7964
|
create(options) {
|
|
@@ -8357,13 +8327,6 @@ const getPresentedOverlay = (doc, overlayTag, id) => {
|
|
|
8357
8327
|
// Otherwise, return the last overlay with the given id
|
|
8358
8328
|
return (id === undefined ? overlays : overlays.filter((o) => o.id === id)).slice(-1)[0];
|
|
8359
8329
|
};
|
|
8360
|
-
/**
|
|
8361
|
-
* The element an app nests its views under. Overlays hide this rather than the
|
|
8362
|
-
* whole root, so the overlay itself (a sibling) stays reachable.
|
|
8363
|
-
*/
|
|
8364
|
-
const getViewContainer = () => {
|
|
8365
|
-
return getAppRoot(document).querySelector('ion-router-outlet, #ion-view-container-root');
|
|
8366
|
-
};
|
|
8367
8330
|
/**
|
|
8368
8331
|
* When an overlay is presented, the main
|
|
8369
8332
|
* focus is the overlay not the page content.
|
|
@@ -8387,7 +8350,8 @@ const getViewContainer = () => {
|
|
|
8387
8350
|
* for main content.
|
|
8388
8351
|
*/
|
|
8389
8352
|
const setRootAriaHidden = (hidden = false) => {
|
|
8390
|
-
const
|
|
8353
|
+
const root = getAppRoot(document);
|
|
8354
|
+
const viewContainer = root.querySelector('ion-router-outlet, #ion-view-container-root');
|
|
8391
8355
|
if (!viewContainer) {
|
|
8392
8356
|
return;
|
|
8393
8357
|
}
|
|
@@ -8412,42 +8376,15 @@ const cleanupRootFocusTrapAccessibility = () => {
|
|
|
8412
8376
|
return;
|
|
8413
8377
|
}
|
|
8414
8378
|
const remainingOverlays = getPresentedOverlays(document);
|
|
8415
|
-
const hasRemainingLocking = remainingOverlays.some((o) =>
|
|
8379
|
+
const hasRemainingLocking = remainingOverlays.some((o) => {
|
|
8380
|
+
const el = o;
|
|
8381
|
+
return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
|
|
8382
|
+
});
|
|
8416
8383
|
if (!hasRemainingLocking) {
|
|
8417
8384
|
setRootAriaHidden(false);
|
|
8418
8385
|
document.body.classList.remove(BACKDROP_NO_SCROLL);
|
|
8419
8386
|
}
|
|
8420
8387
|
};
|
|
8421
|
-
/**
|
|
8422
|
-
* Applies the root lock itself: `aria-hidden` on the view container, and
|
|
8423
|
-
* `backdrop-no-scroll` on the body. Shared by `present()` and the restore
|
|
8424
|
-
* below, which have to stay in lockstep.
|
|
8425
|
-
*/
|
|
8426
|
-
const applyRootLock = (el) => {
|
|
8427
|
-
// Hiding the container the overlay now sits in would hide the overlay too.
|
|
8428
|
-
if (!getViewContainer()?.contains(el)) {
|
|
8429
|
-
setRootAriaHidden(true);
|
|
8430
|
-
}
|
|
8431
|
-
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
8432
|
-
};
|
|
8433
|
-
/**
|
|
8434
|
-
* Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
|
|
8435
|
-
* Call from `connectedCallback` when the overlay is still presented.
|
|
8436
|
-
*
|
|
8437
|
-
* A synchronous move keeps the overlay connected, so the lock survives. A
|
|
8438
|
-
* detach with a re-insert in a later task releases it, which is the shape a
|
|
8439
|
-
* framework produces when it takes a subtree out and puts it back.
|
|
8440
|
-
*/
|
|
8441
|
-
const restoreRootFocusTrapAccessibility = (overlayEl) => {
|
|
8442
|
-
if (typeof document === 'undefined') {
|
|
8443
|
-
return;
|
|
8444
|
-
}
|
|
8445
|
-
const el = overlayEl;
|
|
8446
|
-
if (!locksAppRoot(el)) {
|
|
8447
|
-
return;
|
|
8448
|
-
}
|
|
8449
|
-
applyRootLock(el);
|
|
8450
|
-
};
|
|
8451
8388
|
const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts) => {
|
|
8452
8389
|
if (overlay.presented) {
|
|
8453
8390
|
return;
|
|
@@ -8464,7 +8401,15 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
8464
8401
|
restoreElementFocus(overlay.el);
|
|
8465
8402
|
}
|
|
8466
8403
|
/**
|
|
8467
|
-
*
|
|
8404
|
+
* Due to accessibility guidelines, toasts do not have
|
|
8405
|
+
* focus traps.
|
|
8406
|
+
*
|
|
8407
|
+
* All other overlays should have focus traps to prevent
|
|
8408
|
+
* the keyboard focus from leaving the overlay unless
|
|
8409
|
+
* developers explicitly opt out (for example, sheet
|
|
8410
|
+
* modals that should permit background interaction).
|
|
8411
|
+
*
|
|
8412
|
+
* Note: Some apps move inline overlays to a specific container
|
|
8468
8413
|
* during the willPresent lifecycle (e.g., React portals via
|
|
8469
8414
|
* onWillPresent). Defer applying aria-hidden/inert to the app
|
|
8470
8415
|
* root until after willPresent so we can detect where the
|
|
@@ -8473,11 +8418,18 @@ const present = async (overlay, name, iosEnterAnimation, mdEnterAnimation, opts)
|
|
|
8473
8418
|
* to avoid disabling the overlay.
|
|
8474
8419
|
*/
|
|
8475
8420
|
const overlayEl = overlay.el;
|
|
8476
|
-
const
|
|
8421
|
+
const shouldTrapFocus = overlayEl.tagName !== 'ION-TOAST' && overlayEl.focusTrap !== false;
|
|
8422
|
+
const shouldLockRoot = shouldTrapFocus && isBackdropAlwaysBlocking(overlayEl);
|
|
8477
8423
|
overlay.presented = true;
|
|
8478
8424
|
overlay.willPresent.emit();
|
|
8479
8425
|
if (shouldLockRoot) {
|
|
8480
|
-
|
|
8426
|
+
const root = getAppRoot(document);
|
|
8427
|
+
const viewContainer = root.querySelector('ion-router-outlet, #ion-view-container-root');
|
|
8428
|
+
const overlayInsideViewContainer = viewContainer ? viewContainer.contains(overlayEl) : false;
|
|
8429
|
+
if (!overlayInsideViewContainer) {
|
|
8430
|
+
setRootAriaHidden(true);
|
|
8431
|
+
}
|
|
8432
|
+
document.body.classList.add(BACKDROP_NO_SCROLL);
|
|
8481
8433
|
}
|
|
8482
8434
|
overlay.willPresentShorthand?.emit();
|
|
8483
8435
|
const mode = getIonMode$1(overlay);
|
|
@@ -8603,9 +8555,12 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
8603
8555
|
* from the root element when the last focus-trapping overlay
|
|
8604
8556
|
* is dismissed.
|
|
8605
8557
|
*/
|
|
8606
|
-
const overlaysLockingRoot = presentedOverlays.filter((o) =>
|
|
8558
|
+
const overlaysLockingRoot = presentedOverlays.filter((o) => {
|
|
8559
|
+
const el = o;
|
|
8560
|
+
return el.tagName !== 'ION-TOAST' && el.focusTrap !== false && isBackdropAlwaysBlocking(el);
|
|
8561
|
+
});
|
|
8607
8562
|
const overlayEl = overlay.el;
|
|
8608
|
-
const locksRoot =
|
|
8563
|
+
const locksRoot = overlayEl.tagName !== 'ION-TOAST' && overlayEl.focusTrap !== false && isBackdropAlwaysBlocking(overlayEl);
|
|
8609
8564
|
/**
|
|
8610
8565
|
* If this is the last visible overlay that is trapping focus
|
|
8611
8566
|
* then we want to re-add the root to the accessibility tree.
|
|
@@ -10601,13 +10556,6 @@ class ActionSheet {
|
|
|
10601
10556
|
connectedCallback() {
|
|
10602
10557
|
prepareOverlay(this.el);
|
|
10603
10558
|
this.triggerChanged();
|
|
10604
|
-
// `componentDidLoad` only fires once per instance, so a reconnect has to
|
|
10605
|
-
// rebuild the gesture its disconnect destroyed.
|
|
10606
|
-
this.setupButtonActiveGesture();
|
|
10607
|
-
// Re-apply the root lock if moved without dismiss() being called
|
|
10608
|
-
if (this.presented) {
|
|
10609
|
-
restoreRootFocusTrapAccessibility(this.el);
|
|
10610
|
-
}
|
|
10611
10559
|
}
|
|
10612
10560
|
disconnectedCallback() {
|
|
10613
10561
|
if (this.gesture) {
|
|
@@ -10627,33 +10575,24 @@ class ActionSheet {
|
|
|
10627
10575
|
// Initialize activeRadioId for radio buttons
|
|
10628
10576
|
this.buttonsChanged();
|
|
10629
10577
|
}
|
|
10630
|
-
|
|
10631
|
-
|
|
10632
|
-
|
|
10633
|
-
|
|
10634
|
-
|
|
10635
|
-
|
|
10636
|
-
|
|
10637
|
-
|
|
10638
|
-
*/
|
|
10639
|
-
setupButtonActiveGesture() {
|
|
10578
|
+
componentDidLoad() {
|
|
10579
|
+
/**
|
|
10580
|
+
* Only create gesture if:
|
|
10581
|
+
* 1. A gesture does not already exist
|
|
10582
|
+
* 2. App is running in iOS mode
|
|
10583
|
+
* 3. A wrapper ref exists
|
|
10584
|
+
* 4. A group ref exists
|
|
10585
|
+
*/
|
|
10640
10586
|
const { groupEl, wrapperEl } = this;
|
|
10641
|
-
if (getIonMode$1(this)
|
|
10642
|
-
|
|
10587
|
+
if (!this.gesture && getIonMode$1(this) === 'ios' && wrapperEl && groupEl) {
|
|
10588
|
+
readTask(() => {
|
|
10589
|
+
const isScrollable = groupEl.scrollHeight > groupEl.clientHeight;
|
|
10590
|
+
if (!isScrollable) {
|
|
10591
|
+
this.gesture = createButtonActiveGesture(wrapperEl, (refEl) => refEl.classList.contains('action-sheet-button'));
|
|
10592
|
+
this.gesture.enable(true);
|
|
10593
|
+
}
|
|
10594
|
+
});
|
|
10643
10595
|
}
|
|
10644
|
-
readTask(() => {
|
|
10645
|
-
// Bail if a call queued ahead of this one already built the gesture
|
|
10646
|
-
// (a second would orphan the first with its listeners still bound), if
|
|
10647
|
-
// the host disconnected while this task waited, or if the group scrolls.
|
|
10648
|
-
if (this.gesture || !this.el.isConnected || groupEl.scrollHeight > groupEl.clientHeight) {
|
|
10649
|
-
return;
|
|
10650
|
-
}
|
|
10651
|
-
this.gesture = createButtonActiveGesture(wrapperEl, (refEl) => refEl.classList.contains('action-sheet-button'));
|
|
10652
|
-
this.gesture.enable(true);
|
|
10653
|
-
});
|
|
10654
|
-
}
|
|
10655
|
-
componentDidLoad() {
|
|
10656
|
-
this.setupButtonActiveGesture();
|
|
10657
10596
|
/**
|
|
10658
10597
|
* If action sheet was rendered with isOpen="true"
|
|
10659
10598
|
* then we should open action sheet immediately.
|
|
@@ -10746,17 +10685,17 @@ class ActionSheet {
|
|
|
10746
10685
|
const cancelButton = allButtons.find((b) => b.role === 'cancel');
|
|
10747
10686
|
const buttons = allButtons.filter((b) => b.role !== 'cancel');
|
|
10748
10687
|
const headerID = `action-sheet-${overlayIndex}-header`;
|
|
10749
|
-
return (hAsync(Host, { key: '
|
|
10688
|
+
return (hAsync(Host, { key: '7685831da9a78b73473246a2cea95cefa79a53c3', role: "dialog", "aria-modal": "true", "aria-labelledby": header !== undefined ? headerID : null, tabindex: "-1", ...htmlAttributes, style: {
|
|
10750
10689
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
10751
10690
|
}, class: {
|
|
10752
10691
|
[mode]: true,
|
|
10753
10692
|
...getClassMap(this.cssClass),
|
|
10754
10693
|
'overlay-hidden': true,
|
|
10755
10694
|
'action-sheet-translucent': this.translucent,
|
|
10756
|
-
}, onIonActionSheetWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '
|
|
10695
|
+
}, 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: {
|
|
10757
10696
|
'action-sheet-title': true,
|
|
10758
10697
|
'action-sheet-has-sub-title': this.subHeader !== undefined,
|
|
10759
|
-
} }, header, this.subHeader && hAsync("div", { key: '
|
|
10698
|
+
} }, 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" })));
|
|
10760
10699
|
}
|
|
10761
10700
|
get el() { return getElement(this); }
|
|
10762
10701
|
static get watchers() { return {
|
|
@@ -11138,15 +11077,10 @@ class Alert {
|
|
|
11138
11077
|
this.triggerChanged();
|
|
11139
11078
|
/**
|
|
11140
11079
|
* If the alert was previously connected and is being reattached, the
|
|
11141
|
-
*
|
|
11142
|
-
*
|
|
11080
|
+
* ResizeObserver was disconnected. componentDidLoad only fires once per
|
|
11081
|
+
* instance, so re-establish the observer here on reconnect.
|
|
11143
11082
|
*/
|
|
11144
11083
|
this.setupButtonGroupResizeObserver();
|
|
11145
|
-
this.setupButtonActiveGesture();
|
|
11146
|
-
// Re-apply the root lock if moved without dismiss() being called
|
|
11147
|
-
if (this.presented) {
|
|
11148
|
-
restoreRootFocusTrapAccessibility(this.el);
|
|
11149
|
-
}
|
|
11150
11084
|
}
|
|
11151
11085
|
componentWillLoad() {
|
|
11152
11086
|
if (!this.htmlAttributes?.id) {
|
|
@@ -11168,20 +11102,17 @@ class Alert {
|
|
|
11168
11102
|
this.buttonGroupResizeObserver?.disconnect();
|
|
11169
11103
|
this.buttonGroupResizeObserver = undefined;
|
|
11170
11104
|
}
|
|
11171
|
-
|
|
11172
|
-
|
|
11173
|
-
|
|
11174
|
-
|
|
11175
|
-
|
|
11176
|
-
|
|
11177
|
-
|
|
11105
|
+
componentDidLoad() {
|
|
11106
|
+
/**
|
|
11107
|
+
* Only create gesture if:
|
|
11108
|
+
* 1. A gesture does not already exist
|
|
11109
|
+
* 2. App is running in iOS mode
|
|
11110
|
+
* 3. A wrapper ref exists
|
|
11111
|
+
*/
|
|
11178
11112
|
if (!this.gesture && getIonMode$1(this) === 'ios' && this.wrapperEl) {
|
|
11179
11113
|
this.gesture = createButtonActiveGesture(this.wrapperEl, (refEl) => refEl.classList.contains('alert-button'));
|
|
11180
11114
|
this.gesture.enable(true);
|
|
11181
11115
|
}
|
|
11182
|
-
}
|
|
11183
|
-
componentDidLoad() {
|
|
11184
|
-
this.setupButtonActiveGesture();
|
|
11185
11116
|
this.setupButtonGroupResizeObserver();
|
|
11186
11117
|
/**
|
|
11187
11118
|
* If alert was rendered with isOpen="true"
|
|
@@ -11502,14 +11433,14 @@ class Alert {
|
|
|
11502
11433
|
* If neither are defined, do not set aria-labelledby.
|
|
11503
11434
|
*/
|
|
11504
11435
|
const ariaLabelledBy = header && subHeader ? `${hdrId} ${subHdrId}` : header ? hdrId : subHeader ? subHdrId : null;
|
|
11505
|
-
return (hAsync(Host, { key: '
|
|
11436
|
+
return (hAsync(Host, { key: '022f3463b8e6c52064b90ec304c524847c3d5ad3', tabindex: "-1", style: {
|
|
11506
11437
|
zIndex: `${20000 + overlayIndex}`,
|
|
11507
11438
|
}, class: {
|
|
11508
11439
|
...getClassMap(this.cssClass),
|
|
11509
11440
|
[mode]: true,
|
|
11510
11441
|
'overlay-hidden': true,
|
|
11511
11442
|
'alert-translucent': this.translucent,
|
|
11512
|
-
}, onIonAlertWillDismiss: this.dispatchCancelHandler, onIonBackdropTap: this.onBackdropTap }, hAsync("ion-backdrop", { key: '
|
|
11443
|
+
}, 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" })));
|
|
11513
11444
|
}
|
|
11514
11445
|
get el() { return getElement(this); }
|
|
11515
11446
|
static get watchers() { return {
|
|
@@ -13688,23 +13619,6 @@ class Content {
|
|
|
13688
13619
|
const mode = getIonMode$1(this);
|
|
13689
13620
|
return forceOverscroll === undefined ? mode === 'ios' && isPlatform('ios') : forceOverscroll;
|
|
13690
13621
|
}
|
|
13691
|
-
/**
|
|
13692
|
-
* Whether this component should size itself to its contents height, which
|
|
13693
|
-
* is the case inside any popover and inside a modal whose `--height` is a
|
|
13694
|
-
* content-based value. Those overlays give the content no definite height
|
|
13695
|
-
* to fill.
|
|
13696
|
-
*/
|
|
13697
|
-
shouldSizeToContent() {
|
|
13698
|
-
if (hostContext('ion-popover', this.el)) {
|
|
13699
|
-
return true;
|
|
13700
|
-
}
|
|
13701
|
-
const modal = this.el.closest('ion-modal');
|
|
13702
|
-
if (modal === null) {
|
|
13703
|
-
return false;
|
|
13704
|
-
}
|
|
13705
|
-
const height = getComputedStyle(modal).getPropertyValue('--height').trim();
|
|
13706
|
-
return CONTENT_SIZED_HEIGHTS.includes(height);
|
|
13707
|
-
}
|
|
13708
13622
|
resize() {
|
|
13709
13623
|
}
|
|
13710
13624
|
/**
|
|
@@ -13884,21 +13798,21 @@ class Content {
|
|
|
13884
13798
|
const forceOverscroll = this.shouldForceOverscroll();
|
|
13885
13799
|
const transitionShadow = mode === 'ios';
|
|
13886
13800
|
this.resize();
|
|
13887
|
-
return (hAsync(Host, { key: '
|
|
13801
|
+
return (hAsync(Host, { key: '9551c759df407b10d809171641fc6e8f14d92219', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
|
|
13888
13802
|
[mode]: true,
|
|
13889
13803
|
'content-fullscreen': this.fullscreen,
|
|
13890
|
-
'content-sizing': this.
|
|
13804
|
+
'content-sizing': hostContext('ion-popover', this.el),
|
|
13891
13805
|
overscroll: forceOverscroll,
|
|
13892
13806
|
[`content-${rtl}`]: true,
|
|
13893
13807
|
}), style: {
|
|
13894
13808
|
'--offset-top': `${this.cTop}px`,
|
|
13895
13809
|
'--offset-bottom': `${this.cBottom}px`,
|
|
13896
|
-
}, ...inheritedAttributes }, hAsync("div", { key: '
|
|
13810
|
+
}, ...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: {
|
|
13897
13811
|
'inner-scroll': true,
|
|
13898
13812
|
'scroll-x': scrollX,
|
|
13899
13813
|
'scroll-y': scrollY,
|
|
13900
13814
|
overscroll: (scrollX || scrollY) && forceOverscroll,
|
|
13901
|
-
}, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: '
|
|
13815
|
+
}, 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));
|
|
13902
13816
|
}
|
|
13903
13817
|
get el() { return getElement(this); }
|
|
13904
13818
|
static get watchers() { return {
|
|
@@ -13931,11 +13845,6 @@ class Content {
|
|
|
13931
13845
|
"$attrsToReflect$": [["color", "color"]]
|
|
13932
13846
|
}; }
|
|
13933
13847
|
}
|
|
13934
|
-
/**
|
|
13935
|
-
* `ion-modal` `--height` values that size the modal to its contents, leaving
|
|
13936
|
-
* children an indefinite height to resolve against.
|
|
13937
|
-
*/
|
|
13938
|
-
const CONTENT_SIZED_HEIGHTS = ['auto', 'fit-content', 'min-content', 'max-content'];
|
|
13939
13848
|
const getParentElement = (el) => {
|
|
13940
13849
|
if (el.parentElement) {
|
|
13941
13850
|
// normal element with a parent element
|
|
@@ -17117,6 +17026,7 @@ class Datetime {
|
|
|
17117
17026
|
}
|
|
17118
17027
|
renderCombinedDatePickerColumn() {
|
|
17119
17028
|
const { defaultParts, disabled, workingParts, locale, minParts, maxParts, todayParts, isDateEnabled } = this;
|
|
17029
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17120
17030
|
/**
|
|
17121
17031
|
* By default, generate a range of 3 months:
|
|
17122
17032
|
* Previous month, current month, and next month
|
|
@@ -17172,10 +17082,8 @@ class Datetime {
|
|
|
17172
17082
|
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) => {
|
|
17173
17083
|
const { value } = ev.detail;
|
|
17174
17084
|
const findPart = parts.find(({ month, day, year }) => value === `${year}-${month}-${day}`);
|
|
17175
|
-
// Read live so parts a sibling column just committed are included.
|
|
17176
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17177
17085
|
this.setWorkingParts({
|
|
17178
|
-
...
|
|
17086
|
+
...workingParts,
|
|
17179
17087
|
...findPart,
|
|
17180
17088
|
});
|
|
17181
17089
|
this.setActiveParts({
|
|
@@ -17252,12 +17160,11 @@ class Datetime {
|
|
|
17252
17160
|
return [];
|
|
17253
17161
|
}
|
|
17254
17162
|
const { disabled, workingParts } = this;
|
|
17163
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17255
17164
|
const pickerColumnValue = (workingParts.day !== null ? workingParts.day : this.defaultParts.day) ?? undefined;
|
|
17256
17165
|
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) => {
|
|
17257
|
-
// Read live so parts a sibling column just committed are included.
|
|
17258
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17259
17166
|
this.setWorkingParts({
|
|
17260
|
-
...
|
|
17167
|
+
...workingParts,
|
|
17261
17168
|
day: ev.detail.value,
|
|
17262
17169
|
});
|
|
17263
17170
|
this.setActiveParts({
|
|
@@ -17272,11 +17179,10 @@ class Datetime {
|
|
|
17272
17179
|
return [];
|
|
17273
17180
|
}
|
|
17274
17181
|
const { disabled, workingParts } = this;
|
|
17182
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17275
17183
|
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) => {
|
|
17276
|
-
// Read live so parts a sibling column just committed are included.
|
|
17277
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17278
17184
|
this.setWorkingParts({
|
|
17279
|
-
...
|
|
17185
|
+
...workingParts,
|
|
17280
17186
|
month: ev.detail.value,
|
|
17281
17187
|
});
|
|
17282
17188
|
// Month wheel is navigation-only in multi-select mode as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
|
|
@@ -17294,11 +17200,10 @@ class Datetime {
|
|
|
17294
17200
|
return [];
|
|
17295
17201
|
}
|
|
17296
17202
|
const { disabled, workingParts } = this;
|
|
17203
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17297
17204
|
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) => {
|
|
17298
|
-
// Read live so parts a sibling column just committed are included.
|
|
17299
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17300
17205
|
this.setWorkingParts({
|
|
17301
|
-
...
|
|
17206
|
+
...workingParts,
|
|
17302
17207
|
year: ev.detail.value,
|
|
17303
17208
|
});
|
|
17304
17209
|
// Year wheel is navigation-only in multi-select mode as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
|
|
@@ -17334,14 +17239,13 @@ class Datetime {
|
|
|
17334
17239
|
];
|
|
17335
17240
|
}
|
|
17336
17241
|
renderHourPickerColumn(hoursData) {
|
|
17337
|
-
const { disabled } = this;
|
|
17242
|
+
const { disabled, workingParts } = this;
|
|
17338
17243
|
if (hoursData.length === 0)
|
|
17339
17244
|
return [];
|
|
17340
17245
|
const activePart = this.getActivePartsWithFallback();
|
|
17341
17246
|
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) => {
|
|
17342
|
-
// Read live so parts a sibling column just committed are included.
|
|
17343
17247
|
this.setWorkingParts({
|
|
17344
|
-
...
|
|
17248
|
+
...workingParts,
|
|
17345
17249
|
hour: ev.detail.value,
|
|
17346
17250
|
});
|
|
17347
17251
|
this.setActiveParts({
|
|
@@ -17352,14 +17256,13 @@ class Datetime {
|
|
|
17352
17256
|
} }, 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)))));
|
|
17353
17257
|
}
|
|
17354
17258
|
renderMinutePickerColumn(minutesData) {
|
|
17355
|
-
const { disabled } = this;
|
|
17259
|
+
const { disabled, workingParts } = this;
|
|
17356
17260
|
if (minutesData.length === 0)
|
|
17357
17261
|
return [];
|
|
17358
17262
|
const activePart = this.getActivePartsWithFallback();
|
|
17359
17263
|
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) => {
|
|
17360
|
-
// Read live so parts a sibling column just committed are included.
|
|
17361
17264
|
this.setWorkingParts({
|
|
17362
|
-
...
|
|
17265
|
+
...workingParts,
|
|
17363
17266
|
minute: ev.detail.value,
|
|
17364
17267
|
});
|
|
17365
17268
|
this.setActiveParts({
|
|
@@ -17370,18 +17273,16 @@ class Datetime {
|
|
|
17370
17273
|
} }, 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)))));
|
|
17371
17274
|
}
|
|
17372
17275
|
renderDayPeriodPickerColumn(dayPeriodData) {
|
|
17373
|
-
const { disabled } = this;
|
|
17276
|
+
const { disabled, workingParts } = this;
|
|
17374
17277
|
if (dayPeriodData.length === 0) {
|
|
17375
17278
|
return [];
|
|
17376
17279
|
}
|
|
17377
17280
|
const activePart = this.getActivePartsWithFallback();
|
|
17378
17281
|
const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
|
|
17379
17282
|
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) => {
|
|
17380
|
-
|
|
17381
|
-
const currentParts = this.workingParts;
|
|
17382
|
-
const hour = calculateHourFromAMPM(currentParts, ev.detail.value);
|
|
17283
|
+
const hour = calculateHourFromAMPM(workingParts, ev.detail.value);
|
|
17383
17284
|
this.setWorkingParts({
|
|
17384
|
-
...
|
|
17285
|
+
...workingParts,
|
|
17385
17286
|
ampm: ev.detail.value,
|
|
17386
17287
|
hour,
|
|
17387
17288
|
});
|
|
@@ -17733,7 +17634,7 @@ class Datetime {
|
|
|
17733
17634
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
17734
17635
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
17735
17636
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
17736
|
-
return (hAsync(Host, { key: '
|
|
17637
|
+
return (hAsync(Host, { key: 'd8e6dfe5e3bffb1c38a3e37b63b3aec099f40d29', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
|
|
17737
17638
|
...createColorClasses$1(color, {
|
|
17738
17639
|
[mode]: true,
|
|
17739
17640
|
['datetime-readonly']: readonly,
|
|
@@ -17745,7 +17646,7 @@ class Datetime {
|
|
|
17745
17646
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
17746
17647
|
[`datetime-grid`]: isGridStyle,
|
|
17747
17648
|
}),
|
|
17748
|
-
} }, hAsync("div", { key: '
|
|
17649
|
+
} }, hAsync("div", { key: '20889d3c68dd5109633c0e214411a63d6f3025bb', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
17749
17650
|
}
|
|
17750
17651
|
get el() { return getElement(this); }
|
|
17751
17652
|
static get watchers() { return {
|
|
@@ -22427,17 +22328,19 @@ class ItemSliding {
|
|
|
22427
22328
|
}
|
|
22428
22329
|
}
|
|
22429
22330
|
async updateOptions() {
|
|
22430
|
-
const options =
|
|
22431
|
-
/**
|
|
22432
|
-
* Frameworks that assign element props after inserting the element haven't set
|
|
22433
|
-
* `side` while `connectedCallback` runs, so reading it any earlier reports every
|
|
22434
|
-
* option as `end`.
|
|
22435
|
-
*/
|
|
22436
|
-
await Promise.all(options.map((option) => new Promise((resolve) => componentOnReady(option, resolve))));
|
|
22331
|
+
const options = this.el.querySelectorAll('ion-item-options');
|
|
22437
22332
|
let sides = 0;
|
|
22438
22333
|
// Reset left and right options in case they were removed
|
|
22439
22334
|
this.leftOptions = this.rightOptions = undefined;
|
|
22440
|
-
for (
|
|
22335
|
+
for (let i = 0; i < options.length; i++) {
|
|
22336
|
+
const item = options.item(i);
|
|
22337
|
+
/**
|
|
22338
|
+
* We cannot use the componentOnReady helper
|
|
22339
|
+
* util here since we need to wait for all of these items
|
|
22340
|
+
* to be ready before we set `this.sides` and `this.optsDirty`.
|
|
22341
|
+
*/
|
|
22342
|
+
// eslint-disable-next-line custom-rules/no-component-on-ready-method
|
|
22343
|
+
const option = item.componentOnReady !== undefined ? await item.componentOnReady() : item;
|
|
22441
22344
|
const side = isEndSide(option.side ?? option.getAttribute('side')) ? 'end' : 'start';
|
|
22442
22345
|
if (side === 'start') {
|
|
22443
22346
|
this.leftOptions = option;
|
|
@@ -22636,7 +22539,7 @@ class ItemSliding {
|
|
|
22636
22539
|
}
|
|
22637
22540
|
render() {
|
|
22638
22541
|
const mode = getIonMode$1(this);
|
|
22639
|
-
return (hAsync(Host, { key: '
|
|
22542
|
+
return (hAsync(Host, { key: '15f6a98f8c888e86c29827cdf55d98ace08699dd', class: {
|
|
22640
22543
|
[mode]: true,
|
|
22641
22544
|
'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
|
|
22642
22545
|
'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
|
|
@@ -23049,10 +22952,6 @@ class Loading {
|
|
|
23049
22952
|
connectedCallback() {
|
|
23050
22953
|
prepareOverlay(this.el);
|
|
23051
22954
|
this.triggerChanged();
|
|
23052
|
-
// Re-apply the root lock if moved without dismiss() being called
|
|
23053
|
-
if (this.presented) {
|
|
23054
|
-
restoreRootFocusTrapAccessibility(this.el);
|
|
23055
|
-
}
|
|
23056
22955
|
}
|
|
23057
22956
|
componentWillLoad() {
|
|
23058
22957
|
if (this.spinner === undefined) {
|
|
@@ -23153,14 +23052,14 @@ class Loading {
|
|
|
23153
23052
|
* Otherwise, don't set aria-labelledby.
|
|
23154
23053
|
*/
|
|
23155
23054
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
23156
|
-
return (hAsync(Host, { key: '
|
|
23055
|
+
return (hAsync(Host, { key: '2d14122ff3081de73631a7fdd4affdd5c73b8618', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1", ...htmlAttributes, style: {
|
|
23157
23056
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
23158
23057
|
}, onIonBackdropTap: this.onBackdropTap, class: {
|
|
23159
23058
|
...getClassMap(this.cssClass),
|
|
23160
23059
|
[mode]: true,
|
|
23161
23060
|
'overlay-hidden': true,
|
|
23162
23061
|
'loading-translucent': this.translucent,
|
|
23163
|
-
} }, hAsync("ion-backdrop", { key: '
|
|
23062
|
+
} }, 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" })));
|
|
23164
23063
|
}
|
|
23165
23064
|
get el() { return getElement(this); }
|
|
23166
23065
|
static get watchers() { return {
|
|
@@ -26681,9 +26580,9 @@ const clearSafeAreaOverrides = (hostEl) => {
|
|
|
26681
26580
|
hostEl.style.removeProperty('--ion-safe-area-right');
|
|
26682
26581
|
};
|
|
26683
26582
|
|
|
26684
|
-
const modalIosCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:
|
|
26583
|
+
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}`;
|
|
26685
26584
|
|
|
26686
|
-
const modalMdCss = () => `:host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:
|
|
26585
|
+
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}`;
|
|
26687
26586
|
|
|
26688
26587
|
// TODO(FW-2832): types
|
|
26689
26588
|
/**
|
|
@@ -26719,9 +26618,6 @@ class Modal {
|
|
|
26719
26618
|
this.inline = false;
|
|
26720
26619
|
// Whether or not modal is being dismissed via gesture
|
|
26721
26620
|
this.gestureAnimationDismissing = false;
|
|
26722
|
-
// True from the first safe-area write in `present()` until the enter
|
|
26723
|
-
// animation settles. A position-based read in that window is not the rest position.
|
|
26724
|
-
this.isPresenting = false;
|
|
26725
26621
|
this.presented = false;
|
|
26726
26622
|
/** @internal */
|
|
26727
26623
|
this.hasController = false;
|
|
@@ -26958,17 +26854,6 @@ class Modal {
|
|
|
26958
26854
|
const { el } = this;
|
|
26959
26855
|
prepareOverlay(el);
|
|
26960
26856
|
this.triggerChanged();
|
|
26961
|
-
// A disconnect tears down state this presentation still needs and cannot
|
|
26962
|
-
// tell a re-insert from a removal, so put it back.
|
|
26963
|
-
if (this.presented || this.isPresenting) {
|
|
26964
|
-
this.restoreSafeAreaOverrides();
|
|
26965
|
-
}
|
|
26966
|
-
// A relocation from `willPresent` reaches these before `present()` has
|
|
26967
|
-
// applied the lock, so they apply it instead. Both are idempotent.
|
|
26968
|
-
if (this.presented) {
|
|
26969
|
-
restoreRootFocusTrapAccessibility(el);
|
|
26970
|
-
this.initParentRemovalObserver();
|
|
26971
|
-
}
|
|
26972
26857
|
}
|
|
26973
26858
|
disconnectedCallback() {
|
|
26974
26859
|
this.triggerController.removeClickListener();
|
|
@@ -27146,33 +27031,25 @@ class Modal {
|
|
|
27146
27031
|
// Recalculate isSheetModal before safe-area setup because framework
|
|
27147
27032
|
// bindings (e.g., Angular) may not have been applied when componentWillLoad ran.
|
|
27148
27033
|
this.isSheetModal = this.breakpoints !== undefined && this.initialBreakpoint !== undefined;
|
|
27149
|
-
|
|
27034
|
+
// Set initial safe-area overrides before animation
|
|
27035
|
+
this.setInitialSafeAreaOverrides();
|
|
27150
27036
|
const hasCardModal = presentingElement !== undefined;
|
|
27151
|
-
|
|
27152
|
-
|
|
27153
|
-
|
|
27154
|
-
|
|
27155
|
-
|
|
27156
|
-
|
|
27157
|
-
|
|
27158
|
-
|
|
27159
|
-
|
|
27160
|
-
*/
|
|
27161
|
-
if (hasCardModal && getIonMode$1(this) === 'ios') {
|
|
27162
|
-
// Cache the original status bar color before the modal is presented
|
|
27163
|
-
this.statusBarStyle = await StatusBar.getStyle();
|
|
27164
|
-
setCardStatusBarDark();
|
|
27165
|
-
}
|
|
27166
|
-
await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
|
|
27167
|
-
presentingEl: presentingElement,
|
|
27168
|
-
currentBreakpoint: this.initialBreakpoint,
|
|
27169
|
-
backdropBreakpoint: this.backdropBreakpoint,
|
|
27170
|
-
expandToScroll: this.expandToScroll,
|
|
27171
|
-
});
|
|
27172
|
-
}
|
|
27173
|
-
finally {
|
|
27174
|
-
this.isPresenting = false;
|
|
27037
|
+
/**
|
|
27038
|
+
* We need to change the status bar at the
|
|
27039
|
+
* start of the animation so that it completes
|
|
27040
|
+
* by the time the card animation is done.
|
|
27041
|
+
*/
|
|
27042
|
+
if (hasCardModal && getIonMode$1(this) === 'ios') {
|
|
27043
|
+
// Cache the original status bar color before the modal is presented
|
|
27044
|
+
this.statusBarStyle = await StatusBar.getStyle();
|
|
27045
|
+
setCardStatusBarDark();
|
|
27175
27046
|
}
|
|
27047
|
+
await present(this, 'modalEnter', iosEnterAnimation$2, mdEnterAnimation$2, {
|
|
27048
|
+
presentingEl: presentingElement,
|
|
27049
|
+
currentBreakpoint: this.initialBreakpoint,
|
|
27050
|
+
backdropBreakpoint: this.backdropBreakpoint,
|
|
27051
|
+
expandToScroll: this.expandToScroll,
|
|
27052
|
+
});
|
|
27176
27053
|
// Update safe-area based on actual position after animation
|
|
27177
27054
|
this.updateSafeAreaOverrides();
|
|
27178
27055
|
// Apply fullscreen safe-area padding if needed
|
|
@@ -27674,9 +27551,6 @@ class Modal {
|
|
|
27674
27551
|
this.cachedOriginalParent.tagName === 'ION-APP') {
|
|
27675
27552
|
return;
|
|
27676
27553
|
}
|
|
27677
|
-
// Both `present()` and a reconnect call this, so drop any existing
|
|
27678
|
-
// observer. Below the guards, so a call that bails cannot leave none.
|
|
27679
|
-
this.cleanupParentRemovalObserver();
|
|
27680
27554
|
this.parentRemovalObserver = new MutationObserver((mutations) => {
|
|
27681
27555
|
mutations.forEach((mutation) => {
|
|
27682
27556
|
if (mutation.type === 'childList' && mutation.removedNodes.length > 0) {
|
|
@@ -27755,9 +27629,6 @@ class Modal {
|
|
|
27755
27629
|
// Set the internal offset property with the resolved root safe-area-top value
|
|
27756
27630
|
if (context.isSheetModal) {
|
|
27757
27631
|
this.updateSheetOffsetTop();
|
|
27758
|
-
// A restore after a DOM move runs this a second time for the same
|
|
27759
|
-
// modal, so drop the previous subscription rather than stacking one.
|
|
27760
|
-
this.unsubscribeRootSafeAreaTop?.();
|
|
27761
27632
|
this.unsubscribeRootSafeAreaTop = onRootSafeAreaTopChange((safeAreaTop) => this.updateSheetOffsetTop(safeAreaTop));
|
|
27762
27633
|
}
|
|
27763
27634
|
}
|
|
@@ -27876,31 +27747,6 @@ class Modal {
|
|
|
27876
27747
|
const { contentEl } = this.findContentAndFooter();
|
|
27877
27748
|
this.clearContentSafeAreaPadding(contentEl);
|
|
27878
27749
|
}
|
|
27879
|
-
/**
|
|
27880
|
-
* Re-applies what `cleanupSafeAreaOverrides()` removed for a modal moved
|
|
27881
|
-
* while presented. Anything needing no measurement goes on synchronously so
|
|
27882
|
-
* the modal is never painted without safe-area. The position-based
|
|
27883
|
-
* correction waits a frame for the layout pass it reads.
|
|
27884
|
-
*/
|
|
27885
|
-
restoreSafeAreaOverrides() {
|
|
27886
|
-
this.setInitialSafeAreaOverrides();
|
|
27887
|
-
this.applyFullscreenSafeArea();
|
|
27888
|
-
raf(() => {
|
|
27889
|
-
// A dismiss or another move can land first, and a read before the enter
|
|
27890
|
-
// animation settles is not the rest position. `present()` redoes it.
|
|
27891
|
-
if (!this.presented || !this.el.isConnected || this.isPresenting) {
|
|
27892
|
-
return;
|
|
27893
|
-
}
|
|
27894
|
-
// A hidden subtree carries `display: none`, so there is no box and the
|
|
27895
|
-
// read would write the safe-area for a modal touching no edge. The
|
|
27896
|
-
// prediction applied above holds until the modal is shown again.
|
|
27897
|
-
const { width, height } = this.el.getBoundingClientRect();
|
|
27898
|
-
if (width === 0 && height === 0) {
|
|
27899
|
-
return;
|
|
27900
|
-
}
|
|
27901
|
-
this.updateSafeAreaOverrides();
|
|
27902
|
-
});
|
|
27903
|
-
}
|
|
27904
27750
|
render() {
|
|
27905
27751
|
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
27906
27752
|
const showHandle = handle !== false && isSheetModal;
|
|
@@ -27908,7 +27754,7 @@ class Modal {
|
|
|
27908
27754
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
27909
27755
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
27910
27756
|
const isSheetModalWithHandle = isSheetModal && showHandle;
|
|
27911
|
-
return (hAsync(Host, { key: '
|
|
27757
|
+
return (hAsync(Host, { key: 'a471c293319cb6ee5ffb7ffafec0b8413e4289de', "no-router": true,
|
|
27912
27758
|
// Allow the modal to be navigable when the handle is focusable
|
|
27913
27759
|
tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1, ...htmlAttributes, style: {
|
|
27914
27760
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
@@ -27921,7 +27767,7 @@ class Modal {
|
|
|
27921
27767
|
'overlay-hidden': true,
|
|
27922
27768
|
[FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
|
|
27923
27769
|
...getClassMap(this.cssClass),
|
|
27924
|
-
}, onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }, hAsync("ion-backdrop", { key: '
|
|
27770
|
+
}, 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',
|
|
27925
27771
|
/*
|
|
27926
27772
|
role and aria-modal must be used on the
|
|
27927
27773
|
same element. They must also be set inside the
|
|
@@ -27934,9 +27780,9 @@ class Modal {
|
|
|
27934
27780
|
without the tabindex focus() would be a no-op and screen readers
|
|
27935
27781
|
may not properly announce the dialog and its content when it opens.
|
|
27936
27782
|
*/
|
|
27937
|
-
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: '
|
|
27783
|
+
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",
|
|
27938
27784
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
27939
|
-
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: '
|
|
27785
|
+
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 }))));
|
|
27940
27786
|
}
|
|
27941
27787
|
get el() { return getElement(this); }
|
|
27942
27788
|
static get watchers() { return {
|
|
@@ -29411,12 +29257,6 @@ class PickerColumn {
|
|
|
29411
29257
|
this.isColumnVisible = false;
|
|
29412
29258
|
this.canExitInputMode = true;
|
|
29413
29259
|
this.updateValueTextOnScroll = false;
|
|
29414
|
-
this.isUserScroll = false;
|
|
29415
|
-
/**
|
|
29416
|
-
* The haptics for the wheel picker are an iOS-only feature. As a result,
|
|
29417
|
-
* they should be disabled on Android.
|
|
29418
|
-
*/
|
|
29419
|
-
this.enableHaptics = false;
|
|
29420
29260
|
this.ariaLabel = null;
|
|
29421
29261
|
this.isActive = false;
|
|
29422
29262
|
/**
|
|
@@ -29448,12 +29288,6 @@ class PickerColumn {
|
|
|
29448
29288
|
*/
|
|
29449
29289
|
this.canExitInputMode = canExitInputMode;
|
|
29450
29290
|
this.updateValueTextOnScroll = false;
|
|
29451
|
-
/**
|
|
29452
|
-
* This scroll takes over from whatever the user was doing, so an outside
|
|
29453
|
-
* press must not commit an option the column is only passing through.
|
|
29454
|
-
*/
|
|
29455
|
-
this.isUserScroll = false;
|
|
29456
|
-
this.stopWatchingForOutsidePress();
|
|
29457
29291
|
scrollEl.scroll({
|
|
29458
29292
|
top,
|
|
29459
29293
|
left: 0,
|
|
@@ -29508,117 +29342,6 @@ class PickerColumn {
|
|
|
29508
29342
|
}
|
|
29509
29343
|
this.isActive = state;
|
|
29510
29344
|
};
|
|
29511
|
-
this.clearScrollEndTimeout = () => {
|
|
29512
|
-
if (this.scrollEndTimeout) {
|
|
29513
|
-
clearTimeout(this.scrollEndTimeout);
|
|
29514
|
-
this.scrollEndTimeout = undefined;
|
|
29515
|
-
}
|
|
29516
|
-
};
|
|
29517
|
-
/**
|
|
29518
|
-
* Resets the idle timer that commits the centered option.
|
|
29519
|
-
*/
|
|
29520
|
-
this.resetScrollEndTimeout = () => {
|
|
29521
|
-
this.clearScrollEndTimeout();
|
|
29522
|
-
this.scrollEndTimeout = setTimeout(this.settle, SCROLL_END_DELAY);
|
|
29523
|
-
};
|
|
29524
|
-
/**
|
|
29525
|
-
* Capture so the column still commits if an application's own pointerdown
|
|
29526
|
-
* handler stops the event before it reaches the document.
|
|
29527
|
-
*/
|
|
29528
|
-
this.watchForOutsidePress = () => {
|
|
29529
|
-
doc?.addEventListener('pointerdown', this.onPointerDownOutside, { capture: true });
|
|
29530
|
-
};
|
|
29531
|
-
this.stopWatchingForOutsidePress = () => {
|
|
29532
|
-
doc?.removeEventListener('pointerdown', this.onPointerDownOutside, { capture: true });
|
|
29533
|
-
};
|
|
29534
|
-
/**
|
|
29535
|
-
* Resets everything the current scroll interaction is holding, so nothing
|
|
29536
|
-
* pending on it can commit later.
|
|
29537
|
-
*/
|
|
29538
|
-
this.discardScroll = () => {
|
|
29539
|
-
this.stopWatchingForOutsidePress();
|
|
29540
|
-
this.clearScrollEndTimeout();
|
|
29541
|
-
this.scrollEndCallback = undefined;
|
|
29542
|
-
this.centeredOption = undefined;
|
|
29543
|
-
this.haltedAtScrollTop = undefined;
|
|
29544
|
-
this.isScrolling = false;
|
|
29545
|
-
this.isUserScroll = false;
|
|
29546
|
-
this.canExitInputMode = true;
|
|
29547
|
-
};
|
|
29548
|
-
/**
|
|
29549
|
-
* Commits the option that is currently centered under the highlight and ends
|
|
29550
|
-
* the scroll interaction.
|
|
29551
|
-
*/
|
|
29552
|
-
this.settle = () => {
|
|
29553
|
-
const { centeredOption } = this;
|
|
29554
|
-
this.clearScrollEndTimeout();
|
|
29555
|
-
this.stopWatchingForOutsidePress();
|
|
29556
|
-
this.isUserScroll = false;
|
|
29557
|
-
this.isScrolling = false;
|
|
29558
|
-
this.updateValueTextOnScroll = true;
|
|
29559
|
-
this.enableHaptics && hapticSelectionEnd();
|
|
29560
|
-
/**
|
|
29561
|
-
* Certain tasks (such as those that
|
|
29562
|
-
* cause re-renders) should only be done
|
|
29563
|
-
* once scrolling has finished, otherwise
|
|
29564
|
-
* flickering may occur.
|
|
29565
|
-
*/
|
|
29566
|
-
const { scrollEndCallback } = this;
|
|
29567
|
-
if (scrollEndCallback) {
|
|
29568
|
-
scrollEndCallback();
|
|
29569
|
-
this.scrollEndCallback = undefined;
|
|
29570
|
-
}
|
|
29571
|
-
/**
|
|
29572
|
-
* Reset this flag as the
|
|
29573
|
-
* next scroll interaction could
|
|
29574
|
-
* be a scroll from the user. In this
|
|
29575
|
-
* case, we should exit input mode.
|
|
29576
|
-
*/
|
|
29577
|
-
this.canExitInputMode = true;
|
|
29578
|
-
if (centeredOption !== undefined) {
|
|
29579
|
-
// Cleared here so a later scroll that centers nothing cannot fall back on it.
|
|
29580
|
-
this.centeredOption = undefined;
|
|
29581
|
-
if (centeredOption.isConnected) {
|
|
29582
|
-
this.setValue(centeredOption.value);
|
|
29583
|
-
}
|
|
29584
|
-
}
|
|
29585
|
-
};
|
|
29586
|
-
/**
|
|
29587
|
-
* Commits the option the user can see when they press anything outside of the
|
|
29588
|
-
* column during a scroll they started. This runs on pointerdown rather than
|
|
29589
|
-
* click so the value is up to date by the time an application's own click
|
|
29590
|
-
* handler (a Save button, for example) reads it.
|
|
29591
|
-
*/
|
|
29592
|
-
this.onPointerDownOutside = (ev) => {
|
|
29593
|
-
const { centeredOption, parentEl, scrollEl } = this;
|
|
29594
|
-
if (!this.isScrolling) {
|
|
29595
|
-
return;
|
|
29596
|
-
}
|
|
29597
|
-
/**
|
|
29598
|
-
* The column can live in another component's Shadow DOM, where a document
|
|
29599
|
-
* listener sees the target retargeted to the outer host. The composed path
|
|
29600
|
-
* is the only reliable way to tell a press on the column apart.
|
|
29601
|
-
*/
|
|
29602
|
-
const path = ev.composedPath();
|
|
29603
|
-
/**
|
|
29604
|
-
* A press anywhere in the parent picker counts as inside, so reaching for a
|
|
29605
|
-
* sibling wheel leaves this column coasting.
|
|
29606
|
-
*/
|
|
29607
|
-
if (path.includes(this.el) || (parentEl != null && path.includes(parentEl))) {
|
|
29608
|
-
return;
|
|
29609
|
-
}
|
|
29610
|
-
/**
|
|
29611
|
-
* Landing on the centered option halts the in-flight momentum scroll, so the
|
|
29612
|
-
* committed value and the option the user is left looking at agree. The
|
|
29613
|
-
* option list can be replaced mid-scroll, and a detached option has no
|
|
29614
|
-
* offset to center on.
|
|
29615
|
-
*/
|
|
29616
|
-
if (centeredOption !== undefined && centeredOption.isConnected) {
|
|
29617
|
-
this.centerPickerItemInView(centeredOption, false, false);
|
|
29618
|
-
this.haltedAtScrollTop = scrollEl?.scrollTop;
|
|
29619
|
-
}
|
|
29620
|
-
this.settle();
|
|
29621
|
-
};
|
|
29622
29345
|
/**
|
|
29623
29346
|
* When the column scrolls, the component
|
|
29624
29347
|
* needs to determine which item is centered
|
|
@@ -29626,42 +29349,27 @@ class PickerColumn {
|
|
|
29626
29349
|
* the item object.
|
|
29627
29350
|
*/
|
|
29628
29351
|
this.initializeScrollListener = () => {
|
|
29629
|
-
|
|
29352
|
+
/**
|
|
29353
|
+
* The haptics for the wheel picker are
|
|
29354
|
+
* an iOS-only feature. As a result, they should
|
|
29355
|
+
* be disabled on Android.
|
|
29356
|
+
*/
|
|
29357
|
+
const enableHaptics = isPlatform('ios');
|
|
29630
29358
|
const { el, scrollEl } = this;
|
|
29359
|
+
let timeout;
|
|
29631
29360
|
let activeEl = this.activeItem;
|
|
29632
29361
|
const scrollCallback = () => {
|
|
29633
29362
|
raf(() => {
|
|
29634
|
-
|
|
29635
|
-
* This frame cannot be cancelled, and moving the column disconnects it
|
|
29636
|
-
* without the observer reporting a change, so this checks live state.
|
|
29637
|
-
*/
|
|
29638
|
-
if (!this.el.isConnected || !this.isColumnVisible || !scrollEl)
|
|
29363
|
+
if (!scrollEl)
|
|
29639
29364
|
return;
|
|
29640
|
-
|
|
29641
|
-
|
|
29642
|
-
|
|
29643
|
-
* Still at the halted position, so this frame is the halt landing
|
|
29644
|
-
* rather than the wheel moving, and re-arming would start a second
|
|
29645
|
-
* commit cycle.
|
|
29646
|
-
*/
|
|
29647
|
-
if (Math.abs(scrollEl.scrollTop - haltedAtScrollTop) <= HALT_TOLERANCE)
|
|
29648
|
-
return;
|
|
29649
|
-
this.haltedAtScrollTop = undefined;
|
|
29365
|
+
if (timeout) {
|
|
29366
|
+
clearTimeout(timeout);
|
|
29367
|
+
timeout = undefined;
|
|
29650
29368
|
}
|
|
29651
|
-
// Armed before the early returns below, so a scroll never ends uncommitted.
|
|
29652
|
-
this.resetScrollEndTimeout();
|
|
29653
29369
|
if (!this.isScrolling) {
|
|
29654
|
-
|
|
29370
|
+
enableHaptics && hapticSelectionStart();
|
|
29655
29371
|
this.isScrolling = true;
|
|
29656
29372
|
}
|
|
29657
|
-
/**
|
|
29658
|
-
* Only a user-driven scroll holds an uncommitted selection. Checked every
|
|
29659
|
-
* frame because the user can take hold of the wheel mid-scroll, and
|
|
29660
|
-
* re-adding the same listener is a no-op.
|
|
29661
|
-
*/
|
|
29662
|
-
if (this.isUserScroll) {
|
|
29663
|
-
this.watchForOutsidePress();
|
|
29664
|
-
}
|
|
29665
29373
|
/**
|
|
29666
29374
|
* Select item in the center of the column
|
|
29667
29375
|
* which is the month/year that we want to select
|
|
@@ -29721,23 +29429,18 @@ class PickerColumn {
|
|
|
29721
29429
|
newActiveElement = fallbackActiveElement;
|
|
29722
29430
|
}
|
|
29723
29431
|
}
|
|
29724
|
-
/**
|
|
29725
|
-
* A scroll can land with no selectable option centered, such as an
|
|
29726
|
-
* overscroll bounce briefly centering the empty padding rows. Keep the
|
|
29727
|
-
* current selection until an option is centered again.
|
|
29728
|
-
*/
|
|
29729
|
-
if (newActiveElement === undefined || newActiveElement.disabled) {
|
|
29730
|
-
return;
|
|
29731
|
-
}
|
|
29732
29432
|
if (activeEl !== undefined) {
|
|
29733
29433
|
this.setPickerItemActiveState(activeEl, false);
|
|
29734
29434
|
}
|
|
29435
|
+
if (newActiveElement === undefined || newActiveElement.disabled) {
|
|
29436
|
+
return;
|
|
29437
|
+
}
|
|
29735
29438
|
/**
|
|
29736
29439
|
* If we are selecting a new value,
|
|
29737
29440
|
* we need to run haptics again.
|
|
29738
29441
|
*/
|
|
29739
29442
|
if (newActiveElement !== activeEl) {
|
|
29740
|
-
|
|
29443
|
+
enableHaptics && hapticSelectionChanged();
|
|
29741
29444
|
if (this.canExitInputMode) {
|
|
29742
29445
|
/**
|
|
29743
29446
|
* The native iOS wheel picker
|
|
@@ -29769,14 +29472,32 @@ class PickerColumn {
|
|
|
29769
29472
|
if (this.updateValueTextOnScroll) {
|
|
29770
29473
|
this.assistiveFocusable?.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
|
|
29771
29474
|
}
|
|
29772
|
-
|
|
29475
|
+
timeout = setTimeout(() => {
|
|
29476
|
+
this.isScrolling = false;
|
|
29477
|
+
this.updateValueTextOnScroll = true;
|
|
29478
|
+
enableHaptics && hapticSelectionEnd();
|
|
29479
|
+
/**
|
|
29480
|
+
* Certain tasks (such as those that
|
|
29481
|
+
* cause re-renders) should only be done
|
|
29482
|
+
* once scrolling has finished, otherwise
|
|
29483
|
+
* flickering may occur.
|
|
29484
|
+
*/
|
|
29485
|
+
const { scrollEndCallback } = this;
|
|
29486
|
+
if (scrollEndCallback) {
|
|
29487
|
+
scrollEndCallback();
|
|
29488
|
+
this.scrollEndCallback = undefined;
|
|
29489
|
+
}
|
|
29490
|
+
/**
|
|
29491
|
+
* Reset this flag as the
|
|
29492
|
+
* next scroll interaction could
|
|
29493
|
+
* be a scroll from the user. In this
|
|
29494
|
+
* case, we should exit input mode.
|
|
29495
|
+
*/
|
|
29496
|
+
this.canExitInputMode = true;
|
|
29497
|
+
this.setValue(newActiveElement.value);
|
|
29498
|
+
}, 250);
|
|
29773
29499
|
});
|
|
29774
29500
|
};
|
|
29775
|
-
const userScrollCallback = () => {
|
|
29776
|
-
this.isUserScroll = true;
|
|
29777
|
-
// Taking hold of the wheel ends the halt even if it has not moved yet.
|
|
29778
|
-
this.haltedAtScrollTop = undefined;
|
|
29779
|
-
};
|
|
29780
29501
|
/**
|
|
29781
29502
|
* Wrap this in an raf so that the scroll callback
|
|
29782
29503
|
* does not fire when component is initially shown.
|
|
@@ -29785,19 +29506,8 @@ class PickerColumn {
|
|
|
29785
29506
|
if (!scrollEl)
|
|
29786
29507
|
return;
|
|
29787
29508
|
scrollEl.addEventListener('scroll', scrollCallback);
|
|
29788
|
-
scrollEl.addEventListener('pointerdown', userScrollCallback);
|
|
29789
|
-
scrollEl.addEventListener('wheel', userScrollCallback, { passive: true });
|
|
29790
|
-
/**
|
|
29791
|
-
* A `pointerdown` fires once per touch, so a drag that pauses long enough
|
|
29792
|
-
* to commit would look like a scroll the column started. A `touchmove`
|
|
29793
|
-
* keeps arriving while the finger moves.
|
|
29794
|
-
*/
|
|
29795
|
-
scrollEl.addEventListener('touchmove', userScrollCallback, { passive: true });
|
|
29796
29509
|
this.destroyScrollListener = () => {
|
|
29797
29510
|
scrollEl.removeEventListener('scroll', scrollCallback);
|
|
29798
|
-
scrollEl.removeEventListener('pointerdown', userScrollCallback);
|
|
29799
|
-
scrollEl.removeEventListener('wheel', userScrollCallback);
|
|
29800
|
-
scrollEl.removeEventListener('touchmove', userScrollCallback);
|
|
29801
29511
|
};
|
|
29802
29512
|
});
|
|
29803
29513
|
};
|
|
@@ -29980,14 +29690,6 @@ class PickerColumn {
|
|
|
29980
29690
|
}
|
|
29981
29691
|
else {
|
|
29982
29692
|
this.isColumnVisible = false;
|
|
29983
|
-
/**
|
|
29984
|
-
* The pending timer still runs so it resets the scroll state, but the
|
|
29985
|
-
* option it would have committed is dropped. A column the user cannot
|
|
29986
|
-
* see should not change its value.
|
|
29987
|
-
*/
|
|
29988
|
-
this.stopWatchingForOutsidePress();
|
|
29989
|
-
this.centeredOption = undefined;
|
|
29990
|
-
this.haltedAtScrollTop = undefined;
|
|
29991
29693
|
if (this.destroyScrollListener) {
|
|
29992
29694
|
this.destroyScrollListener();
|
|
29993
29695
|
this.destroyScrollListener = undefined;
|
|
@@ -30058,13 +29760,6 @@ class PickerColumn {
|
|
|
30058
29760
|
connectedCallback() {
|
|
30059
29761
|
this.ariaLabel = this.el.getAttribute('aria-label') ?? 'Select a value';
|
|
30060
29762
|
}
|
|
30061
|
-
disconnectedCallback() {
|
|
30062
|
-
/**
|
|
30063
|
-
* A pending settle would otherwise commit a value on a column that is no
|
|
30064
|
-
* longer in the DOM.
|
|
30065
|
-
*/
|
|
30066
|
-
this.discardScroll();
|
|
30067
|
-
}
|
|
30068
29763
|
get activeItem() {
|
|
30069
29764
|
const { value } = this;
|
|
30070
29765
|
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
@@ -30082,14 +29777,14 @@ class PickerColumn {
|
|
|
30082
29777
|
render() {
|
|
30083
29778
|
const { color, disabled, isActive, numericInput } = this;
|
|
30084
29779
|
const mode = getIonMode$1(this);
|
|
30085
|
-
return (hAsync(Host, { key: '
|
|
29780
|
+
return (hAsync(Host, { key: '78b46ad10d88ea1bb43ca8c36748767912f03224', class: createColorClasses$1(color, {
|
|
30086
29781
|
[mode]: true,
|
|
30087
29782
|
['picker-column-active']: isActive,
|
|
30088
29783
|
['picker-column-numeric-input']: numericInput,
|
|
30089
29784
|
['picker-column-disabled']: disabled,
|
|
30090
|
-
}) }, hAsync("slot", { key: '
|
|
29785
|
+
}) }, hAsync("slot", { key: '761e501df77f7de896ffb3ebb99ebf88c5c3bf70', name: "prefix" }), hAsync("div", { key: '9f4caaeef8ab704522a85f30876d371712f47c5c', class: "picker-opts", ref: (el) => {
|
|
30091
29786
|
this.scrollEl = el;
|
|
30092
|
-
}, 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: '
|
|
29787
|
+
}, 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" })));
|
|
30093
29788
|
}
|
|
30094
29789
|
get el() { return getElement(this); }
|
|
30095
29790
|
static get watchers() { return {
|
|
@@ -30121,19 +29816,6 @@ class PickerColumn {
|
|
|
30121
29816
|
}; }
|
|
30122
29817
|
}
|
|
30123
29818
|
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
30124
|
-
/**
|
|
30125
|
-
* How long the column must be idle before the centered option is treated as
|
|
30126
|
-
* the user's selection. Replaceable by the `scrollend` event once that is
|
|
30127
|
-
* supported everywhere (https://caniuse.com/?search=scrollend).
|
|
30128
|
-
*/
|
|
30129
|
-
const SCROLL_END_DELAY = 250;
|
|
30130
|
-
/**
|
|
30131
|
-
* How far, in pixels, the column may report from where it was halted and still
|
|
30132
|
-
* count as having stayed there. Centering targets a position between two snap
|
|
30133
|
-
* points, so mandatory snapping corrects it by half the column height less
|
|
30134
|
-
* three option heights: 2px at the default sizes.
|
|
30135
|
-
*/
|
|
30136
|
-
const HALT_TOLERANCE = 2;
|
|
30137
29819
|
|
|
30138
29820
|
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}`;
|
|
30139
29821
|
|
|
@@ -31536,13 +31218,6 @@ class Popover {
|
|
|
31536
31218
|
const { configureTriggerInteraction, el } = this;
|
|
31537
31219
|
prepareOverlay(el);
|
|
31538
31220
|
configureTriggerInteraction();
|
|
31539
|
-
// Re-apply the root lock if moved without dismiss() being called
|
|
31540
|
-
if (this.presented) {
|
|
31541
|
-
restoreRootFocusTrapAccessibility(el);
|
|
31542
|
-
// The disconnect tore down the header observer, and `present()` is its
|
|
31543
|
-
// only other caller, so a move mid-layout would lose the recalculation.
|
|
31544
|
-
this.recalculateContentOnHeaderReady();
|
|
31545
|
-
}
|
|
31546
31221
|
}
|
|
31547
31222
|
disconnectedCallback() {
|
|
31548
31223
|
const { destroyTriggerInteraction } = this;
|
|
@@ -31720,12 +31395,6 @@ class Popover {
|
|
|
31720
31395
|
if (!header || contentElements.length === 0) {
|
|
31721
31396
|
return;
|
|
31722
31397
|
}
|
|
31723
|
-
// Both `present()` and a reconnect call this, so drop any existing
|
|
31724
|
-
// observer. Below the guards, so a call that bails cannot leave none.
|
|
31725
|
-
if (this.headerResizeObserver) {
|
|
31726
|
-
this.headerResizeObserver.disconnect();
|
|
31727
|
-
this.headerResizeObserver = undefined;
|
|
31728
|
-
}
|
|
31729
31398
|
this.headerResizeObserver = new ResizeObserver(async () => {
|
|
31730
31399
|
if (header.offsetHeight > 0) {
|
|
31731
31400
|
this.headerResizeObserver?.disconnect();
|
|
@@ -31798,7 +31467,7 @@ class Popover {
|
|
|
31798
31467
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
31799
31468
|
const desktop = isPlatform('desktop');
|
|
31800
31469
|
const enableArrow = arrow && !parentPopover;
|
|
31801
|
-
return (hAsync(Host, { key: '
|
|
31470
|
+
return (hAsync(Host, { key: '52ffc7116969ae1b8b927e67f2acbfe5f5434f70', "aria-modal": "true", "no-router": true, tabindex: "-1", ...htmlAttributes, style: {
|
|
31802
31471
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
31803
31472
|
}, class: {
|
|
31804
31473
|
...getClassMap(this.cssClass),
|
|
@@ -31809,7 +31478,7 @@ class Popover {
|
|
|
31809
31478
|
[`popover-side-${side}`]: true,
|
|
31810
31479
|
[FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false,
|
|
31811
31480
|
'popover-nested': !!parentPopover,
|
|
31812
|
-
}, onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }, !parentPopover && hAsync("ion-backdrop", { key: '
|
|
31481
|
+
}, 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' })))));
|
|
31813
31482
|
}
|
|
31814
31483
|
get el() { return getElement(this); }
|
|
31815
31484
|
static get watchers() { return {
|
|
@@ -37604,6 +37273,11 @@ class SegmentButton {
|
|
|
37604
37273
|
addEventListener$1(segmentEl, 'ionSelect', this.updateState);
|
|
37605
37274
|
addEventListener$1(segmentEl, 'ionStyle', this.updateStyle);
|
|
37606
37275
|
}
|
|
37276
|
+
// Prevent buttons from being disabled when associated with segment content
|
|
37277
|
+
if (this.contentId && this.disabled) {
|
|
37278
|
+
printIonWarning(`[ion-segment-button] - Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
|
|
37279
|
+
this.disabled = false;
|
|
37280
|
+
}
|
|
37607
37281
|
}
|
|
37608
37282
|
disconnectedCallback() {
|
|
37609
37283
|
const segmentEl = this.segmentEl;
|
|
@@ -37620,15 +37294,6 @@ class SegmentButton {
|
|
|
37620
37294
|
// Return if there is no contentId defined
|
|
37621
37295
|
if (!this.contentId)
|
|
37622
37296
|
return;
|
|
37623
|
-
/**
|
|
37624
|
-
* Checked here rather than in `connectedCallback` so frameworks that assign element
|
|
37625
|
-
* props after inserting the element have set `disabled` by now. A disabled ion-segment
|
|
37626
|
-
* pushes that onto its buttons too, which this guard should not undo.
|
|
37627
|
-
*/
|
|
37628
|
-
if (this.disabled && this.segmentEl?.disabled !== true) {
|
|
37629
|
-
printIonWarning(`[ion-segment-button] - Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
|
|
37630
|
-
this.disabled = false;
|
|
37631
|
-
}
|
|
37632
37297
|
// Attempt to find the Segment Content by its contentId
|
|
37633
37298
|
const segmentContent = document.getElementById(this.contentId);
|
|
37634
37299
|
// If no associated Segment Content exists, log an error and return
|
|
@@ -37663,7 +37328,7 @@ class SegmentButton {
|
|
|
37663
37328
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
37664
37329
|
const mode = getIonMode$1(this);
|
|
37665
37330
|
const hasSegmentColor = () => segmentEl?.color !== undefined;
|
|
37666
|
-
return (hAsync(Host, { key: '
|
|
37331
|
+
return (hAsync(Host, { key: '2b4b7ad8b981d2ee39aba5b9c734de8a5bd045ba', class: {
|
|
37667
37332
|
[mode]: true,
|
|
37668
37333
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
37669
37334
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -37679,7 +37344,7 @@ class SegmentButton {
|
|
|
37679
37344
|
'ion-activatable': true,
|
|
37680
37345
|
'ion-activatable-instant': true,
|
|
37681
37346
|
'ion-focusable': true,
|
|
37682
|
-
} }, hAsync("button", { key: '
|
|
37347
|
+
} }, 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" }))));
|
|
37683
37348
|
}
|
|
37684
37349
|
get el() { return getElement(this); }
|
|
37685
37350
|
static get watchers() { return {
|
|
@@ -38723,7 +38388,7 @@ class Select {
|
|
|
38723
38388
|
const hasOutlineFill = mode === 'md' && fill === 'outline';
|
|
38724
38389
|
renderHiddenInput(true, el, name, parseValue(value), disabled);
|
|
38725
38390
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || isExpanded));
|
|
38726
|
-
return (hAsync(Host, { key: '
|
|
38391
|
+
return (hAsync(Host, { key: '5d1e5bf46d0f204efdcb55cc42cfde52e6db304b', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
38727
38392
|
[mode]: true,
|
|
38728
38393
|
'in-item': inItem,
|
|
38729
38394
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -38741,7 +38406,7 @@ class Select {
|
|
|
38741
38406
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
38742
38407
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
38743
38408
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
38744
|
-
}) }, hAsync("label", { key: '
|
|
38409
|
+
}) }, 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()));
|
|
38745
38410
|
}
|
|
38746
38411
|
get el() { return getElement(this); }
|
|
38747
38412
|
static get watchers() { return {
|
|
@@ -38850,14 +38515,29 @@ const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
|
38850
38515
|
return getOptionContent(selectOpt, undefined, true);
|
|
38851
38516
|
}
|
|
38852
38517
|
/**
|
|
38853
|
-
*
|
|
38854
|
-
*
|
|
38855
|
-
*
|
|
38856
|
-
* cannot disagree about what an option's text is. `null` marks an
|
|
38857
|
-
* option with no text, which is dropped from the joined text of a
|
|
38858
|
-
* `multiple` select rather than joined in as an empty entry.
|
|
38518
|
+
* When custom HTML is enabled, extract only the default slot content.
|
|
38519
|
+
* This ensures aria-label and other text-only contexts read only
|
|
38520
|
+
* the relevant option text.
|
|
38859
38521
|
*/
|
|
38860
|
-
|
|
38522
|
+
if (customHTMLEnabled) {
|
|
38523
|
+
const content = getOptionContent(selectOpt);
|
|
38524
|
+
if (typeof content === 'string') {
|
|
38525
|
+
return content;
|
|
38526
|
+
}
|
|
38527
|
+
/**
|
|
38528
|
+
* Elements were found in the default slot, extract and concatenate
|
|
38529
|
+
* their text content while trimming whitespace.
|
|
38530
|
+
*/
|
|
38531
|
+
if (content) {
|
|
38532
|
+
const texts = Array.from(content.childNodes)
|
|
38533
|
+
.map((n) => n.textContent?.trim())
|
|
38534
|
+
.filter((t) => t);
|
|
38535
|
+
return texts.join(' ') || null;
|
|
38536
|
+
}
|
|
38537
|
+
// Empty option
|
|
38538
|
+
return null;
|
|
38539
|
+
}
|
|
38540
|
+
return getDefaultSlotPlainText(selectOpt);
|
|
38861
38541
|
};
|
|
38862
38542
|
/**
|
|
38863
38543
|
* Trims whitespace from all text nodes within a DOM tree.
|
|
@@ -38913,13 +38593,9 @@ const getOptionContent = (option, slotName, useHTML = false) => {
|
|
|
38913
38593
|
if (nodes.length === 0) {
|
|
38914
38594
|
return null;
|
|
38915
38595
|
}
|
|
38916
|
-
|
|
38917
|
-
* Return plain text if no elements are found. This reads the option the
|
|
38918
|
-
* same way the non-custom-HTML path does, so the two do not disagree
|
|
38919
|
-
* about what an option's text is.
|
|
38920
|
-
*/
|
|
38596
|
+
// Return plain text if no elements are found
|
|
38921
38597
|
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
38922
|
-
return
|
|
38598
|
+
return nodes.map((n) => n.textContent?.trim()).join(' ') || null;
|
|
38923
38599
|
}
|
|
38924
38600
|
/**
|
|
38925
38601
|
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
@@ -38975,43 +38651,22 @@ const getOptionDefaultSlot = (option) => {
|
|
|
38975
38651
|
}
|
|
38976
38652
|
return defaultSlotNodes;
|
|
38977
38653
|
};
|
|
38978
|
-
/**
|
|
38979
|
-
* Concatenates the text a node renders, skipping the subtrees of tags
|
|
38980
|
-
* whose contents the browser never paints (`script`, `style`, and the
|
|
38981
|
-
* rest of `blockedTags`). `textContent` includes those, so reading it
|
|
38982
|
-
* directly would put stylesheet or script source into the select text
|
|
38983
|
-
* and the `aria-label`.
|
|
38984
|
-
*
|
|
38985
|
-
* @param node - The node to read text from.
|
|
38986
|
-
* @returns The node's rendered text.
|
|
38987
|
-
*/
|
|
38988
|
-
const getRenderedTextContent = (node) => {
|
|
38989
|
-
if (node.nodeType === Node.TEXT_NODE) {
|
|
38990
|
-
return node.textContent ?? '';
|
|
38991
|
-
}
|
|
38992
|
-
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
38993
|
-
return '';
|
|
38994
|
-
}
|
|
38995
|
-
if (blockedTags.includes(node.tagName.toLowerCase())) {
|
|
38996
|
-
return '';
|
|
38997
|
-
}
|
|
38998
|
-
return Array.from(node.childNodes)
|
|
38999
|
-
.map((child) => getRenderedTextContent(child))
|
|
39000
|
-
.join('');
|
|
39001
|
-
};
|
|
39002
38654
|
/**
|
|
39003
38655
|
* Extracts plain text from only the default slot of an option,
|
|
39004
|
-
* excluding content assigned to named slots (start/end).
|
|
39005
|
-
* concatenated with no separator and collapsible whitespace is
|
|
39006
|
-
* collapsed, approximating how the browser renders the option.
|
|
39007
|
-
* NBSP is not collapsible, so it is preserved.
|
|
39008
|
-
*
|
|
39009
|
-
* @param option - The `ion-select-option` element to read text from.
|
|
39010
|
-
* @returns The option's default slot text.
|
|
38656
|
+
* excluding content assigned to named slots (start/end).
|
|
39011
38657
|
*/
|
|
39012
38658
|
const getDefaultSlotPlainText = (option) => {
|
|
39013
|
-
const
|
|
39014
|
-
|
|
38659
|
+
const texts = Array.from(option.childNodes)
|
|
38660
|
+
.filter((node) => {
|
|
38661
|
+
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38662
|
+
return !node.hasAttribute('slot');
|
|
38663
|
+
}
|
|
38664
|
+
return node.nodeType === Node.TEXT_NODE;
|
|
38665
|
+
})
|
|
38666
|
+
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
38667
|
+
.map((n) => n.textContent?.trim())
|
|
38668
|
+
.filter((t) => t);
|
|
38669
|
+
return texts.join(' ');
|
|
39015
38670
|
};
|
|
39016
38671
|
/**
|
|
39017
38672
|
* Extracts the rich content from an `ion-select-option`.
|
|
@@ -43087,7 +42742,7 @@ var NAMESPACE = (
|
|
|
43087
42742
|
);
|
|
43088
42743
|
|
|
43089
42744
|
/*
|
|
43090
|
-
Stencil Hydrate Runner v4.
|
|
42745
|
+
Stencil Hydrate Runner v4.43.5 | MIT Licensed | https://stenciljs.com
|
|
43091
42746
|
*/
|
|
43092
42747
|
var __create = Object.create;
|
|
43093
42748
|
var __defProp = Object.defineProperty;
|