@ionic/core 8.8.6-dev.11777668103.132817bd → 8.8.6-dev.11777928681.1e4919af
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-col.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-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-Di5rHO3q.js → p-BTYqyHph.js} +1 -1
- package/components/{p-BqImG3uk.js → p-BU8N7ZrK.js} +1 -1
- package/components/{p-BXcCGjEc.js → p-BfHB6wX_.js} +1 -1
- package/components/{p-CIoAIKEr.js → p-BhfW3d9j.js} +1 -1
- package/components/{p-B71c6yUH.js → p-Brxa0j7O.js} +1 -1
- package/components/{p-IMXp2Inn.js → p-BtAlyZ0b.js} +1 -1
- package/components/{p-BCFZKMI6.js → p-ByuCfbYy.js} +1 -1
- package/components/{p-DXUyXgVL.js → p-C-_EGKki.js} +1 -1
- package/components/{p-BFbsici0.js → p-C2cZvGcF.js} +1 -1
- package/components/{p-DTtRWhIZ.js → p-CdYTq34D.js} +1 -1
- package/components/{p-DH_9VCbD.js → p-CeYwuysM.js} +1 -1
- package/components/p-CnOTQxHB.js +4 -0
- package/components/{p-CoFqDNc5.js → p-CnwZE7CW.js} +1 -1
- package/components/{p-BLCuPAtN.js → p-CoarhFWH.js} +1 -1
- package/components/{p-C8ktKu9j.js → p-D5lMX0xt.js} +1 -1
- package/components/{p-TR4ubkPu.js → p-DAeMHNER.js} +1 -1
- package/components/{p-BRWWcnBq.js → p-GnGGIfCd.js} +1 -1
- package/components/{p-DAv9P_LE.js → p-TpZHKDyk.js} +1 -1
- package/components/p-XFUFdPrc.js +4 -0
- package/components/p-tYh73xQe.js +4 -0
- 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 +6 -8
- package/dist/cjs/ion-datetime_3.cjs.entry.js +4 -4
- 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 +5 -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 -3
- 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 +0 -6
- package/dist/collection/components/col/col.js +2 -3
- 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-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 +5 -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 -3
- 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/media.js +0 -1
- package/dist/docs.json +1 -212
- 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 +6 -8
- package/dist/esm/ion-datetime_3.entry.js +4 -4
- 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 +5 -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 -3
- 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 +0 -70
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-83c693c4.entry.js → p-091a95ea.entry.js} +1 -1
- package/dist/ionic/{p-e3abffbe.entry.js → p-1855fcb6.entry.js} +1 -1
- package/dist/ionic/{p-15e3e8f5.entry.js → p-192e7509.entry.js} +1 -1
- package/dist/ionic/{p-a9fb086b.entry.js → p-1faf270d.entry.js} +1 -1
- package/dist/ionic/{p-d6299c37.entry.js → p-228b6a9c.entry.js} +1 -1
- package/dist/ionic/{p-8537b2fb.entry.js → p-2aa44c65.entry.js} +1 -1
- package/dist/ionic/{p-1c2c1869.entry.js → p-2bf931ae.entry.js} +1 -1
- package/dist/ionic/{p-b3c9f19c.entry.js → p-2effd05d.entry.js} +1 -1
- package/dist/ionic/p-308beb71.entry.js +4 -0
- package/dist/ionic/{p-586d4270.entry.js → p-3093958a.entry.js} +1 -1
- package/dist/ionic/{p-1c4de46b.entry.js → p-3bf01c2c.entry.js} +1 -1
- package/dist/ionic/{p-50b61fab.entry.js → p-4091ad21.entry.js} +1 -1
- package/dist/ionic/{p-e18d3fdb.entry.js → p-4610e447.entry.js} +1 -1
- package/dist/ionic/{p-fad05840.entry.js → p-4c864eb2.entry.js} +1 -1
- package/dist/ionic/{p-bd71a4a7.entry.js → p-4e46439d.entry.js} +1 -1
- package/dist/ionic/{p-5274f999.entry.js → p-50d90690.entry.js} +1 -1
- package/dist/ionic/{p-3f79f594.entry.js → p-59b4f8d0.entry.js} +1 -1
- package/dist/ionic/{p-2f0073af.entry.js → p-5a3fc28e.entry.js} +1 -1
- package/dist/ionic/{p-1709b0aa.entry.js → p-5ac21be2.entry.js} +1 -1
- package/dist/ionic/p-64341e32.entry.js +4 -0
- package/dist/ionic/{p-b653f4c2.entry.js → p-6c8c37c2.entry.js} +1 -1
- package/dist/ionic/p-76d0e7ef.entry.js +4 -0
- package/dist/ionic/{p-05a30032.entry.js → p-79ae0425.entry.js} +1 -1
- package/dist/ionic/{p-c10fa162.entry.js → p-8180abe5.entry.js} +1 -1
- package/dist/ionic/{p-50cd2d57.entry.js → p-8516eb69.entry.js} +1 -1
- package/dist/ionic/{p-00c0bd38.entry.js → p-96549175.entry.js} +1 -1
- package/dist/ionic/{p-9d789053.entry.js → p-98c34fd7.entry.js} +1 -1
- package/dist/ionic/{p-72491468.entry.js → p-9b9b1450.entry.js} +1 -1
- package/dist/ionic/p-ae4ea663.entry.js +4 -0
- package/dist/ionic/{p-d976e777.entry.js → p-b0c54b4c.entry.js} +1 -1
- package/dist/ionic/{p-71b6014c.entry.js → p-b8b20b7e.entry.js} +1 -1
- package/dist/ionic/{p-2ad79c23.entry.js → p-bc5713f7.entry.js} +1 -1
- package/dist/ionic/p-d395b5cb.entry.js +4 -0
- package/dist/ionic/{p-d4ed5710.entry.js → p-d954cd19.entry.js} +1 -1
- package/dist/ionic/{p-ae667493.entry.js → p-e7f216ae.entry.js} +1 -1
- package/dist/ionic/{p-b2fe6c1c.entry.js → p-edb0b0c8.entry.js} +1 -1
- package/dist/ionic/{p-48026d15.entry.js → p-f061fcb7.entry.js} +1 -1
- package/dist/ionic/{p-7d5057c4.entry.js → p-f740c359.entry.js} +1 -1
- package/dist/types/components.d.ts +0 -66
- package/hydrate/index.js +129 -487
- package/hydrate/index.mjs +129 -487
- package/package.json +1 -1
- package/components/ion-gallery.d.ts +0 -11
- package/components/ion-gallery.js +0 -4
- package/components/p-B2rpt1JV.js +0 -4
- package/components/p-B6zr9RZN.js +0 -4
- package/components/p-CN-WzkJE.js +0 -4
- package/dist/cjs/ion-gallery.cjs.entry.js +0 -348
- package/dist/collection/components/gallery/gallery-interface.js +0 -1
- package/dist/collection/components/gallery/gallery.css +0 -103
- package/dist/collection/components/gallery/gallery.js +0 -439
- package/dist/collection/components/gallery/test/utils.js +0 -100
- package/dist/esm/ion-gallery.entry.js +0 -346
- package/dist/ionic/p-1e1c8d61.entry.js +0 -4
- package/dist/ionic/p-2aa7567e.entry.js +0 -4
- package/dist/ionic/p-4079cee3.entry.js +0 -4
- package/dist/ionic/p-8f127a9c.entry.js +0 -4
- package/dist/ionic/p-bf972309.entry.js +0 -4
- package/dist/ionic/p-cdb5fc03.entry.js +0 -4
- package/dist/types/components/gallery/gallery-interface.d.ts +0 -9
- package/dist/types/components/gallery/gallery.d.ts +0 -125
- package/dist/types/components/gallery/test/utils.d.ts +0 -2
package/package.json
CHANGED
|
@@ -1,11 +0,0 @@
|
|
|
1
|
-
import type { Components, JSX } from "../dist/types/components";
|
|
2
|
-
|
|
3
|
-
interface IonGallery extends Components.IonGallery, HTMLElement {}
|
|
4
|
-
export const IonGallery: {
|
|
5
|
-
prototype: IonGallery;
|
|
6
|
-
new (): IonGallery;
|
|
7
|
-
};
|
|
8
|
-
/**
|
|
9
|
-
* Used to define this component and all nested components recursively.
|
|
10
|
-
*/
|
|
11
|
-
export const defineCustomElement: () => void;
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{p as t,H as o,f as s,h as e,d as i,t as a}from"./p-3Ni1Z654.js";import{b as r}from"./p-CVBkx7m1.js";const n={xs:0,sm:576,md:768,lg:992,xl:1200,xxl:1400},l={xs:2,sm:3,md:4,lg:6,xl:8,xxl:10},h=["xs","sm","md","lg","xl","xxl"],u=t(class extends o{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.hasWarnedInvalidColumns=!1,this.layout="uniform",this.order="sequential",this.columns=l,this.onSlotChange=()=>{this.scheduleMasonryResize()},this.resizeMasonryGrid=()=>{if(this.masonryRaf=void 0,"masonry"!==this.layout)return void this.clearMasonryStyles();const t=getComputedStyle(this.el),o=parseFloat(t.getPropertyValue("grid-auto-rows"))||0,s=parseFloat(t.getPropertyValue("row-gap"))||parseFloat(t.getPropertyValue("gap"))||0,e=t.getPropertyValue("--internal-gallery-columns"),i=parseInt(e,10)||2,a=this.getItems();this.layoutMasonry(a,o,s,i)}}layoutChanged(){this.updateResponsiveColumns(!0),this.scheduleMasonryResize()}componentDidLoad(){this.updateResponsiveColumns(!0),this.resizeObserver=new ResizeObserver((()=>{this.updateResponsiveColumns(),this.scheduleMasonryResize()})),this.resizeObserver.observe(this.el),this.scheduleMasonryResize()}disconnectedCallback(){var t;void 0!==this.masonryRaf&&(cancelAnimationFrame(this.masonryRaf),this.masonryRaf=void 0),null===(t=this.resizeObserver)||void 0===t||t.disconnect(),this.resizeObserver=void 0}onChildLoad(t){if("masonry"!==this.layout)return;const o=t.target;null!==o&&this.el.contains(o)&&this.scheduleMasonryResize()}scheduleMasonryResize(){"masonry"===this.layout?(void 0!==this.masonryRaf&&cancelAnimationFrame(this.masonryRaf),this.masonryRaf=requestAnimationFrame(this.resizeMasonryGrid)):this.clearMasonryStyles()}sanitizeColumns(t){if(void 0===t)return;const o="number"==typeof t?t:Number(t);return!Number.isFinite(o)||!Number.isInteger(o)||o<=0?void 0:o}isBreakpointColumns(t){return"object"==typeof t&&null!==t&&!Array.isArray(t)}hasInvalidBreakpointColumns(t){for(const o of h){const s=t[o];if(void 0!==s&&void 0===this.sanitizeColumns(s))return!0}return!1}getColumnsFromBreakpointColumns(t,o){let s;for(const e of h){const i=o[e],a=this.sanitizeColumns(i),r=this.sanitizeColumns(l[e]),h=void 0===i||void 0===a?r:a;void 0!==h&&t>=n[e]&&(s=h)}return s}warnInvalidColumns(t){s(`[ion-gallery] - Invalid "columns" value (${JSON.stringify(t)}). Expected a positive integer or breakpoint map object (e.g. { xs: 2, md: 4 }). Falling back to default responsive columns.`,this.el),this.hasWarnedInvalidColumns=!0}getColumnsForWidth(t){const{columns:o,hasWarnedInvalidColumns:s}=this,e=this.isBreakpointColumns(o),i=e&&this.hasInvalidBreakpointColumns(o),a=e?this.getColumnsFromBreakpointColumns(t,o):this.sanitizeColumns(o);return s||!i&&(e||void 0!==a)||this.warnInvalidColumns(o),void 0!==a?a:this.getColumnsFromBreakpointColumns(t,l)}updateResponsiveColumns(t=!1){const o=this.el.getBoundingClientRect().width;if(!o||!t&&void 0!==this.lastWidth&&Math.abs(this.lastWidth-o)<1)return;this.lastWidth=o;const s=this.getColumnsForWidth(o);this.el.style.setProperty("--internal-gallery-columns",""+s)}getItems(){return Array.from(this.el.children).filter((t=>t instanceof o))}clearItemStyles(t){t.style.gridRowStart="",t.style.gridRowEnd="",t.style.gridColumn="",t.style.marginBottom=""}clearMasonryStyles(){this.getItems().forEach((t=>this.clearItemStyles(t)))}calculateRowSpan(t,o,s){if(t instanceof HTMLImageElement&&(!t.complete||0===t.naturalHeight))return;const e=t.getBoundingClientRect().height,i=getComputedStyle(t),a=parseFloat(i.getPropertyValue("margin-bottom"))||0,r=o+s;return r&&Number.isFinite(r)&&Math.ceil((e+a+s)/r)||1}getColumnIndex(t,o,s){const{order:e}=this;if("best-fit"===e){let t=0;for(let e=1;e<s;e++)o[e]<o[t]&&(t=e);return t}return t%s}layoutMasonry(t,o,s,e){const i=Array(e).fill(0),a=Array(e).fill(void 0);t.forEach(((t,r)=>{t.style.marginBottom="";const n=this.calculateRowSpan(t,o,s);if(void 0===n)return void this.clearItemStyles(t);const l=this.getColumnIndex(r,i,e),h=i[l]+1;t.style.gridColumn=""+(l+1),t.style.gridRowStart=""+h,t.style.gridRowEnd="span "+n,i[l]=h+n-1,a[l]=t})),a.forEach((t=>{if(void 0===t)return;t.style.marginBottom="0px";const e=this.calculateRowSpan(t,o,s);void 0!==e?t.style.gridRowEnd="span "+e:this.clearItemStyles(t)}))}render(){const{layout:t,order:o}=this,s=r(this);return e(i,{key:"77cd21eada2c24092cc551d4e647582c820f05d9",class:{[s]:!0,["gallery-layout-"+t]:!0,["gallery-order-"+o]:"masonry"===t}},e("slot",{key:"fa311652848a526a7629476afb963bf3e68455c4",onSlotchange:this.onSlotChange}))}get el(){return this}static get watchers(){return{layout:[{layoutChanged:0}],order:[{layoutChanged:0}],columns:[{layoutChanged:0}]}}static get style(){return":host{display:grid;grid-template-columns:repeat(var(--internal-gallery-columns, 2), minmax(0, 1fr))}:host(.gallery-layout-uniform){gap:var(--ion-gallery-gap, 16px)}:host(.gallery-layout-uniform) ::slotted(*){aspect-ratio:1/1}:host(.gallery-layout-masonry){-ms-flex-align:start;align-items:start;-webkit-column-gap:var(--ion-gallery-gap, 16px);-moz-column-gap:var(--ion-gallery-gap, 16px);column-gap:var(--ion-gallery-gap, 16px);row-gap:0;grid-auto-rows:2px}:host(.gallery-layout-masonry) ::slotted(*){display:block;min-height:unset;margin-bottom:var(--ion-gallery-gap, 16px)}::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}"}},[257,"ion-gallery",{layout:[513],order:[513],columns:[8]},[[2,"load","onChildLoad"]],{layout:[{layoutChanged:0}],order:[{layoutChanged:0}],columns:[{layoutChanged:0}]}]),m=u,d=function(){"undefined"!=typeof customElements&&["ion-gallery"].forEach((t=>{"ion-gallery"===t&&(customElements.get(a(t))||customElements.define(a(t),u))}))};export{m as IonGallery,d as defineCustomElement}
|
package/components/p-B2rpt1JV.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{p as o,H as e,h as i,i as t,d as n,t as s}from"./p-3Ni1Z654.js";import{b as a,c}from"./p-CVBkx7m1.js";import{x as l}from"./p-BDqjX7Z_.js";import{s as r}from"./p-CtiqM786.js";import{r as d}from"./p-C0U8YqYW.js";import{h as m,g as p}from"./p-DaJxRxSQ.js";import{j as b,w as h}from"./p-BaPtaYEC.js";import{d as f}from"./p-TR4ubkPu.js";import{d as k}from"./p-BErKjY03.js";import{d as u}from"./p-B8Oa6a_k.js";import{d as g}from"./p-BbQGmZyu.js";import{d as v}from"./p-BXcCGjEc.js";import{d as x}from"./p-zWP0sUV_.js";import{d as y}from"./p-CoFqDNc5.js";import{d as j}from"./p-CIoAIKEr.js";import{d as E}from"./p-BRWWcnBq.js";import{d as C}from"./p-CN-WzkJE.js";import{d as w}from"./p-C8ktKu9j.js";import{d as z}from"./p-DXUyXgVL.js";import{d as B}from"./p-BLCuPAtN.js";const O=o(class extends e{constructor(o){super(),!1!==o&&this.__registerHost(),this.pendingEnterTarget=null,this.cancelText="Close",this.cancelIcon=!1,this.options=[]}closeModal(){const o=this.el.closest("ion-modal");o&&o.dismiss()}findOptionFromEvent(o){const{options:e}=this;return e.find((e=>e.value===o.target.value))}getValues(o){const{multiple:e,options:i}=this;if(e)return i.filter((o=>o.checked)).map((o=>o.value));const t=o?this.findOptionFromEvent(o):null;return t?t.value:void 0}callOptionHandler(o){const e=this.findOptionFromEvent(o),i=this.getValues(o);(null==e?void 0:e.handler)&&r(e.handler,i)}setChecked(o){const{multiple:e}=this,i=this.findOptionFromEvent(o);e&&i&&(i.checked=o.detail.checked)}get cancelButtonIcon(){const o=a(this);return{ios:h,md:b,ionic:l}[o]}getModalContextClasses(){const o=this.el;return{"in-modal-default":m("ion-modal.modal-default",o),"in-modal-sheet":m("ion-modal.modal-sheet",o)}}renderRadioOptions(){const o=this.options.filter((o=>o.checked)).map((o=>o.value))[0];return i("ion-radio-group",{value:o,onIonChange:o=>this.callOptionHandler(o)},this.options.map(((e,t)=>{const n={id:`modal-option-${t}`,label:e.text,startContent:e.startContent,endContent:e.endContent,description:e.description};return i("ion-item",{lines:"none",class:Object.assign({"item-radio-checked":e.value===o},p(e.cssClass))},i("ion-radio",{value:e.value,disabled:e.disabled,justify:"start",labelPlacement:"end",onClick:()=>this.closeModal(),onKeyDown:o=>{"Enter"!==o.key||o.repeat||(this.pendingEnterTarget=o.currentTarget)},onKeyUp:o=>{if(" "===o.key)this.closeModal();else if("Enter"===o.key){const e=this.pendingEnterTarget===o.currentTarget;this.pendingEnterTarget=null,e&&this.closeModal()}}},d(n,"select-option-label")))})))}renderCheckboxOptions(){return this.options.map(((o,e)=>{const n={id:`modal-option-${e}`,label:o.text,startContent:o.startContent,endContent:o.endContent,description:o.description};return i("ion-item",{class:Object.assign({"item-checkbox-checked":o.checked},p(o.cssClass))},i("ion-checkbox",{value:o.value,disabled:o.disabled,checked:o.checked,justify:"start",labelPlacement:"end",onIonChange:o=>{this.setChecked(o),this.callOptionHandler(o),t(this)}},d(n,"select-option-label")))}))}render(){return i(n,{key:"43db0bab8915e4e422acbd73d27a880935c13a38",class:Object.assign({[c(this)]:!0},this.getModalContextClasses())},i("ion-header",{key:"58f462db240eb759d7be9f090ab9fba48abdea0c"},i("ion-toolbar",{key:"dbd4722ad8c2fc21a066b89451fdc5c0a3776808"},void 0!==this.header&&i("ion-title",{key:"cefe16f3dff1a90d10875506a94fe1d737c67b44"},this.header),i("ion-buttons",{key:"750ba8ac17447906cbe020d654b943a88adf8185",slot:"end"},i("ion-button",{key:"8c075ec9d7becf25dd1307bf083bec229a0889ae","aria-label":this.cancelIcon?this.cancelText:void 0,onClick:()=>this.closeModal()},this.cancelIcon?i("ion-icon",{"aria-hidden":"true",slot:"icon-only",icon:this.cancelButtonIcon}):this.cancelText)))),i("ion-content",{key:"65dff8eab0158cdff103ade997246cea2b3c4b9e"},i("ion-list",{key:"e3556e81c97146ffda80260265294a4f8d6ebdf2"},!0===this.multiple?this.renderCheckboxOptions():this.renderRadioOptions())))}get el(){return this}static get style(){return{ionic:'.sc-ion-select-modal-ionic-h{height:100%}.select-option-label.sc-ion-select-modal-ionic{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-modal-ionic{display:block}.in-modal-default.sc-ion-select-modal-ionic-h ion-content.sc-ion-select-modal-ionic::part(scroll),.in-modal-default.sc-ion-select-modal-ionic-h ion-content.sc-ion-select-modal-ionic [part~="scroll"]{--padding-bottom:var(--token-space-400, var(--token-scale-400, 16px))}ion-item.sc-ion-select-modal-ionic{--border-width:0}ion-item.ion-focused.sc-ion-select-modal-ionic::part(native)::after,ion-item.ion-focused.sc-ion-select-modal-ionic [part~="native"]::after{border:none}ion-toolbar.sc-ion-select-modal-ionic{font-size:var(--token-font-size-450, 1.125rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-700, var(--token-scale-700, 28px));text-decoration:none;text-transform:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(container),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="container"]{display:none}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-radio.sc-ion-select-modal-ionic [part~="label"],ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic::part(label),ion-list.sc-ion-select-modal-ionic ion-checkbox.sc-ion-select-modal-ionic [part~="label"]{font-size:var(--token-font-size-400, 1rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none}.item-radio-checked.sc-ion-select-modal-ionic,.item-checkbox-checked.sc-ion-select-modal-ionic{--background:var(--token-semantics-primary-100, var(--token-primitives-blue-100, #e9ecfc));--border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px))}ion-content.sc-ion-select-modal-ionic{--padding-start:var(--token-space-400, var(--token-scale-400, 16px)) !important;--padding-end:var(--token-space-400, var(--token-scale-400, 16px)) !important;--padding-bottom:var(--token-space-1200, var(--token-scale-1200, 48px)) !important}ion-content.sc-ion-select-modal-ionic:has(.radio-checked) .ion-focused.sc-ion-select-modal-ionic:not(.item-radio-checked){--background-focused-opacity:1}.select-option-label.sc-ion-select-modal-ionic{gap:var(--token-space-300, var(--token-scale-300, 12px))}.select-option-description.sc-ion-select-modal-ionic{font-size:var(--token-font-size-350, 0.875rem);font-weight:var(--token-font-weight-regular, 400);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-600, var(--token-scale-600, 24px));text-decoration:none;text-transform:none;color:var(--token-text-subtle, var(--token-primitives-neutral-1000, #3b3b3b));font-size:var(--token-font-size-350, 0.875rem)}',ios:'.sc-ion-select-modal-ios-h{height:100%}.select-option-label.sc-ion-select-modal-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-modal-ios{display:block}.select-option-label.sc-ion-select-modal-ios{gap:12px}.select-option-description.sc-ion-select-modal-ios{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}ion-item.sc-ion-select-modal-ios{--inner-padding-end:0}ion-radio.sc-ion-select-modal-ios::after{bottom:0;position:absolute;width:calc(100% - 0.9375rem - 16px);border-width:0px 0px 0.55px 0px;border-style:solid;border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-250, var(--ion-background-color-step-250, #c8c7cc))));content:""}ion-radio.sc-ion-select-modal-ios::after{inset-inline-start:calc(0.9375rem + 16px)}',md:'.sc-ion-select-modal-md-h{height:100%}.select-option-label.sc-ion-select-modal-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}.select-option-description.sc-ion-select-modal-md{display:block}.select-option-label.sc-ion-select-modal-md{gap:12px}.select-option-description.sc-ion-select-modal-md{padding-left:0;padding-right:0;padding-top:5px;padding-bottom:0;color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d));font-size:0.75rem}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(container),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="container"]{display:none}ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md::part(label),ion-list.sc-ion-select-modal-md ion-radio.sc-ion-select-modal-md [part~="label"]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-item.sc-ion-select-modal-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-modal-md{--background:rgba(var(--ion-color-primary-rgb, 0, 84, 233), 0.08);--background-focused:var(--ion-color-primary, #0054e9);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #0054e9);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-modal-md{--background-activated:var(--ion-item-color, var(--ion-text-color, #000));--background-focused:var(--ion-item-color, var(--ion-text-color, #000));--background-hover:var(--ion-item-color, var(--ion-text-color, #000));--color:var(--ion-color-primary, #0054e9)}'}}},[34,"ion-select-modal",{header:[1],cancelText:[1,"cancel-text"],cancelIcon:[4,"cancel-icon"],multiple:[4],options:[16]}]);function I(){"undefined"!=typeof customElements&&["ion-select-modal","ion-button","ion-buttons","ion-checkbox","ion-content","ion-header","ion-icon","ion-item","ion-list","ion-radio","ion-radio-group","ion-ripple-effect","ion-title","ion-toolbar"].forEach((o=>{switch(o){case"ion-select-modal":customElements.get(s(o))||customElements.define(s(o),O);break;case"ion-button":customElements.get(s(o))||f();break;case"ion-buttons":customElements.get(s(o))||k();break;case"ion-checkbox":customElements.get(s(o))||u();break;case"ion-content":customElements.get(s(o))||g();break;case"ion-header":customElements.get(s(o))||v();break;case"ion-icon":customElements.get(s(o))||x();break;case"ion-item":customElements.get(s(o))||y();break;case"ion-list":customElements.get(s(o))||j();break;case"ion-radio":customElements.get(s(o))||E();break;case"ion-radio-group":customElements.get(s(o))||C();break;case"ion-ripple-effect":customElements.get(s(o))||w();break;case"ion-title":customElements.get(s(o))||z();break;case"ion-toolbar":customElements.get(s(o))||B()}}))}export{O as S,I as d}
|
package/components/p-B6zr9RZN.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{p as t,H as o,e,f as r,h as i,d as s,t as n}from"./p-3Ni1Z654.js";import{B as a,j as p,k as d,f as c,n as l,g as h,h as v,F as f}from"./p-CtiqM786.js";import{C as g,a as x,d as m}from"./p-XegQjlzJ.js";import{g as b,r as u,a as w,k}from"./p-BqDiJgC_.js";import{c as y}from"./p-B-hirT0v.js";import{b as P,a as T}from"./p-CVBkx7m1.js";import{g as D}from"./p-DaJxRxSQ.js";import{e as A,w as $}from"./p-t98_NeNv.js";import{c as C}from"./p-BO4aickU.js";import{d as I}from"./p-BFCM_1oE.js";let O=null,N=!1;const z=t=>{if(null!==O)return O;if(null===t.body)return{top:0,bottom:0,left:0,right:0};const o=t.createElement("div");o.style.cssText="position:fixed;visibility:hidden;pointer-events:none;top:0;left:0;padding-top:var(--ion-safe-area-top,0px);padding-bottom:var(--ion-safe-area-bottom,0px);padding-left:var(--ion-safe-area-left,0px);padding-right:var(--ion-safe-area-right,0px);",t.body.appendChild(o);const e=getComputedStyle(o),r={top:parseFloat(e.paddingTop)||0,bottom:parseFloat(e.paddingBottom)||0,left:parseFloat(e.paddingLeft)||0,right:parseFloat(e.paddingRight)||0};return o.remove(),O=r,N||(N=!0,u((()=>{O=null,N=!1}))),r},L=(t,o,e)=>{const r=o.getBoundingClientRect(),i=r.height;let s=r.width;return"cover"===t&&e&&(s=e.getBoundingClientRect().width),{contentWidth:s,contentHeight:i}},W=(t,o)=>o&&"ION-ITEM"===o.tagName?t.findIndex((t=>t===o)):-1,j=t=>{const o=b(t).querySelector("button");o&&u((()=>o.focus()))},E=(t,o,e,r,i,s,n,a,p,d,c)=>{var l;let h={top:0,left:0,width:0,height:0};if("event"===s){if(!c)return p;h={top:c.clientY,left:c.clientX,width:1,height:1}}else{const t=d||(null===(l=null==c?void 0:c.detail)||void 0===l?void 0:l.ionShadowTarget)||(null==c?void 0:c.target);if(!t)return p;const o=t.getBoundingClientRect();h={top:o.top,left:o.left,width:o.width,height:o.height}}const v=M(n,h,o,e,r,i,t),f=F(a,n,h,o,e),g=v.top+f.top,x=v.left+f.left,{arrowTop:m,arrowLeft:b}=Y(n,r,i,g,x,o,e,t),{originX:u,originY:w}=S(n,a,t);return{top:g,left:x,referenceCoordinates:h,arrowTop:m,arrowLeft:b,originX:u,originY:w}},S=(t,o,e)=>{switch(t){case"top":return{originX:B(o),originY:"bottom"};case"bottom":return{originX:B(o),originY:"top"};case"left":return{originX:"right",originY:X(o)};case"right":return{originX:"left",originY:X(o)};case"start":return{originX:e?"left":"right",originY:X(o)};case"end":return{originX:e?"right":"left",originY:X(o)}}},B=t=>{switch(t){case"start":return"left";case"center":return"center";case"end":return"right"}},X=t=>{switch(t){case"start":return"top";case"center":return"center";case"end":return"bottom"}},Y=(t,o,e,r,i,s,n,a)=>{const p={arrowTop:r+n/2-o/2,arrowLeft:i+s-o/2},d={arrowTop:r+n/2-o/2,arrowLeft:i-1.5*o};switch(t){case"top":return{arrowTop:r+n,arrowLeft:i+s/2-o/2};case"bottom":return{arrowTop:r-e,arrowLeft:i+s/2-o/2};case"left":return p;case"right":return d;case"start":return a?d:p;case"end":return a?p:d;default:return{arrowTop:0,arrowLeft:0}}},M=(t,o,e,r,i,s,n)=>{const a={top:o.top,left:o.left-e-i},p={top:o.top,left:o.left+o.width+i};switch(t){case"top":return{top:o.top-r-s,left:o.left};case"right":return p;case"bottom":return{top:o.top+o.height+s,left:o.left};case"left":return a;case"start":return n?p:a;case"end":return n?a:p}},F=(t,o,e,r,i)=>{switch(t){case"center":return R(o,e,r,i);case"end":return H(o,e,r,i);default:return{top:0,left:0}}},H=(t,o,e,r)=>{switch(t){case"start":case"end":case"left":case"right":return{top:-(r-o.height),left:0};default:return{top:0,left:-(e-o.width)}}},R=(t,o,e,r)=>{switch(t){case"start":case"end":case"left":case"right":return{top:-(r/2-o.height/2),left:0};default:return{top:0,left:-(e/2-o.width/2)}}},V=(t,o,e,r,i,s,n,a,p,d,c,l,h=0,v=0,f=0)=>{let g,x=h,m=e,b=o,u=d,w=c,k=!1,y=!1,P=!1,T=!1;const D=l?l.top+l.height:s/2-a/2,A=l?l.height:0;let $=!1;if(m<r+p.left?(m=r,k=!0,u="left"):n+r+m+p.right>i&&(y=!0,m=i-n-r,u="right"),D+A+a>s-p.bottom&&("top"===t||"bottom"===t)){const t=D-a-A-(f-1);t>=p.top+r?(b=t,x=b+a,w="bottom",$=!0):(g=r,T=!0,b>=s-p.bottom-r&&(b=p.top+r,P=!0))}return{top:b,left:m,bottom:g,originX:u,originY:w,checkSafeAreaLeft:k,checkSafeAreaRight:y,checkSafeAreaTop:P,checkSafeAreaBottom:T,arrowTop:x,arrowLeft:v,addPopoverBottomClass:$,hideArrow:!1}},U=(t,o)=>{var e;const{event:r,size:i,trigger:s,reference:n,side:a,align:p}=o,d=t.ownerDocument,c="rtl"===d.dir,l=d.defaultView.innerWidth,h=d.defaultView.innerHeight,v=b(t),f=v.querySelector(".popover-content"),g=v.querySelector(".popover-arrow"),x=s||(null===(e=null==r?void 0:r.detail)||void 0===e?void 0:e.ionShadowTarget)||(null==r?void 0:r.target),{contentWidth:m,contentHeight:u}=L(i,f,x),{arrowWidth:w,arrowHeight:k}=(t=>{if(!t)return{arrowWidth:0,arrowHeight:0};const{width:o,height:e}=t.getBoundingClientRect();return{arrowWidth:o,arrowHeight:e}})(g),y=E(c,m,u,w,k,n,a,p,{top:h/2-u/2,left:l/2-m/2,originX:c?"right":"left",originY:"top"},s,r),P="cover"===i?0:5,T=z(d),D="cover"===i?{top:0,bottom:0,left:0,right:0}:{top:Math.max(T.top,25),bottom:Math.max(T.bottom,25),left:Math.max(T.left,25),right:Math.max(T.right,25)},{originX:A,originY:$,top:I,left:O,bottom:N,checkSafeAreaLeft:W,checkSafeAreaRight:j,checkSafeAreaTop:S,checkSafeAreaBottom:B,arrowTop:X,arrowLeft:Y,addPopoverBottomClass:M}=V(a,y.top,y.left,P,l,h,m,u,D,y.originX,y.originY,y.referenceCoordinates,y.arrowTop,y.arrowLeft,k),F=C(),H=C(),R=C();return H.addElement(v.querySelector("ion-backdrop")).fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),R.addElement(v.querySelector(".popover-arrow")).addElement(v.querySelector(".popover-content")).fromTo("opacity",.01,1),F.easing("ease").duration(100).beforeAddWrite((()=>{if("cover"===i&&t.style.setProperty("--width",`${m}px`),M&&t.classList.add("popover-bottom"),void 0!==N){let t=`${N}px`;B&&(t=`${N}px + var(--ion-safe-area-bottom, 0px)`),f.style.setProperty("bottom",`calc(${t})`)}let o=`${O}px`;W&&(o=`${O}px + var(--ion-safe-area-left, 0px)`),j&&(o=`${O}px - var(--ion-safe-area-right, 0px)`);let e=`${I}px`;if(S&&(e=`${I}px + var(--ion-safe-area-top, 0px)`),f.style.setProperty("top",`calc(${e} + var(--offset-y, 0))`),f.style.setProperty("left",`calc(${o} + var(--offset-x, 0))`),f.style.setProperty("transform-origin",`${$} ${A}`),null!==g){const t=((t,o=!1,e,r)=>!(!e&&!r||"top"!==t&&"bottom"!==t&&o))(a,y.top!==I||y.left!==O,r,s);t?(g.style.setProperty("top",`calc(${X}px + var(--offset-y, 0))`),g.style.setProperty("left",`calc(${Y}px + var(--offset-x, 0))`)):g.style.setProperty("display","none")}})).addAnimation([H,R])},J=t=>{const o=b(t),e=o.querySelector(".popover-content"),r=o.querySelector(".popover-arrow"),i=C(),s=C(),n=C();return s.addElement(o.querySelector("ion-backdrop")).fromTo("opacity","var(--backdrop-opacity)",0),n.addElement(o.querySelector(".popover-arrow")).addElement(o.querySelector(".popover-content")).fromTo("opacity",.99,0),i.easing("ease").afterAddWrite((()=>{t.style.removeProperty("--width"),t.classList.remove("popover-bottom"),e.style.removeProperty("top"),e.style.removeProperty("left"),e.style.removeProperty("bottom"),e.style.removeProperty("transform-origin"),r&&(r.style.removeProperty("top"),r.style.removeProperty("left"),r.style.removeProperty("display"))})).duration(300).addAnimation([s,n])},_=(t,o)=>{var e;const{event:r,size:i,trigger:s,reference:n,side:a,align:p}=o,d=t.ownerDocument,c="rtl"===d.dir,l=d.defaultView.innerWidth,h=d.defaultView.innerHeight,v=b(t),f=v.querySelector(".popover-content"),g=s||(null===(e=null==r?void 0:r.detail)||void 0===e?void 0:e.ionShadowTarget)||(null==r?void 0:r.target),{contentWidth:x,contentHeight:m}=L(i,f,g),u=E(c,x,m,0,0,n,a,p,{top:h/2-m/2,left:l/2-x/2,originX:c?"right":"left",originY:"top"},s,r),w="cover"===i?0:12,k="cover"===i?{top:0,bottom:0,left:0,right:0}:z(d),{originX:y,originY:P,top:T,left:D,bottom:A,checkSafeAreaLeft:$,checkSafeAreaRight:I,checkSafeAreaTop:O,checkSafeAreaBottom:N,addPopoverBottomClass:W}=V(a,u.top,u.left,w,l,h,x,m,k,u.originX,u.originY,u.referenceCoordinates);let j=`${D}px`;$&&(j=`${D}px + var(--ion-safe-area-left, 0px)`),I&&(j=`${D}px - var(--ion-safe-area-right, 0px)`);let S=`${T}px`;O&&(S=`${T}px + var(--ion-safe-area-top, 0px)`);const B=C(),X=C(),Y=C(),M=C(),F=C();return X.addElement(v.querySelector("ion-backdrop")).fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),Y.addElement(v.querySelector(".popover-wrapper")).duration(150).fromTo("opacity",.01,1),M.addElement(f).beforeStyles({top:`calc(${S} + var(--offset-y, 0px))`,left:`calc(${j} + var(--offset-x, 0px))`,"transform-origin":`${P} ${y}`}).beforeAddWrite((()=>{if(void 0!==A){let t=`${A}px`;N&&(t=`${A}px + var(--ion-safe-area-bottom, 0px)`),f.style.setProperty("bottom",`calc(${t})`)}})).fromTo("transform","scale(0.8)","scale(1)"),F.addElement(v.querySelector(".popover-viewport")).fromTo("opacity",.01,1),B.easing("cubic-bezier(0.36,0.66,0.04,1)").duration(300).beforeAddWrite((()=>{"cover"===i&&t.style.setProperty("--width",`${x}px`),W&&t.classList.add("popover-bottom")})).addAnimation([X,Y,M,F])},q=t=>{const o=b(t),e=o.querySelector(".popover-content"),r=C(),i=C(),s=C();return i.addElement(o.querySelector("ion-backdrop")).fromTo("opacity","var(--backdrop-opacity)",0),s.addElement(o.querySelector(".popover-wrapper")).fromTo("opacity",.99,0),r.easing("ease").afterAddWrite((()=>{t.style.removeProperty("--width"),t.classList.remove("popover-bottom"),e.style.removeProperty("top"),e.style.removeProperty("left"),e.style.removeProperty("bottom"),e.style.removeProperty("transform-origin")})).duration(150).addAnimation([i,s])},K=t(class extends o{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.didPresent=e(this,"ionPopoverDidPresent",7),this.willPresent=e(this,"ionPopoverWillPresent",7),this.willDismiss=e(this,"ionPopoverWillDismiss",7),this.didDismiss=e(this,"ionPopoverDidDismiss",7),this.didPresentShorthand=e(this,"didPresent",7),this.willPresentShorthand=e(this,"willPresent",7),this.willDismissShorthand=e(this,"willDismiss",7),this.didDismissShorthand=e(this,"didDismiss",7),this.ionMount=e(this,"ionMount",7),this.parentPopover=null,this.coreDelegate=g(),this.lockController=y(),this.inline=!1,this.focusDescendantOnPresent=!1,this.presented=!1,this.hasController=!1,this.keyboardClose=!0,this.backdropDismiss=!0,this.showBackdrop=!0,this.translucent=!1,this.animated=!0,this.triggerAction="click",this.size="auto",this.dismissOnSelect=!1,this.reference="trigger",this.side="bottom",this.arrow=!0,this.isOpen=!1,this.keyboardEvents=!1,this.focusTrap=!0,this.keepContentsMounted=!1,this.onBackdropTap=()=>{this.dismiss(void 0,a)},this.onLifecycle=t=>{const o=this.usersElement,e=Q[t.type];if(o&&e){const r=new CustomEvent(e,{bubbles:!1,cancelable:!1,detail:t.detail});o.dispatchEvent(r)}},this.configureTriggerInteraction=()=>{const{trigger:t,triggerAction:o,el:e,destroyTriggerInteraction:i}=this;if(i&&i(),void 0===t)return;const s=this.triggerEl=void 0!==t?document.getElementById(t):null;s?this.destroyTriggerInteraction=((t,o,e)=>{let r=[];switch(o){case"hover":let t;r=[{eventName:"mouseenter",callback:async o=>{o.stopPropagation(),t&&clearTimeout(t),t=setTimeout((()=>{u((()=>{e.presentFromTrigger(o),t=void 0}))}),100)}},{eventName:"mouseleave",callback:o=>{t&&clearTimeout(t);const r=o.relatedTarget;r&&r.closest("ion-popover")!==e&&e.dismiss(void 0,void 0,!1)}},{eventName:"click",callback:t=>t.stopPropagation()},{eventName:"ionPopoverActivateTrigger",callback:t=>e.presentFromTrigger(t,!0)}];break;case"context-menu":r=[{eventName:"contextmenu",callback:t=>{t.preventDefault(),e.presentFromTrigger(t)}},{eventName:"click",callback:t=>t.stopPropagation()},{eventName:"ionPopoverActivateTrigger",callback:t=>e.presentFromTrigger(t,!0)}];break;default:r=[{eventName:"click",callback:t=>e.presentFromTrigger(t)},{eventName:"ionPopoverActivateTrigger",callback:t=>e.presentFromTrigger(t,!0)}]}return r.forEach((({eventName:o,callback:e})=>t.addEventListener(o,e))),t.setAttribute("data-ion-popover-trigger","true"),()=>{r.forEach((({eventName:o,callback:e})=>t.removeEventListener(o,e))),t.removeAttribute("data-ion-popover-trigger")}})(s,o,e):r(`[ion-popover] - A trigger element with the ID "${t}" was not found in the DOM. The trigger element must be in the DOM when the "trigger" property is set on ion-popover.`,this.el)},this.configureKeyboardInteraction=()=>{const{destroyKeyboardInteraction:t,el:o}=this;t&&t(),this.destroyKeyboardInteraction=(t=>{const o=async o=>{var e;const r=document.activeElement;let i=[];const s=null===(e=o.target)||void 0===e?void 0:e.tagName;if("ION-POPOVER"===s||"ION-ITEM"===s){try{i=Array.from(t.querySelectorAll("ion-item:not(ion-popover ion-popover *):not([disabled])"))}catch(t){}switch(o.key){case"ArrowLeft":await t.getParentPopover()&&t.dismiss(void 0,void 0,!1);break;case"ArrowDown":o.preventDefault();const e=((t,o)=>t[W(t,o)+1])(i,r);void 0!==e&&j(e);break;case"ArrowUp":o.preventDefault();const s=((t,o)=>t[W(t,o)-1])(i,r);void 0!==s&&j(s);break;case"Home":o.preventDefault();const n=i[0];void 0!==n&&j(n);break;case"End":o.preventDefault();const a=i[i.length-1];void 0!==a&&j(a);break;case"ArrowRight":case" ":case"Enter":if(r&&r.hasAttribute("data-ion-popover-trigger")){const t=new CustomEvent("ionPopoverActivateTrigger");r.dispatchEvent(t)}}}};return t.addEventListener("keydown",o),()=>t.removeEventListener("keydown",o)})(o)},this.configureDismissInteraction=()=>{const{destroyDismissInteraction:t,parentPopover:o,triggerAction:e,triggerEl:r,el:i}=this;o&&r&&(t&&t(),this.destroyDismissInteraction=((t,o,e,r)=>{let i=[];const s=b(r).querySelector(".popover-content");return i="hover"===o?[{eventName:"mouseenter",callback:o=>{document.elementFromPoint(o.clientX,o.clientY)!==t&&e.dismiss(void 0,void 0,!1)}}]:[{eventName:"click",callback:o=>{o.target.closest("[data-ion-popover-trigger]")!==t?e.dismiss(void 0,void 0,!1):o.stopPropagation()}}],i.forEach((({eventName:t,callback:o})=>s.addEventListener(t,o))),()=>{i.forEach((({eventName:t,callback:o})=>s.removeEventListener(t,o)))}})(r,e,i,o))}}onTriggerChange(){this.configureTriggerInteraction()}onIsOpenChange(t,o){!0===t&&!1===o?this.present():!1===t&&!0===o&&this.dismiss()}connectedCallback(){const{configureTriggerInteraction:t,el:o}=this;p(o),t()}disconnectedCallback(){const{destroyTriggerInteraction:t}=this;t&&t(),this.headerResizeObserver&&(this.headerResizeObserver.disconnect(),this.headerResizeObserver=void 0)}componentWillLoad(){var t,o;const{el:e}=this,r=null!==(o=null===(t=this.htmlAttributes)||void 0===t?void 0:t.id)&&void 0!==o?o:d(e);this.parentPopover=e.closest(`ion-popover:not(#${r})`),void 0===this.alignment&&(this.alignment="ios"===P(this)?"center":"start")}componentDidLoad(){const{parentPopover:t,isOpen:o}=this;!0===o&&u((()=>this.present())),t&&w(t,"ionPopoverWillDismiss",(()=>{this.dismiss(void 0,void 0,!1)})),this.configureTriggerInteraction()}async presentFromTrigger(t,o=!1){this.focusDescendantOnPresent=o,await this.present(t),this.focusDescendantOnPresent=!1}getDelegate(t=!1){if(this.workingDelegate&&!t)return{delegate:this.workingDelegate,inline:this.inline};const o=this.inline=null!==this.el.parentNode&&!this.hasController;return{inline:o,delegate:this.workingDelegate=o?this.delegate||this.coreDelegate:this.delegate}}async present(t){const o=await this.lockController.lock();if(this.presented)return void o();const{el:e}=this,{inline:r,delegate:i}=this.getDelegate(!0);this.ionMount.emit(),this.usersElement=await x(i,e,this.component,["popover-viewport"],this.componentProps,r),this.recalculateContentOnHeaderReady(),this.keyboardEvents||this.configureKeyboardInteraction(),this.configureDismissInteraction(),k(e)?await A(this.usersElement):this.keepContentsMounted||await $(),await c(this,"popoverEnter",U,_,void 0,{event:t||this.event,size:this.size,trigger:this.triggerEl,reference:this.reference,side:this.side,align:this.alignment}),this.focusDescendantOnPresent&&l(e),o()}recalculateContentOnHeaderReady(){var t;const o=null===(t=this.el.shadowRoot)||void 0===t?void 0:t.querySelector(".popover-content");if(!o)return;const e=this.usersElement||o,r=e.querySelector("ion-header"),i=e.querySelectorAll("ion-content");r&&0!==i.length&&(this.headerResizeObserver=new ResizeObserver((async()=>{var t;if(r.offsetHeight>0){null===(t=this.headerResizeObserver)||void 0===t||t.disconnect(),this.headerResizeObserver=void 0;for(const t of i)await t.recalculateDimensions()}})),this.headerResizeObserver.observe(r))}async dismiss(t,o,e=!0){const r=await this.lockController.lock(),{destroyKeyboardInteraction:i,destroyDismissInteraction:s}=this;e&&this.parentPopover&&this.parentPopover.dismiss(t,o,e);const n=await h(this,t,o,"popoverLeave",J,q,this.event);if(n){i&&(i(),this.destroyKeyboardInteraction=void 0),s&&(s(),this.destroyDismissInteraction=void 0);const{delegate:t}=this.getDelegate();await m(t,this.usersElement)}return r(),n}async getParentPopover(){return this.parentPopover}onDidDismiss(){return v(this.el,"ionPopoverDidDismiss")}onWillDismiss(){return v(this.el,"ionPopoverWillDismiss")}render(){const t=P(this),{onLifecycle:o,parentPopover:e,dismissOnSelect:r,side:n,arrow:a,htmlAttributes:p,focusTrap:d}=this,c=T("desktop"),l=a&&!e;return i(s,Object.assign({key:"43128f8b7e57f08a451af1a237534d0517d86eda","aria-modal":"true","no-router":!0,tabindex:"-1"},p,{style:{zIndex:`${2e4+this.overlayIndex}`},class:Object.assign(Object.assign({},D(this.cssClass)),{[t]:!0,"popover-translucent":this.translucent,"overlay-hidden":!0,"popover-desktop":c,[`popover-side-${n}`]:!0,[f]:!1===d,"popover-nested":!!e}),onIonPopoverDidPresent:o,onIonPopoverWillPresent:o,onIonPopoverWillDismiss:o,onIonPopoverDidDismiss:o,onIonBackdropTap:this.onBackdropTap}),!e&&i("ion-backdrop",{key:"c087932225f8fc872af7451fd847ab2667ae6ffb",tappable:this.backdropDismiss,visible:this.showBackdrop,part:"backdrop"}),i("div",{key:"25fb1c8320099d1170f3a61766760c694d84bf0b",class:"popover-wrapper ion-overlay-wrapper",onClick:r?()=>this.dismiss():void 0},l&&i("div",{key:"552f4b70758470fac0d2e2bd114eaf5d9b81a3ac",class:"popover-arrow",part:"arrow"}),i("div",{key:"f19c1d60b0f4ff86bf308c5837637cd4bbd6814e",class:"popover-content",part:"content"},i("slot",{key:"00870a41134268d84e239d305bf2daed7b049c34"}))))}get el(){return this}static get watchers(){return{trigger:[{onTriggerChange:0}],triggerAction:[{onTriggerChange:0}],isOpen:[{onIsOpenChange:0}]}}static get style(){return{ionic:'@charset "UTF-8";:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host(.select-popover-rich-content){--width:clamp(250px, calc(100vw - 40px), 400px)}:host{--width:250px;--max-height:90%;--box-shadow:var(--token-elevation-4, 0px 3px 12px 0px rgba(0, 0, 0, 0.12), 0px 15px 48px 0px rgba(0, 0, 0, 0.18));--backdrop-opacity:0.3}.popover-content{border-radius:var(--token-border-radius-400, var(--token-scale-400, 16px));-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}[dir=rtl] .popover-content{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.popover-content:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}',ios:'@charset "UTF-8";:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host(.select-popover-rich-content){--width:clamp(250px, calc(100vw - 40px), 400px)}:host{--width:200px;--max-height:90%;--box-shadow:none;--backdrop-opacity:var(--ion-backdrop-opacity, 0.08)}:host(.popover-desktop){--box-shadow:0px 4px 16px 0px rgba(0, 0, 0, 0.12)}.popover-content{border-radius:10px}:host(.popover-desktop) .popover-content{border:0.5px solid var(--ion-color-step-100, var(--ion-background-color-step-100, #e6e6e6))}.popover-arrow{display:block;position:absolute;width:20px;height:10px;overflow:hidden;z-index:11}.popover-arrow::after{top:3px;border-radius:3px;position:absolute;width:14px;height:14px;-webkit-transform:rotate(45deg);transform:rotate(45deg);background:var(--background);content:"";z-index:10}.popover-arrow::after{inset-inline-start:3px}:host(.popover-bottom) .popover-arrow{top:auto;bottom:-10px}:host(.popover-bottom) .popover-arrow::after{top:-6px}:host(.popover-side-left) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host(.popover-side-right) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host(.popover-side-top) .popover-arrow{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.popover-side-start) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}:host-context([dir=rtl]):host(.popover-side-start) .popover-arrow,:host-context([dir=rtl]).popover-side-start .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}@supports selector(:dir(rtl)){:host(.popover-side-start:dir(rtl)) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}}:host(.popover-side-end) .popover-arrow{-webkit-transform:rotate(-90deg);transform:rotate(-90deg)}:host-context([dir=rtl]):host(.popover-side-end) .popover-arrow,:host-context([dir=rtl]).popover-side-end .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}@supports selector(:dir(rtl)){:host(.popover-side-end:dir(rtl)) .popover-arrow{-webkit-transform:rotate(90deg);transform:rotate(90deg)}}.popover-arrow,.popover-content{opacity:0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.popover-translucent) .popover-content,:host(.popover-translucent) .popover-arrow::after{background:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.8);-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}}',md:'@charset "UTF-8";:host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;right:0;left:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:fixed;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);z-index:1001}:host(.popover-nested){pointer-events:none}:host(.popover-nested) .popover-wrapper{pointer-events:auto}:host(.overlay-hidden){display:none}.popover-wrapper{z-index:10}.popover-content{display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow);overflow:auto;z-index:10}::slotted(.popover-viewport){--ion-safe-area-top:0px;--ion-safe-area-right:0px;--ion-safe-area-bottom:0px;--ion-safe-area-left:0px;display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column}:host(.popover-nested.popover-side-left){--offset-x:5px}:host(.popover-nested.popover-side-right){--offset-x:-5px}:host(.popover-nested.popover-side-start){--offset-x:5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-start),:host-context([dir=rtl]).popover-nested.popover-side-start{--offset-x:-5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-start:dir(rtl)){--offset-x:-5px}}:host(.popover-nested.popover-side-end){--offset-x:-5px}:host-context([dir=rtl]):host(.popover-nested.popover-side-end),:host-context([dir=rtl]).popover-nested.popover-side-end{--offset-x:5px}@supports selector(:dir(rtl)){:host(.popover-nested.popover-side-end:dir(rtl)){--offset-x:5px}}:host(.select-popover-rich-content){--width:clamp(250px, calc(100vw - 40px), 400px)}:host{--width:250px;--max-height:90%;--box-shadow:0 5px 5px -3px rgba(0, 0, 0, 0.2), 0 8px 10px 1px rgba(0, 0, 0, 0.14), 0 3px 14px 2px rgba(0, 0, 0, 0.12);--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}.popover-content{border-radius:4px;-webkit-transform-origin:left top;transform-origin:left top}:host-context([dir=rtl]) .popover-content{-webkit-transform-origin:right top;transform-origin:right top}[dir=rtl] .popover-content{-webkit-transform-origin:right top;transform-origin:right top}@supports selector(:dir(rtl)){.popover-content:dir(rtl){-webkit-transform-origin:right top;transform-origin:right top}}.popover-viewport{-webkit-transition-delay:100ms;transition-delay:100ms}.popover-wrapper{opacity:0}'}}},[289,"ion-popover",{hasController:[4,"has-controller"],delegate:[16],overlayIndex:[2,"overlay-index"],enterAnimation:[16],leaveAnimation:[16],component:[1],componentProps:[16],keyboardClose:[4,"keyboard-close"],cssClass:[1,"css-class"],backdropDismiss:[4,"backdrop-dismiss"],event:[8],showBackdrop:[4,"show-backdrop"],translucent:[4],animated:[4],htmlAttributes:[16],triggerAction:[1,"trigger-action"],trigger:[1],size:[1],dismissOnSelect:[4,"dismiss-on-select"],reference:[1],side:[1],alignment:[1025],arrow:[4],isOpen:[4,"is-open"],keyboardEvents:[4,"keyboard-events"],focusTrap:[4,"focus-trap"],keepContentsMounted:[4,"keep-contents-mounted"],presented:[32],presentFromTrigger:[64],present:[64],dismiss:[64],getParentPopover:[64],onDidDismiss:[64],onWillDismiss:[64]},void 0,{trigger:[{onTriggerChange:0}],triggerAction:[{onTriggerChange:0}],isOpen:[{onIsOpenChange:0}]}]),Q={ionPopoverDidPresent:"ionViewDidEnter",ionPopoverWillPresent:"ionViewWillEnter",ionPopoverWillDismiss:"ionViewWillLeave",ionPopoverDidDismiss:"ionViewDidLeave"};function Z(){"undefined"!=typeof customElements&&["ion-popover","ion-backdrop"].forEach((t=>{switch(t){case"ion-popover":customElements.get(n(t))||customElements.define(n(t),K);break;case"ion-backdrop":customElements.get(n(t))||I()}}))}export{K as P,Z as d}
|
package/components/p-CN-WzkJE.js
DELETED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{p as t,H as e,e as o,h as i,d as r,t as s}from"./p-3Ni1Z654.js";import{o as a,e as n}from"./p-BqDiJgC_.js";import{c as l}from"./p-BjW8SOqw.js";import{h as p}from"./p-DaJxRxSQ.js";import{b as d}from"./p-CVBkx7m1.js";const h=t(class extends e{constructor(t){super(),!1!==t&&this.__registerHost(),this.__attachShadow(),this.ionChange=o(this,"ionChange",7),this.ionValueChange=o(this,"ionValueChange",7),this.inputId="ion-rg-"+c++,this.helperTextId=`${this.inputId}-helper-text`,this.errorTextId=`${this.inputId}-error-text`,this.labelId=`${this.inputId}-lbl`,this.isInvalid=!1,this.allowEmptySelection=!1,this.name=this.inputId,this.scheduleTabindexUpdate=a((()=>this.setRadioTabindex(this.value)),0),this.setRadioTabindex=t=>{const e=this.getRadios(),o=e.find((t=>!t.disabled)),i=e.find((e=>e.value===t&&!e.disabled));if(!o&&!i)return;const r=i||o;for(const t of e)t.setButtonTabindex(t===r?0:-1)},this.onClick=t=>{t.preventDefault();const e=t.target&&t.target.closest("ion-radio");if(e&&!e.disabled){const o=e.value;o!==this.value?(this.value=o,this.emitValueChange(t)):this.allowEmptySelection&&(this.value=void 0,this.emitValueChange(t))}}}valueChanged(t){this.setRadioTabindex(t),this.ionValueChange.emit({value:t})}componentDidLoad(){this.valueChanged(this.value)}async updateRadiosTabindex(){this.scheduleTabindexUpdate()}async connectedCallback(){const t=this.el.querySelector("ion-list-header")||this.el.querySelector("ion-item-divider");if(t){const e=this.label=t.querySelector("ion-label");e&&(this.labelId=e.id=this.name+"-lbl")}"undefined"!=typeof MutationObserver&&(this.validationObserver=new MutationObserver((()=>{const t=l(this.el);this.isInvalid!==t&&(this.isInvalid=t,Promise.resolve().then((()=>{this.hintTextId=this.getHintTextId()})))})),this.validationObserver.observe(this.el,{attributes:!0,attributeFilter:["class"]})),this.isInvalid=l(this.el)}componentWillLoad(){this.hintTextId=this.getHintTextId()}disconnectedCallback(){this.validationObserver&&(this.validationObserver.disconnect(),this.validationObserver=void 0)}getRadios(){return Array.from(this.el.querySelectorAll("ion-radio"))}emitValueChange(t){const{value:e}=this;this.ionChange.emit({value:e,event:t})}onKeydown(t){const e=!!this.el.closest("ion-select-popover")||!!this.el.closest("ion-select-modal");if(t.target&&!this.el.contains(t.target))return;const o=this.getRadios().filter((t=>!t.disabled));if(t.target&&o.includes(t.target)){const i=o.findIndex((e=>e===t.target)),r=o[i];let s;if(["ArrowDown","ArrowRight"].includes(t.key)&&(s=i===o.length-1?o[0]:o[i+1]),["ArrowUp","ArrowLeft"].includes(t.key)&&(s=0===i?o[o.length-1]:o[i-1]),s&&o.includes(s)&&(s.setFocus(t),e||(this.value=s.value,this.emitValueChange(t))),[" "].includes(t.key)){const e=this.value;this.value=this.allowEmptySelection&&void 0!==this.value?void 0:r.value,(e!==this.value||this.allowEmptySelection)&&this.emitValueChange(t),t.preventDefault()}if("Enter"===t.key&&e&&!t.repeat){const e=this.value;this.value=r.value,e!==this.value&&this.emitValueChange(t),t.preventDefault()}}}async setFocus(){const t=this.getRadios().find((t=>-1!==t.tabIndex));null==t||t.setFocus()}renderHintText(){const{helperText:t,errorText:e,helperTextId:o,errorTextId:r,isInvalid:s}=this;if(t||e)return i("div",{class:"radio-group-top"},i("div",{id:o,class:"helper-text",part:"supporting-text helper-text","aria-live":"polite"},s?null:t),i("div",{id:r,class:"error-text",part:"supporting-text error-text",role:"alert"},s?e:null))}getHintTextId(){const{helperText:t,errorText:e,helperTextId:o,errorTextId:i,isInvalid:r}=this;return r&&e?i:t?o:void 0}render(){const{label:t,labelId:e,el:o,name:s,value:a}=this,l=d(this);return n(!0,o,s,a,!1),i(r,{key:"c8077cb16bcc6719fa2aba1a5a9cb139e0b81a9e",class:{[l]:!0,"in-list":p("ion-list",o)},role:"radiogroup","aria-labelledby":t?e:null,"aria-describedby":this.hintTextId,"aria-invalid":this.isInvalid?"true":void 0,onClick:this.onClick},this.renderHintText(),i("slot",{key:"ddeca1867cb8e74121add7616f6be9e1a202c142"}))}get el(){return this}static get watchers(){return{value:[{valueChanged:0}]}}static get style(){return{ionic:":host{display:block}.radio-group-top .error-text{display:none}.radio-group-top .helper-text{display:block}:host(.ion-touched.ion-invalid) .radio-group-top .error-text{display:block}:host(.ion-touched.ion-invalid) .radio-group-top .helper-text{display:none}.radio-group-top{font-size:var(--token-font-size-300, 0.75rem);font-weight:var(--token-font-weight-medium, 500);letter-spacing:var(--token-font-letter-spacing-0, 0%);line-height:var(--token-font-line-height-500, var(--token-scale-500, 20px));text-decoration:none;text-transform:none}.radio-group-top .error-text{color:var(--token-text-danger, var(--token-semantics-danger-900, var(--token-primitives-red-900, #991b1b)))}.radio-group-top .helper-text{color:var(--token-text-subtlest, var(--token-primitives-neutral-800, #626262))}:host(.in-list) .radio-group-top{padding-right:var(--token-space-400, var(--token-scale-400, 16px));padding-left:calc(var(--token-space-400, var(--token-scale-400, 16px)) + var(--ion-safe-area-left, 0px));}:host-context([dir=rtl]):host(.in-list) .radio-group-top,:host-context([dir=rtl]).in-list .radio-group-top{padding-right:calc(var(--token-space-400, var(--token-scale-400, 16px)) + var(--ion-safe-area-right, 0px));padding-left:var(--token-space-400, var(--token-scale-400, 16px))}@supports selector(:dir(rtl)){:host(.in-list:dir(rtl)) .radio-group-top{padding-right:calc(var(--token-space-400, var(--token-scale-400, 16px)) + var(--ion-safe-area-right, 0px));padding-left:var(--token-space-400, var(--token-scale-400, 16px))}}",ios:":host{display:block}.radio-group-top .error-text{display:none}.radio-group-top .helper-text{display:block}:host(.ion-touched.ion-invalid) .radio-group-top .error-text{display:block}:host(.ion-touched.ion-invalid) .radio-group-top .helper-text{display:none}.radio-group-top{line-height:1.5}.radio-group-top .error-text{color:var(--ion-color-danger, #c5000f)}.radio-group-top .helper-text{color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.in-list) .radio-group-top{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}",md:":host{display:block}.radio-group-top .error-text{display:none}.radio-group-top .helper-text{display:block}:host(.ion-touched.ion-invalid) .radio-group-top .error-text{display:block}:host(.ion-touched.ion-invalid) .radio-group-top .helper-text{display:none}.radio-group-top{line-height:1.5}.radio-group-top .error-text{color:var(--ion-color-danger, #c5000f)}.radio-group-top .helper-text{color:var(--ion-color-step-700, var(--ion-text-color-step-300, #4d4d4d))}:host(.in-list) .radio-group-top{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px}"}}},[289,"ion-radio-group",{allowEmptySelection:[4,"allow-empty-selection"],compareWith:[1,"compare-with"],name:[1],value:[1032],helperText:[1,"helper-text"],errorText:[1,"error-text"],isInvalid:[32],hintTextId:[32],updateRadiosTabindex:[64],setFocus:[64]},[[4,"keydown","onKeydown"]],{value:[{valueChanged:0}]}]);let c=0;function u(){"undefined"!=typeof customElements&&["ion-radio-group"].forEach((t=>{"ion-radio-group"===t&&(customElements.get(s(t))||customElements.define(s(t),h))}))}export{h as R,u as d}
|
|
@@ -1,348 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
'use strict';
|
|
5
|
-
|
|
6
|
-
var index = require('./index-CzcLEdQ5.js');
|
|
7
|
-
var ionicGlobal = require('./ionic-global-CSEbHD_F.js');
|
|
8
|
-
|
|
9
|
-
const galleryCss = () => `:host{display:grid;grid-template-columns:repeat(var(--internal-gallery-columns, 2), minmax(0, 1fr))}:host(.gallery-layout-uniform){gap:var(--ion-gallery-gap, 16px)}:host(.gallery-layout-uniform) ::slotted(*){aspect-ratio:1/1}:host(.gallery-layout-masonry){-ms-flex-align:start;align-items:start;-webkit-column-gap:var(--ion-gallery-gap, 16px);-moz-column-gap:var(--ion-gallery-gap, 16px);column-gap:var(--ion-gallery-gap, 16px);row-gap:0;grid-auto-rows:2px}:host(.gallery-layout-masonry) ::slotted(*){display:block;min-height:unset;margin-bottom:var(--ion-gallery-gap, 16px)}::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}`;
|
|
10
|
-
|
|
11
|
-
// TODO(FW-7285): Replace with global breakpoints
|
|
12
|
-
const BREAKPOINTS = {
|
|
13
|
-
xs: 0,
|
|
14
|
-
sm: 576,
|
|
15
|
-
md: 768,
|
|
16
|
-
lg: 992,
|
|
17
|
-
xl: 1200,
|
|
18
|
-
xxl: 1400,
|
|
19
|
-
};
|
|
20
|
-
const DEFAULT_COLUMNS = {
|
|
21
|
-
xs: 2,
|
|
22
|
-
sm: 3,
|
|
23
|
-
md: 4,
|
|
24
|
-
lg: 6,
|
|
25
|
-
xl: 8,
|
|
26
|
-
xxl: 10,
|
|
27
|
-
};
|
|
28
|
-
const BREAKPOINT_ORDER = ['xs', 'sm', 'md', 'lg', 'xl', 'xxl'];
|
|
29
|
-
const Gallery = class {
|
|
30
|
-
constructor(hostRef) {
|
|
31
|
-
index.registerInstance(this, hostRef);
|
|
32
|
-
// Keep track of whether we've warned about invalid columns to avoid
|
|
33
|
-
// duplicate warnings on screen resize.
|
|
34
|
-
this.hasWarnedInvalidColumns = false;
|
|
35
|
-
/**
|
|
36
|
-
* The visual layout of the gallery. When `uniform`, rows take up the height
|
|
37
|
-
* of the tallest item and are spaced evenly across the gallery. Additionally,
|
|
38
|
-
* items will have an aspect ratio of 1/1, forcing them to be square unless a
|
|
39
|
-
* height is explicitly set. When `masonry`, items will be positioned under each
|
|
40
|
-
* other with only the specified gap between them.
|
|
41
|
-
*/
|
|
42
|
-
this.layout = 'uniform';
|
|
43
|
-
/**
|
|
44
|
-
* The order in which items are positioned. Only applies when layout is
|
|
45
|
-
* `masonry`. When `sequential`, items are positioned in the order they are
|
|
46
|
-
* placed in the DOM. When `best-fit`, items are positioned under the column
|
|
47
|
-
* with the most available space.
|
|
48
|
-
*/
|
|
49
|
-
this.order = 'sequential';
|
|
50
|
-
/**
|
|
51
|
-
* The number of columns to display. Can be set as a number or an object of
|
|
52
|
-
* breakpoint values (e.g. `{ xs: 2, sm: 3, md: 4 }`).
|
|
53
|
-
*/
|
|
54
|
-
this.columns = DEFAULT_COLUMNS;
|
|
55
|
-
/**
|
|
56
|
-
* Listen for the slotchange event on the slot.
|
|
57
|
-
* When the layout is `masonry`, this listener is used to schedule a resize
|
|
58
|
-
* of the masonry grid when the slot changes. This is useful for when items
|
|
59
|
-
* are added or removed from the gallery.
|
|
60
|
-
*/
|
|
61
|
-
this.onSlotChange = () => {
|
|
62
|
-
this.scheduleMasonryResize();
|
|
63
|
-
};
|
|
64
|
-
/**
|
|
65
|
-
* Measure the host and children, then compute masonry placement.
|
|
66
|
-
*/
|
|
67
|
-
this.resizeMasonryGrid = () => {
|
|
68
|
-
this.masonryRaf = undefined;
|
|
69
|
-
if (this.layout !== 'masonry') {
|
|
70
|
-
this.clearMasonryStyles();
|
|
71
|
-
return;
|
|
72
|
-
}
|
|
73
|
-
const styles = getComputedStyle(this.el);
|
|
74
|
-
const rowHeight = parseFloat(styles.getPropertyValue('grid-auto-rows')) || 0;
|
|
75
|
-
const rowGap = parseFloat(styles.getPropertyValue('row-gap')) || parseFloat(styles.getPropertyValue('gap')) || 0;
|
|
76
|
-
const columnsStr = styles.getPropertyValue('--internal-gallery-columns');
|
|
77
|
-
// Fallback to 2 columns for masonry calculations when the resolved
|
|
78
|
-
// --internal-gallery-columns CSS value is missing or unparsable.
|
|
79
|
-
const columns = parseInt(columnsStr, 10) || 2;
|
|
80
|
-
const items = this.getItems();
|
|
81
|
-
this.layoutMasonry(items, rowHeight, rowGap, columns);
|
|
82
|
-
};
|
|
83
|
-
}
|
|
84
|
-
layoutChanged() {
|
|
85
|
-
this.updateResponsiveColumns(true);
|
|
86
|
-
this.scheduleMasonryResize();
|
|
87
|
-
}
|
|
88
|
-
componentDidLoad() {
|
|
89
|
-
this.updateResponsiveColumns(true);
|
|
90
|
-
this.resizeObserver = new ResizeObserver(() => {
|
|
91
|
-
this.updateResponsiveColumns();
|
|
92
|
-
this.scheduleMasonryResize();
|
|
93
|
-
});
|
|
94
|
-
this.resizeObserver.observe(this.el);
|
|
95
|
-
this.scheduleMasonryResize();
|
|
96
|
-
}
|
|
97
|
-
disconnectedCallback() {
|
|
98
|
-
var _a;
|
|
99
|
-
if (this.masonryRaf !== undefined) {
|
|
100
|
-
cancelAnimationFrame(this.masonryRaf);
|
|
101
|
-
this.masonryRaf = undefined;
|
|
102
|
-
}
|
|
103
|
-
(_a = this.resizeObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
|
|
104
|
-
this.resizeObserver = undefined;
|
|
105
|
-
}
|
|
106
|
-
/**
|
|
107
|
-
* Listen for the load event on child elements.
|
|
108
|
-
* When the layout is `masonry`, this listener is used to schedule a resize
|
|
109
|
-
* of the masonry grid when the child elements load. This is useful for when
|
|
110
|
-
* images take time to load.
|
|
111
|
-
*/
|
|
112
|
-
onChildLoad(ev) {
|
|
113
|
-
if (this.layout !== 'masonry') {
|
|
114
|
-
return;
|
|
115
|
-
}
|
|
116
|
-
const target = ev.target;
|
|
117
|
-
if (target !== null && this.el.contains(target)) {
|
|
118
|
-
this.scheduleMasonryResize();
|
|
119
|
-
}
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Batch masonry measurements to a single animation frame.
|
|
123
|
-
* This avoids repeated sync layouts during rapid resize/load/slot changes.
|
|
124
|
-
*/
|
|
125
|
-
scheduleMasonryResize() {
|
|
126
|
-
if (this.layout !== 'masonry') {
|
|
127
|
-
this.clearMasonryStyles();
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
|
-
if (this.masonryRaf !== undefined) {
|
|
131
|
-
cancelAnimationFrame(this.masonryRaf);
|
|
132
|
-
}
|
|
133
|
-
this.masonryRaf = requestAnimationFrame(this.resizeMasonryGrid);
|
|
134
|
-
}
|
|
135
|
-
/**
|
|
136
|
-
* Normalize a columns value to a positive integer.
|
|
137
|
-
* Returns undefined when the input cannot be interpreted as a finite number.
|
|
138
|
-
*/
|
|
139
|
-
sanitizeColumns(columns) {
|
|
140
|
-
if (columns === undefined) {
|
|
141
|
-
return undefined;
|
|
142
|
-
}
|
|
143
|
-
const numericColumns = typeof columns === 'number' ? columns : Number(columns);
|
|
144
|
-
if (!Number.isFinite(numericColumns) || !Number.isInteger(numericColumns) || numericColumns <= 0) {
|
|
145
|
-
return undefined;
|
|
146
|
-
}
|
|
147
|
-
return numericColumns;
|
|
148
|
-
}
|
|
149
|
-
/**
|
|
150
|
-
* Check if the value is a breakpoint columns object.
|
|
151
|
-
*/
|
|
152
|
-
isBreakpointColumns(value) {
|
|
153
|
-
return typeof value === 'object' && value !== null && !Array.isArray(value);
|
|
154
|
-
}
|
|
155
|
-
/**
|
|
156
|
-
* Check if the breakpoint columns object has any invalid values.
|
|
157
|
-
* Returns true if any value is undefined or not a positive integer.
|
|
158
|
-
*/
|
|
159
|
-
hasInvalidBreakpointColumns(breakpointColumns) {
|
|
160
|
-
for (const breakpoint of BREAKPOINT_ORDER) {
|
|
161
|
-
const value = breakpointColumns[breakpoint];
|
|
162
|
-
if (value !== undefined && this.sanitizeColumns(value) === undefined) {
|
|
163
|
-
return true;
|
|
164
|
-
}
|
|
165
|
-
}
|
|
166
|
-
return false;
|
|
167
|
-
}
|
|
168
|
-
/**
|
|
169
|
-
* Get the columns from a responsive breakpoint map.
|
|
170
|
-
* Returns the columns for the last matching breakpoint.
|
|
171
|
-
*/
|
|
172
|
-
getColumnsFromBreakpointColumns(width, breakpointColumns) {
|
|
173
|
-
let columns;
|
|
174
|
-
for (const bp of BREAKPOINT_ORDER) {
|
|
175
|
-
const customValue = breakpointColumns[bp];
|
|
176
|
-
const parsedCustom = this.sanitizeColumns(customValue);
|
|
177
|
-
const parsedDefault = this.sanitizeColumns(DEFAULT_COLUMNS[bp]);
|
|
178
|
-
// Use valid custom values when present; otherwise fall back to defaults per breakpoint.
|
|
179
|
-
const resolved = customValue === undefined || parsedCustom === undefined ? parsedDefault : parsedCustom;
|
|
180
|
-
if (resolved !== undefined && width >= BREAKPOINTS[bp]) {
|
|
181
|
-
columns = resolved;
|
|
182
|
-
}
|
|
183
|
-
}
|
|
184
|
-
return columns;
|
|
185
|
-
}
|
|
186
|
-
/**
|
|
187
|
-
* Warn about an invalid columns value when it is set to a non-positive
|
|
188
|
-
* integer or a breakpoint map object with invalid values.
|
|
189
|
-
*/
|
|
190
|
-
warnInvalidColumns(columns) {
|
|
191
|
-
index.printIonWarning(`[ion-gallery] - Invalid "columns" value (${JSON.stringify(columns)}). Expected a positive integer or breakpoint map object (e.g. { xs: 2, md: 4 }). Falling back to default responsive columns.`, this.el);
|
|
192
|
-
this.hasWarnedInvalidColumns = true;
|
|
193
|
-
}
|
|
194
|
-
/**
|
|
195
|
-
* Resolve the active columns value for the current width. Falls back to
|
|
196
|
-
* the default responsive columns when the provided prop is invalid.
|
|
197
|
-
*/
|
|
198
|
-
getColumnsForWidth(width) {
|
|
199
|
-
const { columns, hasWarnedInvalidColumns } = this;
|
|
200
|
-
const isBreakpointColumns = this.isBreakpointColumns(columns);
|
|
201
|
-
const hasInvalidBreakpointColumns = isBreakpointColumns && this.hasInvalidBreakpointColumns(columns);
|
|
202
|
-
const sanitizedColumns = isBreakpointColumns
|
|
203
|
-
? this.getColumnsFromBreakpointColumns(width, columns)
|
|
204
|
-
: this.sanitizeColumns(columns);
|
|
205
|
-
if (!hasWarnedInvalidColumns &&
|
|
206
|
-
(hasInvalidBreakpointColumns || (!isBreakpointColumns && sanitizedColumns === undefined))) {
|
|
207
|
-
this.warnInvalidColumns(columns);
|
|
208
|
-
}
|
|
209
|
-
if (sanitizedColumns !== undefined) {
|
|
210
|
-
return sanitizedColumns;
|
|
211
|
-
}
|
|
212
|
-
return this.getColumnsFromBreakpointColumns(width, DEFAULT_COLUMNS);
|
|
213
|
-
}
|
|
214
|
-
/**
|
|
215
|
-
* Update the responsive columns for the gallery.
|
|
216
|
-
* This is used to update the columns when the component width changes.
|
|
217
|
-
*/
|
|
218
|
-
updateResponsiveColumns(force = false) {
|
|
219
|
-
const width = this.el.getBoundingClientRect().width;
|
|
220
|
-
// Only update the columns if the component width has changed by more than
|
|
221
|
-
// 1px or if the force flag is true. This prevents unnecessary re-renders
|
|
222
|
-
// when the component width has not changed.
|
|
223
|
-
if (!width || (!force && this.lastWidth !== undefined && Math.abs(this.lastWidth - width) < 1)) {
|
|
224
|
-
return;
|
|
225
|
-
}
|
|
226
|
-
this.lastWidth = width;
|
|
227
|
-
const columns = this.getColumnsForWidth(width);
|
|
228
|
-
this.el.style.setProperty('--internal-gallery-columns', `${columns}`);
|
|
229
|
-
}
|
|
230
|
-
/**
|
|
231
|
-
* Return all directly slotted HTMLElement children of the gallery.
|
|
232
|
-
*/
|
|
233
|
-
getItems() {
|
|
234
|
-
return Array.from(this.el.children).filter((child) => child instanceof HTMLElement);
|
|
235
|
-
}
|
|
236
|
-
/**
|
|
237
|
-
* Clear the item styles for the given item element.
|
|
238
|
-
* This is used to switch between uniform and masonry layouts.
|
|
239
|
-
*/
|
|
240
|
-
clearItemStyles(itemEl) {
|
|
241
|
-
itemEl.style.gridRowStart = '';
|
|
242
|
-
itemEl.style.gridRowEnd = '';
|
|
243
|
-
itemEl.style.gridColumn = '';
|
|
244
|
-
itemEl.style.marginBottom = '';
|
|
245
|
-
}
|
|
246
|
-
/**
|
|
247
|
-
* Clear placement styles for all items when leaving masonry mode.
|
|
248
|
-
*/
|
|
249
|
-
clearMasonryStyles() {
|
|
250
|
-
this.getItems().forEach((itemEl) => this.clearItemStyles(itemEl));
|
|
251
|
-
}
|
|
252
|
-
/**
|
|
253
|
-
* Convert a rendered item height to the number of grid rows it should span.
|
|
254
|
-
* Returns undefined for images that are not fully loaded yet.
|
|
255
|
-
*/
|
|
256
|
-
calculateRowSpan(itemEl, rowHeight, rowGap) {
|
|
257
|
-
if (itemEl instanceof HTMLImageElement && (!itemEl.complete || itemEl.naturalHeight === 0)) {
|
|
258
|
-
return undefined;
|
|
259
|
-
}
|
|
260
|
-
const height = itemEl.getBoundingClientRect().height;
|
|
261
|
-
const itemStyles = getComputedStyle(itemEl);
|
|
262
|
-
const marginBottom = parseFloat(itemStyles.getPropertyValue('margin-bottom')) || 0;
|
|
263
|
-
const denominator = rowHeight + rowGap;
|
|
264
|
-
if (!denominator || !Number.isFinite(denominator)) {
|
|
265
|
-
return 1;
|
|
266
|
-
}
|
|
267
|
-
return Math.ceil((height + marginBottom + rowGap) / denominator) || 1;
|
|
268
|
-
}
|
|
269
|
-
/**
|
|
270
|
-
* Get the index of the column to position the item in.
|
|
271
|
-
* When the order is `best-fit`, the column with the shortest height is
|
|
272
|
-
* returned. Otherwise, items are placed in the column that matches their
|
|
273
|
-
* natural DOM order.
|
|
274
|
-
*/
|
|
275
|
-
getColumnIndex(index, columnHeights, columns) {
|
|
276
|
-
const { order } = this;
|
|
277
|
-
if (order === 'best-fit') {
|
|
278
|
-
let columnIndex = 0;
|
|
279
|
-
for (let i = 1; i < columns; i++) {
|
|
280
|
-
if (columnHeights[i] < columnHeights[columnIndex]) {
|
|
281
|
-
columnIndex = i;
|
|
282
|
-
}
|
|
283
|
-
}
|
|
284
|
-
return columnIndex;
|
|
285
|
-
}
|
|
286
|
-
return index % columns;
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Apply masonry placement by assigning each item a column and row span.
|
|
290
|
-
*/
|
|
291
|
-
layoutMasonry(items, rowHeight, rowGap, columns) {
|
|
292
|
-
const columnHeights = new Array(columns).fill(0);
|
|
293
|
-
const lastItemsByColumn = new Array(columns).fill(undefined);
|
|
294
|
-
items.forEach((itemEl, i) => {
|
|
295
|
-
itemEl.style.marginBottom = '';
|
|
296
|
-
const span = this.calculateRowSpan(itemEl, rowHeight, rowGap);
|
|
297
|
-
if (span === undefined) {
|
|
298
|
-
this.clearItemStyles(itemEl);
|
|
299
|
-
return;
|
|
300
|
-
}
|
|
301
|
-
const columnIndex = this.getColumnIndex(i, columnHeights, columns);
|
|
302
|
-
const start = columnHeights[columnIndex] + 1;
|
|
303
|
-
itemEl.style.gridColumn = `${columnIndex + 1}`;
|
|
304
|
-
itemEl.style.gridRowStart = `${start}`;
|
|
305
|
-
itemEl.style.gridRowEnd = `span ${span}`;
|
|
306
|
-
columnHeights[columnIndex] = start + span - 1;
|
|
307
|
-
lastItemsByColumn[columnIndex] = itemEl;
|
|
308
|
-
});
|
|
309
|
-
// Remove trailing space from the final item in each column while preserving
|
|
310
|
-
// spacing between all non-final items.
|
|
311
|
-
lastItemsByColumn.forEach((itemEl) => {
|
|
312
|
-
if (itemEl === undefined) {
|
|
313
|
-
return;
|
|
314
|
-
}
|
|
315
|
-
itemEl.style.marginBottom = '0px';
|
|
316
|
-
const spanWithoutTrailingGap = this.calculateRowSpan(itemEl, rowHeight, rowGap);
|
|
317
|
-
if (spanWithoutTrailingGap === undefined) {
|
|
318
|
-
this.clearItemStyles(itemEl);
|
|
319
|
-
return;
|
|
320
|
-
}
|
|
321
|
-
itemEl.style.gridRowEnd = `span ${spanWithoutTrailingGap}`;
|
|
322
|
-
});
|
|
323
|
-
}
|
|
324
|
-
render() {
|
|
325
|
-
const { layout, order } = this;
|
|
326
|
-
const theme = ionicGlobal.getIonTheme(this);
|
|
327
|
-
return (index.h(index.Host, { key: '77cd21eada2c24092cc551d4e647582c820f05d9', class: {
|
|
328
|
-
[theme]: true,
|
|
329
|
-
[`gallery-layout-${layout}`]: true,
|
|
330
|
-
[`gallery-order-${order}`]: layout === 'masonry',
|
|
331
|
-
} }, index.h("slot", { key: 'fa311652848a526a7629476afb963bf3e68455c4', onSlotchange: this.onSlotChange })));
|
|
332
|
-
}
|
|
333
|
-
get el() { return index.getElement(this); }
|
|
334
|
-
static get watchers() { return {
|
|
335
|
-
"layout": [{
|
|
336
|
-
"layoutChanged": 0
|
|
337
|
-
}],
|
|
338
|
-
"order": [{
|
|
339
|
-
"layoutChanged": 0
|
|
340
|
-
}],
|
|
341
|
-
"columns": [{
|
|
342
|
-
"layoutChanged": 0
|
|
343
|
-
}]
|
|
344
|
-
}; }
|
|
345
|
-
};
|
|
346
|
-
Gallery.style = galleryCss();
|
|
347
|
-
|
|
348
|
-
exports.ion_gallery = Gallery;
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
export {};
|
|
@@ -1,103 +0,0 @@
|
|
|
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
|
-
/**
|
|
64
|
-
* @prop --ion-gallery-gap: Space between gallery items
|
|
65
|
-
*/
|
|
66
|
-
display: grid;
|
|
67
|
-
grid-template-columns: repeat(var(--internal-gallery-columns, 2), minmax(0, 1fr));
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
:host(.gallery-layout-uniform) {
|
|
71
|
-
gap: var(--ion-gallery-gap, 16px);
|
|
72
|
-
}
|
|
73
|
-
|
|
74
|
-
:host(.gallery-layout-uniform) ::slotted(*) {
|
|
75
|
-
aspect-ratio: 1/1;
|
|
76
|
-
}
|
|
77
|
-
|
|
78
|
-
:host(.gallery-layout-masonry) {
|
|
79
|
-
align-items: start;
|
|
80
|
-
column-gap: var(--ion-gallery-gap, 16px);
|
|
81
|
-
row-gap: 0;
|
|
82
|
-
grid-auto-rows: 2px;
|
|
83
|
-
}
|
|
84
|
-
|
|
85
|
-
:host(.gallery-layout-masonry) ::slotted(*) {
|
|
86
|
-
display: block;
|
|
87
|
-
min-height: unset;
|
|
88
|
-
margin-bottom: var(--ion-gallery-gap, 16px);
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
::slotted(*) {
|
|
92
|
-
margin-left: 0;
|
|
93
|
-
margin-right: 0;
|
|
94
|
-
margin-top: 0;
|
|
95
|
-
margin-bottom: 0;
|
|
96
|
-
width: 100%;
|
|
97
|
-
}
|
|
98
|
-
|
|
99
|
-
::slotted(img) {
|
|
100
|
-
display: block;
|
|
101
|
-
object-fit: cover;
|
|
102
|
-
object-position: center;
|
|
103
|
-
}
|