@ionic/core 8.8.19 → 8.8.20-dev.11787158518.168a2fea
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--m5cCjbK.js +4 -0
- package/components/p-1jI5oW-W.js +4 -0
- package/components/{p-6J0vc7Z8.js → p-63OhffQv.js} +1 -1
- package/components/p-8FN7p701.js +4 -0
- package/components/p-B4uHHhPK.js +4 -0
- package/components/p-BMPN55of.js +4 -0
- package/components/p-BNJOu1Q2.js +4 -0
- package/components/p-BOvLNVKq.js +4 -0
- package/components/p-BSQPZ79H.js +4 -0
- package/components/p-BeamQXHF.js +4 -0
- package/components/p-BhamHSw3.js +4 -0
- package/components/p-Bjig0DJK.js +4 -0
- package/components/p-BjluhQMI.js +4 -0
- package/components/p-BlsIikdZ.js +4 -0
- package/components/p-BqPNzJf6.js +4 -0
- package/components/p-BrD9Xv62.js +4 -0
- package/components/p-BvJqoZ5R.js +4 -0
- package/components/p-Bz6z3Asd.js +4 -0
- package/components/p-C5KYjZWD.js +4 -0
- package/components/p-C6HnVvHO.js +4 -0
- package/components/p-C7jvh5Wy.js +4 -0
- package/components/p-C9BGR5fy.js +4 -0
- package/components/p-CB-y1CdP.js +4 -0
- package/components/p-CEW4RXZO.js +4 -0
- package/components/p-CHH3loEE.js +4 -0
- package/components/p-CJKUWjmg.js +4 -0
- package/components/{p-qMmFisyx.js → p-CMLAwl_N.js} +1 -1
- package/components/{p-C7II1iDj.js → p-C_phlPMC.js} +1 -1
- package/components/p-CbhUdtjf.js +4 -0
- package/components/p-CejmQs3h.js +4 -0
- package/components/p-CtZqa4HM.js +4 -0
- package/components/p-D7-vHX0A.js +4 -0
- package/components/p-D9qIVSWm.js +4 -0
- package/components/p-DD5fQ4EQ.js +4 -0
- package/components/p-DE-3iMNW.js +4 -0
- package/components/p-DFvZn99E.js +4 -0
- package/components/p-DHFt2rdc.js +4 -0
- package/components/p-DM-PrAoh.js +4 -0
- package/components/p-DSzSbVP2.js +4 -0
- package/components/{p--JUspHvy.js → p-DV85C0e0.js} +1 -1
- package/components/p-DWCzVL3Y.js +4 -0
- package/components/p-D_RCyzwu.js +4 -0
- package/components/p-D_tD8r3L.js +4 -0
- package/components/p-DaA_8eqt.js +4 -0
- package/components/p-DjCtLZbF.js +4 -0
- package/components/p-Dmd2xqCe.js +4 -0
- package/components/p-Dojwmvde.js +4 -0
- package/components/{p-BkKAANMJ.js → p-DwpKZ6rl.js} +1 -1
- package/components/p-DzRT60Tw.js +4 -0
- package/components/p-G0TxqHfe.js +4 -0
- package/components/p-G6JR-cr_.js +4 -0
- package/components/p-GG5GhznE.js +4 -0
- package/components/p-TXPDHL13.js +4 -0
- package/components/p-UIBJkZf8.js +4 -0
- package/components/p-_IKFD3ID.js +4 -0
- package/components/p-byZM6qHV.js +4 -0
- package/components/p-dKq2jIum.js +4 -0
- package/components/p-fruGqVHh.js +4 -0
- package/components/p-iYhH60Tc.js +4 -0
- package/components/p-ia3IDdJS.js +4 -0
- package/components/{p-DqLB8yFQ.js → p-ryyf_ItD.js} +1 -1
- 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-AWp_ygDP.js → button-active-CVMevT9a.js} +3 -3
- package/dist/cjs/config-CjUbvdPW.js +36 -0
- package/dist/cjs/{dir-DD0jPVH3.js → dir-zwDPRE5K.js} +2 -3
- package/dist/cjs/{format-BUFWn4Bn.js → format-pp0Du3K-.js} +40 -30
- package/dist/cjs/{framework-delegate-CEzl4MEA.js → framework-delegate-Dfo5XsGv.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-DdZyl6WL.js → helpers-YPQybDph.js} +4 -4
- package/dist/cjs/index-B7zJsYWS.js +429 -0
- package/dist/cjs/{index-CukZnH1U.js → index-BLdJCcJY.js} +5 -5
- package/dist/cjs/{index-MWAIyVLl.js → index-DDg31ZF5.js} +3 -3
- package/dist/cjs/{index-DOiZqxWZ.js → index-DXsPSne6.js} +6 -7
- package/dist/cjs/{index-BJ2-LydH.js → index-DwlRtFZe.js} +9 -3
- 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-CD92bI7B.js → index-zVCah4Uz.js} +2 -2
- package/dist/cjs/index.cjs.js +19 -19
- package/dist/cjs/{input-shims-CPKgrIe3.js → input-shims-Cbu1fcye.js} +10 -12
- package/dist/cjs/input.utils-BZdMWVrt.js +35 -0
- package/dist/cjs/ion-accordion_2.cjs.entry.js +369 -341
- package/dist/cjs/ion-action-sheet.cjs.entry.js +188 -77
- package/dist/cjs/ion-alert.cjs.entry.js +274 -112
- 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 +48 -24
- package/dist/cjs/ion-backdrop.cjs.entry.js +18 -14
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +200 -122
- package/dist/cjs/ion-button_2.cjs.entry.js +139 -67
- package/dist/cjs/ion-card_5.cjs.entry.js +83 -31
- package/dist/cjs/ion-checkbox.cjs.entry.js +153 -102
- 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 +254 -242
- package/dist/cjs/ion-datetime.cjs.entry.js +2770 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +140 -82
- package/dist/cjs/ion-img.cjs.entry.js +35 -13
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +101 -73
- package/dist/cjs/ion-input-otp.cjs.entry.js +435 -372
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +36 -22
- package/dist/cjs/ion-input.cjs.entry.js +343 -212
- package/dist/cjs/ion-item-option_3.cjs.entry.js +95 -55
- package/dist/cjs/ion-item_8.cjs.entry.js +192 -93
- package/dist/cjs/ion-loading.cjs.entry.js +147 -61
- package/dist/cjs/ion-menu_3.cjs.entry.js +169 -107
- package/dist/cjs/ion-modal.cjs.entry.js +456 -262
- package/dist/cjs/ion-nav_2.cjs.entry.js +102 -159
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +38 -34
- package/dist/cjs/ion-picker-column.cjs.entry.js +418 -406
- package/dist/cjs/ion-picker.cjs.entry.js +402 -393
- package/dist/cjs/ion-popover.cjs.entry.js +320 -206
- package/dist/cjs/ion-progress-bar.cjs.entry.js +32 -26
- package/dist/cjs/ion-radio_2.cjs.entry.js +208 -135
- package/dist/cjs/ion-range.cjs.entry.js +304 -239
- package/dist/cjs/ion-refresher_2.cjs.entry.js +166 -94
- package/dist/cjs/ion-reorder_2.cjs.entry.js +54 -24
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +14 -14
- package/dist/cjs/ion-route_4.cjs.entry.js +176 -72
- 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 +105 -49
- package/dist/cjs/ion-select_3.cjs.entry.js +787 -260
- 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 +101 -42
- package/dist/cjs/ion-tab_2.cjs.entry.js +54 -28
- package/dist/cjs/ion-text.cjs.entry.js +11 -5
- package/dist/cjs/ion-textarea.cjs.entry.js +296 -189
- package/dist/cjs/ion-toast.cjs.entry.js +237 -118
- 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-CTiTDh3m.js → ios.transition-zTmJz8T-.js} +14 -18
- 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-BpiTAaqF.js → md.transition-nb_4pUXu.js} +8 -9
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-CQ_c1fko.js → overlays-KaNVDNqC.js} +48 -33
- package/dist/cjs/select-option-render-pULCGldr.js +123 -0
- package/dist/cjs/slot-mutation-controller-DPHmqXdV.js +397 -0
- package/dist/cjs/{status-tap-7FzRlXNr.js → status-tap-o9IIymsP.js} +4 -4
- package/dist/cjs/{swipe-back-DwTZiAc9.js → swipe-back-B7X9VOlH.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 +57 -26
- package/dist/collection/components/input/input.js +336 -206
- package/dist/collection/components/input/input.md.css +79 -43
- package/dist/collection/components/input-otp/input-otp.js +430 -368
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +32 -19
- package/dist/collection/components/item/item.js +99 -53
- package/dist/collection/components/item-divider/item-divider.js +17 -12
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +50 -22
- package/dist/collection/components/item-options/item-options.js +11 -8
- package/dist/collection/components/item-sliding/item-sliding.js +27 -21
- package/dist/collection/components/label/label.js +26 -6
- package/dist/collection/components/list/list.js +11 -8
- package/dist/collection/components/list-header/list-header.js +12 -2
- package/dist/collection/components/loading/loading.js +135 -51
- package/dist/collection/components/menu/menu.js +103 -61
- package/dist/collection/components/menu-button/menu-button.js +30 -21
- package/dist/collection/components/menu-toggle/menu-toggle.js +22 -15
- 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 +21 -10
- package/dist/collection/components/note/note.js +8 -2
- 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 +101 -66
- package/dist/collection/components/radio-group/test/fixtures.js +2 -0
- package/dist/collection/components/range/range.js +298 -234
- 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 +96 -69
- package/dist/collection/components/select/select.js +629 -213
- package/dist/collection/components/select/select.md.css +118 -85
- 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.ios.css +94 -62
- package/dist/collection/components/textarea/textarea.js +287 -181
- package/dist/collection/components/textarea/textarea.md.css +103 -77
- 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/forms/index.js +1 -0
- package/dist/collection/utils/forms/start-container-controller.js +132 -0
- 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/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 +2 -3
- 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 -1257
- 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-CXXy0FIE.js → button-active-BDOsVAiZ.js} +3 -3
- package/dist/esm/config-DWCzVL3Y.js +32 -0
- package/dist/esm/{dir-o8OKV5aD.js → dir-Dojwmvde.js} +2 -3
- package/dist/esm/{format-CAmvpAez.js → format-Dcwga61t.js} +41 -31
- package/dist/esm/{framework-delegate-B9yvYzqV.js → framework-delegate-BHTU2Ip9.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-DkCLSLI9.js → helpers-CAGf8Wgp.js} +4 -4
- 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-DwNKJodj.js → index-Clc-28O1.js} +3 -3
- package/dist/esm/{index-DdeElWma.js → index-CqneaaGd.js} +6 -7
- package/dist/esm/{index-Bck1OwMs.js → index-DcPaH5uL.js} +9 -3
- package/dist/esm/{index-B_8X7INq.js → index-T0JxBI8V.js} +2 -2
- package/dist/esm/{index-Dsz7OTeL.js → index-WlteAIqz.js} +5 -5
- package/dist/esm/index.js +17 -16
- package/dist/esm/{input-shims-d-hDv86G.js → input-shims-B8sfni1e.js} +10 -12
- package/dist/esm/input.utils-B1ValN_N.js +33 -0
- package/dist/esm/ion-accordion_2.entry.js +369 -341
- package/dist/esm/ion-action-sheet.entry.js +188 -77
- package/dist/esm/ion-alert.entry.js +273 -111
- 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 +48 -24
- package/dist/esm/ion-backdrop.entry.js +18 -14
- package/dist/esm/ion-breadcrumb_2.entry.js +200 -122
- package/dist/esm/ion-button_2.entry.js +139 -67
- package/dist/esm/ion-card_5.entry.js +83 -31
- package/dist/esm/ion-checkbox.entry.js +153 -102
- 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 +254 -242
- package/dist/esm/ion-datetime.entry.js +2768 -0
- package/dist/esm/ion-fab_3.entry.js +140 -82
- package/dist/esm/ion-img.entry.js +35 -13
- package/dist/esm/ion-infinite-scroll_2.entry.js +100 -72
- package/dist/esm/ion-input-otp.entry.js +435 -372
- package/dist/esm/ion-input-password-toggle.entry.js +36 -22
- package/dist/esm/ion-input.entry.js +341 -210
- package/dist/esm/ion-item-option_3.entry.js +95 -55
- package/dist/esm/ion-item_8.entry.js +192 -93
- package/dist/esm/ion-loading.entry.js +146 -60
- package/dist/esm/ion-menu_3.entry.js +169 -107
- package/dist/esm/ion-modal.entry.js +456 -262
- package/dist/esm/ion-nav_2.entry.js +102 -159
- package/dist/esm/ion-picker-column-option.entry.js +38 -34
- package/dist/esm/ion-picker-column.entry.js +418 -406
- package/dist/esm/ion-picker.entry.js +402 -393
- package/dist/esm/ion-popover.entry.js +320 -206
- package/dist/esm/ion-progress-bar.entry.js +32 -26
- package/dist/esm/ion-radio_2.entry.js +208 -135
- package/dist/esm/ion-range.entry.js +304 -239
- package/dist/esm/ion-refresher_2.entry.js +164 -92
- package/dist/esm/ion-reorder_2.entry.js +54 -24
- package/dist/esm/ion-ripple-effect.entry.js +14 -14
- package/dist/esm/ion-route_4.entry.js +176 -72
- 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 +105 -49
- package/dist/esm/ion-select_3.entry.js +787 -260
- 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 +101 -42
- package/dist/esm/ion-tab_2.entry.js +54 -28
- package/dist/esm/ion-text.entry.js +11 -5
- package/dist/esm/ion-textarea.entry.js +295 -188
- package/dist/esm/ion-toast.entry.js +236 -117
- 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-CxNhMt4a.js → ios.transition-DXRCmcbC.js} +14 -18
- 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-IE4mC3kp.js → md.transition-BMngO4i_.js} +8 -9
- package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-COCl_nm9.js → overlays-CPmIs9Ls.js} +48 -33
- package/dist/esm/select-option-render-C4m76VGH.js +121 -0
- package/dist/esm/slot-mutation-controller-DiE_C9un.js +393 -0
- package/dist/esm/{status-tap-HhO5eQI9.js → status-tap-CHB7KwIb.js} +4 -4
- package/dist/esm/{swipe-back-DK6afpuO.js → swipe-back-C9HW1bug.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-06ec7136.entry.js +4 -0
- package/dist/ionic/p-09fe4fa3.entry.js +4 -0
- package/dist/ionic/p-10d45a07.entry.js +4 -0
- package/dist/ionic/p-208c8a07.entry.js +4 -0
- package/dist/ionic/p-212474fa.entry.js +4 -0
- package/dist/ionic/p-2eef1396.entry.js +4 -0
- package/dist/ionic/p-347e005d.entry.js +4 -0
- package/dist/ionic/p-3a0b3f1d.entry.js +4 -0
- package/dist/ionic/p-3b071259.entry.js +4 -0
- package/dist/ionic/{p-c6e49f3f.entry.js → p-40424a88.entry.js} +1 -1
- package/dist/ionic/p-4204184c.entry.js +4 -0
- package/dist/ionic/p-47464391.entry.js +4 -0
- package/dist/ionic/p-4eOQC00Z.js +4 -0
- package/dist/ionic/p-4f9c9126.entry.js +4 -0
- package/dist/ionic/p-5JsKPLJD.js +4 -0
- package/dist/ionic/p-5bc485c6.entry.js +4 -0
- package/dist/ionic/p-603a61e6.entry.js +4 -0
- package/dist/ionic/p-60576951.entry.js +4 -0
- package/dist/ionic/p-67a81d33.entry.js +4 -0
- package/dist/ionic/p-6affb775.entry.js +4 -0
- package/dist/ionic/p-6f120c25.entry.js +4 -0
- package/dist/ionic/p-71c82b60.entry.js +4 -0
- package/dist/ionic/p-79325ffe.entry.js +4 -0
- package/dist/ionic/{p-DZaO33Mw.js → p-7CBuOvEo.js} +1 -1
- package/dist/ionic/p-7e4d51fa.entry.js +4 -0
- package/dist/ionic/p-7f5d4664.entry.js +4 -0
- package/dist/ionic/p-80ee82fc.entry.js +4 -0
- package/dist/ionic/p-84af7dbc.entry.js +4 -0
- package/dist/ionic/p-89ca830a.entry.js +4 -0
- package/dist/ionic/p-93b8ec8f.entry.js +4 -0
- package/dist/ionic/p-946f65c2.entry.js +4 -0
- package/dist/ionic/p-9c4b39fb.entry.js +4 -0
- package/dist/ionic/p-B1NEZUzQ.js +4 -0
- package/dist/ionic/p-B1ck5iy-.js +4 -0
- package/dist/ionic/{p-Cd4H8ft-.js → p-B4FrqdW0.js} +1 -1
- package/dist/ionic/p-BB0LlG4y.js +4 -0
- package/dist/ionic/p-BMPN55of.js +4 -0
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BYEAtHr-.js +4 -0
- package/dist/ionic/p-BhamHSw3.js +4 -0
- package/dist/ionic/{p-DV3sJJW8.js → p-BvabGprD.js} +1 -1
- package/dist/ionic/p-C-94tAim.js +4 -0
- package/dist/ionic/{p-DipZFfzN.js → p-C-eHZMYE.js} +1 -1
- package/dist/ionic/p-CBR_W98Z.js +4 -0
- package/dist/ionic/{p-ClM02LPk.js → p-CBWAXjA5.js} +1 -1
- package/dist/ionic/p-CMRtMbJc.js +4 -0
- package/dist/ionic/p-CPcPmkGv.js +4 -0
- 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-CzS1qWve.js +4 -0
- package/dist/ionic/p-D5t_-oMk.js +4 -0
- package/dist/ionic/p-D94_RztK.js +4 -0
- package/dist/ionic/p-DWCzVL3Y.js +4 -0
- package/dist/ionic/p-DjjfauRM.js +4 -0
- package/dist/ionic/p-DkUB-ROc.js +4 -0
- package/dist/ionic/p-Dn0mqQ_R.js +4 -0
- package/dist/ionic/p-Dojwmvde.js +4 -0
- package/dist/ionic/p-DplOqGUv.js +4 -0
- package/dist/ionic/p-Dst_XmZh.js +4 -0
- package/dist/ionic/p-T71k3C35.js +4 -0
- package/dist/ionic/p-TXPDHL13.js +4 -0
- package/dist/ionic/p-UIBJkZf8.js +4 -0
- package/dist/ionic/p-a438b193.entry.js +4 -0
- package/dist/ionic/p-babaaaa7.entry.js +4 -0
- package/dist/ionic/p-be08d500.entry.js +4 -0
- package/dist/ionic/p-be9a4f51.entry.js +4 -0
- package/dist/ionic/p-byZM6qHV.js +4 -0
- package/dist/ionic/p-c00d3092.entry.js +4 -0
- package/dist/ionic/p-c36dc8f5.entry.js +4 -0
- package/dist/ionic/p-c72a7e17.entry.js +4 -0
- package/dist/ionic/p-c8edd88c.entry.js +4 -0
- package/dist/ionic/p-ce0e380b.entry.js +4 -0
- package/dist/ionic/p-ce32912b.entry.js +4 -0
- package/dist/ionic/p-d07cf130.entry.js +4 -0
- package/dist/ionic/p-d27edeb3.entry.js +4 -0
- package/dist/ionic/p-d5d2c506.entry.js +4 -0
- package/dist/ionic/p-d5e31ca9.entry.js +4 -0
- package/dist/ionic/p-de91444f.entry.js +4 -0
- package/dist/ionic/p-ded69ceb.entry.js +4 -0
- package/dist/ionic/p-df72866d.entry.js +4 -0
- package/dist/ionic/p-e47e3151.entry.js +4 -0
- package/dist/ionic/p-e621e5e8.entry.js +4 -0
- package/dist/ionic/p-eea9cf93.entry.js +4 -0
- package/dist/ionic/p-f402f5a4.entry.js +4 -0
- package/dist/ionic/p-fe1bfbcf.entry.js +4 -0
- package/{components/p-9GFIh9p1.js → dist/ionic/p-ffb90460.entry.js} +1 -1
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +12 -6
- 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 +30 -6
- package/dist/types/components/select-option/select-option.d.ts +42 -1
- package/dist/types/components/textarea/textarea.d.ts +12 -5
- 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/forms/index.d.ts +1 -0
- package/dist/types/utils/forms/start-container-controller.d.ts +34 -0
- 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 +10660 -7305
- package/hydrate/index.mjs +10660 -7305
- 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-0LM2oPMC.js +0 -4
- package/components/p-B21528L5.js +0 -4
- package/components/p-B2nSfLHH.js +0 -4
- package/components/p-B3qf4bEn.js +0 -4
- package/components/p-B9jFTlwE.js +0 -4
- package/components/p-BDd9Zrb9.js +0 -4
- package/components/p-BLmJ0zRm.js +0 -4
- package/components/p-BMYNBJgf.js +0 -4
- package/components/p-BRYd8D-I.js +0 -4
- package/components/p-BSEgsdFI.js +0 -4
- package/components/p-BTEOs1at.js +0 -4
- package/components/p-BTJrYwxN.js +0 -4
- package/components/p-BV-zKay-.js +0 -4
- package/components/p-BYRVyMu9.js +0 -4
- package/components/p-Bmq8qlkW.js +0 -4
- package/components/p-BuxQcfHK.js +0 -4
- package/components/p-Bz0dSlXZ.js +0 -4
- package/components/p-CHqRYvYm.js +0 -4
- package/components/p-CSZf8_j0.js +0 -4
- package/components/p-CTdRooFV.js +0 -4
- package/components/p-Cf2jSDS8.js +0 -4
- package/components/p-Cfx4M1Bn.js +0 -4
- package/components/p-CgkrslTX.js +0 -4
- package/components/p-CiCzYG2V.js +0 -4
- package/components/p-Ck0lEczL.js +0 -4
- package/components/p-CmR5uXej.js +0 -4
- package/components/p-CniZht3v.js +0 -4
- package/components/p-CsaojgEs.js +0 -4
- package/components/p-CtWGkNnJ.js +0 -4
- package/components/p-D13Eaw-8.js +0 -4
- package/components/p-D4FYu-4R.js +0 -4
- package/components/p-D6Ynv7Xh.js +0 -4
- package/components/p-DARjq3GM.js +0 -4
- package/components/p-DEZ2myA3.js +0 -4
- package/components/p-DOFCbuQR.js +0 -4
- package/components/p-DVe41iHI.js +0 -4
- package/components/p-DX5m9g56.js +0 -4
- package/components/p-DboHi2CL.js +0 -4
- package/components/p-DiVJyqlX.js +0 -4
- package/components/p-DmzFY5IC.js +0 -4
- package/components/p-DqZAXv2t.js +0 -4
- package/components/p-Dv8w0kqz.js +0 -4
- package/components/p-Dw7GNDKq.js +0 -4
- package/components/p-Dww01PNs.js +0 -4
- package/components/p-Gy276IJk.js +0 -4
- package/components/p-ZzLXTvyt.js +0 -4
- package/components/p-cyNmxje6.js +0 -4
- package/components/p-j5IxBIan.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/components/p-lVAbdiAu.js +0 -4
- package/components/p-o8OKV5aD.js +0 -4
- package/components/p-rCa2eL0j.js +0 -4
- package/dist/cjs/config-D6C-KlA9.js +0 -201
- package/dist/cjs/input.utils-DQaUGGed.js +0 -150
- package/dist/cjs/ion-datetime_3.cjs.entry.js +0 -3167
- package/dist/cjs/notch-controller-aiy8aQb-.js +0 -155
- 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/input.utils-Cd23Gdd1.js +0 -147
- package/dist/esm/ion-datetime_3.entry.js +0 -3163
- package/dist/esm/notch-controller-Doqis1td.js +0 -153
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-0283ea73.entry.js +0 -4
- package/dist/ionic/p-02ecae65.entry.js +0 -4
- package/dist/ionic/p-0672f677.entry.js +0 -4
- package/dist/ionic/p-0c06fe60.entry.js +0 -4
- package/dist/ionic/p-0fa9c382.entry.js +0 -4
- package/dist/ionic/p-1af4d74c.entry.js +0 -4
- package/dist/ionic/p-1d7ef0d2.entry.js +0 -4
- package/dist/ionic/p-26f05d3a.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2bb2cb18.entry.js +0 -4
- package/dist/ionic/p-31e7bd05.entry.js +0 -4
- package/dist/ionic/p-32f53010.entry.js +0 -4
- package/dist/ionic/p-35eb8b5c.entry.js +0 -4
- package/dist/ionic/p-37e720da.entry.js +0 -4
- package/dist/ionic/p-3efa137b.entry.js +0 -4
- package/dist/ionic/p-432bd72c.entry.js +0 -4
- package/dist/ionic/p-47214c72.entry.js +0 -4
- package/dist/ionic/p-4e172429.entry.js +0 -4
- package/dist/ionic/p-5c3da84e.entry.js +0 -4
- package/dist/ionic/p-5d1da0a2.entry.js +0 -4
- package/dist/ionic/p-5d8082fe.entry.js +0 -4
- package/dist/ionic/p-613d3c43.entry.js +0 -4
- package/dist/ionic/p-616e4d4f.entry.js +0 -4
- package/dist/ionic/p-65d611b2.entry.js +0 -4
- package/dist/ionic/p-67806e3f.entry.js +0 -4
- package/dist/ionic/p-68cbb2fc.entry.js +0 -4
- package/dist/ionic/p-737ae9eb.entry.js +0 -4
- package/dist/ionic/p-7b0d6248.entry.js +0 -4
- package/dist/ionic/p-7e71e470.entry.js +0 -4
- package/dist/ionic/p-84d5ce05.entry.js +0 -4
- package/dist/ionic/p-85d49987.entry.js +0 -4
- package/dist/ionic/p-8945088b.entry.js +0 -4
- package/dist/ionic/p-8b155568.entry.js +0 -4
- package/dist/ionic/p-90267c4b.entry.js +0 -4
- package/dist/ionic/p-92ad8a67.entry.js +0 -4
- package/dist/ionic/p-9a97d4e0.entry.js +0 -4
- package/dist/ionic/p-9e4b0894.entry.js +0 -4
- package/dist/ionic/p-9eeaBrnk.js +0 -4
- package/dist/ionic/p-B2kaj8sx.js +0 -4
- package/dist/ionic/p-B4y7nxsg.js +0 -4
- package/dist/ionic/p-B8t9Ro6f.js +0 -4
- package/dist/ionic/p-BEOxsxBw.js +0 -4
- package/dist/ionic/p-BJ2NxSHp.js +0 -4
- package/dist/ionic/p-BLiL8g0v.js +0 -4
- package/dist/ionic/p-BTEOs1at.js +0 -4
- package/dist/ionic/p-BUFIpxKM.js +0 -4
- package/dist/ionic/p-BYRVyMu9.js +0 -4
- package/dist/ionic/p-C0eMdTCW.js +0 -4
- package/dist/ionic/p-CKvCXMs9.js +0 -4
- package/dist/ionic/p-CPTv7G9B.js +0 -4
- package/dist/ionic/p-CtWGkNnJ.js +0 -4
- package/dist/ionic/p-CxMyXUtt.js +0 -4
- package/dist/ionic/p-D13Eaw-8.js +0 -4
- package/dist/ionic/p-DCoy2elM.js +0 -4
- package/dist/ionic/p-DiVJyqlX.js +0 -4
- package/dist/ionic/p-DqN5EA2O.js +0 -4
- package/dist/ionic/p-Dr9fTCb1.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-EkpneKVM.js +0 -4
- package/dist/ionic/p-Nqf6uvGh.js +0 -4
- package/dist/ionic/p-SNAkTDfm.js +0 -4
- package/dist/ionic/p-ab00b0d8.entry.js +0 -4
- package/dist/ionic/p-c2175309.entry.js +0 -4
- package/dist/ionic/p-c4b69d9b.entry.js +0 -4
- package/dist/ionic/p-c4d8641b.entry.js +0 -4
- package/dist/ionic/p-ce637936.entry.js +0 -4
- package/dist/ionic/p-da85e958.entry.js +0 -4
- package/dist/ionic/p-dfa8d673.entry.js +0 -4
- package/dist/ionic/p-e139357c.entry.js +0 -4
- package/dist/ionic/p-e7b7a7b1.entry.js +0 -4
- package/dist/ionic/p-f37ca594.entry.js +0 -4
- package/dist/ionic/p-f8dd336e.entry.js +0 -4
- package/dist/ionic/p-f9de757b.entry.js +0 -4
- package/dist/ionic/p-fe11cf51.entry.js +0 -4
- package/dist/ionic/p-mjKAFv89.js +0 -4
- package/dist/ionic/p-o8OKV5aD.js +0 -4
- package/dist/ionic/p-tcQvqkiX.js +0 -5
- 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
|
@@ -12,186 +12,22 @@ import { getIonMode } from "../../global/ionic-global";
|
|
|
12
12
|
* @virtualProp {"ios" | "md"} mode - The mode determines which platform styles to use.
|
|
13
13
|
*/
|
|
14
14
|
export class Searchbar {
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Set the input's autocomplete property.
|
|
33
|
-
*/
|
|
34
|
-
this.autocomplete = 'off';
|
|
35
|
-
/**
|
|
36
|
-
* Set the input's autocorrect property.
|
|
37
|
-
*/
|
|
38
|
-
this.autocorrect = 'off';
|
|
39
|
-
/**
|
|
40
|
-
* Set the cancel button icon. Only applies to `md` mode.
|
|
41
|
-
* Defaults to `arrow-back-sharp`.
|
|
42
|
-
*/
|
|
43
|
-
this.cancelButtonIcon = config.get('backButtonIcon', arrowBackSharp);
|
|
44
|
-
/**
|
|
45
|
-
* Set the cancel button text. Only applies to `ios` mode.
|
|
46
|
-
*/
|
|
47
|
-
this.cancelButtonText = 'Cancel';
|
|
48
|
-
/**
|
|
49
|
-
* If `true`, the user cannot interact with the input.
|
|
50
|
-
*/
|
|
51
|
-
this.disabled = false;
|
|
52
|
-
/**
|
|
53
|
-
* If used in a form, set the name of the control, which is submitted with the form data.
|
|
54
|
-
*/
|
|
55
|
-
this.name = this.inputId;
|
|
56
|
-
/**
|
|
57
|
-
* Set the input's placeholder.
|
|
58
|
-
* `placeholder` can accept either plaintext or HTML as a string.
|
|
59
|
-
* To display characters normally reserved for HTML, they
|
|
60
|
-
* must be escaped. For example `<Ionic>` would become
|
|
61
|
-
* `<Ionic>`
|
|
62
|
-
*
|
|
63
|
-
* For more information: [Security Documentation](https://ionicframework.com/docs/faq/security)
|
|
64
|
-
*/
|
|
65
|
-
this.placeholder = 'Search';
|
|
66
|
-
/**
|
|
67
|
-
* Sets the behavior for the cancel button. Defaults to `"never"`.
|
|
68
|
-
* Setting to `"focus"` shows the cancel button on focus.
|
|
69
|
-
* Setting to `"never"` hides the cancel button.
|
|
70
|
-
* Setting to `"always"` shows the cancel button regardless
|
|
71
|
-
* of focus state.
|
|
72
|
-
*/
|
|
73
|
-
this.showCancelButton = 'never';
|
|
74
|
-
/**
|
|
75
|
-
* Sets the behavior for the clear button. Defaults to `"focus"`.
|
|
76
|
-
* Setting to `"focus"` shows the clear button on focus if the
|
|
77
|
-
* input is not empty.
|
|
78
|
-
* Setting to `"never"` hides the clear button.
|
|
79
|
-
* Setting to `"always"` shows the clear button regardless
|
|
80
|
-
* of focus state, but only if the input is not empty.
|
|
81
|
-
*/
|
|
82
|
-
this.showClearButton = 'always';
|
|
83
|
-
/**
|
|
84
|
-
* If `true`, enable spellcheck on the input.
|
|
85
|
-
*/
|
|
86
|
-
this.spellcheck = false;
|
|
87
|
-
/**
|
|
88
|
-
* Set the type of the input.
|
|
89
|
-
*/
|
|
90
|
-
this.type = 'search';
|
|
91
|
-
/**
|
|
92
|
-
* the value of the searchbar.
|
|
93
|
-
*/
|
|
94
|
-
this.value = '';
|
|
95
|
-
/**
|
|
96
|
-
* Clears the input field and triggers the control change.
|
|
97
|
-
*/
|
|
98
|
-
this.onClearInput = async (shouldFocus) => {
|
|
99
|
-
if (this.clearTimeout) {
|
|
100
|
-
clearTimeout(this.clearTimeout);
|
|
101
|
-
}
|
|
102
|
-
this.ionClear.emit();
|
|
103
|
-
return new Promise((resolve) => {
|
|
104
|
-
// setTimeout() fixes https://github.com/ionic-team/ionic-framework/issues/7527
|
|
105
|
-
// wait for 4 frames
|
|
106
|
-
this.clearTimeout = setTimeout(() => {
|
|
107
|
-
const value = this.getValue();
|
|
108
|
-
if (value !== '') {
|
|
109
|
-
this.value = '';
|
|
110
|
-
this.emitInputChange();
|
|
111
|
-
/**
|
|
112
|
-
* When tapping clear button
|
|
113
|
-
* ensure input is focused after
|
|
114
|
-
* clearing input so users
|
|
115
|
-
* can quickly start typing.
|
|
116
|
-
*/
|
|
117
|
-
if (shouldFocus && !this.focused) {
|
|
118
|
-
this.setFocus();
|
|
119
|
-
/**
|
|
120
|
-
* The setFocus call above will clear focusedValue,
|
|
121
|
-
* but ionChange will never have gotten a chance to
|
|
122
|
-
* fire. Manually revert focusedValue so onBlur can
|
|
123
|
-
* compare against what was in the box before the clear.
|
|
124
|
-
*/
|
|
125
|
-
this.focusedValue = value;
|
|
126
|
-
}
|
|
127
|
-
}
|
|
128
|
-
resolve();
|
|
129
|
-
}, 16 * 4);
|
|
130
|
-
});
|
|
131
|
-
};
|
|
132
|
-
/**
|
|
133
|
-
* Clears the input field and tells the input to blur since
|
|
134
|
-
* the clearInput function doesn't want the input to blur
|
|
135
|
-
* then calls the custom cancel function if the user passed one in.
|
|
136
|
-
*/
|
|
137
|
-
this.onCancelSearchbar = async (ev) => {
|
|
138
|
-
if (ev) {
|
|
139
|
-
ev.preventDefault();
|
|
140
|
-
ev.stopPropagation();
|
|
141
|
-
}
|
|
142
|
-
this.ionCancel.emit();
|
|
143
|
-
// get cached values before clearing the input
|
|
144
|
-
const value = this.getValue();
|
|
145
|
-
const focused = this.focused;
|
|
146
|
-
await this.onClearInput();
|
|
147
|
-
/**
|
|
148
|
-
* If there used to be something in the box, and we weren't focused
|
|
149
|
-
* beforehand (meaning no blur fired that would already handle this),
|
|
150
|
-
* manually fire ionChange.
|
|
151
|
-
*/
|
|
152
|
-
if (value && !focused) {
|
|
153
|
-
this.emitValueChange(ev);
|
|
154
|
-
}
|
|
155
|
-
if (this.nativeInput) {
|
|
156
|
-
this.nativeInput.blur();
|
|
157
|
-
}
|
|
158
|
-
};
|
|
159
|
-
/**
|
|
160
|
-
* Update the Searchbar input value when the input changes
|
|
161
|
-
*/
|
|
162
|
-
this.onInput = (ev) => {
|
|
163
|
-
const input = ev.target;
|
|
164
|
-
if (input) {
|
|
165
|
-
this.value = input.value;
|
|
166
|
-
}
|
|
167
|
-
this.emitInputChange(ev);
|
|
168
|
-
};
|
|
169
|
-
this.onChange = (ev) => {
|
|
170
|
-
this.emitValueChange(ev);
|
|
171
|
-
};
|
|
172
|
-
/**
|
|
173
|
-
* Sets the Searchbar to not focused and checks if it should align left
|
|
174
|
-
* based on whether there is a value in the searchbar or not.
|
|
175
|
-
*/
|
|
176
|
-
this.onBlur = (ev) => {
|
|
177
|
-
this.focused = false;
|
|
178
|
-
this.ionBlur.emit();
|
|
179
|
-
this.positionElements();
|
|
180
|
-
if (this.focusedValue !== this.value) {
|
|
181
|
-
this.emitValueChange(ev);
|
|
182
|
-
}
|
|
183
|
-
this.focusedValue = undefined;
|
|
184
|
-
};
|
|
185
|
-
/**
|
|
186
|
-
* Sets the Searchbar to focused and active on input focus.
|
|
187
|
-
*/
|
|
188
|
-
this.onFocus = () => {
|
|
189
|
-
this.focused = true;
|
|
190
|
-
this.focusedValue = this.value;
|
|
191
|
-
this.ionFocus.emit();
|
|
192
|
-
this.positionElements();
|
|
193
|
-
};
|
|
194
|
-
}
|
|
15
|
+
nativeInput;
|
|
16
|
+
isCancelVisible = false;
|
|
17
|
+
shouldAlignLeft = true;
|
|
18
|
+
originalIonInput;
|
|
19
|
+
inputId = `ion-searchbar-${searchbarIds++}`;
|
|
20
|
+
inheritedAttributes = {};
|
|
21
|
+
loadTimeout;
|
|
22
|
+
clearTimeout;
|
|
23
|
+
searchIconResizeObserver;
|
|
24
|
+
/**
|
|
25
|
+
* The value of the input when the textarea is focused.
|
|
26
|
+
*/
|
|
27
|
+
focusedValue;
|
|
28
|
+
el;
|
|
29
|
+
focused = false;
|
|
30
|
+
noAnimate = true;
|
|
195
31
|
/**
|
|
196
32
|
* lang and dir are globally enumerated attributes.
|
|
197
33
|
* As a result, creating these as properties
|
|
@@ -200,21 +36,177 @@ export class Searchbar {
|
|
|
200
36
|
* to the inner `<input>` element.
|
|
201
37
|
*/
|
|
202
38
|
onLangChanged(newValue) {
|
|
203
|
-
this.inheritedAttributes =
|
|
39
|
+
this.inheritedAttributes = {
|
|
40
|
+
...this.inheritedAttributes,
|
|
41
|
+
lang: newValue,
|
|
42
|
+
};
|
|
204
43
|
forceUpdate(this);
|
|
205
44
|
}
|
|
206
45
|
onDirChanged(newValue) {
|
|
207
|
-
this.inheritedAttributes =
|
|
46
|
+
this.inheritedAttributes = {
|
|
47
|
+
...this.inheritedAttributes,
|
|
48
|
+
dir: newValue,
|
|
49
|
+
};
|
|
208
50
|
forceUpdate(this);
|
|
209
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* The color to use from your application's color palette.
|
|
54
|
+
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
55
|
+
* For more information on colors, see [theming](/docs/theming/basics).
|
|
56
|
+
*/
|
|
57
|
+
color;
|
|
58
|
+
/**
|
|
59
|
+
* If `true`, enable searchbar animation.
|
|
60
|
+
*/
|
|
61
|
+
animated = false;
|
|
62
|
+
/**
|
|
63
|
+
* Indicates whether and how the text value should be automatically capitalized as it is entered/edited by the user.
|
|
64
|
+
* Available options: `"off"`, `"none"`, `"on"`, `"sentences"`, `"words"`, `"characters"`.
|
|
65
|
+
*/
|
|
66
|
+
autocapitalize = 'off';
|
|
67
|
+
/**
|
|
68
|
+
* Set the input's autocomplete property.
|
|
69
|
+
*/
|
|
70
|
+
autocomplete = 'off';
|
|
71
|
+
/**
|
|
72
|
+
* Set the input's autocorrect property.
|
|
73
|
+
*/
|
|
74
|
+
autocorrect = false;
|
|
75
|
+
/**
|
|
76
|
+
* Set the cancel button icon. Only applies to `md` mode.
|
|
77
|
+
* Defaults to `arrow-back-sharp`.
|
|
78
|
+
*/
|
|
79
|
+
cancelButtonIcon = config.get('backButtonIcon', arrowBackSharp);
|
|
80
|
+
/**
|
|
81
|
+
* Set the cancel button text. Only applies to `ios` mode.
|
|
82
|
+
*/
|
|
83
|
+
cancelButtonText = 'Cancel';
|
|
84
|
+
/**
|
|
85
|
+
* Set the clear icon. Defaults to `close-circle` for `ios` and `close-sharp` for `md`.
|
|
86
|
+
*/
|
|
87
|
+
clearIcon;
|
|
88
|
+
/**
|
|
89
|
+
* Set the amount of time, in milliseconds, to wait to trigger the `ionInput` event after each keystroke.
|
|
90
|
+
*/
|
|
91
|
+
debounce;
|
|
210
92
|
debounceChanged() {
|
|
211
93
|
const { ionInput, debounce, originalIonInput } = this;
|
|
212
94
|
/**
|
|
213
95
|
* If debounce is undefined, we have to manually revert the ionInput emitter in case
|
|
214
96
|
* debounce used to be set to a number. Otherwise, the event would stay debounced.
|
|
215
97
|
*/
|
|
216
|
-
this.ionInput = debounce === undefined ? originalIonInput
|
|
98
|
+
this.ionInput = debounce === undefined ? originalIonInput ?? ionInput : debounceEvent(ionInput, debounce);
|
|
217
99
|
}
|
|
100
|
+
/**
|
|
101
|
+
* If `true`, the user cannot interact with the input.
|
|
102
|
+
*/
|
|
103
|
+
disabled = false;
|
|
104
|
+
/**
|
|
105
|
+
* A hint to the browser for which keyboard to display.
|
|
106
|
+
* Possible values: `"none"`, `"text"`, `"tel"`, `"url"`,
|
|
107
|
+
* `"email"`, `"numeric"`, `"decimal"`, and `"search"`.
|
|
108
|
+
*/
|
|
109
|
+
inputmode;
|
|
110
|
+
/**
|
|
111
|
+
* A hint to the browser for which enter key to display.
|
|
112
|
+
* Possible values: `"enter"`, `"done"`, `"go"`, `"next"`,
|
|
113
|
+
* `"previous"`, `"search"`, and `"send"`.
|
|
114
|
+
*/
|
|
115
|
+
enterkeyhint;
|
|
116
|
+
/**
|
|
117
|
+
* This attribute specifies the maximum number of characters that the user can enter.
|
|
118
|
+
*/
|
|
119
|
+
maxlength;
|
|
120
|
+
/**
|
|
121
|
+
* This attribute specifies the minimum number of characters that the user can enter.
|
|
122
|
+
*/
|
|
123
|
+
minlength;
|
|
124
|
+
/**
|
|
125
|
+
* If used in a form, set the name of the control, which is submitted with the form data.
|
|
126
|
+
*/
|
|
127
|
+
name = this.inputId;
|
|
128
|
+
/**
|
|
129
|
+
* Set the input's placeholder.
|
|
130
|
+
* `placeholder` can accept either plaintext or HTML as a string.
|
|
131
|
+
* To display characters normally reserved for HTML, they
|
|
132
|
+
* must be escaped. For example `<Ionic>` would become
|
|
133
|
+
* `<Ionic>`
|
|
134
|
+
*
|
|
135
|
+
* For more information: [Security Documentation](https://ionicframework.com/docs/faq/security)
|
|
136
|
+
*/
|
|
137
|
+
placeholder = 'Search';
|
|
138
|
+
/**
|
|
139
|
+
* The icon to use as the search icon. Defaults to `search-outline` in
|
|
140
|
+
* `ios` mode and `search-sharp` in `md` mode.
|
|
141
|
+
*/
|
|
142
|
+
searchIcon;
|
|
143
|
+
/**
|
|
144
|
+
* Sets the behavior for the cancel button. Defaults to `"never"`.
|
|
145
|
+
* Setting to `"focus"` shows the cancel button on focus.
|
|
146
|
+
* Setting to `"never"` hides the cancel button.
|
|
147
|
+
* Setting to `"always"` shows the cancel button regardless
|
|
148
|
+
* of focus state.
|
|
149
|
+
*/
|
|
150
|
+
showCancelButton = 'never';
|
|
151
|
+
/**
|
|
152
|
+
* Sets the behavior for the clear button. Defaults to `"focus"`.
|
|
153
|
+
* Setting to `"focus"` shows the clear button on focus if the
|
|
154
|
+
* input is not empty.
|
|
155
|
+
* Setting to `"never"` hides the clear button.
|
|
156
|
+
* Setting to `"always"` shows the clear button regardless
|
|
157
|
+
* of focus state, but only if the input is not empty.
|
|
158
|
+
*/
|
|
159
|
+
showClearButton = 'always';
|
|
160
|
+
/**
|
|
161
|
+
* If `true`, enable spellcheck on the input.
|
|
162
|
+
*/
|
|
163
|
+
spellcheck = false;
|
|
164
|
+
/**
|
|
165
|
+
* Set the type of the input.
|
|
166
|
+
*/
|
|
167
|
+
type = 'search';
|
|
168
|
+
/**
|
|
169
|
+
* the value of the searchbar.
|
|
170
|
+
*/
|
|
171
|
+
value = '';
|
|
172
|
+
/**
|
|
173
|
+
* Emitted when the `value` of the `ion-searchbar` element has changed.
|
|
174
|
+
*/
|
|
175
|
+
ionInput;
|
|
176
|
+
/**
|
|
177
|
+
* The `ionChange` event is fired for `<ion-searchbar>` elements when the user
|
|
178
|
+
* modifies the element's value. Unlike the `ionInput` event, the `ionChange`
|
|
179
|
+
* event is not necessarily fired for each alteration to an element's value.
|
|
180
|
+
*
|
|
181
|
+
* The `ionChange` event is fired when the value has been committed
|
|
182
|
+
* by the user. This can happen when the element loses focus or
|
|
183
|
+
* when the "Enter" key is pressed. `ionChange` can also fire
|
|
184
|
+
* when clicking the clear or cancel buttons.
|
|
185
|
+
*
|
|
186
|
+
* This event will not emit when programmatically setting the `value` property.
|
|
187
|
+
*/
|
|
188
|
+
ionChange;
|
|
189
|
+
/**
|
|
190
|
+
* Emitted when the cancel button is clicked.
|
|
191
|
+
*/
|
|
192
|
+
ionCancel;
|
|
193
|
+
/**
|
|
194
|
+
* Emitted when the clear input button is clicked.
|
|
195
|
+
*/
|
|
196
|
+
ionClear;
|
|
197
|
+
/**
|
|
198
|
+
* Emitted when the input loses focus.
|
|
199
|
+
*/
|
|
200
|
+
ionBlur;
|
|
201
|
+
/**
|
|
202
|
+
* Emitted when the input has focus.
|
|
203
|
+
*/
|
|
204
|
+
ionFocus;
|
|
205
|
+
/**
|
|
206
|
+
* Emitted when the styles change.
|
|
207
|
+
* @internal
|
|
208
|
+
*/
|
|
209
|
+
ionStyle;
|
|
218
210
|
valueChanged() {
|
|
219
211
|
const inputEl = this.nativeInput;
|
|
220
212
|
const value = this.getValue();
|
|
@@ -232,7 +224,9 @@ export class Searchbar {
|
|
|
232
224
|
this.emitStyle();
|
|
233
225
|
}
|
|
234
226
|
componentWillLoad() {
|
|
235
|
-
this.inheritedAttributes =
|
|
227
|
+
this.inheritedAttributes = {
|
|
228
|
+
...inheritAttributes(this.el, ['lang', 'dir']),
|
|
229
|
+
};
|
|
236
230
|
}
|
|
237
231
|
componentDidLoad() {
|
|
238
232
|
this.originalIonInput = this.ionInput;
|
|
@@ -243,14 +237,13 @@ export class Searchbar {
|
|
|
243
237
|
}, 300);
|
|
244
238
|
}
|
|
245
239
|
disconnectedCallback() {
|
|
246
|
-
var _a;
|
|
247
240
|
if (this.loadTimeout) {
|
|
248
241
|
clearTimeout(this.loadTimeout);
|
|
249
242
|
}
|
|
250
243
|
if (this.clearTimeout) {
|
|
251
244
|
clearTimeout(this.clearTimeout);
|
|
252
245
|
}
|
|
253
|
-
|
|
246
|
+
this.searchIconResizeObserver?.disconnect();
|
|
254
247
|
}
|
|
255
248
|
emitStyle() {
|
|
256
249
|
this.ionStyle.emit({
|
|
@@ -306,6 +299,105 @@ export class Searchbar {
|
|
|
306
299
|
const { value } = this;
|
|
307
300
|
this.ionInput.emit({ value, event });
|
|
308
301
|
}
|
|
302
|
+
/**
|
|
303
|
+
* Clears the input field and triggers the control change.
|
|
304
|
+
*/
|
|
305
|
+
onClearInput = async (shouldFocus) => {
|
|
306
|
+
if (this.clearTimeout) {
|
|
307
|
+
clearTimeout(this.clearTimeout);
|
|
308
|
+
}
|
|
309
|
+
this.ionClear.emit();
|
|
310
|
+
return new Promise((resolve) => {
|
|
311
|
+
// setTimeout() fixes https://github.com/ionic-team/ionic-framework/issues/7527
|
|
312
|
+
// wait for 4 frames
|
|
313
|
+
this.clearTimeout = setTimeout(() => {
|
|
314
|
+
const value = this.getValue();
|
|
315
|
+
if (value !== '') {
|
|
316
|
+
this.value = '';
|
|
317
|
+
this.emitInputChange();
|
|
318
|
+
/**
|
|
319
|
+
* When tapping clear button
|
|
320
|
+
* ensure input is focused after
|
|
321
|
+
* clearing input so users
|
|
322
|
+
* can quickly start typing.
|
|
323
|
+
*/
|
|
324
|
+
if (shouldFocus && !this.focused) {
|
|
325
|
+
this.setFocus();
|
|
326
|
+
/**
|
|
327
|
+
* The setFocus call above will clear focusedValue,
|
|
328
|
+
* but ionChange will never have gotten a chance to
|
|
329
|
+
* fire. Manually revert focusedValue so onBlur can
|
|
330
|
+
* compare against what was in the box before the clear.
|
|
331
|
+
*/
|
|
332
|
+
this.focusedValue = value;
|
|
333
|
+
}
|
|
334
|
+
}
|
|
335
|
+
resolve();
|
|
336
|
+
}, 16 * 4);
|
|
337
|
+
});
|
|
338
|
+
};
|
|
339
|
+
/**
|
|
340
|
+
* Clears the input field and tells the input to blur since
|
|
341
|
+
* the clearInput function doesn't want the input to blur
|
|
342
|
+
* then calls the custom cancel function if the user passed one in.
|
|
343
|
+
*/
|
|
344
|
+
onCancelSearchbar = async (ev) => {
|
|
345
|
+
if (ev) {
|
|
346
|
+
ev.preventDefault();
|
|
347
|
+
ev.stopPropagation();
|
|
348
|
+
}
|
|
349
|
+
this.ionCancel.emit();
|
|
350
|
+
// get cached values before clearing the input
|
|
351
|
+
const value = this.getValue();
|
|
352
|
+
const focused = this.focused;
|
|
353
|
+
await this.onClearInput();
|
|
354
|
+
/**
|
|
355
|
+
* If there used to be something in the box, and we weren't focused
|
|
356
|
+
* beforehand (meaning no blur fired that would already handle this),
|
|
357
|
+
* manually fire ionChange.
|
|
358
|
+
*/
|
|
359
|
+
if (value && !focused) {
|
|
360
|
+
this.emitValueChange(ev);
|
|
361
|
+
}
|
|
362
|
+
if (this.nativeInput) {
|
|
363
|
+
this.nativeInput.blur();
|
|
364
|
+
}
|
|
365
|
+
};
|
|
366
|
+
/**
|
|
367
|
+
* Update the Searchbar input value when the input changes
|
|
368
|
+
*/
|
|
369
|
+
onInput = (ev) => {
|
|
370
|
+
const input = ev.target;
|
|
371
|
+
if (input) {
|
|
372
|
+
this.value = input.value;
|
|
373
|
+
}
|
|
374
|
+
this.emitInputChange(ev);
|
|
375
|
+
};
|
|
376
|
+
onChange = (ev) => {
|
|
377
|
+
this.emitValueChange(ev);
|
|
378
|
+
};
|
|
379
|
+
/**
|
|
380
|
+
* Sets the Searchbar to not focused and checks if it should align left
|
|
381
|
+
* based on whether there is a value in the searchbar or not.
|
|
382
|
+
*/
|
|
383
|
+
onBlur = (ev) => {
|
|
384
|
+
this.focused = false;
|
|
385
|
+
this.ionBlur.emit();
|
|
386
|
+
this.positionElements();
|
|
387
|
+
if (this.focusedValue !== this.value) {
|
|
388
|
+
this.emitValueChange(ev);
|
|
389
|
+
}
|
|
390
|
+
this.focusedValue = undefined;
|
|
391
|
+
};
|
|
392
|
+
/**
|
|
393
|
+
* Sets the Searchbar to focused and active on input focus.
|
|
394
|
+
*/
|
|
395
|
+
onFocus = () => {
|
|
396
|
+
this.focused = true;
|
|
397
|
+
this.focusedValue = this.value;
|
|
398
|
+
this.ionFocus.emit();
|
|
399
|
+
this.positionElements();
|
|
400
|
+
};
|
|
309
401
|
/**
|
|
310
402
|
* Positions the input search icon, placeholder, and the cancel button
|
|
311
403
|
* based on the input value and if it is focused. (ios only)
|
|
@@ -348,7 +440,6 @@ export class Searchbar {
|
|
|
348
440
|
doc.body.appendChild(tempSpan);
|
|
349
441
|
// Get the width of the span then remove it
|
|
350
442
|
raf(() => {
|
|
351
|
-
var _a, _b;
|
|
352
443
|
const textWidth = tempSpan.offsetWidth;
|
|
353
444
|
tempSpan.remove();
|
|
354
445
|
// Calculate the input padding
|
|
@@ -367,15 +458,14 @@ export class Searchbar {
|
|
|
367
458
|
* If it is zero, set up a ResizeObserver and call this function when it observes a width greater than 0.
|
|
368
459
|
*/
|
|
369
460
|
if (iconWidth === 0) {
|
|
370
|
-
|
|
461
|
+
this.searchIconResizeObserver?.disconnect();
|
|
371
462
|
this.searchIconResizeObserver = new ResizeObserver((entries) => {
|
|
372
|
-
var _a;
|
|
373
463
|
if (entries[0].contentRect.width > 0) {
|
|
374
|
-
|
|
464
|
+
this.searchIconResizeObserver?.disconnect();
|
|
375
465
|
this.positionPlaceholder();
|
|
376
466
|
}
|
|
377
467
|
});
|
|
378
|
-
|
|
468
|
+
this.searchIconResizeObserver?.observe(iconEl);
|
|
379
469
|
return;
|
|
380
470
|
}
|
|
381
471
|
const iconLeft = 'calc(50% - ' + (textWidth / 2 + iconWidth + 8) + 'px)';
|
|
@@ -459,8 +549,8 @@ export class Searchbar {
|
|
|
459
549
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
460
550
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
461
551
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
462
|
-
const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '
|
|
463
|
-
return (h(Host, { key: '
|
|
552
|
+
const cancelButton = this.showCancelButton !== 'never' && (h("button", { key: '47ee586db12684db8b2d16a790976bd247cbbc62', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, h("div", { key: '55e6b556a46e7bba14c2cfe1b58542499d2334ab', "aria-hidden": "true" }, mode === 'md' ? (h("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
553
|
+
return (h(Host, { key: '468d524b52a0d29d840e2c3cdafba46152716b15', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses(this.color, {
|
|
464
554
|
[mode]: true,
|
|
465
555
|
'searchbar-animated': animated,
|
|
466
556
|
'searchbar-disabled': this.disabled,
|
|
@@ -470,14 +560,14 @@ export class Searchbar {
|
|
|
470
560
|
'searchbar-has-focus': this.focused,
|
|
471
561
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
472
562
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
473
|
-
}) }, h("div", { key: '
|
|
563
|
+
}) }, h("div", { key: '94378bdfdf883c28941ef770d64347705d6f8345', class: "searchbar-input-container" }, h("input", { key: 'deea2190823bf8652703148d308aa21473605930', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect ? 'on' : 'off', spellcheck: this.spellcheck, ...this.inheritedAttributes }), mode === 'md' && cancelButton, h("ion-icon", { key: '0ecc28496ab545f2064b71b994b4cbf0968c2108', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), h("button", { key: '1bcc77d70eaa08f2ae7fc6173642f114fe387fb7', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
474
564
|
/**
|
|
475
565
|
* This prevents mobile browsers from
|
|
476
566
|
* blurring the input when the clear
|
|
477
567
|
* button is activated.
|
|
478
568
|
*/
|
|
479
569
|
ev.preventDefault();
|
|
480
|
-
}, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: '
|
|
570
|
+
}, onClick: () => this.onClearInput(true) }, h("ion-icon", { key: 'bbf8d05eb1070a0d34a22236dfaaf11d8dcc06af', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
481
571
|
}
|
|
482
572
|
static get is() { return "ion-searchbar"; }
|
|
483
573
|
static get encapsulation() { return "scoped"; }
|
|
@@ -589,11 +679,11 @@ export class Searchbar {
|
|
|
589
679
|
"defaultValue": "'off'"
|
|
590
680
|
},
|
|
591
681
|
"autocorrect": {
|
|
592
|
-
"type": "
|
|
682
|
+
"type": "boolean",
|
|
593
683
|
"mutable": false,
|
|
594
684
|
"complexType": {
|
|
595
|
-
"original": "
|
|
596
|
-
"resolved": "
|
|
685
|
+
"original": "boolean",
|
|
686
|
+
"resolved": "boolean",
|
|
597
687
|
"references": {}
|
|
598
688
|
},
|
|
599
689
|
"required": false,
|
|
@@ -606,7 +696,7 @@ export class Searchbar {
|
|
|
606
696
|
"setter": false,
|
|
607
697
|
"reflect": false,
|
|
608
698
|
"attribute": "autocorrect",
|
|
609
|
-
"defaultValue": "
|
|
699
|
+
"defaultValue": "false"
|
|
610
700
|
},
|
|
611
701
|
"cancelButtonIcon": {
|
|
612
702
|
"type": "string",
|