@ionic/core 8.7.19-nightly.20260303 → 8.8.0
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.d.ts +2 -0
- package/components/index.js +1 -114
- package/components/ion-accordion-group.js +1 -268
- package/components/ion-accordion.js +1 -456
- package/components/ion-action-sheet.js +1 -6
- package/components/ion-alert.js +1 -6
- package/components/ion-app.js +1 -132
- package/components/ion-avatar.js +1 -41
- package/components/ion-back-button.js +1 -130
- package/components/ion-backdrop.js +1 -6
- package/components/ion-badge.js +1 -47
- package/components/ion-breadcrumb.js +1 -137
- package/components/ion-breadcrumbs.js +1 -164
- package/components/ion-button.js +1 -6
- package/components/ion-buttons.js +1 -6
- package/components/ion-card-content.js +1 -45
- package/components/ion-card-header.js +1 -56
- package/components/ion-card-subtitle.js +1 -48
- package/components/ion-card-title.js +1 -48
- package/components/ion-card.js +1 -107
- package/components/ion-checkbox.js +1 -6
- package/components/ion-chip.js +1 -66
- package/components/ion-col.js +1 -163
- package/components/ion-content.js +1 -6
- package/components/ion-datetime-button.js +1 -383
- package/components/ion-datetime.js +1 -2047
- package/components/ion-fab-button.js +1 -151
- package/components/ion-fab-list.js +1 -73
- package/components/ion-fab.js +1 -101
- package/components/ion-footer.js +1 -179
- package/components/ion-grid.js +1 -46
- package/components/ion-header.js +1 -6
- package/components/ion-icon.js +1 -6
- package/components/ion-img.js +1 -133
- package/components/ion-infinite-scroll-content.js +1 -69
- package/components/ion-infinite-scroll.js +1 -236
- package/components/ion-input-otp.js +1 -682
- package/components/ion-input-password-toggle.js +1 -128
- package/components/ion-input.js +1 -646
- package/components/ion-item-divider.js +1 -59
- package/components/ion-item-group.js +1 -46
- package/components/ion-item-option.js +1 -91
- package/components/ion-item-options.js +1 -73
- package/components/ion-item-sliding.js +1 -457
- package/components/ion-item.js +1 -6
- package/components/ion-label.js +1 -6
- package/components/ion-list-header.js +1 -6
- package/components/ion-list.js +1 -6
- package/components/ion-loading.js +1 -343
- package/components/ion-menu-button.js +1 -109
- package/components/ion-menu-toggle.js +1 -64
- package/components/ion-menu.js +1 -741
- package/components/ion-modal.js +1 -6
- package/components/ion-nav-link.js +1 -64
- package/components/ion-nav.js +1 -951
- package/components/ion-note.js +1 -47
- package/components/ion-picker-column-option.js +1 -6
- package/components/ion-picker-column.js +1 -6
- package/components/ion-picker-legacy-column.js +1 -6
- package/components/ion-picker-legacy.js +1 -342
- package/components/ion-picker.js +1 -6
- package/components/ion-popover.js +1 -6
- package/components/ion-progress-bar.js +1 -100
- package/components/ion-radio-group.js +1 -6
- package/components/ion-radio.js +1 -6
- package/components/ion-range.js +1 -844
- package/components/ion-refresher-content.js +1 -88
- package/components/ion-refresher.js +1 -750
- package/components/ion-reorder-group.js +1 -322
- package/components/ion-reorder.js +1 -60
- package/components/ion-ripple-effect.js +1 -6
- package/components/ion-route-redirect.js +1 -45
- package/components/ion-route.js +1 -74
- package/components/ion-router-link.js +1 -61
- package/components/ion-router-outlet.js +1 -226
- package/components/ion-router.js +1 -840
- package/components/ion-row.js +1 -36
- package/components/ion-searchbar.js +1 -540
- package/components/ion-segment-button.js +1 -173
- package/components/ion-segment-content.js +1 -35
- package/components/ion-segment-view.js +1 -142
- package/components/ion-segment.js +1 -602
- package/components/ion-select-modal.js +1 -6
- package/components/ion-select-option.js +1 -46
- package/components/ion-select-popover.js +1 -6
- package/components/ion-select.js +1 -1035
- package/components/ion-skeleton-text.js +1 -64
- package/components/ion-spinner.js +1 -6
- package/components/ion-split-pane.js +1 -190
- package/components/ion-tab-bar.js +1 -135
- package/components/ion-tab-button.js +1 -127
- package/components/ion-tab.js +1 -82
- package/components/ion-tabs.js +1 -204
- package/components/ion-text.js +1 -42
- package/components/ion-textarea.js +1 -554
- package/components/ion-thumbnail.js +1 -36
- package/components/ion-title.js +1 -6
- package/components/ion-toast.js +1 -938
- package/components/ion-toggle.js +1 -360
- package/components/ion-toolbar.js +1 -6
- package/components/p-1KVKSLu5.js +4 -0
- package/{dist/ionic/p-DUt5fQmA.js → components/p-9VcRUwdB.js} +1 -1
- package/components/p-ApmKVjaE.js +4 -0
- package/components/p-B-hirT0v.js +1 -35
- package/components/p-B6FQ0cKR.js +4 -0
- package/components/p-B6HaBl3o.js +4 -0
- package/components/p-B8b1Ukl9.js +4 -0
- package/components/p-BFxT89Wl.js +4 -0
- package/components/p-BJoMtgfR.js +4 -0
- package/components/p-BNAG-aVv.js +4 -0
- package/{dist/ionic/p-D-eFFUkA.js → components/p-BR3tZJmu.js} +1 -1
- package/{dist/ionic/p-D0dMcSkw.js → components/p-BS1TtEiJ.js} +1 -1
- package/components/p-BSB38Tek.js +4 -0
- package/components/p-BTEOs1at.js +1 -192
- package/components/p-BTeL5HCK.js +4 -0
- package/{dist/ionic/p-DbQ5QkTP.js → components/p-BUbsoBOV.js} +1 -1
- package/components/p-BVnB3eEn.js +4 -0
- package/components/p-BYDc3hSE.js +4 -0
- package/components/p-BagjAGC0.js +4 -0
- package/components/p-BegtE7nr.js +4 -0
- package/components/p-BgwEQWW6.js +4 -0
- package/components/p-Bk2zuNWT.js +4 -0
- package/components/p-BmVRXR1y.js +1 -72
- package/components/p-Bum_LjMh.js +4 -0
- package/components/p-BxwWvu-b.js +4 -0
- package/components/p-C4jPsTQa.js +4 -0
- package/components/p-C53feagD.js +1 -15
- package/{dist/ionic/p-CwgG81ZD.js → components/p-C59ryAuS.js} +1 -1
- package/components/p-C7AoMl7c.js +4 -0
- package/components/p-CBzELu-H.js +4 -0
- package/components/p-CDfQnFrd.js +4 -0
- package/components/p-CH0NYjKq.js +4 -0
- package/components/p-CIGNaXM1.js +1 -10
- package/components/p-CO7fmmxt.js +1 -29
- package/components/p-CU1SSH8_.js +4 -0
- package/components/p-CVF7ukTk.js +4 -0
- package/components/p-CgfaEEem.js +4 -0
- package/components/p-CgqKJg96.js +4 -0
- package/components/p-Cl0B-RWe.js +1 -452
- package/components/p-CneGxKsZ.js +4 -0
- package/components/p-CoA-aqGF.js +4 -0
- package/{dist/ionic/p-DdR6rpbR.js → components/p-Cq8cQ0NL.js} +1 -1
- package/components/p-Csw8xuz4.js +4 -0
- package/components/p-CtWGkNnJ.js +1 -162
- package/components/p-Cwv-vmkN.js +4 -0
- package/{dist/ionic/p-BYEqWnSg.js → components/p-Cy5XSfIk.js} +1 -1
- package/components/p-Cyxa_4PV.js +4 -0
- package/components/p-Cz5nLPGT.js +4 -0
- package/components/p-D13Eaw-8.js +1 -76
- package/components/p-D6NJwNJN.js +4 -0
- package/components/p-D6Ynv7Xh.js +1 -141
- package/components/p-DHsZWn1l.js +4 -0
- package/components/p-DJMZehmW.js +4 -0
- package/components/p-DJztqcrH.js +1 -14
- package/components/p-DYdpXONG.js +4 -0
- package/components/p-DgbT0exM.js +4 -0
- package/components/p-DiVJyqlX.js +1 -40
- package/components/p-Dtdm8lKC.js +1 -44
- package/components/p-YLXPWgVj.js +4 -0
- package/components/p-ZjP4CjeZ.js +1 -4
- package/{dist/ionic/p-DCv9sLH2.js → components/p-ak_d-z48.js} +1 -1
- package/components/p-cyNmxje6.js +1 -155
- package/components/p-fpbh6w3f.js +4 -0
- package/components/p-hHmYLOfE.js +1 -87
- package/components/p-kvaDs24J.js +4 -0
- package/components/p-vEbVo2hO.js +4 -0
- package/dist/cjs/{animation-Bt3H9L1C.js → animation-Dg4yiuR2.js} +1 -1
- package/dist/cjs/app-globals-CLI8xCmk.js +11 -0
- package/dist/cjs/{button-active-CMc8cD90.js → button-active-FscMI17-.js} +1 -1
- package/dist/cjs/{config-C5fsO43a.js → config-BukYi_pW.js} +1 -1
- package/dist/cjs/{data-JwZKaIQB.js → data-BYlBjkMU.js} +1 -1
- package/dist/cjs/{framework-delegate-DMJRBuDi.js → framework-delegate-CRgp8o_p.js} +1 -1
- package/dist/cjs/{hardware-back-button-VCK4V3mG.js → hardware-back-button-C4rMJ5uI.js} +1 -1
- package/dist/cjs/{helpers-DrTqNghc.js → helpers-CxTYJdbT.js} +1 -1
- package/dist/cjs/{index-094mMFB-.js → index-C845Ti6K.js} +4 -4
- package/dist/cjs/{index-DrMUZJj6.js → index-CFUwM5x_.js} +5 -5
- package/dist/cjs/{index-D6Wc6v08.js → index-CqT-2gKy.js} +503 -382
- package/dist/cjs/{index-CO6eryBo.js → index-MbaBbWXk.js} +2 -2
- package/dist/cjs/{index-C534ULug.js → index-YcSftOMz.js} +2 -2
- package/dist/cjs/index.cjs.js +12 -12
- package/dist/cjs/{input-shims-CuMghsQ-.js → input-shims-Dl5cnc_e.js} +3 -3
- package/dist/cjs/{input.utils-B_QROI2g.js → input.utils-DmeJ8dmo.js} +2 -2
- package/dist/cjs/ion-accordion_2.cjs.entry.js +23 -15
- package/dist/cjs/ion-action-sheet.cjs.entry.js +21 -15
- package/dist/cjs/ion-alert.cjs.entry.js +25 -17
- package/dist/cjs/ion-app_8.cjs.entry.js +48 -43
- package/dist/cjs/ion-avatar_3.cjs.entry.js +12 -12
- package/dist/cjs/ion-back-button.cjs.entry.js +7 -7
- package/dist/cjs/ion-backdrop.cjs.entry.js +6 -6
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +20 -14
- package/dist/cjs/ion-button_2.cjs.entry.js +36 -18
- package/dist/cjs/ion-card_5.cjs.entry.js +23 -23
- package/dist/cjs/ion-checkbox.cjs.entry.js +7 -7
- package/dist/cjs/ion-chip.cjs.entry.js +6 -6
- package/dist/cjs/ion-col_3.cjs.entry.js +8 -8
- package/dist/cjs/ion-datetime-button.cjs.entry.js +8 -8
- package/dist/cjs/ion-datetime_3.cjs.entry.js +75 -46
- package/dist/cjs/ion-fab_3.cjs.entry.js +17 -13
- package/dist/cjs/ion-img.cjs.entry.js +8 -6
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +17 -13
- package/dist/cjs/ion-input-otp.cjs.entry.js +16 -10
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +9 -7
- package/dist/cjs/ion-input.cjs.entry.js +21 -13
- package/dist/cjs/ion-item-option_3.cjs.entry.js +19 -17
- package/dist/cjs/ion-item_8.cjs.entry.js +48 -42
- package/dist/cjs/ion-loading.cjs.entry.js +18 -14
- package/dist/cjs/ion-menu_3.cjs.entry.js +30 -22
- package/dist/cjs/ion-modal.cjs.entry.js +237 -59
- package/dist/cjs/ion-nav_2.cjs.entry.js +14 -10
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +10 -8
- package/dist/cjs/ion-picker-column.cjs.entry.js +11 -7
- package/dist/cjs/ion-picker.cjs.entry.js +6 -6
- package/dist/cjs/ion-popover.cjs.entry.js +21 -15
- package/dist/cjs/ion-progress-bar.cjs.entry.js +7 -7
- package/dist/cjs/ion-radio_2.cjs.entry.js +17 -13
- package/dist/cjs/ion-range.cjs.entry.js +205 -57
- package/dist/cjs/ion-refresher_2.cjs.entry.js +45 -14
- package/dist/cjs/ion-reorder_2.cjs.entry.js +13 -11
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +4 -4
- package/dist/cjs/ion-route_4.cjs.entry.js +20 -10
- package/dist/cjs/ion-searchbar.cjs.entry.js +22 -12
- package/dist/cjs/ion-segment-content.cjs.entry.js +3 -3
- package/dist/cjs/ion-segment-view.cjs.entry.js +13 -8
- package/dist/cjs/ion-segment_2.cjs.entry.js +26 -16
- package/dist/cjs/ion-select-modal.cjs.entry.js +17 -13
- package/dist/cjs/ion-select_3.cjs.entry.js +33 -24
- package/dist/cjs/ion-spinner.cjs.entry.js +4 -4
- package/dist/cjs/ion-split-pane.cjs.entry.js +15 -9
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +14 -12
- package/dist/cjs/ion-tab_2.cjs.entry.js +10 -8
- package/dist/cjs/ion-text.cjs.entry.js +4 -4
- package/dist/cjs/ion-textarea.cjs.entry.js +20 -14
- package/dist/cjs/ion-toast.cjs.entry.js +21 -15
- package/dist/cjs/ion-toggle.cjs.entry.js +10 -8
- package/dist/cjs/{ionic-global-HMVqOFGO.js → ionic-global-Bc3kJi1Z.js} +1 -1
- package/dist/cjs/ionic.cjs.js +5 -5
- package/dist/cjs/{ios.transition-BOt_uW73.js → ios.transition-trBiC95R.js} +4 -4
- package/dist/cjs/loader.cjs.js +4 -4
- package/dist/cjs/{md.transition-Dt968VXB.js → md.transition-CUQECuvD.js} +4 -4
- package/dist/cjs/{notch-controller-Bzqhjm4f.js → notch-controller-sD-lTpdc.js} +1 -1
- package/dist/cjs/{overlays-B2b-TTbl.js → overlays-C2jiBSNQ.js} +5 -5
- package/dist/cjs/{status-tap-g0sWWkXk.js → status-tap-CCJk5VgT.js} +3 -3
- package/dist/cjs/{swipe-back-BIayeNOD.js → swipe-back-BGhTQ1CU.js} +2 -2
- package/dist/collection/collection-manifest.json +2 -2
- package/dist/collection/components/accordion-group/accordion-group.js +4 -2
- package/dist/collection/components/action-sheet/action-sheet.js +20 -10
- package/dist/collection/components/alert/alert.js +24 -12
- package/dist/collection/components/back-button/back-button.js +4 -2
- package/dist/collection/components/badge/badge.js +2 -1
- package/dist/collection/components/breadcrumb/breadcrumb.js +8 -4
- package/dist/collection/components/breadcrumbs/breadcrumbs.js +4 -2
- package/dist/collection/components/button/button.js +6 -3
- package/dist/collection/components/card/card.js +6 -3
- package/dist/collection/components/card-header/card-header.js +2 -1
- package/dist/collection/components/card-subtitle/card-subtitle.js +2 -1
- package/dist/collection/components/card-title/card-title.js +2 -1
- package/dist/collection/components/checkbox/checkbox.js +4 -2
- package/dist/collection/components/chip/chip.js +2 -1
- package/dist/collection/components/content/content.js +12 -7
- package/dist/collection/components/datetime/datetime.js +43 -22
- package/dist/collection/components/datetime-button/datetime-button.js +2 -1
- package/dist/collection/components/fab-button/fab-button.js +6 -3
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +4 -2
- package/dist/collection/components/input/input.js +11 -6
- package/dist/collection/components/input-otp/input-otp.js +8 -4
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +4 -2
- package/dist/collection/components/item/item.js +10 -5
- package/dist/collection/components/item-divider/item-divider.js +7 -3
- package/dist/collection/components/item-option/item-option.js +6 -3
- package/dist/collection/components/item-options/item-options.js +2 -1
- package/dist/collection/components/item-sliding/item-sliding.js +2 -1
- package/dist/collection/components/label/label.js +6 -3
- package/dist/collection/components/list-header/list-header.js +6 -3
- package/dist/collection/components/loading/loading.js +22 -11
- package/dist/collection/components/menu/menu.js +10 -5
- package/dist/collection/components/menu-button/menu-button.js +2 -1
- package/dist/collection/components/modal/gestures/sheet.js +120 -12
- package/dist/collection/components/modal/gestures/swipe-to-close.js +54 -1
- package/dist/collection/components/modal/modal.js +127 -45
- package/dist/collection/components/nav/nav.js +89 -45
- package/dist/collection/components/nav-link/nav-link.js +9 -5
- package/dist/collection/components/note/note.js +2 -1
- package/dist/collection/components/picker/picker.js +2 -1
- package/dist/collection/components/picker-column/picker-column.js +6 -3
- package/dist/collection/components/picker-column-option/picker-column-option.js +2 -1
- package/dist/collection/components/picker-legacy/picker.js +24 -12
- package/dist/collection/components/picker-legacy-column/picker-column.js +4 -2
- package/dist/collection/components/popover/popover.js +33 -17
- package/dist/collection/components/progress-bar/progress-bar.js +2 -1
- package/dist/collection/components/radio/radio.js +2 -1
- package/dist/collection/components/radio-group/radio-group.js +6 -3
- package/dist/collection/components/range/range.js +214 -53
- package/dist/collection/components/refresher/refresher.js +73 -5
- package/dist/collection/components/refresher-content/refresher-content.js +8 -4
- package/dist/collection/components/reorder-group/reorder-group.js +6 -3
- package/dist/collection/components/route/route.js +4 -2
- package/dist/collection/components/router/router.js +10 -5
- package/dist/collection/components/router-link/router-link.js +6 -3
- package/dist/collection/components/router-outlet/router-outlet.js +18 -9
- package/dist/collection/components/searchbar/searchbar.js +11 -6
- package/dist/collection/components/segment/segment.js +10 -5
- package/dist/collection/components/segment-button/segment-button.js +4 -2
- package/dist/collection/components/segment-view/segment-view.ios.css +2 -1
- package/dist/collection/components/segment-view/segment-view.js +30 -4
- package/dist/collection/components/segment-view/segment-view.md.css +2 -1
- package/dist/collection/components/select/select.js +17 -8
- package/dist/collection/components/select-modal/select-modal.js +27 -2
- package/dist/collection/components/select-popover/select-popover.js +2 -1
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -1
- package/dist/collection/components/spinner/spinner.js +4 -2
- package/dist/collection/components/tab/tab.js +4 -2
- package/dist/collection/components/tab-bar/tab-bar.js +4 -2
- package/dist/collection/components/tab-button/tab-button.js +4 -2
- package/dist/collection/components/tabs/tabs.js +4 -2
- package/dist/collection/components/text/text.js +2 -1
- package/dist/collection/components/textarea/textarea.js +10 -7
- package/dist/collection/components/title/title.js +4 -2
- package/dist/collection/components/toast/toast.js +34 -17
- package/dist/collection/components/toggle/toggle.js +4 -2
- package/dist/collection/components/toolbar/toolbar.js +2 -1
- package/dist/docs.d.ts +37 -0
- package/dist/docs.json +1186 -389
- package/dist/esm/{animation-Dt8bGnA-.js → animation-CnGMT4ji.js} +1 -1
- package/dist/esm/app-globals-DhZjtldk.js +9 -0
- package/dist/esm/{button-active-L570Swow.js → button-active-BBx21brx.js} +1 -1
- package/dist/esm/{config-mCdtaoPe.js → config-TO1rZH52.js} +1 -1
- package/dist/esm/{data-DCORV9FH.js → data-B9iGR5YO.js} +1 -1
- package/dist/esm/{framework-delegate-BYawdMXj.js → framework-delegate-CyxE1S_P.js} +1 -1
- package/dist/esm/{hardware-back-button-CPLxO-Ev.js → hardware-back-button-CTe4XmL7.js} +1 -1
- package/dist/esm/{helpers-DEn3pfjm.js → helpers-Tl8jw6S2.js} +1 -1
- package/dist/esm/{index-r2D9DEro.js → index-B-hkiOUh.js} +4 -4
- package/dist/esm/{index-CvDIirVx.js → index-B2KwgBLx.js} +5 -5
- package/dist/esm/{index-ceb5RaMT.js → index-BtUdxPjv.js} +2 -2
- package/dist/esm/{index-C8IsBmNU.js → index-IGIE5vDm.js} +503 -382
- package/dist/esm/{index-Bs3kT4bc.js → index-hW6eNZ3o.js} +2 -2
- package/dist/esm/index.js +12 -12
- package/dist/esm/{input-shims-D6H3ZaWt.js → input-shims-AaDhOpKN.js} +3 -3
- package/dist/esm/{input.utils-DrvTa8gz.js → input.utils-Bxa_DQ7-.js} +2 -2
- package/dist/esm/ion-accordion_2.entry.js +23 -15
- package/dist/esm/ion-action-sheet.entry.js +21 -15
- package/dist/esm/ion-alert.entry.js +25 -17
- package/dist/esm/ion-app_8.entry.js +48 -43
- package/dist/esm/ion-avatar_3.entry.js +12 -12
- package/dist/esm/ion-back-button.entry.js +7 -7
- package/dist/esm/ion-backdrop.entry.js +6 -6
- package/dist/esm/ion-breadcrumb_2.entry.js +20 -14
- package/dist/esm/ion-button_2.entry.js +36 -18
- package/dist/esm/ion-card_5.entry.js +23 -23
- package/dist/esm/ion-checkbox.entry.js +7 -7
- package/dist/esm/ion-chip.entry.js +6 -6
- package/dist/esm/ion-col_3.entry.js +8 -8
- package/dist/esm/ion-datetime-button.entry.js +8 -8
- package/dist/esm/ion-datetime_3.entry.js +75 -46
- package/dist/esm/ion-fab_3.entry.js +17 -13
- package/dist/esm/ion-img.entry.js +8 -6
- package/dist/esm/ion-infinite-scroll_2.entry.js +17 -13
- package/dist/esm/ion-input-otp.entry.js +16 -10
- package/dist/esm/ion-input-password-toggle.entry.js +9 -7
- package/dist/esm/ion-input.entry.js +21 -13
- package/dist/esm/ion-item-option_3.entry.js +19 -17
- package/dist/esm/ion-item_8.entry.js +48 -42
- package/dist/esm/ion-loading.entry.js +18 -14
- package/dist/esm/ion-menu_3.entry.js +30 -22
- package/dist/esm/ion-modal.entry.js +237 -59
- package/dist/esm/ion-nav_2.entry.js +14 -10
- package/dist/esm/ion-picker-column-option.entry.js +10 -8
- package/dist/esm/ion-picker-column.entry.js +11 -7
- package/dist/esm/ion-picker.entry.js +6 -6
- package/dist/esm/ion-popover.entry.js +21 -15
- package/dist/esm/ion-progress-bar.entry.js +7 -7
- package/dist/esm/ion-radio_2.entry.js +17 -13
- package/dist/esm/ion-range.entry.js +205 -57
- package/dist/esm/ion-refresher_2.entry.js +45 -14
- package/dist/esm/ion-reorder_2.entry.js +13 -11
- package/dist/esm/ion-ripple-effect.entry.js +4 -4
- package/dist/esm/ion-route_4.entry.js +20 -10
- package/dist/esm/ion-searchbar.entry.js +22 -12
- package/dist/esm/ion-segment-content.entry.js +3 -3
- package/dist/esm/ion-segment-view.entry.js +13 -8
- package/dist/esm/ion-segment_2.entry.js +26 -16
- package/dist/esm/ion-select-modal.entry.js +17 -13
- package/dist/esm/ion-select_3.entry.js +33 -24
- package/dist/esm/ion-spinner.entry.js +4 -4
- package/dist/esm/ion-split-pane.entry.js +15 -9
- package/dist/esm/ion-tab-bar_2.entry.js +14 -12
- package/dist/esm/ion-tab_2.entry.js +10 -8
- package/dist/esm/ion-text.entry.js +4 -4
- package/dist/esm/ion-textarea.entry.js +20 -14
- package/dist/esm/ion-toast.entry.js +21 -15
- package/dist/esm/ion-toggle.entry.js +10 -8
- package/dist/esm/{ionic-global-CDrldh-5.js → ionic-global-DfbeLwcV.js} +1 -1
- package/dist/esm/ionic.js +6 -6
- package/dist/esm/{ios.transition-BDzw0_Hm.js → ios.transition--aMF-pDH.js} +4 -4
- package/dist/esm/loader.js +5 -5
- package/dist/esm/{md.transition-BzDYi3qq.js → md.transition-BEVbfm8j.js} +4 -4
- package/dist/esm/{notch-controller-BwelN_JM.js → notch-controller-DAcvKU57.js} +1 -1
- package/dist/esm/{overlays-D5YkFThA.js → overlays-F8GHPo-e.js} +5 -5
- package/dist/esm/{status-tap-5DQ7Fc4V.js → status-tap-BfJqFSLF.js} +3 -3
- package/dist/esm/{swipe-back-BKw2CAHc.js → swipe-back-BZBFwTQV.js} +2 -2
- package/dist/html.html-data.json +117 -109
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-031b76f7.entry.js +4 -0
- package/dist/ionic/p-045a6a42.entry.js +4 -0
- package/dist/ionic/p-07506134.entry.js +4 -0
- package/dist/ionic/p-084c25b2.entry.js +4 -0
- package/dist/ionic/p-0d8b5c38.entry.js +4 -0
- package/dist/ionic/p-16813ce7.entry.js +4 -0
- package/dist/ionic/p-16b65553.entry.js +4 -0
- package/dist/ionic/p-1b02923f.entry.js +4 -0
- package/dist/ionic/{p-5c8f7253.entry.js → p-1b169fb6.entry.js} +1 -1
- package/dist/ionic/{p-915b3e3d.entry.js → p-23fac490.entry.js} +1 -1
- package/dist/ionic/{p-b8551510.entry.js → p-294f4bb5.entry.js} +1 -1
- package/dist/ionic/p-2a68388b.entry.js +4 -0
- package/dist/ionic/p-2f5a8140.entry.js +4 -0
- package/dist/ionic/{p-49d06882.entry.js → p-301c43f8.entry.js} +1 -1
- package/dist/ionic/{p-79bd78f9.entry.js → p-370a60ee.entry.js} +1 -1
- package/dist/ionic/p-3e143d1d.entry.js +4 -0
- package/dist/ionic/p-4819b469.entry.js +4 -0
- package/dist/ionic/p-4dd5e8e0.entry.js +4 -0
- package/dist/ionic/p-51c11c47.entry.js +4 -0
- package/dist/ionic/p-53f750a5.entry.js +4 -0
- package/dist/ionic/{p-7cad388a.entry.js → p-6af16209.entry.js} +1 -1
- package/dist/ionic/{p-7f98e710.entry.js → p-6b701daa.entry.js} +1 -1
- package/dist/ionic/p-6b97f2a3.entry.js +4 -0
- package/dist/ionic/p-71e322f7.entry.js +4 -0
- package/dist/ionic/p-7620be24.entry.js +4 -0
- package/dist/ionic/p-771b27a5.entry.js +4 -0
- package/dist/ionic/{p-906bb44d.entry.js → p-7ca71c83.entry.js} +1 -1
- package/dist/ionic/{p-11aa58d6.entry.js → p-80cac7a2.entry.js} +1 -1
- package/dist/ionic/p-96a2e768.entry.js +4 -0
- package/dist/ionic/{p-582824c5.entry.js → p-9833cf63.entry.js} +1 -1
- package/dist/ionic/p-9cbc6f1f.entry.js +4 -0
- package/dist/ionic/p-9cdbabbb.entry.js +4 -0
- package/dist/ionic/p-9eac4eb1.entry.js +4 -0
- package/dist/ionic/{p-675b1a31.entry.js → p-9fae83d8.entry.js} +1 -1
- package/dist/ionic/p-B8xlpH8p.js +4 -0
- package/dist/ionic/{p-C7hRNDhM.js → p-BAt5H1ac.js} +1 -1
- package/dist/ionic/p-BW_TRJm8.js +4 -0
- package/dist/ionic/{p-DDb5r57F.js → p-Bum7H1fw.js} +1 -1
- package/dist/ionic/p-BvFYtOdE.js +4 -0
- package/dist/ionic/{p-Dc45iWE4.js → p-BxIcPWoV.js} +1 -1
- package/dist/ionic/p-C0JvVFMv.js +4 -0
- package/dist/ionic/{p-CTfR9YZG.js → p-CGmVTdWh.js} +1 -1
- package/dist/ionic/{p-BOVrCkpJ.js → p-CYbRmDdy.js} +1 -1
- package/dist/ionic/{p-MUoJJJwd.js → p-CYvM5g3q.js} +1 -1
- package/dist/ionic/p-CmFz1Mjc.js +4 -0
- package/dist/ionic/p-CtA-yJYy.js +4 -0
- package/dist/ionic/p-D8HJQ1qq.js +4 -0
- package/dist/ionic/{p-B0q1YL7N.js → p-DB_iPQC-.js} +1 -1
- package/dist/ionic/{p-DNcfiJwE.js → p-DLbbmF9h.js} +1 -1
- package/dist/ionic/p-DTPR1Wpn.js +4 -0
- package/dist/ionic/p-DjriolRs.js +4 -0
- package/dist/ionic/p-DtVZDHlS.js +4 -0
- package/dist/ionic/p-IGIE5vDm.js +5 -0
- package/dist/ionic/{p-BFvmZNyx.js → p-NFFyoJ4Q.js} +1 -1
- package/dist/ionic/p-a805674e.entry.js +4 -0
- package/dist/ionic/{p-da7d04cc.entry.js → p-a84f2d21.entry.js} +1 -1
- package/dist/ionic/p-aa47f46e.entry.js +4 -0
- package/dist/ionic/{p-2668188b.entry.js → p-b325a113.entry.js} +1 -1
- package/dist/ionic/{p-d1f54e28.entry.js → p-b440381f.entry.js} +1 -1
- package/dist/ionic/p-b6e0ff03.entry.js +4 -0
- package/dist/ionic/{p-6f37536a.entry.js → p-bcaa827e.entry.js} +1 -1
- package/dist/ionic/{p-fb0271ae.entry.js → p-c3cce9d8.entry.js} +1 -1
- package/dist/ionic/{p-b0a7585c.entry.js → p-ca31010f.entry.js} +1 -1
- package/dist/ionic/p-d4e8b473.entry.js +4 -0
- package/dist/ionic/{p-9575b654.entry.js → p-e663bc5a.entry.js} +1 -1
- package/dist/ionic/p-e6c5f060.entry.js +4 -0
- package/dist/ionic/{p-652318c3.entry.js → p-e6cedcd7.entry.js} +1 -1
- package/dist/ionic/{p-fbb00634.entry.js → p-e863ffe8.entry.js} +1 -1
- package/dist/ionic/{p-0ca0fe9c.entry.js → p-f2deaceb.entry.js} +1 -1
- package/dist/ionic/{p-ac4eb91d.entry.js → p-f5dfb9a3.entry.js} +1 -1
- package/dist/ionic/{p-bce86e56.entry.js → p-f8186550.entry.js} +1 -1
- package/dist/ionic/p-fdbc90d4.entry.js +4 -0
- package/dist/ionic/p-gbVXD275.js +4 -0
- package/dist/ionic/p-hNN3VvaC.js +4 -0
- package/dist/types/components/datetime/datetime.d.ts +10 -0
- package/dist/types/components/header/header.utils.d.ts +2 -1
- package/dist/types/components/item/item.d.ts +2 -0
- package/dist/types/components/item-divider/item-divider.d.ts +3 -0
- package/dist/types/components/item-option/item-option.d.ts +2 -0
- package/dist/types/components/list-header/list-header.d.ts +2 -0
- package/dist/types/components/modal/gestures/sheet.d.ts +2 -2
- package/dist/types/components/modal/gestures/swipe-to-close.d.ts +2 -2
- package/dist/types/components/modal/modal-interface.d.ts +25 -0
- package/dist/types/components/modal/modal.d.ts +22 -1
- package/dist/types/components/range/range-interface.d.ts +1 -0
- package/dist/types/components/range/range.d.ts +44 -4
- package/dist/types/components/refresher/refresher-interface.d.ts +7 -0
- package/dist/types/components/refresher/refresher.d.ts +16 -3
- package/dist/types/components/segment-view/segment-view.d.ts +4 -0
- package/dist/types/components/select/select.d.ts +3 -0
- package/dist/types/components/select-modal/select-modal.d.ts +4 -0
- package/dist/types/components.d.ts +964 -191
- package/dist/types/interface.d.ts +2 -2
- package/dist/types/stencil-public-runtime.d.ts +126 -14
- package/dist/types/utils/gesture/listener.d.ts +2 -1
- package/hydrate/index.d.ts +12 -0
- package/hydrate/index.js +5632 -1421
- package/hydrate/index.mjs +5631 -1422
- package/package.json +2 -2
- package/components/p-B25GjpND.js +0 -71
- package/components/p-BANeLH_G.js +0 -290
- package/components/p-BBFQmhcD.js +0 -59
- package/components/p-BC-awmYt.js +0 -306
- package/components/p-BHbOsu99.js +0 -501
- package/components/p-BTlwXR9e.js +0 -73
- package/components/p-BcazQttQ.js +0 -612
- package/components/p-BdGshsIJ.js +0 -226
- package/components/p-BfS7vSpC.js +0 -147
- package/components/p-BhRFCLuX.js +0 -675
- package/components/p-Bhnhnzjz.js +0 -75
- package/components/p-BmcqD0EN.js +0 -153
- package/components/p-Boi6hecl.js +0 -115
- package/components/p-Bt_moUyl.js +0 -232
- package/components/p-Bxl5etF4.js +0 -146
- package/components/p-ByjmWt3s.js +0 -139
- package/components/p-C04oPyjT.js +0 -54
- package/components/p-C6dkQWq2.js +0 -1626
- package/components/p-CFZWrvIQ.js +0 -194
- package/components/p-CIJwkzL6.js +0 -195
- package/components/p-CL12ApCQ.js +0 -820
- package/components/p-CXJR56Oq.js +0 -564
- package/components/p-Cdm3dKWf.js +0 -108
- package/components/p-CslsoGzv.js +0 -192
- package/components/p-Cyd00tgZ.js +0 -167
- package/components/p-CzAJ3ArC.js +0 -380
- package/components/p-CzW34QBh.js +0 -12
- package/components/p-D0zXRwcr.js +0 -196
- package/components/p-D5hF6rwn.js +0 -339
- package/components/p-D8eD2iBA.js +0 -67
- package/components/p-DGOrLIyS.js +0 -481
- package/components/p-DK2Bn1Mc.js +0 -305
- package/components/p-DKRQWlK2.js +0 -598
- package/components/p-DNDUsygf.js +0 -128
- package/components/p-DTWZF6wg.js +0 -418
- package/components/p-DWoUQeZ3.js +0 -3012
- package/components/p-DX0w75a9.js +0 -420
- package/components/p-Dt8zaCLQ.js +0 -92
- package/components/p-DyFBFrV7.js +0 -264
- package/components/p-DyHPCMyn.js +0 -39
- package/components/p-LgLeKTkH.js +0 -112
- package/components/p-NhiRFRn9.js +0 -50
- package/components/p-OuiHmXO5.js +0 -646
- package/components/p-Wro9IPHE.js +0 -459
- package/components/p-aIWC4ZEV.js +0 -305
- package/components/p-c-XJ9XhZ.js +0 -915
- package/components/p-fVuFT3Wd.js +0 -78
- package/components/p-iyo0Toaz.js +0 -2822
- package/components/p-l_lso3Zl.js +0 -140
- package/components/p-mQp4lwQD.js +0 -1638
- package/dist/cjs/app-globals-Ciccnk9_.js +0 -10
- package/dist/esm/app-globals-BDSf8fOA.js +0 -8
- package/dist/ionic/p-11518b31.entry.js +0 -4
- package/dist/ionic/p-221a3d8c.entry.js +0 -4
- package/dist/ionic/p-2ac254dc.entry.js +0 -4
- package/dist/ionic/p-2bd1ea35.entry.js +0 -4
- package/dist/ionic/p-30333874.entry.js +0 -4
- package/dist/ionic/p-31db96da.entry.js +0 -4
- package/dist/ionic/p-34642fa1.entry.js +0 -4
- package/dist/ionic/p-35696017.entry.js +0 -4
- package/dist/ionic/p-363d1209.entry.js +0 -4
- package/dist/ionic/p-46a38cfd.entry.js +0 -4
- package/dist/ionic/p-4eec1a5e.entry.js +0 -4
- package/dist/ionic/p-530fcd71.entry.js +0 -4
- package/dist/ionic/p-5d6fb6e3.entry.js +0 -4
- package/dist/ionic/p-66fbe052.entry.js +0 -4
- package/dist/ionic/p-7babec72.entry.js +0 -4
- package/dist/ionic/p-82d5bb3d.entry.js +0 -4
- package/dist/ionic/p-97eb0812.entry.js +0 -4
- package/dist/ionic/p-9b6d46f2.entry.js +0 -4
- package/dist/ionic/p-BKc55Xev.js +0 -4
- package/dist/ionic/p-Bmgaetn_.js +0 -4
- package/dist/ionic/p-C8IsBmNU.js +0 -5
- package/dist/ionic/p-CJxh_yLS.js +0 -4
- package/dist/ionic/p-DZRJwG4S.js +0 -4
- package/dist/ionic/p-a4a9f5ae.entry.js +0 -4
- package/dist/ionic/p-b0ebf9f8.entry.js +0 -4
- package/dist/ionic/p-be263062.entry.js +0 -4
- package/dist/ionic/p-c175d792.entry.js +0 -4
- package/dist/ionic/p-cc2a9936.entry.js +0 -4
- package/dist/ionic/p-cc45bcbc.entry.js +0 -4
- package/dist/ionic/p-d0a2a1ab.entry.js +0 -4
- package/dist/ionic/p-e4c57008.entry.js +0 -4
- package/dist/ionic/p-e5d6d0f0.entry.js +0 -4
- package/dist/ionic/p-f1dfee25.entry.js +0 -4
- package/dist/ionic/p-f9f7b9db.entry.js +0 -4
package/components/p-Wro9IPHE.js
DELETED
|
@@ -1,459 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import { g as getAssetPath, p as proxyCustomElement, H, h, d as Host } from './p-DWoUQeZ3.js';
|
|
5
|
-
|
|
6
|
-
let CACHED_MAP;
|
|
7
|
-
const getIconMap = () => {
|
|
8
|
-
if (typeof window === 'undefined') {
|
|
9
|
-
return new Map();
|
|
10
|
-
}
|
|
11
|
-
else {
|
|
12
|
-
if (!CACHED_MAP) {
|
|
13
|
-
const win = window;
|
|
14
|
-
win.Ionicons = win.Ionicons || {};
|
|
15
|
-
CACHED_MAP = win.Ionicons.map = win.Ionicons.map || new Map();
|
|
16
|
-
}
|
|
17
|
-
return CACHED_MAP;
|
|
18
|
-
}
|
|
19
|
-
};
|
|
20
|
-
const getUrl = (i) => {
|
|
21
|
-
let url = getSrc(i.src);
|
|
22
|
-
if (url) {
|
|
23
|
-
return url;
|
|
24
|
-
}
|
|
25
|
-
url = getName(i.name, i.icon, i.mode, i.ios, i.md);
|
|
26
|
-
if (url) {
|
|
27
|
-
return getNamedUrl(url, i);
|
|
28
|
-
}
|
|
29
|
-
if (i.icon) {
|
|
30
|
-
url = getSrc(i.icon);
|
|
31
|
-
if (url) {
|
|
32
|
-
return url;
|
|
33
|
-
}
|
|
34
|
-
url = getSrc(i.icon[i.mode]);
|
|
35
|
-
if (url) {
|
|
36
|
-
return url;
|
|
37
|
-
}
|
|
38
|
-
}
|
|
39
|
-
return null;
|
|
40
|
-
};
|
|
41
|
-
const getNamedUrl = (iconName, iconEl) => {
|
|
42
|
-
const url = getIconMap().get(iconName);
|
|
43
|
-
if (url) {
|
|
44
|
-
return url;
|
|
45
|
-
}
|
|
46
|
-
try {
|
|
47
|
-
return getAssetPath(`svg/${iconName}.svg`);
|
|
48
|
-
}
|
|
49
|
-
catch (e) {
|
|
50
|
-
console.log('e', e);
|
|
51
|
-
/**
|
|
52
|
-
* In the custom elements build version of ionicons, referencing an icon
|
|
53
|
-
* by name will throw an invalid URL error because the asset path is not defined.
|
|
54
|
-
* This catches that error and logs something that is more developer-friendly.
|
|
55
|
-
* We also include a reference to the ion-icon element so developers can
|
|
56
|
-
* figure out which instance of ion-icon needs to be updated.
|
|
57
|
-
*/
|
|
58
|
-
console.warn(`[Ionicons Warning]: Could not load icon with name "${iconName}". Ensure that the icon is registered using addIcons or that the icon SVG data is passed directly to the icon component.`, iconEl);
|
|
59
|
-
}
|
|
60
|
-
};
|
|
61
|
-
const getName = (iconName, icon, mode, ios, md) => {
|
|
62
|
-
// default to "md" if somehow the mode wasn't set
|
|
63
|
-
mode = (mode && toLower(mode)) === 'ios' ? 'ios' : 'md';
|
|
64
|
-
// if an icon was passed in using the ios or md attributes
|
|
65
|
-
// set the iconName to whatever was passed in
|
|
66
|
-
if (ios && mode === 'ios') {
|
|
67
|
-
iconName = toLower(ios);
|
|
68
|
-
}
|
|
69
|
-
else if (md && mode === 'md') {
|
|
70
|
-
iconName = toLower(md);
|
|
71
|
-
}
|
|
72
|
-
else {
|
|
73
|
-
if (!iconName && icon && !isSrc(icon)) {
|
|
74
|
-
iconName = icon;
|
|
75
|
-
}
|
|
76
|
-
if (isStr(iconName)) {
|
|
77
|
-
iconName = toLower(iconName);
|
|
78
|
-
}
|
|
79
|
-
}
|
|
80
|
-
if (!isStr(iconName) || iconName.trim() === '') {
|
|
81
|
-
return null;
|
|
82
|
-
}
|
|
83
|
-
// only allow alpha characters and dash
|
|
84
|
-
const invalidChars = iconName.replace(/[a-z]|-|\d/gi, '');
|
|
85
|
-
if (invalidChars !== '') {
|
|
86
|
-
return null;
|
|
87
|
-
}
|
|
88
|
-
return iconName;
|
|
89
|
-
};
|
|
90
|
-
const getSrc = (src) => {
|
|
91
|
-
if (isStr(src)) {
|
|
92
|
-
src = src.trim();
|
|
93
|
-
if (isSrc(src)) {
|
|
94
|
-
return src;
|
|
95
|
-
}
|
|
96
|
-
}
|
|
97
|
-
return null;
|
|
98
|
-
};
|
|
99
|
-
const isSrc = (str) => str.length > 0 && /(\/|\.)/.test(str);
|
|
100
|
-
const isStr = (val) => typeof val === 'string';
|
|
101
|
-
const toLower = (val) => val.toLowerCase();
|
|
102
|
-
/**
|
|
103
|
-
* Elements inside of web components sometimes need to inherit global attributes
|
|
104
|
-
* set on the host. For example, the inner input in `ion-input` should inherit
|
|
105
|
-
* the `title` attribute that developers set directly on `ion-input`. This
|
|
106
|
-
* helper function should be called in componentWillLoad and assigned to a variable
|
|
107
|
-
* that is later used in the render function.
|
|
108
|
-
*
|
|
109
|
-
* This does not need to be reactive as changing attributes on the host element
|
|
110
|
-
* does not trigger a re-render.
|
|
111
|
-
*/
|
|
112
|
-
const inheritAttributes = (el, attributes = []) => {
|
|
113
|
-
const attributeObject = {};
|
|
114
|
-
attributes.forEach((attr) => {
|
|
115
|
-
if (el.hasAttribute(attr)) {
|
|
116
|
-
const value = el.getAttribute(attr);
|
|
117
|
-
if (value !== null) {
|
|
118
|
-
attributeObject[attr] = el.getAttribute(attr);
|
|
119
|
-
}
|
|
120
|
-
el.removeAttribute(attr);
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
return attributeObject;
|
|
124
|
-
};
|
|
125
|
-
/**
|
|
126
|
-
* Returns `true` if the document or host element
|
|
127
|
-
* has a `dir` set to `rtl`. The host value will always
|
|
128
|
-
* take priority over the root document value.
|
|
129
|
-
*/
|
|
130
|
-
const isRTL = (hostEl) => {
|
|
131
|
-
if (hostEl) {
|
|
132
|
-
if (hostEl.dir !== '') {
|
|
133
|
-
return hostEl.dir.toLowerCase() === 'rtl';
|
|
134
|
-
}
|
|
135
|
-
}
|
|
136
|
-
return (document === null || document === void 0 ? void 0 : document.dir.toLowerCase()) === 'rtl';
|
|
137
|
-
};
|
|
138
|
-
|
|
139
|
-
const validateContent = (svgContent) => {
|
|
140
|
-
const div = document.createElement('div');
|
|
141
|
-
div.innerHTML = svgContent;
|
|
142
|
-
// setup this way to ensure it works on our buddy IE
|
|
143
|
-
for (let i = div.childNodes.length - 1; i >= 0; i--) {
|
|
144
|
-
if (div.childNodes[i].nodeName.toLowerCase() !== 'svg') {
|
|
145
|
-
div.removeChild(div.childNodes[i]);
|
|
146
|
-
}
|
|
147
|
-
}
|
|
148
|
-
// must only have 1 root element
|
|
149
|
-
const svgElm = div.firstElementChild;
|
|
150
|
-
if (svgElm && svgElm.nodeName.toLowerCase() === 'svg') {
|
|
151
|
-
const svgClass = svgElm.getAttribute('class') || '';
|
|
152
|
-
svgElm.setAttribute('class', (svgClass + ' s-ion-icon').trim());
|
|
153
|
-
// root element must be an svg
|
|
154
|
-
// lets double check we've got valid elements
|
|
155
|
-
// do not allow scripts
|
|
156
|
-
if (isValid(svgElm)) {
|
|
157
|
-
return div.innerHTML;
|
|
158
|
-
}
|
|
159
|
-
}
|
|
160
|
-
return '';
|
|
161
|
-
};
|
|
162
|
-
const isValid = (elm) => {
|
|
163
|
-
if (elm.nodeType === 1) {
|
|
164
|
-
if (elm.nodeName.toLowerCase() === 'script') {
|
|
165
|
-
return false;
|
|
166
|
-
}
|
|
167
|
-
for (let i = 0; i < elm.attributes.length; i++) {
|
|
168
|
-
const name = elm.attributes[i].name;
|
|
169
|
-
if (isStr(name) && name.toLowerCase().indexOf('on') === 0) {
|
|
170
|
-
return false;
|
|
171
|
-
}
|
|
172
|
-
}
|
|
173
|
-
for (let i = 0; i < elm.childNodes.length; i++) {
|
|
174
|
-
if (!isValid(elm.childNodes[i])) {
|
|
175
|
-
return false;
|
|
176
|
-
}
|
|
177
|
-
}
|
|
178
|
-
}
|
|
179
|
-
return true;
|
|
180
|
-
};
|
|
181
|
-
const isSvgDataUrl = (url) => url.startsWith('data:image/svg+xml');
|
|
182
|
-
const isEncodedDataUrl = (url) => url.indexOf(';utf8,') !== -1;
|
|
183
|
-
|
|
184
|
-
const ioniconContent = new Map();
|
|
185
|
-
const requests = new Map();
|
|
186
|
-
let parser;
|
|
187
|
-
/**
|
|
188
|
-
* Safely fallback to an empty svg
|
|
189
|
-
*/
|
|
190
|
-
function safeFallback(url) {
|
|
191
|
-
const svg = '';
|
|
192
|
-
ioniconContent.set(url, svg);
|
|
193
|
-
return svg;
|
|
194
|
-
}
|
|
195
|
-
const getSvgContent = (url, sanitize) => {
|
|
196
|
-
/**
|
|
197
|
-
* See if we already have a request for this url
|
|
198
|
-
*/
|
|
199
|
-
const req = requests.get(url);
|
|
200
|
-
if (req) {
|
|
201
|
-
return req;
|
|
202
|
-
}
|
|
203
|
-
if (typeof fetch !== 'undefined' && typeof document !== 'undefined') {
|
|
204
|
-
/**
|
|
205
|
-
* If the url is a data url of an svg, then try to parse it
|
|
206
|
-
* with the DOMParser. This works with content security policies enabled.
|
|
207
|
-
*/
|
|
208
|
-
if (isSvgDataUrl(url) && isEncodedDataUrl(url)) {
|
|
209
|
-
return Promise.resolve(getSvgByUrl(url));
|
|
210
|
-
}
|
|
211
|
-
return fetchSvg(url, sanitize);
|
|
212
|
-
}
|
|
213
|
-
return Promise.resolve(safeFallback(url));
|
|
214
|
-
};
|
|
215
|
-
function getSvgByUrl(url) {
|
|
216
|
-
if (!parser) {
|
|
217
|
-
/**
|
|
218
|
-
* Create an instance of the DOM parser. This creates a single
|
|
219
|
-
* parser instance for the entire app, which is more efficient.
|
|
220
|
-
*/
|
|
221
|
-
parser = new DOMParser();
|
|
222
|
-
}
|
|
223
|
-
const doc = parser.parseFromString(url, 'text/html');
|
|
224
|
-
const svg = doc.querySelector('svg');
|
|
225
|
-
if (svg) {
|
|
226
|
-
ioniconContent.set(url, svg.outerHTML);
|
|
227
|
-
return svg.outerHTML;
|
|
228
|
-
}
|
|
229
|
-
throw new Error(`Could not parse svg from ${url}`);
|
|
230
|
-
}
|
|
231
|
-
function fetchSvg(url, sanitize) {
|
|
232
|
-
/**
|
|
233
|
-
* We don't already have a request
|
|
234
|
-
*/
|
|
235
|
-
const req = fetch(url)
|
|
236
|
-
.then((rsp) => {
|
|
237
|
-
/**
|
|
238
|
-
* When fetching from a file:// URL, some browsers return
|
|
239
|
-
* a 0 status code even when the request succeeds so don't
|
|
240
|
-
* rely on rsp.ok as the only signal of success.
|
|
241
|
-
*/
|
|
242
|
-
return rsp
|
|
243
|
-
.text()
|
|
244
|
-
.then((svgContent) => {
|
|
245
|
-
if (svgContent && sanitize !== false) {
|
|
246
|
-
svgContent = validateContent(svgContent);
|
|
247
|
-
}
|
|
248
|
-
const svg = svgContent || '';
|
|
249
|
-
ioniconContent.set(url, svg);
|
|
250
|
-
return svg;
|
|
251
|
-
})
|
|
252
|
-
.catch(() => safeFallback(url));
|
|
253
|
-
})
|
|
254
|
-
.catch(() => safeFallback(url));
|
|
255
|
-
/**
|
|
256
|
-
* Cache for the same requests
|
|
257
|
-
*/
|
|
258
|
-
requests.set(url, req);
|
|
259
|
-
return req;
|
|
260
|
-
}
|
|
261
|
-
|
|
262
|
-
const iconCss = ":host{display:inline-block;width:1em;height:1em;contain:strict;fill:currentColor;-webkit-box-sizing:content-box !important;box-sizing:content-box !important}:host .ionicon{stroke:currentColor}.ionicon-fill-none{fill:none}.ionicon-stroke-width{stroke-width:var(--ionicon-stroke-width, 32px)}.icon-inner,.ionicon,svg{display:block;height:100%;width:100%}@supports (background: -webkit-named-image(i)){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}@supports not selector(:dir(rtl)) and selector(:host-context([dir='rtl'])){:host(.icon-rtl) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}}:host(.flip-rtl):host-context([dir='rtl']) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}@supports selector(:dir(rtl)){:host(.flip-rtl:dir(rtl)) .icon-inner{-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.flip-rtl:dir(ltr)) .icon-inner{-webkit-transform:scaleX(1);transform:scaleX(1)}}:host(.icon-small){font-size:1.125rem !important}:host(.icon-large){font-size:2rem !important}:host(.ion-color){color:var(--ion-color-base) !important}:host(.ion-color-primary){--ion-color-base:var(--ion-color-primary, #3880ff)}:host(.ion-color-secondary){--ion-color-base:var(--ion-color-secondary, #0cd1e8)}:host(.ion-color-tertiary){--ion-color-base:var(--ion-color-tertiary, #f4a942)}:host(.ion-color-success){--ion-color-base:var(--ion-color-success, #10dc60)}:host(.ion-color-warning){--ion-color-base:var(--ion-color-warning, #ffce00)}:host(.ion-color-danger){--ion-color-base:var(--ion-color-danger, #f14141)}:host(.ion-color-light){--ion-color-base:var(--ion-color-light, #f4f5f8)}:host(.ion-color-medium){--ion-color-base:var(--ion-color-medium, #989aa2)}:host(.ion-color-dark){--ion-color-base:var(--ion-color-dark, #222428)}";
|
|
263
|
-
|
|
264
|
-
const Icon = /*@__PURE__*/ proxyCustomElement(class Icon extends H {
|
|
265
|
-
constructor(registerHost) {
|
|
266
|
-
super();
|
|
267
|
-
if (registerHost !== false) {
|
|
268
|
-
this.__registerHost();
|
|
269
|
-
}
|
|
270
|
-
this.__attachShadow();
|
|
271
|
-
this.iconName = null;
|
|
272
|
-
this.inheritedAttributes = {};
|
|
273
|
-
this.didLoadIcon = false;
|
|
274
|
-
this.isVisible = false;
|
|
275
|
-
/**
|
|
276
|
-
* The mode determines which platform styles to use.
|
|
277
|
-
*/
|
|
278
|
-
this.mode = getIonMode();
|
|
279
|
-
/**
|
|
280
|
-
* If enabled, ion-icon will be loaded lazily when it's visible in the viewport.
|
|
281
|
-
* Default, `false`.
|
|
282
|
-
*/
|
|
283
|
-
this.lazy = false;
|
|
284
|
-
/**
|
|
285
|
-
* When set to `false`, SVG content that is HTTP fetched will not be checked
|
|
286
|
-
* if the response SVG content has any `<script>` elements, or any attributes
|
|
287
|
-
* that start with `on`, such as `onclick`.
|
|
288
|
-
* @default true
|
|
289
|
-
*/
|
|
290
|
-
this.sanitize = true;
|
|
291
|
-
}
|
|
292
|
-
componentWillLoad() {
|
|
293
|
-
this.inheritedAttributes = inheritAttributes(this.el, ['aria-label']);
|
|
294
|
-
}
|
|
295
|
-
connectedCallback() {
|
|
296
|
-
/**
|
|
297
|
-
* purposely do not return the promise here because loading
|
|
298
|
-
* the svg file should not hold up loading the app
|
|
299
|
-
* only load the svg if it's visible
|
|
300
|
-
*/
|
|
301
|
-
this.waitUntilVisible(this.el, '50px', () => {
|
|
302
|
-
this.isVisible = true;
|
|
303
|
-
this.loadIcon();
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
/**
|
|
307
|
-
* Loads the icon after the component has finished rendering.
|
|
308
|
-
*/
|
|
309
|
-
componentDidLoad() {
|
|
310
|
-
/**
|
|
311
|
-
* Addresses an Angular issue where property values are assigned after the 'connectedCallback' but prior to the registration of watchers.
|
|
312
|
-
* This enhancement ensures the loading of an icon when the component has finished rendering and the icon has yet to apply the SVG data.
|
|
313
|
-
* This modification pertains to the usage of Angular's binding syntax:
|
|
314
|
-
* `<ion-icon [name]="myIconName"></ion-icon>`
|
|
315
|
-
*/
|
|
316
|
-
if (!this.didLoadIcon) {
|
|
317
|
-
this.loadIcon();
|
|
318
|
-
}
|
|
319
|
-
}
|
|
320
|
-
/**
|
|
321
|
-
* Disconnect the IntersectionObserver.
|
|
322
|
-
*/
|
|
323
|
-
disconnectedCallback() {
|
|
324
|
-
if (this.io) {
|
|
325
|
-
this.io.disconnect();
|
|
326
|
-
this.io = undefined;
|
|
327
|
-
}
|
|
328
|
-
}
|
|
329
|
-
/**
|
|
330
|
-
* Wait until the icon is visible in the viewport.
|
|
331
|
-
* @param el - The element to observe.
|
|
332
|
-
* @param rootMargin - The root margin of the observer.
|
|
333
|
-
* @param cb - The callback to call when the element is visible.
|
|
334
|
-
*/
|
|
335
|
-
waitUntilVisible(el, rootMargin, cb) {
|
|
336
|
-
/**
|
|
337
|
-
* IntersectionObserver is a browser API that allows you to observe
|
|
338
|
-
* the visibility of an element relative to a root element. It is
|
|
339
|
-
* supported in all modern browsers, except IE and when server-side
|
|
340
|
-
* rendering.
|
|
341
|
-
*/
|
|
342
|
-
const hasIntersectionObserverSupport = Boolean(this.lazy && typeof window !== 'undefined' && window.IntersectionObserver);
|
|
343
|
-
/**
|
|
344
|
-
* browser doesn't support IntersectionObserver
|
|
345
|
-
* so just fallback to always show it
|
|
346
|
-
*/
|
|
347
|
-
if (!hasIntersectionObserverSupport) {
|
|
348
|
-
return cb();
|
|
349
|
-
}
|
|
350
|
-
const io = (this.io = new window.IntersectionObserver((data) => {
|
|
351
|
-
if (data[0].isIntersecting) {
|
|
352
|
-
io.disconnect();
|
|
353
|
-
this.io = undefined;
|
|
354
|
-
cb();
|
|
355
|
-
}
|
|
356
|
-
}, { rootMargin }));
|
|
357
|
-
io.observe(el);
|
|
358
|
-
}
|
|
359
|
-
/**
|
|
360
|
-
* Watch for changes to the icon name, src, icon, ios, or md properties.
|
|
361
|
-
* When a change is detected, the icon will be loaded.
|
|
362
|
-
*/
|
|
363
|
-
loadIcon() {
|
|
364
|
-
if (this.isVisible) {
|
|
365
|
-
const url = getUrl(this);
|
|
366
|
-
if (url) {
|
|
367
|
-
if (ioniconContent.has(url)) {
|
|
368
|
-
// sync if it's already loaded
|
|
369
|
-
this.svgContent = ioniconContent.get(url);
|
|
370
|
-
}
|
|
371
|
-
else {
|
|
372
|
-
// async if it hasn't been loaded
|
|
373
|
-
getSvgContent(url, this.sanitize).then(() => (this.svgContent = ioniconContent.get(url)));
|
|
374
|
-
}
|
|
375
|
-
this.didLoadIcon = true;
|
|
376
|
-
}
|
|
377
|
-
}
|
|
378
|
-
this.iconName = getName(this.name, this.icon, this.mode, this.ios, this.md);
|
|
379
|
-
}
|
|
380
|
-
render() {
|
|
381
|
-
const { flipRtl, iconName, inheritedAttributes, el } = this;
|
|
382
|
-
const mode = this.mode || 'md';
|
|
383
|
-
/**
|
|
384
|
-
* we have designated that arrows & chevrons should automatically flip (unless flip-rtl
|
|
385
|
-
* is set to false) because "back" is left in ltr and right in rtl, and "forward" is the opposite
|
|
386
|
-
*/
|
|
387
|
-
const shouldAutoFlip = iconName
|
|
388
|
-
? (iconName.includes('arrow') || iconName.includes('chevron')) && flipRtl !== false
|
|
389
|
-
: false;
|
|
390
|
-
/**
|
|
391
|
-
* if shouldBeFlippable is true, the icon should change direction when `dir` changes
|
|
392
|
-
*/
|
|
393
|
-
const shouldBeFlippable = flipRtl || shouldAutoFlip;
|
|
394
|
-
return (h(Host, Object.assign({ key: '0578c899781ca145dd8205acd9670af39b57cf2e', role: "img", class: Object.assign(Object.assign({ [mode]: true }, createColorClasses(this.color)), { [`icon-${this.size}`]: !!this.size, 'flip-rtl': shouldBeFlippable, 'icon-rtl': shouldBeFlippable && isRTL(el) }) }, inheritedAttributes), this.svgContent ? (h("div", { class: "icon-inner", innerHTML: this.svgContent })) : (h("div", { class: "icon-inner" }))));
|
|
395
|
-
}
|
|
396
|
-
static get assetsDirs() { return ["svg"]; }
|
|
397
|
-
get el() { return this; }
|
|
398
|
-
static get watchers() { return {
|
|
399
|
-
"name": ["loadIcon"],
|
|
400
|
-
"src": ["loadIcon"],
|
|
401
|
-
"icon": ["loadIcon"],
|
|
402
|
-
"ios": ["loadIcon"],
|
|
403
|
-
"md": ["loadIcon"]
|
|
404
|
-
}; }
|
|
405
|
-
static get style() { return iconCss; }
|
|
406
|
-
}, [257, "ion-icon", {
|
|
407
|
-
"mode": [1025],
|
|
408
|
-
"color": [1],
|
|
409
|
-
"ios": [1],
|
|
410
|
-
"md": [1],
|
|
411
|
-
"flipRtl": [4, "flip-rtl"],
|
|
412
|
-
"name": [513],
|
|
413
|
-
"src": [1],
|
|
414
|
-
"icon": [8],
|
|
415
|
-
"size": [1],
|
|
416
|
-
"lazy": [4],
|
|
417
|
-
"sanitize": [4],
|
|
418
|
-
"svgContent": [32],
|
|
419
|
-
"isVisible": [32]
|
|
420
|
-
}, undefined, {
|
|
421
|
-
"name": ["loadIcon"],
|
|
422
|
-
"src": ["loadIcon"],
|
|
423
|
-
"icon": ["loadIcon"],
|
|
424
|
-
"ios": ["loadIcon"],
|
|
425
|
-
"md": ["loadIcon"]
|
|
426
|
-
}]);
|
|
427
|
-
/**
|
|
428
|
-
* Get the mode of the document.
|
|
429
|
-
* @returns The mode of the document.
|
|
430
|
-
*/
|
|
431
|
-
const getIonMode = () => (typeof document !== 'undefined' && document.documentElement.getAttribute('mode')) || 'md';
|
|
432
|
-
/**
|
|
433
|
-
* Create color classes for the icon.
|
|
434
|
-
* @param color - The color of the icon.
|
|
435
|
-
* @returns The color classes for the icon.
|
|
436
|
-
*/
|
|
437
|
-
const createColorClasses = (color) => {
|
|
438
|
-
return color
|
|
439
|
-
? {
|
|
440
|
-
'ion-color': true,
|
|
441
|
-
[`ion-color-${color}`]: true,
|
|
442
|
-
}
|
|
443
|
-
: null;
|
|
444
|
-
};
|
|
445
|
-
function defineCustomElement() {
|
|
446
|
-
if (typeof customElements === "undefined") {
|
|
447
|
-
return;
|
|
448
|
-
}
|
|
449
|
-
const components = ["ion-icon"];
|
|
450
|
-
components.forEach(tagName => { switch (tagName) {
|
|
451
|
-
case "ion-icon":
|
|
452
|
-
if (!customElements.get(tagName)) {
|
|
453
|
-
customElements.define(tagName, Icon);
|
|
454
|
-
}
|
|
455
|
-
break;
|
|
456
|
-
} });
|
|
457
|
-
}
|
|
458
|
-
|
|
459
|
-
export { Icon as I, defineCustomElement as d };
|