@ionic/core 8.4.4-dev.11741027468.1f4941f2 → 8.4.4-dev.11741032668.18899f9b
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/checkbox.js +4 -6
- package/components/index6.js +3 -11
- package/components/ion-select.js +14 -43
- package/components/ion-toggle.js +4 -6
- package/components/ionic-global.js +2 -1
- package/components/modal.js +35 -259
- 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-21afee77.js → app-globals-4283fe37.js} +1 -1
- package/dist/cjs/{data-108e531d.js → data-21dc0f81.js} +1 -1
- package/dist/cjs/{hardware-back-button-9e8a2c4f.js → hardware-back-button-f2cbbdce.js} +1 -1
- package/dist/cjs/{index-2a46a047.js → index-5915f9b3.js} +3 -11
- package/dist/cjs/{index-26bb7e42.js → index-90ec3b6c.js} +4 -4
- package/dist/cjs/{index-0ff61d0b.js → index-9c6c9e9c.js} +3 -3
- package/dist/cjs/{index-6770fc00.js → index-c441c903.js} +1 -1
- package/dist/cjs/index.cjs.js +8 -8
- package/dist/cjs/{input-shims-fd997b01.js → input-shims-e748a364.js} +2 -4
- package/dist/cjs/{input.utils-c15a1814.js → input.utils-74e4ec28.js} +1 -1
- package/dist/cjs/ion-accordion_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-action-sheet.cjs.entry.js +4 -4
- package/dist/cjs/ion-alert.cjs.entry.js +4 -4
- package/dist/cjs/ion-app_8.cjs.entry.js +10 -10
- package/dist/cjs/ion-avatar_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-back-button.cjs.entry.js +1 -1
- package/dist/cjs/ion-backdrop.cjs.entry.js +1 -1
- package/dist/cjs/ion-breadcrumb_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-button_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-card_5.cjs.entry.js +1 -1
- package/dist/cjs/ion-checkbox.cjs.entry.js +5 -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 +3 -3
- package/dist/cjs/ion-datetime_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-fab_3.cjs.entry.js +1 -1
- package/dist/cjs/ion-img.cjs.entry.js +1 -1
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
- package/dist/cjs/ion-input.cjs.entry.js +3 -3
- package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -3
- package/dist/cjs/ion-item_8.cjs.entry.js +1 -1
- package/dist/cjs/ion-loading.cjs.entry.js +4 -4
- package/dist/cjs/ion-menu_3.cjs.entry.js +5 -5
- package/dist/cjs/ion-modal.cjs.entry.js +41 -264
- package/dist/cjs/ion-nav_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +1 -1
- package/dist/cjs/ion-picker-column.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +5 -5
- package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-range.cjs.entry.js +3 -3
- package/dist/cjs/ion-refresher_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-reorder_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-ripple-effect.cjs.entry.js +1 -1
- package/dist/cjs/ion-route_4.cjs.entry.js +1 -1
- package/dist/cjs/ion-searchbar.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-select-modal.cjs.entry.js +4 -4
- package/dist/cjs/ion-select_3.cjs.entry.js +17 -45
- 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 +1 -1
- package/dist/cjs/ion-text.cjs.entry.js +1 -1
- package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
- package/dist/cjs/ion-toast.cjs.entry.js +4 -4
- package/dist/cjs/ion-toggle.cjs.entry.js +5 -6
- package/dist/cjs/{ionic-global-d9a8bb5b.js → ionic-global-96da1b2e.js} +2 -1
- package/dist/cjs/ionic.cjs.js +3 -3
- package/dist/cjs/{ios.transition-a4f35c55.js → ios.transition-2dae3b92.js} +3 -3
- package/dist/cjs/loader.cjs.js +3 -3
- package/dist/cjs/{md.transition-cdf904e6.js → md.transition-ea3260a7.js} +3 -3
- package/dist/cjs/{overlays-86695cf1.js → overlays-3880b5b5.js} +3 -3
- package/dist/cjs/{status-tap-1a2485c1.js → status-tap-fb807fad.js} +2 -3
- package/dist/collection/components/checkbox/checkbox.js +4 -23
- package/dist/collection/components/modal/animations/ios.enter.js +4 -50
- package/dist/collection/components/modal/animations/ios.leave.js +2 -24
- package/dist/collection/components/modal/animations/md.enter.js +5 -52
- package/dist/collection/components/modal/animations/md.leave.js +3 -26
- package/dist/collection/components/modal/animations/sheet.js +2 -11
- package/dist/collection/components/modal/gestures/sheet.js +10 -79
- package/dist/collection/components/modal/modal.ios.css +0 -16
- package/dist/collection/components/modal/modal.js +7 -32
- package/dist/collection/components/modal/modal.md.css +0 -6
- package/dist/collection/components/select/select.js +13 -59
- package/dist/collection/components/toggle/toggle.js +4 -23
- package/dist/collection/components/toolbar/toolbar.js +2 -6
- package/dist/collection/utils/logging/index.js +3 -10
- package/dist/collection/utils/platform.js +2 -1
- package/dist/collection/utils/test/platform.utils.js +1 -1
- package/dist/docs.json +2 -115
- package/dist/esm/{app-globals-5dbb61a5.js → app-globals-c10a1137.js} +1 -1
- package/dist/esm/{data-b3284b5e.js → data-ae11fd43.js} +1 -1
- package/dist/esm/{hardware-back-button-06ef3c3e.js → hardware-back-button-44195e92.js} +1 -1
- package/dist/esm/{index-dd0f7395.js → index-33f7e3ff.js} +1 -1
- package/dist/esm/{index-6ad967f3.js → index-9b0d46f4.js} +3 -11
- package/dist/esm/{index-6a5baab0.js → index-b019fc18.js} +4 -4
- package/dist/esm/{index-7105cd59.js → index-e1e9a0d3.js} +3 -3
- package/dist/esm/index.js +8 -8
- package/dist/esm/{input-shims-dff819a9.js → input-shims-0e65111b.js} +2 -4
- package/dist/esm/{input.utils-2f1029cf.js → input.utils-1ad8dafc.js} +1 -1
- package/dist/esm/ion-accordion_2.entry.js +2 -2
- package/dist/esm/ion-action-sheet.entry.js +4 -4
- package/dist/esm/ion-alert.entry.js +4 -4
- package/dist/esm/ion-app_8.entry.js +10 -10
- package/dist/esm/ion-avatar_3.entry.js +1 -1
- package/dist/esm/ion-back-button.entry.js +1 -1
- package/dist/esm/ion-backdrop.entry.js +1 -1
- package/dist/esm/ion-breadcrumb_2.entry.js +1 -1
- package/dist/esm/ion-button_2.entry.js +2 -2
- package/dist/esm/ion-card_5.entry.js +1 -1
- package/dist/esm/ion-checkbox.entry.js +5 -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 +3 -3
- package/dist/esm/ion-datetime_3.entry.js +5 -5
- package/dist/esm/ion-fab_3.entry.js +1 -1
- package/dist/esm/ion-img.entry.js +1 -1
- package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-input.entry.js +3 -3
- package/dist/esm/ion-item-option_3.entry.js +3 -3
- package/dist/esm/ion-item_8.entry.js +1 -1
- package/dist/esm/ion-loading.entry.js +4 -4
- package/dist/esm/ion-menu_3.entry.js +5 -5
- package/dist/esm/ion-modal.entry.js +41 -264
- package/dist/esm/ion-nav_2.entry.js +3 -3
- package/dist/esm/ion-picker-column-option.entry.js +1 -1
- package/dist/esm/ion-picker-column.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +5 -5
- package/dist/esm/ion-progress-bar.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +1 -1
- package/dist/esm/ion-range.entry.js +3 -3
- package/dist/esm/ion-refresher_2.entry.js +3 -3
- 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 +1 -1
- package/dist/esm/ion-searchbar.entry.js +1 -1
- package/dist/esm/ion-segment_2.entry.js +1 -1
- package/dist/esm/ion-select-modal.entry.js +4 -4
- package/dist/esm/ion-select_3.entry.js +18 -46
- 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 +1 -1
- package/dist/esm/ion-text.entry.js +1 -1
- package/dist/esm/ion-textarea.entry.js +3 -3
- package/dist/esm/ion-toast.entry.js +4 -4
- package/dist/esm/ion-toggle.entry.js +5 -6
- package/dist/esm/{ionic-global-c81d82ab.js → ionic-global-bf78a847.js} +2 -1
- package/dist/esm/ionic.js +3 -3
- package/dist/esm/{ios.transition-314468a2.js → ios.transition-b7103952.js} +3 -3
- package/dist/esm/loader.js +3 -3
- package/dist/esm/{md.transition-a560e0e2.js → md.transition-e4034e0a.js} +3 -3
- package/dist/esm/{overlays-9a81f230.js → overlays-aea27b63.js} +3 -3
- package/dist/esm/{status-tap-d07dbc82.js → status-tap-163e8128.js} +2 -3
- package/dist/esm-es5/app-globals-c10a1137.js +4 -0
- package/dist/esm-es5/{data-b3284b5e.js → data-ae11fd43.js} +1 -1
- package/dist/esm-es5/{hardware-back-button-06ef3c3e.js → hardware-back-button-44195e92.js} +1 -1
- package/dist/esm-es5/{index-dd0f7395.js → index-33f7e3ff.js} +1 -1
- package/dist/esm-es5/index-9b0d46f4.js +4 -0
- package/dist/esm-es5/{index-6a5baab0.js → index-b019fc18.js} +1 -1
- package/dist/esm-es5/{index-7105cd59.js → index-e1e9a0d3.js} +1 -1
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/input-shims-0e65111b.js +4 -0
- package/dist/esm-es5/{input.utils-2f1029cf.js → input.utils-1ad8dafc.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-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-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-c81d82ab.js → ionic-global-bf78a847.js} +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/{ios.transition-314468a2.js → ios.transition-b7103952.js} +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/esm-es5/{md.transition-a560e0e2.js → md.transition-e4034e0a.js} +1 -1
- package/dist/esm-es5/{overlays-9a81f230.js → overlays-aea27b63.js} +1 -1
- package/dist/esm-es5/status-tap-163e8128.js +4 -0
- package/dist/html.html-data.json +0 -16
- 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-5b932840.entry.js → p-026517fb.entry.js} +1 -1
- package/dist/ionic/{p-e8f34871.entry.js → p-035c0885.entry.js} +1 -1
- package/dist/ionic/p-0440660b.js +4 -0
- package/dist/ionic/p-06fee233.js +4 -0
- package/dist/ionic/p-075a94bd.js +4 -0
- package/dist/ionic/{p-c935cfc9.js → p-0a499487.js} +1 -1
- package/dist/ionic/{p-484d855b.system.entry.js → p-0d0a6fb9.system.entry.js} +2 -2
- package/dist/ionic/{p-d7bb5325.entry.js → p-0dc23518.entry.js} +1 -1
- package/dist/ionic/p-0ee3b5a2.system.js +4 -0
- package/dist/ionic/{p-155c2bb0.entry.js → p-13052792.entry.js} +1 -1
- package/dist/ionic/p-135e5731.js +4 -0
- package/dist/ionic/{p-84d08aae.system.entry.js → p-13892787.system.entry.js} +1 -1
- package/dist/ionic/{p-92365bc1.system.entry.js → p-1543d6b2.system.entry.js} +1 -1
- package/dist/ionic/{p-f301a694.system.entry.js → p-16f1ba65.system.entry.js} +1 -1
- package/dist/ionic/{p-578efda4.system.js → p-1a790eef.system.js} +2 -2
- package/dist/ionic/{p-63c09585.system.entry.js → p-1c2f74e4.system.entry.js} +1 -1
- package/dist/ionic/{p-c32644d7.entry.js → p-200dfb8f.entry.js} +1 -1
- package/dist/ionic/{p-65346408.system.entry.js → p-22e4210e.system.entry.js} +1 -1
- package/dist/ionic/{p-fca17935.entry.js → p-288a2cff.entry.js} +1 -1
- package/dist/ionic/{p-10327ad2.system.entry.js → p-28cb707b.system.entry.js} +1 -1
- package/dist/ionic/{p-bc616455.entry.js → p-2c9abc61.entry.js} +1 -1
- package/dist/ionic/p-30ec5574.entry.js +4 -0
- package/dist/ionic/p-3667bc71.system.js +4 -0
- package/dist/ionic/{p-a9e24ae2.system.entry.js → p-3c6d2c1e.system.entry.js} +1 -1
- package/dist/ionic/p-3c7371c4.system.entry.js +4 -0
- package/dist/ionic/{p-9b3bb24e.entry.js → p-406f9aa1.entry.js} +1 -1
- package/dist/ionic/{p-da8ef548.system.entry.js → p-42585688.system.entry.js} +1 -1
- package/dist/ionic/{p-39dd4f62.js → p-42808996.js} +1 -1
- package/dist/ionic/{p-afecb188.entry.js → p-42a9bb35.entry.js} +1 -1
- package/dist/ionic/{p-f3102647.system.entry.js → p-478dfa8c.system.entry.js} +1 -1
- package/dist/ionic/{p-346b2baf.js → p-47e6c342.js} +1 -1
- package/dist/ionic/{p-af744710.system.entry.js → p-4a465405.system.entry.js} +2 -2
- package/dist/ionic/{p-f89cf011.system.entry.js → p-4c9ccc7f.system.entry.js} +1 -1
- package/dist/ionic/p-4e8946f7.js +4 -0
- package/dist/ionic/{p-2abae1cc.system.entry.js → p-4eed0eb2.system.entry.js} +1 -1
- package/dist/ionic/{p-9962f63f.entry.js → p-4f2f4e3b.entry.js} +1 -1
- package/dist/ionic/{p-d821466d.system.entry.js → p-50c24ade.system.entry.js} +1 -1
- package/dist/ionic/p-51f13ac7.entry.js +4 -0
- package/dist/ionic/{p-95775830.entry.js → p-56a8aa85.entry.js} +1 -1
- package/dist/ionic/{p-f56752be.system.entry.js → p-5976e3b7.system.entry.js} +1 -1
- package/dist/ionic/{p-f78af648.system.entry.js → p-5a8efe64.system.entry.js} +1 -1
- package/dist/ionic/{p-5882bffa.system.entry.js → p-5b03d498.system.entry.js} +1 -1
- package/dist/ionic/{p-36c448fe.entry.js → p-5b867a40.entry.js} +1 -1
- package/dist/ionic/{p-5fe8b767.entry.js → p-5bc12439.entry.js} +1 -1
- package/dist/ionic/{p-70af0afb.entry.js → p-60f1b2fa.entry.js} +1 -1
- package/dist/ionic/p-6167f80e.entry.js +4 -0
- package/dist/ionic/p-627c1f42.entry.js +4 -0
- package/dist/ionic/{p-d99e8644.system.js → p-647b0625.system.js} +1 -1
- package/dist/ionic/{p-02e23f26.entry.js → p-656516a2.entry.js} +1 -1
- package/dist/ionic/p-68dc53a5.js +4 -0
- package/dist/ionic/p-699c97a3.entry.js +4 -0
- package/dist/ionic/{p-7b98cebe.entry.js → p-6b1f082e.entry.js} +1 -1
- package/dist/ionic/p-6bc9998f.entry.js +4 -0
- package/dist/ionic/{p-ecceeb90.js → p-6f3d8334.js} +1 -1
- package/dist/ionic/{p-76446a85.entry.js → p-703d60a2.entry.js} +1 -1
- package/dist/ionic/{p-fca6ef5f.system.entry.js → p-712b57f9.system.entry.js} +1 -1
- package/dist/ionic/{p-955c3eb8.entry.js → p-72b65035.entry.js} +1 -1
- package/dist/ionic/{p-acc8399c.system.entry.js → p-75a0fffe.system.entry.js} +2 -2
- package/dist/ionic/{p-e32557bb.system.entry.js → p-77b1bb00.system.entry.js} +1 -1
- package/dist/ionic/{p-dc146a2a.system.entry.js → p-808c9efc.system.entry.js} +1 -1
- package/dist/ionic/{p-eeb5cb45.system.entry.js → p-8154947f.system.entry.js} +1 -1
- package/dist/ionic/{p-8cfba7e9.system.entry.js → p-830f1a37.system.entry.js} +1 -1
- package/dist/ionic/{p-0bfffa34.system.entry.js → p-842bb3c8.system.entry.js} +1 -1
- package/dist/ionic/{p-41780810.entry.js → p-85632b54.entry.js} +1 -1
- package/dist/ionic/{p-62af944c.entry.js → p-85b1ffae.entry.js} +1 -1
- package/dist/ionic/{p-af452fa4.system.js → p-881d9e52.system.js} +1 -1
- package/dist/ionic/{p-3c8e5c23.system.js → p-8911101b.system.js} +1 -1
- package/dist/ionic/{p-990630ca.js → p-8db44ad3.js} +1 -1
- package/dist/ionic/{p-77e7b7b6.system.entry.js → p-9065e1ed.system.entry.js} +1 -1
- package/dist/ionic/{p-2ef3c7ee.system.entry.js → p-92e4df0c.system.entry.js} +1 -1
- package/dist/ionic/{p-655723eb.system.entry.js → p-9393bfbe.system.entry.js} +1 -1
- package/dist/ionic/{p-a584c79d.system.entry.js → p-944d66b5.system.entry.js} +1 -1
- package/dist/ionic/{p-acb30a5c.system.js → p-97acff20.system.js} +1 -1
- package/dist/ionic/{p-97a65908.entry.js → p-98c08d09.entry.js} +1 -1
- package/dist/ionic/{p-5fce0c0b.system.entry.js → p-9c7efe25.system.entry.js} +1 -1
- package/dist/ionic/{p-d1172fe3.system.entry.js → p-9c82a07c.system.entry.js} +1 -1
- package/dist/ionic/{p-93e3654c.system.entry.js → p-9ce56f65.system.entry.js} +1 -1
- package/dist/ionic/{p-bdad26e3.entry.js → p-9d4a8059.entry.js} +1 -1
- package/dist/ionic/{p-a5b31c0f.entry.js → p-9fe2050a.entry.js} +1 -1
- package/dist/ionic/{p-2515cb4d.system.entry.js → p-a197ff3b.system.entry.js} +1 -1
- package/dist/ionic/{p-9de5c787.entry.js → p-a33837c9.entry.js} +1 -1
- package/dist/ionic/{p-e5849f8d.entry.js → p-a3705e10.entry.js} +1 -1
- package/dist/ionic/{p-2507278c.system.entry.js → p-a873feda.system.entry.js} +1 -1
- package/dist/ionic/{p-73897169.system.js → p-aa63b365.system.js} +1 -1
- package/dist/ionic/{p-fec13c57.entry.js → p-acc78e36.entry.js} +1 -1
- package/dist/ionic/{p-c8d645b3.entry.js → p-b5639a4f.entry.js} +1 -1
- package/dist/ionic/{p-037fc3f3.entry.js → p-b609d03b.entry.js} +1 -1
- package/dist/ionic/{p-70ccc275.system.entry.js → p-b637aa3f.system.entry.js} +1 -1
- package/dist/ionic/{p-bb2a6761.entry.js → p-b7d2ba68.entry.js} +1 -1
- package/dist/ionic/{p-80c6d619.entry.js → p-bed40aa8.entry.js} +1 -1
- package/dist/ionic/{p-155f4d90.entry.js → p-c15a77e2.entry.js} +1 -1
- package/dist/ionic/{p-6d32975a.entry.js → p-c2583512.entry.js} +1 -1
- package/dist/ionic/{p-efbf5af5.system.entry.js → p-c3f4ea6c.system.entry.js} +1 -1
- package/dist/ionic/{p-265939f0.entry.js → p-c3f5dcf9.entry.js} +1 -1
- package/dist/ionic/p-c42a4dad.system.entry.js +4 -0
- package/dist/ionic/{p-33a8a71b.entry.js → p-c66604e4.entry.js} +1 -1
- package/dist/ionic/{p-058e61eb.system.js → p-c6ff3239.system.js} +1 -1
- package/dist/ionic/{p-4d413973.system.entry.js → p-ca908a50.system.entry.js} +1 -1
- package/dist/ionic/{p-fbf86e62.system.js → p-cc964e4f.system.js} +1 -1
- package/dist/ionic/{p-5010643d.system.entry.js → p-d0a7f584.system.entry.js} +1 -1
- package/dist/ionic/{p-7ae680ba.system.entry.js → p-d17f0dca.system.entry.js} +1 -1
- package/dist/ionic/{p-7458862e.system.entry.js → p-d4896d36.system.entry.js} +1 -1
- package/dist/ionic/{p-1a5bc5f7.js → p-d60342e3.js} +1 -1
- package/dist/ionic/{p-ed75fcfb.system.entry.js → p-d7fef52e.system.entry.js} +1 -1
- package/dist/ionic/{p-a69b9fc5.system.js → p-d86d7845.system.js} +1 -1
- package/dist/ionic/{p-dd0c9350.system.entry.js → p-dcc9aaf1.system.entry.js} +1 -1
- package/dist/ionic/{p-6190d0d6.entry.js → p-dd0cad9c.entry.js} +1 -1
- package/dist/ionic/{p-56da53ad.system.entry.js → p-ddc058a7.system.entry.js} +1 -1
- package/dist/ionic/{p-d743e981.js → p-e25cd3c7.js} +1 -1
- package/dist/ionic/{p-df862603.entry.js → p-e3357909.entry.js} +1 -1
- package/dist/ionic/{p-179bf9d1.system.entry.js → p-e78bff37.system.entry.js} +1 -1
- package/dist/ionic/{p-18e101b7.system.entry.js → p-ea7c658c.system.entry.js} +2 -2
- package/dist/ionic/{p-9f3008d4.system.js → p-eb4ac14d.system.js} +1 -1
- package/dist/ionic/{p-4d3a5f86.js → p-eb599bcb.js} +1 -1
- package/dist/ionic/{p-72ec9a26.entry.js → p-eb6f173b.entry.js} +1 -1
- package/dist/ionic/{p-89bf08c7.entry.js → p-ebd0a280.entry.js} +1 -1
- package/dist/ionic/{p-31a6efce.system.entry.js → p-ef144104.system.entry.js} +1 -1
- package/dist/ionic/{p-2cbe5399.entry.js → p-f00ba947.entry.js} +1 -1
- package/dist/ionic/{p-8e407469.system.js → p-f1d1c614.system.js} +1 -1
- package/dist/ionic/p-f4f255cb.system.js +4 -0
- package/dist/ionic/{p-343b6b1d.system.js → p-f687573e.system.js} +1 -1
- package/dist/ionic/{p-f5d6624d.entry.js → p-faa5e2b9.entry.js} +1 -1
- package/dist/ionic/{p-8818edd8.entry.js → p-fd988d29.entry.js} +1 -1
- package/dist/ionic/p-ff4b7e40.system.js +4 -0
- package/dist/types/components/checkbox/checkbox.d.ts +0 -6
- package/dist/types/components/modal/animations/sheet.d.ts +0 -1
- package/dist/types/components/modal/gestures/sheet.d.ts +1 -1
- package/dist/types/components/modal/modal-interface.d.ts +0 -1
- package/dist/types/components/modal/modal.d.ts +0 -11
- package/dist/types/components/select/select.d.ts +0 -6
- package/dist/types/components/toggle/toggle.d.ts +0 -6
- package/dist/types/components/toolbar/toolbar.d.ts +0 -4
- package/dist/types/components.d.ts +0 -32
- package/dist/types/utils/config.d.ts +0 -9
- package/dist/types/utils/logging/index.d.ts +1 -13
- package/dist/types/utils/test/platform.utils.d.ts +1 -1
- package/hydrate/index.js +63 -329
- package/hydrate/index.mjs +63 -329
- package/package.json +2 -2
- package/dist/esm-es5/app-globals-5dbb61a5.js +0 -4
- package/dist/esm-es5/index-6ad967f3.js +0 -4
- package/dist/esm-es5/input-shims-dff819a9.js +0 -4
- package/dist/esm-es5/status-tap-d07dbc82.js +0 -4
- package/dist/ionic/p-0574e87e.js +0 -4
- package/dist/ionic/p-16bfb979.system.entry.js +0 -4
- package/dist/ionic/p-21227121.js +0 -4
- package/dist/ionic/p-22149a4f.js +0 -4
- package/dist/ionic/p-322c5fb4.system.js +0 -4
- package/dist/ionic/p-34479cfb.entry.js +0 -4
- package/dist/ionic/p-3e99e3e0.entry.js +0 -4
- package/dist/ionic/p-42c9deb1.entry.js +0 -4
- package/dist/ionic/p-49a0e74c.entry.js +0 -4
- package/dist/ionic/p-52245809.js +0 -4
- package/dist/ionic/p-5c9324c6.js +0 -4
- package/dist/ionic/p-67222c16.system.js +0 -4
- package/dist/ionic/p-712fedc9.entry.js +0 -4
- package/dist/ionic/p-860eb968.system.js +0 -4
- package/dist/ionic/p-a18470c6.entry.js +0 -4
- package/dist/ionic/p-c3802319.system.js +0 -4
- package/dist/ionic/p-e8d56122.js +0 -4
- package/dist/ionic/p-f2613334.system.entry.js +0 -4
|
@@ -14,7 +14,7 @@ const createLeaveAnimation = () => {
|
|
|
14
14
|
* iOS Modal Leave Animation
|
|
15
15
|
*/
|
|
16
16
|
export const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
17
|
-
const { presentingEl, currentBreakpoint
|
|
17
|
+
const { presentingEl, currentBreakpoint } = opts;
|
|
18
18
|
const root = getElementRoot(baseEl);
|
|
19
19
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
20
20
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -23,29 +23,7 @@ export const iosLeaveAnimation = (baseEl, opts, duration = 500) => {
|
|
|
23
23
|
.addElement(baseEl)
|
|
24
24
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
25
25
|
.duration(duration)
|
|
26
|
-
.addAnimation(wrapperAnimation)
|
|
27
|
-
.beforeAddWrite(() => {
|
|
28
|
-
if (expandToScroll) {
|
|
29
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
30
|
-
return;
|
|
31
|
-
}
|
|
32
|
-
/**
|
|
33
|
-
* If expandToScroll is disabled, we need to swap
|
|
34
|
-
* the visibility to the original, so the footer
|
|
35
|
-
* dismisses with the modal and doesn't stay
|
|
36
|
-
* until the modal is removed from the DOM.
|
|
37
|
-
*/
|
|
38
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
39
|
-
if (ionFooter) {
|
|
40
|
-
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
41
|
-
ionFooter.style.removeProperty('display');
|
|
42
|
-
ionFooter.removeAttribute('aria-hidden');
|
|
43
|
-
clonedFooter.style.setProperty('display', 'none');
|
|
44
|
-
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
45
|
-
const page = baseEl.querySelector('.ion-page');
|
|
46
|
-
page.style.removeProperty('padding-bottom');
|
|
47
|
-
}
|
|
48
|
-
});
|
|
26
|
+
.addAnimation(wrapperAnimation);
|
|
49
27
|
if (presentingEl) {
|
|
50
28
|
const isMobile = window.innerWidth < 768;
|
|
51
29
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -15,67 +15,20 @@ const createEnterAnimation = () => {
|
|
|
15
15
|
{ offset: 0, opacity: 0.01, transform: 'translateY(40px)' },
|
|
16
16
|
{ offset: 1, opacity: 1, transform: `translateY(0px)` },
|
|
17
17
|
]);
|
|
18
|
-
return { backdropAnimation, wrapperAnimation
|
|
18
|
+
return { backdropAnimation, wrapperAnimation };
|
|
19
19
|
};
|
|
20
20
|
/**
|
|
21
21
|
* Md Modal Enter Animation
|
|
22
22
|
*/
|
|
23
23
|
export const mdEnterAnimation = (baseEl, opts) => {
|
|
24
|
-
const { currentBreakpoint
|
|
24
|
+
const { currentBreakpoint } = opts;
|
|
25
25
|
const root = getElementRoot(baseEl);
|
|
26
|
-
const { wrapperAnimation, backdropAnimation
|
|
26
|
+
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetEnterAnimation(opts) : createEnterAnimation();
|
|
27
27
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
28
28
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
29
|
-
|
|
30
|
-
// all the breakpoints.
|
|
31
|
-
expandToScroll && (contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.addElement(baseEl.querySelector('.ion-page')));
|
|
32
|
-
const baseAnimation = createAnimation()
|
|
29
|
+
return createAnimation()
|
|
33
30
|
.addElement(baseEl)
|
|
34
31
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
35
32
|
.duration(280)
|
|
36
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
37
|
-
.beforeAddWrite(() => {
|
|
38
|
-
if (expandToScroll) {
|
|
39
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
40
|
-
return;
|
|
41
|
-
}
|
|
42
|
-
/**
|
|
43
|
-
* There are some browsers that causes flickering when
|
|
44
|
-
* dragging the content when scroll is enabled at every
|
|
45
|
-
* breakpoint. This is due to the wrapper element being
|
|
46
|
-
* transformed off the screen and having a snap animation.
|
|
47
|
-
*
|
|
48
|
-
* A workaround is to clone the footer element and append
|
|
49
|
-
* it outside of the wrapper element. This way, the footer
|
|
50
|
-
* is still visible and the drag can be done without
|
|
51
|
-
* flickering. The original footer is hidden until the modal
|
|
52
|
-
* is dismissed. This maintains the animation of the footer
|
|
53
|
-
* when the modal is dismissed.
|
|
54
|
-
*
|
|
55
|
-
* The workaround needs to be done before the animation starts
|
|
56
|
-
* so there are no flickering issues.
|
|
57
|
-
*/
|
|
58
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
59
|
-
/**
|
|
60
|
-
* This check is needed to prevent more than one footer
|
|
61
|
-
* from being appended to the shadow root.
|
|
62
|
-
* Otherwise, iOS and MD enter animations would append
|
|
63
|
-
* the footer twice.
|
|
64
|
-
*/
|
|
65
|
-
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
66
|
-
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
67
|
-
const footerHeight = ionFooter.clientHeight;
|
|
68
|
-
const clonedFooter = ionFooter.cloneNode(true);
|
|
69
|
-
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
70
|
-
ionFooter.style.setProperty('display', 'none');
|
|
71
|
-
ionFooter.setAttribute('aria-hidden', 'true');
|
|
72
|
-
// Padding is added to prevent some content from being hidden.
|
|
73
|
-
const page = baseEl.querySelector('.ion-page');
|
|
74
|
-
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
75
|
-
}
|
|
76
|
-
});
|
|
77
|
-
if (contentAnimation) {
|
|
78
|
-
baseAnimation.addAnimation(contentAnimation);
|
|
79
|
-
}
|
|
80
|
-
return baseAnimation;
|
|
33
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
81
34
|
};
|
|
@@ -16,36 +16,13 @@ const createLeaveAnimation = () => {
|
|
|
16
16
|
* Md Modal Leave Animation
|
|
17
17
|
*/
|
|
18
18
|
export const mdLeaveAnimation = (baseEl, opts) => {
|
|
19
|
-
const { currentBreakpoint
|
|
19
|
+
const { currentBreakpoint } = opts;
|
|
20
20
|
const root = getElementRoot(baseEl);
|
|
21
21
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
22
22
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
23
23
|
wrapperAnimation.addElement(root.querySelector('.modal-wrapper'));
|
|
24
|
-
|
|
24
|
+
return createAnimation()
|
|
25
25
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
26
26
|
.duration(200)
|
|
27
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
28
|
-
.beforeAddWrite(() => {
|
|
29
|
-
if (expandToScroll) {
|
|
30
|
-
// Scroll can only be done when the modal is fully expanded.
|
|
31
|
-
return;
|
|
32
|
-
}
|
|
33
|
-
/**
|
|
34
|
-
* If expandToScroll is disabled, we need to swap
|
|
35
|
-
* the visibility to the original, so the footer
|
|
36
|
-
* dismisses with the modal and doesn't stay
|
|
37
|
-
* until the modal is removed from the DOM.
|
|
38
|
-
*/
|
|
39
|
-
const ionFooter = baseEl.querySelector('ion-footer');
|
|
40
|
-
if (ionFooter) {
|
|
41
|
-
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
42
|
-
ionFooter.style.removeProperty('display');
|
|
43
|
-
ionFooter.removeAttribute('aria-hidden');
|
|
44
|
-
clonedFooter.style.setProperty('display', 'none');
|
|
45
|
-
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
46
|
-
const page = baseEl.querySelector('.ion-page');
|
|
47
|
-
page.style.removeProperty('padding-bottom');
|
|
48
|
-
}
|
|
49
|
-
});
|
|
50
|
-
return baseAnimation;
|
|
27
|
+
.addAnimation([backdropAnimation, wrapperAnimation]);
|
|
51
28
|
};
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { createAnimation } from "../../../utils/animation/animation";
|
|
5
5
|
import { getBackdropValueForSheet } from "../utils";
|
|
6
6
|
export const createSheetEnterAnimation = (opts) => {
|
|
7
|
-
const { currentBreakpoint, backdropBreakpoint
|
|
7
|
+
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
8
8
|
/**
|
|
9
9
|
* If the backdropBreakpoint is undefined, then the backdrop
|
|
10
10
|
* should always fade in. If the backdropBreakpoint came before the
|
|
@@ -24,16 +24,7 @@ export const createSheetEnterAnimation = (opts) => {
|
|
|
24
24
|
{ offset: 0, opacity: 1, transform: 'translateY(100%)' },
|
|
25
25
|
{ offset: 1, opacity: 1, transform: `translateY(${100 - currentBreakpoint * 100}%)` },
|
|
26
26
|
]);
|
|
27
|
-
|
|
28
|
-
* This allows the content to be scrollable at any breakpoint.
|
|
29
|
-
*/
|
|
30
|
-
const contentAnimation = !expandToScroll
|
|
31
|
-
? createAnimation('contentAnimation').keyframes([
|
|
32
|
-
{ offset: 0, opacity: 1, maxHeight: `${(1 - currentBreakpoint) * 100}%` },
|
|
33
|
-
{ offset: 1, opacity: 1, maxHeight: `${currentBreakpoint * 100}%` },
|
|
34
|
-
])
|
|
35
|
-
: undefined;
|
|
36
|
-
return { wrapperAnimation, backdropAnimation, contentAnimation };
|
|
27
|
+
return { wrapperAnimation, backdropAnimation };
|
|
37
28
|
};
|
|
38
29
|
export const createSheetLeaveAnimation = (opts) => {
|
|
39
30
|
const { currentBreakpoint, backdropBreakpoint } = opts;
|
|
@@ -7,7 +7,7 @@ import { clamp, raf, getElementRoot } from "../../../utils/helpers";
|
|
|
7
7
|
import { FOCUS_TRAP_DISABLE_CLASS } from "../../../utils/overlays";
|
|
8
8
|
import { getBackdropValueForSheet } from "../utils";
|
|
9
9
|
import { calculateSpringStep, handleCanDismiss } from "./utils";
|
|
10
|
-
export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [],
|
|
10
|
+
export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, animation, breakpoints = [], getCurrentBreakpoint, onDismiss, onBreakpointChange) => {
|
|
11
11
|
// Defaults for the sheet swipe animation
|
|
12
12
|
const defaultBackdrop = [
|
|
13
13
|
{ offset: 0, opacity: 'var(--backdrop-opacity)' },
|
|
@@ -24,10 +24,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
24
24
|
{ offset: 1, transform: 'translateY(100%)' },
|
|
25
25
|
],
|
|
26
26
|
BACKDROP_KEYFRAMES: backdropBreakpoint !== 0 ? customBackdrop : defaultBackdrop,
|
|
27
|
-
CONTENT_KEYFRAMES: [
|
|
28
|
-
{ offset: 0, maxHeight: '100%' },
|
|
29
|
-
{ offset: 1, maxHeight: '0%' },
|
|
30
|
-
],
|
|
31
27
|
};
|
|
32
28
|
const contentEl = baseEl.querySelector('ion-content');
|
|
33
29
|
const height = wrapperEl.clientHeight;
|
|
@@ -35,11 +31,10 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
35
31
|
let offset = 0;
|
|
36
32
|
let canDismissBlocksGesture = false;
|
|
37
33
|
const canDismissMaxStep = 0.95;
|
|
38
|
-
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
39
|
-
const minBreakpoint = breakpoints[0];
|
|
40
34
|
const wrapperAnimation = animation.childAnimations.find((ani) => ani.id === 'wrapperAnimation');
|
|
41
35
|
const backdropAnimation = animation.childAnimations.find((ani) => ani.id === 'backdropAnimation');
|
|
42
|
-
const
|
|
36
|
+
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
37
|
+
const minBreakpoint = breakpoints[0];
|
|
43
38
|
const enableBackdrop = () => {
|
|
44
39
|
baseEl.style.setProperty('pointer-events', 'auto');
|
|
45
40
|
backdropEl.style.setProperty('pointer-events', 'auto');
|
|
@@ -62,31 +57,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
62
57
|
*/
|
|
63
58
|
baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
|
|
64
59
|
};
|
|
65
|
-
/**
|
|
66
|
-
* Toggles the visible modal footer when `expandToScroll` is disabled.
|
|
67
|
-
* @param footer The footer to show.
|
|
68
|
-
*/
|
|
69
|
-
const swapFooterVisibility = (footer) => {
|
|
70
|
-
const originalFooter = baseEl.querySelector('ion-footer');
|
|
71
|
-
if (!originalFooter) {
|
|
72
|
-
return;
|
|
73
|
-
}
|
|
74
|
-
const clonedFooter = wrapperEl.nextElementSibling;
|
|
75
|
-
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
76
|
-
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
77
|
-
footerToShow.style.removeProperty('display');
|
|
78
|
-
footerToShow.removeAttribute('aria-hidden');
|
|
79
|
-
const page = baseEl.querySelector('.ion-page');
|
|
80
|
-
if (footer === 'original') {
|
|
81
|
-
page.style.removeProperty('padding-bottom');
|
|
82
|
-
}
|
|
83
|
-
else {
|
|
84
|
-
const pagePadding = footerToShow.clientHeight;
|
|
85
|
-
page.style.setProperty('padding-bottom', `${pagePadding}px`);
|
|
86
|
-
}
|
|
87
|
-
footerToHide.style.setProperty('display', 'none');
|
|
88
|
-
footerToHide.setAttribute('aria-hidden', 'true');
|
|
89
|
-
};
|
|
90
60
|
/**
|
|
91
61
|
* After the entering animation completes,
|
|
92
62
|
* we need to set the animation to go from
|
|
@@ -98,7 +68,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
98
68
|
if (wrapperAnimation && backdropAnimation) {
|
|
99
69
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
100
70
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
101
|
-
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
102
71
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
103
72
|
/**
|
|
104
73
|
* If backdrop is not enabled, then content
|
|
@@ -115,7 +84,7 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
115
84
|
disableBackdrop();
|
|
116
85
|
}
|
|
117
86
|
}
|
|
118
|
-
if (contentEl && currentBreakpoint !== maxBreakpoint
|
|
87
|
+
if (contentEl && currentBreakpoint !== maxBreakpoint) {
|
|
119
88
|
contentEl.scrollY = false;
|
|
120
89
|
}
|
|
121
90
|
const canStart = (detail) => {
|
|
@@ -129,13 +98,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
129
98
|
*/
|
|
130
99
|
const contentEl = findClosestIonContent(detail.event.target);
|
|
131
100
|
currentBreakpoint = getCurrentBreakpoint();
|
|
132
|
-
/**
|
|
133
|
-
* If we have expandToScroll disabled, we should not allow the swipe gesture to start
|
|
134
|
-
* if the content is being swiped.
|
|
135
|
-
*/
|
|
136
|
-
if (!expandToScroll && contentEl) {
|
|
137
|
-
return false;
|
|
138
|
-
}
|
|
139
101
|
if (currentBreakpoint === 1 && contentEl) {
|
|
140
102
|
/**
|
|
141
103
|
* The modal should never swipe to close on the content with a refresher.
|
|
@@ -166,15 +128,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
166
128
|
* Remove undefined check
|
|
167
129
|
*/
|
|
168
130
|
canDismissBlocksGesture = baseEl.canDismiss !== undefined && baseEl.canDismiss !== true && minBreakpoint === 0;
|
|
169
|
-
/**
|
|
170
|
-
* If expandToScroll is disabled, we need to swap
|
|
171
|
-
* the footer visibility to the original, so if the modal
|
|
172
|
-
* is dismissed, the footer dismisses with the modal
|
|
173
|
-
* and doesn't stay on the screen after the modal is gone.
|
|
174
|
-
*/
|
|
175
|
-
if (!expandToScroll) {
|
|
176
|
-
swapFooterVisibility('original');
|
|
177
|
-
}
|
|
178
131
|
/**
|
|
179
132
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
180
133
|
* We do not want scrolling to happen at the same time as the gesture.
|
|
@@ -290,19 +243,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
290
243
|
opacity: `calc(var(--backdrop-opacity) * ${getBackdropValueForSheet(snapToBreakpoint, backdropBreakpoint)})`,
|
|
291
244
|
},
|
|
292
245
|
]);
|
|
293
|
-
if (contentAnimation) {
|
|
294
|
-
/**
|
|
295
|
-
* The modal content should scroll at any breakpoint when expandToScroll
|
|
296
|
-
* is disabled. In order to do this, the content needs to be completely
|
|
297
|
-
* viewable so scrolling can access everything. Otherwise, the default
|
|
298
|
-
* behavior would show the content off the screen and only allow
|
|
299
|
-
* scrolling when the sheet is fully expanded.
|
|
300
|
-
*/
|
|
301
|
-
contentAnimation.keyframes([
|
|
302
|
-
{ offset: 0, maxHeight: `${(1 - breakpointOffset) * 100}%` },
|
|
303
|
-
{ offset: 1, maxHeight: `${snapToBreakpoint * 100}%` },
|
|
304
|
-
]);
|
|
305
|
-
}
|
|
306
246
|
animation.progressStep(0);
|
|
307
247
|
}
|
|
308
248
|
/**
|
|
@@ -310,14 +250,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
310
250
|
* snapping animation completes.
|
|
311
251
|
*/
|
|
312
252
|
gesture.enable(false);
|
|
313
|
-
/**
|
|
314
|
-
* If expandToScroll is disabled, we need to swap
|
|
315
|
-
* the footer visibility to the cloned one so the footer
|
|
316
|
-
* doesn't flicker when the sheet's height is animated.
|
|
317
|
-
*/
|
|
318
|
-
if (!expandToScroll && shouldRemainOpen) {
|
|
319
|
-
swapFooterVisibility('cloned');
|
|
320
|
-
}
|
|
321
253
|
if (shouldPreventDismiss) {
|
|
322
254
|
handleCanDismiss(baseEl, animation);
|
|
323
255
|
}
|
|
@@ -325,13 +257,13 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
325
257
|
onDismiss();
|
|
326
258
|
}
|
|
327
259
|
/**
|
|
328
|
-
*
|
|
329
|
-
*
|
|
330
|
-
*
|
|
331
|
-
*
|
|
332
|
-
* released, so we align with that
|
|
260
|
+
* If the sheet is going to be fully expanded then we should enable
|
|
261
|
+
* scrolling immediately. The sheet modal animation takes ~500ms to finish
|
|
262
|
+
* so if we wait until then there is a visible delay for when scrolling is
|
|
263
|
+
* re-enabled. Native iOS allows for scrolling on the sheet modal as soon
|
|
264
|
+
* as the gesture is released, so we align with that.
|
|
333
265
|
*/
|
|
334
|
-
if (contentEl &&
|
|
266
|
+
if (contentEl && snapToBreakpoint === breakpoints[breakpoints.length - 1]) {
|
|
335
267
|
contentEl.scrollY = true;
|
|
336
268
|
}
|
|
337
269
|
return new Promise((resolve) => {
|
|
@@ -349,7 +281,6 @@ export const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpo
|
|
|
349
281
|
raf(() => {
|
|
350
282
|
wrapperAnimation.keyframes([...SheetDefaults.WRAPPER_KEYFRAMES]);
|
|
351
283
|
backdropAnimation.keyframes([...SheetDefaults.BACKDROP_KEYFRAMES]);
|
|
352
|
-
contentAnimation === null || contentAnimation === void 0 ? void 0 : contentAnimation.keyframes([...SheetDefaults.CONTENT_KEYFRAMES]);
|
|
353
284
|
animation.progressStart(true, 1 - snapToBreakpoint);
|
|
354
285
|
currentBreakpoint = snapToBreakpoint;
|
|
355
286
|
onBreakpointChange(currentBreakpoint);
|
|
@@ -201,12 +201,6 @@ 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
|
-
|
|
210
204
|
/**
|
|
211
205
|
* Convert a font size to a dynamic font size.
|
|
212
206
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -331,14 +325,4 @@ ion-backdrop {
|
|
|
331
325
|
border-start-end-radius: var(--border-radius);
|
|
332
326
|
border-end-end-radius: 0;
|
|
333
327
|
border-end-start-radius: 0;
|
|
334
|
-
}
|
|
335
|
-
|
|
336
|
-
/**
|
|
337
|
-
* Sheet modals require an additional padding as mentioned in the
|
|
338
|
-
* `core.scss` file. However, there's a workaround that requires
|
|
339
|
-
* a cloned footer to be added to the modal. This is only necessary
|
|
340
|
-
* because the core styles are not being applied to the cloned footer.
|
|
341
|
-
*/
|
|
342
|
-
:host(.modal-sheet.modal-no-expand-scroll) ion-footer ion-toolbar:first-of-type {
|
|
343
|
-
padding-top: 6px;
|
|
344
328
|
}
|
|
@@ -86,7 +86,6 @@ export class Modal {
|
|
|
86
86
|
this.enterAnimation = undefined;
|
|
87
87
|
this.leaveAnimation = undefined;
|
|
88
88
|
this.breakpoints = undefined;
|
|
89
|
-
this.expandToScroll = true;
|
|
90
89
|
this.initialBreakpoint = undefined;
|
|
91
90
|
this.backdropBreakpoint = 0;
|
|
92
91
|
this.handle = undefined;
|
|
@@ -302,7 +301,6 @@ export class Modal {
|
|
|
302
301
|
presentingEl: presentingElement,
|
|
303
302
|
currentBreakpoint: this.initialBreakpoint,
|
|
304
303
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
305
|
-
expandToScroll: this.expandToScroll,
|
|
306
304
|
});
|
|
307
305
|
/* tslint:disable-next-line */
|
|
308
306
|
if (typeof window !== 'undefined') {
|
|
@@ -353,10 +351,7 @@ export class Modal {
|
|
|
353
351
|
// should be in the DOM and referenced by now, except
|
|
354
352
|
// for the presenting el
|
|
355
353
|
const animationBuilder = this.leaveAnimation || config.get('modalLeave', iosLeaveAnimation);
|
|
356
|
-
const ani = (this.animation = animationBuilder(el, {
|
|
357
|
-
presentingEl: this.presentingElement,
|
|
358
|
-
expandToScroll: this.expandToScroll,
|
|
359
|
-
}));
|
|
354
|
+
const ani = (this.animation = animationBuilder(el, { presentingEl: this.presentingElement }));
|
|
360
355
|
const contentEl = findIonContent(el);
|
|
361
356
|
if (!contentEl) {
|
|
362
357
|
printIonContentErrorMsg(el);
|
|
@@ -401,10 +396,9 @@ export class Modal {
|
|
|
401
396
|
presentingEl: this.presentingElement,
|
|
402
397
|
currentBreakpoint: initialBreakpoint,
|
|
403
398
|
backdropBreakpoint,
|
|
404
|
-
expandToScroll: this.expandToScroll,
|
|
405
399
|
}));
|
|
406
400
|
ani.progressStart(true, 1);
|
|
407
|
-
const { gesture, moveSheetToBreakpoint } = createSheetGesture(this.el, this.backdropEl, wrapperEl, initialBreakpoint, backdropBreakpoint, ani, this.sortedBreakpoints,
|
|
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) => {
|
|
408
402
|
if (this.currentBreakpoint !== breakpoint) {
|
|
409
403
|
this.currentBreakpoint = breakpoint;
|
|
410
404
|
this.ionBreakpointDidChange.emit({ breakpoint });
|
|
@@ -482,7 +476,6 @@ export class Modal {
|
|
|
482
476
|
presentingEl: presentingElement,
|
|
483
477
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
484
478
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
485
|
-
expandToScroll: this.expandToScroll,
|
|
486
479
|
});
|
|
487
480
|
if (dismissed) {
|
|
488
481
|
const { delegate } = this.getDelegate();
|
|
@@ -568,23 +561,23 @@ export class Modal {
|
|
|
568
561
|
return true;
|
|
569
562
|
}
|
|
570
563
|
render() {
|
|
571
|
-
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap
|
|
564
|
+
const { handle, isSheetModal, presentingElement, htmlAttributes, handleBehavior, inheritedAttributes, focusTrap } = this;
|
|
572
565
|
const showHandle = handle !== false && isSheetModal;
|
|
573
566
|
const mode = getIonMode(this);
|
|
574
567
|
const isCardModal = presentingElement !== undefined && mode === 'ios';
|
|
575
568
|
const isHandleCycle = handleBehavior === 'cycle';
|
|
576
|
-
return (h(Host, Object.assign({ key: '
|
|
569
|
+
return (h(Host, Object.assign({ key: 'b4da5111fe4719fa450c39b2d4bd884a302a7924', "no-router": true, tabindex: "-1" }, htmlAttributes, { style: {
|
|
577
570
|
zIndex: `${20000 + this.overlayIndex}`,
|
|
578
|
-
}, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal,
|
|
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: 'c12dbf747e0eb914eaf1331798548ffc7e147763', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && h("div", { key: 'da546ee80c6576b5acc66e959fd5009e0b9a8160', class: "modal-shadow" }), h("div", Object.assign({ key: '306ebe6427440ad5f7ed36d590e562d15a503b75',
|
|
579
572
|
/*
|
|
580
573
|
role and aria-modal must be used on the
|
|
581
574
|
same element. They must also be set inside the
|
|
582
575
|
shadow DOM otherwise ion-button will not be highlighted
|
|
583
576
|
when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
|
|
584
577
|
*/
|
|
585
|
-
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: '
|
|
578
|
+
role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (h("button", { key: 'c5d17e346fe255a7c0cacbbf15c0083f2d09c488', class: "modal-handle",
|
|
586
579
|
// Prevents the handle from receiving keyboard focus when it does not cycle
|
|
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: '
|
|
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: '5cc714170a00b67f3eda0cd1d6f37c1489a99c83' }))));
|
|
588
581
|
}
|
|
589
582
|
static get is() { return "ion-modal"; }
|
|
590
583
|
static get encapsulation() { return "shadow"; }
|
|
@@ -742,24 +735,6 @@ export class Modal {
|
|
|
742
735
|
"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]"
|
|
743
736
|
}
|
|
744
737
|
},
|
|
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
|
-
},
|
|
763
738
|
"initialBreakpoint": {
|
|
764
739
|
"type": "number",
|
|
765
740
|
"mutable": false,
|
|
@@ -201,12 +201,6 @@ 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
|
-
|
|
210
204
|
/**
|
|
211
205
|
* Convert a font size to a dynamic font size.
|
|
212
206
|
* Fonts that participate in Dynamic Type should use
|
|
@@ -91,7 +91,6 @@ export class Select {
|
|
|
91
91
|
this.expandedIcon = undefined;
|
|
92
92
|
this.shape = undefined;
|
|
93
93
|
this.value = undefined;
|
|
94
|
-
this.required = false;
|
|
95
94
|
}
|
|
96
95
|
styleChanged() {
|
|
97
96
|
this.emitStyle();
|
|
@@ -154,8 +153,15 @@ export class Select {
|
|
|
154
153
|
}
|
|
155
154
|
this.isExpanded = true;
|
|
156
155
|
const overlay = (this.overlay = await this.createOverlay(event));
|
|
157
|
-
|
|
158
|
-
|
|
156
|
+
overlay.onDidDismiss().then(() => {
|
|
157
|
+
this.overlay = undefined;
|
|
158
|
+
this.isExpanded = false;
|
|
159
|
+
this.ionDismiss.emit();
|
|
160
|
+
this.setFocus();
|
|
161
|
+
});
|
|
162
|
+
await overlay.present();
|
|
163
|
+
// focus selected option for popovers and modals
|
|
164
|
+
if (this.interface === 'popover' || this.interface === 'modal') {
|
|
159
165
|
const indexOfSelected = this.childOpts.findIndex((o) => o.value === this.value);
|
|
160
166
|
if (indexOfSelected > -1) {
|
|
161
167
|
const selectedItem = overlay.querySelector(`.select-interface-option:nth-child(${indexOfSelected + 1})`);
|
|
@@ -173,7 +179,6 @@ export class Select {
|
|
|
173
179
|
*/
|
|
174
180
|
const interactiveEl = selectedItem.querySelector('ion-radio, ion-checkbox');
|
|
175
181
|
if (interactiveEl) {
|
|
176
|
-
selectedItem.scrollIntoView({ block: 'nearest' });
|
|
177
182
|
// Needs to be called before `focusVisibleElement` to prevent issue with focus event bubbling
|
|
178
183
|
// and removing `ion-focused` style
|
|
179
184
|
interactiveEl.setFocus();
|
|
@@ -197,40 +202,7 @@ export class Select {
|
|
|
197
202
|
focusVisibleElement(firstEnabledOption.closest('ion-item'));
|
|
198
203
|
}
|
|
199
204
|
}
|
|
200
|
-
};
|
|
201
|
-
// For modals and popovers, we can scroll before they're visible
|
|
202
|
-
if (this.interface === 'modal') {
|
|
203
|
-
overlay.addEventListener('ionModalWillPresent', scrollSelectedIntoView, { once: true });
|
|
204
205
|
}
|
|
205
|
-
else if (this.interface === 'popover') {
|
|
206
|
-
overlay.addEventListener('ionPopoverWillPresent', scrollSelectedIntoView, { once: true });
|
|
207
|
-
}
|
|
208
|
-
else {
|
|
209
|
-
/**
|
|
210
|
-
* For alerts and action sheets, we need to wait a frame after willPresent
|
|
211
|
-
* because these overlays don't have their content in the DOM immediately
|
|
212
|
-
* when willPresent fires. By waiting a frame, we ensure the content is
|
|
213
|
-
* rendered and can be properly scrolled into view.
|
|
214
|
-
*/
|
|
215
|
-
const scrollAfterRender = () => {
|
|
216
|
-
requestAnimationFrame(() => {
|
|
217
|
-
scrollSelectedIntoView();
|
|
218
|
-
});
|
|
219
|
-
};
|
|
220
|
-
if (this.interface === 'alert') {
|
|
221
|
-
overlay.addEventListener('ionAlertWillPresent', scrollAfterRender, { once: true });
|
|
222
|
-
}
|
|
223
|
-
else if (this.interface === 'action-sheet') {
|
|
224
|
-
overlay.addEventListener('ionActionSheetWillPresent', scrollAfterRender, { once: true });
|
|
225
|
-
}
|
|
226
|
-
}
|
|
227
|
-
overlay.onDidDismiss().then(() => {
|
|
228
|
-
this.overlay = undefined;
|
|
229
|
-
this.isExpanded = false;
|
|
230
|
-
this.ionDismiss.emit();
|
|
231
|
-
this.setFocus();
|
|
232
|
-
});
|
|
233
|
-
await overlay.present();
|
|
234
206
|
return overlay;
|
|
235
207
|
}
|
|
236
208
|
createOverlay(ev) {
|
|
@@ -656,8 +628,8 @@ export class Select {
|
|
|
656
628
|
return renderedLabel;
|
|
657
629
|
}
|
|
658
630
|
renderListbox() {
|
|
659
|
-
const { disabled, inputId, isExpanded
|
|
660
|
-
return (h("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`,
|
|
631
|
+
const { disabled, inputId, isExpanded } = this;
|
|
632
|
+
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) }));
|
|
661
633
|
}
|
|
662
634
|
render() {
|
|
663
635
|
const { disabled, el, isExpanded, expandedIcon, labelPlacement, justify, placeholder, fill, shape, name, value } = this;
|
|
@@ -688,7 +660,7 @@ export class Select {
|
|
|
688
660
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
689
661
|
*/
|
|
690
662
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || isExpanded || hasStartEndSlots));
|
|
691
|
-
return (h(Host, { key: '
|
|
663
|
+
return (h(Host, { key: '144dfa5c49549a74fe516c65b9b8104a477ac789', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
692
664
|
[mode]: true,
|
|
693
665
|
'in-item': inItem,
|
|
694
666
|
'in-item-color': hostContext('ion-item.ion-color', el),
|
|
@@ -704,7 +676,7 @@ export class Select {
|
|
|
704
676
|
[`select-justify-${justify}`]: justifyEnabled,
|
|
705
677
|
[`select-shape-${shape}`]: shape !== undefined,
|
|
706
678
|
[`select-label-placement-${labelPlacement}`]: true,
|
|
707
|
-
}) }, h("label", { key: '
|
|
679
|
+
}) }, h("label", { key: '0edcfcbac575a9dccc77991531b6980d1caebf42', class: "select-wrapper", id: "select-label" }, this.renderLabelContainer(), h("div", { key: '348151d90cb093f5d21c7d4a834264ac4a312c40', class: "select-wrapper-inner" }, h("slot", { key: '8b7708c7f81217435c58276da0c08bba766d9500', name: "start" }), h("div", { key: '10c520a335da0a0d1cf40f9365597beb244d3b48', class: "native-wrapper", ref: (el) => (this.nativeWrapperEl = el), part: "container" }, this.renderSelectText(), this.renderListbox()), h("slot", { key: '0f15c40a5495e98e29d2a21ba21e0bc6f1c0125a', name: "end" }), !hasFloatingOrStackedLabel && this.renderSelectIcon()), hasFloatingOrStackedLabel && this.renderSelectIcon(), shouldRenderHighlight && h("div", { key: 'c87faad2e5ebf7f9453397d7ede43abd64d21294', class: "select-highlight" }))));
|
|
708
680
|
}
|
|
709
681
|
static get is() { return "ion-select"; }
|
|
710
682
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1070,24 +1042,6 @@ export class Select {
|
|
|
1070
1042
|
},
|
|
1071
1043
|
"attribute": "value",
|
|
1072
1044
|
"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"
|
|
1091
1045
|
}
|
|
1092
1046
|
};
|
|
1093
1047
|
}
|