@ionic/core 9.0.1-nightly.20260821 → 9.0.1-nightly.20260824
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-DGwySvgi.js → p-D6dNJoqU.js} +1 -1
- package/components/{p-e8f0KKOJ.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-C3QTG7as.js → p-Dcxr2vKX.js} +1 -1
- package/components/{p-CmpstNYe.js → p-DkEb3SCT.js} +1 -1
- package/components/p-Dr-rBSUW.js +4 -0
- package/components/{p-CrzR7nZk.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-D4T0SA6Q.js → index-BocV_y-c.js} +1 -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 +4 -4
- 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 +3 -3
- package/dist/cjs/ion-select-modal.cjs.entry.js +8 -8
- package/dist/cjs/ion-select_3.cjs.entry.js +9 -9
- 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-CgnqHkpg.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/picker-column/picker-column.js +207 -43
- 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-D3o-MD4_.js → index-JgU5uTSY.js} +1 -1
- 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 +4 -4
- 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 +3 -3
- package/dist/esm/ion-select-modal.entry.js +8 -8
- package/dist/esm/ion-select_3.entry.js +9 -9
- 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-Dv7KImop.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-5b906fd6.entry.js → p-326e0d05.entry.js} +1 -1
- 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-8edf9c85.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-a389f473.entry.js → p-4dcd329a.entry.js} +1 -1
- 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-bdb4c7e5.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-c91501b7.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-0a9d2de8.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-eeabd236.entry.js → p-8d72244b.entry.js} +1 -1
- package/dist/ionic/{p-c075e3e4.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-fVT-pm3r.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-29970df5.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-f7dd1ed9.entry.js → p-eab77a74.entry.js} +1 -1
- 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 +260 -67
- package/hydrate/index.mjs +260 -67
- 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-BE48ZNam.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-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-49b9d405.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-BfiwBb5h.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
|
@@ -20,6 +20,12 @@ export class PickerColumn {
|
|
|
20
20
|
this.isColumnVisible = false;
|
|
21
21
|
this.canExitInputMode = true;
|
|
22
22
|
this.updateValueTextOnScroll = false;
|
|
23
|
+
this.isUserScroll = false;
|
|
24
|
+
/**
|
|
25
|
+
* The haptics for the wheel picker are an iOS-only feature. As a result,
|
|
26
|
+
* they should be disabled on Android.
|
|
27
|
+
*/
|
|
28
|
+
this.enableHaptics = false;
|
|
23
29
|
this.ariaLabel = null;
|
|
24
30
|
this.isActive = false;
|
|
25
31
|
/**
|
|
@@ -51,6 +57,12 @@ export class PickerColumn {
|
|
|
51
57
|
*/
|
|
52
58
|
this.canExitInputMode = canExitInputMode;
|
|
53
59
|
this.updateValueTextOnScroll = false;
|
|
60
|
+
/**
|
|
61
|
+
* This scroll takes over from whatever the user was doing, so an outside
|
|
62
|
+
* press must not commit an option the column is only passing through.
|
|
63
|
+
*/
|
|
64
|
+
this.isUserScroll = false;
|
|
65
|
+
this.stopWatchingForOutsidePress();
|
|
54
66
|
scrollEl.scroll({
|
|
55
67
|
top,
|
|
56
68
|
left: 0,
|
|
@@ -105,6 +117,117 @@ export class PickerColumn {
|
|
|
105
117
|
}
|
|
106
118
|
this.isActive = state;
|
|
107
119
|
};
|
|
120
|
+
this.clearScrollEndTimeout = () => {
|
|
121
|
+
if (this.scrollEndTimeout) {
|
|
122
|
+
clearTimeout(this.scrollEndTimeout);
|
|
123
|
+
this.scrollEndTimeout = undefined;
|
|
124
|
+
}
|
|
125
|
+
};
|
|
126
|
+
/**
|
|
127
|
+
* Resets the idle timer that commits the centered option.
|
|
128
|
+
*/
|
|
129
|
+
this.resetScrollEndTimeout = () => {
|
|
130
|
+
this.clearScrollEndTimeout();
|
|
131
|
+
this.scrollEndTimeout = setTimeout(this.settle, SCROLL_END_DELAY);
|
|
132
|
+
};
|
|
133
|
+
/**
|
|
134
|
+
* Capture so the column still commits if an application's own pointerdown
|
|
135
|
+
* handler stops the event before it reaches the document.
|
|
136
|
+
*/
|
|
137
|
+
this.watchForOutsidePress = () => {
|
|
138
|
+
doc?.addEventListener('pointerdown', this.onPointerDownOutside, { capture: true });
|
|
139
|
+
};
|
|
140
|
+
this.stopWatchingForOutsidePress = () => {
|
|
141
|
+
doc?.removeEventListener('pointerdown', this.onPointerDownOutside, { capture: true });
|
|
142
|
+
};
|
|
143
|
+
/**
|
|
144
|
+
* Resets everything the current scroll interaction is holding, so nothing
|
|
145
|
+
* pending on it can commit later.
|
|
146
|
+
*/
|
|
147
|
+
this.discardScroll = () => {
|
|
148
|
+
this.stopWatchingForOutsidePress();
|
|
149
|
+
this.clearScrollEndTimeout();
|
|
150
|
+
this.scrollEndCallback = undefined;
|
|
151
|
+
this.centeredOption = undefined;
|
|
152
|
+
this.haltedAtScrollTop = undefined;
|
|
153
|
+
this.isScrolling = false;
|
|
154
|
+
this.isUserScroll = false;
|
|
155
|
+
this.canExitInputMode = true;
|
|
156
|
+
};
|
|
157
|
+
/**
|
|
158
|
+
* Commits the option that is currently centered under the highlight and ends
|
|
159
|
+
* the scroll interaction.
|
|
160
|
+
*/
|
|
161
|
+
this.settle = () => {
|
|
162
|
+
const { centeredOption } = this;
|
|
163
|
+
this.clearScrollEndTimeout();
|
|
164
|
+
this.stopWatchingForOutsidePress();
|
|
165
|
+
this.isUserScroll = false;
|
|
166
|
+
this.isScrolling = false;
|
|
167
|
+
this.updateValueTextOnScroll = true;
|
|
168
|
+
this.enableHaptics && hapticSelectionEnd();
|
|
169
|
+
/**
|
|
170
|
+
* Certain tasks (such as those that
|
|
171
|
+
* cause re-renders) should only be done
|
|
172
|
+
* once scrolling has finished, otherwise
|
|
173
|
+
* flickering may occur.
|
|
174
|
+
*/
|
|
175
|
+
const { scrollEndCallback } = this;
|
|
176
|
+
if (scrollEndCallback) {
|
|
177
|
+
scrollEndCallback();
|
|
178
|
+
this.scrollEndCallback = undefined;
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Reset this flag as the
|
|
182
|
+
* next scroll interaction could
|
|
183
|
+
* be a scroll from the user. In this
|
|
184
|
+
* case, we should exit input mode.
|
|
185
|
+
*/
|
|
186
|
+
this.canExitInputMode = true;
|
|
187
|
+
if (centeredOption !== undefined) {
|
|
188
|
+
// Cleared here so a later scroll that centers nothing cannot fall back on it.
|
|
189
|
+
this.centeredOption = undefined;
|
|
190
|
+
if (centeredOption.isConnected) {
|
|
191
|
+
this.setValue(centeredOption.value);
|
|
192
|
+
}
|
|
193
|
+
}
|
|
194
|
+
};
|
|
195
|
+
/**
|
|
196
|
+
* Commits the option the user can see when they press anything outside of the
|
|
197
|
+
* column during a scroll they started. This runs on pointerdown rather than
|
|
198
|
+
* click so the value is up to date by the time an application's own click
|
|
199
|
+
* handler (a Save button, for example) reads it.
|
|
200
|
+
*/
|
|
201
|
+
this.onPointerDownOutside = (ev) => {
|
|
202
|
+
const { centeredOption, parentEl, scrollEl } = this;
|
|
203
|
+
if (!this.isScrolling) {
|
|
204
|
+
return;
|
|
205
|
+
}
|
|
206
|
+
/**
|
|
207
|
+
* The column can live in another component's Shadow DOM, where a document
|
|
208
|
+
* listener sees the target retargeted to the outer host. The composed path
|
|
209
|
+
* is the only reliable way to tell a press on the column apart.
|
|
210
|
+
*/
|
|
211
|
+
const path = ev.composedPath();
|
|
212
|
+
/**
|
|
213
|
+
* A press anywhere in the parent picker counts as inside, so reaching for a
|
|
214
|
+
* sibling wheel leaves this column coasting.
|
|
215
|
+
*/
|
|
216
|
+
if (path.includes(this.el) || (parentEl != null && path.includes(parentEl))) {
|
|
217
|
+
return;
|
|
218
|
+
}
|
|
219
|
+
/**
|
|
220
|
+
* Landing on the centered option halts the in-flight momentum scroll, so the
|
|
221
|
+
* committed value and the option the user is left looking at agree. The
|
|
222
|
+
* option list can be replaced mid-scroll, and a detached option has no
|
|
223
|
+
* offset to center on.
|
|
224
|
+
*/
|
|
225
|
+
if (centeredOption !== undefined && centeredOption.isConnected) {
|
|
226
|
+
this.centerPickerItemInView(centeredOption, false, false);
|
|
227
|
+
this.haltedAtScrollTop = scrollEl?.scrollTop;
|
|
228
|
+
}
|
|
229
|
+
this.settle();
|
|
230
|
+
};
|
|
108
231
|
/**
|
|
109
232
|
* When the column scrolls, the component
|
|
110
233
|
* needs to determine which item is centered
|
|
@@ -112,27 +235,42 @@ export class PickerColumn {
|
|
|
112
235
|
* the item object.
|
|
113
236
|
*/
|
|
114
237
|
this.initializeScrollListener = () => {
|
|
115
|
-
|
|
116
|
-
* The haptics for the wheel picker are
|
|
117
|
-
* an iOS-only feature. As a result, they should
|
|
118
|
-
* be disabled on Android.
|
|
119
|
-
*/
|
|
120
|
-
const enableHaptics = isPlatform('ios');
|
|
238
|
+
this.enableHaptics = isPlatform('ios');
|
|
121
239
|
const { el, scrollEl } = this;
|
|
122
|
-
let timeout;
|
|
123
240
|
let activeEl = this.activeItem;
|
|
124
241
|
const scrollCallback = () => {
|
|
125
242
|
raf(() => {
|
|
126
|
-
|
|
243
|
+
/**
|
|
244
|
+
* This frame cannot be cancelled, and moving the column disconnects it
|
|
245
|
+
* without the observer reporting a change, so this checks live state.
|
|
246
|
+
*/
|
|
247
|
+
if (!this.el.isConnected || !this.isColumnVisible || !scrollEl)
|
|
127
248
|
return;
|
|
128
|
-
|
|
129
|
-
|
|
130
|
-
|
|
249
|
+
const { haltedAtScrollTop } = this;
|
|
250
|
+
if (haltedAtScrollTop !== undefined) {
|
|
251
|
+
/**
|
|
252
|
+
* Still at the halted position, so this frame is the halt landing
|
|
253
|
+
* rather than the wheel moving, and re-arming would start a second
|
|
254
|
+
* commit cycle.
|
|
255
|
+
*/
|
|
256
|
+
if (Math.abs(scrollEl.scrollTop - haltedAtScrollTop) <= HALT_TOLERANCE)
|
|
257
|
+
return;
|
|
258
|
+
this.haltedAtScrollTop = undefined;
|
|
131
259
|
}
|
|
260
|
+
// Armed before the early returns below, so a scroll never ends uncommitted.
|
|
261
|
+
this.resetScrollEndTimeout();
|
|
132
262
|
if (!this.isScrolling) {
|
|
133
|
-
enableHaptics && hapticSelectionStart();
|
|
263
|
+
this.enableHaptics && hapticSelectionStart();
|
|
134
264
|
this.isScrolling = true;
|
|
135
265
|
}
|
|
266
|
+
/**
|
|
267
|
+
* Only a user-driven scroll holds an uncommitted selection. Checked every
|
|
268
|
+
* frame because the user can take hold of the wheel mid-scroll, and
|
|
269
|
+
* re-adding the same listener is a no-op.
|
|
270
|
+
*/
|
|
271
|
+
if (this.isUserScroll) {
|
|
272
|
+
this.watchForOutsidePress();
|
|
273
|
+
}
|
|
136
274
|
/**
|
|
137
275
|
* Select item in the center of the column
|
|
138
276
|
* which is the month/year that we want to select
|
|
@@ -192,18 +330,23 @@ export class PickerColumn {
|
|
|
192
330
|
newActiveElement = fallbackActiveElement;
|
|
193
331
|
}
|
|
194
332
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
|
|
333
|
+
/**
|
|
334
|
+
* A scroll can land with no selectable option centered, such as an
|
|
335
|
+
* overscroll bounce briefly centering the empty padding rows. Keep the
|
|
336
|
+
* current selection until an option is centered again.
|
|
337
|
+
*/
|
|
198
338
|
if (newActiveElement === undefined || newActiveElement.disabled) {
|
|
199
339
|
return;
|
|
200
340
|
}
|
|
341
|
+
if (activeEl !== undefined) {
|
|
342
|
+
this.setPickerItemActiveState(activeEl, false);
|
|
343
|
+
}
|
|
201
344
|
/**
|
|
202
345
|
* If we are selecting a new value,
|
|
203
346
|
* we need to run haptics again.
|
|
204
347
|
*/
|
|
205
348
|
if (newActiveElement !== activeEl) {
|
|
206
|
-
enableHaptics && hapticSelectionChanged();
|
|
349
|
+
this.enableHaptics && hapticSelectionChanged();
|
|
207
350
|
if (this.canExitInputMode) {
|
|
208
351
|
/**
|
|
209
352
|
* The native iOS wheel picker
|
|
@@ -235,32 +378,14 @@ export class PickerColumn {
|
|
|
235
378
|
if (this.updateValueTextOnScroll) {
|
|
236
379
|
this.assistiveFocusable?.setAttribute('aria-valuetext', this.getOptionValueText(newActiveElement));
|
|
237
380
|
}
|
|
238
|
-
|
|
239
|
-
this.isScrolling = false;
|
|
240
|
-
this.updateValueTextOnScroll = true;
|
|
241
|
-
enableHaptics && hapticSelectionEnd();
|
|
242
|
-
/**
|
|
243
|
-
* Certain tasks (such as those that
|
|
244
|
-
* cause re-renders) should only be done
|
|
245
|
-
* once scrolling has finished, otherwise
|
|
246
|
-
* flickering may occur.
|
|
247
|
-
*/
|
|
248
|
-
const { scrollEndCallback } = this;
|
|
249
|
-
if (scrollEndCallback) {
|
|
250
|
-
scrollEndCallback();
|
|
251
|
-
this.scrollEndCallback = undefined;
|
|
252
|
-
}
|
|
253
|
-
/**
|
|
254
|
-
* Reset this flag as the
|
|
255
|
-
* next scroll interaction could
|
|
256
|
-
* be a scroll from the user. In this
|
|
257
|
-
* case, we should exit input mode.
|
|
258
|
-
*/
|
|
259
|
-
this.canExitInputMode = true;
|
|
260
|
-
this.setValue(newActiveElement.value);
|
|
261
|
-
}, 250);
|
|
381
|
+
this.centeredOption = newActiveElement;
|
|
262
382
|
});
|
|
263
383
|
};
|
|
384
|
+
const userScrollCallback = () => {
|
|
385
|
+
this.isUserScroll = true;
|
|
386
|
+
// Taking hold of the wheel ends the halt even if it has not moved yet.
|
|
387
|
+
this.haltedAtScrollTop = undefined;
|
|
388
|
+
};
|
|
264
389
|
/**
|
|
265
390
|
* Wrap this in an raf so that the scroll callback
|
|
266
391
|
* does not fire when component is initially shown.
|
|
@@ -269,8 +394,19 @@ export class PickerColumn {
|
|
|
269
394
|
if (!scrollEl)
|
|
270
395
|
return;
|
|
271
396
|
scrollEl.addEventListener('scroll', scrollCallback);
|
|
397
|
+
scrollEl.addEventListener('pointerdown', userScrollCallback);
|
|
398
|
+
scrollEl.addEventListener('wheel', userScrollCallback, { passive: true });
|
|
399
|
+
/**
|
|
400
|
+
* A `pointerdown` fires once per touch, so a drag that pauses long enough
|
|
401
|
+
* to commit would look like a scroll the column started. A `touchmove`
|
|
402
|
+
* keeps arriving while the finger moves.
|
|
403
|
+
*/
|
|
404
|
+
scrollEl.addEventListener('touchmove', userScrollCallback, { passive: true });
|
|
272
405
|
this.destroyScrollListener = () => {
|
|
273
406
|
scrollEl.removeEventListener('scroll', scrollCallback);
|
|
407
|
+
scrollEl.removeEventListener('pointerdown', userScrollCallback);
|
|
408
|
+
scrollEl.removeEventListener('wheel', userScrollCallback);
|
|
409
|
+
scrollEl.removeEventListener('touchmove', userScrollCallback);
|
|
274
410
|
};
|
|
275
411
|
});
|
|
276
412
|
};
|
|
@@ -455,6 +591,14 @@ export class PickerColumn {
|
|
|
455
591
|
}
|
|
456
592
|
else {
|
|
457
593
|
this.isColumnVisible = false;
|
|
594
|
+
/**
|
|
595
|
+
* The pending timer still runs so it resets the scroll state, but the
|
|
596
|
+
* option it would have committed is dropped. A column the user cannot
|
|
597
|
+
* see should not change its value.
|
|
598
|
+
*/
|
|
599
|
+
this.stopWatchingForOutsidePress();
|
|
600
|
+
this.centeredOption = undefined;
|
|
601
|
+
this.haltedAtScrollTop = undefined;
|
|
458
602
|
if (this.destroyScrollListener) {
|
|
459
603
|
this.destroyScrollListener();
|
|
460
604
|
this.destroyScrollListener = undefined;
|
|
@@ -525,6 +669,13 @@ export class PickerColumn {
|
|
|
525
669
|
connectedCallback() {
|
|
526
670
|
this.ariaLabel = this.el.getAttribute('aria-label') ?? 'Select a value';
|
|
527
671
|
}
|
|
672
|
+
disconnectedCallback() {
|
|
673
|
+
/**
|
|
674
|
+
* A pending settle would otherwise commit a value on a column that is no
|
|
675
|
+
* longer in the DOM.
|
|
676
|
+
*/
|
|
677
|
+
this.discardScroll();
|
|
678
|
+
}
|
|
528
679
|
get activeItem() {
|
|
529
680
|
const { value } = this;
|
|
530
681
|
const options = Array.from(this.el.querySelectorAll('ion-picker-column-option'));
|
|
@@ -542,14 +693,14 @@ export class PickerColumn {
|
|
|
542
693
|
render() {
|
|
543
694
|
const { color, disabled, isActive, numericInput } = this;
|
|
544
695
|
const mode = getIonMode(this);
|
|
545
|
-
return (h(Host, { key: '
|
|
696
|
+
return (h(Host, { key: '60a893619d0b01fba53fbccef67a10d533a22657', class: createColorClasses(color, {
|
|
546
697
|
[mode]: true,
|
|
547
698
|
['picker-column-active']: isActive,
|
|
548
699
|
['picker-column-numeric-input']: numericInput,
|
|
549
700
|
['picker-column-disabled']: disabled,
|
|
550
|
-
}) }, h("slot", { key: '
|
|
701
|
+
}) }, h("slot", { key: '79f1e047f89c5ec916ed02efaac56ef3f73b8969', name: "prefix" }), h("div", { key: 'c45c86e88353a196ff38159f40f390bc27852c9e', class: "picker-opts", ref: (el) => {
|
|
551
702
|
this.scrollEl = el;
|
|
552
|
-
}, 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) }, h("div", { key: '
|
|
703
|
+
}, 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) }, h("div", { key: 'e02d76752f5d3dd4cd2846fbc28645f1508a4b49', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'd577bcbadc530970b2781692b050811633625c5a', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'c89e78c3a896bc1f55b922d01df16fdbb1259bdd', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("slot", { key: '6c597ff899692597432ee2aa0b42de53b86deed4' }), h("div", { key: '91686ed94f14c47647836ed4d63e54b5c54ee3b9', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: '2ff058c6d0e8cef4e143c2d848f9a52684579af1', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0"), h("div", { key: 'bc7386bec6fced36e44084a7a137b3fe6506c996', class: "picker-item-empty", "aria-hidden": "true" }, "\u00A0")), h("slot", { key: '8835fd3f4e025bce964e6f05984c9aaadc20d7fb', name: "suffix" })));
|
|
553
704
|
}
|
|
554
705
|
static get is() { return "ion-picker-column"; }
|
|
555
706
|
static get encapsulation() { return "shadow"; }
|
|
@@ -773,3 +924,16 @@ export class PickerColumn {
|
|
|
773
924
|
}
|
|
774
925
|
}
|
|
775
926
|
const PICKER_ITEM_ACTIVE_CLASS = 'option-active';
|
|
927
|
+
/**
|
|
928
|
+
* How long the column must be idle before the centered option is treated as
|
|
929
|
+
* the user's selection. Replaceable by the `scrollend` event once that is
|
|
930
|
+
* supported everywhere (https://caniuse.com/?search=scrollend).
|
|
931
|
+
*/
|
|
932
|
+
const SCROLL_END_DELAY = 250;
|
|
933
|
+
/**
|
|
934
|
+
* How far, in pixels, the column may report from where it was halted and still
|
|
935
|
+
* count as having stayed there. Centering targets a position between two snap
|
|
936
|
+
* points, so mandatory snapping corrects it by half the column height less
|
|
937
|
+
* three option heights: 2px at the default sizes.
|
|
938
|
+
*/
|
|
939
|
+
const HALT_TOLERANCE = 2;
|