@ionic/core 7.4.2-dev.11695927273.1323de22 → 7.4.2-dev.11696878562.16da82aa

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.
Files changed (48) hide show
  1. package/components/alert.js +8 -0
  2. package/components/index.js +1 -0
  3. package/components/ion-select.js +1 -1
  4. package/components/ion-toast.js +144 -113
  5. package/dist/cjs/index.cjs.js +2 -0
  6. package/dist/cjs/ion-alert.cjs.entry.js +8 -0
  7. package/dist/cjs/ion-select_3.cjs.entry.js +1 -1
  8. package/dist/cjs/ion-toast.cjs.entry.js +163 -132
  9. package/dist/collection/components/alert/alert.js +8 -0
  10. package/dist/collection/components/alert/test/a11y/alert.e2e.js +11 -0
  11. package/dist/collection/components/select/select.js +1 -1
  12. package/dist/collection/components/toast/animations/ios.enter.js +1 -39
  13. package/dist/collection/components/toast/animations/ios.leave.js +4 -9
  14. package/dist/collection/components/toast/animations/md.enter.js +1 -40
  15. package/dist/collection/components/toast/animations/utils.js +85 -0
  16. package/dist/collection/components/toast/toast.js +58 -31
  17. package/dist/collection/index.js +1 -0
  18. package/dist/docs.json +3 -7
  19. package/dist/esm/index.js +1 -0
  20. package/dist/esm/ion-alert.entry.js +8 -0
  21. package/dist/esm/ion-select_3.entry.js +1 -1
  22. package/dist/esm/ion-toast.entry.js +144 -113
  23. package/dist/esm-es5/index.js +1 -1
  24. package/dist/esm-es5/ion-alert.entry.js +1 -1
  25. package/dist/esm-es5/ion-select_3.entry.js +1 -1
  26. package/dist/esm-es5/ion-toast.entry.js +1 -1
  27. package/dist/ionic/index.esm.js +1 -1
  28. package/dist/ionic/ionic.esm.js +1 -1
  29. package/dist/ionic/p-06c94b76.entry.js +4 -0
  30. package/dist/ionic/{p-2df840d9.system.entry.js → p-1e207aa7.system.entry.js} +1 -1
  31. package/dist/ionic/p-2bea5600.entry.js +4 -0
  32. package/dist/ionic/p-4e312f80.system.entry.js +4 -0
  33. package/dist/ionic/p-5f6605c4.entry.js +4 -0
  34. package/dist/ionic/{p-5d522814.system.entry.js → p-6cb04881.system.entry.js} +1 -1
  35. package/dist/ionic/p-6edbc09b.system.js +1 -1
  36. package/dist/ionic/p-8a1faf2c.system.js +4 -0
  37. package/dist/types/components/toast/animations/ios.leave.d.ts +2 -2
  38. package/dist/types/components/toast/animations/utils.d.ts +18 -0
  39. package/dist/types/components/toast/toast-interface.d.ts +8 -3
  40. package/dist/types/components/toast/toast.d.ts +12 -0
  41. package/dist/types/index.d.ts +1 -0
  42. package/hydrate/index.js +153 -114
  43. package/package.json +1 -1
  44. package/dist/ionic/p-1f448082.system.entry.js +0 -4
  45. package/dist/ionic/p-35d1c3bb.system.js +0 -4
  46. package/dist/ionic/p-8a26eaba.entry.js +0 -4
  47. package/dist/ionic/p-990aaa2f.entry.js +0 -4
  48. package/dist/ionic/p-c44645f2.entry.js +0 -4
package/hydrate/index.js CHANGED
@@ -10489,6 +10489,14 @@ class Alert {
10489
10489
  }
10490
10490
  onKeydown(ev) {
10491
10491
  const inputTypes = new Set(this.processedInputs.map((i) => i.type));
10492
+ /**
10493
+ * Based on keyboard navigation requirements, the
10494
+ * checkbox should not respond to the enter keydown event.
10495
+ */
10496
+ if (inputTypes.has('checkbox') && ev.key === 'Enter') {
10497
+ ev.preventDefault();
10498
+ return;
10499
+ }
10492
10500
  // The only inputs we want to navigate between using arrow keys are the radios
10493
10501
  // ignore the keydown event if it is not on a radio button
10494
10502
  if (!inputTypes.has('radio') ||
@@ -32266,7 +32274,7 @@ Developers can use the "legacy" property to continue using the legacy form marku
32266
32274
  }
32267
32275
  renderListbox() {
32268
32276
  const { disabled, inputId, isExpanded } = this;
32269
- return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "listbox", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
32277
+ return (hAsync("button", { disabled: disabled, id: inputId, "aria-label": this.ariaLabel, "aria-haspopup": "dialog", "aria-expanded": `${isExpanded}`, onFocus: this.onFocus, onBlur: this.onBlur, ref: (focusEl) => (this.focusEl = focusEl) }));
32270
32278
  }
32271
32279
  render() {
32272
32280
  const { legacyFormController } = this;
@@ -33607,46 +33615,9 @@ class Thumbnail {
33607
33615
  const iosEnterAnimation = (baseEl, opts) => {
33608
33616
  const baseAnimation = createAnimation();
33609
33617
  const wrapperAnimation = createAnimation();
33610
- const { position, positionAnchor } = opts;
33618
+ const { position, top, bottom } = opts;
33611
33619
  const root = getElementRoot(baseEl);
33612
33620
  const wrapperEl = root.querySelector('.toast-wrapper');
33613
- /**
33614
- * Start with a predefined offset from the edge the toast will be
33615
- * positioned relative to. By default, this will be the top edge
33616
- * of the screen.
33617
- */
33618
- let offset = position === 'top' ? 10 : -10;
33619
- let top, bottom;
33620
- /**
33621
- * If positionAnchor is defined, add in the distance from the top
33622
- * of the screen to the target anchor edge. For position="top", the
33623
- * bottom anchor edge is targeted. For position="bottom", the top
33624
- * anchor edge is targeted.
33625
- */
33626
- if (positionAnchor && win$1) {
33627
- const box = positionAnchor.getBoundingClientRect();
33628
- if (position === 'top') {
33629
- offset += box.bottom;
33630
- }
33631
- else if (position === 'bottom') {
33632
- /**
33633
- * Just box.top is the distance from the top edge of the screen
33634
- * to the top edge of the anchor. We want to calculate from the
33635
- * bottom edge of the screen instead.
33636
- */
33637
- offset -= win$1.innerHeight - box.top;
33638
- }
33639
- /**
33640
- * We don't include safe area here because that should already be
33641
- * accounted for when checking the position of the anchor.
33642
- */
33643
- top = `${offset}px`;
33644
- bottom = `${offset}px`;
33645
- }
33646
- else {
33647
- top = `calc(${offset}px + var(--ion-safe-area-top, 0px))`;
33648
- bottom = `calc(${offset}px - var(--ion-safe-area-bottom, 0px))`;
33649
- }
33650
33621
  wrapperAnimation.addElement(wrapperEl);
33651
33622
  switch (position) {
33652
33623
  case 'top':
@@ -33667,27 +33638,22 @@ const iosEnterAnimation = (baseEl, opts) => {
33667
33638
  /**
33668
33639
  * iOS Toast Leave Animation
33669
33640
  */
33670
- const iosLeaveAnimation = (baseEl, position) => {
33641
+ const iosLeaveAnimation = (baseEl, opts) => {
33671
33642
  const baseAnimation = createAnimation();
33672
33643
  const wrapperAnimation = createAnimation();
33644
+ const { position, top, bottom } = opts;
33673
33645
  const root = getElementRoot(baseEl);
33674
33646
  const wrapperEl = root.querySelector('.toast-wrapper');
33675
33647
  wrapperAnimation.addElement(wrapperEl);
33676
- /**
33677
- * For top/bottom positions, we use to() instead of fromTo() so that if
33678
- * the positionAnchor prop was used, we don't need to recalculate the
33679
- * toast and/or anchor's position and duplicate work from the enter
33680
- * animation.
33681
- */
33682
33648
  switch (position) {
33683
33649
  case 'top':
33684
- wrapperAnimation.to('transform', 'translateY(-100%)');
33650
+ wrapperAnimation.fromTo('transform', `translateY(${top})`, 'translateY(-100%)');
33685
33651
  break;
33686
33652
  case 'middle':
33687
33653
  wrapperAnimation.fromTo('opacity', 0.99, 0);
33688
33654
  break;
33689
33655
  default:
33690
- wrapperAnimation.to('transform', 'translateY(100%)');
33656
+ wrapperAnimation.fromTo('transform', `translateY(${bottom})`, 'translateY(100%)');
33691
33657
  break;
33692
33658
  }
33693
33659
  return baseAnimation.easing('cubic-bezier(.36,.66,.04,1)').duration(300).addAnimation(wrapperAnimation);
@@ -33699,47 +33665,9 @@ const iosLeaveAnimation = (baseEl, position) => {
33699
33665
  const mdEnterAnimation = (baseEl, opts) => {
33700
33666
  const baseAnimation = createAnimation();
33701
33667
  const wrapperAnimation = createAnimation();
33702
- const { position, positionAnchor } = opts;
33668
+ const { position, top, bottom } = opts;
33703
33669
  const root = getElementRoot(baseEl);
33704
33670
  const wrapperEl = root.querySelector('.toast-wrapper');
33705
- /**
33706
- * Start with a predefined offset from the edge the toast will be
33707
- * positioned relative to. By default, this will be the top edge
33708
- * of the screen for position="top", or the bottom edge for
33709
- * position="bottom".
33710
- */
33711
- let offset = 8;
33712
- let top, bottom;
33713
- /**
33714
- * If positionAnchor is defined, add in the distance from the target
33715
- * screen edge to the target anchor edge. For position="top", the
33716
- * bottom anchor edge is targeted. For position="bottom", the top
33717
- * anchor edge is targeted.
33718
- */
33719
- if (positionAnchor && win$1) {
33720
- const box = positionAnchor.getBoundingClientRect();
33721
- if (position === 'top') {
33722
- offset += box.bottom;
33723
- }
33724
- else if (position === 'bottom') {
33725
- /**
33726
- * Just box.top is the distance from the top edge of the screen
33727
- * to the top edge of the anchor. We want to calculate from the
33728
- * bottom edge of the screen instead.
33729
- */
33730
- offset += win$1.innerHeight - box.top;
33731
- }
33732
- /**
33733
- * We don't include safe area here because that should already be
33734
- * accounted for when checking the position of the anchor.
33735
- */
33736
- top = `${offset}px`;
33737
- bottom = `${offset}px`;
33738
- }
33739
- else {
33740
- top = `calc(${offset}px + var(--ion-safe-area-top, 0px))`;
33741
- bottom = `calc(${offset}px + var(--ion-safe-area-bottom, 0px))`;
33742
- }
33743
33671
  wrapperAnimation.addElement(wrapperEl);
33744
33672
  switch (position) {
33745
33673
  case 'top':
@@ -33771,6 +33699,87 @@ const mdLeaveAnimation = (baseEl) => {
33771
33699
  return baseAnimation.easing('cubic-bezier(.36,.66,.04,1)').duration(300).addAnimation(wrapperAnimation);
33772
33700
  };
33773
33701
 
33702
+ /**
33703
+ * Calculate the CSS top and bottom position of the toast, to be used
33704
+ * as starting points for the animation keyframes.
33705
+ *
33706
+ * Note that MD animates bottom-positioned toasts using style.bottom,
33707
+ * which calculates from the bottom edge of the screen, while iOS uses
33708
+ * translateY, which calculates from the top edge of the screen. This
33709
+ * is why the bottom calculates differ slightly between modes.
33710
+ *
33711
+ * @param position The value of the toast's position prop.
33712
+ * @param positionAnchor The element the toast should be anchored to,
33713
+ * if applicable.
33714
+ * @param mode The toast component's mode (md, ios, etc).
33715
+ * @param toast A reference to the toast element itself.
33716
+ */
33717
+ function getAnimationPosition(position, positionAnchor, mode, toast) {
33718
+ /**
33719
+ * Start with a predefined offset from the edge the toast will be
33720
+ * positioned relative to, whether on the screen or anchor element.
33721
+ */
33722
+ let offset;
33723
+ if (mode === 'md') {
33724
+ offset = 8;
33725
+ }
33726
+ else {
33727
+ offset = position === 'top' ? 10 : -10;
33728
+ }
33729
+ /**
33730
+ * If positionAnchor is defined, add in the distance from the target
33731
+ * screen edge to the target anchor edge. For position="top", the
33732
+ * bottom anchor edge is targeted. For position="bottom", the top
33733
+ * anchor edge is targeted.
33734
+ */
33735
+ if (positionAnchor && win$1) {
33736
+ warnIfAnchorIsHidden(positionAnchor, toast);
33737
+ const box = positionAnchor.getBoundingClientRect();
33738
+ if (position === 'top') {
33739
+ offset += box.bottom;
33740
+ }
33741
+ else if (position === 'bottom') {
33742
+ /**
33743
+ * Just box.top is the distance from the top edge of the screen
33744
+ * to the top edge of the anchor. We want to calculate from the
33745
+ * bottom edge of the screen instead.
33746
+ */
33747
+ if (mode === 'md') {
33748
+ offset += win$1.innerHeight - box.top;
33749
+ }
33750
+ else {
33751
+ offset -= win$1.innerHeight - box.top;
33752
+ }
33753
+ }
33754
+ /**
33755
+ * We don't include safe area here because that should already be
33756
+ * accounted for when checking the position of the anchor.
33757
+ */
33758
+ return {
33759
+ top: `${offset}px`,
33760
+ bottom: `${offset}px`,
33761
+ };
33762
+ }
33763
+ else {
33764
+ return {
33765
+ top: `calc(${offset}px + var(--ion-safe-area-top, 0px))`,
33766
+ bottom: mode === 'md'
33767
+ ? `calc(${offset}px + var(--ion-safe-area-bottom, 0px))`
33768
+ : `calc(${offset}px - var(--ion-safe-area-bottom, 0px))`,
33769
+ };
33770
+ }
33771
+ }
33772
+ /**
33773
+ * If the anchor element is hidden, getBoundingClientRect()
33774
+ * will return all 0s for it, which can cause unexpected
33775
+ * results in the position calculation when animating.
33776
+ */
33777
+ function warnIfAnchorIsHidden(positionAnchor, toast) {
33778
+ if (positionAnchor.offsetParent === null) {
33779
+ printIonWarning('The positionAnchor element for ion-toast was found in the DOM, but appears to be hidden. This may lead to unexpected positioning of the toast.', toast);
33780
+ }
33781
+ }
33782
+
33774
33783
  const toastIosCss = "/*!@:host*/.sc-ion-toast-ios-h{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}@supports (inset-inline-start: 0){/*!@:host*/.sc-ion-toast-ios-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){/*!@:host*/.sc-ion-toast-ios-h{left:0}/*!@:host-context([dir=rtl])*/[dir=rtl].sc-ion-toast-ios-h,[dir=rtl] .sc-ion-toast-ios-h{left:unset;right:unset;right:0}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-toast-ios selector(.sc-ion-toast-ios:dir(rtl)){.sc-ion-toast-ios-h:dir(rtl){left:unset;right:unset;right:0}}}/*!@:host(.overlay-hidden)*/.overlay-hidden.sc-ion-toast-ios-h{display:none}/*!@:host(.ion-color)*/.ion-color.sc-ion-toast-ios-h{--button-color:inherit;color:var(--ion-color-contrast)}/*!@:host(.ion-color) .toast-button-cancel*/.ion-color.sc-ion-toast-ios-h .toast-button-cancel.sc-ion-toast-ios{color:inherit}/*!@:host(.ion-color) .toast-wrapper*/.ion-color.sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{background:var(--ion-color-base)}/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}@supports (inset-inline-start: 0){/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{inset-inline-start:var(--start);inset-inline-end:var(--end)}}@supports not (inset-inline-start: 0){/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{left:var(--start);right:var(--end)}/*!@:host-context([dir=rtl]) .toast-wrapper*/[dir=rtl].sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios,[dir=rtl] .sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{left:unset;right:unset;left:var(--end);right:var(--start)}/*!@[dir=rtl] .toast-wrapper*/[dir=rtl].sc-ion-toast-ios .toast-wrapper.sc-ion-toast-ios{left:unset;right:unset;left:var(--end);right:var(--start)}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-toast-ios selector(.sc-ion-toast-ios:dir(rtl)){.toast-wrapper:dir(rtl){left:unset;right:unset;left:var(--end);right:var(--start)}}}/*!@.toast-container*/.toast-container.sc-ion-toast-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}/*!@.toast-layout-stacked .toast-container*/.toast-layout-stacked.sc-ion-toast-ios .toast-container.sc-ion-toast-ios{-ms-flex-wrap:wrap;flex-wrap:wrap}/*!@.toast-layout-baseline .toast-content*/.toast-layout-baseline.sc-ion-toast-ios .toast-content.sc-ion-toast-ios{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}/*!@.toast-icon*/.toast-icon.sc-ion-toast-ios{-webkit-margin-start:16px;margin-inline-start:16px}/*!@.toast-message*/.toast-message.sc-ion-toast-ios{-ms-flex:1;flex:1;white-space:var(--white-space)}/*!@.toast-button-group*/.toast-button-group.sc-ion-toast-ios{display:-ms-flexbox;display:flex}/*!@.toast-layout-stacked .toast-button-group*/.toast-layout-stacked.sc-ion-toast-ios .toast-button-group.sc-ion-toast-ios{-ms-flex-pack:end;justify-content:end;width:100%}/*!@.toast-button*/.toast-button.sc-ion-toast-ios{border:0;outline:none;color:var(--button-color);z-index:0}/*!@.toast-icon,\n.toast-button-icon*/.toast-icon.sc-ion-toast-ios,.toast-button-icon.sc-ion-toast-ios{font-size:1.4em}/*!@.toast-button-inner*/.toast-button-inner.sc-ion-toast-ios{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){/*!@.toast-button:hover*/.toast-button.sc-ion-toast-ios:hover{cursor:pointer}}/*!@:host*/.sc-ion-toast-ios-h{--background:var(--ion-color-step-50, #f2f2f2);--border-radius:14px;--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-850, #262626);--max-width:700px;--start:10px;--end:10px;font-size:14px}/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-ios{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;z-index:10}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){/*!@:host(.toast-translucent) .toast-wrapper*/.toast-translucent.sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{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)}/*!@:host(.ion-color.toast-translucent) .toast-wrapper*/.ion-color.toast-translucent.sc-ion-toast-ios-h .toast-wrapper.sc-ion-toast-ios{background:rgba(var(--ion-color-base-rgb), 0.8)}}/*!@.toast-wrapper.toast-top*/.toast-wrapper.toast-top.sc-ion-toast-ios{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}/*!@.toast-wrapper.toast-middle*/.toast-wrapper.toast-middle.sc-ion-toast-ios{opacity:0.01}/*!@.toast-wrapper.toast-bottom*/.toast-wrapper.toast-bottom.sc-ion-toast-ios{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}/*!@.toast-content*/.toast-content.sc-ion-toast-ios{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:15px;padding-bottom:15px}/*!@.toast-header*/.toast-header.sc-ion-toast-ios{margin-bottom:2px;font-weight:500}/*!@.toast-button*/.toast-button.sc-ion-toast-ios{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;height:44px;-webkit-transition:background-color, opacity 100ms linear;transition:background-color, opacity 100ms linear;border:0;background-color:transparent;font-family:var(--ion-font-family);font-size:17px;font-weight:500;overflow:hidden}/*!@.toast-button.ion-activated*/.toast-button.ion-activated.sc-ion-toast-ios{opacity:0.4}@media (any-hover: hover){/*!@.toast-button:hover*/.toast-button.sc-ion-toast-ios:hover{opacity:0.6}}";
33775
33784
 
33776
33785
  const toastMdCss = "/*!@:host*/.sc-ion-toast-md-h{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}@supports (inset-inline-start: 0){/*!@:host*/.sc-ion-toast-md-h{inset-inline-start:0}}@supports not (inset-inline-start: 0){/*!@:host*/.sc-ion-toast-md-h{left:0}/*!@:host-context([dir=rtl])*/[dir=rtl].sc-ion-toast-md-h,[dir=rtl] .sc-ion-toast-md-h{left:unset;right:unset;right:0}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-toast-md selector(.sc-ion-toast-md:dir(rtl)){.sc-ion-toast-md-h:dir(rtl){left:unset;right:unset;right:0}}}/*!@:host(.overlay-hidden)*/.overlay-hidden.sc-ion-toast-md-h{display:none}/*!@:host(.ion-color)*/.ion-color.sc-ion-toast-md-h{--button-color:inherit;color:var(--ion-color-contrast)}/*!@:host(.ion-color) .toast-button-cancel*/.ion-color.sc-ion-toast-md-h .toast-button-cancel.sc-ion-toast-md{color:inherit}/*!@:host(.ion-color) .toast-wrapper*/.ion-color.sc-ion-toast-md-h .toast-wrapper.sc-ion-toast-md{background:var(--ion-color-base)}/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-md{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}@supports (inset-inline-start: 0){/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-md{inset-inline-start:var(--start);inset-inline-end:var(--end)}}@supports not (inset-inline-start: 0){/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-md{left:var(--start);right:var(--end)}/*!@:host-context([dir=rtl]) .toast-wrapper*/[dir=rtl].sc-ion-toast-md-h .toast-wrapper.sc-ion-toast-md,[dir=rtl] .sc-ion-toast-md-h .toast-wrapper.sc-ion-toast-md{left:unset;right:unset;left:var(--end);right:var(--start)}/*!@[dir=rtl] .toast-wrapper*/[dir=rtl].sc-ion-toast-md .toast-wrapper.sc-ion-toast-md{left:unset;right:unset;left:var(--end);right:var(--start)}/*!@@supports selector(:dir(rtl))*/@supports .sc-ion-toast-md selector(.sc-ion-toast-md:dir(rtl)){.toast-wrapper:dir(rtl){left:unset;right:unset;left:var(--end);right:var(--start)}}}/*!@.toast-container*/.toast-container.sc-ion-toast-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}/*!@.toast-layout-stacked .toast-container*/.toast-layout-stacked.sc-ion-toast-md .toast-container.sc-ion-toast-md{-ms-flex-wrap:wrap;flex-wrap:wrap}/*!@.toast-layout-baseline .toast-content*/.toast-layout-baseline.sc-ion-toast-md .toast-content.sc-ion-toast-md{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}/*!@.toast-icon*/.toast-icon.sc-ion-toast-md{-webkit-margin-start:16px;margin-inline-start:16px}/*!@.toast-message*/.toast-message.sc-ion-toast-md{-ms-flex:1;flex:1;white-space:var(--white-space)}/*!@.toast-button-group*/.toast-button-group.sc-ion-toast-md{display:-ms-flexbox;display:flex}/*!@.toast-layout-stacked .toast-button-group*/.toast-layout-stacked.sc-ion-toast-md .toast-button-group.sc-ion-toast-md{-ms-flex-pack:end;justify-content:end;width:100%}/*!@.toast-button*/.toast-button.sc-ion-toast-md{border:0;outline:none;color:var(--button-color);z-index:0}/*!@.toast-icon,\n.toast-button-icon*/.toast-icon.sc-ion-toast-md,.toast-button-icon.sc-ion-toast-md{font-size:1.4em}/*!@.toast-button-inner*/.toast-button-inner.sc-ion-toast-md{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){/*!@.toast-button:hover*/.toast-button.sc-ion-toast-md:hover{cursor:pointer}}/*!@:host*/.sc-ion-toast-md-h{--background:var(--ion-color-step-800, #333333);--border-radius:4px;--box-shadow:0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-50, #f2f2f2);--max-width:700px;--start:8px;--end:8px;font-size:14px}/*!@.toast-wrapper*/.toast-wrapper.sc-ion-toast-md{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;opacity:0.01;z-index:10}/*!@.toast-content*/.toast-content.sc-ion-toast-md{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:14px;padding-bottom:14px}/*!@.toast-header*/.toast-header.sc-ion-toast-md{margin-bottom:2px;font-weight:500;line-height:20px}/*!@.toast-message*/.toast-message.sc-ion-toast-md{line-height:20px}/*!@.toast-layout-baseline .toast-button-group-start*/.toast-layout-baseline.sc-ion-toast-md .toast-button-group-start.sc-ion-toast-md{-webkit-margin-start:8px;margin-inline-start:8px}/*!@.toast-layout-stacked .toast-button-group-start*/.toast-layout-stacked.sc-ion-toast-md .toast-button-group-start.sc-ion-toast-md{-webkit-margin-end:8px;margin-inline-end:8px;margin-top:8px}/*!@.toast-layout-baseline .toast-button-group-end*/.toast-layout-baseline.sc-ion-toast-md .toast-button-group-end.sc-ion-toast-md{-webkit-margin-end:8px;margin-inline-end:8px}/*!@.toast-layout-stacked .toast-button-group-end*/.toast-layout-stacked.sc-ion-toast-md .toast-button-group-end.sc-ion-toast-md{-webkit-margin-end:8px;margin-inline-end:8px;margin-bottom:8px}/*!@.toast-button*/.toast-button.sc-ion-toast-md{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;font-family:var(--ion-font-family);font-size:14px;font-weight:500;letter-spacing:0.84px;text-transform:uppercase;overflow:hidden}/*!@.toast-button-cancel*/.toast-button-cancel.sc-ion-toast-md{color:var(--ion-color-step-100, #e6e6e6)}/*!@.toast-button-icon-only*/.toast-button-icon-only.sc-ion-toast-md{border-radius:50%;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:9px;padding-bottom:9px;width:36px;height:36px}@media (any-hover: hover){/*!@.toast-button:hover*/.toast-button.sc-ion-toast-md:hover{background-color:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.08)}/*!@.toast-button-cancel:hover*/.toast-button-cancel.sc-ion-toast-md:hover{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.08)}}";
@@ -33871,32 +33880,18 @@ class Toast {
33871
33880
  async present() {
33872
33881
  const unlock = await this.lockController.lock();
33873
33882
  await this.delegateController.attachViewToDom();
33874
- const { position, positionAnchor } = this;
33875
- let anchor;
33876
- if (position === 'middle' && positionAnchor !== undefined) {
33877
- printIonWarning('The positionAnchor property is ignored when using position="middle".', this.el);
33878
- }
33879
- else if (typeof positionAnchor === 'string') {
33880
- /**
33881
- * If the anchor is defined as an ID, find the element.
33882
- * We do this on every present so the toast doesn't need
33883
- * to account for the surrounding DOM changing since the
33884
- * last time it was presented.
33885
- */
33886
- const foundEl = document.getElementById(positionAnchor);
33887
- if (foundEl === null) {
33888
- printIonWarning(`An anchor element with an ID of ${positionAnchor} was not found in the DOM.`, this.el);
33889
- }
33890
- else {
33891
- anchor = foundEl;
33892
- }
33893
- }
33894
- else {
33895
- anchor = positionAnchor;
33896
- }
33883
+ const { el, position } = this;
33884
+ const anchor = this.getAnchorElement();
33885
+ const animationPosition = getAnimationPosition(position, anchor, getIonMode$1(this), el);
33886
+ /**
33887
+ * Cache the calculated position of the toast, so we can re-use it
33888
+ * in the dismiss animation.
33889
+ */
33890
+ this.lastPresentedPosition = animationPosition;
33897
33891
  await present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, {
33898
33892
  position,
33899
- positionAnchor: anchor,
33893
+ top: animationPosition.top,
33894
+ bottom: animationPosition.bottom,
33900
33895
  });
33901
33896
  /**
33902
33897
  * Content is revealed to screen readers after
@@ -33919,15 +33914,28 @@ class Toast {
33919
33914
  * Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
33920
33915
  */
33921
33916
  async dismiss(data, role) {
33917
+ var _a, _b;
33922
33918
  const unlock = await this.lockController.lock();
33923
- if (this.durationTimeout) {
33924
- clearTimeout(this.durationTimeout);
33919
+ const { durationTimeout, position, lastPresentedPosition } = this;
33920
+ if (durationTimeout) {
33921
+ clearTimeout(durationTimeout);
33925
33922
  }
33926
- const dismissed = await dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation, this.position);
33923
+ const dismissed = await dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation,
33924
+ /**
33925
+ * Fetch the cached position that was calculated back in the present
33926
+ * animation. We always want to animate the dismiss from the same
33927
+ * position the present stopped at, so the animation looks continuous.
33928
+ */
33929
+ {
33930
+ position,
33931
+ top: (_a = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.top) !== null && _a !== void 0 ? _a : '',
33932
+ bottom: (_b = lastPresentedPosition === null || lastPresentedPosition === void 0 ? void 0 : lastPresentedPosition.bottom) !== null && _b !== void 0 ? _b : '',
33933
+ });
33927
33934
  if (dismissed) {
33928
33935
  this.delegateController.removeViewFromDom();
33929
33936
  this.revealContentToScreenReader = false;
33930
33937
  }
33938
+ this.lastPresentedPosition = undefined;
33931
33939
  unlock();
33932
33940
  return dismissed;
33933
33941
  }
@@ -33951,6 +33959,37 @@ class Toast {
33951
33959
  : [];
33952
33960
  return buttons;
33953
33961
  }
33962
+ /**
33963
+ * Returns the element specified by the positionAnchor prop,
33964
+ * or undefined if prop's value is an ID string and the element
33965
+ * is not found in the DOM.
33966
+ */
33967
+ getAnchorElement() {
33968
+ const { position, positionAnchor, el } = this;
33969
+ if (position === 'middle' && positionAnchor !== undefined) {
33970
+ printIonWarning('The positionAnchor property is ignored when using position="middle".', this.el);
33971
+ return undefined;
33972
+ }
33973
+ if (typeof positionAnchor === 'string') {
33974
+ /**
33975
+ * If the anchor is defined as an ID, find the element.
33976
+ * We do this on every present so the toast doesn't need
33977
+ * to account for the surrounding DOM changing since the
33978
+ * last time it was presented.
33979
+ */
33980
+ const foundEl = document.getElementById(positionAnchor);
33981
+ if (foundEl === null) {
33982
+ printIonWarning(`An anchor element with an ID of "${positionAnchor}" was not found in the DOM.`, el);
33983
+ return undefined;
33984
+ }
33985
+ return foundEl;
33986
+ }
33987
+ if (positionAnchor instanceof HTMLElement) {
33988
+ return positionAnchor;
33989
+ }
33990
+ printIonWarning('Invalid positionAnchor value:', positionAnchor, el);
33991
+ return undefined;
33992
+ }
33954
33993
  async buttonClick(button) {
33955
33994
  const role = button.role;
33956
33995
  if (isCancel(role)) {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@ionic/core",
3
- "version": "7.4.2-dev.11695927273.1323de22",
3
+ "version": "7.4.2-dev.11696878562.16da82aa",
4
4
  "description": "Base components for Ionic",
5
5
  "keywords": [
6
6
  "ionic",
@@ -1,4 +0,0 @@
1
- var __awaiter=this&&this.__awaiter||function(t,e,n,o){function r(t){return t instanceof n?t:new n((function(e){e(t)}))}return new(n||(n=Promise))((function(n,i){function a(t){try{l(o.next(t))}catch(t){i(t)}}function s(t){try{l(o["throw"](t))}catch(t){i(t)}}function l(t){t.done?n(t.value):r(t.value).then(a,s)}l((o=o.apply(t,e||[])).next())}))};var __generator=this&&this.__generator||function(t,e){var n={label:0,sent:function(){if(i[0]&1)throw i[1];return i[1]},trys:[],ops:[]},o,r,i,a;return a={next:s(0),throw:s(1),return:s(2)},typeof Symbol==="function"&&(a[Symbol.iterator]=function(){return this}),a;function s(t){return function(e){return l([t,e])}}function l(s){if(o)throw new TypeError("Generator is already executing.");while(a&&(a=0,s[0]&&(n=0)),n)try{if(o=1,r&&(i=s[0]&2?r["return"]:s[0]?r["throw"]||((i=r["return"])&&i.call(r),0):r.next)&&!(i=i.call(r,s[1])).done)return i;if(r=0,i)s=[s[0]&2,i.value];switch(s[0]){case 0:case 1:i=s;break;case 4:n.label++;return{value:s[1],done:false};case 5:n.label++;r=s[1];s=[0];continue;case 7:s=n.ops.pop();n.trys.pop();continue;default:if(!(i=n.trys,i=i.length>0&&i[i.length-1])&&(s[0]===6||s[0]===2)){n=0;continue}if(s[0]===3&&(!i||s[1]>i[0]&&s[1]<i[3])){n.label=s[1];break}if(s[0]===6&&n.label<i[1]){n.label=i[1];i=s;break}if(i&&n.label<i[2]){n.label=i[2];n.ops.push(s);break}if(i[2])n.ops.pop();n.trys.pop();continue}s=e.call(t,n)}catch(t){s=[6,t];r=0}finally{o=i=0}if(s[0]&5)throw s[1];return{value:s[0]?s[1]:void 0,done:true}}};
2
- /*!
3
- * (C) Ionic http://ionicframework.com - MIT License
4
- */System.register(["./p-91546be9.system.js","./p-2b89ea1b.system.js","./p-815c2fba.system.js","./p-772f6c84.system.js","./p-479cdbf8.system.js","./p-40bd36f3.system.js","./p-44bc8b45.system.js","./p-93616477.system.js","./p-6b2641f6.system.js","./p-0e94957a.system.js","./p-613d4042.system.js","./p-8c15eda7.system.js"],(function(t){"use strict";var e,n,o,r,i,a,s,l,d,c,u,p,h,f,b,g,m,v,x,w,y,k,T,C,_,j;return{setters:[function(t){e=t.r;n=t.d;o=t.h;r=t.H;i=t.f},function(t){a=t.E;s=t.a},function(t){l=t.g;d=t.r},function(t){c=t.c},function(t){u=t.p},function(t){p=t.d;h=t.e;f=t.i;b=t.j;g=t.k;m=t.f;v=t.g;x=t.h;w=t.s},function(t){y=t.g;k=t.c},function(t){T=t.c;C=t.b},function(t){_=t.c},function(t){j=t.w},function(){},function(){}],execute:function(){var D=function(t,e){var n=_();var o=_();var r=e.position,i=e.positionAnchor;var a=l(t);var s=a.querySelector(".toast-wrapper");var d=r==="top"?10:-10;var c,u;if(i&&j){var p=i.getBoundingClientRect();if(r==="top"){d+=p.bottom}else if(r==="bottom"){d-=j.innerHeight-p.top}c="".concat(d,"px");u="".concat(d,"px")}else{c="calc(".concat(d,"px + var(--ion-safe-area-top, 0px))");u="calc(".concat(d,"px - var(--ion-safe-area-bottom, 0px))")}o.addElement(s);switch(r){case"top":o.fromTo("transform","translateY(-100%)","translateY(".concat(c,")"));break;case"middle":var h=Math.floor(t.clientHeight/2-s.clientHeight/2);s.style.top="".concat(h,"px");o.fromTo("opacity",.01,1);break;default:o.fromTo("transform","translateY(100%)","translateY(".concat(u,")"));break}return n.easing("cubic-bezier(.155,1.105,.295,1.12)").duration(400).addAnimation(o)};var H=function(t,e){var n=_();var o=_();var r=l(t);var i=r.querySelector(".toast-wrapper");o.addElement(i);switch(e){case"top":o.to("transform","translateY(-100%)");break;case"middle":o.fromTo("opacity",.99,0);break;default:o.to("transform","translateY(100%)");break}return n.easing("cubic-bezier(.36,.66,.04,1)").duration(300).addAnimation(o)};var z=function(t,e){var n=_();var o=_();var r=e.position,i=e.positionAnchor;var a=l(t);var s=a.querySelector(".toast-wrapper");var d=8;var c,u;if(i&&j){var p=i.getBoundingClientRect();if(r==="top"){d+=p.bottom}else if(r==="bottom"){d+=j.innerHeight-p.top}c="".concat(d,"px");u="".concat(d,"px")}else{c="calc(".concat(d,"px + var(--ion-safe-area-top, 0px))");u="calc(".concat(d,"px + var(--ion-safe-area-bottom, 0px))")}o.addElement(s);switch(r){case"top":s.style.top=c;o.fromTo("opacity",.01,1);break;case"middle":var h=Math.floor(t.clientHeight/2-s.clientHeight/2);s.style.top="".concat(h,"px");o.fromTo("opacity",.01,1);break;default:s.style.bottom=u;o.fromTo("opacity",.01,1);break}return n.easing("cubic-bezier(.36,.66,.04,1)").duration(400).addAnimation(o)};var A=function(t){var e=_();var n=_();var o=l(t);var r=o.querySelector(".toast-wrapper");n.addElement(r).fromTo("opacity",.99,0);return e.easing("cubic-bezier(.36,.66,.04,1)").duration(300).addAnimation(n)};var S=":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}@supports (inset-inline-start: 0){:host{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host{left:0}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host:dir(rtl){left:unset;right:unset;right:0}}}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}@supports (inset-inline-start: 0){.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}}@supports not (inset-inline-start: 0){.toast-wrapper{left:var(--start);right:var(--end)}:host-context([dir=rtl]) .toast-wrapper{left:unset;right:unset;left:var(--end);right:var(--start)}[dir=rtl] .toast-wrapper{left:unset;right:unset;left:var(--end);right:var(--start)}@supports selector(:dir(rtl)){.toast-wrapper:dir(rtl){left:unset;right:unset;left:var(--end);right:var(--start)}}}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-50, #f2f2f2);--border-radius:14px;--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-850, #262626);--max-width:700px;--start:10px;--end:10px;font-size:14px}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;z-index:10}@supports ((-webkit-backdrop-filter: blur(0)) or (backdrop-filter: blur(0))){:host(.toast-translucent) .toast-wrapper{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)}:host(.ion-color.toast-translucent) .toast-wrapper{background:rgba(var(--ion-color-base-rgb), 0.8)}}.toast-wrapper.toast-top{-webkit-transform:translate3d(0, -100%, 0);transform:translate3d(0, -100%, 0);top:0}.toast-wrapper.toast-middle{opacity:0.01}.toast-wrapper.toast-bottom{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0);bottom:0}.toast-content{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:15px;padding-bottom:15px}.toast-header{margin-bottom:2px;font-weight:500}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;height:44px;-webkit-transition:background-color, opacity 100ms linear;transition:background-color, opacity 100ms linear;border:0;background-color:transparent;font-family:var(--ion-font-family);font-size:17px;font-weight:500;overflow:hidden}.toast-button.ion-activated{opacity:0.4}@media (any-hover: hover){.toast-button:hover{opacity:0.6}}";var O=":host{--border-width:0;--border-style:none;--border-color:initial;--box-shadow:none;--min-width:auto;--width:auto;--min-height:auto;--height:auto;--max-height:auto;--white-space:normal;top:0;display:block;position:absolute;width:100%;height:100%;outline:none;color:var(--color);font-family:var(--ion-font-family, inherit);contain:strict;z-index:1001;pointer-events:none}@supports (inset-inline-start: 0){:host{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host{left:0}:host-context([dir=rtl]){left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host:dir(rtl){left:unset;right:unset;right:0}}}:host(.overlay-hidden){display:none}:host(.ion-color){--button-color:inherit;color:var(--ion-color-contrast)}:host(.ion-color) .toast-button-cancel{color:inherit}:host(.ion-color) .toast-wrapper{background:var(--ion-color-base)}.toast-wrapper{border-radius:var(--border-radius);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);border-width:var(--border-width);border-style:var(--border-style);border-color:var(--border-color);background:var(--background);-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}@supports (inset-inline-start: 0){.toast-wrapper{inset-inline-start:var(--start);inset-inline-end:var(--end)}}@supports not (inset-inline-start: 0){.toast-wrapper{left:var(--start);right:var(--end)}:host-context([dir=rtl]) .toast-wrapper{left:unset;right:unset;left:var(--end);right:var(--start)}[dir=rtl] .toast-wrapper{left:unset;right:unset;left:var(--end);right:var(--start)}@supports selector(:dir(rtl)){.toast-wrapper:dir(rtl){left:unset;right:unset;left:var(--end);right:var(--start)}}}.toast-container{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;pointer-events:auto;height:inherit;min-height:inherit;max-height:inherit;contain:content}.toast-layout-stacked .toast-container{-ms-flex-wrap:wrap;flex-wrap:wrap}.toast-layout-baseline .toast-content{display:-ms-flexbox;display:flex;-ms-flex:1;flex:1;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:center;justify-content:center}.toast-icon{-webkit-margin-start:16px;margin-inline-start:16px}.toast-message{-ms-flex:1;flex:1;white-space:var(--white-space)}.toast-button-group{display:-ms-flexbox;display:flex}.toast-layout-stacked .toast-button-group{-ms-flex-pack:end;justify-content:end;width:100%}.toast-button{border:0;outline:none;color:var(--button-color);z-index:0}.toast-icon,.toast-button-icon{font-size:1.4em}.toast-button-inner{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center}@media (any-hover: hover){.toast-button:hover{cursor:pointer}}:host{--background:var(--ion-color-step-800, #333333);--border-radius:4px;--box-shadow:0 3px 5px -1px rgba(0, 0, 0, 0.2), 0 6px 10px 0 rgba(0, 0, 0, 0.14), 0 1px 18px 0 rgba(0, 0, 0, 0.12);--button-color:var(--ion-color-primary, #3880ff);--color:var(--ion-color-step-50, #f2f2f2);--max-width:700px;--start:8px;--end:8px;font-size:14px}.toast-wrapper{-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;margin-top:auto;margin-bottom:auto;display:block;position:absolute;opacity:0.01;z-index:10}.toast-content{-webkit-padding-start:16px;padding-inline-start:16px;-webkit-padding-end:16px;padding-inline-end:16px;padding-top:14px;padding-bottom:14px}.toast-header{margin-bottom:2px;font-weight:500;line-height:20px}.toast-message{line-height:20px}.toast-layout-baseline .toast-button-group-start{-webkit-margin-start:8px;margin-inline-start:8px}.toast-layout-stacked .toast-button-group-start{-webkit-margin-end:8px;margin-inline-end:8px;margin-top:8px}.toast-layout-baseline .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px}.toast-layout-stacked .toast-button-group-end{-webkit-margin-end:8px;margin-inline-end:8px;margin-bottom:8px}.toast-button{-webkit-padding-start:15px;padding-inline-start:15px;-webkit-padding-end:15px;padding-inline-end:15px;padding-top:10px;padding-bottom:10px;position:relative;background-color:transparent;font-family:var(--ion-font-family);font-size:14px;font-weight:500;letter-spacing:0.84px;text-transform:uppercase;overflow:hidden}.toast-button-cancel{color:var(--ion-color-step-100, #e6e6e6)}.toast-button-icon-only{border-radius:50%;-webkit-padding-start:9px;padding-inline-start:9px;-webkit-padding-end:9px;padding-inline-end:9px;padding-top:9px;padding-bottom:9px;width:36px;height:36px}@media (any-hover: hover){.toast-button:hover{background-color:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.08)}.toast-button-cancel:hover{background-color:rgba(var(--ion-background-color-rgb, 255, 255, 255), 0.08)}}";var B=t("ion_toast",function(){function t(t){var o=this;e(this,t);this.didPresent=n(this,"ionToastDidPresent",7);this.willPresent=n(this,"ionToastWillPresent",7);this.willDismiss=n(this,"ionToastWillDismiss",7);this.didDismiss=n(this,"ionToastDidDismiss",7);this.didPresentShorthand=n(this,"didPresent",7);this.willPresentShorthand=n(this,"willPresent",7);this.willDismissShorthand=n(this,"willDismiss",7);this.didDismissShorthand=n(this,"didDismiss",7);this.delegateController=p(this);this.lockController=c();this.triggerController=h();this.customHTMLEnabled=T.get("innerHTMLTemplatesEnabled",a);this.presented=false;this.dispatchCancelHandler=function(t){var e=t.detail.role;if(f(e)){var n=o.getButtons().find((function(t){return t.role==="cancel"}));o.callButtonHandler(n)}};this.revealContentToScreenReader=false;this.overlayIndex=undefined;this.delegate=undefined;this.hasController=false;this.color=undefined;this.enterAnimation=undefined;this.leaveAnimation=undefined;this.cssClass=undefined;this.duration=T.getNumber("toastDuration",0);this.header=undefined;this.layout="baseline";this.message=undefined;this.keyboardClose=false;this.position="bottom";this.positionAnchor=undefined;this.buttons=undefined;this.translucent=false;this.animated=true;this.icon=undefined;this.htmlAttributes=undefined;this.isOpen=false;this.trigger=undefined}t.prototype.onIsOpenChange=function(t,e){if(t===true&&e===false){this.present()}else if(t===false&&e===true){this.dismiss()}};t.prototype.triggerChanged=function(){var t=this,e=t.trigger,n=t.el,o=t.triggerController;if(e){o.addClickListener(n,e)}};t.prototype.connectedCallback=function(){b(this.el);this.triggerChanged()};t.prototype.disconnectedCallback=function(){this.triggerController.removeClickListener()};t.prototype.componentWillLoad=function(){g(this.el)};t.prototype.componentDidLoad=function(){var t=this;if(this.isOpen===true){d((function(){return t.present()}))}};t.prototype.present=function(){return __awaiter(this,void 0,void 0,(function(){var t,e,n,o,r,i;var a=this;return __generator(this,(function(s){switch(s.label){case 0:return[4,this.lockController.lock()];case 1:t=s.sent();return[4,this.delegateController.attachViewToDom()];case 2:s.sent();e=this,n=e.position,o=e.positionAnchor;if(n==="middle"&&o!==undefined){u('The positionAnchor property is ignored when using position="middle".',this.el)}else if(typeof o==="string"){i=document.getElementById(o);if(i===null){u("An anchor element with an ID of ".concat(o," was not found in the DOM."),this.el)}else{r=i}}else{r=o}return[4,m(this,"toastEnter",D,z,{position:n,positionAnchor:r})];case 3:s.sent();this.revealContentToScreenReader=true;if(this.duration>0){this.durationTimeout=setTimeout((function(){return a.dismiss(undefined,"timeout")}),this.duration)}t();return[2]}}))}))};t.prototype.dismiss=function(t,e){return __awaiter(this,void 0,void 0,(function(){var n,o;return __generator(this,(function(r){switch(r.label){case 0:return[4,this.lockController.lock()];case 1:n=r.sent();if(this.durationTimeout){clearTimeout(this.durationTimeout)}return[4,v(this,t,e,"toastLeave",H,A,this.position)];case 2:o=r.sent();if(o){this.delegateController.removeViewFromDom();this.revealContentToScreenReader=false}n();return[2,o]}}))}))};t.prototype.onDidDismiss=function(){return x(this.el,"ionToastDidDismiss")};t.prototype.onWillDismiss=function(){return x(this.el,"ionToastWillDismiss")};t.prototype.getButtons=function(){var t=this.buttons?this.buttons.map((function(t){return typeof t==="string"?{text:t}:t})):[];return t};t.prototype.buttonClick=function(t){return __awaiter(this,void 0,void 0,(function(){var e,n;return __generator(this,(function(o){switch(o.label){case 0:e=t.role;if(f(e)){return[2,this.dismiss(undefined,e)]}return[4,this.callButtonHandler(t)];case 1:n=o.sent();if(n){return[2,this.dismiss(undefined,e)]}return[2,Promise.resolve()]}}))}))};t.prototype.callButtonHandler=function(t){return __awaiter(this,void 0,void 0,(function(){var e,n;return __generator(this,(function(o){switch(o.label){case 0:if(!(t===null||t===void 0?void 0:t.handler))return[3,4];o.label=1;case 1:o.trys.push([1,3,,4]);return[4,w(t.handler)];case 2:e=o.sent();if(e===false){return[2,false]}return[3,4];case 3:n=o.sent();console.error(n);return[3,4];case 4:return[2,true]}}))}))};t.prototype.renderButtons=function(t,e){var n;var r=this;if(t.length===0){return}var i=C(this);var a=(n={"toast-button-group":true},n["toast-button-group-".concat(e)]=true,n);return o("div",{class:a},t.map((function(t){return o("button",Object.assign({},t.htmlAttributes,{type:"button",class:P(t),tabIndex:0,onClick:function(){return r.buttonClick(t)},part:E(t)}),o("div",{class:"toast-button-inner"},t.icon&&o("ion-icon",{"aria-hidden":"true",icon:t.icon,slot:t.text===undefined?"icon-only":undefined,class:"toast-button-icon"}),t.text),i==="md"&&o("ion-ripple-effect",{type:t.icon!==undefined&&t.text===undefined?"unbounded":"bounded"}))})))};t.prototype.renderToastMessage=function(t,e){if(e===void 0){e=null}var n=this,r=n.customHTMLEnabled,i=n.message;if(r){return o("div",{key:t,"aria-hidden":e,class:"toast-message",part:"message",innerHTML:s(i)})}return o("div",{key:t,"aria-hidden":e,class:"toast-message",part:"message"},i)};t.prototype.renderHeader=function(t,e){if(e===void 0){e=null}return o("div",{key:t,class:"toast-header","aria-hidden":e,part:"header"},this.header)};t.prototype.render=function(){var t,e;var n=this,i=n.layout,a=n.el,s=n.revealContentToScreenReader,l=n.header,d=n.message;var c=this.getButtons();var p=c.filter((function(t){return t.side==="start"}));var h=c.filter((function(t){return t.side!=="start"}));var f=C(this);var b=(t={"toast-wrapper":true},t["toast-".concat(this.position)]=true,t["toast-layout-".concat(i)]=true,t);if(i==="stacked"&&p.length>0&&h.length>0){u("This toast is using start and end buttons with the stacked toast layout. We recommend following the best practice of using either start or end buttons with the stacked toast layout.",a)}return o(r,Object.assign({tabindex:"-1"},this.htmlAttributes,{style:{zIndex:"".concat(6e4+this.overlayIndex)},class:k(this.color,Object.assign(Object.assign((e={},e[f]=true,e),y(this.cssClass)),{"overlay-hidden":true,"toast-translucent":this.translucent})),onIonToastWillDismiss:this.dispatchCancelHandler}),o("div",{class:b},o("div",{class:"toast-container",part:"container"},this.renderButtons(p,"start"),this.icon!==undefined&&o("ion-icon",{class:"toast-icon",part:"icon",icon:this.icon,lazy:false,"aria-hidden":"true"}),o("div",{class:"toast-content",role:"status","aria-atomic":"true","aria-live":"polite"},!s&&l!==undefined&&this.renderHeader("oldHeader","true"),!s&&d!==undefined&&this.renderToastMessage("oldMessage","true"),s&&l!==undefined&&this.renderHeader("header"),s&&d!==undefined&&this.renderToastMessage("header")),this.renderButtons(h,"end"))))};Object.defineProperty(t.prototype,"el",{get:function(){return i(this)},enumerable:false,configurable:true});Object.defineProperty(t,"watchers",{get:function(){return{isOpen:["onIsOpenChange"],trigger:["triggerChanged"]}},enumerable:false,configurable:true});return t}());var P=function(t){var e;return Object.assign((e={"toast-button":true,"toast-button-icon-only":t.icon!==undefined&&t.text===undefined},e["toast-button-".concat(t.role)]=t.role!==undefined,e["ion-focusable"]=true,e["ion-activatable"]=true,e),y(t.cssClass))};var E=function(t){return f(t.role)?"button cancel":"button"};B.style={ios:S,md:O}}}}));
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- System.register(["./p-6b2641f6.system.js","./p-4cf29e23.system.js","./p-48393630.system.js","./p-9eb5455c.system.js","./p-c4f2dce7.system.js","./p-fa8d4788.system.js","./p-93616477.system.js","./p-815c2fba.system.js","./p-2b89ea1b.system.js","./p-d4cea1ba.system.js","./p-40bd36f3.system.js","./p-0e94957a.system.js","./p-91546be9.system.js","./p-9e852ff1.system.js","./p-8c15eda7.system.js","./p-613d4042.system.js","./p-479cdbf8.system.js"],(function(e){"use strict";return{setters:[function(t){e("createAnimation",t.c)},function(t){var s={};s.LIFECYCLE_DID_ENTER=t.a;s.LIFECYCLE_DID_LEAVE=t.c;s.LIFECYCLE_WILL_ENTER=t.L;s.LIFECYCLE_WILL_LEAVE=t.b;s.LIFECYCLE_WILL_UNLOAD=t.d;s.getIonPageElement=t.g;e(s)},function(t){e("iosTransitionAnimation",t.iosTransitionAnimation)},function(t){e("mdTransitionAnimation",t.mdTransitionAnimation)},function(t){e("getTimeGivenProgression",t.g)},function(t){e("createGesture",t.createGesture)},function(t){var s={};s.getPlatforms=t.g;s.initialize=t.i;s.isPlatform=t.a;e(s)},function(t){e("componentOnReady",t.c)},function(t){var s={};s.IonicSafeString=t.I;s.getMode=t.g;s.setupConfig=t.s;e(s)},function(t){e("menuController",t.m)},function(t){var s={};s.actionSheetController=t.b;s.alertController=t.a;s.loadingController=t.l;s.modalController=t.m;s.pickerController=t.p;s.popoverController=t.c;s.toastController=t.t;e(s)},function(){},function(){},function(){},function(){},function(){},function(){}],execute:function(){var t=e("IonicSlides",(function(e){var t=e.swiper,s=e.extendParams;var i={effect:undefined,direction:"horizontal",initialSlide:0,loop:false,parallax:false,slidesPerView:1,spaceBetween:0,speed:300,slidesPerColumn:1,slidesPerColumnFill:"column",slidesPerGroup:1,centeredSlides:false,slidesOffsetBefore:0,slidesOffsetAfter:0,touchEventsTarget:"container",freeMode:false,freeModeMomentum:true,freeModeMomentumRatio:1,freeModeMomentumBounce:true,freeModeMomentumBounceRatio:1,freeModeMomentumVelocityRatio:1,freeModeSticky:false,freeModeMinimumVelocity:.02,autoHeight:false,setWrapperSize:false,zoom:{maxRatio:3,minRatio:1,toggle:false},touchRatio:1,touchAngle:45,simulateTouch:true,touchStartPreventDefault:false,shortSwipes:true,longSwipes:true,longSwipesRatio:.5,longSwipesMs:300,followFinger:true,threshold:0,touchMoveStopPropagation:true,touchReleaseOnEdges:false,iOSEdgeSwipeDetection:false,iOSEdgeSwipeThreshold:20,resistance:true,resistanceRatio:.85,watchSlidesProgress:false,watchSlidesVisibility:false,preventClicks:true,preventClicksPropagation:true,slideToClickedSlide:false,loopAdditionalSlides:0,noSwiping:true,runCallbacksOnInit:true,coverflowEffect:{rotate:50,stretch:0,depth:100,modifier:1,slideShadows:true},flipEffect:{slideShadows:true,limitRotation:true},cubeEffect:{slideShadows:true,shadow:true,shadowOffset:20,shadowScale:.94},fadeEffect:{crossFade:false},a11y:{prevSlideMessage:"Previous slide",nextSlideMessage:"Next slide",firstSlideMessage:"This is the first slide",lastSlideMessage:"This is the last slide"}};if(t.pagination){i.pagination={type:"bullets",clickable:false,hideOnClick:false}}if(t.scrollbar){i.scrollbar={hide:true}}s(i)}))}}}));
@@ -1,4 +0,0 @@
1
- /*!
2
- * (C) Ionic http://ionicframework.com - MIT License
3
- */
4
- import{r as e,d as t,h as l,H as i,f as o,i as s}from"./p-70ab8b73.js";import{c as a}from"./p-ca5cf574.js";import{c as r}from"./p-3bad5c1a.js";import{k as n,f as c,h as d,d as p,e as h}from"./p-63eb0acd.js";import{p as b}from"./p-1b8e1d03.js";import{c as m,b as g,a as f,s as u}from"./p-3faf56ab.js";import{i as x}from"./p-6dbfe5d4.js";import{h as v,c as w,g as y}from"./p-1d072d3d.js";import{w as k}from"./p-5bf16a18.js";import{w as z,q as j}from"./p-0a87858b.js";import{b as C}from"./p-6b7e74ba.js";import"./p-b347cfd1.js";import"./p-b287ab05.js";import"./p-185e427e.js";const O=class{constructor(l){e(this,l),this.ionChange=t(this,"ionChange",7),this.ionCancel=t(this,"ionCancel",7),this.ionDismiss=t(this,"ionDismiss",7),this.ionFocus=t(this,"ionFocus",7),this.ionBlur=t(this,"ionBlur",7),this.ionStyle=t(this,"ionStyle",7),this.inputId="ion-sel-"+P++,this.inheritedAttributes={},this.hasLoggedDeprecationWarning=!1,this.onClick=e=>{this.setFocus(),this.open(e)},this.onFocus=()=>{this.ionFocus.emit()},this.onBlur=()=>{this.ionBlur.emit()},this.isExpanded=!1,this.cancelText="Cancel",this.color=void 0,this.compareWith=void 0,this.disabled=!1,this.fill=void 0,this.interface="alert",this.interfaceOptions={},this.justify="space-between",this.label=void 0,this.labelPlacement="start",this.legacy=void 0,this.multiple=!1,this.name=this.inputId,this.okText="OK",this.placeholder=void 0,this.selectedText=void 0,this.toggleIcon=void 0,this.expandedIcon=void 0,this.shape=void 0,this.value=void 0}styleChanged(){this.emitStyle()}setValue(e){this.value=e,this.ionChange.emit({value:e})}componentWillLoad(){this.inheritedAttributes=n(this.el,["aria-label"])}async connectedCallback(){const{el:e}=this;this.legacyFormController=a(e),this.notchController=r(e,(()=>this.notchSpacerEl),(()=>this.labelSlot)),this.updateOverlayOptions(),this.emitStyle(),this.mutationO=k(this.el,"ion-select-option",(async()=>{this.updateOverlayOptions(),s(this)}))}disconnectedCallback(){this.mutationO&&(this.mutationO.disconnect(),this.mutationO=void 0),this.notchController&&(this.notchController.destroy(),this.notchController=void 0)}async open(e){if(this.disabled||this.isExpanded)return;this.isExpanded=!0;const t=this.overlay=await this.createOverlay(e);if(t.onDidDismiss().then((()=>{this.overlay=void 0,this.isExpanded=!1,this.ionDismiss.emit(),this.setFocus()})),await t.present(),"popover"===this.interface){let e=this.childOpts.map((e=>e.value)).indexOf(this.value);e=e>-1?e:0;const l=t.querySelector(`.select-interface-option:nth-child(${e+1})`);if(l){c(l);const e=l.querySelector("ion-radio, ion-checkbox");e&&e.focus()}}return t}createOverlay(e){let t=this.interface;return"action-sheet"===t&&this.multiple&&(console.warn(`Select interface cannot be "${t}" with a multi-value select. Using the "alert" interface instead.`),t="alert"),"popover"!==t||e||(console.warn(`Select interface cannot be a "${t}" without passing an event. Using the "alert" interface instead.`),t="alert"),"action-sheet"===t?this.openActionSheet():"popover"===t?this.openPopover(e):this.openAlert()}updateOverlayOptions(){const e=this.overlay;if(!e)return;const t=this.childOpts,l=this.value;switch(this.interface){case"action-sheet":e.buttons=this.createActionSheetButtons(t,l);break;case"popover":const i=e.querySelector("ion-select-popover");i&&(i.options=this.createPopoverOptions(t,l));break;case"alert":e.inputs=this.createAlertInputs(t,this.multiple?"checkbox":"radio",l)}}createActionSheetButtons(e,t){const l=e.map((e=>{const l=I(e),i=Array.from(e.classList).filter((e=>"hydrated"!==e)).join(" "),o=`${E} ${i}`;return{role:$(t,l,this.compareWith)?"selected":"",text:e.textContent,cssClass:o,handler:()=>{this.setValue(l)}}}));return l.push({text:this.cancelText,role:"cancel",handler:()=>{this.ionCancel.emit()}}),l}createAlertInputs(e,t,l){return e.map((e=>{const i=I(e),o=Array.from(e.classList).filter((e=>"hydrated"!==e)).join(" ");return{type:t,cssClass:`${E} ${o}`,label:e.textContent||"",value:i,checked:$(l,i,this.compareWith),disabled:e.disabled}}))}createPopoverOptions(e,t){return e.map((e=>{const l=I(e),i=Array.from(e.classList).filter((e=>"hydrated"!==e)).join(" ");return{text:e.textContent||"",cssClass:`${E} ${i}`,value:l,checked:$(t,l,this.compareWith),disabled:e.disabled,handler:e=>{this.setValue(e),this.multiple||this.close()}}}))}async openPopover(e){const{fill:t,labelPlacement:l}=this,i=this.interfaceOptions,o=C(this),s="md"!==o,a=this.multiple,r=this.value;let n=e,c="auto";if(this.legacyFormController.hasLegacyControl()){const t=this.el.closest("ion-item");t&&(t.classList.contains("item-label-floating")||t.classList.contains("item-label-stacked"))&&(n=Object.assign(Object.assign({},e),{detail:{ionShadowTarget:t}}),c="cover")}else"floating"===l||"stacked"===l||"md"===o&&void 0!==t?c="cover":n=Object.assign(Object.assign({},e),{detail:{ionShadowTarget:this.nativeWrapperEl}});const d=Object.assign(Object.assign({mode:o,event:n,alignment:"center",size:c,showBackdrop:s},i),{component:"ion-select-popover",cssClass:["select-popover",i.cssClass],componentProps:{header:i.header,subHeader:i.subHeader,message:i.message,multiple:a,value:r,options:this.createPopoverOptions(this.childOpts,r)}});return m.create(d)}async openActionSheet(){const e=C(this),t=this.interfaceOptions,l=Object.assign(Object.assign({mode:e},t),{buttons:this.createActionSheetButtons(this.childOpts,this.value),cssClass:["select-action-sheet",t.cssClass]});return g.create(l)}async openAlert(){let e,t;this.legacyFormController.hasLegacyControl()?(e=this.getLabel(),t=e?e.textContent:null):t=this.labelText;const l=this.interfaceOptions,i=this.multiple?"checkbox":"radio",o=C(this),s=Object.assign(Object.assign({mode:o},l),{header:l.header?l.header:t,inputs:this.createAlertInputs(this.childOpts,i,this.value),buttons:[{text:this.cancelText,role:"cancel",handler:()=>{this.ionCancel.emit()}},{text:this.okText,handler:e=>{this.setValue(e)}}],cssClass:["select-alert",l.cssClass,this.multiple?"multiple-select-alert":"single-select-alert"]});return f.create(s)}close(){return this.overlay?this.overlay.dismiss():Promise.resolve(!1)}getLabel(){return d(this.el)}hasValue(){return""!==this.getText()}get childOpts(){return Array.from(this.el.querySelectorAll("ion-select-option"))}get labelText(){const{label:e}=this;if(void 0!==e)return e;const{labelSlot:t}=this;return null!==t?t.textContent:void 0}getText(){const e=this.selectedText;return null!=e&&""!==e?e:T(this.childOpts,this.value,this.compareWith)}setFocus(){this.focusEl&&this.focusEl.focus()}emitStyle(){const{disabled:e}=this,t={"interactive-disabled":e};this.legacyFormController.hasLegacyControl()&&(t.interactive=!0,t.select=!0,t["select-disabled"]=e,t["has-placeholder"]=void 0!==this.placeholder,t["has-value"]=this.hasValue(),t["has-focus"]=this.isExpanded),this.ionStyle.emit(t)}renderLabel(){const{label:e}=this;return l("div",{class:{"label-text-wrapper":!0,"label-text-wrapper-hidden":!this.hasLabel},part:"label"},void 0===e?l("slot",{name:"label"}):l("div",{class:"label-text"},e))}componentDidRender(){var e;null===(e=this.notchController)||void 0===e||e.calculateNotchWidth()}get labelSlot(){return this.el.querySelector('[slot="label"]')}get hasLabel(){return void 0!==this.label||null!==this.labelSlot}renderLabelContainer(){return"md"===C(this)&&"outline"===this.fill?[l("div",{class:"select-outline-container"},l("div",{class:"select-outline-start"}),l("div",{class:{"select-outline-notch":!0,"select-outline-notch-hidden":!this.hasLabel}},l("div",{class:"notch-spacer","aria-hidden":"true",ref:e=>this.notchSpacerEl=e},this.label)),l("div",{class:"select-outline-end"})),this.renderLabel()]:this.renderLabel()}renderSelect(){const{disabled:e,el:t,isExpanded:o,expandedIcon:s,labelPlacement:a,justify:r,placeholder:n,fill:c,shape:d,name:h,value:b}=this,m=C(this),g="floating"===a||"stacked"===a,f=!g,u=x(t)?"rtl":"ltr",y=v("ion-item",this.el),k="md"===m&&"outline"!==c&&!y;return p(!0,t,h,S(b),e),l(i,{onClick:this.onClick,class:w(this.color,{[m]:!0,"in-item":y,"in-item-color":v("ion-item.ion-color",t),"select-disabled":e,"select-expanded":o,"has-expanded-icon":void 0!==s,"has-value":this.hasValue(),"has-placeholder":void 0!==n,"ion-focusable":!0,[`select-${u}`]:!0,[`select-fill-${c}`]:void 0!==c,[`select-justify-${r}`]:f,[`select-shape-${d}`]:void 0!==d,[`select-label-placement-${a}`]:!0})},l("label",{class:"select-wrapper",id:"select-label"},this.renderLabelContainer(),l("div",{class:"native-wrapper",ref:e=>this.nativeWrapperEl=e,part:"container"},this.renderSelectText(),!g&&this.renderSelectIcon(),this.renderListbox()),g&&this.renderSelectIcon(),k&&l("div",{class:"select-highlight"})))}renderLegacySelect(){this.hasLoggedDeprecationWarning||(b('ion-select now requires providing a label with either the "label" property or the "aria-label" attribute. To migrate, remove any usage of "ion-label" and pass the label text to either the "label" property or the "aria-label" attribute.\n\nExample: <ion-select label="Favorite Color">...</ion-select>\nExample with aria-label: <ion-select aria-label="Favorite Color">...</ion-select>\n\nDevelopers can use the "legacy" property to continue using the legacy form markup. This property will be removed in an upcoming major release of Ionic where this form control will use the modern form markup.',this.el),this.legacy&&b('ion-select is being used with the "legacy" property enabled which will forcibly enable the legacy form markup. This property will be removed in an upcoming major release of Ionic where this form control will use the modern form markup.\n Developers can dismiss this warning by removing their usage of the "legacy" property and using the new select syntax.',this.el),this.hasLoggedDeprecationWarning=!0);const{disabled:e,el:t,inputId:o,isExpanded:s,expandedIcon:a,name:r,placeholder:n,value:c}=this,d=C(this),{labelText:m,labelId:g}=h(t,o);p(!0,t,r,S(c),e);let f=this.getText();""===f&&void 0!==n&&(f=n);const u=void 0!==m?""!==f?`${f}, ${m}`:m:f;return l(i,{onClick:this.onClick,role:"button","aria-haspopup":"listbox","aria-disabled":e?"true":null,"aria-label":u,class:{[d]:!0,"in-item":v("ion-item",t),"in-item-color":v("ion-item.ion-color",t),"select-disabled":e,"select-expanded":s,"has-expanded-icon":void 0!==a,"legacy-select":!0}},this.renderSelectText(),this.renderSelectIcon(),l("label",{id:g},u),this.renderListbox())}renderSelectText(){const{placeholder:e}=this;let t=!1,i=this.getText();return""===i&&void 0!==e&&(i=e,t=!0),l("div",{"aria-hidden":"true",class:{"select-text":!0,"select-placeholder":t},part:t?"placeholder":"text"},i)}renderSelectIcon(){const e=C(this),{isExpanded:t,toggleIcon:i,expandedIcon:o}=this;let s;return s=t&&void 0!==o?o:null!=i?i:"ios"===e?z:j,l("ion-icon",{class:"select-icon",part:"icon","aria-hidden":"true",icon:s})}get ariaLabel(){var e,t;const{placeholder:l,el:i,inputId:o,inheritedAttributes:s}=this,a=this.getText(),{labelText:r}=h(i,o),n=null!==(t=null!==(e=this.labelText)&&void 0!==e?e:s["aria-label"])&&void 0!==t?t:r;let c=a;return""===c&&void 0!==l&&(c=l),void 0!==n&&(c=""===c?n:`${n}, ${c}`),c}renderListbox(){const{disabled:e,inputId:t,isExpanded:i}=this;return l("button",{disabled:e,id:t,"aria-label":this.ariaLabel,"aria-haspopup":"listbox","aria-expanded":`${i}`,onFocus:this.onFocus,onBlur:this.onBlur,ref:e=>this.focusEl=e})}render(){const{legacyFormController:e}=this;return e.hasLegacyControl()?this.renderLegacySelect():this.renderSelect()}get el(){return o(this)}static get watchers(){return{disabled:["styleChanged"],isExpanded:["styleChanged"],placeholder:["styleChanged"],value:["styleChanged"]}}},$=(e,t,l)=>void 0!==e&&(Array.isArray(e)?e.some((e=>A(e,t,l))):A(e,t,l)),I=e=>{const t=e.value;return void 0===t?e.textContent||"":t},S=e=>{if(null!=e)return Array.isArray(e)?e.join(","):e.toString()},A=(e,t,l)=>"function"==typeof l?l(e,t):"string"==typeof l?e[l]===t[l]:Array.isArray(t)?t.includes(e):e===t,T=(e,t,l)=>void 0===t?"":Array.isArray(t)?t.map((t=>Y(e,t,l))).filter((e=>null!==e)).join(", "):Y(e,t,l)||"",Y=(e,t,l)=>{const i=e.find((e=>A(t,I(e),l)));return i?i.textContent:null};let P=0;const E="select-interface-option";O.style={ios:":host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:0.6;--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #3880ff);--highlight-color-valid:var(--ion-color-success, #2dd36f);--highlight-color-invalid:var(--ion-color-danger, #eb445a);--highlight-color:var(--highlight-color-focused);display:block;position:relative;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(:not(.legacy-select)){width:100%}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.legacy-select){-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;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.in-item.legacy-select){position:static;max-width:45%}:host(.select-disabled){pointer-events:none}:host(.ion-focused) button{border:2px solid #5e9ed6}:host([slot=start]:not(.legacy-select)),:host([slot=end]:not(.legacy-select)){width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}:host(.legacy-select) label{top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}@supports (inset-inline-start: 0){:host(.legacy-select) label{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host(.legacy-select) label{left:0}:host-context([dir=rtl]):host(.legacy-select) label,:host-context([dir=rtl]).legacy-select label{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(.legacy-select) label:dir(rtl){left:unset;right:unset;right:0}}}:host(.legacy-select) label::-moz-focus-inner{border:0}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-wrapper{-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);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.ion-focused.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-expanded.select-label-placement-floating) .label-text-wrapper,:host(.ion-focused.select-label-placement-floating) .label-text-wrapper,:host(.has-value.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}:host(.legacy-select){--padding-top:10px;--padding-end:8px;--padding-bottom:10px;--padding-start:16px}:host(:not(.legacy-select)){min-height:44px}:host(.select-label-placement-floating),:host(.select-label-placement-stacked){min-height:56px}.select-icon{width:18px;height:18px;color:var(--ion-color-step-650, #595959)}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{width:calc(100% - 18px - 4px)}:host(.select-disabled){opacity:0.3}",md:":host{--padding-top:0px;--padding-end:0px;--padding-bottom:0px;--padding-start:0px;--placeholder-color:currentColor;--placeholder-opacity:0.6;--background:transparent;--border-style:solid;--highlight-color-focused:var(--ion-color-primary, #3880ff);--highlight-color-valid:var(--ion-color-success, #2dd36f);--highlight-color-invalid:var(--ion-color-danger, #eb445a);--highlight-color:var(--highlight-color-focused);display:block;position:relative;font-family:var(--ion-font-family, inherit);white-space:nowrap;cursor:pointer;z-index:2}:host(:not(.legacy-select)){width:100%}:host(.ion-color){--highlight-color-focused:var(--ion-color-base)}:host(.legacy-select){-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;-ms-flex-align:center;align-items:center;overflow:hidden}:host(.in-item.legacy-select){position:static;max-width:45%}:host(.select-disabled){pointer-events:none}:host(.ion-focused) button{border:2px solid #5e9ed6}:host([slot=start]:not(.legacy-select)),:host([slot=end]:not(.legacy-select)){width:auto}.select-placeholder{color:var(--placeholder-color);opacity:var(--placeholder-opacity)}:host(.legacy-select) label{top:0;margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;position:absolute;width:100%;height:100%;border:0;background:transparent;cursor:pointer;-webkit-appearance:none;-moz-appearance:none;appearance:none;outline:none;display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;opacity:0}@supports (inset-inline-start: 0){:host(.legacy-select) label{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host(.legacy-select) label{left:0}:host-context([dir=rtl]):host(.legacy-select) label,:host-context([dir=rtl]).legacy-select label{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(.legacy-select) label:dir(rtl){left:unset;right:unset;right:0}}}:host(.legacy-select) label::-moz-focus-inner{border:0}button{position:absolute;top:0;left:0;right:0;bottom:0;width:100%;height:100%;margin:0;padding:0;border:0;outline:0;clip:rect(0 0 0 0);opacity:0;overflow:hidden;-webkit-appearance:none;-moz-appearance:none}.select-icon{-webkit-margin-start:4px;margin-inline-start:4px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0;position:relative}:host(.in-item-color) .select-icon{color:inherit}:host(.select-label-placement-stacked) .select-icon,:host(.select-label-placement-floating) .select-icon{position:absolute;height:100%}:host(.select-ltr.select-label-placement-stacked) .select-icon,:host(.select-ltr.select-label-placement-floating) .select-icon{right:var(--padding-end, 0)}:host(.select-rtl.select-label-placement-stacked) .select-icon,:host(.select-rtl.select-label-placement-floating) .select-icon{left:var(--padding-start, 0)}.select-text{-ms-flex:1;flex:1;min-width:16px;font-size:inherit;text-overflow:ellipsis;white-space:inherit;overflow:hidden}.select-wrapper{-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);border-radius:var(--border-radius);display:-ms-flexbox;display:flex;position:relative;-ms-flex-positive:1;flex-grow:1;-ms-flex-align:center;align-items:center;height:inherit;min-height:inherit;-webkit-transition:background-color 15ms linear;transition:background-color 15ms linear;background:var(--background);line-height:normal;cursor:inherit;-webkit-box-sizing:border-box;box-sizing:border-box}.select-wrapper .select-placeholder{-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1)}:host(.ion-touched.ion-invalid){--highlight-color:var(--highlight-color-invalid)}:host(.ion-valid){--highlight-color:var(--highlight-color-valid)}.label-text-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;max-width:200px;-webkit-transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:color 150ms cubic-bezier(0.4, 0, 0.2, 1), transform 150ms cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 150ms cubic-bezier(0.4, 0, 0.2, 1);pointer-events:none}.label-text,::slotted([slot=label]){text-overflow:ellipsis;white-space:nowrap;overflow:hidden}.label-text-wrapper-hidden,.select-outline-notch-hidden{display:none}.native-wrapper{display:-ms-flexbox;display:flex;-ms-flex-align:center;align-items:center;-webkit-transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);transition:opacity 150ms cubic-bezier(0.4, 0, 0.2, 1);overflow:hidden}:host(.select-justify-space-between) .select-wrapper{-ms-flex-pack:justify;justify-content:space-between}:host(.select-justify-start) .select-wrapper{-ms-flex-pack:start;justify-content:start}:host(.select-justify-end) .select-wrapper{-ms-flex-pack:end;justify-content:end}:host(.select-label-placement-start) .select-wrapper{-ms-flex-direction:row;flex-direction:row}:host(.select-label-placement-start) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-end) .select-wrapper{-ms-flex-direction:row-reverse;flex-direction:row-reverse}:host(.select-label-placement-end) .label-text-wrapper{-webkit-margin-start:16px;margin-inline-start:16px;-webkit-margin-end:0;margin-inline-end:0;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-webkit-margin-start:0;margin-inline-start:0;-webkit-margin-end:16px;margin-inline-end:16px;margin-top:0;margin-bottom:0}:host(.select-label-placement-fixed) .label-text-wrapper{-ms-flex:0 0 100px;flex:0 0 100px;width:100px;min-width:100px;max-width:200px}:host(.select-label-placement-stacked) .select-wrapper,:host(.select-label-placement-floating) .select-wrapper{-ms-flex-direction:column;flex-direction:column;-ms-flex-align:start;align-items:start}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-label-placement-floating) .label-text-wrapper{max-width:100%}:host(.select-ltr.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{margin-left:0;margin-right:0;margin-top:1px;margin-bottom:0;-ms-flex-positive:1;flex-grow:1;width:100%}:host(.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(100%) scale(1);transform:translateY(100%) scale(1)}:host(.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:0}:host(.select-expanded.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.ion-focused.select-label-placement-floating) .native-wrapper .select-placeholder,:host(.has-value.select-label-placement-floating) .native-wrapper .select-placeholder{opacity:1}:host(.select-label-placement-stacked) .label-text-wrapper,:host(.select-expanded.select-label-placement-floating) .label-text-wrapper,:host(.ion-focused.select-label-placement-floating) .label-text-wrapper,:host(.has-value.select-label-placement-floating) .label-text-wrapper{-webkit-transform:translateY(50%) scale(0.75);transform:translateY(50%) scale(0.75);max-width:calc(100% / 0.75)}:host(.select-fill-solid){--background:var(--ion-color-step-50, #f2f2f2);--border-color:var(--ion-color-step-500, gray);--border-radius:4px;--padding-start:16px;--padding-end:16px}:host(.select-fill-solid) .select-wrapper{border-bottom:var(--border-width) var(--border-style) var(--border-color)}:host(.has-focus.select-fill-solid.ion-valid),:host(.select-fill-solid.ion-touched.ion-invalid){--border-color:var(--highlight-color)}:host(.select-fill-solid) .select-bottom{border-top:none}@media (any-hover: hover){:host(.select-fill-solid:hover){--background:var(--ion-color-step-100, #e6e6e6);--border-color:var(--ion-color-step-750, #404040)}}:host(.select-fill-solid.select-expanded),:host(.select-fill-solid.ion-focused){--background:var(--ion-color-step-150, #d9d9d9);--border-color:var(--ion-color-step-750, #404040)}:host(.select-fill-solid) .select-wrapper{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-right-radius:0px;border-bottom-left-radius:0px}:host-context([dir=rtl]):host(.select-fill-solid) .select-wrapper,:host-context([dir=rtl]).select-fill-solid .select-wrapper{border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-right-radius:0px;border-bottom-left-radius:0px}@supports selector(:dir(rtl)){:host(.select-fill-solid) .select-wrapper:dir(rtl){border-top-left-radius:var(--border-radius);border-top-right-radius:var(--border-radius);border-bottom-right-radius:0px;border-bottom-left-radius:0px}}:host(.select-fill-solid.select-label-placement-stacked) .label-text-wrapper,:host(.select-expanded.select-fill-solid.select-label-placement-floating) .label-text-wrapper,:host(.ion-focused.select-fill-solid.select-label-placement-floating) .label-text-wrapper,:host(.has-value.select-fill-solid.select-label-placement-floating) .label-text-wrapper{max-width:calc(100% / 0.75)}:host(.select-fill-outline){--border-color:var(--ion-color-step-300, #b3b3b3);--border-radius:4px;--padding-start:16px;--padding-end:16px}:host(.select-fill-outline.select-shape-round){--border-radius:28px;--padding-start:32px;--padding-end:32px}:host(.has-focus.select-fill-outline.ion-valid),:host(.select-fill-outline.ion-touched.ion-invalid){--border-color:var(--highlight-color)}@media (any-hover: hover){:host(.select-fill-outline:hover){--border-color:var(--ion-color-step-750, #404040)}}:host(.select-fill-outline.select-expanded),:host(.select-fill-outline.ion-focused){--border-width:2px;--border-color:var(--highlight-color)}:host(.select-fill-outline) .select-bottom{border-top:none}:host(.select-fill-outline) .select-wrapper{border-bottom:none}:host(.select-ltr.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-ltr.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:left top;transform-origin:left top}:host(.select-rtl.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-rtl.select-fill-outline.select-label-placement-floating) .label-text-wrapper{-webkit-transform-origin:right top;transform-origin:right top}:host(.select-fill-outline.select-label-placement-stacked) .label-text-wrapper,:host(.select-fill-outline.select-label-placement-floating) .label-text-wrapper{position:absolute;max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .label-text-wrapper{position:relative;z-index:1}:host(.select-expanded.select-fill-outline.select-label-placement-floating) .label-text-wrapper,:host(.ion-focused.select-fill-outline.select-label-placement-floating) .label-text-wrapper,:host(.has-value.select-fill-outline.select-label-placement-floating) .label-text-wrapper,:host(.select-fill-outline.select-label-placement-stacked) .label-text-wrapper{-webkit-transform:translateY(-32%) scale(0.75);transform:translateY(-32%) scale(0.75);margin-left:0;margin-right:0;margin-top:0;margin-bottom:0;max-width:calc((100% - var(--padding-start) - var(--padding-end) - 8px) / 0.75)}:host(.select-fill-outline.select-label-placement-stacked) select,:host(.select-fill-outline.select-label-placement-floating) select{margin-left:0;margin-right:0;margin-top:6px;margin-bottom:6px}:host(.select-fill-outline) .select-outline-container{left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;width:100%;height:100%}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-end{pointer-events:none}:host(.select-fill-outline) .select-outline-start,:host(.select-fill-outline) .select-outline-notch,:host(.select-fill-outline) .select-outline-end{border-top:var(--border-width) var(--border-style) var(--border-color);border-bottom:var(--border-width) var(--border-style) var(--border-color);-webkit-box-sizing:border-box;box-sizing:border-box}:host(.select-fill-outline) .select-outline-notch{max-width:calc(100% - var(--padding-start) - var(--padding-end))}:host(.select-fill-outline) .notch-spacer{-webkit-padding-end:8px;padding-inline-end:8px;font-size:calc(1em * 0.75);opacity:0;pointer-events:none}:host(.select-fill-outline) .select-outline-start{-webkit-border-start:var(--border-width) var(--border-style) var(--border-color);border-inline-start:var(--border-width) var(--border-style) var(--border-color)}:host(.select-ltr.select-fill-outline) .select-outline-start{border-radius:var(--border-radius) 0px 0px var(--border-radius)}:host(.select-rtl.select-fill-outline) .select-outline-start{border-radius:0px var(--border-radius) var(--border-radius) 0px}:host(.select-fill-outline) .select-outline-start{width:calc(var(--padding-start) - 4px)}:host(.select-fill-outline) .select-outline-end{-webkit-border-end:var(--border-width) var(--border-style) var(--border-color);border-inline-end:var(--border-width) var(--border-style) var(--border-color)}:host(.select-ltr.select-fill-outline) .select-outline-end{border-radius:0px var(--border-radius) var(--border-radius) 0px}:host(.select-rtl.select-fill-outline) .select-outline-end{border-radius:var(--border-radius) 0px 0px var(--border-radius)}:host(.select-fill-outline) .select-outline-end{-ms-flex-positive:1;flex-grow:1}:host(.select-expanded.select-fill-outline.select-label-placement-floating) .select-outline-notch,:host(.ion-focused.select-fill-outline.select-label-placement-floating) .select-outline-notch,:host(.has-value.select-fill-outline.select-label-placement-floating) .select-outline-notch,:host(.select-fill-outline.select-label-placement-stacked) .select-outline-notch{border-top:none}:host{--border-width:1px;--border-color:var(--ion-item-border-color, var(--ion-border-color, var(--ion-color-step-150, rgba(0, 0, 0, 0.13))))}:host(.legacy-select){--padding-top:10px;--padding-end:0;--padding-bottom:10px;--padding-start:16px}:host(:not(.legacy-select)){min-height:56px}.select-icon{width:13px;-webkit-transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:-webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);transition:transform 0.15s cubic-bezier(0.4, 0, 0.2, 1), -webkit-transform 0.15s cubic-bezier(0.4, 0, 0.2, 1);color:var(--ion-color-step-500, gray)}:host(.select-label-placement-floating.select-expanded) .label-text-wrapper,:host(.select-label-placement-floating.ion-focused) .label-text-wrapper,:host(.select-label-placement-stacked.select-expanded) .label-text-wrapper,:host(.select-label-placement-stacked.ion-focused) .label-text-wrapper{color:var(--highlight-color)}:host(.has-focus.select-label-placement-floating.ion-valid) .label-text-wrapper,:host(.select-label-placement-floating.ion-touched.ion-invalid) .label-text-wrapper,:host(.has-focus.select-label-placement-stacked.ion-valid) .label-text-wrapper,:host(.select-label-placement-stacked.ion-touched.ion-invalid) .label-text-wrapper{color:var(--highlight-color)}.select-highlight{bottom:-1px;position:absolute;width:100%;height:2px;-webkit-transform:scale(0);transform:scale(0);-webkit-transition:-webkit-transform 200ms;transition:-webkit-transform 200ms;transition:transform 200ms;transition:transform 200ms, -webkit-transform 200ms;background:var(--highlight-color)}@supports (inset-inline-start: 0){.select-highlight{inset-inline-start:0}}@supports not (inset-inline-start: 0){.select-highlight{left:0}:host-context([dir=rtl]) .select-highlight{left:unset;right:unset;right:0}[dir=rtl] .select-highlight{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){.select-highlight:dir(rtl){left:unset;right:unset;right:0}}}:host(.select-expanded) .select-highlight,:host(.ion-focused) .select-highlight{-webkit-transform:scale(1);transform:scale(1)}:host(.in-item) .select-highlight{bottom:0}@supports (inset-inline-start: 0){:host(.in-item) .select-highlight{inset-inline-start:0}}@supports not (inset-inline-start: 0){:host(.in-item) .select-highlight{left:0}:host-context([dir=rtl]):host(.in-item) .select-highlight,:host-context([dir=rtl]).in-item .select-highlight{left:unset;right:unset;right:0}@supports selector(:dir(rtl)){:host(.in-item) .select-highlight:dir(rtl){left:unset;right:unset;right:0}}}:host(.select-expanded:not(.legacy-select):not(.has-expanded-icon)) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host(.select-expanded) .select-wrapper .select-icon,:host(.has-focus.ion-valid) .select-wrapper .select-icon,:host(.ion-touched.ion-invalid) .select-wrapper .select-icon,:host(.ion-focused) .select-wrapper .select-icon{color:var(--highlight-color)}:host-context(.item-label-stacked) .select-icon,:host-context(.item-label-floating:not(.item-fill-outline)) .select-icon,:host-context(.item-label-floating.item-fill-outline){-webkit-transform:translate3d(0, -9px, 0);transform:translate3d(0, -9px, 0)}:host-context(.item-has-focus):host(:not(.has-expanded-icon)) .select-icon{-webkit-transform:rotate(180deg);transform:rotate(180deg)}:host-context(.item-has-focus.item-label-stacked):host(:not(.has-expanded-icon)) .select-icon,:host-context(.item-has-focus.item-label-floating:not(.item-fill-outline)):host(:not(.has-expanded-icon)) .select-icon{-webkit-transform:translate3d(0, -9px, 0) rotate(180deg);transform:translate3d(0, -9px, 0) rotate(180deg)}:host(.select-shape-round){--border-radius:16px}:host(.select-label-placement-stacked) .native-wrapper,:host(.select-label-placement-floating) .native-wrapper{width:calc(100% - 13px - 4px)}:host(.select-disabled){opacity:0.38}"};const L=class{constructor(t){e(this,t),this.inputId="ion-selopt-"+F++,this.disabled=!1,this.value=void 0}render(){return l(i,{role:"option",id:this.inputId,class:C(this)})}get el(){return o(this)}};let F=0;L.style=":host{display:none}";const _=class{constructor(t){e(this,t),this.header=void 0,this.subHeader=void 0,this.message=void 0,this.multiple=void 0,this.options=[]}findOptionFromEvent(e){const{options:t}=this;return t.find((t=>t.value===e.target.value))}callOptionHandler(e){const t=this.findOptionFromEvent(e),l=this.getValues(e);(null==t?void 0:t.handler)&&u(t.handler,l)}dismissParentPopover(){const e=this.el.closest("ion-popover");e&&e.dismiss()}setChecked(e){const{multiple:t}=this,l=this.findOptionFromEvent(e);t&&l&&(l.checked=e.detail.checked)}getValues(e){const{multiple:t,options:l}=this;if(t)return l.filter((e=>e.checked)).map((e=>e.value));const i=this.findOptionFromEvent(e);return i?i.value:void 0}renderOptions(e){const{multiple:t}=this;return!0===t?this.renderCheckboxOptions(e):this.renderRadioOptions(e)}renderCheckboxOptions(e){return e.map((e=>l("ion-item",{class:Object.assign({"item-checkbox-checked":e.checked},y(e.cssClass))},l("ion-checkbox",{value:e.value,disabled:e.disabled,checked:e.checked,justify:"start",labelPlacement:"end",onIonChange:e=>{this.setChecked(e),this.callOptionHandler(e),s(this)}},e.text))))}renderRadioOptions(e){const t=e.filter((e=>e.checked)).map((e=>e.value))[0];return l("ion-radio-group",{value:t,onIonChange:e=>this.callOptionHandler(e)},e.map((e=>l("ion-item",{class:Object.assign({"item-radio-checked":e.value===t},y(e.cssClass))},l("ion-radio",{value:e.value,disabled:e.disabled,onClick:()=>this.dismissParentPopover(),onKeyUp:e=>{" "===e.key&&this.dismissParentPopover()}},e.text)))))}render(){const{header:e,message:t,options:o,subHeader:s}=this,a=void 0!==s||void 0!==t;return l(i,{class:C(this)},l("ion-list",null,void 0!==e&&l("ion-list-header",null,e),a&&l("ion-item",null,l("ion-label",{class:"ion-text-wrap"},void 0!==s&&l("h3",null,s),void 0!==t&&l("p",null,t))),this.renderOptions(o)))}get el(){return o(this)}};_.style={ios:".sc-ion-select-popover-ios-h ion-list.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-ios,ion-label.sc-ion-select-popover-ios{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}",md:".sc-ion-select-popover-md-h ion-list.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list-header.sc-ion-select-popover-md,ion-label.sc-ion-select-popover-md{margin-left:0;margin-right:0;margin-top:0;margin-bottom:0}ion-list.sc-ion-select-popover-md ion-radio.sc-ion-select-popover-md::part(container){opacity:0}ion-item.sc-ion-select-popover-md{--inner-border-width:0}.item-radio-checked.sc-ion-select-popover-md{--background:rgba(var(--ion-color-primary-rgb, 56, 128, 255), 0.08);--background-focused:var(--ion-color-primary, #3880ff);--background-focused-opacity:0.2;--background-hover:var(--ion-color-primary, #3880ff);--background-hover-opacity:0.12}.item-checkbox-checked.sc-ion-select-popover-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, #3880ff)}"};export{O as ion_select,L as ion_select_option,_ as ion_select_popover}