voyager-ionic-core 9.0.6 → 9.0.9
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-D0jSx7rE.js → p--cshUOAU.js} +1 -1
- package/components/{p-DSmHJ2DH.js → p-7KepMw9O.js} +1 -1
- package/components/p-B-5Z9djt.js +4 -0
- package/components/p-B02CcbPD.js +4 -0
- package/components/{p-DlUdjUlf.js → p-B4IBdPVJ.js} +1 -1
- package/components/{p-BLjEwM6v.js → p-BMHdI-wb.js} +1 -1
- package/components/{p-CAQG0btC.js → p-BODcC-C0.js} +1 -1
- package/components/{p-Canp1qah.js → p-Ba9_OzSY.js} +1 -1
- package/components/{p-CJgshb3W.js → p-Bd8hg9FK.js} +1 -1
- package/components/{p-CHHkdXfP.js → p-BqyLLYLm.js} +1 -1
- package/components/{p-C_NQIzjP.js → p-C1AxSUnp.js} +1 -1
- package/components/{p-BinR4_P7.js → p-CKTjkpAq.js} +1 -1
- package/components/{p-y7Nhe3de.js → p-CKiqp4Vl.js} +1 -1
- package/components/{p-CiXOsJF2.js → p-CONpe3oX.js} +1 -1
- package/components/{p-BSJriPuC.js → p-CW84OFQa.js} +1 -1
- package/components/{p-PPagT42x.js → p-CYctYy9B.js} +1 -1
- package/components/{p-CvzE7FFp.js → p-C_gnmBt2.js} +1 -1
- package/components/{p-C9ioHZq-.js → p-CdrNHfZl.js} +1 -1
- package/components/{p-Dlr7b3_2.js → p-ChkSQqfP.js} +1 -1
- package/components/{p-LH1I_Zhd.js → p-ChsJlFCQ.js} +1 -1
- package/components/{p-DGUed0uX.js → p-CjPRDxby.js} +1 -1
- package/components/p-CohRJRIu.js +4 -0
- package/components/{p-BrOSQhkA.js → p-CqvARtmt.js} +1 -1
- package/components/p-Ct2aBEue.js +4 -0
- package/components/{p-6sKRBFnK.js → p-CvyvLbPe.js} +1 -1
- package/components/{p-C7rB-0-1.js → p-CwEis84J.js} +1 -1
- package/components/p-CxEV3Vwy.js +4 -0
- package/components/p-Cyajikho.js +4 -0
- package/components/{p-BKxLivx4.js → p-D0nwlsl_.js} +1 -1
- package/components/{p-CXy2v7GI.js → p-DBtFJlTi.js} +1 -1
- package/components/p-DD92Fw3n.js +4 -0
- package/components/{p-DM2jMsSO.js → p-DDI6VLW9.js} +1 -1
- package/components/{p-DWGgvN5e.js → p-DHo45oj7.js} +1 -1
- package/{dist/ionic/p-Bv-6401R.js → components/p-Dbi3KqKm.js} +1 -1
- package/components/p-DfDIY2oP.js +4 -0
- package/components/{p-CTUMJM0R.js → p-Drpw2dyl.js} +1 -1
- package/components/{p-T2dnrBya.js → p-GpqwNbxf.js} +1 -1
- package/components/{p-BEiYs-sz.js → p-HthJZjZ6.js} +1 -1
- package/components/p-IQN1T5zw.js +4 -0
- package/components/{p-B_tZQKpS.js → p-KbMCbGRA.js} +1 -1
- package/components/p-ODGeXc3M.js +4 -0
- package/components/p-R4UxBukQ.js +4 -0
- package/components/p-SHHIB5F0.js +4 -0
- package/components/{p-B8HBLiYi.js → p-V1THdfzs.js} +1 -1
- package/components/{p-D4NOsSCE.js → p-YNnH1_Hs.js} +1 -1
- package/components/{p-RJT5zTbD.js → p-ZrYBjOcc.js} +1 -1
- package/components/{p-eJpG4UbM.js → p-_y7kwBO8.js} +1 -1
- package/components/{p-CiFFeRH9.js → p-hLu-eIbb.js} +1 -1
- package/components/{p-CQjNc-Pz.js → p-jsVMT15X.js} +1 -1
- package/components/{p-CzykzqAO.js → p-r59A3wQk.js} +1 -1
- package/components/{p-DPyjiKOq.js → p-yGD6MBgf.js} +1 -1
- package/components/p-zQi7R3tS.js +4 -0
- package/css/core.css.map +1 -1
- package/css/display.css.map +1 -1
- package/css/flex-utils.css.map +1 -1
- package/css/float-elements.css +1 -1
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/padding.css.map +1 -1
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +1 -1
- package/css/utils.bundle.css.map +1 -1
- package/dist/cjs/{animation-BFKyYY11.js → animation-DcgLg_PI.js} +2 -2
- package/dist/cjs/{app-globals-BLTzqkrC.js → app-globals-BoFCZq0K.js} +1 -1
- package/dist/cjs/{attribute-controller-CXIeB0Mn.js → attribute-controller-BjTE2TOf.js} +1 -1
- package/dist/cjs/{button-active-CEQaiV9N.js → button-active-FdsfRDY_.js} +2 -2
- package/dist/cjs/{capacitor-BMzmHhwe.js → capacitor-C6Pp4Z7A.js} +1 -1
- package/dist/cjs/{format-CdRlDqPs.js → format-CVjpvAl1.js} +1 -1
- package/dist/cjs/{framework-delegate-DTLbqaaO.js → framework-delegate-JbKIVMzR.js} +1 -1
- package/dist/cjs/{haptic-CJVUv_GB.js → haptic--4QteuuM.js} +1 -1
- package/dist/cjs/{helpers-Crluoxqu.js → helpers-Cqr69qxA.js} +1 -1
- package/dist/cjs/{index-BSD7toMO.js → index-B4ONUQRp.js} +1 -1
- package/dist/cjs/{index-BKpybYNI.js → index-BQpSekmz.js} +2 -2
- package/dist/cjs/{index-CElfU-dK.js → index-BhWiDK25.js} +6 -5
- package/dist/cjs/{index-SAR1xwtW.js → index-BiQyIvoc.js} +40 -27
- package/dist/cjs/{index-BAM4223M.js → index-CNaZ6SYM.js} +2 -2
- package/dist/cjs/{index-CgXTRA_-.js → index-DCfr5hz-.js} +16 -4
- package/dist/cjs/index.cjs.js +11 -11
- package/dist/cjs/{input-shims-CHghGZe-.js → input-shims-2AsXPZ5m.js} +5 -5
- package/dist/cjs/{input.utils-BBZr0wjw.js → input.utils-Becpo0ax.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +11 -11
- package/dist/cjs/ion-alert.cjs.entry.js +11 -11
- package/dist/cjs/ion-app_8.cjs.entry.js +46 -18
- 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 +7 -3
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-button_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-card_5.cjs.entry.js +4 -4
- 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 +61 -15
- 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 +33 -8
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +17 -17
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +4 -4
- package/dist/cjs/ion-loading.cjs.entry.js +7 -7
- package/dist/cjs/ion-menu_3.cjs.entry.js +10 -9
- package/dist/cjs/ion-modal.cjs.entry.js +41 -91
- package/dist/cjs/ion-nav_2.cjs.entry.js +29 -7
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column.cjs.entry.js +5 -5
- package/dist/cjs/ion-picker.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +7 -7
- 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 +8 -8
- package/dist/cjs/ion-reorder_2.cjs.entry.js +6 -6
- 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 +7 -7
- package/dist/cjs/ion-select_3.cjs.entry.js +19 -19
- 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 +6 -6
- 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 +16 -16
- package/dist/cjs/ion-toast.cjs.entry.js +7 -7
- package/dist/cjs/ion-toggle.cjs.entry.js +6 -6
- package/dist/cjs/{ionic-global-C1h8Yi_K.js → ionic-global-48ceLiJ6.js} +1 -1
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-YFSxiyP_.js → ios.transition-Ca6XODo9.js} +4 -4
- package/dist/cjs/{item-multiple-inputs-h2PyAFzG.js → item-multiple-inputs-C-hz7xrh.js} +1 -1
- package/dist/cjs/{keyboard-C-C7xMKk.js → keyboard-BlHp4a_c.js} +1 -1
- package/dist/cjs/{keyboard-Cv-LNReK.js → keyboard-c2_I35b-.js} +4 -4
- package/dist/cjs/{keyboard-controller-CLcFxSnb.js → keyboard-controller-DHS0BgXp.js} +2 -2
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-Cm8yg0UK.js → md.transition-D8SfNYEp.js} +4 -4
- package/dist/cjs/{overlays-C68wNDWY.js → overlays-CLld3axA.js} +79 -20
- package/dist/cjs/{select-option-render-C-Yh9yZG.js → select-option-render-CzyhrkOu.js} +2 -2
- package/dist/cjs/{slot-mutation-controller-zixZ5LyH.js → slot-mutation-controller-B2OfJEBH.js} +68 -34
- package/dist/cjs/{status-tap-C3frTJ4c.js → status-tap-CDA0Y3Ad.js} +3 -3
- package/dist/cjs/{swipe-back-ChrfFzIe.js → swipe-back-Dy8pxJCF.js} +2 -2
- package/dist/collection/collection-manifest.json +1 -1
- package/dist/collection/components/backdrop/backdrop.js +6 -2
- package/dist/collection/components/datetime/datetime.js +56 -10
- package/dist/collection/components/input/input.ios.css +7 -3
- package/dist/collection/components/input/input.js +11 -11
- package/dist/collection/components/input/input.md.css +28 -15
- package/dist/collection/components/input-otp/input-otp.js +29 -3
- package/dist/collection/components/menu/menu.js +4 -3
- package/dist/collection/components/modal/gestures/sheet.js +30 -80
- package/dist/collection/components/nav/nav.js +24 -2
- package/dist/collection/components/router-outlet/router-outlet.js +31 -3
- package/dist/collection/components/select/select.ios.css +7 -3
- package/dist/collection/components/select/select.js +10 -10
- package/dist/collection/components/select/select.md.css +28 -15
- package/dist/collection/components/textarea/textarea.ios.css +7 -3
- package/dist/collection/components/textarea/textarea.js +10 -10
- package/dist/collection/components/textarea/textarea.md.css +28 -17
- package/dist/collection/utils/forms/index.js +1 -1
- package/dist/collection/utils/forms/{start-container-controller.js → start-end-container-controller.js} +66 -32
- package/dist/collection/utils/hardware-back-button.js +41 -12
- package/dist/collection/utils/menu-controller/index.js +2 -1
- package/dist/collection/utils/overlays.js +30 -4
- package/dist/collection/utils/transition/index.js +11 -0
- package/dist/docs.json +4 -4
- package/dist/esm/{animation-CFd8Olt3.js → animation-DmtJpz89.js} +2 -2
- package/dist/esm/{app-globals-7GHLBkwd.js → app-globals-CNfpAPW6.js} +1 -1
- package/dist/esm/{attribute-controller-Cn665x42.js → attribute-controller-DPMIcbef.js} +1 -1
- package/dist/esm/{button-active-DMuYeDQN.js → button-active-DVk40Sjl.js} +2 -2
- package/dist/esm/{capacitor-CoEgIpR9.js → capacitor-CHJaJ9aX.js} +1 -1
- package/dist/esm/{format-C9zPmwKU.js → format-Ck1cw5z7.js} +1 -1
- package/dist/esm/{framework-delegate-DeT5pmPB.js → framework-delegate-CDjM1vRH.js} +1 -1
- package/dist/esm/{haptic-Dxm7ZmT5.js → haptic-WXfMCob9.js} +1 -1
- package/dist/esm/{helpers-B54ynME_.js → helpers-BJqKF1pr.js} +1 -1
- package/dist/esm/{index-D9OR05yj.js → index-BpRUsN_W.js} +40 -27
- package/dist/esm/{index-D4ZMZz_3.js → index-CK8uF0iB.js} +1 -1
- package/dist/esm/{index-D_xZtbw6.js → index-Clv8QC5L.js} +2 -2
- package/dist/esm/{index-B9jhwvmO.js → index-DIouXecD.js} +6 -5
- package/dist/esm/{index--21qeSt0.js → index-TkLga3ma.js} +2 -2
- package/dist/esm/{index-B8iieOdw.js → index-z9vdZN7I.js} +16 -5
- package/dist/esm/index.js +11 -11
- package/dist/esm/{input-shims-MCrhq67U.js → input-shims-C1iYF5JK.js} +5 -5
- package/dist/esm/{input.utils-B-IIWrwT.js → input.utils-DZY_K8Po.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +11 -11
- package/dist/esm/ion-alert.entry.js +11 -11
- package/dist/esm/ion-app_8.entry.js +46 -18
- 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 +7 -3
- package/dist/esm/ion-breadcrumb_2.entry.js +3 -3
- package/dist/esm/ion-button_2.entry.js +4 -4
- package/dist/esm/ion-card_5.entry.js +4 -4
- 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 +61 -15
- 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 +33 -8
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +17 -17
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +4 -4
- package/dist/esm/ion-loading.entry.js +7 -7
- package/dist/esm/ion-menu_3.entry.js +10 -9
- package/dist/esm/ion-modal.entry.js +41 -91
- package/dist/esm/ion-nav_2.entry.js +29 -7
- package/dist/esm/ion-picker-column-option.entry.js +3 -3
- package/dist/esm/ion-picker-column.entry.js +5 -5
- package/dist/esm/ion-picker.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +7 -7
- 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 +8 -8
- package/dist/esm/ion-reorder_2.entry.js +6 -6
- 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 +7 -7
- package/dist/esm/ion-select_3.entry.js +19 -19
- 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 +6 -6
- 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 +16 -16
- package/dist/esm/ion-toast.entry.js +7 -7
- package/dist/esm/ion-toggle.entry.js +6 -6
- package/dist/esm/{ionic-global-B-G43ddm.js → ionic-global-Cep6oYzK.js} +1 -1
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-CRfGj4Mo.js → ios.transition-BkUGiDUz.js} +4 -4
- package/dist/esm/{item-multiple-inputs-BSD9wGHO.js → item-multiple-inputs-Bd2LO7qK.js} +1 -1
- package/dist/esm/{keyboard-DDw62P0D.js → keyboard-B4Y-Gph8.js} +4 -4
- package/dist/esm/{keyboard-ly3M0GO7.js → keyboard-Cmqp5iZD.js} +1 -1
- package/dist/esm/{keyboard-controller-Dzjet5wD.js → keyboard-controller-B2NoF7bV.js} +2 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-wqThNy_C.js → md.transition-B6hlrWjR.js} +4 -4
- package/dist/esm/{overlays-BQnV0HAU.js → overlays-DmDY-El7.js} +78 -21
- package/dist/esm/{select-option-render-CGxPejmz.js → select-option-render-BSDT9oSA.js} +2 -2
- package/dist/esm/{slot-mutation-controller-C3s4-_YN.js → slot-mutation-controller-Btpr9-9O.js} +68 -34
- package/dist/esm/{status-tap-DRx9wSD_.js → status-tap-VGRBYwiC.js} +3 -3
- package/dist/esm/{swipe-back-CXmdi75W.js → swipe-back-tCNYR9ZM.js} +2 -2
- package/dist/html.html-data.json +1 -1
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-378341d1.entry.js → p-00cd107d.entry.js} +1 -1
- package/dist/ionic/{p-e7414c33.entry.js → p-01b7e3f2.entry.js} +1 -1
- package/dist/ionic/{p-f99cf5aa.entry.js → p-0a789930.entry.js} +1 -1
- package/dist/ionic/{p-624f2fa8.entry.js → p-0b09c60e.entry.js} +1 -1
- package/dist/ionic/{p-150f350e.entry.js → p-0c32c626.entry.js} +1 -1
- package/dist/ionic/{p-30dcf43b.entry.js → p-0f97175e.entry.js} +1 -1
- package/dist/ionic/{p-e1969fd1.entry.js → p-107a81a6.entry.js} +1 -1
- package/dist/ionic/{p-c2a23101.entry.js → p-28251c5c.entry.js} +1 -1
- package/dist/ionic/p-293cb1d5.entry.js +4 -0
- package/dist/ionic/{p-93cd738b.entry.js → p-362dcd86.entry.js} +1 -1
- package/dist/ionic/{p-42b2a992.entry.js → p-4bd80334.entry.js} +1 -1
- package/dist/ionic/{p-3c4b0ba7.entry.js → p-4e4e5919.entry.js} +1 -1
- package/dist/ionic/{p-6865f0e1.entry.js → p-4f25b926.entry.js} +1 -1
- package/dist/ionic/{p-1110da0d.entry.js → p-539d6c8e.entry.js} +1 -1
- package/dist/ionic/{p-9dd9788c.entry.js → p-5bb24bce.entry.js} +1 -1
- package/dist/ionic/{p-f19e50f8.entry.js → p-60780b88.entry.js} +1 -1
- package/dist/ionic/p-61321cfa.entry.js +4 -0
- package/dist/ionic/{p-fee863dc.entry.js → p-62c87f3d.entry.js} +1 -1
- package/dist/ionic/{p-58f914ee.entry.js → p-64ac3864.entry.js} +1 -1
- package/dist/ionic/p-657239f5.entry.js +4 -0
- package/dist/ionic/p-67f004eb.entry.js +4 -0
- package/dist/ionic/{p-37f46670.entry.js → p-6c7b5930.entry.js} +1 -1
- package/dist/ionic/{p-b710b4b8.entry.js → p-76c189e7.entry.js} +1 -1
- package/dist/ionic/{p-e338693a.entry.js → p-77252596.entry.js} +1 -1
- package/dist/ionic/p-7ce9c6f8.entry.js +4 -0
- package/dist/ionic/{p-0517aec4.entry.js → p-7db20410.entry.js} +1 -1
- package/dist/ionic/{p-834afcf7.entry.js → p-7e9c2a97.entry.js} +1 -1
- package/dist/ionic/p-7l6ENjIV.js +4 -0
- package/dist/ionic/{p-daaecea3.entry.js → p-82abf431.entry.js} +1 -1
- package/dist/ionic/{p-b9659d21.entry.js → p-8c85e250.entry.js} +1 -1
- package/dist/ionic/{p-e137f724.entry.js → p-8d651adb.entry.js} +1 -1
- package/dist/ionic/{p-eb762f80.entry.js → p-8db08782.entry.js} +1 -1
- package/dist/ionic/{p-76309bab.entry.js → p-91f3cd8b.entry.js} +1 -1
- package/dist/ionic/{p-2e6e933d.entry.js → p-930c3538.entry.js} +1 -1
- package/dist/ionic/p-94f1f7df.entry.js +4 -0
- package/dist/ionic/{p-083b1119.entry.js → p-9ffccbf1.entry.js} +1 -1
- package/dist/ionic/{p-DffXRKHu.js → p-B0jcOZOE.js} +1 -1
- package/dist/ionic/p-BNXIurCt.js +4 -0
- package/dist/ionic/{p-BUB5OrpU.js → p-BO10QT9r.js} +1 -1
- package/dist/ionic/p-BOLqP2-V.js +4 -0
- package/dist/ionic/{p-DxvRP6ld.js → p-BY4FwwBp.js} +1 -1
- package/dist/ionic/{p-BVEsh7-M.js → p-BZTgGzGK.js} +1 -1
- package/dist/ionic/p-BdHBcCZF.js +4 -0
- package/dist/ionic/p-BexAj0yw.js +4 -0
- package/dist/ionic/p-BpED_ep_.js +4 -0
- package/dist/ionic/p-BpRUsN_W.js +6 -0
- package/dist/ionic/p-BuLlVedw.js +4 -0
- package/dist/ionic/{p-CsWrz1c2.js → p-Bx5x5GJV.js} +1 -1
- package/dist/ionic/p-C1WYZOZj.js +4 -0
- package/dist/ionic/p-C2LaBx3E.js +4 -0
- package/dist/ionic/{p-DNxEB9-T.js → p-CXs4J83x.js} +1 -1
- package/dist/ionic/{p-kKvGoaEe.js → p-CgcGX08t.js} +1 -1
- package/dist/ionic/{p-B4xjg_Qu.js → p-Co7eql8D.js} +1 -1
- package/dist/ionic/p-D13gXhdC.js +4 -0
- package/dist/ionic/{p-BtHAx8im.js → p-D926OmIX.js} +1 -1
- package/dist/ionic/{p-BCgqWm-V.js → p-DPNVo1nr.js} +1 -1
- package/dist/ionic/p-DXXGkPA8.js +4 -0
- package/dist/ionic/{p-CCik51Nv.js → p-DfvWlTdB.js} +1 -1
- package/dist/ionic/p-Dk4Mdaru.js +4 -0
- package/dist/ionic/p-DriE1ZAo.js +4 -0
- package/dist/ionic/{p-BhMQahM6.js → p-DxftXYZp.js} +1 -1
- package/dist/ionic/{p-CrAPHbJ3.js → p-SEecsUh7.js} +1 -1
- package/dist/ionic/{p-5c19330c.entry.js → p-a4389f13.entry.js} +1 -1
- package/dist/ionic/{p-4dbb2f4f.entry.js → p-a7d368b5.entry.js} +1 -1
- package/dist/ionic/p-af11d3c6.entry.js +4 -0
- package/dist/ionic/{p-5b9666be.entry.js → p-b3aadfe8.entry.js} +1 -1
- package/dist/ionic/p-b5bcbbc1.entry.js +4 -0
- package/dist/ionic/{p-3a5faaa8.entry.js → p-b9ed3a52.entry.js} +1 -1
- package/dist/ionic/{p-61b304c8.entry.js → p-bfdbe24b.entry.js} +1 -1
- package/dist/ionic/{p-b0a3dd1a.entry.js → p-c250b6b0.entry.js} +1 -1
- package/dist/ionic/{p-20d1ac29.entry.js → p-c293f854.entry.js} +1 -1
- package/dist/ionic/p-c83dbc12.entry.js +4 -0
- package/dist/ionic/{p-0ab133d6.entry.js → p-d0e374f8.entry.js} +1 -1
- package/dist/ionic/{p-24b0a961.entry.js → p-d72accc4.entry.js} +1 -1
- package/dist/ionic/p-e1haAYzm.js +4 -0
- package/dist/ionic/{p-e05073f6.entry.js → p-e7ab4def.entry.js} +1 -1
- package/dist/ionic/p-e8e69c21.entry.js +4 -0
- package/dist/ionic/{p-9b78fedf.entry.js → p-eb989dc9.entry.js} +1 -1
- package/dist/ionic/{p-b1164028.entry.js → p-ec259ac5.entry.js} +1 -1
- package/dist/ionic/{p-f9057f70.entry.js → p-f2116a54.entry.js} +1 -1
- package/dist/ionic/{p-B4ELlbJE.js → p-nCAPr1Ah.js} +1 -1
- package/dist/types/components/backdrop/backdrop.d.ts +4 -0
- package/dist/types/components/datetime/datetime.d.ts +20 -3
- package/dist/types/components/input/input.d.ts +2 -1
- package/dist/types/components/input-otp/input-otp.d.ts +7 -0
- package/dist/types/components/nav/nav.d.ts +1 -0
- package/dist/types/components/router-outlet/router-outlet.d.ts +1 -0
- package/dist/types/components/select/select.d.ts +2 -1
- package/dist/types/components/textarea/textarea.d.ts +2 -1
- package/dist/types/components.d.ts +3 -3
- package/dist/types/utils/config.d.ts +4 -1
- package/dist/types/utils/forms/index.d.ts +1 -1
- package/dist/types/utils/forms/start-end-container-controller.d.ts +44 -0
- package/dist/types/utils/hardware-back-button.d.ts +11 -0
- package/dist/types/utils/overlays.d.ts +5 -2
- package/dist/types/utils/transition/index.d.ts +6 -0
- package/hydrate/index.js +698 -354
- package/hydrate/index.mjs +698 -354
- package/package.json +4 -4
- package/components/p-BKeulLTJ.js +0 -4
- package/components/p-BNnmwjuy.js +0 -4
- package/components/p-BUVGbkSc.js +0 -4
- package/components/p-BexLz2XV.js +0 -4
- package/components/p-BriaEJK8.js +0 -4
- package/components/p-BsLM9eQu.js +0 -4
- package/components/p-Bu6O-veK.js +0 -4
- package/components/p-CVVUo4J1.js +0 -4
- package/components/p-CcQQ8oRo.js +0 -4
- package/components/p-Ctw69DyZ.js +0 -4
- package/components/p-F1rV0pyK.js +0 -4
- package/components/p-WMQuK_Tj.js +0 -4
- package/components/p-fFx6WCTj.js +0 -4
- package/components/p-q2WJ5Igc.js +0 -4
- package/dist/ionic/p-1213b719.entry.js +0 -4
- package/dist/ionic/p-336ea4b8.entry.js +0 -4
- package/dist/ionic/p-49a16200.entry.js +0 -4
- package/dist/ionic/p-52dc3309.entry.js +0 -4
- package/dist/ionic/p-636349e2.entry.js +0 -4
- package/dist/ionic/p-7441ed2b.entry.js +0 -4
- package/dist/ionic/p-83448626.entry.js +0 -4
- package/dist/ionic/p-B4wzg4z4.js +0 -4
- package/dist/ionic/p-BChRVdVv.js +0 -4
- package/dist/ionic/p-Ba6ZV-qU.js +0 -4
- package/dist/ionic/p-CTmJSZcs.js +0 -4
- package/dist/ionic/p-CVwXN07G.js +0 -4
- package/dist/ionic/p-CgQdInM0.js +0 -4
- package/dist/ionic/p-D5akOqD0.js +0 -4
- package/dist/ionic/p-D9OR05yj.js +0 -6
- package/dist/ionic/p-DHf9V6zI.js +0 -4
- package/dist/ionic/p-DZUqAr_6.js +0 -4
- package/dist/ionic/p-Dzew6Qv7.js +0 -4
- package/dist/ionic/p-PkaVMJga.js +0 -4
- package/dist/ionic/p-ba7bd621.entry.js +0 -4
- package/dist/ionic/p-e4c3f17f.entry.js +0 -4
- package/dist/ionic/p-edcb63e5.entry.js +0 -4
- package/dist/ionic/p-tXpzvta8.js +0 -4
- package/dist/ionic/p-vPo3vRFc.js +0 -4
- package/dist/types/utils/forms/start-container-controller.d.ts +0 -34
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var helpers = require('./helpers-
|
|
7
|
-
var index = require('./index-
|
|
8
|
-
var ionicGlobal = require('./ionic-global-
|
|
9
|
-
var frameworkDelegate = require('./framework-delegate-
|
|
6
|
+
var helpers = require('./helpers-Cqr69qxA.js');
|
|
7
|
+
var index = require('./index-BiQyIvoc.js');
|
|
8
|
+
var ionicGlobal = require('./ionic-global-48ceLiJ6.js');
|
|
9
|
+
var frameworkDelegate = require('./framework-delegate-JbKIVMzR.js');
|
|
10
10
|
var gestureController = require('./gesture-controller-CeJslptU.js');
|
|
11
11
|
|
|
12
12
|
/**
|
|
@@ -35,6 +35,23 @@ const shouldUseCloseWatcher = () => index.config.get('experimentalCloseWatcher',
|
|
|
35
35
|
const blockHardwareBackButton = () => {
|
|
36
36
|
document.addEventListener('backbutton', () => { });
|
|
37
37
|
};
|
|
38
|
+
const closeWatcherConditions = [];
|
|
39
|
+
let syncCloseWatcher;
|
|
40
|
+
/**
|
|
41
|
+
* Registers a check for whether the back button
|
|
42
|
+
* has something to close. The CloseWatcher is only
|
|
43
|
+
* active while one of these checks passes.
|
|
44
|
+
*/
|
|
45
|
+
const addCloseWatcherCondition = (condition) => {
|
|
46
|
+
closeWatcherConditions.push(condition);
|
|
47
|
+
};
|
|
48
|
+
/**
|
|
49
|
+
* Call this whenever something the back button
|
|
50
|
+
* can close opens or closes.
|
|
51
|
+
*/
|
|
52
|
+
const updateCloseWatcher = () => {
|
|
53
|
+
syncCloseWatcher?.();
|
|
54
|
+
};
|
|
38
55
|
const startHardwareBackButton = () => {
|
|
39
56
|
const doc = document;
|
|
40
57
|
let busy = false;
|
|
@@ -86,32 +103,44 @@ const startHardwareBackButton = () => {
|
|
|
86
103
|
processHandlers();
|
|
87
104
|
};
|
|
88
105
|
/**
|
|
89
|
-
*
|
|
90
|
-
*
|
|
91
|
-
*
|
|
92
|
-
* events firing.
|
|
106
|
+
* Android WebView never sends the hardware back
|
|
107
|
+
* button to a CloseWatcher, so hybrid apps still
|
|
108
|
+
* need this. Browsers never fire backbutton.
|
|
93
109
|
*/
|
|
110
|
+
doc.addEventListener('backbutton', backButtonCallback);
|
|
94
111
|
if (shouldUseCloseWatcher()) {
|
|
95
112
|
let watcher;
|
|
96
|
-
|
|
97
|
-
|
|
113
|
+
/**
|
|
114
|
+
* An active CloseWatcher stops the back button from
|
|
115
|
+
* navigating, so only keep one while there's something to close.
|
|
116
|
+
*/
|
|
117
|
+
syncCloseWatcher = () => {
|
|
118
|
+
const canClose = closeWatcherConditions.some((condition) => condition());
|
|
119
|
+
if (!canClose) {
|
|
120
|
+
watcher?.destroy();
|
|
121
|
+
watcher = undefined;
|
|
122
|
+
return;
|
|
123
|
+
}
|
|
124
|
+
if (watcher !== undefined) {
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
98
127
|
watcher = new helpers.win.CloseWatcher();
|
|
99
128
|
/**
|
|
100
129
|
* Once a close request happens
|
|
101
130
|
* the watcher gets destroyed.
|
|
102
131
|
* As a result, we need to re-configure
|
|
103
132
|
* the watcher so we can respond to other
|
|
104
|
-
* close requests
|
|
133
|
+
* close requests, including after one that
|
|
134
|
+
* closed nothing, like a modal whose canDismiss
|
|
135
|
+
* returned false.
|
|
105
136
|
*/
|
|
106
137
|
watcher.onclose = () => {
|
|
138
|
+
watcher = undefined;
|
|
107
139
|
backButtonCallback();
|
|
108
|
-
|
|
140
|
+
syncCloseWatcher?.();
|
|
109
141
|
};
|
|
110
142
|
};
|
|
111
|
-
|
|
112
|
-
}
|
|
113
|
-
else {
|
|
114
|
-
doc.addEventListener('backbutton', backButtonCallback);
|
|
143
|
+
syncCloseWatcher();
|
|
115
144
|
}
|
|
116
145
|
};
|
|
117
146
|
const OVERLAY_BACK_BUTTON_PRIORITY = 100;
|
|
@@ -121,9 +150,11 @@ var hardwareBackButton = /*#__PURE__*/Object.freeze({
|
|
|
121
150
|
__proto__: null,
|
|
122
151
|
MENU_BACK_BUTTON_PRIORITY: MENU_BACK_BUTTON_PRIORITY,
|
|
123
152
|
OVERLAY_BACK_BUTTON_PRIORITY: OVERLAY_BACK_BUTTON_PRIORITY,
|
|
153
|
+
addCloseWatcherCondition: addCloseWatcherCondition,
|
|
124
154
|
blockHardwareBackButton: blockHardwareBackButton,
|
|
125
155
|
shouldUseCloseWatcher: shouldUseCloseWatcher,
|
|
126
|
-
startHardwareBackButton: startHardwareBackButton
|
|
156
|
+
startHardwareBackButton: startHardwareBackButton,
|
|
157
|
+
updateCloseWatcher: updateCloseWatcher
|
|
127
158
|
});
|
|
128
159
|
|
|
129
160
|
/**
|
|
@@ -209,6 +240,11 @@ const focusElementInContext = (hostToFocus, fallbackElement) => {
|
|
|
209
240
|
|
|
210
241
|
let lastOverlayIndex = 0;
|
|
211
242
|
let lastId = 0;
|
|
243
|
+
/**
|
|
244
|
+
* Every overlay except toast, which doesn't trap
|
|
245
|
+
* focus or close on back.
|
|
246
|
+
*/
|
|
247
|
+
const NON_TOAST_OVERLAYS = 'ion-alert,ion-action-sheet,ion-loading,ion-modal,ion-popover';
|
|
212
248
|
const activeAnimations = new WeakMap();
|
|
213
249
|
/**
|
|
214
250
|
* Determines if the overlay's backdrop is always blocking (no background interaction).
|
|
@@ -335,7 +371,7 @@ const focusElementInOverlay = (hostToFocus, overlay) => {
|
|
|
335
371
|
* Should NOT include: Toast
|
|
336
372
|
*/
|
|
337
373
|
const trapKeyboardFocus = (ev, doc) => {
|
|
338
|
-
const lastOverlay = getPresentedOverlay(doc,
|
|
374
|
+
const lastOverlay = getPresentedOverlay(doc, NON_TOAST_OVERLAYS);
|
|
339
375
|
const target = ev.target;
|
|
340
376
|
/**
|
|
341
377
|
* If no active overlay, ignore this event.
|
|
@@ -518,6 +554,11 @@ const connectListeners = (doc) => {
|
|
|
518
554
|
doc.addEventListener('focus', (ev) => {
|
|
519
555
|
trapKeyboardFocus(ev, doc);
|
|
520
556
|
}, true);
|
|
557
|
+
/**
|
|
558
|
+
* Whether the overlay actually dismisses is checked at press time,
|
|
559
|
+
* since `backdropDismiss` can change while it's open.
|
|
560
|
+
*/
|
|
561
|
+
addCloseWatcherCondition(() => getPresentedOverlay(doc, NON_TOAST_OVERLAYS) !== undefined);
|
|
521
562
|
// handle back-button click
|
|
522
563
|
doc.addEventListener('ionBackButton', (ev) => {
|
|
523
564
|
const lastOverlay = getPresentedOverlay(doc);
|
|
@@ -641,7 +682,8 @@ const setRootAriaHidden = (hidden = false) => {
|
|
|
641
682
|
* Cleans up root `aria-hidden` and `backdrop-no-scroll` when
|
|
642
683
|
* an overlay is removed from the DOM without going through
|
|
643
684
|
* the `dismiss()` flow (e.g., when a framework unmounts the
|
|
644
|
-
* overlay during a route change).
|
|
685
|
+
* overlay during a route change). Also releases the
|
|
686
|
+
* CloseWatcher if nothing is left to close.
|
|
645
687
|
*
|
|
646
688
|
* Should be called from an overlay's `disconnectedCallback`
|
|
647
689
|
* when the overlay was still presented at the time of removal.
|
|
@@ -650,6 +692,7 @@ const cleanupRootFocusTrapAccessibility = () => {
|
|
|
650
692
|
if (typeof document === 'undefined') {
|
|
651
693
|
return;
|
|
652
694
|
}
|
|
695
|
+
updateCloseWatcher();
|
|
653
696
|
const remainingOverlays = getPresentedOverlays(document);
|
|
654
697
|
const hasRemainingLocking = remainingOverlays.some((o) => locksAppRoot(o));
|
|
655
698
|
if (!hasRemainingLocking) {
|
|
@@ -671,7 +714,9 @@ const applyRootLock = (el) => {
|
|
|
671
714
|
};
|
|
672
715
|
/**
|
|
673
716
|
* Re-applies the root lock that `cleanupRootFocusTrapAccessibility()` released.
|
|
674
|
-
* Call from `connectedCallback` when the overlay is still presented.
|
|
717
|
+
* Call from `connectedCallback` when the overlay is still presented. Also
|
|
718
|
+
* re-arms the CloseWatcher, which every overlay needs, so that happens
|
|
719
|
+
* before the `locksAppRoot` check.
|
|
675
720
|
*
|
|
676
721
|
* A synchronous move keeps the overlay connected, so the lock survives. A
|
|
677
722
|
* detach with a re-insert in a later task releases it, which is the shape a
|
|
@@ -681,6 +726,7 @@ const restoreRootFocusTrapAccessibility = (overlayEl) => {
|
|
|
681
726
|
if (typeof document === 'undefined') {
|
|
682
727
|
return;
|
|
683
728
|
}
|
|
729
|
+
updateCloseWatcher();
|
|
684
730
|
const el = overlayEl;
|
|
685
731
|
if (!locksAppRoot(el)) {
|
|
686
732
|
return;
|
|
@@ -894,6 +940,11 @@ const dismiss = async (overlay, data, role, name, iosLeaveAnimation, mdLeaveAnim
|
|
|
894
940
|
index.printIonError(`[${overlay.el.tagName.toLowerCase()}] - `, err);
|
|
895
941
|
}
|
|
896
942
|
overlay.el.remove();
|
|
943
|
+
/**
|
|
944
|
+
* Release the back button if nothing
|
|
945
|
+
* else is left to close.
|
|
946
|
+
*/
|
|
947
|
+
updateCloseWatcher();
|
|
897
948
|
return true;
|
|
898
949
|
};
|
|
899
950
|
const getAppRoot = (doc) => {
|
|
@@ -902,6 +953,12 @@ const getAppRoot = (doc) => {
|
|
|
902
953
|
const overlayAnimation = async (overlay, animationBuilder, baseEl, opts) => {
|
|
903
954
|
// Make overlay visible in case it's hidden
|
|
904
955
|
baseEl.classList.remove('overlay-hidden');
|
|
956
|
+
/**
|
|
957
|
+
* Removing `overlay-hidden` makes the overlay count
|
|
958
|
+
* as presented, so back can dismiss it while it
|
|
959
|
+
* animates in.
|
|
960
|
+
*/
|
|
961
|
+
updateCloseWatcher();
|
|
905
962
|
const aniRoot = overlay.el;
|
|
906
963
|
const animation = animationBuilder(aniRoot, opts);
|
|
907
964
|
if (!overlay.animated || !index.config.getBoolean('animated', true)) {
|
|
@@ -1131,6 +1188,7 @@ exports.GESTURE = GESTURE;
|
|
|
1131
1188
|
exports.MENU_BACK_BUTTON_PRIORITY = MENU_BACK_BUTTON_PRIORITY;
|
|
1132
1189
|
exports.OVERLAY_GESTURE_PRIORITY = OVERLAY_GESTURE_PRIORITY;
|
|
1133
1190
|
exports.actionSheetController = actionSheetController;
|
|
1191
|
+
exports.addCloseWatcherCondition = addCloseWatcherCondition;
|
|
1134
1192
|
exports.alertController = alertController;
|
|
1135
1193
|
exports.cleanupRootFocusTrapAccessibility = cleanupRootFocusTrapAccessibility;
|
|
1136
1194
|
exports.createDelegateController = createDelegateController;
|
|
@@ -1153,3 +1211,4 @@ exports.safeCall = safeCall;
|
|
|
1153
1211
|
exports.setOverlayId = setOverlayId;
|
|
1154
1212
|
exports.shouldUseCloseWatcher = shouldUseCloseWatcher;
|
|
1155
1213
|
exports.toastController = toastController;
|
|
1214
|
+
exports.updateCloseWatcher = updateCloseWatcher;
|
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
7
|
-
var index$1 = require('./index-
|
|
6
|
+
var index = require('./index-BiQyIvoc.js');
|
|
7
|
+
var index$1 = require('./index-B4ONUQRp.js');
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Converts a DOM node into a Stencil VNode (or text string) so the
|
package/dist/cjs/{slot-mutation-controller-zixZ5LyH.js → slot-mutation-controller-B2OfJEBH.js}
RENAMED
|
@@ -3,7 +3,7 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var helpers = require('./helpers-
|
|
6
|
+
var helpers = require('./helpers-Cqr69qxA.js');
|
|
7
7
|
var dir = require('./dir-zwDPRE5K.js');
|
|
8
8
|
|
|
9
9
|
/**
|
|
@@ -167,10 +167,19 @@ const SKIP_LABEL_TRANSITION_CLASS = 'skip-label-transition';
|
|
|
167
167
|
*/
|
|
168
168
|
const START_CONTAINER_ADJUSTMENT_VAR = '--internal-start-container-adjustment';
|
|
169
169
|
/**
|
|
170
|
-
*
|
|
171
|
-
*
|
|
172
|
-
*
|
|
173
|
-
*
|
|
170
|
+
* Set on the host as an inline style. The component stylesheets declare
|
|
171
|
+
* this property and read it with `var()`, so it must stay in sync with
|
|
172
|
+
* the `--internal-start-end-container-width` references in those files.
|
|
173
|
+
* Renaming it here requires renaming it there too.
|
|
174
|
+
*/
|
|
175
|
+
const START_END_CONTAINER_WIDTH_VAR = '--internal-start-end-container-width';
|
|
176
|
+
/**
|
|
177
|
+
* A utility to measure the start and end containers of form components
|
|
178
|
+
* (input, textarea, select) with `fill="outline"` and write the results
|
|
179
|
+
* to the host. The start container width offsets floating/stacked labels
|
|
180
|
+
* so they line up with the outline border. The combined start and end
|
|
181
|
+
* container width lets the floating label size itself to the full width
|
|
182
|
+
* of the outline while still being positioned relative to the control.
|
|
174
183
|
*
|
|
175
184
|
* Measurement is deferred with raf() to avoid forcing layout during
|
|
176
185
|
* component updates, and a ResizeObserver watches for dynamic width
|
|
@@ -179,29 +188,36 @@ const START_CONTAINER_ADJUSTMENT_VAR = '--internal-start-container-adjustment';
|
|
|
179
188
|
* @internal
|
|
180
189
|
* @param el - The host element (ion-input, ion-textarea, or ion-select).
|
|
181
190
|
* @param getStartContainer - A callback that returns the start container element.
|
|
182
|
-
* @param
|
|
191
|
+
* @param getEndContainer - A callback that returns the end container element.
|
|
192
|
+
* @param shouldMeasure - A callback that determines whether the containers should be measured.
|
|
183
193
|
*/
|
|
184
|
-
const
|
|
194
|
+
const createStartEndContainerController = (el, getStartContainer, getEndContainer, shouldMeasure) => {
|
|
185
195
|
let resizeObserver;
|
|
186
|
-
let
|
|
196
|
+
let observedStartContainer;
|
|
197
|
+
let observedEndContainer;
|
|
187
198
|
let measurementRaf;
|
|
188
199
|
let transitionRaf;
|
|
189
200
|
let appliedAdjustment;
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
|
|
193
|
-
|
|
201
|
+
let appliedStartEndWidth;
|
|
202
|
+
/*
|
|
203
|
+
* Round to one decimal place so fractional widths produce a stable
|
|
204
|
+
* label offset and width when a container is added, removed, or resized.
|
|
205
|
+
*/
|
|
206
|
+
const roundWidth = (width) => Math.round(width * 10) / 10;
|
|
207
|
+
const measureContainers = () => {
|
|
208
|
+
const startContainer = getStartContainer();
|
|
209
|
+
if (!startContainer || !shouldMeasure()) {
|
|
210
|
+
return { adjustment: '', startEndWidth: '' };
|
|
194
211
|
}
|
|
195
|
-
|
|
196
|
-
|
|
197
|
-
* label offset when the start container is added, removed, or resized.
|
|
198
|
-
*/
|
|
199
|
-
const startContainerWidth = startSlot.getBoundingClientRect().width;
|
|
200
|
-
const roundedWidth = Math.round(startContainerWidth * 10) / 10;
|
|
212
|
+
const startContainerWidth = roundWidth(startContainer.getBoundingClientRect().width);
|
|
213
|
+
const endContainerWidth = roundWidth(getEndContainer()?.getBoundingClientRect().width ?? 0);
|
|
201
214
|
const sign = dir.isRTL(el) ? '' : '-';
|
|
202
|
-
return
|
|
215
|
+
return {
|
|
216
|
+
adjustment: startContainerWidth ? `${sign}${startContainerWidth}px` : '0px',
|
|
217
|
+
startEndWidth: `${roundWidth(startContainerWidth + endContainerWidth)}px`,
|
|
218
|
+
};
|
|
203
219
|
};
|
|
204
|
-
const
|
|
220
|
+
const scheduleMeasurement = () => {
|
|
205
221
|
// Return if there is already a measurement queued to avoid a flicker
|
|
206
222
|
if (measurementRaf !== undefined) {
|
|
207
223
|
return;
|
|
@@ -212,7 +228,17 @@ const createStartContainerController = (el, getStartContainer, shouldApplyAdjust
|
|
|
212
228
|
*/
|
|
213
229
|
measurementRaf = helpers.raf(() => {
|
|
214
230
|
measurementRaf = undefined;
|
|
215
|
-
const adjustment =
|
|
231
|
+
const { adjustment, startEndWidth } = measureContainers();
|
|
232
|
+
/*
|
|
233
|
+
* The width only changes how much of the label fits, so it can
|
|
234
|
+
* animate. The transition is not suppressed here because the end
|
|
235
|
+
* container can change size while the label is floating, such as
|
|
236
|
+
* when async content loads, and that should not cut the float short.
|
|
237
|
+
*/
|
|
238
|
+
if (startEndWidth !== appliedStartEndWidth) {
|
|
239
|
+
el.style.setProperty(START_END_CONTAINER_WIDTH_VAR, startEndWidth);
|
|
240
|
+
appliedStartEndWidth = startEndWidth;
|
|
241
|
+
}
|
|
216
242
|
// Only suppress the label transition when the label has to move
|
|
217
243
|
if (adjustment !== appliedAdjustment) {
|
|
218
244
|
// Discard a removal queued by an earlier change
|
|
@@ -235,29 +261,36 @@ const createStartContainerController = (el, getStartContainer, shouldApplyAdjust
|
|
|
235
261
|
if (resizeObserver) {
|
|
236
262
|
resizeObserver.disconnect();
|
|
237
263
|
resizeObserver = undefined;
|
|
238
|
-
|
|
264
|
+
observedStartContainer = undefined;
|
|
265
|
+
observedEndContainer = undefined;
|
|
239
266
|
}
|
|
240
267
|
};
|
|
241
268
|
const setupResizeObserver = () => {
|
|
242
|
-
const
|
|
243
|
-
|
|
244
|
-
|
|
269
|
+
const startContainer = getStartContainer();
|
|
270
|
+
const endContainer = getEndContainer();
|
|
271
|
+
// Stop watching once the measurements no longer apply
|
|
272
|
+
if (!startContainer || !shouldMeasure()) {
|
|
245
273
|
disconnectResizeObserver();
|
|
246
274
|
return;
|
|
247
275
|
}
|
|
248
|
-
// Return when prerendering or already watching
|
|
249
|
-
if (typeof ResizeObserver !== 'function' ||
|
|
276
|
+
// Return when prerendering or already watching these containers
|
|
277
|
+
if (typeof ResizeObserver !== 'function' ||
|
|
278
|
+
(resizeObserver && observedStartContainer === startContainer && observedEndContainer === endContainer)) {
|
|
250
279
|
return;
|
|
251
280
|
}
|
|
252
281
|
disconnectResizeObserver();
|
|
253
282
|
resizeObserver = new ResizeObserver(() => {
|
|
254
|
-
|
|
283
|
+
scheduleMeasurement();
|
|
255
284
|
});
|
|
256
|
-
|
|
257
|
-
resizeObserver.observe(
|
|
285
|
+
observedStartContainer = startContainer;
|
|
286
|
+
resizeObserver.observe(startContainer);
|
|
287
|
+
if (endContainer) {
|
|
288
|
+
observedEndContainer = endContainer;
|
|
289
|
+
resizeObserver.observe(endContainer);
|
|
290
|
+
}
|
|
258
291
|
};
|
|
259
|
-
const
|
|
260
|
-
|
|
292
|
+
const calculateContainerWidths = () => {
|
|
293
|
+
scheduleMeasurement();
|
|
261
294
|
};
|
|
262
295
|
const destroy = () => {
|
|
263
296
|
disconnectResizeObserver();
|
|
@@ -273,9 +306,10 @@ const createStartContainerController = (el, getStartContainer, shouldApplyAdjust
|
|
|
273
306
|
}
|
|
274
307
|
// Re-apply from scratch if the element is connected again
|
|
275
308
|
appliedAdjustment = undefined;
|
|
309
|
+
appliedStartEndWidth = undefined;
|
|
276
310
|
};
|
|
277
311
|
return {
|
|
278
|
-
|
|
312
|
+
calculateContainerWidths,
|
|
279
313
|
destroy,
|
|
280
314
|
};
|
|
281
315
|
};
|
|
@@ -461,5 +495,5 @@ const createSlotMutationController = (el, slotName, mutationCallback) => {
|
|
|
461
495
|
exports.createClickController = createClickController;
|
|
462
496
|
exports.createNotchController = createNotchController;
|
|
463
497
|
exports.createSlotMutationController = createSlotMutationController;
|
|
464
|
-
exports.
|
|
498
|
+
exports.createStartEndContainerController = createStartEndContainerController;
|
|
465
499
|
exports.getSlottedClickContent = getSlottedClickContent;
|
|
@@ -3,9 +3,9 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
7
|
-
var index$1 = require('./index-
|
|
8
|
-
var helpers = require('./helpers-
|
|
6
|
+
var index = require('./index-BiQyIvoc.js');
|
|
7
|
+
var index$1 = require('./index-CNaZ6SYM.js');
|
|
8
|
+
var helpers = require('./helpers-Cqr69qxA.js');
|
|
9
9
|
require('./dir-zwDPRE5K.js');
|
|
10
10
|
|
|
11
11
|
const startStatusTap = () => {
|
|
@@ -3,10 +3,10 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var helpers = require('./helpers-
|
|
6
|
+
var helpers = require('./helpers-Cqr69qxA.js');
|
|
7
7
|
var dir = require('./dir-zwDPRE5K.js');
|
|
8
8
|
var index = require('./index-DRPqwSvU.js');
|
|
9
|
-
require('./index-
|
|
9
|
+
require('./index-BiQyIvoc.js');
|
|
10
10
|
require('./gesture-controller-CeJslptU.js');
|
|
11
11
|
|
|
12
12
|
const createSwipeBackGesture = (el, canStartHandler, onStartHandler, onMoveHandler, onEndHandler) => {
|
|
@@ -7,6 +7,10 @@ export class Backdrop {
|
|
|
7
7
|
constructor() {
|
|
8
8
|
/**
|
|
9
9
|
* If `true`, the backdrop will be visible.
|
|
10
|
+
* This property controls whether or not the backdrop's
|
|
11
|
+
* default background is shown. It does not control whether
|
|
12
|
+
* or not the backdrop blocks interaction, and it does not
|
|
13
|
+
* override a custom background set on `ion-backdrop`.
|
|
10
14
|
*/
|
|
11
15
|
this.visible = true;
|
|
12
16
|
/**
|
|
@@ -32,7 +36,7 @@ export class Backdrop {
|
|
|
32
36
|
}
|
|
33
37
|
render() {
|
|
34
38
|
const mode = getIonMode(this);
|
|
35
|
-
return (h(Host, { key: '
|
|
39
|
+
return (h(Host, { key: '14141148f4a22371b8ad7cb9dcdc32398ec109aa', "aria-hidden": "true", class: {
|
|
36
40
|
[mode]: true,
|
|
37
41
|
'backdrop-hide': !this.visible,
|
|
38
42
|
'backdrop-no-tappable': !this.tappable,
|
|
@@ -66,7 +70,7 @@ export class Backdrop {
|
|
|
66
70
|
"optional": false,
|
|
67
71
|
"docs": {
|
|
68
72
|
"tags": [],
|
|
69
|
-
"text": "If `true`, the backdrop will be visible."
|
|
73
|
+
"text": "If `true`, the backdrop will be visible.\nThis property controls whether or not the backdrop's\ndefault background is shown. It does not control whether\nor not the backdrop blocks interaction, and it does not\noverride a custom background set on `ion-backdrop`."
|
|
70
74
|
},
|
|
71
75
|
"getter": false,
|
|
72
76
|
"setter": false,
|
|
@@ -56,6 +56,13 @@ import { checkForPresentationFormatMismatch, warnIfTimeZoneProvided } from "./ut
|
|
|
56
56
|
export class Datetime {
|
|
57
57
|
constructor() {
|
|
58
58
|
this.inputId = `ion-dt-${datetimeIds++}`;
|
|
59
|
+
/**
|
|
60
|
+
* Set when the user selects a value, cleared when it's confirmed
|
|
61
|
+
* or `processValue` runs (`reset()`, or `value` being set to a
|
|
62
|
+
* non-empty value). The overlay present listener only discards a
|
|
63
|
+
* selection while this is set.
|
|
64
|
+
*/
|
|
65
|
+
this.hasUnconfirmedSelection = false;
|
|
59
66
|
this.prevPresentation = null;
|
|
60
67
|
this.showMonthAndYear = false;
|
|
61
68
|
this.activeParts = [];
|
|
@@ -219,6 +226,7 @@ export class Datetime {
|
|
|
219
226
|
if (popoverOrModal) {
|
|
220
227
|
popoverOrModal.dismiss(undefined, role);
|
|
221
228
|
}
|
|
229
|
+
return popoverOrModal !== null;
|
|
222
230
|
};
|
|
223
231
|
this.setWorkingParts = (parts) => {
|
|
224
232
|
this.workingParts = {
|
|
@@ -233,6 +241,7 @@ export class Datetime {
|
|
|
233
241
|
if (this.readonly) {
|
|
234
242
|
return;
|
|
235
243
|
}
|
|
244
|
+
this.hasUnconfirmedSelection = true;
|
|
236
245
|
const { multiple, minParts, maxParts, activeParts } = this;
|
|
237
246
|
/**
|
|
238
247
|
* When setting the active parts, it is possible
|
|
@@ -653,7 +662,8 @@ export class Datetime {
|
|
|
653
662
|
this.loadTimeout = undefined;
|
|
654
663
|
}
|
|
655
664
|
};
|
|
656
|
-
this.processValue = (value) => {
|
|
665
|
+
this.processValue = (value, animated = true) => {
|
|
666
|
+
this.hasUnconfirmedSelection = false;
|
|
657
667
|
const hasValue = value !== null && value !== undefined && value !== '' && (!Array.isArray(value) || value.length > 0);
|
|
658
668
|
const valueToProcess = hasValue ? parseDate(value) : this.defaultParts;
|
|
659
669
|
const { minParts, maxParts, workingParts, el } = this;
|
|
@@ -716,13 +726,14 @@ export class Datetime {
|
|
|
716
726
|
const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
|
|
717
727
|
const bodyIsVisible = el.classList.contains('datetime-ready');
|
|
718
728
|
const { isGridStyle, showMonthAndYear } = this;
|
|
719
|
-
if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
|
|
729
|
+
if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear && animated) {
|
|
720
730
|
/**
|
|
721
731
|
* Only animate if:
|
|
722
732
|
* 1. We're using grid style (wheel style pickers should just jump to new value)
|
|
723
733
|
* 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
|
|
724
734
|
* 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
|
|
725
735
|
* 4. The month/year picker is not open (since you wouldn't see the animation anyway)
|
|
736
|
+
* 5. The caller did not opt out (e.g. the parent overlay is still hidden)
|
|
726
737
|
*/
|
|
727
738
|
this.animateToDate(targetValue);
|
|
728
739
|
}
|
|
@@ -893,6 +904,7 @@ export class Datetime {
|
|
|
893
904
|
this.setValue(convertDataToISO(activeParts));
|
|
894
905
|
}
|
|
895
906
|
}
|
|
907
|
+
this.hasUnconfirmedSelection = false;
|
|
896
908
|
if (closeOverlay) {
|
|
897
909
|
this.closeParentOverlay(CONFIRM_ROLE);
|
|
898
910
|
}
|
|
@@ -908,17 +920,22 @@ export class Datetime {
|
|
|
908
920
|
this.processValue(startDate);
|
|
909
921
|
}
|
|
910
922
|
/**
|
|
911
|
-
* Emits the ionCancel event
|
|
912
|
-
*
|
|
913
|
-
*
|
|
923
|
+
* Emits the ionCancel event, discards
|
|
924
|
+
* any unconfirmed selection, and
|
|
925
|
+
* optionally closes the popover or
|
|
926
|
+
* modal that the datetime was
|
|
914
927
|
* presented in.
|
|
915
928
|
*
|
|
916
929
|
* @param closeOverlay If `true`, closes the parent overlay. Defaults to `false`.
|
|
917
930
|
*/
|
|
918
931
|
async cancel(closeOverlay = false) {
|
|
919
932
|
this.ionCancel.emit();
|
|
920
|
-
|
|
921
|
-
|
|
933
|
+
/**
|
|
934
|
+
* When a parent overlay closes, the present listener discards
|
|
935
|
+
* the selection on the next open. Otherwise discard it now.
|
|
936
|
+
*/
|
|
937
|
+
if (!closeOverlay || !this.closeParentOverlay(CANCEL_ROLE)) {
|
|
938
|
+
this.processValue(this.value);
|
|
922
939
|
}
|
|
923
940
|
}
|
|
924
941
|
/**
|
|
@@ -940,6 +957,7 @@ export class Datetime {
|
|
|
940
957
|
this.loadTimeout = setTimeout(() => {
|
|
941
958
|
this.ensureReadyIfVisible();
|
|
942
959
|
}, 100);
|
|
960
|
+
this.initializeOverlayPresentListener();
|
|
943
961
|
}
|
|
944
962
|
disconnectedCallback() {
|
|
945
963
|
if (this.clearFocusVisible) {
|
|
@@ -947,6 +965,34 @@ export class Datetime {
|
|
|
947
965
|
this.clearFocusVisible = undefined;
|
|
948
966
|
}
|
|
949
967
|
this.loadTimeoutCleanup();
|
|
968
|
+
if (this.destroyOverlayPresentListener) {
|
|
969
|
+
this.destroyOverlayPresentListener();
|
|
970
|
+
this.destroyOverlayPresentListener = undefined;
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
/**
|
|
974
|
+
* A datetime in a modal or popover stays mounted between
|
|
975
|
+
* presentations, so an unconfirmed selection would still show when
|
|
976
|
+
* it reopens. Discarding on present rather than dismiss lets app
|
|
977
|
+
* code that runs on dismiss still confirm or reset the selection,
|
|
978
|
+
* whatever order its listeners were added in.
|
|
979
|
+
*/
|
|
980
|
+
initializeOverlayPresentListener() {
|
|
981
|
+
const overlay = this.el.closest('ion-modal, ion-popover');
|
|
982
|
+
if (!overlay) {
|
|
983
|
+
return;
|
|
984
|
+
}
|
|
985
|
+
const eventName = overlay.tagName === 'ION-MODAL' ? 'ionModalWillPresent' : 'ionPopoverWillPresent';
|
|
986
|
+
const onPresent = (ev) => {
|
|
987
|
+
// Ignore nested overlays and skip when there's nothing to discard.
|
|
988
|
+
if (ev.target !== overlay || !this.hasUnconfirmedSelection) {
|
|
989
|
+
return;
|
|
990
|
+
}
|
|
991
|
+
// The overlay is still hidden, so skip the month animation.
|
|
992
|
+
this.processValue(this.value, false);
|
|
993
|
+
};
|
|
994
|
+
overlay.addEventListener(eventName, onPresent);
|
|
995
|
+
this.destroyOverlayPresentListener = () => overlay.removeEventListener(eventName, onPresent);
|
|
950
996
|
}
|
|
951
997
|
initializeListeners() {
|
|
952
998
|
this.initializeCalendarListener();
|
|
@@ -1829,7 +1875,7 @@ export class Datetime {
|
|
|
1829
1875
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
1830
1876
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
1831
1877
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
1832
|
-
return (h(Host, { key: '
|
|
1878
|
+
return (h(Host, { key: 'e9b99bb5610fc7fe879200a56dcc865c6e2f1404', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: {
|
|
1833
1879
|
...createColorClasses(color, {
|
|
1834
1880
|
[mode]: true,
|
|
1835
1881
|
['datetime-readonly']: readonly,
|
|
@@ -1841,7 +1887,7 @@ export class Datetime {
|
|
|
1841
1887
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
1842
1888
|
[`datetime-grid`]: isGridStyle,
|
|
1843
1889
|
}),
|
|
1844
|
-
} }, h("div", { key: '
|
|
1890
|
+
} }, h("div", { key: 'a5e61be2989468dc24ec8fb394116d9339b7824c', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
1845
1891
|
}
|
|
1846
1892
|
static get is() { return "ion-datetime"; }
|
|
1847
1893
|
static get encapsulation() { return "shadow"; }
|
|
@@ -2721,7 +2767,7 @@ export class Datetime {
|
|
|
2721
2767
|
"return": "Promise<void>"
|
|
2722
2768
|
},
|
|
2723
2769
|
"docs": {
|
|
2724
|
-
"text": "Emits the ionCancel event and\noptionally closes the popover\
|
|
2770
|
+
"text": "Emits the ionCancel event, discards\nany unconfirmed selection, and\noptionally closes the popover or\nmodal that the datetime was\npresented in.",
|
|
2725
2771
|
"tags": [{
|
|
2726
2772
|
"name": "param",
|
|
2727
2773
|
"text": "closeOverlay If `true`, closes the parent overlay. Defaults to `false`."
|
|
@@ -425,7 +425,11 @@
|
|
|
425
425
|
* would not be able to see what they are typing.
|
|
426
426
|
*/
|
|
427
427
|
max-width: 200px;
|
|
428
|
-
|
|
428
|
+
/**
|
|
429
|
+
* The max-width animates with the transform so the label does not
|
|
430
|
+
* reveal its full floating width while it is still at full size.
|
|
431
|
+
*/
|
|
432
|
+
transition: color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), max-width 150ms cubic-bezier(0.4, 0, 0.2, 1);
|
|
429
433
|
/**
|
|
430
434
|
* This ensures that double tapping this text
|
|
431
435
|
* clicks the <label> and focuses the input
|
|
@@ -439,8 +443,8 @@
|
|
|
439
443
|
* disable the label transition to prevent the floating label
|
|
440
444
|
* from animating as its position is adjusted.
|
|
441
445
|
*
|
|
442
|
-
* This class is applied by the start container controller,
|
|
443
|
-
* renaming it here requires renaming it there too.
|
|
446
|
+
* This class is applied by the start and end container controller,
|
|
447
|
+
* so renaming it here requires renaming it there too.
|
|
444
448
|
*/
|
|
445
449
|
:host(.skip-label-transition) .label-text-wrapper {
|
|
446
450
|
transition: none;
|