@ionic/core 9.0.1-dev.11787177893.1979eb13 → 9.0.1-dev.11787248963.10a00c73
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-63OhffQv.js → p-66ogmUZU.js} +1 -1
- package/components/p-6Vp915Y7.js +4 -0
- package/components/p-7PNwKFZi.js +4 -0
- package/components/{p-G0TxqHfe.js → p-A8MJRBIY.js} +1 -1
- package/components/p-AQcCdH2_.js +4 -0
- package/{dist/ionic/p-Dn0mqQ_R.js → components/p-B6x5_b9w.js} +1 -1
- package/components/p-B8MQjdvk.js +4 -0
- package/components/p-BA_4ZIEg.js +4 -0
- package/components/p-BFtL8t1r.js +4 -0
- package/components/{p-DaA_8eqt.js → p-BMfgF-Tv.js} +1 -1
- package/components/p-BPDxVIRr.js +4 -0
- package/components/p-BSARlp49.js +4 -0
- package/components/p-B_gJaBk0.js +4 -0
- package/components/p-BdwCtX8Y.js +4 -0
- package/components/p-Bg4OwDwb.js +4 -0
- package/components/{p-DV85C0e0.js → p-BgUIV8NQ.js} +1 -1
- package/components/p-Bnc0m4SW.js +4 -0
- package/components/p-BpLt_Ptn.js +4 -0
- package/components/p-BqBDq1Ma.js +4 -0
- package/components/{p-C_phlPMC.js → p-BrFaQbGY.js} +1 -1
- package/{dist/ionic/p-Cdjxf_yg.js → components/p-BuPAFTWI.js} +1 -1
- package/components/p-Bx2saTHs.js +4 -0
- package/components/p-BxhE2W85.js +4 -0
- package/components/p-CHswSpKy.js +4 -0
- package/components/{p-fruGqVHh.js → p-CQAjyETU.js} +1 -1
- package/components/{p-1jI5oW-W.js → p-CR9OgE6N.js} +1 -1
- package/components/p-CWETxTjE.js +4 -0
- package/components/p-CaZeZIL2.js +4 -0
- package/components/p-CaiZOhfC.js +4 -0
- package/components/p-CgvDC7hC.js +4 -0
- package/components/{p-BqPNzJf6.js → p-CqyGR9Aq.js} +1 -1
- package/components/{p-UIBJkZf8.js → p-D0YpjgON.js} +1 -1
- package/components/p-D7ysFE2B.js +4 -0
- package/{dist/ionic/p-4eOQC00Z.js → components/p-DCWfzDM8.js} +1 -1
- package/components/{p-DwpKZ6rl.js → p-DDdkefwf.js} +1 -1
- package/components/{p-DzRT60Tw.js → p-DEW7CnUc.js} +1 -1
- package/components/p-DQ1IPvZO.js +4 -0
- package/components/p-DcOH6-o5.js +4 -0
- package/components/{p-DD5fQ4EQ.js → p-DfdYCsov.js} +1 -1
- package/components/{p-DSzSbVP2.js → p-DhOoEIAs.js} +1 -1
- package/components/{p-DM-PrAoh.js → p-Dl_7b_UJ.js} +1 -1
- package/components/p-DqAI6tg7.js +4 -0
- package/components/p-DrehWDfv.js +4 -0
- package/components/{p-ryyf_ItD.js → p-DysqCsJu.js} +1 -1
- package/components/p-H1f2qsk4.js +4 -0
- package/components/p-HVYBAhFx.js +4 -0
- package/components/{p-CbhUdtjf.js → p-Kmrg3Fed.js} +1 -1
- package/components/{p-Bjig0DJK.js → p-RFfE9hF6.js} +1 -1
- package/{dist/ionic/p-CBWAXjA5.js → components/p-SR-LLqp_.js} +1 -1
- package/components/p-eFI3mtEX.js +4 -0
- package/components/p-gFwXiYC_.js +4 -0
- package/components/p-tX3UxCnU.js +4 -0
- package/components/p-v2NpoOHp.js +4 -0
- package/dist/cjs/{animation-C0mOHzej.js → animation-D-OqR4a4.js} +1 -1
- package/dist/cjs/{app-globals-BREG4twP.js → app-globals-BzgwARwJ.js} +1 -1
- package/dist/cjs/{button-active-CVMevT9a.js → button-active-BlWSD7uK.js} +2 -2
- package/dist/cjs/{format-pp0Du3K-.js → format-D7ig6Vm0.js} +1 -1
- package/dist/cjs/{framework-delegate-Dfo5XsGv.js → framework-delegate-BZUx4TnE.js} +1 -1
- package/dist/cjs/{gesture-controller-BDUH7687.js → gesture-controller-CeJslptU.js} +6 -14
- package/dist/cjs/{hardware-back-button-fqpYh-kd.js → hardware-back-button-JOAEFSzc.js} +1 -1
- package/dist/cjs/{helpers-YPQybDph.js → helpers-Dj5o76mq.js} +1 -1
- package/dist/cjs/{index-BLdJCcJY.js → index-2sO-zkZ2.js} +4 -4
- package/dist/cjs/{index-uvry__L4.js → index-BrVMoqUk.js} +3 -1
- package/dist/cjs/{index-zVCah4Uz.js → index-C8zH6b3d.js} +2 -2
- package/dist/cjs/{index-DXsPSne6.js → index-CZ6vzt_q.js} +5 -5
- package/dist/cjs/{index-DDg31ZF5.js → index-Csue6G3m.js} +2 -2
- package/dist/cjs/{index-DwlRtFZe.js → index-DRPqwSvU.js} +1 -1
- package/dist/cjs/{index-B7zJsYWS.js → index-EJLjthTK.js} +1 -2
- package/dist/cjs/index.cjs.js +14 -14
- package/dist/cjs/{input-shims-Cbu1fcye.js → input-shims-Bh7bnt2v.js} +3 -3
- package/dist/cjs/{input.utils-BZdMWVrt.js → input.utils-Cq3g9uHy.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +335 -364
- package/dist/cjs/ion-action-sheet.cjs.entry.js +60 -140
- package/dist/cjs/ion-alert.cjs.entry.js +67 -159
- package/dist/cjs/ion-app_8.cjs.entry.js +163 -258
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -8
- package/dist/cjs/ion-back-button.cjs.entry.js +21 -45
- package/dist/cjs/ion-backdrop.cjs.entry.js +14 -18
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +117 -195
- package/dist/cjs/ion-button_2.cjs.entry.js +61 -130
- package/dist/cjs/ion-card_5.cjs.entry.js +28 -80
- package/dist/cjs/ion-checkbox.cjs.entry.js +98 -147
- package/dist/cjs/ion-chip.cjs.entry.js +10 -16
- package/dist/cjs/ion-col_3.cjs.entry.js +6 -126
- package/dist/cjs/ion-datetime-button.cjs.entry.js +232 -248
- package/dist/cjs/ion-datetime.cjs.entry.js +775 -953
- package/dist/cjs/ion-fab_3.cjs.entry.js +78 -136
- package/dist/cjs/ion-img.cjs.entry.js +11 -31
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +71 -98
- package/dist/cjs/ion-input-otp.cjs.entry.js +352 -424
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +14 -29
- package/dist/cjs/ion-input.cjs.entry.js +158 -302
- package/dist/cjs/ion-item-option_3.cjs.entry.js +54 -98
- package/dist/cjs/ion-item_8.cjs.entry.js +61 -157
- package/dist/cjs/ion-loading.cjs.entry.js +54 -131
- package/dist/cjs/ion-menu_3.cjs.entry.js +94 -158
- package/dist/cjs/ion-modal.cjs.entry.js +206 -362
- package/dist/cjs/ion-nav_2.cjs.entry.js +26 -78
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +23 -33
- package/dist/cjs/ion-picker-column.cjs.entry.js +389 -410
- package/dist/cjs/ion-picker.cjs.entry.js +390 -400
- package/dist/cjs/ion-popover.cjs.entry.js +184 -292
- package/dist/cjs/ion-progress-bar.cjs.entry.js +23 -29
- package/dist/cjs/ion-radio_2.cjs.entry.js +128 -201
- package/dist/cjs/ion-range.cjs.entry.js +223 -293
- package/dist/cjs/ion-refresher_2.cjs.entry.js +84 -156
- package/dist/cjs/ion-reorder_2.cjs.entry.js +19 -49
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +13 -13
- package/dist/cjs/ion-route_4.cjs.entry.js +45 -144
- package/dist/cjs/ion-searchbar.cjs.entry.js +182 -268
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +12 -24
- package/dist/cjs/ion-segment_2.cjs.entry.js +122 -161
- package/dist/cjs/ion-select-modal.cjs.entry.js +19 -21
- package/dist/cjs/ion-select_3.cjs.entry.js +151 -319
- package/dist/cjs/ion-spinner.cjs.entry.js +6 -21
- package/dist/cjs/ion-split-pane.cjs.entry.js +14 -27
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +32 -89
- package/dist/cjs/ion-tab_2.cjs.entry.js +22 -49
- package/dist/cjs/ion-text.cjs.entry.js +2 -8
- package/dist/cjs/ion-textarea.cjs.entry.js +139 -256
- package/dist/cjs/ion-toast.cjs.entry.js +106 -221
- package/dist/cjs/ion-toggle.cjs.entry.js +114 -165
- package/dist/cjs/{ionic-global-k6hOWWpn.js → ionic-global-DvgIzM2F.js} +1 -1
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-zTmJz8T-.js → ios.transition-zIgdoSYe.js} +4 -4
- package/dist/cjs/{item-multiple-inputs-BdYSbfKN.js → item-multiple-inputs-DG-ZGm6j.js} +1 -1
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-nb_4pUXu.js → md.transition-CXeJ9rfh.js} +4 -4
- package/dist/cjs/{overlays-KaNVDNqC.js → overlays-Bg0auTQa.js} +6 -6
- package/dist/cjs/{select-option-render-pULCGldr.js → select-option-render-7m1WdFzF.js} +2 -2
- package/dist/cjs/{slot-mutation-controller-DPHmqXdV.js → slot-mutation-controller-BJEJzx_e.js} +1 -1
- package/dist/cjs/{status-tap-o9IIymsP.js → status-tap-DxbUM5XX.js} +3 -3
- package/dist/cjs/{swipe-back-B7X9VOlH.js → swipe-back-F_DBt-Aw.js} +4 -4
- package/dist/collection/components/accordion/accordion.js +310 -314
- package/dist/collection/components/accordion-group/accordion-group.js +23 -46
- package/dist/collection/components/action-sheet/action-sheet.js +49 -128
- package/dist/collection/components/action-sheet/test/basic/fixture.js +0 -3
- package/dist/collection/components/alert/alert.js +56 -147
- package/dist/collection/components/app/app.js +0 -3
- package/dist/collection/components/back-button/back-button.js +19 -42
- package/dist/collection/components/backdrop/backdrop.js +14 -16
- package/dist/collection/components/badge/badge.js +0 -6
- package/dist/collection/components/breadcrumb/breadcrumb.js +29 -90
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +87 -102
- package/dist/collection/components/button/button.js +59 -127
- package/dist/collection/components/buttons/buttons.js +15 -13
- package/dist/collection/components/card/card.js +20 -53
- package/dist/collection/components/card-header/card-header.js +8 -12
- package/dist/collection/components/card-subtitle/card-subtitle.js +0 -6
- package/dist/collection/components/card-title/card-title.js +0 -6
- package/dist/collection/components/checkbox/checkbox.js +95 -143
- package/dist/collection/components/chip/chip.js +10 -14
- package/dist/collection/components/col/col.js +0 -120
- package/dist/collection/components/content/content.js +60 -90
- package/dist/collection/components/datetime/datetime.js +762 -939
- package/dist/collection/components/datetime-button/datetime-button.js +229 -244
- package/dist/collection/components/fab/fab.js +13 -20
- package/dist/collection/components/fab-button/fab-button.js +54 -103
- package/dist/collection/components/fab-list/fab-list.js +11 -10
- package/dist/collection/components/footer/footer.js +43 -49
- package/dist/collection/components/grid/grid.js +6 -4
- package/dist/collection/components/header/header.js +23 -33
- package/dist/collection/components/img/img.js +9 -28
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +66 -73
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +3 -20
- package/dist/collection/components/input/input.js +154 -297
- package/dist/collection/components/input-otp/input-otp.js +350 -421
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +13 -27
- package/dist/collection/components/item/item.js +37 -80
- package/dist/collection/components/item-divider/item-divider.js +10 -15
- package/dist/collection/components/item-option/item-option.js +20 -48
- package/dist/collection/components/item-options/item-options.js +7 -10
- package/dist/collection/components/item-sliding/item-sliding.js +26 -36
- package/dist/collection/components/label/label.js +4 -24
- package/dist/collection/components/list/list.js +6 -9
- package/dist/collection/components/list-header/list-header.js +0 -10
- package/dist/collection/components/loading/loading.js +46 -122
- package/dist/collection/components/menu/menu.js +55 -99
- package/dist/collection/components/menu-button/menu-button.js +19 -28
- package/dist/collection/components/menu-toggle/menu-toggle.js +13 -20
- package/dist/collection/components/modal/modal.js +196 -351
- package/dist/collection/components/modal/test/fixtures.js +0 -3
- package/dist/collection/components/nav/nav.js +12 -45
- package/dist/collection/components/nav/view-controller.js +1 -7
- package/dist/collection/components/nav-link/nav-link.js +9 -20
- package/dist/collection/components/note/note.js +0 -6
- package/dist/collection/components/picker/picker.js +388 -397
- package/dist/collection/components/picker-column/picker-column.js +389 -409
- package/dist/collection/components/picker-column-option/picker-column-option.js +21 -30
- package/dist/collection/components/popover/popover.js +176 -283
- package/dist/collection/components/popover/test/fixture.js +0 -1
- package/dist/collection/components/progress-bar/progress-bar.js +22 -26
- package/dist/collection/components/radio/radio.js +62 -98
- package/dist/collection/components/radio-group/radio-group.js +64 -99
- package/dist/collection/components/radio-group/test/fixtures.js +0 -2
- package/dist/collection/components/range/range.js +220 -289
- package/dist/collection/components/refresher/refresher.js +74 -107
- package/dist/collection/components/refresher-content/refresher-content.js +3 -40
- package/dist/collection/components/reorder/reorder.js +0 -1
- package/dist/collection/components/reorder-group/reorder-group.js +14 -43
- package/dist/collection/components/ripple-effect/ripple-effect.js +12 -11
- package/dist/collection/components/route/route.js +9 -38
- package/dist/collection/components/route-redirect/route-redirect.js +0 -31
- package/dist/collection/components/router/router.js +27 -35
- package/dist/collection/components/router/utils/matching.js +0 -1
- package/dist/collection/components/router-link/router-link.js +10 -35
- package/dist/collection/components/router-outlet/router-outlet.js +12 -34
- package/dist/collection/components/searchbar/searchbar.js +180 -265
- package/dist/collection/components/segment/segment.js +76 -113
- package/dist/collection/components/segment-button/segment-button.js +44 -44
- package/dist/collection/components/segment-view/segment-view.js +12 -23
- package/dist/collection/components/select/select.js +127 -240
- package/dist/collection/components/select-modal/select-modal.js +11 -12
- package/dist/collection/components/select-modal/test/fixtures.js +1 -8
- package/dist/collection/components/select-option/select-option.js +7 -44
- package/dist/collection/components/select-popover/select-popover.js +10 -25
- package/dist/collection/components/select-popover/test/fixtures.js +1 -8
- package/dist/collection/components/skeleton-text/skeleton-text.js +6 -10
- package/dist/collection/components/spinner/spinner.js +6 -19
- package/dist/collection/components/split-pane/split-pane.js +13 -25
- package/dist/collection/components/tab/tab.js +4 -15
- package/dist/collection/components/tab-bar/tab-bar.js +12 -30
- package/dist/collection/components/tab-button/tab-button.js +19 -56
- package/dist/collection/components/tabs/tabs.js +17 -31
- package/dist/collection/components/text/text.js +0 -6
- package/dist/collection/components/textarea/textarea.js +135 -251
- package/dist/collection/components/title/title.js +0 -16
- package/dist/collection/components/toast/toast.js +97 -211
- package/dist/collection/components/toggle/toggle.js +111 -161
- package/dist/collection/components/toolbar/toolbar.js +3 -8
- package/dist/collection/global/config.js +3 -1
- package/dist/collection/utils/gesture/gesture-controller.js +6 -14
- package/dist/collection/utils/sanitization/index.js +0 -1
- package/dist/collection/utils/test/late-props/late-props.js +69 -0
- package/dist/collection/utils/test/playwright/page/event-spy.js +8 -9
- package/dist/collection/utils/test/press-keys.js +1 -4
- package/dist/docs.json +1 -1
- package/dist/esm/{animation-CGFdmGk9.js → animation-TxGPYeDn.js} +1 -1
- package/dist/esm/{app-globals-CYmMeGdU.js → app-globals-Do8rJest.js} +1 -1
- package/dist/esm/{button-active-BDOsVAiZ.js → button-active-ChA4D-ml.js} +2 -2
- package/dist/esm/{format-Dcwga61t.js → format-CVk5e_GP.js} +2 -2
- package/dist/esm/{framework-delegate-BHTU2Ip9.js → framework-delegate-DaLWnISz.js} +1 -1
- package/dist/esm/{gesture-controller-TXPDHL13.js → gesture-controller-B_gJaBk0.js} +6 -14
- package/dist/esm/{hardware-back-button-gLJHMX_F.js → hardware-back-button-D8W4L0JP.js} +1 -1
- package/dist/esm/{helpers-CAGf8Wgp.js → helpers-BIgoInJU.js} +1 -1
- package/dist/esm/{index-DcPaH5uL.js → index-BmLuEdV7.js} +1 -1
- package/dist/esm/{index-T0JxBI8V.js → index-BmOR8tCv.js} +2 -2
- package/dist/esm/{index-CqneaaGd.js → index-C5ZdL0qp.js} +5 -5
- package/dist/esm/{index-WlteAIqz.js → index-C8Dsa6li.js} +4 -4
- package/dist/esm/{index-ChhhtsGZ.js → index-CKYcsw8f.js} +3 -1
- package/dist/esm/{index-Clc-28O1.js → index-DHw2lZxe.js} +2 -2
- package/dist/esm/{index-CKM1DdGm.js → index-elneMH8y.js} +1 -2
- package/dist/esm/index.js +14 -14
- package/dist/esm/{input-shims-B8sfni1e.js → input-shims-09NN97kF.js} +3 -3
- package/dist/esm/{input.utils-B1ValN_N.js → input.utils-BxyH9l1w.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +335 -364
- package/dist/esm/ion-action-sheet.entry.js +60 -140
- package/dist/esm/ion-alert.entry.js +67 -159
- package/dist/esm/ion-app_8.entry.js +163 -258
- package/dist/esm/ion-avatar_3.entry.js +2 -8
- package/dist/esm/ion-back-button.entry.js +21 -45
- package/dist/esm/ion-backdrop.entry.js +14 -18
- package/dist/esm/ion-breadcrumb_2.entry.js +117 -195
- package/dist/esm/ion-button_2.entry.js +61 -130
- package/dist/esm/ion-card_5.entry.js +28 -80
- package/dist/esm/ion-checkbox.entry.js +98 -147
- package/dist/esm/ion-chip.entry.js +10 -16
- package/dist/esm/ion-col_3.entry.js +6 -126
- package/dist/esm/ion-datetime-button.entry.js +232 -248
- package/dist/esm/ion-datetime.entry.js +775 -953
- package/dist/esm/ion-fab_3.entry.js +78 -136
- package/dist/esm/ion-img.entry.js +11 -31
- package/dist/esm/ion-infinite-scroll_2.entry.js +71 -98
- package/dist/esm/ion-input-otp.entry.js +352 -424
- package/dist/esm/ion-input-password-toggle.entry.js +14 -29
- package/dist/esm/ion-input.entry.js +158 -302
- package/dist/esm/ion-item-option_3.entry.js +54 -98
- package/dist/esm/ion-item_8.entry.js +61 -157
- package/dist/esm/ion-loading.entry.js +54 -131
- package/dist/esm/ion-menu_3.entry.js +94 -158
- package/dist/esm/ion-modal.entry.js +206 -362
- package/dist/esm/ion-nav_2.entry.js +26 -78
- package/dist/esm/ion-picker-column-option.entry.js +23 -33
- package/dist/esm/ion-picker-column.entry.js +389 -410
- package/dist/esm/ion-picker.entry.js +390 -400
- package/dist/esm/ion-popover.entry.js +184 -292
- package/dist/esm/ion-progress-bar.entry.js +23 -29
- package/dist/esm/ion-radio_2.entry.js +128 -201
- package/dist/esm/ion-range.entry.js +223 -293
- package/dist/esm/ion-refresher_2.entry.js +84 -156
- package/dist/esm/ion-reorder_2.entry.js +19 -49
- package/dist/esm/ion-ripple-effect.entry.js +13 -13
- package/dist/esm/ion-route_4.entry.js +45 -144
- package/dist/esm/ion-searchbar.entry.js +182 -268
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +12 -24
- package/dist/esm/ion-segment_2.entry.js +122 -161
- package/dist/esm/ion-select-modal.entry.js +19 -21
- package/dist/esm/ion-select_3.entry.js +151 -319
- package/dist/esm/ion-spinner.entry.js +6 -21
- package/dist/esm/ion-split-pane.entry.js +14 -27
- package/dist/esm/ion-tab-bar_2.entry.js +32 -89
- package/dist/esm/ion-tab_2.entry.js +22 -49
- package/dist/esm/ion-text.entry.js +2 -8
- package/dist/esm/ion-textarea.entry.js +139 -256
- package/dist/esm/ion-toast.entry.js +106 -221
- package/dist/esm/ion-toggle.entry.js +114 -165
- package/dist/esm/{ionic-global-BVB7BrLT.js → ionic-global-lrowsHfi.js} +1 -1
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-DXRCmcbC.js → ios.transition-BQhADrk1.js} +4 -4
- package/dist/esm/{item-multiple-inputs-rU8VaNNg.js → item-multiple-inputs-D_N3fDkD.js} +1 -1
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-BMngO4i_.js → md.transition-D58NpmRa.js} +4 -4
- package/dist/esm/{overlays-CPmIs9Ls.js → overlays-BpnIFlXI.js} +6 -6
- package/dist/esm/{select-option-render-C4m76VGH.js → select-option-render-lIuu64EV.js} +2 -2
- package/dist/esm/{slot-mutation-controller-DiE_C9un.js → slot-mutation-controller-rS_T3FDR.js} +1 -1
- package/dist/esm/{status-tap-CHB7KwIb.js → status-tap-CpFQMLl6.js} +3 -3
- package/dist/esm/{swipe-back-C9HW1bug.js → swipe-back-rmc7zeNW.js} +4 -4
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-05800a02.entry.js +4 -0
- package/dist/ionic/p-0eb50dca.entry.js +4 -0
- package/dist/ionic/p-16e9f542.entry.js +4 -0
- package/dist/ionic/p-18d532a3.entry.js +4 -0
- package/dist/ionic/p-1db2afb4.entry.js +4 -0
- package/dist/ionic/p-1df75f9e.entry.js +4 -0
- package/dist/ionic/p-295ff427.entry.js +4 -0
- package/dist/ionic/p-34b9379b.entry.js +4 -0
- package/dist/ionic/p-39a8d4e0.entry.js +4 -0
- package/dist/ionic/p-4437015c.entry.js +4 -0
- package/dist/ionic/p-478035a7.entry.js +4 -0
- package/dist/ionic/p-485fb218.entry.js +4 -0
- package/dist/ionic/p-48c859fe.entry.js +4 -0
- package/dist/ionic/p-49b9d405.entry.js +4 -0
- package/dist/ionic/p-56307aea.entry.js +4 -0
- package/dist/ionic/p-5b906fd6.entry.js +4 -0
- package/dist/ionic/p-5ee2d7b1.entry.js +4 -0
- package/dist/ionic/p-5f216b79.entry.js +4 -0
- package/dist/ionic/p-61c799d1.entry.js +4 -0
- package/dist/ionic/p-63bbba8d.entry.js +4 -0
- package/dist/ionic/p-68507e70.entry.js +4 -0
- package/dist/ionic/{p-ded69ceb.entry.js → p-6f048604.entry.js} +1 -1
- package/dist/ionic/p-70ee8888.entry.js +4 -0
- package/dist/ionic/p-72ad7c64.entry.js +4 -0
- package/dist/ionic/p-75887ee0.entry.js +4 -0
- package/dist/ionic/p-873a315a.entry.js +4 -0
- package/dist/ionic/p-881b6954.entry.js +4 -0
- package/dist/ionic/p-886d9e66.entry.js +4 -0
- package/dist/ionic/p-8dd4c026.entry.js +4 -0
- package/dist/ionic/p-8e007f11.entry.js +4 -0
- package/dist/ionic/p-8f51110d.entry.js +4 -0
- package/dist/ionic/p-90ba736e.entry.js +4 -0
- package/dist/ionic/p-959df5f8.entry.js +4 -0
- package/dist/ionic/p-9e455875.entry.js +4 -0
- package/dist/ionic/{p-CBR_W98Z.js → p-9wczfs_v.js} +1 -1
- package/dist/ionic/p-B1Y7LZhV.js +4 -0
- package/dist/ionic/p-B5RyLYvl.js +4 -0
- package/dist/ionic/{p-CPcPmkGv.js → p-BQv5i5Kf.js} +1 -1
- package/{components/p-8FN7p701.js → dist/ionic/p-BZVE25Gu.js} +1 -1
- package/{components/p-DFvZn99E.js → dist/ionic/p-BZxjcGRP.js} +1 -1
- package/dist/ionic/p-B_gJaBk0.js +4 -0
- package/dist/ionic/p-BnGA34Pd.js +4 -0
- package/dist/ionic/p-ByLaqOPm.js +4 -0
- package/dist/ionic/p-C06QNN45.js +4 -0
- package/dist/ionic/p-C4IBDDj6.js +4 -0
- package/dist/ionic/p-CCVlNZ__.js +4 -0
- package/dist/ionic/{p-CMRtMbJc.js → p-CDBop-kz.js} +1 -1
- package/dist/ionic/p-CKYcsw8f.js +5 -0
- package/dist/ionic/p-CazSodad.js +4 -0
- package/{components/p-ia3IDdJS.js → dist/ionic/p-ClrlQU2y.js} +1 -1
- package/dist/ionic/{p-UIBJkZf8.js → p-D0YpjgON.js} +1 -1
- package/dist/ionic/p-D0dfUysx.js +4 -0
- package/dist/ionic/{p-BB0LlG4y.js → p-D9yvytgv.js} +1 -1
- package/{components/p-C5KYjZWD.js → dist/ionic/p-DF_Uqql8.js} +1 -1
- package/dist/ionic/{p-BYEAtHr-.js → p-DXJgZWgi.js} +1 -1
- package/dist/ionic/{p-D94_RztK.js → p-DdhHqKj-.js} +1 -1
- package/dist/ionic/p-De0eY881.js +4 -0
- package/dist/ionic/p-DgUL3JbO.js +4 -0
- package/dist/ionic/{p-7CBuOvEo.js → p-RzUn7cKs.js} +1 -1
- package/dist/ionic/p-VquyMbjp.js +4 -0
- package/dist/ionic/p-a0fee899.entry.js +4 -0
- package/dist/ionic/p-a54bcd16.entry.js +4 -0
- package/dist/ionic/p-aebc4d69.entry.js +4 -0
- package/dist/ionic/p-b5f37106.entry.js +4 -0
- package/dist/ionic/{p-40424a88.entry.js → p-b62bfce8.entry.js} +1 -1
- package/dist/ionic/p-b7a11b58.entry.js +4 -0
- package/dist/ionic/p-bbf6878c.entry.js +4 -0
- package/dist/ionic/p-c49165af.entry.js +4 -0
- package/dist/ionic/p-cad4eccf.entry.js +4 -0
- package/dist/ionic/p-cdc5115e.entry.js +4 -0
- package/dist/ionic/p-d3384a40.entry.js +4 -0
- package/dist/ionic/p-d8bae128.entry.js +4 -0
- package/dist/ionic/p-d8deff43.entry.js +4 -0
- package/dist/ionic/p-ddfb7e5f.entry.js +4 -0
- package/dist/ionic/p-e538f18d.entry.js +4 -0
- package/dist/ionic/p-f376876b.entry.js +4 -0
- package/dist/ionic/p-f7dd1ed9.entry.js +4 -0
- package/dist/ionic/p-fbd83d4c.entry.js +4 -0
- package/dist/types/components/refresher/refresher.d.ts +4 -4
- package/hydrate/index.js +5445 -8382
- package/hydrate/index.mjs +5445 -8382
- package/package.json +1 -1
- package/components/p--m5cCjbK.js +0 -4
- package/components/p-B4uHHhPK.js +0 -4
- package/components/p-BNJOu1Q2.js +0 -4
- package/components/p-BOvLNVKq.js +0 -4
- package/components/p-BeamQXHF.js +0 -4
- package/components/p-BjluhQMI.js +0 -4
- package/components/p-BlsIikdZ.js +0 -4
- package/components/p-BrD9Xv62.js +0 -4
- package/components/p-BvJqoZ5R.js +0 -4
- package/components/p-Bz6z3Asd.js +0 -4
- package/components/p-C6HnVvHO.js +0 -4
- package/components/p-C7jvh5Wy.js +0 -4
- package/components/p-C9BGR5fy.js +0 -4
- package/components/p-CB-y1CdP.js +0 -4
- package/components/p-CHH3loEE.js +0 -4
- package/components/p-CJKUWjmg.js +0 -4
- package/components/p-CMLAwl_N.js +0 -4
- package/components/p-CejmQs3h.js +0 -4
- package/components/p-CtZqa4HM.js +0 -4
- package/components/p-D9qIVSWm.js +0 -4
- package/components/p-DE-3iMNW.js +0 -4
- package/components/p-DHFt2rdc.js +0 -4
- package/components/p-D_RCyzwu.js +0 -4
- package/components/p-D_tD8r3L.js +0 -4
- package/components/p-DjCtLZbF.js +0 -4
- package/components/p-Dmd2xqCe.js +0 -4
- package/components/p-G6JR-cr_.js +0 -4
- package/components/p-GG5GhznE.js +0 -4
- package/components/p-TXPDHL13.js +0 -4
- package/components/p-_IKFD3ID.js +0 -4
- package/components/p-dKq2jIum.js +0 -4
- package/components/p-iYhH60Tc.js +0 -4
- package/dist/ionic/p-06ec7136.entry.js +0 -4
- package/dist/ionic/p-09fe4fa3.entry.js +0 -4
- package/dist/ionic/p-10d45a07.entry.js +0 -4
- package/dist/ionic/p-208c8a07.entry.js +0 -4
- package/dist/ionic/p-212474fa.entry.js +0 -4
- package/dist/ionic/p-2eef1396.entry.js +0 -4
- package/dist/ionic/p-347e005d.entry.js +0 -4
- package/dist/ionic/p-3b071259.entry.js +0 -4
- package/dist/ionic/p-4204184c.entry.js +0 -4
- package/dist/ionic/p-47464391.entry.js +0 -4
- package/dist/ionic/p-4f9c9126.entry.js +0 -4
- package/dist/ionic/p-5JsKPLJD.js +0 -4
- package/dist/ionic/p-5bc485c6.entry.js +0 -4
- package/dist/ionic/p-603a61e6.entry.js +0 -4
- package/dist/ionic/p-60576951.entry.js +0 -4
- package/dist/ionic/p-67a81d33.entry.js +0 -4
- package/dist/ionic/p-6affb775.entry.js +0 -4
- package/dist/ionic/p-6f120c25.entry.js +0 -4
- package/dist/ionic/p-71c82b60.entry.js +0 -4
- package/dist/ionic/p-79325ffe.entry.js +0 -4
- package/dist/ionic/p-7e4d51fa.entry.js +0 -4
- package/dist/ionic/p-7f5d4664.entry.js +0 -4
- package/dist/ionic/p-80ee82fc.entry.js +0 -4
- package/dist/ionic/p-84af7dbc.entry.js +0 -4
- package/dist/ionic/p-89ca830a.entry.js +0 -4
- package/dist/ionic/p-93b8ec8f.entry.js +0 -4
- package/dist/ionic/p-946f65c2.entry.js +0 -4
- package/dist/ionic/p-983b6c91.entry.js +0 -4
- package/dist/ionic/p-9c4b39fb.entry.js +0 -4
- package/dist/ionic/p-B1NEZUzQ.js +0 -4
- package/dist/ionic/p-B1ck5iy-.js +0 -4
- package/dist/ionic/p-B4FrqdW0.js +0 -4
- package/dist/ionic/p-C-94tAim.js +0 -4
- package/dist/ionic/p-C-eHZMYE.js +0 -4
- package/dist/ionic/p-CaRuIadB.js +0 -4
- package/dist/ionic/p-ChhhtsGZ.js +0 -5
- package/dist/ionic/p-CzS1qWve.js +0 -4
- package/dist/ionic/p-DjjfauRM.js +0 -4
- package/dist/ionic/p-DkUB-ROc.js +0 -4
- package/dist/ionic/p-DplOqGUv.js +0 -4
- package/dist/ionic/p-Dst_XmZh.js +0 -4
- package/dist/ionic/p-TXPDHL13.js +0 -4
- package/dist/ionic/p-a438b193.entry.js +0 -4
- package/dist/ionic/p-babaaaa7.entry.js +0 -4
- package/dist/ionic/p-be08d500.entry.js +0 -4
- package/dist/ionic/p-be9a4f51.entry.js +0 -4
- package/dist/ionic/p-c00d3092.entry.js +0 -4
- package/dist/ionic/p-c36dc8f5.entry.js +0 -4
- package/dist/ionic/p-c72a7e17.entry.js +0 -4
- package/dist/ionic/p-c8edd88c.entry.js +0 -4
- package/dist/ionic/p-ce0e380b.entry.js +0 -4
- package/dist/ionic/p-ce32912b.entry.js +0 -4
- package/dist/ionic/p-d07cf130.entry.js +0 -4
- package/dist/ionic/p-d27edeb3.entry.js +0 -4
- package/dist/ionic/p-d5d2c506.entry.js +0 -4
- package/dist/ionic/p-d5e31ca9.entry.js +0 -4
- package/dist/ionic/p-de91444f.entry.js +0 -4
- package/dist/ionic/p-df72866d.entry.js +0 -4
- package/dist/ionic/p-e47e3151.entry.js +0 -4
- package/dist/ionic/p-e621e5e8.entry.js +0 -4
- package/dist/ionic/p-eea9cf93.entry.js +0 -4
- package/dist/ionic/p-f402f5a4.entry.js +0 -4
- package/dist/ionic/p-fe1bfbcf.entry.js +0 -4
- package/dist/ionic/p-ffb90460.entry.js +0 -4
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
7
|
-
var helpers = require('./helpers-
|
|
6
|
+
var index = require('./index-BrVMoqUk.js');
|
|
7
|
+
var helpers = require('./helpers-Dj5o76mq.js');
|
|
8
8
|
var theme = require('./theme-Bw0rpaNN.js');
|
|
9
|
-
var ionicGlobal = require('./ionic-global-
|
|
10
|
-
var format = require('./format-
|
|
9
|
+
var ionicGlobal = require('./ionic-global-DvgIzM2F.js');
|
|
10
|
+
var format = require('./format-D7ig6Vm0.js');
|
|
11
11
|
require('./dir-zwDPRE5K.js');
|
|
12
12
|
|
|
13
13
|
const datetimeButtonIosCss = () => `:host{display:-ms-flexbox;display:flex;-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center}:host button{border-radius:8px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;margin-top:0px;margin-bottom:0px;position:relative;-webkit-transition:150ms color ease-in-out;transition:150ms color ease-in-out;border:none;background:var(--ion-color-step-300, var(--ion-background-color-step-300, #edeef0));color:var(--ion-text-color, #000);font-family:inherit;font-size:1rem;cursor:pointer;overflow:hidden;-webkit-appearance:none;-moz-appearance:none;appearance:none}:host(.time-active) #time-button,:host(.date-active) #date-button{color:var(--ion-color-primary, #0054e9)}:host(.ion-color.time-active) #time-button,:host(.ion-color.date-active) #date-button{color:var(--ion-color-base)}:host(.datetime-button-disabled){pointer-events:none}:host(.datetime-button-disabled) button{opacity:0.4}:host button{-webkit-padding-start:13px;padding-inline-start:13px;-webkit-padding-end:13px;padding-inline-end:13px;padding-top:7px;padding-bottom:7px}:host button.ion-activated{color:var(--ion-color-step-600, var(--ion-text-color-step-400, #666666))}`;
|
|
@@ -17,32 +17,234 @@ const datetimeButtonMdCss = () => `:host{display:-ms-flexbox;display:flex;-ms-fl
|
|
|
17
17
|
const DatetimeButton = class {
|
|
18
18
|
constructor(hostRef) {
|
|
19
19
|
index.registerInstance(this, hostRef);
|
|
20
|
+
this.datetimeEl = null;
|
|
21
|
+
this.overlayEl = null;
|
|
22
|
+
this.datetimePresentation = 'date-time';
|
|
23
|
+
this.datetimeActive = false;
|
|
24
|
+
/**
|
|
25
|
+
* If `true`, the user cannot interact with the button.
|
|
26
|
+
*/
|
|
27
|
+
this.disabled = false;
|
|
28
|
+
/**
|
|
29
|
+
* Accepts one or more string values and converts
|
|
30
|
+
* them to DatetimeParts. This is done so datetime-button
|
|
31
|
+
* can work with an array internally and not need
|
|
32
|
+
* to keep checking if the datetime value is `string` or `string[]`.
|
|
33
|
+
*/
|
|
34
|
+
this.getParsedDateValues = (value) => {
|
|
35
|
+
if (value === undefined || value === null) {
|
|
36
|
+
return [];
|
|
37
|
+
}
|
|
38
|
+
if (Array.isArray(value)) {
|
|
39
|
+
return value;
|
|
40
|
+
}
|
|
41
|
+
return [value];
|
|
42
|
+
};
|
|
43
|
+
/**
|
|
44
|
+
* Check the value property on the linked
|
|
45
|
+
* ion-datetime and then format it according
|
|
46
|
+
* to the locale specified on ion-datetime.
|
|
47
|
+
*/
|
|
48
|
+
this.setDateTimeText = async () => {
|
|
49
|
+
const { datetimeEl, datetimePresentation } = this;
|
|
50
|
+
if (!datetimeEl) {
|
|
51
|
+
return;
|
|
52
|
+
}
|
|
53
|
+
const { value, locale, formatOptions, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
|
|
54
|
+
const parsedValues = this.getParsedDateValues(value);
|
|
55
|
+
/**
|
|
56
|
+
* Both ion-datetime and ion-datetime-button default to today's date and
|
|
57
|
+
* time if no value is set. We read the datetime's computed default so the
|
|
58
|
+
* button respects the same constraints (min, max, minuteValues, etc.) that
|
|
59
|
+
* the datetime applies to its own fallback, instead of using a raw "now".
|
|
60
|
+
*/
|
|
61
|
+
const parsedDatetimes = parsedValues.length > 0 ? format.parseDate(parsedValues) : [await datetimeEl.getDefaultPart()];
|
|
62
|
+
if (!parsedDatetimes) {
|
|
63
|
+
return;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* If developers incorrectly use multiple="true"
|
|
67
|
+
* with non "date" datetimes, then just select
|
|
68
|
+
* the first value so the interface does
|
|
69
|
+
* not appear broken. Datetime will provide a
|
|
70
|
+
* warning in the console.
|
|
71
|
+
*/
|
|
72
|
+
const firstParsedDatetime = parsedDatetimes[0];
|
|
73
|
+
const computedHourCycle = format.getHourCycle(locale, hourCycle);
|
|
74
|
+
this.dateText = this.timeText = undefined;
|
|
75
|
+
switch (datetimePresentation) {
|
|
76
|
+
case 'date-time':
|
|
77
|
+
case 'time-date':
|
|
78
|
+
const dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' });
|
|
79
|
+
const timeText = format.getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions?.time);
|
|
80
|
+
if (preferWheel) {
|
|
81
|
+
this.dateText = `${dateText} ${timeText}`;
|
|
82
|
+
}
|
|
83
|
+
else {
|
|
84
|
+
this.dateText = dateText;
|
|
85
|
+
this.timeText = timeText;
|
|
86
|
+
}
|
|
87
|
+
break;
|
|
88
|
+
case 'date':
|
|
89
|
+
if (multiple && parsedValues.length !== 1) {
|
|
90
|
+
let headerText = `${parsedValues.length} days`; // default/fallback for multiple selection
|
|
91
|
+
if (titleSelectedDatesFormatter !== undefined) {
|
|
92
|
+
try {
|
|
93
|
+
headerText = titleSelectedDatesFormatter(parsedValues);
|
|
94
|
+
}
|
|
95
|
+
catch (e) {
|
|
96
|
+
index.printIonError('[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:', e);
|
|
97
|
+
}
|
|
98
|
+
}
|
|
99
|
+
this.dateText = headerText;
|
|
100
|
+
}
|
|
101
|
+
else {
|
|
102
|
+
this.dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' });
|
|
103
|
+
}
|
|
104
|
+
break;
|
|
105
|
+
case 'time':
|
|
106
|
+
this.timeText = format.getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions?.time);
|
|
107
|
+
break;
|
|
108
|
+
case 'month-year':
|
|
109
|
+
this.dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'long', year: 'numeric' });
|
|
110
|
+
break;
|
|
111
|
+
case 'month':
|
|
112
|
+
this.dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.time ?? { month: 'long' });
|
|
113
|
+
break;
|
|
114
|
+
case 'year':
|
|
115
|
+
this.dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.time ?? { year: 'numeric' });
|
|
116
|
+
break;
|
|
117
|
+
}
|
|
118
|
+
};
|
|
119
|
+
/**
|
|
120
|
+
* Waits for the ion-datetime to re-render.
|
|
121
|
+
* This is needed in order to correctly position
|
|
122
|
+
* a popover relative to the trigger element.
|
|
123
|
+
*/
|
|
124
|
+
this.waitForDatetimeChanges = async () => {
|
|
125
|
+
const { datetimeEl } = this;
|
|
126
|
+
if (!datetimeEl) {
|
|
127
|
+
return Promise.resolve();
|
|
128
|
+
}
|
|
129
|
+
return new Promise((resolve) => {
|
|
130
|
+
helpers.addEventListener(datetimeEl, 'ionRender', resolve, { once: true });
|
|
131
|
+
});
|
|
132
|
+
};
|
|
133
|
+
this.handleDateClick = async (ev) => {
|
|
134
|
+
const { datetimeEl, datetimePresentation } = this;
|
|
135
|
+
if (!datetimeEl) {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
let needsPresentationChange = false;
|
|
139
|
+
/**
|
|
140
|
+
* When clicking the date button,
|
|
141
|
+
* we need to make sure that only a date
|
|
142
|
+
* picker is displayed. For presentation styles
|
|
143
|
+
* that display content other than a date picker,
|
|
144
|
+
* we need to update the presentation style.
|
|
145
|
+
*/
|
|
146
|
+
switch (datetimePresentation) {
|
|
147
|
+
case 'date-time':
|
|
148
|
+
case 'time-date':
|
|
149
|
+
const needsChange = datetimeEl.presentation !== 'date';
|
|
150
|
+
/**
|
|
151
|
+
* The date+time wheel picker
|
|
152
|
+
* shows date and time together,
|
|
153
|
+
* so do not adjust the presentation
|
|
154
|
+
* in that case.
|
|
155
|
+
*/
|
|
156
|
+
if (!datetimeEl.preferWheel && needsChange) {
|
|
157
|
+
datetimeEl.presentation = 'date';
|
|
158
|
+
needsPresentationChange = true;
|
|
159
|
+
}
|
|
160
|
+
break;
|
|
161
|
+
}
|
|
162
|
+
/**
|
|
163
|
+
* Track which button was clicked
|
|
164
|
+
* so that it can have the correct
|
|
165
|
+
* activated styles applied when
|
|
166
|
+
* the modal/popover containing
|
|
167
|
+
* the datetime is opened.
|
|
168
|
+
*/
|
|
169
|
+
this.selectedButton = 'date';
|
|
170
|
+
this.presentOverlay(ev, needsPresentationChange, this.dateTargetEl);
|
|
171
|
+
};
|
|
172
|
+
this.handleTimeClick = (ev) => {
|
|
173
|
+
const { datetimeEl, datetimePresentation } = this;
|
|
174
|
+
if (!datetimeEl) {
|
|
175
|
+
return;
|
|
176
|
+
}
|
|
177
|
+
let needsPresentationChange = false;
|
|
178
|
+
/**
|
|
179
|
+
* When clicking the time button,
|
|
180
|
+
* we need to make sure that only a time
|
|
181
|
+
* picker is displayed. For presentation styles
|
|
182
|
+
* that display content other than a time picker,
|
|
183
|
+
* we need to update the presentation style.
|
|
184
|
+
*/
|
|
185
|
+
switch (datetimePresentation) {
|
|
186
|
+
case 'date-time':
|
|
187
|
+
case 'time-date':
|
|
188
|
+
const needsChange = datetimeEl.presentation !== 'time';
|
|
189
|
+
if (needsChange) {
|
|
190
|
+
datetimeEl.presentation = 'time';
|
|
191
|
+
needsPresentationChange = true;
|
|
192
|
+
}
|
|
193
|
+
break;
|
|
194
|
+
}
|
|
195
|
+
/**
|
|
196
|
+
* Track which button was clicked
|
|
197
|
+
* so that it can have the correct
|
|
198
|
+
* activated styles applied when
|
|
199
|
+
* the modal/popover containing
|
|
200
|
+
* the datetime is opened.
|
|
201
|
+
*/
|
|
202
|
+
this.selectedButton = 'time';
|
|
203
|
+
this.presentOverlay(ev, needsPresentationChange, this.timeTargetEl);
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* If the datetime is presented in an
|
|
207
|
+
* overlay, the datetime and overlay
|
|
208
|
+
* should be appropriately sized.
|
|
209
|
+
* These classes provide default sizing values
|
|
210
|
+
* that developers can customize.
|
|
211
|
+
* The goal is to provide an overlay that is
|
|
212
|
+
* reasonably sized with a datetime that
|
|
213
|
+
* fills the entire container.
|
|
214
|
+
*/
|
|
215
|
+
this.presentOverlay = async (ev, needsPresentationChange, triggerEl) => {
|
|
216
|
+
const { overlayEl } = this;
|
|
217
|
+
if (!overlayEl) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
if (overlayEl.tagName === 'ION-POPOVER') {
|
|
221
|
+
/**
|
|
222
|
+
* When the presentation on datetime changes,
|
|
223
|
+
* we need to wait for the component to re-render
|
|
224
|
+
* otherwise the computed width/height of the
|
|
225
|
+
* popover content will be wrong, causing
|
|
226
|
+
* the popover to not align with the trigger element.
|
|
227
|
+
*/
|
|
228
|
+
if (needsPresentationChange) {
|
|
229
|
+
await this.waitForDatetimeChanges();
|
|
230
|
+
}
|
|
231
|
+
/**
|
|
232
|
+
* We pass the trigger button element
|
|
233
|
+
* so that the popover aligns with the individual
|
|
234
|
+
* button that was clicked, not the component container.
|
|
235
|
+
*/
|
|
236
|
+
overlayEl.present({
|
|
237
|
+
...ev,
|
|
238
|
+
detail: {
|
|
239
|
+
ionShadowTarget: triggerEl,
|
|
240
|
+
},
|
|
241
|
+
});
|
|
242
|
+
}
|
|
243
|
+
else {
|
|
244
|
+
overlayEl.present();
|
|
245
|
+
}
|
|
246
|
+
};
|
|
20
247
|
}
|
|
21
|
-
datetimeEl = null;
|
|
22
|
-
overlayEl = null;
|
|
23
|
-
dateTargetEl;
|
|
24
|
-
timeTargetEl;
|
|
25
|
-
get el() { return index.getElement(this); }
|
|
26
|
-
datetimePresentation = 'date-time';
|
|
27
|
-
dateText;
|
|
28
|
-
timeText;
|
|
29
|
-
datetimeActive = false;
|
|
30
|
-
selectedButton;
|
|
31
|
-
/**
|
|
32
|
-
* The color to use from your application's color palette.
|
|
33
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
34
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
35
|
-
*/
|
|
36
|
-
color;
|
|
37
|
-
/**
|
|
38
|
-
* If `true`, the user cannot interact with the button.
|
|
39
|
-
*/
|
|
40
|
-
disabled = false;
|
|
41
|
-
/**
|
|
42
|
-
* The ID of the `ion-datetime` instance
|
|
43
|
-
* associated with the datetime button.
|
|
44
|
-
*/
|
|
45
|
-
datetime;
|
|
46
248
|
async componentWillLoad() {
|
|
47
249
|
const { datetime } = this;
|
|
48
250
|
if (!datetime) {
|
|
@@ -131,225 +333,6 @@ const DatetimeButton = class {
|
|
|
131
333
|
}
|
|
132
334
|
});
|
|
133
335
|
}
|
|
134
|
-
/**
|
|
135
|
-
* Accepts one or more string values and converts
|
|
136
|
-
* them to DatetimeParts. This is done so datetime-button
|
|
137
|
-
* can work with an array internally and not need
|
|
138
|
-
* to keep checking if the datetime value is `string` or `string[]`.
|
|
139
|
-
*/
|
|
140
|
-
getParsedDateValues = (value) => {
|
|
141
|
-
if (value === undefined || value === null) {
|
|
142
|
-
return [];
|
|
143
|
-
}
|
|
144
|
-
if (Array.isArray(value)) {
|
|
145
|
-
return value;
|
|
146
|
-
}
|
|
147
|
-
return [value];
|
|
148
|
-
};
|
|
149
|
-
/**
|
|
150
|
-
* Check the value property on the linked
|
|
151
|
-
* ion-datetime and then format it according
|
|
152
|
-
* to the locale specified on ion-datetime.
|
|
153
|
-
*/
|
|
154
|
-
setDateTimeText = async () => {
|
|
155
|
-
const { datetimeEl, datetimePresentation } = this;
|
|
156
|
-
if (!datetimeEl) {
|
|
157
|
-
return;
|
|
158
|
-
}
|
|
159
|
-
const { value, locale, formatOptions, hourCycle, preferWheel, multiple, titleSelectedDatesFormatter } = datetimeEl;
|
|
160
|
-
const parsedValues = this.getParsedDateValues(value);
|
|
161
|
-
/**
|
|
162
|
-
* Both ion-datetime and ion-datetime-button default to today's date and
|
|
163
|
-
* time if no value is set. We read the datetime's computed default so the
|
|
164
|
-
* button respects the same constraints (min, max, minuteValues, etc.) that
|
|
165
|
-
* the datetime applies to its own fallback, instead of using a raw "now".
|
|
166
|
-
*/
|
|
167
|
-
const parsedDatetimes = parsedValues.length > 0 ? format.parseDate(parsedValues) : [await datetimeEl.getDefaultPart()];
|
|
168
|
-
if (!parsedDatetimes) {
|
|
169
|
-
return;
|
|
170
|
-
}
|
|
171
|
-
/**
|
|
172
|
-
* If developers incorrectly use multiple="true"
|
|
173
|
-
* with non "date" datetimes, then just select
|
|
174
|
-
* the first value so the interface does
|
|
175
|
-
* not appear broken. Datetime will provide a
|
|
176
|
-
* warning in the console.
|
|
177
|
-
*/
|
|
178
|
-
const firstParsedDatetime = parsedDatetimes[0];
|
|
179
|
-
const computedHourCycle = format.getHourCycle(locale, hourCycle);
|
|
180
|
-
this.dateText = this.timeText = undefined;
|
|
181
|
-
switch (datetimePresentation) {
|
|
182
|
-
case 'date-time':
|
|
183
|
-
case 'time-date':
|
|
184
|
-
const dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' });
|
|
185
|
-
const timeText = format.getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions?.time);
|
|
186
|
-
if (preferWheel) {
|
|
187
|
-
this.dateText = `${dateText} ${timeText}`;
|
|
188
|
-
}
|
|
189
|
-
else {
|
|
190
|
-
this.dateText = dateText;
|
|
191
|
-
this.timeText = timeText;
|
|
192
|
-
}
|
|
193
|
-
break;
|
|
194
|
-
case 'date':
|
|
195
|
-
if (multiple && parsedValues.length !== 1) {
|
|
196
|
-
let headerText = `${parsedValues.length} days`; // default/fallback for multiple selection
|
|
197
|
-
if (titleSelectedDatesFormatter !== undefined) {
|
|
198
|
-
try {
|
|
199
|
-
headerText = titleSelectedDatesFormatter(parsedValues);
|
|
200
|
-
}
|
|
201
|
-
catch (e) {
|
|
202
|
-
index.printIonError('[ion-datetime-button] - Exception in provided `titleSelectedDatesFormatter`:', e);
|
|
203
|
-
}
|
|
204
|
-
}
|
|
205
|
-
this.dateText = headerText;
|
|
206
|
-
}
|
|
207
|
-
else {
|
|
208
|
-
this.dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'short', day: 'numeric', year: 'numeric' });
|
|
209
|
-
}
|
|
210
|
-
break;
|
|
211
|
-
case 'time':
|
|
212
|
-
this.timeText = format.getLocalizedTime(locale, firstParsedDatetime, computedHourCycle, formatOptions?.time);
|
|
213
|
-
break;
|
|
214
|
-
case 'month-year':
|
|
215
|
-
this.dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.date ?? { month: 'long', year: 'numeric' });
|
|
216
|
-
break;
|
|
217
|
-
case 'month':
|
|
218
|
-
this.dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.time ?? { month: 'long' });
|
|
219
|
-
break;
|
|
220
|
-
case 'year':
|
|
221
|
-
this.dateText = format.getLocalizedDateTime(locale, firstParsedDatetime, formatOptions?.time ?? { year: 'numeric' });
|
|
222
|
-
break;
|
|
223
|
-
}
|
|
224
|
-
};
|
|
225
|
-
/**
|
|
226
|
-
* Waits for the ion-datetime to re-render.
|
|
227
|
-
* This is needed in order to correctly position
|
|
228
|
-
* a popover relative to the trigger element.
|
|
229
|
-
*/
|
|
230
|
-
waitForDatetimeChanges = async () => {
|
|
231
|
-
const { datetimeEl } = this;
|
|
232
|
-
if (!datetimeEl) {
|
|
233
|
-
return Promise.resolve();
|
|
234
|
-
}
|
|
235
|
-
return new Promise((resolve) => {
|
|
236
|
-
helpers.addEventListener(datetimeEl, 'ionRender', resolve, { once: true });
|
|
237
|
-
});
|
|
238
|
-
};
|
|
239
|
-
handleDateClick = async (ev) => {
|
|
240
|
-
const { datetimeEl, datetimePresentation } = this;
|
|
241
|
-
if (!datetimeEl) {
|
|
242
|
-
return;
|
|
243
|
-
}
|
|
244
|
-
let needsPresentationChange = false;
|
|
245
|
-
/**
|
|
246
|
-
* When clicking the date button,
|
|
247
|
-
* we need to make sure that only a date
|
|
248
|
-
* picker is displayed. For presentation styles
|
|
249
|
-
* that display content other than a date picker,
|
|
250
|
-
* we need to update the presentation style.
|
|
251
|
-
*/
|
|
252
|
-
switch (datetimePresentation) {
|
|
253
|
-
case 'date-time':
|
|
254
|
-
case 'time-date':
|
|
255
|
-
const needsChange = datetimeEl.presentation !== 'date';
|
|
256
|
-
/**
|
|
257
|
-
* The date+time wheel picker
|
|
258
|
-
* shows date and time together,
|
|
259
|
-
* so do not adjust the presentation
|
|
260
|
-
* in that case.
|
|
261
|
-
*/
|
|
262
|
-
if (!datetimeEl.preferWheel && needsChange) {
|
|
263
|
-
datetimeEl.presentation = 'date';
|
|
264
|
-
needsPresentationChange = true;
|
|
265
|
-
}
|
|
266
|
-
break;
|
|
267
|
-
}
|
|
268
|
-
/**
|
|
269
|
-
* Track which button was clicked
|
|
270
|
-
* so that it can have the correct
|
|
271
|
-
* activated styles applied when
|
|
272
|
-
* the modal/popover containing
|
|
273
|
-
* the datetime is opened.
|
|
274
|
-
*/
|
|
275
|
-
this.selectedButton = 'date';
|
|
276
|
-
this.presentOverlay(ev, needsPresentationChange, this.dateTargetEl);
|
|
277
|
-
};
|
|
278
|
-
handleTimeClick = (ev) => {
|
|
279
|
-
const { datetimeEl, datetimePresentation } = this;
|
|
280
|
-
if (!datetimeEl) {
|
|
281
|
-
return;
|
|
282
|
-
}
|
|
283
|
-
let needsPresentationChange = false;
|
|
284
|
-
/**
|
|
285
|
-
* When clicking the time button,
|
|
286
|
-
* we need to make sure that only a time
|
|
287
|
-
* picker is displayed. For presentation styles
|
|
288
|
-
* that display content other than a time picker,
|
|
289
|
-
* we need to update the presentation style.
|
|
290
|
-
*/
|
|
291
|
-
switch (datetimePresentation) {
|
|
292
|
-
case 'date-time':
|
|
293
|
-
case 'time-date':
|
|
294
|
-
const needsChange = datetimeEl.presentation !== 'time';
|
|
295
|
-
if (needsChange) {
|
|
296
|
-
datetimeEl.presentation = 'time';
|
|
297
|
-
needsPresentationChange = true;
|
|
298
|
-
}
|
|
299
|
-
break;
|
|
300
|
-
}
|
|
301
|
-
/**
|
|
302
|
-
* Track which button was clicked
|
|
303
|
-
* so that it can have the correct
|
|
304
|
-
* activated styles applied when
|
|
305
|
-
* the modal/popover containing
|
|
306
|
-
* the datetime is opened.
|
|
307
|
-
*/
|
|
308
|
-
this.selectedButton = 'time';
|
|
309
|
-
this.presentOverlay(ev, needsPresentationChange, this.timeTargetEl);
|
|
310
|
-
};
|
|
311
|
-
/**
|
|
312
|
-
* If the datetime is presented in an
|
|
313
|
-
* overlay, the datetime and overlay
|
|
314
|
-
* should be appropriately sized.
|
|
315
|
-
* These classes provide default sizing values
|
|
316
|
-
* that developers can customize.
|
|
317
|
-
* The goal is to provide an overlay that is
|
|
318
|
-
* reasonably sized with a datetime that
|
|
319
|
-
* fills the entire container.
|
|
320
|
-
*/
|
|
321
|
-
presentOverlay = async (ev, needsPresentationChange, triggerEl) => {
|
|
322
|
-
const { overlayEl } = this;
|
|
323
|
-
if (!overlayEl) {
|
|
324
|
-
return;
|
|
325
|
-
}
|
|
326
|
-
if (overlayEl.tagName === 'ION-POPOVER') {
|
|
327
|
-
/**
|
|
328
|
-
* When the presentation on datetime changes,
|
|
329
|
-
* we need to wait for the component to re-render
|
|
330
|
-
* otherwise the computed width/height of the
|
|
331
|
-
* popover content will be wrong, causing
|
|
332
|
-
* the popover to not align with the trigger element.
|
|
333
|
-
*/
|
|
334
|
-
if (needsPresentationChange) {
|
|
335
|
-
await this.waitForDatetimeChanges();
|
|
336
|
-
}
|
|
337
|
-
/**
|
|
338
|
-
* We pass the trigger button element
|
|
339
|
-
* so that the popover aligns with the individual
|
|
340
|
-
* button that was clicked, not the component container.
|
|
341
|
-
*/
|
|
342
|
-
overlayEl.present({
|
|
343
|
-
...ev,
|
|
344
|
-
detail: {
|
|
345
|
-
ionShadowTarget: triggerEl,
|
|
346
|
-
},
|
|
347
|
-
});
|
|
348
|
-
}
|
|
349
|
-
else {
|
|
350
|
-
overlayEl.present();
|
|
351
|
-
}
|
|
352
|
-
};
|
|
353
336
|
render() {
|
|
354
337
|
const { color, dateText, timeText, selectedButton, datetimeActive, disabled } = this;
|
|
355
338
|
const mode = ionicGlobal.getIonMode(this);
|
|
@@ -359,6 +342,7 @@ const DatetimeButton = class {
|
|
|
359
342
|
['datetime-button-disabled']: disabled,
|
|
360
343
|
}) }, dateText && (index.h("button", { key: 'd9698471fa5d5c834ca73db57f9ed98dfc705b4c', class: "ion-activatable", id: "date-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleDateClick, disabled: disabled, part: "native", ref: (el) => (this.dateTargetEl = el) }, index.h("slot", { key: 'c8761a7f25ae5b93c953b3486dd6335f5ad4fd53', name: "date-target" }, dateText), mode === 'md' && index.h("ion-ripple-effect", { key: '3dd5e97af8d35a2b008de4ab01f690b3c2223135' }))), timeText && (index.h("button", { key: '1107ca2382940b642b551f885f7ca763012c236c', class: "ion-activatable", id: "time-button", "aria-expanded": datetimeActive ? 'true' : 'false', onClick: this.handleTimeClick, disabled: disabled, part: "native", ref: (el) => (this.timeTargetEl = el) }, index.h("slot", { key: '5cff53e486923b03715b9ab4dc0947e26f4ea1d9', name: "time-target" }, timeText), mode === 'md' && index.h("ion-ripple-effect", { key: '5aac1facb6fc7457307c4f59a241e3a5b31facc8' })))));
|
|
361
344
|
}
|
|
345
|
+
get el() { return index.getElement(this); }
|
|
362
346
|
};
|
|
363
347
|
DatetimeButton.style = {
|
|
364
348
|
ios: datetimeButtonIosCss(),
|