@ionic/core 8.8.9-dev.11781024903.1e4268e5 → 8.8.9-dev.11781201980.1b6e8398
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/index.js +1 -1
- package/components/ion-action-sheet.js +1 -1
- package/components/ion-alert.js +1 -1
- package/components/ion-back-button.js +1 -1
- package/components/ion-button.js +1 -1
- package/components/ion-card.js +1 -1
- package/components/ion-chip.js +1 -1
- package/components/ion-datetime-button.js +1 -1
- package/components/ion-datetime.js +1 -1
- package/components/ion-fab-button.js +1 -1
- package/components/ion-gallery-item.d.ts +11 -0
- package/components/ion-gallery-item.js +4 -0
- package/components/ion-gallery.js +1 -1
- package/components/ion-grid.js +1 -1
- package/components/ion-header.js +1 -1
- package/components/ion-img.js +1 -1
- package/components/ion-infinite-scroll-content.js +1 -1
- package/components/ion-infinite-scroll.js +1 -1
- package/components/ion-input-otp.js +1 -1
- package/components/ion-input-password-toggle.js +1 -1
- package/components/ion-input.js +1 -1
- package/components/ion-item-divider.js +1 -1
- package/components/ion-item-group.js +1 -1
- package/components/ion-item-option.js +1 -1
- package/components/ion-item-options.js +1 -1
- package/components/ion-item-sliding.js +1 -1
- package/components/ion-item.js +1 -1
- package/components/ion-label.js +1 -1
- package/components/ion-list-header.js +1 -1
- package/components/ion-list.js +1 -1
- package/components/ion-loading.js +1 -1
- package/components/ion-menu-button.js +1 -1
- package/components/ion-menu-toggle.js +1 -1
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +1 -1
- package/components/ion-nav-link.js +1 -1
- package/components/ion-nav.js +1 -1
- package/components/ion-note.js +1 -1
- package/components/ion-picker-column-option.js +1 -1
- package/components/ion-picker-legacy-column.js +1 -1
- package/components/ion-picker-legacy.js +1 -1
- package/components/ion-popover.js +1 -1
- package/components/ion-progress-bar.js +1 -1
- package/components/ion-radio-group.js +1 -1
- package/components/ion-radio.js +1 -1
- package/components/ion-range.js +1 -1
- package/components/ion-refresher-content.js +1 -1
- package/components/ion-refresher.js +1 -1
- package/components/ion-reorder-group.js +1 -1
- package/components/ion-reorder.js +1 -1
- package/components/ion-ripple-effect.js +1 -1
- package/components/ion-router-link.js +1 -1
- package/components/ion-router-outlet.js +1 -1
- package/components/ion-row.js +1 -1
- package/components/ion-searchbar.js +1 -1
- package/components/ion-segment-button.js +1 -1
- package/components/ion-segment-content.js +1 -1
- package/components/ion-segment-view.js +1 -1
- package/components/ion-segment.js +1 -1
- package/components/ion-select-modal.js +1 -1
- package/components/ion-select-option.js +1 -1
- package/components/ion-select-popover.js +1 -1
- package/components/ion-select.js +1 -1
- package/components/ion-skeleton-text.js +1 -1
- package/components/ion-spinner.js +1 -1
- package/components/ion-split-pane.js +1 -1
- package/components/ion-tab-bar.js +1 -1
- package/components/ion-tab-button.js +1 -1
- package/components/ion-tab.js +1 -1
- package/components/ion-tabs.js +1 -1
- package/components/ion-text.js +1 -1
- package/components/ion-textarea.js +1 -1
- package/components/ion-thumbnail.js +1 -1
- package/components/ion-title.js +1 -1
- package/components/ion-toast.js +1 -1
- package/components/ion-toggle.js +1 -1
- package/components/ion-toolbar.js +1 -1
- package/components/p-BFZBl0TS.js +4 -0
- package/components/{p-pvh0bjpw.js → p-BVi3gqm6.js} +1 -1
- package/components/{p-D6g8ud1e.js → p-BVk7LVs0.js} +1 -1
- package/components/{p-B9MABkWm.js → p-BdUtZxku.js} +1 -1
- package/components/{p-CzC_ZSgb.js → p-Be8tHurp.js} +1 -1
- package/components/p-C0U8YqYW.js +4 -0
- package/components/{p-C8kBejTT.js → p-CG3ZV6ON.js} +1 -1
- package/components/{p-CBS0sBAa.js → p-CaqTORfV.js} +1 -1
- package/components/{p-D2mReIu8.js → p-CkA0SI9d.js} +1 -1
- package/components/p-Cmql_g3_.js +4 -0
- package/components/p-CsakePQg.js +4 -0
- package/components/{p-CgSn4J7d.js → p-D1gEOh9B.js} +1 -1
- package/components/p-D3qBmaqi.js +4 -0
- package/components/{p-Do7NMUwR.js → p-DGn-jQpr.js} +1 -1
- package/components/p-DH4JHV73.js +4 -0
- package/components/p-DYK0qX7x.js +4 -0
- package/components/{p-Dp2x0MpA.js → p-DfV7pOtM.js} +1 -1
- package/components/{p-BhkGOA7t.js → p-F3N54OKJ.js} +1 -1
- package/components/{p-CgZLVOCc.js → p-MPREydZp.js} +1 -1
- package/components/{p-kKYBfhbe.js → p-OFfrVDLw.js} +1 -1
- package/components/p-iZO3WzZT.js +4 -0
- package/components/{p-LB-QPk3e.js → p-qclL-gNR.js} +1 -1
- package/dist/cjs/index-BJlwOs11.js +171 -0
- package/dist/cjs/index.cjs.js +1 -1
- package/dist/cjs/ion-action-sheet.cjs.entry.js +5 -5
- package/dist/cjs/ion-alert.cjs.entry.js +9 -25
- package/dist/cjs/ion-app_8.cjs.entry.js +7 -7
- package/dist/cjs/ion-avatar_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-col_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-gallery-item.cjs.entry.js +60 -0
- package/dist/cjs/ion-gallery.cjs.entry.js +91 -13
- 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-otp.cjs.entry.js +3 -3
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ion-input.cjs.entry.js +4 -4
- package/dist/cjs/ion-item-option_3.cjs.entry.js +4 -4
- package/dist/cjs/ion-item_8.cjs.entry.js +16 -15
- package/dist/cjs/ion-loading.cjs.entry.js +3 -3
- package/dist/cjs/ion-menu_3.cjs.entry.js +6 -6
- package/dist/cjs/ion-modal.cjs.entry.js +4 -4
- package/dist/cjs/ion-nav_2.cjs.entry.js +2 -2
- package/dist/cjs/ion-picker-column-option.cjs.entry.js +2 -2
- package/dist/cjs/ion-popover.cjs.entry.js +2 -2
- package/dist/cjs/ion-progress-bar.cjs.entry.js +1 -1
- package/dist/cjs/ion-radio_2.cjs.entry.js +5 -5
- package/dist/cjs/ion-range.cjs.entry.js +3 -3
- package/dist/cjs/ion-refresher_2.cjs.entry.js +4 -4
- 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 +2 -2
- package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
- package/dist/cjs/ion-segment-content.cjs.entry.js +1 -1
- package/dist/cjs/ion-segment-view.cjs.entry.js +2 -2
- package/dist/cjs/ion-segment_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-select-modal.cjs.entry.js +10 -30
- package/dist/cjs/ion-select_3.cjs.entry.js +43 -102
- package/dist/cjs/ion-spinner.cjs.entry.js +1 -1
- package/dist/cjs/ion-split-pane.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab-bar_2.cjs.entry.js +4 -4
- package/dist/cjs/ion-tab_2.cjs.entry.js +3 -3
- package/dist/cjs/ion-text.cjs.entry.js +2 -2
- package/dist/cjs/ion-textarea.cjs.entry.js +3 -3
- package/dist/cjs/ion-toast.cjs.entry.js +3 -3
- package/dist/cjs/ion-toggle.cjs.entry.js +3 -3
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/cjs/select-option-render-C7klBX2H.js +81 -0
- package/dist/collection/collection-manifest.json +2 -1
- package/dist/collection/components/action-sheet/action-sheet.ionic.css +506 -163
- package/dist/collection/components/action-sheet/action-sheet.ios.css +27 -288
- package/dist/collection/components/action-sheet/action-sheet.md.css +27 -228
- package/dist/collection/components/alert/alert.ionic.css +797 -416
- package/dist/collection/components/alert/alert.ios.css +40 -402
- package/dist/collection/components/alert/alert.js +4 -20
- package/dist/collection/components/alert/alert.md.css +50 -385
- package/dist/collection/components/gallery/gallery.css +1 -86
- package/dist/collection/components/gallery/gallery.js +92 -13
- package/dist/collection/components/gallery/test/utils.js +16 -16
- package/dist/collection/components/gallery-item/gallery-item.css +88 -0
- package/dist/collection/components/gallery-item/gallery-item.js +100 -0
- package/dist/collection/components/grid/grid.js +2 -2
- package/dist/collection/components/header/header.js +2 -2
- package/dist/collection/components/img/img.js +2 -2
- package/dist/collection/components/infinite-scroll/infinite-scroll.js +1 -1
- package/dist/collection/components/infinite-scroll-content/infinite-scroll-content.js +2 -2
- package/dist/collection/components/input/input.js +4 -4
- package/dist/collection/components/input-otp/input-otp.js +3 -3
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +3 -3
- package/dist/collection/components/item/item.ionic.css +17 -5
- package/dist/collection/components/item/item.js +3 -2
- package/dist/collection/components/item-divider/item-divider.js +2 -2
- package/dist/collection/components/item-group/item-group.js +1 -1
- package/dist/collection/components/item-option/item-option.js +2 -2
- package/dist/collection/components/item-options/item-options.js +1 -1
- package/dist/collection/components/item-sliding/item-sliding.js +1 -1
- package/dist/collection/components/label/label.js +2 -2
- package/dist/collection/components/list/list.js +1 -1
- package/dist/collection/components/list-header/list-header.js +2 -2
- package/dist/collection/components/loading/loading.js +2 -2
- package/dist/collection/components/menu/menu.js +2 -2
- package/dist/collection/components/menu-button/menu-button.js +2 -2
- package/dist/collection/components/menu-toggle/menu-toggle.js +2 -2
- package/dist/collection/components/modal/modal.js +4 -4
- package/dist/collection/components/nav/nav.js +1 -1
- package/dist/collection/components/nav-link/nav-link.js +1 -1
- package/dist/collection/components/note/note.js +2 -2
- package/dist/collection/components/picker-column-option/picker-column-option.js +2 -2
- package/dist/collection/components/picker-legacy/picker.js +2 -2
- package/dist/collection/components/picker-legacy-column/picker-column.js +2 -2
- package/dist/collection/components/popover/popover.js +2 -2
- package/dist/collection/components/progress-bar/progress-bar.js +1 -1
- package/dist/collection/components/radio/radio.js +3 -3
- package/dist/collection/components/radio-group/radio-group.js +2 -2
- package/dist/collection/components/range/range.js +3 -3
- package/dist/collection/components/refresher/refresher.js +1 -1
- package/dist/collection/components/refresher-content/refresher-content.js +2 -2
- package/dist/collection/components/reorder/reorder.js +2 -2
- package/dist/collection/components/reorder-group/reorder-group.js +1 -1
- package/dist/collection/components/ripple-effect/ripple-effect.js +1 -1
- package/dist/collection/components/router-link/router-link.js +2 -2
- package/dist/collection/components/router-outlet/router-outlet.js +1 -1
- package/dist/collection/components/row/row.js +2 -2
- package/dist/collection/components/searchbar/searchbar.js +4 -4
- package/dist/collection/components/segment/segment.js +2 -2
- package/dist/collection/components/segment-button/segment-button.js +2 -2
- package/dist/collection/components/segment-content/segment-content.js +1 -1
- package/dist/collection/components/segment-view/segment-view.js +2 -2
- package/dist/collection/components/select/select.js +32 -72
- package/dist/collection/components/select-modal/select-modal.ionic.css +29 -139
- package/dist/collection/components/select-modal/select-modal.ios.css +7 -379
- package/dist/collection/components/select-modal/select-modal.js +5 -25
- package/dist/collection/components/select-modal/select-modal.md.css +7 -319
- package/dist/collection/components/select-option/select-option.js +1 -39
- package/dist/collection/components/select-popover/select-popover.ionic.css +376 -129
- package/dist/collection/components/select-popover/select-popover.ios.css +69 -252
- package/dist/collection/components/select-popover/select-popover.js +6 -25
- package/dist/collection/components/select-popover/select-popover.md.css +27 -273
- package/dist/collection/components/skeleton-text/skeleton-text.js +2 -2
- package/dist/collection/components/spinner/spinner.js +1 -1
- package/dist/collection/components/split-pane/split-pane.js +2 -2
- package/dist/collection/components/tab/tab.js +2 -2
- package/dist/collection/components/tab-bar/tab-bar.js +2 -2
- package/dist/collection/components/tab-button/tab-button.js +2 -2
- package/dist/collection/components/tabs/tabs.js +1 -1
- package/dist/collection/components/text/text.js +2 -2
- package/dist/collection/components/textarea/textarea.js +3 -3
- package/dist/collection/components/thumbnail/thumbnail.js +2 -2
- package/dist/collection/components/title/title.js +2 -2
- package/dist/collection/components/toast/toast.js +2 -2
- package/dist/collection/components/toggle/toggle.js +3 -3
- package/dist/collection/components/toolbar/toolbar.js +2 -2
- package/dist/collection/utils/sanitization/index.js +14 -255
- package/dist/collection/utils/select-option-render.js +24 -59
- package/dist/docs.json +87 -69
- package/dist/esm/index-D4ugF_sT.js +168 -0
- package/dist/esm/index.js +1 -1
- package/dist/esm/ion-action-sheet.entry.js +5 -5
- package/dist/esm/ion-alert.entry.js +9 -25
- package/dist/esm/ion-app_8.entry.js +7 -7
- package/dist/esm/ion-avatar_3.entry.js +2 -2
- package/dist/esm/ion-col_3.entry.js +4 -4
- package/dist/esm/ion-datetime_3.entry.js +4 -4
- package/dist/esm/ion-gallery-item.entry.js +58 -0
- package/dist/esm/ion-gallery.entry.js +91 -13
- 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-otp.entry.js +3 -3
- package/dist/esm/ion-input-password-toggle.entry.js +3 -3
- package/dist/esm/ion-input.entry.js +4 -4
- package/dist/esm/ion-item-option_3.entry.js +4 -4
- package/dist/esm/ion-item_8.entry.js +16 -15
- package/dist/esm/ion-loading.entry.js +3 -3
- package/dist/esm/ion-menu_3.entry.js +6 -6
- package/dist/esm/ion-modal.entry.js +4 -4
- package/dist/esm/ion-nav_2.entry.js +2 -2
- package/dist/esm/ion-picker-column-option.entry.js +2 -2
- package/dist/esm/ion-popover.entry.js +2 -2
- package/dist/esm/ion-progress-bar.entry.js +1 -1
- package/dist/esm/ion-radio_2.entry.js +5 -5
- package/dist/esm/ion-range.entry.js +3 -3
- package/dist/esm/ion-refresher_2.entry.js +4 -4
- package/dist/esm/ion-reorder_2.entry.js +3 -3
- package/dist/esm/ion-ripple-effect.entry.js +1 -1
- package/dist/esm/ion-route_4.entry.js +2 -2
- package/dist/esm/ion-searchbar.entry.js +4 -4
- package/dist/esm/ion-segment-content.entry.js +1 -1
- package/dist/esm/ion-segment-view.entry.js +2 -2
- package/dist/esm/ion-segment_2.entry.js +4 -4
- package/dist/esm/ion-select-modal.entry.js +10 -30
- package/dist/esm/ion-select_3.entry.js +43 -102
- package/dist/esm/ion-spinner.entry.js +1 -1
- package/dist/esm/ion-split-pane.entry.js +2 -2
- package/dist/esm/ion-tab-bar_2.entry.js +4 -4
- package/dist/esm/ion-tab_2.entry.js +3 -3
- package/dist/esm/ion-text.entry.js +2 -2
- package/dist/esm/ion-textarea.entry.js +3 -3
- package/dist/esm/ion-toast.entry.js +3 -3
- package/dist/esm/ion-toggle.entry.js +3 -3
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm/select-option-render-B2qc5ZP7.js +79 -0
- package/dist/html.html-data.json +42 -27
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-f52856cb.entry.js → p-0592c549.entry.js} +1 -1
- package/dist/ionic/{p-67c2d349.entry.js → p-0aa510cd.entry.js} +1 -1
- package/dist/ionic/{p-9ccfb733.entry.js → p-0cd5fd9d.entry.js} +1 -1
- package/dist/ionic/p-0e9d4e11.entry.js +4 -0
- package/dist/ionic/{p-497f6391.entry.js → p-11a38333.entry.js} +1 -1
- package/dist/ionic/{p-0030507d.entry.js → p-1a009a51.entry.js} +1 -1
- package/dist/ionic/{p-7186786e.entry.js → p-23e524f8.entry.js} +1 -1
- package/dist/ionic/{p-1439fecb.entry.js → p-2826761a.entry.js} +1 -1
- package/dist/ionic/{p-93315d96.entry.js → p-2c4170d8.entry.js} +1 -1
- package/dist/ionic/p-2d5a2511.entry.js +4 -0
- package/dist/ionic/{p-7f294078.entry.js → p-3706ea52.entry.js} +1 -1
- package/dist/ionic/{p-b69add0e.entry.js → p-3e376501.entry.js} +1 -1
- package/dist/ionic/{p-c684a3b6.entry.js → p-44597202.entry.js} +1 -1
- package/dist/ionic/{p-8458f1b6.entry.js → p-4a27a79a.entry.js} +1 -1
- package/dist/ionic/{p-b7235e85.entry.js → p-4f07113d.entry.js} +1 -1
- package/dist/ionic/{p-88e7f52a.entry.js → p-52b85650.entry.js} +1 -1
- package/dist/ionic/{p-199bffb3.entry.js → p-5a6e0ae1.entry.js} +1 -1
- package/dist/ionic/p-6906dca7.entry.js +4 -0
- package/dist/ionic/p-75a1ca50.entry.js +4 -0
- package/dist/ionic/{p-19a1ff9a.entry.js → p-7b09c19d.entry.js} +1 -1
- package/dist/ionic/{p-76c70824.entry.js → p-7b886782.entry.js} +1 -1
- package/dist/ionic/p-7da8b262.entry.js +4 -0
- package/dist/ionic/{p-89eab395.entry.js → p-82c05be2.entry.js} +1 -1
- package/dist/ionic/{p-b653f4c2.entry.js → p-83c0eb9b.entry.js} +1 -1
- package/dist/ionic/{p-b4fd91b8.entry.js → p-85ff1314.entry.js} +1 -1
- package/dist/ionic/p-88048796.entry.js +4 -0
- package/dist/ionic/{p-3f18dfe9.entry.js → p-8eca5ba1.entry.js} +1 -1
- package/dist/ionic/p-96f52444.entry.js +4 -0
- package/dist/ionic/p-CFjI63GE.js +4 -0
- package/dist/ionic/p-CWJdc8f_.js +4 -0
- package/dist/ionic/{p-f2f740aa.entry.js → p-a3b047e0.entry.js} +1 -1
- package/dist/ionic/{p-40d9e029.entry.js → p-a73caa5e.entry.js} +1 -1
- package/dist/ionic/{p-1ad16c09.entry.js → p-b0dfd018.entry.js} +1 -1
- package/dist/ionic/{p-a3f9be52.entry.js → p-b6130fe4.entry.js} +1 -1
- package/dist/ionic/p-c0558552.entry.js +4 -0
- package/dist/ionic/{p-084c2623.entry.js → p-c5f745b4.entry.js} +1 -1
- package/dist/ionic/{p-bc3d68ff.entry.js → p-c781241c.entry.js} +1 -1
- package/dist/ionic/p-cb154afe.entry.js +4 -0
- package/dist/ionic/{p-b847907d.entry.js → p-cde69f38.entry.js} +1 -1
- package/dist/ionic/{p-70ee89c9.entry.js → p-d6f0a698.entry.js} +1 -1
- package/dist/ionic/{p-dd2981d0.entry.js → p-d9804d04.entry.js} +1 -1
- package/dist/ionic/{p-7054a1b9.entry.js → p-e342b205.entry.js} +1 -1
- package/dist/ionic/{p-9dfbe98d.entry.js → p-e8916b04.entry.js} +1 -1
- package/dist/ionic/{p-dac1d4de.entry.js → p-f10f8f95.entry.js} +1 -1
- package/dist/types/components/gallery/gallery.d.ts +41 -8
- package/dist/types/components/gallery/test/utils.d.ts +2 -1
- package/dist/types/components/gallery-item/gallery-item.d.ts +33 -0
- package/dist/types/components/select/select-interface.d.ts +0 -8
- package/dist/types/components/select-option/select-option.d.ts +0 -32
- package/dist/types/components.d.ts +33 -18
- package/dist/types/utils/sanitization/index.d.ts +2 -54
- package/dist/types/utils/select-option-render.d.ts +0 -31
- package/hydrate/index.js +380 -645
- package/hydrate/index.mjs +380 -645
- package/package.json +1 -1
- package/components/p-BP_TU_4l.js +0 -4
- package/components/p-BqTwa6uT.js +0 -4
- package/components/p-Bxiu1dAN.js +0 -4
- package/components/p-C91NnY87.js +0 -4
- package/components/p-CODBQrPj.js +0 -4
- package/components/p-GElQZ38c.js +0 -4
- package/components/p-WdrzoonY.js +0 -4
- package/components/p-h64_gZrH.js +0 -4
- package/components/p-sehKq5RI.js +0 -4
- package/dist/cjs/index-Dm4Dm7Vg.js +0 -414
- package/dist/cjs/overlay-control-label-DnRLQR1t.js +0 -52
- package/dist/cjs/select-option-render-DQyZnlF5.js +0 -116
- package/dist/collection/utils/overlay-control-label.js +0 -47
- package/dist/esm/index-Bmyj8b0z.js +0 -409
- package/dist/esm/overlay-control-label-CODBQrPj.js +0 -49
- package/dist/esm/select-option-render-QGJ9tZHa.js +0 -114
- package/dist/ionic/p-18ed37e3.entry.js +0 -4
- package/dist/ionic/p-2049aa81.entry.js +0 -4
- package/dist/ionic/p-290778c1.entry.js +0 -4
- package/dist/ionic/p-2aa7567e.entry.js +0 -4
- package/dist/ionic/p-2e7e3da1.entry.js +0 -4
- package/dist/ionic/p-CODBQrPj.js +0 -4
- package/dist/ionic/p-CxRK9GyE.js +0 -4
- package/dist/ionic/p-NqPMS7BP.js +0 -4
- package/dist/ionic/p-c94fbdab.entry.js +0 -4
- package/dist/ionic/p-e89848b2.entry.js +0 -4
- package/dist/ionic/p-ff09d2a5.entry.js +0 -4
- package/dist/types/utils/overlay-control-label.d.ts +0 -34
|
@@ -17,11 +17,16 @@ const BREAKPOINTS = {
|
|
|
17
17
|
xxl: 1400,
|
|
18
18
|
};
|
|
19
19
|
const BREAKPOINT_ORDER = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
|
|
20
|
+
/**
|
|
21
|
+
* The tag of the component used to wrap each gallery item.
|
|
22
|
+
*/
|
|
23
|
+
const GALLERY_ITEM_SELECTOR = 'ion-gallery-item';
|
|
20
24
|
/**
|
|
21
25
|
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
22
26
|
* @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
|
|
23
27
|
*
|
|
24
|
-
* @slot -
|
|
28
|
+
* @slot - One or more `ion-gallery-item` components, placed in a responsive
|
|
29
|
+
* gallery layout.
|
|
25
30
|
*/
|
|
26
31
|
export class Gallery {
|
|
27
32
|
constructor() {
|
|
@@ -30,6 +35,7 @@ export class Gallery {
|
|
|
30
35
|
this.hasWarnedInvalidColumns = false;
|
|
31
36
|
this.hasWarnedInvalidGap = false;
|
|
32
37
|
this.hasWarnedUnusedOrder = false;
|
|
38
|
+
this.hasWarnedInvalidItems = false;
|
|
33
39
|
/**
|
|
34
40
|
* The visual layout of the gallery. When `uniform`, rows take up the height
|
|
35
41
|
* of the tallest item and are spaced evenly across the gallery. Additionally,
|
|
@@ -53,12 +59,13 @@ export class Gallery {
|
|
|
53
59
|
*/
|
|
54
60
|
this.gap = DEFAULT_GAP;
|
|
55
61
|
/**
|
|
56
|
-
* Listen for the slotchange event on the slot.
|
|
57
|
-
*
|
|
58
|
-
*
|
|
59
|
-
* are added or removed from the gallery.
|
|
62
|
+
* Listen for the slotchange event on the slot. When the gallery's items are
|
|
63
|
+
* added or removed, re-collapse wrappers, re-observe items for size changes,
|
|
64
|
+
* and recompute the masonry grid.
|
|
60
65
|
*/
|
|
61
66
|
this.onSlotChange = () => {
|
|
67
|
+
this.collapseWrappers();
|
|
68
|
+
this.observeResizes();
|
|
62
69
|
this.scheduleMasonryResize();
|
|
63
70
|
};
|
|
64
71
|
/**
|
|
@@ -89,6 +96,7 @@ export class Gallery {
|
|
|
89
96
|
}
|
|
90
97
|
onLayoutOrOrderChanged() {
|
|
91
98
|
this.syncResponsiveLayout();
|
|
99
|
+
this.syncItemLayout();
|
|
92
100
|
// Wait until the next animation frame to warn about unused order
|
|
93
101
|
// to avoid erroneous warnings when the layout and order are updated
|
|
94
102
|
// in the same frame.
|
|
@@ -96,13 +104,23 @@ export class Gallery {
|
|
|
96
104
|
this.warnUnusedOrder();
|
|
97
105
|
});
|
|
98
106
|
}
|
|
107
|
+
/**
|
|
108
|
+
* Sync the current layout with each item when the gallery's `layout`
|
|
109
|
+
* changes.
|
|
110
|
+
*/
|
|
111
|
+
syncItemLayout() {
|
|
112
|
+
this.getItems().forEach((item) => {
|
|
113
|
+
item.syncGalleryLayout();
|
|
114
|
+
});
|
|
115
|
+
}
|
|
99
116
|
componentDidLoad() {
|
|
117
|
+
this.collapseWrappers();
|
|
100
118
|
this.updateResponsiveStyles(true);
|
|
101
119
|
this.resizeObserver = new ResizeObserver(() => {
|
|
102
120
|
this.updateResponsiveStyles();
|
|
103
121
|
this.scheduleMasonryResize();
|
|
104
122
|
});
|
|
105
|
-
this.
|
|
123
|
+
this.observeResizes();
|
|
106
124
|
this.scheduleMasonryResize();
|
|
107
125
|
this.warnUnusedOrder();
|
|
108
126
|
}
|
|
@@ -115,6 +133,22 @@ export class Gallery {
|
|
|
115
133
|
(_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
116
134
|
this.resizeObserver = undefined;
|
|
117
135
|
}
|
|
136
|
+
/**
|
|
137
|
+
* Observe the host and each item for size changes. Items are observed in
|
|
138
|
+
* addition to the host so masonry placement is recomputed when an item's
|
|
139
|
+
* rendered height changes — most importantly when a dynamically added
|
|
140
|
+
* `ion-gallery-item` finishes hydrating, which (unlike an `<img>`) emits no
|
|
141
|
+
* `load` event and does not change the host's measured size while collapsed.
|
|
142
|
+
*/
|
|
143
|
+
observeResizes() {
|
|
144
|
+
const observer = this.resizeObserver;
|
|
145
|
+
if (observer === undefined) {
|
|
146
|
+
return;
|
|
147
|
+
}
|
|
148
|
+
observer.disconnect();
|
|
149
|
+
observer.observe(this.el);
|
|
150
|
+
this.getItems().forEach((item) => observer.observe(item));
|
|
151
|
+
}
|
|
118
152
|
/**
|
|
119
153
|
* Listen for the load event on child elements.
|
|
120
154
|
* When the layout is `masonry`, this listener is used to schedule a resize
|
|
@@ -343,11 +377,49 @@ export class Gallery {
|
|
|
343
377
|
this.el.style.setProperty('--internal-gallery-gap', `${gap}`);
|
|
344
378
|
}
|
|
345
379
|
/**
|
|
346
|
-
* Return
|
|
347
|
-
*
|
|
380
|
+
* Return the `ion-gallery-item` elements to place in the grid. Each item is a
|
|
381
|
+
* direct grid cell, whether a direct child or nested inside a pass-through
|
|
382
|
+
* wrapper (e.g. a layout `<div>`). Items belonging to a nested `ion-gallery`
|
|
383
|
+
* are excluded.
|
|
348
384
|
*/
|
|
349
385
|
getItems() {
|
|
350
|
-
return Array.from(this.el.
|
|
386
|
+
return Array.from(this.el.querySelectorAll(GALLERY_ITEM_SELECTOR)).filter((item) => item.closest('ion-gallery') === this.el);
|
|
387
|
+
}
|
|
388
|
+
/**
|
|
389
|
+
* Collapse each pass-through wrapper's box with `display: contents` so its
|
|
390
|
+
* items participate in the gallery grid. Restore the box of a wrapper that
|
|
391
|
+
* no longer contains items, and warn about children that contain none.
|
|
392
|
+
*/
|
|
393
|
+
collapseWrappers() {
|
|
394
|
+
const items = this.getItems();
|
|
395
|
+
Array.from(this.el.children).forEach((child) => {
|
|
396
|
+
if (child.matches(GALLERY_ITEM_SELECTOR)) {
|
|
397
|
+
return;
|
|
398
|
+
}
|
|
399
|
+
if (!items.some((item) => child.contains(item))) {
|
|
400
|
+
// If the wrapper was previously collapsed with `display: contents`
|
|
401
|
+
// but now contains no items, clear the display style.
|
|
402
|
+
if (child.style.display === 'contents') {
|
|
403
|
+
child.style.display = '';
|
|
404
|
+
}
|
|
405
|
+
this.warnInvalidItems();
|
|
406
|
+
return;
|
|
407
|
+
}
|
|
408
|
+
// Collapse the wrapper's box so its items sit directly in the grid.
|
|
409
|
+
child.style.display = 'contents';
|
|
410
|
+
});
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* Warn when the gallery has content that is not wrapped in an
|
|
414
|
+
* `ion-gallery-item` component. Items belonging to a nested
|
|
415
|
+
* gallery are considered invalid content for the parent gallery.
|
|
416
|
+
*/
|
|
417
|
+
warnInvalidItems() {
|
|
418
|
+
if (this.hasWarnedInvalidItems) {
|
|
419
|
+
return;
|
|
420
|
+
}
|
|
421
|
+
printIonWarning(`[ion-gallery] - Gallery items must be wrapped in "ion-gallery-item" components. Direct children that are not "ion-gallery-item" (and do not contain one) are ignored.`, this.el);
|
|
422
|
+
this.hasWarnedInvalidItems = true;
|
|
351
423
|
}
|
|
352
424
|
/**
|
|
353
425
|
* Clear the item styles for the given item element.
|
|
@@ -365,12 +437,19 @@ export class Gallery {
|
|
|
365
437
|
clearMasonryStyles() {
|
|
366
438
|
this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
|
|
367
439
|
}
|
|
440
|
+
/**
|
|
441
|
+
* Whether the item contains any images that have not finished loading.
|
|
442
|
+
* Used to defer masonry placement until the rendered height is final.
|
|
443
|
+
*/
|
|
444
|
+
hasUnloadedImages(itemEl) {
|
|
445
|
+
return Array.from(itemEl.querySelectorAll('img')).some((img) => !img.complete || img.naturalHeight === 0);
|
|
446
|
+
}
|
|
368
447
|
/**
|
|
369
448
|
* Convert a rendered item height to the number of grid rows it should span.
|
|
370
|
-
* Returns undefined
|
|
449
|
+
* Returns undefined when the item has images that are not fully loaded yet.
|
|
371
450
|
*/
|
|
372
451
|
calculateRowSpan(itemEl, rowHeight, rowGap) {
|
|
373
|
-
if (
|
|
452
|
+
if (this.hasUnloadedImages(itemEl)) {
|
|
374
453
|
return undefined;
|
|
375
454
|
}
|
|
376
455
|
const height = itemEl.getBoundingClientRect().height;
|
|
@@ -457,11 +536,11 @@ export class Gallery {
|
|
|
457
536
|
const { layout } = this;
|
|
458
537
|
const order = this.getOrder();
|
|
459
538
|
const theme = getIonTheme(this);
|
|
460
|
-
return (h(Host, { key: '
|
|
539
|
+
return (h(Host, { key: '4a0a9cdd0da106ac0bd2c188a4c6612edab43b33', class: {
|
|
461
540
|
[theme]: true,
|
|
462
541
|
[`gallery-layout-${layout}`]: true,
|
|
463
542
|
[`gallery-order-${order}`]: layout === 'masonry' && order !== undefined,
|
|
464
|
-
} }, h("slot", { key: '
|
|
543
|
+
} }, h("slot", { key: 'dc6414ce9762ad7daaedc1583db35e0613a76e11', onSlotchange: this.onSlotChange })));
|
|
465
544
|
}
|
|
466
545
|
static get is() { return "ion-gallery"; }
|
|
467
546
|
static get encapsulation() { return "shadow"; }
|
|
@@ -1,62 +1,62 @@
|
|
|
1
1
|
/*!
|
|
2
2
|
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
3
|
*/
|
|
4
|
-
export const
|
|
4
|
+
export const sharedGalleryStyles = `
|
|
5
5
|
ion-gallery {
|
|
6
6
|
width: 343px;
|
|
7
7
|
}
|
|
8
|
-
|
|
9
|
-
|
|
8
|
+
`;
|
|
9
|
+
export const sharedGalleryItemStyles = `
|
|
10
|
+
ion-gallery-item {
|
|
10
11
|
color: #fff;
|
|
11
|
-
height: 150px;
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
|
|
14
|
+
ion-gallery-item:nth-child(1) {
|
|
15
15
|
background: #ff6b6b;
|
|
16
16
|
}
|
|
17
17
|
|
|
18
|
-
|
|
18
|
+
ion-gallery-item:nth-child(2) {
|
|
19
19
|
background: #4ecdc4;
|
|
20
20
|
}
|
|
21
21
|
|
|
22
|
-
|
|
22
|
+
ion-gallery-item:nth-child(3) {
|
|
23
23
|
background: #ffe66d;
|
|
24
24
|
color: #333;
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
|
|
27
|
+
ion-gallery-item:nth-child(4) {
|
|
28
28
|
background: #5f27cd;
|
|
29
29
|
}
|
|
30
30
|
|
|
31
|
-
|
|
31
|
+
ion-gallery-item:nth-child(5) {
|
|
32
32
|
background: #7f8c8d;
|
|
33
33
|
}
|
|
34
34
|
|
|
35
|
-
|
|
35
|
+
ion-gallery-item:nth-child(6) {
|
|
36
36
|
background: #ff9f43;
|
|
37
37
|
}
|
|
38
38
|
|
|
39
|
-
|
|
39
|
+
ion-gallery-item:nth-child(7) {
|
|
40
40
|
background: #ff3f34;
|
|
41
41
|
}
|
|
42
42
|
|
|
43
|
-
|
|
43
|
+
ion-gallery-item:nth-child(8) {
|
|
44
44
|
background: #2ecc71;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
|
|
47
|
+
ion-gallery-item:nth-child(9) {
|
|
48
48
|
background: #34495e;
|
|
49
49
|
}
|
|
50
50
|
|
|
51
|
-
|
|
51
|
+
ion-gallery-item:nth-child(10) {
|
|
52
52
|
background: #1abc9c;
|
|
53
53
|
}
|
|
54
54
|
|
|
55
|
-
|
|
55
|
+
ion-gallery-item:nth-child(11) {
|
|
56
56
|
background: #e67e22;
|
|
57
57
|
}
|
|
58
58
|
|
|
59
|
-
|
|
59
|
+
ion-gallery-item:nth-child(12) {
|
|
60
60
|
background: #9b59b6;
|
|
61
61
|
}
|
|
62
62
|
`;
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Convert a pixels given value into rem
|
|
3
|
+
*
|
|
4
|
+
* @param pixels - Value in pixels to be converted (i.e. px)
|
|
5
|
+
* @param context (optional) - Baseline value
|
|
6
|
+
*/
|
|
7
|
+
/**
|
|
8
|
+
* Convert a font size to a dynamic font size.
|
|
9
|
+
* Fonts that participate in Dynamic Type should use
|
|
10
|
+
* dynamic font sizes.
|
|
11
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
12
|
+
* @param unit (optional) - The unit to convert to. Use this if you want to
|
|
13
|
+
* convert to a unit other than $baselineUnit.
|
|
14
|
+
*/
|
|
15
|
+
/**
|
|
16
|
+
* Convert a font size to a dynamic font size but impose
|
|
17
|
+
* a maximum font size.
|
|
18
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
19
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
20
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
21
|
+
* convert to a unit other than $baselineUnit.
|
|
22
|
+
*/
|
|
23
|
+
/**
|
|
24
|
+
* Convert a font size to a dynamic font size but impose
|
|
25
|
+
* a minimum font size.
|
|
26
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
27
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
28
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
29
|
+
* convert to a unit other than $baselineUnit.
|
|
30
|
+
*/
|
|
31
|
+
/**
|
|
32
|
+
* Convert a font size to a dynamic font size but impose
|
|
33
|
+
* maximum and minimum font sizes.
|
|
34
|
+
* @param size - The initial font size including the unit (i.e. px or pt)
|
|
35
|
+
* @param minScale - The minimum scale of the font (i.e. 0.8 for a minimum 80% scale).
|
|
36
|
+
* @param maxScale - The maximum scale of the font (i.e. 2.5 for a maximum 250% scale).
|
|
37
|
+
* @param unit (optional) - The unit to convert the initial font size to. Use this if you want to
|
|
38
|
+
* convert to a unit other than $baselineUnit.
|
|
39
|
+
*/
|
|
40
|
+
/**
|
|
41
|
+
* A heuristic that applies CSS to tablet
|
|
42
|
+
* viewports.
|
|
43
|
+
*
|
|
44
|
+
* Usage:
|
|
45
|
+
* @include tablet-viewport() {
|
|
46
|
+
* :host {
|
|
47
|
+
* background-color: green;
|
|
48
|
+
* }
|
|
49
|
+
* }
|
|
50
|
+
*/
|
|
51
|
+
/**
|
|
52
|
+
* A heuristic that applies CSS to mobile
|
|
53
|
+
* viewports (i.e. phones, not tablets).
|
|
54
|
+
*
|
|
55
|
+
* Usage:
|
|
56
|
+
* @include mobile-viewport() {
|
|
57
|
+
* :host {
|
|
58
|
+
* background-color: blue;
|
|
59
|
+
* }
|
|
60
|
+
* }
|
|
61
|
+
*/
|
|
62
|
+
:host {
|
|
63
|
+
display: block;
|
|
64
|
+
width: 100%;
|
|
65
|
+
}
|
|
66
|
+
|
|
67
|
+
::slotted(*) {
|
|
68
|
+
margin-left: 0;
|
|
69
|
+
margin-right: 0;
|
|
70
|
+
margin-top: 0;
|
|
71
|
+
margin-bottom: 0;
|
|
72
|
+
width: 100%;
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
::slotted(img) {
|
|
76
|
+
display: block;
|
|
77
|
+
object-fit: cover;
|
|
78
|
+
object-position: center;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
:host(.in-gallery-layout-uniform),
|
|
82
|
+
:host(.in-gallery-layout-uniform) ::slotted(*) {
|
|
83
|
+
aspect-ratio: 1/1;
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
:host(.in-gallery-layout-masonry) {
|
|
87
|
+
margin-bottom: var(--internal-gallery-gap, 16px);
|
|
88
|
+
}
|
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { Host, h } from "@stencil/core";
|
|
5
|
+
import { printIonWarning } from "../../utils/logging/index";
|
|
6
|
+
import { getIonTheme } from "../../global/ionic-global";
|
|
7
|
+
/**
|
|
8
|
+
* @virtualProp {"ios" | "md"} mode - The mode determines the platform behaviors of the component.
|
|
9
|
+
* @virtualProp {"ios" | "md" | "ionic"} theme - The theme determines the visual appearance of the component.
|
|
10
|
+
*
|
|
11
|
+
* @slot - The content placed inside of the gallery item. This is typically an
|
|
12
|
+
* `img`, but can be any element (e.g. a `figure` wrapping an image and caption).
|
|
13
|
+
*/
|
|
14
|
+
export class GalleryItem {
|
|
15
|
+
constructor() {
|
|
16
|
+
this.hasWarnedInvalidParent = false;
|
|
17
|
+
this.onSlotChange = () => {
|
|
18
|
+
this.warnInvalidParent();
|
|
19
|
+
};
|
|
20
|
+
}
|
|
21
|
+
componentWillLoad() {
|
|
22
|
+
this.syncGalleryLayout();
|
|
23
|
+
}
|
|
24
|
+
componentDidLoad() {
|
|
25
|
+
this.warnInvalidParent();
|
|
26
|
+
}
|
|
27
|
+
connectedCallback() {
|
|
28
|
+
this.syncGalleryLayout();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Resolve the layout from the parent `ion-gallery`. Called internally on
|
|
32
|
+
* load and connect, and by the gallery when its layout changes.
|
|
33
|
+
* @internal
|
|
34
|
+
*/
|
|
35
|
+
async syncGalleryLayout() {
|
|
36
|
+
var _a;
|
|
37
|
+
this.galleryLayout = (_a = this.el.closest('ion-gallery')) === null || _a === void 0 ? void 0 : _a.layout;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Warn when the item is not a descendant of an `ion-gallery`.
|
|
41
|
+
*/
|
|
42
|
+
warnInvalidParent() {
|
|
43
|
+
if (this.hasWarnedInvalidParent || this.el.closest('ion-gallery') !== null) {
|
|
44
|
+
return;
|
|
45
|
+
}
|
|
46
|
+
printIonWarning('[ion-gallery-item] - This component should be used as a child of an "ion-gallery" component.', this.el);
|
|
47
|
+
this.hasWarnedInvalidParent = true;
|
|
48
|
+
}
|
|
49
|
+
render() {
|
|
50
|
+
const { galleryLayout } = this;
|
|
51
|
+
const theme = getIonTheme(this);
|
|
52
|
+
return (h(Host, { key: '627880170eb3ee3f9cca8be75f438ca09c1b15c3', class: {
|
|
53
|
+
[theme]: true,
|
|
54
|
+
'in-gallery-layout-uniform': galleryLayout === 'uniform',
|
|
55
|
+
'in-gallery-layout-masonry': galleryLayout === 'masonry',
|
|
56
|
+
} }, h("slot", { key: 'df76399e3b75ce6017d70f41f7e5879586042ac8', onSlotchange: this.onSlotChange })));
|
|
57
|
+
}
|
|
58
|
+
static get is() { return "ion-gallery-item"; }
|
|
59
|
+
static get encapsulation() { return "shadow"; }
|
|
60
|
+
static get originalStyleUrls() {
|
|
61
|
+
return {
|
|
62
|
+
"$": ["gallery-item.scss"]
|
|
63
|
+
};
|
|
64
|
+
}
|
|
65
|
+
static get styleUrls() {
|
|
66
|
+
return {
|
|
67
|
+
"$": ["gallery-item.css"]
|
|
68
|
+
};
|
|
69
|
+
}
|
|
70
|
+
static get states() {
|
|
71
|
+
return {
|
|
72
|
+
"galleryLayout": {}
|
|
73
|
+
};
|
|
74
|
+
}
|
|
75
|
+
static get methods() {
|
|
76
|
+
return {
|
|
77
|
+
"syncGalleryLayout": {
|
|
78
|
+
"complexType": {
|
|
79
|
+
"signature": "() => Promise<void>",
|
|
80
|
+
"parameters": [],
|
|
81
|
+
"references": {
|
|
82
|
+
"Promise": {
|
|
83
|
+
"location": "global",
|
|
84
|
+
"id": "global::Promise"
|
|
85
|
+
}
|
|
86
|
+
},
|
|
87
|
+
"return": "Promise<void>"
|
|
88
|
+
},
|
|
89
|
+
"docs": {
|
|
90
|
+
"text": "Resolve the layout from the parent `ion-gallery`. Called internally on\nload and connect, and by the gallery when its layout changes.",
|
|
91
|
+
"tags": [{
|
|
92
|
+
"name": "internal",
|
|
93
|
+
"text": undefined
|
|
94
|
+
}]
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
};
|
|
98
|
+
}
|
|
99
|
+
static get elementRef() { return "el"; }
|
|
100
|
+
}
|
|
@@ -16,10 +16,10 @@ export class Grid {
|
|
|
16
16
|
}
|
|
17
17
|
render() {
|
|
18
18
|
const theme = getIonTheme(this);
|
|
19
|
-
return (h(Host, { key: '
|
|
19
|
+
return (h(Host, { key: 'e3320fc2fc5391d26898cc119505cd3be30dd48b', class: {
|
|
20
20
|
[theme]: true,
|
|
21
21
|
'grid-fixed': this.fixed,
|
|
22
|
-
} }, h("slot", { key: '
|
|
22
|
+
} }, h("slot", { key: '2000e6b336c294aadf4585269c301d734d2fe478' })));
|
|
23
23
|
}
|
|
24
24
|
static get is() { return "ion-grid"; }
|
|
25
25
|
static get encapsulation() { return "shadow"; }
|
|
@@ -156,7 +156,7 @@ export class Header {
|
|
|
156
156
|
const isCondensed = collapse === 'condense';
|
|
157
157
|
// banner role must be at top level, so remove role if inside a menu
|
|
158
158
|
const roleType = getRoleType(hostContext('ion-menu', this.el), isCondensed, theme);
|
|
159
|
-
return (h(Host, Object.assign({ key: '
|
|
159
|
+
return (h(Host, Object.assign({ key: '3395dedfd5165ba6e9f3ad1a25f0bb5b3678704a', role: roleType, class: {
|
|
160
160
|
[theme]: true,
|
|
161
161
|
// Used internally for styling
|
|
162
162
|
[`header-${theme}`]: true,
|
|
@@ -164,7 +164,7 @@ export class Header {
|
|
|
164
164
|
[`header-collapse-${collapse}`]: true,
|
|
165
165
|
[`header-translucent-${theme}`]: this.translucent,
|
|
166
166
|
['header-divider']: divider,
|
|
167
|
-
} }, inheritedAttributes), theme !== 'md' && translucent && h("div", { key: '
|
|
167
|
+
} }, inheritedAttributes), theme !== 'md' && translucent && h("div", { key: 'cafeb88b6e73d64b264514ea46590fd3477b3052', class: "header-background" }), h("slot", { key: 'ad681aaf866d7e7a5e5e731c0b5d6f5cc9fe94d2' })));
|
|
168
168
|
}
|
|
169
169
|
static get is() { return "ion-header"; }
|
|
170
170
|
static get originalStyleUrls() {
|
|
@@ -80,9 +80,9 @@ export class Img {
|
|
|
80
80
|
const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
|
|
81
81
|
const { draggable } = inheritedAttributes;
|
|
82
82
|
const theme = getIonTheme(this);
|
|
83
|
-
return (h(Host, { key: '
|
|
83
|
+
return (h(Host, { key: 'ba84621055567b2a35387709d9d89b97ad853274', class: {
|
|
84
84
|
[theme]: true,
|
|
85
|
-
} }, h("img", { key: '
|
|
85
|
+
} }, h("img", { key: '9d6118bbf69e2cccbb0603802c03b9a0d101e2c3', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
|
|
86
86
|
}
|
|
87
87
|
static get is() { return "ion-img"; }
|
|
88
88
|
static get encapsulation() { return "shadow"; }
|
|
@@ -264,7 +264,7 @@ export class InfiniteScroll {
|
|
|
264
264
|
render() {
|
|
265
265
|
const theme = getIonTheme(this);
|
|
266
266
|
const disabled = this.disabled;
|
|
267
|
-
return (h(Host, { key: '
|
|
267
|
+
return (h(Host, { key: 'e3a3cde079dfd6f07e565eb462765df757cbb128', class: {
|
|
268
268
|
[theme]: true,
|
|
269
269
|
'infinite-scroll-loading': this.isLoading,
|
|
270
270
|
'infinite-scroll-enabled': !disabled,
|
|
@@ -29,11 +29,11 @@ export class InfiniteScrollContent {
|
|
|
29
29
|
}
|
|
30
30
|
render() {
|
|
31
31
|
const theme = getIonTheme(this);
|
|
32
|
-
return (h(Host, { key: '
|
|
32
|
+
return (h(Host, { key: '263a27297159ced042f7552a1e14b8c6aba62fa8', class: {
|
|
33
33
|
[theme]: true,
|
|
34
34
|
// Used internally for styling
|
|
35
35
|
[`infinite-scroll-content-${theme}`]: true,
|
|
36
|
-
} }, h("div", { key: '
|
|
36
|
+
} }, h("div", { key: 'ee38d3c52df9dc5de186406b3087f20917a17252', class: "infinite-loading" }, this.loadingSpinner && (h("div", { key: 'e2348727f79a26f52f42641d4334a0ba9d4aa03e', class: "infinite-loading-spinner" }, h("ion-spinner", { key: '41be6f2747f3af5f46c8738e2ef56083ecd95e99', name: this.loadingSpinner }))), this.loadingText !== undefined && this.renderLoadingText())));
|
|
37
37
|
}
|
|
38
38
|
static get is() { return "ion-infinite-scroll-content"; }
|
|
39
39
|
static get originalStyleUrls() {
|
|
@@ -617,7 +617,7 @@ export class Input {
|
|
|
617
617
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
618
618
|
*/
|
|
619
619
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
620
|
-
return (h(Host, { key: '
|
|
620
|
+
return (h(Host, { key: '3da29d837b5abe22de740ac96c8142422fce537a', class: createColorClasses(this.color, {
|
|
621
621
|
[theme]: true,
|
|
622
622
|
'has-value': hasValue,
|
|
623
623
|
'has-focus': hasFocus,
|
|
@@ -630,7 +630,7 @@ export class Input {
|
|
|
630
630
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
631
631
|
'input-disabled': disabled,
|
|
632
632
|
'input-readonly': readonly,
|
|
633
|
-
}) }, h("label", { key: '
|
|
633
|
+
}) }, h("label", { key: '142a8230382a05938887e9c0790832218ac37697', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '953f247ea2f40545e01e0346549d9b7aa344b720', class: "native-wrapper", onClick: this.onLabelClick },
|
|
634
634
|
/**
|
|
635
635
|
* For the ionic theme, we render the outline container here
|
|
636
636
|
* instead of higher up, so it can be positioned relative to
|
|
@@ -640,14 +640,14 @@ export class Input {
|
|
|
640
640
|
* <label> element, ensuring that clicking the label text
|
|
641
641
|
* focuses the input.
|
|
642
642
|
*/
|
|
643
|
-
theme === 'ionic' && h("div", { key: '
|
|
643
|
+
theme === 'ionic' && h("div", { key: 'fd09b37c6a798900c5074e7cbe2e790ea050c29d', class: "input-outline" }), h("slot", { key: '3eef4c4748104d8722f3254a04ff88e2b70c560e', name: "start" }), h("input", Object.assign({ key: '012a3fa52e19422d7fbc227845e9771c7d8fbe4a', class: "native-input", ref: (input) => (this.nativeInput = input), id: inputId, disabled: disabled, autoCapitalize: this.autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, autoFocus: this.autofocus, enterKeyHint: this.enterkeyhint, inputMode: this.inputmode, min: this.min, max: this.max, minLength: this.minlength, maxLength: this.maxlength, multiple: this.multiple, name: this.name, pattern: this.pattern, placeholder: this.placeholder || '', readOnly: readonly, required: this.required, spellcheck: this.spellcheck, step: this.step, type: this.type, value: value, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, onKeyDown: this.onKeydown, onCompositionstart: this.onCompositionStart, onCompositionend: this.onCompositionEnd, "aria-describedby": this.getHintTextID(), "aria-invalid": this.isInvalid ? 'true' : undefined, "aria-labelledby": this.getLabelledById() }, this.inheritedAttributes)), clearInput && !readonly && !disabled && (h("button", { key: 'b115494d9611aea57a976d3102026f3d9b430bfb', "aria-label": "reset", type: "button", class: "input-clear-icon", onPointerDown: (ev) => {
|
|
644
644
|
/**
|
|
645
645
|
* This prevents mobile browsers from
|
|
646
646
|
* blurring the input when the clear
|
|
647
647
|
* button is activated.
|
|
648
648
|
*/
|
|
649
649
|
ev.preventDefault();
|
|
650
|
-
}, onClick: this.clearTextInput }, h("ion-icon", { key: '
|
|
650
|
+
}, onClick: this.clearTextInput }, h("ion-icon", { key: 'a259afa47a9914b2e0656364bed40644fa2c87c4', "aria-hidden": "true", icon: inputClearIcon }))), h("slot", { key: 'beec86eb500f6b335149c8734afc7c3945a10219', name: "end" })), shouldRenderHighlight && h("div", { key: '77a25d118934f369e09edbc2ffa6f90e3e760338', class: "input-highlight" })), this.renderBottomContent()));
|
|
651
651
|
}
|
|
652
652
|
static get is() { return "ion-input"; }
|
|
653
653
|
static get encapsulation() { return "scoped"; }
|
|
@@ -680,7 +680,7 @@ export class InputOTP {
|
|
|
680
680
|
const tabbableIndex = this.getTabbableIndex();
|
|
681
681
|
const pattern = this.getPattern();
|
|
682
682
|
const hasDescription = ((_b = (_a = el.querySelector('.input-otp-description')) === null || _a === void 0 ? void 0 : _a.textContent) === null || _b === void 0 ? void 0 : _b.trim()) !== '';
|
|
683
|
-
return (h(Host, { key: '
|
|
683
|
+
return (h(Host, { key: 'f39e98cd24cbf50f7db4e891dda9499f6def7986', class: createColorClasses(color, {
|
|
684
684
|
[mode]: true,
|
|
685
685
|
'has-focus': hasFocus,
|
|
686
686
|
[`input-otp-size-${size}`]: true,
|
|
@@ -688,10 +688,10 @@ export class InputOTP {
|
|
|
688
688
|
[`input-otp-fill-${fill}`]: true,
|
|
689
689
|
'input-otp-disabled': disabled,
|
|
690
690
|
'input-otp-readonly': readonly,
|
|
691
|
-
}) }, h("div", Object.assign({ key: '
|
|
691
|
+
}) }, h("div", Object.assign({ key: '624adcd552947708162003353b331cd92df062ef', role: "group", "aria-label": "One-time password input", class: "input-otp-group", part: "group" }, inheritedAttributes), Array.from({ length }).map((_, index) => (h(Fragment, null, h("div", { class: "native-wrapper", part: "container" }, h("input", { class: "native-input", part: "native", id: `${inputId}-${index}`, "aria-label": `Input ${index + 1} of ${length}`, type: "text", autoCapitalize: autocapitalize, inputmode: inputmode, pattern: pattern, disabled: disabled, readOnly: readonly, tabIndex: index === tabbableIndex ? 0 : -1, value: inputValues[index] || '', autocomplete: "one-time-code", ref: (el) => (inputRefs[index] = el), onInput: this.onInput(index), onBlur: this.onBlur, onFocus: this.onFocus(index), onKeyDown: this.onKeyDown(index), onPaste: this.onPaste })), this.showSeparator(index) && h("div", { class: "input-otp-separator", part: "separator" }))))), h("div", { key: 'c518d83ab0236a3ebbe631582ce6f1c2edfbcd29', class: {
|
|
692
692
|
'input-otp-description': true,
|
|
693
693
|
'input-otp-description-hidden': !hasDescription,
|
|
694
|
-
}, part: "description" }, h("slot", { key: '
|
|
694
|
+
}, part: "description" }, h("slot", { key: '15c7c8549c1788748e1ae31bd227a7f918cb5eca' }))));
|
|
695
695
|
}
|
|
696
696
|
static get is() { return "ion-input-otp"; }
|
|
697
697
|
static get encapsulation() { return "shadow"; }
|
|
@@ -94,16 +94,16 @@ export class InputPasswordToggle {
|
|
|
94
94
|
const { color, inputPasswordHideIcon, inputPasswordShowIcon, type } = this;
|
|
95
95
|
const mode = getIonMode(this);
|
|
96
96
|
const isPasswordVisible = type === 'text';
|
|
97
|
-
return (h(Host, { key: '
|
|
97
|
+
return (h(Host, { key: 'f11e3bf4d3255e003aec504e6dd3ee1e0caaf767', class: createColorClasses(color, {
|
|
98
98
|
[mode]: true,
|
|
99
|
-
}) }, h("ion-button", { key: '
|
|
99
|
+
}) }, h("ion-button", { key: '5bba43f7755857fd9347612bb906c389b60386b4', mode: mode, color: color, fill: "clear", shape: "round", "aria-label": isPasswordVisible ? 'Hide password' : 'Show password', "aria-pressed": isPasswordVisible ? 'true' : 'false', type: "button", onPointerDown: (ev) => {
|
|
100
100
|
/**
|
|
101
101
|
* This prevents mobile browsers from
|
|
102
102
|
* blurring the input when the password toggle
|
|
103
103
|
* button is activated.
|
|
104
104
|
*/
|
|
105
105
|
ev.preventDefault();
|
|
106
|
-
}, onClick: this.togglePasswordVisibility }, h("ion-icon", { key: '
|
|
106
|
+
}, onClick: this.togglePasswordVisibility }, h("ion-icon", { key: 'c0eb0e4e2f3e9553bfd519ff655064c9f62af406', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
|
|
107
107
|
}
|
|
108
108
|
static get is() { return "ion-input-password-toggle"; }
|
|
109
109
|
static get encapsulation() { return "shadow"; }
|