@ionic/core 8.6.1-dev.11749572912.152b544d → 8.6.1-dev.11749648223.169ce853
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-reorder-group.js +20 -2
- package/components/modal.js +47 -78
- package/dist/cjs/ion-modal.cjs.entry.js +47 -78
- package/dist/cjs/ion-reorder_2.cjs.entry.js +20 -2
- package/dist/collection/components/modal/gestures/sheet.js +47 -78
- package/dist/collection/components/reorder-group/reorder-group.js +80 -5
- package/dist/docs.json +73 -3
- package/dist/esm/ion-modal.entry.js +47 -78
- package/dist/esm/ion-reorder_2.entry.js +20 -2
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/p-25979025.entry.js +4 -0
- package/dist/ionic/p-90f87086.entry.js +4 -0
- package/dist/types/components/reorder-group/reorder-group-interface.d.ts +17 -0
- package/dist/types/components/reorder-group/reorder-group.d.ts +24 -4
- package/dist/types/components.d.ts +20 -4
- package/dist/types/interface.d.ts +5 -1
- package/hydrate/index.js +67 -80
- package/hydrate/index.mjs +67 -80
- package/package.json +1 -1
- package/dist/ionic/p-2020aa51.entry.js +0 -4
- package/dist/ionic/p-c045d121.entry.js +0 -4
package/hydrate/index.js
CHANGED
|
@@ -21430,7 +21430,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21430
21430
|
let offset = 0;
|
|
21431
21431
|
let canDismissBlocksGesture = false;
|
|
21432
21432
|
let cachedScrollEl = null;
|
|
21433
|
-
let
|
|
21433
|
+
let cachedFooterEl = null;
|
|
21434
21434
|
let cachedFooterYPosition = null;
|
|
21435
21435
|
let currentFooterState = null;
|
|
21436
21436
|
const canDismissMaxStep = 0.95;
|
|
@@ -21467,81 +21467,60 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21467
21467
|
* @param newPosition Whether the footer is in a moving or stationary position.
|
|
21468
21468
|
*/
|
|
21469
21469
|
const swapFooterPosition = (newPosition) => {
|
|
21470
|
-
if (!
|
|
21471
|
-
|
|
21472
|
-
if (!
|
|
21470
|
+
if (!cachedFooterEl) {
|
|
21471
|
+
cachedFooterEl = baseEl.querySelector('ion-footer');
|
|
21472
|
+
if (!cachedFooterEl) {
|
|
21473
21473
|
return;
|
|
21474
21474
|
}
|
|
21475
21475
|
}
|
|
21476
21476
|
const page = baseEl.querySelector('.ion-page');
|
|
21477
21477
|
currentFooterState = newPosition;
|
|
21478
21478
|
if (newPosition === 'stationary') {
|
|
21479
|
-
|
|
21480
|
-
|
|
21481
|
-
|
|
21482
|
-
|
|
21483
|
-
|
|
21484
|
-
|
|
21485
|
-
|
|
21486
|
-
|
|
21487
|
-
|
|
21488
|
-
|
|
21489
|
-
page === null || page === void 0 ? void 0 : page.appendChild(cachedFooterEl);
|
|
21490
|
-
});
|
|
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);
|
|
21491
21489
|
}
|
|
21492
21490
|
else {
|
|
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
|
-
|
|
21524
|
-
}
|
|
21525
|
-
|
|
21526
|
-
// so that we don't cause layouts to shift while calculating the footer positions.
|
|
21527
|
-
// Otherwise, with multiple footers we'll end up capturing the wrong positions.
|
|
21528
|
-
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
21529
|
-
// Add padding to the parent element to prevent content from being hidden
|
|
21530
|
-
// when the footer is positioned absolutely. This has to be done before we
|
|
21531
|
-
// make the footer absolutely positioned or we may accidentally cause the
|
|
21532
|
-
// sheet to scroll.
|
|
21533
|
-
page === null || page === void 0 ? void 0 : page.style.setProperty('padding-bottom', `${footerHeights}px`);
|
|
21534
|
-
// Apply positioning styles to keep footer at bottom
|
|
21535
|
-
cachedFooterEl.classList.add('modal-footer-moving');
|
|
21536
|
-
// Apply our preserved styles to pin the footer
|
|
21537
|
-
cachedFooterEl.style.setProperty('position', 'absolute');
|
|
21538
|
-
cachedFooterEl.style.setProperty('width', 'var(--pinned-width)');
|
|
21539
|
-
cachedFooterEl.style.setProperty('height', 'var(--pinned-height)');
|
|
21540
|
-
cachedFooterEl.style.setProperty('top', 'var(--pinned-top)');
|
|
21541
|
-
cachedFooterEl.style.setProperty('left', 'var(--pinned-left)');
|
|
21542
|
-
// Move the element to the body when everything else is done
|
|
21543
|
-
document.body.appendChild(cachedFooterEl);
|
|
21544
|
-
});
|
|
21491
|
+
// Get both the footer and document body positions
|
|
21492
|
+
const cachedFooterElRect = cachedFooterEl.getBoundingClientRect();
|
|
21493
|
+
const bodyRect = document.body.getBoundingClientRect();
|
|
21494
|
+
// Add padding to the parent element to prevent content from being hidden
|
|
21495
|
+
// when the footer is positioned absolutely. This has to be done before we
|
|
21496
|
+
// make the footer absolutely positioned or we may accidentally cause the
|
|
21497
|
+
// sheet to scroll.
|
|
21498
|
+
const footerHeight = cachedFooterEl.clientHeight;
|
|
21499
|
+
page === null || page === void 0 ? void 0 : page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
21500
|
+
// Apply positioning styles to keep footer at bottom
|
|
21501
|
+
cachedFooterEl.classList.add('modal-footer-moving');
|
|
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 hard code them during the drag
|
|
21507
|
+
cachedFooterEl.style.setProperty('position', 'absolute');
|
|
21508
|
+
cachedFooterEl.style.setProperty('width', `${cachedFooterEl.clientWidth}px`);
|
|
21509
|
+
cachedFooterEl.style.setProperty('height', `${cachedFooterEl.clientHeight}px`);
|
|
21510
|
+
cachedFooterEl.style.setProperty('top', `${absoluteTop}px`);
|
|
21511
|
+
cachedFooterEl.style.setProperty('left', `${absoluteLeft}px`);
|
|
21512
|
+
// Also cache the footer Y position, which we use to determine if the
|
|
21513
|
+
// sheet has been moved below the footer. When that happens, we need to swap
|
|
21514
|
+
// the position back so it will collapse correctly.
|
|
21515
|
+
cachedFooterYPosition = absoluteTop;
|
|
21516
|
+
// If there's a toolbar, we need to combine the toolbar height with the footer position
|
|
21517
|
+
// because the toolbar moves with the drag handle, so when it starts overlapping the footer,
|
|
21518
|
+
// we need to account for that.
|
|
21519
|
+
const toolbar = baseEl.querySelector('ion-toolbar');
|
|
21520
|
+
if (toolbar) {
|
|
21521
|
+
cachedFooterYPosition -= toolbar.clientHeight;
|
|
21522
|
+
}
|
|
21523
|
+
document.body.appendChild(cachedFooterEl);
|
|
21545
21524
|
}
|
|
21546
21525
|
};
|
|
21547
21526
|
/**
|
|
@@ -21733,16 +21712,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21733
21712
|
* is not scrolled to the top.
|
|
21734
21713
|
*/
|
|
21735
21714
|
if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl && cachedScrollEl.scrollTop > 0) {
|
|
21736
|
-
/**
|
|
21737
|
-
* If expand to scroll is disabled, we need to make sure we swap the footer position
|
|
21738
|
-
* back to stationary so that it will collapse correctly if the modal is dismissed without
|
|
21739
|
-
* dragging (e.g. through a dismiss button).
|
|
21740
|
-
* This can cause issues if the user has a modal with content that can be dragged, as we'll
|
|
21741
|
-
* swap to moving on drag and if we don't swap back here then the footer will get stuck.
|
|
21742
|
-
*/
|
|
21743
|
-
if (!expandToScroll) {
|
|
21744
|
-
swapFooterPosition('stationary');
|
|
21745
|
-
}
|
|
21746
21715
|
return;
|
|
21747
21716
|
}
|
|
21748
21717
|
/**
|
|
@@ -29402,6 +29371,9 @@ class ReorderGroup {
|
|
|
29402
29371
|
constructor(hostRef) {
|
|
29403
29372
|
registerInstance(this, hostRef);
|
|
29404
29373
|
this.ionItemReorder = createEvent(this, "ionItemReorder", 7);
|
|
29374
|
+
this.ionReorderStart = createEvent(this, "ionReorderStart", 7);
|
|
29375
|
+
this.ionReorderMove = createEvent(this, "ionReorderMove", 7);
|
|
29376
|
+
this.ionReorderEnd = createEvent(this, "ionReorderEnd", 7);
|
|
29405
29377
|
this.lastToIndex = -1;
|
|
29406
29378
|
this.cachedHeights = [];
|
|
29407
29379
|
this.scrollElTop = 0;
|
|
@@ -29447,7 +29419,7 @@ class ReorderGroup {
|
|
|
29447
29419
|
}
|
|
29448
29420
|
}
|
|
29449
29421
|
/**
|
|
29450
|
-
* Completes the reorder operation. Must be called by the `
|
|
29422
|
+
* Completes the reorder operation. Must be called by the `ionReorderEnd` event.
|
|
29451
29423
|
*
|
|
29452
29424
|
* If a list of items is passed, the list will be reordered and returned in the
|
|
29453
29425
|
* proper order.
|
|
@@ -29514,6 +29486,7 @@ class ReorderGroup {
|
|
|
29514
29486
|
this.state = 1 /* ReorderGroupState.Active */;
|
|
29515
29487
|
item.classList.add(ITEM_REORDER_SELECTED);
|
|
29516
29488
|
hapticSelectionStart();
|
|
29489
|
+
this.ionReorderStart.emit();
|
|
29517
29490
|
}
|
|
29518
29491
|
onMove(ev) {
|
|
29519
29492
|
const selectedItem = this.selectedItemEl;
|
|
@@ -29528,6 +29501,7 @@ class ReorderGroup {
|
|
|
29528
29501
|
const currentY = Math.max(top, Math.min(ev.currentY, bottom));
|
|
29529
29502
|
const deltaY = scroll + currentY - ev.startY;
|
|
29530
29503
|
const normalizedY = currentY - top;
|
|
29504
|
+
const fromIndex = this.lastToIndex;
|
|
29531
29505
|
const toIndex = this.itemIndexForTop(normalizedY);
|
|
29532
29506
|
if (toIndex !== this.lastToIndex) {
|
|
29533
29507
|
const fromIndex = indexForItem(selectedItem);
|
|
@@ -29537,6 +29511,10 @@ class ReorderGroup {
|
|
|
29537
29511
|
}
|
|
29538
29512
|
// Update selected item position
|
|
29539
29513
|
selectedItem.style.transform = `translateY(${deltaY}px)`;
|
|
29514
|
+
this.ionReorderMove.emit({
|
|
29515
|
+
from: fromIndex,
|
|
29516
|
+
to: toIndex,
|
|
29517
|
+
});
|
|
29540
29518
|
}
|
|
29541
29519
|
onEnd() {
|
|
29542
29520
|
const selectedItemEl = this.selectedItemEl;
|
|
@@ -29548,14 +29526,23 @@ class ReorderGroup {
|
|
|
29548
29526
|
const toIndex = this.lastToIndex;
|
|
29549
29527
|
const fromIndex = indexForItem(selectedItemEl);
|
|
29550
29528
|
if (toIndex === fromIndex) {
|
|
29529
|
+
this.ionReorderEnd.emit({
|
|
29530
|
+
complete: this.completeReorder.bind(this),
|
|
29531
|
+
});
|
|
29551
29532
|
this.completeReorder();
|
|
29552
29533
|
}
|
|
29553
29534
|
else {
|
|
29535
|
+
// TODO(FW-6590): Remove this once the deprecated event is removed
|
|
29554
29536
|
this.ionItemReorder.emit({
|
|
29555
29537
|
from: fromIndex,
|
|
29556
29538
|
to: toIndex,
|
|
29557
29539
|
complete: this.completeReorder.bind(this),
|
|
29558
29540
|
});
|
|
29541
|
+
this.ionReorderEnd.emit({
|
|
29542
|
+
from: fromIndex,
|
|
29543
|
+
to: toIndex,
|
|
29544
|
+
complete: this.completeReorder.bind(this),
|
|
29545
|
+
});
|
|
29559
29546
|
}
|
|
29560
29547
|
hapticSelectionEnd();
|
|
29561
29548
|
}
|
|
@@ -29635,7 +29622,7 @@ class ReorderGroup {
|
|
|
29635
29622
|
}
|
|
29636
29623
|
render() {
|
|
29637
29624
|
const mode = getIonMode$1(this);
|
|
29638
|
-
return (hAsync(Host, { key: '
|
|
29625
|
+
return (hAsync(Host, { key: '8f47e24dfc7b8ef53ad3f5816fa13a8fa07de2a6', class: {
|
|
29639
29626
|
[mode]: true,
|
|
29640
29627
|
'reorder-enabled': !this.disabled,
|
|
29641
29628
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
package/hydrate/index.mjs
CHANGED
|
@@ -21428,7 +21428,7 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21428
21428
|
let offset = 0;
|
|
21429
21429
|
let canDismissBlocksGesture = false;
|
|
21430
21430
|
let cachedScrollEl = null;
|
|
21431
|
-
let
|
|
21431
|
+
let cachedFooterEl = null;
|
|
21432
21432
|
let cachedFooterYPosition = null;
|
|
21433
21433
|
let currentFooterState = null;
|
|
21434
21434
|
const canDismissMaxStep = 0.95;
|
|
@@ -21465,81 +21465,60 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21465
21465
|
* @param newPosition Whether the footer is in a moving or stationary position.
|
|
21466
21466
|
*/
|
|
21467
21467
|
const swapFooterPosition = (newPosition) => {
|
|
21468
|
-
if (!
|
|
21469
|
-
|
|
21470
|
-
if (!
|
|
21468
|
+
if (!cachedFooterEl) {
|
|
21469
|
+
cachedFooterEl = baseEl.querySelector('ion-footer');
|
|
21470
|
+
if (!cachedFooterEl) {
|
|
21471
21471
|
return;
|
|
21472
21472
|
}
|
|
21473
21473
|
}
|
|
21474
21474
|
const page = baseEl.querySelector('.ion-page');
|
|
21475
21475
|
currentFooterState = newPosition;
|
|
21476
21476
|
if (newPosition === 'stationary') {
|
|
21477
|
-
|
|
21478
|
-
|
|
21479
|
-
|
|
21480
|
-
|
|
21481
|
-
|
|
21482
|
-
|
|
21483
|
-
|
|
21484
|
-
|
|
21485
|
-
|
|
21486
|
-
|
|
21487
|
-
page === null || page === void 0 ? void 0 : page.appendChild(cachedFooterEl);
|
|
21488
|
-
});
|
|
21477
|
+
// Reset positioning styles to allow normal document flow
|
|
21478
|
+
cachedFooterEl.classList.remove('modal-footer-moving');
|
|
21479
|
+
cachedFooterEl.style.removeProperty('position');
|
|
21480
|
+
cachedFooterEl.style.removeProperty('width');
|
|
21481
|
+
cachedFooterEl.style.removeProperty('height');
|
|
21482
|
+
cachedFooterEl.style.removeProperty('top');
|
|
21483
|
+
cachedFooterEl.style.removeProperty('left');
|
|
21484
|
+
page === null || page === void 0 ? void 0 : page.style.removeProperty('padding-bottom');
|
|
21485
|
+
// Move to page
|
|
21486
|
+
page === null || page === void 0 ? void 0 : page.appendChild(cachedFooterEl);
|
|
21489
21487
|
}
|
|
21490
21488
|
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
|
-
|
|
21524
|
-
// so that we don't cause layouts to shift while calculating the footer positions.
|
|
21525
|
-
// Otherwise, with multiple footers we'll end up capturing the wrong positions.
|
|
21526
|
-
cachedFooterEls.forEach((cachedFooterEl) => {
|
|
21527
|
-
// Add padding to the parent element to prevent content from being hidden
|
|
21528
|
-
// when the footer is positioned absolutely. This has to be done before we
|
|
21529
|
-
// make the footer absolutely positioned or we may accidentally cause the
|
|
21530
|
-
// sheet to scroll.
|
|
21531
|
-
page === null || page === void 0 ? void 0 : page.style.setProperty('padding-bottom', `${footerHeights}px`);
|
|
21532
|
-
// Apply positioning styles to keep footer at bottom
|
|
21533
|
-
cachedFooterEl.classList.add('modal-footer-moving');
|
|
21534
|
-
// Apply our preserved styles to pin the footer
|
|
21535
|
-
cachedFooterEl.style.setProperty('position', 'absolute');
|
|
21536
|
-
cachedFooterEl.style.setProperty('width', 'var(--pinned-width)');
|
|
21537
|
-
cachedFooterEl.style.setProperty('height', 'var(--pinned-height)');
|
|
21538
|
-
cachedFooterEl.style.setProperty('top', 'var(--pinned-top)');
|
|
21539
|
-
cachedFooterEl.style.setProperty('left', 'var(--pinned-left)');
|
|
21540
|
-
// Move the element to the body when everything else is done
|
|
21541
|
-
document.body.appendChild(cachedFooterEl);
|
|
21542
|
-
});
|
|
21489
|
+
// Get both the footer and document body positions
|
|
21490
|
+
const cachedFooterElRect = cachedFooterEl.getBoundingClientRect();
|
|
21491
|
+
const bodyRect = document.body.getBoundingClientRect();
|
|
21492
|
+
// Add padding to the parent element to prevent content from being hidden
|
|
21493
|
+
// when the footer is positioned absolutely. This has to be done before we
|
|
21494
|
+
// make the footer absolutely positioned or we may accidentally cause the
|
|
21495
|
+
// sheet to scroll.
|
|
21496
|
+
const footerHeight = cachedFooterEl.clientHeight;
|
|
21497
|
+
page === null || page === void 0 ? void 0 : page.style.setProperty('padding-bottom', `${footerHeight}px`);
|
|
21498
|
+
// Apply positioning styles to keep footer at bottom
|
|
21499
|
+
cachedFooterEl.classList.add('modal-footer-moving');
|
|
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 hard code them during the drag
|
|
21505
|
+
cachedFooterEl.style.setProperty('position', 'absolute');
|
|
21506
|
+
cachedFooterEl.style.setProperty('width', `${cachedFooterEl.clientWidth}px`);
|
|
21507
|
+
cachedFooterEl.style.setProperty('height', `${cachedFooterEl.clientHeight}px`);
|
|
21508
|
+
cachedFooterEl.style.setProperty('top', `${absoluteTop}px`);
|
|
21509
|
+
cachedFooterEl.style.setProperty('left', `${absoluteLeft}px`);
|
|
21510
|
+
// Also cache the footer Y position, which we use to determine if the
|
|
21511
|
+
// sheet has been moved below the footer. When that happens, we need to swap
|
|
21512
|
+
// the position back so it will collapse correctly.
|
|
21513
|
+
cachedFooterYPosition = absoluteTop;
|
|
21514
|
+
// If there's a toolbar, we need to combine the toolbar height with the footer position
|
|
21515
|
+
// because the toolbar moves with the drag handle, so when it starts overlapping the footer,
|
|
21516
|
+
// we need to account for that.
|
|
21517
|
+
const toolbar = baseEl.querySelector('ion-toolbar');
|
|
21518
|
+
if (toolbar) {
|
|
21519
|
+
cachedFooterYPosition -= toolbar.clientHeight;
|
|
21520
|
+
}
|
|
21521
|
+
document.body.appendChild(cachedFooterEl);
|
|
21543
21522
|
}
|
|
21544
21523
|
};
|
|
21545
21524
|
/**
|
|
@@ -21731,16 +21710,6 @@ const createSheetGesture = (baseEl, backdropEl, wrapperEl, initialBreakpoint, ba
|
|
|
21731
21710
|
* is not scrolled to the top.
|
|
21732
21711
|
*/
|
|
21733
21712
|
if (!expandToScroll && detail.deltaY <= 0 && cachedScrollEl && cachedScrollEl.scrollTop > 0) {
|
|
21734
|
-
/**
|
|
21735
|
-
* If expand to scroll is disabled, we need to make sure we swap the footer position
|
|
21736
|
-
* back to stationary so that it will collapse correctly if the modal is dismissed without
|
|
21737
|
-
* dragging (e.g. through a dismiss button).
|
|
21738
|
-
* This can cause issues if the user has a modal with content that can be dragged, as we'll
|
|
21739
|
-
* swap to moving on drag and if we don't swap back here then the footer will get stuck.
|
|
21740
|
-
*/
|
|
21741
|
-
if (!expandToScroll) {
|
|
21742
|
-
swapFooterPosition('stationary');
|
|
21743
|
-
}
|
|
21744
21713
|
return;
|
|
21745
21714
|
}
|
|
21746
21715
|
/**
|
|
@@ -29400,6 +29369,9 @@ class ReorderGroup {
|
|
|
29400
29369
|
constructor(hostRef) {
|
|
29401
29370
|
registerInstance(this, hostRef);
|
|
29402
29371
|
this.ionItemReorder = createEvent(this, "ionItemReorder", 7);
|
|
29372
|
+
this.ionReorderStart = createEvent(this, "ionReorderStart", 7);
|
|
29373
|
+
this.ionReorderMove = createEvent(this, "ionReorderMove", 7);
|
|
29374
|
+
this.ionReorderEnd = createEvent(this, "ionReorderEnd", 7);
|
|
29403
29375
|
this.lastToIndex = -1;
|
|
29404
29376
|
this.cachedHeights = [];
|
|
29405
29377
|
this.scrollElTop = 0;
|
|
@@ -29445,7 +29417,7 @@ class ReorderGroup {
|
|
|
29445
29417
|
}
|
|
29446
29418
|
}
|
|
29447
29419
|
/**
|
|
29448
|
-
* Completes the reorder operation. Must be called by the `
|
|
29420
|
+
* Completes the reorder operation. Must be called by the `ionReorderEnd` event.
|
|
29449
29421
|
*
|
|
29450
29422
|
* If a list of items is passed, the list will be reordered and returned in the
|
|
29451
29423
|
* proper order.
|
|
@@ -29512,6 +29484,7 @@ class ReorderGroup {
|
|
|
29512
29484
|
this.state = 1 /* ReorderGroupState.Active */;
|
|
29513
29485
|
item.classList.add(ITEM_REORDER_SELECTED);
|
|
29514
29486
|
hapticSelectionStart();
|
|
29487
|
+
this.ionReorderStart.emit();
|
|
29515
29488
|
}
|
|
29516
29489
|
onMove(ev) {
|
|
29517
29490
|
const selectedItem = this.selectedItemEl;
|
|
@@ -29526,6 +29499,7 @@ class ReorderGroup {
|
|
|
29526
29499
|
const currentY = Math.max(top, Math.min(ev.currentY, bottom));
|
|
29527
29500
|
const deltaY = scroll + currentY - ev.startY;
|
|
29528
29501
|
const normalizedY = currentY - top;
|
|
29502
|
+
const fromIndex = this.lastToIndex;
|
|
29529
29503
|
const toIndex = this.itemIndexForTop(normalizedY);
|
|
29530
29504
|
if (toIndex !== this.lastToIndex) {
|
|
29531
29505
|
const fromIndex = indexForItem(selectedItem);
|
|
@@ -29535,6 +29509,10 @@ class ReorderGroup {
|
|
|
29535
29509
|
}
|
|
29536
29510
|
// Update selected item position
|
|
29537
29511
|
selectedItem.style.transform = `translateY(${deltaY}px)`;
|
|
29512
|
+
this.ionReorderMove.emit({
|
|
29513
|
+
from: fromIndex,
|
|
29514
|
+
to: toIndex,
|
|
29515
|
+
});
|
|
29538
29516
|
}
|
|
29539
29517
|
onEnd() {
|
|
29540
29518
|
const selectedItemEl = this.selectedItemEl;
|
|
@@ -29546,14 +29524,23 @@ class ReorderGroup {
|
|
|
29546
29524
|
const toIndex = this.lastToIndex;
|
|
29547
29525
|
const fromIndex = indexForItem(selectedItemEl);
|
|
29548
29526
|
if (toIndex === fromIndex) {
|
|
29527
|
+
this.ionReorderEnd.emit({
|
|
29528
|
+
complete: this.completeReorder.bind(this),
|
|
29529
|
+
});
|
|
29549
29530
|
this.completeReorder();
|
|
29550
29531
|
}
|
|
29551
29532
|
else {
|
|
29533
|
+
// TODO(FW-6590): Remove this once the deprecated event is removed
|
|
29552
29534
|
this.ionItemReorder.emit({
|
|
29553
29535
|
from: fromIndex,
|
|
29554
29536
|
to: toIndex,
|
|
29555
29537
|
complete: this.completeReorder.bind(this),
|
|
29556
29538
|
});
|
|
29539
|
+
this.ionReorderEnd.emit({
|
|
29540
|
+
from: fromIndex,
|
|
29541
|
+
to: toIndex,
|
|
29542
|
+
complete: this.completeReorder.bind(this),
|
|
29543
|
+
});
|
|
29557
29544
|
}
|
|
29558
29545
|
hapticSelectionEnd();
|
|
29559
29546
|
}
|
|
@@ -29633,7 +29620,7 @@ class ReorderGroup {
|
|
|
29633
29620
|
}
|
|
29634
29621
|
render() {
|
|
29635
29622
|
const mode = getIonMode$1(this);
|
|
29636
|
-
return (hAsync(Host, { key: '
|
|
29623
|
+
return (hAsync(Host, { key: '8f47e24dfc7b8ef53ad3f5816fa13a8fa07de2a6', class: {
|
|
29637
29624
|
[mode]: true,
|
|
29638
29625
|
'reorder-enabled': !this.disabled,
|
|
29639
29626
|
'reorder-list-active': this.state !== 0 /* ReorderGroupState.Idle */,
|
package/package.json
CHANGED
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{r as t,e as s,h as e,j as r,k as i,d as o}from"./p-B_U9CtaY.js";import{j as n,k as a}from"./p-BLV6ykCk.js";import{f as h,g as c}from"./p-QwEXyOze.js";import{r as d}from"./p-Do-uqmtX.js";import{b as l,a as b,h as m}from"./p-CKvCXMs9.js";import"./p-CIGNaXM1.js";import"./p-ZjP4CjeZ.js";const p=class{constructor(s){t(this,s)}onClick(t){const s=this.el.closest("ion-reorder-group");t.preventDefault(),s&&s.disabled||t.stopImmediatePropagation()}render(){const t=s(this);return e(r,{key:"e6807bb349725682e99e791ac65e729a360d64e8",class:t},e("slot",{key:"1c691cdbffa6427ba08dc12184c69559ed5d5506"},e("ion-icon",{key:"8b4150302cdca475379582b2251737b5e74079b1",icon:"ios"===t?n:a,lazy:!1,class:"reorder-icon",part:"icon","aria-hidden":"true"})))}get el(){return i(this)}};p.style={ios:":host([slot]){display:none;line-height:0;z-index:100}.reorder-icon{display:block}::slotted(ion-icon){font-size:dynamic-font(16px)}.reorder-icon{font-size:2.125rem;opacity:0.4}",md:":host([slot]){display:none;line-height:0;z-index:100}.reorder-icon{display:block}::slotted(ion-icon){font-size:dynamic-font(16px)}.reorder-icon{font-size:1.9375rem;opacity:0.3}"};const f=class{constructor(s){t(this,s),this.ionItemReorder=o(this,"ionItemReorder",7),this.lastToIndex=-1,this.cachedHeights=[],this.scrollElTop=0,this.scrollElBottom=0,this.scrollElInitial=0,this.containerTop=0,this.containerBottom=0,this.state=0,this.disabled=!0}disabledChanged(){this.gesture&&this.gesture.enable(!this.disabled)}async connectedCallback(){const t=h(this.el);t&&(this.scrollEl=await c(t)),this.gesture=(await import("./p-Cl0B-RWe.js")).createGesture({el:this.el,gestureName:"reorder",gesturePriority:110,threshold:0,direction:"y",passive:!1,canStart:t=>this.canStart(t),onStart:t=>this.onStart(t),onMove:t=>this.onMove(t),onEnd:()=>this.onEnd()}),this.disabledChanged()}disconnectedCallback(){this.onEnd(),this.gesture&&(this.gesture.destroy(),this.gesture=void 0)}complete(t){return Promise.resolve(this.completeReorder(t))}canStart(t){if(this.selectedItemEl||0!==this.state)return!1;const s=t.event.target.closest("ion-reorder");if(!s)return!1;const e=k(s,this.el);return!!e&&(t.data=e,!0)}onStart(t){t.event.preventDefault();const s=this.selectedItemEl=t.data,e=this.cachedHeights;e.length=0;const r=this.el,i=r.children;if(!i||0===i.length)return;let o=0;for(let t=0;t<i.length;t++){const s=i[t];o+=s.offsetHeight,e.push(o),s.$ionIndex=t}const n=r.getBoundingClientRect();if(this.containerTop=n.top,this.containerBottom=n.bottom,this.scrollEl){const t=this.scrollEl.getBoundingClientRect();this.scrollElInitial=this.scrollEl.scrollTop,this.scrollElTop=t.top+y,this.scrollElBottom=t.bottom-y}else this.scrollElInitial=0,this.scrollElTop=0,this.scrollElBottom=0;this.lastToIndex=u(s),this.selectedItemHeight=s.offsetHeight,this.state=1,s.classList.add(w),l()}onMove(t){const s=this.selectedItemEl;if(!s)return;const e=this.autoscroll(t.currentY),r=this.containerTop-e,i=Math.max(r,Math.min(t.currentY,this.containerBottom-e)),o=e+i-t.startY,n=this.itemIndexForTop(i-r);if(n!==this.lastToIndex){const t=u(s);this.lastToIndex=n,b(),this.reorderMove(t,n)}s.style.transform=`translateY(${o}px)`}onEnd(){const t=this.selectedItemEl;if(this.state=2,!t)return void(this.state=0);const s=this.lastToIndex,e=u(t);s===e?this.completeReorder():this.ionItemReorder.emit({from:e,to:s,complete:this.completeReorder.bind(this)}),m()}completeReorder(t){const s=this.selectedItemEl;if(s&&2===this.state){const e=this.el.children,r=e.length,i=this.lastToIndex,o=u(s);d((()=>{i===o||void 0!==t&&!0!==t||this.el.insertBefore(s,o<i?e[i+1]:e[i]);for(let t=0;t<r;t++)e[t].style.transform=""})),Array.isArray(t)&&(t=v(t,o,i)),s.style.transition="",s.classList.remove(w),this.selectedItemEl=void 0,this.state=0}return t}itemIndexForTop(t){const s=this.cachedHeights;for(let e=0;e<s.length;e++)if(s[e]>t)return e;return s.length-1}reorderMove(t,s){const e=this.selectedItemHeight,r=this.el.children;for(let i=0;i<r.length;i++){let o="";i>t&&i<=s?o=`translateY(${-e}px)`:i<t&&i>=s&&(o=`translateY(${e}px)`),r[i].style.transform=o}}autoscroll(t){if(!this.scrollEl)return 0;let s=0;return t<this.scrollElTop?s=-10:t>this.scrollElBottom&&(s=g),0!==s&&this.scrollEl.scrollBy(0,s),this.scrollEl.scrollTop-this.scrollElInitial}render(){const t=s(this);return e(r,{key:"f30613b361c5c3095b7928a92fb4b1e8d6eff600",class:{[t]:!0,"reorder-enabled":!this.disabled,"reorder-list-active":0!==this.state}})}get el(){return i(this)}static get watchers(){return{disabled:["disabledChanged"]}}},u=t=>t.$ionIndex,k=(t,s)=>{let e;for(;t;){if(e=t.parentElement,e===s)return t;t=e}},y=60,g=10,w="reorder-selected",v=(t,s,e)=>{const r=t[s];return t.splice(s,1),t.splice(e,0,r),t.slice()};f.style=".reorder-list-active>*{display:block;-webkit-transition:-webkit-transform 300ms;transition:-webkit-transform 300ms;transition:transform 300ms;transition:transform 300ms, -webkit-transform 300ms;will-change:transform}.reorder-enabled{-webkit-user-select:none;-moz-user-select:none;-ms-user-select:none;user-select:none}.reorder-enabled ion-reorder{display:block;cursor:-webkit-grab;cursor:grab;pointer-events:all;-ms-touch-action:none;touch-action:none}.reorder-selected,.reorder-selected ion-reorder{cursor:-webkit-grabbing;cursor:grabbing}.reorder-selected{position:relative;-webkit-transition:none !important;transition:none !important;-webkit-box-shadow:0 0 10px rgba(0, 0, 0, 0.4);box-shadow:0 0 10px rgba(0, 0, 0, 0.4);opacity:0.8;z-index:100}.reorder-visible ion-reorder .reorder-icon{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}";export{p as ion_reorder,f as ion_reorder_group}
|
|
@@ -1,4 +0,0 @@
|
|
|
1
|
-
/*!
|
|
2
|
-
* (C) Ionic http://ionicframework.com - MIT License
|
|
3
|
-
*/
|
|
4
|
-
import{r as t,d as o,m as i,w as a,e,l as r,h as n,j as s,k as d}from"./p-B_U9CtaY.js";import{f as p,i as h,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 w}from"./p-BhLqfMrf.js";import{e as x,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 i=1/(1-o);return t*i+-o*i},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)=>x(400,t/Math.abs(1.1*o),500),U=t=>{const{currentBreakpoint:o,backdropBreakpoint:i,expandToScroll:a}=t,e=void 0===i||i<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:a?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:i}=t,a=`calc(var(--backdrop-opacity) * ${F(o,i)})`,e=[{offset:0,opacity:a},{offset:1,opacity:0}],r=[{offset:0,opacity:a},{offset:i,opacity:0},{offset:1,opacity:0}],n=W("backdropAnimation").keyframes(0!==i?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:i,currentBreakpoint:a,expandToScroll:e}=o,r=v(t),{wrapperAnimation:n,backdropAnimation:s,contentAnimation:d}=void 0!==a?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 p=W("entering-base").addElement(t).easing("cubic-bezier(0.32,0.72,0,1)").duration(500).addAnimation([n]);if(d&&p.addAnimation(d),i){const t=window.innerWidth<768,o="ION-MODAL"===i.tagName&&void 0!==i.presentingElement,a=v(i),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",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"}]),p.addAnimation(e)}else if(p.addAnimation(s),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=W().afterStyles({transform:t}).addElement(a.querySelector(".modal-shadow")).keyframes([{offset:0,opacity:"1",transform:"translateY(0) scale(1)"},{offset:1,opacity:"0",transform:t}]);p.addAnimation([e,i])}else n.fromTo("opacity","0","1")}else p.addAnimation(s);return p},ot=(t,o,i=500)=>{const{presentingEl:a,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(i).addAnimation(n);if(a){const t=window.innerWidth<768,o="ION-MODAL"===a.tagName&&void 0!==a.presentingElement,i=v(a),e=W().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(s),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=W().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 n.fromTo("opacity","1","0")}else d.addAnimation(s);return d},it=(t,o)=>{const{currentBreakpoint:i,expandToScroll:a}=o,e=v(t),{wrapperAnimation:r,backdropAnimation:n,contentAnimation:s}=void 0!==i?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")),!a&&(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},at=(t,o)=>{const{currentBreakpoint:i}=o,a=v(t),{wrapperAnimation:e,backdropAnimation:r}=void 0!==i?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(a.querySelector("ion-backdrop")),e.addElement(a.querySelector(".modal-wrapper")),W().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=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,i=rt[t.type];if(o&&i){const a=new CustomEvent(i,{bubbles:!1,cancelable:!1,detail:t.detail});o.dispatchEvent(a)}}}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;C(t),this.triggerChanged()}disconnectedCallback(){this.triggerController.removeClickListener()}componentWillLoad(){var t;const{breakpoints:o,initialBreakpoint:a,el:e,htmlAttributes:r}=this,n=this.isSheetModal=void 0!==o&&void 0!==a,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===a||o.includes(a)||i("[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: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:i}=this;this.currentBreakpoint=this.initialBreakpoint;const{inline:r,delegate:n}=this.getDelegate(!0);this.ionMount.emit(),this.usersElement=await u(n,i,this.component,["ion-page"],this.componentProps,r),y(i)?await R(this.usersElement):this.keepContentsMounted||await z(),a((()=>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,it,{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,i=this.leaveAnimation||r.get("modalLeave",ot),a=this.animation=i(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,i,a)=>{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=p(o),d){if(h(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:i=>{const{deltaY:a}=i;f=!d||!h(d)||d.scrollY,s=void 0!==t.canDismiss&&!0!==t.canDismiss,a>0&&d&&l(d),o.progressStart(!0,n?1:0)},onMove:t=>{const{deltaY:a}=t;a>0&&d&&l(d);const n=t.deltaY/r,p=n>=0&&s,h=p?.2:.9999,c=p?X(n/h):n,m=x(1e-4,c,h);o.progressStep(m),m>=e&&b<e?V(i):m<e&&b>=e&&G(),b=m},onEnd:i=>{const p=i.velocityY,h=i.deltaY/r,l=h>=0&&s,m=l?.2:.9999,b=l?X(h/m):h,w=x(1e-4,b,m),v=!l&&(i.deltaY+1e3*p)/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],w)[0]):(o.easing("cubic-bezier(1, 0, 0.68, 0.28)"),g+=L([0,0],[1,0],[.68,.28],[1,1],w)[0]);const k=J(v?h*r:(1-w)*r,p);n=v,u.enable(!1),d&&c(d,f),o.onFinish((()=>{v||u.enable(!0)})).progressEnd(v?1:0,g,k),l&&w>m/4?_(t,o):v&&a()}});return u})(o,a,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:i}=this;if(!t||void 0===o)return;const a=this.enterAnimation||r.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:n,moveSheetToBreakpoint:s}=((t,o,i,a,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=i.clientHeight;let u=a,w=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=Array.from(t.querySelectorAll("ion-footer")),!A.length))return;const i=t.querySelector(".ion-page");if(D=o,"stationary"===o)A.forEach((t=>{t.classList.remove("modal-footer-moving"),t.style.removeProperty("position"),t.style.removeProperty("width"),t.style.removeProperty("height"),t.style.removeProperty("top"),t.style.removeProperty("left"),null==i||i.style.removeProperty("padding-bottom"),null==i||i.appendChild(t)}));else{let o=0;A.forEach(((i,a)=>{const e=i.getBoundingClientRect(),r=document.body.getBoundingClientRect();o+=i.clientHeight;const n=e.top-r.top,s=e.left-r.left;if(i.style.setProperty("--pinned-width",`${i.clientWidth}px`),i.style.setProperty("--pinned-height",`${i.clientHeight}px`),i.style.setProperty("--pinned-top",`${n}px`),i.style.setProperty("--pinned-left",`${s}px`),0===a){B=n;const o=t.querySelector("ion-toolbar");o&&(B-=o.clientHeight)}})),A.forEach((t=>{null==i||i.style.setProperty("padding-bottom",`${o}px`),t.classList.add("modal-footer-moving"),t.style.setProperty("position","absolute"),t.style.setProperty("width","var(--pinned-width)"),t.style.setProperty("height","var(--pinned-height)"),t.style.setProperty("top","var(--pinned-top)"),t.style.setProperty("left","var(--pinned-left)"),document.body.appendChild(t)}))}};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:i,canDismiss:a,breakpointOffset:d,animated:p}=o,h=a&&0===i,b=h?u:i,w=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),h?_(t,r):w||l(),!f||b!==n[n.length-1]&&s||(f.scrollY=!0),s||0!==b||$("stationary"),new Promise((t=>{r.onFinish((()=>{w?(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,p?500:0)}))},R=N({el:i,gestureName:"modalSheet",gesturePriority:40,direction:"y",threshold:10,canStart:t=>{const o=p(t.event.target);if(u=d(),!s&&o)return 0===(h(o)?v(o).querySelector(".inner-scroll"):o).scrollTop;if(1===u&&o){const t=h(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=p(o.event.target);y=t&&h(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,i=1-u+t.deltaY/b,a=void 0!==o&&i>=o&&k,e=a?.95:.9999,d=a&&void 0!==o?o+X((i-o)/(e-o)):i;w=x(1e-4,d,e),r.progressStep(w)},onEnd:t=>{if(!s&&t.deltaY<=0&&y&&y.scrollTop>0)return void(s||$("stationary"));const o=u-(t.deltaY+350*t.velocityY)/b,i=n.reduce(((t,i)=>Math.abs(i-o)<Math.abs(t-o)?i:t));P({breakpoint:i,breakpointOffset:w,canDismiss:k,animated:!0})}});return{gesture:R,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=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 i;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,at,{presentingEl:n,currentBreakpoint:null!==(i=this.currentBreakpoint)&&void 0!==i?i:this.initialBreakpoint,backdropBreakpoint:this.backdropBreakpoint,expandToScroll:this.expandToScroll});if(s){const{delegate:t}=this.getDelegate();await w(t,this.usersElement),a((()=>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 i("[ion-modal] - setCurrentBreakpoint is only supported on sheet modals.");if(!this.breakpoints.includes(t))return void i(`[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:a,canDismiss:e,breakpoints:r,animated:n}=this;o!==t&&a&&(this.sheetTransition=a({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 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:a,handleBehavior:r,inheritedAttributes:d,focusTrap:p,expandToScroll:h}=this,l=!1!==t&&o,c=e(this),m=void 0!==i&&"ios"===c,f="cycle"===r;return n(s,Object.assign({key:"0bcbdcfcd7d890eb599da3f97f21c317d34f8e0e","no-router":!0,tabindex:"-1"},a,{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&&!h,"overlay-hidden":!0,[E]:!1===p},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}
|