@ionic/core 9.0.1-dev.11788285010.17561004 → 9.0.1-dev.11788375537.1f38f077
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/components/{p-gFwXiYC_.js → p-5rFO7X8J.js} +1 -1
- package/components/{p-BpLt_Ptn.js → p-7qDu1bID.js} +1 -1
- package/components/{p-7PNwKFZi.js → p-B2L09UOs.js} +1 -1
- package/components/{p-DcOH6-o5.js → p-BAJ7NctL.js} +1 -1
- package/components/{p-Kmrg3Fed.js → p-BE9noJ1O.js} +1 -1
- package/components/{p-CgvDC7hC.js → p-BFwL2yyK.js} +1 -1
- package/components/{p-DysqCsJu.js → p-BWHBdLfY.js} +1 -1
- package/components/{p-SR-LLqp_.js → p-Bcm-GVQM.js} +1 -1
- package/{dist/ionic/p-9wczfs_v.js → components/p-BcuLPPAE.js} +1 -1
- package/components/p-BhlP16sB.js +4 -0
- package/components/{p-H1f2qsk4.js → p-BqE7e5gH.js} +1 -1
- package/components/{p-BqBDq1Ma.js → p-C12SAK00.js} +1 -1
- package/components/{p-A8MJRBIY.js → p-C8mPeq0D.js} +1 -1
- package/components/{p-Bx2saTHs.js → p-CB06XtlF.js} +1 -1
- package/components/{p-BgUIV8NQ.js → p-CBhGZ6rF.js} +1 -1
- package/components/{p-B8MQjdvk.js → p-CDKY4TZ_.js} +1 -1
- package/components/{p-CWETxTjE.js → p-CEkamjav.js} +1 -1
- package/components/p-CFtAWaB6.js +4 -0
- package/components/{p-DEW7CnUc.js → p-CJTKYpZv.js} +1 -1
- package/components/{p-BA_4ZIEg.js → p-CLZPNP7x.js} +1 -1
- package/components/{p-tX3UxCnU.js → p-COxY7PLK.js} +1 -1
- package/components/p-CQxPXWNM.js +4 -0
- package/components/{p-DDdkefwf.js → p-CRcX0EGs.js} +1 -1
- package/components/{p-Bg4OwDwb.js → p-CXQzYyda.js} +1 -1
- package/components/p-CXpy69Ei.js +4 -0
- package/{dist/ionic/p-BZxjcGRP.js → components/p-CdSLe3Q3.js} +1 -1
- package/components/p-CoGD-oMG.js +4 -0
- package/components/p-CpYeYl3u.js +4 -0
- package/components/{p-BFtL8t1r.js → p-CyKlfXdt.js} +1 -1
- package/components/{p-CHswSpKy.js → p-D6PwfJ9F.js} +1 -1
- package/components/{p-Bnc0m4SW.js → p-D6dNJoqU.js} +1 -1
- package/components/{p-eFI3mtEX.js → p-D8BOfNYz.js} +1 -1
- package/{dist/ionic/p-D0dfUysx.js → components/p-DG-dUCKp.js} +1 -1
- package/{dist/ionic/p-DF_Uqql8.js → components/p-DH0rRXjx.js} +1 -1
- package/components/{p-D7ysFE2B.js → p-DMkSsriG.js} +1 -1
- package/components/{p-CaiZOhfC.js → p-Dcxr2vKX.js} +1 -1
- package/components/{p-B6x5_b9w.js → p-DkEb3SCT.js} +1 -1
- package/components/p-Dr-rBSUW.js +4 -0
- package/components/{p-DqAI6tg7.js → p-FQTgh7aH.js} +1 -1
- package/components/{p-DrehWDfv.js → p-KusMkAnB.js} +1 -1
- package/components/p-MHpJ2A_m.js +4 -0
- package/components/p-QgdyH-Zs.js +4 -0
- package/components/{p-BMfgF-Tv.js → p-RRH-7cpd.js} +1 -1
- package/components/{p-CQAjyETU.js → p-U1X_lw_6.js} +1 -1
- package/components/p-UKksD3f9.js +4 -0
- package/components/{p-v2NpoOHp.js → p-VTfnz_8u.js} +1 -1
- package/components/p-fP0QF3iG.js +4 -0
- package/components/{p-BPDxVIRr.js → p-l-zxxFre.js} +1 -1
- package/components/{p-BrFaQbGY.js → p-mXsQnyWB.js} +1 -1
- package/components/p-ntAkt4Ra.js +4 -0
- package/components/p-ufB0gCSU.js +4 -0
- package/dist/cjs/{animation-D-OqR4a4.js → animation-ihPP_z2n.js} +1 -1
- package/dist/cjs/{app-globals-BzgwARwJ.js → app-globals-BlkzA410.js} +1 -1
- package/dist/cjs/{button-active-BlWSD7uK.js → button-active-ItGBjzmO.js} +1 -1
- package/dist/cjs/{format-D7ig6Vm0.js → format-CPIqtp4x.js} +1 -1
- package/dist/cjs/{framework-delegate-BZUx4TnE.js → framework-delegate-DhyWUPGg.js} +1 -1
- package/dist/cjs/{hardware-back-button-JOAEFSzc.js → hardware-back-button-D5f_kASb.js} +1 -1
- package/dist/cjs/{helpers-Dj5o76mq.js → helpers-BCLkFTTd.js} +1 -1
- package/dist/cjs/{index-C8zH6b3d.js → index-49DTLc_Z.js} +2 -2
- package/dist/cjs/{index-CZ6vzt_q.js → index-BcyiqD6R.js} +5 -5
- package/dist/cjs/{index-BrVMoqUk.js → index-Bgz6BcKx.js} +50 -16
- package/dist/cjs/{index-EJLjthTK.js → index-BocV_y-c.js} +2 -1
- package/dist/cjs/{index-2sO-zkZ2.js → index-CldjPPyP.js} +4 -4
- package/dist/cjs/{index-Csue6G3m.js → index-xum7jdbq.js} +2 -2
- package/dist/cjs/index.cjs.js +12 -12
- package/dist/cjs/{input-shims-Bh7bnt2v.js → input-shims-Jisy7U7-.js} +3 -3
- package/dist/cjs/{input.utils-Cq3g9uHy.js → input.utils-BDTpGrfn.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +10 -10
- package/dist/cjs/ion-alert.cjs.entry.js +10 -10
- package/dist/cjs/ion-app_8.cjs.entry.js +12 -12
- 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 +32 -24
- 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 +13 -15
- package/dist/cjs/ion-item_8.cjs.entry.js +3 -3
- package/dist/cjs/ion-loading.cjs.entry.js +8 -8
- package/dist/cjs/ion-menu_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-modal.cjs.entry.js +9 -9
- 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 +210 -46
- package/dist/cjs/ion-picker.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +8 -8
- 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 +14 -10
- package/dist/cjs/ion-select-modal.cjs.entry.js +8 -8
- package/dist/cjs/ion-select_3.cjs.entry.js +57 -47
- 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-DvgIzM2F.js → ionic-global-BMU-Us1Q.js} +1 -1
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-zIgdoSYe.js → ios.transition-OCcCN--B.js} +4 -4
- package/dist/cjs/{item-multiple-inputs-DG-ZGm6j.js → item-multiple-inputs-BH9yPC66.js} +1 -1
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-CXeJ9rfh.js → md.transition-D0o2IIbo.js} +4 -4
- package/dist/cjs/{overlays-Bg0auTQa.js → overlays-hCtsdAvn.js} +5 -5
- package/dist/cjs/{select-option-render-7m1WdFzF.js → select-option-render-BPjGDlsG.js} +2 -2
- package/dist/cjs/{slot-mutation-controller-BJEJzx_e.js → slot-mutation-controller-IQ250LoG.js} +1 -1
- package/dist/cjs/{status-tap-DxbUM5XX.js → status-tap-Bakl9czs.js} +3 -3
- package/dist/cjs/{swipe-back-F_DBt-Aw.js → swipe-back-Cv4OZVJ5.js} +2 -2
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/datetime/datetime.js +25 -17
- package/dist/collection/components/item-sliding/item-sliding.js +10 -12
- package/dist/collection/components/picker-column/picker-column.js +207 -43
- package/dist/collection/components/segment-button/segment-button.js +11 -7
- package/dist/collection/components/select/select.js +49 -39
- package/dist/collection/utils/test/late-props/late-props.js +69 -0
- package/dist/docs.json +279 -48
- package/dist/esm/{animation-TxGPYeDn.js → animation-B6KGUJwl.js} +1 -1
- package/dist/esm/{app-globals-Do8rJest.js → app-globals-BvutUX8P.js} +1 -1
- package/dist/esm/{button-active-ChA4D-ml.js → button-active-DRNebs9r.js} +1 -1
- package/dist/esm/{format-CVk5e_GP.js → format-BF3btM7P.js} +1 -1
- package/dist/esm/{framework-delegate-DaLWnISz.js → framework-delegate-60cEIAgt.js} +1 -1
- package/dist/esm/{hardware-back-button-D8W4L0JP.js → hardware-back-button-rhkwRNk2.js} +1 -1
- package/dist/esm/{helpers-BIgoInJU.js → helpers-DLLANtRS.js} +1 -1
- package/dist/esm/{index-C8Dsa6li.js → index-BZHVn0iF.js} +4 -4
- package/dist/esm/{index-DHw2lZxe.js → index-Bl4BUvBL.js} +2 -2
- package/dist/esm/{index-BmOR8tCv.js → index-DOrtAUWV.js} +2 -2
- package/dist/esm/{index-C5ZdL0qp.js → index-D_7MeuVD.js} +5 -5
- package/dist/esm/{index-elneMH8y.js → index-JgU5uTSY.js} +2 -2
- package/dist/esm/{index-CKYcsw8f.js → index-h81G-QbJ.js} +50 -16
- package/dist/esm/index.js +12 -12
- package/dist/esm/{input-shims-09NN97kF.js → input-shims-C2ipc_XX.js} +3 -3
- package/dist/esm/{input.utils-BxyH9l1w.js → input.utils-D-qoPjqr.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +10 -10
- package/dist/esm/ion-alert.entry.js +10 -10
- package/dist/esm/ion-app_8.entry.js +12 -12
- 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 +32 -24
- 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 +13 -15
- package/dist/esm/ion-item_8.entry.js +3 -3
- package/dist/esm/ion-loading.entry.js +8 -8
- package/dist/esm/ion-menu_3.entry.js +8 -8
- package/dist/esm/ion-modal.entry.js +9 -9
- 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 +211 -47
- package/dist/esm/ion-picker.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +8 -8
- 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 +14 -10
- package/dist/esm/ion-select-modal.entry.js +8 -8
- package/dist/esm/ion-select_3.entry.js +57 -47
- 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-lrowsHfi.js → ionic-global-B7I1sdvg.js} +1 -1
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-BQhADrk1.js → ios.transition-C-6IaIxe.js} +4 -4
- package/dist/esm/{item-multiple-inputs-D_N3fDkD.js → item-multiple-inputs-DI91syHS.js} +1 -1
- package/dist/esm/loader.js +4 -4
- package/dist/esm/{md.transition-D58NpmRa.js → md.transition-dyqt0t0d.js} +4 -4
- package/dist/esm/{overlays-BpnIFlXI.js → overlays-CiFoZEq1.js} +5 -5
- package/dist/esm/{select-option-render-lIuu64EV.js → select-option-render-CUJpruSC.js} +2 -2
- package/dist/esm/{slot-mutation-controller-rS_T3FDR.js → slot-mutation-controller-wFuztlVD.js} +1 -1
- package/dist/esm/{status-tap-CpFQMLl6.js → status-tap-Dn_42wiy.js} +3 -3
- package/dist/esm/{swipe-back-rmc7zeNW.js → swipe-back-CqOqrHW7.js} +2 -2
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-d8deff43.entry.js → p-026e2e4c.entry.js} +1 -1
- package/dist/ionic/{p-RzUn7cKs.js → p-06ZcwRF5.js} +1 -1
- package/dist/ionic/{p-b62bfce8.entry.js → p-082b8125.entry.js} +1 -1
- package/dist/ionic/{p-16e9f542.entry.js → p-0b52d921.entry.js} +1 -1
- package/dist/ionic/{p-485fb218.entry.js → p-1a20571c.entry.js} +1 -1
- package/dist/ionic/{p-90ba736e.entry.js → p-1f66c230.entry.js} +1 -1
- package/dist/ionic/{p-a0fee899.entry.js → p-2aabd568.entry.js} +1 -1
- package/dist/ionic/{p-295ff427.entry.js → p-2ff12c8a.entry.js} +1 -1
- package/dist/ionic/p-326e0d05.entry.js +4 -0
- package/dist/ionic/p-392079fa.entry.js +4 -0
- package/dist/ionic/{p-48c859fe.entry.js → p-39415b06.entry.js} +1 -1
- package/dist/ionic/{p-886d9e66.entry.js → p-3bad6750.entry.js} +1 -1
- package/dist/ionic/{p-6f048604.entry.js → p-43bae3f5.entry.js} +1 -1
- package/dist/ionic/{p-d3384a40.entry.js → p-47b8b59a.entry.js} +1 -1
- package/dist/ionic/p-4dcd329a.entry.js +4 -0
- package/dist/ionic/{p-478035a7.entry.js → p-53ba5651.entry.js} +1 -1
- package/dist/ionic/{p-bbf6878c.entry.js → p-546b1109.entry.js} +1 -1
- package/dist/ionic/{p-8dd4c026.entry.js → p-5dc53bdf.entry.js} +1 -1
- package/dist/ionic/{p-1df75f9e.entry.js → p-5ed60413.entry.js} +1 -1
- package/dist/ionic/{p-05800a02.entry.js → p-5fce4bf4.entry.js} +1 -1
- package/dist/ionic/{p-ddfb7e5f.entry.js → p-6d84fa9f.entry.js} +1 -1
- package/dist/ionic/{p-68507e70.entry.js → p-70334101.entry.js} +1 -1
- package/dist/ionic/{p-72ad7c64.entry.js → p-7c859f42.entry.js} +1 -1
- package/dist/ionic/{p-f376876b.entry.js → p-83aa7d47.entry.js} +1 -1
- package/dist/ionic/{p-959df5f8.entry.js → p-8d72244b.entry.js} +1 -1
- package/dist/ionic/{p-34b9379b.entry.js → p-8db6e422.entry.js} +1 -1
- package/dist/ionic/{p-9e455875.entry.js → p-8e388a30.entry.js} +1 -1
- package/dist/ionic/{p-b5f37106.entry.js → p-9452849d.entry.js} +1 -1
- package/dist/ionic/{p-75887ee0.entry.js → p-986a1db8.entry.js} +1 -1
- package/dist/ionic/{p-a54bcd16.entry.js → p-9e688396.entry.js} +1 -1
- package/dist/ionic/{p-cad4eccf.entry.js → p-9eba0d8a.entry.js} +1 -1
- package/dist/ionic/{p-8e007f11.entry.js → p-9f2d3987.entry.js} +1 -1
- package/{components/p-BSARlp49.js → dist/ionic/p-BC17SPKH.js} +1 -1
- package/dist/ionic/p-BRa1Jjxr.js +4 -0
- package/dist/ionic/{p-De0eY881.js → p-BRc8gq5v.js} +1 -1
- package/{components/p-66ogmUZU.js → dist/ionic/p-BpG7jkT9.js} +1 -1
- package/dist/ionic/{p-B1Y7LZhV.js → p-C10K-FJg.js} +1 -1
- package/dist/ionic/{p-D9yvytgv.js → p-C2BY_4Wp.js} +1 -1
- package/dist/ionic/{p-BZVE25Gu.js → p-CH8tk7Pr.js} +1 -1
- package/dist/ionic/{p-CDBop-kz.js → p-CTBfxfjC.js} +1 -1
- package/dist/ionic/p-Cc-fFNy8.js +4 -0
- package/dist/ionic/p-Cc4w3fVf.js +4 -0
- package/{components/p-BuPAFTWI.js → dist/ionic/p-CoEa7CiN.js} +1 -1
- package/dist/ionic/p-CvRL-Eju.js +4 -0
- package/dist/ionic/{p-DdhHqKj-.js → p-DA52akcQ.js} +1 -1
- package/dist/ionic/p-DA88iqXQ.js +4 -0
- package/dist/ionic/{p-DXJgZWgi.js → p-DMj-M2c4.js} +1 -1
- package/dist/ionic/p-D_IgV7tz.js +4 -0
- package/dist/ionic/{p-VquyMbjp.js → p-DoUx_N0R.js} +1 -1
- package/dist/ionic/{p-C4IBDDj6.js → p-KJ5pLPiN.js} +1 -1
- package/dist/ionic/{p-ByLaqOPm.js → p-Q9w8L_Sw.js} +1 -1
- package/dist/ionic/{p-ClrlQU2y.js → p-S1shXW5M.js} +1 -1
- package/dist/ionic/{p-1db2afb4.entry.js → p-a2fccdaa.entry.js} +1 -1
- package/dist/ionic/{p-fbd83d4c.entry.js → p-ac71362a.entry.js} +1 -1
- package/dist/ionic/{p-b7a11b58.entry.js → p-b62c04b2.entry.js} +1 -1
- package/dist/ionic/p-b8cd338d.entry.js +4 -0
- package/dist/ionic/{p-5f216b79.entry.js → p-ca57763d.entry.js} +1 -1
- package/dist/ionic/{p-39a8d4e0.entry.js → p-cc749877.entry.js} +1 -1
- package/dist/ionic/{p-56307aea.entry.js → p-d1539609.entry.js} +1 -1
- package/dist/ionic/{p-cdc5115e.entry.js → p-d1b888de.entry.js} +1 -1
- package/dist/ionic/p-da5a7bcd.entry.js +4 -0
- package/dist/ionic/{p-70ee8888.entry.js → p-dadcb3d2.entry.js} +1 -1
- package/dist/ionic/{p-0eb50dca.entry.js → p-e090eca3.entry.js} +1 -1
- package/dist/ionic/{p-873a315a.entry.js → p-e5a54d99.entry.js} +1 -1
- package/dist/ionic/{p-c49165af.entry.js → p-e93cc1e1.entry.js} +1 -1
- package/dist/ionic/p-eab77a74.entry.js +4 -0
- package/dist/ionic/{p-aebc4d69.entry.js → p-eaeac54e.entry.js} +1 -1
- package/dist/ionic/{p-e538f18d.entry.js → p-ecfc9c71.entry.js} +1 -1
- package/dist/ionic/{p-5ee2d7b1.entry.js → p-eeb65463.entry.js} +1 -1
- package/dist/ionic/{p-881b6954.entry.js → p-f0645c98.entry.js} +1 -1
- package/dist/ionic/{p-d8bae128.entry.js → p-f607ad4f.entry.js} +1 -1
- package/dist/ionic/{p-61c799d1.entry.js → p-fb4dabbb.entry.js} +1 -1
- package/dist/ionic/{p-63bbba8d.entry.js → p-fe80ebb1.entry.js} +1 -1
- package/dist/ionic/p-h81G-QbJ.js +6 -0
- package/dist/ionic/p-w3KTiug9.js +4 -0
- package/{components/p-RFfE9hF6.js → dist/ionic/p-wdSUbx5C.js} +1 -1
- package/dist/types/components/picker-column/picker-column.d.ts +42 -0
- package/dist/types/components.d.ts +1 -1
- package/dist/types/stencil-public-runtime.d.ts +12 -0
- package/hydrate/index.js +328 -123
- package/hydrate/index.mjs +328 -123
- package/loader/index.d.ts +1 -1
- package/package.json +2 -2
- package/components/p-6Vp915Y7.js +0 -4
- package/components/p-AQcCdH2_.js +0 -4
- package/components/p-BdwCtX8Y.js +0 -4
- package/components/p-BxhE2W85.js +0 -4
- package/components/p-CR9OgE6N.js +0 -4
- package/components/p-CaZeZIL2.js +0 -4
- package/components/p-CqyGR9Aq.js +0 -4
- package/components/p-DCWfzDM8.js +0 -4
- package/components/p-DQ1IPvZO.js +0 -4
- package/components/p-DfdYCsov.js +0 -4
- package/components/p-DhOoEIAs.js +0 -4
- package/components/p-Dl_7b_UJ.js +0 -4
- package/components/p-HVYBAhFx.js +0 -4
- package/dist/ionic/p-18d532a3.entry.js +0 -4
- package/dist/ionic/p-4437015c.entry.js +0 -4
- package/dist/ionic/p-49b9d405.entry.js +0 -4
- package/dist/ionic/p-8f464a8f.entry.js +0 -4
- package/dist/ionic/p-8f51110d.entry.js +0 -4
- package/dist/ionic/p-B5RyLYvl.js +0 -4
- package/dist/ionic/p-BQv5i5Kf.js +0 -4
- package/dist/ionic/p-BnGA34Pd.js +0 -4
- package/dist/ionic/p-C06QNN45.js +0 -4
- package/dist/ionic/p-CCVlNZ__.js +0 -4
- package/dist/ionic/p-CKYcsw8f.js +0 -5
- package/dist/ionic/p-CazSodad.js +0 -4
- package/dist/ionic/p-DgUL3JbO.js +0 -4
- package/dist/ionic/p-f521b13c.entry.js +0 -4
package/hydrate/index.js
CHANGED
|
@@ -422,7 +422,7 @@ const appGlobalScript = initialize || (() => {});
|
|
|
422
422
|
const globalScripts = appGlobalScript;
|
|
423
423
|
|
|
424
424
|
/*
|
|
425
|
-
Stencil Hydrate Platform v4.
|
|
425
|
+
Stencil Hydrate Platform v4.44.1 | MIT Licensed | https://stenciljs.com
|
|
426
426
|
*/
|
|
427
427
|
var __create = Object.create;
|
|
428
428
|
var __defProp = Object.defineProperty;
|
|
@@ -757,6 +757,8 @@ var DEFAULT_DOC_DATA = {
|
|
|
757
757
|
};
|
|
758
758
|
var SLOT_FB_CSS = "slot-fb{display:contents}slot-fb[hidden]{display:none}";
|
|
759
759
|
var XLINK_NS = "http://www.w3.org/1999/xlink";
|
|
760
|
+
var MAX_LAZY_LOAD_RETRIES = 3;
|
|
761
|
+
var LAZY_LOAD_RETRY_INTERVAL_MS = 1e3;
|
|
760
762
|
|
|
761
763
|
// src/utils/style.ts
|
|
762
764
|
function createStyleSheetIfNeededAndSupported(styles2) {
|
|
@@ -820,7 +822,7 @@ function getHostSlotNodes(childNodes, hostName, slotName) {
|
|
|
820
822
|
slottedNodes.push(childNode);
|
|
821
823
|
if (typeof slotName !== "undefined") return slottedNodes;
|
|
822
824
|
}
|
|
823
|
-
slottedNodes = [...slottedNodes, ...getHostSlotNodes(childNode
|
|
825
|
+
slottedNodes = [...slottedNodes, ...getHostSlotNodes(internalCall(childNode, "childNodes"), hostName, slotName)];
|
|
824
826
|
}
|
|
825
827
|
return slottedNodes;
|
|
826
828
|
}
|
|
@@ -1064,6 +1066,11 @@ var h = (nodeName, vnodeData, ...children) => {
|
|
|
1064
1066
|
} else if (child != null && typeof child !== "boolean") {
|
|
1065
1067
|
if (simple = typeof nodeName !== "function" && !isComplexType(child)) {
|
|
1066
1068
|
child = String(child);
|
|
1069
|
+
} else if (typeof nodeName !== "function" && child.$flags$ === void 0) {
|
|
1070
|
+
{
|
|
1071
|
+
consoleError("Invalid vNode child");
|
|
1072
|
+
}
|
|
1073
|
+
continue;
|
|
1067
1074
|
}
|
|
1068
1075
|
if (simple && lastSimple) {
|
|
1069
1076
|
vNodeChildren[vNodeChildren.length - 1].$text$ += child;
|
|
@@ -2299,7 +2306,7 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
|
|
|
2299
2306
|
}
|
|
2300
2307
|
}
|
|
2301
2308
|
if (newValue == null || newValue === false) {
|
|
2302
|
-
if (newValue !== false || elm.getAttribute(memberName) === "") {
|
|
2309
|
+
if (newValue !== false || elm.getAttribute(memberName) === "" || flags & 4 /* isHost */ && !isEnumeratedAttribute(memberName)) {
|
|
2303
2310
|
if (xlink) {
|
|
2304
2311
|
elm.removeAttributeNS(XLINK_NS, memberName);
|
|
2305
2312
|
} else {
|
|
@@ -2316,6 +2323,8 @@ var setAccessor = (elm, memberName, oldValue, newValue, isSvg, flags, initialRen
|
|
|
2316
2323
|
}
|
|
2317
2324
|
}
|
|
2318
2325
|
};
|
|
2326
|
+
var ENUMERATED_ATTRIBUTES = /* @__PURE__ */ new Set(["draggable", "contenteditable", "spellcheck"]);
|
|
2327
|
+
var isEnumeratedAttribute = (attrName) => ENUMERATED_ATTRIBUTES.has(attrName) || attrName.startsWith("aria-");
|
|
2319
2328
|
var parseClassListRegex = /\s/;
|
|
2320
2329
|
var parseClassList = (value) => {
|
|
2321
2330
|
if (typeof value === "object" && value && "baseVal" in value) {
|
|
@@ -2718,7 +2727,10 @@ var markSlotContentForRelocation = (elm) => {
|
|
|
2718
2727
|
const slotName = childNode["s-sn"];
|
|
2719
2728
|
for (j = hostContentNodes.length - 1; j >= 0; j--) {
|
|
2720
2729
|
node = hostContentNodes[j];
|
|
2721
|
-
if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] &&
|
|
2730
|
+
if (!node["s-cn"] && !node["s-nr"] && node["s-hn"] !== childNode["s-hn"] && // let an exact named-slot match override a stale default-slot claim. Skip this for
|
|
2731
|
+
// `slotName === ''` itself - a matched default node's cached `s-sn` is `''` too, which
|
|
2732
|
+
// would trivially "match" on every re-render and force pointless re-insertion.
|
|
2733
|
+
(!node["s-sh"] || node["s-sh"] !== childNode["s-hn"] || slotName !== "" && getSlotName(node) === slotName)) {
|
|
2722
2734
|
if (isNodeLocatedInSlot(node, slotName)) {
|
|
2723
2735
|
let relocateNodeData = relocateNodes.find((r) => r.$nodeToRelocate$ === node);
|
|
2724
2736
|
checkSlotFallbackVisibility = true;
|
|
@@ -2788,7 +2800,7 @@ var insertBefore = (parent, newNode, reference, isInitialLoad) => {
|
|
|
2788
2800
|
return newNode;
|
|
2789
2801
|
}
|
|
2790
2802
|
}
|
|
2791
|
-
if (parent.__insertBefore) {
|
|
2803
|
+
if ((parent == null ? void 0 : parent.__insertBefore)) {
|
|
2792
2804
|
return parent.__insertBefore(newNode, reference);
|
|
2793
2805
|
} else {
|
|
2794
2806
|
return parent == null ? void 0 : parent.insertBefore(newNode, reference);
|
|
@@ -3293,10 +3305,12 @@ var proxyComponent = (Cstr, cmpMeta, flags) => {
|
|
|
3293
3305
|
|
|
3294
3306
|
// src/runtime/initialize-component.ts
|
|
3295
3307
|
var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
3308
|
+
var _a2;
|
|
3296
3309
|
let Cstr;
|
|
3297
3310
|
try {
|
|
3298
3311
|
if ((hostRef.$flags$ & 32 /* hasInitializedComponent */) === 0) {
|
|
3299
3312
|
hostRef.$flags$ |= 32 /* hasInitializedComponent */;
|
|
3313
|
+
hostRef.$flags$ &= -1025 /* hasFailedLoad */;
|
|
3300
3314
|
const bundleId = cmpMeta.$lazyBundleId$;
|
|
3301
3315
|
if (bundleId) {
|
|
3302
3316
|
const CstrImport = loadModule(cmpMeta);
|
|
@@ -3308,6 +3322,11 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
|
3308
3322
|
Cstr = CstrImport;
|
|
3309
3323
|
}
|
|
3310
3324
|
if (!Cstr) {
|
|
3325
|
+
hostRef.$flags$ &= -33 /* hasInitializedComponent */;
|
|
3326
|
+
hostRef.$loadRetryCount$ = ((_a2 = hostRef.$loadRetryCount$) != null ? _a2 : 0) + 1;
|
|
3327
|
+
if (hostRef.$loadRetryCount$ < MAX_LAZY_LOAD_RETRIES) {
|
|
3328
|
+
hostRef.$flags$ |= 1024 /* hasFailedLoad */;
|
|
3329
|
+
}
|
|
3311
3330
|
throw new Error(`Constructor for "${cmpMeta.$tagName$}#${hostRef.$modeName$}" was not found`);
|
|
3312
3331
|
}
|
|
3313
3332
|
if (!Cstr.isProxied) {
|
|
@@ -3387,7 +3406,7 @@ var initializeComponent = async (elm, hostRef, cmpMeta, hmrVersionId) => {
|
|
|
3387
3406
|
hostRef.$onRenderResolve$();
|
|
3388
3407
|
hostRef.$onRenderResolve$ = void 0;
|
|
3389
3408
|
}
|
|
3390
|
-
if (hostRef.$onReadyResolve$) {
|
|
3409
|
+
if (hostRef.$onReadyResolve$ && !(hostRef.$flags$ & 1024 /* hasFailedLoad */)) {
|
|
3391
3410
|
hostRef.$onReadyResolve$(elm);
|
|
3392
3411
|
}
|
|
3393
3412
|
}
|
|
@@ -3446,6 +3465,8 @@ var connectedCallback = (elm) => {
|
|
|
3446
3465
|
addHostEventListeners(elm, hostRef, cmpMeta.$listeners$);
|
|
3447
3466
|
if (hostRef == null ? void 0 : hostRef.$lazyInstance$) {
|
|
3448
3467
|
fireConnectedCallback(hostRef.$lazyInstance$, elm);
|
|
3468
|
+
} else if (hostRef.$flags$ & 1024 /* hasFailedLoad */) {
|
|
3469
|
+
setTimeout(() => initializeComponent(elm, hostRef, cmpMeta), LAZY_LOAD_RETRY_INTERVAL_MS);
|
|
3449
3470
|
} else if (hostRef == null ? void 0 : hostRef.$onReadyPromise$) {
|
|
3450
3471
|
hostRef.$onReadyPromise$.then(() => fireConnectedCallback(hostRef.$lazyInstance$, elm));
|
|
3451
3472
|
}
|
|
@@ -17028,7 +17049,6 @@ class Datetime {
|
|
|
17028
17049
|
}
|
|
17029
17050
|
renderCombinedDatePickerColumn() {
|
|
17030
17051
|
const { defaultParts, disabled, workingParts, locale, minParts, maxParts, todayParts, isDateEnabled } = this;
|
|
17031
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17032
17052
|
/**
|
|
17033
17053
|
* By default, generate a range of 3 months:
|
|
17034
17054
|
* Previous month, current month, and next month
|
|
@@ -17084,8 +17104,10 @@ class Datetime {
|
|
|
17084
17104
|
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) => {
|
|
17085
17105
|
const { value } = ev.detail;
|
|
17086
17106
|
const findPart = parts.find(({ month, day, year }) => value === `${year}-${month}-${day}`);
|
|
17107
|
+
// Read live so parts a sibling column just committed are included.
|
|
17108
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17087
17109
|
this.setWorkingParts({
|
|
17088
|
-
...workingParts,
|
|
17110
|
+
...this.workingParts,
|
|
17089
17111
|
...findPart,
|
|
17090
17112
|
});
|
|
17091
17113
|
this.setActiveParts({
|
|
@@ -17162,11 +17184,12 @@ class Datetime {
|
|
|
17162
17184
|
return [];
|
|
17163
17185
|
}
|
|
17164
17186
|
const { disabled, workingParts } = this;
|
|
17165
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17166
17187
|
const pickerColumnValue = (workingParts.day !== null ? workingParts.day : this.defaultParts.day) ?? undefined;
|
|
17167
17188
|
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) => {
|
|
17189
|
+
// Read live so parts a sibling column just committed are included.
|
|
17190
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17168
17191
|
this.setWorkingParts({
|
|
17169
|
-
...workingParts,
|
|
17192
|
+
...this.workingParts,
|
|
17170
17193
|
day: ev.detail.value,
|
|
17171
17194
|
});
|
|
17172
17195
|
this.setActiveParts({
|
|
@@ -17181,10 +17204,11 @@ class Datetime {
|
|
|
17181
17204
|
return [];
|
|
17182
17205
|
}
|
|
17183
17206
|
const { disabled, workingParts } = this;
|
|
17184
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17185
17207
|
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) => {
|
|
17208
|
+
// Read live so parts a sibling column just committed are included.
|
|
17209
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17186
17210
|
this.setWorkingParts({
|
|
17187
|
-
...workingParts,
|
|
17211
|
+
...this.workingParts,
|
|
17188
17212
|
month: ev.detail.value,
|
|
17189
17213
|
});
|
|
17190
17214
|
// Month wheel is navigation-only in multi-select mode as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
|
|
@@ -17202,10 +17226,11 @@ class Datetime {
|
|
|
17202
17226
|
return [];
|
|
17203
17227
|
}
|
|
17204
17228
|
const { disabled, workingParts } = this;
|
|
17205
|
-
const activePart = this.getActivePartsWithFallback();
|
|
17206
17229
|
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) => {
|
|
17230
|
+
// Read live so parts a sibling column just committed are included.
|
|
17231
|
+
const activePart = this.getActivePartsWithFallback();
|
|
17207
17232
|
this.setWorkingParts({
|
|
17208
|
-
...workingParts,
|
|
17233
|
+
...this.workingParts,
|
|
17209
17234
|
year: ev.detail.value,
|
|
17210
17235
|
});
|
|
17211
17236
|
// Year wheel is navigation-only in multi-select mode as a fix for https://github.com/ionic-team/ionic-framework/issues/29673
|
|
@@ -17241,13 +17266,14 @@ class Datetime {
|
|
|
17241
17266
|
];
|
|
17242
17267
|
}
|
|
17243
17268
|
renderHourPickerColumn(hoursData) {
|
|
17244
|
-
const { disabled
|
|
17269
|
+
const { disabled } = this;
|
|
17245
17270
|
if (hoursData.length === 0)
|
|
17246
17271
|
return [];
|
|
17247
17272
|
const activePart = this.getActivePartsWithFallback();
|
|
17248
17273
|
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) => {
|
|
17274
|
+
// Read live so parts a sibling column just committed are included.
|
|
17249
17275
|
this.setWorkingParts({
|
|
17250
|
-
...workingParts,
|
|
17276
|
+
...this.workingParts,
|
|
17251
17277
|
hour: ev.detail.value,
|
|
17252
17278
|
});
|
|
17253
17279
|
this.setActiveParts({
|
|
@@ -17258,13 +17284,14 @@ class Datetime {
|
|
|
17258
17284
|
} }, 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)))));
|
|
17259
17285
|
}
|
|
17260
17286
|
renderMinutePickerColumn(minutesData) {
|
|
17261
|
-
const { disabled
|
|
17287
|
+
const { disabled } = this;
|
|
17262
17288
|
if (minutesData.length === 0)
|
|
17263
17289
|
return [];
|
|
17264
17290
|
const activePart = this.getActivePartsWithFallback();
|
|
17265
17291
|
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) => {
|
|
17292
|
+
// Read live so parts a sibling column just committed are included.
|
|
17266
17293
|
this.setWorkingParts({
|
|
17267
|
-
...workingParts,
|
|
17294
|
+
...this.workingParts,
|
|
17268
17295
|
minute: ev.detail.value,
|
|
17269
17296
|
});
|
|
17270
17297
|
this.setActiveParts({
|
|
@@ -17275,16 +17302,18 @@ class Datetime {
|
|
|
17275
17302
|
} }, 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)))));
|
|
17276
17303
|
}
|
|
17277
17304
|
renderDayPeriodPickerColumn(dayPeriodData) {
|
|
17278
|
-
const { disabled
|
|
17305
|
+
const { disabled } = this;
|
|
17279
17306
|
if (dayPeriodData.length === 0) {
|
|
17280
17307
|
return [];
|
|
17281
17308
|
}
|
|
17282
17309
|
const activePart = this.getActivePartsWithFallback();
|
|
17283
17310
|
const isDayPeriodRTL = isLocaleDayPeriodRTL(this.locale);
|
|
17284
17311
|
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) => {
|
|
17285
|
-
|
|
17312
|
+
// Read live so parts a sibling column just committed are included.
|
|
17313
|
+
const currentParts = this.workingParts;
|
|
17314
|
+
const hour = calculateHourFromAMPM(currentParts, ev.detail.value);
|
|
17286
17315
|
this.setWorkingParts({
|
|
17287
|
-
...
|
|
17316
|
+
...currentParts,
|
|
17288
17317
|
ampm: ev.detail.value,
|
|
17289
17318
|
hour,
|
|
17290
17319
|
});
|
|
@@ -17636,7 +17665,7 @@ class Datetime {
|
|
|
17636
17665
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
17637
17666
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
17638
17667
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
17639
|
-
return (hAsync(Host, { key: '
|
|
17668
|
+
return (hAsync(Host, { key: '4e0b529a70924b065bcc6191e08550428b5a52a0', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
|
|
17640
17669
|
...createColorClasses$1(color, {
|
|
17641
17670
|
[mode]: true,
|
|
17642
17671
|
['datetime-readonly']: readonly,
|
|
@@ -17648,7 +17677,7 @@ class Datetime {
|
|
|
17648
17677
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
17649
17678
|
[`datetime-grid`]: isGridStyle,
|
|
17650
17679
|
}),
|
|
17651
|
-
} }, hAsync("div", { key: '
|
|
17680
|
+
} }, hAsync("div", { key: 'cc9d1b92f960984cb0466d0003a240ace67da243', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
17652
17681
|
}
|
|
17653
17682
|
get el() { return getElement(this); }
|
|
17654
17683
|
static get watchers() { return {
|
|
@@ -22330,19 +22359,17 @@ class ItemSliding {
|
|
|
22330
22359
|
}
|
|
22331
22360
|
}
|
|
22332
22361
|
async updateOptions() {
|
|
22333
|
-
const options = this.el.querySelectorAll('ion-item-options');
|
|
22362
|
+
const options = Array.from(this.el.querySelectorAll('ion-item-options'));
|
|
22363
|
+
/**
|
|
22364
|
+
* Frameworks that assign element props after inserting the element haven't set
|
|
22365
|
+
* `side` while `connectedCallback` runs, so reading it any earlier reports every
|
|
22366
|
+
* option as `end`.
|
|
22367
|
+
*/
|
|
22368
|
+
await Promise.all(options.map((option) => new Promise((resolve) => componentOnReady(option, resolve))));
|
|
22334
22369
|
let sides = 0;
|
|
22335
22370
|
// Reset left and right options in case they were removed
|
|
22336
22371
|
this.leftOptions = this.rightOptions = undefined;
|
|
22337
|
-
for (
|
|
22338
|
-
const item = options.item(i);
|
|
22339
|
-
/**
|
|
22340
|
-
* We cannot use the componentOnReady helper
|
|
22341
|
-
* util here since we need to wait for all of these items
|
|
22342
|
-
* to be ready before we set `this.sides` and `this.optsDirty`.
|
|
22343
|
-
*/
|
|
22344
|
-
// eslint-disable-next-line custom-rules/no-component-on-ready-method
|
|
22345
|
-
const option = item.componentOnReady !== undefined ? await item.componentOnReady() : item;
|
|
22372
|
+
for (const option of options) {
|
|
22346
22373
|
const side = isEndSide(option.side ?? option.getAttribute('side')) ? 'end' : 'start';
|
|
22347
22374
|
if (side === 'start') {
|
|
22348
22375
|
this.leftOptions = option;
|
|
@@ -22541,7 +22568,7 @@ class ItemSliding {
|
|
|
22541
22568
|
}
|
|
22542
22569
|
render() {
|
|
22543
22570
|
const mode = getIonMode$1(this);
|
|
22544
|
-
return (hAsync(Host, { key: '
|
|
22571
|
+
return (hAsync(Host, { key: '02174ca963753d3a51a4249068f3d436f8acb03d', class: {
|
|
22545
22572
|
[mode]: true,
|
|
22546
22573
|
'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
|
|
22547
22574
|
'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
|
|
@@ -29259,6 +29286,12 @@ class PickerColumn {
|
|
|
29259
29286
|
this.isColumnVisible = false;
|
|
29260
29287
|
this.canExitInputMode = true;
|
|
29261
29288
|
this.updateValueTextOnScroll = false;
|
|
29289
|
+
this.isUserScroll = false;
|
|
29290
|
+
/**
|
|
29291
|
+
* The haptics for the wheel picker are an iOS-only feature. As a result,
|
|
29292
|
+
* they should be disabled on Android.
|
|
29293
|
+
*/
|
|
29294
|
+
this.enableHaptics = false;
|
|
29262
29295
|
this.ariaLabel = null;
|
|
29263
29296
|
this.isActive = false;
|
|
29264
29297
|
/**
|
|
@@ -29290,6 +29323,12 @@ class PickerColumn {
|
|
|
29290
29323
|
*/
|
|
29291
29324
|
this.canExitInputMode = canExitInputMode;
|
|
29292
29325
|
this.updateValueTextOnScroll = false;
|
|
29326
|
+
/**
|
|
29327
|
+
* This scroll takes over from whatever the user was doing, so an outside
|
|
29328
|
+
* press must not commit an option the column is only passing through.
|
|
29329
|
+
*/
|
|
29330
|
+
this.isUserScroll = false;
|
|
29331
|
+
this.stopWatchingForOutsidePress();
|
|
29293
29332
|
scrollEl.scroll({
|
|
29294
29333
|
top,
|
|
29295
29334
|
left: 0,
|
|
@@ -29344,6 +29383,117 @@ class PickerColumn {
|
|
|
29344
29383
|
}
|
|
29345
29384
|
this.isActive = state;
|
|
29346
29385
|
};
|
|
29386
|
+
this.clearScrollEndTimeout = () => {
|
|
29387
|
+
if (this.scrollEndTimeout) {
|
|
29388
|
+
clearTimeout(this.scrollEndTimeout);
|
|
29389
|
+
this.scrollEndTimeout = undefined;
|
|
29390
|
+
}
|
|
29391
|
+
};
|
|
29392
|
+
/**
|
|
29393
|
+
* Resets the idle timer that commits the centered option.
|
|
29394
|
+
*/
|
|
29395
|
+
this.resetScrollEndTimeout = () => {
|
|
29396
|
+
this.clearScrollEndTimeout();
|
|
29397
|
+
this.scrollEndTimeout = setTimeout(this.settle, SCROLL_END_DELAY);
|
|
29398
|
+
};
|
|
29399
|
+
/**
|
|
29400
|
+
* Capture so the column still commits if an application's own pointerdown
|
|
29401
|
+
* handler stops the event before it reaches the document.
|
|
29402
|
+
*/
|
|
29403
|
+
this.watchForOutsidePress = () => {
|
|
29404
|
+
doc?.addEventListener('pointerdown', this.onPointerDownOutside, { capture: true });
|
|
29405
|
+
};
|
|
29406
|
+
this.stopWatchingForOutsidePress = () => {
|
|
29407
|
+
doc?.removeEventListener('pointerdown', this.onPointerDownOutside, { capture: true });
|
|
29408
|
+
};
|
|
29409
|
+
/**
|
|
29410
|
+
* Resets everything the current scroll interaction is holding, so nothing
|
|
29411
|
+
* pending on it can commit later.
|
|
29412
|
+
*/
|
|
29413
|
+
this.discardScroll = () => {
|
|
29414
|
+
this.stopWatchingForOutsidePress();
|
|
29415
|
+
this.clearScrollEndTimeout();
|
|
29416
|
+
this.scrollEndCallback = undefined;
|
|
29417
|
+
this.centeredOption = undefined;
|
|
29418
|
+
this.haltedAtScrollTop = undefined;
|
|
29419
|
+
this.isScrolling = false;
|
|
29420
|
+
this.isUserScroll = false;
|
|
29421
|
+
this.canExitInputMode = true;
|
|
29422
|
+
};
|
|
29423
|
+
/**
|
|
29424
|
+
* Commits the option that is currently centered under the highlight and ends
|
|
29425
|
+
* the scroll interaction.
|
|
29426
|
+
*/
|
|
29427
|
+
this.settle = () => {
|
|
29428
|
+
const { centeredOption } = this;
|
|
29429
|
+
this.clearScrollEndTimeout();
|
|
29430
|
+
this.stopWatchingForOutsidePress();
|
|
29431
|
+
this.isUserScroll = false;
|
|
29432
|
+
this.isScrolling = false;
|
|
29433
|
+
this.updateValueTextOnScroll = true;
|
|
29434
|
+
this.enableHaptics && hapticSelectionEnd();
|
|
29435
|
+
/**
|
|
29436
|
+
* Certain tasks (such as those that
|
|
29437
|
+
* cause re-renders) should only be done
|
|
29438
|
+
* once scrolling has finished, otherwise
|
|
29439
|
+
* flickering may occur.
|
|
29440
|
+
*/
|
|
29441
|
+
const { scrollEndCallback } = this;
|
|
29442
|
+
if (scrollEndCallback) {
|
|
29443
|
+
scrollEndCallback();
|
|
29444
|
+
this.scrollEndCallback = undefined;
|
|
29445
|
+
}
|
|
29446
|
+
/**
|
|
29447
|
+
* Reset this flag as the
|
|
29448
|
+
* next scroll interaction could
|
|
29449
|
+
* be a scroll from the user. In this
|
|
29450
|
+
* case, we should exit input mode.
|
|
29451
|
+
*/
|
|
29452
|
+
this.canExitInputMode = true;
|
|
29453
|
+
if (centeredOption !== undefined) {
|
|
29454
|
+
// Cleared here so a later scroll that centers nothing cannot fall back on it.
|
|
29455
|
+
this.centeredOption = undefined;
|
|
29456
|
+
if (centeredOption.isConnected) {
|
|
29457
|
+
this.setValue(centeredOption.value);
|
|
29458
|
+
}
|
|
29459
|
+
}
|
|
29460
|
+
};
|
|
29461
|
+
/**
|
|
29462
|
+
* Commits the option the user can see when they press anything outside of the
|
|
29463
|
+
* column during a scroll they started. This runs on pointerdown rather than
|
|
29464
|
+
* click so the value is up to date by the time an application's own click
|
|
29465
|
+
* handler (a Save button, for example) reads it.
|
|
29466
|
+
*/
|
|
29467
|
+
this.onPointerDownOutside = (ev) => {
|
|
29468
|
+
const { centeredOption, parentEl, scrollEl } = this;
|
|
29469
|
+
if (!this.isScrolling) {
|
|
29470
|
+
return;
|
|
29471
|
+
}
|
|
29472
|
+
/**
|
|
29473
|
+
* The column can live in another component's Shadow DOM, where a document
|
|
29474
|
+
* listener sees the target retargeted to the outer host. The composed path
|
|
29475
|
+
* is the only reliable way to tell a press on the column apart.
|
|
29476
|
+
*/
|
|
29477
|
+
const path = ev.composedPath();
|
|
29478
|
+
/**
|
|
29479
|
+
* A press anywhere in the parent picker counts as inside, so reaching for a
|
|
29480
|
+
* sibling wheel leaves this column coasting.
|
|
29481
|
+
*/
|
|
29482
|
+
if (path.includes(this.el) || (parentEl != null && path.includes(parentEl))) {
|
|
29483
|
+
return;
|
|
29484
|
+
}
|
|
29485
|
+
/**
|
|
29486
|
+
* Landing on the centered option halts the in-flight momentum scroll, so the
|
|
29487
|
+
* committed value and the option the user is left looking at agree. The
|
|
29488
|
+
* option list can be replaced mid-scroll, and a detached option has no
|
|
29489
|
+
* offset to center on.
|
|
29490
|
+
*/
|
|
29491
|
+
if (centeredOption !== undefined && centeredOption.isConnected) {
|
|
29492
|
+
this.centerPickerItemInView(centeredOption, false, false);
|
|
29493
|
+
this.haltedAtScrollTop = scrollEl?.scrollTop;
|
|
29494
|
+
}
|
|
29495
|
+
this.settle();
|
|
29496
|
+
};
|
|
29347
29497
|
/**
|
|
29348
29498
|
* When the column scrolls, the component
|
|
29349
29499
|
* needs to determine which item is centered
|
|
@@ -29351,27 +29501,42 @@ class PickerColumn {
|
|
|
29351
29501
|
* the item object.
|
|
29352
29502
|
*/
|
|
29353
29503
|
this.initializeScrollListener = () => {
|
|
29354
|
-
|
|
29355
|
-
* The haptics for the wheel picker are
|
|
29356
|
-
* an iOS-only feature. As a result, they should
|
|
29357
|
-
* be disabled on Android.
|
|
29358
|
-
*/
|
|
29359
|
-
const enableHaptics = isPlatform('ios');
|
|
29504
|
+
this.enableHaptics = isPlatform('ios');
|
|
29360
29505
|
const { el, scrollEl } = this;
|
|
29361
|
-
let timeout;
|
|
29362
29506
|
let activeEl = this.activeItem;
|
|
29363
29507
|
const scrollCallback = () => {
|
|
29364
29508
|
raf(() => {
|
|
29365
|
-
|
|
29509
|
+
/**
|
|
29510
|
+
* This frame cannot be cancelled, and moving the column disconnects it
|
|
29511
|
+
* without the observer reporting a change, so this checks live state.
|
|
29512
|
+
*/
|
|
29513
|
+
if (!this.el.isConnected || !this.isColumnVisible || !scrollEl)
|
|
29366
29514
|
return;
|
|
29367
|
-
|
|
29368
|
-
|
|
29369
|
-
|
|
29515
|
+
const { haltedAtScrollTop } = this;
|
|
29516
|
+
if (haltedAtScrollTop !== undefined) {
|
|
29517
|
+
/**
|
|
29518
|
+
* Still at the halted position, so this frame is the halt landing
|
|
29519
|
+
* rather than the wheel moving, and re-arming would start a second
|
|
29520
|
+
* commit cycle.
|
|
29521
|
+
*/
|
|
29522
|
+
if (Math.abs(scrollEl.scrollTop - haltedAtScrollTop) <= HALT_TOLERANCE)
|
|
29523
|
+
return;
|
|
29524
|
+
this.haltedAtScrollTop = undefined;
|
|
29370
29525
|
}
|
|
29526
|
+
// Armed before the early returns below, so a scroll never ends uncommitted.
|
|
29527
|
+
this.resetScrollEndTimeout();
|
|
29371
29528
|
if (!this.isScrolling) {
|
|
29372
|
-
enableHaptics && hapticSelectionStart();
|
|
29529
|
+
this.enableHaptics && hapticSelectionStart();
|
|
29373
29530
|
this.isScrolling = true;
|
|
29374
29531
|
}
|
|
29532
|
+
/**
|
|
29533
|
+
* Only a user-driven scroll holds an uncommitted selection. Checked every
|
|
29534
|
+
* frame because the user can take hold of the wheel mid-scroll, and
|
|
29535
|
+
* re-adding the same listener is a no-op.
|
|
29536
|
+
*/
|
|
29537
|
+
if (this.isUserScroll) {
|
|
29538
|
+
this.watchForOutsidePress();
|
|
29539
|
+
}
|
|
29375
29540
|
/**
|
|
29376
29541
|
* Select item in the center of the column
|
|
29377
29542
|
* which is the month/year that we want to select
|
|
@@ -29431,18 +29596,23 @@ class PickerColumn {
|
|
|
29431
29596
|
newActiveElement = fallbackActiveElement;
|
|
29432
29597
|
}
|
|
29433
29598
|
}
|
|
29434
|
-
|
|
29435
|
-
|
|
29436
|
-
|
|
29599
|
+
/**
|
|
29600
|
+
* A scroll can land with no selectable option centered, such as an
|
|
29601
|
+
* overscroll bounce briefly centering the empty padding rows. Keep the
|
|
29602
|
+
* current selection until an option is centered again.
|
|
29603
|
+
*/
|
|
29437
29604
|
if (newActiveElement === undefined || newActiveElement.disabled) {
|
|
29438
29605
|
return;
|
|
29439
29606
|
}
|
|
29607
|
+
if (activeEl !== undefined) {
|
|
29608
|
+
this.setPickerItemActiveState(activeEl, false);
|
|
29609
|
+
}
|
|
29440
29610
|
/**
|
|
29441
29611
|
* If we are selecting a new value,
|
|
29442
29612
|
* we need to run haptics again.
|
|
29443
29613
|
*/
|
|
29444
29614
|
if (newActiveElement !== activeEl) {
|
|
29445
|
-
enableHaptics && hapticSelectionChanged();
|
|
29615
|
+
this.enableHaptics && hapticSelectionChanged();
|
|
29446
29616
|
if (this.canExitInputMode) {
|
|
29447
29617
|
/**
|
|
29448
29618
|
* The native iOS wheel picker
|
|
@@ -29474,32 +29644,14 @@ class PickerColumn {
|
|
|
29474
29644
|
if (this.updateValueTextOnScroll) {
|
|
29475
29645
|
this.assistiveFocusable?.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
|
|
29476
29646
|
}
|
|
29477
|
-
|
|
29478
|
-
this.isScrolling = false;
|
|
29479
|
-
this.updateValueTextOnScroll = true;
|
|
29480
|
-
enableHaptics && hapticSelectionEnd();
|
|
29481
|
-
/**
|
|
29482
|
-
* Certain tasks (such as those that
|
|
29483
|
-
* cause re-renders) should only be done
|
|
29484
|
-
* once scrolling has finished, otherwise
|
|
29485
|
-
* flickering may occur.
|
|
29486
|
-
*/
|
|
29487
|
-
const { scrollEndCallback } = this;
|
|
29488
|
-
if (scrollEndCallback) {
|
|
29489
|
-
scrollEndCallback();
|
|
29490
|
-
this.scrollEndCallback = undefined;
|
|
29491
|
-
}
|
|
29492
|
-
/**
|
|
29493
|
-
* Reset this flag as the
|
|
29494
|
-
* next scroll interaction could
|
|
29495
|
-
* be a scroll from the user. In this
|
|
29496
|
-
* case, we should exit input mode.
|
|
29497
|
-
*/
|
|
29498
|
-
this.canExitInputMode = true;
|
|
29499
|
-
this.setValue(newActiveElement.value);
|
|
29500
|
-
}, 250);
|
|
29647
|
+
this.centeredOption = newActiveElement;
|
|
29501
29648
|
});
|
|
29502
29649
|
};
|
|
29650
|
+
const userScrollCallback = () => {
|
|
29651
|
+
this.isUserScroll = true;
|
|
29652
|
+
// Taking hold of the wheel ends the halt even if it has not moved yet.
|
|
29653
|
+
this.haltedAtScrollTop = undefined;
|
|
29654
|
+
};
|
|
29503
29655
|
/**
|
|
29504
29656
|
* Wrap this in an raf so that the scroll callback
|
|
29505
29657
|
* does not fire when component is initially shown.
|
|
@@ -29508,8 +29660,19 @@ class PickerColumn {
|
|
|
29508
29660
|
if (!scrollEl)
|
|
29509
29661
|
return;
|
|
29510
29662
|
scrollEl.addEventListener('scroll', scrollCallback);
|
|
29663
|
+
scrollEl.addEventListener('pointerdown', userScrollCallback);
|
|
29664
|
+
scrollEl.addEventListener('wheel', userScrollCallback, { passive: true });
|
|
29665
|
+
/**
|
|
29666
|
+
* A `pointerdown` fires once per touch, so a drag that pauses long enough
|
|
29667
|
+
* to commit would look like a scroll the column started. A `touchmove`
|
|
29668
|
+
* keeps arriving while the finger moves.
|
|
29669
|
+
*/
|
|
29670
|
+
scrollEl.addEventListener('touchmove', userScrollCallback, { passive: true });
|
|
29511
29671
|
this.destroyScrollListener = () => {
|
|
29512
29672
|
scrollEl.removeEventListener('scroll', scrollCallback);
|
|
29673
|
+
scrollEl.removeEventListener('pointerdown', userScrollCallback);
|
|
29674
|
+
scrollEl.removeEventListener('wheel', userScrollCallback);
|
|
29675
|
+
scrollEl.removeEventListener('touchmove', userScrollCallback);
|
|
29513
29676
|
};
|
|
29514
29677
|
});
|
|
29515
29678
|
};
|
|
@@ -29692,6 +29855,14 @@ class PickerColumn {
|
|
|
29692
29855
|
}
|
|
29693
29856
|
else {
|
|
29694
29857
|
this.isColumnVisible = false;
|
|
29858
|
+
/**
|
|
29859
|
+
* The pending timer still runs so it resets the scroll state, but the
|
|
29860
|
+
* option it would have committed is dropped. A column the user cannot
|
|
29861
|
+
* see should not change its value.
|
|
29862
|
+
*/
|
|
29863
|
+
this.stopWatchingForOutsidePress();
|
|
29864
|
+
this.centeredOption = undefined;
|
|
29865
|
+
this.haltedAtScrollTop = undefined;
|
|
29695
29866
|
if (this.destroyScrollListener) {
|
|
29696
29867
|
this.destroyScrollListener();
|
|
29697
29868
|
this.destroyScrollListener = undefined;
|
|
@@ -29762,6 +29933,13 @@ class PickerColumn {
|
|
|
29762
29933
|
connectedCallback() {
|
|
29763
29934
|
this.ariaLabel = this.el.getAttribute('aria-label') ?? 'Select a value';
|
|
29764
29935
|
}
|
|
29936
|
+
disconnectedCallback() {
|
|
29937
|
+
/**
|
|
29938
|
+
* A pending settle would otherwise commit a value on a column that is no
|
|
29939
|
+
* longer in the DOM.
|
|
29940
|
+
*/
|
|
29941
|
+
this.discardScroll();
|
|
29942
|
+
}
|
|
29765
29943
|
get activeItem() {
|
|
29766
29944
|
const { value } = this;
|
|
29767
29945
|
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
@@ -29779,14 +29957,14 @@ class PickerColumn {
|
|
|
29779
29957
|
render() {
|
|
29780
29958
|
const { color, disabled, isActive, numericInput } = this;
|
|
29781
29959
|
const mode = getIonMode$1(this);
|
|
29782
|
-
return (hAsync(Host, { key: '
|
|
29960
|
+
return (hAsync(Host, { key: '60a893619d0b01fba53fbccef67a10d533a22657', class: createColorClasses$1(color, {
|
|
29783
29961
|
[mode]: true,
|
|
29784
29962
|
['picker-column-active']: isActive,
|
|
29785
29963
|
['picker-column-numeric-input']: numericInput,
|
|
29786
29964
|
['picker-column-disabled']: disabled,
|
|
29787
|
-
}) }, hAsync("slot", { key: '
|
|
29965
|
+
}) }, hAsync("slot", { key: '79f1e047f89c5ec916ed02efaac56ef3f73b8969', name: "prefix" }), hAsync("div", { key: 'c45c86e88353a196ff38159f40f390bc27852c9e', class: "picker-opts", ref: (el) => {
|
|
29788
29966
|
this.scrollEl = el;
|
|
29789
|
-
}, role: "slider", tabindex: this.disabled ? undefined : 0, "aria-label": this.ariaLabel, "aria-valuemin": 0, "aria-valuemax": 0, "aria-valuenow": 0, "aria-valuetext": this.getOptionValueText(this.activeItem), "aria-orientation": "vertical", onKeyDown: (ev) => this.onKeyDown(ev) }, hAsync("div", { key: '
|
|
29967
|
+
}, 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: 'e02d76752f5d3dd4cd2846fbc28645f1508a4b49', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'd577bcbadc530970b2781692b050811633625c5a', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'c89e78c3a896bc1f55b922d01df16fdbb1259bdd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("slot", { key: '6c597ff899692597432ee2aa0b42de53b86deed4' }), hAsync("div", { key: '91686ed94f14c47647836ed4d63e54b5c54ee3b9', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: '2ff058c6d0e8cef4e143c2d848f9a52684579af1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), hAsync("div", { key: 'bc7386bec6fced36e44084a7a137b3fe6506c996', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), hAsync("slot", { key: '8835fd3f4e025bce964e6f05984c9aaadc20d7fb', name: "suffix" })));
|
|
29790
29968
|
}
|
|
29791
29969
|
get el() { return getElement(this); }
|
|
29792
29970
|
static get watchers() { return {
|
|
@@ -29818,6 +29996,19 @@ class PickerColumn {
|
|
|
29818
29996
|
}; }
|
|
29819
29997
|
}
|
|
29820
29998
|
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
29999
|
+
/**
|
|
30000
|
+
* How long the column must be idle before the centered option is treated as
|
|
30001
|
+
* the user's selection. Replaceable by the `scrollend` event once that is
|
|
30002
|
+
* supported everywhere (https://caniuse.com/?search=scrollend).
|
|
30003
|
+
*/
|
|
30004
|
+
const SCROLL_END_DELAY = 250;
|
|
30005
|
+
/**
|
|
30006
|
+
* How far, in pixels, the column may report from where it was halted and still
|
|
30007
|
+
* count as having stayed there. Centering targets a position between two snap
|
|
30008
|
+
* points, so mandatory snapping corrects it by half the column height less
|
|
30009
|
+
* three option heights: 2px at the default sizes.
|
|
30010
|
+
*/
|
|
30011
|
+
const HALT_TOLERANCE = 2;
|
|
29821
30012
|
|
|
29822
30013
|
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}`;
|
|
29823
30014
|
|
|
@@ -37275,11 +37466,6 @@ class SegmentButton {
|
|
|
37275
37466
|
addEventListener$1(segmentEl, 'ionSelect', this.updateState);
|
|
37276
37467
|
addEventListener$1(segmentEl, 'ionStyle', this.updateStyle);
|
|
37277
37468
|
}
|
|
37278
|
-
// Prevent buttons from being disabled when associated with segment content
|
|
37279
|
-
if (this.contentId && this.disabled) {
|
|
37280
|
-
printIonWarning(`[ion-segment-button] - Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
|
|
37281
|
-
this.disabled = false;
|
|
37282
|
-
}
|
|
37283
37469
|
}
|
|
37284
37470
|
disconnectedCallback() {
|
|
37285
37471
|
const segmentEl = this.segmentEl;
|
|
@@ -37296,6 +37482,15 @@ class SegmentButton {
|
|
|
37296
37482
|
// Return if there is no contentId defined
|
|
37297
37483
|
if (!this.contentId)
|
|
37298
37484
|
return;
|
|
37485
|
+
/**
|
|
37486
|
+
* Checked here rather than in `connectedCallback` so frameworks that assign element
|
|
37487
|
+
* props after inserting the element have set `disabled` by now. A disabled ion-segment
|
|
37488
|
+
* pushes that onto its buttons too, which this guard should not undo.
|
|
37489
|
+
*/
|
|
37490
|
+
if (this.disabled && this.segmentEl?.disabled !== true) {
|
|
37491
|
+
printIonWarning(`[ion-segment-button] - Segment buttons cannot be disabled when associated with an <ion-segment-content>.`);
|
|
37492
|
+
this.disabled = false;
|
|
37493
|
+
}
|
|
37299
37494
|
// Attempt to find the Segment Content by its contentId
|
|
37300
37495
|
const segmentContent = document.getElementById(this.contentId);
|
|
37301
37496
|
// If no associated Segment Content exists, log an error and return
|
|
@@ -37330,7 +37525,7 @@ class SegmentButton {
|
|
|
37330
37525
|
const { checked, type, disabled, hasIcon, hasLabel, layout, segmentEl } = this;
|
|
37331
37526
|
const mode = getIonMode$1(this);
|
|
37332
37527
|
const hasSegmentColor = () => segmentEl?.color !== undefined;
|
|
37333
|
-
return (hAsync(Host, { key: '
|
|
37528
|
+
return (hAsync(Host, { key: 'd8acc71d87e26b32f20b2d0f9a6acc9f0dab0dee', class: {
|
|
37334
37529
|
[mode]: true,
|
|
37335
37530
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
37336
37531
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
@@ -37346,7 +37541,7 @@ class SegmentButton {
|
|
|
37346
37541
|
'ion-activatable': true,
|
|
37347
37542
|
'ion-activatable-instant': true,
|
|
37348
37543
|
'ion-focusable': true,
|
|
37349
|
-
} }, hAsync("button", { key: '
|
|
37544
|
+
} }, hAsync("button", { key: 'ce65da07b1a012bce353b3c6c24eecfbd4071d54', "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: '6c4b4dcd20e407e5dc31674bea23633d8a09187a', class: "button-inner" }, hAsync("slot", { key: '817145ae77a3c5ada88ab95723d881f1bde96b2a' })), mode === 'md' && hAsync("ion-ripple-effect", { key: '054d7e5e2a13013914fac6bbde8efdb28d9b459e' })), hAsync("div", { key: 'c48074881a302510ad4752eeb9383222cd3a54cb', part: "indicator", class: "segment-button-indicator segment-button-indicator-animated" }, hAsync("div", { key: '7672a6b10ee18ad026b798fbd8207dc3cd5683f9', part: "indicator-background", class: "segment-button-indicator-background" }))));
|
|
37350
37545
|
}
|
|
37351
37546
|
get el() { return getElement(this); }
|
|
37352
37547
|
static get watchers() { return {
|
|
@@ -38390,7 +38585,7 @@ class Select {
|
|
|
38390
38585
|
const hasOutlineFill = mode === 'md' && fill === 'outline';
|
|
38391
38586
|
renderHiddenInput(true, el, name, parseValue(value), disabled);
|
|
38392
38587
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || isExpanded));
|
|
38393
|
-
return (hAsync(Host, { key: '
|
|
38588
|
+
return (hAsync(Host, { key: 'b2f161e3706e139e61440cd13e162714b1b75d72', onClick: this.onClick, class: createColorClasses$1(this.color, {
|
|
38394
38589
|
[mode]: true,
|
|
38395
38590
|
'in-item': inItem,
|
|
38396
38591
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -38408,7 +38603,7 @@ class Select {
|
|
|
38408
38603
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
38409
38604
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
38410
38605
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
38411
|
-
}) }, hAsync("label", { key: '
|
|
38606
|
+
}) }, hAsync("label", { key: '944a2eb468154a21260d181fdaf67828a71eb902', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, hasOutlineFill && this.renderOutlineContainer(), hAsync("div", { key: '927200c53548b1bb4f52d6a167605b724a7b7d0d', class: "select-start", part: "start", ref: (el) => (this.startContainerEl = el) }, hAsync("slot", { key: '6e14b95e9b95c116b16744d630600e90977782bc', name: "start" })), hAsync("div", { key: '8451ed4300ac005963075be36a04ea8763bc0fdd', class: "select-control", part: "control" }, this.renderLabel(), hAsync("div", { key: '207e7b63f3224a4870579365ac992da6784fb31f', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox(), !hasFloatingOrStackedLabel && this.renderSelectIcon())), hAsync("div", { key: '5c17367d488db4d570f31b25e33560efa9011500', class: "select-end", part: "end" }, hasFloatingOrStackedLabel && this.renderSelectIcon(), hAsync("slot", { key: '21fd8c0d9bee8cffef9ef6984cacd31e8f38211c', name: "end" })), shouldRenderHighlight && hAsync("div", { key: '1fff767db9a1ec07b274ef65ff7ae8fb976e6ad2', class: "select-highlight" })), this.renderBottomContent()));
|
|
38412
38607
|
}
|
|
38413
38608
|
get el() { return getElement(this); }
|
|
38414
38609
|
static get watchers() { return {
|
|
@@ -38517,29 +38712,14 @@ const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
|
38517
38712
|
return getOptionContent(selectOpt, undefined, true);
|
|
38518
38713
|
}
|
|
38519
38714
|
/**
|
|
38520
|
-
*
|
|
38521
|
-
*
|
|
38522
|
-
* the
|
|
38715
|
+
* Every text-only context reads only the default slot, so the start
|
|
38716
|
+
* and end slots stay out of the `aria-label` and the overlay labels.
|
|
38717
|
+
* Both config paths derive that text through the same helper, so they
|
|
38718
|
+
* cannot disagree about what an option's text is. `null` marks an
|
|
38719
|
+
* option with no text, which is dropped from the joined text of a
|
|
38720
|
+
* `multiple` select rather than joined in as an empty entry.
|
|
38523
38721
|
*/
|
|
38524
|
-
|
|
38525
|
-
const content = getOptionContent(selectOpt);
|
|
38526
|
-
if (typeof content === 'string') {
|
|
38527
|
-
return content;
|
|
38528
|
-
}
|
|
38529
|
-
/**
|
|
38530
|
-
* Elements were found in the default slot, extract and concatenate
|
|
38531
|
-
* their text content while trimming whitespace.
|
|
38532
|
-
*/
|
|
38533
|
-
if (content) {
|
|
38534
|
-
const texts = Array.from(content.childNodes)
|
|
38535
|
-
.map((n) => n.textContent?.trim())
|
|
38536
|
-
.filter((t) => t);
|
|
38537
|
-
return texts.join(' ') || null;
|
|
38538
|
-
}
|
|
38539
|
-
// Empty option
|
|
38540
|
-
return null;
|
|
38541
|
-
}
|
|
38542
|
-
return getDefaultSlotPlainText(selectOpt);
|
|
38722
|
+
return getDefaultSlotPlainText(selectOpt) || null;
|
|
38543
38723
|
};
|
|
38544
38724
|
/**
|
|
38545
38725
|
* Trims whitespace from all text nodes within a DOM tree.
|
|
@@ -38595,9 +38775,13 @@ const getOptionContent = (option, slotName, useHTML = false) => {
|
|
|
38595
38775
|
if (nodes.length === 0) {
|
|
38596
38776
|
return null;
|
|
38597
38777
|
}
|
|
38598
|
-
|
|
38778
|
+
/**
|
|
38779
|
+
* Return plain text if no elements are found. This reads the option the
|
|
38780
|
+
* same way the non-custom-HTML path does, so the two do not disagree
|
|
38781
|
+
* about what an option's text is.
|
|
38782
|
+
*/
|
|
38599
38783
|
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
38600
|
-
return
|
|
38784
|
+
return getDefaultSlotPlainText(option) || null;
|
|
38601
38785
|
}
|
|
38602
38786
|
/**
|
|
38603
38787
|
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
@@ -38653,22 +38837,43 @@ const getOptionDefaultSlot = (option) => {
|
|
|
38653
38837
|
}
|
|
38654
38838
|
return defaultSlotNodes;
|
|
38655
38839
|
};
|
|
38840
|
+
/**
|
|
38841
|
+
* Concatenates the text a node renders, skipping the subtrees of tags
|
|
38842
|
+
* whose contents the browser never paints (`script`, `style`, and the
|
|
38843
|
+
* rest of `blockedTags`). `textContent` includes those, so reading it
|
|
38844
|
+
* directly would put stylesheet or script source into the select text
|
|
38845
|
+
* and the `aria-label`.
|
|
38846
|
+
*
|
|
38847
|
+
* @param node - The node to read text from.
|
|
38848
|
+
* @returns The node's rendered text.
|
|
38849
|
+
*/
|
|
38850
|
+
const getRenderedTextContent = (node) => {
|
|
38851
|
+
if (node.nodeType === Node.TEXT_NODE) {
|
|
38852
|
+
return node.textContent ?? '';
|
|
38853
|
+
}
|
|
38854
|
+
if (node.nodeType !== Node.ELEMENT_NODE) {
|
|
38855
|
+
return '';
|
|
38856
|
+
}
|
|
38857
|
+
if (blockedTags.includes(node.tagName.toLowerCase())) {
|
|
38858
|
+
return '';
|
|
38859
|
+
}
|
|
38860
|
+
return Array.from(node.childNodes)
|
|
38861
|
+
.map((child) => getRenderedTextContent(child))
|
|
38862
|
+
.join('');
|
|
38863
|
+
};
|
|
38656
38864
|
/**
|
|
38657
38865
|
* Extracts plain text from only the default slot of an option,
|
|
38658
|
-
* excluding content assigned to named slots (start/end).
|
|
38866
|
+
* excluding content assigned to named slots (start/end). Text is
|
|
38867
|
+
* concatenated with no separator and collapsible whitespace is
|
|
38868
|
+
* collapsed, approximating how the browser renders the option.
|
|
38869
|
+
* NBSP is not collapsible, so it is preserved.
|
|
38870
|
+
*
|
|
38871
|
+
* @param option - The `ion-select-option` element to read text from.
|
|
38872
|
+
* @returns The option's default slot text.
|
|
38659
38873
|
*/
|
|
38660
38874
|
const getDefaultSlotPlainText = (option) => {
|
|
38661
|
-
const
|
|
38662
|
-
|
|
38663
|
-
if (node.nodeType === Node.ELEMENT_NODE) {
|
|
38664
|
-
return !node.hasAttribute('slot');
|
|
38665
|
-
}
|
|
38666
|
-
return node.nodeType === Node.TEXT_NODE;
|
|
38667
|
-
})
|
|
38668
|
-
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
38669
|
-
.map((n) => n.textContent?.trim())
|
|
38670
|
-
.filter((t) => t);
|
|
38671
|
-
return texts.join(' ');
|
|
38875
|
+
const text = (getOptionDefaultSlot(option) ?? []).map((node) => getRenderedTextContent(node)).join('');
|
|
38876
|
+
return text.replace(/[ \t\n\r\f]+/g, ' ').replace(/^[ \t\n\r\f]+|[ \t\n\r\f]+$/g, '');
|
|
38672
38877
|
};
|
|
38673
38878
|
/**
|
|
38674
38879
|
* Extracts the rich content from an `ion-select-option`.
|
|
@@ -42744,7 +42949,7 @@ var NAMESPACE = (
|
|
|
42744
42949
|
);
|
|
42745
42950
|
|
|
42746
42951
|
/*
|
|
42747
|
-
Stencil Hydrate Runner v4.
|
|
42952
|
+
Stencil Hydrate Runner v4.44.1 | MIT Licensed | https://stenciljs.com
|
|
42748
42953
|
*/
|
|
42749
42954
|
var __create = Object.create;
|
|
42750
42955
|
var __defProp = Object.defineProperty;
|