@ionic/core 8.8.19-dev.11787076261.138d5922 → 8.8.19-dev.11787084784.17cf25cf
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-legacy-column.d.ts +11 -0
- package/components/ion-picker-legacy-column.js +4 -0
- package/components/ion-picker-legacy.d.ts +11 -0
- package/components/ion-picker-legacy.js +4 -0
- 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-DV85C0e0.js → p--JUspHvy.js} +1 -1
- package/components/p-A3O24YmY.js +4 -0
- package/components/p-ABkNVeU9.js +4 -0
- package/components/p-B-JJgYSG.js +4 -0
- package/components/p-B9jFTlwE.js +4 -0
- package/components/p-BLmJ0zRm.js +4 -0
- package/components/p-BMI53wYL.js +4 -0
- package/components/p-BSEgsdFI.js +4 -0
- package/components/p-BTEOs1at.js +4 -0
- package/components/{p-DwpKZ6rl.js → p-BkKAANMJ.js} +1 -1
- package/components/p-BlIAuGv2.js +4 -0
- package/components/p-Bnsn6KaP.js +4 -0
- package/components/p-BsBCoGa-.js +4 -0
- package/components/p-Bz0dSlXZ.js +4 -0
- package/components/p-C53feagD.js +4 -0
- package/components/p-CHqRYvYm.js +4 -0
- package/components/p-CQGnMY3n.js +4 -0
- package/components/p-CSZf8_j0.js +4 -0
- package/components/{p-30_sZS2V.js → p-C_hpsif8.js} +1 -1
- package/components/p-C_xFdyXe.js +4 -0
- package/components/p-Cf2jSDS8.js +4 -0
- package/components/p-Cfx4M1Bn.js +4 -0
- package/components/{p-J-p0EtHR.js → p-ChIZKXUu.js} +1 -1
- package/components/p-CkMSOsFF.js +4 -0
- package/components/p-Cl0B-RWe.js +4 -0
- package/components/p-CmR5uXej.js +4 -0
- package/components/p-Cp4GRDqq.js +4 -0
- package/components/p-CsNJ1ULL.js +4 -0
- package/components/p-CtWGkNnJ.js +4 -0
- package/components/p-CzCbeKys.js +4 -0
- package/components/p-D-aHdMxW.js +4 -0
- package/components/p-D0d8qTwj.js +4 -0
- package/components/p-D13Eaw-8.js +4 -0
- package/components/{p-BpG8kBfD.js → p-D3xo7hqU.js} +1 -1
- package/components/p-D6Ynv7Xh.js +4 -0
- package/components/{p-_0JhwClE.js → p-D7uN07a3.js} +1 -1
- package/components/p-DCnGU1fF.js +4 -0
- package/components/p-DGvrK8dD.js +4 -0
- package/components/p-DOFCbuQR.js +4 -0
- package/components/p-DRxvM2Ic.js +4 -0
- package/components/p-DV5mPYQS.js +4 -0
- package/components/p-DWkAgceV.js +4 -0
- package/components/p-DiVJyqlX.js +4 -0
- package/components/{p-ryyf_ItD.js → p-DqLB8yFQ.js} +1 -1
- package/components/p-DqZAXv2t.js +4 -0
- package/components/p-Osve4qkc.js +4 -0
- package/components/p-R8zmRi4c.js +4 -0
- package/components/p-SLS1rDZM.js +4 -0
- package/components/p-aJ6PBUvj.js +4 -0
- package/components/p-cyNmxje6.js +4 -0
- package/components/p-gAg0kXZp.js +4 -0
- package/components/p-gYiraiT_.js +4 -0
- package/components/p-j5IxBIan.js +4 -0
- package/components/p-k_E4tX5Z.js +4 -0
- package/components/p-oD4kcBRX.js +4 -0
- package/components/p-rCa2eL0j.js +4 -0
- package/components/p-vRBNsYbs.js +4 -0
- package/components/p-yEQxMl70.js +4 -0
- package/components/p-yzCsOZE2.js +4 -0
- package/dist/cjs/{animation-C0mOHzej.js → animation-Ch16T-Nb.js} +4 -4
- package/dist/cjs/{app-globals-BREG4twP.js → app-globals-Dd89e0MR.js} +1 -1
- package/dist/cjs/{button-active-BKj1rdFx.js → button-active-COnxOe4X.js} +3 -3
- package/dist/cjs/config-D6C-KlA9.js +201 -0
- package/dist/cjs/{dir-Brx7VkvP.js → dir-Cn0z1rJH.js} +1 -1
- package/dist/cjs/{format-pp0Du3K-.js → format-BUFWn4Bn.js} +30 -40
- package/dist/cjs/{framework-delegate-NTLQ5YzV.js → framework-delegate-BgU6U9Ez.js} +7 -5
- package/dist/cjs/{gesture-controller-BDUH7687.js → gesture-controller-dtqlP_q4.js} +8 -15
- package/dist/cjs/{haptic-Ch-X4gRx.js → haptic-ClPPQ_PS.js} +3 -2
- package/dist/cjs/{hardware-back-button-fqpYh-kd.js → hardware-back-button-CXmUnTJC.js} +4 -4
- package/dist/cjs/{helpers-CaLhEmTE.js → helpers-gntk8bfm.js} +3 -3
- package/dist/cjs/{index-Ck9advCT.js → index-BS2uhvhT.js} +5 -5
- package/dist/cjs/{index-uvry__L4.js → index-BfaXsATC.js} +14 -31
- package/dist/cjs/{index-BlshL9ib.js → index-BhhuJ1Yx.js} +2 -2
- package/dist/cjs/{index-D48vawBq.js → index-BiRrzGDi.js} +2 -2
- package/dist/cjs/{index-P1nQxrpZ.js → index-CAvQ7Tka.js} +4 -10
- package/dist/cjs/{index-wOmugbdg.js → index-DqmRDbxg.js} +1 -1
- package/dist/cjs/{index-D2X6b92x.js → index-ooS8B4p9.js} +7 -6
- package/dist/cjs/index.cjs.js +18 -18
- package/dist/cjs/{input-shims-DvHAFqiP.js → input-shims-Bn1cXfCM.js} +11 -9
- package/dist/cjs/input.utils-BwhxZooW.js +150 -0
- package/dist/cjs/ion-accordion_2.cjs.entry.js +340 -368
- package/dist/cjs/ion-action-sheet.cjs.entry.js +76 -187
- package/dist/cjs/ion-alert.cjs.entry.js +111 -273
- package/dist/cjs/ion-app_8.cjs.entry.js +190 -307
- package/dist/cjs/ion-avatar_3.cjs.entry.js +4 -10
- package/dist/cjs/ion-back-button.cjs.entry.js +23 -47
- package/dist/cjs/ion-backdrop.cjs.entry.js +14 -18
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +121 -199
- package/dist/cjs/ion-button_2.cjs.entry.js +66 -138
- package/dist/cjs/ion-card_5.cjs.entry.js +30 -82
- package/dist/cjs/ion-checkbox.cjs.entry.js +101 -152
- package/dist/cjs/ion-chip.cjs.entry.js +11 -17
- package/dist/cjs/ion-col_3.cjs.entry.js +10 -134
- package/dist/cjs/ion-datetime-button.cjs.entry.js +241 -253
- package/dist/cjs/ion-datetime_3.cjs.entry.js +3167 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +81 -139
- package/dist/cjs/ion-img.cjs.entry.js +12 -34
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +72 -100
- package/dist/cjs/ion-input-otp.cjs.entry.js +372 -435
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +22 -36
- package/dist/cjs/ion-input.cjs.entry.js +211 -343
- package/dist/cjs/ion-item-option_3.cjs.entry.js +54 -94
- package/dist/cjs/ion-item_8.cjs.entry.js +92 -191
- package/dist/cjs/ion-loading.cjs.entry.js +60 -146
- package/dist/cjs/ion-menu_3.cjs.entry.js +106 -168
- package/dist/cjs/ion-modal.cjs.entry.js +261 -455
- package/dist/cjs/ion-nav_2.cjs.entry.js +158 -101
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +33 -37
- package/dist/cjs/ion-picker-column.cjs.entry.js +405 -417
- package/dist/cjs/ion-picker.cjs.entry.js +392 -401
- package/dist/cjs/ion-popover.cjs.entry.js +205 -319
- package/dist/cjs/ion-progress-bar.cjs.entry.js +25 -31
- package/dist/cjs/ion-radio_2.cjs.entry.js +134 -207
- package/dist/cjs/ion-range.cjs.entry.js +245 -302
- package/dist/cjs/ion-refresher_2.cjs.entry.js +93 -165
- package/dist/cjs/ion-reorder_2.cjs.entry.js +23 -53
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
- package/dist/cjs/ion-route_4.cjs.entry.js +71 -175
- package/dist/cjs/ion-searchbar.cjs.entry.js +200 -291
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +17 -28
- package/dist/cjs/ion-segment_2.cjs.entry.js +126 -169
- package/dist/cjs/ion-select-modal.cjs.entry.js +48 -104
- package/dist/cjs/ion-select_3.cjs.entry.js +260 -787
- package/dist/cjs/ion-spinner.cjs.entry.js +10 -24
- package/dist/cjs/ion-split-pane.cjs.entry.js +16 -29
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +41 -100
- package/dist/cjs/ion-tab_2.cjs.entry.js +27 -53
- package/dist/cjs/ion-text.cjs.entry.js +5 -11
- package/dist/cjs/ion-textarea.cjs.entry.js +188 -296
- package/dist/cjs/ion-toast.cjs.entry.js +117 -236
- package/dist/cjs/ion-toggle.cjs.entry.js +122 -175
- package/dist/cjs/{ionic-global-k6hOWWpn.js → ionic-global-BerQGEpE.js} +8 -13
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-KvuRAe2W.js → ios.transition-IMJRwn29.js} +17 -13
- package/dist/cjs/{item-multiple-inputs-BdYSbfKN.js → item-multiple-inputs-jOJZE_I0.js} +1 -1
- package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-UuAS4D_9.js} +2 -2
- package/dist/cjs/{keyboard-controller-PtZoN2GS.js → keyboard-controller-GXBiBRKS.js} +6 -6
- package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-hHzlEQpk.js} +2 -2
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-Bjl5Ozph.js → md.transition-CgQZxcoT.js} +8 -7
- package/dist/cjs/notch-controller-_SwR025y.js +155 -0
- package/dist/cjs/{overlays-IlP4H2Gn.js → overlays-DuSEMhIW.js} +33 -48
- package/dist/cjs/{status-tap-BR_ujYHg.js → status-tap-CSvBT7FV.js} +3 -3
- package/dist/cjs/{swipe-back-DzQKEl5g.js → swipe-back-CuIiziaa.js} +5 -5
- package/dist/cjs/{theme-Bw0rpaNN.js → theme-CeDs6Hcv.js} +1 -6
- package/dist/collection/collection-manifest.json +10 -6
- package/dist/collection/components/accordion/accordion.js +312 -315
- package/dist/collection/components/accordion-group/accordion-group.js +25 -48
- package/dist/collection/components/action-sheet/action-sheet.ios.css +2 -228
- package/dist/collection/components/action-sheet/action-sheet.js +64 -173
- package/dist/collection/components/action-sheet/action-sheet.md.css +2 -174
- package/dist/collection/components/action-sheet/test/basic/fixture.js +0 -3
- package/dist/collection/components/alert/alert.ios.css +10 -279
- package/dist/collection/components/alert/alert.js +97 -257
- package/dist/collection/components/alert/alert.md.css +20 -268
- 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 +30 -91
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +88 -103
- package/dist/collection/components/button/button.js +61 -132
- package/dist/collection/components/buttons/buttons.js +15 -13
- package/dist/collection/components/card/card.js +21 -54
- 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 +97 -147
- package/dist/collection/components/chip/chip.js +10 -14
- package/dist/collection/components/col/col.js +3 -127
- package/dist/collection/components/content/content.js +64 -93
- package/dist/collection/components/datetime/datetime.ios.css +2 -42
- package/dist/collection/components/datetime/datetime.js +816 -1051
- package/dist/collection/components/datetime/datetime.md.css +1 -42
- package/dist/collection/components/datetime/utils/data.js +14 -13
- package/dist/collection/components/datetime/utils/format.js +11 -21
- 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 +2 -8
- package/dist/collection/components/datetime/utils/validate.js +5 -4
- package/dist/collection/components/datetime-button/datetime-button.ios.css +0 -5
- package/dist/collection/components/datetime-button/datetime-button.js +237 -247
- package/dist/collection/components/datetime-button/datetime-button.md.css +0 -5
- package/dist/collection/components/fab/fab.js +13 -20
- package/dist/collection/components/fab-button/fab-button.js +55 -104
- package/dist/collection/components/fab-list/fab-list.js +11 -10
- package/dist/collection/components/footer/footer.js +44 -50
- package/dist/collection/components/grid/grid.js +6 -4
- package/dist/collection/components/header/header.js +25 -35
- package/dist/collection/components/img/img.js +10 -34
- 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.ios.css +26 -57
- package/dist/collection/components/input/input.js +206 -336
- package/dist/collection/components/input/input.md.css +43 -79
- package/dist/collection/components/input-otp/input-otp.js +368 -430
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +19 -32
- package/dist/collection/components/item/item.js +53 -99
- package/dist/collection/components/item-divider/item-divider.js +12 -17
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +22 -50
- package/dist/collection/components/item-options/item-options.js +8 -11
- package/dist/collection/components/item-sliding/item-sliding.js +21 -27
- package/dist/collection/components/label/label.js +6 -26
- package/dist/collection/components/list/list.js +8 -11
- package/dist/collection/components/list-header/list-header.js +2 -12
- package/dist/collection/components/loading/loading.js +51 -135
- package/dist/collection/components/menu/menu.js +61 -103
- package/dist/collection/components/menu-button/menu-button.js +21 -30
- package/dist/collection/components/menu-toggle/menu-toggle.js +15 -22
- 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 +10 -22
- package/dist/collection/components/modal/gestures/swipe-to-close.js +3 -15
- package/dist/collection/components/modal/modal.js +228 -398
- package/dist/collection/components/modal/safe-area-utils.js +7 -6
- package/dist/collection/components/modal/test/fixtures.js +0 -3
- package/dist/collection/components/nav/nav.js +247 -69
- package/dist/collection/components/nav/view-controller.js +1 -7
- package/dist/collection/components/nav-link/nav-link.js +10 -21
- package/dist/collection/components/note/note.js +2 -8
- package/dist/collection/components/picker/picker.js +390 -398
- package/dist/collection/components/picker-column/picker-column.css +0 -3
- package/dist/collection/components/picker-column/picker-column.js +404 -414
- package/dist/collection/components/picker-column-option/picker-column-option.js +31 -33
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +1 -6
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +27 -0
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +23 -0
- package/dist/collection/components/picker-legacy/picker-interface.js +1 -0
- package/dist/collection/components/picker-legacy/picker.ios.css +300 -0
- package/dist/collection/components/picker-legacy/picker.js +890 -0
- package/dist/collection/components/picker-legacy/picker.md.css +287 -0
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +231 -0
- package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +222 -0
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +43 -0
- package/dist/collection/components/popover/animations/ios.enter.js +2 -1
- package/dist/collection/components/popover/animations/md.enter.js +2 -1
- package/dist/collection/components/popover/popover.ios.css +0 -15
- package/dist/collection/components/popover/popover.js +185 -302
- package/dist/collection/components/popover/popover.md.css +0 -15
- package/dist/collection/components/popover/test/fixture.js +0 -1
- package/dist/collection/components/popover/utils.js +6 -4
- package/dist/collection/components/progress-bar/progress-bar.js +23 -27
- package/dist/collection/components/radio/radio.js +66 -102
- package/dist/collection/components/radio-group/radio-group.js +66 -101
- package/dist/collection/components/radio-group/test/fixtures.js +0 -2
- package/dist/collection/components/range/range.js +240 -296
- package/dist/collection/components/refresher/refresher.js +78 -110
- package/dist/collection/components/refresher-content/refresher-content.js +4 -41
- package/dist/collection/components/reorder/reorder.js +1 -2
- package/dist/collection/components/reorder-group/reorder-group.js +15 -44
- package/dist/collection/components/ripple-effect/ripple-effect.js +13 -12
- package/dist/collection/components/route/route.js +10 -39
- package/dist/collection/components/route-redirect/route-redirect.js +0 -31
- package/dist/collection/components/router/router.js +33 -37
- package/dist/collection/components/router/utils/dom.js +7 -25
- package/dist/collection/components/router/utils/matching.js +9 -7
- package/dist/collection/components/router/utils/parser.js +1 -1
- package/dist/collection/components/router/utils/path.js +1 -0
- package/dist/collection/components/router-link/router-link.js +12 -37
- package/dist/collection/components/router-outlet/router-outlet.js +21 -82
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +199 -289
- package/dist/collection/components/segment/segment.js +85 -120
- package/dist/collection/components/segment-button/segment-button.js +37 -43
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +16 -26
- package/dist/collection/components/select/select.ios.css +69 -96
- package/dist/collection/components/select/select.js +213 -629
- package/dist/collection/components/select/select.md.css +85 -118
- package/dist/collection/components/select-modal/select-modal.ios.css +0 -218
- package/dist/collection/components/select-modal/select-modal.js +38 -92
- package/dist/collection/components/select-modal/select-modal.md.css +0 -164
- package/dist/collection/components/select-modal/test/fixtures.js +1 -8
- package/dist/collection/components/select-option/select-option.js +9 -110
- package/dist/collection/components/select-popover/select-popover.ios.css +0 -218
- package/dist/collection/components/select-popover/select-popover.js +36 -103
- package/dist/collection/components/select-popover/select-popover.md.css +0 -164
- package/dist/collection/components/select-popover/test/fixtures.js +1 -8
- package/dist/collection/components/skeleton-text/skeleton-text.js +8 -12
- package/dist/collection/components/spinner/spinner.js +9 -21
- package/dist/collection/components/split-pane/split-pane.js +15 -27
- package/dist/collection/components/tab/tab.js +6 -17
- package/dist/collection/components/tab-bar/tab-bar.js +14 -32
- package/dist/collection/components/tab-button/tab-button.js +23 -62
- package/dist/collection/components/tabs/tabs.js +20 -33
- package/dist/collection/components/text/text.js +2 -8
- package/dist/collection/components/textarea/textarea.ios.css +62 -94
- package/dist/collection/components/textarea/textarea.js +181 -287
- package/dist/collection/components/textarea/textarea.md.css +77 -103
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -18
- package/dist/collection/components/toast/toast.js +106 -223
- package/dist/collection/components/toggle/toggle.js +115 -167
- package/dist/collection/components/toolbar/toolbar.js +7 -15
- package/dist/collection/global/config.js +6 -4
- package/dist/collection/global/ionic-global.js +2 -8
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/animation/animation.js +3 -3
- package/dist/collection/utils/config.js +4 -5
- package/dist/collection/utils/focus-controller/index.js +1 -1
- package/dist/collection/utils/focus-trap.js +3 -3
- package/dist/collection/utils/forms/index.js +0 -1
- package/dist/collection/utils/framework-delegate.js +6 -4
- package/dist/collection/utils/gesture/gesture-controller.js +8 -15
- package/dist/collection/utils/gesture/index.js +2 -10
- 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 +5 -4
- package/dist/collection/utils/input-shims/hacks/scroll-data.js +2 -1
- 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 +4 -23
- package/dist/collection/utils/menu-controller/index.js +2 -1
- package/dist/collection/utils/native/haptic.js +3 -2
- package/dist/collection/utils/native/keyboard.js +2 -2
- package/dist/collection/utils/native/status-bar.js +1 -1
- package/dist/collection/utils/overlays.js +23 -38
- package/dist/collection/utils/platform.js +5 -4
- package/dist/collection/utils/rtl/dir.js +1 -1
- package/dist/collection/utils/sanitization/index.js +20 -276
- package/dist/collection/utils/slot-mutation-controller.js +2 -1
- package/dist/collection/utils/test/playwright/apply-keyboard-focus.js +1 -1
- package/dist/collection/utils/test/playwright/drag-element.js +3 -2
- package/dist/collection/utils/test/playwright/generator.js +4 -3
- package/dist/collection/utils/test/playwright/page/event-spy.js +12 -11
- package/dist/collection/utils/test/playwright/page/utils/goto.js +5 -4
- 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 +3 -2
- package/dist/collection/utils/test/press-keys.js +17 -10
- package/dist/collection/utils/theme.js +1 -6
- package/dist/collection/utils/transition/ios.transition.js +13 -9
- package/dist/collection/utils/transition/md.transition.js +4 -3
- package/dist/docs.json +1256 -556
- package/dist/esm/{animation-CGFdmGk9.js → animation-DLJpuoEz.js} +4 -4
- package/dist/esm/{app-globals-CYmMeGdU.js → app-globals-D0C5S4hU.js} +1 -1
- package/dist/esm/{button-active--80YqSHA.js → button-active-BSpTQmS9.js} +3 -3
- package/dist/esm/config-DQCONYYp.js +195 -0
- package/dist/esm/{dir-B-FxiyeI.js → dir-C53feagD.js} +1 -1
- package/dist/esm/{format-Dcwga61t.js → format-CAmvpAez.js} +31 -41
- package/dist/esm/{framework-delegate--ajhSeKH.js → framework-delegate-FnPGymXL.js} +7 -5
- package/dist/esm/{gesture-controller-TXPDHL13.js → gesture-controller-BTEOs1at.js} +8 -15
- package/dist/esm/{haptic-Cq4UAeka.js → haptic-DzAMWJuk.js} +3 -2
- package/dist/esm/{hardware-back-button-gLJHMX_F.js → hardware-back-button-B93Gru0Y.js} +4 -4
- package/dist/esm/{helpers-DexiPLIC.js → helpers-HEqiOzXb.js} +3 -3
- package/dist/esm/{index-BCgUwrV0.js → index-BRHzoo00.js} +2 -2
- package/dist/esm/{index-8s8kZKJ7.js → index-B_dQk_WE.js} +5 -5
- package/dist/esm/{index-DppOcPFQ.js → index-CfgBF1SE.js} +4 -10
- package/dist/esm/{index-BvabGprD.js → index-DV3sJJW8.js} +2 -2
- package/dist/esm/{index-_Za5VB9w.js → index-Dw-wN0Ja.js} +2 -2
- package/dist/esm/{index-CumkqGQF.js → index-Q6UPU0Ay.js} +7 -6
- package/dist/esm/{index-ChhhtsGZ.js → index-tcQvqkiX.js} +15 -32
- package/dist/esm/index.js +15 -16
- package/dist/esm/{input-shims-BB0AKb_k.js → input-shims-LXhI7LEx.js} +11 -9
- package/dist/esm/input.utils-Y6NgW8bw.js +147 -0
- package/dist/esm/ion-accordion_2.entry.js +340 -368
- package/dist/esm/ion-action-sheet.entry.js +76 -187
- package/dist/esm/ion-alert.entry.js +110 -272
- package/dist/esm/ion-app_8.entry.js +190 -307
- package/dist/esm/ion-avatar_3.entry.js +4 -10
- package/dist/esm/ion-back-button.entry.js +23 -47
- package/dist/esm/ion-backdrop.entry.js +14 -18
- package/dist/esm/ion-breadcrumb_2.entry.js +121 -199
- package/dist/esm/ion-button_2.entry.js +66 -138
- package/dist/esm/ion-card_5.entry.js +30 -82
- package/dist/esm/ion-checkbox.entry.js +101 -152
- package/dist/esm/ion-chip.entry.js +11 -17
- package/dist/esm/ion-col_3.entry.js +10 -134
- package/dist/esm/ion-datetime-button.entry.js +241 -253
- package/dist/esm/ion-datetime_3.entry.js +3163 -0
- package/dist/esm/ion-fab_3.entry.js +81 -139
- package/dist/esm/ion-img.entry.js +12 -34
- package/dist/esm/ion-infinite-scroll_2.entry.js +71 -99
- package/dist/esm/ion-input-otp.entry.js +372 -435
- package/dist/esm/ion-input-password-toggle.entry.js +22 -36
- package/dist/esm/ion-input.entry.js +209 -341
- package/dist/esm/ion-item-option_3.entry.js +54 -94
- package/dist/esm/ion-item_8.entry.js +92 -191
- package/dist/esm/ion-loading.entry.js +59 -145
- package/dist/esm/ion-menu_3.entry.js +106 -168
- package/dist/esm/ion-modal.entry.js +261 -455
- package/dist/esm/ion-nav_2.entry.js +158 -101
- package/dist/esm/ion-picker-column-option.entry.js +33 -37
- package/dist/esm/ion-picker-column.entry.js +405 -417
- package/dist/esm/ion-picker.entry.js +392 -401
- package/dist/esm/ion-popover.entry.js +205 -319
- package/dist/esm/ion-progress-bar.entry.js +25 -31
- package/dist/esm/ion-radio_2.entry.js +134 -207
- package/dist/esm/ion-range.entry.js +245 -302
- package/dist/esm/ion-refresher_2.entry.js +91 -163
- package/dist/esm/ion-reorder_2.entry.js +23 -53
- package/dist/esm/ion-ripple-effect.entry.js +14 -14
- package/dist/esm/ion-route_4.entry.js +71 -175
- package/dist/esm/ion-searchbar.entry.js +200 -291
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +17 -28
- package/dist/esm/ion-segment_2.entry.js +126 -169
- package/dist/esm/ion-select-modal.entry.js +48 -104
- package/dist/esm/ion-select_3.entry.js +260 -787
- package/dist/esm/ion-spinner.entry.js +10 -24
- package/dist/esm/ion-split-pane.entry.js +16 -29
- package/dist/esm/ion-tab-bar_2.entry.js +41 -100
- package/dist/esm/ion-tab_2.entry.js +27 -53
- package/dist/esm/ion-text.entry.js +5 -11
- package/dist/esm/ion-textarea.entry.js +187 -295
- package/dist/esm/ion-toast.entry.js +116 -235
- package/dist/esm/ion-toggle.entry.js +122 -175
- package/dist/esm/{ionic-global-BVB7BrLT.js → ionic-global-Cp_eT4sZ.js} +8 -13
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-BdhybwLl.js → ios.transition-ClFrsIrS.js} +17 -13
- package/dist/esm/{item-multiple-inputs-rU8VaNNg.js → item-multiple-inputs-DlNuqNJm.js} +1 -1
- package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-CUw4ekVy.js} +2 -2
- package/dist/esm/{keyboard-controller-DEwoa1ev.js → keyboard-controller-BaaVITYt.js} +6 -6
- package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-ywgs5efA.js} +2 -2
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-B5lqKGCs.js → md.transition-D0msQmzI.js} +8 -7
- package/dist/esm/notch-controller-DKDjU_O7.js +153 -0
- package/dist/esm/{overlays-CjWwtvf1.js → overlays-Dg0q2_tJ.js} +33 -48
- package/dist/esm/{status-tap-DpLhkDWs.js → status-tap-vO-6s4Yp.js} +3 -3
- package/dist/esm/{swipe-back-cz4-lyG3.js → swipe-back-DQ1q5MgD.js} +5 -5
- package/dist/esm/{theme-byZM6qHV.js → theme-DiVJyqlX.js} +1 -6
- package/dist/html.html-data.json +80 -52
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-01f81ea5.entry.js +4 -0
- package/dist/ionic/p-06c232a4.entry.js +4 -0
- package/dist/ionic/p-0caa922c.entry.js +4 -0
- package/dist/ionic/p-0dc33652.entry.js +4 -0
- package/dist/ionic/p-0fa9c382.entry.js +4 -0
- package/dist/ionic/p-10e833ef.entry.js +4 -0
- package/dist/ionic/p-21eb76d5.entry.js +4 -0
- package/dist/ionic/p-27d30585.entry.js +4 -0
- package/dist/ionic/p-2a05aa64.entry.js +4 -0
- package/dist/ionic/p-2b204c59.entry.js +4 -0
- package/dist/ionic/p-2bb2cb18.entry.js +4 -0
- package/dist/ionic/p-2fa58e80.entry.js +4 -0
- package/dist/ionic/p-3353c229.entry.js +4 -0
- package/dist/ionic/p-34586ead.entry.js +4 -0
- package/dist/ionic/p-37e720da.entry.js +4 -0
- package/dist/ionic/p-390ca786.entry.js +4 -0
- package/dist/ionic/p-3ae5f277.entry.js +4 -0
- package/dist/ionic/p-4654ae1c.entry.js +4 -0
- package/dist/ionic/p-4745f534.entry.js +4 -0
- package/dist/ionic/p-4858af1f.entry.js +4 -0
- package/dist/ionic/p-4baa5b82.entry.js +4 -0
- package/dist/ionic/p-4e92a11f.entry.js +4 -0
- package/dist/ionic/p-50e1194a.entry.js +4 -0
- package/dist/ionic/p-5d1da0a2.entry.js +4 -0
- package/dist/ionic/p-5e2f73ee.entry.js +4 -0
- package/dist/ionic/p-5eb8e86d.entry.js +4 -0
- package/dist/ionic/p-65ebdf1b.entry.js +4 -0
- package/dist/ionic/p-696bdcf6.entry.js +4 -0
- package/dist/ionic/p-746fa988.entry.js +4 -0
- package/dist/ionic/p-75dc25ba.entry.js +4 -0
- package/dist/ionic/p-7c319341.entry.js +4 -0
- package/dist/ionic/p-829367ed.entry.js +4 -0
- package/dist/ionic/p-84d5ce05.entry.js +4 -0
- package/dist/ionic/p-874b4bd8.entry.js +4 -0
- package/dist/ionic/p-8eb8ee76.entry.js +4 -0
- package/dist/ionic/p-9eeaBrnk.js +4 -0
- package/dist/ionic/p-9f9db3a2.entry.js +4 -0
- package/dist/ionic/p-9fa3c405.entry.js +4 -0
- package/dist/ionic/p-BGqMS-oh.js +4 -0
- package/dist/ionic/p-BTEOs1at.js +4 -0
- package/dist/ionic/p-BUFIpxKM.js +4 -0
- package/dist/ionic/p-C0eMdTCW.js +4 -0
- package/dist/ionic/p-C53feagD.js +4 -0
- package/dist/ionic/p-CFlfIb2g.js +4 -0
- package/dist/ionic/p-CKvCXMs9.js +4 -0
- package/dist/ionic/p-Cl0B-RWe.js +4 -0
- package/dist/ionic/p-CmcFnK-B.js +4 -0
- package/dist/ionic/p-CtWGkNnJ.js +4 -0
- package/dist/ionic/p-Cx3IXROA.js +4 -0
- package/dist/ionic/p-D-3ycHmd.js +4 -0
- package/dist/ionic/p-D13Eaw-8.js +4 -0
- package/dist/ionic/p-D4uTWt4-.js +4 -0
- package/dist/ionic/p-DC3RagnA.js +4 -0
- package/dist/ionic/{p-CKUuSnDR.js → p-DIuEbVLu.js} +1 -1
- package/dist/ionic/{p-BvabGprD.js → p-DV3sJJW8.js} +1 -1
- package/dist/ionic/p-DiVJyqlX.js +4 -0
- package/dist/ionic/p-DoJvtrbw.js +4 -0
- package/dist/ionic/p-DqN5EA2O.js +4 -0
- package/dist/ionic/p-DzWaWHGc.js +4 -0
- package/dist/ionic/{p-I3In7hMC.js → p-KjNvRoEp.js} +1 -1
- package/dist/ionic/p-Nqf6uvGh.js +4 -0
- package/dist/ionic/p-SNAkTDfm.js +4 -0
- package/dist/ionic/p-VAemlbDS.js +4 -0
- package/dist/ionic/p-a3bdcae6.entry.js +4 -0
- package/dist/ionic/p-aaeedb6b.entry.js +4 -0
- package/dist/ionic/p-af55a72f.entry.js +4 -0
- package/dist/ionic/p-b2020591.entry.js +4 -0
- package/dist/ionic/p-b9fadbfe.entry.js +4 -0
- package/dist/ionic/{p-CQ_4TirR.js → p-biz8zWmJ.js} +1 -1
- package/dist/ionic/p-c0fb8edd.entry.js +4 -0
- package/dist/ionic/p-c38b648e.entry.js +4 -0
- package/dist/ionic/p-c4d8641b.entry.js +4 -0
- package/dist/ionic/{p-40424a88.entry.js → p-c6e49f3f.entry.js} +1 -1
- package/dist/ionic/p-ca2ab74d.entry.js +4 -0
- package/dist/ionic/p-d889ff6d.entry.js +4 -0
- package/dist/ionic/p-dfa8d673.entry.js +4 -0
- package/dist/ionic/p-ea56626d.entry.js +4 -0
- package/dist/ionic/p-ef4c3bee.entry.js +4 -0
- package/dist/ionic/p-f386f6ae.entry.js +4 -0
- package/dist/ionic/p-mjKAFv89.js +4 -0
- package/dist/ionic/p-tcQvqkiX.js +5 -0
- package/dist/ionic/p-uWtqTrG8.js +4 -0
- package/dist/ionic/p-viFHDgRs.js +4 -0
- package/dist/ionic/p-xWb6fgfq.js +4 -0
- package/dist/types/components/img/img.d.ts +0 -2
- package/dist/types/components/input/input.d.ts +6 -12
- package/dist/types/components/modal/modal-interface.d.ts +0 -9
- package/dist/types/components/modal/modal.d.ts +4 -11
- package/dist/types/components/nav/nav-interface.d.ts +1 -0
- package/dist/types/components/nav/nav.d.ts +22 -2
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +5 -0
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +5 -0
- package/dist/types/components/picker-legacy/picker-interface.d.ts +52 -0
- package/dist/types/components/picker-legacy/picker.d.ts +158 -0
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +46 -0
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +9 -0
- package/dist/types/components/range/range.d.ts +1 -0
- package/dist/types/components/route/route.d.ts +1 -1
- package/dist/types/components/router-outlet/router-outlet.d.ts +0 -7
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +0 -31
- package/dist/types/components/select/select.d.ts +6 -30
- package/dist/types/components/select-option/select-option.d.ts +1 -42
- package/dist/types/components/textarea/textarea.d.ts +5 -12
- package/dist/types/components.d.ts +311 -74
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +1 -0
- package/dist/types/utils/config.d.ts +8 -1
- package/dist/types/utils/forms/index.d.ts +0 -1
- package/dist/types/utils/logging/index.d.ts +1 -2
- package/dist/types/utils/overlays.d.ts +9 -11
- package/dist/types/utils/sanitization/index.d.ts +2 -58
- 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 +7322 -10670
- package/hydrate/index.mjs +7322 -10670
- package/package.json +12 -55
- package/components/p--m5cCjbK.js +0 -4
- package/components/p-8FN7p701.js +0 -4
- package/components/p-B-FxiyeI.js +0 -4
- package/components/p-B4uHHhPK.js +0 -4
- package/components/p-BMPN55of.js +0 -4
- package/components/p-BMS4t-kJ.js +0 -4
- package/components/p-BOvLNVKq.js +0 -4
- package/components/p-BSQPZ79H.js +0 -4
- package/components/p-BWBigMsI.js +0 -4
- package/components/p-BZ4-QTes.js +0 -4
- package/components/p-BhamHSw3.js +0 -4
- package/components/p-BjluhQMI.js +0 -4
- package/components/p-BlsIikdZ.js +0 -4
- package/components/p-Blug1Vxu.js +0 -4
- package/components/p-BqPNzJf6.js +0 -4
- package/components/p-C5KYjZWD.js +0 -4
- package/components/p-C91npEel.js +0 -4
- package/components/p-C9BGR5fy.js +0 -4
- package/components/p-CD4fmpem.js +0 -4
- package/components/p-CEW4RXZO.js +0 -4
- package/components/p-CKhiNOEg.js +0 -4
- package/components/p-CO2zzh3W.js +0 -4
- package/components/p-CVb3x_r3.js +0 -4
- package/components/p-CWLrHG8Y.js +0 -4
- package/components/p-CbhUdtjf.js +0 -4
- package/components/p-CejmQs3h.js +0 -4
- package/components/p-CfnNZz_d.js +0 -4
- package/components/p-CmKf4pgI.js +0 -4
- package/components/p-Cs5f-uOS.js +0 -4
- package/components/p-D7-vHX0A.js +0 -4
- package/components/p-DKrhJJV0.js +0 -4
- package/components/p-DRfgH82D.js +0 -4
- package/components/p-DSzSbVP2.js +0 -4
- package/components/p-DVKS-ovH.js +0 -4
- package/components/p-DWCzVL3Y.js +0 -4
- package/components/p-Dd8ajo9a.js +0 -4
- package/components/p-DdnhY_oj.js +0 -4
- package/components/p-DgZOZQjJ.js +0 -4
- package/components/p-Dmd2xqCe.js +0 -4
- package/components/p-G0TxqHfe.js +0 -4
- package/components/p-GG5GhznE.js +0 -4
- package/components/p-LXu5-6Ti.js +0 -4
- package/components/p-TXPDHL13.js +0 -4
- package/components/p-UQSiXX2Z.js +0 -4
- package/components/p-UuPYCOZE.js +0 -4
- package/components/p-WeeS7GvC.js +0 -4
- package/components/p-_IKFD3ID.js +0 -4
- package/components/p-byZM6qHV.js +0 -4
- package/components/p-hh7qIC-X.js +0 -4
- package/components/p-idq4JFo2.js +0 -4
- package/components/p-qT1szVjw.js +0 -4
- package/components/p-wzAhIh03.js +0 -4
- package/components/p-ypuYdSDB.js +0 -4
- package/components/p-yuj4Nkm_.js +0 -4
- package/dist/cjs/config-CjUbvdPW.js +0 -36
- package/dist/cjs/index-B7zJsYWS.js +0 -429
- package/dist/cjs/input.utils-BZdMWVrt.js +0 -35
- package/dist/cjs/ion-datetime.cjs.entry.js +0 -2770
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +0 -50
- package/dist/cjs/select-option-render-pULCGldr.js +0 -123
- package/dist/cjs/slot-mutation-controller-CgTGFqlW.js +0 -397
- package/dist/collection/utils/forms/start-container-controller.js +0 -132
- package/dist/collection/utils/overlay-control-label.js +0 -45
- package/dist/collection/utils/select-option-render.js +0 -118
- package/dist/esm/config-DWCzVL3Y.js +0 -32
- package/dist/esm/index-CKM1DdGm.js +0 -424
- package/dist/esm/input.utils-B1ValN_N.js +0 -33
- package/dist/esm/ion-datetime.entry.js +0 -2768
- package/dist/esm/overlay-control-label-BSQPZ79H.js +0 -47
- package/dist/esm/select-option-render-C4m76VGH.js +0 -121
- package/dist/esm/slot-mutation-controller-u741eD3Z.js +0 -393
- package/dist/ionic/p-06533d51.entry.js +0 -4
- package/dist/ionic/p-08443c08.entry.js +0 -4
- package/dist/ionic/p-0FNc80PN.js +0 -4
- package/dist/ionic/p-141f5b47.entry.js +0 -4
- package/dist/ionic/p-14a5e8f5.entry.js +0 -4
- package/dist/ionic/p-19269e04.entry.js +0 -4
- package/dist/ionic/p-19abbc33.entry.js +0 -4
- package/dist/ionic/p-1edf0573.entry.js +0 -4
- package/dist/ionic/p-4204184c.entry.js +0 -4
- package/dist/ionic/p-4bc3ecdb.entry.js +0 -4
- package/dist/ionic/p-4eOQC00Z.js +0 -4
- package/dist/ionic/p-4eed9ca1.entry.js +0 -4
- package/dist/ionic/p-53bac1c9.entry.js +0 -4
- package/dist/ionic/p-5506caeb.entry.js +0 -4
- package/dist/ionic/p-5521dc1f.entry.js +0 -4
- package/dist/ionic/p-5993a77f.entry.js +0 -4
- package/dist/ionic/p-5c3626de.entry.js +0 -4
- package/dist/ionic/p-5d3b411c.entry.js +0 -4
- package/dist/ionic/p-60576951.entry.js +0 -4
- package/dist/ionic/p-7116e558.entry.js +0 -4
- package/dist/ionic/p-711a8319.entry.js +0 -4
- package/dist/ionic/p-71419a55.entry.js +0 -4
- package/dist/ionic/p-79325ffe.entry.js +0 -4
- package/dist/ionic/p-7bb3e957.entry.js +0 -4
- package/dist/ionic/p-82525fb0.entry.js +0 -4
- package/dist/ionic/p-84a38904.entry.js +0 -4
- package/dist/ionic/p-865fa114.entry.js +0 -4
- package/dist/ionic/p-8e1d9e3a.entry.js +0 -4
- package/dist/ionic/p-8f204f1e.entry.js +0 -4
- package/dist/ionic/p-9055e897.entry.js +0 -4
- package/dist/ionic/p-9658e083.entry.js +0 -4
- package/dist/ionic/p-988baee1.entry.js +0 -4
- package/dist/ionic/p-9nmHvEvw.js +0 -4
- package/dist/ionic/p-B-FxiyeI.js +0 -4
- package/dist/ionic/p-BB0LlG4y.js +0 -4
- package/dist/ionic/p-BMPN55of.js +0 -4
- package/dist/ionic/p-BQ8oNV0v.js +0 -4
- package/dist/ionic/p-BSQPZ79H.js +0 -4
- package/dist/ionic/p-BhamHSw3.js +0 -4
- package/dist/ionic/p-BjvtSsVI.js +0 -4
- package/dist/ionic/p-BkfAWuv6.js +0 -4
- package/dist/ionic/p-BwIp10KV.js +0 -4
- package/dist/ionic/p-C-94tAim.js +0 -4
- package/dist/ionic/p-C6eME8Ey.js +0 -4
- package/dist/ionic/p-CMRtMbJc.js +0 -4
- package/dist/ionic/p-CPcPmkGv.js +0 -4
- package/dist/ionic/p-CaRuIadB.js +0 -4
- package/dist/ionic/p-Cdjxf_yg.js +0 -4
- package/dist/ionic/p-ChhhtsGZ.js +0 -5
- package/dist/ionic/p-CmKf4pgI.js +0 -4
- package/dist/ionic/p-D5t_-oMk.js +0 -4
- package/dist/ionic/p-D94b61er.js +0 -4
- package/dist/ionic/p-DAztxQR0.js +0 -4
- package/dist/ionic/p-DCI3rXQo.js +0 -4
- package/dist/ionic/p-DDhtUaaA.js +0 -4
- package/dist/ionic/p-DWCzVL3Y.js +0 -4
- package/dist/ionic/p-DkUB-ROc.js +0 -4
- package/dist/ionic/p-Dn0mqQ_R.js +0 -4
- package/dist/ionic/p-T71k3C35.js +0 -4
- package/dist/ionic/p-TXPDHL13.js +0 -4
- package/dist/ionic/p-a71232d6.entry.js +0 -4
- package/dist/ionic/p-a73d8742.entry.js +0 -4
- package/dist/ionic/p-a8421d18.entry.js +0 -4
- package/dist/ionic/p-a8c2c343.entry.js +0 -4
- package/dist/ionic/p-acf0a6af.entry.js +0 -4
- package/dist/ionic/p-ad98e3ff.entry.js +0 -4
- package/dist/ionic/p-af5166f5.entry.js +0 -4
- package/dist/ionic/p-bc2bad5f.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-byZM6qHV.js +0 -4
- package/dist/ionic/p-ccc5044d.entry.js +0 -4
- package/dist/ionic/p-ce32912b.entry.js +0 -4
- package/dist/ionic/p-ded69ceb.entry.js +0 -4
- package/dist/ionic/p-e0c6e31e.entry.js +0 -4
- package/dist/ionic/p-e1e5b507.entry.js +0 -4
- package/dist/ionic/p-e8c3e08a.entry.js +0 -4
- package/dist/ionic/p-ed5d540d.entry.js +0 -4
- package/dist/ionic/p-f046aa37.entry.js +0 -4
- package/dist/ionic/p-f2802440.entry.js +0 -4
- package/dist/ionic/p-f402f5a4.entry.js +0 -4
- package/dist/ionic/p-fe1bfbcf.entry.js +0 -4
- package/dist/types/utils/forms/start-container-controller.d.ts +0 -34
- package/dist/types/utils/overlay-control-label.d.ts +0 -32
- package/dist/types/utils/select-option-render.d.ts +0 -53
- /package/components/{p-LpMHEu3v.js → p-CO7fmmxt.js} +0 -0
|
@@ -43,74 +43,238 @@ import { roundToMaxDecimalPlaces } from "../../utils/floating-point";
|
|
|
43
43
|
* @part pressed - Added to the knob-handle, knob, and pin that is currently being pressed to drag. Only one set has this part at a time when `dualKnobs` is `true`.
|
|
44
44
|
*/
|
|
45
45
|
export class Range {
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
71
|
-
|
|
72
|
-
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
46
|
+
constructor() {
|
|
47
|
+
this.rangeId = `ion-r-${rangeIds++}`;
|
|
48
|
+
this.didLoad = false;
|
|
49
|
+
this.noUpdate = false;
|
|
50
|
+
this.hasFocus = false;
|
|
51
|
+
this.inheritedAttributes = {};
|
|
52
|
+
this.contentEl = null;
|
|
53
|
+
this.initialContentScrollY = true;
|
|
54
|
+
/**
|
|
55
|
+
* Used to avoid setting the focused state on click or tap. The focused
|
|
56
|
+
* state is only set when the focus comes from the keyboard (e.g. Tab).
|
|
57
|
+
* This is set to true on pointer down (mouse/touch).
|
|
58
|
+
*/
|
|
59
|
+
this.focusFromPointer = false;
|
|
60
|
+
this.ratioA = 0;
|
|
61
|
+
this.ratioB = 0;
|
|
62
|
+
/**
|
|
63
|
+
* The name of the control, which is submitted with the form data.
|
|
64
|
+
*/
|
|
65
|
+
this.name = this.rangeId;
|
|
66
|
+
/**
|
|
67
|
+
* Show two knobs.
|
|
68
|
+
*/
|
|
69
|
+
this.dualKnobs = false;
|
|
70
|
+
/**
|
|
71
|
+
* Minimum integer value of the range.
|
|
72
|
+
*/
|
|
73
|
+
this.min = 0;
|
|
74
|
+
/**
|
|
75
|
+
* Maximum integer value of the range.
|
|
76
|
+
*/
|
|
77
|
+
this.max = 100;
|
|
78
|
+
/**
|
|
79
|
+
* If `true`, a pin with integer value is shown when the knob
|
|
80
|
+
* is pressed.
|
|
81
|
+
*/
|
|
82
|
+
this.pin = false;
|
|
83
|
+
/**
|
|
84
|
+
* A callback used to format the pin text.
|
|
85
|
+
* By default the pin text is set to `Math.round(value)`.
|
|
86
|
+
*
|
|
87
|
+
* See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
|
|
88
|
+
* if you need to access `this` from within the callback.
|
|
89
|
+
*/
|
|
90
|
+
this.pinFormatter = (value) => Math.round(value);
|
|
91
|
+
/**
|
|
92
|
+
* If `true`, the knob snaps to tick marks evenly spaced based
|
|
93
|
+
* on the step property value.
|
|
94
|
+
*/
|
|
95
|
+
this.snaps = false;
|
|
96
|
+
/**
|
|
97
|
+
* Specifies the value granularity.
|
|
98
|
+
*/
|
|
99
|
+
this.step = 1;
|
|
100
|
+
/**
|
|
101
|
+
* If `true`, tick marks are displayed based on the step value.
|
|
102
|
+
* Only applies when `snaps` is `true`.
|
|
103
|
+
*/
|
|
104
|
+
this.ticks = true;
|
|
105
|
+
/**
|
|
106
|
+
* If `true`, the user cannot interact with the range.
|
|
107
|
+
*/
|
|
108
|
+
this.disabled = false;
|
|
109
|
+
/**
|
|
110
|
+
* the value of the range.
|
|
111
|
+
*/
|
|
112
|
+
this.value = 0;
|
|
113
|
+
/**
|
|
114
|
+
* Compares two RangeValue inputs to determine if they are different.
|
|
115
|
+
*
|
|
116
|
+
* @param newVal - The new value.
|
|
117
|
+
* @param oldVal - The old value.
|
|
118
|
+
* @returns `true` if the values are different, `false` otherwise.
|
|
119
|
+
*/
|
|
120
|
+
this.compareValues = (newVal, oldVal) => {
|
|
121
|
+
if (typeof newVal === 'object' && typeof oldVal === 'object') {
|
|
122
|
+
return newVal.lower !== oldVal.lower || newVal.upper !== oldVal.upper;
|
|
123
|
+
}
|
|
124
|
+
return newVal !== oldVal;
|
|
125
|
+
};
|
|
126
|
+
this.clampBounds = (value) => {
|
|
127
|
+
return clamp(this.min, value, this.max);
|
|
128
|
+
};
|
|
129
|
+
this.ensureValueInBounds = (value) => {
|
|
130
|
+
if (this.dualKnobs) {
|
|
131
|
+
return {
|
|
132
|
+
lower: this.clampBounds(value.lower),
|
|
133
|
+
upper: this.clampBounds(value.upper),
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
else {
|
|
137
|
+
return this.clampBounds(value);
|
|
138
|
+
}
|
|
139
|
+
};
|
|
140
|
+
/**
|
|
141
|
+
* Where to place the label relative to the range.
|
|
142
|
+
* `"start"`: The label will appear to the left of the range in LTR and to the right in RTL.
|
|
143
|
+
* `"end"`: The label will appear to the right of the range in LTR and to the left in RTL.
|
|
144
|
+
* `"fixed"`: The label has the same behavior as `"start"` except it also has a fixed width. Long text will be truncated with ellipses ("...").
|
|
145
|
+
* `"stacked"`: The label will appear above the range regardless of the direction.
|
|
146
|
+
*/
|
|
147
|
+
this.labelPlacement = 'start';
|
|
148
|
+
this.setupGesture = async () => {
|
|
149
|
+
const rangeSlider = this.rangeSlider;
|
|
150
|
+
if (rangeSlider) {
|
|
151
|
+
this.gesture = (await import('../../utils/gesture')).createGesture({
|
|
152
|
+
el: rangeSlider,
|
|
153
|
+
gestureName: 'range',
|
|
154
|
+
gesturePriority: 100,
|
|
155
|
+
/**
|
|
156
|
+
* Provide a threshold since the drag movement
|
|
157
|
+
* might be a user scrolling the view.
|
|
158
|
+
* If this is true, then the range
|
|
159
|
+
* should not move.
|
|
160
|
+
*/
|
|
161
|
+
threshold: 10,
|
|
162
|
+
onStart: () => this.onStart(),
|
|
163
|
+
onMove: (ev) => this.onMove(ev),
|
|
164
|
+
onEnd: (ev) => this.onEnd(ev),
|
|
165
|
+
});
|
|
166
|
+
this.gesture.enable(!this.disabled);
|
|
167
|
+
}
|
|
168
|
+
};
|
|
169
|
+
/**
|
|
170
|
+
* Observes the knob handles for the ion-activated class and syncs
|
|
171
|
+
* activatedKnob so the activated part is correctly set on the handle,
|
|
172
|
+
* knob, and pin.
|
|
173
|
+
*/
|
|
174
|
+
this.setupActivatedObserver = () => {
|
|
175
|
+
const knobHandleA = this.el.shadowRoot.querySelector('.range-knob-handle-a');
|
|
176
|
+
const knobHandleB = this.el.shadowRoot.querySelector('.range-knob-handle-b');
|
|
177
|
+
const syncActivated = () => {
|
|
178
|
+
this.activatedKnob = (knobHandleA === null || knobHandleA === void 0 ? void 0 : knobHandleA.classList.contains('ion-activated'))
|
|
179
|
+
? 'A'
|
|
180
|
+
: (knobHandleB === null || knobHandleB === void 0 ? void 0 : knobHandleB.classList.contains('ion-activated'))
|
|
181
|
+
? 'B'
|
|
182
|
+
: undefined;
|
|
183
|
+
};
|
|
184
|
+
if (Build.isBrowser && typeof MutationObserver !== 'undefined') {
|
|
185
|
+
this.activatedObserver = new MutationObserver(syncActivated);
|
|
186
|
+
this.activatedObserver.observe(this.el.shadowRoot, {
|
|
187
|
+
attributes: true,
|
|
188
|
+
attributeFilter: ['class'],
|
|
189
|
+
subtree: true,
|
|
190
|
+
});
|
|
191
|
+
}
|
|
192
|
+
syncActivated();
|
|
193
|
+
};
|
|
194
|
+
this.handleKeyboard = (knob, isIncrease) => {
|
|
195
|
+
const { ensureValueInBounds } = this;
|
|
196
|
+
let step = this.step;
|
|
197
|
+
step = step > 0 ? step : 1;
|
|
198
|
+
step = step / (this.max - this.min);
|
|
199
|
+
if (!isIncrease) {
|
|
200
|
+
step *= -1;
|
|
201
|
+
}
|
|
202
|
+
if (knob === 'A') {
|
|
203
|
+
this.ratioA = clamp(0, this.ratioA + step, 1);
|
|
204
|
+
}
|
|
205
|
+
else {
|
|
206
|
+
this.ratioB = clamp(0, this.ratioB + step, 1);
|
|
207
|
+
}
|
|
208
|
+
this.ionKnobMoveStart.emit({ value: ensureValueInBounds(this.value) });
|
|
209
|
+
this.updateValue();
|
|
210
|
+
this.emitValueChange();
|
|
211
|
+
this.ionKnobMoveEnd.emit({ value: ensureValueInBounds(this.value) });
|
|
212
|
+
};
|
|
213
|
+
this.onBlur = () => {
|
|
214
|
+
if (this.hasFocus) {
|
|
215
|
+
this.hasFocus = false;
|
|
216
|
+
this.focusedKnob = undefined;
|
|
217
|
+
this.ionBlur.emit();
|
|
218
|
+
}
|
|
219
|
+
};
|
|
220
|
+
this.onFocus = () => {
|
|
221
|
+
if (!this.hasFocus) {
|
|
222
|
+
this.hasFocus = true;
|
|
223
|
+
this.ionFocus.emit();
|
|
224
|
+
}
|
|
225
|
+
};
|
|
226
|
+
this.onKnobFocus = (knob) => {
|
|
227
|
+
// Clicking focuses the range which is needed for the keyboard,
|
|
228
|
+
// but we only want to add the ion-focused class when focused via Tab.
|
|
229
|
+
if (!this.focusFromPointer) {
|
|
230
|
+
this.focusedKnob = knob;
|
|
231
|
+
}
|
|
232
|
+
else {
|
|
233
|
+
this.focusFromPointer = false;
|
|
234
|
+
this.focusedKnob = undefined;
|
|
235
|
+
}
|
|
236
|
+
// If the knob was not already focused, emit the focus event
|
|
237
|
+
if (!this.hasFocus) {
|
|
238
|
+
this.hasFocus = true;
|
|
239
|
+
this.ionFocus.emit();
|
|
240
|
+
}
|
|
241
|
+
};
|
|
242
|
+
this.onKnobBlur = () => {
|
|
243
|
+
// Check if focus is moving to another knob within the same range
|
|
244
|
+
// by delaying the reset to allow the new focus to register
|
|
245
|
+
setTimeout(() => {
|
|
246
|
+
var _a;
|
|
247
|
+
const activeElement = (_a = this.el.shadowRoot) === null || _a === void 0 ? void 0 : _a.activeElement;
|
|
248
|
+
const isStillFocusedOnKnob = activeElement && activeElement.classList.contains('range-knob-handle');
|
|
249
|
+
if (!isStillFocusedOnKnob) {
|
|
250
|
+
if (this.hasFocus) {
|
|
251
|
+
this.hasFocus = false;
|
|
252
|
+
this.focusedKnob = undefined;
|
|
253
|
+
this.ionBlur.emit();
|
|
254
|
+
}
|
|
255
|
+
}
|
|
256
|
+
}, 0);
|
|
257
|
+
};
|
|
258
|
+
this.onKnobMouseEnter = (knob) => {
|
|
259
|
+
this.hoveredKnob = knob;
|
|
260
|
+
};
|
|
261
|
+
this.onKnobMouseLeave = () => {
|
|
262
|
+
this.hoveredKnob = undefined;
|
|
263
|
+
};
|
|
264
|
+
}
|
|
88
265
|
debounceChanged() {
|
|
89
266
|
const { ionInput, debounce, originalIonInput } = this;
|
|
90
267
|
/**
|
|
91
268
|
* If debounce is undefined, we have to manually revert the ionInput emitter in case
|
|
92
269
|
* debounce used to be set to a number. Otherwise, the event would stay debounced.
|
|
93
270
|
*/
|
|
94
|
-
this.ionInput = debounce === undefined ? originalIonInput
|
|
271
|
+
this.ionInput = debounce === undefined ? originalIonInput !== null && originalIonInput !== void 0 ? originalIonInput : ionInput : debounceEvent(ionInput, debounce);
|
|
272
|
+
}
|
|
273
|
+
dualKnobsChanged() {
|
|
274
|
+
if (!this.noUpdate) {
|
|
275
|
+
this.updateRatio();
|
|
276
|
+
}
|
|
95
277
|
}
|
|
96
|
-
/**
|
|
97
|
-
* The name of the control, which is submitted with the form data.
|
|
98
|
-
*/
|
|
99
|
-
name = this.rangeId;
|
|
100
|
-
/**
|
|
101
|
-
* The text to display as the control's label. Use this over the `label` slot if
|
|
102
|
-
* you only need plain text. The `label` property will take priority over the
|
|
103
|
-
* `label` slot if both are used.
|
|
104
|
-
*/
|
|
105
|
-
label;
|
|
106
|
-
/**
|
|
107
|
-
* Show two knobs.
|
|
108
|
-
*/
|
|
109
|
-
dualKnobs = false;
|
|
110
|
-
/**
|
|
111
|
-
* Minimum integer value of the range.
|
|
112
|
-
*/
|
|
113
|
-
min = 0;
|
|
114
278
|
minChanged(newValue) {
|
|
115
279
|
if (!isSafeNumber(newValue)) {
|
|
116
280
|
this.min = 0;
|
|
@@ -119,10 +283,6 @@ export class Range {
|
|
|
119
283
|
this.updateRatio();
|
|
120
284
|
}
|
|
121
285
|
}
|
|
122
|
-
/**
|
|
123
|
-
* Maximum integer value of the range.
|
|
124
|
-
*/
|
|
125
|
-
max = 100;
|
|
126
286
|
maxChanged(newValue) {
|
|
127
287
|
if (!isSafeNumber(newValue)) {
|
|
128
288
|
this.max = 100;
|
|
@@ -131,43 +291,11 @@ export class Range {
|
|
|
131
291
|
this.updateRatio();
|
|
132
292
|
}
|
|
133
293
|
}
|
|
134
|
-
/**
|
|
135
|
-
* If `true`, a pin with integer value is shown when the knob
|
|
136
|
-
* is pressed.
|
|
137
|
-
*/
|
|
138
|
-
pin = false;
|
|
139
|
-
/**
|
|
140
|
-
* A callback used to format the pin text.
|
|
141
|
-
* By default the pin text is set to `Math.round(value)`.
|
|
142
|
-
*
|
|
143
|
-
* See https://ionicframework.com/docs/troubleshooting/runtime#accessing-this
|
|
144
|
-
* if you need to access `this` from within the callback.
|
|
145
|
-
*/
|
|
146
|
-
pinFormatter = (value) => Math.round(value);
|
|
147
|
-
/**
|
|
148
|
-
* If `true`, the knob snaps to tick marks evenly spaced based
|
|
149
|
-
* on the step property value.
|
|
150
|
-
*/
|
|
151
|
-
snaps = false;
|
|
152
|
-
/**
|
|
153
|
-
* Specifies the value granularity.
|
|
154
|
-
*/
|
|
155
|
-
step = 1;
|
|
156
294
|
stepChanged(newValue) {
|
|
157
295
|
if (!isSafeNumber(newValue)) {
|
|
158
296
|
this.step = 1;
|
|
159
297
|
}
|
|
160
298
|
}
|
|
161
|
-
/**
|
|
162
|
-
* If `true`, tick marks are displayed based on the step value.
|
|
163
|
-
* Only applies when `snaps` is `true`.
|
|
164
|
-
*/
|
|
165
|
-
ticks = true;
|
|
166
|
-
/**
|
|
167
|
-
* The start position of the range active bar. This feature is only available with a single knob (dualKnobs="false").
|
|
168
|
-
* Valid values are greater than or equal to the min value and less than or equal to the max value.
|
|
169
|
-
*/
|
|
170
|
-
activeBarStart;
|
|
171
299
|
activeBarStartChanged() {
|
|
172
300
|
const { activeBarStart } = this;
|
|
173
301
|
if (activeBarStart !== undefined) {
|
|
@@ -181,19 +309,11 @@ export class Range {
|
|
|
181
309
|
}
|
|
182
310
|
}
|
|
183
311
|
}
|
|
184
|
-
/**
|
|
185
|
-
* If `true`, the user cannot interact with the range.
|
|
186
|
-
*/
|
|
187
|
-
disabled = false;
|
|
188
312
|
disabledChanged() {
|
|
189
313
|
if (this.gesture) {
|
|
190
314
|
this.gesture.enable(!this.disabled);
|
|
191
315
|
}
|
|
192
316
|
}
|
|
193
|
-
/**
|
|
194
|
-
* the value of the range.
|
|
195
|
-
*/
|
|
196
|
-
value = 0;
|
|
197
317
|
valueChanged(newValue, oldValue) {
|
|
198
318
|
const valuesChanged = this.compareValues(newValue, oldValue);
|
|
199
319
|
if (valuesChanged) {
|
|
@@ -203,120 +323,6 @@ export class Range {
|
|
|
203
323
|
this.updateRatio();
|
|
204
324
|
}
|
|
205
325
|
}
|
|
206
|
-
/**
|
|
207
|
-
* Compares two RangeValue inputs to determine if they are different.
|
|
208
|
-
*
|
|
209
|
-
* @param newVal - The new value.
|
|
210
|
-
* @param oldVal - The old value.
|
|
211
|
-
* @returns `true` if the values are different, `false` otherwise.
|
|
212
|
-
*/
|
|
213
|
-
compareValues = (newVal, oldVal) => {
|
|
214
|
-
if (typeof newVal === 'object' && typeof oldVal === 'object') {
|
|
215
|
-
return newVal.lower !== oldVal.lower || newVal.upper !== oldVal.upper;
|
|
216
|
-
}
|
|
217
|
-
return newVal !== oldVal;
|
|
218
|
-
};
|
|
219
|
-
clampBounds = (value) => {
|
|
220
|
-
return clamp(this.min, value, this.max);
|
|
221
|
-
};
|
|
222
|
-
ensureValueInBounds = (value) => {
|
|
223
|
-
if (this.dualKnobs) {
|
|
224
|
-
return {
|
|
225
|
-
lower: this.clampBounds(value.lower),
|
|
226
|
-
upper: this.clampBounds(value.upper),
|
|
227
|
-
};
|
|
228
|
-
}
|
|
229
|
-
else {
|
|
230
|
-
return this.clampBounds(value);
|
|
231
|
-
}
|
|
232
|
-
};
|
|
233
|
-
/**
|
|
234
|
-
* Where to place the label relative to the range.
|
|
235
|
-
* `"start"`: The label will appear to the left of the range in LTR and to the right in RTL.
|
|
236
|
-
* `"end"`: The label will appear to the right of the range in LTR and to the left in RTL.
|
|
237
|
-
* `"fixed"`: The label has the same behavior as `"start"` except it also has a fixed width. Long text will be truncated with ellipses ("...").
|
|
238
|
-
* `"stacked"`: The label will appear above the range regardless of the direction.
|
|
239
|
-
*/
|
|
240
|
-
labelPlacement = 'start';
|
|
241
|
-
/**
|
|
242
|
-
* The `ionChange` event is fired for `<ion-range>` elements when the user
|
|
243
|
-
* modifies the element's value:
|
|
244
|
-
* - When the user releases the knob after dragging;
|
|
245
|
-
* - When the user moves the knob with keyboard arrows
|
|
246
|
-
*
|
|
247
|
-
* This event will not emit when programmatically setting the `value` property.
|
|
248
|
-
*/
|
|
249
|
-
ionChange;
|
|
250
|
-
/**
|
|
251
|
-
* The `ionInput` event is fired for `<ion-range>` elements when the value
|
|
252
|
-
* is modified. Unlike `ionChange`, `ionInput` is fired continuously
|
|
253
|
-
* while the user is dragging the knob.
|
|
254
|
-
*/
|
|
255
|
-
ionInput;
|
|
256
|
-
/**
|
|
257
|
-
* Emitted when the range has focus.
|
|
258
|
-
*/
|
|
259
|
-
ionFocus;
|
|
260
|
-
/**
|
|
261
|
-
* Emitted when the range loses focus.
|
|
262
|
-
*/
|
|
263
|
-
ionBlur;
|
|
264
|
-
/**
|
|
265
|
-
* Emitted when the user starts moving the range knob, whether through
|
|
266
|
-
* mouse drag, touch gesture, or keyboard interaction.
|
|
267
|
-
*/
|
|
268
|
-
ionKnobMoveStart;
|
|
269
|
-
/**
|
|
270
|
-
* Emitted when the user finishes moving the range knob, whether through
|
|
271
|
-
* mouse drag, touch gesture, or keyboard interaction.
|
|
272
|
-
*/
|
|
273
|
-
ionKnobMoveEnd;
|
|
274
|
-
setupGesture = async () => {
|
|
275
|
-
const rangeSlider = this.rangeSlider;
|
|
276
|
-
if (rangeSlider) {
|
|
277
|
-
this.gesture = (await import('../../utils/gesture')).createGesture({
|
|
278
|
-
el: rangeSlider,
|
|
279
|
-
gestureName: 'range',
|
|
280
|
-
gesturePriority: 100,
|
|
281
|
-
/**
|
|
282
|
-
* Provide a threshold since the drag movement
|
|
283
|
-
* might be a user scrolling the view.
|
|
284
|
-
* If this is true, then the range
|
|
285
|
-
* should not move.
|
|
286
|
-
*/
|
|
287
|
-
threshold: 10,
|
|
288
|
-
onStart: () => this.onStart(),
|
|
289
|
-
onMove: (ev) => this.onMove(ev),
|
|
290
|
-
onEnd: (ev) => this.onEnd(ev),
|
|
291
|
-
});
|
|
292
|
-
this.gesture.enable(!this.disabled);
|
|
293
|
-
}
|
|
294
|
-
};
|
|
295
|
-
/**
|
|
296
|
-
* Observes the knob handles for the ion-activated class and syncs
|
|
297
|
-
* activatedKnob so the activated part is correctly set on the handle,
|
|
298
|
-
* knob, and pin.
|
|
299
|
-
*/
|
|
300
|
-
setupActivatedObserver = () => {
|
|
301
|
-
const knobHandleA = this.el.shadowRoot.querySelector('.range-knob-handle-a');
|
|
302
|
-
const knobHandleB = this.el.shadowRoot.querySelector('.range-knob-handle-b');
|
|
303
|
-
const syncActivated = () => {
|
|
304
|
-
this.activatedKnob = knobHandleA?.classList.contains('ion-activated')
|
|
305
|
-
? 'A'
|
|
306
|
-
: knobHandleB?.classList.contains('ion-activated')
|
|
307
|
-
? 'B'
|
|
308
|
-
: undefined;
|
|
309
|
-
};
|
|
310
|
-
if (Build.isBrowser && typeof MutationObserver !== 'undefined') {
|
|
311
|
-
this.activatedObserver = new MutationObserver(syncActivated);
|
|
312
|
-
this.activatedObserver.observe(this.el.shadowRoot, {
|
|
313
|
-
attributes: true,
|
|
314
|
-
attributeFilter: ['class'],
|
|
315
|
-
subtree: true,
|
|
316
|
-
});
|
|
317
|
-
}
|
|
318
|
-
syncActivated();
|
|
319
|
-
};
|
|
320
326
|
componentWillLoad() {
|
|
321
327
|
/**
|
|
322
328
|
* If user has custom ID set then we should
|
|
@@ -340,6 +346,7 @@ export class Range {
|
|
|
340
346
|
this.didLoad = true;
|
|
341
347
|
}
|
|
342
348
|
connectedCallback() {
|
|
349
|
+
var _a;
|
|
343
350
|
this.updateRatio();
|
|
344
351
|
this.debounceChanged();
|
|
345
352
|
this.disabledChanged();
|
|
@@ -355,7 +362,7 @@ export class Range {
|
|
|
355
362
|
this.setupActivatedObserver();
|
|
356
363
|
}
|
|
357
364
|
const ionContent = findClosestIonContent(this.el);
|
|
358
|
-
this.contentEl = ionContent
|
|
365
|
+
this.contentEl = (_a = ionContent === null || ionContent === void 0 ? void 0 : ionContent.querySelector('.ion-content-scroll-host')) !== null && _a !== void 0 ? _a : ionContent;
|
|
359
366
|
}
|
|
360
367
|
disconnectedCallback() {
|
|
361
368
|
if (this.gesture) {
|
|
@@ -367,27 +374,9 @@ export class Range {
|
|
|
367
374
|
this.activatedObserver = undefined;
|
|
368
375
|
}
|
|
369
376
|
}
|
|
370
|
-
handleKeyboard = (knob, isIncrease) => {
|
|
371
|
-
const { ensureValueInBounds } = this;
|
|
372
|
-
let step = this.step;
|
|
373
|
-
step = step > 0 ? step : 1;
|
|
374
|
-
step = step / (this.max - this.min);
|
|
375
|
-
if (!isIncrease) {
|
|
376
|
-
step *= -1;
|
|
377
|
-
}
|
|
378
|
-
if (knob === 'A') {
|
|
379
|
-
this.ratioA = clamp(0, this.ratioA + step, 1);
|
|
380
|
-
}
|
|
381
|
-
else {
|
|
382
|
-
this.ratioB = clamp(0, this.ratioB + step, 1);
|
|
383
|
-
}
|
|
384
|
-
this.ionKnobMoveStart.emit({ value: ensureValueInBounds(this.value) });
|
|
385
|
-
this.updateValue();
|
|
386
|
-
this.emitValueChange();
|
|
387
|
-
this.ionKnobMoveEnd.emit({ value: ensureValueInBounds(this.value) });
|
|
388
|
-
};
|
|
389
377
|
getValue() {
|
|
390
|
-
|
|
378
|
+
var _a;
|
|
379
|
+
const value = (_a = this.value) !== null && _a !== void 0 ? _a : 0;
|
|
391
380
|
if (this.dualKnobs) {
|
|
392
381
|
if (typeof value === 'object') {
|
|
393
382
|
return value;
|
|
@@ -473,8 +462,9 @@ export class Range {
|
|
|
473
462
|
* @param detail The details of the gesture or mouse event.
|
|
474
463
|
*/
|
|
475
464
|
onEnd(detail) {
|
|
465
|
+
var _a;
|
|
476
466
|
const { contentEl, initialContentScrollY } = this;
|
|
477
|
-
const currentX = detail.currentX
|
|
467
|
+
const currentX = (_a = detail.currentX) !== null && _a !== void 0 ? _a : detail.clientX;
|
|
478
468
|
/**
|
|
479
469
|
* The `pressedKnob` can be undefined if the user never
|
|
480
470
|
* dragged the knob. They just tapped on the bar.
|
|
@@ -594,56 +584,6 @@ export class Range {
|
|
|
594
584
|
};
|
|
595
585
|
this.noUpdate = false;
|
|
596
586
|
}
|
|
597
|
-
onBlur = () => {
|
|
598
|
-
if (this.hasFocus) {
|
|
599
|
-
this.hasFocus = false;
|
|
600
|
-
this.focusedKnob = undefined;
|
|
601
|
-
this.ionBlur.emit();
|
|
602
|
-
}
|
|
603
|
-
};
|
|
604
|
-
onFocus = () => {
|
|
605
|
-
if (!this.hasFocus) {
|
|
606
|
-
this.hasFocus = true;
|
|
607
|
-
this.ionFocus.emit();
|
|
608
|
-
}
|
|
609
|
-
};
|
|
610
|
-
onKnobFocus = (knob) => {
|
|
611
|
-
// Clicking focuses the range which is needed for the keyboard,
|
|
612
|
-
// but we only want to add the ion-focused class when focused via Tab.
|
|
613
|
-
if (!this.focusFromPointer) {
|
|
614
|
-
this.focusedKnob = knob;
|
|
615
|
-
}
|
|
616
|
-
else {
|
|
617
|
-
this.focusFromPointer = false;
|
|
618
|
-
this.focusedKnob = undefined;
|
|
619
|
-
}
|
|
620
|
-
// If the knob was not already focused, emit the focus event
|
|
621
|
-
if (!this.hasFocus) {
|
|
622
|
-
this.hasFocus = true;
|
|
623
|
-
this.ionFocus.emit();
|
|
624
|
-
}
|
|
625
|
-
};
|
|
626
|
-
onKnobBlur = () => {
|
|
627
|
-
// Check if focus is moving to another knob within the same range
|
|
628
|
-
// by delaying the reset to allow the new focus to register
|
|
629
|
-
setTimeout(() => {
|
|
630
|
-
const activeElement = this.el.shadowRoot?.activeElement;
|
|
631
|
-
const isStillFocusedOnKnob = activeElement && activeElement.classList.contains('range-knob-handle');
|
|
632
|
-
if (!isStillFocusedOnKnob) {
|
|
633
|
-
if (this.hasFocus) {
|
|
634
|
-
this.hasFocus = false;
|
|
635
|
-
this.focusedKnob = undefined;
|
|
636
|
-
this.ionBlur.emit();
|
|
637
|
-
}
|
|
638
|
-
}
|
|
639
|
-
}, 0);
|
|
640
|
-
};
|
|
641
|
-
onKnobMouseEnter = (knob) => {
|
|
642
|
-
this.hoveredKnob = knob;
|
|
643
|
-
};
|
|
644
|
-
onKnobMouseLeave = () => {
|
|
645
|
-
this.hoveredKnob = undefined;
|
|
646
|
-
};
|
|
647
587
|
/**
|
|
648
588
|
* Returns true if content was passed to the "start" slot
|
|
649
589
|
*/
|
|
@@ -660,6 +600,7 @@ export class Range {
|
|
|
660
600
|
return this.label !== undefined || this.el.querySelector('[slot="label"]') !== null;
|
|
661
601
|
}
|
|
662
602
|
renderRangeSlider() {
|
|
603
|
+
var _a;
|
|
663
604
|
const { min, max, step, handleKeyboard, activatedKnob, focusedKnob, hoveredKnob, pressedKnob, disabled, pin, ratioLower, ratioUpper, pinFormatter, inheritedAttributes, } = this;
|
|
664
605
|
let barStart = `${ratioLower * 100}%`;
|
|
665
606
|
let barEnd = `${100 - ratioUpper * 100}%`;
|
|
@@ -676,7 +617,7 @@ export class Range {
|
|
|
676
617
|
* When the value is less than the activeBarStart or the min value,
|
|
677
618
|
* the knob will display at the start of the active bar.
|
|
678
619
|
*/
|
|
679
|
-
if (this.valA < (this.activeBarStart
|
|
620
|
+
if (this.valA < ((_a = this.activeBarStart) !== null && _a !== void 0 ? _a : this.min)) {
|
|
680
621
|
/**
|
|
681
622
|
* Sets the bar positions relative to the upper and lower limits.
|
|
682
623
|
* Converts the ratio values into percentages, used as offsets for left/right styles.
|
|
@@ -824,7 +765,7 @@ export class Range {
|
|
|
824
765
|
* Determine the name and position of the pressed knob to apply
|
|
825
766
|
* Host classes for styling.
|
|
826
767
|
*/
|
|
827
|
-
const pressedKnobName = dualKnobs ? pressedKnob
|
|
768
|
+
const pressedKnobName = dualKnobs ? pressedKnob === null || pressedKnob === void 0 ? void 0 : pressedKnob.toLowerCase() : undefined;
|
|
828
769
|
const pressedKnobPosition = dualKnobs && pressedKnob ? getKnobPosition(pressedKnob, this.ratioA, this.ratioB, dualKnobs) : undefined;
|
|
829
770
|
/**
|
|
830
771
|
* Determine if any knob is at the min or max value to
|
|
@@ -833,7 +774,7 @@ export class Range {
|
|
|
833
774
|
const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
|
|
834
775
|
const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
|
|
835
776
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
836
|
-
return (h(Host, { key: '
|
|
777
|
+
return (h(Host, { key: 'dce91cc0c2bbd5f7c64e5b77a4e3510841654371', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
|
|
837
778
|
[mode]: true,
|
|
838
779
|
'in-item': inItem,
|
|
839
780
|
'range-disabled': disabled,
|
|
@@ -847,10 +788,10 @@ export class Range {
|
|
|
847
788
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
848
789
|
'range-value-min': valueAtMin,
|
|
849
790
|
'range-value-max': valueAtMax,
|
|
850
|
-
}) }, h("label", { key: '
|
|
791
|
+
}) }, h("label", { key: '8f9f6ce6b2eb2fd45114352c3b861f93281fabf1', class: "range-wrapper", id: "range-label" }, h("div", { key: '3125ca392585dc9174b775468e9d80e4d31296e1', class: {
|
|
851
792
|
'label-text-wrapper': true,
|
|
852
793
|
'label-text-wrapper-hidden': !hasLabel,
|
|
853
|
-
}, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '
|
|
794
|
+
}, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '5734afc478f5375f47ebc310c95219f5a97957ed', class: "native-wrapper" }, h("slot", { key: '9cdfffe167bf58f7f6b009ab8ba3f6db7c7023fb', name: "start" }), this.renderRangeSlider(), h("slot", { key: '22dfd67d5a1e85c3742b1464497f94c255f35ae2', name: "end" })))));
|
|
854
795
|
}
|
|
855
796
|
static get is() { return "ion-range"; }
|
|
856
797
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1341,6 +1282,9 @@ export class Range {
|
|
|
1341
1282
|
return [{
|
|
1342
1283
|
"propName": "debounce",
|
|
1343
1284
|
"methodName": "debounceChanged"
|
|
1285
|
+
}, {
|
|
1286
|
+
"propName": "dualKnobs",
|
|
1287
|
+
"methodName": "dualKnobsChanged"
|
|
1344
1288
|
}, {
|
|
1345
1289
|
"propName": "min",
|
|
1346
1290
|
"methodName": "minChanged"
|