@ionic/core 8.8.9-dev.11780493937.17fe092d → 8.8.9-dev.11780683233.1c5e9d9b
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/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-content.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-footer.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-7kL3tltU.js +4 -0
- package/components/{p-CPm7KgOP.js → p-BFZBl0TS.js} +1 -1
- 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-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-DAXhdEp5.js → p-CsakePQg.js} +1 -1
- package/components/{p-CgSn4J7d.js → p-D1gEOh9B.js} +1 -1
- package/components/{p-IYdTEyGb.js → p-D3qBmaqi.js} +1 -1
- package/components/{p-Do7NMUwR.js → p-DGn-jQpr.js} +1 -1
- package/components/p-DH4JHV73.js +4 -0
- package/components/{p-DCS3n7Uq.js → p-DYK0qX7x.js} +1 -1
- 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-qclL-gNR.js +4 -0
- package/dist/cjs/ion-app_8.cjs.entry.js +33 -291
- 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 +79 -0
- package/dist/cjs/ion-gallery.cjs.entry.js +96 -14
- package/dist/cjs/ion-img.cjs.entry.js +2 -2
- package/dist/cjs/ion-infinite-scroll_2.cjs.entry.js +3 -3
- 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 +12 -12
- package/dist/cjs/ion-loading.cjs.entry.js +2 -2
- 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 +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 +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 +1 -1
- package/dist/cjs/ion-select_3.cjs.entry.js +6 -6
- 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 +2 -2
- 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/collection/collection-manifest.json +1 -0
- package/dist/collection/components/content/content.css +0 -56
- package/dist/collection/components/footer/footer.ios.css +0 -13
- package/dist/collection/components/footer/footer.js +18 -65
- package/dist/collection/components/footer/footer.md.css +0 -13
- package/dist/collection/components/footer/footer.utils.js +0 -9
- package/dist/collection/components/gallery/gallery.css +1 -86
- package/dist/collection/components/gallery/gallery.js +85 -16
- package/dist/collection/components/gallery/test/utils.js +13 -13
- package/dist/collection/components/gallery-item/gallery-item.css +87 -0
- package/dist/collection/components/gallery-item/gallery-item.js +95 -0
- package/dist/collection/components/grid/grid.js +2 -2
- package/dist/collection/components/header/header.ionic.css +0 -75
- package/dist/collection/components/header/header.ios.css +0 -75
- package/dist/collection/components/header/header.js +11 -41
- package/dist/collection/components/header/header.md.css +0 -75
- package/dist/collection/components/header/header.utils.js +0 -9
- 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-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 +3 -3
- package/dist/collection/components/select-modal/select-modal.js +1 -1
- package/dist/collection/components/select-option/select-option.js +1 -1
- package/dist/collection/components/select-popover/select-popover.js +2 -2
- 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/css-value-validation.js +14 -0
- package/dist/docs.json +96 -20
- package/dist/esm/ion-app_8.entry.js +33 -291
- 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 +77 -0
- package/dist/esm/ion-gallery.entry.js +96 -14
- package/dist/esm/ion-img.entry.js +2 -2
- package/dist/esm/ion-infinite-scroll_2.entry.js +3 -3
- 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 +12 -12
- package/dist/esm/ion-loading.entry.js +2 -2
- 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 +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 +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 +1 -1
- package/dist/esm/ion-select_3.entry.js +6 -6
- 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 +2 -2
- 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/html.html-data.json +45 -9
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-f7ca50a5.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-bf0c5a8d.entry.js → p-0e9d4e11.entry.js} +1 -1
- 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-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-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-3f18dfe9.entry.js → p-8eca5ba1.entry.js} +1 -1
- package/dist/ionic/{p-f08edb25.entry.js → p-96f52444.entry.js} +1 -1
- package/dist/ionic/{p-f167c55c.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-084c2623.entry.js → p-c5f745b4.entry.js} +1 -1
- package/dist/ionic/{p-52ed96a8.entry.js → p-c781241c.entry.js} +1 -1
- package/dist/ionic/p-cb154afe.entry.js +4 -0
- package/dist/ionic/{p-031df892.entry.js → p-cde69f38.entry.js} +1 -1
- package/dist/ionic/p-d6f0a698.entry.js +4 -0
- 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-e4071bf8.entry.js +4 -0
- 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/ionic/p-fdcbe59a.entry.js +4 -0
- package/dist/types/components/footer/footer.d.ts +2 -12
- package/dist/types/components/footer/footer.utils.d.ts +0 -1
- package/dist/types/components/gallery/gallery.d.ts +33 -8
- package/dist/types/components/gallery/test/utils.d.ts +1 -1
- package/dist/types/components/gallery-item/gallery-item.d.ts +35 -0
- package/dist/types/components/header/header.d.ts +3 -10
- package/dist/types/components/header/header.utils.d.ts +0 -1
- package/dist/types/components.d.ts +41 -12
- package/dist/types/utils/css-value-validation.d.ts +9 -0
- package/hydrate/index.js +334 -421
- package/hydrate/index.mjs +334 -421
- package/package.json +1 -1
- package/components/p-BF5oFX1I.js +0 -4
- package/components/p-CpFORZud.js +0 -4
- package/components/p-GElQZ38c.js +0 -4
- package/components/p-d77Zk1DK.js +0 -4
- package/components/p-hdGd8ben.js +0 -4
- package/dist/collection/utils/on-scroll/collapse-hide.utils.js +0 -168
- package/dist/ionic/p-04b5794c.entry.js +0 -4
- package/dist/ionic/p-2aa7567e.entry.js +0 -4
- package/dist/ionic/p-44d483c2.entry.js +0 -4
- package/dist/ionic/p-ad4d0138.entry.js +0 -4
- package/dist/ionic/p-ff09d2a5.entry.js +0 -4
- package/dist/types/utils/on-scroll/collapse-hide.utils.d.ts +0 -26
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
/*!
|
|
2
|
+
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
+
*/
|
|
4
|
+
import { r as registerInstance, f as printIonWarning, h, d as Host, g as getElement } from './index-Omi_TcwW.js';
|
|
5
|
+
import { c as getIonTheme } from './ionic-global--9mOmThr.js';
|
|
6
|
+
|
|
7
|
+
const galleryItemCss = () => `:host{display:block}::slotted(*){margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:100%}::slotted(img){display:block;-o-object-fit:cover;object-fit:cover;-o-object-position:center;object-position:center}:host(.in-gallery-layout-uniform) ::slotted(*){aspect-ratio:1/1}:host(.in-gallery-layout-masonry){min-height:unset;margin-bottom:var(--internal-gallery-gap, 16px)}`;
|
|
8
|
+
|
|
9
|
+
const GalleryItem = class {
|
|
10
|
+
constructor(hostRef) {
|
|
11
|
+
registerInstance(this, hostRef);
|
|
12
|
+
this.hasWarnedInvalidParent = false;
|
|
13
|
+
this.onSlotChange = () => {
|
|
14
|
+
this.warnInvalidParent();
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
componentWillLoad() {
|
|
18
|
+
var _a;
|
|
19
|
+
this.galleryEl = (_a = this.el.closest('ion-gallery')) !== null && _a !== void 0 ? _a : undefined;
|
|
20
|
+
this.syncLayoutClasses();
|
|
21
|
+
}
|
|
22
|
+
componentDidLoad() {
|
|
23
|
+
this.watchGalleryLayoutClasses();
|
|
24
|
+
this.warnInvalidParent();
|
|
25
|
+
}
|
|
26
|
+
disconnectedCallback() {
|
|
27
|
+
var _a;
|
|
28
|
+
(_a = this.galleryClassObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
29
|
+
this.galleryClassObserver = undefined;
|
|
30
|
+
this.galleryEl = undefined;
|
|
31
|
+
}
|
|
32
|
+
/**
|
|
33
|
+
* Warn when the item is not a descendant of an `ion-gallery`.
|
|
34
|
+
*/
|
|
35
|
+
warnInvalidParent() {
|
|
36
|
+
if (this.hasWarnedInvalidParent || this.galleryEl !== undefined) {
|
|
37
|
+
return;
|
|
38
|
+
}
|
|
39
|
+
printIonWarning('[ion-gallery-item] - This component should be used as a child of an "ion-gallery" component.', this.el);
|
|
40
|
+
this.hasWarnedInvalidParent = true;
|
|
41
|
+
}
|
|
42
|
+
/**
|
|
43
|
+
* Watch the parent gallery's class list so the item can react to layout
|
|
44
|
+
* changes (the gallery reflects its layout as a `gallery-layout-*` class).
|
|
45
|
+
*/
|
|
46
|
+
watchGalleryLayoutClasses() {
|
|
47
|
+
var _a;
|
|
48
|
+
const galleryEl = this.galleryEl;
|
|
49
|
+
if (galleryEl === undefined) {
|
|
50
|
+
return;
|
|
51
|
+
}
|
|
52
|
+
(_a = this.galleryClassObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
53
|
+
this.galleryClassObserver = new MutationObserver(() => this.syncLayoutClasses());
|
|
54
|
+
this.galleryClassObserver.observe(galleryEl, {
|
|
55
|
+
attributes: true,
|
|
56
|
+
attributeFilter: ['class'],
|
|
57
|
+
});
|
|
58
|
+
}
|
|
59
|
+
syncLayoutClasses() {
|
|
60
|
+
var _a;
|
|
61
|
+
const layout = (_a = this.galleryEl) === null || _a === void 0 ? void 0 : _a.layout;
|
|
62
|
+
this.galleryLayout = layout === 'masonry' || layout === 'uniform' ? layout : undefined;
|
|
63
|
+
}
|
|
64
|
+
render() {
|
|
65
|
+
const { galleryLayout } = this;
|
|
66
|
+
const theme = getIonTheme(this);
|
|
67
|
+
return (h(Host, { key: 'b3de6bf2df4af01ed274188a96d9e8cd82c9f5cd', class: {
|
|
68
|
+
[theme]: true,
|
|
69
|
+
'in-gallery-layout-uniform': galleryLayout === 'uniform',
|
|
70
|
+
'in-gallery-layout-masonry': galleryLayout === 'masonry',
|
|
71
|
+
} }, h("slot", { key: '5bef4549c5101178fec9b590cb6b553ddc5376c4', onSlotchange: this.onSlotChange })));
|
|
72
|
+
}
|
|
73
|
+
get el() { return getElement(this); }
|
|
74
|
+
};
|
|
75
|
+
GalleryItem.style = galleryItemCss();
|
|
76
|
+
|
|
77
|
+
export { GalleryItem as ion_gallery_item };
|
|
@@ -14,6 +14,9 @@ import './focus-visible-vXpMhGrs.js';
|
|
|
14
14
|
const LENGTH_PERCENTAGE_PATTERN = /^[-+]?(?:\d+\.?\d*|\.\d+)(?:%|[a-z]+)$/i;
|
|
15
15
|
// Matches simple `calc` / `min` / `max` / `clamp(...)` functions.
|
|
16
16
|
const MATH_FUNCTION_PATTERN = /^(calc|min|max|clamp)\s*\(.+\)$/i;
|
|
17
|
+
// Matches a `var(--name)` reference with an optional fallback, e.g.
|
|
18
|
+
// `var(--my-gap)` or `var(--my-gap, 16px)`.
|
|
19
|
+
const VAR_FUNCTION_PATTERN = /^var\(\s*--[^\s,)]+\s*(?:,[\s\S]*)?\)$/i;
|
|
17
20
|
/**
|
|
18
21
|
* Returns whether `value` matches the [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
|
|
19
22
|
* syntax. Accepts `<length>` (`<number>` + unit identifier) or `<percentage>` (`<number>%`).
|
|
@@ -28,6 +31,17 @@ function isValidLengthPercentage(value) {
|
|
|
28
31
|
}
|
|
29
32
|
return MATH_FUNCTION_PATTERN.test(v) || LENGTH_PERCENTAGE_PATTERN.test(v);
|
|
30
33
|
}
|
|
34
|
+
/**
|
|
35
|
+
* Returns whether `value` is a single [`var()`](https://developer.mozilla.org/en-US/docs/Web/CSS/var)
|
|
36
|
+
* reference, e.g. `var(--my-token)` or `var(--my-token, 16px)`. The referenced
|
|
37
|
+
* custom property is resolved by the browser, so the resolved value is not
|
|
38
|
+
* validated here.
|
|
39
|
+
*
|
|
40
|
+
* @param value String value to validate.
|
|
41
|
+
*/
|
|
42
|
+
function isCssVariable(value) {
|
|
43
|
+
return VAR_FUNCTION_PATTERN.test(value.trim());
|
|
44
|
+
}
|
|
31
45
|
|
|
32
46
|
const DEFAULT_COLUMNS = {
|
|
33
47
|
xs: 2,
|
|
@@ -39,7 +53,7 @@ const DEFAULT_COLUMNS = {
|
|
|
39
53
|
};
|
|
40
54
|
const DEFAULT_GAP = '16px';
|
|
41
55
|
|
|
42
|
-
const galleryCss = () => `:host{display:grid;grid-template-columns:repeat(var(--internal-gallery-columns, 2), minmax(0, 1fr))}:host(.gallery-layout-uniform){gap:var(--internal-gallery-gap, 16px)}:host(.gallery-layout-
|
|
56
|
+
const galleryCss = () => `:host{display:grid;grid-template-columns:repeat(var(--internal-gallery-columns, 2), minmax(0, 1fr))}:host(.gallery-layout-uniform){gap:var(--internal-gallery-gap, 16px)}:host(.gallery-layout-masonry){-ms-flex-align:start;align-items:start;-webkit-column-gap:var(--internal-gallery-gap, 16px);-moz-column-gap:var(--internal-gallery-gap, 16px);column-gap:var(--internal-gallery-gap, 16px);row-gap:0;grid-auto-rows:1px}`;
|
|
43
57
|
|
|
44
58
|
// TODO(FW-7285): Replace with global breakpoints
|
|
45
59
|
const BREAKPOINTS = {
|
|
@@ -51,6 +65,10 @@ const BREAKPOINTS = {
|
|
|
51
65
|
xxl: 1400,
|
|
52
66
|
};
|
|
53
67
|
const BREAKPOINT_ORDER = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
|
|
68
|
+
/**
|
|
69
|
+
* The tag of the component used to wrap each gallery item.
|
|
70
|
+
*/
|
|
71
|
+
const GALLERY_ITEM_SELECTOR = 'ion-gallery-item';
|
|
54
72
|
const Gallery = class {
|
|
55
73
|
constructor(hostRef) {
|
|
56
74
|
registerInstance(this, hostRef);
|
|
@@ -59,6 +77,7 @@ const Gallery = class {
|
|
|
59
77
|
this.hasWarnedInvalidColumns = false;
|
|
60
78
|
this.hasWarnedInvalidGap = false;
|
|
61
79
|
this.hasWarnedUnusedOrder = false;
|
|
80
|
+
this.hasWarnedInvalidItems = false;
|
|
62
81
|
/**
|
|
63
82
|
* The visual layout of the gallery. When `uniform`, rows take up the height
|
|
64
83
|
* of the tallest item and are spaced evenly across the gallery. Additionally,
|
|
@@ -75,7 +94,8 @@ const Gallery = class {
|
|
|
75
94
|
/**
|
|
76
95
|
* The space between gallery items. Accepts valid CSS [length-percentage](https://developer.mozilla.org/en-US/docs/Web/CSS/Reference/Values/length-percentage)
|
|
77
96
|
* values like `16px`, `1rem`, `20%`, math functions like `calc(10px + 20%)`,
|
|
78
|
-
* or numbers (treated as pixel
|
|
97
|
+
* CSS variables like `var(--app-gallery-gap)`, or numbers (treated as pixel
|
|
98
|
+
* values). Can also be set as a breakpoint map
|
|
79
99
|
* (e.g. `{ xs: '8px', sm: '1rem', md: '24px' }`). Does not accept
|
|
80
100
|
* space-separated values or CSS keyword values like `inherit`, `auto`, etc.
|
|
81
101
|
*/
|
|
@@ -87,6 +107,9 @@ const Gallery = class {
|
|
|
87
107
|
* are added or removed from the gallery.
|
|
88
108
|
*/
|
|
89
109
|
this.onSlotChange = () => {
|
|
110
|
+
// Re-observe so newly added items are watched for size changes (e.g. a
|
|
111
|
+
// freshly appended item finishing hydration), then recompute placement.
|
|
112
|
+
this.observeResizes();
|
|
90
113
|
this.scheduleMasonryResize();
|
|
91
114
|
};
|
|
92
115
|
/**
|
|
@@ -130,7 +153,7 @@ const Gallery = class {
|
|
|
130
153
|
this.updateResponsiveStyles();
|
|
131
154
|
this.scheduleMasonryResize();
|
|
132
155
|
});
|
|
133
|
-
this.
|
|
156
|
+
this.observeResizes();
|
|
134
157
|
this.scheduleMasonryResize();
|
|
135
158
|
this.warnUnusedOrder();
|
|
136
159
|
}
|
|
@@ -143,6 +166,22 @@ const Gallery = class {
|
|
|
143
166
|
(_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
144
167
|
this.resizeObserver = undefined;
|
|
145
168
|
}
|
|
169
|
+
/**
|
|
170
|
+
* Observe the host and each item for size changes. Items are observed in
|
|
171
|
+
* addition to the host so masonry placement is recomputed when an item's
|
|
172
|
+
* rendered height changes — most importantly when a dynamically added
|
|
173
|
+
* `ion-gallery-item` finishes hydrating, which (unlike an `<img>`) emits no
|
|
174
|
+
* `load` event and does not change the host's measured size while collapsed.
|
|
175
|
+
*/
|
|
176
|
+
observeResizes() {
|
|
177
|
+
const observer = this.resizeObserver;
|
|
178
|
+
if (observer === undefined) {
|
|
179
|
+
return;
|
|
180
|
+
}
|
|
181
|
+
observer.disconnect();
|
|
182
|
+
observer.observe(this.el);
|
|
183
|
+
this.getItems().forEach((item) => observer.observe(item));
|
|
184
|
+
}
|
|
146
185
|
/**
|
|
147
186
|
* Listen for the load event on child elements.
|
|
148
187
|
* When the layout is `masonry`, this listener is used to schedule a resize
|
|
@@ -196,9 +235,10 @@ const Gallery = class {
|
|
|
196
235
|
return numericColumns;
|
|
197
236
|
}
|
|
198
237
|
/**
|
|
199
|
-
* Normalize a single gap value (`gap` as a number, string
|
|
200
|
-
*
|
|
201
|
-
*
|
|
238
|
+
* Normalize a single gap value (`gap` as a number, a string such as a CSS
|
|
239
|
+
* length-percentage or `var()` reference, or one entry from a `gap`
|
|
240
|
+
* breakpoint map) to a CSS length string. Returns `undefined` when the
|
|
241
|
+
* input cannot be interpreted as a valid CSS length or `var()` reference.
|
|
202
242
|
*/
|
|
203
243
|
sanitizeGap(gap) {
|
|
204
244
|
if (gap === undefined) {
|
|
@@ -215,6 +255,9 @@ const Gallery = class {
|
|
|
215
255
|
if (typeof normalizedGap !== 'string') {
|
|
216
256
|
return undefined;
|
|
217
257
|
}
|
|
258
|
+
if (isCssVariable(normalizedGap)) {
|
|
259
|
+
return normalizedGap;
|
|
260
|
+
}
|
|
218
261
|
const isValidCssLength = isValidLengthPercentage(normalizedGap);
|
|
219
262
|
return isValidCssLength ? normalizedGap : undefined;
|
|
220
263
|
}
|
|
@@ -295,7 +338,7 @@ const Gallery = class {
|
|
|
295
338
|
if (this.hasWarnedInvalidGap) {
|
|
296
339
|
return;
|
|
297
340
|
}
|
|
298
|
-
printIonWarning(`[ion-gallery] - Invalid "gap" value (${JSON.stringify(gap)}). Expected a non-negative number, CSS length string, or breakpoint map object (e.g. { xs: 8, md: "1rem" }).`, this.el);
|
|
341
|
+
printIonWarning(`[ion-gallery] - Invalid "gap" value (${JSON.stringify(gap)}). Expected a non-negative number, CSS length string, CSS variable (e.g. var(--app-gap)), or breakpoint map object (e.g. { xs: 8, md: "1rem" }).`, this.el);
|
|
299
342
|
this.hasWarnedInvalidGap = true;
|
|
300
343
|
}
|
|
301
344
|
/**
|
|
@@ -367,11 +410,43 @@ const Gallery = class {
|
|
|
367
410
|
this.el.style.setProperty('--internal-gallery-gap', `${gap}`);
|
|
368
411
|
}
|
|
369
412
|
/**
|
|
370
|
-
* Return
|
|
371
|
-
*
|
|
413
|
+
* Return the `ion-gallery-item` elements to place in the grid. Each item is a
|
|
414
|
+
* direct grid cell. A direct child that is not an `ion-gallery-item` is
|
|
415
|
+
* treated as a pass-through wrapper (e.g. a layout `<div>`): its box is
|
|
416
|
+
* collapsed with `display: contents` so the nested items participate in the
|
|
417
|
+
* gallery grid. Children that contain no `ion-gallery-item` are ignored.
|
|
372
418
|
*/
|
|
373
419
|
getItems() {
|
|
374
|
-
|
|
420
|
+
const items = [];
|
|
421
|
+
Array.from(this.el.children).forEach((child) => {
|
|
422
|
+
// Standard path: <ion-gallery-item> is a direct child of <ion-gallery>.
|
|
423
|
+
if (child.matches(GALLERY_ITEM_SELECTOR)) {
|
|
424
|
+
items.push(child);
|
|
425
|
+
return;
|
|
426
|
+
}
|
|
427
|
+
// Compatibility path: a wrapper element may contain <ion-gallery-item>
|
|
428
|
+
// components. Collapse the wrapper's box so the items participate in the
|
|
429
|
+
// gallery grid.
|
|
430
|
+
const nestedItems = Array.from(child.querySelectorAll(GALLERY_ITEM_SELECTOR));
|
|
431
|
+
if (nestedItems.length === 0) {
|
|
432
|
+
this.warnInvalidItems();
|
|
433
|
+
return;
|
|
434
|
+
}
|
|
435
|
+
child.style.display = 'contents';
|
|
436
|
+
items.push(...nestedItems);
|
|
437
|
+
});
|
|
438
|
+
return items;
|
|
439
|
+
}
|
|
440
|
+
/**
|
|
441
|
+
* Warn when the gallery has content that is not wrapped in an
|
|
442
|
+
* `ion-gallery-item` component.
|
|
443
|
+
*/
|
|
444
|
+
warnInvalidItems() {
|
|
445
|
+
if (this.hasWarnedInvalidItems) {
|
|
446
|
+
return;
|
|
447
|
+
}
|
|
448
|
+
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);
|
|
449
|
+
this.hasWarnedInvalidItems = true;
|
|
375
450
|
}
|
|
376
451
|
/**
|
|
377
452
|
* Clear the item styles for the given item element.
|
|
@@ -389,12 +464,19 @@ const Gallery = class {
|
|
|
389
464
|
clearMasonryStyles() {
|
|
390
465
|
this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
|
|
391
466
|
}
|
|
467
|
+
/**
|
|
468
|
+
* Whether the item contains any images that have not finished loading.
|
|
469
|
+
* Used to defer masonry placement until the rendered height is final.
|
|
470
|
+
*/
|
|
471
|
+
hasUnloadedImages(itemEl) {
|
|
472
|
+
return Array.from(itemEl.querySelectorAll('img')).some((img) => !img.complete || img.naturalHeight === 0);
|
|
473
|
+
}
|
|
392
474
|
/**
|
|
393
475
|
* Convert a rendered item height to the number of grid rows it should span.
|
|
394
|
-
* Returns undefined
|
|
476
|
+
* Returns undefined when the item has images that are not fully loaded yet.
|
|
395
477
|
*/
|
|
396
478
|
calculateRowSpan(itemEl, rowHeight, rowGap) {
|
|
397
|
-
if (
|
|
479
|
+
if (this.hasUnloadedImages(itemEl)) {
|
|
398
480
|
return undefined;
|
|
399
481
|
}
|
|
400
482
|
const height = itemEl.getBoundingClientRect().height;
|
|
@@ -481,11 +563,11 @@ const Gallery = class {
|
|
|
481
563
|
const { layout } = this;
|
|
482
564
|
const order = this.getOrder();
|
|
483
565
|
const theme = getIonTheme(this);
|
|
484
|
-
return (h(Host, { key: '
|
|
566
|
+
return (h(Host, { key: '2063823917f4ab8430aee0e17ae0f3a2b53341d1', class: {
|
|
485
567
|
[theme]: true,
|
|
486
568
|
[`gallery-layout-${layout}`]: true,
|
|
487
569
|
[`gallery-order-${order}`]: layout === 'masonry' && order !== undefined,
|
|
488
|
-
} }, h("slot", { key: '
|
|
570
|
+
} }, h("slot", { key: '1378f489afb6b05181d2513f664c4efe24ad3598', onSlotchange: this.onSlotChange })));
|
|
489
571
|
}
|
|
490
572
|
get el() { return getElement(this); }
|
|
491
573
|
static get watchers() { return {
|
|
@@ -82,9 +82,9 @@ const Img = class {
|
|
|
82
82
|
const { loadSrc, alt, onLoad, loadError, inheritedAttributes } = this;
|
|
83
83
|
const { draggable } = inheritedAttributes;
|
|
84
84
|
const theme = getIonTheme(this);
|
|
85
|
-
return (h(Host, { key: '
|
|
85
|
+
return (h(Host, { key: 'ba84621055567b2a35387709d9d89b97ad853274', class: {
|
|
86
86
|
[theme]: true,
|
|
87
|
-
} }, h("img", { key: '
|
|
87
|
+
} }, h("img", { key: '9d6118bbf69e2cccbb0603802c03b9a0d101e2c3', decoding: "async", src: loadSrc, alt: alt, onLoad: onLoad, onError: loadError, part: "image", draggable: isDraggable(draggable) })));
|
|
88
88
|
}
|
|
89
89
|
get el() { return getElement(this); }
|
|
90
90
|
static get watchers() { return {
|
|
@@ -269,7 +269,7 @@ const InfiniteScroll = class {
|
|
|
269
269
|
render() {
|
|
270
270
|
const theme = getIonTheme(this);
|
|
271
271
|
const disabled = this.disabled;
|
|
272
|
-
return (h(Host, { key: '
|
|
272
|
+
return (h(Host, { key: 'e3a3cde079dfd6f07e565eb462765df757cbb128', class: {
|
|
273
273
|
[theme]: true,
|
|
274
274
|
'infinite-scroll-loading': this.isLoading,
|
|
275
275
|
'infinite-scroll-enabled': !disabled,
|
|
@@ -313,11 +313,11 @@ const InfiniteScrollContent = class {
|
|
|
313
313
|
}
|
|
314
314
|
render() {
|
|
315
315
|
const theme = getIonTheme(this);
|
|
316
|
-
return (h(Host, { key: '
|
|
316
|
+
return (h(Host, { key: '263a27297159ced042f7552a1e14b8c6aba62fa8', class: {
|
|
317
317
|
[theme]: true,
|
|
318
318
|
// Used internally for styling
|
|
319
319
|
[`infinite-scroll-content-${theme}`]: true,
|
|
320
|
-
} }, h("div", { key: '
|
|
320
|
+
} }, 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())));
|
|
321
321
|
}
|
|
322
322
|
};
|
|
323
323
|
InfiniteScrollContent.style = {
|
|
@@ -690,7 +690,7 @@ const InputOTP = class {
|
|
|
690
690
|
const tabbableIndex = this.getTabbableIndex();
|
|
691
691
|
const pattern = this.getPattern();
|
|
692
692
|
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()) !== '';
|
|
693
|
-
return (h(Host, { key: '
|
|
693
|
+
return (h(Host, { key: 'f39e98cd24cbf50f7db4e891dda9499f6def7986', class: createColorClasses(color, {
|
|
694
694
|
[mode]: true,
|
|
695
695
|
'has-focus': hasFocus,
|
|
696
696
|
[`input-otp-size-${size}`]: true,
|
|
@@ -698,10 +698,10 @@ const InputOTP = class {
|
|
|
698
698
|
[`input-otp-fill-${fill}`]: true,
|
|
699
699
|
'input-otp-disabled': disabled,
|
|
700
700
|
'input-otp-readonly': readonly,
|
|
701
|
-
}) }, h("div", Object.assign({ key: '
|
|
701
|
+
}) }, 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: {
|
|
702
702
|
'input-otp-description': true,
|
|
703
703
|
'input-otp-description-hidden': !hasDescription,
|
|
704
|
-
}, part: "description" }, h("slot", { key: '
|
|
704
|
+
}, part: "description" }, h("slot", { key: '15c7c8549c1788748e1ae31bd227a7f918cb5eca' }))));
|
|
705
705
|
}
|
|
706
706
|
static get formAssociated() { return true; }
|
|
707
707
|
get el() { return getElement(this); }
|
|
@@ -99,16 +99,16 @@ const InputPasswordToggle = class {
|
|
|
99
99
|
const { color, inputPasswordHideIcon, inputPasswordShowIcon, type } = this;
|
|
100
100
|
const mode = getIonMode(this);
|
|
101
101
|
const isPasswordVisible = type === 'text';
|
|
102
|
-
return (h(Host, { key: '
|
|
102
|
+
return (h(Host, { key: 'f11e3bf4d3255e003aec504e6dd3ee1e0caaf767', class: createColorClasses(color, {
|
|
103
103
|
[mode]: true,
|
|
104
|
-
}) }, h("ion-button", { key: '
|
|
104
|
+
}) }, 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) => {
|
|
105
105
|
/**
|
|
106
106
|
* This prevents mobile browsers from
|
|
107
107
|
* blurring the input when the password toggle
|
|
108
108
|
* button is activated.
|
|
109
109
|
*/
|
|
110
110
|
ev.preventDefault();
|
|
111
|
-
}, onClick: this.togglePasswordVisibility }, h("ion-icon", { key: '
|
|
111
|
+
}, onClick: this.togglePasswordVisibility }, h("ion-icon", { key: 'c0eb0e4e2f3e9553bfd519ff655064c9f62af406', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? inputPasswordHideIcon : inputPasswordShowIcon }))));
|
|
112
112
|
}
|
|
113
113
|
get el() { return getElement(this); }
|
|
114
114
|
static get watchers() { return {
|
|
@@ -620,7 +620,7 @@ const Input = class {
|
|
|
620
620
|
* TODO(FW-5592): Remove hasStartEndSlots condition
|
|
621
621
|
*/
|
|
622
622
|
const labelShouldFloat = labelPlacement === 'stacked' || (labelPlacement === 'floating' && (hasValue || hasFocus || hasStartEndSlots));
|
|
623
|
-
return (h(Host, { key: '
|
|
623
|
+
return (h(Host, { key: '3da29d837b5abe22de740ac96c8142422fce537a', class: createColorClasses(this.color, {
|
|
624
624
|
[theme]: true,
|
|
625
625
|
'has-value': hasValue,
|
|
626
626
|
'has-focus': hasFocus,
|
|
@@ -633,7 +633,7 @@ const Input = class {
|
|
|
633
633
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
634
634
|
'input-disabled': disabled,
|
|
635
635
|
'input-readonly': readonly,
|
|
636
|
-
}) }, h("label", { key: '
|
|
636
|
+
}) }, h("label", { key: '142a8230382a05938887e9c0790832218ac37697', class: "input-wrapper", htmlFor: inputId, onClick: this.onLabelClick }, this.renderLabelContainer(), h("div", { key: '953f247ea2f40545e01e0346549d9b7aa344b720', class: "native-wrapper", onClick: this.onLabelClick },
|
|
637
637
|
/**
|
|
638
638
|
* For the ionic theme, we render the outline container here
|
|
639
639
|
* instead of higher up, so it can be positioned relative to
|
|
@@ -643,14 +643,14 @@ const Input = class {
|
|
|
643
643
|
* <label> element, ensuring that clicking the label text
|
|
644
644
|
* focuses the input.
|
|
645
645
|
*/
|
|
646
|
-
theme === 'ionic' && h("div", { key: '
|
|
646
|
+
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) => {
|
|
647
647
|
/**
|
|
648
648
|
* This prevents mobile browsers from
|
|
649
649
|
* blurring the input when the clear
|
|
650
650
|
* button is activated.
|
|
651
651
|
*/
|
|
652
652
|
ev.preventDefault();
|
|
653
|
-
}, onClick: this.clearTextInput }, h("ion-icon", { key: '
|
|
653
|
+
}, 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()));
|
|
654
654
|
}
|
|
655
655
|
get el() { return getElement(this); }
|
|
656
656
|
static get watchers() { return {
|
|
@@ -68,14 +68,14 @@ const ItemOption = class {
|
|
|
68
68
|
href: this.href,
|
|
69
69
|
target: this.target,
|
|
70
70
|
};
|
|
71
|
-
return (h(Host, { key: '
|
|
71
|
+
return (h(Host, { key: '8f1bad23fd3ccbb9d54d57765e6731cd2ee07306', onClick: this.onClick, class: createColorClasses(this.color, {
|
|
72
72
|
[theme]: true,
|
|
73
73
|
[`item-option-${shape}`]: shape !== undefined,
|
|
74
74
|
[`item-option-${hue}`]: hue !== undefined,
|
|
75
75
|
'item-option-disabled': disabled,
|
|
76
76
|
'item-option-expandable': expandable,
|
|
77
77
|
'ion-activatable': true,
|
|
78
|
-
}) }, h(TagType, Object.assign({ key: '
|
|
78
|
+
}) }, h(TagType, Object.assign({ key: '2baf904e356a87ed463ee5f517e0e95f90b2ef30' }, attrs, { class: "button-native", part: "native", disabled: disabled }), h("span", { key: '49b627f72dffd1b150ccd808b1b1f63bbe78e2de', class: "button-inner", part: "inner" }, h("slot", { key: 'cdb52f76f1d7e5df411215f17eb76ad25e36241a', name: "top" }), h("div", { key: '864204667c6e3ba6f989b24e96c131b67e55d408', class: "horizontal-wrapper", part: "container" }, h("slot", { key: '474f4aab708842bb7ef74cb6f1fbe601ceff82cf', name: "start" }), h("slot", { key: '2bd726c5ba3ee079a623f1f6229d1ac2afd3e291', name: "icon-only" }), h("slot", { key: '2d1a673c447ebf82c92f944ec9e83a5b38698307' }), h("slot", { key: '8d0f9337cd84c725190cffd25d74044075e85ab0', name: "end" })), h("slot", { key: 'a674039b26d9cbb886e88ea721bbc210484aba9f', name: "bottom" })), theme === 'md' && h("ion-ripple-effect", { key: '3e45bf18b7992943c47ece47e9358f4da0b8e865' }))));
|
|
79
79
|
}
|
|
80
80
|
get el() { return getElement(this); }
|
|
81
81
|
};
|
|
@@ -110,7 +110,7 @@ const ItemOptions = class {
|
|
|
110
110
|
render() {
|
|
111
111
|
const theme = getIonTheme(this);
|
|
112
112
|
const isEnd = isEndSide(this.side);
|
|
113
|
-
return (h(Host, { key: '
|
|
113
|
+
return (h(Host, { key: 'ed05ceebf2cda943ac9efea2f91b71f7e8fc55e8', class: {
|
|
114
114
|
[theme]: true,
|
|
115
115
|
// Used internally for styling
|
|
116
116
|
[`item-options-${theme}`]: true,
|
|
@@ -904,7 +904,7 @@ const ItemSliding = class {
|
|
|
904
904
|
}
|
|
905
905
|
render() {
|
|
906
906
|
const theme = getIonTheme(this);
|
|
907
|
-
return (h(Host, { key: '
|
|
907
|
+
return (h(Host, { key: '47de8c8a9721f9223b42d6722a9ad32f378818aa', class: {
|
|
908
908
|
[theme]: true,
|
|
909
909
|
'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
|
|
910
910
|
'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
|
|
@@ -308,11 +308,11 @@ const ItemDivider = class {
|
|
|
308
308
|
}
|
|
309
309
|
render() {
|
|
310
310
|
const theme = getIonTheme(this);
|
|
311
|
-
return (h(Host, { key: '
|
|
311
|
+
return (h(Host, { key: 'dc73f348b5376faa40ba4bc6bba3d5c9e5ec5ab2', class: createColorClasses(this.color, {
|
|
312
312
|
[theme]: true,
|
|
313
313
|
'item-divider-sticky': this.sticky,
|
|
314
314
|
item: true,
|
|
315
|
-
}) }, h("slot", { key: '
|
|
315
|
+
}) }, h("slot", { key: '0f535b2cf91f2ec042aa59a89498cfa0e4d541a0', name: "start" }), h("div", { key: '867c8c1a1bd273a5f5018f77785f11d58152e8b9', class: "item-divider-inner", part: "inner" }, h("div", { key: 'c32b2a5658d27cf5d8cd8ffbfa476c02755e1afd', class: "item-divider-wrapper", part: "container" }, h("slot", { key: 'f8b0fea29a910cd2e36301586532be3a8348c31e' })), h("slot", { key: '418750f630c851cf04b6a278c1666c6cf33c113c', name: "end" }))));
|
|
316
316
|
}
|
|
317
317
|
get el() { return getElement(this); }
|
|
318
318
|
};
|
|
@@ -334,7 +334,7 @@ const ItemGroup = class {
|
|
|
334
334
|
}
|
|
335
335
|
render() {
|
|
336
336
|
const theme = getIonTheme(this);
|
|
337
|
-
return (h(Host, { key: '
|
|
337
|
+
return (h(Host, { key: '017c8f7cd0258e1864423337ddd1b1cb522f64ed', role: "group", class: {
|
|
338
338
|
[theme]: true,
|
|
339
339
|
// Used internally for styling
|
|
340
340
|
[`item-group-${theme}`]: true,
|
|
@@ -408,13 +408,13 @@ const Label = class {
|
|
|
408
408
|
render() {
|
|
409
409
|
const position = this.position;
|
|
410
410
|
const theme = getIonTheme(this);
|
|
411
|
-
return (h(Host, { key: '
|
|
411
|
+
return (h(Host, { key: 'b1f261db441bcb0a325a5b3e21da17764a56f17c', class: createColorClasses(this.color, {
|
|
412
412
|
[theme]: true,
|
|
413
413
|
'in-item-color': hostContext('ion-item.ion-color', this.el),
|
|
414
414
|
[`label-${position}`]: position !== undefined,
|
|
415
415
|
[`label-no-animate`]: this.noAnimate,
|
|
416
416
|
'label-rtl': document.dir === 'rtl',
|
|
417
|
-
}) }, h("slot", { key: '
|
|
417
|
+
}) }, h("slot", { key: '490444c8c0d4cf72eae3f8abfb7ed7ecc30bb213' })));
|
|
418
418
|
}
|
|
419
419
|
get el() { return getElement(this); }
|
|
420
420
|
static get watchers() { return {
|
|
@@ -478,7 +478,7 @@ const List = class {
|
|
|
478
478
|
const theme = getIonTheme(this);
|
|
479
479
|
const shape = this.getShape();
|
|
480
480
|
const { lines, inset } = this;
|
|
481
|
-
return (h(Host, { key: '
|
|
481
|
+
return (h(Host, { key: '9be30ff6e75e020c0db7054800cb874efef26bd8', role: "list", class: {
|
|
482
482
|
[theme]: true,
|
|
483
483
|
// Used internally for styling
|
|
484
484
|
[`list-${theme}`]: true,
|
|
@@ -509,10 +509,10 @@ const ListHeader = class {
|
|
|
509
509
|
render() {
|
|
510
510
|
const { lines } = this;
|
|
511
511
|
const theme = getIonTheme(this);
|
|
512
|
-
return (h(Host, { key: '
|
|
512
|
+
return (h(Host, { key: '7a1632a069317285210f4aeae50a6f2ef6955c56', class: createColorClasses(this.color, {
|
|
513
513
|
[theme]: true,
|
|
514
514
|
[`list-header-lines-${lines}`]: lines !== undefined,
|
|
515
|
-
}) }, h("div", { key: '
|
|
515
|
+
}) }, h("div", { key: 'a9a9463f209023da222f38a78126d5aaeb2f03b9', class: "list-header-inner", part: "inner" }, h("slot", { key: 'e3c6ec1b588392d347844d59d338abc339e80634' }))));
|
|
516
516
|
}
|
|
517
517
|
};
|
|
518
518
|
ListHeader.style = {
|
|
@@ -533,9 +533,9 @@ const Note = class {
|
|
|
533
533
|
}
|
|
534
534
|
render() {
|
|
535
535
|
const theme = getIonTheme(this);
|
|
536
|
-
return (h(Host, { key: '
|
|
536
|
+
return (h(Host, { key: '376ae1c66c19d1bdd74a2371c0639ed9e49648b5', class: createColorClasses(this.color, {
|
|
537
537
|
[theme]: true,
|
|
538
|
-
}) }, h("slot", { key: '
|
|
538
|
+
}) }, h("slot", { key: 'f8168cd88bb21c5e5a2b03c29539729fb38a19fd' })));
|
|
539
539
|
}
|
|
540
540
|
};
|
|
541
541
|
Note.style = {
|
|
@@ -571,11 +571,11 @@ const SkeletonText = class {
|
|
|
571
571
|
const animated = this.animated && config.getBoolean('animated', true);
|
|
572
572
|
const inMedia = hostContext('ion-avatar', this.el) || hostContext('ion-thumbnail', this.el);
|
|
573
573
|
const theme = getIonTheme(this);
|
|
574
|
-
return (h(Host, { key: '
|
|
574
|
+
return (h(Host, { key: '370451ee8963b776079f5df365f7bbd70a53b270', class: {
|
|
575
575
|
[theme]: true,
|
|
576
576
|
'skeleton-text-animated': animated,
|
|
577
577
|
'in-media': inMedia,
|
|
578
|
-
} }, h("span", { key: '
|
|
578
|
+
} }, h("span", { key: '2b861b4ec86cbd61927ab7b81b13517c99dc94c7' }, "\u00A0")));
|
|
579
579
|
}
|
|
580
580
|
get el() { return getElement(this); }
|
|
581
581
|
};
|
|
@@ -278,9 +278,9 @@ const Loading = class {
|
|
|
278
278
|
* Otherwise, don't set aria-labelledby.
|
|
279
279
|
*/
|
|
280
280
|
const ariaLabelledBy = message !== undefined ? msgId : null;
|
|
281
|
-
return (h(Host, Object.assign({ key: '
|
|
281
|
+
return (h(Host, Object.assign({ key: '2ffae36b20a7d7f3a752a062d90062583e31d053', role: "dialog", "aria-modal": "true", "aria-labelledby": ariaLabelledBy, tabindex: "-1" }, htmlAttributes, { style: {
|
|
282
282
|
zIndex: `${40000 + this.overlayIndex}`,
|
|
283
|
-
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: '
|
|
283
|
+
}, onIonBackdropTap: this.onBackdropTap, class: Object.assign(Object.assign({}, getClassMap(this.cssClass)), { [theme]: true, 'overlay-hidden': true, 'loading-translucent': this.translucent }) }), h("ion-backdrop", { key: 'a6d8cac2c34a0905ec67a2c64be7ec12cc84f168', visible: this.showBackdrop, tappable: this.backdropDismiss }), h("div", { key: 'cd011d86f20869096a8546f098fb5edad44033a1', tabindex: "0", "aria-hidden": "true" }), h("div", { key: '70298be2139d6004e0f8fc5a85c5d05f1efdc347', class: "loading-wrapper ion-overlay-wrapper" }, spinner && (h("div", { key: '32aef90695d91e0a82696abbce96ba29cb1a2608', class: "loading-spinner" }, h("ion-spinner", { key: '7ae69c27be273cf3e83230dae043168df27ac27e', name: spinner, "aria-hidden": "true" }))), message !== undefined && this.renderLoadingMessage(msgId)), h("div", { key: 'f13a01b31516c3fe85dd3a623962290c03e7412f', tabindex: "0", "aria-hidden": "true" })));
|
|
284
284
|
}
|
|
285
285
|
get el() { return getElement(this); }
|
|
286
286
|
static get watchers() { return {
|
|
@@ -664,14 +664,14 @@ const Menu = class {
|
|
|
664
664
|
* the ionBackButton listener in the menu controller
|
|
665
665
|
* will handle closing the menu when Escape is pressed.
|
|
666
666
|
*/
|
|
667
|
-
return (h(Host, { key: '
|
|
667
|
+
return (h(Host, { key: '76e15d710fbbbd2e64795224decc3673fd160db0', onKeyDown: shouldUseCloseWatcher() ? null : this.onKeydown, role: "navigation", "aria-label": inheritedAttributes['aria-label'] || 'menu', class: {
|
|
668
668
|
[theme]: true,
|
|
669
669
|
[`menu-type-${type}`]: true,
|
|
670
670
|
'menu-enabled': !disabled,
|
|
671
671
|
[`menu-side-${side}`]: true,
|
|
672
672
|
'menu-pane-visible': isPaneVisible,
|
|
673
673
|
'split-pane-side': hostContext('ion-split-pane', el),
|
|
674
|
-
} }, h("div", { key: '
|
|
674
|
+
} }, h("div", { key: 'cc0a0773caff97aefa98015bf3e36631173d2b4f', class: "menu-inner", part: "container", ref: (el) => (this.menuInnerEl = el) }, h("slot", { key: '0b90d1248bdf3bedafda7913189635c8d010abb6' })), h("ion-backdrop", { key: '4fb7013bc61161e6e336541ed25605219410f749', ref: (el) => (this.backdropEl = el), class: "menu-backdrop", tappable: false, stopPropagation: false, part: "backdrop" })));
|
|
675
675
|
}
|
|
676
676
|
get el() { return getElement(this); }
|
|
677
677
|
static get watchers() { return {
|
|
@@ -772,7 +772,7 @@ const MenuButton = class {
|
|
|
772
772
|
type: this.type,
|
|
773
773
|
};
|
|
774
774
|
const ariaLabel = inheritedAttributes['aria-label'] || 'menu';
|
|
775
|
-
return (h(Host, { key: '
|
|
775
|
+
return (h(Host, { key: '341ca3bfac81ce4432eef5d2fd738becd1dfb07e', onClick: this.onClick, "aria-disabled": disabled ? 'true' : null, "aria-hidden": hidden ? 'true' : null, class: createColorClasses(color, {
|
|
776
776
|
[theme]: true,
|
|
777
777
|
button: true, // ion-buttons target .button
|
|
778
778
|
'menu-button-hidden': hidden,
|
|
@@ -781,7 +781,7 @@ const MenuButton = class {
|
|
|
781
781
|
'in-toolbar-color': hostContext('ion-toolbar[color]', this.el),
|
|
782
782
|
'ion-activatable': true,
|
|
783
783
|
'ion-focusable': true,
|
|
784
|
-
}) }, h("button", Object.assign({ key: '
|
|
784
|
+
}) }, h("button", Object.assign({ key: '6e6229df2fc1f2d18294a5fbf7fe71e7dd47666a' }, attrs, { disabled: disabled, class: "button-native", part: "native", "aria-label": ariaLabel }), h("span", { key: '0216acbf67d7aa5edc52328f7ded4cb98bc8a237', class: "button-inner" }, h("slot", { key: '5c2cdae42add9a25d3e6323048fcbc6b5fc9b32e' }, h("ion-icon", { key: '5b38c283957cd2f1ad659427dec612fc84fc054f', part: "icon", icon: menuIcon, lazy: false, "aria-hidden": "true" }))), theme === 'md' && h("ion-ripple-effect", { key: 'adabe4ffa1d66fe36d55294d774db9c4bba1ad76', type: "unbounded" }))));
|
|
785
785
|
}
|
|
786
786
|
get el() { return getElement(this); }
|
|
787
787
|
};
|
|
@@ -817,10 +817,10 @@ const MenuToggle = class {
|
|
|
817
817
|
render() {
|
|
818
818
|
const theme = getIonTheme(this);
|
|
819
819
|
const hidden = this.autoHide && !this.visible;
|
|
820
|
-
return (h(Host, { key: '
|
|
820
|
+
return (h(Host, { key: '9ef631d9ae370a8740e691d281863203bfdddc38', onClick: this.onClick, "aria-hidden": hidden ? 'true' : null, class: {
|
|
821
821
|
[theme]: true,
|
|
822
822
|
'menu-toggle-hidden': hidden,
|
|
823
|
-
} }, h("slot", { key: '
|
|
823
|
+
} }, h("slot", { key: 'f8d9dfc562ed625ae47ec771ef6b2ea04bc463f4' })));
|
|
824
824
|
}
|
|
825
825
|
};
|
|
826
826
|
MenuToggle.style = menuToggleCss();
|