@ionic/core 7.3.2-dev.11693262117.17edbf6d → 7.3.2-dev.11693321491.12123d27
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/action-sheet.js +17 -8
- package/components/alert.js +17 -8
- package/components/framework-delegate.js +5 -2
- package/components/ion-loading.js +17 -8
- package/components/ion-menu.js +1 -1
- package/components/ion-modal.js +34 -13
- package/components/ion-picker.js +17 -8
- package/components/ion-toast.js +17 -8
- package/components/overlays.js +1 -22
- package/components/popover.js +30 -9
- package/dist/cjs/{framework-delegate-e8174951.js → framework-delegate-91be3b84.js} +5 -2
- package/dist/cjs/index.cjs.js +2 -2
- package/dist/cjs/ion-action-sheet.cjs.entry.js +18 -9
- package/dist/cjs/ion-alert.cjs.entry.js +18 -9
- package/dist/cjs/ion-app_8.cjs.entry.js +1 -1
- package/dist/cjs/ion-datetime_3.cjs.entry.js +18 -9
- package/dist/cjs/ion-loading.cjs.entry.js +18 -9
- package/dist/cjs/ion-menu_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-modal.cjs.entry.js +35 -14
- package/dist/cjs/ion-nav_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-popover.cjs.entry.js +31 -10
- package/dist/cjs/ion-select_3.cjs.entry.js +2 -2
- package/dist/cjs/ion-tab_2.cjs.entry.js +1 -1
- package/dist/cjs/ion-toast.cjs.entry.js +18 -9
- package/dist/cjs/{overlays-2b9fa92e.js → overlays-cf7fa4cf.js} +1 -23
- package/dist/collection/components/action-sheet/action-sheet.js +17 -8
- package/dist/collection/components/alert/alert.js +17 -8
- package/dist/collection/components/loading/loading.js +17 -8
- package/dist/collection/components/modal/modal.js +34 -13
- package/dist/collection/components/picker/picker.js +17 -8
- package/dist/collection/components/popover/popover.js +30 -9
- package/dist/collection/components/popover/test/async/popover.e2e.js +20 -0
- package/dist/collection/components/toast/toast.js +17 -8
- package/dist/collection/utils/framework-delegate.js +5 -2
- package/dist/collection/utils/overlays.js +0 -21
- package/dist/docs.json +1 -1
- package/dist/esm/{framework-delegate-2b76c681.js → framework-delegate-43758c88.js} +5 -2
- package/dist/esm/index.js +2 -2
- package/dist/esm/ion-action-sheet.entry.js +18 -9
- package/dist/esm/ion-alert.entry.js +18 -9
- package/dist/esm/ion-app_8.entry.js +1 -1
- package/dist/esm/ion-datetime_3.entry.js +18 -9
- package/dist/esm/ion-loading.entry.js +18 -9
- package/dist/esm/ion-menu_3.entry.js +2 -2
- package/dist/esm/ion-modal.entry.js +35 -14
- package/dist/esm/ion-nav_2.entry.js +1 -1
- package/dist/esm/ion-popover.entry.js +31 -10
- package/dist/esm/ion-select_3.entry.js +2 -2
- package/dist/esm/ion-tab_2.entry.js +1 -1
- package/dist/esm/ion-toast.entry.js +18 -9
- package/dist/esm/{overlays-66222f79.js → overlays-236d01c6.js} +2 -23
- package/dist/esm-es5/framework-delegate-43758c88.js +4 -0
- package/dist/esm-es5/index.js +1 -1
- package/dist/esm-es5/ion-action-sheet.entry.js +1 -1
- package/dist/esm-es5/ion-alert.entry.js +1 -1
- package/dist/esm-es5/ion-app_8.entry.js +1 -1
- package/dist/esm-es5/ion-datetime_3.entry.js +1 -1
- package/dist/esm-es5/ion-loading.entry.js +1 -1
- package/dist/esm-es5/ion-menu_3.entry.js +1 -1
- package/dist/esm-es5/ion-modal.entry.js +1 -1
- package/dist/esm-es5/ion-nav_2.entry.js +1 -1
- package/dist/esm-es5/ion-popover.entry.js +1 -1
- package/dist/esm-es5/ion-select_3.entry.js +1 -1
- package/dist/esm-es5/ion-tab_2.entry.js +1 -1
- package/dist/esm-es5/ion-toast.entry.js +1 -1
- package/dist/esm-es5/{overlays-66222f79.js → overlays-236d01c6.js} +1 -1
- package/dist/ionic/index.esm.js +1 -1
- package/dist/ionic/ionic.esm.js +1 -1
- package/dist/ionic/{p-0494a5b7.system.entry.js → p-04515b10.system.entry.js} +1 -1
- package/dist/ionic/p-13df6e84.system.entry.js +4 -0
- package/dist/ionic/p-2bdc6097.entry.js +4 -0
- package/dist/ionic/p-2c88183e.system.entry.js +4 -0
- package/dist/ionic/p-2d37d114.system.entry.js +4 -0
- package/dist/ionic/p-2f6666a9.entry.js +4 -0
- package/dist/ionic/{p-8d9475b5.system.js → p-33dc95e4.system.js} +1 -1
- package/dist/ionic/{p-20087c90.entry.js → p-4852bb39.entry.js} +1 -1
- package/dist/ionic/p-4adb3257.entry.js +4 -0
- package/dist/ionic/{p-b2098e96.system.entry.js → p-50e474b3.system.entry.js} +1 -1
- package/dist/ionic/{p-229df0d8.entry.js → p-5c0754cd.entry.js} +1 -1
- package/dist/ionic/{p-a0ffdd91.system.js → p-5f5d78da.system.js} +1 -1
- package/dist/ionic/p-647c433f.entry.js +4 -0
- package/dist/ionic/p-721933ff.system.js +1 -1
- package/dist/ionic/p-870fee8d.system.entry.js +4 -0
- package/dist/ionic/p-8d1ef5d0.entry.js +4 -0
- package/dist/ionic/p-ad5a562b.system.entry.js +4 -0
- package/dist/ionic/{p-f8e4da48.system.js → p-c275a599.system.js} +1 -1
- package/dist/ionic/p-d3602489.entry.js +4 -0
- package/dist/ionic/p-e015fbd9.system.entry.js +4 -0
- package/dist/ionic/p-e30f020d.entry.js +4 -0
- package/dist/ionic/{p-7776d062.entry.js → p-e484ae56.entry.js} +1 -1
- package/dist/ionic/{p-5c96dc4e.entry.js → p-ed290b4a.entry.js} +1 -1
- package/dist/ionic/{p-8074bdd7.system.entry.js → p-f1bf45b2.system.entry.js} +1 -1
- package/dist/ionic/p-f2743457.js +4 -0
- package/dist/ionic/{p-6b9bf14c.system.entry.js → p-f2c1459b.system.entry.js} +1 -1
- package/dist/ionic/p-f4bbbc33.js +4 -0
- package/dist/ionic/p-f94cad00.system.entry.js +4 -0
- package/dist/ionic/{p-9888a5a7.entry.js → p-fb16e75c.entry.js} +1 -1
- package/dist/ionic/{p-d1356034.system.entry.js → p-ff0f2ef4.system.entry.js} +1 -1
- package/dist/types/components/action-sheet/action-sheet.d.ts +1 -1
- package/dist/types/components/alert/alert.d.ts +1 -1
- package/dist/types/components/loading/loading.d.ts +1 -1
- package/dist/types/components/modal/modal.d.ts +1 -1
- package/dist/types/components/picker/picker.d.ts +1 -1
- package/dist/types/components/popover/popover.d.ts +1 -1
- package/dist/types/components/toast/toast.d.ts +1 -1
- package/dist/types/utils/overlays.d.ts +0 -9
- package/hydrate/index.js +147 -78
- package/package.json +1 -1
- package/dist/esm-es5/framework-delegate-2b76c681.js +0 -4
- package/dist/ionic/p-16fd72f2.entry.js +0 -4
- package/dist/ionic/p-1c9e3bc7.entry.js +0 -4
- package/dist/ionic/p-2a51c81c.entry.js +0 -4
- package/dist/ionic/p-2a649b3e.system.entry.js +0 -4
- package/dist/ionic/p-3ef9e271.system.entry.js +0 -4
- package/dist/ionic/p-6d484719.system.entry.js +0 -4
- package/dist/ionic/p-70d137a0.js +0 -4
- package/dist/ionic/p-7ac9bdfa.system.entry.js +0 -4
- package/dist/ionic/p-8d53d5a5.entry.js +0 -4
- package/dist/ionic/p-a133c215.system.entry.js +0 -4
- package/dist/ionic/p-b34c1ae1.js +0 -4
- package/dist/ionic/p-c0b4ca5c.system.entry.js +0 -4
- package/dist/ionic/p-cf768a4f.entry.js +0 -4
- package/dist/ionic/p-ddffbfa9.entry.js +0 -4
- package/dist/ionic/p-e2e2c2b0.entry.js +0 -4
- package/dist/ionic/p-ebb442c4.system.entry.js +0 -4
|
@@ -5,7 +5,7 @@ import { h, Host } from "@stencil/core";
|
|
|
5
5
|
import { ENABLE_HTML_CONTENT_DEFAULT } from "../../utils/config";
|
|
6
6
|
import { raf } from "../../utils/helpers";
|
|
7
7
|
import { printIonWarning } from "../../utils/logging/index";
|
|
8
|
-
import { createDelegateController,
|
|
8
|
+
import { createDelegateController, createTriggerController, dismiss, eventMethod, isCancel, prepareOverlay, present, safeCall, setOverlayId, } from "../../utils/overlays";
|
|
9
9
|
import { sanitizeDOMString } from "../../utils/sanitization/index";
|
|
10
10
|
import { createColorClasses, getClassMap } from "../../utils/theme";
|
|
11
11
|
import { config } from "../../global/config";
|
|
@@ -28,7 +28,6 @@ import { mdLeaveAnimation } from "./animations/md.leave";
|
|
|
28
28
|
export class Toast {
|
|
29
29
|
constructor() {
|
|
30
30
|
this.delegateController = createDelegateController(this);
|
|
31
|
-
this.lockController = createLockController();
|
|
32
31
|
this.triggerController = createTriggerController();
|
|
33
32
|
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
34
33
|
this.presented = false;
|
|
@@ -98,19 +97,30 @@ export class Toast {
|
|
|
98
97
|
* Present the toast overlay after it has been created.
|
|
99
98
|
*/
|
|
100
99
|
async present() {
|
|
101
|
-
|
|
100
|
+
/**
|
|
101
|
+
* When using an inline toast
|
|
102
|
+
* and dismissing a toast it is possible to
|
|
103
|
+
* quickly present the toast while it is
|
|
104
|
+
* dismissing. We need to await any current
|
|
105
|
+
* transition to allow the dismiss to finish
|
|
106
|
+
* before presenting again.
|
|
107
|
+
*/
|
|
108
|
+
if (this.currentTransition !== undefined) {
|
|
109
|
+
await this.currentTransition;
|
|
110
|
+
}
|
|
102
111
|
await this.delegateController.attachViewToDom();
|
|
103
|
-
|
|
112
|
+
this.currentTransition = present(this, 'toastEnter', iosEnterAnimation, mdEnterAnimation, this.position);
|
|
113
|
+
await this.currentTransition;
|
|
104
114
|
/**
|
|
105
115
|
* Content is revealed to screen readers after
|
|
106
116
|
* the transition to avoid jank since this
|
|
107
117
|
* state updates will cause a re-render.
|
|
108
118
|
*/
|
|
109
119
|
this.revealContentToScreenReader = true;
|
|
120
|
+
this.currentTransition = undefined;
|
|
110
121
|
if (this.duration > 0) {
|
|
111
122
|
this.durationTimeout = setTimeout(() => this.dismiss(undefined, 'timeout'), this.duration);
|
|
112
123
|
}
|
|
113
|
-
unlock();
|
|
114
124
|
}
|
|
115
125
|
/**
|
|
116
126
|
* Dismiss the toast overlay after it has been presented.
|
|
@@ -122,16 +132,15 @@ export class Toast {
|
|
|
122
132
|
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
123
133
|
*/
|
|
124
134
|
async dismiss(data, role) {
|
|
125
|
-
const unlock = await this.lockController.lock();
|
|
126
135
|
if (this.durationTimeout) {
|
|
127
136
|
clearTimeout(this.durationTimeout);
|
|
128
137
|
}
|
|
129
|
-
|
|
138
|
+
this.currentTransition = dismiss(this, data, role, 'toastLeave', iosLeaveAnimation, mdLeaveAnimation, this.position);
|
|
139
|
+
const dismissed = await this.currentTransition;
|
|
130
140
|
if (dismissed) {
|
|
131
141
|
this.delegateController.removeViewFromDom();
|
|
132
142
|
this.revealContentToScreenReader = false;
|
|
133
143
|
}
|
|
134
|
-
unlock();
|
|
135
144
|
return dismissed;
|
|
136
145
|
}
|
|
137
146
|
/**
|
|
@@ -38,6 +38,7 @@ export const CoreDelegate = () => {
|
|
|
38
38
|
const attachViewToDom = async (parentElement, userComponent, userComponentProps = {}, cssClasses = []) => {
|
|
39
39
|
var _a, _b;
|
|
40
40
|
BaseComponent = parentElement;
|
|
41
|
+
let ChildComponent;
|
|
41
42
|
/**
|
|
42
43
|
* If passing in a component via the `component` props
|
|
43
44
|
* we need to append it inside of our overlay component.
|
|
@@ -64,6 +65,7 @@ export const CoreDelegate = () => {
|
|
|
64
65
|
* inside of the overlay component.
|
|
65
66
|
*/
|
|
66
67
|
BaseComponent.appendChild(el);
|
|
68
|
+
ChildComponent = el;
|
|
67
69
|
await new Promise((resolve) => componentOnReady(el, resolve));
|
|
68
70
|
}
|
|
69
71
|
else if (BaseComponent.children.length > 0 &&
|
|
@@ -72,7 +74,7 @@ export const CoreDelegate = () => {
|
|
|
72
74
|
* The delegate host wrapper el is only needed for modals and popovers
|
|
73
75
|
* because they allow the dev to provide custom content to the overlay.
|
|
74
76
|
*/
|
|
75
|
-
const root = BaseComponent.children[0];
|
|
77
|
+
const root = (ChildComponent = BaseComponent.children[0]);
|
|
76
78
|
if (!root.classList.contains('ion-delegate-host')) {
|
|
77
79
|
/**
|
|
78
80
|
* If the root element is not a delegate host, it means
|
|
@@ -87,6 +89,7 @@ export const CoreDelegate = () => {
|
|
|
87
89
|
el.append(...BaseComponent.children);
|
|
88
90
|
// Append the new parent element to the original parent element.
|
|
89
91
|
BaseComponent.appendChild(el);
|
|
92
|
+
ChildComponent = el;
|
|
90
93
|
}
|
|
91
94
|
}
|
|
92
95
|
/**
|
|
@@ -102,7 +105,7 @@ export const CoreDelegate = () => {
|
|
|
102
105
|
Reference = document.createComment('ionic teleport');
|
|
103
106
|
BaseComponent.parentNode.insertBefore(Reference, BaseComponent);
|
|
104
107
|
app.appendChild(BaseComponent);
|
|
105
|
-
return
|
|
108
|
+
return ChildComponent;
|
|
106
109
|
};
|
|
107
110
|
const removeViewFromDom = () => {
|
|
108
111
|
/**
|
|
@@ -617,27 +617,6 @@ export const createDelegateController = (ref) => {
|
|
|
617
617
|
removeViewFromDom,
|
|
618
618
|
};
|
|
619
619
|
};
|
|
620
|
-
/**
|
|
621
|
-
* Creates a lock controller.
|
|
622
|
-
*
|
|
623
|
-
* This function locks transitions.
|
|
624
|
-
* The unlock() function within it calls resolve on this function, unlocking the transitions.
|
|
625
|
-
*/
|
|
626
|
-
export const createLockController = () => {
|
|
627
|
-
let waitPromise;
|
|
628
|
-
const lock = async () => {
|
|
629
|
-
const p = waitPromise;
|
|
630
|
-
let resolve;
|
|
631
|
-
waitPromise = new Promise((r) => (resolve = r));
|
|
632
|
-
if (p !== undefined) {
|
|
633
|
-
await p;
|
|
634
|
-
}
|
|
635
|
-
return resolve;
|
|
636
|
-
};
|
|
637
|
-
return {
|
|
638
|
-
lock,
|
|
639
|
-
};
|
|
640
|
-
};
|
|
641
620
|
/**
|
|
642
621
|
* Constructs a trigger interaction for an overlay.
|
|
643
622
|
* Presents an overlay when the trigger is clicked.
|
package/dist/docs.json
CHANGED
|
@@ -39,6 +39,7 @@ const CoreDelegate = () => {
|
|
|
39
39
|
const attachViewToDom = async (parentElement, userComponent, userComponentProps = {}, cssClasses = []) => {
|
|
40
40
|
var _a, _b;
|
|
41
41
|
BaseComponent = parentElement;
|
|
42
|
+
let ChildComponent;
|
|
42
43
|
/**
|
|
43
44
|
* If passing in a component via the `component` props
|
|
44
45
|
* we need to append it inside of our overlay component.
|
|
@@ -65,6 +66,7 @@ const CoreDelegate = () => {
|
|
|
65
66
|
* inside of the overlay component.
|
|
66
67
|
*/
|
|
67
68
|
BaseComponent.appendChild(el);
|
|
69
|
+
ChildComponent = el;
|
|
68
70
|
await new Promise((resolve) => componentOnReady(el, resolve));
|
|
69
71
|
}
|
|
70
72
|
else if (BaseComponent.children.length > 0 &&
|
|
@@ -73,7 +75,7 @@ const CoreDelegate = () => {
|
|
|
73
75
|
* The delegate host wrapper el is only needed for modals and popovers
|
|
74
76
|
* because they allow the dev to provide custom content to the overlay.
|
|
75
77
|
*/
|
|
76
|
-
const root = BaseComponent.children[0];
|
|
78
|
+
const root = (ChildComponent = BaseComponent.children[0]);
|
|
77
79
|
if (!root.classList.contains('ion-delegate-host')) {
|
|
78
80
|
/**
|
|
79
81
|
* If the root element is not a delegate host, it means
|
|
@@ -88,6 +90,7 @@ const CoreDelegate = () => {
|
|
|
88
90
|
el.append(...BaseComponent.children);
|
|
89
91
|
// Append the new parent element to the original parent element.
|
|
90
92
|
BaseComponent.appendChild(el);
|
|
93
|
+
ChildComponent = el;
|
|
91
94
|
}
|
|
92
95
|
}
|
|
93
96
|
/**
|
|
@@ -103,7 +106,7 @@ const CoreDelegate = () => {
|
|
|
103
106
|
Reference = document.createComment('ionic teleport');
|
|
104
107
|
BaseComponent.parentNode.insertBefore(Reference, BaseComponent);
|
|
105
108
|
app.appendChild(BaseComponent);
|
|
106
|
-
return
|
|
109
|
+
return ChildComponent;
|
|
107
110
|
};
|
|
108
111
|
const removeViewFromDom = () => {
|
|
109
112
|
/**
|
package/dist/esm/index.js
CHANGED
|
@@ -11,12 +11,12 @@ export { c as componentOnReady } from './helpers-3379ba19.js';
|
|
|
11
11
|
export { I as IonicSafeString, g as getMode, s as setupConfig } from './config-96c9ace3.js';
|
|
12
12
|
export { a as LIFECYCLE_DID_ENTER, c as LIFECYCLE_DID_LEAVE, L as LIFECYCLE_WILL_ENTER, b as LIFECYCLE_WILL_LEAVE, d as LIFECYCLE_WILL_UNLOAD } from './index-6391de89.js';
|
|
13
13
|
export { m as menuController } from './index-b3e05099.js';
|
|
14
|
-
export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-
|
|
14
|
+
export { b as actionSheetController, a as alertController, l as loadingController, m as modalController, p as pickerController, c as popoverController, t as toastController } from './overlays-236d01c6.js';
|
|
15
15
|
import './index-7a14ecec.js';
|
|
16
16
|
import './gesture-controller-0fa396c4.js';
|
|
17
17
|
import './index-847f2fde.js';
|
|
18
18
|
import './hardware-back-button-39299f84.js';
|
|
19
|
-
import './framework-delegate-
|
|
19
|
+
import './framework-delegate-43758c88.js';
|
|
20
20
|
import './index-595d62c9.js';
|
|
21
21
|
|
|
22
22
|
const IonicSlides = (opts) => {
|
|
@@ -4,7 +4,7 @@
|
|
|
4
4
|
import { r as registerInstance, d as createEvent, e as readTask, h, H as Host, f as getElement } from './index-847f2fde.js';
|
|
5
5
|
import { c as createButtonActiveGesture } from './button-active-2da0f611.js';
|
|
6
6
|
import { r as raf } from './helpers-3379ba19.js';
|
|
7
|
-
import { d as createDelegateController, e as
|
|
7
|
+
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, f as present, g as dismiss, h as eventMethod, s as safeCall, j as prepareOverlay, k as setOverlayId } from './overlays-236d01c6.js';
|
|
8
8
|
import { g as getClassMap } from './theme-17531cdf.js';
|
|
9
9
|
import { b as getIonMode } from './ionic-global-1ef19007.js';
|
|
10
10
|
import { c as createAnimation } from './animation-a1d9e088.js';
|
|
@@ -13,7 +13,7 @@ import './capacitor-b4979570.js';
|
|
|
13
13
|
import './index-7a14ecec.js';
|
|
14
14
|
import './index-ff313b19.js';
|
|
15
15
|
import './gesture-controller-0fa396c4.js';
|
|
16
|
-
import './framework-delegate-
|
|
16
|
+
import './framework-delegate-43758c88.js';
|
|
17
17
|
import './hardware-back-button-39299f84.js';
|
|
18
18
|
import './index-595d62c9.js';
|
|
19
19
|
|
|
@@ -117,7 +117,6 @@ const ActionSheet = class {
|
|
|
117
117
|
this.willDismissShorthand = createEvent(this, "willDismiss", 7);
|
|
118
118
|
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
119
119
|
this.delegateController = createDelegateController(this);
|
|
120
|
-
this.lockController = createLockController();
|
|
121
120
|
this.triggerController = createTriggerController();
|
|
122
121
|
this.presented = false;
|
|
123
122
|
this.onBackdropTap = () => {
|
|
@@ -165,10 +164,21 @@ const ActionSheet = class {
|
|
|
165
164
|
* Present the action sheet overlay after it has been created.
|
|
166
165
|
*/
|
|
167
166
|
async present() {
|
|
168
|
-
|
|
167
|
+
/**
|
|
168
|
+
* When using an inline action sheet
|
|
169
|
+
* and dismissing a action sheet it is possible to
|
|
170
|
+
* quickly present the action sheet while it is
|
|
171
|
+
* dismissing. We need to await any current
|
|
172
|
+
* transition to allow the dismiss to finish
|
|
173
|
+
* before presenting again.
|
|
174
|
+
*/
|
|
175
|
+
if (this.currentTransition !== undefined) {
|
|
176
|
+
await this.currentTransition;
|
|
177
|
+
}
|
|
169
178
|
await this.delegateController.attachViewToDom();
|
|
170
|
-
|
|
171
|
-
|
|
179
|
+
this.currentTransition = present(this, 'actionSheetEnter', iosEnterAnimation, mdEnterAnimation);
|
|
180
|
+
await this.currentTransition;
|
|
181
|
+
this.currentTransition = undefined;
|
|
172
182
|
}
|
|
173
183
|
/**
|
|
174
184
|
* Dismiss the action sheet overlay after it has been presented.
|
|
@@ -180,12 +190,11 @@ const ActionSheet = class {
|
|
|
180
190
|
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
181
191
|
*/
|
|
182
192
|
async dismiss(data, role) {
|
|
183
|
-
|
|
184
|
-
const dismissed = await
|
|
193
|
+
this.currentTransition = dismiss(this, data, role, 'actionSheetLeave', iosLeaveAnimation, mdLeaveAnimation);
|
|
194
|
+
const dismissed = await this.currentTransition;
|
|
185
195
|
if (dismissed) {
|
|
186
196
|
this.delegateController.removeViewFromDom();
|
|
187
197
|
}
|
|
188
|
-
unlock();
|
|
189
198
|
return dismissed;
|
|
190
199
|
}
|
|
191
200
|
/**
|
|
@@ -5,7 +5,7 @@ import { r as registerInstance, d as createEvent, i as forceUpdate, h, H as Host
|
|
|
5
5
|
import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './config-96c9ace3.js';
|
|
6
6
|
import { c as createButtonActiveGesture } from './button-active-2da0f611.js';
|
|
7
7
|
import { r as raf } from './helpers-3379ba19.js';
|
|
8
|
-
import { d as createDelegateController, e as
|
|
8
|
+
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-236d01c6.js';
|
|
9
9
|
import { g as getClassMap } from './theme-17531cdf.js';
|
|
10
10
|
import { c as config, b as getIonMode } from './ionic-global-1ef19007.js';
|
|
11
11
|
import { c as createAnimation } from './animation-a1d9e088.js';
|
|
@@ -14,7 +14,7 @@ import './capacitor-b4979570.js';
|
|
|
14
14
|
import './index-7a14ecec.js';
|
|
15
15
|
import './index-ff313b19.js';
|
|
16
16
|
import './gesture-controller-0fa396c4.js';
|
|
17
|
-
import './framework-delegate-
|
|
17
|
+
import './framework-delegate-43758c88.js';
|
|
18
18
|
import './hardware-back-button-39299f84.js';
|
|
19
19
|
import './index-595d62c9.js';
|
|
20
20
|
|
|
@@ -119,7 +119,6 @@ const Alert = class {
|
|
|
119
119
|
this.willDismissShorthand = createEvent(this, "willDismiss", 7);
|
|
120
120
|
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
121
121
|
this.delegateController = createDelegateController(this);
|
|
122
|
-
this.lockController = createLockController();
|
|
123
122
|
this.triggerController = createTriggerController();
|
|
124
123
|
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
125
124
|
this.processedInputs = [];
|
|
@@ -286,10 +285,21 @@ const Alert = class {
|
|
|
286
285
|
* Present the alert overlay after it has been created.
|
|
287
286
|
*/
|
|
288
287
|
async present() {
|
|
289
|
-
|
|
288
|
+
/**
|
|
289
|
+
* When using an inline alert
|
|
290
|
+
* and dismissing an alert it is possible to
|
|
291
|
+
* quickly present the alert while it is
|
|
292
|
+
* dismissing. We need to await any current
|
|
293
|
+
* transition to allow the dismiss to finish
|
|
294
|
+
* before presenting again.
|
|
295
|
+
*/
|
|
296
|
+
if (this.currentTransition !== undefined) {
|
|
297
|
+
await this.currentTransition;
|
|
298
|
+
}
|
|
290
299
|
await this.delegateController.attachViewToDom();
|
|
291
|
-
|
|
292
|
-
|
|
300
|
+
this.currentTransition = present(this, 'alertEnter', iosEnterAnimation, mdEnterAnimation);
|
|
301
|
+
await this.currentTransition;
|
|
302
|
+
this.currentTransition = undefined;
|
|
293
303
|
}
|
|
294
304
|
/**
|
|
295
305
|
* Dismiss the alert overlay after it has been presented.
|
|
@@ -301,12 +311,11 @@ const Alert = class {
|
|
|
301
311
|
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
302
312
|
*/
|
|
303
313
|
async dismiss(data, role) {
|
|
304
|
-
|
|
305
|
-
const dismissed = await
|
|
314
|
+
this.currentTransition = dismiss(this, data, role, 'alertLeave', iosLeaveAnimation, mdLeaveAnimation);
|
|
315
|
+
const dismissed = await this.currentTransition;
|
|
306
316
|
if (dismissed) {
|
|
307
317
|
this.delegateController.removeViewFromDom();
|
|
308
318
|
}
|
|
309
|
-
unlock();
|
|
310
319
|
return dismissed;
|
|
311
320
|
}
|
|
312
321
|
/**
|
|
@@ -9,7 +9,7 @@ import { c as createColorClasses, h as hostContext } from './theme-17531cdf.js';
|
|
|
9
9
|
import { a as findIonContent, p as printIonContentErrorMsg, g as getScrollElement } from './index-746a238e.js';
|
|
10
10
|
import { c as createKeyboardController } from './keyboard-controller-0c2dce71.js';
|
|
11
11
|
import { g as getTimeGivenProgression } from './cubic-bezier-66542bc5.js';
|
|
12
|
-
import { a as attachComponent, d as detachComponent } from './framework-delegate-
|
|
12
|
+
import { a as attachComponent, d as detachComponent } from './framework-delegate-43758c88.js';
|
|
13
13
|
import { t as transition } from './index-6391de89.js';
|
|
14
14
|
import './index-595d62c9.js';
|
|
15
15
|
import './index-7a14ecec.js';
|
|
@@ -10,10 +10,10 @@ import { c as createColorClasses, g as getClassMap } from './theme-17531cdf.js';
|
|
|
10
10
|
import { c as chevronBack, o as chevronForward, l as chevronDown, p as caretUpSharp, q as caretDownSharp } from './index-ecfc2c9f.js';
|
|
11
11
|
import { b as getIonMode } from './ionic-global-1ef19007.js';
|
|
12
12
|
import { g as generateDayAriaLabel, a as getDay, i as isBefore, b as isAfter, c as isSameDay, d as getPreviousMonth, e as getNextMonth, v as validateParts, f as getPartsFromCalendarDay, h as getEndOfWeek, j as getStartOfWeek, k as getPreviousDay, l as getNextDay, m as getPreviousWeek, n as getNextWeek, p as parseMinParts, o as parseMaxParts, q as parseDate, w as warnIfValueOutOfBounds, r as convertToArrayOfNumbers, s as convertDataToISO, t as getToday, u as getClosestValidDate, x as getNumDaysInMonth, y as getCombinedDateColumnData, z as getMonthColumnData, A as getDayColumnData, B as getYearColumnData, C as isMonthFirstLocale, D as getTimeColumnsData, E as isLocaleDayPeriodRTL, F as getDaysOfWeek, G as getMonthAndYear, H as getDaysOfMonth, I as generateMonths, J as is24Hour, K as getLocalizedTime, L as getMonthAndDay, M as formatValue, N as getNextYear, O as getPreviousYear, P as clampDate, Q as parseAmPm, R as calculateHourFromAMPM } from './data-4b448e3a.js';
|
|
13
|
-
import { d as createDelegateController, e as
|
|
13
|
+
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, i as isCancel, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod, s as safeCall } from './overlays-236d01c6.js';
|
|
14
14
|
import { c as createAnimation } from './animation-a1d9e088.js';
|
|
15
15
|
import { b as hapticSelectionChanged, h as hapticSelectionEnd, a as hapticSelectionStart } from './haptic-6447af60.js';
|
|
16
|
-
import './framework-delegate-
|
|
16
|
+
import './framework-delegate-43758c88.js';
|
|
17
17
|
import './hardware-back-button-39299f84.js';
|
|
18
18
|
import './index-7a14ecec.js';
|
|
19
19
|
import './capacitor-b4979570.js';
|
|
@@ -1726,7 +1726,6 @@ const Picker = class {
|
|
|
1726
1726
|
this.willDismissShorthand = createEvent(this, "willDismiss", 7);
|
|
1727
1727
|
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
1728
1728
|
this.delegateController = createDelegateController(this);
|
|
1729
|
-
this.lockController = createLockController();
|
|
1730
1729
|
this.triggerController = createTriggerController();
|
|
1731
1730
|
this.onBackdropTap = () => {
|
|
1732
1731
|
this.dismiss(undefined, BACKDROP);
|
|
@@ -1793,13 +1792,24 @@ const Picker = class {
|
|
|
1793
1792
|
* Present the picker overlay after it has been created.
|
|
1794
1793
|
*/
|
|
1795
1794
|
async present() {
|
|
1796
|
-
|
|
1795
|
+
/**
|
|
1796
|
+
* When using an inline picker
|
|
1797
|
+
* and dismissing an picker it is possible to
|
|
1798
|
+
* quickly present the picker while it is
|
|
1799
|
+
* dismissing. We need to await any current
|
|
1800
|
+
* transition to allow the dismiss to finish
|
|
1801
|
+
* before presenting again.
|
|
1802
|
+
*/
|
|
1803
|
+
if (this.currentTransition !== undefined) {
|
|
1804
|
+
await this.currentTransition;
|
|
1805
|
+
}
|
|
1797
1806
|
await this.delegateController.attachViewToDom();
|
|
1798
|
-
|
|
1807
|
+
this.currentTransition = present(this, 'pickerEnter', iosEnterAnimation, iosEnterAnimation, undefined);
|
|
1808
|
+
await this.currentTransition;
|
|
1809
|
+
this.currentTransition = undefined;
|
|
1799
1810
|
if (this.duration > 0) {
|
|
1800
1811
|
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration);
|
|
1801
1812
|
}
|
|
1802
|
-
unlock();
|
|
1803
1813
|
}
|
|
1804
1814
|
/**
|
|
1805
1815
|
* Dismiss the picker overlay after it has been presented.
|
|
@@ -1811,15 +1821,14 @@ const Picker = class {
|
|
|
1811
1821
|
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
1812
1822
|
*/
|
|
1813
1823
|
async dismiss(data, role) {
|
|
1814
|
-
const unlock = await this.lockController.lock();
|
|
1815
1824
|
if (this.durationTimeout) {
|
|
1816
1825
|
clearTimeout(this.durationTimeout);
|
|
1817
1826
|
}
|
|
1818
|
-
|
|
1827
|
+
this.currentTransition = dismiss(this, data, role, 'pickerLeave', iosLeaveAnimation, iosLeaveAnimation);
|
|
1828
|
+
const dismissed = await this.currentTransition;
|
|
1819
1829
|
if (dismissed) {
|
|
1820
1830
|
this.delegateController.removeViewFromDom();
|
|
1821
1831
|
}
|
|
1822
|
-
unlock();
|
|
1823
1832
|
return dismissed;
|
|
1824
1833
|
}
|
|
1825
1834
|
/**
|
|
@@ -4,11 +4,11 @@
|
|
|
4
4
|
import { r as registerInstance, d as createEvent, h, H as Host, f as getElement } from './index-847f2fde.js';
|
|
5
5
|
import { E as ENABLE_HTML_CONTENT_DEFAULT, a as sanitizeDOMString } from './config-96c9ace3.js';
|
|
6
6
|
import { r as raf } from './helpers-3379ba19.js';
|
|
7
|
-
import { d as createDelegateController, e as
|
|
7
|
+
import { d as createDelegateController, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, g as dismiss, h as eventMethod } from './overlays-236d01c6.js';
|
|
8
8
|
import { g as getClassMap } from './theme-17531cdf.js';
|
|
9
9
|
import { c as config, b as getIonMode } from './ionic-global-1ef19007.js';
|
|
10
10
|
import { c as createAnimation } from './animation-a1d9e088.js';
|
|
11
|
-
import './framework-delegate-
|
|
11
|
+
import './framework-delegate-43758c88.js';
|
|
12
12
|
import './hardware-back-button-39299f84.js';
|
|
13
13
|
import './index-595d62c9.js';
|
|
14
14
|
import './index-7a14ecec.js';
|
|
@@ -117,7 +117,6 @@ const Loading = class {
|
|
|
117
117
|
this.willDismissShorthand = createEvent(this, "willDismiss", 7);
|
|
118
118
|
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
119
119
|
this.delegateController = createDelegateController(this);
|
|
120
|
-
this.lockController = createLockController();
|
|
121
120
|
this.triggerController = createTriggerController();
|
|
122
121
|
this.customHTMLEnabled = config.get('innerHTMLTemplatesEnabled', ENABLE_HTML_CONTENT_DEFAULT);
|
|
123
122
|
this.presented = false;
|
|
@@ -183,13 +182,24 @@ const Loading = class {
|
|
|
183
182
|
* Present the loading overlay after it has been created.
|
|
184
183
|
*/
|
|
185
184
|
async present() {
|
|
186
|
-
|
|
185
|
+
/**
|
|
186
|
+
* When using an inline loading indicator
|
|
187
|
+
* and dismissing a loading indicator it is possible to
|
|
188
|
+
* quickly present the loading indicator while it is
|
|
189
|
+
* dismissing. We need to await any current
|
|
190
|
+
* transition to allow the dismiss to finish
|
|
191
|
+
* before presenting again.
|
|
192
|
+
*/
|
|
193
|
+
if (this.currentTransition !== undefined) {
|
|
194
|
+
await this.currentTransition;
|
|
195
|
+
}
|
|
187
196
|
await this.delegateController.attachViewToDom();
|
|
188
|
-
|
|
197
|
+
this.currentTransition = present(this, 'loadingEnter', iosEnterAnimation, mdEnterAnimation);
|
|
198
|
+
await this.currentTransition;
|
|
189
199
|
if (this.duration > 0) {
|
|
190
200
|
this.durationTimeout = setTimeout(() => this.dismiss(), this.duration + 10);
|
|
191
201
|
}
|
|
192
|
-
|
|
202
|
+
this.currentTransition = undefined;
|
|
193
203
|
}
|
|
194
204
|
/**
|
|
195
205
|
* Dismiss the loading overlay after it has been presented.
|
|
@@ -201,15 +211,14 @@ const Loading = class {
|
|
|
201
211
|
* Some examples include: ``"cancel"`, `"destructive"`, "selected"`, and `"backdrop"`.
|
|
202
212
|
*/
|
|
203
213
|
async dismiss(data, role) {
|
|
204
|
-
const unlock = await this.lockController.lock();
|
|
205
214
|
if (this.durationTimeout) {
|
|
206
215
|
clearTimeout(this.durationTimeout);
|
|
207
216
|
}
|
|
208
|
-
|
|
217
|
+
this.currentTransition = dismiss(this, data, role, 'loadingLeave', iosLeaveAnimation, mdLeaveAnimation);
|
|
218
|
+
const dismissed = await this.currentTransition;
|
|
209
219
|
if (dismissed) {
|
|
210
220
|
this.delegateController.removeViewFromDom();
|
|
211
221
|
}
|
|
212
|
-
unlock();
|
|
213
222
|
return dismissed;
|
|
214
223
|
}
|
|
215
224
|
/**
|
|
@@ -7,13 +7,13 @@ import { d as doc } from './index-7a14ecec.js';
|
|
|
7
7
|
import { G as GESTURE_CONTROLLER } from './gesture-controller-0fa396c4.js';
|
|
8
8
|
import { p as isEndSide, i as inheritAriaAttributes, o as assert, l as clamp } from './helpers-3379ba19.js';
|
|
9
9
|
import { m as menuController } from './index-b3e05099.js';
|
|
10
|
-
import {
|
|
10
|
+
import { q as getOverlay } from './overlays-236d01c6.js';
|
|
11
11
|
import { c as config, b as getIonMode } from './ionic-global-1ef19007.js';
|
|
12
12
|
import { c as createColorClasses, h as hostContext } from './theme-17531cdf.js';
|
|
13
13
|
import { u as menuOutline, v as menuSharp } from './index-ecfc2c9f.js';
|
|
14
14
|
import './hardware-back-button-39299f84.js';
|
|
15
15
|
import './animation-a1d9e088.js';
|
|
16
|
-
import './framework-delegate-
|
|
16
|
+
import './framework-delegate-43758c88.js';
|
|
17
17
|
import './index-595d62c9.js';
|
|
18
18
|
|
|
19
19
|
const menuIosCss = ":host{--width:304px;--min-width:auto;--max-width:auto;--height:100%;--min-height:auto;--max-height:auto;--background:var(--ion-background-color, #fff);left:0;right:0;top:0;bottom:0;display:none;position:absolute;contain:strict}:host(.show-menu){display:block}.menu-inner{-webkit-transform:translateX(-9999px);transform:translateX(-9999px);display:-ms-flexbox;display:flex;position:absolute;-ms-flex-direction:column;flex-direction:column;-ms-flex-pack:justify;justify-content:space-between;width:var(--width);min-width:var(--min-width);max-width:var(--max-width);height:var(--height);min-height:var(--min-height);max-height:var(--max-height);background:var(--background);contain:strict}:host(.menu-side-start) .menu-inner{--ion-safe-area-right:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{inset-inline-start:0;inset-inline-end:auto}}@supports not (inset-inline-start: 0){:host(.menu-side-start) .menu-inner{left:0;right:auto}:host-context([dir=rtl]):host(.menu-side-start) .menu-inner,:host-context([dir=rtl]).menu-side-start .menu-inner{left:unset;right:unset;left:auto;right:0}@supports selector(:dir(rtl)){:host(.menu-side-start) .menu-inner:dir(rtl){left:unset;right:unset;left:auto;right:0}}}:host(.menu-side-end) .menu-inner{--ion-safe-area-left:0px;top:0;bottom:0}@supports (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{inset-inline-start:auto;inset-inline-end:0}}@supports not (inset-inline-start: 0){:host(.menu-side-end) .menu-inner{left:auto;right:0}:host-context([dir=rtl]):host(.menu-side-end) .menu-inner,:host-context([dir=rtl]).menu-side-end .menu-inner{left:unset;right:unset;left:0;right:auto}@supports selector(:dir(rtl)){:host(.menu-side-end) .menu-inner:dir(rtl){left:unset;right:unset;left:0;right:auto}}}ion-backdrop{display:none;opacity:0.01;z-index:-1}@media (max-width: 340px){.menu-inner{--width:264px}}:host(.menu-type-reveal){z-index:0}:host(.menu-type-reveal.show-menu) .menu-inner{-webkit-transform:translate3d(0, 0, 0);transform:translate3d(0, 0, 0)}:host(.menu-type-overlay){z-index:1000}:host(.menu-type-overlay) .show-backdrop{display:block;cursor:pointer}:host(.menu-pane-visible){width:var(--width);min-width:var(--min-width);max-width:var(--max-width)}:host(.menu-pane-visible) .menu-inner{left:0;right:0;width:auto;-webkit-transform:none !important;transform:none !important;-webkit-box-shadow:none !important;box-shadow:none !important}:host(.menu-pane-visible) ion-backdrop{display:hidden !important;}:host(.menu-type-push){z-index:1000}:host(.menu-type-push) .show-backdrop{display:block}";
|
|
@@ -3,11 +3,11 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import { r as registerInstance, d as createEvent, w as writeTask, h, H as Host, f as getElement } from './index-847f2fde.js';
|
|
5
5
|
import { f as findClosestIonContent, i as isIonContent, d as disableContentScrollY, r as resetContentScrollY, a as findIonContent, p as printIonContentErrorMsg } from './index-746a238e.js';
|
|
6
|
-
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-
|
|
6
|
+
import { C as CoreDelegate, a as attachComponent, d as detachComponent } from './framework-delegate-43758c88.js';
|
|
7
7
|
import { g as getElementRoot, l as clamp, r as raf, k as inheritAttributes, m as hasLazyBuild } from './helpers-3379ba19.js';
|
|
8
8
|
import { p as printIonWarning } from './index-595d62c9.js';
|
|
9
9
|
import { g as getCapacitor } from './capacitor-b4979570.js';
|
|
10
|
-
import { G as GESTURE, e as
|
|
10
|
+
import { G as GESTURE, e as createTriggerController, B as BACKDROP, j as prepareOverlay, k as setOverlayId, f as present, n as activeAnimations, g as dismiss, h as eventMethod } from './overlays-236d01c6.js';
|
|
11
11
|
import { g as getClassMap } from './theme-17531cdf.js';
|
|
12
12
|
import { e as deepReady, w as waitForMount } from './index-6391de89.js';
|
|
13
13
|
import { b as getIonMode, c as config } from './ionic-global-1ef19007.js';
|
|
@@ -1113,7 +1113,6 @@ const Modal = class {
|
|
|
1113
1113
|
this.willDismissShorthand = createEvent(this, "willDismiss", 7);
|
|
1114
1114
|
this.didDismissShorthand = createEvent(this, "didDismiss", 7);
|
|
1115
1115
|
this.ionMount = createEvent(this, "ionMount", 7);
|
|
1116
|
-
this.lockController = createLockController();
|
|
1117
1116
|
this.triggerController = createTriggerController();
|
|
1118
1117
|
this.coreDelegate = CoreDelegate();
|
|
1119
1118
|
this.isSheetModal = false;
|
|
@@ -1281,16 +1280,26 @@ const Modal = class {
|
|
|
1281
1280
|
if (this.presented) {
|
|
1282
1281
|
return;
|
|
1283
1282
|
}
|
|
1284
|
-
const unlock = await this.lockController.lock();
|
|
1285
1283
|
const { presentingElement, el } = this;
|
|
1284
|
+
/**
|
|
1285
|
+
* When using an inline modal
|
|
1286
|
+
* and dismissing a modal it is possible to
|
|
1287
|
+
* quickly present the modal while it is
|
|
1288
|
+
* dismissing. We need to await any current
|
|
1289
|
+
* transition to allow the dismiss to finish
|
|
1290
|
+
* before presenting again.
|
|
1291
|
+
*/
|
|
1292
|
+
if (this.currentTransition !== undefined) {
|
|
1293
|
+
await this.currentTransition;
|
|
1294
|
+
}
|
|
1286
1295
|
/**
|
|
1287
1296
|
* If the modal is presented multiple times (inline modals), we
|
|
1288
1297
|
* need to reset the current breakpoint to the initial breakpoint.
|
|
1289
1298
|
*/
|
|
1290
1299
|
this.currentBreakpoint = this.initialBreakpoint;
|
|
1291
1300
|
const { inline, delegate } = this.getDelegate(true);
|
|
1292
|
-
this.usersElement = await attachComponent(delegate, el, this.component, ['ion-page'], this.componentProps, inline);
|
|
1293
1301
|
this.ionMount.emit();
|
|
1302
|
+
this.usersElement = await attachComponent(delegate, el, this.component, ['ion-page'], this.componentProps, inline);
|
|
1294
1303
|
/**
|
|
1295
1304
|
* When using the lazy loaded build of Stencil, we need to wait
|
|
1296
1305
|
* for every Stencil component instance to be ready before presenting
|
|
@@ -1314,6 +1323,11 @@ const Modal = class {
|
|
|
1314
1323
|
await waitForMount();
|
|
1315
1324
|
}
|
|
1316
1325
|
writeTask(() => this.el.classList.add('show-modal'));
|
|
1326
|
+
this.currentTransition = present(this, 'modalEnter', iosEnterAnimation, mdEnterAnimation, {
|
|
1327
|
+
presentingEl: presentingElement,
|
|
1328
|
+
currentBreakpoint: this.initialBreakpoint,
|
|
1329
|
+
backdropBreakpoint: this.backdropBreakpoint,
|
|
1330
|
+
});
|
|
1317
1331
|
/* tslint:disable-next-line */
|
|
1318
1332
|
if (typeof window !== 'undefined') {
|
|
1319
1333
|
/**
|
|
@@ -1356,18 +1370,14 @@ const Modal = class {
|
|
|
1356
1370
|
this.statusBarStyle = await StatusBar.getStyle();
|
|
1357
1371
|
setCardStatusBarDark();
|
|
1358
1372
|
}
|
|
1359
|
-
await
|
|
1360
|
-
presentingEl: presentingElement,
|
|
1361
|
-
currentBreakpoint: this.initialBreakpoint,
|
|
1362
|
-
backdropBreakpoint: this.backdropBreakpoint,
|
|
1363
|
-
});
|
|
1373
|
+
await this.currentTransition;
|
|
1364
1374
|
if (this.isSheetModal) {
|
|
1365
1375
|
this.initSheetGesture();
|
|
1366
1376
|
}
|
|
1367
1377
|
else if (hasCardModal) {
|
|
1368
1378
|
this.initSwipeToClose();
|
|
1369
1379
|
}
|
|
1370
|
-
|
|
1380
|
+
this.currentTransition = undefined;
|
|
1371
1381
|
}
|
|
1372
1382
|
initSwipeToClose() {
|
|
1373
1383
|
var _a;
|
|
@@ -1457,7 +1467,6 @@ const Modal = class {
|
|
|
1457
1467
|
if (this.gestureAnimationDismissing && role !== GESTURE) {
|
|
1458
1468
|
return false;
|
|
1459
1469
|
}
|
|
1460
|
-
const unlock = await this.lockController.lock();
|
|
1461
1470
|
/**
|
|
1462
1471
|
* If a canDismiss handler is responsible
|
|
1463
1472
|
* for calling the dismiss method, we should
|
|
@@ -1481,12 +1490,24 @@ const Modal = class {
|
|
|
1481
1490
|
window.removeEventListener(KEYBOARD_DID_OPEN, this.keyboardOpenCallback);
|
|
1482
1491
|
this.keyboardOpenCallback = undefined;
|
|
1483
1492
|
}
|
|
1493
|
+
/**
|
|
1494
|
+
* When using an inline modal
|
|
1495
|
+
* and presenting a modal it is possible to
|
|
1496
|
+
* quickly dismiss the modal while it is
|
|
1497
|
+
* presenting. We need to await any current
|
|
1498
|
+
* transition to allow the present to finish
|
|
1499
|
+
* before dismissing again.
|
|
1500
|
+
*/
|
|
1501
|
+
if (this.currentTransition !== undefined) {
|
|
1502
|
+
await this.currentTransition;
|
|
1503
|
+
}
|
|
1484
1504
|
const enteringAnimation = activeAnimations.get(this) || [];
|
|
1485
|
-
|
|
1505
|
+
this.currentTransition = dismiss(this, data, role, 'modalLeave', iosLeaveAnimation, mdLeaveAnimation, {
|
|
1486
1506
|
presentingEl: presentingElement,
|
|
1487
1507
|
currentBreakpoint: (_a = this.currentBreakpoint) !== null && _a !== void 0 ? _a : this.initialBreakpoint,
|
|
1488
1508
|
backdropBreakpoint: this.backdropBreakpoint,
|
|
1489
1509
|
});
|
|
1510
|
+
const dismissed = await this.currentTransition;
|
|
1490
1511
|
if (dismissed) {
|
|
1491
1512
|
const { delegate } = this.getDelegate();
|
|
1492
1513
|
await detachComponent(delegate, this.usersElement);
|
|
@@ -1500,8 +1521,8 @@ const Modal = class {
|
|
|
1500
1521
|
enteringAnimation.forEach((ani) => ani.destroy());
|
|
1501
1522
|
}
|
|
1502
1523
|
this.currentBreakpoint = undefined;
|
|
1524
|
+
this.currentTransition = undefined;
|
|
1503
1525
|
this.animation = undefined;
|
|
1504
|
-
unlock();
|
|
1505
1526
|
return dismissed;
|
|
1506
1527
|
}
|
|
1507
1528
|
/**
|
|
@@ -6,7 +6,7 @@ import { g as getTimeGivenProgression } from './cubic-bezier-66542bc5.js';
|
|
|
6
6
|
import { o as assert, s as shallowEqualStringMap } from './helpers-3379ba19.js';
|
|
7
7
|
import { l as lifecycle, t as transition, s as setPageHidden, d as LIFECYCLE_WILL_UNLOAD, b as LIFECYCLE_WILL_LEAVE, c as LIFECYCLE_DID_LEAVE } from './index-6391de89.js';
|
|
8
8
|
import { b as getIonMode, c as config } from './ionic-global-1ef19007.js';
|
|
9
|
-
import { a as attachComponent } from './framework-delegate-
|
|
9
|
+
import { a as attachComponent } from './framework-delegate-43758c88.js';
|
|
10
10
|
|
|
11
11
|
const VIEW_STATE_NEW = 1;
|
|
12
12
|
const VIEW_STATE_ATTACHED = 2;
|