@ionic/core 8.8.20-dev.11787158518.168a2fea → 8.8.20-dev.11789504012.1a675914
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-divider.d.ts +11 -0
- package/components/ion-divider.js +4 -0
- 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-gallery-item.d.ts +11 -0
- package/components/ion-gallery-item.js +4 -0
- package/components/ion-gallery.d.ts +11 -0
- package/components/ion-gallery.js +4 -0
- 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-0MMiHJhx.js +4 -0
- package/components/p-0rXxxCTt.js +4 -0
- package/components/{p-DwpKZ6rl.js → p-B2SvA6NE.js} +1 -1
- package/components/p-B4GJERAm.js +4 -0
- package/components/p-B9_sPaDw.js +4 -0
- package/components/p-BE21dB_a.js +4 -0
- package/components/p-BJyeT56g.js +4 -0
- package/components/p-BTBa_wH7.js +4 -0
- package/components/p-BTEOs1at.js +4 -0
- package/components/p-BU8Blvqg.js +4 -0
- package/components/p-BXXTyrCp.js +4 -0
- package/components/p-BXjGM4gW.js +4 -0
- package/components/p-BXuZo5-p.js +4 -0
- package/components/p-BYRVyMu9.js +4 -0
- package/components/{p-ryyf_ItD.js → p-BZwQa9ey.js} +1 -1
- package/components/p-BZxBDeEU.js +4 -0
- package/components/p-BcWO94Sl.js +4 -0
- package/components/p-BjW8SOqw.js +4 -0
- package/components/p-Br6q6Rgq.js +4 -0
- package/components/p-BwKpO3Is.js +4 -0
- package/components/p-BwzRqsq1.js +4 -0
- package/components/p-C-cw-bM-.js +4 -0
- package/components/p-C0K6CGg9.js +4 -0
- package/components/p-C2J-Hvv3.js +4 -0
- package/components/p-C3ydXg9O.js +4 -0
- package/components/p-C5Bnq_Hm.js +4 -0
- package/components/p-C5JYXyPD.js +4 -0
- package/components/p-C898H5L0.js +4 -0
- package/components/p-C8kcgEG7.js +4 -0
- package/components/p-CEz0vNHD.js +4 -0
- package/components/p-CH8ypgvS.js +4 -0
- package/components/{p-CMLAwl_N.js → p-CKLXmqy1.js} +1 -1
- package/components/p-CMtmHGrE.js +4 -0
- package/components/p-CNlz8OTE.js +4 -0
- package/components/p-CODBQrPj.js +4 -0
- package/components/p-CToV3-ig.js +4 -0
- package/components/p-CV7PNBGr.js +4 -0
- package/components/p-CVYFPBs-.js +4 -0
- package/components/p-CgbD1udy.js +4 -0
- package/components/p-CjlmHeGM.js +4 -0
- package/components/p-ClTdIlic.js +4 -0
- package/components/p-CstXr-x9.js +4 -0
- package/components/{p-DzRT60Tw.js → p-Cu8FoYIJ.js} +1 -1
- package/components/p-CxhjkdQ_.js +4 -0
- package/components/p-D0Iqw6OZ.js +4 -0
- package/components/p-D12Xsfh7.js +4 -0
- package/components/p-DExJ63jR.js +4 -0
- package/components/p-DHvfufkW.js +4 -0
- package/components/p-DRUGmlKi.js +4 -0
- package/components/p-DYq-5riI.js +4 -0
- package/components/p-DaJxRxSQ.js +4 -0
- package/components/p-Db3A3kHi.js +4 -0
- package/components/p-Df6AAcu8.js +4 -0
- package/components/p-Dh1f5tAK.js +4 -0
- package/components/{p-63OhffQv.js → p-Di8NbWfs.js} +1 -1
- package/components/p-DqkLOArC.js +4 -0
- package/components/p-DriGEn08.js +4 -0
- package/components/p-DylrHLJF.js +4 -0
- package/components/p-WeNgVmOy.js +4 -0
- package/components/p-Wn4ujuPW.js +4 -0
- package/components/p-X6YgGSBf.js +4 -0
- package/components/p-dLA3JnNJ.js +4 -0
- package/components/p-eRqVSlkn.js +4 -0
- package/components/p-fUXE2zLc.js +4 -0
- package/components/p-o8OKV5aD.js +4 -0
- package/components/p-pztWcmzj.js +4 -0
- package/components/p-vXpMhGrs.js +4 -0
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/display.css +1 -1
- package/css/display.css.map +1 -1
- package/css/flex-utils.css +1 -1
- package/css/flex-utils.css.map +1 -1
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic/bundle.ionic.css +1 -0
- package/css/ionic/bundle.ionic.css.map +1 -0
- package/css/ionic/core.ionic.css +1 -0
- package/css/ionic/core.ionic.css.map +1 -0
- package/css/ionic/global.bundle.ionic.css +1 -0
- package/css/ionic/global.bundle.ionic.css.map +1 -0
- package/css/ionic/ionic-swiper.ionic.css +1 -0
- package/css/ionic/ionic-swiper.ionic.css.map +1 -0
- package/css/ionic/link.ionic.css +1 -0
- package/css/ionic/link.ionic.css.map +1 -0
- package/css/ionic/structure.ionic.css +1 -0
- package/css/ionic/structure.ionic.css.map +1 -0
- package/css/ionic/typography.ionic.css +1 -0
- package/css/ionic/typography.ionic.css.map +1 -0
- package/css/ionic/utils.bundle.ionic.css +1 -0
- package/css/ionic/utils.bundle.ionic.css.map +1 -0
- package/css/ionic-swiper.css +1 -1
- package/css/ionic-swiper.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/normalize.css.map +1 -1
- package/css/padding.css.map +1 -1
- package/css/palettes/dark.always.css.map +1 -1
- package/css/palettes/dark.class.css.map +1 -1
- package/css/palettes/dark.system.css.map +1 -1
- package/css/palettes/high-contrast-dark.always.css.map +1 -1
- package/css/palettes/high-contrast-dark.class.css.map +1 -1
- package/css/palettes/high-contrast-dark.system.css.map +1 -1
- package/css/palettes/high-contrast.always.css.map +1 -1
- package/css/palettes/high-contrast.class.css.map +1 -1
- package/css/palettes/high-contrast.system.css.map +1 -1
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +1 -1
- package/css/utils.bundle.css.map +1 -1
- package/dist/cjs/{animation-C0mOHzej.js → animation-CxRPIayb.js} +6 -6
- package/dist/cjs/{app-globals-BREG4twP.js → app-globals-BwvlV6g7.js} +1 -1
- package/dist/cjs/{button-active-CVMevT9a.js → button-active-qCQDwE2m.js} +3 -3
- package/dist/cjs/{capacitor-DmA66EwP.js → capacitor-CRl0exFC.js} +3 -3
- package/dist/cjs/clear-button-press-controller-C7B9kyMa.js +45 -0
- package/dist/cjs/{config-CjUbvdPW.js → config-DWdFbSNK.js} +4 -5
- package/dist/cjs/{dir-zwDPRE5K.js → dir-DD0jPVH3.js} +3 -2
- package/dist/cjs/{focus-visible-CCvKiLh3.js → focus-visible-BIj-I3-C.js} +24 -0
- package/dist/cjs/{format-pp0Du3K-.js → format-COAsdjOc.js} +30 -40
- package/dist/cjs/{framework-delegate-Dfo5XsGv.js → framework-delegate-IvkF1VuM.js} +10 -6
- package/dist/cjs/{gesture-controller-BDUH7687.js → gesture-controller-dtqlP_q4.js} +8 -15
- package/dist/cjs/{haptic-Ch-X4gRx.js → haptic-DG25gZzb.js} +4 -3
- package/dist/cjs/{helpers-YPQybDph.js → helpers-Dhimwhpn.js} +74 -7
- package/dist/cjs/{index-DwlRtFZe.js → index-BJ2-LydH.js} +3 -9
- package/dist/cjs/{index-zVCah4Uz.js → index-Bsq0SbXc.js} +2 -2
- package/dist/cjs/{index-uvry__L4.js → index-C1knGA9x.js} +65 -33
- package/dist/cjs/{index-wOmugbdg.js → index-CxDnX7hd.js} +2 -0
- package/dist/cjs/{index-DXsPSne6.js → index-DhDV4RxJ.js} +16 -15
- package/dist/cjs/{index-BLdJCcJY.js → index-DuleInoh.js} +5 -5
- package/dist/cjs/{index-B7zJsYWS.js → index-YYUVCfP-.js} +3 -3
- package/dist/cjs/{index-DDg31ZF5.js → index-yon1HGB7.js} +10 -9
- package/dist/cjs/index.cjs.js +18 -18
- package/dist/cjs/{input-shims-Cbu1fcye.js → input-shims-BgJcHtqI.js} +23 -20
- package/dist/cjs/input.utils--RmR5lVe.js +150 -0
- package/dist/cjs/ion-accordion_2.cjs.entry.js +376 -376
- package/dist/cjs/ion-action-sheet.cjs.entry.js +87 -179
- package/dist/cjs/ion-alert.cjs.entry.js +126 -251
- package/dist/cjs/ion-app_8.cjs.entry.js +608 -461
- package/dist/cjs/ion-avatar_3.cjs.entry.js +125 -19
- package/dist/cjs/ion-back-button.cjs.entry.js +49 -65
- package/dist/cjs/ion-backdrop.cjs.entry.js +22 -23
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +157 -210
- package/dist/cjs/ion-button_2.cjs.entry.js +118 -153
- package/dist/cjs/ion-card_5.cjs.entry.js +80 -110
- package/dist/cjs/ion-checkbox.cjs.entry.js +134 -160
- package/dist/cjs/ion-chip.cjs.entry.js +56 -21
- package/dist/cjs/ion-col_3.cjs.entry.js +61 -186
- package/dist/cjs/ion-datetime-button.cjs.entry.js +248 -256
- package/dist/cjs/ion-datetime_3.cjs.entry.js +3210 -0
- package/dist/cjs/ion-divider.cjs.entry.js +51 -0
- package/dist/cjs/ion-fab_3.cjs.entry.js +109 -155
- package/dist/cjs/ion-gallery-item.cjs.entry.js +59 -0
- package/dist/cjs/ion-gallery.cjs.entry.js +608 -0
- package/dist/cjs/ion-img.cjs.entry.js +17 -35
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +157 -109
- package/dist/cjs/ion-input-otp.cjs.entry.js +437 -435
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +54 -40
- package/dist/cjs/ion-input.cjs.entry.js +305 -351
- package/dist/cjs/ion-item-option_3.cjs.entry.js +512 -137
- package/dist/cjs/ion-item_8.cjs.entry.js +186 -218
- package/dist/cjs/ion-loading.cjs.entry.js +69 -152
- package/dist/cjs/ion-menu_3.cjs.entry.js +136 -182
- package/dist/cjs/ion-modal.cjs.entry.js +501 -571
- package/dist/cjs/ion-nav_2.cjs.entry.js +164 -104
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +40 -40
- package/dist/cjs/ion-picker-column.cjs.entry.js +410 -422
- package/dist/cjs/ion-picker.cjs.entry.js +401 -406
- package/dist/cjs/ion-popover.cjs.entry.js +212 -324
- package/dist/cjs/ion-progress-bar.cjs.entry.js +48 -36
- package/dist/cjs/ion-radio_2.cjs.entry.js +162 -217
- package/dist/cjs/ion-range.cjs.entry.js +251 -309
- package/dist/cjs/ion-refresher_2.cjs.entry.js +127 -175
- package/dist/cjs/ion-reorder_2.cjs.entry.js +47 -60
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +26 -18
- package/dist/cjs/ion-route_4.cjs.entry.js +76 -179
- package/dist/cjs/ion-searchbar.cjs.entry.js +305 -308
- package/dist/cjs/ion-segment-content.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment-view.cjs.entry.js +27 -28
- package/dist/cjs/ion-segment_2.cjs.entry.js +141 -177
- package/dist/cjs/ion-select-modal.cjs.entry.js +71 -50
- package/dist/cjs/ion-select_3.cjs.entry.js +416 -507
- package/dist/cjs/ion-spinner.cjs.entry.js +36 -28
- package/dist/cjs/ion-split-pane.cjs.entry.js +25 -34
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +180 -117
- package/dist/cjs/ion-tab_2.cjs.entry.js +30 -55
- package/dist/cjs/ion-text.cjs.entry.js +7 -13
- package/dist/cjs/ion-textarea.cjs.entry.js +310 -303
- package/dist/cjs/ion-toast.cjs.entry.js +170 -265
- package/dist/cjs/ion-toggle.cjs.entry.js +172 -184
- package/dist/cjs/ionic-global-DYLhJaw7.js +519 -0
- package/dist/cjs/ionic.cjs.js +4 -4
- package/dist/cjs/{ios.transition-zTmJz8T-.js → ios.transition-Blgf-vZU.js} +21 -15
- package/dist/cjs/{item-multiple-inputs-BdYSbfKN.js → item-multiple-inputs-DKn76MYO.js} +1 -1
- package/dist/cjs/{keyboard-cHxZlTyz.js → keyboard-BgioTbwQ.js} +3 -3
- package/dist/cjs/{keyboard-Cix5TVkD.js → keyboard-Otnp8OQI.js} +5 -4
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-nb_4pUXu.js → md.transition-ClgvbGfq.js} +11 -9
- package/dist/cjs/notch-controller-0hkmmSGo.js +155 -0
- package/dist/cjs/{overlay-control-label-D2sdL2O8.js → overlay-control-label-DnRLQR1t.js} +13 -11
- package/dist/cjs/{overlays-KaNVDNqC.js → overlays-Bxjqh2m3.js} +336 -60
- package/dist/cjs/scroll-hide-controller-qWMU5yOk.js +345 -0
- package/dist/cjs/{select-option-render-pULCGldr.js → select-option-render-BqJEK1N1.js} +4 -3
- package/dist/cjs/{status-tap-o9IIymsP.js → status-tap-ClA8u57t.js} +5 -4
- package/dist/cjs/{swipe-back-B7X9VOlH.js → swipe-back-4vY7mi8i.js} +6 -5
- package/dist/cjs/{theme-Bw0rpaNN.js → theme-IlOsGAz7.js} +26 -7
- package/dist/cjs/validity-QmuwEptc.js +51 -0
- package/dist/collection/collection-manifest.json +13 -1
- package/dist/collection/components/accordion/accordion.ionic.css +201 -0
- package/dist/collection/components/accordion/accordion.ios.css +73 -58
- package/dist/collection/components/accordion/accordion.js +331 -324
- package/dist/collection/components/accordion/accordion.md.css +67 -59
- package/dist/collection/components/accordion-group/accordion-group.ionic.css +93 -0
- package/dist/collection/components/accordion-group/accordion-group.ios.css +16 -4
- package/dist/collection/components/accordion-group/accordion-group.js +69 -56
- package/dist/collection/components/accordion-group/accordion-group.md.css +22 -4
- package/dist/collection/components/action-sheet/action-sheet.ionic.css +494 -0
- package/dist/collection/components/action-sheet/action-sheet.ios.css +184 -54
- package/dist/collection/components/action-sheet/action-sheet.js +76 -166
- package/dist/collection/components/action-sheet/action-sheet.md.css +179 -55
- package/dist/collection/components/action-sheet/test/basic/fixture.js +0 -3
- package/dist/collection/components/alert/alert.ionic.css +787 -0
- package/dist/collection/components/alert/alert.ios.css +247 -54
- package/dist/collection/components/alert/alert.js +113 -236
- package/dist/collection/components/alert/alert.md.css +243 -56
- package/dist/collection/components/app/app.js +15 -86
- package/dist/collection/components/avatar/avatar.ionic.css +385 -0
- package/dist/collection/components/avatar/avatar.ios.css +7 -33
- package/dist/collection/components/avatar/avatar.js +120 -4
- package/dist/collection/components/avatar/avatar.md.css +51 -0
- package/dist/collection/components/back-button/back-button.ios.css +60 -48
- package/dist/collection/components/back-button/back-button.js +45 -61
- package/dist/collection/components/back-button/back-button.md.css +60 -48
- package/dist/collection/components/backdrop/backdrop.ionic.css +109 -0
- package/dist/collection/components/backdrop/backdrop.ios.css +56 -19
- package/dist/collection/components/backdrop/backdrop.js +26 -22
- package/dist/collection/components/backdrop/backdrop.md.css +56 -19
- package/dist/collection/components/badge/badge.ionic.css +272 -0
- package/dist/collection/components/badge/badge.ios.css +137 -12
- package/dist/collection/components/badge/badge.js +145 -15
- package/dist/collection/components/badge/badge.md.css +122 -12
- package/dist/collection/components/breadcrumb/breadcrumb.ios.css +20 -8
- package/dist/collection/components/breadcrumb/breadcrumb.js +60 -99
- package/dist/collection/components/breadcrumb/breadcrumb.md.css +20 -8
- package/dist/collection/components/breadcrumbs/breadcrumbs.ios.css +6 -0
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +99 -112
- package/dist/collection/components/breadcrumbs/breadcrumbs.md.css +6 -0
- package/dist/collection/components/button/button.ionic.css +644 -0
- package/dist/collection/components/button/button.ios.css +154 -46
- package/dist/collection/components/button/button.js +122 -157
- package/dist/collection/components/button/button.md.css +150 -50
- package/dist/collection/components/buttons/buttons.ionic.css +97 -0
- package/dist/collection/components/buttons/buttons.ios.css +59 -7
- package/dist/collection/components/buttons/buttons.js +29 -21
- package/dist/collection/components/buttons/buttons.md.css +55 -3
- package/dist/collection/components/card/card.ionic.css +144 -0
- package/dist/collection/components/card/card.ios.css +65 -14
- package/dist/collection/components/card/card.js +61 -63
- package/dist/collection/components/card/card.md.css +65 -14
- package/dist/collection/components/card-content/card-content.ionic.css +89 -0
- package/dist/collection/components/card-content/card-content.ios.css +20 -35
- package/dist/collection/components/card-content/card-content.js +12 -10
- package/dist/collection/components/card-content/card-content.md.css +20 -35
- package/dist/collection/components/card-header/card-header.ionic.css +85 -0
- package/dist/collection/components/card-header/card-header.ios.css +27 -15
- package/dist/collection/components/card-header/card-header.js +20 -21
- package/dist/collection/components/card-header/card-header.md.css +27 -15
- package/dist/collection/components/card-subtitle/card-subtitle.ionic.css +144 -0
- package/dist/collection/components/card-subtitle/card-subtitle.ios.css +12 -0
- package/dist/collection/components/card-subtitle/card-subtitle.js +11 -14
- package/dist/collection/components/card-subtitle/card-subtitle.md.css +12 -0
- package/dist/collection/components/card-title/card-title.ios.css +73 -0
- package/dist/collection/components/card-title/card-title.js +11 -14
- package/dist/collection/components/card-title/card-title.md.css +73 -0
- package/dist/collection/components/checkbox/checkbox.ionic.css +536 -0
- package/dist/collection/components/checkbox/checkbox.ios.css +246 -115
- package/dist/collection/components/checkbox/checkbox.js +172 -157
- package/dist/collection/components/checkbox/checkbox.md.css +247 -116
- package/dist/collection/components/chip/chip.ionic.css +217 -0
- package/dist/collection/components/chip/chip.ios.css +67 -14
- package/dist/collection/components/chip/chip.js +116 -20
- package/dist/collection/components/chip/chip.md.css +67 -14
- package/dist/collection/components/col/col.css +192 -4
- package/dist/collection/components/col/col.js +212 -186
- package/dist/collection/components/content/content.css +47 -2
- package/dist/collection/components/content/content.js +78 -102
- package/dist/collection/components/datetime/datetime.ionic.css +703 -0
- package/dist/collection/components/datetime/datetime.ios.css +304 -148
- package/dist/collection/components/datetime/datetime.js +900 -1090
- package/dist/collection/components/datetime/datetime.md.css +294 -138
- package/dist/collection/components/datetime/utils/data.js +19 -18
- 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 +6 -5
- package/dist/collection/components/datetime-button/datetime-button.js +246 -253
- package/dist/collection/components/datetime-button/datetime-button.md.css +6 -5
- package/dist/collection/components/divider/divider.ionic.css +148 -0
- package/dist/collection/components/divider/divider.ios.css +87 -0
- package/dist/collection/components/divider/divider.js +94 -0
- package/dist/collection/components/divider/divider.md.css +87 -0
- package/dist/collection/components/fab/fab.css +25 -1
- package/dist/collection/components/fab/fab.js +22 -25
- package/dist/collection/components/fab-button/fab-button.ios.css +18 -6
- package/dist/collection/components/fab-button/fab-button.js +79 -117
- package/dist/collection/components/fab-button/fab-button.md.css +20 -8
- package/dist/collection/components/fab-list/fab-list.css +12 -0
- package/dist/collection/components/fab-list/fab-list.js +20 -15
- package/dist/collection/components/footer/footer-interface.js +1 -0
- package/dist/collection/components/footer/footer.ios.css +33 -6
- package/dist/collection/components/footer/footer.js +151 -65
- package/dist/collection/components/footer/footer.md.css +40 -0
- package/dist/collection/components/gallery/gallery-constants.js +12 -0
- package/dist/collection/components/gallery/gallery-interface.js +1 -0
- package/dist/collection/components/gallery/gallery.css +15 -0
- package/dist/collection/components/gallery/gallery.js +679 -0
- package/dist/collection/components/gallery/test/utils.js +100 -0
- package/dist/collection/components/gallery-item/gallery-item.css +49 -0
- package/dist/collection/components/gallery-item/gallery-item.js +99 -0
- package/dist/collection/components/grid/grid.css +12 -0
- package/dist/collection/components/grid/grid.js +15 -9
- package/dist/collection/components/header/header-interface.js +1 -0
- package/dist/collection/components/header/header.ionic.css +250 -0
- package/dist/collection/components/header/header.ios.css +178 -133
- package/dist/collection/components/header/header.js +202 -70
- package/dist/collection/components/header/header.md.css +199 -9
- package/dist/collection/components/header/header.utils.js +6 -13
- package/dist/collection/components/img/img.js +16 -34
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +164 -76
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.ios.css +12 -0
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +19 -30
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.md.css +12 -0
- package/dist/collection/components/input/input.ionic.css +891 -0
- package/dist/collection/components/input/input.ios.css +247 -191
- package/dist/collection/components/input/input.js +333 -357
- package/dist/collection/components/input/input.md.css +234 -285
- package/dist/collection/components/input-otp/input-otp.ionic.css +371 -0
- package/dist/collection/components/input-otp/input-otp.ios.css +105 -60
- package/dist/collection/components/input-otp/input-otp.js +437 -432
- package/dist/collection/components/input-otp/input-otp.md.css +105 -60
- package/dist/collection/components/input-password-toggle/input-password-toggle.ionic.css +78 -0
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +51 -36
- package/dist/collection/components/input-password-toggle/input-password-toggle.native.css +61 -0
- package/dist/collection/components/item/item.ionic.css +496 -0
- package/dist/collection/components/item/item.ios.css +120 -80
- package/dist/collection/components/item/item.js +98 -113
- package/dist/collection/components/item/item.md.css +131 -79
- package/dist/collection/components/item-divider/item-divider.ios.css +18 -0
- package/dist/collection/components/item-divider/item-divider.js +21 -23
- package/dist/collection/components/item-divider/item-divider.md.css +18 -0
- package/dist/collection/components/item-group/item-group.ios.css +12 -0
- package/dist/collection/components/item-group/item-group.js +13 -7
- package/dist/collection/components/item-group/item-group.md.css +12 -0
- package/dist/collection/components/item-option/item-option.ionic.css +277 -0
- package/dist/collection/components/item-option/item-option.ios.css +136 -29
- package/dist/collection/components/item-option/item-option.js +92 -56
- package/dist/collection/components/item-option/item-option.md.css +136 -29
- package/dist/collection/components/item-options/item-options.ionic.css +221 -0
- package/dist/collection/components/item-options/item-options.ios.css +77 -34
- package/dist/collection/components/item-options/item-options.js +20 -17
- package/dist/collection/components/item-options/item-options.md.css +77 -34
- package/dist/collection/components/item-sliding/item-sliding.ionic.css +211 -0
- package/dist/collection/components/item-sliding/item-sliding.js +441 -61
- package/dist/collection/components/item-sliding/{item-sliding.css → item-sliding.native.css} +84 -9
- package/dist/collection/components/item-sliding/test/test.utils.js +13 -0
- package/dist/collection/components/label/label.ios.css +18 -0
- package/dist/collection/components/label/label.js +15 -32
- package/dist/collection/components/label/label.md.css +18 -0
- package/dist/collection/components/list/list.ionic.css +212 -0
- package/dist/collection/components/list/list.ios.css +54 -14
- package/dist/collection/components/list/list.js +55 -19
- package/dist/collection/components/list/list.md.css +56 -16
- package/dist/collection/components/list-header/list-header.ionic.css +190 -0
- package/dist/collection/components/list-header/list-header.ios.css +82 -38
- package/dist/collection/components/list-header/list-header.js +11 -18
- package/dist/collection/components/list-header/list-header.md.css +82 -38
- package/dist/collection/components/loading/loading.ios.css +13 -1
- package/dist/collection/components/loading/loading.js +62 -143
- package/dist/collection/components/loading/loading.md.css +13 -1
- package/dist/collection/components/menu/menu.ios.css +15 -3
- package/dist/collection/components/menu/menu.js +71 -108
- package/dist/collection/components/menu/menu.md.css +15 -3
- package/dist/collection/components/menu-button/menu-button.ionic.css +236 -0
- package/dist/collection/components/menu-button/menu-button.ios.css +48 -14
- package/dist/collection/components/menu-button/menu-button.js +43 -38
- package/dist/collection/components/menu-button/menu-button.md.css +49 -15
- package/dist/collection/components/menu-toggle/menu-toggle.js +21 -25
- package/dist/collection/components/modal/animations/ionic.enter.js +40 -0
- package/dist/collection/components/modal/animations/ionic.leave.js +28 -0
- 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/animations/sheet.js +8 -2
- package/dist/collection/components/modal/gestures/sheet.js +86 -32
- package/dist/collection/components/modal/gestures/swipe-to-close.js +3 -15
- package/dist/collection/components/modal/modal.ionic.css +255 -0
- package/dist/collection/components/modal/modal.ios.css +178 -70
- package/dist/collection/components/modal/modal.js +272 -404
- package/dist/collection/components/modal/modal.md.css +178 -70
- 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.css +7 -1
- package/dist/collection/components/nav/nav.js +256 -72
- package/dist/collection/components/nav/view-controller.js +1 -7
- package/dist/collection/components/nav-link/nav-link.js +14 -21
- package/dist/collection/components/note/note.ios.css +12 -0
- package/dist/collection/components/note/note.js +11 -14
- package/dist/collection/components/note/note.md.css +12 -0
- package/dist/collection/components/picker/picker.ios.css +15 -3
- package/dist/collection/components/picker/picker.js +398 -403
- package/dist/collection/components/picker/picker.md.css +15 -3
- package/dist/collection/components/picker-column/picker-column.css +9 -5
- package/dist/collection/components/picker-column/picker-column.js +409 -418
- package/dist/collection/components/picker-column-option/picker-column-option.ios.css +6 -0
- package/dist/collection/components/picker-column-option/picker-column-option.js +42 -38
- package/dist/collection/components/picker-column-option/picker-column-option.md.css +7 -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 +312 -0
- package/dist/collection/components/picker-legacy/picker.js +891 -0
- package/dist/collection/components/picker-legacy/picker.md.css +299 -0
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +243 -0
- package/dist/collection/components/picker-legacy-column/picker-column.js +422 -0
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +234 -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.ionic.css +290 -0
- package/dist/collection/components/popover/popover.ios.css +15 -2
- package/dist/collection/components/popover/popover.js +199 -313
- package/dist/collection/components/popover/popover.md.css +15 -2
- 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.ionic.css +287 -0
- package/dist/collection/components/progress-bar/progress-bar.ios.css +48 -17
- package/dist/collection/components/progress-bar/progress-bar.js +65 -33
- package/dist/collection/components/progress-bar/progress-bar.md.css +48 -17
- package/dist/collection/components/radio/radio.ionic.css +422 -0
- package/dist/collection/components/radio/radio.ios.css +207 -102
- package/dist/collection/components/radio/radio.js +77 -108
- package/dist/collection/components/radio/radio.md.css +207 -102
- package/dist/collection/components/radio-group/radio-group.ionic.css +119 -0
- package/dist/collection/components/radio-group/radio-group.ios.css +43 -19
- package/dist/collection/components/radio-group/radio-group.js +113 -107
- package/dist/collection/components/radio-group/radio-group.md.css +43 -19
- package/dist/collection/components/radio-group/test/fixtures.js +0 -2
- package/dist/collection/components/range/range.ionic.css +567 -0
- package/dist/collection/components/range/range.ios.css +128 -85
- package/dist/collection/components/range/range.js +247 -305
- package/dist/collection/components/range/range.md.css +128 -85
- package/dist/collection/components/refresher/refresher.ios.css +14 -1
- package/dist/collection/components/refresher/refresher.js +88 -117
- package/dist/collection/components/refresher/refresher.md.css +15 -2
- package/dist/collection/components/refresher-content/refresher-content.js +37 -47
- package/dist/collection/components/reorder/reorder.ios.css +6 -0
- package/dist/collection/components/reorder/reorder.js +26 -7
- package/dist/collection/components/reorder/reorder.md.css +6 -0
- package/dist/collection/components/reorder-group/reorder-group.css +6 -0
- package/dist/collection/components/reorder-group/reorder-group.js +22 -47
- package/dist/collection/components/ripple-effect/{ripple-effect.css → ripple-effect.common.css} +7 -1
- package/dist/collection/components/ripple-effect/ripple-effect.ionic.css +215 -0
- package/dist/collection/components/ripple-effect/ripple-effect.js +26 -17
- package/dist/collection/components/route/route.js +14 -39
- package/dist/collection/components/route-redirect/route-redirect.js +0 -31
- package/dist/collection/components/router/router.js +37 -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.css +8 -2
- package/dist/collection/components/router-link/router-link.js +19 -40
- package/dist/collection/components/router-outlet/router-outlet.css +7 -1
- package/dist/collection/components/router-outlet/router-outlet.js +25 -83
- package/dist/collection/components/row/row.css +16 -0
- package/dist/collection/components/row/row.js +9 -2
- package/dist/collection/components/searchbar/searchbar.ionic.css +622 -0
- package/dist/collection/components/searchbar/searchbar.ios.css +56 -18
- package/dist/collection/components/searchbar/searchbar.js +356 -321
- package/dist/collection/components/searchbar/searchbar.md.css +56 -18
- package/dist/collection/components/segment/segment.ionic.css +115 -0
- package/dist/collection/components/segment/segment.ios.css +45 -2
- package/dist/collection/components/segment/segment.js +94 -126
- package/dist/collection/components/segment/segment.md.css +45 -2
- package/dist/collection/components/segment-button/segment-button.ionic.css +352 -0
- package/dist/collection/components/segment-button/segment-button.ios.css +146 -105
- package/dist/collection/components/segment-button/segment-button.js +46 -49
- package/dist/collection/components/segment-button/segment-button.md.css +148 -107
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.ios.css +6 -0
- package/dist/collection/components/segment-view/segment-view.js +27 -28
- package/dist/collection/components/segment-view/segment-view.md.css +6 -0
- package/dist/collection/components/select/select.ionic.css +809 -0
- package/dist/collection/components/select/select.ios.css +351 -206
- package/dist/collection/components/select/select.js +431 -431
- package/dist/collection/components/select/select.md.css +383 -230
- package/dist/collection/components/select-modal/select-modal.ionic.css +257 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +293 -45
- package/dist/collection/components/select-modal/select-modal.js +81 -37
- package/dist/collection/components/select-modal/select-modal.md.css +273 -43
- package/dist/collection/components/select-modal/test/fixtures.js +1 -8
- package/dist/collection/components/select-option/select-option.js +15 -48
- package/dist/collection/components/select-popover/select-popover.ionic.css +255 -0
- package/dist/collection/components/select-popover/select-popover.ios.css +188 -124
- package/dist/collection/components/select-popover/select-popover.js +37 -44
- package/dist/collection/components/select-popover/select-popover.md.css +228 -47
- package/dist/collection/components/select-popover/test/fixtures.js +1 -8
- package/dist/collection/components/skeleton-text/skeleton-text.css +6 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +15 -15
- package/dist/collection/components/spinner/{spinner.css → spinner.ionic.css} +78 -10
- package/dist/collection/components/spinner/spinner.js +55 -26
- package/dist/collection/components/spinner/spinner.native.css +199 -0
- package/dist/collection/components/split-pane/split-pane.ios.css +20 -2
- package/dist/collection/components/split-pane/split-pane.js +28 -33
- package/dist/collection/components/split-pane/split-pane.md.css +20 -2
- package/dist/collection/components/tab/tab.js +10 -17
- package/dist/collection/components/tab-bar/tab-bar.ionic.css +249 -0
- package/dist/collection/components/tab-bar/tab-bar.ios.css +86 -43
- package/dist/collection/components/tab-bar/tab-bar.js +190 -44
- package/dist/collection/components/tab-bar/tab-bar.md.css +86 -43
- package/dist/collection/components/tab-button/tab-button.ionic.css +373 -0
- package/dist/collection/components/tab-button/tab-button.ios.css +171 -95
- package/dist/collection/components/tab-button/tab-button.js +74 -68
- package/dist/collection/components/tab-button/tab-button.md.css +137 -93
- package/dist/collection/components/tabs/tabs.css +7 -1
- package/dist/collection/components/tabs/tabs.js +23 -33
- package/dist/collection/components/text/text.css +6 -0
- package/dist/collection/components/text/text.js +7 -12
- package/dist/collection/components/textarea/textarea.ionic.css +898 -0
- package/dist/collection/components/textarea/textarea.ios.css +329 -221
- package/dist/collection/components/textarea/textarea.js +334 -302
- package/dist/collection/components/textarea/textarea.md.css +358 -231
- package/dist/collection/components/thumbnail/thumbnail.css +6 -0
- package/dist/collection/components/thumbnail/thumbnail.js +9 -2
- package/dist/collection/components/title/title.ionic.css +127 -0
- package/dist/collection/components/title/title.ios.css +32 -4
- package/dist/collection/components/title/title.js +13 -23
- package/dist/collection/components/title/title.md.css +39 -4
- package/dist/collection/components/toast/animations/utils.js +1 -1
- package/dist/collection/components/toast/toast.ionic.css +394 -0
- package/dist/collection/components/toast/toast.ios.css +84 -45
- package/dist/collection/components/toast/toast.js +178 -232
- package/dist/collection/components/toast/toast.md.css +84 -45
- package/dist/collection/components/toggle/toggle.ionic.css +512 -0
- package/dist/collection/components/toggle/toggle.ios.css +247 -127
- package/dist/collection/components/toggle/toggle.js +164 -175
- package/dist/collection/components/toggle/toggle.md.css +245 -127
- package/dist/collection/components/toolbar/test/image.svg +1 -0
- package/dist/collection/components/toolbar/toolbar.ionic.css +249 -0
- package/dist/collection/components/toolbar/toolbar.ios.css +90 -47
- package/dist/collection/components/toolbar/toolbar.js +222 -25
- package/dist/collection/components/toolbar/toolbar.md.css +90 -47
- package/dist/collection/global/config.js +6 -4
- package/dist/collection/global/ionic-global.js +242 -20
- 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/css-value-validation.js +39 -0
- package/dist/collection/utils/focus-controller/index.js +1 -1
- package/dist/collection/utils/focus-trap.js +16 -5
- package/dist/collection/utils/focus-visible.js +22 -0
- package/dist/collection/utils/forms/clear-button-press-controller.js +40 -0
- package/dist/collection/utils/forms/index.js +1 -1
- package/dist/collection/utils/forms/validity.js +31 -0
- package/dist/collection/utils/framework-delegate.js +9 -5
- package/dist/collection/utils/gesture/gesture-controller.js +8 -15
- package/dist/collection/utils/gesture/index.js +2 -10
- package/dist/collection/utils/hardware-back-button.js +18 -3
- package/dist/collection/utils/helpers.js +72 -5
- 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 +8 -6
- package/dist/collection/utils/keyboard/keyboard.js +1 -1
- package/dist/collection/utils/logging/index.js +4 -23
- package/dist/collection/utils/media.js +1 -0
- package/dist/collection/utils/menu-controller/animations/overlay.js +3 -3
- package/dist/collection/utils/menu-controller/animations/push.js +2 -1
- package/dist/collection/utils/menu-controller/animations/reveal.js +2 -1
- 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/overlay-control-label.js +13 -11
- package/dist/collection/utils/overlays.js +312 -45
- package/dist/collection/utils/platform.js +5 -4
- package/dist/collection/utils/rtl/dir.js +3 -2
- package/dist/collection/utils/sanitization/index.js +2 -2
- package/dist/collection/utils/scroll-hide-controller.js +178 -0
- package/dist/collection/utils/select-option-render.js +2 -1
- 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 +35 -11
- package/dist/collection/utils/test/playwright/generator.js +51 -25
- package/dist/collection/utils/test/playwright/page/event-spy.js +12 -11
- package/dist/collection/utils/test/playwright/page/utils/goto.js +15 -5
- package/dist/collection/utils/test/playwright/page/utils/set-content.js +27 -4
- 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 +26 -7
- package/dist/collection/utils/transition/ios.transition.js +14 -9
- package/dist/collection/utils/transition/md.transition.js +4 -3
- package/dist/docs.json +10054 -537
- package/dist/esm/{animation-CGFdmGk9.js → animation-BsVixxLP.js} +5 -5
- package/dist/esm/{app-globals-CYmMeGdU.js → app-globals-rPvWQFXp.js} +1 -1
- package/dist/esm/{button-active-BDOsVAiZ.js → button-active-BS8YgJRD.js} +3 -3
- package/dist/esm/{capacitor-CFERIeaU.js → capacitor-BnXrCBvt.js} +1 -1
- package/dist/esm/clear-button-press-controller-Ci6Q_x5-.js +43 -0
- package/dist/esm/{config-DWCzVL3Y.js → config-BwKpO3Is.js} +4 -5
- package/dist/esm/{dir-Dojwmvde.js → dir-o8OKV5aD.js} +3 -2
- package/dist/esm/{focus-visible-BmVRXR1y.js → focus-visible-vXpMhGrs.js} +23 -1
- package/dist/esm/{format-Dcwga61t.js → format-2WlZcMvG.js} +31 -41
- package/dist/esm/{framework-delegate-BHTU2Ip9.js → framework-delegate-P5K_3uYw.js} +10 -6
- package/dist/esm/{gesture-controller-TXPDHL13.js → gesture-controller-BTEOs1at.js} +8 -15
- package/dist/esm/{haptic-Cq4UAeka.js → haptic-ByW74Ow9.js} +4 -3
- package/dist/esm/{helpers-CAGf8Wgp.js → helpers-ChPZH7zh.js} +74 -8
- package/dist/esm/{index-DcPaH5uL.js → index-Bck1OwMs.js} +3 -9
- package/dist/esm/{index-ChhhtsGZ.js → index-C0EQceqV.js} +66 -34
- package/dist/esm/{index-Clc-28O1.js → index-C7EAbm0C.js} +5 -4
- package/dist/esm/{index-CqneaaGd.js → index-C7F1yJyV.js} +13 -12
- package/dist/esm/{index-WlteAIqz.js → index-CXSPjEca.js} +5 -5
- package/dist/esm/{index-CKM1DdGm.js → index-Mq5pCWmZ.js} +3 -3
- package/dist/esm/{index-BvabGprD.js → index-PnwG0glX.js} +2 -1
- package/dist/esm/{index-T0JxBI8V.js → index-niemeDYi.js} +2 -2
- package/dist/esm/index.js +17 -18
- package/dist/esm/{input-shims-B8sfni1e.js → input-shims-CM5m0K8T.js} +15 -12
- package/dist/esm/input.utils-DhJNJPiU.js +147 -0
- package/dist/esm/ion-accordion_2.entry.js +376 -376
- package/dist/esm/ion-action-sheet.entry.js +87 -179
- package/dist/esm/ion-alert.entry.js +126 -251
- package/dist/esm/ion-app_8.entry.js +607 -460
- package/dist/esm/ion-avatar_3.entry.js +125 -19
- package/dist/esm/ion-back-button.entry.js +49 -65
- package/dist/esm/ion-backdrop.entry.js +22 -23
- package/dist/esm/ion-breadcrumb_2.entry.js +157 -210
- package/dist/esm/ion-button_2.entry.js +118 -153
- package/dist/esm/ion-card_5.entry.js +80 -110
- package/dist/esm/ion-checkbox.entry.js +134 -160
- package/dist/esm/ion-chip.entry.js +56 -21
- package/dist/esm/ion-col_3.entry.js +61 -186
- package/dist/esm/ion-datetime-button.entry.js +248 -256
- package/dist/esm/ion-datetime_3.entry.js +3206 -0
- package/dist/esm/ion-divider.entry.js +49 -0
- package/dist/esm/ion-fab_3.entry.js +109 -155
- package/dist/esm/ion-gallery-item.entry.js +57 -0
- package/dist/esm/ion-gallery.entry.js +606 -0
- package/dist/esm/ion-img.entry.js +17 -35
- package/dist/esm/ion-infinite-scroll_2.entry.js +157 -109
- package/dist/esm/ion-input-otp.entry.js +437 -435
- package/dist/esm/ion-input-password-toggle.entry.js +54 -40
- package/dist/esm/ion-input.entry.js +303 -349
- package/dist/esm/ion-item-option_3.entry.js +512 -137
- package/dist/esm/ion-item_8.entry.js +186 -218
- package/dist/esm/ion-loading.entry.js +69 -152
- package/dist/esm/ion-menu_3.entry.js +136 -182
- package/dist/esm/ion-modal.entry.js +459 -529
- package/dist/esm/ion-nav_2.entry.js +164 -104
- package/dist/esm/ion-picker-column-option.entry.js +40 -40
- package/dist/esm/ion-picker-column.entry.js +410 -422
- package/dist/esm/ion-picker.entry.js +401 -406
- package/dist/esm/ion-popover.entry.js +212 -324
- package/dist/esm/ion-progress-bar.entry.js +48 -36
- package/dist/esm/ion-radio_2.entry.js +162 -217
- package/dist/esm/ion-range.entry.js +251 -309
- package/dist/esm/ion-refresher_2.entry.js +127 -175
- package/dist/esm/ion-reorder_2.entry.js +47 -60
- package/dist/esm/ion-ripple-effect.entry.js +26 -18
- package/dist/esm/ion-route_4.entry.js +76 -179
- package/dist/esm/ion-searchbar.entry.js +305 -308
- package/dist/esm/ion-segment-content.entry.js +2 -2
- package/dist/esm/ion-segment-view.entry.js +27 -28
- package/dist/esm/ion-segment_2.entry.js +141 -177
- package/dist/esm/ion-select-modal.entry.js +71 -50
- package/dist/esm/ion-select_3.entry.js +416 -507
- package/dist/esm/ion-spinner.entry.js +36 -28
- package/dist/esm/ion-split-pane.entry.js +25 -34
- package/dist/esm/ion-tab-bar_2.entry.js +179 -116
- package/dist/esm/ion-tab_2.entry.js +30 -55
- package/dist/esm/ion-text.entry.js +7 -13
- package/dist/esm/ion-textarea.entry.js +309 -302
- package/dist/esm/ion-toast.entry.js +149 -244
- package/dist/esm/ion-toggle.entry.js +172 -184
- package/dist/esm/ionic-global-BJDU78B6.js +508 -0
- package/dist/esm/ionic.js +5 -5
- package/dist/esm/{ios.transition-DXRCmcbC.js → ios.transition-6oGu53GR.js} +21 -15
- package/dist/esm/{item-multiple-inputs-rU8VaNNg.js → item-multiple-inputs-C6onMFOo.js} +1 -1
- package/dist/esm/{keyboard-Cj8mLJeq.js → keyboard-XukEYIFf.js} +5 -4
- package/dist/esm/{keyboard-DAF8GNJ9.js → keyboard-x-uHYVoq.js} +3 -3
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-BMngO4i_.js → md.transition-Dy5HxiSE.js} +11 -9
- package/dist/esm/notch-controller-BYB7mUMg.js +153 -0
- package/dist/esm/{overlay-control-label-BSQPZ79H.js → overlay-control-label-CODBQrPj.js} +13 -11
- package/dist/esm/{overlays-CPmIs9Ls.js → overlays-C3YvaMgX.js} +333 -57
- package/dist/esm/scroll-hide-controller-B3MRYNXh.js +342 -0
- package/dist/esm/{select-option-render-C4m76VGH.js → select-option-render-BlKZ2H83.js} +4 -3
- package/dist/esm/{status-tap-CHB7KwIb.js → status-tap-DK-ylvU7.js} +5 -4
- package/dist/esm/{swipe-back-C9HW1bug.js → swipe-back-DFICtpMC.js} +6 -5
- package/dist/esm/theme-DaJxRxSQ.js +67 -0
- package/dist/esm/validity-BjW8SOqw.js +48 -0
- package/dist/html.html-data.json +2690 -123
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p--sroV-k-.js +4 -0
- package/dist/ionic/p-0115c2fa.entry.js +4 -0
- package/dist/ionic/p-0ac15b5f.entry.js +4 -0
- package/dist/ionic/p-0b2c58e0.entry.js +4 -0
- package/dist/ionic/p-0bfb8d9e.entry.js +4 -0
- package/dist/ionic/p-1147fa06.entry.js +4 -0
- package/dist/ionic/p-1e45586e.entry.js +4 -0
- package/dist/ionic/p-1febf200.entry.js +4 -0
- package/dist/ionic/p-208cecae.entry.js +4 -0
- package/dist/ionic/p-29f69d29.entry.js +4 -0
- package/dist/ionic/p-2b5e04c5.entry.js +4 -0
- package/dist/ionic/p-311ef139.entry.js +4 -0
- package/dist/ionic/p-3eff3411.entry.js +4 -0
- package/dist/ionic/p-3f17704b.entry.js +4 -0
- package/dist/ionic/p-46e754ae.entry.js +4 -0
- package/dist/ionic/p-4901a10b.entry.js +4 -0
- package/dist/ionic/p-4c8178d8.entry.js +4 -0
- package/dist/ionic/p-5196bee9.entry.js +4 -0
- package/dist/ionic/p-5386b094.entry.js +4 -0
- package/dist/ionic/p-54579b68.entry.js +4 -0
- package/dist/ionic/p-54baa1af.entry.js +4 -0
- package/dist/ionic/p-59e59209.entry.js +4 -0
- package/dist/ionic/p-5ad0c670.entry.js +4 -0
- package/dist/ionic/p-62602fbd.entry.js +4 -0
- package/dist/ionic/p-6b86cb62.entry.js +4 -0
- package/dist/ionic/p-7134537b.entry.js +4 -0
- package/dist/ionic/p-72eacca0.entry.js +4 -0
- package/dist/ionic/p-7ae06f6f.entry.js +4 -0
- package/dist/ionic/p-7bde9ee1.entry.js +4 -0
- package/dist/ionic/p-7f59020c.entry.js +4 -0
- package/dist/ionic/p-7k7Q1A38.js +4 -0
- package/dist/ionic/p-87ab986c.entry.js +4 -0
- package/dist/ionic/p-9dff6288.entry.js +4 -0
- package/dist/ionic/p-9e09cb80.entry.js +4 -0
- package/dist/ionic/p-BFhQ1N-L.js +4 -0
- package/dist/ionic/p-BG7tpRhR.js +4 -0
- package/dist/ionic/p-BITyMTKr.js +4 -0
- package/dist/ionic/p-BRPONI7N.js +4 -0
- package/dist/ionic/p-BTEOs1at.js +4 -0
- package/dist/ionic/p-BVdSuKmt.js +4 -0
- package/dist/ionic/p-BYRVyMu9.js +4 -0
- package/dist/ionic/p-BjW8SOqw.js +4 -0
- package/dist/ionic/p-Bpx1lBiP.js +4 -0
- package/dist/ionic/p-BwKpO3Is.js +4 -0
- package/dist/ionic/p-C-BLhfUi.js +4 -0
- package/dist/ionic/p-C-aO35cw.js +4 -0
- package/dist/ionic/p-C0EQceqV.js +5 -0
- package/dist/ionic/p-CDrQfM-I.js +4 -0
- package/dist/ionic/p-CODBQrPj.js +4 -0
- package/dist/ionic/p-CTSaffvS.js +4 -0
- package/dist/ionic/p-CaM5HwzM.js +4 -0
- package/dist/ionic/p-CgaW5Zy8.js +4 -0
- package/dist/ionic/p-Cipl19Qe.js +4 -0
- package/dist/ionic/p-CnBfCmL2.js +4 -0
- package/dist/ionic/p-D-Xit5Ye.js +4 -0
- package/dist/ionic/p-D7LIC84Z.js +4 -0
- package/dist/ionic/p-D844sgjq.js +4 -0
- package/dist/ionic/p-DWDKFjrH.js +4 -0
- package/dist/ionic/p-DaJxRxSQ.js +4 -0
- package/dist/ionic/p-DhyWlGap.js +4 -0
- package/dist/ionic/p-DiyY-i-5.js +4 -0
- package/dist/ionic/p-DrxPmT9E.js +4 -0
- package/dist/ionic/p-PnwG0glX.js +4 -0
- package/dist/ionic/p-YIsE5bNG.js +4 -0
- package/dist/ionic/p-a320cdb2.entry.js +4 -0
- package/dist/ionic/p-a37444b3.entry.js +4 -0
- package/dist/ionic/p-a4bed36b.entry.js +4 -0
- package/dist/ionic/p-a7914fe5.entry.js +4 -0
- package/dist/ionic/p-aa298c58.entry.js +4 -0
- package/dist/ionic/p-ace3062d.entry.js +4 -0
- package/dist/ionic/p-b70775b0.entry.js +4 -0
- package/dist/ionic/p-b7c75507.entry.js +4 -0
- package/dist/ionic/p-b920f149.entry.js +4 -0
- package/dist/ionic/p-c39025c0.entry.js +4 -0
- package/dist/ionic/p-c9cda5ce.entry.js +4 -0
- package/dist/ionic/p-cc314123.entry.js +4 -0
- package/dist/ionic/p-d1f42864.entry.js +4 -0
- package/dist/ionic/p-d4506138.entry.js +4 -0
- package/dist/ionic/p-dbd06d8d.entry.js +4 -0
- package/dist/ionic/p-dda49380.entry.js +4 -0
- package/dist/ionic/p-de4e8418.entry.js +4 -0
- package/dist/ionic/p-e95618c4.entry.js +4 -0
- package/dist/ionic/p-f89fcf62.entry.js +4 -0
- package/dist/ionic/p-fcce2dda.entry.js +4 -0
- package/dist/ionic/p-fd2a869f.entry.js +4 -0
- package/dist/ionic/p-fd95a423.entry.js +4 -0
- package/dist/ionic/p-fe14205b.entry.js +4 -0
- package/dist/ionic/p-i6iV8hMy.js +4 -0
- package/dist/ionic/p-nUlpIttM.js +4 -0
- package/dist/ionic/p-o8OKV5aD.js +4 -0
- package/dist/ionic/p-vXpMhGrs.js +4 -0
- package/dist/ionic/p-zRFin7iz.js +4 -0
- package/dist/ionic/p-zn4qAQ_d.js +4 -0
- package/dist/types/components/accordion/accordion.d.ts +12 -3
- package/dist/types/components/accordion-group/accordion-group.d.ts +12 -1
- package/dist/types/components/action-sheet/action-sheet-interface.d.ts +3 -7
- package/dist/types/components/action-sheet/action-sheet.d.ts +3 -2
- package/dist/types/components/alert/alert-interface.d.ts +3 -7
- package/dist/types/components/alert/alert.d.ts +3 -2
- package/dist/types/components/app/app.d.ts +4 -5
- package/dist/types/components/avatar/avatar.d.ts +32 -0
- package/dist/types/components/back-button/back-button.d.ts +8 -1
- package/dist/types/components/backdrop/backdrop.d.ts +4 -0
- package/dist/types/components/badge/badge.d.ts +34 -1
- package/dist/types/components/breadcrumb/breadcrumb.d.ts +14 -1
- package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist/types/components/button/button.d.ts +23 -8
- package/dist/types/components/buttons/buttons.d.ts +5 -1
- package/dist/types/components/card/card.d.ts +8 -1
- package/dist/types/components/card-content/card-content.d.ts +2 -1
- package/dist/types/components/card-header/card-header.d.ts +3 -2
- package/dist/types/components/card-subtitle/card-subtitle.d.ts +2 -1
- package/dist/types/components/card-title/card-title.d.ts +2 -1
- package/dist/types/components/checkbox/checkbox.d.ts +26 -5
- package/dist/types/components/chip/chip.d.ts +26 -1
- package/dist/types/components/col/col.d.ts +52 -5
- package/dist/types/components/content/content.d.ts +3 -0
- package/dist/types/components/datetime/datetime.d.ts +26 -1
- package/dist/types/components/datetime/utils/data.d.ts +5 -5
- package/dist/types/components/datetime-button/datetime-button.d.ts +2 -1
- package/dist/types/components/divider/divider.d.ts +20 -0
- package/dist/types/components/fab/fab.d.ts +4 -0
- package/dist/types/components/fab-button/fab-button.d.ts +11 -3
- package/dist/types/components/fab-list/fab-list.d.ts +4 -0
- package/dist/types/components/footer/footer-interface.d.ts +1 -0
- package/dist/types/components/footer/footer.d.ts +20 -3
- package/dist/types/components/gallery/gallery-constants.d.ts +9 -0
- package/dist/types/components/gallery/gallery-interface.d.ts +10 -0
- package/dist/types/components/gallery/gallery.d.ts +218 -0
- package/dist/types/components/gallery/test/utils.d.ts +3 -0
- package/dist/types/components/gallery-item/gallery-item.d.ts +33 -0
- package/dist/types/components/grid/grid.d.ts +4 -0
- package/dist/types/components/header/header-interface.d.ts +1 -0
- package/dist/types/components/header/header.d.ts +26 -3
- package/dist/types/components/header/header.utils.d.ts +4 -5
- package/dist/types/components/img/img.d.ts +2 -1
- package/dist/types/components/infinite-scroll/infinite-scroll.d.ts +21 -0
- package/dist/types/components/infinite-scroll-content/infinite-scroll-content.d.ts +4 -0
- package/dist/types/components/input/input.d.ts +40 -17
- package/dist/types/components/input-otp/input-otp.d.ts +37 -0
- package/dist/types/components/input-password-toggle/input-password-toggle.d.ts +14 -0
- package/dist/types/components/item/item.d.ts +17 -4
- package/dist/types/components/item-divider/item-divider.d.ts +2 -1
- package/dist/types/components/item-group/item-group.d.ts +4 -0
- package/dist/types/components/item-option/item-option.d.ts +18 -1
- package/dist/types/components/item-options/item-options.d.ts +4 -0
- package/dist/types/components/item-sliding/item-sliding.d.ts +47 -1
- package/dist/types/components/item-sliding/test/test.utils.d.ts +13 -0
- package/dist/types/components/label/label.d.ts +2 -1
- package/dist/types/components/list/list.d.ts +15 -1
- package/dist/types/components/list-header/list-header.d.ts +2 -1
- package/dist/types/components/loading/loading-interface.d.ts +2 -7
- package/dist/types/components/loading/loading.d.ts +3 -2
- package/dist/types/components/menu/menu.d.ts +3 -0
- package/dist/types/components/menu-button/menu-button.d.ts +8 -1
- package/dist/types/components/menu-toggle/menu-toggle.d.ts +3 -0
- package/dist/types/components/modal/animations/ionic.enter.d.ts +6 -0
- package/dist/types/components/modal/animations/ionic.leave.d.ts +6 -0
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +4 -16
- package/dist/types/components/modal/modal.d.ts +15 -12
- package/dist/types/components/nav/nav-interface.d.ts +10 -1
- package/dist/types/components/nav/nav.d.ts +27 -3
- package/dist/types/components/nav-link/nav-link.d.ts +4 -0
- package/dist/types/components/note/note.d.ts +2 -1
- package/dist/types/components/picker/picker.d.ts +2 -1
- package/dist/types/components/picker-column/picker-column.d.ts +2 -1
- package/dist/types/components/picker-column-option/picker-column-option.d.ts +4 -0
- 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 +159 -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/popover/popover-interface.d.ts +3 -6
- package/dist/types/components/popover/popover.d.ts +6 -5
- package/dist/types/components/progress-bar/progress-bar.d.ts +10 -1
- package/dist/types/components/radio/radio.d.ts +2 -1
- package/dist/types/components/radio-group/radio-group.d.ts +12 -0
- package/dist/types/components/range/range.d.ts +2 -1
- package/dist/types/components/refresher/refresher.d.ts +2 -1
- package/dist/types/components/refresher-content/refresher-content.d.ts +10 -0
- package/dist/types/components/reorder/reorder.d.ts +9 -0
- package/dist/types/components/reorder-group/reorder-group.d.ts +4 -0
- package/dist/types/components/ripple-effect/ripple-effect.d.ts +4 -0
- package/dist/types/components/route/route.d.ts +5 -1
- package/dist/types/components/router/router.d.ts +4 -0
- package/dist/types/components/router-link/router-link.d.ts +4 -0
- package/dist/types/components/router-outlet/router-outlet.d.ts +4 -8
- package/dist/types/components/row/row.d.ts +4 -0
- package/dist/types/components/searchbar/searchbar.d.ts +57 -11
- package/dist/types/components/segment/segment.d.ts +2 -1
- package/dist/types/components/segment-button/segment-button.d.ts +2 -1
- package/dist/types/components/select/select.d.ts +55 -26
- package/dist/types/components/select-modal/select-modal.d.ts +13 -0
- package/dist/types/components/select-option/select-option.d.ts +7 -4
- package/dist/types/components/select-popover/select-popover.d.ts +3 -0
- package/dist/types/components/skeleton-text/skeleton-text.d.ts +4 -0
- package/dist/types/components/spinner/spinner.d.ts +15 -0
- package/dist/types/components/split-pane/split-pane.d.ts +4 -0
- package/dist/types/components/tab/tab.d.ts +4 -0
- package/dist/types/components/tab-bar/tab-bar-interface.d.ts +1 -0
- package/dist/types/components/tab-bar/tab-bar.d.ts +41 -3
- package/dist/types/components/tab-button/tab-button.d.ts +12 -1
- package/dist/types/components/tabs/tabs.d.ts +3 -0
- package/dist/types/components/text/text.d.ts +2 -1
- package/dist/types/components/textarea/textarea.d.ts +58 -16
- package/dist/types/components/thumbnail/thumbnail.d.ts +4 -0
- package/dist/types/components/title/title.d.ts +4 -0
- package/dist/types/components/toast/animations/utils.d.ts +2 -2
- package/dist/types/components/toast/toast-interface.d.ts +3 -7
- package/dist/types/components/toast/toast.d.ts +19 -2
- package/dist/types/components/toggle/toggle.d.ts +18 -1
- package/dist/types/components/toolbar/toolbar.d.ts +43 -3
- package/dist/types/components.d.ts +2171 -263
- package/dist/types/global/ionic-global.d.ts +28 -2
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +4 -0
- package/dist/types/utils/config.d.ts +133 -3
- package/dist/types/utils/css-value-validation.d.ts +21 -0
- package/dist/types/utils/focus-trap.d.ts +1 -1
- package/dist/types/utils/focus-visible.d.ts +13 -0
- package/dist/types/utils/forms/clear-button-press-controller.d.ts +20 -0
- package/dist/types/utils/forms/index.d.ts +1 -1
- package/dist/types/utils/forms/validity.d.ts +7 -0
- package/dist/types/utils/helpers.d.ts +22 -0
- package/dist/types/utils/logging/index.d.ts +1 -2
- package/dist/types/utils/overlay-control-label.d.ts +11 -9
- package/dist/types/utils/overlays-interface.d.ts +31 -1
- package/dist/types/utils/overlays.d.ts +10 -12
- package/dist/types/utils/scroll-hide-controller.d.ts +56 -0
- package/dist/types/utils/test/playwright/drag-element.d.ts +16 -3
- package/dist/types/utils/test/playwright/generator.d.ts +31 -2
- package/dist/types/utils/test/playwright/playwright-page.d.ts +1 -1
- package/dist/types/utils/test/playwright/testExpect.d.ts +1 -1
- package/dist/types/utils/theme.d.ts +9 -0
- package/hydrate/index.js +12008 -10485
- package/hydrate/index.mjs +12008 -10485
- package/package.json +16 -56
- package/components/p--m5cCjbK.js +0 -4
- package/components/p-1jI5oW-W.js +0 -4
- package/components/p-8FN7p701.js +0 -4
- package/components/p-B4uHHhPK.js +0 -4
- package/components/p-BMPN55of.js +0 -4
- package/components/p-BNJOu1Q2.js +0 -4
- package/components/p-BOvLNVKq.js +0 -4
- package/components/p-BSQPZ79H.js +0 -4
- package/components/p-BeamQXHF.js +0 -4
- package/components/p-BhamHSw3.js +0 -4
- package/components/p-Bjig0DJK.js +0 -4
- package/components/p-BjluhQMI.js +0 -4
- package/components/p-BlsIikdZ.js +0 -4
- package/components/p-BmVRXR1y.js +0 -4
- package/components/p-BqPNzJf6.js +0 -4
- package/components/p-BrD9Xv62.js +0 -4
- package/components/p-BvJqoZ5R.js +0 -4
- package/components/p-Bz6z3Asd.js +0 -4
- package/components/p-C5KYjZWD.js +0 -4
- package/components/p-C6HnVvHO.js +0 -4
- package/components/p-C7jvh5Wy.js +0 -4
- package/components/p-C9BGR5fy.js +0 -4
- package/components/p-CB-y1CdP.js +0 -4
- package/components/p-CEW4RXZO.js +0 -4
- package/components/p-CHH3loEE.js +0 -4
- package/components/p-CIGNaXM1.js +0 -4
- package/components/p-CJKUWjmg.js +0 -4
- package/components/p-C_phlPMC.js +0 -4
- package/components/p-CbhUdtjf.js +0 -4
- package/components/p-CejmQs3h.js +0 -4
- package/components/p-CtZqa4HM.js +0 -4
- package/components/p-D7-vHX0A.js +0 -4
- package/components/p-D9qIVSWm.js +0 -4
- package/components/p-DD5fQ4EQ.js +0 -4
- package/components/p-DE-3iMNW.js +0 -4
- package/components/p-DFvZn99E.js +0 -4
- package/components/p-DHFt2rdc.js +0 -4
- package/components/p-DJztqcrH.js +0 -4
- package/components/p-DM-PrAoh.js +0 -4
- package/components/p-DSzSbVP2.js +0 -4
- package/components/p-DV85C0e0.js +0 -4
- package/components/p-DWCzVL3Y.js +0 -4
- package/components/p-D_RCyzwu.js +0 -4
- package/components/p-D_tD8r3L.js +0 -4
- package/components/p-DaA_8eqt.js +0 -4
- package/components/p-DjCtLZbF.js +0 -4
- package/components/p-Dmd2xqCe.js +0 -4
- package/components/p-Dojwmvde.js +0 -4
- package/components/p-G0TxqHfe.js +0 -4
- package/components/p-G6JR-cr_.js +0 -4
- package/components/p-GG5GhznE.js +0 -4
- package/components/p-LpMHEu3v.js +0 -4
- package/components/p-TXPDHL13.js +0 -4
- package/components/p-UIBJkZf8.js +0 -4
- package/components/p-ZjP4CjeZ.js +0 -4
- package/components/p-_IKFD3ID.js +0 -4
- package/components/p-byZM6qHV.js +0 -4
- package/components/p-dKq2jIum.js +0 -4
- package/components/p-fruGqVHh.js +0 -4
- package/components/p-iYhH60Tc.js +0 -4
- package/components/p-ia3IDdJS.js +0 -4
- package/dist/cjs/hardware-back-button-fqpYh-kd.js +0 -121
- package/dist/cjs/index-DkNv4J_i.js +0 -10
- package/dist/cjs/input.utils-BZdMWVrt.js +0 -35
- package/dist/cjs/ion-datetime.cjs.entry.js +0 -2770
- package/dist/cjs/ionic-global-k6hOWWpn.js +0 -156
- package/dist/cjs/keyboard-controller-PtZoN2GS.js +0 -167
- package/dist/cjs/slot-mutation-controller-DPHmqXdV.js +0 -397
- package/dist/cjs/validity-BpS37YFM.js +0 -19
- package/dist/collection/utils/forms/start-container-controller.js +0 -132
- package/dist/esm/hardware-back-button-gLJHMX_F.js +0 -115
- package/dist/esm/index-ZjP4CjeZ.js +0 -7
- package/dist/esm/input.utils-B1ValN_N.js +0 -33
- package/dist/esm/ion-datetime.entry.js +0 -2768
- package/dist/esm/ionic-global-BVB7BrLT.js +0 -151
- package/dist/esm/keyboard-controller-DEwoa1ev.js +0 -165
- package/dist/esm/slot-mutation-controller-DiE_C9un.js +0 -393
- package/dist/esm/theme-byZM6qHV.js +0 -48
- package/dist/esm/validity-DJztqcrH.js +0 -17
- package/dist/ionic/p-06ec7136.entry.js +0 -4
- package/dist/ionic/p-09fe4fa3.entry.js +0 -4
- package/dist/ionic/p-10d45a07.entry.js +0 -4
- package/dist/ionic/p-208c8a07.entry.js +0 -4
- package/dist/ionic/p-212474fa.entry.js +0 -4
- package/dist/ionic/p-2eef1396.entry.js +0 -4
- package/dist/ionic/p-347e005d.entry.js +0 -4
- package/dist/ionic/p-3a0b3f1d.entry.js +0 -4
- package/dist/ionic/p-3b071259.entry.js +0 -4
- package/dist/ionic/p-40424a88.entry.js +0 -4
- package/dist/ionic/p-4204184c.entry.js +0 -4
- package/dist/ionic/p-47464391.entry.js +0 -4
- package/dist/ionic/p-4eOQC00Z.js +0 -4
- package/dist/ionic/p-4f9c9126.entry.js +0 -4
- package/dist/ionic/p-5JsKPLJD.js +0 -4
- package/dist/ionic/p-5bc485c6.entry.js +0 -4
- package/dist/ionic/p-603a61e6.entry.js +0 -4
- package/dist/ionic/p-60576951.entry.js +0 -4
- package/dist/ionic/p-67a81d33.entry.js +0 -4
- package/dist/ionic/p-6affb775.entry.js +0 -4
- package/dist/ionic/p-6f120c25.entry.js +0 -4
- package/dist/ionic/p-71c82b60.entry.js +0 -4
- package/dist/ionic/p-79325ffe.entry.js +0 -4
- package/dist/ionic/p-7CBuOvEo.js +0 -4
- package/dist/ionic/p-7e4d51fa.entry.js +0 -4
- package/dist/ionic/p-7f5d4664.entry.js +0 -4
- package/dist/ionic/p-80ee82fc.entry.js +0 -4
- package/dist/ionic/p-84af7dbc.entry.js +0 -4
- package/dist/ionic/p-89ca830a.entry.js +0 -4
- package/dist/ionic/p-93b8ec8f.entry.js +0 -4
- package/dist/ionic/p-946f65c2.entry.js +0 -4
- package/dist/ionic/p-9c4b39fb.entry.js +0 -4
- package/dist/ionic/p-B1NEZUzQ.js +0 -4
- package/dist/ionic/p-B1ck5iy-.js +0 -4
- package/dist/ionic/p-B4FrqdW0.js +0 -4
- package/dist/ionic/p-BB0LlG4y.js +0 -4
- package/dist/ionic/p-BMPN55of.js +0 -4
- package/dist/ionic/p-BSQPZ79H.js +0 -4
- package/dist/ionic/p-BYEAtHr-.js +0 -4
- package/dist/ionic/p-BhamHSw3.js +0 -4
- package/dist/ionic/p-BmVRXR1y.js +0 -4
- package/dist/ionic/p-BvabGprD.js +0 -4
- package/dist/ionic/p-C-94tAim.js +0 -4
- package/dist/ionic/p-C-eHZMYE.js +0 -4
- package/dist/ionic/p-CBR_W98Z.js +0 -4
- package/dist/ionic/p-CBWAXjA5.js +0 -4
- package/dist/ionic/p-CIGNaXM1.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-CzS1qWve.js +0 -4
- package/dist/ionic/p-D5t_-oMk.js +0 -4
- package/dist/ionic/p-D94_RztK.js +0 -4
- package/dist/ionic/p-DJztqcrH.js +0 -4
- package/dist/ionic/p-DWCzVL3Y.js +0 -4
- package/dist/ionic/p-DjjfauRM.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-Dojwmvde.js +0 -4
- package/dist/ionic/p-DplOqGUv.js +0 -4
- package/dist/ionic/p-Dst_XmZh.js +0 -4
- package/dist/ionic/p-T71k3C35.js +0 -4
- package/dist/ionic/p-TXPDHL13.js +0 -4
- package/dist/ionic/p-UIBJkZf8.js +0 -4
- package/dist/ionic/p-ZjP4CjeZ.js +0 -4
- package/dist/ionic/p-a438b193.entry.js +0 -4
- package/dist/ionic/p-babaaaa7.entry.js +0 -4
- package/dist/ionic/p-be08d500.entry.js +0 -4
- package/dist/ionic/p-be9a4f51.entry.js +0 -4
- package/dist/ionic/p-byZM6qHV.js +0 -4
- package/dist/ionic/p-c00d3092.entry.js +0 -4
- package/dist/ionic/p-c36dc8f5.entry.js +0 -4
- package/dist/ionic/p-c72a7e17.entry.js +0 -4
- package/dist/ionic/p-c8edd88c.entry.js +0 -4
- package/dist/ionic/p-ce0e380b.entry.js +0 -4
- package/dist/ionic/p-ce32912b.entry.js +0 -4
- package/dist/ionic/p-d07cf130.entry.js +0 -4
- package/dist/ionic/p-d27edeb3.entry.js +0 -4
- package/dist/ionic/p-d5d2c506.entry.js +0 -4
- package/dist/ionic/p-d5e31ca9.entry.js +0 -4
- package/dist/ionic/p-de91444f.entry.js +0 -4
- package/dist/ionic/p-ded69ceb.entry.js +0 -4
- package/dist/ionic/p-df72866d.entry.js +0 -4
- package/dist/ionic/p-e47e3151.entry.js +0 -4
- package/dist/ionic/p-e621e5e8.entry.js +0 -4
- package/dist/ionic/p-eea9cf93.entry.js +0 -4
- package/dist/ionic/p-f402f5a4.entry.js +0 -4
- package/dist/ionic/p-fe1bfbcf.entry.js +0 -4
- package/dist/ionic/p-ffb90460.entry.js +0 -4
- package/dist/types/utils/forms/start-container-controller.d.ts +0 -34
- /package/dist/collection/components/{input-password-toggle/input-password-toggle.css → refresher-content/refresher-content.css} +0 -0
|
@@ -3,29 +3,30 @@
|
|
|
3
3
|
*/
|
|
4
4
|
'use strict';
|
|
5
5
|
|
|
6
|
-
var index = require('./index-
|
|
7
|
-
var config = require('./config-
|
|
8
|
-
var
|
|
6
|
+
var index = require('./index-C1knGA9x.js');
|
|
7
|
+
var config = require('./config-DWdFbSNK.js');
|
|
8
|
+
var notchController = require('./notch-controller-0hkmmSGo.js');
|
|
9
9
|
var compareWithUtils = require('./compare-with-utils-DSicavqM.js');
|
|
10
|
-
var validity = require('./validity-
|
|
11
|
-
var helpers = require('./helpers-
|
|
12
|
-
var overlays = require('./overlays-
|
|
13
|
-
var dir = require('./dir-
|
|
14
|
-
var index$2 = require('./index-
|
|
15
|
-
var theme = require('./theme-
|
|
10
|
+
var validity = require('./validity-QmuwEptc.js');
|
|
11
|
+
var helpers = require('./helpers-Dhimwhpn.js');
|
|
12
|
+
var overlays = require('./overlays-Bxjqh2m3.js');
|
|
13
|
+
var dir = require('./dir-DD0jPVH3.js');
|
|
14
|
+
var index$2 = require('./index-YYUVCfP-.js');
|
|
15
|
+
var theme = require('./theme-IlOsGAz7.js');
|
|
16
16
|
var watchOptions = require('./watch-options-CviOsrTS.js');
|
|
17
|
-
var index$1 = require('./index-
|
|
18
|
-
var ionicGlobal = require('./ionic-global-
|
|
19
|
-
var overlayControlLabel = require('./overlay-control-label-
|
|
20
|
-
var selectOptionRender = require('./select-option-render-
|
|
21
|
-
require('./
|
|
22
|
-
require('./
|
|
23
|
-
require('./
|
|
24
|
-
require('./gesture-controller-BDUH7687.js');
|
|
17
|
+
var index$1 = require('./index-CxDnX7hd.js');
|
|
18
|
+
var ionicGlobal = require('./ionic-global-DYLhJaw7.js');
|
|
19
|
+
var overlayControlLabel = require('./overlay-control-label-DnRLQR1t.js');
|
|
20
|
+
var selectOptionRender = require('./select-option-render-BqJEK1N1.js');
|
|
21
|
+
require('./focus-visible-BIj-I3-C.js');
|
|
22
|
+
require('./framework-delegate-IvkF1VuM.js');
|
|
23
|
+
require('./gesture-controller-dtqlP_q4.js');
|
|
25
24
|
|
|
26
|
-
const selectIosCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--select-text-gap:12px;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-control{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:center;align-items:center;-ms-flex-pack:inherit;justify-content:inherit;min-width:0}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}:host(.skip-label-transition) .label-text-wrapper{-webkit-transition:none;transition:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-negative:100000;flex-shrink:100000;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-control,:host(.select-label-placement-floating) .select-control{-ms-flex-direction:column;flex-direction:column;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:0}:host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:var(--placeholder-opacity)}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.select-start,.select-end{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
|
|
25
|
+
const selectIonicCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--background:transparent;--border-style:solid;--highlight-color-focused:ion-color(primary, base);--highlight-color-valid:ion-color(success, base);--highlight-color-invalid:ion-color(danger, base);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;white-space:nowrap;cursor:pointer}:host(.ion-color){--highlight-color-focused:current-color(base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-appearance:none;-moz-appearance:none}.select-icon{-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-end:0;margin-inline-end:0}:host(.ion-color){--border-color:var(--ion-color-base)}:host(.select-fill-outline) .select-bottom{border-top:none}:host(.select-fill-outline) .label-text-wrapper{position:relative}:host(.select-fill-outline) .select-wrapper-inner{border-radius:var(--border-radius);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);background:var(--background)}:host(.select-fill-outline) .select-outline{right:0;left:0;top:0;bottom:0;border-radius:var(--border-radius);position:absolute;width:100%;height:100%;pointer-events:none;border:var(--border-width) var(--border-style) var(--border-color);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-focused.select-fill-outline){--border-color:var(--highlight-color)}:host(.ion-focused.select-fill-outline:not(.ion-invalid):not(.ion-valid)){--border-width:var(--token-border-size-050, var(--token-scale-050, 2px))}:host(.has-focus.select-fill-outline.ion-valid),:host(.select-fill-outline.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host{--background:var(--token-bg-surface-default, var(--token-primitives-base-white, #ffffff));--border-color:var(--token-primitives-neutral-500, #a2a2a2);--border-width:var(--token-border-size-025, var(--token-scale-025, 1px));--padding-start:var(--token-space-400, var(--token-scale-400, 16px));--padding-end:var(--token-space-400, var(--token-scale-400, 16px));--padding-top:var(--token-space-300, var(--token-scale-300, 12px));--padding-bottom:var(--token-space-300, var(--token-scale-300, 12px));--placeholder-color:var(--token-primitives-neutral-800, #626262);--placeholder-opacity:1;--highlight-color-focused:var(--token-border-focus-default, var(--token-primitives-blue-400, #b5c0f7));--highlight-color-valid:var(--token-semantics-success-900, var(--token-primitives-green-900, #126f23));--highlight-color-invalid:var(--token-semantics-danger-800, var(--token-primitives-red-800, #bf2222));--select-text-gap:var(--token-space-300, var(--token-scale-300, 12px));min-height:var(--token-scale-1100, 44px)}.select-bottom{padding-top:var(--token-space-100, var(--token-scale-100, 4px));font-size:var(--token-font-size-300, 0.75rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-500, var(--token-scale-500, 20px));text-decoration:none;text-transform:none}.select-bottom .helper-text{color:var(--token-primitives-neutral-800, #626262)}.select-bottom .error-text{color:var(--token-text-danger, var(--token-semantics-danger-900, var(--token-primitives-red-900, #991b1b)))}.select-text{min-width:var(--token-space-400, var(--token-scale-400, 16px));color:var(--token-text-subtlest, var(--token-primitives-neutral-800, #626262))}:host(.has-value) .select-text{color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424))}.label-text-wrapper{font-size:var(--token-font-size-300, 0.75rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-500, var(--token-scale-500, 20px));text-decoration:none;text-transform:none;max-width:var(--token-scale-5000, 200px);-webkit-transition:color var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1)), -webkit-transform var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));transition:color var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1)), -webkit-transform var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));transition:color var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1)), transform var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));transition:color var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1)), transform var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1)), -webkit-transform var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));color:var(--token-primitives-neutral-1000, #3b3b3b)}:host(.select-label-placement-start) .label-text-wrapper,:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:var(--token-space-100, var(--token-scale-100, 4px));margin-inline-end:var(--token-space-100, var(--token-scale-100, 4px));margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 calc(var(--token-scale-2400, 96px) + var(--token-space-100, var(--token-scale-100, 4px)));flex:0 0 calc(var(--token-scale-2400, 96px) + var(--token-space-100, var(--token-scale-100, 4px)));width:calc(var(--token-scale-2400, 96px) + var(--token-space-100, var(--token-scale-100, 4px)));min-width:calc(var(--token-scale-2400, 96px) + var(--token-space-100, var(--token-scale-100, 4px)));max-width:var(--token-scale-5000, 200px)}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:var(--token-space-100, var(--token-scale-100, 4px));margin-inline-start:var(--token-space-100, var(--token-scale-100, 4px));-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{margin-left:0;margin-right:0;margin-top:0;margin-bottom:var(--token-space-100, var(--token-scale-100, 4px))}.select-wrapper{min-width:var(--token-scale-5000, 200px);background:transparent}.select-wrapper .select-placeholder{-webkit-transition:opacity var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));transition:opacity var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1))}.select-wrapper-inner{border-radius:var(--border-radius);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:relative;background:var(--background);-webkit-box-sizing:border-box;box-sizing:border-box;gap:var(--token-space-200, var(--token-scale-200, 8px))}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:100%}.native-wrapper{font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none;-webkit-transition:opacity var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));transition:opacity var(--token-transition-time-150, 150ms) var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));color:var(--token-text-default, var(--token-primitives-neutral-1200, #242424))}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{width:calc(100% - var(--token-scale-400, 16px) - var(--token-space-200, var(--token-scale-200, 8px)))}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:var(--token-space-200, var(--token-scale-200, 8px));--padding-end:var(--token-space-200, var(--token-scale-200, 8px));--padding-top:var(--token-space-200, var(--token-scale-200, 8px));--padding-bottom:var(--token-space-200, var(--token-scale-200, 8px));aspect-ratio:1}.select-icon,::slotted(ion-icon){font-size:var(--token-font-size-400, 1rem)}.select-icon{-webkit-transition:-webkit-transform 0.15s var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));transition:-webkit-transform 0.15s var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));transition:transform 0.15s var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));transition:transform 0.15s var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1)), -webkit-transform 0.15s var(--token-transition-curve-expressive, cubic-bezier(0.4, 0, 0.2, 1));color:var(--token-text-subtlest, var(--token-primitives-neutral-800, #626262))}:host(.has-value) .select-icon{color:var(--token-text-subtle, var(--token-primitives-neutral-1000, #3b3b3b))}:host(.select-expanded:not(.has-expanded-icon)) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.select-fill-solid){--background:var(--token-bg-input-bold-default, var(--token-primitives-neutral-200, #eae9e9))}:host(.select-disabled){--background:var(--token-primitives-neutral-100, #f3f3f3);--border-color:var(--token-primitives-neutral-300, #e0e0e0)}:host(.select-disabled) .label-text-wrapper,:host(.select-disabled) .select-text,:host(.select-disabled) .select-icon{color:var(--token-primitives-neutral-500, #a2a2a2)}:host(.select-shape-soft){--border-radius:var(--token-border-radius-200, var(--token-scale-200, 8px))}:host(.select-shape-round){--border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}:host(.select-shape-rectangular){--border-radius:var(--token-border-radius-0, var(--token-scale-0, 0px))}:host(.select-size-small) .select-wrapper-inner{height:var(--token-scale-1000, 40px)}:host(.select-size-medium) .select-wrapper-inner{height:var(--token-scale-1200, 48px)}:host(.select-size-large) .select-wrapper-inner{height:var(--token-scale-1400, 56px)}`;
|
|
27
26
|
|
|
28
|
-
const selectMdCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--select-text-gap:12px;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;min-height:44px;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host(.has-focus) button{border:2px solid #5e9ed6}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative;-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:stretch;align-items:stretch;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-control{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:inherit;flex-direction:inherit;-ms-flex-align:center;align-items:center;-ms-flex-pack:inherit;justify-content:inherit;min-width:0}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);font-size:0.75rem;white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;min-width:0;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}:host(.skip-label-transition) .label-text-wrapper{-webkit-transition:none;transition:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-negative:100000;flex-shrink:100000;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-control,:host(.select-label-placement-floating) .select-control{-ms-flex-direction:column;flex-direction:column;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:0}:host(.label-floating.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:var(--placeholder-opacity)}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}.select-start,.select-end{display:-ms-flexbox;display:flex;position:relative;-ms-flex-negative:0;flex-shrink:0;-ms-flex-align:center;align-items:center}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px;-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0}:host(.select-fill-solid){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-solid) .select-wrapper{border-bottom:var(--border-width) var(--border-style) var(--border-color)}:host(.select-expanded.select-fill-solid.ion-valid),:host(.has-focus.select-fill-solid.ion-valid),:host(.select-fill-solid.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-bottom{border-top:none}@media (any-hover: hover){:host(.select-fill-solid:hover){--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-solid.select-expanded),:host(.select-fill-solid.has-focus){--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}:host(.label-floating.select-fill-solid) .label-text-wrapper{max-width:calc(100% / 0.75)}:host(.in-item.select-expanded.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-solid) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-fill-outline){--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;--internal-start-container-adjustment:0px;min-height:56px}:host(.select-fill-outline.select-shape-round){--border-radius:28px;--padding-start:32px;--padding-end:32px}:host(.has-focus.select-fill-outline.ion-valid),:host(.select-fill-outline.ion-touched.ion-invalid){--border-color:var(--highlight-color)}@media (any-hover: hover){:host(.select-fill-outline:hover){--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-outline.select-expanded),:host(.select-fill-outline.has-focus){--border-width:var(--highlight-height);--border-color:var(--highlight-color)}:host(.select-fill-outline) .select-bottom{border-top:none}:host(.select-fill-outline) .select-wrapper{border-bottom:none}:host(.select-ltr.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-fill-outline.select-label-placement-floating) .label-text-wrapper{position:absolute;max-width:100%}:host(.select-fill-outline) .label-text-wrapper{position:relative;z-index:1}:host(.select-fill-outline:not(.label-floating)) .select-control{position:relative}:host(.label-floating.select-fill-outline) .label-text-wrapper{-webkit-transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);transform:translate(var(--internal-start-container-adjustment, 0px), -32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc((100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75)}:host(.select-fill-outline.select-label-placement-stacked) select,:host(.select-fill-outline.select-label-placement-floating) select{margin-left:0;margin-right:0;margin-top:6px;margin-bottom:6px}:host(.select-fill-outline) .select-outline-container{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-end{pointer-events:none}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-notch,:host(.select-fill-outline) .select-outline-end{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.select-fill-outline) .select-outline-notch{max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .notch-spacer{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none}:host(.select-fill-outline) .select-outline-start{-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color);border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius);width:calc(var(--padding-start) - 4px)}:host(.select-fill-outline) .select-outline-end{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color);border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px;-ms-flex-positive:1;flex-grow:1}:host(.label-floating.select-fill-outline) .select-outline-notch{border-top:none}:host(.in-item.select-expanded.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-outline) .select-wrapper .select-icon{color:var(--highlight-color)}:host{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--highlight-height:2px}:host(.select-label-placement-floating.select-expanded) .label-text-wrapper,:host(.select-label-placement-floating.has-focus) .label-text-wrapper,:host(.select-label-placement-stacked.select-expanded) .label-text-wrapper,:host(.select-label-placement-stacked.has-focus) .label-text-wrapper{color:var(--highlight-color)}:host(.has-focus.select-label-placement-floating.ion-valid) .label-text-wrapper,:host(.select-label-placement-floating.ion-touched.ion-invalid) .label-text-wrapper,:host(.has-focus.select-label-placement-stacked.ion-valid) .label-text-wrapper,:host(.select-label-placement-stacked.ion-touched.ion-invalid) .label-text-wrapper{color:var(--highlight-color)}.select-highlight{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.select-highlight{inset-inline-start:0}:host(.select-expanded) .select-highlight,:host(.has-focus) .select-highlight{-webkit-transform:scale(1);transform:scale(1)}:host(.in-item) .select-highlight{bottom:0}:host(.in-item) .select-highlight{inset-inline-start:0}.select-icon{width:0.8125rem;-webkit-transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded:not(.has-expanded-icon)) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.in-item.select-expanded) .select-wrapper .select-icon,:host(.in-item.has-focus) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid) .select-wrapper .select-icon{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded) .select-wrapper .select-icon,:host(.has-focus.ion-valid) .select-wrapper .select-icon,:host(.ion-touched.ion-invalid) .select-wrapper .select-icon,:host(.has-focus) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-shape-round){--border-radius:16px}:host(.select-disabled){opacity:0.38}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}`;
|
|
27
|
+
const selectIosCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;white-space:nowrap;cursor:pointer}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-appearance:none;-moz-appearance:none}.select-icon{-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-end:0;margin-inline-end:0}:host{--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--select-text-gap:12px;min-height:44px;font-family:var(--ion-font-family, inherit);z-index:2}:host(.has-focus) button{border:2px solid #5e9ed6}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius)}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;font-size:0.75rem}.select-bottom .helper-text{color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.select-text{min-width:16px}.label-text-wrapper{max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1)}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0;-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px}.native-wrapper{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}:host{--border-width:0.55px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));--highlight-height:0px}.select-icon{width:1.125rem;height:1.125rem;color:var(--ion-color-step-650, var(--ion-text-color-step-350, #595959))}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 1.125rem - 4px)}:host(.select-disabled){opacity:0.3}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:0;--padding-end:0;--padding-top:0;--padding-bottom:0;aspect-ratio:1}`;
|
|
28
|
+
|
|
29
|
+
const selectMdCss = () => `:host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #0054e9);--highlight-color-valid:var(--ion-color-success, #2dd55b);--highlight-color-invalid:var(--ion-color-danger, #c5000f);--select-text-media-height:1.5em;--select-text-media-width:1.5em;--highlight-color:var(--highlight-color-focused);display:block;position:relative;width:100%;white-space:nowrap;cursor:pointer}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.in-item){-ms-flex:1 1 0px;flex:1 1 0}:host(.select-disabled){pointer-events:none}:host([slot=start]),:host([slot=end]){-ms-flex:initial;flex:initial;width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}button{position:absolute;top:0;right:0;bottom:0;left:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;opacity:0;overflow:hidden;clip:rect(0 0 0 0);-webkit-appearance:none;-moz-appearance:none}.select-icon{-ms-flex-negative:0;flex-shrink:0}:host(.in-item-color) .select-icon{color:inherit}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-text>*+*{-webkit-margin-start:var(--select-text-gap);margin-inline-start:var(--select-text-gap)}.select-text img,.select-text ion-img,.select-text ion-icon,.select-text ion-thumbnail,.select-text ion-avatar{border-radius:var(--select-text-media-border-radius);width:var(--select-text-media-width);height:var(--select-text-media-height);border-width:var(--select-text-media-border-width);border-style:var(--select-text-media-border-style);border-color:var(--select-text-media-border-color)}.select-wrapper{display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.select-bottom{display:-ms-flexbox;display:flex;-ms-flex-pack:justify;justify-content:space-between;border-top:var(--border-width) var(--border-style) var(--border-color);white-space:normal}:host(.has-focus.ion-valid),:host(.select-expanded.ion-valid),:host(.ion-touched.ion-invalid),:host(.select-expanded.ion-touched.ion-invalid){--border-color:var(--highlight-color)}.select-bottom .error-text{display:none;color:var(--highlight-color-invalid)}.select-bottom .helper-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .error-text{display:block}:host(.ion-touched.ion-invalid) .select-bottom .helper-text{display:none}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating:not(.label-floating)) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-focus.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}::slotted([slot=start]),::slotted([slot=end]){-ms-flex-negative:0;flex-shrink:0}::slotted([slot=start]:last-of-type){-webkit-margin-start:0;margin-inline-start:0}::slotted([slot=end]:first-of-type){-webkit-margin-end:0;margin-inline-end:0}:host{--placeholder-opacity:var(--ion-placeholder-opacity, 0.6);--select-text-gap:12px;min-height:44px;font-family:var(--ion-font-family, inherit);z-index:2}:host(.has-focus) button{border:2px solid #5e9ed6}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}.select-wrapper{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);border-radius:var(--border-radius)}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}.select-bottom{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:5px;padding-bottom:0;font-size:0.75rem}.select-bottom .helper-text{color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}.select-text{min-width:16px}.label-text-wrapper{max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1)}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0;-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.label-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{-ms-flex-positive:1;flex-grow:1}::slotted([slot=start]:last-of-type){-webkit-margin-end:16px;margin-inline-end:16px}::slotted([slot=end]:first-of-type){-webkit-margin-start:16px;margin-inline-start:16px}.native-wrapper{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}:host(.select-fill-solid){--background:var(--ion-color-step-50, var(--ion-background-color-step-50, #f2f2f2));--border-color:var(--ion-color-step-500, var(--ion-background-color-step-500, gray));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-solid) .select-wrapper{border-bottom:var(--border-width) var(--border-style) var(--border-color)}:host(.select-expanded.select-fill-solid.ion-valid),:host(.has-focus.select-fill-solid.ion-valid),:host(.select-fill-solid.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-bottom{border-top:none}@media (any-hover: hover){:host(.select-fill-solid:hover){--background:var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6));--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-solid.select-expanded),:host(.select-fill-solid.has-focus){--background:var(--ion-color-step-150, var(--ion-background-color-step-150, #d9d9d9));--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0px;border-end-start-radius:0px}:host(.label-floating.select-fill-solid) .label-text-wrapper{max-width:calc(100% / 0.75)}:host(.in-item.select-expanded.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-solid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-solid) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-fill-outline){--border-color:var(--ion-color-step-300, var(--ion-background-color-step-300, #b3b3b3));--border-radius:4px;--padding-start:16px;--padding-end:16px;min-height:56px}:host(.select-fill-outline.select-shape-round){--border-radius:28px;--padding-start:32px;--padding-end:32px}:host(.has-focus.select-fill-outline.ion-valid),:host(.select-fill-outline.ion-touched.ion-invalid){--border-color:var(--highlight-color)}@media (any-hover: hover){:host(.select-fill-outline:hover){--border-color:var(--ion-color-step-750, var(--ion-background-color-step-750, #404040))}}:host(.select-fill-outline.select-expanded),:host(.select-fill-outline.has-focus){--border-width:var(--highlight-height);--border-color:var(--highlight-color)}:host(.select-fill-outline) .select-bottom{border-top:none}:host(.select-fill-outline) .select-wrapper{border-bottom:none}:host(.select-ltr.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-fill-outline.select-label-placement-floating) .label-text-wrapper{position:absolute;max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .label-text-wrapper{position:relative;z-index:1}:host(.label-floating.select-fill-outline) .label-text-wrapper{-webkit-transform:translateY(-32%) scale(0.75);transform:translateY(-32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc( (100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75 )}:host(.select-fill-outline.select-label-placement-stacked) select,:host(.select-fill-outline.select-label-placement-floating) select{margin-left:0;margin-right:0;margin-top:6px;margin-bottom:6px}:host(.select-fill-outline) .select-outline-container{right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-end{pointer-events:none}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-notch,:host(.select-fill-outline) .select-outline-end{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.select-fill-outline) .select-outline-notch{max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .notch-spacer{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none}:host(.select-fill-outline) .select-outline-start{-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color)}:host(.select-fill-outline) .select-outline-start{border-start-start-radius:var(--border-radius);border-start-end-radius:0px;border-end-end-radius:0px;border-end-start-radius:var(--border-radius)}:host(.select-fill-outline) .select-outline-start{width:calc(var(--padding-start) - 4px)}:host(.select-fill-outline) .select-outline-end{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color)}:host(.select-fill-outline) .select-outline-end{border-start-start-radius:0px;border-start-end-radius:var(--border-radius);border-end-end-radius:var(--border-radius);border-end-start-radius:0px}:host(.select-fill-outline) .select-outline-end{-ms-flex-positive:1;flex-grow:1}:host(.label-floating.select-fill-outline) .select-outline-notch{border-top:none}:host(.in-item.select-expanded.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid.select-fill-outline) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid.select-fill-outline) .select-wrapper .select-icon{color:var(--highlight-color)}:host{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.13)))));--highlight-height:2px}:host(.select-label-placement-floating.select-expanded) .label-text-wrapper,:host(.select-label-placement-floating.has-focus) .label-text-wrapper,:host(.select-label-placement-stacked.select-expanded) .label-text-wrapper,:host(.select-label-placement-stacked.has-focus) .label-text-wrapper{color:var(--highlight-color)}:host(.has-focus.select-label-placement-floating.ion-valid) .label-text-wrapper,:host(.select-label-placement-floating.ion-touched.ion-invalid) .label-text-wrapper,:host(.has-focus.select-label-placement-stacked.ion-valid) .label-text-wrapper,:host(.select-label-placement-stacked.ion-touched.ion-invalid) .label-text-wrapper{color:var(--highlight-color)}.select-highlight{bottom:-1px;position:absolute;width:100%;height:var(--highlight-height);-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}.select-highlight{inset-inline-start:0}:host(.select-expanded) .select-highlight,:host(.has-focus) .select-highlight{-webkit-transform:scale(1);transform:scale(1)}:host(.in-item) .select-highlight{bottom:0}:host(.in-item) .select-highlight{inset-inline-start:0}.select-icon{width:0.8125rem;-webkit-transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded:not(.has-expanded-icon)) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.in-item.select-expanded) .select-wrapper .select-icon,:host(.in-item.has-focus) .select-wrapper .select-icon,:host(.in-item.has-focus.ion-valid) .select-wrapper .select-icon,:host(.in-item.ion-touched.ion-invalid) .select-wrapper .select-icon{color:var(--ion-color-step-500, var(--ion-text-color-step-500, gray))}:host(.select-expanded) .select-wrapper .select-icon,:host(.has-focus.ion-valid) .select-wrapper .select-icon,:host(.ion-touched.ion-invalid) .select-wrapper .select-icon,:host(.has-focus) .select-wrapper .select-icon{color:var(--highlight-color)}:host(.select-shape-round){--border-radius:16px}:host(.select-label-placement-stacked) .select-wrapper-inner,:host(.select-label-placement-floating) .select-wrapper-inner{width:calc(100% - 0.8125rem - 4px)}:host(.select-disabled){opacity:0.38}::slotted(ion-button[slot=start].button-has-icon-only),::slotted(ion-button[slot=end].button-has-icon-only){--border-radius:50%;--padding-start:8px;--padding-end:8px;--padding-top:8px;--padding-bottom:8px;aspect-ratio:1;min-height:40px}`;
|
|
29
30
|
|
|
30
31
|
const Select = class {
|
|
31
32
|
constructor(hostRef) {
|
|
@@ -36,240 +37,150 @@ const Select = class {
|
|
|
36
37
|
this.ionFocus = index.createEvent(this, "ionFocus", 7);
|
|
37
38
|
this.ionBlur = index.createEvent(this, "ionBlur", 7);
|
|
38
39
|
this.ionStyle = index.createEvent(this, "ionStyle", 7);
|
|
40
|
+
this.inputId = `ion-sel-${selectIds++}`;
|
|
41
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
42
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
43
|
+
this.inheritedAttributes = {};
|
|
44
|
+
this.customHTMLEnabled = index.config.get('innerHTMLTemplatesEnabled', config.ENABLE_HTML_CONTENT_DEFAULT);
|
|
45
|
+
this.isExpanded = false;
|
|
46
|
+
/**
|
|
47
|
+
* The `hasFocus` state ensures the focus class is
|
|
48
|
+
* added regardless of how the element is focused.
|
|
49
|
+
* The `ion-focused` class only applies when focused
|
|
50
|
+
* via tabbing, not by clicking.
|
|
51
|
+
* The `has-focus` logic was added to ensure the class
|
|
52
|
+
* is applied in both cases.
|
|
53
|
+
*/
|
|
54
|
+
this.hasFocus = false;
|
|
55
|
+
/**
|
|
56
|
+
* Track validation state for proper aria-live announcements.
|
|
57
|
+
*/
|
|
58
|
+
this.isInvalid = false;
|
|
59
|
+
/**
|
|
60
|
+
* The text to display on the cancel button.
|
|
61
|
+
*/
|
|
62
|
+
this.cancelText = 'Cancel';
|
|
63
|
+
/**
|
|
64
|
+
* If `true`, the cancel button will display an icon instead of the `cancelText`.
|
|
65
|
+
* Only applies when `interface` is set to `"modal"`. Has no effect on `"action-sheet"`,
|
|
66
|
+
* `"alert"`, or `"popover"` interfaces.
|
|
67
|
+
* When `cancelIcon` is `true`, the `cancelText` property is ignored for display
|
|
68
|
+
* but is used as the accessible label for the icon button.
|
|
69
|
+
*/
|
|
70
|
+
this.cancelIcon = false;
|
|
71
|
+
/**
|
|
72
|
+
* If `true`, the user cannot interact with the select.
|
|
73
|
+
*/
|
|
74
|
+
this.disabled = false;
|
|
75
|
+
/**
|
|
76
|
+
* The interface the select should use: `action-sheet`, `popover`, `alert`, or `modal`.
|
|
77
|
+
*/
|
|
78
|
+
this.interface = 'alert';
|
|
79
|
+
/**
|
|
80
|
+
* Any additional options that the `alert`, `action-sheet` or `popover` interface
|
|
81
|
+
* can take. See the [ion-alert docs](./alert), the
|
|
82
|
+
* [ion-action-sheet docs](./action-sheet), the
|
|
83
|
+
* [ion-popover docs](./popover), and the [ion-modal docs](./modal) for the
|
|
84
|
+
* create options for each interface.
|
|
85
|
+
*
|
|
86
|
+
* Note: `interfaceOptions` will not override `inputs` or `buttons` with the `alert` interface.
|
|
87
|
+
*/
|
|
88
|
+
this.interfaceOptions = {};
|
|
89
|
+
/**
|
|
90
|
+
* Where to place the label relative to the select.
|
|
91
|
+
* `"start"`: The label will appear to the left of the select in LTR and to the right in RTL.
|
|
92
|
+
* `"end"`: The label will appear to the right of the select in LTR and to the left in RTL.
|
|
93
|
+
* `"floating"`: The label will appear smaller and above the select when the select is focused or it has a value. Otherwise it will appear on top of the select.
|
|
94
|
+
* `"stacked"`: The label will appear smaller and above the select regardless even when the select is blurred or has no value.
|
|
95
|
+
* `"fixed"`: The label has the same behavior as `"start"` except it also has a fixed width. Long text will be truncated with ellipses ("...").
|
|
96
|
+
* When using `"floating"` or `"stacked"` we recommend initializing the select with either a `value` or a `placeholder`.
|
|
97
|
+
*/
|
|
98
|
+
this.labelPlacement = 'start';
|
|
99
|
+
/**
|
|
100
|
+
* If `true`, the select can accept multiple values.
|
|
101
|
+
*/
|
|
102
|
+
this.multiple = false;
|
|
103
|
+
/**
|
|
104
|
+
* The name of the control, which is submitted with the form data.
|
|
105
|
+
*/
|
|
106
|
+
this.name = this.inputId;
|
|
107
|
+
/**
|
|
108
|
+
* The text to display on the ok button.
|
|
109
|
+
*/
|
|
110
|
+
this.okText = 'OK';
|
|
111
|
+
/**
|
|
112
|
+
* If true, screen readers will announce it as a required field. This property
|
|
113
|
+
* works only for accessibility purposes, it will not prevent the form from
|
|
114
|
+
* submitting if the value is invalid.
|
|
115
|
+
*/
|
|
116
|
+
this.required = false;
|
|
117
|
+
this.onClick = (ev) => {
|
|
118
|
+
const target = ev.target;
|
|
119
|
+
const closestSlot = target.closest('[slot="start"], [slot="end"]');
|
|
120
|
+
if (target === this.el || closestSlot === null) {
|
|
121
|
+
this.setFocus();
|
|
122
|
+
this.open(ev);
|
|
123
|
+
}
|
|
124
|
+
else {
|
|
125
|
+
/**
|
|
126
|
+
* Prevent clicks to the start/end slots from opening the select.
|
|
127
|
+
* We ensure the target isn't this element in case the select is slotted
|
|
128
|
+
* in, for example, an item. This would prevent the select from ever
|
|
129
|
+
* being opened since the element itself has slot="start"/"end".
|
|
130
|
+
*
|
|
131
|
+
* Clicking a slotted element also causes a click
|
|
132
|
+
* on the <label> element (since it wraps the slots).
|
|
133
|
+
* Clicking <label> dispatches another click event on
|
|
134
|
+
* the native form control that then bubbles up to this
|
|
135
|
+
* listener. This additional event targets the host
|
|
136
|
+
* element, so the select overlay is opened.
|
|
137
|
+
*
|
|
138
|
+
* When the slotted elements are clicked (and therefore
|
|
139
|
+
* the ancestor <label> element) we want to prevent the label
|
|
140
|
+
* from dispatching another click event.
|
|
141
|
+
*
|
|
142
|
+
* Do not call stopPropagation() because this will cause
|
|
143
|
+
* click handlers on the slotted elements to never fire in React.
|
|
144
|
+
* When developers do onClick in React a native "click" listener
|
|
145
|
+
* is added on the root element, not the slotted element. When that
|
|
146
|
+
* native click listener fires, React then dispatches the synthetic
|
|
147
|
+
* click event on the slotted element. However, if stopPropagation
|
|
148
|
+
* is called then the native click event will never bubble up
|
|
149
|
+
* to the root element.
|
|
150
|
+
*/
|
|
151
|
+
ev.preventDefault();
|
|
152
|
+
}
|
|
153
|
+
};
|
|
154
|
+
this.onFocus = () => {
|
|
155
|
+
this.hasFocus = true;
|
|
156
|
+
this.ionFocus.emit();
|
|
157
|
+
};
|
|
158
|
+
this.onBlur = () => {
|
|
159
|
+
this.hasFocus = false;
|
|
160
|
+
this.ionBlur.emit();
|
|
161
|
+
};
|
|
162
|
+
/**
|
|
163
|
+
* Stops propagation when the label is clicked,
|
|
164
|
+
* otherwise, two clicks will be triggered.
|
|
165
|
+
*/
|
|
166
|
+
this.onLabelClick = (ev) => {
|
|
167
|
+
// Only stop propagation if the click was directly on the label
|
|
168
|
+
// and not on the input or other child elements
|
|
169
|
+
if (ev.target === ev.currentTarget) {
|
|
170
|
+
ev.stopPropagation();
|
|
171
|
+
}
|
|
172
|
+
};
|
|
39
173
|
}
|
|
40
|
-
inputId = `ion-sel-${selectIds++}`;
|
|
41
|
-
helperTextId = `${this.inputId}-helper-text`;
|
|
42
|
-
errorTextId = `${this.inputId}-error-text`;
|
|
43
|
-
overlay;
|
|
44
|
-
focusEl;
|
|
45
|
-
mutationO;
|
|
46
|
-
inheritedAttributes = {};
|
|
47
|
-
slotMutationController;
|
|
48
|
-
nativeWrapperEl;
|
|
49
|
-
notchSpacerEl;
|
|
50
|
-
validationObserver;
|
|
51
|
-
notchController;
|
|
52
|
-
startContainerController;
|
|
53
|
-
startContainerEl;
|
|
54
|
-
customHTMLEnabled = index.config.get('innerHTMLTemplatesEnabled', config.ENABLE_HTML_CONTENT_DEFAULT);
|
|
55
|
-
get el() { return index.getElement(this); }
|
|
56
|
-
isExpanded = false;
|
|
57
|
-
/**
|
|
58
|
-
* The `hasFocus` state ensures the focus class is
|
|
59
|
-
* added regardless of how the element is focused.
|
|
60
|
-
* The `ion-focused` class only applies when focused
|
|
61
|
-
* via tabbing, not by clicking.
|
|
62
|
-
* The `has-focus` logic was added to ensure the class
|
|
63
|
-
* is applied in both cases.
|
|
64
|
-
*/
|
|
65
|
-
hasFocus = false;
|
|
66
|
-
/**
|
|
67
|
-
* Track validation state for proper aria-live announcements.
|
|
68
|
-
*/
|
|
69
|
-
isInvalid = false;
|
|
70
|
-
hintTextId;
|
|
71
|
-
/**
|
|
72
|
-
* The text to display on the cancel button.
|
|
73
|
-
*/
|
|
74
|
-
cancelText = 'Cancel';
|
|
75
|
-
/**
|
|
76
|
-
* The color to use from your application's color palette.
|
|
77
|
-
* Default options are: `"primary"`, `"secondary"`, `"tertiary"`, `"success"`, `"warning"`, `"danger"`, `"light"`, `"medium"`, and `"dark"`.
|
|
78
|
-
* For more information on colors, see [theming](/docs/theming/basics).
|
|
79
|
-
*
|
|
80
|
-
* This property is only available when using the modern select syntax.
|
|
81
|
-
*/
|
|
82
|
-
color;
|
|
83
|
-
/**
|
|
84
|
-
* This property allows developers to specify a custom function or property
|
|
85
|
-
* name for comparing objects when determining the selected option in the
|
|
86
|
-
* ion-select. When not specified, the default behavior will use strict
|
|
87
|
-
* equality (===) for comparison.
|
|
88
|
-
*/
|
|
89
|
-
compareWith;
|
|
90
|
-
/**
|
|
91
|
-
* If `true`, the user cannot interact with the select.
|
|
92
|
-
*/
|
|
93
|
-
disabled = false;
|
|
94
|
-
/**
|
|
95
|
-
* The fill for the item. If `"solid"` the item will have a background. If
|
|
96
|
-
* `"outline"` the item will be transparent with a border. Only available in `md` mode.
|
|
97
|
-
*/
|
|
98
|
-
fill;
|
|
99
|
-
/**
|
|
100
|
-
* Text that is placed under the select and displayed when an error is detected.
|
|
101
|
-
*/
|
|
102
|
-
errorText;
|
|
103
|
-
/**
|
|
104
|
-
* Text that is placed under the select and displayed when no error is detected.
|
|
105
|
-
*/
|
|
106
|
-
helperText;
|
|
107
|
-
/**
|
|
108
|
-
* The interface the select should use: `action-sheet`, `popover`, `alert`, or `modal`.
|
|
109
|
-
*/
|
|
110
|
-
interface = 'alert';
|
|
111
|
-
/**
|
|
112
|
-
* Any additional options that the `alert`, `action-sheet` or `popover` interface
|
|
113
|
-
* can take. See the [ion-alert docs](./alert), the
|
|
114
|
-
* [ion-action-sheet docs](./action-sheet), the
|
|
115
|
-
* [ion-popover docs](./popover), and the [ion-modal docs](./modal) for the
|
|
116
|
-
* create options for each interface.
|
|
117
|
-
*
|
|
118
|
-
* Note: `interfaceOptions` will not override `inputs` or `buttons` with the `alert` interface.
|
|
119
|
-
*/
|
|
120
|
-
interfaceOptions = {};
|
|
121
|
-
/**
|
|
122
|
-
* How to pack the label and select within a line.
|
|
123
|
-
* `justify` does not apply when the label and select
|
|
124
|
-
* are on different lines when `labelPlacement` is set to
|
|
125
|
-
* `"floating"` or `"stacked"`.
|
|
126
|
-
* `"start"`: The label and select will appear on the left in LTR and
|
|
127
|
-
* on the right in RTL.
|
|
128
|
-
* `"end"`: The label and select will appear on the right in LTR and
|
|
129
|
-
* on the left in RTL.
|
|
130
|
-
* `"space-between"`: The label and select will appear on opposite
|
|
131
|
-
* ends of the line with space between the two elements.
|
|
132
|
-
*/
|
|
133
|
-
justify;
|
|
134
|
-
/**
|
|
135
|
-
* The visible label associated with the select.
|
|
136
|
-
*
|
|
137
|
-
* Use this if you need to render a plaintext label.
|
|
138
|
-
*
|
|
139
|
-
* The `label` property will take priority over the `label` slot if both are used.
|
|
140
|
-
*/
|
|
141
|
-
label;
|
|
142
|
-
/**
|
|
143
|
-
* Where to place the label relative to the select.
|
|
144
|
-
* `"start"`: The label will appear to the left of the select in LTR and to the right in RTL.
|
|
145
|
-
* `"end"`: The label will appear to the right of the select in LTR and to the left in RTL.
|
|
146
|
-
* `"floating"`: The label will appear smaller and above the select when the select is focused or it has a value. Otherwise it will appear on top of the select.
|
|
147
|
-
* `"stacked"`: The label will appear smaller and above the select regardless even when the select is blurred or has no value.
|
|
148
|
-
* `"fixed"`: The label has the same behavior as `"start"` except it also has a fixed width. Long text will be truncated with ellipses ("...").
|
|
149
|
-
* When using `"floating"` or `"stacked"` we recommend initializing the select with either a `value` or a `placeholder`.
|
|
150
|
-
*/
|
|
151
|
-
labelPlacement = 'start';
|
|
152
|
-
/**
|
|
153
|
-
* If `true`, the select can accept multiple values.
|
|
154
|
-
*/
|
|
155
|
-
multiple = false;
|
|
156
|
-
/**
|
|
157
|
-
* The name of the control, which is submitted with the form data.
|
|
158
|
-
*/
|
|
159
|
-
name = this.inputId;
|
|
160
|
-
/**
|
|
161
|
-
* The text to display on the ok button.
|
|
162
|
-
*/
|
|
163
|
-
okText = 'OK';
|
|
164
|
-
/**
|
|
165
|
-
* The text to display when the select is empty.
|
|
166
|
-
*/
|
|
167
|
-
placeholder;
|
|
168
|
-
/**
|
|
169
|
-
* The text to display instead of the selected option's value.
|
|
170
|
-
*/
|
|
171
|
-
selectedText;
|
|
172
|
-
/**
|
|
173
|
-
* The toggle icon to use. Defaults to `chevronExpand` for `ios` mode,
|
|
174
|
-
* or `caretDownSharp` for `md` mode.
|
|
175
|
-
*/
|
|
176
|
-
toggleIcon;
|
|
177
|
-
/**
|
|
178
|
-
* The toggle icon to show when the select is open. If defined, the icon
|
|
179
|
-
* rotation behavior in `md` mode will be disabled. If undefined, `toggleIcon`
|
|
180
|
-
* will be used for when the select is both open and closed.
|
|
181
|
-
*/
|
|
182
|
-
expandedIcon;
|
|
183
|
-
/**
|
|
184
|
-
* The shape of the select. If "round" it will have an increased border radius.
|
|
185
|
-
*/
|
|
186
|
-
shape;
|
|
187
|
-
/**
|
|
188
|
-
* The value of the select.
|
|
189
|
-
*/
|
|
190
|
-
value;
|
|
191
|
-
/**
|
|
192
|
-
* If true, screen readers will announce it as a required field. This property
|
|
193
|
-
* works only for accessibility purposes, it will not prevent the form from
|
|
194
|
-
* submitting if the value is invalid.
|
|
195
|
-
*/
|
|
196
|
-
required = false;
|
|
197
|
-
/**
|
|
198
|
-
* Emitted when the value has changed.
|
|
199
|
-
*
|
|
200
|
-
* This event will not emit when programmatically setting the `value` property.
|
|
201
|
-
*/
|
|
202
|
-
ionChange;
|
|
203
|
-
/**
|
|
204
|
-
* Emitted when the selection is cancelled.
|
|
205
|
-
*/
|
|
206
|
-
ionCancel;
|
|
207
|
-
/**
|
|
208
|
-
* Emitted when the overlay is dismissed.
|
|
209
|
-
*/
|
|
210
|
-
ionDismiss;
|
|
211
|
-
/**
|
|
212
|
-
* Emitted when the select has focus.
|
|
213
|
-
*/
|
|
214
|
-
ionFocus;
|
|
215
|
-
/**
|
|
216
|
-
* Emitted when the select loses focus.
|
|
217
|
-
*/
|
|
218
|
-
ionBlur;
|
|
219
|
-
/**
|
|
220
|
-
* Emitted when the styles change.
|
|
221
|
-
* @internal
|
|
222
|
-
*/
|
|
223
|
-
ionStyle;
|
|
224
174
|
styleChanged() {
|
|
225
175
|
this.emitStyle();
|
|
226
176
|
}
|
|
227
177
|
setValue(value) {
|
|
228
|
-
if (this.isValueEqual(this.value, value)) {
|
|
229
|
-
return;
|
|
230
|
-
}
|
|
231
178
|
this.value = value;
|
|
232
179
|
this.ionChange.emit({ value });
|
|
233
180
|
}
|
|
234
|
-
isValueEqual(currentValue, newValue) {
|
|
235
|
-
if (this.multiple) {
|
|
236
|
-
const currentArr = Array.isArray(currentValue) ? currentValue : [];
|
|
237
|
-
const newArr = Array.isArray(newValue) ? newValue : [];
|
|
238
|
-
if (currentArr.length !== newArr.length) {
|
|
239
|
-
return false;
|
|
240
|
-
}
|
|
241
|
-
// Multiset compare: each new value must match a distinct current value.
|
|
242
|
-
// A plain `every(isOptionSelected)` would accept ['a','a'] as equal to
|
|
243
|
-
// ['a','b'] when both 'a' and 'b' map to options whose values overlap.
|
|
244
|
-
const remaining = currentArr.slice();
|
|
245
|
-
return newArr.every((val) => {
|
|
246
|
-
const idx = remaining.findIndex((c) => compareWithUtils.compareOptions(c, val, this.compareWith));
|
|
247
|
-
if (idx === -1) {
|
|
248
|
-
return false;
|
|
249
|
-
}
|
|
250
|
-
remaining.splice(idx, 1);
|
|
251
|
-
return true;
|
|
252
|
-
});
|
|
253
|
-
}
|
|
254
|
-
if (currentValue == null && newValue == null) {
|
|
255
|
-
return true;
|
|
256
|
-
}
|
|
257
|
-
if (currentValue == null || newValue == null) {
|
|
258
|
-
return false;
|
|
259
|
-
}
|
|
260
|
-
return compareWithUtils.compareOptions(currentValue, newValue, this.compareWith);
|
|
261
|
-
}
|
|
262
181
|
async connectedCallback() {
|
|
263
182
|
const { el } = this;
|
|
264
|
-
this.
|
|
265
|
-
this.startContainerController?.calculateStartContainerWidth();
|
|
266
|
-
index.forceUpdate(this);
|
|
267
|
-
});
|
|
268
|
-
this.notchController = slotMutationController.createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
269
|
-
this.startContainerController = slotMutationController.createStartContainerController(el, () => this.startContainerEl, () => {
|
|
270
|
-
return ionicGlobal.getIonMode(this) === 'md' && this.fill === 'outline';
|
|
271
|
-
});
|
|
272
|
-
this.startContainerController.calculateStartContainerWidth();
|
|
183
|
+
this.notchController = notchController.createNotchController(el, () => this.notchSpacerEl, () => this.labelSlot);
|
|
273
184
|
this.updateOverlayOptions();
|
|
274
185
|
this.emitStyle();
|
|
275
186
|
this.mutationO = watchOptions.watchForOptions(this.el, 'ion-select-option', async () => {
|
|
@@ -341,18 +252,10 @@ const Select = class {
|
|
|
341
252
|
this.mutationO.disconnect();
|
|
342
253
|
this.mutationO = undefined;
|
|
343
254
|
}
|
|
344
|
-
if (this.slotMutationController) {
|
|
345
|
-
this.slotMutationController.destroy();
|
|
346
|
-
this.slotMutationController = undefined;
|
|
347
|
-
}
|
|
348
255
|
if (this.notchController) {
|
|
349
256
|
this.notchController.destroy();
|
|
350
257
|
this.notchController = undefined;
|
|
351
258
|
}
|
|
352
|
-
if (this.startContainerController) {
|
|
353
|
-
this.startContainerController.destroy();
|
|
354
|
-
this.startContainerController = undefined;
|
|
355
|
-
}
|
|
356
259
|
// Clean up validation observer to prevent memory leaks.
|
|
357
260
|
if (this.validationObserver) {
|
|
358
261
|
this.validationObserver.disconnect();
|
|
@@ -374,44 +277,65 @@ const Select = class {
|
|
|
374
277
|
// Add logic to scroll selected item into view before presenting
|
|
375
278
|
const scrollSelectedIntoView = () => {
|
|
376
279
|
const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
|
|
280
|
+
/**
|
|
281
|
+
* Determine which option to focus when the overlay opens: the selected
|
|
282
|
+
* option if the select has a value, otherwise the first enabled option.
|
|
283
|
+
*/
|
|
284
|
+
let optionToFocus = null;
|
|
377
285
|
if (indexOfSelected > -1) {
|
|
378
286
|
const selectedItem = overlay.querySelector(`.select-interface-option:nth-of-type(${indexOfSelected + 1})`);
|
|
287
|
+
/**
|
|
288
|
+
* If the option contains an `ion-radio` or `ion-checkbox`, focus
|
|
289
|
+
* that instead of the option element itself. This ensures that
|
|
290
|
+
* screen readers will announce the role and state of the element
|
|
291
|
+
* (e.g. "radio button, checked") rather than only the option text.
|
|
292
|
+
* Alert and action sheet options are plain buttons, so fall back to
|
|
293
|
+
* focusing the option element itself in those cases.
|
|
294
|
+
*/
|
|
379
295
|
if (selectedItem) {
|
|
380
|
-
/**
|
|
381
|
-
* Browsers such as Firefox do not
|
|
382
|
-
* correctly delegate focus when manually
|
|
383
|
-
* focusing an element with delegatesFocus.
|
|
384
|
-
* We work around this by manually focusing
|
|
385
|
-
* the interactive element.
|
|
386
|
-
* ion-radio and ion-checkbox are the only
|
|
387
|
-
* elements that ion-select-popover uses, so
|
|
388
|
-
* we only need to worry about those two components
|
|
389
|
-
* when focusing.
|
|
390
|
-
*/
|
|
391
296
|
const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
|
|
392
297
|
if (interactiveEl) {
|
|
393
298
|
selectedItem.scrollIntoView({ block: 'nearest' });
|
|
394
|
-
// Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
|
|
395
|
-
// and removing `ion-focused` style
|
|
396
|
-
interactiveEl.setFocus();
|
|
397
299
|
}
|
|
398
|
-
|
|
300
|
+
optionToFocus = interactiveEl !== null && interactiveEl !== void 0 ? interactiveEl : selectedItem;
|
|
399
301
|
}
|
|
400
302
|
}
|
|
401
303
|
else {
|
|
402
304
|
/**
|
|
403
305
|
* If no value is set then focus the first enabled option.
|
|
404
306
|
*/
|
|
405
|
-
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
409
|
-
|
|
410
|
-
|
|
411
|
-
|
|
412
|
-
|
|
413
|
-
|
|
414
|
-
|
|
307
|
+
optionToFocus = overlay.querySelector('ion-radio:not(.radio-disabled), ion-checkbox:not(.checkbox-disabled)');
|
|
308
|
+
}
|
|
309
|
+
if (optionToFocus) {
|
|
310
|
+
/**
|
|
311
|
+
* Focus the option directly (`setFocus()`/`focus()`) rather than
|
|
312
|
+
* with `focusVisibleElement()`. `focusVisibleElement()` forces the
|
|
313
|
+
* `ion-focused` focus ring on regardless of how the overlay was
|
|
314
|
+
* opened, whereas a plain focus lets the focus-visible utility
|
|
315
|
+
* decide: it shows the ring only when the overlay was opened with
|
|
316
|
+
* the keyboard and hides it for pointer opens.
|
|
317
|
+
*
|
|
318
|
+
* `ion-radio` and `ion-checkbox` expose `setFocus`, which correctly
|
|
319
|
+
* delegates focus to their inner focusable element. This is needed
|
|
320
|
+
* because browsers such as Firefox do not delegate focus correctly
|
|
321
|
+
* when focusing an element with delegatesFocus. When the option is
|
|
322
|
+
* a plain button it can be focused directly.
|
|
323
|
+
*/
|
|
324
|
+
if (optionToFocus.matches('ion-radio, ion-checkbox')) {
|
|
325
|
+
optionToFocus.setFocus();
|
|
326
|
+
}
|
|
327
|
+
else {
|
|
328
|
+
optionToFocus.focus();
|
|
329
|
+
}
|
|
330
|
+
/**
|
|
331
|
+
* In the alert interface, when tabbing and pressing enter to open
|
|
332
|
+
* the select, the value that is currently selected flashes the
|
|
333
|
+
* focused state briefly before moving to its wrapper. This suppresses
|
|
334
|
+
* the focus visible state, so that the option will only show as
|
|
335
|
+
* focused when navigating with the keyboard.
|
|
336
|
+
*/
|
|
337
|
+
if (this.interface === 'alert') {
|
|
338
|
+
helpers.suppressFocusVisible();
|
|
415
339
|
}
|
|
416
340
|
}
|
|
417
341
|
};
|
|
@@ -511,7 +435,8 @@ const Select = class {
|
|
|
511
435
|
const isSelected = compareWithUtils.isOptionSelected(selectValue, value, this.compareWith);
|
|
512
436
|
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
513
437
|
return {
|
|
514
|
-
|
|
438
|
+
role: isSelected ? 'selected' : '',
|
|
439
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
515
440
|
cssClass: optClass,
|
|
516
441
|
disabled: option.disabled,
|
|
517
442
|
handler: () => {
|
|
@@ -548,7 +473,7 @@ const Select = class {
|
|
|
548
473
|
return {
|
|
549
474
|
type: inputType,
|
|
550
475
|
cssClass: optClass,
|
|
551
|
-
label: content
|
|
476
|
+
label: content !== null && content !== void 0 ? content : '',
|
|
552
477
|
value,
|
|
553
478
|
checked: compareWithUtils.isOptionSelected(selectValue, value, this.compareWith),
|
|
554
479
|
disabled: option.disabled,
|
|
@@ -571,7 +496,7 @@ const Select = class {
|
|
|
571
496
|
const optClass = `${OPTION_CLASS} ${copyClasses}`;
|
|
572
497
|
const { content, startContent, endContent } = extractOptionContent(option, this.customHTMLEnabled);
|
|
573
498
|
return {
|
|
574
|
-
text: content
|
|
499
|
+
text: content !== null && content !== void 0 ? content : '',
|
|
575
500
|
cssClass: optClass,
|
|
576
501
|
value,
|
|
577
502
|
checked: compareWithUtils.isOptionSelected(selectValue, value, this.compareWith),
|
|
@@ -594,8 +519,8 @@ const Select = class {
|
|
|
594
519
|
async openPopover(ev) {
|
|
595
520
|
const { fill, labelPlacement } = this;
|
|
596
521
|
const interfaceOptions = this.interfaceOptions;
|
|
597
|
-
const
|
|
598
|
-
const showBackdrop =
|
|
522
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
523
|
+
const showBackdrop = theme === 'md' ? false : true;
|
|
599
524
|
const multiple = this.multiple;
|
|
600
525
|
const value = this.value;
|
|
601
526
|
let event = ev;
|
|
@@ -606,7 +531,7 @@ const Select = class {
|
|
|
606
531
|
* when using a fill in MD mode or if the
|
|
607
532
|
* label is floating/stacked.
|
|
608
533
|
*/
|
|
609
|
-
if (hasFloatingOrStackedLabel || (
|
|
534
|
+
if (hasFloatingOrStackedLabel || (theme === 'md' && fill !== undefined)) {
|
|
610
535
|
size = 'cover';
|
|
611
536
|
/**
|
|
612
537
|
* Otherwise the popover
|
|
@@ -615,60 +540,39 @@ const Select = class {
|
|
|
615
540
|
*/
|
|
616
541
|
}
|
|
617
542
|
else {
|
|
618
|
-
event = {
|
|
619
|
-
...ev,
|
|
620
|
-
detail: {
|
|
543
|
+
event = Object.assign(Object.assign({}, ev), { detail: {
|
|
621
544
|
ionShadowTarget: this.nativeWrapperEl,
|
|
622
|
-
}
|
|
623
|
-
};
|
|
545
|
+
} });
|
|
624
546
|
}
|
|
625
547
|
const options = this.createOverlaySelectOptions(this.childOpts, value);
|
|
626
|
-
const hasRichContent = options.some((opt) =>
|
|
627
|
-
const popoverOpts = {
|
|
628
|
-
|
|
629
|
-
|
|
630
|
-
alignment: 'center',
|
|
631
|
-
size,
|
|
632
|
-
showBackdrop,
|
|
633
|
-
...interfaceOptions,
|
|
634
|
-
component: 'ion-select-popover',
|
|
635
|
-
cssClass: [
|
|
548
|
+
const hasRichContent = options.some((opt) => opt.startContent || opt.endContent || opt.description);
|
|
549
|
+
const popoverOpts = Object.assign(Object.assign({ theme,
|
|
550
|
+
event, alignment: 'center', size,
|
|
551
|
+
showBackdrop }, interfaceOptions), { component: 'ion-select-popover', cssClass: [
|
|
636
552
|
'select-popover',
|
|
637
553
|
hasRichContent ? 'select-popover-rich-content' : undefined,
|
|
638
554
|
interfaceOptions.cssClass,
|
|
639
|
-
],
|
|
640
|
-
componentProps: {
|
|
555
|
+
], componentProps: {
|
|
641
556
|
header: interfaceOptions.header,
|
|
642
557
|
subHeader: interfaceOptions.subHeader,
|
|
643
558
|
message: interfaceOptions.message,
|
|
644
559
|
multiple,
|
|
645
560
|
value,
|
|
646
561
|
options,
|
|
647
|
-
}
|
|
648
|
-
};
|
|
562
|
+
} });
|
|
649
563
|
return overlays.popoverController.create(popoverOpts);
|
|
650
564
|
}
|
|
651
565
|
async openActionSheet() {
|
|
652
|
-
const
|
|
566
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
653
567
|
const interfaceOptions = this.interfaceOptions;
|
|
654
|
-
const actionSheetOpts = {
|
|
655
|
-
mode,
|
|
656
|
-
...interfaceOptions,
|
|
657
|
-
buttons: this.createActionSheetButtons(this.childOpts, this.value),
|
|
658
|
-
cssClass: ['select-action-sheet', interfaceOptions.cssClass],
|
|
659
|
-
};
|
|
568
|
+
const actionSheetOpts = Object.assign(Object.assign({ theme }, interfaceOptions), { buttons: this.createActionSheetButtons(this.childOpts, this.value), cssClass: ['select-action-sheet', interfaceOptions.cssClass] });
|
|
660
569
|
return overlays.actionSheetController.create(actionSheetOpts);
|
|
661
570
|
}
|
|
662
571
|
async openAlert() {
|
|
663
572
|
const interfaceOptions = this.interfaceOptions;
|
|
664
573
|
const inputType = this.multiple ? 'checkbox' : 'radio';
|
|
665
|
-
const
|
|
666
|
-
const alertOpts = {
|
|
667
|
-
mode,
|
|
668
|
-
...interfaceOptions,
|
|
669
|
-
header: interfaceOptions.header ? interfaceOptions.header : this.labelText,
|
|
670
|
-
inputs: this.createAlertInputs(this.childOpts, inputType, this.value),
|
|
671
|
-
buttons: [
|
|
574
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
575
|
+
const alertOpts = Object.assign(Object.assign({ theme }, interfaceOptions), { header: interfaceOptions.header ? interfaceOptions.header : this.labelText, inputs: this.createAlertInputs(this.childOpts, inputType, this.value), buttons: [
|
|
672
576
|
{
|
|
673
577
|
text: this.cancelText,
|
|
674
578
|
role: 'cancel',
|
|
@@ -682,31 +586,24 @@ const Select = class {
|
|
|
682
586
|
this.setValue(selectedValues);
|
|
683
587
|
},
|
|
684
588
|
},
|
|
685
|
-
],
|
|
686
|
-
cssClass: [
|
|
589
|
+
], cssClass: [
|
|
687
590
|
'select-alert',
|
|
688
591
|
interfaceOptions.cssClass,
|
|
689
592
|
this.multiple ? 'multiple-select-alert' : 'single-select-alert',
|
|
690
|
-
]
|
|
691
|
-
};
|
|
593
|
+
] });
|
|
692
594
|
return overlays.alertController.create(alertOpts);
|
|
693
595
|
}
|
|
694
596
|
openModal() {
|
|
695
597
|
const { multiple, value, interfaceOptions } = this;
|
|
696
|
-
const
|
|
697
|
-
const modalOpts = {
|
|
698
|
-
...interfaceOptions,
|
|
699
|
-
mode,
|
|
700
|
-
cssClass: ['select-modal', interfaceOptions.cssClass],
|
|
701
|
-
component: 'ion-select-modal',
|
|
702
|
-
componentProps: {
|
|
598
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
599
|
+
const modalOpts = Object.assign(Object.assign({}, interfaceOptions), { mode: theme, cssClass: ['select-modal', interfaceOptions.cssClass], component: 'ion-select-modal', componentProps: {
|
|
703
600
|
header: interfaceOptions.header,
|
|
704
601
|
cancelText: this.cancelText,
|
|
602
|
+
cancelIcon: this.cancelIcon,
|
|
705
603
|
multiple,
|
|
706
604
|
value,
|
|
707
605
|
options: this.createOverlaySelectOptions(this.childOpts, value),
|
|
708
|
-
}
|
|
709
|
-
};
|
|
606
|
+
} });
|
|
710
607
|
return overlays.modalController.create(modalOpts);
|
|
711
608
|
}
|
|
712
609
|
/**
|
|
@@ -768,51 +665,18 @@ const Select = class {
|
|
|
768
665
|
};
|
|
769
666
|
this.ionStyle.emit(style);
|
|
770
667
|
}
|
|
771
|
-
|
|
772
|
-
const
|
|
773
|
-
const
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
668
|
+
getSize() {
|
|
669
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
670
|
+
const { size } = this;
|
|
671
|
+
// TODO(ROU-11370): Remove theme check when sizes are defined for all themes.
|
|
672
|
+
if (theme !== 'ionic') {
|
|
673
|
+
return undefined;
|
|
777
674
|
}
|
|
778
|
-
|
|
779
|
-
|
|
780
|
-
* Prevent clicks to the start/end slots from opening the select.
|
|
781
|
-
* We ensure the target isn't this element in case the select is slotted
|
|
782
|
-
* in, for example, an item. This would prevent the select from ever
|
|
783
|
-
* being opened since the element itself has slot="start"/"end".
|
|
784
|
-
*
|
|
785
|
-
* Clicking a slotted element also causes a click
|
|
786
|
-
* on the <label> element (since it wraps the slots).
|
|
787
|
-
* Clicking <label> dispatches another click event on
|
|
788
|
-
* the native form control that then bubbles up to this
|
|
789
|
-
* listener. This additional event targets the host
|
|
790
|
-
* element, so the select overlay is opened.
|
|
791
|
-
*
|
|
792
|
-
* When the slotted elements are clicked (and therefore
|
|
793
|
-
* the ancestor <label> element) we want to prevent the label
|
|
794
|
-
* from dispatching another click event.
|
|
795
|
-
*
|
|
796
|
-
* Do not call stopPropagation() because this will cause
|
|
797
|
-
* click handlers on the slotted elements to never fire in React.
|
|
798
|
-
* When developers do onClick in React a native "click" listener
|
|
799
|
-
* is added on the root element, not the slotted element. When that
|
|
800
|
-
* native click listener fires, React then dispatches the synthetic
|
|
801
|
-
* click event on the slotted element. However, if stopPropagation
|
|
802
|
-
* is called then the native click event will never bubble up
|
|
803
|
-
* to the root element.
|
|
804
|
-
*/
|
|
805
|
-
ev.preventDefault();
|
|
675
|
+
if (size === undefined) {
|
|
676
|
+
return 'medium';
|
|
806
677
|
}
|
|
807
|
-
|
|
808
|
-
|
|
809
|
-
this.hasFocus = true;
|
|
810
|
-
this.ionFocus.emit();
|
|
811
|
-
};
|
|
812
|
-
onBlur = () => {
|
|
813
|
-
this.hasFocus = false;
|
|
814
|
-
this.ionBlur.emit();
|
|
815
|
-
};
|
|
678
|
+
return size;
|
|
679
|
+
}
|
|
816
680
|
renderLabel() {
|
|
817
681
|
const { label } = this;
|
|
818
682
|
return (index.h("div", { class: {
|
|
@@ -821,8 +685,8 @@ const Select = class {
|
|
|
821
685
|
}, part: "label" }, label === undefined ? index.h("slot", { name: "label" }) : index.h("div", { class: "label-text" }, label)));
|
|
822
686
|
}
|
|
823
687
|
componentDidRender() {
|
|
824
|
-
|
|
825
|
-
this.
|
|
688
|
+
var _a;
|
|
689
|
+
(_a = this.notchController) === null || _a === void 0 ? void 0 : _a.calculateNotchWidth();
|
|
826
690
|
}
|
|
827
691
|
/**
|
|
828
692
|
* Gets any content passed into the `label` slot,
|
|
@@ -841,24 +705,33 @@ const Select = class {
|
|
|
841
705
|
return this.label !== undefined || this.labelSlot !== null;
|
|
842
706
|
}
|
|
843
707
|
/**
|
|
844
|
-
*
|
|
845
|
-
*
|
|
846
|
-
* or mouse) and slotted content clicks to propagate so event delegation
|
|
847
|
-
* works for parent handlers.
|
|
708
|
+
* Renders the border container
|
|
709
|
+
* when fill="outline".
|
|
848
710
|
*/
|
|
849
|
-
|
|
850
|
-
|
|
851
|
-
|
|
711
|
+
renderLabelContainer() {
|
|
712
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
713
|
+
const hasOutlineFill = theme === 'md' && this.fill === 'outline';
|
|
714
|
+
if (hasOutlineFill) {
|
|
715
|
+
/**
|
|
716
|
+
* The outline fill has a special outline
|
|
717
|
+
* that appears around the select and the label.
|
|
718
|
+
* Certain stacked and floating label placements cause the
|
|
719
|
+
* label to translate up and create a "cut out"
|
|
720
|
+
* inside of that border by using the notch-spacer element.
|
|
721
|
+
*/
|
|
722
|
+
return [
|
|
723
|
+
index.h("div", { class: "select-outline-container" }, index.h("div", { class: "select-outline-start" }), index.h("div", { class: {
|
|
724
|
+
'select-outline-notch': true,
|
|
725
|
+
'select-outline-notch-hidden': !this.hasLabel,
|
|
726
|
+
} }, index.h("div", { class: "notch-spacer", "aria-hidden": "true", ref: (el) => (this.notchSpacerEl = el) }, this.label)), index.h("div", { class: "select-outline-end" })),
|
|
727
|
+
this.renderLabel(),
|
|
728
|
+
];
|
|
852
729
|
}
|
|
853
|
-
|
|
854
|
-
|
|
855
|
-
|
|
856
|
-
|
|
857
|
-
|
|
858
|
-
return (index.h("div", { class: "select-outline-container" }, index.h("div", { class: "select-outline-start" }), index.h("div", { class: {
|
|
859
|
-
'select-outline-notch': true,
|
|
860
|
-
'select-outline-notch-hidden': !this.hasLabel,
|
|
861
|
-
} }, index.h("div", { class: "notch-spacer", "aria-hidden": "true", ref: (el) => (this.notchSpacerEl = el) }, this.label)), index.h("div", { class: "select-outline-end" })));
|
|
730
|
+
/**
|
|
731
|
+
* If not using the outline style,
|
|
732
|
+
* we can render just the label.
|
|
733
|
+
*/
|
|
734
|
+
return this.renderLabel();
|
|
862
735
|
}
|
|
863
736
|
/**
|
|
864
737
|
* Wraps text nodes in the select text with span elements
|
|
@@ -878,7 +751,8 @@ const Select = class {
|
|
|
878
751
|
return html;
|
|
879
752
|
}
|
|
880
753
|
Array.from(temp.childNodes).forEach((node) => {
|
|
881
|
-
|
|
754
|
+
var _a, _b, _c, _d;
|
|
755
|
+
if (node.nodeType === Node.TEXT_NODE && ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim())) {
|
|
882
756
|
const text = node.textContent;
|
|
883
757
|
/**
|
|
884
758
|
* Split comma separator from the text content
|
|
@@ -889,12 +763,12 @@ const Select = class {
|
|
|
889
763
|
const commaNode = document.createTextNode(commaMatch[1]);
|
|
890
764
|
const wrapper = document.createElement('span');
|
|
891
765
|
wrapper.textContent = commaMatch[2];
|
|
892
|
-
node.parentNode
|
|
893
|
-
wrapper.parentNode
|
|
766
|
+
(_b = node.parentNode) === null || _b === void 0 ? void 0 : _b.replaceChild(wrapper, node);
|
|
767
|
+
(_c = wrapper.parentNode) === null || _c === void 0 ? void 0 : _c.insertBefore(commaNode, wrapper);
|
|
894
768
|
return;
|
|
895
769
|
}
|
|
896
770
|
const wrapper = document.createElement('span');
|
|
897
|
-
node.parentNode
|
|
771
|
+
(_d = node.parentNode) === null || _d === void 0 ? void 0 : _d.replaceChild(wrapper, node);
|
|
898
772
|
wrapper.appendChild(node);
|
|
899
773
|
}
|
|
900
774
|
});
|
|
@@ -930,24 +804,20 @@ const Select = class {
|
|
|
930
804
|
* next to the select text.
|
|
931
805
|
*/
|
|
932
806
|
renderSelectIcon() {
|
|
933
|
-
const
|
|
934
|
-
|
|
935
|
-
|
|
936
|
-
|
|
937
|
-
icon = expandedIcon;
|
|
938
|
-
}
|
|
939
|
-
else {
|
|
940
|
-
const defaultIcon = mode === 'ios' ? index$1.chevronExpand : index$1.caretDownSharp;
|
|
941
|
-
icon = toggleIcon ?? defaultIcon;
|
|
807
|
+
const { isExpanded, selectExpandedIcon, selectCollapsedIcon } = this;
|
|
808
|
+
let icon = selectCollapsedIcon;
|
|
809
|
+
if (isExpanded) {
|
|
810
|
+
icon = selectExpandedIcon;
|
|
942
811
|
}
|
|
943
812
|
return index.h("ion-icon", { class: "select-icon", part: "icon", "aria-hidden": "true", icon: icon });
|
|
944
813
|
}
|
|
945
814
|
get ariaLabel() {
|
|
815
|
+
var _a;
|
|
946
816
|
const { placeholder, inheritedAttributes } = this;
|
|
947
817
|
// Get the plain text from the selected text
|
|
948
818
|
const displayValue = this.getText();
|
|
949
819
|
// The aria label should be preferred over visible text if both are specified
|
|
950
|
-
const definedLabel = inheritedAttributes['aria-label']
|
|
820
|
+
const definedLabel = (_a = inheritedAttributes['aria-label']) !== null && _a !== void 0 ? _a : this.labelText;
|
|
951
821
|
/**
|
|
952
822
|
* If developer has specified a placeholder
|
|
953
823
|
* and there is nothing selected, the selectText
|
|
@@ -973,6 +843,51 @@ const Select = class {
|
|
|
973
843
|
const { disabled, inputId, isExpanded, required } = this;
|
|
974
844
|
return (index.h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-describedby": this.hintTextId, "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
975
845
|
}
|
|
846
|
+
getShape() {
|
|
847
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
848
|
+
const { shape } = this;
|
|
849
|
+
// TODO(ROU-11366): Remove theme check when shapes are defined for all themes.
|
|
850
|
+
if (theme === 'ionic' && shape === undefined) {
|
|
851
|
+
return 'round';
|
|
852
|
+
}
|
|
853
|
+
return shape;
|
|
854
|
+
}
|
|
855
|
+
/**
|
|
856
|
+
* Get the icon to use for the expand icon.
|
|
857
|
+
* If an icon is set on the component, use that.
|
|
858
|
+
* Otherwise, use the icon set in the config.
|
|
859
|
+
* If no icon is set in the config, use the default icon.
|
|
860
|
+
*/
|
|
861
|
+
get selectExpandedIcon() {
|
|
862
|
+
// Return the expandedIcon or toggleIcon if either is explicitly set
|
|
863
|
+
if (this.expandedIcon != null) {
|
|
864
|
+
return this.expandedIcon;
|
|
865
|
+
}
|
|
866
|
+
else if (this.toggleIcon != null) {
|
|
867
|
+
return this.toggleIcon;
|
|
868
|
+
}
|
|
869
|
+
// Determine the theme and map to the default icon
|
|
870
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
871
|
+
const defaultIcon = theme === 'ios' ? index$1.chevronExpand : index$1.caretDownSharp;
|
|
872
|
+
// Return the configured select expanded icon or the default icon
|
|
873
|
+
return index.config.get('selectExpandedIcon', defaultIcon);
|
|
874
|
+
}
|
|
875
|
+
/**
|
|
876
|
+
* Get the icon to use for the collapsed icon.
|
|
877
|
+
* If an icon is set on the component, use that.
|
|
878
|
+
* Otherwise, use the icon set in the config.
|
|
879
|
+
* If no icon is set in the config, use the default icon.
|
|
880
|
+
*/
|
|
881
|
+
get selectCollapsedIcon() {
|
|
882
|
+
// Return the toggleIcon if it is explicitly set
|
|
883
|
+
if (this.toggleIcon) {
|
|
884
|
+
return this.toggleIcon;
|
|
885
|
+
}
|
|
886
|
+
// Determine the theme and map to the default icon
|
|
887
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
888
|
+
const defaultIcon = theme === 'ios' ? index$1.chevronExpand : index$1.caretDownSharp;
|
|
889
|
+
return index.config.get('selectCollapsedIcon', defaultIcon);
|
|
890
|
+
}
|
|
976
891
|
getHintTextId() {
|
|
977
892
|
const { helperText, errorText, helperTextId, errorTextId, isInvalid } = this;
|
|
978
893
|
if (isInvalid && errorText) {
|
|
@@ -1010,19 +925,41 @@ const Select = class {
|
|
|
1010
925
|
return (index.h("div", { class: "select-bottom", part: "bottom" }, this.renderHintText()));
|
|
1011
926
|
}
|
|
1012
927
|
render() {
|
|
1013
|
-
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill,
|
|
1014
|
-
const
|
|
928
|
+
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, name, value, hasFocus, } = this;
|
|
929
|
+
const theme$1 = ionicGlobal.getIonTheme(this);
|
|
930
|
+
const shape = this.getShape();
|
|
1015
931
|
const hasFloatingOrStackedLabel = labelPlacement === 'floating' || labelPlacement === 'stacked';
|
|
932
|
+
const shouldRenderOuterIcon = theme$1 !== 'ionic' && hasFloatingOrStackedLabel;
|
|
933
|
+
const shouldRenderInnerIcon = theme$1 === 'ionic' || !hasFloatingOrStackedLabel;
|
|
1016
934
|
const justifyEnabled = !hasFloatingOrStackedLabel && justify !== undefined;
|
|
1017
935
|
const rtl = dir.isRTL(el) ? 'rtl' : 'ltr';
|
|
1018
936
|
const inItem = theme.hostContext('ion-item', this.el);
|
|
1019
|
-
const
|
|
937
|
+
const size = this.getSize();
|
|
938
|
+
const shouldRenderHighlight = theme$1 === 'md' && fill !== 'outline' && !inItem;
|
|
1020
939
|
const hasValue = this.hasValue();
|
|
1021
|
-
const
|
|
940
|
+
const hasStartEndSlots = el.querySelector('[slot="start"], [slot="end"]') !== null;
|
|
1022
941
|
helpers.renderHiddenInput(true, el, name, parseValue(value), disabled);
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
942
|
+
/**
|
|
943
|
+
* If the label is stacked, it should always sit above the select.
|
|
944
|
+
* For floating labels, the label should move above the select if
|
|
945
|
+
* the select has a value, is open, or has anything in either
|
|
946
|
+
* the start or end slot.
|
|
947
|
+
*
|
|
948
|
+
* If there is content in the start slot, the label would overlap
|
|
949
|
+
* it if not forced to float. This is also applied to the end slot
|
|
950
|
+
* because with the default or solid fills, the select is not
|
|
951
|
+
* vertically centered in the container, but the label is. This
|
|
952
|
+
* causes the slots and label to appear vertically offset from each
|
|
953
|
+
* other when the label isn't floating above the input. This doesn't
|
|
954
|
+
* apply to the outline fill, but this was not accounted for to keep
|
|
955
|
+
* things consistent.
|
|
956
|
+
*
|
|
957
|
+
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
958
|
+
*/
|
|
959
|
+
const labelShouldFloat = labelPlacement === 'stacked' ||
|
|
960
|
+
(labelPlacement === 'floating' && (hasValue || hasFocus || isExpanded || hasStartEndSlots));
|
|
961
|
+
return (index.h(index.Host, { key: '421ff485c68f19ae1a0002360fb844d64e26341b', onClick: this.onClick, class: theme.createColorClasses(this.color, {
|
|
962
|
+
[theme$1]: true,
|
|
1026
963
|
'in-item': inItem,
|
|
1027
964
|
'in-item-color': theme.hostContext('ion-item.ion-color', el),
|
|
1028
965
|
'select-disabled': disabled,
|
|
@@ -1039,8 +976,20 @@ const Select = class {
|
|
|
1039
976
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
1040
977
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
1041
978
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
1042
|
-
|
|
979
|
+
[`select-size-${size}`]: size !== undefined,
|
|
980
|
+
}) }, index.h("label", { key: '3a3fa4c1cdac0bf4d8e1751df28d84cb98125db3', class: "select-wrapper", id: "select-label", onClick: this.onLabelClick, part: "wrapper" }, this.renderLabelContainer(), index.h("div", { key: 'f4b74cf2fb4c844570c9c6a4856e4dae9fa08546', class: "select-wrapper-inner", part: "inner" },
|
|
981
|
+
/**
|
|
982
|
+
* For the ionic theme, we render the outline container here
|
|
983
|
+
* instead of higher up, so it can be positioned relative to
|
|
984
|
+
* the native wrapper instead of the <label> element or the
|
|
985
|
+
* entire component. This allows the label text to be positioned
|
|
986
|
+
* above the outline, while staying within the bounds of the
|
|
987
|
+
* <label> element, ensuring that clicking the label text
|
|
988
|
+
* focuses the select.
|
|
989
|
+
*/
|
|
990
|
+
theme$1 === 'ionic' && fill === 'outline' && index.h("div", { key: '79f6cf63866b2cc95b3404db5b7146215876a9ef', class: "select-outline" }), index.h("slot", { key: '9effed7b9be2ff2efc195365ba076a51aefdff12', name: "start" }), index.h("div", { key: 'd46086c58ab4a036d90a040754658de96a7b954a', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), index.h("slot", { key: '444888068450fc299780e48c8f9208cb0918ca81', name: "end" }), shouldRenderInnerIcon && this.renderSelectIcon()), shouldRenderOuterIcon && this.renderSelectIcon(), shouldRenderHighlight && index.h("div", { key: 'e005924ae26585279f58fce726f6f14b3076d255', class: "select-highlight" })), this.renderBottomContent()));
|
|
1043
991
|
}
|
|
992
|
+
get el() { return index.getElement(this); }
|
|
1044
993
|
static get watchers() { return {
|
|
1045
994
|
"disabled": [{
|
|
1046
995
|
"styleChanged": 0
|
|
@@ -1122,7 +1071,7 @@ const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
|
1122
1071
|
*/
|
|
1123
1072
|
if (content) {
|
|
1124
1073
|
const texts = Array.from(content.childNodes)
|
|
1125
|
-
.map((n) => n.textContent
|
|
1074
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
1126
1075
|
.filter((t) => t);
|
|
1127
1076
|
return texts.join(' ') || null;
|
|
1128
1077
|
}
|
|
@@ -1142,8 +1091,9 @@ const textForValue = (opts, value, compareWith, useHTML = false) => {
|
|
|
1142
1091
|
*/
|
|
1143
1092
|
const trimTextNodes = (node) => {
|
|
1144
1093
|
node.childNodes.forEach((child) => {
|
|
1094
|
+
var _a;
|
|
1145
1095
|
if (child.nodeType === Node.TEXT_NODE) {
|
|
1146
|
-
child.textContent = child.textContent
|
|
1096
|
+
child.textContent = ((_a = child.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
1147
1097
|
}
|
|
1148
1098
|
else if (child.nodeType === Node.ELEMENT_NODE) {
|
|
1149
1099
|
trimTextNodes(child);
|
|
@@ -1171,13 +1121,14 @@ const getOptionContent = (option, slotName, useHTML = false) => {
|
|
|
1171
1121
|
// Default slot: get nodes without a slot attribute
|
|
1172
1122
|
const defaultSlot = getOptionDefaultSlot(option) || [];
|
|
1173
1123
|
nodes = defaultSlot.filter((node) => {
|
|
1124
|
+
var _a;
|
|
1174
1125
|
/**
|
|
1175
1126
|
* Exclude whitespace-only text nodes (newline noise between
|
|
1176
1127
|
* markup elements). Element nodes are always kept, even when
|
|
1177
1128
|
* their textContent is empty (e.g. <svg>, <img>).
|
|
1178
1129
|
*/
|
|
1179
1130
|
if (node.nodeType === Node.TEXT_NODE) {
|
|
1180
|
-
return node.textContent
|
|
1131
|
+
return ((_a = node.textContent) === null || _a === void 0 ? void 0 : _a.trim().length) !== 0;
|
|
1181
1132
|
}
|
|
1182
1133
|
return true;
|
|
1183
1134
|
});
|
|
@@ -1187,7 +1138,7 @@ const getOptionContent = (option, slotName, useHTML = false) => {
|
|
|
1187
1138
|
}
|
|
1188
1139
|
// Return plain text if no elements are found
|
|
1189
1140
|
if (!slotName && nodes.every((n) => n.nodeType === Node.TEXT_NODE)) {
|
|
1190
|
-
return nodes.map((n) => n.textContent
|
|
1141
|
+
return nodes.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); }).join(' ') || null;
|
|
1191
1142
|
}
|
|
1192
1143
|
/**
|
|
1193
1144
|
* Mirror known custom-element properties (e.g. ion-icon's `icon`)
|
|
@@ -1203,9 +1154,10 @@ const getOptionContent = (option, slotName, useHTML = false) => {
|
|
|
1203
1154
|
// Clone each node into a temporary container
|
|
1204
1155
|
const container = document.createElement('div');
|
|
1205
1156
|
nodes.forEach((n) => {
|
|
1157
|
+
var _a;
|
|
1206
1158
|
const clone = n.cloneNode(true);
|
|
1207
1159
|
if (clone.nodeType === Node.TEXT_NODE) {
|
|
1208
|
-
clone.textContent = clone.textContent
|
|
1160
|
+
clone.textContent = ((_a = clone.textContent) === null || _a === void 0 ? void 0 : _a.trim()) || '';
|
|
1209
1161
|
}
|
|
1210
1162
|
else {
|
|
1211
1163
|
trimTextNodes(clone);
|
|
@@ -1256,7 +1208,7 @@ const getDefaultSlotPlainText = (option) => {
|
|
|
1256
1208
|
return node.nodeType === Node.TEXT_NODE;
|
|
1257
1209
|
})
|
|
1258
1210
|
.filter((node) => node.nodeType === Node.TEXT_NODE)
|
|
1259
|
-
.map((n) => n.textContent
|
|
1211
|
+
.map((n) => { var _a; return (_a = n.textContent) === null || _a === void 0 ? void 0 : _a.trim(); })
|
|
1260
1212
|
.filter((t) => t);
|
|
1261
1213
|
return texts.join(' ');
|
|
1262
1214
|
};
|
|
@@ -1270,6 +1222,7 @@ const getDefaultSlotPlainText = (option) => {
|
|
|
1270
1222
|
* via the `innerHTMLTemplatesEnabled` config.
|
|
1271
1223
|
*/
|
|
1272
1224
|
const extractOptionContent = (option, customHTMLEnabled) => {
|
|
1225
|
+
var _a, _b;
|
|
1273
1226
|
if (!customHTMLEnabled) {
|
|
1274
1227
|
return {
|
|
1275
1228
|
content: getDefaultSlotPlainText(option),
|
|
@@ -1279,13 +1232,14 @@ const extractOptionContent = (option, customHTMLEnabled) => {
|
|
|
1279
1232
|
}
|
|
1280
1233
|
return {
|
|
1281
1234
|
content: getOptionContent(option),
|
|
1282
|
-
startContent: getOptionContent(option, 'start')
|
|
1283
|
-
endContent: getOptionContent(option, 'end')
|
|
1235
|
+
startContent: (_a = getOptionContent(option, 'start')) !== null && _a !== void 0 ? _a : undefined,
|
|
1236
|
+
endContent: (_b = getOptionContent(option, 'end')) !== null && _b !== void 0 ? _b : undefined,
|
|
1284
1237
|
};
|
|
1285
1238
|
};
|
|
1286
1239
|
let selectIds = 0;
|
|
1287
1240
|
const OPTION_CLASS = 'select-interface-option';
|
|
1288
1241
|
Select.style = {
|
|
1242
|
+
ionic: selectIonicCss(),
|
|
1289
1243
|
ios: selectIosCss(),
|
|
1290
1244
|
md: selectMdCss()
|
|
1291
1245
|
};
|
|
@@ -1295,91 +1249,41 @@ const selectOptionCss = () => `:host{display:none}`;
|
|
|
1295
1249
|
const SelectOption = class {
|
|
1296
1250
|
constructor(hostRef) {
|
|
1297
1251
|
index.registerInstance(this, hostRef);
|
|
1252
|
+
this.inputId = `ion-selopt-${selectOptionIds++}`;
|
|
1253
|
+
/**
|
|
1254
|
+
* If `true`, the user cannot interact with the select option.
|
|
1255
|
+
*/
|
|
1256
|
+
this.disabled = false;
|
|
1298
1257
|
}
|
|
1299
|
-
inputId = `ion-selopt-${selectOptionIds++}`;
|
|
1300
|
-
get el() { return index.getElement(this); }
|
|
1301
|
-
/**
|
|
1302
|
-
* If `true`, the user cannot interact with the select option.
|
|
1303
|
-
*/
|
|
1304
|
-
disabled = false;
|
|
1305
|
-
/**
|
|
1306
|
-
* The text value of the option.
|
|
1307
|
-
*/
|
|
1308
|
-
value;
|
|
1309
|
-
/**
|
|
1310
|
-
* Text that is placed underneath the option text to provide additional details about the option.
|
|
1311
|
-
*/
|
|
1312
|
-
description;
|
|
1313
|
-
/**
|
|
1314
|
-
* Where the label is placed relative to the option's selection control
|
|
1315
|
-
* (radio circle or checkbox box) when the option is rendered in an
|
|
1316
|
-
* `alert`, `popover`, or `modal` interface.
|
|
1317
|
-
* `"start"`: The label will appear to the left of the radio in LTR and to the right in RTL.
|
|
1318
|
-
* `"end"`: The label will appear to the right of the radio in LTR and to the left in RTL.
|
|
1319
|
-
*
|
|
1320
|
-
* Applies to the `alert`, `popover`, and `modal` interfaces, but has no
|
|
1321
|
-
* visible effect on radio options in `popover` or `modal` on `md` (the radio control is hidden there).
|
|
1322
|
-
*
|
|
1323
|
-
* When unset, the interface picks a default based on mode and control
|
|
1324
|
-
* type.
|
|
1325
|
-
*/
|
|
1326
|
-
labelPlacement;
|
|
1327
|
-
/**
|
|
1328
|
-
* How to pack the label and the option's selection control within a line.
|
|
1329
|
-
* `"start"`: The label and radio will appear on the left in LTR and
|
|
1330
|
-
* on the right in RTL.
|
|
1331
|
-
* `"end"`: The label and radio will appear on the right in LTR and
|
|
1332
|
-
* on the left in RTL.
|
|
1333
|
-
* `"space-between"`: The label and radio will appear on opposite
|
|
1334
|
-
* ends of the line with space between the two elements.
|
|
1335
|
-
*
|
|
1336
|
-
* Applies to the `alert`, `popover`, and `modal` interfaces, but has no
|
|
1337
|
-
* visible effect on radio options in `popover` or `modal` on `md` (the radio control is hidden there).
|
|
1338
|
-
*
|
|
1339
|
-
* When unset, the interface picks a default based on mode and control
|
|
1340
|
-
* type.
|
|
1341
|
-
*/
|
|
1342
|
-
justify;
|
|
1343
1258
|
render() {
|
|
1344
|
-
|
|
1259
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
1260
|
+
return (index.h(index.Host, { key: '68921c28b739be849fc204bb9c45316acad6e652', class: {
|
|
1261
|
+
[theme]: true,
|
|
1262
|
+
}, role: "option", id: this.inputId }));
|
|
1345
1263
|
}
|
|
1264
|
+
get el() { return index.getElement(this); }
|
|
1346
1265
|
};
|
|
1347
1266
|
let selectOptionIds = 0;
|
|
1348
1267
|
SelectOption.style = selectOptionCss();
|
|
1349
1268
|
|
|
1350
|
-
const
|
|
1269
|
+
const selectPopoverIonicCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ionic,.alert-radio-label-has-rich-content.sc-ion-select-popover-ionic,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ionic,.select-option-label-has-rich-content.sc-ion-select-popover-ionic{gap:var(--token-space-300, var(--token-scale-300, 12px))}.action-sheet-button-label-text.sc-ion-select-popover-ionic,.alert-checkbox-label-text.sc-ion-select-popover-ionic,.alert-radio-label-text.sc-ion-select-popover-ionic,.select-option-label-text.sc-ion-select-popover-ionic{gap:var(--token-space-300, var(--token-scale-300, 12px))}.select-option-description.sc-ion-select-popover-ionic{font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none;-webkit-padding-start:var(--token-space-0, var(--token-scale-0, 0px));padding-inline-start:var(--token-space-0, var(--token-scale-0, 0px));-webkit-padding-end:var(--token-space-0, var(--token-scale-0, 0px));padding-inline-end:var(--token-space-0, var(--token-scale-0, 0px));padding-top:var(--token-space-0, var(--token-scale-0, 0px));padding-bottom:var(--token-space-0, var(--token-scale-0, 0px));color:var(--token-text-subtle, var(--token-primitives-neutral-1000, #3b3b3b));font-size:var(--token-font-size-350, 0.875rem)}.select-option-start.sc-ion-select-popover-ionic,.select-option-end.sc-ion-select-popover-ionic{gap:var(--token-space-200, var(--token-scale-200, 8px))}.select-option-start.sc-ion-select-popover-ionic>ion-avatar.sc-ion-select-popover-ionic,.select-option-start.sc-ion-select-popover-ionic>ion-img.sc-ion-select-popover-ionic,.select-option-start.sc-ion-select-popover-ionic>ion-thumbnail.sc-ion-select-popover-ionic,.select-option-start.sc-ion-select-popover-ionic>img.sc-ion-select-popover-ionic,.select-option-start.sc-ion-select-popover-ionic>svg.sc-ion-select-popover-ionic,.select-option-end.sc-ion-select-popover-ionic>ion-avatar.sc-ion-select-popover-ionic,.select-option-end.sc-ion-select-popover-ionic>ion-img.sc-ion-select-popover-ionic,.select-option-end.sc-ion-select-popover-ionic>ion-thumbnail.sc-ion-select-popover-ionic,.select-option-end.sc-ion-select-popover-ionic>img.sc-ion-select-popover-ionic,.select-option-end.sc-ion-select-popover-ionic>svg.sc-ion-select-popover-ionic{width:var(--token-scale-1200, 48px);height:var(--token-scale-1200, 48px)}.select-option-start.sc-ion-select-popover-ionic>ion-icon.sc-ion-select-popover-ionic,.select-option-end.sc-ion-select-popover-ionic>ion-icon.sc-ion-select-popover-ionic{font-size:var(--token-scale-1200, 48px)}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ionic,.alert-radio-label-has-rich-content.sc-ion-select-popover-ionic,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ionic,.select-option-label-has-rich-content.sc-ion-select-popover-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ionic,.alert-radio-label-has-rich-content.sc-ion-select-popover-ionic,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ionic,.select-option-content.sc-ion-select-popover-ionic{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-popover-ionic,.alert-checkbox-label-text.sc-ion-select-popover-ionic,.alert-radio-label-text.sc-ion-select-popover-ionic,.select-option-label-text.sc-ion-select-popover-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-start.sc-ion-select-popover-ionic,.select-option-end.sc-ion-select-popover-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-popover-ionic{display:block}.select-option-label.sc-ion-select-popover-ionic:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-popover-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-popover-ionic::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-popover-ionic [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-ionic::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-ionic [part~="label"],.select-option-content.sc-ion-select-popover-ionic{-ms-flex:1;flex:1;white-space:normal}.sc-ion-select-popover-ionic-h ion-list.sc-ion-select-popover-ionic{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-ionic,ion-label.sc-ion-select-popover-ionic{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-ionic-h{overflow-y:auto}ion-item.sc-ion-select-popover-ionic{--border-width:var(--token-border-size-0, var(--token-scale-0, 0px));--background-focused:transparent;--background-focused-opacity:1;--background-hover:var(--token-bg-neutral-subtlest-press, var(--token-primitives-neutral-200, #eae9e9));--background-hover-opacity:1;--background-activated:var(--token-bg-neutral-subtlest-press, var(--token-primitives-neutral-200, #eae9e9));--background-activated-opacity:1}ion-item.ion-focused.item-checkbox-checked.sc-ion-select-popover-ionic,ion-item.ion-focused.item-radio-checked.sc-ion-select-popover-ionic{--background-focused:var(--token-bg-primary-subtle-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc)));--background-focused-opacity:1}ion-list.sc-ion-select-popover-ionic ion-radio.sc-ion-select-popover-ionic::part(container),ion-list.sc-ion-select-popover-ionic ion-radio.sc-ion-select-popover-ionic [part~="container"]{display:none}ion-list.sc-ion-select-popover-ionic ion-radio.sc-ion-select-popover-ionic::part(label),ion-list.sc-ion-select-popover-ionic ion-radio.sc-ion-select-popover-ionic [part~="label"]{-webkit-margin-start:var(--token-space-0, var(--token-scale-0, 0px));margin-inline-start:var(--token-space-0, var(--token-scale-0, 0px));-webkit-margin-end:var(--token-space-0, var(--token-scale-0, 0px));margin-inline-end:var(--token-space-0, var(--token-scale-0, 0px));margin-top:var(--token-space-0, var(--token-scale-0, 0px));margin-bottom:var(--token-space-0, var(--token-scale-0, 0px))}ion-list.sc-ion-select-popover-ionic ion-radio.sc-ion-select-popover-ionic::part(label),ion-list.sc-ion-select-popover-ionic ion-radio.sc-ion-select-popover-ionic [part~="label"],ion-list.sc-ion-select-popover-ionic ion-checkbox.sc-ion-select-popover-ionic::part(label),ion-list.sc-ion-select-popover-ionic ion-checkbox.sc-ion-select-popover-ionic [part~="label"]{font-size:var(--token-font-size-400, 1rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none}.item-radio-checked.sc-ion-select-popover-ionic,.item-checkbox-checked.sc-ion-select-popover-ionic{--background:var(--token-bg-primary-subtle-default, var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc)))}`;
|
|
1270
|
+
|
|
1271
|
+
const selectPopoverIosCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ios,.alert-radio-label-has-rich-content.sc-ion-select-popover-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ios,.select-option-label-has-rich-content.sc-ion-select-popover-ios{gap:16px}.action-sheet-button-label-text.sc-ion-select-popover-ios,.alert-checkbox-label-text.sc-ion-select-popover-ios,.alert-radio-label-text.sc-ion-select-popover-ios,.select-option-label-text.sc-ion-select-popover-ios{gap:12px}.select-option-start.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios{gap:8px}.select-option-description.sc-ion-select-popover-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-start.sc-ion-select-popover-ios>ion-avatar.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>ion-img.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>ion-thumbnail.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>img.sc-ion-select-popover-ios,.select-option-start.sc-ion-select-popover-ios>svg.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-avatar.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-img.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-thumbnail.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>img.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>svg.sc-ion-select-popover-ios{width:44px;height:44px}.select-option-start.sc-ion-select-popover-ios>ion-icon.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios>ion-icon.sc-ion-select-popover-ios{font-size:28px}.action-sheet-button-label-text.sc-ion-select-popover-ios{-ms-flex-pack:center;justify-content:center}.select-option-has-rich-content.sc-ion-select-popover-ios{-webkit-padding-end:16px;padding-inline-end:16px}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ios,.alert-radio-label-has-rich-content.sc-ion-select-popover-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ios,.select-option-label-has-rich-content.sc-ion-select-popover-ios{gap:16px}.action-sheet-button-label-text.sc-ion-select-popover-ios,.alert-checkbox-label-text.sc-ion-select-popover-ios,.alert-radio-label-text.sc-ion-select-popover-ios,.select-option-label-text.sc-ion-select-popover-ios{gap:12px}.select-option-start.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios{gap:8px}.select-option-description.sc-ion-select-popover-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ios,.alert-radio-label-has-rich-content.sc-ion-select-popover-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ios,.select-option-label-has-rich-content.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-ios,.alert-radio-label-has-rich-content.sc-ion-select-popover-ios,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-ios,.select-option-content.sc-ion-select-popover-ios{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-popover-ios,.alert-checkbox-label-text.sc-ion-select-popover-ios,.alert-radio-label-text.sc-ion-select-popover-ios,.select-option-label-text.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-start.sc-ion-select-popover-ios,.select-option-end.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-popover-ios{display:block}.select-option-label.sc-ion-select-popover-ios:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-popover-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-popover-ios::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-popover-ios [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-ios::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-ios [part~="label"],.select-option-content.sc-ion-select-popover-ios{-ms-flex:1;flex:1;white-space:normal}.sc-ion-select-popover-ios-h ion-list.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-ios,ion-label.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-ios-h{overflow-y:auto}`;
|
|
1351
1272
|
|
|
1352
|
-
const selectPopoverMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-popover-md,.alert-radio-label-has-rich-content.sc-ion-select-popover-md,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-md,.select-option-label-has-rich-content.sc-ion-select-popover-md{
|
|
1273
|
+
const selectPopoverMdCss = () => `.action-sheet-button-label-has-rich-content.sc-ion-select-popover-md,.alert-radio-label-has-rich-content.sc-ion-select-popover-md,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-md,.select-option-label-has-rich-content.sc-ion-select-popover-md{gap:16px}.action-sheet-button-label-text.sc-ion-select-popover-md,.alert-checkbox-label-text.sc-ion-select-popover-md,.alert-radio-label-text.sc-ion-select-popover-md,.select-option-label-text.sc-ion-select-popover-md{gap:12px}.select-option-start.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md{gap:8px}.select-option-description.sc-ion-select-popover-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.select-option-start.sc-ion-select-popover-md>ion-avatar.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-avatar.sc-ion-select-popover-md{width:40px;height:40px}.select-option-start.sc-ion-select-popover-md>ion-icon.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-icon.sc-ion-select-popover-md{font-size:24px}.select-option-start.sc-ion-select-popover-md>ion-img.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>img.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>svg.sc-ion-select-popover-md,.select-option-start.sc-ion-select-popover-md>ion-thumbnail.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-img.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>img.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>svg.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>ion-thumbnail.sc-ion-select-popover-md{width:56px;height:56px}.select-option-start.sc-ion-select-popover-md>video.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md>video.sc-ion-select-popover-md{width:114px;height:56px}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-md,.alert-radio-label-has-rich-content.sc-ion-select-popover-md,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-md,.select-option-label-has-rich-content.sc-ion-select-popover-md{gap:16px}.action-sheet-button-label-text.sc-ion-select-popover-md,.alert-checkbox-label-text.sc-ion-select-popover-md,.alert-radio-label-text.sc-ion-select-popover-md,.select-option-label-text.sc-ion-select-popover-md{gap:12px}.select-option-start.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md{gap:8px}.select-option-description.sc-ion-select-popover-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-md,.alert-radio-label-has-rich-content.sc-ion-select-popover-md,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-md,.select-option-label-has-rich-content.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.action-sheet-button-label-has-rich-content.sc-ion-select-popover-md,.alert-radio-label-has-rich-content.sc-ion-select-popover-md,.alert-checkbox-label-has-rich-content.sc-ion-select-popover-md,.select-option-content.sc-ion-select-popover-md{-ms-flex:1;flex:1}.action-sheet-button-label-text.sc-ion-select-popover-md,.alert-checkbox-label-text.sc-ion-select-popover-md,.alert-radio-label-text.sc-ion-select-popover-md,.select-option-label-text.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-start.sc-ion-select-popover-md,.select-option-end.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-popover-md{display:block}.select-option-label.sc-ion-select-popover-md:not(.select-option-label-has-rich-content){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.select-option-label-has-rich-content.sc-ion-select-popover-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}ion-radio.select-option-has-rich-content.sc-ion-select-popover-md::part(label),ion-radio.select-option-has-rich-content.sc-ion-select-popover-md [part~="label"],ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-md::part(label),ion-checkbox.select-option-has-rich-content.sc-ion-select-popover-md [part~="label"],.select-option-content.sc-ion-select-popover-md{-ms-flex:1;flex:1;white-space:normal}.sc-ion-select-popover-md-h ion-list.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-md,ion-label.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-select-popover-md-h{overflow-y:auto}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(container),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="container"]{display:none}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(label),ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-popover-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-popover-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-popover-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}`;
|
|
1353
1274
|
|
|
1354
1275
|
const SelectPopover = class {
|
|
1355
1276
|
constructor(hostRef) {
|
|
1356
1277
|
index.registerInstance(this, hostRef);
|
|
1278
|
+
// Tracks the option that received Enter-keydown so keyup only
|
|
1279
|
+
// dismisses when the press started on the same option. Prevents
|
|
1280
|
+
// Enter on the triggering ion-select from auto-dismissing.
|
|
1281
|
+
this.pendingEnterTarget = null;
|
|
1282
|
+
/**
|
|
1283
|
+
* An array of options for the popover
|
|
1284
|
+
*/
|
|
1285
|
+
this.options = [];
|
|
1357
1286
|
}
|
|
1358
|
-
get el() { return index.getElement(this); }
|
|
1359
|
-
// Tracks the option that received Enter-keydown so keyup only
|
|
1360
|
-
// dismisses when the press started on the same option. Prevents
|
|
1361
|
-
// Enter on the triggering ion-select from auto-dismissing.
|
|
1362
|
-
pendingEnterTarget = null;
|
|
1363
|
-
/**
|
|
1364
|
-
* The header text of the popover
|
|
1365
|
-
*/
|
|
1366
|
-
header;
|
|
1367
|
-
/**
|
|
1368
|
-
* The subheader text of the popover
|
|
1369
|
-
*/
|
|
1370
|
-
subHeader;
|
|
1371
|
-
/**
|
|
1372
|
-
* The text content of the popover body
|
|
1373
|
-
*/
|
|
1374
|
-
message;
|
|
1375
|
-
/**
|
|
1376
|
-
* If true, the select accepts multiple values
|
|
1377
|
-
*/
|
|
1378
|
-
multiple;
|
|
1379
|
-
/**
|
|
1380
|
-
* An array of options for the popover
|
|
1381
|
-
*/
|
|
1382
|
-
options = [];
|
|
1383
1287
|
findOptionFromEvent(ev) {
|
|
1384
1288
|
const { options } = this;
|
|
1385
1289
|
return options.find((o) => o.value === ev.target.value);
|
|
@@ -1392,7 +1296,7 @@ const SelectPopover = class {
|
|
|
1392
1296
|
callOptionHandler(ev) {
|
|
1393
1297
|
const option = this.findOptionFromEvent(ev);
|
|
1394
1298
|
const values = this.getValues(ev);
|
|
1395
|
-
if (option
|
|
1299
|
+
if (option === null || option === void 0 ? void 0 : option.handler) {
|
|
1396
1300
|
overlays.safeCall(option.handler, values);
|
|
1397
1301
|
}
|
|
1398
1302
|
}
|
|
@@ -1437,8 +1341,9 @@ const SelectPopover = class {
|
|
|
1437
1341
|
}
|
|
1438
1342
|
}
|
|
1439
1343
|
renderCheckboxOptions(options) {
|
|
1440
|
-
const
|
|
1344
|
+
const theme$1 = ionicGlobal.getIonTheme(this);
|
|
1441
1345
|
return options.map((option, index$1) => {
|
|
1346
|
+
var _a, _b;
|
|
1442
1347
|
/**
|
|
1443
1348
|
* Cast to `SelectOverlayOption` to access rich content
|
|
1444
1349
|
* fields (`startContent`, `endContent`, `description`)
|
|
@@ -1454,18 +1359,17 @@ const SelectPopover = class {
|
|
|
1454
1359
|
endContent: richOption.endContent,
|
|
1455
1360
|
description: richOption.description,
|
|
1456
1361
|
};
|
|
1457
|
-
const defaultLabelPlacement = overlayControlLabel.getOverlayLabelPlacement(
|
|
1458
|
-
const defaultJustify = overlayControlLabel.getOverlayLabelJustify(
|
|
1362
|
+
const defaultLabelPlacement = overlayControlLabel.getOverlayLabelPlacement(theme$1, 'checkbox');
|
|
1363
|
+
const defaultJustify = overlayControlLabel.getOverlayLabelJustify(theme$1, 'checkbox');
|
|
1459
1364
|
return (index.h("ion-item", {
|
|
1460
1365
|
// TODO FW-4784
|
|
1461
|
-
disabled: option.disabled, class: {
|
|
1366
|
+
disabled: option.disabled, class: Object.assign({
|
|
1462
1367
|
// TODO FW-4784
|
|
1463
|
-
'item-checkbox-checked': option.checked
|
|
1464
|
-
|
|
1465
|
-
}
|
|
1368
|
+
'item-checkbox-checked': option.checked
|
|
1369
|
+
}, theme.getClassMap(option.cssClass))
|
|
1466
1370
|
}, index.h("ion-checkbox", { class: {
|
|
1467
1371
|
'select-option-has-rich-content': hasRichContent,
|
|
1468
|
-
}, value: option.value, disabled: option.disabled, checked: option.checked, justify: richOption.justify
|
|
1372
|
+
}, value: option.value, disabled: option.disabled, checked: option.checked, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : defaultJustify, labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : defaultLabelPlacement, onIonChange: (ev) => {
|
|
1469
1373
|
this.setChecked(ev);
|
|
1470
1374
|
this.callOptionHandler(ev);
|
|
1471
1375
|
// TODO FW-4784
|
|
@@ -1474,9 +1378,10 @@ const SelectPopover = class {
|
|
|
1474
1378
|
});
|
|
1475
1379
|
}
|
|
1476
1380
|
renderRadioOptions(options) {
|
|
1477
|
-
const
|
|
1381
|
+
const theme$1 = ionicGlobal.getIonTheme(this);
|
|
1478
1382
|
const checked = options.filter((o) => o.checked).map((o) => o.value)[0];
|
|
1479
1383
|
return (index.h("ion-radio-group", { value: checked, onIonChange: (ev) => this.callOptionHandler(ev) }, options.map((option, index$1) => {
|
|
1384
|
+
var _a, _b;
|
|
1480
1385
|
/**
|
|
1481
1386
|
* Cast to `SelectOverlayOption` to access rich content
|
|
1482
1387
|
* fields (`startContent`, `endContent`, `description`)
|
|
@@ -1494,14 +1399,13 @@ const SelectPopover = class {
|
|
|
1494
1399
|
};
|
|
1495
1400
|
return (index.h("ion-item", {
|
|
1496
1401
|
// TODO FW-4784
|
|
1497
|
-
disabled: option.disabled, class: {
|
|
1402
|
+
disabled: option.disabled, class: Object.assign({
|
|
1498
1403
|
// TODO FW-4784
|
|
1499
|
-
'item-radio-checked': option.value === checked
|
|
1500
|
-
|
|
1501
|
-
}
|
|
1404
|
+
'item-radio-checked': option.value === checked
|
|
1405
|
+
}, theme.getClassMap(option.cssClass))
|
|
1502
1406
|
}, index.h("ion-radio", { class: {
|
|
1503
1407
|
'select-option-has-rich-content': hasRichContent,
|
|
1504
|
-
}, value: option.value, disabled: option.disabled, justify: richOption.justify
|
|
1408
|
+
}, value: option.value, disabled: option.disabled, justify: (_a = richOption.justify) !== null && _a !== void 0 ? _a : overlayControlLabel.getOverlayLabelJustify(theme$1, 'radio'), labelPlacement: (_b = richOption.labelPlacement) !== null && _b !== void 0 ? _b : overlayControlLabel.getOverlayLabelPlacement(theme$1, 'radio'), onClick: () => this.dismissParentPopover(), onKeyDown: (ev) => {
|
|
1505
1409
|
if (ev.key === 'Enter' && !ev.repeat) {
|
|
1506
1410
|
this.pendingEnterTarget = ev.currentTarget;
|
|
1507
1411
|
}
|
|
@@ -1523,10 +1427,15 @@ const SelectPopover = class {
|
|
|
1523
1427
|
render() {
|
|
1524
1428
|
const { header, message, options, subHeader } = this;
|
|
1525
1429
|
const hasSubHeaderOrMessage = subHeader !== undefined || message !== undefined;
|
|
1526
|
-
|
|
1430
|
+
const theme = ionicGlobal.getIonTheme(this);
|
|
1431
|
+
return (index.h(index.Host, { key: '00e306f7d68005c0b17e598bec54471f5e38c991', class: {
|
|
1432
|
+
[theme]: true,
|
|
1433
|
+
} }, index.h("ion-list", { key: '1357288064dc139a0ef4904744f945bf1dc39b3c' }, header !== undefined && index.h("ion-list-header", { key: '4e918516f5666e90f3218edc3a08734822b76075' }, header), hasSubHeaderOrMessage && (index.h("ion-item", { key: '170900f83842d73f6d9adbb7b9e4bc332dfa495d' }, index.h("ion-label", { key: 'a76efe58ad6066e601edc1794782e3928556423f', class: "ion-text-wrap" }, subHeader !== undefined && index.h("h3", { key: 'c88680bbbfc228a65c51f010c42158995d8a6507' }, subHeader), message !== undefined && index.h("p", { key: '91e49d1477b2b9d903da8a385da07b6e7de37f73' }, message)))), this.renderOptions(options))));
|
|
1527
1434
|
}
|
|
1435
|
+
get el() { return index.getElement(this); }
|
|
1528
1436
|
};
|
|
1529
1437
|
SelectPopover.style = {
|
|
1438
|
+
ionic: selectPopoverIonicCss(),
|
|
1530
1439
|
ios: selectPopoverIosCss(),
|
|
1531
1440
|
md: selectPopoverMdCss()
|
|
1532
1441
|
};
|