@ionic/core 8.7.17-dev.11767717752.14fe98a4 → 8.7.17-dev.11767891829.1a63afa3

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/hydrate/index.mjs CHANGED
@@ -10581,7 +10581,11 @@ class Content {
10581
10581
  this.inheritedAttributes = inheritAriaAttributes(this.el);
10582
10582
  }
10583
10583
  connectedCallback() {
10584
- this.isMainContent = this.el.closest('ion-menu, ion-popover, ion-modal') === null;
10584
+ var _a;
10585
+ // Content is "main" if not inside menu/popover/modal and not nested in another ion-content
10586
+ this.isMainContent =
10587
+ this.el.closest('ion-menu, ion-popover, ion-modal') === null &&
10588
+ ((_a = this.el.parentElement) === null || _a === void 0 ? void 0 : _a.closest('ion-content')) === null;
10585
10589
  // Detect sibling header/footer for safe-area handling
10586
10590
  this.detectSiblingElements();
10587
10591
  /**
@@ -10614,21 +10618,48 @@ class Content {
10614
10618
  * bubbles, we can catch any instances of child tab bars loading by listening
10615
10619
  * on IonTabs.
10616
10620
  */
10617
- this.tabsLoadCallback = () => this.resize();
10621
+ this.tabsLoadCallback = () => {
10622
+ this.resize();
10623
+ // Re-detect footer when tab bar loads (it may not exist during initial detection)
10624
+ this.updateSiblingDetection();
10625
+ };
10618
10626
  closestTabs.addEventListener('ionTabBarLoaded', this.tabsLoadCallback);
10619
10627
  }
10620
10628
  }
10621
10629
  }
10622
10630
  /**
10623
- * Detects sibling ion-header and ion-footer elements.
10624
- * When these are absent, content needs to handle safe-area padding directly.
10631
+ * Detects sibling ion-header and ion-footer elements and sets up
10632
+ * a mutation observer to handle dynamic changes (e.g., conditional rendering).
10625
10633
  */
10626
10634
  detectSiblingElements() {
10627
- // Check parent element for sibling header/footer.
10635
+ this.updateSiblingDetection();
10636
+ // Watch for dynamic header/footer changes (common in React conditional rendering)
10637
+ const parent = this.el.parentElement;
10638
+ if (parent && !this.parentMutationObserver && win$1 !== undefined && 'MutationObserver' in win$1) {
10639
+ this.parentMutationObserver = new MutationObserver(() => {
10640
+ this.updateSiblingDetection();
10641
+ });
10642
+ this.parentMutationObserver.observe(parent, { childList: true });
10643
+ }
10644
+ }
10645
+ /**
10646
+ * Updates hasHeader/hasFooter based on current DOM state.
10647
+ * Checks both direct siblings and elements wrapped in custom components
10648
+ * (e.g., <my-header><ion-header>...</ion-header></my-header>).
10649
+ */
10650
+ updateSiblingDetection() {
10628
10651
  const parent = this.el.parentElement;
10629
10652
  if (parent) {
10653
+ // First check for direct ion-header/ion-footer siblings
10630
10654
  this.hasHeader = parent.querySelector(':scope > ion-header') !== null;
10631
10655
  this.hasFooter = parent.querySelector(':scope > ion-footer') !== null;
10656
+ // If not found, check if any sibling contains them (wrapped components)
10657
+ if (!this.hasHeader) {
10658
+ this.hasHeader = this.siblingContainsElement(parent, 'ion-header');
10659
+ }
10660
+ if (!this.hasFooter) {
10661
+ this.hasFooter = this.siblingContainsElement(parent, 'ion-footer');
10662
+ }
10632
10663
  }
10633
10664
  // If no footer found, check if we're inside ion-tabs which has ion-tab-bar
10634
10665
  if (!this.hasFooter) {
@@ -10638,8 +10669,28 @@ class Content {
10638
10669
  }
10639
10670
  }
10640
10671
  }
10672
+ /**
10673
+ * Checks if any sibling element of ion-content contains the specified element.
10674
+ * Only searches one level deep to avoid finding elements in nested pages.
10675
+ */
10676
+ siblingContainsElement(parent, tagName) {
10677
+ for (const sibling of parent.children) {
10678
+ // Skip ion-content itself
10679
+ if (sibling === this.el)
10680
+ continue;
10681
+ // Check if this sibling contains the target element as an immediate child
10682
+ if (sibling.querySelector(`:scope > ${tagName}`) !== null) {
10683
+ return true;
10684
+ }
10685
+ }
10686
+ return false;
10687
+ }
10641
10688
  disconnectedCallback() {
10689
+ var _a;
10642
10690
  this.onScrollEnd();
10691
+ // Clean up mutation observer to prevent memory leaks
10692
+ (_a = this.parentMutationObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
10693
+ this.parentMutationObserver = undefined;
10643
10694
  if (hasLazyBuild(this.el)) {
10644
10695
  /**
10645
10696
  * The event listener and tabs caches need to
@@ -10874,7 +10925,7 @@ class Content {
10874
10925
  const forceOverscroll = this.shouldForceOverscroll();
10875
10926
  const transitionShadow = mode === 'ios';
10876
10927
  this.resize();
10877
- return (hAsync(Host, Object.assign({ key: '83665c0e35e4f4117709606e47d27ad36e343458', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
10928
+ return (hAsync(Host, Object.assign({ key: 'f7218f733e4022a30875441bd949747537d28aa1', role: isMainContent ? 'main' : undefined, class: createColorClasses$1(this.color, {
10878
10929
  [mode]: true,
10879
10930
  'content-sizing': hostContext('ion-popover', this.el),
10880
10931
  overscroll: forceOverscroll,
@@ -10884,12 +10935,12 @@ class Content {
10884
10935
  }), style: {
10885
10936
  '--offset-top': `${this.cTop}px`,
10886
10937
  '--offset-bottom': `${this.cBottom}px`,
10887
- } }, inheritedAttributes), hAsync("div", { key: '75d7cf9315bc8dfb150c3b5bcc356a1f9c793b5a', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? hAsync("slot", { name: "fixed" }) : null, hAsync("div", { key: 'f68bc5843c93ed6f32e998b80c5edc553c77a2d7', class: {
10938
+ } }, inheritedAttributes), hAsync("div", { key: 'b735ec68c18c0b99c3595bb194029830e6542cde', ref: (el) => (this.backgroundContentEl = el), id: "background-content", part: "background" }), fixedSlotPlacement === 'before' ? hAsync("slot", { name: "fixed" }) : null, hAsync("div", { key: 'e76c00d030342d44ade6648c3f9e32ca990787ba', class: {
10888
10939
  'inner-scroll': true,
10889
10940
  'scroll-x': scrollX,
10890
10941
  'scroll-y': scrollY,
10891
10942
  overscroll: (scrollX || scrollY) && forceOverscroll,
10892
- }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: '8d4b2be00f036f6a24bfa65e6324ca715dd93b60' })), transitionShadow ? (hAsync("div", { class: "transition-effect" }, hAsync("div", { class: "transition-cover" }), hAsync("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? hAsync("slot", { name: "fixed" }) : null));
10943
+ }, ref: (scrollEl) => (this.scrollEl = scrollEl), onScroll: this.scrollEvents ? (ev) => this.onScroll(ev) : undefined, part: "scroll" }, hAsync("slot", { key: '9049be4cea9b5da5ec1e1012248b05286fddeb7a' })), transitionShadow ? (hAsync("div", { class: "transition-effect" }, hAsync("div", { class: "transition-cover" }), hAsync("div", { class: "transition-shadow" }))) : null, fixedSlotPlacement === 'after' ? hAsync("slot", { name: "fixed" }) : null));
10893
10944
  }
10894
10945
  get el() { return getElement(this); }
10895
10946
  static get style() { return contentCss; }
@@ -22826,6 +22877,8 @@ class Modal {
22826
22877
  this.gestureAnimationDismissing = false;
22827
22878
  // Whether to skip coordinate-based safe-area detection (for fullscreen phone modals)
22828
22879
  this.skipSafeAreaCoordinateDetection = false;
22880
+ // Track previous safe-area state to avoid redundant DOM writes
22881
+ this.prevSafeAreaState = { top: false, bottom: false, left: false, right: false };
22829
22882
  this.presented = false;
22830
22883
  /** @internal */
22831
22884
  this.hasController = false;
@@ -23016,7 +23069,8 @@ class Modal {
23016
23069
  }
23017
23070
  }
23018
23071
  onWindowResize() {
23019
- // Update safe-area overrides for all modal types on resize
23072
+ // Invalidate safe-area cache on resize (device rotation may change values)
23073
+ this.cachedSafeAreas = undefined;
23020
23074
  this.updateSafeAreaOverrides();
23021
23075
  // Only handle view transition for iOS card modals when no custom animations are provided
23022
23076
  if (getIonMode$1(this) !== 'ios' || !this.presentingElement || this.enterAnimation || this.leaveAnimation) {
@@ -23041,6 +23095,8 @@ class Modal {
23041
23095
  this.triggerController.removeClickListener();
23042
23096
  this.cleanupViewTransitionListener();
23043
23097
  this.cleanupParentRemovalObserver();
23098
+ // Reset safe-area state to handle removal without dismiss (e.g., framework unmount)
23099
+ this.resetSafeAreaState();
23044
23100
  }
23045
23101
  componentWillLoad() {
23046
23102
  var _a;
@@ -23475,8 +23531,28 @@ class Modal {
23475
23531
  */
23476
23532
  applyFullscreenSafeArea() {
23477
23533
  this.skipSafeAreaCoordinateDetection = true;
23534
+ this.updateFooterPadding();
23535
+ // Watch for dynamic footer additions/removals (e.g., async data loading)
23536
+ // Use subtree:true to support wrapped footers in framework components
23537
+ // (e.g., <my-footer><ion-footer>...</ion-footer></my-footer>)
23538
+ if (!this.footerObserver && win$1 !== undefined && 'MutationObserver' in win$1) {
23539
+ this.footerObserver = new MutationObserver(() => this.updateFooterPadding());
23540
+ this.footerObserver.observe(this.el, { childList: true, subtree: true });
23541
+ }
23542
+ }
23543
+ /**
23544
+ * Updates wrapper padding based on footer presence.
23545
+ * Called initially and when footer is dynamically added/removed.
23546
+ */
23547
+ updateFooterPadding() {
23548
+ if (!this.wrapperEl)
23549
+ return;
23478
23550
  const hasFooter = this.el.querySelector('ion-footer') !== null;
23479
- if (!hasFooter && this.wrapperEl) {
23551
+ if (hasFooter) {
23552
+ this.wrapperEl.style.removeProperty('padding-bottom');
23553
+ this.wrapperEl.style.removeProperty('box-sizing');
23554
+ }
23555
+ else {
23480
23556
  this.wrapperEl.style.setProperty('padding-bottom', 'var(--ion-safe-area-bottom, 0px)');
23481
23557
  this.wrapperEl.style.setProperty('box-sizing', 'border-box');
23482
23558
  }
@@ -23493,22 +23569,51 @@ class Modal {
23493
23569
  style.setProperty('--ion-safe-area-right', '0px');
23494
23570
  }
23495
23571
  /**
23496
- * Gets the root safe-area values from the document element.
23497
- * These represent the actual device safe areas before any overlay overrides.
23572
+ * Resets all safe-area related state and styles.
23573
+ * Called during dismiss and disconnectedCallback to ensure clean state
23574
+ * for re-presentation of inline modals.
23498
23575
  */
23499
- getRootSafeAreaValues() {
23500
- const rootStyle = getComputedStyle(document.documentElement);
23501
- return {
23502
- top: parseFloat(rootStyle.getPropertyValue('--ion-safe-area-top')) || 0,
23503
- bottom: parseFloat(rootStyle.getPropertyValue('--ion-safe-area-bottom')) || 0,
23504
- left: parseFloat(rootStyle.getPropertyValue('--ion-safe-area-left')) || 0,
23505
- right: parseFloat(rootStyle.getPropertyValue('--ion-safe-area-right')) || 0,
23506
- };
23576
+ resetSafeAreaState() {
23577
+ var _a;
23578
+ this.skipSafeAreaCoordinateDetection = false;
23579
+ this.cachedSafeAreas = undefined;
23580
+ this.prevSafeAreaState = { top: false, bottom: false, left: false, right: false };
23581
+ (_a = this.footerObserver) === null || _a === void 0 ? void 0 : _a.disconnect();
23582
+ this.footerObserver = undefined;
23583
+ // Clear wrapper styles that may have been set for safe-area handling
23584
+ if (this.wrapperEl) {
23585
+ this.wrapperEl.style.removeProperty('padding-bottom');
23586
+ this.wrapperEl.style.removeProperty('box-sizing');
23587
+ }
23588
+ // Clear safe-area CSS variable overrides
23589
+ const style = this.el.style;
23590
+ style.removeProperty('--ion-safe-area-top');
23591
+ style.removeProperty('--ion-safe-area-bottom');
23592
+ style.removeProperty('--ion-safe-area-left');
23593
+ style.removeProperty('--ion-safe-area-right');
23594
+ }
23595
+ /**
23596
+ * Gets the root safe-area values from the document element.
23597
+ * Uses cached values during gestures to avoid getComputedStyle calls.
23598
+ */
23599
+ getSafeAreaValues() {
23600
+ if (!this.cachedSafeAreas) {
23601
+ const rootStyle = getComputedStyle(document.documentElement);
23602
+ this.cachedSafeAreas = {
23603
+ top: parseFloat(rootStyle.getPropertyValue('--ion-safe-area-top')) || 0,
23604
+ bottom: parseFloat(rootStyle.getPropertyValue('--ion-safe-area-bottom')) || 0,
23605
+ left: parseFloat(rootStyle.getPropertyValue('--ion-safe-area-left')) || 0,
23606
+ right: parseFloat(rootStyle.getPropertyValue('--ion-safe-area-right')) || 0,
23607
+ };
23608
+ }
23609
+ return this.cachedSafeAreas;
23507
23610
  }
23508
23611
  /**
23509
23612
  * Updates safe-area CSS variable overrides based on whether the modal
23510
23613
  * extends into each safe-area region. Called after animation
23511
23614
  * and during gestures to handle dynamic position changes.
23615
+ *
23616
+ * Optimized to avoid redundant DOM writes by tracking previous state.
23512
23617
  */
23513
23618
  updateSafeAreaOverrides() {
23514
23619
  if (this.skipSafeAreaCoordinateDetection) {
@@ -23519,20 +23624,34 @@ class Modal {
23519
23624
  return;
23520
23625
  }
23521
23626
  const rect = wrapper.getBoundingClientRect();
23522
- const safeAreas = this.getRootSafeAreaValues();
23627
+ const safeAreas = this.getSafeAreaValues();
23523
23628
  const extendsIntoTop = rect.top < safeAreas.top;
23524
23629
  const extendsIntoBottom = rect.bottom > window.innerHeight - safeAreas.bottom;
23525
23630
  const extendsIntoLeft = rect.left < safeAreas.left;
23526
23631
  const extendsIntoRight = rect.right > window.innerWidth - safeAreas.right;
23632
+ // Only update DOM when state actually changes
23633
+ const prev = this.prevSafeAreaState;
23527
23634
  const style = this.el.style;
23528
- extendsIntoTop ? style.removeProperty('--ion-safe-area-top') : style.setProperty('--ion-safe-area-top', '0px');
23529
- extendsIntoBottom
23530
- ? style.removeProperty('--ion-safe-area-bottom')
23531
- : style.setProperty('--ion-safe-area-bottom', '0px');
23532
- extendsIntoLeft ? style.removeProperty('--ion-safe-area-left') : style.setProperty('--ion-safe-area-left', '0px');
23533
- extendsIntoRight
23534
- ? style.removeProperty('--ion-safe-area-right')
23535
- : style.setProperty('--ion-safe-area-right', '0px');
23635
+ if (extendsIntoTop !== prev.top) {
23636
+ extendsIntoTop ? style.removeProperty('--ion-safe-area-top') : style.setProperty('--ion-safe-area-top', '0px');
23637
+ prev.top = extendsIntoTop;
23638
+ }
23639
+ if (extendsIntoBottom !== prev.bottom) {
23640
+ extendsIntoBottom
23641
+ ? style.removeProperty('--ion-safe-area-bottom')
23642
+ : style.setProperty('--ion-safe-area-bottom', '0px');
23643
+ prev.bottom = extendsIntoBottom;
23644
+ }
23645
+ if (extendsIntoLeft !== prev.left) {
23646
+ extendsIntoLeft ? style.removeProperty('--ion-safe-area-left') : style.setProperty('--ion-safe-area-left', '0px');
23647
+ prev.left = extendsIntoLeft;
23648
+ }
23649
+ if (extendsIntoRight !== prev.right) {
23650
+ extendsIntoRight
23651
+ ? style.removeProperty('--ion-safe-area-right')
23652
+ : style.setProperty('--ion-safe-area-right', '0px');
23653
+ prev.right = extendsIntoRight;
23654
+ }
23536
23655
  }
23537
23656
  sheetOnDismiss() {
23538
23657
  /**
@@ -23626,8 +23745,8 @@ class Modal {
23626
23745
  }
23627
23746
  this.currentBreakpoint = undefined;
23628
23747
  this.animation = undefined;
23629
- // Reset safe-area detection flag for potential re-presentation
23630
- this.skipSafeAreaCoordinateDetection = false;
23748
+ // Reset safe-area state for potential re-presentation
23749
+ this.resetSafeAreaState();
23631
23750
  unlock();
23632
23751
  return dismissed;
23633
23752
  }
@@ -23877,20 +23996,20 @@ class Modal {
23877
23996
  const isCardModal = presentingElement !== undefined && mode === 'ios';
23878
23997
  const isHandleCycle = handleBehavior === 'cycle';
23879
23998
  const isSheetModalWithHandle = isSheetModal && showHandle;
23880
- return (hAsync(Host, Object.assign({ key: '07ebca6a70eb99f8a2236e1d66a03097a7bb67d8', "no-router": true,
23999
+ return (hAsync(Host, Object.assign({ key: '44022099fcaf047b97d1c2cb45b9b51c930e707c', "no-router": true,
23881
24000
  // Allow the modal to be navigable when the handle is focusable
23882
24001
  tabIndex: isHandleCycle && isSheetModalWithHandle ? 0 : -1 }, htmlAttributes, { style: {
23883
24002
  zIndex: `${20000 + this.overlayIndex}`,
23884
- }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: '1b6850d9b9f6e8f3865b49e0a14399e2ef43a5d6', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: 'eab52c0ebccb820781e92392dc6fa90db93525d5', class: "modal-shadow" }), hAsync("div", Object.assign({ key: 'ab9448cabdf03a633319999771ce1ca1edce5699',
24003
+ }, class: Object.assign({ [mode]: true, ['modal-default']: !isCardModal && !isSheetModal, [`modal-card`]: isCardModal, [`modal-sheet`]: isSheetModal, [`modal-no-expand-scroll`]: isSheetModal && !expandToScroll, 'overlay-hidden': true, [FOCUS_TRAP_DISABLE_CLASS]: focusTrap === false }, getClassMap(this.cssClass)), onIonBackdropTap: this.onBackdropTap, onIonModalDidPresent: this.onLifecycle, onIonModalWillPresent: this.onLifecycle, onIonModalWillDismiss: this.onLifecycle, onIonModalDidDismiss: this.onLifecycle, onFocus: this.onModalFocus }), hAsync("ion-backdrop", { key: 'ddd7e4f6eef51ac1f62ac70e0af10fb01e707f07', ref: (el) => (this.backdropEl = el), visible: this.showBackdrop, tappable: this.backdropDismiss, part: "backdrop" }), mode === 'ios' && hAsync("div", { key: '58620980e3e4ec273c6787bde026e1c010b904b7', class: "modal-shadow" }), hAsync("div", Object.assign({ key: '3fb7f6218644ba898fc504467775593eb89426a0',
23885
24004
  /*
23886
24005
  role and aria-modal must be used on the
23887
24006
  same element. They must also be set inside the
23888
24007
  shadow DOM otherwise ion-button will not be highlighted
23889
24008
  when using VoiceOver: https://bugs.webkit.org/show_bug.cgi?id=247134
23890
24009
  */
23891
- role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: 'b2b8c0a8d8add0d43e928dd3d3519f184551e62b', class: "modal-handle",
24010
+ role: "dialog" }, inheritedAttributes, { "aria-modal": "true", class: "modal-wrapper ion-overlay-wrapper", part: "content", ref: (el) => (this.wrapperEl = el) }), showHandle && (hAsync("button", { key: '9745cd590fdaa9d023a14b487ec2c87ddbafd7f7', class: "modal-handle",
23892
24011
  // Prevents the handle from receiving keyboard focus when it does not cycle
23893
- tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: 'b994f206765f7b340971d378f00999c0da334102', onSlotchange: this.onSlotChange }))));
24012
+ tabIndex: !isHandleCycle ? -1 : 0, "aria-label": "Activate to adjust the size of the dialog overlaying the screen", onClick: isHandleCycle ? this.onHandleClick : undefined, part: "handle", ref: (el) => (this.dragHandleEl = el) })), hAsync("slot", { key: 'b9a8b5d2d3d3c9b06f99179f496c9f08907d0bad', onSlotchange: this.onSlotChange }))));
23894
24013
  }
23895
24014
  get el() { return getElement(this); }
23896
24015
  static get watchers() { return {
@@ -27756,7 +27875,7 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
27756
27875
  };
27757
27876
  const results = getPopoverPosition(isRTL, contentWidth, contentHeight, 0, 0, reference, side, align, defaultPosition, trigger, ev);
27758
27877
  const padding = size === 'cover' ? 0 : POPOVER_MD_BODY_PADDING;
27759
- const { originX, originY, top, left, bottom, checkSafeAreaTop, checkSafeAreaBottom } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, 0, results.originX, results.originY, results.referenceCoordinates);
27878
+ const { originX, originY, top, left, bottom, checkSafeAreaTop, checkSafeAreaBottom, checkSafeAreaLeft, checkSafeAreaRight, } = calculateWindowAdjustment(side, results.top, results.left, padding, bodyWidth, bodyHeight, contentWidth, contentHeight, 0, results.originX, results.originY, results.referenceCoordinates);
27760
27879
  /**
27761
27880
  * Safe area CSS variable adjustments.
27762
27881
  * When the popover is positioned near an edge, we add the corresponding
@@ -27765,14 +27884,23 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
27765
27884
  */
27766
27885
  const safeAreaTop = ' + var(--ion-safe-area-top, 0)';
27767
27886
  const safeAreaBottom = ' + var(--ion-safe-area-bottom, 0)';
27887
+ const safeAreaLeft = ' + var(--ion-safe-area-left, 0)';
27888
+ const safeAreaRight = ' - var(--ion-safe-area-right, 0)';
27768
27889
  let topValue = `${top}px`;
27769
27890
  let bottomValue = bottom !== undefined ? `${bottom}px` : undefined;
27891
+ let leftValue = `${left}px`;
27770
27892
  if (checkSafeAreaTop) {
27771
27893
  topValue = `${top}px${safeAreaTop}`;
27772
27894
  }
27773
27895
  if (checkSafeAreaBottom && bottomValue !== undefined) {
27774
27896
  bottomValue = `${bottom}px${safeAreaBottom}`;
27775
27897
  }
27898
+ if (checkSafeAreaLeft) {
27899
+ leftValue = `${left}px${safeAreaLeft}`;
27900
+ }
27901
+ if (checkSafeAreaRight) {
27902
+ leftValue = `${left}px${safeAreaRight}`;
27903
+ }
27776
27904
  const baseAnimation = createAnimation();
27777
27905
  const backdropAnimation = createAnimation();
27778
27906
  const wrapperAnimation = createAnimation();
@@ -27790,7 +27918,7 @@ const mdEnterAnimation$1 = (baseEl, opts) => {
27790
27918
  .addElement(contentEl)
27791
27919
  .beforeStyles({
27792
27920
  top: `calc(${topValue} + var(--offset-y, 0px))`,
27793
- left: `calc(${left}px + var(--offset-x, 0px))`,
27921
+ left: `calc(${leftValue} + var(--offset-x, 0px))`,
27794
27922
  'transform-origin': `${originY} ${originX}`,
27795
27923
  })
27796
27924
  .beforeAddWrite(() => {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "8.7.17-dev.11767717752.14fe98a4",
3
+ "version": "8.7.17-dev.11767891829.1a63afa3",
4
4
  "description": "Base components for Ionic",
5
5
  "engines": {
6
6
  "node": ">= 16"
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{r as o,h as t,e as i,d as e,g as n,f as r,c as a,a as s,i as l,w as d,j as c}from"./p-C8IsBmNU.js";import{shouldUseCloseWatcher as b}from"./p-B0q1YL7N.js";import{b as h,a as p}from"./p-BFvmZNyx.js";import{i as g,h as f,c as m,e as u,s as x}from"./p-CTfR9YZG.js";import{i as v}from"./p-C53feagD.js";import{c as k,h as w}from"./p-DiVJyqlX.js";import{a as y,p as z,g as C}from"./p-CwgG81ZD.js";import{c as j}from"./p-CtWGkNnJ.js";import{g as B}from"./p-hHmYLOfE.js";import{a as S,d as Z}from"./p-D-eFFUkA.js";import{c as T}from"./p-B-hirT0v.js";import{t as D}from"./p-DUt5fQmA.js";import"./p-ZjP4CjeZ.js";import"./p-D13Eaw-8.js";import"./p-CIGNaXM1.js";const $=class{constructor(t){o(this,t)}componentDidLoad(){L((async()=>{const o=p(window,"hybrid");if(i.getBoolean("_testing")||import("./p-BOVrCkpJ.js").then((o=>o.startTapClick(i))),i.getBoolean("statusTap",o)&&import("./p-Bmgaetn_.js").then((o=>o.startStatusTap())),i.getBoolean("inputShims",E())){const o=p(window,"ios")?"ios":"android";import("./p-QHYY4sjU.js").then((t=>t.startInputShims(i,o)))}const t=await import("./p-B0q1YL7N.js"),e=o||b();i.getBoolean("hardwareBackButton",e)?t.startHardwareBackButton():(b()&&r("[ion-app] - experimentalCloseWatcher was set to `true`, but hardwareBackButton was set to `false`. Both config options must be `true` for the Close Watcher API to be used."),t.blockHardwareBackButton()),"undefined"!=typeof window&&import("./p-9eeaBrnk.js").then((o=>o.startKeyboardAssist(window))),import("./p-BmVRXR1y.js").then((o=>this.focusVisible=o.startFocusVisible()))}))}async setFocus(o){this.focusVisible&&this.focusVisible.setFocus(o)}render(){const o=h(this);return t(e,{key:"9be440c65819e4fa67c2c3c6477ab40b3ad3eed3",class:{[o]:!0,"ion-page":!0,"force-statusbar-padding":i.getBoolean("_forceStatusbarPadding")}})}get el(){return n(this)}},E=()=>!(!p(window,"ios")||!p(window,"mobile"))||!(!p(window,"android")||!p(window,"mobileweb")),L=o=>{"requestIdleCallback"in window?window.requestIdleCallback(o):setTimeout(o,32)};$.style="html.plt-mobile ion-app{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}html.plt-mobile ion-app [contenteditable]{-webkit-user-select:text;-moz-user-select:text;-ms-user-select:text;user-select:text}ion-app.force-statusbar-padding{--ion-safe-area-top:20px}";const O=class{constructor(t){o(this,t),this.collapse=!1}render(){const o=h(this);return t(e,{key:"58c1fc5eb867d0731c63549b1ccb3ec3bbbe6e1b",class:{[o]:!0,"buttons-collapse":this.collapse}},t("slot",{key:"0c8f95b9840c8fa0c4e50be84c5159620a3eb5c8"}))}};O.style={ios:".sc-ion-buttons-ios-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-ios-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-ios-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:5px;--padding-end:5px;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-ios-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-ios-s ion-button:not(.button-round){--border-radius:4px}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button{--color:initial;--border-color:initial;--background-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-solid,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-solid{--background:var(--ion-color-contrast);--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12;--background-hover:var(--ion-color-base);--background-hover-opacity:0.45;--color:var(--ion-color-base);--color-focused:var(--ion-color-base)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-clear,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-clear{--color-activated:var(--ion-color-contrast);--color-focused:var(--ion-color-contrast)}.sc-ion-buttons-ios-h.ion-color.sc-ion-buttons-ios-s .button-outline,.ion-color .sc-ion-buttons-ios-h.sc-ion-buttons-ios-s .button-outline{--color-activated:var(--ion-color-base);--color-focused:var(--ion-color-contrast);--background-activated:var(--ion-color-contrast)}.sc-ion-buttons-ios-s .button-clear,.sc-ion-buttons-ios-s .button-outline{--background-activated:transparent;--background-focused:currentColor;--background-hover:transparent}.sc-ion-buttons-ios-s .button-solid:not(.ion-color){--background-focused:#000;--background-focused-opacity:.12;--background-activated:#000;--background-activated-opacity:.12}.sc-ion-buttons-ios-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.41em;line-height:0.67}.sc-ion-buttons-ios-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.65em;line-height:0.67}",md:".sc-ion-buttons-md-h{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);z-index:99}.sc-ion-buttons-md-s ion-button{--padding-top:0;--padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}.sc-ion-buttons-md-s ion-button{--padding-top:3px;--padding-bottom:3px;--padding-start:8px;--padding-end:8px;--box-shadow:none;-webkit-margin-start:2px;margin-inline-start:2px;-webkit-margin-end:2px;margin-inline-end:2px;min-height:32px}.sc-ion-buttons-md-s .button-has-icon-only{--padding-top:0;--padding-bottom:0}.sc-ion-buttons-md-s ion-button:not(.button-round){--border-radius:2px}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button{--color:initial;--color-focused:var(--ion-color-contrast);--color-hover:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-contrast);--background-hover:var(--ion-color-contrast)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-solid,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-solid{--background:var(--ion-color-contrast);--background-activated:transparent;--background-focused:var(--ion-color-shade);--background-hover:var(--ion-color-base);--color:var(--ion-color-base);--color-focused:var(--ion-color-base);--color-hover:var(--ion-color-base)}.sc-ion-buttons-md-h.ion-color.sc-ion-buttons-md-s .button-outline,.ion-color .sc-ion-buttons-md-h.sc-ion-buttons-md-s .button-outline{--border-color:var(--ion-color-contrast)}.sc-ion-buttons-md-s .button-has-icon-only.button-clear{--padding-top:12px;--padding-end:12px;--padding-bottom:12px;--padding-start:12px;--border-radius:50%;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;width:3rem;height:3rem}.sc-ion-buttons-md-s .button{--background-hover:currentColor}.sc-ion-buttons-md-s .button-solid{--color:var(--ion-toolbar-background, var(--ion-background-color, #fff));--background:var(--ion-toolbar-color, var(--ion-text-color, #424242));--background-activated:transparent;--background-focused:currentColor}.sc-ion-buttons-md-s .button-outline{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor;--border-color:currentColor}.sc-ion-buttons-md-s .button-clear{--color:initial;--background:transparent;--background-activated:transparent;--background-focused:currentColor;--background-hover:currentColor}.sc-ion-buttons-md-s ion-icon[slot=start]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-end:0.3em;margin-inline-end:0.3em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=end]{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;-webkit-margin-start:0.4em;margin-inline-start:0.4em;font-size:1.4em}.sc-ion-buttons-md-s ion-icon[slot=icon-only]{padding-left:0;padding-right:0;padding-top:0;padding-bottom:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;font-size:1.8em}"};const A=class{constructor(t){o(this,t),this.ionScrollStart=a(this,"ionScrollStart",7),this.ionScroll=a(this,"ionScroll",7),this.ionScrollEnd=a(this,"ionScrollEnd",7),this.watchDog=null,this.isScrolling=!1,this.lastScroll=0,this.queued=!1,this.cTop=-1,this.cBottom=-1,this.isMainContent=!0,this.resizeTimeout=null,this.inheritedAttributes={},this.hasHeader=!1,this.hasFooter=!1,this.tabsElement=null,this.detail={scrollTop:0,scrollLeft:0,type:"scroll",event:void 0,startX:0,startY:0,startTime:0,currentX:0,currentY:0,velocityX:0,velocityY:0,deltaX:0,deltaY:0,currentTime:0,data:void 0,isScrolling:!0},this.fullscreen=!1,this.fixedSlotPlacement="after",this.scrollX=!1,this.scrollY=!0,this.scrollEvents=!1}componentWillLoad(){this.inheritedAttributes=g(this.el)}connectedCallback(){if(this.isMainContent=null===this.el.closest("ion-menu, ion-popover, ion-modal"),this.detectSiblingElements(),f(this.el)){const o=this.tabsElement=this.el.closest("ion-tabs");null!==o&&(this.tabsLoadCallback=()=>this.resize(),o.addEventListener("ionTabBarLoaded",this.tabsLoadCallback))}}detectSiblingElements(){const o=this.el.parentElement;if(o&&(this.hasHeader=null!==o.querySelector(":scope > ion-header"),this.hasFooter=null!==o.querySelector(":scope > ion-footer")),!this.hasFooter){const o=this.el.closest("ion-tabs");o&&(this.hasFooter=null!==o.querySelector(":scope > ion-tab-bar"))}}disconnectedCallback(){if(this.onScrollEnd(),f(this.el)){const{tabsElement:o,tabsLoadCallback:t}=this;null!==o&&void 0!==t&&o.removeEventListener("ionTabBarLoaded",t),this.tabsElement=null,this.tabsLoadCallback=void 0}}onResize(){this.resizeTimeout&&(clearTimeout(this.resizeTimeout),this.resizeTimeout=null),this.resizeTimeout=setTimeout((()=>{null!==this.el.offsetParent&&this.resize()}),100)}shouldForceOverscroll(){const{forceOverscroll:o}=this,t=h(this);return void 0===o?"ios"===t&&p("ios"):o}resize(){this.fullscreen?s((()=>this.readDimensions())):0===this.cTop&&0===this.cBottom||(this.cTop=this.cBottom=0,l(this))}async recalculateDimensions(){s((()=>this.readDimensions()))}readDimensions(){const o=_(this.el),t=Math.max(this.el.offsetTop,0),i=Math.max(o.offsetHeight-t-this.el.offsetHeight,0);(t!==this.cTop||i!==this.cBottom)&&(this.cTop=t,this.cBottom=i,l(this))}onScroll(o){const t=Date.now(),i=!this.isScrolling;this.lastScroll=t,i&&this.onScrollStart(),!this.queued&&this.scrollEvents&&(this.queued=!0,s((t=>{this.queued=!1,this.detail.event=o,I(this.detail,this.scrollEl,t,i),this.ionScroll.emit(this.detail)})))}async getScrollElement(){return this.scrollEl||await new Promise((o=>m(this.el,o))),Promise.resolve(this.scrollEl)}async getBackgroundElement(){return this.backgroundContentEl||await new Promise((o=>m(this.el,o))),Promise.resolve(this.backgroundContentEl)}scrollToTop(o=0){return this.scrollToPoint(void 0,0,o)}async scrollToBottom(o=0){const t=await this.getScrollElement();return this.scrollToPoint(void 0,t.scrollHeight-t.clientHeight,o)}async scrollByPoint(o,t,i){const e=await this.getScrollElement();return this.scrollToPoint(o+e.scrollLeft,t+e.scrollTop,i)}async scrollToPoint(o,t,i=0){const e=await this.getScrollElement();if(i<32)return null!=t&&(e.scrollTop=t),void(null!=o&&(e.scrollLeft=o));let n,r=0;const a=new Promise((o=>n=o)),s=e.scrollTop,l=e.scrollLeft,d=null!=t?t-s:0,c=null!=o?o-l:0,b=o=>{const t=Math.min(1,(o-r)/i)-1,a=Math.pow(t,3)+1;0!==d&&(e.scrollTop=Math.floor(a*d+s)),0!==c&&(e.scrollLeft=Math.floor(a*c+l)),a<1?requestAnimationFrame(b):n()};return requestAnimationFrame((o=>{r=o,b(o)})),a}onScrollStart(){this.isScrolling=!0,this.ionScrollStart.emit({isScrolling:!0}),this.watchDog&&clearInterval(this.watchDog),this.watchDog=setInterval((()=>{this.lastScroll<Date.now()-120&&this.onScrollEnd()}),100)}onScrollEnd(){this.watchDog&&clearInterval(this.watchDog),this.watchDog=null,this.isScrolling&&(this.isScrolling=!1,this.ionScrollEnd.emit({isScrolling:!1}))}render(){const{fixedSlotPlacement:o,hasFooter:i,hasHeader:n,inheritedAttributes:r,isMainContent:a,scrollX:s,scrollY:l,el:d}=this,c=v(d)?"rtl":"ltr",b=h(this),p=this.shouldForceOverscroll(),g="ios"===b;return this.resize(),t(e,Object.assign({key:"83665c0e35e4f4117709606e47d27ad36e343458",role:a?"main":void 0,class:k(this.color,{[b]:!0,"content-sizing":w("ion-popover",this.el),overscroll:p,[`content-${c}`]:!0,"safe-area-top":a&&!n,"safe-area-bottom":a&&!i}),style:{"--offset-top":`${this.cTop}px`,"--offset-bottom":`${this.cBottom}px`}},r),t("div",{key:"75d7cf9315bc8dfb150c3b5bcc356a1f9c793b5a",ref:o=>this.backgroundContentEl=o,id:"background-content",part:"background"}),"before"===o?t("slot",{name:"fixed"}):null,t("div",{key:"f68bc5843c93ed6f32e998b80c5edc553c77a2d7",class:{"inner-scroll":!0,"scroll-x":s,"scroll-y":l,overscroll:(s||l)&&p},ref:o=>this.scrollEl=o,onScroll:this.scrollEvents?o=>this.onScroll(o):void 0,part:"scroll"},t("slot",{key:"8d4b2be00f036f6a24bfa65e6324ca715dd93b60"})),g?t("div",{class:"transition-effect"},t("div",{class:"transition-cover"}),t("div",{class:"transition-shadow"})):null,"after"===o?t("slot",{name:"fixed"}):null)}get el(){return n(this)}},_=o=>{const t=o.closest("ion-tabs");if(t)return t;return o.closest("ion-app, ion-page, .ion-page, page-inner, .popover-content")||(o=>{var t;return o.parentElement?o.parentElement:(null===(t=o.parentNode)||void 0===t?void 0:t.host)?o.parentNode.host:null})(o)},I=(o,t,i,e)=>{const n=o.currentX,r=o.currentY,a=t.scrollLeft,s=t.scrollTop,l=i-o.currentTime;if(e&&(o.startTime=i,o.startX=a,o.startY=s,o.velocityX=o.velocityY=0),o.currentTime=i,o.currentX=o.scrollLeft=a,o.currentY=o.scrollTop=s,o.deltaX=a-o.startX,o.deltaY=s-o.startY,l>0&&l<100){const t=(s-r)/l;o.velocityX=(a-n)/l*.7+.3*o.velocityX,o.velocityY=.7*t+.3*o.velocityY}};A.style=':host{--background:var(--ion-background-color, #fff);--color:var(--ion-text-color, #000);--padding-top:0px;--padding-bottom:0px;--padding-start:0px;--padding-end:0px;--keyboard-offset:0px;--offset-top:0px;--offset-bottom:0px;--overflow:auto;display:block;position:relative;-ms-flex:1;flex:1;width:100%;height:100%;margin:0 !important;padding:0 !important;font-family:var(--ion-font-family, inherit);contain:size style}:host(.ion-color) .inner-scroll{background:var(--ion-color-base);color:var(--ion-color-contrast)}#background-content{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);position:absolute;background:var(--background)}.inner-scroll{left:0px;right:0px;top:calc(var(--offset-top) * -1);bottom:calc(var(--offset-bottom) * -1);-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:calc(var(--padding-top) + var(--offset-top));padding-bottom:calc(var(--padding-bottom) + var(--keyboard-offset) + var(--offset-bottom));position:absolute;color:var(--color);-webkit-box-sizing:border-box;box-sizing:border-box;overflow:hidden;-ms-touch-action:pan-x pan-y pinch-zoom;touch-action:pan-x pan-y pinch-zoom}.scroll-y,.scroll-x{-webkit-overflow-scrolling:touch;z-index:0;will-change:scroll-position}.scroll-y{overflow-y:var(--overflow);overscroll-behavior-y:contain}.scroll-x{overflow-x:var(--overflow);overscroll-behavior-x:contain}.overscroll::before,.overscroll::after{position:absolute;width:1px;height:1px;content:""}.overscroll::before{bottom:-1px}.overscroll::after{top:-1px}:host(.content-sizing){display:-ms-flexbox;display:flex;-ms-flex-direction:column;flex-direction:column;min-height:0;contain:none}:host(.content-sizing) .inner-scroll{position:relative;top:0;bottom:0;margin-top:calc(var(--offset-top) * -1);margin-bottom:calc(var(--offset-bottom) * -1)}.transition-effect{display:none;position:absolute;width:100%;height:100vh;opacity:0;pointer-events:none}:host(.content-ltr) .transition-effect{left:-100%;}:host(.content-rtl) .transition-effect{right:-100%;}.transition-cover{position:absolute;right:0;width:100%;height:100%;background:black;opacity:0.1}.transition-shadow{display:block;position:absolute;width:100%;height:100%;-webkit-box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03);box-shadow:inset -9px 0 9px 0 rgba(0, 0, 100, 0.03)}:host(.content-ltr) .transition-shadow{right:0;}:host(.content-rtl) .transition-shadow{left:0;-webkit-transform:scaleX(-1);transform:scaleX(-1)}:host(.safe-area-top) #background-content,:host(.safe-area-top) .inner-scroll{top:var(--ion-safe-area-top, 0px)}:host(.safe-area-bottom) #background-content,:host(.safe-area-bottom) .inner-scroll{bottom:var(--ion-safe-area-bottom, 0px)}::slotted([slot=fixed]){position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0)}';const M=(o,t)=>{s((()=>{const i=u(0,1-(o.scrollTop-(o.scrollHeight-o.clientHeight-10))/10,1);d((()=>{t.style.setProperty("--opacity-scale",i.toString())}))}))},P=class{constructor(t){o(this,t),this.keyboardCtrl=null,this.keyboardVisible=!1,this.translucent=!1,this.checkCollapsibleFooter=()=>{if("ios"!==h(this))return;const{collapse:o}=this,t="fade"===o;if(this.destroyCollapsibleFooter(),t){const o=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),t=o?y(o):null;if(!t)return void z(this.el);this.setupFadeFooter(t)}},this.setupFadeFooter=async o=>{const t=this.scrollEl=await C(o);this.contentScrollCallback=()=>{M(t,this.el)},t.addEventListener("scroll",this.contentScrollCallback),M(t,this.el)}}componentDidLoad(){this.checkCollapsibleFooter()}componentDidUpdate(){this.checkCollapsibleFooter()}async connectedCallback(){this.keyboardCtrl=await j((async(o,t)=>{!1===o&&void 0!==t&&await t,this.keyboardVisible=o}))}disconnectedCallback(){this.keyboardCtrl&&this.keyboardCtrl.destroy()}destroyCollapsibleFooter(){this.scrollEl&&this.contentScrollCallback&&(this.scrollEl.removeEventListener("scroll",this.contentScrollCallback),this.contentScrollCallback=void 0)}render(){const{translucent:o,collapse:i}=this,n=h(this),r=this.el.closest("ion-tabs"),a=null==r?void 0:r.querySelector(":scope > ion-tab-bar");return t(e,{key:"ddc228f1a1e7fa4f707dccf74db2490ca3241137",role:"contentinfo",class:{[n]:!0,[`footer-${n}`]:!0,"footer-translucent":o,[`footer-translucent-${n}`]:o,"footer-toolbar-padding":!(this.keyboardVisible||a&&"bottom"===a.slot),[`footer-collapse-${i}`]:void 0!==i}},"ios"===n&&o&&t("div",{key:"e16ed4963ff94e06de77eb8038201820af73937c",class:"footer-background"}),t("slot",{key:"f186934febf85d37133d9351a96c1a64b0a4b203"}))}get el(){return n(this)}};P.style={ios:"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-ios ion-toolbar:first-of-type{--border-width:0.55px 0 0}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.footer-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.footer-translucent-ios ion-toolbar{--opacity:.8}}.footer-ios.ion-no-border ion-toolbar:first-of-type{--border-width:0}.footer-collapse-fade ion-toolbar{--opacity-scale:inherit}",md:"ion-footer{display:block;position:relative;-ms-flex-order:1;order:1;width:100%;z-index:10}ion-footer.footer-toolbar-padding ion-toolbar:last-of-type{padding-bottom:var(--ion-safe-area-bottom, 0)}.footer-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.footer-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}"};const X="none",Y="banner",W=o=>{const t=document.querySelector(`${o}.ion-cloned-element`);if(null!==t)return t;const i=document.createElement(o);return i.classList.add("ion-cloned-element"),i.style.setProperty("display","none"),document.body.appendChild(i),i},F=o=>{if(!o)return;const t=o.querySelectorAll("ion-toolbar");return{el:o,toolbars:Array.from(t).map((o=>{const t=o.querySelector("ion-title");return{el:o,background:o.shadowRoot.querySelector(".toolbar-background"),ionTitleEl:t,innerTitleEl:t?t.shadowRoot.querySelector(".toolbar-title"):null,ionButtonsEl:Array.from(o.querySelectorAll("ion-buttons"))}}))}},H=(o,t)=>{"fade"!==o.collapse&&(void 0===t?o.style.removeProperty("--opacity-scale"):o.style.setProperty("--opacity-scale",t.toString()))},N=(o,t=!0)=>{const i=o.el,e=o.toolbars.map((o=>o.ionTitleEl));t?(i.setAttribute("role",Y),i.classList.remove("header-collapse-condense-inactive"),e.forEach((o=>{o&&o.removeAttribute("aria-hidden")}))):(i.setAttribute("role",X),i.classList.add("header-collapse-condense-inactive"),e.forEach((o=>{o&&o.setAttribute("aria-hidden","true")})))},R=(o,t,i)=>{s((()=>{const e=o.scrollTop,n=t.clientHeight,r=i?i.clientHeight:0;if(null!==i&&e<r)return t.style.setProperty("--opacity-scale","0"),void o.style.setProperty("clip-path",`inset(${n}px 0px 0px 0px)`);const a=u(0,(e-r)/10,1);d((()=>{o.style.removeProperty("clip-path"),t.style.setProperty("--opacity-scale",a.toString())}))}))},q=class{constructor(t){o(this,t),this.inheritedAttributes={},this.translucent=!1,this.setupFadeHeader=async(o,t)=>{const i=this.scrollEl=await C(o);this.contentScrollCallback=()=>{R(this.scrollEl,this.el,t)},i.addEventListener("scroll",this.contentScrollCallback),R(this.scrollEl,this.el,t)}}componentWillLoad(){this.inheritedAttributes=g(this.el)}componentDidLoad(){this.checkCollapsibleHeader()}componentDidUpdate(){this.checkCollapsibleHeader()}disconnectedCallback(){this.destroyCollapsibleHeader()}async checkCollapsibleHeader(){if("ios"!==h(this))return;const{collapse:o}=this,t="condense"===o,i="fade"===o;if(this.destroyCollapsibleHeader(),t){const o=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),t=o?y(o):null;d((()=>{W("ion-title").size="large",W("ion-back-button")})),await this.setupCondenseHeader(t,o)}else if(i){const o=this.el.closest("ion-app,ion-page,.ion-page,page-inner"),t=o?y(o):null;if(!t)return void z(this.el);const i=t.querySelector('ion-header[collapse="condense"]');await this.setupFadeHeader(t,i)}}destroyCollapsibleHeader(){this.intersectionObserver&&(this.intersectionObserver.disconnect(),this.intersectionObserver=void 0),this.scrollEl&&this.contentScrollCallback&&(this.scrollEl.removeEventListener("scroll",this.contentScrollCallback),this.contentScrollCallback=void 0),this.collapsibleMainHeader&&(this.collapsibleMainHeader.classList.remove("header-collapse-main"),this.collapsibleMainHeader=void 0)}async setupCondenseHeader(o,t){if(!o||!t)return void z(this.el);if("undefined"==typeof IntersectionObserver)return;this.scrollEl=await C(o);const i=t.querySelectorAll("ion-header");if(this.collapsibleMainHeader=Array.from(i).find((o=>"condense"!==o.collapse)),!this.collapsibleMainHeader)return;const e=F(this.collapsibleMainHeader),n=F(this.el);e&&n&&(N(e,!1),H(e.el,0),this.intersectionObserver=new IntersectionObserver((o=>{((o,t,i,e)=>{d((()=>{const n=e.scrollTop;((o,t,i)=>{if(!o[0].isIntersecting)return;const e=o[0].intersectionRatio>.9||i<=0?0:100*(1-o[0].intersectionRatio)/75;H(t.el,1===e?void 0:e)})(o,t,n);const r=o[0],a=r.intersectionRect,s=a.width*a.height,l=0===s&&0==r.rootBounds.width*r.rootBounds.height,d=Math.abs(a.left-r.boundingClientRect.left),c=Math.abs(a.right-r.boundingClientRect.right);l||s>0&&(d>=5||c>=5)||(r.isIntersecting?(N(t,!1),N(i)):(0===a.x&&0===a.y||0!==a.width&&0!==a.height)&&n>0&&(N(t),N(i,!1),H(t.el)))}))})(o,e,n,this.scrollEl)}),{root:o,threshold:[.25,.3,.4,.5,.6,.7,.8,.9,1]}),this.intersectionObserver.observe(n.toolbars[n.toolbars.length-1].el),this.contentScrollCallback=()=>{((o,t,i)=>{s((()=>{const e=u(1,1+-o.scrollTop/500,1.1);null===i.querySelector("ion-refresher.refresher-native")&&d((()=>{((o=[],t=1,i=!1)=>{o.forEach((o=>{const e=o.ionTitleEl,n=o.innerTitleEl;e&&"large"===e.size&&(n.style.transition=i?"all 0.2s ease-in-out":"",n.style.transform=`scale3d(${t}, ${t}, 1)`)}))})(t.toolbars,e)}))}))})(this.scrollEl,n,o)},this.scrollEl.addEventListener("scroll",this.contentScrollCallback),d((()=>{void 0!==this.collapsibleMainHeader&&this.collapsibleMainHeader.classList.add("header-collapse-main")})))}render(){const{translucent:o,inheritedAttributes:i}=this,n=h(this),r=this.collapse||"none",a="condense"===r,s=((o,t,i)=>o||t&&"md"===i?X:Y)(w("ion-menu",this.el),a,n);return t(e,Object.assign({key:"863c4568cd7b8c0ec55109f193bbbaed68a1346e",role:s,class:{[n]:!0,[`header-${n}`]:!0,"header-translucent":this.translucent,[`header-collapse-${r}`]:!0,[`header-translucent-${n}`]:this.translucent}},i),"ios"===n&&o&&t("div",{key:"25c3bdce328b0b35607d154c8b8374679313d881",class:"header-background"}),t("slot",{key:"b44fab0a9be7920b9650da26117c783e751e1702"}))}get el(){return n(this)}};q.style={ios:"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-ios ion-toolbar:last-of-type{--border-width:0 0 0.55px}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){.header-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-backdrop-filter:saturate(180%) blur(20px);backdrop-filter:saturate(180%) blur(20px)}.header-translucent-ios ion-toolbar{--opacity:.8}.header-collapse-condense-inactive .header-background{-webkit-backdrop-filter:blur(20px);backdrop-filter:blur(20px)}}.header-ios.ion-no-border ion-toolbar:last-of-type{--border-width:0}.header-collapse-fade ion-toolbar{--opacity-scale:inherit}.header-collapse-fade.header-transitioning ion-toolbar{--background:transparent;--border-style:none}.header-collapse-condense{z-index:9}.header-collapse-condense ion-toolbar{position:-webkit-sticky;position:sticky;top:0}.header-collapse-condense ion-toolbar:first-of-type{padding-top:0px;z-index:1}.header-collapse-condense ion-toolbar{z-index:0}.header-collapse-condense ion-toolbar:last-of-type{--border-width:0px}.header-collapse-condense ion-toolbar ion-searchbar{padding-top:0px;padding-bottom:13px}.header-collapse-main{--opacity-scale:1}.header-collapse-main ion-toolbar{--opacity-scale:inherit}.header-collapse-main ion-toolbar.in-toolbar ion-title,.header-collapse-main ion-toolbar.in-toolbar ion-buttons{-webkit-transition:all 0.2s ease-in-out;transition:all 0.2s ease-in-out}.header-collapse-condense ion-toolbar,.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--background:var(--ion-background-color, #fff)}.header-collapse-condense-inactive.header-transitioning:not(.header-collapse-condense) ion-toolbar{--border-style:none;--opacity-scale:1}.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive:not(.header-collapse-condense) ion-toolbar.in-toolbar ion-buttons.buttons-collapse{opacity:0;pointer-events:none}.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-title,.header-collapse-condense-inactive.header-collapse-condense ion-toolbar.in-toolbar ion-buttons.buttons-collapse{visibility:hidden}ion-header.header-ios:not(.header-collapse-main):has(~ion-content ion-header.header-ios[collapse=condense],~ion-content ion-header.header-ios.header-collapse-condense){opacity:0}",md:"ion-header{display:block;position:relative;-ms-flex-order:-1;order:-1;width:100%;z-index:10}ion-header ion-toolbar:first-of-type{padding-top:var(--ion-safe-area-top, 0)}.header-md{-webkit-box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12);box-shadow:0 2px 4px -1px rgba(0, 0, 0, 0.2), 0 4px 5px 0 rgba(0, 0, 0, 0.14), 0 1px 10px 0 rgba(0, 0, 0, 0.12)}.header-md.header-collapse-condense{display:none}.header-md.ion-no-border{-webkit-box-shadow:none;box-shadow:none}"};const U=class{constructor(t){o(this,t),this.ionNavWillLoad=a(this,"ionNavWillLoad",7),this.ionNavWillChange=a(this,"ionNavWillChange",3),this.ionNavDidChange=a(this,"ionNavDidChange",3),this.lockController=T(),this.gestureOrAnimationInProgress=!1,this.mode=h(this),this.animated=!0}swipeHandlerChanged(){this.gesture&&this.gesture.enable(void 0!==this.swipeHandler)}async connectedCallback(){const o=()=>{this.gestureOrAnimationInProgress=!0,this.swipeHandler&&this.swipeHandler.onStart()};this.gesture=(await import("./p-BKc55Xev.js")).createSwipeBackGesture(this.el,(()=>!this.gestureOrAnimationInProgress&&!!this.swipeHandler&&this.swipeHandler.canStart()),(()=>o()),(o=>{var t;return null===(t=this.ani)||void 0===t?void 0:t.progressStep(o)}),((o,t,i)=>{if(this.ani){this.ani.onFinish((()=>{this.gestureOrAnimationInProgress=!1,this.swipeHandler&&this.swipeHandler.onEnd(o)}),{oneTimeCallback:!0});let e=o?-.001:.001;o?e+=B([0,0],[.32,.72],[0,1],[1,1],t)[0]:(this.ani.easing("cubic-bezier(1, 0, 0.68, 0.28)"),e+=B([0,0],[1,0],[.68,.28],[1,1],t)[0]),this.ani.progressEnd(o?1:0,e,i)}else this.gestureOrAnimationInProgress=!1})),this.swipeHandlerChanged()}componentWillLoad(){this.ionNavWillLoad.emit()}disconnectedCallback(){this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}async commit(o,t,i){const e=await this.lockController.lock();let n=!1;try{n=await this.transition(o,t,i)}catch(o){c("[ion-router-outlet] - Exception in commit:",o)}return e(),n}async setRouteId(o,t,i,e){return{changed:await this.setRoot(o,t,{duration:"root"===i?0:void 0,direction:"back"===i?"back":"forward",animationBuilder:e}),element:this.activeEl}}async getRouteId(){const o=this.activeEl;return o?{id:o.tagName,element:o,params:this.activeParams}:void 0}async setRoot(o,t,i){if(this.activeComponent===o&&x(t,this.activeParams))return!1;const e=this.activeEl,n=await S(this.delegate,this.el,o,["ion-page","ion-page-invisible"],t);return this.activeComponent=o,this.activeEl=n,this.activeParams=t,await this.commit(n,e,i),await Z(this.delegate,e),!0}async transition(o,t,e={}){if(t===o)return!1;this.ionNavWillChange.emit();const{el:n,mode:r}=this,a=this.animated&&i.getBoolean("animated",!0),s=e.animationBuilder||this.animation||i.get("navAnimation");return await D(Object.assign(Object.assign({mode:r,animated:a,enteringEl:o,leavingEl:t,baseEl:n,deepWait:f(n),progressCallback:e.progressAnimation?o=>{void 0===o||this.gestureOrAnimationInProgress?this.ani=o:(this.gestureOrAnimationInProgress=!0,o.onFinish((()=>{this.gestureOrAnimationInProgress=!1,this.swipeHandler&&this.swipeHandler.onEnd(!1)}),{oneTimeCallback:!0}),o.progressEnd(0,0,0))}:void 0},e),{animationBuilder:s})),this.ionNavDidChange.emit(),!0}render(){return t("slot",{key:"84b50f1155b0d780dff802ee13223287259fd525"})}get el(){return n(this)}static get watchers(){return{swipeHandler:["swipeHandlerChanged"]}}};U.style=":host{left:0;right:0;top:0;bottom:0;position:absolute;contain:layout size style;z-index:0}";const G=class{constructor(t){o(this,t),this.ionStyle=a(this,"ionStyle",7)}sizeChanged(){this.emitStyle()}connectedCallback(){this.emitStyle()}emitStyle(){const o=this.getSize();this.ionStyle.emit({[`title-${o}`]:!0})}getSize(){return void 0!==this.size?this.size:"default"}render(){const o=h(this),i=this.getSize();return t(e,{key:"e599c0bf1b0817df3fa8360bdcd6d787f751c371",class:k(this.color,{[o]:!0,[`title-${i}`]:!0,"title-rtl":"rtl"===document.dir})},t("div",{key:"6e7eee9047d6759876bb31d7305b76efc7c4338c",class:"toolbar-title"},t("slot",{key:"bf790eb4c83dd0af4f2fd1f85ab4af5819f46ff4"})))}get el(){return n(this)}static get watchers(){return{size:["sizeChanged"]}}};G.style={ios:":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{top:0;-webkit-padding-start:90px;padding-inline-start:90px;-webkit-padding-end:90px;padding-inline-end:90px;padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);position:absolute;width:100%;height:100%;-webkit-transform:translateZ(0);transform:translateZ(0);font-size:min(1.0625rem, 20.4px);font-weight:600;text-align:center;-webkit-box-sizing:border-box;box-sizing:border-box;pointer-events:none}:host{inset-inline-start:0}:host(.title-small){-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:6px;padding-bottom:16px;position:relative;font-size:min(0.8125rem, 23.4px);font-weight:normal}:host(.title-large){-webkit-padding-start:12px;padding-inline-start:12px;-webkit-padding-end:12px;padding-inline-end:12px;padding-top:2px;padding-bottom:4px;-webkit-transform-origin:left center;transform-origin:left center;position:static;-ms-flex-align:end;align-items:flex-end;min-width:100%;font-size:min(2.125rem, 61.2px);font-weight:700;text-align:start}:host(.title-large.title-rtl){-webkit-transform-origin:right center;transform-origin:right center}:host(.title-large.ion-cloned-element){--color:var(--ion-text-color, #000);font-family:var(--ion-font-family)}:host(.title-large) .toolbar-title{-webkit-transform-origin:inherit;transform-origin:inherit;width:auto}:host-context([dir=rtl]):host(.title-large) .toolbar-title,:host-context([dir=rtl]).title-large .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}@supports selector(:dir(rtl)){:host(.title-large:dir(rtl)) .toolbar-title{-webkit-transform-origin:calc(100% - inherit);transform-origin:calc(100% - inherit)}}",md:":host{--color:initial;display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-align:center;align-items:center;-webkit-transform:translateZ(0);transform:translateZ(0);color:var(--color)}:host(.ion-color){color:var(--ion-color-base)}.toolbar-title{display:block;width:100%;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;pointer-events:auto}:host(.title-small) .toolbar-title{white-space:normal}:host{-webkit-padding-start:20px;padding-inline-start:20px;-webkit-padding-end:20px;padding-inline-end:20px;padding-top:0;padding-bottom:0;font-size:1.25rem;font-weight:500;letter-spacing:0.0125em}:host(.title-small){width:100%;height:100%;font-size:0.9375rem;font-weight:normal}"};const J=class{constructor(t){o(this,t),this.childrenStyles=new Map}componentWillLoad(){const o=Array.from(this.el.querySelectorAll("ion-buttons")),t=o.find((o=>"start"===o.slot));t&&t.classList.add("buttons-first-slot");const i=o.reverse(),e=i.find((o=>"end"===o.slot))||i.find((o=>"primary"===o.slot))||i.find((o=>"secondary"===o.slot));e&&e.classList.add("buttons-last-slot")}childrenStyle(o){o.stopPropagation();const t=o.target.tagName,i=o.detail,e={},n=this.childrenStyles.get(t)||{};let r=!1;Object.keys(i).forEach((o=>{const t=`toolbar-${o}`,a=i[o];a!==n[t]&&(r=!0),a&&(e[t]=!0)})),r&&(this.childrenStyles.set(t,e),l(this))}render(){const o=h(this),i={};return this.childrenStyles.forEach((o=>{Object.assign(i,o)})),t(e,{key:"f6c4f669a6a61c5eac4cbb5ea0aa97c48ae5bd46",class:Object.assign(Object.assign({},i),k(this.color,{[o]:!0,"in-toolbar":w("ion-toolbar",this.el)}))},t("div",{key:"9c81742ffa02de9ba7417025b077d05e67305074",class:"toolbar-background",part:"background"}),t("div",{key:"5fc96d166fa47894a062e41541a9beee38078a36",class:"toolbar-container",part:"container"},t("slot",{key:"b62c0d9d59a70176bdbf769aec6090d7a166853b",name:"start"}),t("slot",{key:"d01d3cc2c50e5aaa49c345b209fe8dbdf3d48131",name:"secondary"}),t("div",{key:"3aaa3a2810aedd38c37eb616158ec7b9638528fc",class:"toolbar-content",part:"content"},t("slot",{key:"357246690f8d5e1cc3ca369611d4845a79edf610"})),t("slot",{key:"06ed3cca4f7ebff4a54cd877dad3cc925ccf9f75",name:"primary"}),t("slot",{key:"e453d43d14a26b0d72f41e1b81a554bab8ece811",name:"end"})))}get el(){return n(this)}};J.style={ios:":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-color-step-50, var(--ion-background-color-step-50, #f7f7f7)));--color:var(--ion-toolbar-color, var(--ion-text-color, #000));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, rgba(0, 0, 0, 0.2)))));--padding-top:3px;--padding-bottom:3px;--padding-start:4px;--padding-end:4px;--min-height:44px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:4;order:4;min-width:0}:host(.toolbar-segment) .toolbar-content{display:-ms-inline-flexbox;display:inline-flex}:host(.toolbar-searchbar) .toolbar-container{padding-top:0;padding-bottom:0}:host(.toolbar-searchbar) ::slotted(*){-ms-flex-item-align:start;align-self:start}:host(.toolbar-searchbar) ::slotted(ion-chip){margin-top:3px}::slotted(ion-buttons){min-height:38px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:3;order:3}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}:host(.toolbar-title-large) .toolbar-container{-ms-flex-wrap:wrap;flex-wrap:wrap;-ms-flex-align:start;align-items:flex-start}:host(.toolbar-title-large) .toolbar-content ion-title{-ms-flex:1;flex:1;-ms-flex-order:8;order:8;min-width:100%}",md:":host{--border-width:0;--border-style:solid;--opacity:1;--opacity-scale:1;-moz-osx-font-smoothing:grayscale;-webkit-font-smoothing:antialiased;display:block;position:relative;width:100%;padding-right:var(--ion-safe-area-right);padding-left:var(--ion-safe-area-left);color:var(--color);font-family:var(--ion-font-family, inherit);contain:content;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}:host(.ion-color){color:var(--ion-color-contrast)}:host(.ion-color) .toolbar-background{background:var(--ion-color-base)}.toolbar-container{-webkit-padding-start:var(--padding-start);padding-inline-start:var(--padding-start);-webkit-padding-end:var(--padding-end);padding-inline-end:var(--padding-end);padding-top:var(--padding-top);padding-bottom:var(--padding-bottom);display:-ms-flexbox;display:flex;position:relative;-ms-flex-direction:row;flex-direction:row;-ms-flex-align:center;align-items:center;-ms-flex-pack:justify;justify-content:space-between;width:100%;min-height:var(--min-height);contain:content;overflow:hidden;z-index:10;-webkit-box-sizing:border-box;box-sizing:border-box}.toolbar-background{left:0;right:0;top:0;bottom:0;position:absolute;-webkit-transform:translateZ(0);transform:translateZ(0);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);contain:strict;opacity:calc(var(--opacity) * var(--opacity-scale));z-index:-1;pointer-events:none}::slotted(ion-progress-bar){left:0;right:0;bottom:0;position:absolute}:host{--background:var(--ion-toolbar-background, var(--ion-background-color, #fff));--color:var(--ion-toolbar-color, var(--ion-text-color, #424242));--border-color:var(--ion-toolbar-border-color, var(--ion-border-color, var(--ion-color-step-150, var(--ion-background-color-step-150, #c1c4cd))));--padding-top:0;--padding-bottom:0;--padding-start:0;--padding-end:0;--min-height:56px}.toolbar-content{-ms-flex:1;flex:1;-ms-flex-order:3;order:3;min-width:0;max-width:100%}::slotted(.buttons-first-slot){-webkit-margin-start:4px;margin-inline-start:4px}::slotted(.buttons-last-slot){-webkit-margin-end:4px;margin-inline-end:4px}::slotted([slot=start]){-ms-flex-order:2;order:2}::slotted([slot=secondary]){-ms-flex-order:4;order:4}::slotted([slot=primary]){-ms-flex-order:5;order:5;text-align:end}::slotted([slot=end]){-ms-flex-order:6;order:6;text-align:end}"};export{$ as ion_app,O as ion_buttons,A as ion_content,P as ion_footer,q as ion_header,U as ion_router_outlet,G as ion_title,J as ion_toolbar}
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{r as t,c as o,f as e,h as r,d as i,g as s}from"./p-C8IsBmNU.js";import{B as n,j as a,k as p,f as c,n as d,g as h,h as l,F as v}from"./p-DdR6rpbR.js";import{C as f,a as g,d as m}from"./p-D-eFFUkA.js";import{g as x,r as b,f as u,h as w}from"./p-CTfR9YZG.js";import{c as k}from"./p-B-hirT0v.js";import{b as y,a as D}from"./p-BFvmZNyx.js";import{g as P}from"./p-DiVJyqlX.js";import{e as T,w as $}from"./p-DUt5fQmA.js";import{c as A}from"./p-DDb5r57F.js";import"./p-ZjP4CjeZ.js";import"./p-B0q1YL7N.js";import"./p-BTEOs1at.js";const I=(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}},N=(t,o)=>o&&"ION-ITEM"===o.tagName?t.findIndex((t=>t===o)):-1,j=t=>{const o=x(t).querySelector("button");o&&b((()=>o.focus()))},L=(t,o,e,r,i,s,n,a,p,c,d)=>{var h;let l={top:0,left:0,width:0,height:0};if("event"===s){if(!d)return p;l={top:d.clientY,left:d.clientX,width:1,height:1}}else{const t=c||(null===(h=null==d?void 0:d.detail)||void 0===h?void 0:h.ionShadowTarget)||(null==d?void 0:d.target);if(!t)return p;const o=t.getBoundingClientRect();l={top:o.top,left:o.left,width:o.width,height:o.height}}const v=z(n,l,o,e,r,i,t),f=X(a,n,l,o,e),g=v.top+f.top,m=v.left+f.left,{arrowTop:x,arrowLeft:b}=Y(n,r,i,g,m,o,e,t),{originX:u,originY:w}=C(n,a,t);return{top:g,left:m,referenceCoordinates:l,arrowTop:x,arrowLeft:b,originX:u,originY:w}},C=(t,o,e)=>{switch(t){case"top":return{originX:O(o),originY:"bottom"};case"bottom":return{originX:O(o),originY:"top"};case"left":return{originX:"right",originY:W(o)};case"right":return{originX:"left",originY:W(o)};case"start":return{originX:e?"left":"right",originY:W(o)};case"end":return{originX:e?"right":"left",originY:W(o)}}},O=t=>{switch(t){case"start":return"left";case"center":return"center";case"end":return"right"}},W=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},c={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 c;case"start":return a?c:p;case"end":return a?p:c;default:return{arrowTop:0,arrowLeft:0}}},z=(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}},X=(t,o,e,r,i)=>{switch(t){case"center":return E(o,e,r,i);case"end":return B(o,e,r,i);default:return{top:0,left:0}}},B=(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)}}},E=(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)}}},S=(t,o,e,r,i,s,n,a,p,c,d,h,l=0,v=0,f=0)=>{let g=l;const m=v;let x,b=e,u=o,w=c,k=d,y=!1,D=!1,P=!1,T=!1;const $=h?h.top+h.height:s/2-a/2,A=h?h.height:0;let I=!1;return b<r+p?(b=r,P=!0,w="left"):n+r+b+p>i&&(T=!0,b=i-n-r,w="right"),$+A+a>s&&("top"===t||"bottom"===t)&&($-a>0?(u=Math.max(r,$-a-A-(f-1)),g=u+a,k="bottom",I=!0,u<=r+p&&(y=!0,u=r)):(x=r,D=!0)),(void 0!==x?s-x:u+a)+p>s&&(D=!0),u<p&&(y=!0),{top:u,left:b,bottom:x,originX:w,originY:k,checkSafeAreaTop:y,checkSafeAreaBottom:D,checkSafeAreaLeft:P,checkSafeAreaRight:T,arrowTop:g,arrowLeft:m,addPopoverBottomClass:I}},R=(t,o)=>{var e;const{event:r,size:i,trigger:s,reference:n,side:a,align:p}=o,c=t.ownerDocument,d="rtl"===c.dir,h=c.defaultView.innerWidth,l=c.defaultView.innerHeight,v=x(t),f=v.querySelector(".popover-content"),g=v.querySelector(".popover-arrow"),m=s||(null===(e=null==r?void 0:r.detail)||void 0===e?void 0:e.ionShadowTarget)||(null==r?void 0:r.target),{contentWidth:b,contentHeight:u}=I(i,f,m),{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=L(d,b,u,w,k,n,a,p,{top:l/2-u/2,left:h/2-b/2,originX:d?"right":"left",originY:"top"},s,r),D="cover"===i?0:5,P="cover"===i?0:25,{originX:T,originY:$,top:N,left:j,bottom:C,checkSafeAreaTop:O,checkSafeAreaBottom:W,checkSafeAreaLeft:Y,checkSafeAreaRight:z,arrowTop:X,arrowLeft:B,addPopoverBottomClass:E}=S(a,y.top,y.left,D,h,l,b,u,P,y.originX,y.originY,y.referenceCoordinates,y.arrowTop,y.arrowLeft,k),R=A(),H=A(),F=A();return H.addElement(v.querySelector("ion-backdrop")).fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),F.addElement(v.querySelector(".popover-arrow")).addElement(v.querySelector(".popover-content")).fromTo("opacity",.01,1),R.easing("ease").duration(100).beforeAddWrite((()=>{"cover"===i&&t.style.setProperty("--width",`${b}px`),E&&t.classList.add("popover-bottom");let o=`${N}px`,e=void 0!==C?`${C}px`:void 0,n=`${j}px`;if(O&&(o=`${N}px + var(--ion-safe-area-top, 0)`),W&&void 0!==e&&(e=`${C}px + var(--ion-safe-area-bottom, 0)`),Y&&(n=`${j}px + var(--ion-safe-area-left, 0)`),z&&(n=`${j}px - var(--ion-safe-area-right, 0)`),void 0!==e&&f.style.setProperty("bottom",`calc(${e})`),f.style.setProperty("top",`calc(${o} + var(--offset-y, 0))`),f.style.setProperty("left",`calc(${n} + var(--offset-x, 0))`),f.style.setProperty("transform-origin",`${$} ${T}`),null!==g){const t=((t,o=!1,e,r)=>!(!e&&!r||"top"!==t&&"bottom"!==t&&o))(a,y.top!==N||y.left!==j,r,s);t?(g.style.setProperty("top",`calc(${X}px + var(--offset-y, 0))`),g.style.setProperty("left",`calc(${B}px + var(--offset-x, 0))`)):g.style.setProperty("display","none")}})).addAnimation([H,F])},H=t=>{const o=x(t),e=o.querySelector(".popover-content"),r=o.querySelector(".popover-arrow"),i=A(),s=A(),n=A();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])},F=(t,o)=>{var e;const{event:r,size:i,trigger:s,reference:n,side:a,align:p}=o,c=t.ownerDocument,d="rtl"===c.dir,h=c.defaultView.innerWidth,l=c.defaultView.innerHeight,v=x(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:m,contentHeight:b}=I(i,f,g),u=L(d,m,b,0,0,n,a,p,{top:l/2-b/2,left:h/2-m/2,originX:d?"right":"left",originY:"top"},s,r),w="cover"===i?0:12,{originX:k,originY:y,top:D,left:P,bottom:T,checkSafeAreaTop:$,checkSafeAreaBottom:N}=S(a,u.top,u.left,w,h,l,m,b,0,u.originX,u.originY,u.referenceCoordinates);let j=`${D}px`,C=void 0!==T?`${T}px`:void 0;$&&(j=`${D}px + var(--ion-safe-area-top, 0)`),N&&void 0!==C&&(C=`${T}px + var(--ion-safe-area-bottom, 0)`);const O=A(),W=A(),Y=A(),z=A(),X=A();return W.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),z.addElement(f).beforeStyles({top:`calc(${j} + var(--offset-y, 0px))`,left:`calc(${P}px + var(--offset-x, 0px))`,"transform-origin":`${y} ${k}`}).beforeAddWrite((()=>{void 0!==C&&f.style.setProperty("bottom",`calc(${C})`)})).fromTo("transform","scale(0.8)","scale(1)"),X.addElement(v.querySelector(".popover-viewport")).fromTo("opacity",.01,1),O.easing("cubic-bezier(0.36,0.66,0.04,1)").duration(300).beforeAddWrite((()=>{"cover"===i&&t.style.setProperty("--width",`${m}px`),"bottom"===y&&t.classList.add("popover-bottom")})).addAnimation([W,Y,z,X])},M=t=>{const o=x(t),e=o.querySelector(".popover-content"),r=A(),i=A(),s=A();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])},V=class{constructor(r){t(this,r),this.didPresent=o(this,"ionPopoverDidPresent",7),this.willPresent=o(this,"ionPopoverWillPresent",7),this.willDismiss=o(this,"ionPopoverWillDismiss",7),this.didDismiss=o(this,"ionPopoverDidDismiss",7),this.didPresentShorthand=o(this,"didPresent",7),this.willPresentShorthand=o(this,"willPresent",7),this.willDismissShorthand=o(this,"willDismiss",7),this.didDismissShorthand=o(this,"didDismiss",7),this.ionMount=o(this,"ionMount",7),this.parentPopover=null,this.coreDelegate=f(),this.lockController=k(),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,n)},this.onLifecycle=t=>{const o=this.usersElement,e=U[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:r,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((()=>{b((()=>{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,r):e(`[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[N(t,o)+1])(i,r);void 0!==e&&j(e);break;case"ArrowUp":o.preventDefault();const s=((t,o)=>t[N(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=x(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;a(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:p(e);this.parentPopover=e.closest(`ion-popover:not(#${r})`),void 0===this.alignment&&(this.alignment="ios"===y(this)?"center":"start")}componentDidLoad(){const{parentPopover:t,isOpen:o}=this;!0===o&&b((()=>this.present())),t&&u(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 g(i,e,this.component,["popover-viewport"],this.componentProps,r),this.recalculateContentOnHeaderReady(),this.keyboardEvents||this.configureKeyboardInteraction(),this.configureDismissInteraction(),w(e)?await T(this.usersElement):this.keepContentsMounted||await $(),await c(this,"popoverEnter",R,F,{event:t||this.event,size:this.size,trigger:this.triggerEl,reference:this.reference,side:this.side,align:this.alignment}),this.focusDescendantOnPresent&&d(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",H,M,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 l(this.el,"ionPopoverDidDismiss")}onWillDismiss(){return l(this.el,"ionPopoverWillDismiss")}render(){const t=y(this),{onLifecycle:o,parentPopover:e,dismissOnSelect:s,side:n,arrow:a,htmlAttributes:p,focusTrap:c}=this,d=D("desktop"),h=a&&!e;return r(i,Object.assign({key:"42863f748c93f709d433931d969230137b37d42d","aria-modal":"true","no-router":!0,tabindex:"-1"},p,{style:{zIndex:`${2e4+this.overlayIndex}`},class:Object.assign(Object.assign({},P(this.cssClass)),{[t]:!0,"popover-translucent":this.translucent,"overlay-hidden":!0,"popover-desktop":d,[`popover-side-${n}`]:!0,[v]:!1===c,"popover-nested":!!e}),onIonPopoverDidPresent:o,onIonPopoverWillPresent:o,onIonPopoverWillDismiss:o,onIonPopoverDidDismiss:o,onIonBackdropTap:this.onBackdropTap}),!e&&r("ion-backdrop",{key:"22b6d82178b52158b76ab3fd9a7dd738fd6e4bbf",tappable:this.backdropDismiss,visible:this.showBackdrop,part:"backdrop"}),r("div",{key:"b76335c64e992a964ed3fb91d17a992c3474b4cd",class:"popover-wrapper ion-overlay-wrapper",onClick:s?()=>this.dismiss():void 0},h&&r("div",{key:"018c846c32e7ff7fa010528e6b37a17e5f03c84c",class:"popover-arrow",part:"arrow"}),r("div",{key:"350c468c80052da3a07768bceab98fe159c35a43",class:"popover-content",part:"content"},r("slot",{key:"686443c17ac9873d33905c1cdb67e6d6da675282"}))))}get el(){return s(this)}static get watchers(){return{trigger:["onTriggerChange"],triggerAction:["onTriggerChange"],isOpen:["onIsOpenChange"]}}},U={ionPopoverDidPresent:"ionViewDidEnter",ionPopoverWillPresent:"ionViewWillEnter",ionPopoverWillDismiss:"ionViewWillLeave",ionPopoverDidDismiss:"ionViewDidLeave"};V.style={ios:':host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right: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{--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:":host{--background:var(--ion-background-color, #fff);--min-width:0;--min-height:0;--max-width:auto;--height:auto;--offset-x:0px;--offset-y:0px;left:0;right: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{--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}"};export{V as ion_popover}