@ionic/core 8.6.1-nightly.20250610 → 8.6.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/ion-item-sliding.js +3 -2
- package/components/modal.js +76 -47
- package/dist/cjs/ion-item-option_3.cjs.entry.js +3 -2
- package/dist/cjs/ion-modal.cjs.entry.js +76 -47
- package/dist/collection/components/item-sliding/item-sliding.js +3 -2
- package/dist/collection/components/modal/gestures/sheet.js +76 -47
- package/dist/docs.json +1 -1
- package/dist/esm/ion-item-option_3.entry.js +3 -2
- package/dist/esm/ion-modal.entry.js +76 -47
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-29759454.entry.js +4 -0
- package/dist/ionic/{p-66510682.entry.js → p-a92bfa13.entry.js} +1 -1
- package/hydrate/index.js +79 -49
- package/hydrate/index.mjs +79 -49
- package/package.json +1 -1
- package/dist/ionic/p-90f87086.entry.js +0 -4
package/hydrate/index.js
CHANGED
|
@@ -18348,6 +18348,7 @@ class ItemSliding {
|
|
|
18348
18348
|
}
|
|
18349
18349
|
}
|
|
18350
18350
|
async updateOptions() {
|
|
18351
|
+
var _a;
|
|
18351
18352
|
const options = this.el.querySelectorAll('ion-item-options');
|
|
18352
18353
|
let sides = 0;
|
|
18353
18354
|
// Reset left and right options in case they were removed
|
|
@@ -18361,7 +18362,7 @@ class ItemSliding {
|
|
|
18361
18362
|
*/
|
|
18362
18363
|
// eslint-disable-next-line custom-rules/no-component-on-ready-method
|
|
18363
18364
|
const option = item.componentOnReady !== undefined ? await item.componentOnReady() : item;
|
|
18364
|
-
const side = isEndSide(option.side) ? 'end' : 'start';
|
|
18365
|
+
const side = isEndSide((_a = option.side) !== null && _a !== void 0 ? _a : option.getAttribute('side')) ? 'end' : 'start';
|
|
18365
18366
|
if (side === 'start') {
|
|
18366
18367
|
this.leftOptions = option;
|
|
18367
18368
|
sides |= 1 /* ItemSide.Start */;
|
|
@@ -18559,7 +18560,7 @@ class ItemSliding {
|
|
|
18559
18560
|
}
|
|
18560
18561
|
render() {
|
|
18561
18562
|
const mode = getIonMode$1(this);
|
|
18562
|
-
return (hAsync(Host, { key: '
|
|
18563
|
+
return (hAsync(Host, { key: 'd812322c9fb5da4ee16e99dc38bfb24cb4590d03', class: {
|
|
18563
18564
|
[mode]: true,
|
|
18564
18565
|
'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
|
|
18565
18566
|
'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
|
|
@@ -21430,7 +21431,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21430
21431
|
let offset = 0;
|
|
21431
21432
|
let canDismissBlocksGesture = false;
|
|
21432
21433
|
let cachedScrollEl = null;
|
|
21433
|
-
let
|
|
21434
|
+
let cachedFooterEls = null;
|
|
21434
21435
|
let cachedFooterYPosition = null;
|
|
21435
21436
|
let currentFooterState = null;
|
|
21436
21437
|
const canDismissMaxStep = 0.95;
|
|
@@ -21467,60 +21468,81 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21467
21468
|
* @param newPosition Whether the footer is in a moving or stationary position.
|
|
21468
21469
|
*/
|
|
21469
21470
|
const swapFooterPosition = (newPosition) => {
|
|
21470
|
-
if (!
|
|
21471
|
-
|
|
21472
|
-
if (!
|
|
21471
|
+
if (!cachedFooterEls) {
|
|
21472
|
+
cachedFooterEls = Array.from(baseEl.querySelectorAll('ion-footer'));
|
|
21473
|
+
if (!cachedFooterEls.length) {
|
|
21473
21474
|
return;
|
|
21474
21475
|
}
|
|
21475
21476
|
}
|
|
21476
21477
|
const page = baseEl.querySelector('.ion-page');
|
|
21477
21478
|
currentFooterState = newPosition;
|
|
21478
21479
|
if (newPosition === 'stationary') {
|
|
21479
|
-
|
|
21480
|
-
|
|
21481
|
-
|
|
21482
|
-
|
|
21483
|
-
|
|
21484
|
-
|
|
21485
|
-
|
|
21486
|
-
|
|
21487
|
-
|
|
21488
|
-
|
|
21480
|
+
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
21481
|
+
// Reset positioning styles to allow normal document flow
|
|
21482
|
+
cachedFooterEl.classList.remove('modal-footer-moving');
|
|
21483
|
+
cachedFooterEl.style.removeProperty('position');
|
|
21484
|
+
cachedFooterEl.style.removeProperty('width');
|
|
21485
|
+
cachedFooterEl.style.removeProperty('height');
|
|
21486
|
+
cachedFooterEl.style.removeProperty('top');
|
|
21487
|
+
cachedFooterEl.style.removeProperty('left');
|
|
21488
|
+
page === null || page === void 0 ? void 0 : page.style.removeProperty('padding-bottom');
|
|
21489
|
+
// Move to page
|
|
21490
|
+
page === null || page === void 0 ? void 0 : page.appendChild(cachedFooterEl);
|
|
21491
|
+
});
|
|
21489
21492
|
}
|
|
21490
21493
|
else {
|
|
21491
|
-
|
|
21492
|
-
|
|
21493
|
-
|
|
21494
|
-
|
|
21495
|
-
|
|
21496
|
-
|
|
21497
|
-
|
|
21498
|
-
|
|
21499
|
-
|
|
21500
|
-
|
|
21501
|
-
|
|
21502
|
-
|
|
21503
|
-
|
|
21504
|
-
|
|
21505
|
-
|
|
21506
|
-
|
|
21507
|
-
|
|
21508
|
-
|
|
21509
|
-
|
|
21510
|
-
|
|
21511
|
-
|
|
21512
|
-
|
|
21513
|
-
|
|
21514
|
-
|
|
21515
|
-
|
|
21516
|
-
|
|
21517
|
-
|
|
21518
|
-
|
|
21519
|
-
|
|
21520
|
-
|
|
21521
|
-
|
|
21522
|
-
}
|
|
21523
|
-
|
|
21494
|
+
let footerHeights = 0;
|
|
21495
|
+
cachedFooterEls.forEach((cachedFooterEl, index) => {
|
|
21496
|
+
// Get both the footer and document body positions
|
|
21497
|
+
const cachedFooterElRect = cachedFooterEl.getBoundingClientRect();
|
|
21498
|
+
const bodyRect = document.body.getBoundingClientRect();
|
|
21499
|
+
// Calculate the total height of all footers
|
|
21500
|
+
// so we can add padding to the page element
|
|
21501
|
+
footerHeights += cachedFooterEl.clientHeight;
|
|
21502
|
+
// Calculate absolute position relative to body
|
|
21503
|
+
// We need to subtract the body's offsetTop to get true position within document.body
|
|
21504
|
+
const absoluteTop = cachedFooterElRect.top - bodyRect.top;
|
|
21505
|
+
const absoluteLeft = cachedFooterElRect.left - bodyRect.left;
|
|
21506
|
+
// Capture the footer's current dimensions and store them in CSS variables for
|
|
21507
|
+
// later use when applying absolute positioning.
|
|
21508
|
+
cachedFooterEl.style.setProperty('--pinned-width', `${cachedFooterEl.clientWidth}px`);
|
|
21509
|
+
cachedFooterEl.style.setProperty('--pinned-height', `${cachedFooterEl.clientHeight}px`);
|
|
21510
|
+
cachedFooterEl.style.setProperty('--pinned-top', `${absoluteTop}px`);
|
|
21511
|
+
cachedFooterEl.style.setProperty('--pinned-left', `${absoluteLeft}px`);
|
|
21512
|
+
// Only cache the first footer's Y position
|
|
21513
|
+
// This is used to determine if the sheet has been moved below the footer
|
|
21514
|
+
// and needs to be swapped back to stationary so it collapses correctly.
|
|
21515
|
+
if (index === 0) {
|
|
21516
|
+
cachedFooterYPosition = absoluteTop;
|
|
21517
|
+
// If there's a header, we need to combine the header height with the footer position
|
|
21518
|
+
// because the header moves with the drag handle, so when it starts overlapping the footer,
|
|
21519
|
+
// we need to account for that.
|
|
21520
|
+
const header = baseEl.querySelector('ion-header');
|
|
21521
|
+
if (header) {
|
|
21522
|
+
cachedFooterYPosition -= header.clientHeight;
|
|
21523
|
+
}
|
|
21524
|
+
}
|
|
21525
|
+
});
|
|
21526
|
+
// Apply the pinning of styles after we've calculated everything
|
|
21527
|
+
// so that we don't cause layouts to shift while calculating the footer positions.
|
|
21528
|
+
// Otherwise, with multiple footers we'll end up capturing the wrong positions.
|
|
21529
|
+
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
21530
|
+
// Add padding to the parent element to prevent content from being hidden
|
|
21531
|
+
// when the footer is positioned absolutely. This has to be done before we
|
|
21532
|
+
// make the footer absolutely positioned or we may accidentally cause the
|
|
21533
|
+
// sheet to scroll.
|
|
21534
|
+
page === null || page === void 0 ? void 0 : page.style.setProperty('padding-bottom', `${footerHeights}px`);
|
|
21535
|
+
// Apply positioning styles to keep footer at bottom
|
|
21536
|
+
cachedFooterEl.classList.add('modal-footer-moving');
|
|
21537
|
+
// Apply our preserved styles to pin the footer
|
|
21538
|
+
cachedFooterEl.style.setProperty('position', 'absolute');
|
|
21539
|
+
cachedFooterEl.style.setProperty('width', 'var(--pinned-width)');
|
|
21540
|
+
cachedFooterEl.style.setProperty('height', 'var(--pinned-height)');
|
|
21541
|
+
cachedFooterEl.style.setProperty('top', 'var(--pinned-top)');
|
|
21542
|
+
cachedFooterEl.style.setProperty('left', 'var(--pinned-left)');
|
|
21543
|
+
// Move the element to the body when everything else is done
|
|
21544
|
+
document.body.appendChild(cachedFooterEl);
|
|
21545
|
+
});
|
|
21524
21546
|
}
|
|
21525
21547
|
};
|
|
21526
21548
|
/**
|
|
@@ -21712,6 +21734,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21712
21734
|
* is not scrolled to the top.
|
|
21713
21735
|
*/
|
|
21714
21736
|
if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl && cachedScrollEl.scrollTop > 0) {
|
|
21737
|
+
/**
|
|
21738
|
+
* If expand to scroll is disabled, we need to make sure we swap the footer position
|
|
21739
|
+
* back to stationary so that it will collapse correctly if the modal is dismissed without
|
|
21740
|
+
* dragging (e.g. through a dismiss button).
|
|
21741
|
+
* This can cause issues if the user has a modal with content that can be dragged, as we'll
|
|
21742
|
+
* swap to moving on drag and if we don't swap back here then the footer will get stuck.
|
|
21743
|
+
*/
|
|
21744
|
+
swapFooterPosition('stationary');
|
|
21715
21745
|
return;
|
|
21716
21746
|
}
|
|
21717
21747
|
/**
|
package/hydrate/index.mjs
CHANGED
|
@@ -18346,6 +18346,7 @@ class ItemSliding {
|
|
|
18346
18346
|
}
|
|
18347
18347
|
}
|
|
18348
18348
|
async updateOptions() {
|
|
18349
|
+
var _a;
|
|
18349
18350
|
const options = this.el.querySelectorAll('ion-item-options');
|
|
18350
18351
|
let sides = 0;
|
|
18351
18352
|
// Reset left and right options in case they were removed
|
|
@@ -18359,7 +18360,7 @@ class ItemSliding {
|
|
|
18359
18360
|
*/
|
|
18360
18361
|
// eslint-disable-next-line custom-rules/no-component-on-ready-method
|
|
18361
18362
|
const option = item.componentOnReady !== undefined ? await item.componentOnReady() : item;
|
|
18362
|
-
const side = isEndSide(option.side) ? 'end' : 'start';
|
|
18363
|
+
const side = isEndSide((_a = option.side) !== null && _a !== void 0 ? _a : option.getAttribute('side')) ? 'end' : 'start';
|
|
18363
18364
|
if (side === 'start') {
|
|
18364
18365
|
this.leftOptions = option;
|
|
18365
18366
|
sides |= 1 /* ItemSide.Start */;
|
|
@@ -18557,7 +18558,7 @@ class ItemSliding {
|
|
|
18557
18558
|
}
|
|
18558
18559
|
render() {
|
|
18559
18560
|
const mode = getIonMode$1(this);
|
|
18560
|
-
return (hAsync(Host, { key: '
|
|
18561
|
+
return (hAsync(Host, { key: 'd812322c9fb5da4ee16e99dc38bfb24cb4590d03', class: {
|
|
18561
18562
|
[mode]: true,
|
|
18562
18563
|
'item-sliding-active-slide': this.state !== 2 /* SlidingState.Disabled */,
|
|
18563
18564
|
'item-sliding-active-options-end': (this.state & 8 /* SlidingState.End */) !== 0,
|
|
@@ -21428,7 +21429,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21428
21429
|
let offset = 0;
|
|
21429
21430
|
let canDismissBlocksGesture = false;
|
|
21430
21431
|
let cachedScrollEl = null;
|
|
21431
|
-
let
|
|
21432
|
+
let cachedFooterEls = null;
|
|
21432
21433
|
let cachedFooterYPosition = null;
|
|
21433
21434
|
let currentFooterState = null;
|
|
21434
21435
|
const canDismissMaxStep = 0.95;
|
|
@@ -21465,60 +21466,81 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21465
21466
|
* @param newPosition Whether the footer is in a moving or stationary position.
|
|
21466
21467
|
*/
|
|
21467
21468
|
const swapFooterPosition = (newPosition) => {
|
|
21468
|
-
if (!
|
|
21469
|
-
|
|
21470
|
-
if (!
|
|
21469
|
+
if (!cachedFooterEls) {
|
|
21470
|
+
cachedFooterEls = Array.from(baseEl.querySelectorAll('ion-footer'));
|
|
21471
|
+
if (!cachedFooterEls.length) {
|
|
21471
21472
|
return;
|
|
21472
21473
|
}
|
|
21473
21474
|
}
|
|
21474
21475
|
const page = baseEl.querySelector('.ion-page');
|
|
21475
21476
|
currentFooterState = newPosition;
|
|
21476
21477
|
if (newPosition === 'stationary') {
|
|
21477
|
-
|
|
21478
|
-
|
|
21479
|
-
|
|
21480
|
-
|
|
21481
|
-
|
|
21482
|
-
|
|
21483
|
-
|
|
21484
|
-
|
|
21485
|
-
|
|
21486
|
-
|
|
21478
|
+
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
21479
|
+
// Reset positioning styles to allow normal document flow
|
|
21480
|
+
cachedFooterEl.classList.remove('modal-footer-moving');
|
|
21481
|
+
cachedFooterEl.style.removeProperty('position');
|
|
21482
|
+
cachedFooterEl.style.removeProperty('width');
|
|
21483
|
+
cachedFooterEl.style.removeProperty('height');
|
|
21484
|
+
cachedFooterEl.style.removeProperty('top');
|
|
21485
|
+
cachedFooterEl.style.removeProperty('left');
|
|
21486
|
+
page === null || page === void 0 ? void 0 : page.style.removeProperty('padding-bottom');
|
|
21487
|
+
// Move to page
|
|
21488
|
+
page === null || page === void 0 ? void 0 : page.appendChild(cachedFooterEl);
|
|
21489
|
+
});
|
|
21487
21490
|
}
|
|
21488
21491
|
else {
|
|
21489
|
-
|
|
21490
|
-
|
|
21491
|
-
|
|
21492
|
-
|
|
21493
|
-
|
|
21494
|
-
|
|
21495
|
-
|
|
21496
|
-
|
|
21497
|
-
|
|
21498
|
-
|
|
21499
|
-
|
|
21500
|
-
|
|
21501
|
-
|
|
21502
|
-
|
|
21503
|
-
|
|
21504
|
-
|
|
21505
|
-
|
|
21506
|
-
|
|
21507
|
-
|
|
21508
|
-
|
|
21509
|
-
|
|
21510
|
-
|
|
21511
|
-
|
|
21512
|
-
|
|
21513
|
-
|
|
21514
|
-
|
|
21515
|
-
|
|
21516
|
-
|
|
21517
|
-
|
|
21518
|
-
|
|
21519
|
-
|
|
21520
|
-
}
|
|
21521
|
-
|
|
21492
|
+
let footerHeights = 0;
|
|
21493
|
+
cachedFooterEls.forEach((cachedFooterEl, index) => {
|
|
21494
|
+
// Get both the footer and document body positions
|
|
21495
|
+
const cachedFooterElRect = cachedFooterEl.getBoundingClientRect();
|
|
21496
|
+
const bodyRect = document.body.getBoundingClientRect();
|
|
21497
|
+
// Calculate the total height of all footers
|
|
21498
|
+
// so we can add padding to the page element
|
|
21499
|
+
footerHeights += cachedFooterEl.clientHeight;
|
|
21500
|
+
// Calculate absolute position relative to body
|
|
21501
|
+
// We need to subtract the body's offsetTop to get true position within document.body
|
|
21502
|
+
const absoluteTop = cachedFooterElRect.top - bodyRect.top;
|
|
21503
|
+
const absoluteLeft = cachedFooterElRect.left - bodyRect.left;
|
|
21504
|
+
// Capture the footer's current dimensions and store them in CSS variables for
|
|
21505
|
+
// later use when applying absolute positioning.
|
|
21506
|
+
cachedFooterEl.style.setProperty('--pinned-width', `${cachedFooterEl.clientWidth}px`);
|
|
21507
|
+
cachedFooterEl.style.setProperty('--pinned-height', `${cachedFooterEl.clientHeight}px`);
|
|
21508
|
+
cachedFooterEl.style.setProperty('--pinned-top', `${absoluteTop}px`);
|
|
21509
|
+
cachedFooterEl.style.setProperty('--pinned-left', `${absoluteLeft}px`);
|
|
21510
|
+
// Only cache the first footer's Y position
|
|
21511
|
+
// This is used to determine if the sheet has been moved below the footer
|
|
21512
|
+
// and needs to be swapped back to stationary so it collapses correctly.
|
|
21513
|
+
if (index === 0) {
|
|
21514
|
+
cachedFooterYPosition = absoluteTop;
|
|
21515
|
+
// If there's a header, we need to combine the header height with the footer position
|
|
21516
|
+
// because the header moves with the drag handle, so when it starts overlapping the footer,
|
|
21517
|
+
// we need to account for that.
|
|
21518
|
+
const header = baseEl.querySelector('ion-header');
|
|
21519
|
+
if (header) {
|
|
21520
|
+
cachedFooterYPosition -= header.clientHeight;
|
|
21521
|
+
}
|
|
21522
|
+
}
|
|
21523
|
+
});
|
|
21524
|
+
// Apply the pinning of styles after we've calculated everything
|
|
21525
|
+
// so that we don't cause layouts to shift while calculating the footer positions.
|
|
21526
|
+
// Otherwise, with multiple footers we'll end up capturing the wrong positions.
|
|
21527
|
+
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
21528
|
+
// Add padding to the parent element to prevent content from being hidden
|
|
21529
|
+
// when the footer is positioned absolutely. This has to be done before we
|
|
21530
|
+
// make the footer absolutely positioned or we may accidentally cause the
|
|
21531
|
+
// sheet to scroll.
|
|
21532
|
+
page === null || page === void 0 ? void 0 : page.style.setProperty('padding-bottom', `${footerHeights}px`);
|
|
21533
|
+
// Apply positioning styles to keep footer at bottom
|
|
21534
|
+
cachedFooterEl.classList.add('modal-footer-moving');
|
|
21535
|
+
// Apply our preserved styles to pin the footer
|
|
21536
|
+
cachedFooterEl.style.setProperty('position', 'absolute');
|
|
21537
|
+
cachedFooterEl.style.setProperty('width', 'var(--pinned-width)');
|
|
21538
|
+
cachedFooterEl.style.setProperty('height', 'var(--pinned-height)');
|
|
21539
|
+
cachedFooterEl.style.setProperty('top', 'var(--pinned-top)');
|
|
21540
|
+
cachedFooterEl.style.setProperty('left', 'var(--pinned-left)');
|
|
21541
|
+
// Move the element to the body when everything else is done
|
|
21542
|
+
document.body.appendChild(cachedFooterEl);
|
|
21543
|
+
});
|
|
21522
21544
|
}
|
|
21523
21545
|
};
|
|
21524
21546
|
/**
|
|
@@ -21710,6 +21732,14 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21710
21732
|
* is not scrolled to the top.
|
|
21711
21733
|
*/
|
|
21712
21734
|
if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl && cachedScrollEl.scrollTop > 0) {
|
|
21735
|
+
/**
|
|
21736
|
+
* If expand to scroll is disabled, we need to make sure we swap the footer position
|
|
21737
|
+
* back to stationary so that it will collapse correctly if the modal is dismissed without
|
|
21738
|
+
* dragging (e.g. through a dismiss button).
|
|
21739
|
+
* This can cause issues if the user has a modal with content that can be dragged, as we'll
|
|
21740
|
+
* swap to moving on drag and if we don't swap back here then the footer will get stuck.
|
|
21741
|
+
*/
|
|
21742
|
+
swapFooterPosition('stationary');
|
|
21713
21743
|
return;
|
|
21714
21744
|
}
|
|
21715
21745
|
/**
|
package/package.json
CHANGED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{r as t,d as o,m as a,w as i,e,l as r,h as n,j as s,k as d}from"./p-B_U9CtaY.js";import{f as h,i as p,d as l,r as c,a as m,p as f}from"./p-QwEXyOze.js";import{C as b,a as u,d as x}from"./p-BhLqfMrf.js";import{e as w,g as v,r as g,b as k,h as y}from"./p-Do-uqmtX.js";import{c as A}from"./p-B-hirT0v.js";import{g as B}from"./p-CIGNaXM1.js";import{G as D,O as Y,F as E,e as S,B as j,j as C,k as M,f as T,g as O,h as $}from"./p-aIxOGKys.js";import{g as P}from"./p-DiVJyqlX.js";import{e as R,w as z}from"./p-BROiNJRB.js";import{KEYBOARD_DID_OPEN as I}from"./p-9eeaBrnk.js";import{c as W}from"./p-bNmY-WfR.js";import{g as L}from"./p-hHmYLOfE.js";import{createGesture as N}from"./p-Cl0B-RWe.js";import{w as H}from"./p-ZjP4CjeZ.js";import"./p-DzH0J0yi.js";import"./p-BTEOs1at.js";import"./p-D13Eaw-8.js";var K;!function(t){t.Dark="DARK",t.Light="LIGHT",t.Default="DEFAULT"}(K||(K={}));const Z={getEngine(){const t=B();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 K.Default;const{style:o}=await t.getInfo();return o}},F=(t,o)=>{if(1===o)return 0;const a=1/(1-o);return t*a+-o*a},G=()=>{!H||H.innerWidth>=768||Z.setStyle({style:K.Dark})},V=(t=K.Default)=>{!H||H.innerWidth>=768||Z.setStyle({style:t})},_=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"))},X=t=>.00255275*2.71828**(-14.9619*t)-1.00255*2.71828**(-.0380968*t)+1,q=.915,J=(t,o)=>w(400,t/Math.abs(1.1*o),500),U=t=>{const{currentBreakpoint:o,backdropBreakpoint:a,expandToScroll:i}=t,e=void 0===a||a<o,r=e?`calc(var(--backdrop-opacity) * ${o})`:"0",n=W("backdropAnimation").fromTo("opacity",0,r);return e&&n.beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),{wrapperAnimation:W("wrapperAnimation").keyframes([{offset:0,opacity:1,transform:"translateY(100%)"},{offset:1,opacity:1,transform:`translateY(${100-100*o}%)`}]),backdropAnimation:n,contentAnimation:i?void 0:W("contentAnimation").keyframes([{offset:0,opacity:1,maxHeight:100*(1-o)+"%"},{offset:1,opacity:1,maxHeight:100*o+"%"}])}},Q=t=>{const{currentBreakpoint:o,backdropBreakpoint:a}=t,i=`calc(var(--backdrop-opacity) * ${F(o,a)})`,e=[{offset:0,opacity:i},{offset:1,opacity:0}],r=[{offset:0,opacity:i},{offset:a,opacity:0},{offset:1,opacity:0}],n=W("backdropAnimation").keyframes(0!==a?r:e);return{wrapperAnimation:W("wrapperAnimation").keyframes([{offset:0,opacity:1,transform:`translateY(${100-100*o}%)`},{offset:1,opacity:1,transform:"translateY(100%)"}]),backdropAnimation:n}},tt=(t,o)=>{const{presentingEl:a,currentBreakpoint:i,expandToScroll:e}=o,r=v(t),{wrapperAnimation:n,backdropAnimation:s,contentAnimation:d}=void 0!==i?U(o):{backdropAnimation:W().fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),wrapperAnimation:W().fromTo("transform","translateY(100vh)","translateY(0vh)"),contentAnimation:void 0};s.addElement(r.querySelector("ion-backdrop")),n.addElement(r.querySelectorAll(".modal-wrapper, .modal-shadow")).beforeStyles({opacity:1}),!e&&(null==d||d.addElement(t.querySelector(".ion-page")));const h=W("entering-base").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(500).addAnimation([n]);if(d&&h.addAnimation(d),a){const t=window.innerWidth<768,o="ION-MODAL"===a.tagName&&void 0!==a.presentingElement,i=v(a),e=W().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",i=`translateY(${o?"-10px":t}) scale(0.915)`;e.afterStyles({transform:i}).beforeAddWrite((()=>r.style.setProperty("background-color","black"))).addElement(a).keyframes([{offset:0,filter:"contrast(1)",transform:"translateY(0px) scale(1)",borderRadius:"0px"},{offset:1,filter:"contrast(0.85)",transform:i,borderRadius:"10px 10px 0 0"}]),h.addAnimation(e)}else if(h.addAnimation(s),o){const t=`translateY(-10px) scale(${o?q:1})`;e.afterStyles({transform:t}).addElement(i.querySelector(".modal-wrapper")).keyframes([{offset:0,filter:"contrast(1)",transform:"translateY(0) scale(1)"},{offset:1,filter:"contrast(0.85)",transform:t}]);const a=W().afterStyles({transform:t}).addElement(i.querySelector(".modal-shadow")).keyframes([{offset:0,opacity:"1",transform:"translateY(0) scale(1)"},{offset:1,opacity:"0",transform:t}]);h.addAnimation([e,a])}else n.fromTo("opacity","0","1")}else h.addAnimation(s);return h},ot=(t,o,a=500)=>{const{presentingEl:i,currentBreakpoint:e}=o,r=v(t),{wrapperAnimation:n,backdropAnimation:s}=void 0!==e?Q(o):{backdropAnimation:W().fromTo("opacity","var(--backdrop-opacity)",0),wrapperAnimation:W().fromTo("transform","translateY(0vh)","translateY(100vh)")};s.addElement(r.querySelector("ion-backdrop")),n.addElement(r.querySelectorAll(".modal-wrapper, .modal-shadow")).beforeStyles({opacity:1});const d=W("leaving-base").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(a).addAnimation(n);if(i){const t=window.innerWidth<768,o="ION-MODAL"===i.tagName&&void 0!==i.presentingElement,a=v(i),e=W().beforeClearStyles(["transform"]).afterClearStyles(["transform"]).onFinish((t=>{1===t&&(i.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",a=`translateY(${o?"-10px":t}) scale(0.915)`;e.addElement(i).keyframes([{offset:0,filter:"contrast(0.85)",transform:a,borderRadius:"10px 10px 0 0"},{offset:1,filter:"contrast(1)",transform:"translateY(0px) scale(1)",borderRadius:"0px"}]),d.addAnimation(e)}else if(d.addAnimation(s),o){const t=`translateY(-10px) scale(${o?q:1})`;e.addElement(a.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 i=W().addElement(a.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,i])}else n.fromTo("opacity","1","0")}else d.addAnimation(s);return d},at=(t,o)=>{const{currentBreakpoint:a,expandToScroll:i}=o,e=v(t),{wrapperAnimation:r,backdropAnimation:n,contentAnimation:s}=void 0!==a?U(o):{backdropAnimation:W().fromTo("opacity",.01,"var(--backdrop-opacity)").beforeStyles({"pointer-events":"none"}).afterClearStyles(["pointer-events"]),wrapperAnimation:W().keyframes([{offset:0,opacity:.01,transform:"translateY(40px)"},{offset:1,opacity:1,transform:"translateY(0px)"}]),contentAnimation:void 0};n.addElement(e.querySelector("ion-backdrop")),r.addElement(e.querySelector(".modal-wrapper")),!i&&(null==s||s.addElement(t.querySelector(".ion-page")));const d=W().addElement(t).easing("cubic-bezier(0.36,0.66,0.04,1)").duration(280).addAnimation([n,r]);return s&&d.addAnimation(s),d},it=(t,o)=>{const{currentBreakpoint:a}=o,i=v(t),{wrapperAnimation:e,backdropAnimation:r}=void 0!==a?Q(o):{backdropAnimation:W().fromTo("opacity","var(--backdrop-opacity)",0),wrapperAnimation:W().keyframes([{offset:0,opacity:.99,transform:"translateY(0px)"},{offset:1,opacity:0,transform:"translateY(40px)"}])};return r.addElement(i.querySelector("ion-backdrop")),e.addElement(i.querySelector(".modal-wrapper")),W().easing("cubic-bezier(0.47,0,0.745,0.715)").duration(200).addAnimation([r,e])},et=class{constructor(a){t(this,a),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=A(),this.triggerController=S(),this.coreDelegate=b(),this.isSheetModal=!1,this.inheritedAttributes={},this.inline=!1,this.gestureAnimationDismissing=!1,this.presented=!1,this.hasController=!1,this.keyboardClose=!0,this.expandToScroll=!0,this.backdropBreakpoint=0,this.handleBehavior="none",this.backdropDismiss=!0,this.showBackdrop=!0,this.animated=!0,this.isOpen=!1,this.keepContentsMounted=!1,this.focusTrap=!0,this.canDismiss=!0,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,a=rt[t.type];if(o&&a){const i=new CustomEvent(a,{bubbles:!1,cancelable:!1,detail:t.detail});o.dispatchEvent(i)}}}onIsOpenChange(t,o){!0===t&&!1===o?this.present():!1===t&&!0===o&&this.dismiss()}triggerChanged(){const{trigger:t,el:o,triggerController:a}=this;t&&a.addClickListener(o,t)}breakpointsChanged(t){void 0!==t&&(this.sortedBreakpoints=t.sort(((t,o)=>t-o)))}connectedCallback(){const{el:t}=this;C(t),this.triggerChanged()}disconnectedCallback(){this.triggerController.removeClickListener()}componentWillLoad(){var t;const{breakpoints:o,initialBreakpoint:i,el:e,htmlAttributes:r}=this,n=this.isSheetModal=void 0!==o&&void 0!==i,s=["aria-label","role"];this.inheritedAttributes=k(e,s),void 0!==r&&s.forEach((t=>{r[t]&&(this.inheritedAttributes=Object.assign(Object.assign({},this.inheritedAttributes),{[t]:r[t]}),delete r[t])})),n&&(this.currentBreakpoint=this.initialBreakpoint),void 0===o||void 0===i||o.includes(i)||a("[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&&g((()=>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:a}=this;return"function"==typeof a?a(t,o):a}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:r,delegate:n}=this.getDelegate(!0);this.ionMount.emit(),this.usersElement=await u(n,a,this.component,["ion-page"],this.componentProps,r),y(a)?await R(this.usersElement):this.keepContentsMounted||await z(),i((()=>this.el.classList.add("show-modal")));const s=void 0!==o;s&&"ios"===e(this)&&(this.statusBarStyle=await Z.getStyle(),G()),await T(this,"modalEnter",tt,at,{presentingEl:o,currentBreakpoint:this.initialBreakpoint,backdropBreakpoint:this.backdropBreakpoint,expandToScroll:this.expandToScroll}),"undefined"!=typeof window&&(this.keyboardOpenCallback=()=>{this.gesture&&(this.gesture.enable(!1),g((()=>{this.gesture&&this.gesture.enable(!0)})))},window.addEventListener(I,this.keyboardOpenCallback)),this.isSheetModal?this.initSheetGesture():s&&this.initSwipeToClose(),t()}initSwipeToClose(){var t;if("ios"!==e(this))return;const{el:o}=this,a=this.leaveAnimation||r.get("modalLeave",ot),i=this.animation=a(o,{presentingEl:this.presentingElement,expandToScroll:this.expandToScroll});if(!m(o))return void f(o);const n=null!==(t=this.statusBarStyle)&&void 0!==t?t:K.Default;this.gesture=((t,o,a,i)=>{const e=.5,r=t.offsetHeight;let n=!1,s=!1,d=null,m=null,f=!0,b=0;const u=N({el:t,gestureName:"modalSwipeToClose",gesturePriority:Y,direction:"y",threshold:10,canStart:t=>{const o=t.event.target;if(null===o||!o.closest)return!0;if(d=h(o),d){if(p(d)){const t=v(d);m=t.querySelector(".inner-scroll")}else m=d;return!d.querySelector("ion-refresher")&&0===m.scrollTop}return null===o.closest("ion-footer")},onStart:a=>{const{deltaY:i}=a;f=!d||!p(d)||d.scrollY,s=void 0!==t.canDismiss&&!0!==t.canDismiss,i>0&&d&&l(d),o.progressStart(!0,n?1:0)},onMove:t=>{const{deltaY:i}=t;i>0&&d&&l(d);const n=t.deltaY/r,h=n>=0&&s,p=h?.2:.9999,c=h?X(n/p):n,m=w(1e-4,c,p);o.progressStep(m),m>=e&&b<e?V(a):m<e&&b>=e&&G(),b=m},onEnd:a=>{const h=a.velocityY,p=a.deltaY/r,l=p>=0&&s,m=l?.2:.9999,b=l?X(p/m):p,x=w(1e-4,b,m),v=!l&&(a.deltaY+1e3*h)/r>=e;let g=v?-.001:.001;v?(o.easing("cubic-bezier(0.32, 0.72, 0, 1)"),g+=L([0,0],[.32,.72],[0,1],[1,1],x)[0]):(o.easing("cubic-bezier(1, 0, 0.68, 0.28)"),g+=L([0,0],[1,0],[.68,.28],[1,1],x)[0]);const k=J(v?p*r:(1-x)*r,h);n=v,u.enable(!1),d&&c(d,f),o.onFinish((()=>{v||u.enable(!0)})).progressEnd(v?1:0,g,k),l&&x>m/4?_(t,o):v&&i()}});return u})(o,i,n,(()=>{this.gestureAnimationDismissing=!0,V(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:a}=this;if(!t||void 0===o)return;const i=this.enterAnimation||r.get("modalEnter",tt),e=this.animation=i(this.el,{presentingEl:this.presentingElement,currentBreakpoint:o,backdropBreakpoint:a,expandToScroll:this.expandToScroll});e.progressStart(!0,1);const{gesture:n,moveSheetToBreakpoint:s}=((t,o,a,i,e,r,n=[],s,d,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"),b=a.clientHeight;let u=i,x=0,k=!1,y=null,A=null,B=null,D=null;const Y=n[n.length-1],S=n[0],j=r.childAnimations.find((t=>"wrapperAnimation"===t.id)),C=r.childAnimations.find((t=>"backdropAnimation"===t.id)),M=r.childAnimations.find((t=>"contentAnimation"===t.id)),T=()=>{t.style.setProperty("pointer-events","auto"),o.style.setProperty("pointer-events","auto"),t.classList.remove(E)},O=()=>{t.style.setProperty("pointer-events","none"),o.style.setProperty("pointer-events","none"),t.classList.add(E)},$=o=>{if(!A&&(A=t.querySelector("ion-footer"),!A))return;const a=t.querySelector(".ion-page");if(D=o,"stationary"===o)A.classList.remove("modal-footer-moving"),A.style.removeProperty("position"),A.style.removeProperty("width"),A.style.removeProperty("height"),A.style.removeProperty("top"),A.style.removeProperty("left"),null==a||a.style.removeProperty("padding-bottom"),null==a||a.appendChild(A);else{const o=A.getBoundingClientRect(),i=document.body.getBoundingClientRect();null==a||a.style.setProperty("padding-bottom",`${A.clientHeight}px`),A.classList.add("modal-footer-moving");const e=o.top-i.top,r=o.left-i.left;A.style.setProperty("position","absolute"),A.style.setProperty("width",`${A.clientWidth}px`),A.style.setProperty("height",`${A.clientHeight}px`),A.style.setProperty("top",`${e}px`),A.style.setProperty("left",`${r}px`),B=e;const n=t.querySelector("ion-toolbar");n&&(B-=n.clientHeight),document.body.appendChild(A)}};j&&C&&(j.keyframes([...m.WRAPPER_KEYFRAMES]),C.keyframes([...m.BACKDROP_KEYFRAMES]),null==M||M.keyframes([...m.CONTENT_KEYFRAMES]),r.progressStart(!0,1-u),u>e?T():O()),f&&u!==Y&&s&&(f.scrollY=!1);const P=o=>{const{breakpoint:a,canDismiss:i,breakpointOffset:d,animated:h}=o,p=i&&0===a,b=p?u:a,x=0!==b;return u=0,j&&C&&(j.keyframes([{offset:0,transform:`translateY(${100*d}%)`},{offset:1,transform:`translateY(${100*(1-b)}%)`}]),C.keyframes([{offset:0,opacity:`calc(var(--backdrop-opacity) * ${F(1-d,e)})`},{offset:1,opacity:`calc(var(--backdrop-opacity) * ${F(b,e)})`}]),M&&M.keyframes([{offset:0,maxHeight:100*(1-d)+"%"},{offset:1,maxHeight:100*b+"%"}]),r.progressStep(0)),R.enable(!1),p?_(t,r):x||l(),!f||b!==n[n.length-1]&&s||(f.scrollY=!0),s||0!==b||$("stationary"),new Promise((t=>{r.onFinish((()=>{x?(s||$("stationary"),j&&C?g((()=>{j.keyframes([...m.WRAPPER_KEYFRAMES]),C.keyframes([...m.BACKDROP_KEYFRAMES]),null==M||M.keyframes([...m.CONTENT_KEYFRAMES]),r.progressStart(!0,1-b),u=b,c(u),u>e?T():O(),R.enable(!0),t()})):(R.enable(!0),t())):t()}),{oneTimeCallback:!0}).progressEnd(1,0,h?500:0)}))},R=N({el:a,gestureName:"modalSheet",gesturePriority:40,direction:"y",threshold:10,canStart:t=>{const o=h(t.event.target);if(u=d(),!s&&o)return 0===(p(o)?v(o).querySelector(".inner-scroll"):o).scrollTop;if(1===u&&o){const t=p(o)?v(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,!s){const t=h(o.event.target);y=t&&p(t)?v(t).querySelector(".inner-scroll"):t}s||$("moving"),o.deltaY>0&&f&&(f.scrollY=!1),g((()=>{t.focus()})),r.progressStart(!0,1-u)},onMove:t=>{if(s||null===B||null===D||(t.currentY>=B&&"moving"===D?$("stationary"):t.currentY<B&&"stationary"===D&&$("moving")),!s&&t.deltaY<=0&&y)return;t.deltaY>0&&f&&(f.scrollY=!1);const o=n.length>1?1-n[1]:void 0,a=1-u+t.deltaY/b,i=void 0!==o&&a>=o&&k,e=i?.95:.9999,d=i&&void 0!==o?o+X((a-o)/(e-o)):a;x=w(1e-4,d,e),r.progressStep(x)},onEnd:t=>{if(!s&&t.deltaY<=0&&y&&y.scrollTop>0)return;const o=u-(t.deltaY+350*t.velocityY)/b,a=n.reduce(((t,a)=>Math.abs(a-o)<Math.abs(t-o)?a:t));P({breakpoint:a,breakpointOffset:x,canDismiss:k,animated:!0})}});return{gesture:R,moveSheetToBreakpoint:P}})(this.el,this.backdropEl,t,o,a,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=n,this.moveSheetToBreakpoint=s,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 r=await this.lockController.lock();if("handler"!==o&&!await this.checkCanDismiss(t,o))return r(),!1;const{presentingElement:n}=this;void 0!==n&&"ios"===e(this)&&V(this.statusBarStyle),"undefined"!=typeof window&&this.keyboardOpenCallback&&(window.removeEventListener(I,this.keyboardOpenCallback),this.keyboardOpenCallback=void 0);const s=await O(this,t,o,"modalLeave",ot,it,{presentingEl:n,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 x(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,r(),s}onDidDismiss(){return $(this.el,"ionModalDidDismiss")}onWillDismiss(){return $(this.el,"ionModalWillDismiss")}async setCurrentBreakpoint(t){if(!this.isSheetModal)return void a("[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.");if(!this.breakpoints.includes(t))return void a(`[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:e,breakpoints:r,animated:n}=this;o!==t&&i&&(this.sheetTransition=i({breakpoint:t,breakpointOffset:1-o,canDismiss:void 0!==e&&!0!==e&&0===r[0],animated:n}),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 a=t.filter((t=>0!==t)),i=a.indexOf(o),e=a[(i+1)%a.length];return await this.setCurrentBreakpoint(e),!0}render(){const{handle:t,isSheetModal:o,presentingElement:a,htmlAttributes:i,handleBehavior:r,inheritedAttributes:d,focusTrap:h,expandToScroll:p}=this,l=!1!==t&&o,c=e(this),m=void 0!==a&&"ios"===c,f="cycle"===r;return n(s,Object.assign({key:"0bcbdcfcd7d890eb599da3f97f21c317d34f8e0e","no-router":!0,tabindex:"-1"},i,{style:{zIndex:`${2e4+this.overlayIndex}`},class:Object.assign({[c]:!0,"modal-default":!m&&!o,"modal-card":m,"modal-sheet":o,"modal-no-expand-scroll":o&&!p,"overlay-hidden":!0,[E]:!1===h},P(this.cssClass)),onIonBackdropTap:this.onBackdropTap,onIonModalDidPresent:this.onLifecycle,onIonModalWillPresent:this.onLifecycle,onIonModalWillDismiss:this.onLifecycle,onIonModalDidDismiss:this.onLifecycle}),n("ion-backdrop",{key:"d72159e73daa5af7349aa9e8f695aa435eb43069",ref:t=>this.backdropEl=t,visible:this.showBackdrop,tappable:this.backdropDismiss,part:"backdrop"}),"ios"===c&&n("div",{key:"fd2d9b13676ae72473881649a397b6eacde03a03",class:"modal-shadow"}),n("div",Object.assign({key:"908eccb1ad982dcde2dbcff0cbb18b6e60f8ba74",role:"dialog"},d,{"aria-modal":"true",class:"modal-wrapper ion-overlay-wrapper",part:"content",ref:t=>this.wrapperEl=t}),l&&n("button",{key:"332dc0b40363a77c7be62331d9f26def91c790e9",class:"modal-handle",tabIndex:f?0:-1,"aria-label":"Activate to adjust the size of the dialog overlaying the screen",onClick:f?this.onHandleClick:void 0,part:"handle"}),n("slot",{key:"c32698350193c450327e97049daf8b8d1fda0d0e"})))}get el(){return d(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}',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}
|