@ionic/core 8.4.4-dev.11741294920.1c3e822a → 8.4.4-dev.11741298262.12200f27
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/alert.js +4 -30
- package/components/checkbox.js +6 -4
- package/components/helpers.js +1 -7
- package/components/index6.js +11 -3
- package/components/index9.js +1 -1
- package/components/ion-input.js +2 -2
- package/components/ion-range.js +1 -5
- package/components/ion-router.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-select.js +6 -4
- package/components/ion-textarea.js +2 -2
- package/components/ion-toggle.js +40 -6
- package/components/ionic-global.js +1 -2
- package/components/modal.js +259 -35
- package/components/toolbar.js +2 -2
- package/css/core.css.map +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/dist/cjs/{app-globals-4283fe37.js → app-globals-21afee77.js} +1 -1
- package/dist/cjs/{data-21dc0f81.js → data-108e531d.js} +1 -1
- package/dist/cjs/{framework-delegate-c4f2ba04.js → framework-delegate-05579976.js} +1 -1
- package/dist/cjs/{hardware-back-button-f2cbbdce.js → hardware-back-button-9e8a2c4f.js} +1 -1
- package/dist/cjs/{helpers-b14a0f09.js → helpers-4be3f90d.js} +0 -7
- package/dist/cjs/{index-1248dbd7.js → index-0ff61d0b.js} +4 -4
- package/dist/cjs/{index-4e37257d.js → index-26bb7e42.js} +5 -5
- package/dist/cjs/{index-5915f9b3.js → index-2a46a047.js} +11 -3
- package/dist/cjs/{index-a4a74252.js → index-6770fc00.js} +2 -2
- package/dist/cjs/{index-786364c7.js → index-ad7a712e.js} +1 -1
- package/dist/cjs/index.cjs.js +10 -10
- package/dist/cjs/{input-shims-b4c0eee7.js → input-shims-fd997b01.js} +5 -3
- package/dist/cjs/{input.utils-4af208ab.js → input.utils-c15a1814.js} +2 -2
- package/dist/cjs/ion-accordion_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-action-sheet.cjs.entry.js +6 -6
- package/dist/cjs/ion-alert.cjs.entry.js +10 -36
- package/dist/cjs/ion-app_8.cjs.entry.js +14 -14
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-back-button.cjs.entry.js +2 -2
- package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-button_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-card_5.cjs.entry.js +2 -2
- package/dist/cjs/ion-checkbox.cjs.entry.js +7 -6
- package/dist/cjs/ion-chip.cjs.entry.js +1 -1
- package/dist/cjs/ion-col_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime-button.cjs.entry.js +4 -4
- package/dist/cjs/ion-datetime_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-fab_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-img.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +7 -7
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +2 -2
- package/dist/cjs/ion-loading.cjs.entry.js +6 -6
- package/dist/cjs/ion-menu_3.cjs.entry.js +7 -7
- package/dist/cjs/ion-modal.cjs.entry.js +266 -43
- package/dist/cjs/ion-nav_2.cjs.entry.js +6 -6
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-column.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +7 -7
- package/dist/cjs/ion-progress-bar.cjs.entry.js +2 -2
- package/dist/cjs/ion-radio_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-range.cjs.entry.js +4 -8
- package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-reorder_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-select-modal.cjs.entry.js +6 -6
- package/dist/cjs/ion-select_3.cjs.entry.js +12 -11
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +1 -1
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-text.cjs.entry.js +1 -1
- package/dist/cjs/ion-textarea.cjs.entry.js +7 -7
- package/dist/cjs/ion-toast.cjs.entry.js +6 -6
- package/dist/cjs/ion-toggle.cjs.entry.js +39 -8
- package/dist/cjs/{ionic-global-96da1b2e.js → ionic-global-d9a8bb5b.js} +1 -2
- package/dist/cjs/ionic.cjs.js +3 -3
- package/dist/cjs/{ios.transition-8d363d77.js → ios.transition-a4f35c55.js} +4 -4
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-57d695fa.js → md.transition-cdf904e6.js} +4 -4
- package/dist/cjs/{notch-controller-bd07748b.js → notch-controller-a0c464d1.js} +1 -1
- package/dist/cjs/{overlays-27703a30.js → overlays-86695cf1.js} +5 -5
- package/dist/cjs/{status-tap-654077ee.js → status-tap-1a2485c1.js} +4 -3
- package/dist/cjs/{swipe-back-b70cd52e.js → swipe-back-47a52b83.js} +1 -1
- package/dist/collection/components/alert/alert.js +4 -34
- package/dist/collection/components/checkbox/checkbox.js +23 -4
- package/dist/collection/components/input/input.ios.css +3 -2
- package/dist/collection/components/input/input.md.css +7 -2
- package/dist/collection/components/modal/animations/ios.enter.js +50 -4
- package/dist/collection/components/modal/animations/ios.leave.js +24 -2
- package/dist/collection/components/modal/animations/md.enter.js +52 -5
- package/dist/collection/components/modal/animations/md.leave.js +26 -3
- package/dist/collection/components/modal/animations/sheet.js +11 -2
- package/dist/collection/components/modal/gestures/sheet.js +79 -10
- package/dist/collection/components/modal/modal.ios.css +16 -0
- package/dist/collection/components/modal/modal.js +32 -7
- package/dist/collection/components/modal/modal.md.css +6 -0
- package/dist/collection/components/select/select.js +23 -4
- package/dist/collection/components/textarea/textarea.ios.css +3 -2
- package/dist/collection/components/textarea/textarea.md.css +7 -2
- package/dist/collection/components/toggle/toggle.ios.css +52 -15
- package/dist/collection/components/toggle/toggle.js +90 -4
- package/dist/collection/components/toggle/toggle.md.css +52 -15
- package/dist/collection/components/toolbar/toolbar.js +6 -2
- package/dist/collection/utils/floating-point/index.js +0 -5
- package/dist/collection/utils/helpers.js +0 -6
- package/dist/collection/utils/logging/index.js +10 -3
- package/dist/collection/utils/platform.js +1 -2
- package/dist/collection/utils/test/platform.utils.js +1 -1
- package/dist/docs.json +187 -6
- package/dist/esm/{app-globals-c10a1137.js → app-globals-5dbb61a5.js} +1 -1
- package/dist/esm/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
- package/dist/esm/{framework-delegate-42bc40b1.js → framework-delegate-f683816e.js} +1 -1
- package/dist/esm/{hardware-back-button-44195e92.js → hardware-back-button-06ef3c3e.js} +1 -1
- package/dist/esm/{helpers-13b816c6.js → helpers-9b49d7d2.js} +1 -7
- package/dist/esm/{index-28c8fd64.js → index-5a0f5fd0.js} +1 -1
- package/dist/esm/{index-4b39521b.js → index-6a5baab0.js} +5 -5
- package/dist/esm/{index-9b0d46f4.js → index-6ad967f3.js} +11 -3
- package/dist/esm/{index-6b548278.js → index-7105cd59.js} +4 -4
- package/dist/esm/{index-edf58462.js → index-dd0f7395.js} +2 -2
- package/dist/esm/index.js +10 -10
- package/dist/esm/{input-shims-5e5e47e8.js → input-shims-dff819a9.js} +5 -3
- package/dist/esm/{input.utils-d3717b00.js → input.utils-2f1029cf.js} +2 -2
- package/dist/esm/ion-accordion_2.entry.js +3 -3
- package/dist/esm/ion-action-sheet.entry.js +6 -6
- package/dist/esm/ion-alert.entry.js +10 -36
- package/dist/esm/ion-app_8.entry.js +14 -14
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-back-button.entry.js +2 -2
- package/dist/esm/ion-backdrop.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +2 -2
- package/dist/esm/ion-button_2.entry.js +3 -3
- package/dist/esm/ion-card_5.entry.js +2 -2
- package/dist/esm/ion-checkbox.entry.js +7 -6
- package/dist/esm/ion-chip.entry.js +1 -1
- package/dist/esm/ion-col_3.entry.js +1 -1
- package/dist/esm/ion-datetime-button.entry.js +4 -4
- package/dist/esm/ion-datetime_3.entry.js +7 -7
- package/dist/esm/ion-fab_3.entry.js +2 -2
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +4 -4
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +7 -7
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +2 -2
- package/dist/esm/ion-loading.entry.js +6 -6
- package/dist/esm/ion-menu_3.entry.js +7 -7
- package/dist/esm/ion-modal.entry.js +266 -43
- package/dist/esm/ion-nav_2.entry.js +6 -6
- package/dist/esm/ion-picker-column-option.entry.js +2 -2
- package/dist/esm/ion-picker-column.entry.js +2 -2
- package/dist/esm/ion-picker.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +7 -7
- package/dist/esm/ion-progress-bar.entry.js +2 -2
- package/dist/esm/ion-radio_2.entry.js +2 -2
- package/dist/esm/ion-range.entry.js +4 -8
- package/dist/esm/ion-refresher_2.entry.js +4 -4
- package/dist/esm/ion-reorder_2.entry.js +4 -4
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +2 -2
- package/dist/esm/ion-select-modal.entry.js +6 -6
- package/dist/esm/ion-select_3.entry.js +12 -11
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +1 -1
- package/dist/esm/ion-tab-bar_2.entry.js +2 -2
- package/dist/esm/ion-tab_2.entry.js +2 -2
- package/dist/esm/ion-text.entry.js +1 -1
- package/dist/esm/ion-textarea.entry.js +7 -7
- package/dist/esm/ion-toast.entry.js +6 -6
- package/dist/esm/ion-toggle.entry.js +39 -8
- package/dist/esm/{ionic-global-bf78a847.js → ionic-global-c81d82ab.js} +1 -2
- package/dist/esm/ionic.js +3 -3
- package/dist/esm/{ios.transition-e7a4de4f.js → ios.transition-314468a2.js} +4 -4
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{md.transition-290d8802.js → md.transition-a560e0e2.js} +4 -4
- package/dist/esm/{notch-controller-bb8f3a48.js → notch-controller-3dc61260.js} +1 -1
- package/dist/esm/{overlays-4ff6e618.js → overlays-9a81f230.js} +5 -5
- package/dist/esm/{status-tap-ba401484.js → status-tap-d07dbc82.js} +4 -3
- package/dist/esm/{swipe-back-a258b011.js → swipe-back-23ee7ab1.js} +1 -1
- package/dist/esm-es5/app-globals-5dbb61a5.js +4 -0
- package/dist/esm-es5/{data-ae11fd43.js → data-b3284b5e.js} +1 -1
- package/dist/esm-es5/{framework-delegate-42bc40b1.js → framework-delegate-f683816e.js} +1 -1
- package/dist/esm-es5/{hardware-back-button-44195e92.js → hardware-back-button-06ef3c3e.js} +1 -1
- package/dist/esm-es5/{helpers-13b816c6.js → helpers-9b49d7d2.js} +1 -1
- package/dist/esm-es5/{index-28c8fd64.js → index-5a0f5fd0.js} +1 -1
- package/dist/esm-es5/{index-4b39521b.js → index-6a5baab0.js} +1 -1
- package/dist/esm-es5/index-6ad967f3.js +4 -0
- package/dist/esm-es5/{index-6b548278.js → index-7105cd59.js} +1 -1
- package/dist/esm-es5/{index-edf58462.js → index-dd0f7395.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-dff819a9.js +4 -0
- package/dist/esm-es5/{input.utils-d3717b00.js → input.utils-2f1029cf.js} +1 -1
- package/dist/esm-es5/ion-accordion_2.entry.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-avatar_3.entry.js +1 -1
- package/dist/esm-es5/ion-back-button.entry.js +1 -1
- package/dist/esm-es5/ion-backdrop.entry.js +1 -1
- package/dist/esm-es5/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-card_5.entry.js +1 -1
- package/dist/esm-es5/ion-checkbox.entry.js +1 -1
- package/dist/esm-es5/ion-chip.entry.js +1 -1
- package/dist/esm-es5/ion-col_3.entry.js +1 -1
- package/dist/esm-es5/ion-datetime-button.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-fab_3.entry.js +1 -1
- package/dist/esm-es5/ion-img.entry.js +1 -1
- package/dist/esm-es5/ion-infinite-scroll_2.entry.js +1 -1
- package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm-es5/ion-input.entry.js +1 -1
- package/dist/esm-es5/ion-item-option_3.entry.js +1 -1
- package/dist/esm-es5/ion-item_8.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column-option.entry.js +1 -1
- package/dist/esm-es5/ion-picker-column.entry.js +1 -1
- package/dist/esm-es5/ion-picker.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-progress-bar.entry.js +1 -1
- package/dist/esm-es5/ion-radio_2.entry.js +1 -1
- package/dist/esm-es5/ion-range.entry.js +1 -1
- package/dist/esm-es5/ion-refresher_2.entry.js +1 -1
- package/dist/esm-es5/ion-reorder_2.entry.js +1 -1
- package/dist/esm-es5/ion-ripple-effect.entry.js +1 -1
- package/dist/esm-es5/ion-route_4.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ion-segment_2.entry.js +1 -1
- package/dist/esm-es5/ion-select-modal.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-spinner.entry.js +1 -1
- package/dist/esm-es5/ion-split-pane.entry.js +1 -1
- package/dist/esm-es5/ion-tab-bar_2.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-text.entry.js +1 -1
- package/dist/esm-es5/ion-textarea.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/ion-toggle.entry.js +1 -1
- package/dist/esm-es5/{ionic-global-bf78a847.js → ionic-global-c81d82ab.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-e7a4de4f.js → ios.transition-314468a2.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/md.transition-a560e0e2.js +4 -0
- package/dist/esm-es5/{notch-controller-bb8f3a48.js → notch-controller-3dc61260.js} +1 -1
- package/dist/esm-es5/{overlays-4ff6e618.js → overlays-9a81f230.js} +1 -1
- package/dist/esm-es5/status-tap-d07dbc82.js +4 -0
- package/dist/esm-es5/{swipe-back-a258b011.js → swipe-back-23ee7ab1.js} +1 -1
- package/dist/html.html-data.json +24 -0
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/ionic.js +1 -1
- package/dist/ionic/{p-37a21d70.entry.js → p-02e23f26.entry.js} +1 -1
- package/dist/ionic/{p-cc991f05.entry.js → p-037fc3f3.entry.js} +1 -1
- package/dist/ionic/p-04e08129.entry.js +4 -0
- package/dist/ionic/p-0574e87e.js +4 -0
- package/dist/ionic/{p-64bb1da1.system.js → p-058e61eb.system.js} +1 -1
- package/dist/ionic/{p-4a98a017.system.entry.js → p-0eb2553a.system.entry.js} +1 -1
- package/dist/ionic/p-0f5d878e.system.entry.js +4 -0
- package/dist/ionic/{p-bc148b43.system.entry.js → p-10327ad2.system.entry.js} +1 -1
- package/dist/ionic/{p-5e9733d0.entry.js → p-155c2bb0.entry.js} +1 -1
- package/dist/ionic/p-155f4d90.entry.js +4 -0
- package/dist/ionic/p-16bfb979.system.entry.js +4 -0
- package/dist/ionic/{p-7a9407cc.system.entry.js → p-18e101b7.system.entry.js} +2 -2
- package/dist/ionic/{p-d60342e3.js → p-1a5bc5f7.js} +1 -1
- package/dist/ionic/p-1f405274.js +4 -0
- package/dist/ionic/p-21227121.js +4 -0
- package/dist/ionic/p-22149a4f.js +4 -0
- package/dist/ionic/{p-a873feda.system.entry.js → p-2507278c.system.entry.js} +1 -1
- package/dist/ionic/{p-5996d3ad.system.entry.js → p-2515cb4d.system.entry.js} +1 -1
- package/dist/ionic/{p-37264dcc.entry.js → p-265939f0.entry.js} +1 -1
- package/dist/ionic/{p-4eed0eb2.system.entry.js → p-2abae1cc.system.entry.js} +1 -1
- package/dist/ionic/{p-3559bd4f.js → p-2bc73fb5.js} +1 -1
- package/dist/ionic/p-2c9eb774.system.js +4 -0
- package/dist/ionic/{p-a8d31cd5.entry.js → p-2cbe5399.entry.js} +1 -1
- package/dist/ionic/{p-c3a51c19.system.entry.js → p-2ef3c7ee.system.entry.js} +1 -1
- package/dist/ionic/{p-d785235b.system.entry.js → p-31a6efce.system.entry.js} +1 -1
- package/dist/ionic/p-322c5fb4.system.js +4 -0
- package/dist/ionic/{p-c66604e4.entry.js → p-33a8a71b.entry.js} +1 -1
- package/dist/ionic/{p-f687573e.system.js → p-343b6b1d.system.js} +1 -1
- package/dist/ionic/p-34479cfb.entry.js +4 -0
- package/dist/ionic/{p-5ae70860.js → p-346b2baf.js} +1 -1
- package/dist/ionic/{p-eab9414f.entry.js → p-36c448fe.entry.js} +1 -1
- package/dist/ionic/p-3990c92b.entry.js +4 -0
- package/dist/ionic/{p-5d1be985.js → p-39dd4f62.js} +1 -1
- package/dist/ionic/{p-8911101b.system.js → p-3c8e5c23.system.js} +1 -1
- package/dist/ionic/p-3e99e3e0.entry.js +4 -0
- package/dist/ionic/p-4129228f.system.entry.js +4 -0
- package/dist/ionic/{p-8c0d81a9.entry.js → p-41780810.entry.js} +1 -1
- package/dist/ionic/p-42c9deb1.entry.js +4 -0
- package/dist/ionic/{p-f5a536e1.system.js → p-4452a8ac.system.js} +1 -1
- package/dist/ionic/{p-e3be9fa8.system.entry.js → p-484d855b.system.entry.js} +2 -2
- package/dist/ionic/p-49a0e74c.entry.js +4 -0
- package/dist/ionic/{p-1f62c30b.entry.js → p-4ad78edc.entry.js} +1 -1
- package/dist/ionic/{p-ffb6d30e.js → p-4d3a5f86.js} +1 -1
- package/dist/ionic/{p-ae02a7ea.system.entry.js → p-4d413973.system.entry.js} +1 -1
- package/dist/ionic/{p-43df2d06.system.entry.js → p-5010643d.system.entry.js} +1 -1
- package/dist/ionic/{p-52b61cba.system.js → p-5126cf1e.system.js} +1 -1
- package/dist/ionic/p-52245809.js +4 -0
- package/dist/ionic/{p-e4c1fd74.system.entry.js → p-56da53ad.system.entry.js} +1 -1
- package/dist/ionic/{p-6a649fcd.system.js → p-578efda4.system.js} +2 -2
- package/dist/ionic/{p-d6b3e734.system.entry.js → p-5882bffa.system.entry.js} +1 -1
- package/dist/ionic/{p-026517fb.entry.js → p-5b932840.entry.js} +1 -1
- package/dist/ionic/p-5c9324c6.js +4 -0
- package/dist/ionic/{p-9c7efe25.system.entry.js → p-5fce0c0b.system.entry.js} +1 -1
- package/dist/ionic/{p-ebb85488.entry.js → p-6190d0d6.entry.js} +1 -1
- package/dist/ionic/{p-85b1ffae.entry.js → p-62af944c.entry.js} +1 -1
- package/dist/ionic/{p-feab8373.system.entry.js → p-63c09585.system.entry.js} +1 -1
- package/dist/ionic/{p-d854f4bc.system.entry.js → p-65346408.system.entry.js} +1 -1
- package/dist/ionic/{p-ac2c154f.system.entry.js → p-655723eb.system.entry.js} +1 -1
- package/dist/ionic/p-67222c16.system.js +4 -0
- package/dist/ionic/{p-c2583512.entry.js → p-6d32975a.entry.js} +1 -1
- package/dist/ionic/{p-13637707.entry.js → p-70af0afb.entry.js} +1 -1
- package/dist/ionic/{p-6c85db7e.system.entry.js → p-70ccc275.system.entry.js} +1 -1
- package/dist/ionic/p-712fedc9.entry.js +4 -0
- package/dist/ionic/{p-ca5eef42.entry.js → p-72ec9a26.entry.js} +1 -1
- package/dist/ionic/{p-0116e7d7.system.js → p-73897169.system.js} +1 -1
- package/dist/ionic/{p-d4896d36.system.entry.js → p-7458862e.system.entry.js} +1 -1
- package/dist/ionic/{p-166f4ba0.entry.js → p-76446a85.entry.js} +1 -1
- package/dist/ionic/{p-3fe95571.system.entry.js → p-77e7b7b6.system.entry.js} +1 -1
- package/dist/ionic/{p-89e678fa.js → p-7a1766d6.js} +1 -1
- package/dist/ionic/{p-486dc46d.system.entry.js → p-7ae680ba.system.entry.js} +1 -1
- package/dist/ionic/{p-fd2c0aa6.entry.js → p-7b98cebe.entry.js} +1 -1
- package/dist/ionic/p-80c6d619.entry.js +4 -0
- package/dist/ionic/{p-e0a2abde.system.entry.js → p-84d08aae.system.entry.js} +1 -1
- package/dist/ionic/{p-c09a2f58.system.js → p-860eb968.system.js} +1 -1
- package/dist/ionic/{p-31918ee1.entry.js → p-8818edd8.entry.js} +1 -1
- package/dist/ionic/{p-ebd0a280.entry.js → p-89bf08c7.entry.js} +1 -1
- package/dist/ionic/{p-830f1a37.system.entry.js → p-8cfba7e9.system.entry.js} +1 -1
- package/dist/ionic/{p-bba0bc47.system.js → p-8e407469.system.js} +1 -1
- package/dist/ionic/{p-48e13807.system.entry.js → p-92365bc1.system.entry.js} +1 -1
- package/dist/ionic/{p-ee41045b.system.entry.js → p-93e3654c.system.entry.js} +1 -1
- package/dist/ionic/{p-8f89c8e3.entry.js → p-955c3eb8.entry.js} +1 -1
- package/dist/ionic/{p-56a8aa85.entry.js → p-95775830.entry.js} +1 -1
- package/dist/ionic/{p-f6e7870b.system.js → p-95da3ae2.system.js} +1 -1
- package/dist/ionic/{p-230af7f2.js → p-990630ca.js} +1 -1
- package/dist/ionic/{p-4429e8c5.entry.js → p-9962f63f.entry.js} +1 -1
- package/dist/ionic/p-9a100adc.entry.js +4 -0
- package/dist/ionic/{p-34182275.entry.js → p-9b3bb24e.entry.js} +1 -1
- package/dist/ionic/{p-a69cf9ea.entry.js → p-9de5c787.entry.js} +1 -1
- package/dist/ionic/{p-eb4ac14d.system.js → p-9f3008d4.system.js} +1 -1
- package/dist/ionic/{p-17c772fb.entry.js → p-a5b31c0f.entry.js} +1 -1
- package/dist/ionic/{p-d86d7845.system.js → p-a69b9fc5.system.js} +1 -1
- package/dist/ionic/{p-c55254f0.system.entry.js → p-a9e24ae2.system.entry.js} +1 -1
- package/dist/ionic/{p-d7607262.system.js → p-acb30a5c.system.js} +1 -1
- package/dist/ionic/{p-361ab803.system.entry.js → p-acc8399c.system.entry.js} +2 -2
- package/dist/ionic/p-af09741c.entry.js +4 -0
- package/dist/ionic/{p-953d9cf5.system.js → p-af452fa4.system.js} +1 -1
- package/dist/ionic/{p-b533b7ab.system.entry.js → p-af744710.system.entry.js} +1 -1
- package/dist/ionic/{p-42a9bb35.entry.js → p-afecb188.entry.js} +1 -1
- package/dist/ionic/{p-8aa290af.system.js → p-b3680e2f.system.js} +1 -1
- package/dist/ionic/p-b936eb7e.system.entry.js +4 -0
- package/dist/ionic/{p-6eb35904.js → p-bb11d9fb.js} +1 -1
- package/dist/ionic/{p-00d5ab83.entry.js → p-bb2a6761.entry.js} +1 -1
- package/dist/ionic/{p-327b452e.entry.js → p-bc616455.entry.js} +1 -1
- package/dist/ionic/{p-9d4a8059.entry.js → p-bdad26e3.entry.js} +1 -1
- package/dist/ionic/{p-91b944fa.entry.js → p-c32644d7.entry.js} +1 -1
- package/dist/ionic/p-c3802319.system.js +4 -0
- package/dist/ionic/{p-a4b108a7.entry.js → p-c8d645b3.entry.js} +1 -1
- package/dist/ionic/{p-07d0478c.js → p-c935cfc9.js} +1 -1
- package/dist/ionic/{p-45109533.system.entry.js → p-d1172fe3.system.entry.js} +1 -1
- package/dist/ionic/{p-b566749e.js → p-d4ca0475.js} +1 -1
- package/dist/ionic/{p-e25cd3c7.js → p-d743e981.js} +1 -1
- package/dist/ionic/{p-80f2a47b.entry.js → p-d7bb5325.entry.js} +1 -1
- package/dist/ionic/{p-364ed29d.system.entry.js → p-d821466d.system.entry.js} +1 -1
- package/dist/ionic/{p-733f53f8.system.js → p-d99e8644.system.js} +1 -1
- package/dist/ionic/{p-05f90810.system.entry.js → p-da8ef548.system.entry.js} +1 -1
- package/dist/ionic/{p-de4fef3c.system.entry.js → p-dc146a2a.system.entry.js} +1 -1
- package/dist/ionic/{p-25580c85.system.entry.js → p-dd0c9350.system.entry.js} +1 -1
- package/dist/ionic/{p-136ff13e.entry.js → p-df862603.entry.js} +1 -1
- package/dist/ionic/{p-e84da6cb.system.entry.js → p-e2e19375.system.entry.js} +1 -1
- package/dist/ionic/{p-0793353d.system.entry.js → p-e32557bb.system.entry.js} +1 -1
- package/dist/ionic/{p-fced06e0.entry.js → p-e5849f8d.entry.js} +1 -1
- package/dist/ionic/p-e8d56122.js +4 -0
- package/dist/ionic/{p-441c2c8c.entry.js → p-e8f34871.entry.js} +1 -1
- package/dist/ionic/{p-6f3d8334.js → p-ecceeb90.js} +1 -1
- package/dist/ionic/{p-d7fef52e.system.entry.js → p-ed75fcfb.system.entry.js} +1 -1
- package/dist/ionic/{p-213b12ce.system.entry.js → p-eeb5cb45.system.entry.js} +2 -2
- package/dist/ionic/p-efbf5af5.system.entry.js +4 -0
- package/dist/ionic/p-f2613334.system.entry.js +4 -0
- package/dist/ionic/{p-6347c733.system.entry.js → p-f301a694.system.entry.js} +1 -1
- package/dist/ionic/{p-478dfa8c.system.entry.js → p-f3102647.system.entry.js} +1 -1
- package/dist/ionic/{p-f8ef15ba.system.entry.js → p-f56752be.system.entry.js} +1 -1
- package/dist/ionic/{p-379d9002.entry.js → p-f5d6624d.entry.js} +1 -1
- package/dist/ionic/{p-5d3dc32b.system.entry.js → p-f78af648.system.entry.js} +1 -1
- package/dist/ionic/{p-c3de6cd1.system.entry.js → p-f89cf011.system.entry.js} +1 -1
- package/dist/ionic/p-fbf86e62.system.js +4 -0
- package/dist/ionic/{p-16dd9c9b.entry.js → p-fca17935.entry.js} +1 -1
- package/dist/ionic/{p-712b57f9.system.entry.js → p-fca6ef5f.system.entry.js} +1 -1
- package/dist/ionic/{p-c06312bf.entry.js → p-fec13c57.entry.js} +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +6 -0
- package/dist/types/components/modal/animations/sheet.d.ts +1 -0
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +1 -0
- package/dist/types/components/modal/modal.d.ts +11 -0
- package/dist/types/components/select/select.d.ts +6 -0
- package/dist/types/components/toggle/toggle.d.ts +25 -0
- package/dist/types/components/toolbar/toolbar.d.ts +4 -0
- package/dist/types/components.d.ts +48 -0
- package/dist/types/utils/config.d.ts +9 -0
- package/dist/types/utils/helpers.d.ts +0 -4
- package/dist/types/utils/logging/index.d.ts +13 -1
- package/dist/types/utils/native/capacitor.d.ts +1 -7
- package/dist/types/utils/test/platform.utils.d.ts +1 -1
- package/hydrate/index.js +338 -100
- package/hydrate/index.mjs +338 -100
- package/package.json +5 -5
- package/dist/esm-es5/app-globals-c10a1137.js +0 -4
- package/dist/esm-es5/index-9b0d46f4.js +0 -4
- package/dist/esm-es5/input-shims-5e5e47e8.js +0 -4
- package/dist/esm-es5/md.transition-290d8802.js +0 -4
- package/dist/esm-es5/status-tap-ba401484.js +0 -4
- package/dist/ionic/p-06fee233.js +0 -4
- package/dist/ionic/p-1b2657c9.system.entry.js +0 -4
- package/dist/ionic/p-1c89b09c.system.entry.js +0 -4
- package/dist/ionic/p-1f1b8704.entry.js +0 -4
- package/dist/ionic/p-30ec5574.entry.js +0 -4
- package/dist/ionic/p-4075165f.js +0 -4
- package/dist/ionic/p-4133f9ec.entry.js +0 -4
- package/dist/ionic/p-47ed8b64.entry.js +0 -4
- package/dist/ionic/p-4e8946f7.js +0 -4
- package/dist/ionic/p-51d4cdba.system.js +0 -4
- package/dist/ionic/p-665f9987.entry.js +0 -4
- package/dist/ionic/p-8b367303.entry.js +0 -4
- package/dist/ionic/p-8f3d6be8.entry.js +0 -4
- package/dist/ionic/p-9e23592d.system.js +0 -4
- package/dist/ionic/p-a749d4a9.entry.js +0 -4
- package/dist/ionic/p-acb5a6e4.entry.js +0 -4
- package/dist/ionic/p-b1c4a9db.js +0 -4
- package/dist/ionic/p-b58057d4.js +0 -4
- package/dist/ionic/p-b5a10c8b.system.entry.js +0 -4
- package/dist/ionic/p-b6ee3fc7.system.entry.js +0 -4
- package/dist/ionic/p-c312ea08.entry.js +0 -4
- package/dist/ionic/p-c42a4dad.system.entry.js +0 -4
- package/dist/ionic/p-e03cd18a.system.entry.js +0 -4
- package/dist/ionic/p-e03d645e.entry.js +0 -4
- package/dist/ionic/p-efa8edbc.system.js +0 -4
- package/dist/ionic/p-f1bbc785.js +0 -4
- package/dist/ionic/p-f4f255cb.system.js +0 -4
- package/dist/ionic/p-f6fe87c1.js +0 -4
- package/dist/ionic/p-ff4b7e40.system.js +0 -4
|
@@ -86,6 +86,7 @@ export class Modal {
|
|
|
86
86
|
this.enterAnimation = undefined;
|
|
87
87
|
this.leaveAnimation = undefined;
|
|
88
88
|
this.breakpoints = undefined;
|
|
89
|
+
this.expandToScroll = true;
|
|
89
90
|
this.initialBreakpoint = undefined;
|
|
90
91
|
this.backdropBreakpoint = 0;
|
|
91
92
|
this.handle = undefined;
|
|
@@ -301,6 +302,7 @@ export class Modal {
|
|
|
301
302
|
presentingEl: presentingElement,
|
|
302
303
|
currentBreakpoint: this.initialBreakpoint,
|
|
303
304
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
305
|
+
expandToScroll: this.expandToScroll,
|
|
304
306
|
});
|
|
305
307
|
/* tslint:disable-next-line */
|
|
306
308
|
if (typeof window !== 'undefined') {
|
|
@@ -351,7 +353,10 @@ export class Modal {
|
|
|
351
353
|
// should be in the DOM and referenced by now, except
|
|
352
354
|
// for the presenting el
|
|
353
355
|
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation);
|
|
354
|
-
const ani = (this.animation = animationBuilder(el, {
|
|
356
|
+
const ani = (this.animation = animationBuilder(el, {
|
|
357
|
+
presentingEl: this.presentingElement,
|
|
358
|
+
expandToScroll: this.expandToScroll,
|
|
359
|
+
}));
|
|
355
360
|
const contentEl = findIonContent(el);
|
|
356
361
|
if (!contentEl) {
|
|
357
362
|
printIonContentErrorMsg(el);
|
|
@@ -396,9 +401,10 @@ export class Modal {
|
|
|
396
401
|
presentingEl: this.presentingElement,
|
|
397
402
|
currentBreakpoint: initialBreakpoint,
|
|
398
403
|
backdropBreakpoint,
|
|
404
|
+
expandToScroll: this.expandToScroll,
|
|
399
405
|
}));
|
|
400
406
|
ani.progressStart(true, 1);
|
|
401
|
-
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
|
|
407
|
+
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints, this.expandToScroll, () => { var _a; return (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : 0; }, () => this.sheetOnDismiss(), (breakpoint) => {
|
|
402
408
|
if (this.currentBreakpoint !== breakpoint) {
|
|
403
409
|
this.currentBreakpoint = breakpoint;
|
|
404
410
|
this.ionBreakpointDidChange.emit({ breakpoint });
|
|
@@ -476,6 +482,7 @@ export class Modal {
|
|
|
476
482
|
presentingEl: presentingElement,
|
|
477
483
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
478
484
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
485
|
+
expandToScroll: this.expandToScroll,
|
|
479
486
|
});
|
|
480
487
|
if (dismissed) {
|
|
481
488
|
const { delegate } = this.getDelegate();
|
|
@@ -561,23 +568,23 @@ export class Modal {
|
|
|
561
568
|
return true;
|
|
562
569
|
}
|
|
563
570
|
render() {
|
|
564
|
-
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
|
|
571
|
+
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap, expandToScroll, } = this;
|
|
565
572
|
const showHandle = handle !== false && isSheetModal;
|
|
566
573
|
const mode = getIonMode(this);
|
|
567
574
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
568
575
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
569
|
-
return (h(Host, Object.assign({ key: '
|
|
576
|
+
return (h(Host, Object.assign({ key: 'ff15df63e72caaeb0a4ad68e9eedeaaa7d3f3bde', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
570
577
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
571
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '
|
|
578
|
+
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle }), h("ion-backdrop", { key: '27a73655779af9d175a829d3d2d29e42fd2a63ee', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: '406a65080087e7895026ecc2f04e9d707439e86f', class: "modal-shadow" }), h("div", Object.assign({ key: '8e410eb925374158996c82cbbd522f07d741679e',
|
|
572
579
|
/*
|
|
573
580
|
role and aria-modal must be used on the
|
|
574
581
|
same element. They must also be set inside the
|
|
575
582
|
shadow DOM otherwise ion-button will not be highlighted
|
|
576
583
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
577
584
|
*/
|
|
578
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '
|
|
585
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '7326c969ebe5a70a35e83b09d3db2bb848c90e47', class: "modal-handle",
|
|
579
586
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
580
|
-
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '
|
|
587
|
+
tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle" })), h("slot", { key: '0b65cdb9e337a27edf437b9e754e79f1449c217d' }))));
|
|
581
588
|
}
|
|
582
589
|
static get is() { return "ion-modal"; }
|
|
583
590
|
static get encapsulation() { return "shadow"; }
|
|
@@ -735,6 +742,24 @@ export class Modal {
|
|
|
735
742
|
"text": "The breakpoints to use when creating a sheet modal. Each value in the\narray must be a decimal between 0 and 1 where 0 indicates the modal is fully\nclosed and 1 indicates the modal is fully open. Values are relative\nto the height of the modal, not the height of the screen. One of the values in this\narray must be the value of the `initialBreakpoint` property.\nFor example: [0, .25, .5, 1]"
|
|
736
743
|
}
|
|
737
744
|
},
|
|
745
|
+
"expandToScroll": {
|
|
746
|
+
"type": "boolean",
|
|
747
|
+
"mutable": false,
|
|
748
|
+
"complexType": {
|
|
749
|
+
"original": "boolean",
|
|
750
|
+
"resolved": "boolean",
|
|
751
|
+
"references": {}
|
|
752
|
+
},
|
|
753
|
+
"required": false,
|
|
754
|
+
"optional": false,
|
|
755
|
+
"docs": {
|
|
756
|
+
"tags": [],
|
|
757
|
+
"text": "Controls whether scrolling or dragging within the sheet modal expands\nit to a larger breakpoint. This only takes effect when `breakpoints`\nand `initialBreakpoint` are set.\n\nIf `true`, scrolling or dragging anywhere in the modal will first expand\nit to the next breakpoint. Once fully expanded, scrolling will affect the content.\nIf `false`, scrolling will always affect the content, and the modal will only expand\nwhen dragging the header or handle."
|
|
758
|
+
},
|
|
759
|
+
"attribute": "expand-to-scroll",
|
|
760
|
+
"reflect": false,
|
|
761
|
+
"defaultValue": "true"
|
|
762
|
+
},
|
|
738
763
|
"initialBreakpoint": {
|
|
739
764
|
"type": "number",
|
|
740
765
|
"mutable": false,
|
|
@@ -201,6 +201,12 @@ ion-backdrop {
|
|
|
201
201
|
bottom: 0;
|
|
202
202
|
}
|
|
203
203
|
|
|
204
|
+
:host(.modal-sheet.modal-no-expand-scroll) ion-footer {
|
|
205
|
+
position: absolute;
|
|
206
|
+
bottom: 0;
|
|
207
|
+
width: var(--width);
|
|
208
|
+
}
|
|
209
|
+
|
|
204
210
|
/**
|
|
205
211
|
* Convert a font size to a dynamic font size.
|
|
206
212
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -91,6 +91,7 @@ export class Select {
|
|
|
91
91
|
this.expandedIcon = undefined;
|
|
92
92
|
this.shape = undefined;
|
|
93
93
|
this.value = undefined;
|
|
94
|
+
this.required = false;
|
|
94
95
|
}
|
|
95
96
|
styleChanged() {
|
|
96
97
|
this.emitStyle();
|
|
@@ -655,8 +656,8 @@ export class Select {
|
|
|
655
656
|
return renderedLabel;
|
|
656
657
|
}
|
|
657
658
|
renderListbox() {
|
|
658
|
-
const { disabled, inputId, isExpanded } = this;
|
|
659
|
-
return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
659
|
+
const { disabled, inputId, isExpanded, required } = this;
|
|
660
|
+
return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, "aria-required": `${required}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
|
|
660
661
|
}
|
|
661
662
|
render() {
|
|
662
663
|
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
|
|
@@ -687,7 +688,7 @@ export class Select {
|
|
|
687
688
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
688
689
|
*/
|
|
689
690
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
690
|
-
return (h(Host, { key: '
|
|
691
|
+
return (h(Host, { key: 'f7cf03de773cd85da42978e274d65cc1eb6ed8a3', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
691
692
|
[mode]: true,
|
|
692
693
|
'in-item': inItem,
|
|
693
694
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -703,7 +704,7 @@ export class Select {
|
|
|
703
704
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
704
705
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
705
706
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
706
|
-
}) }, h("label", { key: '
|
|
707
|
+
}) }, h("label", { key: '91674f8f5cce37c87a7096d09b3f1d351cba1527', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '2229333833047db13ed2a01cb10bb6e6f774031d', class: "select-wrapper-inner" }, h("slot", { key: 'f2766bdf8bff261efa5711f72d9edef407e45189', name: "start" }), h("div", { key: '84fec020ecaaac41298a01dbffdbb2f3744170b4', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '9b91237d7a1621bce1e15546abcb4f6b74cccc5f', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'e02aea3e8f344376013257f5261a29408e62b359', class: "select-highlight" }))));
|
|
707
708
|
}
|
|
708
709
|
static get is() { return "ion-select"; }
|
|
709
710
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1069,6 +1070,24 @@ export class Select {
|
|
|
1069
1070
|
},
|
|
1070
1071
|
"attribute": "value",
|
|
1071
1072
|
"reflect": false
|
|
1073
|
+
},
|
|
1074
|
+
"required": {
|
|
1075
|
+
"type": "boolean",
|
|
1076
|
+
"mutable": false,
|
|
1077
|
+
"complexType": {
|
|
1078
|
+
"original": "boolean",
|
|
1079
|
+
"resolved": "boolean",
|
|
1080
|
+
"references": {}
|
|
1081
|
+
},
|
|
1082
|
+
"required": false,
|
|
1083
|
+
"optional": false,
|
|
1084
|
+
"docs": {
|
|
1085
|
+
"tags": [],
|
|
1086
|
+
"text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
|
|
1087
|
+
},
|
|
1088
|
+
"attribute": "required",
|
|
1089
|
+
"reflect": false,
|
|
1090
|
+
"defaultValue": "false"
|
|
1072
1091
|
}
|
|
1073
1092
|
};
|
|
1074
1093
|
}
|
|
@@ -373,6 +373,7 @@
|
|
|
373
373
|
justify-content: space-between;
|
|
374
374
|
border-top: var(--border-width) var(--border-style) var(--border-color);
|
|
375
375
|
font-size: 0.75rem;
|
|
376
|
+
white-space: normal;
|
|
376
377
|
}
|
|
377
378
|
|
|
378
379
|
/**
|
|
@@ -396,7 +397,7 @@
|
|
|
396
397
|
|
|
397
398
|
.textarea-bottom .helper-text {
|
|
398
399
|
display: block;
|
|
399
|
-
color: var(--ion-color-step-
|
|
400
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
400
401
|
}
|
|
401
402
|
|
|
402
403
|
:host(.ion-touched.ion-invalid) .textarea-bottom .error-text {
|
|
@@ -415,7 +416,7 @@
|
|
|
415
416
|
*/
|
|
416
417
|
-webkit-margin-start: auto;
|
|
417
418
|
margin-inline-start: auto;
|
|
418
|
-
color: var(--ion-color-step-
|
|
419
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
419
420
|
white-space: nowrap;
|
|
420
421
|
padding-inline-start: 16px;
|
|
421
422
|
}
|
|
@@ -373,6 +373,7 @@
|
|
|
373
373
|
justify-content: space-between;
|
|
374
374
|
border-top: var(--border-width) var(--border-style) var(--border-color);
|
|
375
375
|
font-size: 0.75rem;
|
|
376
|
+
white-space: normal;
|
|
376
377
|
}
|
|
377
378
|
|
|
378
379
|
/**
|
|
@@ -396,7 +397,7 @@
|
|
|
396
397
|
|
|
397
398
|
.textarea-bottom .helper-text {
|
|
398
399
|
display: block;
|
|
399
|
-
color: var(--ion-color-step-
|
|
400
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
400
401
|
}
|
|
401
402
|
|
|
402
403
|
:host(.ion-touched.ion-invalid) .textarea-bottom .error-text {
|
|
@@ -415,7 +416,7 @@
|
|
|
415
416
|
*/
|
|
416
417
|
-webkit-margin-start: auto;
|
|
417
418
|
margin-inline-start: auto;
|
|
418
|
-
color: var(--ion-color-step-
|
|
419
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
419
420
|
white-space: nowrap;
|
|
420
421
|
padding-inline-start: 16px;
|
|
421
422
|
}
|
|
@@ -928,6 +929,10 @@
|
|
|
928
929
|
--border-color: var(--highlight-color);
|
|
929
930
|
}
|
|
930
931
|
|
|
932
|
+
/**
|
|
933
|
+
* The bottom content should never have
|
|
934
|
+
* a border with the solid style.
|
|
935
|
+
*/
|
|
931
936
|
:host(.textarea-fill-solid) .textarea-bottom {
|
|
932
937
|
border-top: none;
|
|
933
938
|
}
|
|
@@ -171,32 +171,39 @@ input {
|
|
|
171
171
|
align-items: center;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
-
|
|
174
|
+
.toggle-bottom {
|
|
175
|
+
padding-top: 4px;
|
|
176
|
+
display: flex;
|
|
175
177
|
justify-content: space-between;
|
|
178
|
+
font-size: 0.75rem;
|
|
179
|
+
white-space: normal;
|
|
176
180
|
}
|
|
177
181
|
|
|
178
|
-
:host(.toggle-
|
|
179
|
-
|
|
182
|
+
:host(.toggle-label-placement-stacked) .toggle-bottom {
|
|
183
|
+
font-size: 1rem;
|
|
180
184
|
}
|
|
181
185
|
|
|
182
|
-
|
|
183
|
-
|
|
186
|
+
/**
|
|
187
|
+
* Error text should only be shown when .ion-invalid is
|
|
188
|
+
* present on the checkbox. Otherwise the helper text should
|
|
189
|
+
* be shown.
|
|
190
|
+
*/
|
|
191
|
+
.toggle-bottom .error-text {
|
|
192
|
+
display: none;
|
|
193
|
+
color: var(--ion-color-danger, #c5000f);
|
|
184
194
|
}
|
|
185
195
|
|
|
186
|
-
|
|
187
|
-
|
|
196
|
+
.toggle-bottom .helper-text {
|
|
197
|
+
display: block;
|
|
198
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
188
199
|
}
|
|
189
200
|
|
|
190
|
-
:host(.
|
|
191
|
-
|
|
201
|
+
:host(.ion-touched.ion-invalid) .toggle-bottom .error-text {
|
|
202
|
+
display: block;
|
|
192
203
|
}
|
|
193
204
|
|
|
194
|
-
:host(.toggle-
|
|
195
|
-
:
|
|
196
|
-
:host(.toggle-justify-end),
|
|
197
|
-
:host(.toggle-alignment-start),
|
|
198
|
-
:host(.toggle-alignment-center) {
|
|
199
|
-
display: block;
|
|
205
|
+
:host(.ion-touched.ion-invalid) .toggle-bottom .helper-text {
|
|
206
|
+
display: none;
|
|
200
207
|
}
|
|
201
208
|
|
|
202
209
|
/**
|
|
@@ -225,6 +232,7 @@ input {
|
|
|
225
232
|
*/
|
|
226
233
|
:host(.toggle-label-placement-end) .toggle-wrapper {
|
|
227
234
|
flex-direction: row-reverse;
|
|
235
|
+
justify-content: start;
|
|
228
236
|
}
|
|
229
237
|
|
|
230
238
|
/**
|
|
@@ -267,6 +275,7 @@ input {
|
|
|
267
275
|
*/
|
|
268
276
|
:host(.toggle-label-placement-stacked) .toggle-wrapper {
|
|
269
277
|
flex-direction: column;
|
|
278
|
+
text-align: center;
|
|
270
279
|
}
|
|
271
280
|
|
|
272
281
|
:host(.toggle-label-placement-stacked) .label-text-wrapper {
|
|
@@ -312,6 +321,34 @@ input {
|
|
|
312
321
|
}
|
|
313
322
|
}
|
|
314
323
|
|
|
324
|
+
:host(.toggle-justify-space-between) .toggle-wrapper {
|
|
325
|
+
justify-content: space-between;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
:host(.toggle-justify-start) .toggle-wrapper {
|
|
329
|
+
justify-content: start;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
:host(.toggle-justify-end) .toggle-wrapper {
|
|
333
|
+
justify-content: end;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
:host(.toggle-alignment-start) .toggle-wrapper {
|
|
337
|
+
align-items: start;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
:host(.toggle-alignment-center) .toggle-wrapper {
|
|
341
|
+
align-items: center;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
:host(.toggle-justify-space-between),
|
|
345
|
+
:host(.toggle-justify-start),
|
|
346
|
+
:host(.toggle-justify-end),
|
|
347
|
+
:host(.toggle-alignment-start),
|
|
348
|
+
:host(.toggle-alignment-center) {
|
|
349
|
+
display: block;
|
|
350
|
+
}
|
|
351
|
+
|
|
315
352
|
.toggle-icon-wrapper {
|
|
316
353
|
display: flex;
|
|
317
354
|
position: relative;
|
|
@@ -17,10 +17,15 @@ import { getIonMode } from "../../global/ionic-global";
|
|
|
17
17
|
* @part track - The background track of the toggle.
|
|
18
18
|
* @part handle - The toggle handle, or knob, used to change the checked state.
|
|
19
19
|
* @part label - The label text describing the toggle.
|
|
20
|
+
* @part supporting-text - Supporting text displayed beneath the toggle label.
|
|
21
|
+
* @part helper-text - Supporting text displayed beneath the toggle label when the toggle is valid.
|
|
22
|
+
* @part error-text - Supporting text displayed beneath the toggle label when the toggle is invalid and touched.
|
|
20
23
|
*/
|
|
21
24
|
export class Toggle {
|
|
22
25
|
constructor() {
|
|
23
26
|
this.inputId = `ion-tg-${toggleIds++}`;
|
|
27
|
+
this.helperTextId = `${this.inputId}-helper-text`;
|
|
28
|
+
this.errorTextId = `${this.inputId}-error-text`;
|
|
24
29
|
this.lastDrag = 0;
|
|
25
30
|
this.inheritedAttributes = {};
|
|
26
31
|
this.didLoad = false;
|
|
@@ -66,11 +71,14 @@ export class Toggle {
|
|
|
66
71
|
this.name = this.inputId;
|
|
67
72
|
this.checked = false;
|
|
68
73
|
this.disabled = false;
|
|
74
|
+
this.errorText = undefined;
|
|
75
|
+
this.helperText = undefined;
|
|
69
76
|
this.value = 'on';
|
|
70
77
|
this.enableOnOffLabels = config.get('toggleOnOffLabels');
|
|
71
78
|
this.labelPlacement = 'start';
|
|
72
79
|
this.justify = undefined;
|
|
73
80
|
this.alignment = undefined;
|
|
81
|
+
this.required = false;
|
|
74
82
|
}
|
|
75
83
|
disabledChanged() {
|
|
76
84
|
if (this.gesture) {
|
|
@@ -151,13 +159,39 @@ export class Toggle {
|
|
|
151
159
|
get hasLabel() {
|
|
152
160
|
return this.el.textContent !== '';
|
|
153
161
|
}
|
|
162
|
+
getHintTextID() {
|
|
163
|
+
const { el, helperText, errorText, helperTextId, errorTextId } = this;
|
|
164
|
+
if (el.classList.contains('ion-touched') && el.classList.contains('ion-invalid') && errorText) {
|
|
165
|
+
return errorTextId;
|
|
166
|
+
}
|
|
167
|
+
if (helperText) {
|
|
168
|
+
return helperTextId;
|
|
169
|
+
}
|
|
170
|
+
return undefined;
|
|
171
|
+
}
|
|
172
|
+
/**
|
|
173
|
+
* Responsible for rendering helper text and error text.
|
|
174
|
+
* This element should only be rendered if hint text is set.
|
|
175
|
+
*/
|
|
176
|
+
renderHintText() {
|
|
177
|
+
const { helperText, errorText, helperTextId, errorTextId } = this;
|
|
178
|
+
/**
|
|
179
|
+
* undefined and empty string values should
|
|
180
|
+
* be treated as not having helper/error text.
|
|
181
|
+
*/
|
|
182
|
+
const hasHintText = !!helperText || !!errorText;
|
|
183
|
+
if (!hasHintText) {
|
|
184
|
+
return;
|
|
185
|
+
}
|
|
186
|
+
return (h("div", { class: "toggle-bottom" }, h("div", { id: helperTextId, class: "helper-text", part: "supporting-text helper-text" }, helperText), h("div", { id: errorTextId, class: "error-text", part: "supporting-text error-text" }, errorText)));
|
|
187
|
+
}
|
|
154
188
|
render() {
|
|
155
|
-
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment } = this;
|
|
189
|
+
const { activated, color, checked, disabled, el, justify, labelPlacement, inputId, name, alignment, required } = this;
|
|
156
190
|
const mode = getIonMode(this);
|
|
157
191
|
const value = this.getValue();
|
|
158
192
|
const rtl = isRTL(el) ? 'rtl' : 'ltr';
|
|
159
193
|
renderHiddenInput(true, el, name, checked ? value : '', disabled);
|
|
160
|
-
return (h(Host, { key: '
|
|
194
|
+
return (h(Host, { key: '6a03757dc962cda1c8f986e84d8545875de8e5fa', "aria-describedby": this.getHintTextID(), "aria-invalid": this.getHintTextID() === this.errorTextId, onClick: this.onClick, class: createColorClasses(color, {
|
|
161
195
|
[mode]: true,
|
|
162
196
|
'in-item': hostContext('ion-item', el),
|
|
163
197
|
'toggle-activated': activated,
|
|
@@ -167,10 +201,10 @@ export class Toggle {
|
|
|
167
201
|
[`toggle-alignment-${alignment}`]: alignment !== undefined,
|
|
168
202
|
[`toggle-label-placement-${labelPlacement}`]: true,
|
|
169
203
|
[`toggle-${rtl}`]: true,
|
|
170
|
-
}) }, h("label", { key: '
|
|
204
|
+
}) }, h("label", { key: '842e00a34befece9ea84a9e28dd62d49104de681', class: "toggle-wrapper" }, h("input", Object.assign({ key: 'eb889c180b3f6efab26f31669aa6adc23d866eb1', type: "checkbox", role: "switch", "aria-checked": `${checked}`, checked: checked, disabled: disabled, id: inputId, onFocus: () => this.onFocus(), onBlur: () => this.onBlur(), ref: (focusEl) => (this.focusEl = focusEl), required: required }, this.inheritedAttributes)), h("div", { key: 'fe57b4a97a0ddabf99995f1def5cd432b7ea591d', class: {
|
|
171
205
|
'label-text-wrapper': true,
|
|
172
206
|
'label-text-wrapper-hidden': !this.hasLabel,
|
|
173
|
-
}, part: "label" }, h("slot", { key: '
|
|
207
|
+
}, part: "label" }, h("slot", { key: '4ae52733af284130dfb2e2c3b476e0516e0be147' }), this.renderHintText()), h("div", { key: 'ffee5416e2ab4b8d286d2790490255bb45346ce0', class: "native-wrapper" }, this.renderToggleControl()))));
|
|
174
208
|
}
|
|
175
209
|
static get is() { return "ion-toggle"; }
|
|
176
210
|
static get encapsulation() { return "shadow"; }
|
|
@@ -265,6 +299,40 @@ export class Toggle {
|
|
|
265
299
|
"reflect": false,
|
|
266
300
|
"defaultValue": "false"
|
|
267
301
|
},
|
|
302
|
+
"errorText": {
|
|
303
|
+
"type": "string",
|
|
304
|
+
"mutable": false,
|
|
305
|
+
"complexType": {
|
|
306
|
+
"original": "string",
|
|
307
|
+
"resolved": "string | undefined",
|
|
308
|
+
"references": {}
|
|
309
|
+
},
|
|
310
|
+
"required": false,
|
|
311
|
+
"optional": true,
|
|
312
|
+
"docs": {
|
|
313
|
+
"tags": [],
|
|
314
|
+
"text": "Text that is placed under the toggle label and displayed when an error is detected."
|
|
315
|
+
},
|
|
316
|
+
"attribute": "error-text",
|
|
317
|
+
"reflect": false
|
|
318
|
+
},
|
|
319
|
+
"helperText": {
|
|
320
|
+
"type": "string",
|
|
321
|
+
"mutable": false,
|
|
322
|
+
"complexType": {
|
|
323
|
+
"original": "string",
|
|
324
|
+
"resolved": "string | undefined",
|
|
325
|
+
"references": {}
|
|
326
|
+
},
|
|
327
|
+
"required": false,
|
|
328
|
+
"optional": true,
|
|
329
|
+
"docs": {
|
|
330
|
+
"tags": [],
|
|
331
|
+
"text": "Text that is placed under the toggle label and displayed when no error is detected."
|
|
332
|
+
},
|
|
333
|
+
"attribute": "helper-text",
|
|
334
|
+
"reflect": false
|
|
335
|
+
},
|
|
268
336
|
"value": {
|
|
269
337
|
"type": "string",
|
|
270
338
|
"mutable": false,
|
|
@@ -352,6 +420,24 @@ export class Toggle {
|
|
|
352
420
|
},
|
|
353
421
|
"attribute": "alignment",
|
|
354
422
|
"reflect": false
|
|
423
|
+
},
|
|
424
|
+
"required": {
|
|
425
|
+
"type": "boolean",
|
|
426
|
+
"mutable": false,
|
|
427
|
+
"complexType": {
|
|
428
|
+
"original": "boolean",
|
|
429
|
+
"resolved": "boolean",
|
|
430
|
+
"references": {}
|
|
431
|
+
},
|
|
432
|
+
"required": false,
|
|
433
|
+
"optional": false,
|
|
434
|
+
"docs": {
|
|
435
|
+
"tags": [],
|
|
436
|
+
"text": "If true, screen readers will announce it as a required field. This property\nworks only for accessibility purposes, it will not prevent the form from\nsubmitting if the value is invalid."
|
|
437
|
+
},
|
|
438
|
+
"attribute": "required",
|
|
439
|
+
"reflect": false,
|
|
440
|
+
"defaultValue": "false"
|
|
355
441
|
}
|
|
356
442
|
};
|
|
357
443
|
}
|
|
@@ -171,32 +171,39 @@ input {
|
|
|
171
171
|
align-items: center;
|
|
172
172
|
}
|
|
173
173
|
|
|
174
|
-
|
|
174
|
+
.toggle-bottom {
|
|
175
|
+
padding-top: 4px;
|
|
176
|
+
display: flex;
|
|
175
177
|
justify-content: space-between;
|
|
178
|
+
font-size: 0.75rem;
|
|
179
|
+
white-space: normal;
|
|
176
180
|
}
|
|
177
181
|
|
|
178
|
-
:host(.toggle-
|
|
179
|
-
|
|
182
|
+
:host(.toggle-label-placement-stacked) .toggle-bottom {
|
|
183
|
+
font-size: 1rem;
|
|
180
184
|
}
|
|
181
185
|
|
|
182
|
-
|
|
183
|
-
|
|
186
|
+
/**
|
|
187
|
+
* Error text should only be shown when .ion-invalid is
|
|
188
|
+
* present on the checkbox. Otherwise the helper text should
|
|
189
|
+
* be shown.
|
|
190
|
+
*/
|
|
191
|
+
.toggle-bottom .error-text {
|
|
192
|
+
display: none;
|
|
193
|
+
color: var(--ion-color-danger, #c5000f);
|
|
184
194
|
}
|
|
185
195
|
|
|
186
|
-
|
|
187
|
-
|
|
196
|
+
.toggle-bottom .helper-text {
|
|
197
|
+
display: block;
|
|
198
|
+
color: var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));
|
|
188
199
|
}
|
|
189
200
|
|
|
190
|
-
:host(.
|
|
191
|
-
|
|
201
|
+
:host(.ion-touched.ion-invalid) .toggle-bottom .error-text {
|
|
202
|
+
display: block;
|
|
192
203
|
}
|
|
193
204
|
|
|
194
|
-
:host(.toggle-
|
|
195
|
-
:
|
|
196
|
-
:host(.toggle-justify-end),
|
|
197
|
-
:host(.toggle-alignment-start),
|
|
198
|
-
:host(.toggle-alignment-center) {
|
|
199
|
-
display: block;
|
|
205
|
+
:host(.ion-touched.ion-invalid) .toggle-bottom .helper-text {
|
|
206
|
+
display: none;
|
|
200
207
|
}
|
|
201
208
|
|
|
202
209
|
/**
|
|
@@ -225,6 +232,7 @@ input {
|
|
|
225
232
|
*/
|
|
226
233
|
:host(.toggle-label-placement-end) .toggle-wrapper {
|
|
227
234
|
flex-direction: row-reverse;
|
|
235
|
+
justify-content: start;
|
|
228
236
|
}
|
|
229
237
|
|
|
230
238
|
/**
|
|
@@ -267,6 +275,7 @@ input {
|
|
|
267
275
|
*/
|
|
268
276
|
:host(.toggle-label-placement-stacked) .toggle-wrapper {
|
|
269
277
|
flex-direction: column;
|
|
278
|
+
text-align: center;
|
|
270
279
|
}
|
|
271
280
|
|
|
272
281
|
:host(.toggle-label-placement-stacked) .label-text-wrapper {
|
|
@@ -312,6 +321,34 @@ input {
|
|
|
312
321
|
}
|
|
313
322
|
}
|
|
314
323
|
|
|
324
|
+
:host(.toggle-justify-space-between) .toggle-wrapper {
|
|
325
|
+
justify-content: space-between;
|
|
326
|
+
}
|
|
327
|
+
|
|
328
|
+
:host(.toggle-justify-start) .toggle-wrapper {
|
|
329
|
+
justify-content: start;
|
|
330
|
+
}
|
|
331
|
+
|
|
332
|
+
:host(.toggle-justify-end) .toggle-wrapper {
|
|
333
|
+
justify-content: end;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
:host(.toggle-alignment-start) .toggle-wrapper {
|
|
337
|
+
align-items: start;
|
|
338
|
+
}
|
|
339
|
+
|
|
340
|
+
:host(.toggle-alignment-center) .toggle-wrapper {
|
|
341
|
+
align-items: center;
|
|
342
|
+
}
|
|
343
|
+
|
|
344
|
+
:host(.toggle-justify-space-between),
|
|
345
|
+
:host(.toggle-justify-start),
|
|
346
|
+
:host(.toggle-justify-end),
|
|
347
|
+
:host(.toggle-alignment-start),
|
|
348
|
+
:host(.toggle-alignment-center) {
|
|
349
|
+
display: block;
|
|
350
|
+
}
|
|
351
|
+
|
|
315
352
|
.toggle-icon-wrapper {
|
|
316
353
|
display: flex;
|
|
317
354
|
position: relative;
|
|
@@ -12,6 +12,10 @@ import { getIonMode } from "../../global/ionic-global";
|
|
|
12
12
|
* @slot secondary - Content is placed to the left of the toolbar text in `ios` mode, and directly to the right in `md` mode.
|
|
13
13
|
* @slot primary - Content is placed to the right of the toolbar text in `ios` mode, and to the far right in `md` mode.
|
|
14
14
|
* @slot end - Content is placed to the right of the toolbar text in LTR, and to the left in RTL.
|
|
15
|
+
*
|
|
16
|
+
* @part background - The background of the toolbar, covering the entire area behind the toolbar content.
|
|
17
|
+
* @part container - The container that wraps all toolbar content, including the default slot and named slot content.
|
|
18
|
+
* @part content - The container for the default slot, wrapping content provided without a named slot.
|
|
15
19
|
*/
|
|
16
20
|
export class Toolbar {
|
|
17
21
|
constructor() {
|
|
@@ -62,10 +66,10 @@ export class Toolbar {
|
|
|
62
66
|
this.childrenStyles.forEach((value) => {
|
|
63
67
|
Object.assign(childStyles, value);
|
|
64
68
|
});
|
|
65
|
-
return (h(Host, { key: '
|
|
69
|
+
return (h(Host, { key: '4fdc9ae82a93237cc28ceb95b0ebd8069b62839d', class: Object.assign(Object.assign({}, childStyles), createColorClasses(this.color, {
|
|
66
70
|
[mode]: true,
|
|
67
71
|
'in-toolbar': hostContext('ion-toolbar', this.el),
|
|
68
|
-
})) }, h("div", { key: '
|
|
72
|
+
})) }, h("div", { key: '443a216362bbbf1c149ed12140d52b0f0ea2d664', class: "toolbar-background", part: "background" }), h("div", { key: '1df87f4027d605e42757a13d4828df45b90a4fdc', class: "toolbar-container", part: "container" }, h("slot", { key: 'f66f34972be8e3f4915b9c6f5808600dbaedb1ea', name: "start" }), h("slot", { key: '14f38b0975e956f404c4eb3ee56f2055c6615276', name: "secondary" }), h("div", { key: '75ba5953a25c7544793484d2b245792cb0a5af75', class: "toolbar-content", part: "content" }, h("slot", { key: '149dfa58ff7106f318fecb4134e7c69edf8bc231' })), h("slot", { key: '807ab9ad21d7f1d9d427a4086460bcb9e5e8c019', name: "primary" }), h("slot", { key: 'bd2f9da95d2fa8e74dc6e0666587ceecbba99d9f', name: "end" }))));
|
|
69
73
|
}
|
|
70
74
|
static get is() { return "ion-toolbar"; }
|
|
71
75
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,10 +1,7 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
import { isSafeNumber } from "../helpers";
|
|
5
4
|
export function getDecimalPlaces(n) {
|
|
6
|
-
if (!isSafeNumber(n))
|
|
7
|
-
return 0;
|
|
8
5
|
if (n % 1 === 0)
|
|
9
6
|
return 0;
|
|
10
7
|
return n.toString().split('.')[1].length;
|
|
@@ -42,8 +39,6 @@ export function getDecimalPlaces(n) {
|
|
|
42
39
|
* be used as a reference for the desired specificity.
|
|
43
40
|
*/
|
|
44
41
|
export function roundToMaxDecimalPlaces(n, ...references) {
|
|
45
|
-
if (!isSafeNumber(n))
|
|
46
|
-
return 0;
|
|
47
42
|
const maxPlaces = Math.max(...references.map((r) => getDecimalPlaces(r)));
|
|
48
43
|
return Number(n.toFixed(maxPlaces));
|
|
49
44
|
}
|
|
@@ -374,9 +374,3 @@ export const getNextSiblingOfType = (element) => {
|
|
|
374
374
|
}
|
|
375
375
|
return null;
|
|
376
376
|
};
|
|
377
|
-
/**
|
|
378
|
-
* Checks input for usable number. Not NaN and not Infinite.
|
|
379
|
-
*/
|
|
380
|
-
export const isSafeNumber = (input) => {
|
|
381
|
-
return typeof input === 'number' && !isNaN(input) && isFinite(input);
|
|
382
|
-
};
|