@ionic/core 8.8.14-dev.11784037956.17449639 → 8.8.14-dev.11784216165.1ecbf364
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-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-fab-button.js +1 -1
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.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-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-279dFMvg.js +4 -0
- package/components/p-BSQPZ79H.js +4 -0
- package/components/{p-BHrrc-3d.js → p-Buf_7zcy.js} +1 -1
- package/components/p-BwKpO3Is.js +4 -0
- package/components/p-C-Rx1zny.js +4 -0
- package/components/p-CHzfYZbv.js +4 -0
- package/components/p-D4h1H_hh.js +4 -0
- package/components/{p-BSEgsdFI.js → p-DhkITZ-y.js} +1 -1
- package/components/{p-5bE_Wz4Y.js → p-DpV-p5Xs.js} +1 -1
- package/components/{p-Cfx4M1Bn.js → p-Dz74mwlk.js} +1 -1
- package/components/p-LMGfIvTf.js +4 -0
- package/components/{p-BLmJ0zRm.js → p-XJWMAP8m.js} +1 -1
- package/components/p-_lHSumhG.js +4 -0
- package/components/p-j9Da6cYO.js +4 -0
- package/components/p-jOtMJMv8.js +4 -0
- package/components/{p-B60hm8Qv.js → p-r0aq7dpt.js} +1 -1
- package/components/p-uTR_dEqg.js +4 -0
- package/components/{p-rCa2eL0j.js → p-wk2QqrAo.js} +1 -1
- package/dist/cjs/config-DWdFbSNK.js +35 -0
- package/dist/cjs/index-Cueg3U4w.js +429 -0
- package/dist/cjs/index.cjs.js +6 -6
- package/dist/cjs/ion-action-sheet.cjs.entry.js +27 -7
- package/dist/cjs/ion-alert.cjs.entry.js +64 -25
- package/dist/cjs/ion-app_8.cjs.entry.js +23 -9
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
- package/dist/cjs/{ion-datetime_3.cjs.entry.js → ion-datetime.cjs.entry.js} +1 -639
- package/dist/cjs/ion-img.cjs.entry.js +3 -1
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -2
- package/dist/cjs/ion-input.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-loading.cjs.entry.js +10 -5
- package/dist/cjs/ion-menu_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-modal.cjs.entry.js +23 -33
- package/dist/cjs/ion-nav_2.cjs.entry.js +2 -115
- package/dist/cjs/ion-popover.cjs.entry.js +9 -5
- package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-range.cjs.entry.js +3 -3
- package/dist/cjs/ion-refresher_2.cjs.entry.js +6 -5
- package/dist/cjs/ion-reorder_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +18 -4
- package/dist/cjs/ion-searchbar.cjs.entry.js +5 -5
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-select-modal.cjs.entry.js +84 -30
- package/dist/cjs/ion-select_3.cjs.entry.js +407 -49
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +2 -2
- package/dist/cjs/ion-toast.cjs.entry.js +6 -5
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/overlay-control-label-D2sdL2O8.js +50 -0
- package/dist/cjs/{overlays-B9UiYZ4R.js → overlays-DSmSrd_4.js} +27 -30
- package/dist/cjs/select-option-render-DTF50t5r.js +124 -0
- package/dist/collection/collection-manifest.json +6 -10
- package/dist/collection/components/action-sheet/action-sheet.ios.css +229 -2
- package/dist/collection/components/action-sheet/action-sheet.js +24 -5
- package/dist/collection/components/action-sheet/action-sheet.md.css +175 -2
- package/dist/collection/components/alert/alert.ios.css +280 -10
- package/dist/collection/components/alert/alert.js +59 -21
- package/dist/collection/components/alert/alert.md.css +269 -20
- package/dist/collection/components/img/img.js +6 -1
- package/dist/collection/components/input/input.js +8 -8
- package/dist/collection/components/loading/loading.js +7 -3
- package/dist/collection/components/modal/gestures/sheet.js +0 -8
- package/dist/collection/components/modal/gestures/swipe-to-close.js +0 -8
- package/dist/collection/components/modal/modal.ios.css +0 -8
- package/dist/collection/components/modal/modal.js +23 -17
- package/dist/collection/components/modal/modal.md.css +0 -8
- package/dist/collection/components/nav/nav.js +4 -219
- package/dist/collection/components/popover/popover.ios.css +15 -0
- package/dist/collection/components/popover/popover.js +7 -3
- package/dist/collection/components/popover/popover.md.css +15 -0
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio/radio.js +4 -4
- package/dist/collection/components/range/range.js +3 -3
- package/dist/collection/components/refresher/refresher.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +1 -1
- package/dist/collection/components/reorder/reorder.js +1 -1
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/route/route.js +1 -1
- package/dist/collection/components/router/utils/dom.js +22 -3
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +38 -5
- package/dist/collection/components/row/row.js +1 -1
- package/dist/collection/components/searchbar/searchbar.js +9 -9
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment-button/segment-button.js +2 -2
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +2 -2
- package/dist/collection/components/select/select.ios.css +33 -0
- package/dist/collection/components/select/select.js +323 -16
- package/dist/collection/components/select/select.md.css +33 -0
- package/dist/collection/components/select-modal/select-modal.ios.css +219 -0
- package/dist/collection/components/select-modal/select-modal.js +79 -26
- package/dist/collection/components/select-modal/select-modal.md.css +165 -0
- package/dist/collection/components/select-option/select-option.js +67 -3
- package/dist/collection/components/select-popover/select-popover.ios.css +219 -0
- package/dist/collection/components/select-popover/select-popover.js +78 -26
- package/dist/collection/components/select-popover/select-popover.md.css +165 -0
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/textarea.js +2 -2
- package/dist/collection/components/thumbnail/thumbnail.js +1 -1
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.js +3 -3
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/collection/index.js +1 -1
- package/dist/collection/utils/overlay-control-label.js +45 -0
- package/dist/collection/utils/overlays.js +26 -29
- package/dist/collection/utils/sanitization/index.js +274 -18
- package/dist/collection/utils/select-option-render.js +119 -0
- package/dist/docs.json +497 -1189
- package/dist/esm/config-BwKpO3Is.js +31 -0
- package/dist/esm/{index-DV3sJJW8.js → index-AlrZKoWR.js} +1 -1
- package/dist/esm/index-DQSkZyOJ.js +424 -0
- package/dist/esm/index.js +3 -2
- package/dist/esm/ion-accordion_2.entry.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +27 -7
- package/dist/esm/ion-alert.entry.js +63 -24
- package/dist/esm/ion-app_8.entry.js +23 -9
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-back-button.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +1 -1
- package/dist/esm/{ion-datetime_3.entry.js → ion-datetime.entry.js} +5 -641
- package/dist/esm/ion-fab_3.entry.js +1 -1
- package/dist/esm/ion-img.entry.js +4 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +2 -1
- package/dist/esm/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm/ion-input.entry.js +5 -5
- package/dist/esm/ion-item_8.entry.js +3 -3
- package/dist/esm/ion-loading.entry.js +9 -4
- package/dist/esm/ion-menu_3.entry.js +2 -2
- package/dist/esm/ion-modal.entry.js +23 -33
- package/dist/esm/ion-nav_2.entry.js +3 -116
- package/dist/esm/ion-popover.entry.js +9 -5
- package/dist/esm/ion-progress-bar.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +3 -3
- package/dist/esm/ion-range.entry.js +3 -3
- package/dist/esm/ion-refresher_2.entry.js +5 -4
- package/dist/esm/ion-reorder_2.entry.js +3 -3
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +18 -4
- package/dist/esm/ion-searchbar.entry.js +6 -6
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +4 -4
- package/dist/esm/ion-select-modal.entry.js +84 -30
- package/dist/esm/ion-select_3.entry.js +410 -52
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +2 -2
- package/dist/esm/ion-toast.entry.js +5 -4
- package/dist/esm/ion-toggle.entry.js +4 -4
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/overlay-control-label-BSQPZ79H.js +47 -0
- package/dist/esm/{overlays-Bmfhux69.js → overlays-DLNOHWNc.js} +28 -31
- package/dist/esm/select-option-render-B8nWZRnd.js +122 -0
- package/dist/html.html-data.json +52 -80
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-038eb991.entry.js +4 -0
- package/dist/ionic/{p-3a126bca.entry.js → p-259d0d98.entry.js} +1 -1
- package/dist/ionic/{p-fabcce6c.entry.js → p-341032b3.entry.js} +1 -1
- package/dist/ionic/{p-3a7d1e91.entry.js → p-4502a274.entry.js} +1 -1
- package/dist/ionic/p-4621c387.entry.js +4 -0
- package/dist/ionic/p-4ace7762.entry.js +4 -0
- package/dist/ionic/p-4bb3eb60.entry.js +4 -0
- package/dist/ionic/p-4e9ec5c5.entry.js +4 -0
- package/dist/ionic/{p-874b4bd8.entry.js → p-51cd1643.entry.js} +1 -1
- package/dist/ionic/p-5c3ec490.entry.js +4 -0
- package/dist/ionic/p-5d1ac2c7.entry.js +4 -0
- package/dist/ionic/{p-3ae5f277.entry.js → p-627fabd9.entry.js} +1 -1
- package/dist/ionic/{p-e0be05c5.entry.js → p-629e4703.entry.js} +1 -1
- package/dist/ionic/p-700795f6.entry.js +4 -0
- package/dist/ionic/{p-5d1da0a2.entry.js → p-76e92a84.entry.js} +1 -1
- package/dist/ionic/p-79a36078.entry.js +4 -0
- package/dist/ionic/{p-9f1103ce.entry.js → p-7a37b3ce.entry.js} +1 -1
- package/dist/ionic/{p-3353c229.entry.js → p-80b44b3c.entry.js} +1 -1
- package/dist/ionic/p-913b218a.entry.js +4 -0
- package/dist/ionic/{p-390ca786.entry.js → p-9177f4ac.entry.js} +1 -1
- package/dist/ionic/{p-DV3sJJW8.js → p-AlrZKoWR.js} +1 -1
- package/dist/ionic/p-BDtODLZ4.js +4 -0
- package/dist/ionic/p-BSQPZ79H.js +4 -0
- package/dist/ionic/p-BwKpO3Is.js +4 -0
- package/dist/ionic/p-Cg5-OQYy.js +4 -0
- package/dist/ionic/p-DCOvXkOm.js +4 -0
- package/dist/ionic/p-a18dcb3c.entry.js +4 -0
- package/dist/ionic/{p-4858af1f.entry.js → p-a5213260.entry.js} +1 -1
- package/dist/ionic/{p-37e720da.entry.js → p-a7628bc7.entry.js} +1 -1
- package/dist/ionic/p-a9a33367.entry.js +4 -0
- package/dist/ionic/p-ad728198.entry.js +4 -0
- package/dist/ionic/{p-ef4c3bee.entry.js → p-b1599fca.entry.js} +1 -1
- package/dist/ionic/{p-84d5ce05.entry.js → p-b9ac1fe0.entry.js} +1 -1
- package/dist/ionic/p-bfc8c629.entry.js +4 -0
- package/dist/ionic/p-c08e666a.entry.js +4 -0
- package/dist/ionic/p-c474f471.entry.js +4 -0
- package/dist/ionic/{p-cf91e738.entry.js → p-c93553d2.entry.js} +1 -1
- package/dist/ionic/p-ce7992c4.entry.js +4 -0
- package/dist/ionic/{p-75dc25ba.entry.js → p-d2c7f046.entry.js} +1 -1
- package/dist/ionic/{p-c4d8641b.entry.js → p-d8387b99.entry.js} +1 -1
- package/dist/ionic/{p-9a65ac7f.entry.js → p-db1b6738.entry.js} +1 -1
- package/dist/ionic/p-ed797c72.entry.js +4 -0
- package/dist/ionic/{p-8eb8ee76.entry.js → p-ef93ca92.entry.js} +1 -1
- package/dist/ionic/p-f09f9642.entry.js +4 -0
- package/dist/ionic/p-f1c06f82.entry.js +4 -0
- package/dist/ionic/p-f718fccb.entry.js +4 -0
- package/dist/ionic/{p-0fa9c382.entry.js → p-fe4aa1db.entry.js} +1 -1
- package/dist/types/components/img/img.d.ts +2 -0
- package/dist/types/components/input/input.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +11 -4
- package/dist/types/components/nav/nav-interface.d.ts +0 -1
- package/dist/types/components/nav/nav.d.ts +2 -22
- package/dist/types/components/route/route.d.ts +1 -1
- package/dist/types/components/router-outlet/router-outlet.d.ts +7 -0
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components/select/select-interface.d.ts +31 -0
- package/dist/types/components/select/select.d.ts +18 -0
- package/dist/types/components/select-option/select-option.d.ts +42 -1
- package/dist/types/components.d.ts +74 -303
- package/dist/types/index.d.ts +1 -1
- package/dist/types/interface.d.ts +0 -1
- package/dist/types/utils/config.d.ts +0 -8
- package/dist/types/utils/overlay-control-label.d.ts +32 -0
- package/dist/types/utils/overlays.d.ts +11 -9
- package/dist/types/utils/sanitization/index.d.ts +58 -2
- package/dist/types/utils/select-option-render.d.ts +53 -0
- package/hydrate/index.js +1410 -1292
- package/hydrate/index.mjs +1410 -1292
- package/package.json +37 -5
- package/components/ion-picker-legacy-column.d.ts +0 -11
- package/components/ion-picker-legacy-column.js +0 -4
- package/components/ion-picker-legacy.d.ts +0 -11
- package/components/ion-picker-legacy.js +0 -4
- package/components/p-B1BWKArA.js +0 -4
- package/components/p-B4PlLGHT.js +0 -4
- package/components/p-BFsEcwW9.js +0 -4
- package/components/p-CFRyvUvJ.js +0 -4
- package/components/p-CU5rbWAW.js +0 -4
- package/components/p-CgLiHbz0.js +0 -4
- package/components/p-MLyEeL3Q.js +0 -4
- package/components/p-PgMVWD8U.js +0 -4
- package/components/p-k_E4tX5Z.js +0 -4
- package/dist/cjs/config-xninhj0J.js +0 -201
- package/dist/collection/components/picker-legacy/animations/ios.enter.js +0 -27
- package/dist/collection/components/picker-legacy/animations/ios.leave.js +0 -23
- package/dist/collection/components/picker-legacy/picker-interface.js +0 -1
- package/dist/collection/components/picker-legacy/picker.ios.css +0 -300
- package/dist/collection/components/picker-legacy/picker.js +0 -890
- package/dist/collection/components/picker-legacy/picker.md.css +0 -287
- package/dist/collection/components/picker-legacy-column/picker-column.ios.css +0 -231
- package/dist/collection/components/picker-legacy-column/picker-column.js +0 -422
- package/dist/collection/components/picker-legacy-column/picker-column.md.css +0 -222
- package/dist/collection/components/picker-legacy-column/test/test.utils.js +0 -43
- package/dist/esm/config-DQCONYYp.js +0 -195
- package/dist/ionic/p-01f81ea5.entry.js +0 -4
- package/dist/ionic/p-02473803.entry.js +0 -4
- package/dist/ionic/p-20b1a044.entry.js +0 -4
- package/dist/ionic/p-21eb76d5.entry.js +0 -4
- package/dist/ionic/p-27d30585.entry.js +0 -4
- package/dist/ionic/p-2bb2cb18.entry.js +0 -4
- package/dist/ionic/p-2f529a55.entry.js +0 -4
- package/dist/ionic/p-485fda23.entry.js +0 -4
- package/dist/ionic/p-48fa7fb1.entry.js +0 -4
- package/dist/ionic/p-4baa5b82.entry.js +0 -4
- package/dist/ionic/p-4d9181c7.entry.js +0 -4
- package/dist/ionic/p-50e1194a.entry.js +0 -4
- package/dist/ionic/p-532eb373.entry.js +0 -4
- package/dist/ionic/p-8fce95d5.entry.js +0 -4
- package/dist/ionic/p-B0zdMdR0.js +0 -4
- package/dist/ionic/p-DzWaWHGc.js +0 -4
- package/dist/ionic/p-a21add2f.entry.js +0 -4
- package/dist/ionic/p-ab60b48a.entry.js +0 -4
- package/dist/ionic/p-ec090e0a.entry.js +0 -4
- package/dist/ionic/p-f386f6ae.entry.js +0 -4
- package/dist/ionic/p-f994dc44.entry.js +0 -4
- package/dist/ionic/p-fd76f647.entry.js +0 -4
- package/dist/ionic/p-fda60562.entry.js +0 -4
- package/dist/types/components/picker-legacy/animations/ios.enter.d.ts +0 -5
- package/dist/types/components/picker-legacy/animations/ios.leave.d.ts +0 -5
- package/dist/types/components/picker-legacy/picker-interface.d.ts +0 -52
- package/dist/types/components/picker-legacy/picker.d.ts +0 -158
- package/dist/types/components/picker-legacy-column/picker-column.d.ts +0 -46
- package/dist/types/components/picker-legacy-column/test/test.utils.d.ts +0 -9
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import {
|
|
4
|
+
import { h } from "@stencil/core";
|
|
5
5
|
import { getTimeGivenProgression } from "../../utils/animation/cubic-bezier";
|
|
6
6
|
import { assert } from "../../utils/helpers";
|
|
7
7
|
import { printIonWarning } from "../../utils/logging/index";
|
|
@@ -9,12 +9,11 @@ import { lifecycle, setPageHidden, transition } from "../../utils/transition/ind
|
|
|
9
9
|
import { config } from "../../global/config";
|
|
10
10
|
import { getIonMode } from "../../global/ionic-global";
|
|
11
11
|
import { LIFECYCLE_DID_LEAVE, LIFECYCLE_WILL_LEAVE, LIFECYCLE_WILL_UNLOAD } from "./constants";
|
|
12
|
-
import { VIEW_STATE_ATTACHED, VIEW_STATE_DESTROYED, VIEW_STATE_NEW, convertToViews
|
|
12
|
+
import { VIEW_STATE_ATTACHED, VIEW_STATE_DESTROYED, VIEW_STATE_NEW, convertToViews } from "./view-controller";
|
|
13
13
|
export class Nav {
|
|
14
14
|
constructor() {
|
|
15
15
|
this.transInstr = [];
|
|
16
16
|
this.gestureOrAnimationInProgress = false;
|
|
17
|
-
this.useRouter = false;
|
|
18
17
|
this.isTransitioning = false;
|
|
19
18
|
this.destroyed = false;
|
|
20
19
|
this.views = [];
|
|
@@ -30,7 +29,6 @@ export class Nav {
|
|
|
30
29
|
}
|
|
31
30
|
}
|
|
32
31
|
rootChanged() {
|
|
33
|
-
const isDev = Build.isDev;
|
|
34
32
|
if (this.root === undefined) {
|
|
35
33
|
return;
|
|
36
34
|
}
|
|
@@ -41,17 +39,9 @@ export class Nav {
|
|
|
41
39
|
*/
|
|
42
40
|
return;
|
|
43
41
|
}
|
|
44
|
-
|
|
45
|
-
if (this.root !== undefined) {
|
|
46
|
-
this.setRoot(this.root, this.rootParams);
|
|
47
|
-
}
|
|
48
|
-
}
|
|
49
|
-
else if (isDev) {
|
|
50
|
-
printIonWarning('[ion-nav] - A root attribute is not supported when using ion-router.', this.el);
|
|
51
|
-
}
|
|
42
|
+
this.setRoot(this.root, this.rootParams);
|
|
52
43
|
}
|
|
53
44
|
componentWillLoad() {
|
|
54
|
-
this.useRouter = document.querySelector('ion-router') !== null && this.el.closest('[no-router]') === null;
|
|
55
45
|
if (this.swipeGesture === undefined) {
|
|
56
46
|
const mode = getIonMode(this);
|
|
57
47
|
this.swipeGesture = config.getBoolean('swipeBackEnabled', mode === 'ios');
|
|
@@ -216,78 +206,6 @@ export class Nav {
|
|
|
216
206
|
opts,
|
|
217
207
|
}, done);
|
|
218
208
|
}
|
|
219
|
-
/**
|
|
220
|
-
* Called by the router to update the view.
|
|
221
|
-
*
|
|
222
|
-
* @param id The component tag.
|
|
223
|
-
* @param params The component params.
|
|
224
|
-
* @param direction A direction hint.
|
|
225
|
-
* @param animation an AnimationBuilder.
|
|
226
|
-
*
|
|
227
|
-
* @return the status.
|
|
228
|
-
* @internal
|
|
229
|
-
*/
|
|
230
|
-
setRouteId(id, params, direction, animation) {
|
|
231
|
-
const active = this.getActiveSync();
|
|
232
|
-
if (matches(active, id, params)) {
|
|
233
|
-
return Promise.resolve({
|
|
234
|
-
changed: false,
|
|
235
|
-
element: active.element,
|
|
236
|
-
});
|
|
237
|
-
}
|
|
238
|
-
let resolve;
|
|
239
|
-
const promise = new Promise((r) => (resolve = r));
|
|
240
|
-
let finish;
|
|
241
|
-
const commonOpts = {
|
|
242
|
-
updateURL: false,
|
|
243
|
-
viewIsReady: (enteringEl) => {
|
|
244
|
-
let mark;
|
|
245
|
-
const p = new Promise((r) => (mark = r));
|
|
246
|
-
resolve({
|
|
247
|
-
changed: true,
|
|
248
|
-
element: enteringEl,
|
|
249
|
-
markVisible: async () => {
|
|
250
|
-
mark();
|
|
251
|
-
await finish;
|
|
252
|
-
},
|
|
253
|
-
});
|
|
254
|
-
return p;
|
|
255
|
-
},
|
|
256
|
-
};
|
|
257
|
-
if (direction === 'root') {
|
|
258
|
-
finish = this.setRoot(id, params, commonOpts);
|
|
259
|
-
}
|
|
260
|
-
else {
|
|
261
|
-
// Look for a view matching the target in the view stack.
|
|
262
|
-
const viewController = this.views.find((v) => matches(v, id, params));
|
|
263
|
-
if (viewController) {
|
|
264
|
-
finish = this.popTo(viewController, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animationBuilder: animation }));
|
|
265
|
-
}
|
|
266
|
-
else if (direction === 'forward') {
|
|
267
|
-
finish = this.push(id, params, Object.assign(Object.assign({}, commonOpts), { animationBuilder: animation }));
|
|
268
|
-
}
|
|
269
|
-
else if (direction === 'back') {
|
|
270
|
-
finish = this.setRoot(id, params, Object.assign(Object.assign({}, commonOpts), { direction: 'back', animated: true, animationBuilder: animation }));
|
|
271
|
-
}
|
|
272
|
-
}
|
|
273
|
-
return promise;
|
|
274
|
-
}
|
|
275
|
-
/**
|
|
276
|
-
* Called by <ion-router> to retrieve the current component.
|
|
277
|
-
*
|
|
278
|
-
* @internal
|
|
279
|
-
*/
|
|
280
|
-
async getRouteId() {
|
|
281
|
-
const active = this.getActiveSync();
|
|
282
|
-
if (active) {
|
|
283
|
-
return {
|
|
284
|
-
id: active.element.tagName,
|
|
285
|
-
params: active.params,
|
|
286
|
-
element: active.element,
|
|
287
|
-
};
|
|
288
|
-
}
|
|
289
|
-
return undefined;
|
|
290
|
-
}
|
|
291
209
|
/**
|
|
292
210
|
* Get the active view.
|
|
293
211
|
*/
|
|
@@ -353,25 +271,6 @@ export class Nav {
|
|
|
353
271
|
ti.reject = reject;
|
|
354
272
|
});
|
|
355
273
|
ti.done = done;
|
|
356
|
-
/**
|
|
357
|
-
* If using router, check to see if navigation hooks
|
|
358
|
-
* will allow us to perform this transition. This
|
|
359
|
-
* is required in order for hooks to work with
|
|
360
|
-
* the ion-back-button or swipe to go back.
|
|
361
|
-
*/
|
|
362
|
-
if (ti.opts && ti.opts.updateURL !== false && this.useRouter) {
|
|
363
|
-
const router = document.querySelector('ion-router');
|
|
364
|
-
if (router) {
|
|
365
|
-
const canTransition = await router.canTransition();
|
|
366
|
-
if (canTransition === false) {
|
|
367
|
-
return false;
|
|
368
|
-
}
|
|
369
|
-
if (typeof canTransition === 'string') {
|
|
370
|
-
router.push(canTransition, ti.opts.direction || 'back');
|
|
371
|
-
return false;
|
|
372
|
-
}
|
|
373
|
-
}
|
|
374
|
-
}
|
|
375
274
|
// Normalize empty
|
|
376
275
|
if (((_b = ti.insertViews) === null || _b === void 0 ? void 0 : _b.length) === 0) {
|
|
377
276
|
ti.insertViews = undefined;
|
|
@@ -392,13 +291,6 @@ export class Nav {
|
|
|
392
291
|
ti.done(result.hasCompleted, result.requiresTransition, result.enteringView, result.leavingView, result.direction);
|
|
393
292
|
}
|
|
394
293
|
ti.resolve(result.hasCompleted);
|
|
395
|
-
if (ti.opts.updateURL !== false && this.useRouter) {
|
|
396
|
-
const router = document.querySelector('ion-router');
|
|
397
|
-
if (router) {
|
|
398
|
-
const direction = result.direction === 'back' ? 'back' : 'forward';
|
|
399
|
-
router.navChanged(direction);
|
|
400
|
-
}
|
|
401
|
-
}
|
|
402
294
|
}
|
|
403
295
|
failed(rejectReason, ti) {
|
|
404
296
|
if (this.destroyed) {
|
|
@@ -828,7 +720,7 @@ export class Nav {
|
|
|
828
720
|
}
|
|
829
721
|
}
|
|
830
722
|
render() {
|
|
831
|
-
return h("slot", { key: '
|
|
723
|
+
return h("slot", { key: 'bb4a201a3a8079548f5474ff42293b28fc7599fb' });
|
|
832
724
|
}
|
|
833
725
|
static get is() { return "ion-nav"; }
|
|
834
726
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1601,113 +1493,6 @@ export class Nav {
|
|
|
1601
1493
|
}]
|
|
1602
1494
|
}
|
|
1603
1495
|
},
|
|
1604
|
-
"setRouteId": {
|
|
1605
|
-
"complexType": {
|
|
1606
|
-
"signature": "(id: string, params: ComponentProps | undefined, direction: RouterDirection, animation?: AnimationBuilder) => Promise<RouteWrite>",
|
|
1607
|
-
"parameters": [{
|
|
1608
|
-
"name": "id",
|
|
1609
|
-
"type": "string",
|
|
1610
|
-
"docs": "The component tag."
|
|
1611
|
-
}, {
|
|
1612
|
-
"name": "params",
|
|
1613
|
-
"type": "ComponentProps | undefined",
|
|
1614
|
-
"docs": "The component params."
|
|
1615
|
-
}, {
|
|
1616
|
-
"name": "direction",
|
|
1617
|
-
"type": "\"root\" | \"back\" | \"forward\"",
|
|
1618
|
-
"docs": "A direction hint."
|
|
1619
|
-
}, {
|
|
1620
|
-
"name": "animation",
|
|
1621
|
-
"type": "AnimationBuilder | undefined",
|
|
1622
|
-
"docs": "an AnimationBuilder."
|
|
1623
|
-
}],
|
|
1624
|
-
"references": {
|
|
1625
|
-
"Promise": {
|
|
1626
|
-
"location": "global",
|
|
1627
|
-
"id": "global::Promise"
|
|
1628
|
-
},
|
|
1629
|
-
"RouteWrite": {
|
|
1630
|
-
"location": "import",
|
|
1631
|
-
"path": "../router/utils/interface",
|
|
1632
|
-
"id": "src/components/router/utils/interface.ts::RouteWrite",
|
|
1633
|
-
"referenceLocation": "RouteWrite"
|
|
1634
|
-
},
|
|
1635
|
-
"ComponentProps": {
|
|
1636
|
-
"location": "import",
|
|
1637
|
-
"path": "../../interface",
|
|
1638
|
-
"id": "src/interface.d.ts::ComponentProps",
|
|
1639
|
-
"referenceLocation": "ComponentProps"
|
|
1640
|
-
},
|
|
1641
|
-
"RouterDirection": {
|
|
1642
|
-
"location": "import",
|
|
1643
|
-
"path": "../router/utils/interface",
|
|
1644
|
-
"id": "src/components/router/utils/interface.ts::RouterDirection",
|
|
1645
|
-
"referenceLocation": "RouterDirection"
|
|
1646
|
-
},
|
|
1647
|
-
"AnimationBuilder": {
|
|
1648
|
-
"location": "import",
|
|
1649
|
-
"path": "../../interface",
|
|
1650
|
-
"id": "src/interface.d.ts::AnimationBuilder",
|
|
1651
|
-
"referenceLocation": "AnimationBuilder"
|
|
1652
|
-
},
|
|
1653
|
-
"NavOptions": {
|
|
1654
|
-
"location": "import",
|
|
1655
|
-
"path": "./nav-interface",
|
|
1656
|
-
"id": "src/components/nav/nav-interface.ts::NavOptions",
|
|
1657
|
-
"referenceLocation": "NavOptions"
|
|
1658
|
-
}
|
|
1659
|
-
},
|
|
1660
|
-
"return": "Promise<RouteWrite>"
|
|
1661
|
-
},
|
|
1662
|
-
"docs": {
|
|
1663
|
-
"text": "Called by the router to update the view.",
|
|
1664
|
-
"tags": [{
|
|
1665
|
-
"name": "param",
|
|
1666
|
-
"text": "id The component tag."
|
|
1667
|
-
}, {
|
|
1668
|
-
"name": "param",
|
|
1669
|
-
"text": "params The component params."
|
|
1670
|
-
}, {
|
|
1671
|
-
"name": "param",
|
|
1672
|
-
"text": "direction A direction hint."
|
|
1673
|
-
}, {
|
|
1674
|
-
"name": "param",
|
|
1675
|
-
"text": "animation an AnimationBuilder."
|
|
1676
|
-
}, {
|
|
1677
|
-
"name": "return",
|
|
1678
|
-
"text": "the status."
|
|
1679
|
-
}, {
|
|
1680
|
-
"name": "internal",
|
|
1681
|
-
"text": undefined
|
|
1682
|
-
}]
|
|
1683
|
-
}
|
|
1684
|
-
},
|
|
1685
|
-
"getRouteId": {
|
|
1686
|
-
"complexType": {
|
|
1687
|
-
"signature": "() => Promise<RouteID | undefined>",
|
|
1688
|
-
"parameters": [],
|
|
1689
|
-
"references": {
|
|
1690
|
-
"Promise": {
|
|
1691
|
-
"location": "global",
|
|
1692
|
-
"id": "global::Promise"
|
|
1693
|
-
},
|
|
1694
|
-
"RouteID": {
|
|
1695
|
-
"location": "import",
|
|
1696
|
-
"path": "../router/utils/interface",
|
|
1697
|
-
"id": "src/components/router/utils/interface.ts::RouteID",
|
|
1698
|
-
"referenceLocation": "RouteID"
|
|
1699
|
-
}
|
|
1700
|
-
},
|
|
1701
|
-
"return": "Promise<RouteID | undefined>"
|
|
1702
|
-
},
|
|
1703
|
-
"docs": {
|
|
1704
|
-
"text": "Called by <ion-router> to retrieve the current component.",
|
|
1705
|
-
"tags": [{
|
|
1706
|
-
"name": "internal",
|
|
1707
|
-
"text": undefined
|
|
1708
|
-
}]
|
|
1709
|
-
}
|
|
1710
|
-
},
|
|
1711
1496
|
"getActive": {
|
|
1712
1497
|
"complexType": {
|
|
1713
1498
|
"signature": "() => Promise<ViewController | undefined>",
|
|
@@ -177,6 +177,21 @@
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
+
:host(.select-popover-rich-content) {
|
|
181
|
+
/**
|
|
182
|
+
* Rich content options (start/end slots, descriptions) need
|
|
183
|
+
* more horizontal space than the default fixed width provides,
|
|
184
|
+
* otherwise content gets cut off.
|
|
185
|
+
*
|
|
186
|
+
* A viewport-relative value is used instead of `auto` or
|
|
187
|
+
* `max-content` because the enter animation reads `--width`
|
|
188
|
+
* via getBoundingClientRect() before the first layout pass
|
|
189
|
+
* completes. Intrinsic values return 0 at that point and
|
|
190
|
+
* cause the popover to be positioned off-screen on first open.
|
|
191
|
+
*/
|
|
192
|
+
--width: clamp(250px, calc(100vw - 40px), 400px);
|
|
193
|
+
}
|
|
194
|
+
|
|
180
195
|
/**
|
|
181
196
|
* Convert a font size to a dynamic font size.
|
|
182
197
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -7,7 +7,7 @@ import { CoreDelegate, attachComponent, detachComponent } from "../../utils/fram
|
|
|
7
7
|
import { addEventListener, raf, hasLazyBuild } from "../../utils/helpers";
|
|
8
8
|
import { createLockController } from "../../utils/lock-controller";
|
|
9
9
|
import { printIonWarning } from "../../utils/logging/index";
|
|
10
|
-
import { BACKDROP, dismiss, eventMethod, prepareOverlay, present, setOverlayId,
|
|
10
|
+
import { BACKDROP, cleanupRootFocusTrapAccessibility, dismiss, eventMethod, FOCUS_TRAP_DISABLE_CLASS, prepareOverlay, present, setOverlayId, } from "../../utils/overlays";
|
|
11
11
|
import { isPlatform } from "../../utils/platform";
|
|
12
12
|
import { getClassMap } from "../../utils/theme";
|
|
13
13
|
import { deepReady, waitForMount } from "../../utils/transition/index";
|
|
@@ -229,6 +229,10 @@ export class Popover {
|
|
|
229
229
|
this.headerResizeObserver.disconnect();
|
|
230
230
|
this.headerResizeObserver = undefined;
|
|
231
231
|
}
|
|
232
|
+
// Clean up aria-hidden if removed without dismiss() being called
|
|
233
|
+
if (this.presented) {
|
|
234
|
+
cleanupRootFocusTrapAccessibility();
|
|
235
|
+
}
|
|
232
236
|
}
|
|
233
237
|
componentWillLoad() {
|
|
234
238
|
var _a, _b;
|
|
@@ -467,9 +471,9 @@ export class Popover {
|
|
|
467
471
|
const { onLifecycle, parentPopover, dismissOnSelect, side, arrow, htmlAttributes, focusTrap } = this;
|
|
468
472
|
const desktop = isPlatform('desktop');
|
|
469
473
|
const enableArrow = arrow && !parentPopover;
|
|
470
|
-
return (h(Host, Object.assign({ key: '
|
|
474
|
+
return (h(Host, Object.assign({ key: 'd7f3aa2c2fa93a93585e3eda9e4a6d0daaa541be', "aria-modal": "true", "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
471
475
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
472
|
-
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: '
|
|
476
|
+
}, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [mode]: true, 'popover-translucent': this.translucent, 'overlay-hidden': true, 'popover-desktop': desktop, [`popover-side-${side}`]: true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false, 'popover-nested': !!parentPopover }), onIonPopoverDidPresent: onLifecycle, onIonPopoverWillPresent: onLifecycle, onIonPopoverWillDismiss: onLifecycle, onIonPopoverDidDismiss: onLifecycle, onIonBackdropTap: this.onBackdropTap }), !parentPopover && h("ion-backdrop", { key: 'b87be2ef14219997b9c47dcbaf904eb770d0e057', tappable: this.backdropDismiss, visible: this.showBackdrop, part: "backdrop" }), h("div", { key: 'e6243572faf1b871ae2b34923410b2a6638469f0', class: "popover-wrapper ion-overlay-wrapper", onClick: dismissOnSelect ? () => this.dismiss() : undefined }, enableArrow && h("div", { key: '3d4938c9d0764a644398e0e7a4361106da1bd926', class: "popover-arrow", part: "arrow" }), h("div", { key: '24ad6d777828aad2881d56595693e6022fc9cb8e', class: "popover-content", part: "content" }, h("slot", { key: '79f83df74a5c5e3dd7650f15c1aa50795b90a345' })))));
|
|
473
477
|
}
|
|
474
478
|
static get is() { return "ion-popover"; }
|
|
475
479
|
static get encapsulation() { return "shadow"; }
|
|
@@ -177,6 +177,21 @@
|
|
|
177
177
|
}
|
|
178
178
|
}
|
|
179
179
|
|
|
180
|
+
:host(.select-popover-rich-content) {
|
|
181
|
+
/**
|
|
182
|
+
* Rich content options (start/end slots, descriptions) need
|
|
183
|
+
* more horizontal space than the default fixed width provides,
|
|
184
|
+
* otherwise content gets cut off.
|
|
185
|
+
*
|
|
186
|
+
* A viewport-relative value is used instead of `auto` or
|
|
187
|
+
* `max-content` because the enter animation reads `--width`
|
|
188
|
+
* via getBoundingClientRect() before the first layout pass
|
|
189
|
+
* completes. Intrinsic values return 0 at that point and
|
|
190
|
+
* cause the popover to be positioned off-screen on first open.
|
|
191
|
+
*/
|
|
192
|
+
--width: clamp(250px, calc(100vw - 40px), 400px);
|
|
193
|
+
}
|
|
194
|
+
|
|
180
195
|
/**
|
|
181
196
|
* Convert a font size to a dynamic font size.
|
|
182
197
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -43,7 +43,7 @@ export class ProgressBar {
|
|
|
43
43
|
const mode = getIonMode(this);
|
|
44
44
|
// If the progress is displayed as a solid bar.
|
|
45
45
|
const progressSolid = buffer === 1;
|
|
46
|
-
return (h(Host, { key: '
|
|
46
|
+
return (h(Host, { key: 'd7476268ce53b6a4f425b7bc9f01d6935eb411c3', role: "progressbar", "aria-valuenow": type === 'determinate' ? value : null, "aria-valuemin": "0", "aria-valuemax": "1", class: createColorClasses(color, {
|
|
47
47
|
[mode]: true,
|
|
48
48
|
[`progress-bar-${type}`]: true,
|
|
49
49
|
'progress-paused': paused,
|
|
@@ -136,7 +136,7 @@ export class Radio {
|
|
|
136
136
|
const { checked, disabled, color, el, justify, labelPlacement, hasLabel, buttonTabindex, alignment } = this;
|
|
137
137
|
const mode = getIonMode(this);
|
|
138
138
|
const inItem = hostContext('ion-item', el);
|
|
139
|
-
return (h(Host, { key: '
|
|
139
|
+
return (h(Host, { key: 'd9425b252ed38086420d91d5c680421d121c99f4', onFocus: this.onFocus, onBlur: this.onBlur, onClick: this.onClick, class: createColorClasses(color, {
|
|
140
140
|
[mode]: true,
|
|
141
141
|
'in-item': inItem,
|
|
142
142
|
'radio-checked': checked,
|
|
@@ -147,10 +147,10 @@ export class Radio {
|
|
|
147
147
|
// Focus and active styling should not apply when the radio is in an item
|
|
148
148
|
'ion-activatable': !inItem,
|
|
149
149
|
'ion-focusable': !inItem,
|
|
150
|
-
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: '
|
|
150
|
+
}), role: "radio", "aria-checked": checked ? 'true' : 'false', "aria-disabled": disabled ? 'true' : null, tabindex: buttonTabindex }, h("label", { key: 'de391fca2aa0b681af5c1d089121596c46e68271', class: "radio-wrapper" }, h("div", { key: '44e4c71645f86a9e73ad58c0e8b41c0558b920f6', class: {
|
|
151
151
|
'label-text-wrapper': true,
|
|
152
152
|
'label-text-wrapper-hidden': !hasLabel,
|
|
153
|
-
}, part: "label" }, h("slot", { key: '
|
|
153
|
+
}, part: "label" }, h("slot", { key: '589d7c1b45a1918b5811663daa8f30788e7729f8' })), h("div", { key: '0f61a17b195582d6c9a0c597cd40e6629256e479', class: "native-wrapper" }, this.renderRadioControl()))));
|
|
154
154
|
}
|
|
155
155
|
static get is() { return "ion-radio"; }
|
|
156
156
|
static get encapsulation() { return "shadow"; }
|
|
@@ -250,7 +250,7 @@ export class Radio {
|
|
|
250
250
|
},
|
|
251
251
|
"getter": false,
|
|
252
252
|
"setter": false,
|
|
253
|
-
"reflect":
|
|
253
|
+
"reflect": true,
|
|
254
254
|
"attribute": "value"
|
|
255
255
|
},
|
|
256
256
|
"labelPlacement": {
|
|
@@ -769,7 +769,7 @@ export class Range {
|
|
|
769
769
|
const valueAtMin = dualKnobs ? this.valA === min || this.valB === min : this.valA === min;
|
|
770
770
|
const valueAtMax = dualKnobs ? this.valA === max || this.valB === max : this.valA === max;
|
|
771
771
|
renderHiddenInput(true, el, this.name, JSON.stringify(this.getValue()), disabled);
|
|
772
|
-
return (h(Host, { key: '
|
|
772
|
+
return (h(Host, { key: 'cd26f0187c0d37c7eb9df923f75c8a0f57c19ab6', onFocusin: this.onFocus, onFocusout: this.onBlur, id: rangeId, class: createColorClasses(this.color, {
|
|
773
773
|
[mode]: true,
|
|
774
774
|
'in-item': inItem,
|
|
775
775
|
'range-disabled': disabled,
|
|
@@ -783,10 +783,10 @@ export class Range {
|
|
|
783
783
|
'range-item-end-adjustment': needsEndAdjustment,
|
|
784
784
|
'range-value-min': valueAtMin,
|
|
785
785
|
'range-value-max': valueAtMax,
|
|
786
|
-
}) }, h("label", { key: '
|
|
786
|
+
}) }, h("label", { key: '90224fd24b0e625a17e7972feff73a0ac31e093d', class: "range-wrapper", id: "range-label" }, h("div", { key: 'e07b9fa10983249c425eec26b741f0f628daf2b2', class: {
|
|
787
787
|
'label-text-wrapper': true,
|
|
788
788
|
'label-text-wrapper-hidden': !hasLabel,
|
|
789
|
-
}, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '
|
|
789
|
+
}, part: "label" }, label !== undefined ? h("div", { class: "label-text" }, label) : h("slot", { name: "label" })), h("div", { key: '9e252f1190838fbae46e724bf665f9b1943600a4', class: "native-wrapper" }, h("slot", { key: '950697dd9636da340de659812daa91fff50e5345', name: "start" }), this.renderRangeSlider(), h("slot", { key: 'd3fce46b29db275af71e6149e725967839ec12b0', name: "end" })))));
|
|
790
790
|
}
|
|
791
791
|
static get is() { return "ion-range"; }
|
|
792
792
|
static get encapsulation() { return "shadow"; }
|
|
@@ -716,7 +716,7 @@ export class Refresher {
|
|
|
716
716
|
}
|
|
717
717
|
render() {
|
|
718
718
|
const mode = getIonMode(this);
|
|
719
|
-
return (h(Host, { key: '
|
|
719
|
+
return (h(Host, { key: '1dd475095f76491206644828cf89fc6d2ec276d1', slot: "fixed", class: {
|
|
720
720
|
[mode]: true,
|
|
721
721
|
// Used internally for styling
|
|
722
722
|
[`refresher-${mode}`]: true,
|
|
@@ -48,7 +48,7 @@ export class RefresherContent {
|
|
|
48
48
|
const pullingIcon = this.pullingIcon;
|
|
49
49
|
const hasSpinner = pullingIcon != null && SPINNERS[pullingIcon] !== undefined;
|
|
50
50
|
const mode = getIonMode(this);
|
|
51
|
-
return (h(Host, { key: '
|
|
51
|
+
return (h(Host, { key: 'ec378d6a302be697c12c4f973a57c6ad2ada070f', class: mode }, h("div", { key: '0055f98f8c5a1ed7979dc8146ec1f82a575860c7', class: "refresher-pulling" }, this.pullingIcon && hasSpinner && (h("div", { key: '4f88468e26370df6889e72aa54ebb395ebf3757d', class: "refresher-pulling-icon" }, h("div", { key: '05b3f8679576aaa6c2d84d60df6629a392df29e2', class: "spinner-arrow-container" }, h("ion-spinner", { key: '0bf6ceea416ce1140c0f10a5bede063cae7054f4', name: this.pullingIcon, paused: true }), mode === 'md' && this.pullingIcon === 'circular' && (h("div", { key: 'b71ede8455837968218edae28504e5e14bbc1f5c', class: "arrow-container" }, h("ion-icon", { key: '30b808288d23d3eac681b1225cd8392fdacfefe1', icon: caretBackSharp, "aria-hidden": "true" })))))), this.pullingIcon && !hasSpinner && (h("div", { key: 'fee1ae7e57ef8a02f5654808dff9dca3002b6702', class: "refresher-pulling-icon" }, h("ion-icon", { key: '55b34a98028adb497fbc2ac66bdb3d5ae5b1705b', icon: this.pullingIcon, lazy: false, "aria-hidden": "true" }))), this.pullingText !== undefined && this.renderPullingText()), h("div", { key: 'ef8f987daa8060cb6f8fd83c0864095042b9eecf', class: "refresher-refreshing" }, this.refreshingSpinner && (h("div", { key: 'cd6fe0e81b34eeae11478fcc8a42044bff6f7a52', class: "refresher-refreshing-icon" }, h("ion-spinner", { key: '9cd778229582b538d54589c4d8e4d470efb64aad', name: this.refreshingSpinner }))), this.refreshingText !== undefined && this.renderRefreshingText())));
|
|
52
52
|
}
|
|
53
53
|
static get is() { return "ion-refresher-content"; }
|
|
54
54
|
static get properties() {
|
|
@@ -20,7 +20,7 @@ export class Reorder {
|
|
|
20
20
|
render() {
|
|
21
21
|
const mode = getIonMode(this);
|
|
22
22
|
const reorderIcon = mode === 'ios' ? reorderThreeOutline : reorderTwoSharp;
|
|
23
|
-
return (h(Host, { key: '
|
|
23
|
+
return (h(Host, { key: '4d35db30b5b3df2020d2212abb3cfac94f9bc2b8', class: mode }, h("slot", { key: '68a565ae4a47f6a9f5d6ba845b596fdfa629ece8' }, h("ion-icon", { key: '168fb0f8eb9c02329274488900fcdb05d44cb895', icon: reorderIcon, lazy: false, class: "reorder-icon", part: "icon", "aria-hidden": "true" }))));
|
|
24
24
|
}
|
|
25
25
|
static get is() { return "ion-reorder"; }
|
|
26
26
|
static get encapsulation() { return "shadow"; }
|
|
@@ -253,7 +253,7 @@ export class ReorderGroup {
|
|
|
253
253
|
}
|
|
254
254
|
render() {
|
|
255
255
|
const mode = getIonMode(this);
|
|
256
|
-
return (h(Host, { key: '
|
|
256
|
+
return (h(Host, { key: '3afdc6a6c81bba2f88ea523d4b73c6fccff1b9ec', class: {
|
|
257
257
|
[mode]: true,
|
|
258
258
|
'reorder-enabled': !this.disabled,
|
|
259
259
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
|
@@ -68,7 +68,7 @@ export class RippleEffect {
|
|
|
68
68
|
}
|
|
69
69
|
render() {
|
|
70
70
|
const mode = getIonMode(this);
|
|
71
|
-
return (h(Host, { key: '
|
|
71
|
+
return (h(Host, { key: '5e88b5225414e29883256c86f111ded5bdf2ef91', role: "presentation", class: {
|
|
72
72
|
[mode]: true,
|
|
73
73
|
unbounded: this.unbounded,
|
|
74
74
|
} }));
|
|
@@ -67,7 +67,7 @@ export class Route {
|
|
|
67
67
|
"optional": false,
|
|
68
68
|
"docs": {
|
|
69
69
|
"tags": [],
|
|
70
|
-
"text": "Name of the component to load/select in the navigation outlet (`ion-tabs`, `ion-
|
|
70
|
+
"text": "Name of the component to load/select in the navigation outlet (`ion-tabs`, `ion-router-outlet`)\nwhen the route matches.\n\nThe value of this property is not always the tagname of the component to load,\nin `ion-tabs` it actually refers to the name of the `ion-tab` to select."
|
|
71
71
|
},
|
|
72
72
|
"getter": false,
|
|
73
73
|
"setter": false,
|
|
@@ -1,9 +1,10 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
+
import { Build } from "@stencil/core";
|
|
4
5
|
import { findClosestIonContent, getScrollElement, isIonContent } from "../../../utils/content/index";
|
|
5
6
|
import { componentOnReady, raf } from "../../../utils/helpers";
|
|
6
|
-
import { printIonError } from "../../../utils/logging/index";
|
|
7
|
+
import { printIonError, printIonWarning } from "../../../utils/logging/index";
|
|
7
8
|
import { ROUTER_INTENT_NONE } from "./constants";
|
|
8
9
|
/**
|
|
9
10
|
* Activates the passed route chain.
|
|
@@ -179,16 +180,34 @@ export const scrollToFragment = async (fragment, shouldContinue = () => true) =>
|
|
|
179
180
|
return false;
|
|
180
181
|
}
|
|
181
182
|
};
|
|
183
|
+
/** How long the router waits for a navigation outlet before giving up and proceeding. */
|
|
184
|
+
const NAV_NODE_TIMEOUT = 500;
|
|
182
185
|
export const waitUntilNavNode = () => {
|
|
183
186
|
if (searchNavNode(document.body)) {
|
|
184
187
|
return Promise.resolve();
|
|
185
188
|
}
|
|
186
189
|
return new Promise((resolve) => {
|
|
187
|
-
|
|
190
|
+
/**
|
|
191
|
+
* Outlets emit `ionNavWillLoad` as they load, so resolve as soon as one does.
|
|
192
|
+
* A timeout backstops the case where the page has no outlet at all: without it
|
|
193
|
+
* the router would wait forever and its `componentWillLoad` would never settle,
|
|
194
|
+
* which in turn prevents the app from signalling that it has finished loading.
|
|
195
|
+
*/
|
|
196
|
+
const done = () => {
|
|
197
|
+
window.removeEventListener('ionNavWillLoad', done);
|
|
198
|
+
clearTimeout(timeout);
|
|
199
|
+
if (Build.isDev && !searchNavNode(document.body)) {
|
|
200
|
+
printIonWarning('[ion-router] - No outlet found. The router requires an ion-router-outlet or ion-tabs to render routed views. ' +
|
|
201
|
+
'Note that as of Ionic 9 ion-nav is no longer a router outlet.');
|
|
202
|
+
}
|
|
203
|
+
resolve();
|
|
204
|
+
};
|
|
205
|
+
const timeout = setTimeout(done, NAV_NODE_TIMEOUT);
|
|
206
|
+
window.addEventListener('ionNavWillLoad', done, { once: true });
|
|
188
207
|
});
|
|
189
208
|
};
|
|
190
209
|
/** Selector for all the outlets supported by the router. */
|
|
191
|
-
const OUTLET_SELECTOR = ':not([no-router]) ion-
|
|
210
|
+
const OUTLET_SELECTOR = ':not([no-router]) ion-tabs, :not([no-router]) ion-router-outlet';
|
|
192
211
|
const searchNavNode = (root) => {
|
|
193
212
|
if (!root) {
|
|
194
213
|
return undefined;
|
|
@@ -22,10 +22,10 @@ export class RouterLink {
|
|
|
22
22
|
rel: this.rel,
|
|
23
23
|
target: this.target,
|
|
24
24
|
};
|
|
25
|
-
return (h(Host, { key: '
|
|
25
|
+
return (h(Host, { key: '6d5fdfa0dcf1eb216173bcc53f1f4d625f3ec551', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
26
26
|
[mode]: true,
|
|
27
27
|
'ion-activatable': true,
|
|
28
|
-
}) }, h("a", Object.assign({ key: '
|
|
28
|
+
}) }, h("a", Object.assign({ key: '85796b7b48581fe9830ba1102dad7d1069de4e17' }, attrs), h("slot", { key: '0f93b0da3ec4ae8f50f624f9e7bed87d13d712d0' }))));
|
|
29
29
|
}
|
|
30
30
|
static get is() { return "ion-router-link"; }
|
|
31
31
|
static get encapsulation() { return "shadow"; }
|