@ionic/core 8.5.8-dev.11748364689.107665ad → 8.5.8-dev.11748388365.11ad9dfe
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/button.js +23 -5
- package/components/ion-datetime.js +27 -51
- package/components/ion-input-password-toggle.js +2 -2
- package/components/ion-searchbar.js +4 -4
- package/components/modal.js +157 -58
- package/components/picker-column2.js +3 -3
- package/dist/cjs/ion-button_2.cjs.entry.js +19 -3
- package/dist/cjs/ion-datetime_3.cjs.entry.js +30 -54
- package/dist/cjs/ion-input-password-toggle.cjs.entry.js +2 -2
- package/dist/cjs/ion-modal.cjs.entry.js +157 -58
- package/dist/cjs/ion-searchbar.cjs.entry.js +4 -4
- package/dist/cjs/ionic.cjs.js +1 -1
- package/dist/cjs/loader.cjs.js +1 -1
- package/dist/collection/components/button/button.js +23 -3
- package/dist/collection/components/datetime/datetime.js +27 -51
- package/dist/collection/components/input-password-toggle/input-password-toggle.js +2 -2
- package/dist/collection/components/modal/animations/ios.enter.js +41 -1
- package/dist/collection/components/modal/animations/ios.leave.js +24 -2
- package/dist/collection/components/modal/animations/md.enter.js +41 -1
- package/dist/collection/components/modal/animations/md.leave.js +24 -2
- package/dist/collection/components/modal/gestures/sheet.js +27 -52
- package/dist/collection/components/picker-legacy-column/picker-column.js +3 -3
- package/dist/collection/components/searchbar/searchbar.js +5 -5
- package/dist/docs.json +2 -2
- package/dist/esm/ion-button_2.entry.js +20 -4
- package/dist/esm/ion-datetime_3.entry.js +30 -54
- package/dist/esm/ion-input-password-toggle.entry.js +2 -2
- package/dist/esm/ion-modal.entry.js +157 -58
- package/dist/esm/ion-searchbar.entry.js +4 -4
- package/dist/esm/ionic.js +1 -1
- package/dist/esm/loader.js +1 -1
- package/dist/esm-es5/ion-button_2.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-input-password-toggle.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-searchbar.entry.js +1 -1
- package/dist/esm-es5/ionic.js +1 -1
- package/dist/esm-es5/loader.js +1 -1
- package/dist/html.html-data.json +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-12914457.entry.js +4 -0
- package/dist/ionic/{p-50cb2e8b.system.entry.js → p-3cee5d7c.system.entry.js} +2 -2
- package/dist/ionic/p-3d2b2787.system.entry.js +4 -0
- package/dist/ionic/{p-7611ede3.system.entry.js → p-3ec227cd.system.entry.js} +1 -1
- package/dist/ionic/p-4090ce24.entry.js +4 -0
- package/dist/ionic/p-8b8b4530.system.entry.js +4 -0
- package/dist/ionic/p-94a18d00.entry.js +4 -0
- package/dist/ionic/p-cec902a0.system.entry.js +4 -0
- package/dist/ionic/{p-891553d8.entry.js → p-e7f732ef.entry.js} +1 -1
- package/dist/ionic/p-f725bf9e.system.js +2 -2
- package/dist/ionic/{p-a835aca8.entry.js → p-ffa2125f.entry.js} +1 -1
- package/dist/types/components/button/button.d.ts +11 -0
- package/dist/types/components/searchbar/searchbar.d.ts +1 -1
- package/dist/types/components.d.ts +2 -2
- package/hydrate/index.js +211 -121
- package/hydrate/index.mjs +211 -121
- package/package.json +2 -2
- package/dist/ionic/p-451706f5.entry.js +0 -4
- package/dist/ionic/p-57957c0f.entry.js +0 -4
- package/dist/ionic/p-6b8530f5.system.entry.js +0 -4
- package/dist/ionic/p-b5432d15.entry.js +0 -4
- package/dist/ionic/p-c1b7d311.system.entry.js +0 -4
- package/dist/ionic/p-c8731f25.system.entry.js +0 -4
package/hydrate/index.mjs
CHANGED
|
@@ -7986,6 +7986,19 @@ class Button {
|
|
|
7986
7986
|
this.formButtonEl.disabled = disabled;
|
|
7987
7987
|
}
|
|
7988
7988
|
}
|
|
7989
|
+
/**
|
|
7990
|
+
* This component is used within the `ion-input-password-toggle` component
|
|
7991
|
+
* to toggle the visibility of the password input.
|
|
7992
|
+
* These attributes need to update based on the state of the password input.
|
|
7993
|
+
* Otherwise, the values will be stale.
|
|
7994
|
+
*
|
|
7995
|
+
* @param newValue
|
|
7996
|
+
* @param _oldValue
|
|
7997
|
+
* @param propName
|
|
7998
|
+
*/
|
|
7999
|
+
onAriaChanged(newValue, _oldValue, propName) {
|
|
8000
|
+
this.inheritedAttributes = Object.assign(Object.assign({}, this.inheritedAttributes), { [propName]: newValue });
|
|
8001
|
+
}
|
|
7989
8002
|
/**
|
|
7990
8003
|
* This is responsible for rendering a hidden native
|
|
7991
8004
|
* button element inside the associated form. This allows
|
|
@@ -8123,7 +8136,7 @@ class Button {
|
|
|
8123
8136
|
{
|
|
8124
8137
|
type !== 'button' && this.renderHiddenButton();
|
|
8125
8138
|
}
|
|
8126
|
-
return (hAsync(Host, { key: '
|
|
8139
|
+
return (hAsync(Host, { key: 'b105ad09215adb3ca2298acdadf0dc9154bbb9b0', onClick: this.handleClick, "aria-disabled": disabled ? 'true' : null, class: createColorClasses$1(color, {
|
|
8127
8140
|
[mode]: true,
|
|
8128
8141
|
[buttonType]: true,
|
|
8129
8142
|
[`${buttonType}-${expand}`]: expand !== undefined,
|
|
@@ -8138,11 +8151,13 @@ class Button {
|
|
|
8138
8151
|
'button-disabled': disabled,
|
|
8139
8152
|
'ion-activatable': true,
|
|
8140
8153
|
'ion-focusable': true,
|
|
8141
|
-
}) }, hAsync(TagType, Object.assign({ key: '
|
|
8154
|
+
}) }, hAsync(TagType, Object.assign({ key: '66b4e7112bcb9e41d5a723fbbadb0a3104f9ee1d' }, attrs, { class: "button-native", part: "native", disabled: disabled, onFocus: this.onFocus, onBlur: this.onBlur }, inheritedAttributes), hAsync("span", { key: '1439fc3da280221028dcf7ce8ec9dab273c4d4bb', class: "button-inner" }, hAsync("slot", { key: 'd5269ae1afc87ec7b99746032f59cbae93720a9f', name: "icon-only", onSlotchange: this.slotChanged }), hAsync("slot", { key: '461c83e97aa246aa86d83e14f1e15a288d35041e', name: "start" }), hAsync("slot", { key: '807170d47101f9f6a333dd4ff489c89284f306fe' }), hAsync("slot", { key: 'e67f116dd0349a0d27893e4f3ff0ccef1d402f80', name: "end" })), mode === 'md' && hAsync("ion-ripple-effect", { key: '273f0bd9645a36c1bfd18a5c2ab4f81e22b7b989', type: this.rippleType }))));
|
|
8142
8155
|
}
|
|
8143
8156
|
get el() { return getElement(this); }
|
|
8144
8157
|
static get watchers() { return {
|
|
8145
|
-
"disabled": ["disabledChanged"]
|
|
8158
|
+
"disabled": ["disabledChanged"],
|
|
8159
|
+
"aria-checked": ["onAriaChanged"],
|
|
8160
|
+
"aria-label": ["onAriaChanged"]
|
|
8146
8161
|
}; }
|
|
8147
8162
|
static get style() { return {
|
|
8148
8163
|
ios: IonButtonIosStyle0,
|
|
@@ -11633,19 +11648,18 @@ class Datetime {
|
|
|
11633
11648
|
warnIfValueOutOfBounds(valueToProcess, minParts, maxParts);
|
|
11634
11649
|
}
|
|
11635
11650
|
/**
|
|
11636
|
-
* If there are multiple values,
|
|
11637
|
-
*
|
|
11638
|
-
*
|
|
11651
|
+
* If there are multiple values, clamp to the last one.
|
|
11652
|
+
* This is because the last value is the one that the user
|
|
11653
|
+
* has most recently interacted with.
|
|
11639
11654
|
*/
|
|
11640
|
-
const singleValue = Array.isArray(valueToProcess) ? valueToProcess[
|
|
11655
|
+
const singleValue = Array.isArray(valueToProcess) ? valueToProcess[valueToProcess.length - 1] : valueToProcess;
|
|
11641
11656
|
const targetValue = clampDate(singleValue, minParts, maxParts);
|
|
11642
11657
|
const { month, day, year, hour, minute } = targetValue;
|
|
11643
11658
|
const ampm = parseAmPm(hour);
|
|
11644
11659
|
/**
|
|
11645
|
-
* Since `activeParts` indicates a value that
|
|
11646
|
-
*
|
|
11647
|
-
*
|
|
11648
|
-
* if the `value` property is set.
|
|
11660
|
+
* Since `activeParts` indicates a value that been explicitly selected
|
|
11661
|
+
* either by the user or the app, only update `activeParts` if the
|
|
11662
|
+
* `value` property is set.
|
|
11649
11663
|
*/
|
|
11650
11664
|
if (hasValue) {
|
|
11651
11665
|
if (Array.isArray(valueToProcess)) {
|
|
@@ -11670,51 +11684,28 @@ class Datetime {
|
|
|
11670
11684
|
*/
|
|
11671
11685
|
this.activeParts = [];
|
|
11672
11686
|
}
|
|
11673
|
-
/**
|
|
11674
|
-
* Only animate if:
|
|
11675
|
-
* 1. We're using grid style (wheel style pickers should just jump to new value)
|
|
11676
|
-
* 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
|
|
11677
|
-
* 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
|
|
11678
|
-
* 4. The month/year picker is not open (since you wouldn't see the animation anyway)
|
|
11679
|
-
*/
|
|
11680
11687
|
const didChangeMonth = (month !== undefined && month !== workingParts.month) || (year !== undefined && year !== workingParts.year);
|
|
11681
11688
|
const bodyIsVisible = el.classList.contains('datetime-ready');
|
|
11682
11689
|
const { isGridStyle, showMonthAndYear } = this;
|
|
11683
|
-
|
|
11684
|
-
|
|
11685
|
-
|
|
11686
|
-
|
|
11687
|
-
|
|
11688
|
-
|
|
11689
|
-
|
|
11690
|
-
|
|
11691
|
-
|
|
11690
|
+
if (isGridStyle && didChangeMonth && bodyIsVisible && !showMonthAndYear) {
|
|
11691
|
+
/**
|
|
11692
|
+
* Only animate if:
|
|
11693
|
+
* 1. We're using grid style (wheel style pickers should just jump to new value)
|
|
11694
|
+
* 2. The month and/or year actually changed, and both are defined (otherwise there's nothing to animate to)
|
|
11695
|
+
* 3. The calendar body is visible (prevents animation when in collapsed datetime-button, for example)
|
|
11696
|
+
* 4. The month/year picker is not open (since you wouldn't see the animation anyway)
|
|
11697
|
+
*/
|
|
11698
|
+
this.animateToDate(targetValue);
|
|
11692
11699
|
}
|
|
11693
|
-
|
|
11694
|
-
|
|
11695
|
-
|
|
11696
|
-
|
|
11697
|
-
|
|
11698
|
-
|
|
11699
|
-
|
|
11700
|
-
|
|
11701
|
-
|
|
11702
|
-
this.animateToDate(targetValue);
|
|
11703
|
-
}
|
|
11704
|
-
else {
|
|
11705
|
-
/**
|
|
11706
|
-
* We only need to do this if we didn't just animate to a new month,
|
|
11707
|
-
* since that calls prevMonth/nextMonth which calls setWorkingParts for us.
|
|
11708
|
-
*/
|
|
11709
|
-
this.setWorkingParts({
|
|
11710
|
-
month,
|
|
11711
|
-
day,
|
|
11712
|
-
year,
|
|
11713
|
-
hour,
|
|
11714
|
-
minute,
|
|
11715
|
-
ampm,
|
|
11716
|
-
});
|
|
11717
|
-
}
|
|
11700
|
+
else {
|
|
11701
|
+
this.setWorkingParts({
|
|
11702
|
+
month,
|
|
11703
|
+
day,
|
|
11704
|
+
year,
|
|
11705
|
+
hour,
|
|
11706
|
+
minute,
|
|
11707
|
+
ampm,
|
|
11708
|
+
});
|
|
11718
11709
|
}
|
|
11719
11710
|
};
|
|
11720
11711
|
this.animateToDate = async (targetValue) => {
|
|
@@ -12709,7 +12700,7 @@ class Datetime {
|
|
|
12709
12700
|
const hasDatePresentation = presentation === 'date' || presentation === 'date-time' || presentation === 'time-date';
|
|
12710
12701
|
const hasWheelVariant = hasDatePresentation && preferWheel;
|
|
12711
12702
|
renderHiddenInput(true, el, name, formatValue(value), disabled);
|
|
12712
|
-
return (hAsync(Host, { key: '
|
|
12703
|
+
return (hAsync(Host, { key: '20e64fb4cfe3fbd74b24038c89e00651d78b500c', "aria-disabled": disabled ? 'true' : null, onFocus: this.onFocus, onBlur: this.onBlur, class: Object.assign({}, createColorClasses$1(color, {
|
|
12713
12704
|
[mode]: true,
|
|
12714
12705
|
['datetime-readonly']: readonly,
|
|
12715
12706
|
['datetime-disabled']: disabled,
|
|
@@ -12719,7 +12710,7 @@ class Datetime {
|
|
|
12719
12710
|
[`datetime-size-${size}`]: true,
|
|
12720
12711
|
[`datetime-prefer-wheel`]: hasWheelVariant,
|
|
12721
12712
|
[`datetime-grid`]: isGridStyle,
|
|
12722
|
-
})) }, hAsync("div", { key: '
|
|
12713
|
+
})) }, hAsync("div", { key: '488fe7bf6b9052e208d65206a580d5d65b945a62', class: "intersection-tracker", ref: (el) => (this.intersectionTrackerRef = el) }), this.renderDatetime(mode)));
|
|
12723
12714
|
}
|
|
12724
12715
|
get el() { return getElement(this); }
|
|
12725
12716
|
static get watchers() { return {
|
|
@@ -15693,14 +15684,14 @@ class InputPasswordToggle {
|
|
|
15693
15684
|
const isPasswordVisible = type === 'text';
|
|
15694
15685
|
return (hAsync(Host, { key: '1a28e078c83e74c72d8bb8189ece93ec2e3fa3d0', class: createColorClasses$1(color, {
|
|
15695
15686
|
[mode]: true,
|
|
15696
|
-
}) }, hAsync("ion-button", { key: '
|
|
15687
|
+
}) }, hAsync("ion-button", { key: '61591d11d97f3065240e51d8887f831339fd36cf', mode: mode, color: color, fill: "clear", shape: "round", "aria-checked": isPasswordVisible ? 'true' : 'false', "aria-label": isPasswordVisible ? 'Hide password' : 'Show password', role: "switch", type: "button", onPointerDown: (ev) => {
|
|
15697
15688
|
/**
|
|
15698
15689
|
* This prevents mobile browsers from
|
|
15699
15690
|
* blurring the input when the password toggle
|
|
15700
15691
|
* button is activated.
|
|
15701
15692
|
*/
|
|
15702
15693
|
ev.preventDefault();
|
|
15703
|
-
}, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '
|
|
15694
|
+
}, onClick: this.togglePasswordVisibility }, hAsync("ion-icon", { key: '9d98e6675d5e2adea5c0f56ab67e98b6f57521dd', slot: "icon-only", "aria-hidden": "true", icon: isPasswordVisible ? hidePasswordIcon : showPasswordIcon }))));
|
|
15704
15695
|
}
|
|
15705
15696
|
get el() { return getElement(this); }
|
|
15706
15697
|
static get watchers() { return {
|
|
@@ -19210,7 +19201,47 @@ const iosEnterAnimation$3 = (baseEl, opts) => {
|
|
|
19210
19201
|
.addElement(baseEl)
|
|
19211
19202
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
19212
19203
|
.duration(500)
|
|
19213
|
-
.addAnimation([wrapperAnimation])
|
|
19204
|
+
.addAnimation([wrapperAnimation])
|
|
19205
|
+
.beforeAddWrite(() => {
|
|
19206
|
+
if (expandToScroll) {
|
|
19207
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19208
|
+
return;
|
|
19209
|
+
}
|
|
19210
|
+
/**
|
|
19211
|
+
* There are some browsers that causes flickering when
|
|
19212
|
+
* dragging the content when scroll is enabled at every
|
|
19213
|
+
* breakpoint. This is due to the wrapper element being
|
|
19214
|
+
* transformed off the screen and having a snap animation.
|
|
19215
|
+
*
|
|
19216
|
+
* A workaround is to clone the footer element and append
|
|
19217
|
+
* it outside of the wrapper element. This way, the footer
|
|
19218
|
+
* is still visible and the drag can be done without
|
|
19219
|
+
* flickering. The original footer is hidden until the modal
|
|
19220
|
+
* is dismissed. This maintains the animation of the footer
|
|
19221
|
+
* when the modal is dismissed.
|
|
19222
|
+
*
|
|
19223
|
+
* The workaround needs to be done before the animation starts
|
|
19224
|
+
* so there are no flickering issues.
|
|
19225
|
+
*/
|
|
19226
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19227
|
+
/**
|
|
19228
|
+
* This check is needed to prevent more than one footer
|
|
19229
|
+
* from being appended to the shadow root.
|
|
19230
|
+
* Otherwise, iOS and MD enter animations would append
|
|
19231
|
+
* the footer twice.
|
|
19232
|
+
*/
|
|
19233
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19234
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
19235
|
+
const footerHeight = ionFooter.clientHeight;
|
|
19236
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
19237
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
19238
|
+
ionFooter.style.setProperty('display', 'none');
|
|
19239
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
19240
|
+
// Padding is added to prevent some content from being hidden.
|
|
19241
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19242
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
19243
|
+
}
|
|
19244
|
+
});
|
|
19214
19245
|
if (contentAnimation) {
|
|
19215
19246
|
baseAnimation.addAnimation(contentAnimation);
|
|
19216
19247
|
}
|
|
@@ -19291,7 +19322,7 @@ const createLeaveAnimation$1 = () => {
|
|
|
19291
19322
|
* iOS Modal Leave Animation
|
|
19292
19323
|
*/
|
|
19293
19324
|
const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
|
|
19294
|
-
const { presentingEl, currentBreakpoint } = opts;
|
|
19325
|
+
const { presentingEl, currentBreakpoint, expandToScroll } = opts;
|
|
19295
19326
|
const root = getElementRoot(baseEl);
|
|
19296
19327
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation$1();
|
|
19297
19328
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -19300,7 +19331,29 @@ const iosLeaveAnimation$3 = (baseEl, opts, duration = 500) => {
|
|
|
19300
19331
|
.addElement(baseEl)
|
|
19301
19332
|
.easing('cubic-bezier(0.32,0.72,0,1)')
|
|
19302
19333
|
.duration(duration)
|
|
19303
|
-
.addAnimation(wrapperAnimation)
|
|
19334
|
+
.addAnimation(wrapperAnimation)
|
|
19335
|
+
.beforeAddWrite(() => {
|
|
19336
|
+
if (expandToScroll) {
|
|
19337
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19338
|
+
return;
|
|
19339
|
+
}
|
|
19340
|
+
/**
|
|
19341
|
+
* If expandToScroll is disabled, we need to swap
|
|
19342
|
+
* the visibility to the original, so the footer
|
|
19343
|
+
* dismisses with the modal and doesn't stay
|
|
19344
|
+
* until the modal is removed from the DOM.
|
|
19345
|
+
*/
|
|
19346
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19347
|
+
if (ionFooter) {
|
|
19348
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19349
|
+
ionFooter.style.removeProperty('display');
|
|
19350
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
19351
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
19352
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
19353
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19354
|
+
page.style.removeProperty('padding-bottom');
|
|
19355
|
+
}
|
|
19356
|
+
});
|
|
19304
19357
|
if (presentingEl) {
|
|
19305
19358
|
const isMobile = window.innerWidth < 768;
|
|
19306
19359
|
const hasCardModal = presentingEl.tagName === 'ION-MODAL' && presentingEl.presentingElement !== undefined;
|
|
@@ -19396,7 +19449,47 @@ const mdEnterAnimation$2 = (baseEl, opts) => {
|
|
|
19396
19449
|
.addElement(baseEl)
|
|
19397
19450
|
.easing('cubic-bezier(0.36,0.66,0.04,1)')
|
|
19398
19451
|
.duration(280)
|
|
19399
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19452
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19453
|
+
.beforeAddWrite(() => {
|
|
19454
|
+
if (expandToScroll) {
|
|
19455
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19456
|
+
return;
|
|
19457
|
+
}
|
|
19458
|
+
/**
|
|
19459
|
+
* There are some browsers that causes flickering when
|
|
19460
|
+
* dragging the content when scroll is enabled at every
|
|
19461
|
+
* breakpoint. This is due to the wrapper element being
|
|
19462
|
+
* transformed off the screen and having a snap animation.
|
|
19463
|
+
*
|
|
19464
|
+
* A workaround is to clone the footer element and append
|
|
19465
|
+
* it outside of the wrapper element. This way, the footer
|
|
19466
|
+
* is still visible and the drag can be done without
|
|
19467
|
+
* flickering. The original footer is hidden until the modal
|
|
19468
|
+
* is dismissed. This maintains the animation of the footer
|
|
19469
|
+
* when the modal is dismissed.
|
|
19470
|
+
*
|
|
19471
|
+
* The workaround needs to be done before the animation starts
|
|
19472
|
+
* so there are no flickering issues.
|
|
19473
|
+
*/
|
|
19474
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19475
|
+
/**
|
|
19476
|
+
* This check is needed to prevent more than one footer
|
|
19477
|
+
* from being appended to the shadow root.
|
|
19478
|
+
* Otherwise, iOS and MD enter animations would append
|
|
19479
|
+
* the footer twice.
|
|
19480
|
+
*/
|
|
19481
|
+
const ionFooterAlreadyAppended = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19482
|
+
if (ionFooter && !ionFooterAlreadyAppended) {
|
|
19483
|
+
const footerHeight = ionFooter.clientHeight;
|
|
19484
|
+
const clonedFooter = ionFooter.cloneNode(true);
|
|
19485
|
+
baseEl.shadowRoot.appendChild(clonedFooter);
|
|
19486
|
+
ionFooter.style.setProperty('display', 'none');
|
|
19487
|
+
ionFooter.setAttribute('aria-hidden', 'true');
|
|
19488
|
+
// Padding is added to prevent some content from being hidden.
|
|
19489
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19490
|
+
page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
19491
|
+
}
|
|
19492
|
+
});
|
|
19400
19493
|
if (contentAnimation) {
|
|
19401
19494
|
baseAnimation.addAnimation(contentAnimation);
|
|
19402
19495
|
}
|
|
@@ -19415,7 +19508,7 @@ const createLeaveAnimation = () => {
|
|
|
19415
19508
|
* Md Modal Leave Animation
|
|
19416
19509
|
*/
|
|
19417
19510
|
const mdLeaveAnimation$2 = (baseEl, opts) => {
|
|
19418
|
-
const { currentBreakpoint } = opts;
|
|
19511
|
+
const { currentBreakpoint, expandToScroll } = opts;
|
|
19419
19512
|
const root = getElementRoot(baseEl);
|
|
19420
19513
|
const { wrapperAnimation, backdropAnimation } = currentBreakpoint !== undefined ? createSheetLeaveAnimation(opts) : createLeaveAnimation();
|
|
19421
19514
|
backdropAnimation.addElement(root.querySelector('ion-backdrop'));
|
|
@@ -19423,7 +19516,29 @@ const mdLeaveAnimation$2 = (baseEl, opts) => {
|
|
|
19423
19516
|
const baseAnimation = createAnimation()
|
|
19424
19517
|
.easing('cubic-bezier(0.47,0,0.745,0.715)')
|
|
19425
19518
|
.duration(200)
|
|
19426
|
-
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19519
|
+
.addAnimation([backdropAnimation, wrapperAnimation])
|
|
19520
|
+
.beforeAddWrite(() => {
|
|
19521
|
+
if (expandToScroll) {
|
|
19522
|
+
// Scroll can only be done when the modal is fully expanded.
|
|
19523
|
+
return;
|
|
19524
|
+
}
|
|
19525
|
+
/**
|
|
19526
|
+
* If expandToScroll is disabled, we need to swap
|
|
19527
|
+
* the visibility to the original, so the footer
|
|
19528
|
+
* dismisses with the modal and doesn't stay
|
|
19529
|
+
* until the modal is removed from the DOM.
|
|
19530
|
+
*/
|
|
19531
|
+
const ionFooter = baseEl.querySelector('ion-footer');
|
|
19532
|
+
if (ionFooter) {
|
|
19533
|
+
const clonedFooter = baseEl.shadowRoot.querySelector('ion-footer');
|
|
19534
|
+
ionFooter.style.removeProperty('display');
|
|
19535
|
+
ionFooter.removeAttribute('aria-hidden');
|
|
19536
|
+
clonedFooter.style.setProperty('display', 'none');
|
|
19537
|
+
clonedFooter.setAttribute('aria-hidden', 'true');
|
|
19538
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19539
|
+
page.style.removeProperty('padding-bottom');
|
|
19540
|
+
}
|
|
19541
|
+
});
|
|
19427
19542
|
return baseAnimation;
|
|
19428
19543
|
};
|
|
19429
19544
|
|
|
@@ -19455,8 +19570,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19455
19570
|
let offset = 0;
|
|
19456
19571
|
let canDismissBlocksGesture = false;
|
|
19457
19572
|
let cachedScrollEl = null;
|
|
19458
|
-
let cachedFooterYPosition = null;
|
|
19459
|
-
let currentFooterState = null;
|
|
19460
19573
|
const canDismissMaxStep = 0.95;
|
|
19461
19574
|
const maxBreakpoint = breakpoints[breakpoints.length - 1];
|
|
19462
19575
|
const minBreakpoint = breakpoints[0];
|
|
@@ -19486,38 +19599,29 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19486
19599
|
baseEl.classList.add(FOCUS_TRAP_DISABLE_CLASS);
|
|
19487
19600
|
};
|
|
19488
19601
|
/**
|
|
19489
|
-
* Toggles the
|
|
19490
|
-
*
|
|
19491
|
-
* @param footer Whether the footer is in a moving or stationary position.
|
|
19602
|
+
* Toggles the visible modal footer when `expandToScroll` is disabled.
|
|
19603
|
+
* @param footer The footer to show.
|
|
19492
19604
|
*/
|
|
19493
|
-
const
|
|
19494
|
-
var _a, _b;
|
|
19605
|
+
const swapFooterVisibility = (footer) => {
|
|
19495
19606
|
const originalFooter = baseEl.querySelector('ion-footer');
|
|
19496
19607
|
if (!originalFooter) {
|
|
19497
19608
|
return;
|
|
19498
19609
|
}
|
|
19499
|
-
|
|
19500
|
-
|
|
19501
|
-
|
|
19502
|
-
|
|
19503
|
-
|
|
19504
|
-
|
|
19610
|
+
const clonedFooter = wrapperEl.nextElementSibling;
|
|
19611
|
+
const footerToHide = footer === 'original' ? clonedFooter : originalFooter;
|
|
19612
|
+
const footerToShow = footer === 'original' ? originalFooter : clonedFooter;
|
|
19613
|
+
footerToShow.style.removeProperty('display');
|
|
19614
|
+
footerToShow.removeAttribute('aria-hidden');
|
|
19615
|
+
const page = baseEl.querySelector('.ion-page');
|
|
19616
|
+
if (footer === 'original') {
|
|
19617
|
+
page.style.removeProperty('padding-bottom');
|
|
19505
19618
|
}
|
|
19506
19619
|
else {
|
|
19507
|
-
|
|
19508
|
-
|
|
19509
|
-
// make the footer absolutely positioned or we may accidentally cause the
|
|
19510
|
-
// sheet to scroll.
|
|
19511
|
-
const footerHeight = originalFooter.clientHeight;
|
|
19512
|
-
(_b = originalFooter.parentElement) === null || _b === void 0 ? void 0 : _b.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
19513
|
-
// Apply positioning styles to keep footer at bottom
|
|
19514
|
-
originalFooter.style.setProperty('position', 'absolute');
|
|
19515
|
-
originalFooter.style.setProperty('bottom', '0');
|
|
19516
|
-
// Also cache the footer Y position, which we use to determine if the
|
|
19517
|
-
// sheet has been moved below the footer. When that happens, we need to swap
|
|
19518
|
-
// the position back so it will collapse correctly.
|
|
19519
|
-
cachedFooterYPosition = originalFooter.getBoundingClientRect().top + window.scrollY;
|
|
19620
|
+
const pagePadding = footerToShow.clientHeight;
|
|
19621
|
+
page.style.setProperty('padding-bottom', `${pagePadding}px`);
|
|
19520
19622
|
}
|
|
19623
|
+
footerToHide.style.setProperty('display', 'none');
|
|
19624
|
+
footerToHide.setAttribute('aria-hidden', 'true');
|
|
19521
19625
|
};
|
|
19522
19626
|
/**
|
|
19523
19627
|
* After the entering animation completes,
|
|
@@ -19611,11 +19715,12 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19611
19715
|
}
|
|
19612
19716
|
/**
|
|
19613
19717
|
* If expandToScroll is disabled, we need to swap
|
|
19614
|
-
* the footer
|
|
19615
|
-
*
|
|
19718
|
+
* the footer visibility to the original, so if the modal
|
|
19719
|
+
* is dismissed, the footer dismisses with the modal
|
|
19720
|
+
* and doesn't stay on the screen after the modal is gone.
|
|
19616
19721
|
*/
|
|
19617
19722
|
if (!expandToScroll) {
|
|
19618
|
-
|
|
19723
|
+
swapFooterVisibility('original');
|
|
19619
19724
|
}
|
|
19620
19725
|
/**
|
|
19621
19726
|
* If we are pulling down, then it is possible we are pulling on the content.
|
|
@@ -19634,21 +19739,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19634
19739
|
animation.progressStart(true, 1 - currentBreakpoint);
|
|
19635
19740
|
};
|
|
19636
19741
|
const onMove = (detail) => {
|
|
19637
|
-
/**
|
|
19638
|
-
* If `expandToScroll` is disabled, we need to see if we're currently below
|
|
19639
|
-
* the footer element and the footer is in a stationary position. If so,
|
|
19640
|
-
* we need to make the stationary the original position so that the footer
|
|
19641
|
-
* collapses with the sheet.
|
|
19642
|
-
*/
|
|
19643
|
-
if (!expandToScroll && cachedFooterYPosition !== null && currentFooterState !== null) {
|
|
19644
|
-
// Check if we need to swap the footer position
|
|
19645
|
-
if (detail.currentY >= cachedFooterYPosition && currentFooterState === 'moving') {
|
|
19646
|
-
swapFooterPosition('stationary');
|
|
19647
|
-
}
|
|
19648
|
-
else if (detail.currentY < cachedFooterYPosition && currentFooterState === 'stationary') {
|
|
19649
|
-
swapFooterPosition('moving');
|
|
19650
|
-
}
|
|
19651
|
-
}
|
|
19652
19742
|
/**
|
|
19653
19743
|
* If `expandToScroll` is disabled, and an upwards swipe gesture is done within
|
|
19654
19744
|
* the scrollable content, we should not allow the swipe gesture to continue.
|
|
@@ -19782,6 +19872,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19782
19872
|
* snapping animation completes.
|
|
19783
19873
|
*/
|
|
19784
19874
|
gesture.enable(false);
|
|
19875
|
+
/**
|
|
19876
|
+
* If expandToScroll is disabled, we need to swap
|
|
19877
|
+
* the footer visibility to the cloned one so the footer
|
|
19878
|
+
* doesn't flicker when the sheet's height is animated.
|
|
19879
|
+
*/
|
|
19880
|
+
if (!expandToScroll && shouldRemainOpen) {
|
|
19881
|
+
swapFooterVisibility('cloned');
|
|
19882
|
+
}
|
|
19785
19883
|
if (shouldPreventDismiss) {
|
|
19786
19884
|
handleCanDismiss(baseEl, animation);
|
|
19787
19885
|
}
|
|
@@ -19802,14 +19900,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
19802
19900
|
animation
|
|
19803
19901
|
.onFinish(() => {
|
|
19804
19902
|
if (shouldRemainOpen) {
|
|
19805
|
-
/**
|
|
19806
|
-
* If expandToScroll is disabled, we need to swap
|
|
19807
|
-
* the footer position to stationary so that it
|
|
19808
|
-
* will act as it would by default
|
|
19809
|
-
*/
|
|
19810
|
-
if (!expandToScroll) {
|
|
19811
|
-
swapFooterPosition('stationary');
|
|
19812
|
-
}
|
|
19813
19903
|
/**
|
|
19814
19904
|
* Once the snapping animation completes,
|
|
19815
19905
|
* we need to reset the animation to go
|
|
@@ -23226,7 +23316,7 @@ class PickerColumnCmp {
|
|
|
23226
23316
|
const colEl = this.optsEl;
|
|
23227
23317
|
if (colEl) {
|
|
23228
23318
|
// DOM READ
|
|
23229
|
-
// We perfom a DOM read over a rendered item, this needs to happen after the first render or after the
|
|
23319
|
+
// We perfom a DOM read over a rendered item, this needs to happen after the first render or after the column has changed
|
|
23230
23320
|
this.optHeight = colEl.firstElementChild ? colEl.firstElementChild.clientHeight : 0;
|
|
23231
23321
|
}
|
|
23232
23322
|
this.refresh(forceRefresh, animated);
|
|
@@ -23234,9 +23324,9 @@ class PickerColumnCmp {
|
|
|
23234
23324
|
render() {
|
|
23235
23325
|
const col = this.col;
|
|
23236
23326
|
const mode = getIonMode$1(this);
|
|
23237
|
-
return (hAsync(Host, { key: '
|
|
23327
|
+
return (hAsync(Host, { key: '10ef653cbae8e1ed92a23fa17f3396082e35951f', class: Object.assign({ [mode]: true, 'picker-col': true, 'picker-opts-left': this.col.align === 'left', 'picker-opts-right': this.col.align === 'right' }, getClassMap(col.cssClass)), style: {
|
|
23238
23328
|
'max-width': this.col.columnWidth,
|
|
23239
|
-
} }, col.prefix && (hAsync("div", { key: '
|
|
23329
|
+
} }, col.prefix && (hAsync("div", { key: '253066708012034206b1d3d466ea48d0a3be3323', class: "picker-prefix", style: { width: col.prefixWidth } }, col.prefix)), hAsync("div", { key: '15fa07307d4d2b4994504a5bf2de8db05b51cd2c', class: "picker-opts", style: { maxWidth: col.optionsWidth }, ref: (el) => (this.optsEl = el) }, col.options.map((o, index) => (hAsync("button", { "aria-label": o.ariaLabel, class: { 'picker-opt': true, 'picker-opt-disabled': !!o.disabled }, "opt-index": index }, o.text)))), col.suffix && (hAsync("div", { key: '4db779830b1e6aa6b324e5a72541d4f610ac1ff5', class: "picker-suffix", style: { width: col.suffixWidth } }, col.suffix))));
|
|
23240
23330
|
}
|
|
23241
23331
|
get el() { return getElement(this); }
|
|
23242
23332
|
static get watchers() { return {
|
|
@@ -28948,8 +29038,8 @@ class Searchbar {
|
|
|
28948
29038
|
const clearIcon = this.clearIcon || (mode === 'ios' ? closeCircle : closeSharp);
|
|
28949
29039
|
const searchIcon = this.searchIcon || (mode === 'ios' ? searchOutline : searchSharp);
|
|
28950
29040
|
const shouldShowCancelButton = this.shouldShowCancelButton();
|
|
28951
|
-
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '
|
|
28952
|
-
return (hAsync(Host, { key: '
|
|
29041
|
+
const cancelButton = this.showCancelButton !== 'never' && (hAsync("button", { key: '4a4bddfaf44acb9ea71d37d11c3fc11450134a5c', "aria-label": cancelButtonText, "aria-hidden": shouldShowCancelButton ? undefined : 'true', type: "button", tabIndex: mode === 'ios' && !shouldShowCancelButton ? -1 : undefined, onMouseDown: this.onCancelSearchbar, onTouchStart: this.onCancelSearchbar, class: "searchbar-cancel-button" }, hAsync("div", { key: '24424547e34a80422f617f5597965724a3ef65f0', "aria-hidden": "true" }, mode === 'md' ? (hAsync("ion-icon", { "aria-hidden": "true", mode: mode, icon: this.cancelButtonIcon, lazy: false })) : (cancelButtonText))));
|
|
29042
|
+
return (hAsync(Host, { key: '0c0e7334cb2af87081a278e5a3f6be3dc646a073', role: "search", "aria-disabled": this.disabled ? 'true' : null, class: createColorClasses$1(this.color, {
|
|
28953
29043
|
[mode]: true,
|
|
28954
29044
|
'searchbar-animated': animated,
|
|
28955
29045
|
'searchbar-disabled': this.disabled,
|
|
@@ -28959,14 +29049,14 @@ class Searchbar {
|
|
|
28959
29049
|
'searchbar-has-focus': this.focused,
|
|
28960
29050
|
'searchbar-should-show-clear': this.shouldShowClearButton(),
|
|
28961
29051
|
'searchbar-should-show-cancel': this.shouldShowCancelButton(),
|
|
28962
|
-
}) }, hAsync("div", { key: '
|
|
29052
|
+
}) }, hAsync("div", { key: '859da78b062b9059701eba166be3bc5417f7395b', class: "searchbar-input-container" }, hAsync("input", Object.assign({ key: '840fd06a1e4b5a8d7f6d7439d02aef9fcb9720b6', "aria-label": "search text", disabled: this.disabled, ref: (el) => (this.nativeInput = el), class: "searchbar-input", inputMode: this.inputmode, enterKeyHint: this.enterkeyhint, name: this.name, onInput: this.onInput, onChange: this.onChange, onBlur: this.onBlur, onFocus: this.onFocus, minLength: this.minlength, maxLength: this.maxlength, placeholder: this.placeholder, type: this.type, value: this.getValue(), autoCapitalize: autocapitalize === 'default' ? undefined : autocapitalize, autoComplete: this.autocomplete, autoCorrect: this.autocorrect, spellcheck: this.spellcheck }, this.inheritedAttributes)), mode === 'md' && cancelButton, hAsync("ion-icon", { key: 'a5aaa6a2204d38433cac283dd47b6197499fa585', "aria-hidden": "true", mode: mode, icon: searchIcon, lazy: false, class: "searchbar-search-icon" }), hAsync("button", { key: 'cf62c8969c5c916ac838e122a0ad45b2ae234791', "aria-label": "reset", type: "button", "no-blur": true, class: "searchbar-clear-button", onPointerDown: (ev) => {
|
|
28963
29053
|
/**
|
|
28964
29054
|
* This prevents mobile browsers from
|
|
28965
29055
|
* blurring the input when the clear
|
|
28966
29056
|
* button is activated.
|
|
28967
29057
|
*/
|
|
28968
29058
|
ev.preventDefault();
|
|
28969
|
-
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: '
|
|
29059
|
+
}, onClick: () => this.onClearInput(true) }, hAsync("ion-icon", { key: 'b1a75f0964fc2119479e246dc27bef7cc33bd19f', "aria-hidden": "true", mode: mode, icon: clearIcon, lazy: false, class: "searchbar-clear-icon" }))), mode === 'ios' && cancelButton));
|
|
28970
29060
|
}
|
|
28971
29061
|
get el() { return getElement(this); }
|
|
28972
29062
|
static get watchers() { return {
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ionic/core",
|
|
3
|
-
"version": "8.5.8-dev.
|
|
3
|
+
"version": "8.5.8-dev.11748388365.11ad9dfe",
|
|
4
4
|
"description": "Base components for Ionic",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"ionic",
|
|
@@ -41,7 +41,7 @@
|
|
|
41
41
|
"@capacitor/haptics": "^7.0.0",
|
|
42
42
|
"@capacitor/keyboard": "^7.0.0",
|
|
43
43
|
"@capacitor/status-bar": "^7.0.0",
|
|
44
|
-
"@clack/prompts": "^0.
|
|
44
|
+
"@clack/prompts": "^0.11.0",
|
|
45
45
|
"@ionic/eslint-config": "^0.3.0",
|
|
46
46
|
"@ionic/prettier-config": "^2.0.0",
|
|
47
47
|
"@playwright/test": "^1.52.0",
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{r as t,c as o,w as i,h as a,e,f as r}from"./p-66a5d6a8.js";import{f as s,i as n,d,r as h,a as p,p as l}from"./p-25b10f81.js";import{C as c,a as m,d as f}from"./p-f08a92cc.js";import{g as b,j as u,r as v,h as x,k as w}from"./p-94551927.js";import{c as g}from"./p-ccd02320.js";import{p as k,c as y}from"./p-17e21141.js";import{g as A}from"./p-c61cc894.js";import{G as D,O as B,F as Y,e as S,B as j,j as E,k as M,f as C,g as T,h as O}from"./p-95001a19.js";import{g as P}from"./p-47794def.js";import{e as $,w as z}from"./p-809483ac.js";import{b as I}from"./p-dabe3bd4.js";import{KEYBOARD_DID_OPEN as W}from"./p-2b7827c7.js";import{c as R}from"./p-4c667fce.js";import{g as L}from"./p-2408c236.js";import{createGesture as H}from"./p-8ededb41.js";import{w as N}from"./p-7b30edcc.js";import"./p-b7b1d91a.js";import"./p-9b97df10.js";import"./p-27281edd.js";var F;!function(t){t.Dark="DARK",t.Light="LIGHT",t.Default="DEFAULT"}(F||(F={}));const K={getEngine(){const t=A();if(null==t?void 0:t.isPluginAvailable("StatusBar"))return t.Plugins.StatusBar},setStyle(t){const o=this.getEngine();o&&o.setStyle(t)},getStyle:async function(){const t=this.getEngine();if(!t)return F.Default;const{style:o}=await t.getInfo();return o}},V=(t,o)=>{if(1===o)return 0;const i=1/(1-o);return t*i+-o*i},Z=()=>{!N||N.innerWidth>=768||K.setStyle({style:F.Dark})},_=(t=F.Default)=>{!N||N.innerWidth>=768||K.setStyle({style:t})},G=async(t,o)=>{"function"==typeof t.canDismiss&&await t.canDismiss(void 0,D)&&(o.isRunning()?o.onFinish((()=>{t.dismiss(void 0,"handler")}),{oneTimeCallback:!0}):t.dismiss(void 0,"handler"))},U=t=>.00255275*2.71828**(-14.9619*t)-1.00255*2.71828**(-.0380968*t)+1,q=.915,J=(t,o)=>u(400,t/Math.abs(1.1*o),500),Q=t=>{const{currentBreakpoint:o,backdropBreakpoint:i,expandToScroll:a}=t,e=void 0===i||i<o,r=e?`calc(var(--backdrop-opacity) * ${o})`:"0",s=R("backdropAnimation").fromTo("opacity",0,r);return e&&s.beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),{wrapperAnimation:R("wrapperAnimation").keyframes([{offset:0,opacity:1,transform:"translateY(100%)"},{offset:1,opacity:1,transform:`translateY(${100-100*o}%)`}]),backdropAnimation:s,contentAnimation:a?void 0:R("contentAnimation").keyframes([{offset:0,opacity:1,maxHeight:100*(1-o)+"%"},{offset:1,opacity:1,maxHeight:100*o+"%"}])}},X=t=>{const{currentBreakpoint:o,backdropBreakpoint:i}=t,a=`calc(var(--backdrop-opacity) * ${V(o,i)})`,e=[{offset:0,opacity:a},{offset:1,opacity:0}],r=[{offset:0,opacity:a},{offset:i,opacity:0},{offset:1,opacity:0}],s=R("backdropAnimation").keyframes(0!==i?r:e);return{wrapperAnimation:R("wrapperAnimation").keyframes([{offset:0,opacity:1,transform:`translateY(${100-100*o}%)`},{offset:1,opacity:1,transform:"translateY(100%)"}]),backdropAnimation:s}},tt=(t,o)=>{const{presentingEl:i,currentBreakpoint:a,expandToScroll:e}=o,r=b(t),{wrapperAnimation:s,backdropAnimation:n,contentAnimation:d}=void 0!==a?Q(o):{backdropAnimation:R().fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),wrapperAnimation:R().fromTo("transform","translateY(100vh)","translateY(0vh)"),contentAnimation:void 0};n.addElement(r.querySelector("ion-backdrop")),s.addElement(r.querySelectorAll(".modal-wrapper, .modal-shadow")).beforeStyles({opacity:1}),!e&&(null==d||d.addElement(t.querySelector(".ion-page")));const h=R("entering-base").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(500).addAnimation([s]);if(d&&h.addAnimation(d),i){const t=window.innerWidth<768,o="ION-MODAL"===i.tagName&&void 0!==i.presentingElement,a=b(i),e=R().beforeStyles({transform:"translateY(0)","transform-origin":"top center",overflow:"hidden"}),r=document.body;if(t){const t=CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px",a=`translateY(${o?"-10px":t}) scale(0.915)`;e.afterStyles({transform:a}).beforeAddWrite((()=>r.style.setProperty("background-color","black"))).addElement(i).keyframes([{offset:0,filter:"contrast(1)",transform:"translateY(0px) scale(1)",borderRadius:"0px"},{offset:1,filter:"contrast(0.85)",transform:a,borderRadius:"10px 10px 0 0"}]),h.addAnimation(e)}else if(h.addAnimation(n),o){const t=`translateY(-10px) scale(${o?q:1})`;e.afterStyles({transform:t}).addElement(a.querySelector(".modal-wrapper")).keyframes([{offset:0,filter:"contrast(1)",transform:"translateY(0) scale(1)"},{offset:1,filter:"contrast(0.85)",transform:t}]);const i=R().afterStyles({transform:t}).addElement(a.querySelector(".modal-shadow")).keyframes([{offset:0,opacity:"1",transform:"translateY(0) scale(1)"},{offset:1,opacity:"0",transform:t}]);h.addAnimation([e,i])}else s.fromTo("opacity","0","1")}else h.addAnimation(n);return h},ot=(t,o,i=500)=>{const{presentingEl:a,currentBreakpoint:e}=o,r=b(t),{wrapperAnimation:s,backdropAnimation:n}=void 0!==e?X(o):{backdropAnimation:R().fromTo("opacity","var(--backdrop-opacity)",0),wrapperAnimation:R().fromTo("transform","translateY(0vh)","translateY(100vh)")};n.addElement(r.querySelector("ion-backdrop")),s.addElement(r.querySelectorAll(".modal-wrapper, .modal-shadow")).beforeStyles({opacity:1});const d=R("leaving-base").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(i).addAnimation(s);if(a){const t=window.innerWidth<768,o="ION-MODAL"===a.tagName&&void 0!==a.presentingElement,i=b(a),e=R().beforeClearStyles(["transform"]).afterClearStyles(["transform"]).onFinish((t=>{1===t&&(a.style.setProperty("overflow",""),Array.from(r.querySelectorAll("ion-modal:not(.overlay-hidden)")).filter((t=>void 0!==t.presentingElement)).length<=1&&r.style.setProperty("background-color",""))})),r=document.body;if(t){const t=CSS.supports("width","max(0px, 1px)")?"max(30px, var(--ion-safe-area-top))":"30px",i=`translateY(${o?"-10px":t}) scale(0.915)`;e.addElement(a).keyframes([{offset:0,filter:"contrast(0.85)",transform:i,borderRadius:"10px 10px 0 0"},{offset:1,filter:"contrast(1)",transform:"translateY(0px) scale(1)",borderRadius:"0px"}]),d.addAnimation(e)}else if(d.addAnimation(n),o){const t=`translateY(-10px) scale(${o?q:1})`;e.addElement(i.querySelector(".modal-wrapper")).afterStyles({transform:"translate3d(0, 0, 0)"}).keyframes([{offset:0,filter:"contrast(0.85)",transform:t},{offset:1,filter:"contrast(1)",transform:"translateY(0) scale(1)"}]);const a=R().addElement(i.querySelector(".modal-shadow")).afterStyles({transform:"translateY(0) scale(1)"}).keyframes([{offset:0,opacity:"0",transform:t},{offset:1,opacity:"1",transform:"translateY(0) scale(1)"}]);d.addAnimation([e,a])}else s.fromTo("opacity","1","0")}else d.addAnimation(n);return d},it=(t,o)=>{const{currentBreakpoint:i,expandToScroll:a}=o,e=b(t),{wrapperAnimation:r,backdropAnimation:s,contentAnimation:n}=void 0!==i?Q(o):{backdropAnimation:R().fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),wrapperAnimation:R().keyframes([{offset:0,opacity:.01,transform:"translateY(40px)"},{offset:1,opacity:1,transform:"translateY(0px)"}]),contentAnimation:void 0};s.addElement(e.querySelector("ion-backdrop")),r.addElement(e.querySelector(".modal-wrapper")),a&&(null==n||n.addElement(t.querySelector(".ion-page")));const d=R().addElement(t).easing("cubic-bezier(0.36,0.66,0.04,1)").duration(280).addAnimation([s,r]);return n&&d.addAnimation(n),d},at=(t,o)=>{const{currentBreakpoint:i}=o,a=b(t),{wrapperAnimation:e,backdropAnimation:r}=void 0!==i?X(o):{backdropAnimation:R().fromTo("opacity","var(--backdrop-opacity)",0),wrapperAnimation:R().keyframes([{offset:0,opacity:.99,transform:"translateY(0px)"},{offset:1,opacity:0,transform:"translateY(40px)"}])};return r.addElement(a.querySelector("ion-backdrop")),e.addElement(a.querySelector(".modal-wrapper")),R().easing("cubic-bezier(0.47,0,0.745,0.715)").duration(200).addAnimation([r,e])},et=class{constructor(i){t(this,i),this.didPresent=o(this,"ionModalDidPresent",7),this.willPresent=o(this,"ionModalWillPresent",7),this.willDismiss=o(this,"ionModalWillDismiss",7),this.didDismiss=o(this,"ionModalDidDismiss",7),this.ionBreakpointDidChange=o(this,"ionBreakpointDidChange",7),this.didPresentShorthand=o(this,"didPresent",7),this.willPresentShorthand=o(this,"willPresent",7),this.willDismissShorthand=o(this,"willDismiss",7),this.didDismissShorthand=o(this,"didDismiss",7),this.ionMount=o(this,"ionMount",7),this.lockController=g(),this.triggerController=S(),this.coreDelegate=c(),this.isSheetModal=!1,this.inheritedAttributes={},this.inline=!1,this.gestureAnimationDismissing=!1,this.onHandleClick=()=>{const{sheetTransition:t,handleBehavior:o}=this;"cycle"===o&&void 0===t&&this.moveToNextBreakpoint()},this.onBackdropTap=()=>{const{sheetTransition:t}=this;void 0===t&&this.dismiss(void 0,j)},this.onLifecycle=t=>{const o=this.usersElement,i=rt[t.type];if(o&&i){const a=new CustomEvent(i,{bubbles:!1,cancelable:!1,detail:t.detail});o.dispatchEvent(a)}},this.presented=!1,this.hasController=!1,this.overlayIndex=void 0,this.delegate=void 0,this.keyboardClose=!0,this.enterAnimation=void 0,this.leaveAnimation=void 0,this.breakpoints=void 0,this.expandToScroll=!0,this.initialBreakpoint=void 0,this.backdropBreakpoint=0,this.handle=void 0,this.handleBehavior="none",this.component=void 0,this.componentProps=void 0,this.cssClass=void 0,this.backdropDismiss=!0,this.showBackdrop=!0,this.animated=!0,this.presentingElement=void 0,this.htmlAttributes=void 0,this.isOpen=!1,this.trigger=void 0,this.keepContentsMounted=!1,this.focusTrap=!0,this.canDismiss=!0}onIsOpenChange(t,o){!0===t&&!1===o?this.present():!1===t&&!0===o&&this.dismiss()}triggerChanged(){const{trigger:t,el:o,triggerController:i}=this;t&&i.addClickListener(o,t)}breakpointsChanged(t){void 0!==t&&(this.sortedBreakpoints=t.sort(((t,o)=>t-o)))}connectedCallback(){const{el:t}=this;E(t),this.triggerChanged()}disconnectedCallback(){this.triggerController.removeClickListener()}componentWillLoad(){var t;const{breakpoints:o,initialBreakpoint:i,el:a,htmlAttributes:e}=this,r=this.isSheetModal=void 0!==o&&void 0!==i,s=["aria-label","role"];this.inheritedAttributes=x(a,s),void 0!==e&&s.forEach((t=>{e[t]&&(this.inheritedAttributes=Object.assign(Object.assign({},this.inheritedAttributes),{[t]:e[t]}),delete e[t])})),r&&(this.currentBreakpoint=this.initialBreakpoint),void 0===o||void 0===i||o.includes(i)||k("[ion-modal] - Your breakpoints array must include the initialBreakpoint value."),(null===(t=this.htmlAttributes)||void 0===t?void 0:t.id)||M(this.el)}componentDidLoad(){!0===this.isOpen&&v((()=>this.present())),this.breakpointsChanged(this.breakpoints),this.triggerChanged()}getDelegate(t=!1){if(this.workingDelegate&&!t)return{delegate:this.workingDelegate,inline:this.inline};const o=this.inline=null!==this.el.parentNode&&!this.hasController;return{inline:o,delegate:this.workingDelegate=o?this.delegate||this.coreDelegate:this.delegate}}async checkCanDismiss(t,o){const{canDismiss:i}=this;return"function"==typeof i?i(t,o):i}async present(){const t=await this.lockController.lock();if(this.presented)return void t();const{presentingElement:o,el:a}=this;this.currentBreakpoint=this.initialBreakpoint;const{inline:e,delegate:r}=this.getDelegate(!0);this.ionMount.emit(),this.usersElement=await m(r,a,this.component,["ion-page"],this.componentProps,e),w(a)?await $(this.usersElement):this.keepContentsMounted||await z(),i((()=>this.el.classList.add("show-modal")));const s=void 0!==o;s&&"ios"===I(this)&&(this.statusBarStyle=await K.getStyle(),Z()),await C(this,"modalEnter",tt,it,{presentingEl:o,currentBreakpoint:this.initialBreakpoint,backdropBreakpoint:this.backdropBreakpoint,expandToScroll:this.expandToScroll}),"undefined"!=typeof window&&(this.keyboardOpenCallback=()=>{this.gesture&&(this.gesture.enable(!1),v((()=>{this.gesture&&this.gesture.enable(!0)})))},window.addEventListener(W,this.keyboardOpenCallback)),this.isSheetModal?this.initSheetGesture():s&&this.initSwipeToClose(),t()}initSwipeToClose(){var t;if("ios"!==I(this))return;const{el:o}=this,i=this.leaveAnimation||y.get("modalLeave",ot),a=this.animation=i(o,{presentingEl:this.presentingElement,expandToScroll:this.expandToScroll});if(!p(o))return void l(o);const e=null!==(t=this.statusBarStyle)&&void 0!==t?t:F.Default;this.gesture=((t,o,i,a)=>{const e=.5,r=t.offsetHeight;let p=!1,l=!1,c=null,m=null,f=!0,v=0;const x=H({el:t,gestureName:"modalSwipeToClose",gesturePriority:B,direction:"y",threshold:10,canStart:t=>{const o=t.event.target;if(null===o||!o.closest)return!0;if(c=s(o),c){if(n(c)){const t=b(c);m=t.querySelector(".inner-scroll")}else m=c;return!c.querySelector("ion-refresher")&&0===m.scrollTop}return null===o.closest("ion-footer")},onStart:i=>{const{deltaY:a}=i;f=!c||!n(c)||c.scrollY,l=void 0!==t.canDismiss&&!0!==t.canDismiss,a>0&&c&&d(c),o.progressStart(!0,p?1:0)},onMove:t=>{const{deltaY:a}=t;a>0&&c&&d(c);const s=t.deltaY/r,n=s>=0&&l,h=n?.2:.9999,p=n?U(s/h):s,m=u(1e-4,p,h);o.progressStep(m),m>=e&&v<e?_(i):m<e&&v>=e&&Z(),v=m},onEnd:i=>{const s=i.velocityY,n=i.deltaY/r,d=n>=0&&l,m=d?.2:.9999,b=d?U(n/m):n,v=u(1e-4,b,m),w=!d&&(i.deltaY+1e3*s)/r>=e;let g=w?-.001:.001;w?(o.easing("cubic-bezier(0.32, 0.72, 0, 1)"),g+=L([0,0],[.32,.72],[0,1],[1,1],v)[0]):(o.easing("cubic-bezier(1, 0, 0.68, 0.28)"),g+=L([0,0],[1,0],[.68,.28],[1,1],v)[0]);const k=J(w?n*r:(1-v)*r,s);p=w,x.enable(!1),c&&h(c,f),o.onFinish((()=>{w||x.enable(!0)})).progressEnd(w?1:0,g,k),d&&v>m/4?G(t,o):w&&a()}});return x})(o,a,e,(()=>{this.gestureAnimationDismissing=!0,_(this.statusBarStyle),this.animation.onFinish((async()=>{await this.dismiss(void 0,D),this.gestureAnimationDismissing=!1}))})),this.gesture.enable(!0)}initSheetGesture(){const{wrapperEl:t,initialBreakpoint:o,backdropBreakpoint:i}=this;if(!t||void 0===o)return;const a=this.enterAnimation||y.get("modalEnter",tt),e=this.animation=a(this.el,{presentingEl:this.presentingElement,currentBreakpoint:o,backdropBreakpoint:i,expandToScroll:this.expandToScroll});e.progressStart(!0,1);const{gesture:r,moveSheetToBreakpoint:d}=((t,o,i,a,e,r,d=[],h,p,l,c)=>{const m={WRAPPER_KEYFRAMES:[{offset:0,transform:"translateY(0%)"},{offset:1,transform:"translateY(100%)"}],BACKDROP_KEYFRAMES:0!==e?[{offset:0,opacity:"var(--backdrop-opacity)"},{offset:1-e,opacity:0},{offset:1,opacity:0}]:[{offset:0,opacity:"var(--backdrop-opacity)"},{offset:1,opacity:.01}],CONTENT_KEYFRAMES:[{offset:0,maxHeight:"100%"},{offset:1,maxHeight:"0%"}]},f=t.querySelector("ion-content"),x=i.clientHeight;let w=a,g=0,k=!1,y=null,A=null,D=null;const B=d[d.length-1],S=d[0],j=r.childAnimations.find((t=>"wrapperAnimation"===t.id)),E=r.childAnimations.find((t=>"backdropAnimation"===t.id)),M=r.childAnimations.find((t=>"contentAnimation"===t.id)),C=()=>{t.style.setProperty("pointer-events","auto"),o.style.setProperty("pointer-events","auto"),t.classList.remove(Y)},T=()=>{t.style.setProperty("pointer-events","none"),o.style.setProperty("pointer-events","none"),t.classList.add(Y)},O=o=>{var i,a;const e=t.querySelector("ion-footer");e&&(D=o,"stationary"===o?(e.style.removeProperty("position"),e.style.removeProperty("bottom"),null===(i=e.parentElement)||void 0===i||i.style.removeProperty("padding-bottom")):(null===(a=e.parentElement)||void 0===a||a.style.setProperty("padding-bottom",`${e.clientHeight}px`),e.style.setProperty("position","absolute"),e.style.setProperty("bottom","0"),A=e.getBoundingClientRect().top+window.scrollY))};j&&E&&(j.keyframes([...m.WRAPPER_KEYFRAMES]),E.keyframes([...m.BACKDROP_KEYFRAMES]),null==M||M.keyframes([...m.CONTENT_KEYFRAMES]),r.progressStart(!0,1-w),w>e?C():T()),f&&w!==B&&h&&(f.scrollY=!1);const P=o=>{const{breakpoint:i,canDismiss:a,breakpointOffset:s,animated:n}=o,p=a&&0===i,b=p?w:i,u=0!==b;return w=0,j&&E&&(j.keyframes([{offset:0,transform:`translateY(${100*s}%)`},{offset:1,transform:`translateY(${100*(1-b)}%)`}]),E.keyframes([{offset:0,opacity:`calc(var(--backdrop-opacity) * ${V(1-s,e)})`},{offset:1,opacity:`calc(var(--backdrop-opacity) * ${V(b,e)})`}]),M&&M.keyframes([{offset:0,maxHeight:100*(1-s)+"%"},{offset:1,maxHeight:100*b+"%"}]),r.progressStep(0)),$.enable(!1),p?G(t,r):u||l(),!f||b!==d[d.length-1]&&h||(f.scrollY=!0),new Promise((t=>{r.onFinish((()=>{u?(h||O("stationary"),j&&E?v((()=>{j.keyframes([...m.WRAPPER_KEYFRAMES]),E.keyframes([...m.BACKDROP_KEYFRAMES]),null==M||M.keyframes([...m.CONTENT_KEYFRAMES]),r.progressStart(!0,1-b),w=b,c(w),w>e?C():T(),$.enable(!0),t()})):($.enable(!0),t())):t()}),{oneTimeCallback:!0}).progressEnd(1,0,n?500:0)}))},$=H({el:i,gestureName:"modalSheet",gesturePriority:40,direction:"y",threshold:10,canStart:t=>{const o=s(t.event.target);if(w=p(),!h&&o)return 0===(n(o)?b(o).querySelector(".inner-scroll"):o).scrollTop;if(1===w&&o){const t=n(o)?b(o).querySelector(".inner-scroll"):o;return!o.querySelector("ion-refresher")&&0===t.scrollTop}return!0},onStart:o=>{if(k=void 0!==t.canDismiss&&!0!==t.canDismiss&&0===S,!h){const t=s(o.event.target);y=t&&n(t)?b(t).querySelector(".inner-scroll"):t}h||O("moving"),o.deltaY>0&&f&&(f.scrollY=!1),v((()=>{t.focus()})),r.progressStart(!0,1-w)},onMove:t=>{if(h||null===A||null===D||(t.currentY>=A&&"moving"===D?O("stationary"):t.currentY<A&&"stationary"===D&&O("moving")),!h&&t.deltaY<=0&&y)return;t.deltaY>0&&f&&(f.scrollY=!1);const o=d.length>1?1-d[1]:void 0,i=1-w+t.deltaY/x,a=void 0!==o&&i>=o&&k,e=a?.95:.9999,s=a&&void 0!==o?o+U((i-o)/(e-o)):i;g=u(1e-4,s,e),r.progressStep(g)},onEnd:t=>{if(!h&&t.deltaY<=0&&y&&y.scrollTop>0)return;const o=w-(t.deltaY+350*t.velocityY)/x,i=d.reduce(((t,i)=>Math.abs(i-o)<Math.abs(t-o)?i:t));P({breakpoint:i,breakpointOffset:g,canDismiss:k,animated:!0})}});return{gesture:$,moveSheetToBreakpoint:P}})(this.el,this.backdropEl,t,o,i,e,this.sortedBreakpoints,this.expandToScroll,(()=>{var t;return null!==(t=this.currentBreakpoint)&&void 0!==t?t:0}),(()=>this.sheetOnDismiss()),(t=>{this.currentBreakpoint!==t&&(this.currentBreakpoint=t,this.ionBreakpointDidChange.emit({breakpoint:t}))}));this.gesture=r,this.moveSheetToBreakpoint=d,this.gesture.enable(!0)}sheetOnDismiss(){this.gestureAnimationDismissing=!0,this.animation.onFinish((async()=>{this.currentBreakpoint=0,this.ionBreakpointDidChange.emit({breakpoint:this.currentBreakpoint}),await this.dismiss(void 0,D),this.gestureAnimationDismissing=!1}))}async dismiss(t,o){var a;if(this.gestureAnimationDismissing&&o!==D)return!1;const e=await this.lockController.lock();if("handler"!==o&&!await this.checkCanDismiss(t,o))return e(),!1;const{presentingElement:r}=this;void 0!==r&&"ios"===I(this)&&_(this.statusBarStyle),"undefined"!=typeof window&&this.keyboardOpenCallback&&(window.removeEventListener(W,this.keyboardOpenCallback),this.keyboardOpenCallback=void 0);const s=await T(this,t,o,"modalLeave",ot,at,{presentingEl:r,currentBreakpoint:null!==(a=this.currentBreakpoint)&&void 0!==a?a:this.initialBreakpoint,backdropBreakpoint:this.backdropBreakpoint,expandToScroll:this.expandToScroll});if(s){const{delegate:t}=this.getDelegate();await f(t,this.usersElement),i((()=>this.el.classList.remove("show-modal"))),this.animation&&this.animation.destroy(),this.gesture&&this.gesture.destroy()}return this.currentBreakpoint=void 0,this.animation=void 0,e(),s}onDidDismiss(){return O(this.el,"ionModalDidDismiss")}onWillDismiss(){return O(this.el,"ionModalWillDismiss")}async setCurrentBreakpoint(t){if(!this.isSheetModal)return void k("[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.");if(!this.breakpoints.includes(t))return void k(`[ion-modal] - Attempted to set invalid breakpoint value ${t}. Please double check that the breakpoint value is part of your defined breakpoints.`);const{currentBreakpoint:o,moveSheetToBreakpoint:i,canDismiss:a,breakpoints:e,animated:r}=this;o!==t&&i&&(this.sheetTransition=i({breakpoint:t,breakpointOffset:1-o,canDismiss:void 0!==a&&!0!==a&&0===e[0],animated:r}),await this.sheetTransition,this.sheetTransition=void 0)}async getCurrentBreakpoint(){return this.currentBreakpoint}async moveToNextBreakpoint(){const{breakpoints:t,currentBreakpoint:o}=this;if(!t||null==o)return!1;const i=t.filter((t=>0!==t)),a=i.indexOf(o),e=i[(a+1)%i.length];return await this.setCurrentBreakpoint(e),!0}render(){const{handle:t,isSheetModal:o,presentingElement:i,htmlAttributes:r,handleBehavior:s,inheritedAttributes:n,focusTrap:d,expandToScroll:h}=this,p=!1!==t&&o,l=I(this),c=void 0!==i&&"ios"===l,m="cycle"===s;return a(e,Object.assign({key:"0991b2e4e32da511e59fb1463b47e4ac1b86d1ca","no-router":!0,tabindex:"-1"},r,{style:{zIndex:`${2e4+this.overlayIndex}`},class:Object.assign({[l]:!0,"modal-default":!c&&!o,"modal-card":c,"modal-sheet":o,"modal-no-expand-scroll":o&&!h,"overlay-hidden":!0,[Y]:!1===d},P(this.cssClass)),onIonBackdropTap:this.onBackdropTap,onIonModalDidPresent:this.onLifecycle,onIonModalWillPresent:this.onLifecycle,onIonModalWillDismiss:this.onLifecycle,onIonModalDidDismiss:this.onLifecycle}),a("ion-backdrop",{key:"ca9453ffe1021fb252ad9460676cfabb5633f00f",ref:t=>this.backdropEl=t,visible:this.showBackdrop,tappable:this.backdropDismiss,part:"backdrop"}),"ios"===l&&a("div",{key:"9f8da446a7b0f3b26aec856e13f6d6d131a7e37b",class:"modal-shadow"}),a("div",Object.assign({key:"9d08bf600571849c97b58f66df40b496a358d1e1",role:"dialog"},n,{"aria-modal":"true",class:"modal-wrapper ion-overlay-wrapper",part:"content",ref:t=>this.wrapperEl=t}),p&&a("button",{key:"f8bf0d1126e5376519101225d9965727121ee042",class:"modal-handle",tabIndex:m?0:-1,"aria-label":"Activate to adjust the size of the dialog overlaying the screen",onClick:m?this.onHandleClick:void 0,part:"handle"}),a("slot",{key:"6d52849df98f2c6c8fbc03996a931ea6a39a512b"})))}get el(){return r(this)}static get watchers(){return{isOpen:["onIsOpenChange"],trigger:["triggerChanged"]}}},rt={ionModalDidPresent:"ionViewDidEnter",ionModalWillPresent:"ionViewWillEnter",ionModalWillDismiss:"ionViewWillLeave",ionModalDidDismiss:"ionViewDidLeave"};et.style={ios:':host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{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);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.4)}:host(.modal-card),:host(.modal-sheet){--border-radius:10px}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:10px}}.modal-wrapper{-webkit-transform:translate3d(0, 100%, 0);transform:translate3d(0, 100%, 0)}@media screen and (max-width: 767px){@supports (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - max(30px, var(--ion-safe-area-top)) - 10px)}}@supports not (width: max(0px, 1px)){:host(.modal-card){--height:calc(100% - 40px)}}:host(.modal-card) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-card){--backdrop-opacity:0;--width:100%;-ms-flex-align:end;align-items:flex-end}:host(.modal-card) .modal-shadow{display:none}:host(.modal-card) ion-backdrop{pointer-events:none}}@media screen and (min-width: 768px){:host(.modal-card){--width:calc(100% - 120px);--height:calc(100% - (120px + var(--ion-safe-area-top) + var(--ion-safe-area-bottom)));--max-width:720px;--max-height:1000px;--backdrop-opacity:0;--box-shadow:0px 0px 30px 10px rgba(0, 0, 0, 0.1);-webkit-transition:all 0.5s ease-in-out;transition:all 0.5s ease-in-out}:host(.modal-card) .modal-wrapper{-webkit-box-shadow:none;box-shadow:none}:host(.modal-card) .modal-shadow{-webkit-box-shadow:var(--box-shadow);box-shadow:var(--box-shadow)}}:host(.modal-sheet) .modal-wrapper{border-start-start-radius:var(--border-radius);border-start-end-radius:var(--border-radius);border-end-end-radius:0;border-end-start-radius:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer ion-toolbar:first-of-type{padding-top:6px}',md:':host{--width:100%;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--overflow:hidden;--border-radius:0;--border-width:0;--border-style:none;--border-color:transparent;--background:var(--ion-background-color, #fff);--box-shadow:none;--backdrop-opacity:0;left:0;right:0;top:0;bottom:0;display:-ms-flexbox;display:flex;position:absolute;-ms-flex-align:center;align-items:center;-ms-flex-pack:center;justify-content:center;outline:none;color:var(--ion-text-color, #000);contain:strict}.modal-wrapper,ion-backdrop{pointer-events:auto}:host(.overlay-hidden){display:none}.modal-wrapper,.modal-shadow{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);overflow:var(--overflow);z-index:10}.modal-shadow{position:absolute;background:transparent}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--width:600px;--height:500px;--ion-safe-area-top:0px;--ion-safe-area-bottom:0px;--ion-safe-area-right:0px;--ion-safe-area-left:0px}}@media only screen and (min-width: 768px) and (min-height: 768px){:host{--width:600px;--height:600px}}.modal-handle{left:0px;right:0px;top:5px;border-radius:8px;-webkit-margin-start:auto;margin-inline-start:auto;-webkit-margin-end:auto;margin-inline-end:auto;position:absolute;width:36px;height:5px;-webkit-transform:translateZ(0);transform:translateZ(0);border:0;background:var(--ion-color-step-350, var(--ion-background-color-step-350, #c0c0be));cursor:pointer;z-index:11}.modal-handle::before{-webkit-padding-start:4px;padding-inline-start:4px;-webkit-padding-end:4px;padding-inline-end:4px;padding-top:4px;padding-bottom:4px;position:absolute;width:36px;height:5px;-webkit-transform:translate(-50%, -50%);transform:translate(-50%, -50%);content:""}:host(.modal-sheet){--height:calc(100% - (var(--ion-safe-area-top) + 10px))}:host(.modal-sheet) .modal-wrapper,:host(.modal-sheet) .modal-shadow{position:absolute;bottom:0}:host(.modal-sheet.modal-no-expand-scroll) ion-footer{position:absolute;bottom:0;width:var(--width)}:host{--backdrop-opacity:var(--ion-backdrop-opacity, 0.32)}@media only screen and (min-width: 768px) and (min-height: 600px){:host{--border-radius:2px;--box-shadow:0 28px 48px rgba(0, 0, 0, 0.4)}}.modal-wrapper{-webkit-transform:translate3d(0, 40px, 0);transform:translate3d(0, 40px, 0);opacity:0.01}'};export{et as ion_modal}
|