@ionic/core 8.8.18 → 8.8.19-dev.11786730389.1a1927bf
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-0Pyit076.js +4 -0
- package/components/{p-C_hpsif8.js → p-30_sZS2V.js} +1 -1
- package/components/p-83oP9gzn.js +4 -0
- package/components/p-8FN7p701.js +4 -0
- package/components/p-B-FxiyeI.js +4 -0
- package/components/p-B6dUPQXq.js +4 -0
- package/components/p-BMPN55of.js +4 -0
- package/components/p-BMS4t-kJ.js +4 -0
- package/components/p-BO4sUqUv.js +4 -0
- package/components/p-BSQPZ79H.js +4 -0
- package/components/p-Bc4wROfM.js +4 -0
- package/components/p-BhamHSw3.js +4 -0
- package/components/{p-D3xo7hqU.js → p-BpG8kBfD.js} +1 -1
- package/components/p-BqPNzJf6.js +4 -0
- package/components/p-BsVxQGUT.js +4 -0
- package/components/p-BxUIQcD9.js +4 -0
- package/components/p-C1O9GEug.js +4 -0
- package/components/p-C5KYjZWD.js +4 -0
- package/components/p-C9BGR5fy.js +4 -0
- package/components/p-CD4fmpem.js +4 -0
- package/components/p-CEW4RXZO.js +4 -0
- package/components/p-CKhiNOEg.js +4 -0
- package/components/p-CO2zzh3W.js +4 -0
- package/components/p-CVnwvOBD.js +4 -0
- package/components/p-CbhUdtjf.js +4 -0
- package/components/p-CejmQs3h.js +4 -0
- package/components/p-CfnGxjv-.js +4 -0
- package/components/p-ClFYbgND.js +4 -0
- package/components/p-CmKf4pgI.js +4 -0
- package/components/p-Cs5f-uOS.js +4 -0
- package/components/p-D7-vHX0A.js +4 -0
- package/{dist/ionic/p-DC3RagnA.js → components/p-DIgGHN7D.js} +1 -1
- package/components/p-DRfgH82D.js +4 -0
- package/components/p-DTY4otpr.js +4 -0
- package/components/{p--JUspHvy.js → p-DV85C0e0.js} +1 -1
- package/components/p-DVKS-ovH.js +4 -0
- package/components/p-DWCzVL3Y.js +4 -0
- package/components/p-D_XD0pVT.js +4 -0
- package/components/p-Dd8ajo9a.js +4 -0
- package/components/p-DdnhY_oj.js +4 -0
- package/components/p-Dm7h4Nyv.js +4 -0
- package/components/{p-BkKAANMJ.js → p-DwpKZ6rl.js} +1 -1
- package/components/p-DyePCNGr.js +4 -0
- package/components/p-G0TxqHfe.js +4 -0
- package/components/{p-ChIZKXUu.js → p-J-p0EtHR.js} +1 -1
- package/components/p-LXu5-6Ti.js +4 -0
- package/components/p-MCJ7HjWe.js +4 -0
- package/components/p-Obm7si-x.js +4 -0
- package/components/p-TXPDHL13.js +4 -0
- package/components/p-UuPYCOZE.js +4 -0
- package/components/p-WeeS7GvC.js +4 -0
- package/components/{p-D7uN07a3.js → p-_0JhwClE.js} +1 -1
- package/components/p-_IKFD3ID.js +4 -0
- package/components/p-byZM6qHV.js +4 -0
- package/components/p-hh7qIC-X.js +4 -0
- package/components/p-idq4JFo2.js +4 -0
- package/components/{p-DqLB8yFQ.js → p-ryyf_ItD.js} +1 -1
- package/components/p-tYCT3JGl.js +4 -0
- package/components/p-wzAhIh03.js +4 -0
- package/components/p-xOjr4bwc.js +4 -0
- package/components/p-yuj4Nkm_.js +4 -0
- package/dist/cjs/{animation-Ch16T-Nb.js → animation-C0mOHzej.js} +4 -4
- package/dist/cjs/{app-globals-Dd89e0MR.js → app-globals-BREG4twP.js} +1 -1
- package/dist/cjs/{button-active-COnxOe4X.js → button-active-BKj1rdFx.js} +3 -3
- package/dist/cjs/config-CjUbvdPW.js +36 -0
- package/dist/cjs/{dir-Cn0z1rJH.js → dir-Brx7VkvP.js} +1 -1
- package/dist/cjs/{format-BUFWn4Bn.js → format-pp0Du3K-.js} +40 -30
- package/dist/cjs/{framework-delegate-BgU6U9Ez.js → framework-delegate-NTLQ5YzV.js} +5 -7
- package/dist/cjs/{gesture-controller-dtqlP_q4.js → gesture-controller-BDUH7687.js} +15 -8
- package/dist/cjs/{haptic-ClPPQ_PS.js → haptic-Ch-X4gRx.js} +2 -3
- package/dist/cjs/{hardware-back-button-CXmUnTJC.js → hardware-back-button-fqpYh-kd.js} +4 -4
- package/dist/cjs/{helpers-gntk8bfm.js → helpers-CaLhEmTE.js} +3 -3
- package/dist/cjs/index-B7zJsYWS.js +429 -0
- package/dist/cjs/{index-BhhuJ1Yx.js → index-BlshL9ib.js} +2 -2
- package/dist/cjs/{index-BS2uhvhT.js → index-Ck9advCT.js} +5 -5
- package/dist/cjs/{index-ooS8B4p9.js → index-D2X6b92x.js} +6 -7
- package/dist/cjs/{index-BiRrzGDi.js → index-D48vawBq.js} +2 -2
- package/dist/cjs/{index-CAvQ7Tka.js → index-P1nQxrpZ.js} +10 -4
- package/dist/cjs/{index-BfaXsATC.js → index-uvry__L4.js} +31 -14
- package/dist/cjs/{index-DqmRDbxg.js → index-wOmugbdg.js} +1 -1
- package/dist/cjs/index.cjs.js +18 -18
- package/dist/cjs/{input-shims-Bn1cXfCM.js → input-shims-DvHAFqiP.js} +9 -11
- package/dist/cjs/{input.utils-BwhxZooW.js → input.utils-CP4fzrqk.js} +3 -4
- package/dist/cjs/ion-accordion_2.cjs.entry.js +368 -340
- package/dist/cjs/ion-action-sheet.cjs.entry.js +187 -76
- package/dist/cjs/ion-alert.cjs.entry.js +273 -111
- package/dist/cjs/ion-app_8.cjs.entry.js +307 -190
- package/dist/cjs/ion-avatar_3.cjs.entry.js +10 -4
- package/dist/cjs/ion-back-button.cjs.entry.js +47 -23
- package/dist/cjs/ion-backdrop.cjs.entry.js +18 -14
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +199 -121
- package/dist/cjs/ion-button_2.cjs.entry.js +138 -66
- package/dist/cjs/ion-card_5.cjs.entry.js +82 -30
- package/dist/cjs/ion-checkbox.cjs.entry.js +152 -101
- package/dist/cjs/ion-chip.cjs.entry.js +17 -11
- package/dist/cjs/ion-col_3.cjs.entry.js +134 -10
- package/dist/cjs/ion-datetime-button.cjs.entry.js +253 -241
- package/dist/cjs/ion-datetime.cjs.entry.js +2770 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +139 -81
- package/dist/cjs/ion-img.cjs.entry.js +34 -12
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +100 -72
- package/dist/cjs/ion-input-otp.cjs.entry.js +433 -370
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +33 -19
- package/dist/cjs/ion-input.cjs.entry.js +314 -168
- package/dist/cjs/ion-item-option_3.cjs.entry.js +91 -51
- package/dist/cjs/ion-item_8.cjs.entry.js +181 -82
- package/dist/cjs/ion-loading.cjs.entry.js +146 -60
- package/dist/cjs/ion-menu_3.cjs.entry.js +163 -101
- package/dist/cjs/ion-modal.cjs.entry.js +455 -261
- package/dist/cjs/ion-nav_2.cjs.entry.js +100 -157
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +37 -33
- package/dist/cjs/ion-picker-column.cjs.entry.js +417 -405
- package/dist/cjs/ion-picker.cjs.entry.js +401 -392
- package/dist/cjs/ion-popover.cjs.entry.js +319 -205
- package/dist/cjs/ion-progress-bar.cjs.entry.js +31 -25
- package/dist/cjs/ion-radio_2.cjs.entry.js +206 -133
- package/dist/cjs/ion-range.cjs.entry.js +302 -237
- package/dist/cjs/ion-refresher_2.cjs.entry.js +165 -93
- package/dist/cjs/ion-reorder_2.cjs.entry.js +53 -23
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
- package/dist/cjs/ion-route_4.cjs.entry.js +175 -71
- package/dist/cjs/ion-searchbar.cjs.entry.js +291 -200
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +28 -17
- package/dist/cjs/ion-segment_2.cjs.entry.js +169 -126
- package/dist/cjs/ion-select-modal.cjs.entry.js +104 -48
- package/dist/cjs/ion-select_3.cjs.entry.js +759 -214
- package/dist/cjs/ion-spinner.cjs.entry.js +24 -10
- package/dist/cjs/ion-split-pane.cjs.entry.js +29 -16
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +100 -41
- package/dist/cjs/ion-tab_2.cjs.entry.js +53 -27
- package/dist/cjs/ion-text.cjs.entry.js +11 -5
- package/dist/cjs/ion-textarea.cjs.entry.js +263 -144
- package/dist/cjs/ion-toast.cjs.entry.js +236 -117
- package/dist/cjs/ion-toggle.cjs.entry.js +175 -122
- package/dist/cjs/{ionic-global-BerQGEpE.js → ionic-global-k6hOWWpn.js} +13 -8
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-IMJRwn29.js → ios.transition-KvuRAe2W.js} +13 -17
- package/dist/cjs/{item-multiple-inputs-jOJZE_I0.js → item-multiple-inputs-BdYSbfKN.js} +1 -1
- package/dist/cjs/{keyboard-hHzlEQpk.js → keyboard-Cix5TVkD.js} +2 -2
- package/dist/cjs/{keyboard-UuAS4D_9.js → keyboard-cHxZlTyz.js} +2 -2
- package/dist/cjs/{keyboard-controller-GXBiBRKS.js → keyboard-controller-PtZoN2GS.js} +6 -6
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-CgQZxcoT.js → md.transition-Bjl5Ozph.js} +7 -8
- package/dist/cjs/{notch-controller-_SwR025y.js → notch-controller-BEUpEgb5.js} +1 -1
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-DuSEMhIW.js → overlays-IlP4H2Gn.js} +48 -33
- package/dist/cjs/select-option-render-pULCGldr.js +123 -0
- package/dist/cjs/{status-tap-CSvBT7FV.js → status-tap-BR_ujYHg.js} +3 -3
- package/dist/cjs/{swipe-back-CuIiziaa.js → swipe-back-DzQKEl5g.js} +5 -5
- package/dist/cjs/{theme-CeDs6Hcv.js → theme-Bw0rpaNN.js} +6 -1
- package/dist/collection/collection-manifest.json +6 -10
- package/dist/collection/components/accordion/accordion.js +315 -312
- package/dist/collection/components/accordion-group/accordion-group.js +48 -25
- package/dist/collection/components/action-sheet/action-sheet.ios.css +228 -2
- package/dist/collection/components/action-sheet/action-sheet.js +173 -64
- package/dist/collection/components/action-sheet/action-sheet.md.css +174 -2
- package/dist/collection/components/action-sheet/test/basic/fixture.js +3 -0
- package/dist/collection/components/alert/alert.ios.css +279 -10
- package/dist/collection/components/alert/alert.js +257 -97
- package/dist/collection/components/alert/alert.md.css +268 -20
- package/dist/collection/components/app/app.js +3 -0
- package/dist/collection/components/back-button/back-button.js +42 -19
- package/dist/collection/components/backdrop/backdrop.js +16 -14
- package/dist/collection/components/badge/badge.js +6 -0
- package/dist/collection/components/breadcrumb/breadcrumb.js +91 -30
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +103 -88
- package/dist/collection/components/button/button.js +132 -61
- package/dist/collection/components/buttons/buttons.js +13 -15
- package/dist/collection/components/card/card.js +54 -21
- package/dist/collection/components/card-header/card-header.js +12 -8
- package/dist/collection/components/card-subtitle/card-subtitle.js +6 -0
- package/dist/collection/components/card-title/card-title.js +6 -0
- package/dist/collection/components/checkbox/checkbox.js +147 -97
- package/dist/collection/components/chip/chip.js +14 -10
- package/dist/collection/components/col/col.js +127 -3
- package/dist/collection/components/content/content.js +93 -64
- package/dist/collection/components/datetime/datetime.ios.css +42 -2
- package/dist/collection/components/datetime/datetime.js +1042 -807
- package/dist/collection/components/datetime/datetime.md.css +42 -1
- package/dist/collection/components/datetime/utils/data.js +13 -14
- package/dist/collection/components/datetime/utils/format.js +21 -11
- package/dist/collection/components/datetime/utils/manipulation.js +8 -8
- package/dist/collection/components/datetime/utils/parse.js +10 -10
- package/dist/collection/components/datetime/utils/state.js +8 -2
- package/dist/collection/components/datetime/utils/validate.js +4 -5
- package/dist/collection/components/datetime-button/datetime-button.ios.css +5 -0
- package/dist/collection/components/datetime-button/datetime-button.js +247 -237
- package/dist/collection/components/datetime-button/datetime-button.md.css +5 -0
- package/dist/collection/components/fab/fab.js +20 -13
- package/dist/collection/components/fab-button/fab-button.js +104 -55
- package/dist/collection/components/fab-list/fab-list.js +10 -11
- package/dist/collection/components/footer/footer.js +50 -44
- package/dist/collection/components/grid/grid.js +4 -6
- package/dist/collection/components/header/header.js +35 -25
- package/dist/collection/components/img/img.js +34 -10
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +73 -66
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +20 -3
- package/dist/collection/components/input/input.ios.css +1 -2
- package/dist/collection/components/input/input.js +309 -164
- package/dist/collection/components/input/input.md.css +1 -2
- package/dist/collection/components/input-otp/input-otp.js +428 -366
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +29 -16
- package/dist/collection/components/item/item.js +99 -53
- package/dist/collection/components/item-divider/item-divider.js +15 -10
- package/dist/collection/components/item-option/item-option.js +49 -21
- package/dist/collection/components/item-options/item-options.js +10 -7
- package/dist/collection/components/item-sliding/item-sliding.js +26 -20
- package/dist/collection/components/label/label.js +24 -4
- package/dist/collection/components/list/list.js +10 -7
- package/dist/collection/components/list-header/list-header.js +10 -0
- package/dist/collection/components/loading/loading.js +135 -51
- package/dist/collection/components/menu/menu.js +101 -59
- package/dist/collection/components/menu-button/menu-button.js +29 -20
- package/dist/collection/components/menu-toggle/menu-toggle.js +20 -13
- package/dist/collection/components/modal/animations/ios.enter.js +1 -1
- package/dist/collection/components/modal/animations/md.enter.js +1 -1
- package/dist/collection/components/modal/gestures/sheet.js +22 -10
- package/dist/collection/components/modal/gestures/swipe-to-close.js +15 -3
- package/dist/collection/components/modal/modal.js +398 -228
- package/dist/collection/components/modal/safe-area-utils.js +6 -7
- package/dist/collection/components/modal/test/fixtures.js +3 -0
- package/dist/collection/components/nav/nav.js +69 -247
- package/dist/collection/components/nav/view-controller.js +7 -1
- package/dist/collection/components/nav-link/nav-link.js +20 -9
- package/dist/collection/components/note/note.js +6 -0
- package/dist/collection/components/picker/picker.js +398 -390
- package/dist/collection/components/picker-column/picker-column.css +3 -0
- package/dist/collection/components/picker-column/picker-column.js +414 -404
- package/dist/collection/components/picker-column-option/picker-column-option.js +33 -31
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +6 -1
- package/dist/collection/components/popover/animations/ios.enter.js +1 -2
- package/dist/collection/components/popover/animations/md.enter.js +1 -2
- package/dist/collection/components/popover/popover.ios.css +15 -0
- package/dist/collection/components/popover/popover.js +302 -185
- package/dist/collection/components/popover/popover.md.css +15 -0
- package/dist/collection/components/popover/test/fixture.js +1 -0
- package/dist/collection/components/popover/utils.js +4 -6
- package/dist/collection/components/progress-bar/progress-bar.js +27 -23
- package/dist/collection/components/radio/radio.js +102 -66
- package/dist/collection/components/radio-group/radio-group.js +100 -65
- package/dist/collection/components/radio-group/test/fixtures.js +2 -0
- package/dist/collection/components/range/range.js +296 -232
- package/dist/collection/components/refresher/refresher.js +110 -78
- package/dist/collection/components/refresher-content/refresher-content.js +41 -4
- package/dist/collection/components/reorder/reorder.js +2 -1
- package/dist/collection/components/reorder-group/reorder-group.js +44 -15
- package/dist/collection/components/ripple-effect/ripple-effect.js +12 -13
- package/dist/collection/components/route/route.js +39 -10
- package/dist/collection/components/route-redirect/route-redirect.js +31 -0
- package/dist/collection/components/router/router.js +37 -33
- package/dist/collection/components/router/utils/dom.js +25 -7
- package/dist/collection/components/router/utils/matching.js +7 -9
- package/dist/collection/components/router/utils/parser.js +1 -1
- package/dist/collection/components/router/utils/path.js +0 -1
- package/dist/collection/components/router-link/router-link.js +37 -12
- package/dist/collection/components/router-outlet/router-outlet.js +82 -21
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +289 -199
- package/dist/collection/components/segment/segment.js +120 -85
- package/dist/collection/components/segment-button/segment-button.js +43 -37
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +26 -16
- package/dist/collection/components/select/select.ios.css +33 -0
- package/dist/collection/components/select/select.js +597 -166
- package/dist/collection/components/select/select.md.css +33 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +218 -0
- package/dist/collection/components/select-modal/select-modal.js +92 -38
- package/dist/collection/components/select-modal/select-modal.md.css +164 -0
- package/dist/collection/components/select-modal/test/fixtures.js +8 -1
- package/dist/collection/components/select-option/select-option.js +110 -9
- package/dist/collection/components/select-popover/select-popover.ios.css +218 -0
- package/dist/collection/components/select-popover/select-popover.js +103 -36
- package/dist/collection/components/select-popover/select-popover.md.css +164 -0
- package/dist/collection/components/select-popover/test/fixtures.js +8 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +12 -8
- package/dist/collection/components/spinner/spinner.js +21 -9
- package/dist/collection/components/split-pane/split-pane.js +27 -15
- package/dist/collection/components/tab/tab.js +17 -6
- package/dist/collection/components/tab-bar/tab-bar.js +32 -14
- package/dist/collection/components/tab-button/tab-button.js +62 -23
- package/dist/collection/components/tabs/tabs.js +33 -20
- package/dist/collection/components/text/text.js +8 -2
- package/dist/collection/components/textarea/textarea.js +257 -139
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +18 -2
- package/dist/collection/components/toast/toast.js +223 -106
- package/dist/collection/components/toggle/toggle.js +167 -115
- package/dist/collection/components/toolbar/toolbar.js +15 -7
- package/dist/collection/global/config.js +4 -6
- package/dist/collection/global/ionic-global.js +8 -2
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/animation/animation.js +3 -3
- package/dist/collection/utils/config.js +5 -4
- package/dist/collection/utils/focus-controller/index.js +1 -1
- package/dist/collection/utils/focus-trap.js +3 -3
- package/dist/collection/utils/framework-delegate.js +4 -6
- package/dist/collection/utils/gesture/gesture-controller.js +15 -8
- package/dist/collection/utils/gesture/index.js +10 -2
- package/dist/collection/utils/gesture/listener.js +1 -1
- package/dist/collection/utils/hardware-back-button.js +3 -3
- package/dist/collection/utils/helpers.js +2 -2
- package/dist/collection/utils/input-shims/hacks/scroll-assist.js +4 -5
- package/dist/collection/utils/input-shims/hacks/scroll-data.js +1 -2
- package/dist/collection/utils/keyboard/keyboard-controller.js +5 -5
- package/dist/collection/utils/keyboard/keyboard.js +1 -1
- package/dist/collection/utils/logging/index.js +23 -4
- package/dist/collection/utils/menu-controller/index.js +1 -2
- package/dist/collection/utils/native/haptic.js +2 -3
- package/dist/collection/utils/native/keyboard.js +2 -2
- package/dist/collection/utils/native/status-bar.js +1 -1
- package/dist/collection/utils/overlay-control-label.js +45 -0
- package/dist/collection/utils/overlays.js +38 -23
- package/dist/collection/utils/platform.js +4 -5
- package/dist/collection/utils/rtl/dir.js +1 -1
- package/dist/collection/utils/sanitization/index.js +276 -20
- package/dist/collection/utils/select-option-render.js +118 -0
- package/dist/collection/utils/slot-mutation-controller.js +1 -2
- package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
- package/dist/collection/utils/test/playwright/drag-element.js +2 -3
- package/dist/collection/utils/test/playwright/generator.js +3 -4
- package/dist/collection/utils/test/playwright/page/event-spy.js +11 -12
- package/dist/collection/utils/test/playwright/page/utils/goto.js +4 -5
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +1 -1
- package/dist/collection/utils/test/playwright/page/utils/set-ion-viewport.js +2 -3
- package/dist/collection/utils/test/press-keys.js +10 -17
- package/dist/collection/utils/theme.js +6 -1
- package/dist/collection/utils/transition/ios.transition.js +9 -13
- package/dist/collection/utils/transition/md.transition.js +3 -4
- package/dist/docs.json +557 -1273
- package/dist/esm/{animation-DLJpuoEz.js → animation-CGFdmGk9.js} +4 -4
- package/dist/esm/{app-globals-D0C5S4hU.js → app-globals-CYmMeGdU.js} +1 -1
- package/dist/esm/{button-active-BSpTQmS9.js → button-active--80YqSHA.js} +3 -3
- package/dist/esm/config-DWCzVL3Y.js +32 -0
- package/dist/esm/{dir-C53feagD.js → dir-B-FxiyeI.js} +1 -1
- package/dist/esm/{format-CAmvpAez.js → format-Dcwga61t.js} +41 -31
- package/dist/esm/{framework-delegate-FnPGymXL.js → framework-delegate--ajhSeKH.js} +5 -7
- package/dist/esm/{gesture-controller-BTEOs1at.js → gesture-controller-TXPDHL13.js} +15 -8
- package/dist/esm/{haptic-DzAMWJuk.js → haptic-Cq4UAeka.js} +2 -3
- package/dist/esm/{hardware-back-button-B93Gru0Y.js → hardware-back-button-gLJHMX_F.js} +4 -4
- package/dist/esm/{helpers-HEqiOzXb.js → helpers-DexiPLIC.js} +3 -3
- package/dist/esm/{index-B_dQk_WE.js → index-8s8kZKJ7.js} +5 -5
- package/dist/esm/{index-BRHzoo00.js → index-BCgUwrV0.js} +2 -2
- package/dist/esm/{index-DV3sJJW8.js → index-BvabGprD.js} +2 -2
- package/dist/esm/index-CKM1DdGm.js +424 -0
- package/dist/esm/{index-tcQvqkiX.js → index-ChhhtsGZ.js} +32 -15
- package/dist/esm/{index-Q6UPU0Ay.js → index-CumkqGQF.js} +6 -7
- package/dist/esm/{index-CfgBF1SE.js → index-DppOcPFQ.js} +10 -4
- package/dist/esm/{index-Dw-wN0Ja.js → index-_Za5VB9w.js} +2 -2
- package/dist/esm/index.js +16 -15
- package/dist/esm/{input-shims-LXhI7LEx.js → input-shims-BB0AKb_k.js} +9 -11
- package/dist/esm/{input.utils-Y6NgW8bw.js → input.utils-J6HWocLA.js} +3 -4
- package/dist/esm/ion-accordion_2.entry.js +368 -340
- package/dist/esm/ion-action-sheet.entry.js +187 -76
- package/dist/esm/ion-alert.entry.js +272 -110
- package/dist/esm/ion-app_8.entry.js +307 -190
- package/dist/esm/ion-avatar_3.entry.js +10 -4
- package/dist/esm/ion-back-button.entry.js +47 -23
- package/dist/esm/ion-backdrop.entry.js +18 -14
- package/dist/esm/ion-breadcrumb_2.entry.js +199 -121
- package/dist/esm/ion-button_2.entry.js +138 -66
- package/dist/esm/ion-card_5.entry.js +82 -30
- package/dist/esm/ion-checkbox.entry.js +152 -101
- package/dist/esm/ion-chip.entry.js +17 -11
- package/dist/esm/ion-col_3.entry.js +134 -10
- package/dist/esm/ion-datetime-button.entry.js +253 -241
- package/dist/esm/ion-datetime.entry.js +2768 -0
- package/dist/esm/ion-fab_3.entry.js +139 -81
- package/dist/esm/ion-img.entry.js +34 -12
- package/dist/esm/ion-infinite-scroll_2.entry.js +99 -71
- package/dist/esm/ion-input-otp.entry.js +433 -370
- package/dist/esm/ion-input-password-toggle.entry.js +33 -19
- package/dist/esm/ion-input.entry.js +314 -168
- package/dist/esm/ion-item-option_3.entry.js +91 -51
- package/dist/esm/ion-item_8.entry.js +181 -82
- package/dist/esm/ion-loading.entry.js +145 -59
- package/dist/esm/ion-menu_3.entry.js +163 -101
- package/dist/esm/ion-modal.entry.js +455 -261
- package/dist/esm/ion-nav_2.entry.js +100 -157
- package/dist/esm/ion-picker-column-option.entry.js +37 -33
- package/dist/esm/ion-picker-column.entry.js +417 -405
- package/dist/esm/ion-picker.entry.js +401 -392
- package/dist/esm/ion-popover.entry.js +319 -205
- package/dist/esm/ion-progress-bar.entry.js +31 -25
- package/dist/esm/ion-radio_2.entry.js +206 -133
- package/dist/esm/ion-range.entry.js +302 -237
- package/dist/esm/ion-refresher_2.entry.js +163 -91
- package/dist/esm/ion-reorder_2.entry.js +53 -23
- package/dist/esm/ion-ripple-effect.entry.js +14 -14
- package/dist/esm/ion-route_4.entry.js +175 -71
- package/dist/esm/ion-searchbar.entry.js +291 -200
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +28 -17
- package/dist/esm/ion-segment_2.entry.js +169 -126
- package/dist/esm/ion-select-modal.entry.js +104 -48
- package/dist/esm/ion-select_3.entry.js +760 -215
- package/dist/esm/ion-spinner.entry.js +24 -10
- package/dist/esm/ion-split-pane.entry.js +29 -16
- package/dist/esm/ion-tab-bar_2.entry.js +100 -41
- package/dist/esm/ion-tab_2.entry.js +53 -27
- package/dist/esm/ion-text.entry.js +11 -5
- package/dist/esm/ion-textarea.entry.js +263 -144
- package/dist/esm/ion-toast.entry.js +235 -116
- package/dist/esm/ion-toggle.entry.js +175 -122
- package/dist/esm/{ionic-global-Cp_eT4sZ.js → ionic-global-BVB7BrLT.js} +13 -8
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-ClFrsIrS.js → ios.transition-BdhybwLl.js} +13 -17
- package/dist/esm/{item-multiple-inputs-DlNuqNJm.js → item-multiple-inputs-rU8VaNNg.js} +1 -1
- package/dist/esm/{keyboard-ywgs5efA.js → keyboard-Cj8mLJeq.js} +2 -2
- package/dist/esm/{keyboard-CUw4ekVy.js → keyboard-DAF8GNJ9.js} +2 -2
- package/dist/esm/{keyboard-controller-BaaVITYt.js → keyboard-controller-DEwoa1ev.js} +6 -6
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-D0msQmzI.js → md.transition-B5lqKGCs.js} +7 -8
- package/dist/esm/{notch-controller-DKDjU_O7.js → notch-controller-CrUGyHYz.js} +1 -1
- package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-Dg0q2_tJ.js → overlays-CjWwtvf1.js} +48 -33
- package/dist/esm/select-option-render-C4m76VGH.js +121 -0
- package/dist/esm/{status-tap-vO-6s4Yp.js → status-tap-DpLhkDWs.js} +3 -3
- package/dist/esm/{swipe-back-DQ1q5MgD.js → swipe-back-cz4-lyG3.js} +5 -5
- package/dist/esm/{theme-DiVJyqlX.js → theme-byZM6qHV.js} +6 -1
- package/dist/html.html-data.json +52 -80
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-0266b7e1.entry.js +4 -0
- package/dist/ionic/p-08443c08.entry.js +4 -0
- package/dist/ionic/p-08f1ed1c.entry.js +4 -0
- package/dist/ionic/p-09b47b7d.entry.js +4 -0
- package/dist/ionic/p-0FNc80PN.js +4 -0
- package/dist/ionic/p-12589d59.entry.js +4 -0
- package/dist/ionic/p-1d2e53e8.entry.js +4 -0
- package/dist/ionic/p-1edf0573.entry.js +4 -0
- package/dist/ionic/p-214e000a.entry.js +4 -0
- package/dist/ionic/p-21a7fb2a.entry.js +4 -0
- package/dist/ionic/p-2ce59395.entry.js +4 -0
- package/dist/ionic/p-33829e94.entry.js +4 -0
- package/dist/ionic/p-374b10cb.entry.js +4 -0
- package/dist/ionic/p-3835a020.entry.js +4 -0
- package/dist/ionic/p-3c5fdd27.entry.js +4 -0
- package/dist/ionic/{p-c6e49f3f.entry.js → p-40424a88.entry.js} +1 -1
- package/dist/ionic/p-48b6835f.entry.js +4 -0
- package/dist/ionic/p-4eOQC00Z.js +4 -0
- package/dist/ionic/p-5394e1d4.entry.js +4 -0
- package/dist/ionic/p-53bac1c9.entry.js +4 -0
- package/dist/ionic/p-5506caeb.entry.js +4 -0
- package/dist/ionic/p-5993a77f.entry.js +4 -0
- package/dist/ionic/p-6277efba.entry.js +4 -0
- package/dist/ionic/p-62e71297.entry.js +4 -0
- package/dist/ionic/p-6b286c5c.entry.js +4 -0
- package/dist/ionic/p-7116e558.entry.js +4 -0
- package/dist/ionic/p-74f30659.entry.js +4 -0
- package/dist/ionic/p-7bb3e957.entry.js +4 -0
- package/dist/ionic/p-82525fb0.entry.js +4 -0
- package/dist/ionic/p-865fa114.entry.js +4 -0
- package/dist/ionic/p-8a21bdbd.entry.js +4 -0
- package/dist/ionic/p-8e1d9e3a.entry.js +4 -0
- package/dist/ionic/p-8f3a1995.entry.js +4 -0
- package/dist/ionic/p-91c6faf1.entry.js +4 -0
- package/dist/ionic/{p-aaeedb6b.entry.js → p-9b865fe6.entry.js} +1 -1
- package/dist/ionic/p-9nmHvEvw.js +4 -0
- package/dist/ionic/p-B-FxiyeI.js +4 -0
- package/dist/ionic/p-BB0LlG4y.js +4 -0
- package/dist/ionic/p-BMPN55of.js +4 -0
- package/dist/ionic/p-BQ8oNV0v.js +4 -0
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BhamHSw3.js +4 -0
- package/dist/ionic/p-BjvtSsVI.js +4 -0
- package/dist/ionic/p-BkfAWuv6.js +4 -0
- package/dist/ionic/p-BnMQxWON.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
- package/dist/ionic/p-BwIp10KV.js +4 -0
- package/dist/ionic/p-C-94tAim.js +4 -0
- package/dist/ionic/p-C6eME8Ey.js +4 -0
- package/dist/ionic/{p-DIuEbVLu.js → p-CKUuSnDR.js} +1 -1
- package/dist/ionic/p-CMRtMbJc.js +4 -0
- package/dist/ionic/p-CPcPmkGv.js +4 -0
- package/dist/ionic/{p-biz8zWmJ.js → p-CQ_4TirR.js} +1 -1
- package/dist/ionic/p-CaRuIadB.js +4 -0
- package/dist/ionic/p-Cdjxf_yg.js +4 -0
- package/dist/ionic/p-ChhhtsGZ.js +5 -0
- package/dist/ionic/p-CmKf4pgI.js +4 -0
- package/dist/ionic/p-D5t_-oMk.js +4 -0
- package/dist/ionic/p-D94b61er.js +4 -0
- package/dist/ionic/p-DCI3rXQo.js +4 -0
- package/dist/ionic/p-DDhtUaaA.js +4 -0
- package/dist/ionic/p-DWCzVL3Y.js +4 -0
- package/dist/ionic/p-Dn0mqQ_R.js +4 -0
- package/dist/ionic/{p-KjNvRoEp.js → p-I3In7hMC.js} +1 -1
- package/dist/ionic/p-T71k3C35.js +4 -0
- package/dist/ionic/p-TXPDHL13.js +4 -0
- package/dist/ionic/p-a641d428.entry.js +4 -0
- package/dist/ionic/p-ac6ef997.entry.js +4 -0
- package/dist/ionic/p-acf0a6af.entry.js +4 -0
- package/dist/ionic/p-ad98e3ff.entry.js +4 -0
- package/dist/ionic/p-af5166f5.entry.js +4 -0
- package/dist/ionic/p-b24dc0a1.entry.js +4 -0
- package/dist/ionic/p-ba8a598f.entry.js +4 -0
- package/dist/ionic/p-bf7c1f05.entry.js +4 -0
- package/dist/ionic/p-byZM6qHV.js +4 -0
- package/dist/ionic/p-c3f65965.entry.js +4 -0
- package/dist/ionic/p-c8fbe544.entry.js +4 -0
- package/dist/ionic/p-cb12f6c3.entry.js +4 -0
- package/dist/ionic/p-cec87704.entry.js +4 -0
- package/dist/ionic/p-dbfd2d52.entry.js +4 -0
- package/dist/ionic/p-e1e5b507.entry.js +4 -0
- package/dist/ionic/p-ede019ef.entry.js +4 -0
- package/dist/ionic/p-efef6788.entry.js +4 -0
- package/dist/ionic/p-f046aa37.entry.js +4 -0
- package/dist/ionic/p-f402f5a4.entry.js +4 -0
- package/dist/ionic/p-f622796d.entry.js +4 -0
- package/{components/p-B-JJgYSG.js → dist/ionic/p-kJA95YWg.js} +1 -1
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +9 -0
- package/dist/types/components/modal/modal.d.ts +11 -4
- package/dist/types/components/nav/nav-interface.d.ts +0 -1
- package/dist/types/components/nav/nav.d.ts +2 -22
- package/dist/types/components/route/route.d.ts +1 -1
- package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +31 -0
- package/dist/types/components/select/select.d.ts +18 -0
- package/dist/types/components/select-option/select-option.d.ts +42 -1
- package/dist/types/components.d.ts +74 -311
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +0 -1
- package/dist/types/utils/config.d.ts +1 -8
- package/dist/types/utils/logging/index.d.ts +2 -1
- package/dist/types/utils/overlay-control-label.d.ts +32 -0
- package/dist/types/utils/overlays.d.ts +11 -9
- package/dist/types/utils/sanitization/index.d.ts +58 -2
- package/dist/types/utils/select-option-render.d.ts +53 -0
- package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
- package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
- package/hydrate/index.js +10343 -7070
- package/hydrate/index.mjs +10343 -7070
- package/package.json +55 -12
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy-column.js +0 -4
- package/components/ion-picker-legacy.d.ts +0 -11
- package/components/ion-picker-legacy.js +0 -4
- package/components/p-A3O24YmY.js +0 -4
- package/components/p-ABkNVeU9.js +0 -4
- package/components/p-B9jFTlwE.js +0 -4
- package/components/p-BLmJ0zRm.js +0 -4
- package/components/p-BMI53wYL.js +0 -4
- package/components/p-BSEgsdFI.js +0 -4
- package/components/p-BTEOs1at.js +0 -4
- package/components/p-BlIAuGv2.js +0 -4
- package/components/p-Bnsn6KaP.js +0 -4
- package/components/p-BsBCoGa-.js +0 -4
- package/components/p-Bz0dSlXZ.js +0 -4
- package/components/p-C53feagD.js +0 -4
- package/components/p-CHqRYvYm.js +0 -4
- package/components/p-CQGnMY3n.js +0 -4
- package/components/p-CSZf8_j0.js +0 -4
- package/components/p-C_xFdyXe.js +0 -4
- package/components/p-Cf2jSDS8.js +0 -4
- package/components/p-Cfx4M1Bn.js +0 -4
- package/components/p-CkMSOsFF.js +0 -4
- package/components/p-Cl0B-RWe.js +0 -4
- package/components/p-CmR5uXej.js +0 -4
- package/components/p-Cp4GRDqq.js +0 -4
- package/components/p-CsNJ1ULL.js +0 -4
- package/components/p-CtWGkNnJ.js +0 -4
- package/components/p-CzCbeKys.js +0 -4
- package/components/p-D-aHdMxW.js +0 -4
- package/components/p-D0d8qTwj.js +0 -4
- package/components/p-D13Eaw-8.js +0 -4
- package/components/p-D6Ynv7Xh.js +0 -4
- package/components/p-DCnGU1fF.js +0 -4
- package/components/p-DGvrK8dD.js +0 -4
- package/components/p-DOFCbuQR.js +0 -4
- package/components/p-DRxvM2Ic.js +0 -4
- package/components/p-DV5mPYQS.js +0 -4
- package/components/p-DWkAgceV.js +0 -4
- package/components/p-DiVJyqlX.js +0 -4
- package/components/p-DqZAXv2t.js +0 -4
- package/components/p-Osve4qkc.js +0 -4
- package/components/p-R8zmRi4c.js +0 -4
- package/components/p-SLS1rDZM.js +0 -4
- package/components/p-aJ6PBUvj.js +0 -4
- package/components/p-cyNmxje6.js +0 -4
- package/components/p-gAg0kXZp.js +0 -4
- package/components/p-gYiraiT_.js +0 -4
- package/components/p-j5IxBIan.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-oD4kcBRX.js +0 -4
- package/components/p-rCa2eL0j.js +0 -4
- package/components/p-vRBNsYbs.js +0 -4
- package/components/p-yEQxMl70.js +0 -4
- package/components/p-yzCsOZE2.js +0 -4
- package/dist/cjs/config-D6C-KlA9.js +0 -201
- package/dist/cjs/ion-datetime_3.cjs.entry.js +0 -3167
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
- package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
- package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
- package/dist/collection/components/picker-legacy/picker.js +0 -890
- package/dist/collection/components/picker-legacy/picker.md.css +0 -287
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
- package/dist/esm/config-DQCONYYp.js +0 -195
- package/dist/esm/ion-datetime_3.entry.js +0 -3163
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-06c232a4.entry.js +0 -4
- package/dist/ionic/p-0caa922c.entry.js +0 -4
- package/dist/ionic/p-0dc33652.entry.js +0 -4
- package/dist/ionic/p-0fa9c382.entry.js +0 -4
- package/dist/ionic/p-10e833ef.entry.js +0 -4
- package/dist/ionic/p-21eb76d5.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2a05aa64.entry.js +0 -4
- package/dist/ionic/p-2b204c59.entry.js +0 -4
- package/dist/ionic/p-2bb2cb18.entry.js +0 -4
- package/dist/ionic/p-2fa58e80.entry.js +0 -4
- package/dist/ionic/p-3353c229.entry.js +0 -4
- package/dist/ionic/p-34586ead.entry.js +0 -4
- package/dist/ionic/p-37e720da.entry.js +0 -4
- package/dist/ionic/p-390ca786.entry.js +0 -4
- package/dist/ionic/p-3ae5f277.entry.js +0 -4
- package/dist/ionic/p-4654ae1c.entry.js +0 -4
- package/dist/ionic/p-4745f534.entry.js +0 -4
- package/dist/ionic/p-4858af1f.entry.js +0 -4
- package/dist/ionic/p-4baa5b82.entry.js +0 -4
- package/dist/ionic/p-4e92a11f.entry.js +0 -4
- package/dist/ionic/p-50e1194a.entry.js +0 -4
- package/dist/ionic/p-5334df12.entry.js +0 -4
- package/dist/ionic/p-5d1da0a2.entry.js +0 -4
- package/dist/ionic/p-5e2f73ee.entry.js +0 -4
- package/dist/ionic/p-5eb8e86d.entry.js +0 -4
- package/dist/ionic/p-65ebdf1b.entry.js +0 -4
- package/dist/ionic/p-746fa988.entry.js +0 -4
- package/dist/ionic/p-75dc25ba.entry.js +0 -4
- package/dist/ionic/p-7c319341.entry.js +0 -4
- package/dist/ionic/p-829367ed.entry.js +0 -4
- package/dist/ionic/p-84d5ce05.entry.js +0 -4
- package/dist/ionic/p-874b4bd8.entry.js +0 -4
- package/dist/ionic/p-8eb8ee76.entry.js +0 -4
- package/dist/ionic/p-9eeaBrnk.js +0 -4
- package/dist/ionic/p-9f9db3a2.entry.js +0 -4
- package/dist/ionic/p-9fa3c405.entry.js +0 -4
- package/dist/ionic/p-BGqMS-oh.js +0 -4
- package/dist/ionic/p-BTEOs1at.js +0 -4
- package/dist/ionic/p-BUFIpxKM.js +0 -4
- package/dist/ionic/p-C0eMdTCW.js +0 -4
- package/dist/ionic/p-C53feagD.js +0 -4
- package/dist/ionic/p-CFlfIb2g.js +0 -4
- package/dist/ionic/p-CKvCXMs9.js +0 -4
- package/dist/ionic/p-Cl0B-RWe.js +0 -4
- package/dist/ionic/p-CmcFnK-B.js +0 -4
- package/dist/ionic/p-CtWGkNnJ.js +0 -4
- package/dist/ionic/p-Cx3IXROA.js +0 -4
- package/dist/ionic/p-D-3ycHmd.js +0 -4
- package/dist/ionic/p-D13Eaw-8.js +0 -4
- package/dist/ionic/p-D4uTWt4-.js +0 -4
- package/dist/ionic/p-DiVJyqlX.js +0 -4
- package/dist/ionic/p-DoJvtrbw.js +0 -4
- package/dist/ionic/p-DqN5EA2O.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-Nqf6uvGh.js +0 -4
- package/dist/ionic/p-SNAkTDfm.js +0 -4
- package/dist/ionic/p-VAemlbDS.js +0 -4
- package/dist/ionic/p-a3bdcae6.entry.js +0 -4
- package/dist/ionic/p-af55a72f.entry.js +0 -4
- package/dist/ionic/p-b2020591.entry.js +0 -4
- package/dist/ionic/p-b9fadbfe.entry.js +0 -4
- package/dist/ionic/p-c0fb8edd.entry.js +0 -4
- package/dist/ionic/p-c38b648e.entry.js +0 -4
- package/dist/ionic/p-c4d8641b.entry.js +0 -4
- package/dist/ionic/p-ca2ab74d.entry.js +0 -4
- package/dist/ionic/p-d889ff6d.entry.js +0 -4
- package/dist/ionic/p-dfa8d673.entry.js +0 -4
- package/dist/ionic/p-ea56626d.entry.js +0 -4
- package/dist/ionic/p-ef4c3bee.entry.js +0 -4
- package/dist/ionic/p-f386f6ae.entry.js +0 -4
- package/dist/ionic/p-mjKAFv89.js +0 -4
- package/dist/ionic/p-tcQvqkiX.js +0 -5
- package/dist/ionic/p-uWtqTrG8.js +0 -4
- package/dist/ionic/p-viFHDgRs.js +0 -4
- package/dist/ionic/p-xWb6fgfq.js +0 -4
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
- package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
- package/dist/types/components/picker-legacy/picker.d.ts +0 -158
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
- /package/components/{p-CO7fmmxt.js → p-LpMHEu3v.js} +0 -0
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { r as registerInstance, c as createEvent, f as printIonWarning, h, d as Host
|
|
5
|
-
import { a as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY } from './index-
|
|
6
|
-
import { j as isSafeNumber,
|
|
7
|
-
import { i as isRTL } from './dir-
|
|
8
|
-
import { h as hostContext, c as createColorClasses } from './theme-
|
|
9
|
-
import { b as getIonMode } from './ionic-global-
|
|
4
|
+
import { r as registerInstance, c as createEvent, g as getElement, f as printIonWarning, h, d as Host } from './index-ChhhtsGZ.js';
|
|
5
|
+
import { a as findClosestIonContent, d as disableContentScrollY, r as resetContentScrollY } from './index-_Za5VB9w.js';
|
|
6
|
+
import { j as isSafeNumber, d as debounceEvent, e as clamp, i as inheritAriaAttributes, a as renderHiddenInput } from './helpers-DexiPLIC.js';
|
|
7
|
+
import { i as isRTL } from './dir-B-FxiyeI.js';
|
|
8
|
+
import { h as hostContext, c as createColorClasses } from './theme-byZM6qHV.js';
|
|
9
|
+
import { b as getIonMode } from './ionic-global-BVB7BrLT.js';
|
|
10
10
|
|
|
11
11
|
function getDecimalPlaces(n) {
|
|
12
12
|
if (!isSafeNumber(n))
|
|
@@ -67,232 +67,75 @@ const Range = class {
|
|
|
67
67
|
this.ionBlur = createEvent(this, "ionBlur", 7);
|
|
68
68
|
this.ionKnobMoveStart = createEvent(this, "ionKnobMoveStart", 7);
|
|
69
69
|
this.ionKnobMoveEnd = createEvent(this, "ionKnobMoveEnd", 7);
|
|
70
|
-
this.rangeId = `ion-r-${rangeIds++}`;
|
|
71
|
-
this.didLoad = false;
|
|
72
|
-
this.noUpdate = false;
|
|
73
|
-
this.hasFocus = false;
|
|
74
|
-
this.inheritedAttributes = {};
|
|
75
|
-
this.contentEl = null;
|
|
76
|
-
this.initialContentScrollY = true;
|
|
77
|
-
/**
|
|
78
|
-
* Used to avoid setting the focused state on click or tap. The focused
|
|
79
|
-
* state is only set when the focus comes from the keyboard (e.g. Tab).
|
|
80
|
-
* This is set to true on pointer down (mouse/touch).
|
|
81
|
-
*/
|
|
82
|
-
this.focusFromPointer = false;
|
|
83
|
-
this.ratioA = 0;
|
|
84
|
-
this.ratioB = 0;
|
|
85
|
-
/**
|
|
86
|
-
* The name of the control, which is submitted with the form data.
|
|
87
|
-
*/
|
|
88
|
-
this.name = this.rangeId;
|
|
89
|
-
/**
|
|
90
|
-
* Show two knobs.
|
|
91
|
-
*/
|
|
92
|
-
this.dualKnobs = false;
|
|
93
|
-
/**
|
|
94
|
-
* Minimum integer value of the range.
|
|
95
|
-
*/
|
|
96
|
-
this.min = 0;
|
|
97
|
-
/**
|
|
98
|
-
* Maximum integer value of the range.
|
|
99
|
-
*/
|
|
100
|
-
this.max = 100;
|
|
101
|
-
/**
|
|
102
|
-
* If `true`, a pin with integer value is shown when the knob
|
|
103
|
-
* is pressed.
|
|
104
|
-
*/
|
|
105
|
-
this.pin = false;
|
|
106
|
-
/**
|
|
107
|
-
* A callback used to format the pin text.
|
|
108
|
-
* By default the pin text is set to `Math.round(value)`.
|
|
109
|
-
*
|
|
110
|
-
* See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
|
|
111
|
-
* if you need to access `this` from within the callback.
|
|
112
|
-
*/
|
|
113
|
-
this.pinFormatter = (value) => Math.round(value);
|
|
114
|
-
/**
|
|
115
|
-
* If `true`, the knob snaps to tick marks evenly spaced based
|
|
116
|
-
* on the step property value.
|
|
117
|
-
*/
|
|
118
|
-
this.snaps = false;
|
|
119
|
-
/**
|
|
120
|
-
* Specifies the value granularity.
|
|
121
|
-
*/
|
|
122
|
-
this.step = 1;
|
|
123
|
-
/**
|
|
124
|
-
* If `true`, tick marks are displayed based on the step value.
|
|
125
|
-
* Only applies when `snaps` is `true`.
|
|
126
|
-
*/
|
|
127
|
-
this.ticks = true;
|
|
128
|
-
/**
|
|
129
|
-
* If `true`, the user cannot interact with the range.
|
|
130
|
-
*/
|
|
131
|
-
this.disabled = false;
|
|
132
|
-
/**
|
|
133
|
-
* the value of the range.
|
|
134
|
-
*/
|
|
135
|
-
this.value = 0;
|
|
136
|
-
/**
|
|
137
|
-
* Compares two RangeValue inputs to determine if they are different.
|
|
138
|
-
*
|
|
139
|
-
* @param newVal - The new value.
|
|
140
|
-
* @param oldVal - The old value.
|
|
141
|
-
* @returns `true` if the values are different, `false` otherwise.
|
|
142
|
-
*/
|
|
143
|
-
this.compareValues = (newVal, oldVal) => {
|
|
144
|
-
if (typeof newVal === 'object' && typeof oldVal === 'object') {
|
|
145
|
-
return newVal.lower !== oldVal.lower || newVal.upper !== oldVal.upper;
|
|
146
|
-
}
|
|
147
|
-
return newVal !== oldVal;
|
|
148
|
-
};
|
|
149
|
-
this.clampBounds = (value) => {
|
|
150
|
-
return clamp(this.min, value, this.max);
|
|
151
|
-
};
|
|
152
|
-
this.ensureValueInBounds = (value) => {
|
|
153
|
-
if (this.dualKnobs) {
|
|
154
|
-
return {
|
|
155
|
-
lower: this.clampBounds(value.lower),
|
|
156
|
-
upper: this.clampBounds(value.upper),
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
return this.clampBounds(value);
|
|
161
|
-
}
|
|
162
|
-
};
|
|
163
|
-
/**
|
|
164
|
-
* Where to place the label relative to the range.
|
|
165
|
-
* `"start"`: The label will appear to the left of the range in LTR and to the right in RTL.
|
|
166
|
-
* `"end"`: The label will appear to the right of the range in LTR and to the left in RTL.
|
|
167
|
-
* `"fixed"`: The label has the same behavior as `"start"` except it also has a fixed width. Long text will be truncated with ellipses ("...").
|
|
168
|
-
* `"stacked"`: The label will appear above the range regardless of the direction.
|
|
169
|
-
*/
|
|
170
|
-
this.labelPlacement = 'start';
|
|
171
|
-
this.setupGesture = async () => {
|
|
172
|
-
const rangeSlider = this.rangeSlider;
|
|
173
|
-
if (rangeSlider) {
|
|
174
|
-
this.gesture = (await import('./index-CfgBF1SE.js')).createGesture({
|
|
175
|
-
el: rangeSlider,
|
|
176
|
-
gestureName: 'range',
|
|
177
|
-
gesturePriority: 100,
|
|
178
|
-
/**
|
|
179
|
-
* Provide a threshold since the drag movement
|
|
180
|
-
* might be a user scrolling the view.
|
|
181
|
-
* If this is true, then the range
|
|
182
|
-
* should not move.
|
|
183
|
-
*/
|
|
184
|
-
threshold: 10,
|
|
185
|
-
onStart: () => this.onStart(),
|
|
186
|
-
onMove: (ev) => this.onMove(ev),
|
|
187
|
-
onEnd: (ev) => this.onEnd(ev),
|
|
188
|
-
});
|
|
189
|
-
this.gesture.enable(!this.disabled);
|
|
190
|
-
}
|
|
191
|
-
};
|
|
192
|
-
/**
|
|
193
|
-
* Observes the knob handles for the ion-activated class and syncs
|
|
194
|
-
* activatedKnob so the activated part is correctly set on the handle,
|
|
195
|
-
* knob, and pin.
|
|
196
|
-
*/
|
|
197
|
-
this.setupActivatedObserver = () => {
|
|
198
|
-
const knobHandleA = this.el.shadowRoot.querySelector('.range-knob-handle-a');
|
|
199
|
-
const knobHandleB = this.el.shadowRoot.querySelector('.range-knob-handle-b');
|
|
200
|
-
const syncActivated = () => {
|
|
201
|
-
this.activatedKnob = (knobHandleA === null || knobHandleA === void 0 ? void 0 : knobHandleA.classList.contains('ion-activated'))
|
|
202
|
-
? 'A'
|
|
203
|
-
: (knobHandleB === null || knobHandleB === void 0 ? void 0 : knobHandleB.classList.contains('ion-activated'))
|
|
204
|
-
? 'B'
|
|
205
|
-
: undefined;
|
|
206
|
-
};
|
|
207
|
-
if (typeof MutationObserver !== 'undefined') {
|
|
208
|
-
this.activatedObserver = new MutationObserver(syncActivated);
|
|
209
|
-
this.activatedObserver.observe(this.el.shadowRoot, {
|
|
210
|
-
attributes: true,
|
|
211
|
-
attributeFilter: ['class'],
|
|
212
|
-
subtree: true,
|
|
213
|
-
});
|
|
214
|
-
}
|
|
215
|
-
syncActivated();
|
|
216
|
-
};
|
|
217
|
-
this.handleKeyboard = (knob, isIncrease) => {
|
|
218
|
-
const { ensureValueInBounds } = this;
|
|
219
|
-
let step = this.step;
|
|
220
|
-
step = step > 0 ? step : 1;
|
|
221
|
-
step = step / (this.max - this.min);
|
|
222
|
-
if (!isIncrease) {
|
|
223
|
-
step *= -1;
|
|
224
|
-
}
|
|
225
|
-
if (knob === 'A') {
|
|
226
|
-
this.ratioA = clamp(0, this.ratioA + step, 1);
|
|
227
|
-
}
|
|
228
|
-
else {
|
|
229
|
-
this.ratioB = clamp(0, this.ratioB + step, 1);
|
|
230
|
-
}
|
|
231
|
-
this.ionKnobMoveStart.emit({ value: ensureValueInBounds(this.value) });
|
|
232
|
-
this.updateValue();
|
|
233
|
-
this.emitValueChange();
|
|
234
|
-
this.ionKnobMoveEnd.emit({ value: ensureValueInBounds(this.value) });
|
|
235
|
-
};
|
|
236
|
-
this.onBlur = () => {
|
|
237
|
-
if (this.hasFocus) {
|
|
238
|
-
this.hasFocus = false;
|
|
239
|
-
this.focusedKnob = undefined;
|
|
240
|
-
this.ionBlur.emit();
|
|
241
|
-
}
|
|
242
|
-
};
|
|
243
|
-
this.onFocus = () => {
|
|
244
|
-
if (!this.hasFocus) {
|
|
245
|
-
this.hasFocus = true;
|
|
246
|
-
this.ionFocus.emit();
|
|
247
|
-
}
|
|
248
|
-
};
|
|
249
|
-
this.onKnobFocus = (knob) => {
|
|
250
|
-
// Clicking focuses the range which is needed for the keyboard,
|
|
251
|
-
// but we only want to add the ion-focused class when focused via Tab.
|
|
252
|
-
if (!this.focusFromPointer) {
|
|
253
|
-
this.focusedKnob = knob;
|
|
254
|
-
}
|
|
255
|
-
else {
|
|
256
|
-
this.focusFromPointer = false;
|
|
257
|
-
this.focusedKnob = undefined;
|
|
258
|
-
}
|
|
259
|
-
// If the knob was not already focused, emit the focus event
|
|
260
|
-
if (!this.hasFocus) {
|
|
261
|
-
this.hasFocus = true;
|
|
262
|
-
this.ionFocus.emit();
|
|
263
|
-
}
|
|
264
|
-
};
|
|
265
|
-
this.onKnobBlur = () => {
|
|
266
|
-
// Check if focus is moving to another knob within the same range
|
|
267
|
-
// by delaying the reset to allow the new focus to register
|
|
268
|
-
setTimeout(() => {
|
|
269
|
-
var _a;
|
|
270
|
-
const activeElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement;
|
|
271
|
-
const isStillFocusedOnKnob = activeElement && activeElement.classList.contains('range-knob-handle');
|
|
272
|
-
if (!isStillFocusedOnKnob) {
|
|
273
|
-
if (this.hasFocus) {
|
|
274
|
-
this.hasFocus = false;
|
|
275
|
-
this.focusedKnob = undefined;
|
|
276
|
-
this.ionBlur.emit();
|
|
277
|
-
}
|
|
278
|
-
}
|
|
279
|
-
}, 0);
|
|
280
|
-
};
|
|
281
|
-
this.onKnobMouseEnter = (knob) => {
|
|
282
|
-
this.hoveredKnob = knob;
|
|
283
|
-
};
|
|
284
|
-
this.onKnobMouseLeave = () => {
|
|
285
|
-
this.hoveredKnob = undefined;
|
|
286
|
-
};
|
|
287
70
|
}
|
|
71
|
+
rangeId = `ion-r-${rangeIds++}`;
|
|
72
|
+
didLoad = false;
|
|
73
|
+
noUpdate = false;
|
|
74
|
+
rect;
|
|
75
|
+
hasFocus = false;
|
|
76
|
+
rangeSlider;
|
|
77
|
+
gesture;
|
|
78
|
+
inheritedAttributes = {};
|
|
79
|
+
contentEl = null;
|
|
80
|
+
initialContentScrollY = true;
|
|
81
|
+
originalIonInput;
|
|
82
|
+
/**
|
|
83
|
+
* Used to avoid setting the focused state on click or tap. The focused
|
|
84
|
+
* state is only set when the focus comes from the keyboard (e.g. Tab).
|
|
85
|
+
* This is set to true on pointer down (mouse/touch).
|
|
86
|
+
*/
|
|
87
|
+
focusFromPointer = false;
|
|
88
|
+
/**
|
|
89
|
+
* Observes class changes on the knob handles to keep the activatedKnob
|
|
90
|
+
* state in sync with the ion-activated class. This is necessary to
|
|
91
|
+
* determine which knob the user is dragging when using dual knobs and
|
|
92
|
+
* apply the activated part correctly.
|
|
93
|
+
*/
|
|
94
|
+
activatedObserver;
|
|
95
|
+
get el() { return getElement(this); }
|
|
96
|
+
ratioA = 0;
|
|
97
|
+
ratioB = 0;
|
|
98
|
+
activatedKnob;
|
|
99
|
+
focusedKnob;
|
|
100
|
+
hoveredKnob;
|
|
101
|
+
pressedKnob;
|
|
102
|
+
/**
|
|
103
|
+
* The color to use from your application's color palette.
|
|
104
|
+
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
105
|
+
* For more information on colors, see [theming](/docs/theming/basics).
|
|
106
|
+
*/
|
|
107
|
+
color;
|
|
108
|
+
/**
|
|
109
|
+
* How long, in milliseconds, to wait to trigger the
|
|
110
|
+
* `ionInput` event after each change in the range value.
|
|
111
|
+
*/
|
|
112
|
+
debounce;
|
|
288
113
|
debounceChanged() {
|
|
289
114
|
const { ionInput, debounce, originalIonInput } = this;
|
|
290
115
|
/**
|
|
291
116
|
* If debounce is undefined, we have to manually revert the ionInput emitter in case
|
|
292
117
|
* debounce used to be set to a number. Otherwise, the event would stay debounced.
|
|
293
118
|
*/
|
|
294
|
-
this.ionInput = debounce === undefined ? originalIonInput
|
|
119
|
+
this.ionInput = debounce === undefined ? originalIonInput ?? ionInput : debounceEvent(ionInput, debounce);
|
|
295
120
|
}
|
|
121
|
+
/**
|
|
122
|
+
* The name of the control, which is submitted with the form data.
|
|
123
|
+
*/
|
|
124
|
+
name = this.rangeId;
|
|
125
|
+
/**
|
|
126
|
+
* The text to display as the control's label. Use this over the `label` slot if
|
|
127
|
+
* you only need plain text. The `label` property will take priority over the
|
|
128
|
+
* `label` slot if both are used.
|
|
129
|
+
*/
|
|
130
|
+
label;
|
|
131
|
+
/**
|
|
132
|
+
* Show two knobs.
|
|
133
|
+
*/
|
|
134
|
+
dualKnobs = false;
|
|
135
|
+
/**
|
|
136
|
+
* Minimum integer value of the range.
|
|
137
|
+
*/
|
|
138
|
+
min = 0;
|
|
296
139
|
minChanged(newValue) {
|
|
297
140
|
if (!isSafeNumber(newValue)) {
|
|
298
141
|
this.min = 0;
|
|
@@ -301,6 +144,10 @@ const Range = class {
|
|
|
301
144
|
this.updateRatio();
|
|
302
145
|
}
|
|
303
146
|
}
|
|
147
|
+
/**
|
|
148
|
+
* Maximum integer value of the range.
|
|
149
|
+
*/
|
|
150
|
+
max = 100;
|
|
304
151
|
maxChanged(newValue) {
|
|
305
152
|
if (!isSafeNumber(newValue)) {
|
|
306
153
|
this.max = 100;
|
|
@@ -309,11 +156,43 @@ const Range = class {
|
|
|
309
156
|
this.updateRatio();
|
|
310
157
|
}
|
|
311
158
|
}
|
|
159
|
+
/**
|
|
160
|
+
* If `true`, a pin with integer value is shown when the knob
|
|
161
|
+
* is pressed.
|
|
162
|
+
*/
|
|
163
|
+
pin = false;
|
|
164
|
+
/**
|
|
165
|
+
* A callback used to format the pin text.
|
|
166
|
+
* By default the pin text is set to `Math.round(value)`.
|
|
167
|
+
*
|
|
168
|
+
* See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
|
|
169
|
+
* if you need to access `this` from within the callback.
|
|
170
|
+
*/
|
|
171
|
+
pinFormatter = (value) => Math.round(value);
|
|
172
|
+
/**
|
|
173
|
+
* If `true`, the knob snaps to tick marks evenly spaced based
|
|
174
|
+
* on the step property value.
|
|
175
|
+
*/
|
|
176
|
+
snaps = false;
|
|
177
|
+
/**
|
|
178
|
+
* Specifies the value granularity.
|
|
179
|
+
*/
|
|
180
|
+
step = 1;
|
|
312
181
|
stepChanged(newValue) {
|
|
313
182
|
if (!isSafeNumber(newValue)) {
|
|
314
183
|
this.step = 1;
|
|
315
184
|
}
|
|
316
185
|
}
|
|
186
|
+
/**
|
|
187
|
+
* If `true`, tick marks are displayed based on the step value.
|
|
188
|
+
* Only applies when `snaps` is `true`.
|
|
189
|
+
*/
|
|
190
|
+
ticks = true;
|
|
191
|
+
/**
|
|
192
|
+
* The start position of the range active bar. This feature is only available with a single knob (dualKnobs="false").
|
|
193
|
+
* Valid values are greater than or equal to the min value and less than or equal to the max value.
|
|
194
|
+
*/
|
|
195
|
+
activeBarStart;
|
|
317
196
|
activeBarStartChanged() {
|
|
318
197
|
const { activeBarStart } = this;
|
|
319
198
|
if (activeBarStart !== undefined) {
|
|
@@ -327,11 +206,19 @@ const Range = class {
|
|
|
327
206
|
}
|
|
328
207
|
}
|
|
329
208
|
}
|
|
209
|
+
/**
|
|
210
|
+
* If `true`, the user cannot interact with the range.
|
|
211
|
+
*/
|
|
212
|
+
disabled = false;
|
|
330
213
|
disabledChanged() {
|
|
331
214
|
if (this.gesture) {
|
|
332
215
|
this.gesture.enable(!this.disabled);
|
|
333
216
|
}
|
|
334
217
|
}
|
|
218
|
+
/**
|
|
219
|
+
* the value of the range.
|
|
220
|
+
*/
|
|
221
|
+
value = 0;
|
|
335
222
|
valueChanged(newValue, oldValue) {
|
|
336
223
|
const valuesChanged = this.compareValues(newValue, oldValue);
|
|
337
224
|
if (valuesChanged) {
|
|
@@ -341,6 +228,120 @@ const Range = class {
|
|
|
341
228
|
this.updateRatio();
|
|
342
229
|
}
|
|
343
230
|
}
|
|
231
|
+
/**
|
|
232
|
+
* Compares two RangeValue inputs to determine if they are different.
|
|
233
|
+
*
|
|
234
|
+
* @param newVal - The new value.
|
|
235
|
+
* @param oldVal - The old value.
|
|
236
|
+
* @returns `true` if the values are different, `false` otherwise.
|
|
237
|
+
*/
|
|
238
|
+
compareValues = (newVal, oldVal) => {
|
|
239
|
+
if (typeof newVal === 'object' && typeof oldVal === 'object') {
|
|
240
|
+
return newVal.lower !== oldVal.lower || newVal.upper !== oldVal.upper;
|
|
241
|
+
}
|
|
242
|
+
return newVal !== oldVal;
|
|
243
|
+
};
|
|
244
|
+
clampBounds = (value) => {
|
|
245
|
+
return clamp(this.min, value, this.max);
|
|
246
|
+
};
|
|
247
|
+
ensureValueInBounds = (value) => {
|
|
248
|
+
if (this.dualKnobs) {
|
|
249
|
+
return {
|
|
250
|
+
lower: this.clampBounds(value.lower),
|
|
251
|
+
upper: this.clampBounds(value.upper),
|
|
252
|
+
};
|
|
253
|
+
}
|
|
254
|
+
else {
|
|
255
|
+
return this.clampBounds(value);
|
|
256
|
+
}
|
|
257
|
+
};
|
|
258
|
+
/**
|
|
259
|
+
* Where to place the label relative to the range.
|
|
260
|
+
* `"start"`: The label will appear to the left of the range in LTR and to the right in RTL.
|
|
261
|
+
* `"end"`: The label will appear to the right of the range in LTR and to the left in RTL.
|
|
262
|
+
* `"fixed"`: The label has the same behavior as `"start"` except it also has a fixed width. Long text will be truncated with ellipses ("...").
|
|
263
|
+
* `"stacked"`: The label will appear above the range regardless of the direction.
|
|
264
|
+
*/
|
|
265
|
+
labelPlacement = 'start';
|
|
266
|
+
/**
|
|
267
|
+
* The `ionChange` event is fired for `<ion-range>` elements when the user
|
|
268
|
+
* modifies the element's value:
|
|
269
|
+
* - When the user releases the knob after dragging;
|
|
270
|
+
* - When the user moves the knob with keyboard arrows
|
|
271
|
+
*
|
|
272
|
+
* This event will not emit when programmatically setting the `value` property.
|
|
273
|
+
*/
|
|
274
|
+
ionChange;
|
|
275
|
+
/**
|
|
276
|
+
* The `ionInput` event is fired for `<ion-range>` elements when the value
|
|
277
|
+
* is modified. Unlike `ionChange`, `ionInput` is fired continuously
|
|
278
|
+
* while the user is dragging the knob.
|
|
279
|
+
*/
|
|
280
|
+
ionInput;
|
|
281
|
+
/**
|
|
282
|
+
* Emitted when the range has focus.
|
|
283
|
+
*/
|
|
284
|
+
ionFocus;
|
|
285
|
+
/**
|
|
286
|
+
* Emitted when the range loses focus.
|
|
287
|
+
*/
|
|
288
|
+
ionBlur;
|
|
289
|
+
/**
|
|
290
|
+
* Emitted when the user starts moving the range knob, whether through
|
|
291
|
+
* mouse drag, touch gesture, or keyboard interaction.
|
|
292
|
+
*/
|
|
293
|
+
ionKnobMoveStart;
|
|
294
|
+
/**
|
|
295
|
+
* Emitted when the user finishes moving the range knob, whether through
|
|
296
|
+
* mouse drag, touch gesture, or keyboard interaction.
|
|
297
|
+
*/
|
|
298
|
+
ionKnobMoveEnd;
|
|
299
|
+
setupGesture = async () => {
|
|
300
|
+
const rangeSlider = this.rangeSlider;
|
|
301
|
+
if (rangeSlider) {
|
|
302
|
+
this.gesture = (await import('./index-DppOcPFQ.js')).createGesture({
|
|
303
|
+
el: rangeSlider,
|
|
304
|
+
gestureName: 'range',
|
|
305
|
+
gesturePriority: 100,
|
|
306
|
+
/**
|
|
307
|
+
* Provide a threshold since the drag movement
|
|
308
|
+
* might be a user scrolling the view.
|
|
309
|
+
* If this is true, then the range
|
|
310
|
+
* should not move.
|
|
311
|
+
*/
|
|
312
|
+
threshold: 10,
|
|
313
|
+
onStart: () => this.onStart(),
|
|
314
|
+
onMove: (ev) => this.onMove(ev),
|
|
315
|
+
onEnd: (ev) => this.onEnd(ev),
|
|
316
|
+
});
|
|
317
|
+
this.gesture.enable(!this.disabled);
|
|
318
|
+
}
|
|
319
|
+
};
|
|
320
|
+
/**
|
|
321
|
+
* Observes the knob handles for the ion-activated class and syncs
|
|
322
|
+
* activatedKnob so the activated part is correctly set on the handle,
|
|
323
|
+
* knob, and pin.
|
|
324
|
+
*/
|
|
325
|
+
setupActivatedObserver = () => {
|
|
326
|
+
const knobHandleA = this.el.shadowRoot.querySelector('.range-knob-handle-a');
|
|
327
|
+
const knobHandleB = this.el.shadowRoot.querySelector('.range-knob-handle-b');
|
|
328
|
+
const syncActivated = () => {
|
|
329
|
+
this.activatedKnob = knobHandleA?.classList.contains('ion-activated')
|
|
330
|
+
? 'A'
|
|
331
|
+
: knobHandleB?.classList.contains('ion-activated')
|
|
332
|
+
? 'B'
|
|
333
|
+
: undefined;
|
|
334
|
+
};
|
|
335
|
+
if (typeof MutationObserver !== 'undefined') {
|
|
336
|
+
this.activatedObserver = new MutationObserver(syncActivated);
|
|
337
|
+
this.activatedObserver.observe(this.el.shadowRoot, {
|
|
338
|
+
attributes: true,
|
|
339
|
+
attributeFilter: ['class'],
|
|
340
|
+
subtree: true,
|
|
341
|
+
});
|
|
342
|
+
}
|
|
343
|
+
syncActivated();
|
|
344
|
+
};
|
|
344
345
|
componentWillLoad() {
|
|
345
346
|
/**
|
|
346
347
|
* If user has custom ID set then we should
|
|
@@ -364,7 +365,6 @@ const Range = class {
|
|
|
364
365
|
this.didLoad = true;
|
|
365
366
|
}
|
|
366
367
|
connectedCallback() {
|
|
367
|
-
var _a;
|
|
368
368
|
this.updateRatio();
|
|
369
369
|
this.debounceChanged();
|
|
370
370
|
this.disabledChanged();
|
|
@@ -380,7 +380,7 @@ const Range = class {
|
|
|
380
380
|
this.setupActivatedObserver();
|
|
381
381
|
}
|
|
382
382
|
const ionContent = findClosestIonContent(this.el);
|
|
383
|
-
this.contentEl =
|
|
383
|
+
this.contentEl = ionContent?.querySelector('.ion-content-scroll-host') ?? ionContent;
|
|
384
384
|
}
|
|
385
385
|
disconnectedCallback() {
|
|
386
386
|
if (this.gesture) {
|
|
@@ -392,9 +392,27 @@ const Range = class {
|
|
|
392
392
|
this.activatedObserver = undefined;
|
|
393
393
|
}
|
|
394
394
|
}
|
|
395
|
+
handleKeyboard = (knob, isIncrease) => {
|
|
396
|
+
const { ensureValueInBounds } = this;
|
|
397
|
+
let step = this.step;
|
|
398
|
+
step = step > 0 ? step : 1;
|
|
399
|
+
step = step / (this.max - this.min);
|
|
400
|
+
if (!isIncrease) {
|
|
401
|
+
step *= -1;
|
|
402
|
+
}
|
|
403
|
+
if (knob === 'A') {
|
|
404
|
+
this.ratioA = clamp(0, this.ratioA + step, 1);
|
|
405
|
+
}
|
|
406
|
+
else {
|
|
407
|
+
this.ratioB = clamp(0, this.ratioB + step, 1);
|
|
408
|
+
}
|
|
409
|
+
this.ionKnobMoveStart.emit({ value: ensureValueInBounds(this.value) });
|
|
410
|
+
this.updateValue();
|
|
411
|
+
this.emitValueChange();
|
|
412
|
+
this.ionKnobMoveEnd.emit({ value: ensureValueInBounds(this.value) });
|
|
413
|
+
};
|
|
395
414
|
getValue() {
|
|
396
|
-
|
|
397
|
-
const value = (_a = this.value) !== null && _a !== void 0 ? _a : 0;
|
|
415
|
+
const value = this.value ?? 0;
|
|
398
416
|
if (this.dualKnobs) {
|
|
399
417
|
if (typeof value === 'object') {
|
|
400
418
|
return value;
|
|
@@ -480,9 +498,8 @@ const Range = class {
|
|
|
480
498
|
* @param detail The details of the gesture or mouse event.
|
|
481
499
|
*/
|
|
482
500
|
onEnd(detail) {
|
|
483
|
-
var _a;
|
|
484
501
|
const { contentEl, initialContentScrollY } = this;
|
|
485
|
-
const currentX =
|
|
502
|
+
const currentX = detail.currentX ?? detail.clientX;
|
|
486
503
|
/**
|
|
487
504
|
* The `pressedKnob` can be undefined if the user never
|
|
488
505
|
* dragged the knob. They just tapped on the bar.
|
|
@@ -602,6 +619,56 @@ const Range = class {
|
|
|
602
619
|
};
|
|
603
620
|
this.noUpdate = false;
|
|
604
621
|
}
|
|
622
|
+
onBlur = () => {
|
|
623
|
+
if (this.hasFocus) {
|
|
624
|
+
this.hasFocus = false;
|
|
625
|
+
this.focusedKnob = undefined;
|
|
626
|
+
this.ionBlur.emit();
|
|
627
|
+
}
|
|
628
|
+
};
|
|
629
|
+
onFocus = () => {
|
|
630
|
+
if (!this.hasFocus) {
|
|
631
|
+
this.hasFocus = true;
|
|
632
|
+
this.ionFocus.emit();
|
|
633
|
+
}
|
|
634
|
+
};
|
|
635
|
+
onKnobFocus = (knob) => {
|
|
636
|
+
// Clicking focuses the range which is needed for the keyboard,
|
|
637
|
+
// but we only want to add the ion-focused class when focused via Tab.
|
|
638
|
+
if (!this.focusFromPointer) {
|
|
639
|
+
this.focusedKnob = knob;
|
|
640
|
+
}
|
|
641
|
+
else {
|
|
642
|
+
this.focusFromPointer = false;
|
|
643
|
+
this.focusedKnob = undefined;
|
|
644
|
+
}
|
|
645
|
+
// If the knob was not already focused, emit the focus event
|
|
646
|
+
if (!this.hasFocus) {
|
|
647
|
+
this.hasFocus = true;
|
|
648
|
+
this.ionFocus.emit();
|
|
649
|
+
}
|
|
650
|
+
};
|
|
651
|
+
onKnobBlur = () => {
|
|
652
|
+
// Check if focus is moving to another knob within the same range
|
|
653
|
+
// by delaying the reset to allow the new focus to register
|
|
654
|
+
setTimeout(() => {
|
|
655
|
+
const activeElement = this.el.shadowRoot?.activeElement;
|
|
656
|
+
const isStillFocusedOnKnob = activeElement && activeElement.classList.contains('range-knob-handle');
|
|
657
|
+
if (!isStillFocusedOnKnob) {
|
|
658
|
+
if (this.hasFocus) {
|
|
659
|
+
this.hasFocus = false;
|
|
660
|
+
this.focusedKnob = undefined;
|
|
661
|
+
this.ionBlur.emit();
|
|
662
|
+
}
|
|
663
|
+
}
|
|
664
|
+
}, 0);
|
|
665
|
+
};
|
|
666
|
+
onKnobMouseEnter = (knob) => {
|
|
667
|
+
this.hoveredKnob = knob;
|
|
668
|
+
};
|
|
669
|
+
onKnobMouseLeave = () => {
|
|
670
|
+
this.hoveredKnob = undefined;
|
|
671
|
+
};
|
|
605
672
|
/**
|
|
606
673
|
* Returns true if content was passed to the "start" slot
|
|
607
674
|
*/
|
|
@@ -618,7 +685,6 @@ const Range = class {
|
|
|
618
685
|
return this.label !== undefined || this.el.querySelector('[slot="label"]') !== null;
|
|
619
686
|
}
|
|
620
687
|
renderRangeSlider() {
|
|
621
|
-
var _a;
|
|
622
688
|
const { min, max, step, handleKeyboard, activatedKnob, focusedKnob, hoveredKnob, pressedKnob, disabled, pin, ratioLower, ratioUpper, pinFormatter, inheritedAttributes, } = this;
|
|
623
689
|
let barStart = `${ratioLower * 100}%`;
|
|
624
690
|
let barEnd = `${100 - ratioUpper * 100}%`;
|
|
@@ -635,7 +701,7 @@ const Range = class {
|
|
|
635
701
|
* When the value is less than the activeBarStart or the min value,
|
|
636
702
|
* the knob will display at the start of the active bar.
|
|
637
703
|
*/
|
|
638
|
-
if (this.valA < (
|
|
704
|
+
if (this.valA < (this.activeBarStart ?? this.min)) {
|
|
639
705
|
/**
|
|
640
706
|
* Sets the bar positions relative to the upper and lower limits.
|
|
641
707
|
* Converts the ratio values into percentages, used as offsets for left/right styles.
|
|
@@ -783,7 +849,7 @@ const Range = class {
|
|
|
783
849
|
* Determine the name and position of the pressed knob to apply
|
|
784
850
|
* Host classes for styling.
|
|
785
851
|
*/
|
|
786
|
-
const pressedKnobName = dualKnobs ? pressedKnob
|
|
852
|
+
const pressedKnobName = dualKnobs ? pressedKnob?.toLowerCase() : undefined;
|
|
787
853
|
const pressedKnobPosition = dualKnobs && pressedKnob ? getKnobPosition(pressedKnob, this.ratioA, this.ratioB, dualKnobs) : undefined;
|
|
788
854
|
/**
|
|
789
855
|
* Determine if any knob is at the min or max value to
|
|
@@ -792,7 +858,7 @@ const Range = class {
|
|
|
792
858
|
const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
|
|
793
859
|
const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
|
|
794
860
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
795
|
-
return (h(Host, { key: '
|
|
861
|
+
return (h(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
|
|
796
862
|
[mode]: true,
|
|
797
863
|
'in-item': inItem,
|
|
798
864
|
'range-disabled': disabled,
|
|
@@ -806,12 +872,11 @@ const Range = class {
|
|
|
806
872
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
807
873
|
'range-value-min': valueAtMin,
|
|
808
874
|
'range-value-max': valueAtMax,
|
|
809
|
-
}) }, h("label", { key: '
|
|
875
|
+
}) }, h("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, h("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
|
|
810
876
|
'label-text-wrapper': true,
|
|
811
877
|
'label-text-wrapper-hidden': !hasLabel,
|
|
812
|
-
}, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '
|
|
878
|
+
}, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '9e252f1190838fbae46e724bf665f9b1943600a4', class: "native-wrapper" }, h("slot", { key: '950697dd9636da340de659812daa91fff50e5345', name: "start" }), this.renderRangeSlider(), h("slot", { key: 'd3fce46b29db275af71e6149e725967839ec12b0', name: "end" })))));
|
|
813
879
|
}
|
|
814
|
-
get el() { return getElement(this); }
|
|
815
880
|
static get watchers() { return {
|
|
816
881
|
"debounce": [{
|
|
817
882
|
"debounceChanged": 0
|