@ionic/vue 8.8.19-dev.11786610762.137bbb21 → 8.8.19-dev.11786735826.1fad7c0a
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/README.md +1 -0
- package/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/display.css +1 -1
- package/css/display.css.map +1 -1
- package/css/flex-utils.css +1 -1
- package/css/flex-utils.css.map +1 -1
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic-swiper.css +1 -1
- package/css/ionic-swiper.css.map +1 -1
- package/css/ionic.bundle.css +1 -1
- package/css/ionic.bundle.css.map +1 -1
- package/css/normalize.css.map +1 -1
- package/css/padding.css.map +1 -1
- package/css/palettes/dark.always.css.map +1 -1
- package/css/palettes/dark.class.css.map +1 -1
- package/css/palettes/dark.system.css.map +1 -1
- package/css/palettes/high-contrast-dark.always.css.map +1 -1
- package/css/palettes/high-contrast-dark.class.css.map +1 -1
- package/css/palettes/high-contrast-dark.system.css.map +1 -1
- package/css/palettes/high-contrast.always.css.map +1 -1
- package/css/palettes/high-contrast.class.css.map +1 -1
- package/css/palettes/high-contrast.system.css.map +1 -1
- package/css/structure.css.map +1 -1
- package/css/text-alignment.css.map +1 -1
- package/css/text-transformation.css.map +1 -1
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css +1 -1
- package/css/utils.bundle.css.map +1 -1
- package/dist/index.js +380 -319
- package/dist/index.js.map +1 -1
- package/dist/types/components/IonPage.d.ts +5 -5
- package/dist/types/components/IonRouterOutlet.d.ts +16 -4
- package/dist/types/components/IonTabBar.d.ts +31 -11
- package/dist/types/components/IonTabButton.d.ts +6 -6
- package/dist/types/components/IonTabs.d.ts +9 -9
- package/dist/types/components/Overlays.d.ts +0 -1
- package/dist/types/controllers.d.ts +1 -9
- package/dist/types/index.d.ts +2 -2
- package/dist/types/proxies.d.ts +0 -3
- package/dist/vetur/attributes.json +111 -1719
- package/dist/vetur/tags.json +45 -266
- package/dist/web-types.json +213 -2043
- package/package.json +20 -10
- package/css/ionic/bundle.ionic.css +0 -1
- package/css/ionic/bundle.ionic.css.map +0 -1
- package/css/ionic/core.ionic.css +0 -1
- package/css/ionic/core.ionic.css.map +0 -1
- package/css/ionic/global.bundle.ionic.css +0 -1
- package/css/ionic/global.bundle.ionic.css.map +0 -1
- package/css/ionic/ionic-swiper.ionic.css +0 -1
- package/css/ionic/ionic-swiper.ionic.css.map +0 -1
- package/css/ionic/link.ionic.css +0 -1
- package/css/ionic/link.ionic.css.map +0 -1
- package/css/ionic/structure.ionic.css +0 -1
- package/css/ionic/structure.ionic.css.map +0 -1
- package/css/ionic/typography.ionic.css +0 -1
- package/css/ionic/typography.ionic.css.map +0 -1
- package/css/ionic/utils.bundle.ionic.css +0 -1
- package/css/ionic/utils.bundle.ionic.css.map +0 -1
package/dist/index.js
CHANGED
|
@@ -19,84 +19,80 @@ import { defineCustomElement as defineCustomElement$g } from '@ionic/core/compon
|
|
|
19
19
|
import { defineCustomElement as defineCustomElement$h } from '@ionic/core/components/ion-content.js';
|
|
20
20
|
import { defineCustomElement as defineCustomElement$i } from '@ionic/core/components/ion-datetime.js';
|
|
21
21
|
import { defineCustomElement as defineCustomElement$j } from '@ionic/core/components/ion-datetime-button.js';
|
|
22
|
-
import { defineCustomElement as defineCustomElement$k } from '@ionic/core/components/ion-
|
|
23
|
-
import { defineCustomElement as defineCustomElement$l } from '@ionic/core/components/ion-fab.js';
|
|
24
|
-
import { defineCustomElement as defineCustomElement$m } from '@ionic/core/components/ion-fab-
|
|
25
|
-
import { defineCustomElement as defineCustomElement$n } from '@ionic/core/components/ion-
|
|
26
|
-
import { defineCustomElement as defineCustomElement$o } from '@ionic/core/components/ion-
|
|
27
|
-
import { defineCustomElement as defineCustomElement$p } from '@ionic/core/components/ion-
|
|
28
|
-
import { defineCustomElement as defineCustomElement$q } from '@ionic/core/components/ion-
|
|
29
|
-
import { defineCustomElement as defineCustomElement$r } from '@ionic/core/components/ion-
|
|
30
|
-
import { defineCustomElement as defineCustomElement$s } from '@ionic/core/components/ion-
|
|
31
|
-
import { defineCustomElement as defineCustomElement$t } from '@ionic/core/components/ion-
|
|
32
|
-
import { defineCustomElement as defineCustomElement$u } from '@ionic/core/components/ion-
|
|
33
|
-
import { defineCustomElement as defineCustomElement$v } from '@ionic/core/components/ion-
|
|
34
|
-
import { defineCustomElement as defineCustomElement$w } from '@ionic/core/components/ion-
|
|
35
|
-
import { defineCustomElement as defineCustomElement$x } from '@ionic/core/components/ion-
|
|
36
|
-
import { defineCustomElement as defineCustomElement$y } from '@ionic/core/components/ion-
|
|
37
|
-
import { defineCustomElement as defineCustomElement$z } from '@ionic/core/components/ion-item.js';
|
|
38
|
-
import { defineCustomElement as defineCustomElement$A } from '@ionic/core/components/ion-item-
|
|
39
|
-
import { defineCustomElement as defineCustomElement$B } from '@ionic/core/components/ion-item-
|
|
40
|
-
import { defineCustomElement as defineCustomElement$C } from '@ionic/core/components/ion-
|
|
41
|
-
import { defineCustomElement as defineCustomElement$D } from '@ionic/core/components/ion-
|
|
42
|
-
import { defineCustomElement as defineCustomElement$E } from '@ionic/core/components/ion-
|
|
43
|
-
import { defineCustomElement as defineCustomElement$F } from '@ionic/core/components/ion-
|
|
44
|
-
import { defineCustomElement as defineCustomElement$G } from '@ionic/core/components/ion-
|
|
45
|
-
import { defineCustomElement as defineCustomElement$H } from '@ionic/core/components/ion-
|
|
46
|
-
import { defineCustomElement as defineCustomElement$
|
|
47
|
-
import { defineCustomElement as defineCustomElement$
|
|
48
|
-
import { defineCustomElement as defineCustomElement$
|
|
49
|
-
import { defineCustomElement as defineCustomElement$
|
|
50
|
-
import { defineCustomElement as defineCustomElement$L } from '@ionic/core/components/ion-
|
|
51
|
-
import { defineCustomElement as defineCustomElement$M } from '@ionic/core/components/ion-
|
|
52
|
-
import { defineCustomElement as defineCustomElement$N } from '@ionic/core/components/ion-
|
|
53
|
-
import { defineCustomElement as defineCustomElement$O } from '@ionic/core/components/ion-
|
|
54
|
-
import { defineCustomElement as defineCustomElement$P } from '@ionic/core/components/ion-
|
|
55
|
-
import { defineCustomElement as defineCustomElement$Q } from '@ionic/core/components/ion-
|
|
56
|
-
import { defineCustomElement as defineCustomElement$R } from '@ionic/core/components/ion-
|
|
57
|
-
import { defineCustomElement as defineCustomElement$S } from '@ionic/core/components/ion-
|
|
58
|
-
import { defineCustomElement as defineCustomElement$T } from '@ionic/core/components/ion-
|
|
59
|
-
import { defineCustomElement as defineCustomElement$U } from '@ionic/core/components/ion-
|
|
60
|
-
import { defineCustomElement as defineCustomElement$V } from '@ionic/core/components/ion-
|
|
61
|
-
import { defineCustomElement as defineCustomElement$W } from '@ionic/core/components/ion-
|
|
62
|
-
import { defineCustomElement as defineCustomElement$X } from '@ionic/core/components/ion-
|
|
63
|
-
import { defineCustomElement as defineCustomElement$Y } from '@ionic/core/components/ion-
|
|
64
|
-
import { defineCustomElement as defineCustomElement$Z } from '@ionic/core/components/ion-
|
|
65
|
-
import { defineCustomElement as defineCustomElement$_ } from '@ionic/core/components/ion-
|
|
66
|
-
import { defineCustomElement as defineCustomElement$$ } from '@ionic/core/components/ion-segment.js';
|
|
67
|
-
import { defineCustomElement as defineCustomElement$10 } from '@ionic/core/components/ion-
|
|
68
|
-
import { defineCustomElement as defineCustomElement$11 } from '@ionic/core/components/ion-
|
|
69
|
-
import { defineCustomElement as defineCustomElement$12 } from '@ionic/core/components/ion-
|
|
70
|
-
import { defineCustomElement as defineCustomElement$13 } from '@ionic/core/components/ion-
|
|
71
|
-
import { defineCustomElement as defineCustomElement$14 } from '@ionic/core/components/ion-
|
|
72
|
-
import { defineCustomElement as defineCustomElement$15 } from '@ionic/core/components/ion-
|
|
73
|
-
import { defineCustomElement as defineCustomElement$16 } from '@ionic/core/components/ion-
|
|
74
|
-
import { defineCustomElement as defineCustomElement$17 } from '@ionic/core/components/ion-
|
|
75
|
-
import { defineCustomElement as defineCustomElement$18 } from '@ionic/core/components/ion-
|
|
76
|
-
import { defineCustomElement as defineCustomElement$19 } from '@ionic/core/components/ion-
|
|
77
|
-
import { defineCustomElement as defineCustomElement$1a } from '@ionic/core/components/ion-
|
|
78
|
-
import { defineCustomElement as defineCustomElement$1b } from '@ionic/core/components/ion-
|
|
79
|
-
import { defineCustomElement as defineCustomElement$1c } from '@ionic/core/components/ion-
|
|
80
|
-
import {
|
|
81
|
-
import { defineCustomElement as defineCustomElement$1e } from '@ionic/core/components/ion-toggle.js';
|
|
82
|
-
import { defineCustomElement as defineCustomElement$1f } from '@ionic/core/components/ion-toolbar.js';
|
|
83
|
-
import { LIFECYCLE_WILL_ENTER, LIFECYCLE_DID_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_DID_LEAVE, initialize, modalController as modalController$1, popoverController as popoverController$1, alertController as alertController$1, actionSheetController as actionSheetController$1, loadingController as loadingController$1, pickerController as pickerController$1, toastController as toastController$1 } from '@ionic/core/components';
|
|
22
|
+
import { defineCustomElement as defineCustomElement$k } from '@ionic/core/components/ion-fab.js';
|
|
23
|
+
import { defineCustomElement as defineCustomElement$l } from '@ionic/core/components/ion-fab-button.js';
|
|
24
|
+
import { defineCustomElement as defineCustomElement$m } from '@ionic/core/components/ion-fab-list.js';
|
|
25
|
+
import { defineCustomElement as defineCustomElement$n } from '@ionic/core/components/ion-footer.js';
|
|
26
|
+
import { defineCustomElement as defineCustomElement$o } from '@ionic/core/components/ion-grid.js';
|
|
27
|
+
import { defineCustomElement as defineCustomElement$p } from '@ionic/core/components/ion-header.js';
|
|
28
|
+
import { defineCustomElement as defineCustomElement$q } from '@ionic/core/components/ion-img.js';
|
|
29
|
+
import { defineCustomElement as defineCustomElement$r } from '@ionic/core/components/ion-infinite-scroll.js';
|
|
30
|
+
import { defineCustomElement as defineCustomElement$s } from '@ionic/core/components/ion-infinite-scroll-content.js';
|
|
31
|
+
import { defineCustomElement as defineCustomElement$t } from '@ionic/core/components/ion-input.js';
|
|
32
|
+
import { defineCustomElement as defineCustomElement$u } from '@ionic/core/components/ion-input-otp.js';
|
|
33
|
+
import { defineCustomElement as defineCustomElement$v } from '@ionic/core/components/ion-input-password-toggle.js';
|
|
34
|
+
import { defineCustomElement as defineCustomElement$w } from '@ionic/core/components/ion-item.js';
|
|
35
|
+
import { defineCustomElement as defineCustomElement$x } from '@ionic/core/components/ion-item-divider.js';
|
|
36
|
+
import { defineCustomElement as defineCustomElement$y } from '@ionic/core/components/ion-item-group.js';
|
|
37
|
+
import { defineCustomElement as defineCustomElement$z } from '@ionic/core/components/ion-item-option.js';
|
|
38
|
+
import { defineCustomElement as defineCustomElement$A } from '@ionic/core/components/ion-item-options.js';
|
|
39
|
+
import { defineCustomElement as defineCustomElement$B } from '@ionic/core/components/ion-item-sliding.js';
|
|
40
|
+
import { defineCustomElement as defineCustomElement$C } from '@ionic/core/components/ion-label.js';
|
|
41
|
+
import { defineCustomElement as defineCustomElement$D } from '@ionic/core/components/ion-list.js';
|
|
42
|
+
import { defineCustomElement as defineCustomElement$E } from '@ionic/core/components/ion-list-header.js';
|
|
43
|
+
import { defineCustomElement as defineCustomElement$F } from '@ionic/core/components/ion-menu.js';
|
|
44
|
+
import { defineCustomElement as defineCustomElement$G } from '@ionic/core/components/ion-menu-button.js';
|
|
45
|
+
import { defineCustomElement as defineCustomElement$H } from '@ionic/core/components/ion-menu-toggle.js';
|
|
46
|
+
import { defineCustomElement as defineCustomElement$1j } from '@ionic/core/components/ion-nav.js';
|
|
47
|
+
import { defineCustomElement as defineCustomElement$I } from '@ionic/core/components/ion-nav-link.js';
|
|
48
|
+
import { defineCustomElement as defineCustomElement$J } from '@ionic/core/components/ion-note.js';
|
|
49
|
+
import { defineCustomElement as defineCustomElement$K } from '@ionic/core/components/ion-picker.js';
|
|
50
|
+
import { defineCustomElement as defineCustomElement$L } from '@ionic/core/components/ion-picker-column.js';
|
|
51
|
+
import { defineCustomElement as defineCustomElement$M } from '@ionic/core/components/ion-picker-column-option.js';
|
|
52
|
+
import { defineCustomElement as defineCustomElement$N } from '@ionic/core/components/ion-progress-bar.js';
|
|
53
|
+
import { defineCustomElement as defineCustomElement$O } from '@ionic/core/components/ion-radio.js';
|
|
54
|
+
import { defineCustomElement as defineCustomElement$P } from '@ionic/core/components/ion-radio-group.js';
|
|
55
|
+
import { defineCustomElement as defineCustomElement$Q } from '@ionic/core/components/ion-range.js';
|
|
56
|
+
import { defineCustomElement as defineCustomElement$R } from '@ionic/core/components/ion-refresher.js';
|
|
57
|
+
import { defineCustomElement as defineCustomElement$S } from '@ionic/core/components/ion-refresher-content.js';
|
|
58
|
+
import { defineCustomElement as defineCustomElement$T } from '@ionic/core/components/ion-reorder.js';
|
|
59
|
+
import { defineCustomElement as defineCustomElement$U } from '@ionic/core/components/ion-reorder-group.js';
|
|
60
|
+
import { defineCustomElement as defineCustomElement$V } from '@ionic/core/components/ion-ripple-effect.js';
|
|
61
|
+
import { defineCustomElement as defineCustomElement$W } from '@ionic/core/components/ion-row.js';
|
|
62
|
+
import { defineCustomElement as defineCustomElement$X } from '@ionic/core/components/ion-searchbar.js';
|
|
63
|
+
import { defineCustomElement as defineCustomElement$Y } from '@ionic/core/components/ion-segment.js';
|
|
64
|
+
import { defineCustomElement as defineCustomElement$Z } from '@ionic/core/components/ion-segment-button.js';
|
|
65
|
+
import { defineCustomElement as defineCustomElement$_ } from '@ionic/core/components/ion-segment-content.js';
|
|
66
|
+
import { defineCustomElement as defineCustomElement$$ } from '@ionic/core/components/ion-segment-view.js';
|
|
67
|
+
import { defineCustomElement as defineCustomElement$10 } from '@ionic/core/components/ion-select.js';
|
|
68
|
+
import { defineCustomElement as defineCustomElement$11 } from '@ionic/core/components/ion-select-modal.js';
|
|
69
|
+
import { defineCustomElement as defineCustomElement$12 } from '@ionic/core/components/ion-select-option.js';
|
|
70
|
+
import { defineCustomElement as defineCustomElement$13 } from '@ionic/core/components/ion-skeleton-text.js';
|
|
71
|
+
import { defineCustomElement as defineCustomElement$14 } from '@ionic/core/components/ion-spinner.js';
|
|
72
|
+
import { defineCustomElement as defineCustomElement$15 } from '@ionic/core/components/ion-split-pane.js';
|
|
73
|
+
import { defineCustomElement as defineCustomElement$16 } from '@ionic/core/components/ion-tab.js';
|
|
74
|
+
import { defineCustomElement as defineCustomElement$17 } from '@ionic/core/components/ion-text.js';
|
|
75
|
+
import { defineCustomElement as defineCustomElement$18 } from '@ionic/core/components/ion-textarea.js';
|
|
76
|
+
import { defineCustomElement as defineCustomElement$19 } from '@ionic/core/components/ion-thumbnail.js';
|
|
77
|
+
import { defineCustomElement as defineCustomElement$1a } from '@ionic/core/components/ion-title.js';
|
|
78
|
+
import { defineCustomElement as defineCustomElement$1b } from '@ionic/core/components/ion-toggle.js';
|
|
79
|
+
import { defineCustomElement as defineCustomElement$1c } from '@ionic/core/components/ion-toolbar.js';
|
|
80
|
+
import { LIFECYCLE_WILL_ENTER, LIFECYCLE_DID_ENTER, LIFECYCLE_WILL_LEAVE, LIFECYCLE_DID_LEAVE, initialize, modalController as modalController$1, popoverController as popoverController$1, alertController as alertController$1, actionSheetController as actionSheetController$1, loadingController as loadingController$1, toastController as toastController$1 } from '@ionic/core/components';
|
|
84
81
|
export { IonicSafeString, IonicSlides, createAnimation, createGesture, getIonPageElement, getPlatforms, getTimeGivenProgression, iosTransitionAnimation, isPlatform, mdTransitionAnimation, menuController, openURL } from '@ionic/core/components';
|
|
85
|
-
import { defineCustomElement as defineCustomElement$
|
|
86
|
-
import { defineCustomElement as defineCustomElement$
|
|
82
|
+
import { defineCustomElement as defineCustomElement$1d } from '@ionic/core/components/ion-back-button.js';
|
|
83
|
+
import { defineCustomElement as defineCustomElement$1e } from '@ionic/core/components/ion-router-outlet.js';
|
|
87
84
|
import { routeLocationKey, useRoute, matchedRouteKey } from 'vue-router';
|
|
88
|
-
import { defineCustomElement as defineCustomElement$
|
|
89
|
-
import { defineCustomElement as defineCustomElement$
|
|
90
|
-
import { defineCustomElement as defineCustomElement$
|
|
91
|
-
import { defineCustomElement as defineCustomElement$
|
|
92
|
-
import { defineCustomElement as defineCustomElement$
|
|
93
|
-
import { defineCustomElement as defineCustomElement$
|
|
94
|
-
import { defineCustomElement as defineCustomElement$
|
|
95
|
-
import { defineCustomElement as defineCustomElement$
|
|
96
|
-
import { defineCustomElement as defineCustomElement$
|
|
97
|
-
import { defineCustomElement as defineCustomElement$
|
|
98
|
-
import { defineCustomElement as defineCustomElement$
|
|
99
|
-
import { defineCustomElement as defineCustomElement$1u } from '@ionic/core/components/ion-toast.js';
|
|
85
|
+
import { defineCustomElement as defineCustomElement$1f } from '@ionic/core/components/ion-tab-button.js';
|
|
86
|
+
import { defineCustomElement as defineCustomElement$1g } from '@ionic/core/components/ion-tabs.js';
|
|
87
|
+
import { defineCustomElement as defineCustomElement$1h } from '@ionic/core/components/ion-tab-bar.js';
|
|
88
|
+
import { defineCustomElement as defineCustomElement$1i } from '@ionic/core/components/ion-app.js';
|
|
89
|
+
import { defineCustomElement as defineCustomElement$1k } from 'ionicons/components/ion-icon.js';
|
|
90
|
+
import { defineCustomElement as defineCustomElement$1l } from '@ionic/core/components/ion-action-sheet.js';
|
|
91
|
+
import { defineCustomElement as defineCustomElement$1m } from '@ionic/core/components/ion-alert.js';
|
|
92
|
+
import { defineCustomElement as defineCustomElement$1n } from '@ionic/core/components/ion-loading.js';
|
|
93
|
+
import { defineCustomElement as defineCustomElement$1o } from '@ionic/core/components/ion-modal.js';
|
|
94
|
+
import { defineCustomElement as defineCustomElement$1p } from '@ionic/core/components/ion-popover.js';
|
|
95
|
+
import { defineCustomElement as defineCustomElement$1q } from '@ionic/core/components/ion-toast.js';
|
|
100
96
|
|
|
101
97
|
const UPDATE_VALUE_EVENT = 'update:modelValue';
|
|
102
98
|
const MODEL_VALUE = 'modelValue';
|
|
@@ -118,8 +114,19 @@ const DEFAULT_EMPTY_PROP$1 = { default: EMPTY_PROP$1 };
|
|
|
118
114
|
const getComponentClasses = (classes) => {
|
|
119
115
|
return classes?.split(' ') || [];
|
|
120
116
|
};
|
|
121
|
-
const
|
|
122
|
-
|
|
117
|
+
const syncElementClasses = (ref, componentClasses, defaultClasses = []) => {
|
|
118
|
+
if (ref?.value) {
|
|
119
|
+
const element = ref.value;
|
|
120
|
+
// makes sure vue classes are on the actual element
|
|
121
|
+
componentClasses.forEach((c) => {
|
|
122
|
+
if (!!c && !element.classList.contains(c)) {
|
|
123
|
+
element.classList.add(c);
|
|
124
|
+
}
|
|
125
|
+
});
|
|
126
|
+
}
|
|
127
|
+
return [...Array.from(ref.value?.classList || []), ...defaultClasses].filter((c, i, self) => {
|
|
128
|
+
return !componentClasses.has(c) && self.indexOf(c) === i;
|
|
129
|
+
});
|
|
123
130
|
};
|
|
124
131
|
/**
|
|
125
132
|
* Create a callback to define a Vue component wrapper around a Web Component.
|
|
@@ -135,8 +142,9 @@ const getElementClasses = (ref, componentClasses, defaultClasses = []) => {
|
|
|
135
142
|
* to customElements.define. Only set if `includeImportCustomElements: true` in your config.
|
|
136
143
|
* @prop modelProp - The prop that v-model binds to (i.e. value)
|
|
137
144
|
* @prop modelUpdateEvent - The event that is fired from your Web Component when the value changes (i.e. ionChange)
|
|
145
|
+
* @prop modelUpdateEventAttribute - Property to read value from when the value changes.
|
|
138
146
|
*/
|
|
139
|
-
const defineContainer = (name, defineCustomElement, componentProps = [], emitProps = [], modelProp, modelUpdateEvent) => {
|
|
147
|
+
const defineContainer = (name, defineCustomElement, componentProps = [], emitProps = [], modelProp, modelUpdateEvent, modelUpdateEventAttribute, transformTagFn) => {
|
|
140
148
|
/**
|
|
141
149
|
* Create a Vue component wrapper around a Web Component.
|
|
142
150
|
* Note: The `props` here are not all properties on a component.
|
|
@@ -181,7 +189,7 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
|
|
|
181
189
|
*/
|
|
182
190
|
const vModelDirective = {
|
|
183
191
|
created: (el) => {
|
|
184
|
-
const eventsNames =
|
|
192
|
+
const eventsNames = Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent];
|
|
185
193
|
eventsNames.forEach((eventName) => {
|
|
186
194
|
el.addEventListener(eventName, (e) => {
|
|
187
195
|
/**
|
|
@@ -192,7 +200,11 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
|
|
|
192
200
|
* when ionChange bubbles up from Component B.
|
|
193
201
|
*/
|
|
194
202
|
if (e.target.tagName === el.tagName && modelProp) {
|
|
195
|
-
|
|
203
|
+
const resolvePath = (object, path) => {
|
|
204
|
+
return path.split('.').reduce((value, key) => (value !== undefined ? value[key] : undefined), object);
|
|
205
|
+
};
|
|
206
|
+
const path = (modelUpdateEventAttribute ?? `target.${modelProp}`);
|
|
207
|
+
const modelPropValue = resolvePath(e, path);
|
|
196
208
|
emit(UPDATE_VALUE_EVENT, modelPropValue);
|
|
197
209
|
}
|
|
198
210
|
});
|
|
@@ -206,6 +218,14 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
|
|
|
206
218
|
const { routerLink } = props;
|
|
207
219
|
if (routerLink === EMPTY_PROP$1)
|
|
208
220
|
return;
|
|
221
|
+
/**
|
|
222
|
+
* Allow modifier key clicks (ctrl/cmd/shift) to open the link in a
|
|
223
|
+
* new tab/window without triggering SPA navigation on the current page.
|
|
224
|
+
*/
|
|
225
|
+
const mouseEv = ev;
|
|
226
|
+
if (mouseEv.metaKey || mouseEv.ctrlKey || mouseEv.shiftKey) {
|
|
227
|
+
return;
|
|
228
|
+
}
|
|
209
229
|
if (navManager !== undefined) {
|
|
210
230
|
/**
|
|
211
231
|
* This prevents the browser from
|
|
@@ -246,7 +266,7 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
|
|
|
246
266
|
};
|
|
247
267
|
const propsToAdd = {
|
|
248
268
|
ref: containerRef,
|
|
249
|
-
class:
|
|
269
|
+
class: syncElementClasses(containerRef, classes),
|
|
250
270
|
onClick: handleClick,
|
|
251
271
|
};
|
|
252
272
|
/**
|
|
@@ -294,7 +314,8 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
|
|
|
294
314
|
* vModelDirective is only needed on components that support v-model.
|
|
295
315
|
* As a result, we conditionally call withDirectives with v-model components.
|
|
296
316
|
*/
|
|
297
|
-
const
|
|
317
|
+
const tagName = transformTagFn ? transformTagFn(name) : name;
|
|
318
|
+
const node = h(tagName, propsToAdd, slots.default && slots.default());
|
|
298
319
|
return modelProp === undefined ? node : withDirectives(node, [[vModelDirective]]);
|
|
299
320
|
};
|
|
300
321
|
}, {
|
|
@@ -321,18 +342,13 @@ const IonAccordionGroup = /*@__PURE__*/ defineContainer('ion-accordion-group', d
|
|
|
321
342
|
'disabled',
|
|
322
343
|
'readonly',
|
|
323
344
|
'expand',
|
|
324
|
-
'shape',
|
|
325
345
|
'ionChange',
|
|
326
346
|
'ionValueChange'
|
|
327
347
|
], [
|
|
328
348
|
'ionChange',
|
|
329
349
|
'ionValueChange'
|
|
330
|
-
], 'value', '
|
|
331
|
-
const IonAvatar = /*@__PURE__*/ defineContainer('ion-avatar', defineCustomElement$2
|
|
332
|
-
'size',
|
|
333
|
-
'shape',
|
|
334
|
-
'disabled'
|
|
335
|
-
]);
|
|
350
|
+
], 'value', 'ionChange', undefined);
|
|
351
|
+
const IonAvatar = /*@__PURE__*/ defineContainer('ion-avatar', defineCustomElement$2);
|
|
336
352
|
const IonBackdrop = /*@__PURE__*/ defineContainer('ion-backdrop', defineCustomElement$3, [
|
|
337
353
|
'visible',
|
|
338
354
|
'tappable',
|
|
@@ -342,11 +358,7 @@ const IonBackdrop = /*@__PURE__*/ defineContainer('ion-backdrop', defineCustomEl
|
|
|
342
358
|
'ionBackdropTap'
|
|
343
359
|
]);
|
|
344
360
|
const IonBadge = /*@__PURE__*/ defineContainer('ion-badge', defineCustomElement$4, [
|
|
345
|
-
'color'
|
|
346
|
-
'hue',
|
|
347
|
-
'shape',
|
|
348
|
-
'size',
|
|
349
|
-
'vertical'
|
|
361
|
+
'color'
|
|
350
362
|
]);
|
|
351
363
|
const IonBreadcrumb = /*@__PURE__*/ defineContainer('ion-breadcrumb', defineCustomElement$5, [
|
|
352
364
|
'collapsed',
|
|
@@ -415,7 +427,6 @@ const IonCard = /*@__PURE__*/ defineContainer('ion-card', defineCustomElement$9,
|
|
|
415
427
|
'rel',
|
|
416
428
|
'routerDirection',
|
|
417
429
|
'routerAnimation',
|
|
418
|
-
'shape',
|
|
419
430
|
'target'
|
|
420
431
|
]);
|
|
421
432
|
const IonCardContent = /*@__PURE__*/ defineContainer('ion-card-content', defineCustomElement$a);
|
|
@@ -442,8 +453,6 @@ const IonCheckbox = /*@__PURE__*/ defineContainer('ion-checkbox', defineCustomEl
|
|
|
442
453
|
'justify',
|
|
443
454
|
'alignment',
|
|
444
455
|
'required',
|
|
445
|
-
'shape',
|
|
446
|
-
'size',
|
|
447
456
|
'ionChange',
|
|
448
457
|
'ionFocus',
|
|
449
458
|
'ionBlur'
|
|
@@ -451,14 +460,11 @@ const IonCheckbox = /*@__PURE__*/ defineContainer('ion-checkbox', defineCustomEl
|
|
|
451
460
|
'ionChange',
|
|
452
461
|
'ionFocus',
|
|
453
462
|
'ionBlur'
|
|
454
|
-
], 'checked', '
|
|
463
|
+
], 'checked', 'ionChange', undefined);
|
|
455
464
|
const IonChip = /*@__PURE__*/ defineContainer('ion-chip', defineCustomElement$f, [
|
|
456
465
|
'color',
|
|
457
466
|
'outline',
|
|
458
|
-
'disabled'
|
|
459
|
-
'hue',
|
|
460
|
-
'shape',
|
|
461
|
-
'size'
|
|
467
|
+
'disabled'
|
|
462
468
|
]);
|
|
463
469
|
const IonCol = /*@__PURE__*/ defineContainer('ion-col', defineCustomElement$g, [
|
|
464
470
|
'offset',
|
|
@@ -467,12 +473,6 @@ const IonCol = /*@__PURE__*/ defineContainer('ion-col', defineCustomElement$g, [
|
|
|
467
473
|
'offsetMd',
|
|
468
474
|
'offsetLg',
|
|
469
475
|
'offsetXl',
|
|
470
|
-
'order',
|
|
471
|
-
'orderXs',
|
|
472
|
-
'orderSm',
|
|
473
|
-
'orderMd',
|
|
474
|
-
'orderLg',
|
|
475
|
-
'orderXl',
|
|
476
476
|
'pull',
|
|
477
477
|
'pullXs',
|
|
478
478
|
'pullSm',
|
|
@@ -555,23 +555,19 @@ const IonDatetime = /*@__PURE__*/ defineContainer('ion-datetime', defineCustomEl
|
|
|
555
555
|
'ionBlur',
|
|
556
556
|
'ionStyle',
|
|
557
557
|
'ionRender'
|
|
558
|
-
], 'value', '
|
|
558
|
+
], 'value', 'ionChange', undefined);
|
|
559
559
|
const IonDatetimeButton = /*@__PURE__*/ defineContainer('ion-datetime-button', defineCustomElement$j, [
|
|
560
560
|
'color',
|
|
561
561
|
'disabled',
|
|
562
562
|
'datetime'
|
|
563
563
|
]);
|
|
564
|
-
const
|
|
565
|
-
'spacing',
|
|
566
|
-
'inset'
|
|
567
|
-
]);
|
|
568
|
-
const IonFab = /*@__PURE__*/ defineContainer('ion-fab', defineCustomElement$l, [
|
|
564
|
+
const IonFab = /*@__PURE__*/ defineContainer('ion-fab', defineCustomElement$k, [
|
|
569
565
|
'horizontal',
|
|
570
566
|
'vertical',
|
|
571
567
|
'edge',
|
|
572
568
|
'activated'
|
|
573
569
|
]);
|
|
574
|
-
const IonFabButton = /*@__PURE__*/ defineContainer('ion-fab-button', defineCustomElement$
|
|
570
|
+
const IonFabButton = /*@__PURE__*/ defineContainer('ion-fab-button', defineCustomElement$l, [
|
|
575
571
|
'color',
|
|
576
572
|
'activated',
|
|
577
573
|
'disabled',
|
|
@@ -593,32 +589,22 @@ const IonFabButton = /*@__PURE__*/ defineContainer('ion-fab-button', defineCusto
|
|
|
593
589
|
'ionFocus',
|
|
594
590
|
'ionBlur'
|
|
595
591
|
]);
|
|
596
|
-
const IonFabList = /*@__PURE__*/ defineContainer('ion-fab-list', defineCustomElement$
|
|
592
|
+
const IonFabList = /*@__PURE__*/ defineContainer('ion-fab-list', defineCustomElement$m, [
|
|
597
593
|
'activated',
|
|
598
594
|
'side'
|
|
599
595
|
]);
|
|
600
|
-
const IonFooter = /*@__PURE__*/ defineContainer('ion-footer', defineCustomElement$
|
|
601
|
-
'scrollEffect',
|
|
596
|
+
const IonFooter = /*@__PURE__*/ defineContainer('ion-footer', defineCustomElement$n, [
|
|
602
597
|
'collapse',
|
|
603
598
|
'translucent'
|
|
604
599
|
]);
|
|
605
|
-
const
|
|
606
|
-
'layout',
|
|
607
|
-
'order',
|
|
608
|
-
'columns',
|
|
609
|
-
'gap'
|
|
610
|
-
]);
|
|
611
|
-
const IonGalleryItem = /*@__PURE__*/ defineContainer('ion-gallery-item', defineCustomElement$q);
|
|
612
|
-
const IonGrid = /*@__PURE__*/ defineContainer('ion-grid', defineCustomElement$r, [
|
|
600
|
+
const IonGrid = /*@__PURE__*/ defineContainer('ion-grid', defineCustomElement$o, [
|
|
613
601
|
'fixed'
|
|
614
602
|
]);
|
|
615
|
-
const IonHeader = /*@__PURE__*/ defineContainer('ion-header', defineCustomElement$
|
|
616
|
-
'scrollEffect',
|
|
603
|
+
const IonHeader = /*@__PURE__*/ defineContainer('ion-header', defineCustomElement$p, [
|
|
617
604
|
'collapse',
|
|
618
|
-
'divider',
|
|
619
605
|
'translucent'
|
|
620
606
|
]);
|
|
621
|
-
const IonImg = /*@__PURE__*/ defineContainer('ion-img', defineCustomElement$
|
|
607
|
+
const IonImg = /*@__PURE__*/ defineContainer('ion-img', defineCustomElement$q, [
|
|
622
608
|
'alt',
|
|
623
609
|
'src',
|
|
624
610
|
'ionImgWillLoad',
|
|
@@ -629,20 +615,19 @@ const IonImg = /*@__PURE__*/ defineContainer('ion-img', defineCustomElement$t, [
|
|
|
629
615
|
'ionImgDidLoad',
|
|
630
616
|
'ionError'
|
|
631
617
|
]);
|
|
632
|
-
const IonInfiniteScroll = /*@__PURE__*/ defineContainer('ion-infinite-scroll', defineCustomElement$
|
|
618
|
+
const IonInfiniteScroll = /*@__PURE__*/ defineContainer('ion-infinite-scroll', defineCustomElement$r, [
|
|
633
619
|
'threshold',
|
|
634
620
|
'disabled',
|
|
635
621
|
'position',
|
|
636
|
-
'preserveRerenderScrollPosition',
|
|
637
622
|
'ionInfinite'
|
|
638
623
|
], [
|
|
639
624
|
'ionInfinite'
|
|
640
625
|
]);
|
|
641
|
-
const IonInfiniteScrollContent = /*@__PURE__*/ defineContainer('ion-infinite-scroll-content', defineCustomElement$
|
|
626
|
+
const IonInfiniteScrollContent = /*@__PURE__*/ defineContainer('ion-infinite-scroll-content', defineCustomElement$s, [
|
|
642
627
|
'loadingSpinner',
|
|
643
628
|
'loadingText'
|
|
644
629
|
]);
|
|
645
|
-
const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineCustomElement$
|
|
630
|
+
const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineCustomElement$t, [
|
|
646
631
|
'color',
|
|
647
632
|
'autocapitalize',
|
|
648
633
|
'autocomplete',
|
|
@@ -675,7 +660,6 @@ const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineCustomElement$
|
|
|
675
660
|
'shape',
|
|
676
661
|
'spellcheck',
|
|
677
662
|
'step',
|
|
678
|
-
'size',
|
|
679
663
|
'type',
|
|
680
664
|
'value',
|
|
681
665
|
'ionInput',
|
|
@@ -687,8 +671,8 @@ const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineCustomElement$
|
|
|
687
671
|
'ionChange',
|
|
688
672
|
'ionBlur',
|
|
689
673
|
'ionFocus'
|
|
690
|
-
], 'value', '
|
|
691
|
-
const IonInputOtp = /*@__PURE__*/ defineContainer('ion-input-otp', defineCustomElement$
|
|
674
|
+
], 'value', 'ionInput', undefined);
|
|
675
|
+
const IonInputOtp = /*@__PURE__*/ defineContainer('ion-input-otp', defineCustomElement$u, [
|
|
692
676
|
'autocapitalize',
|
|
693
677
|
'color',
|
|
694
678
|
'disabled',
|
|
@@ -713,14 +697,14 @@ const IonInputOtp = /*@__PURE__*/ defineContainer('ion-input-otp', defineCustomE
|
|
|
713
697
|
'ionComplete',
|
|
714
698
|
'ionBlur',
|
|
715
699
|
'ionFocus'
|
|
716
|
-
], 'value', '
|
|
717
|
-
const IonInputPasswordToggle = /*@__PURE__*/ defineContainer('ion-input-password-toggle', defineCustomElement$
|
|
700
|
+
], 'value', 'ionInput', undefined);
|
|
701
|
+
const IonInputPasswordToggle = /*@__PURE__*/ defineContainer('ion-input-password-toggle', defineCustomElement$v, [
|
|
718
702
|
'color',
|
|
719
703
|
'showIcon',
|
|
720
704
|
'hideIcon',
|
|
721
705
|
'type'
|
|
722
706
|
]);
|
|
723
|
-
const IonItem = /*@__PURE__*/ defineContainer('ion-item', defineCustomElement$
|
|
707
|
+
const IonItem = /*@__PURE__*/ defineContainer('ion-item', defineCustomElement$w, [
|
|
724
708
|
'color',
|
|
725
709
|
'button',
|
|
726
710
|
'detail',
|
|
@@ -735,36 +719,34 @@ const IonItem = /*@__PURE__*/ defineContainer('ion-item', defineCustomElement$z,
|
|
|
735
719
|
'target',
|
|
736
720
|
'type'
|
|
737
721
|
]);
|
|
738
|
-
const IonItemDivider = /*@__PURE__*/ defineContainer('ion-item-divider', defineCustomElement$
|
|
722
|
+
const IonItemDivider = /*@__PURE__*/ defineContainer('ion-item-divider', defineCustomElement$x, [
|
|
739
723
|
'color',
|
|
740
724
|
'sticky'
|
|
741
725
|
]);
|
|
742
|
-
const IonItemGroup = /*@__PURE__*/ defineContainer('ion-item-group', defineCustomElement$
|
|
743
|
-
const IonItemOption = /*@__PURE__*/ defineContainer('ion-item-option', defineCustomElement$
|
|
726
|
+
const IonItemGroup = /*@__PURE__*/ defineContainer('ion-item-group', defineCustomElement$y);
|
|
727
|
+
const IonItemOption = /*@__PURE__*/ defineContainer('ion-item-option', defineCustomElement$z, [
|
|
744
728
|
'color',
|
|
745
729
|
'disabled',
|
|
746
730
|
'download',
|
|
747
731
|
'expandable',
|
|
748
732
|
'href',
|
|
749
|
-
'hue',
|
|
750
733
|
'rel',
|
|
751
734
|
'target',
|
|
752
|
-
'type'
|
|
753
|
-
'shape'
|
|
735
|
+
'type'
|
|
754
736
|
]);
|
|
755
|
-
const IonItemOptions = /*@__PURE__*/ defineContainer('ion-item-options', defineCustomElement$
|
|
737
|
+
const IonItemOptions = /*@__PURE__*/ defineContainer('ion-item-options', defineCustomElement$A, [
|
|
756
738
|
'side',
|
|
757
739
|
'ionSwipe'
|
|
758
740
|
], [
|
|
759
741
|
'ionSwipe'
|
|
760
742
|
]);
|
|
761
|
-
const IonItemSliding = /*@__PURE__*/ defineContainer('ion-item-sliding', defineCustomElement$
|
|
743
|
+
const IonItemSliding = /*@__PURE__*/ defineContainer('ion-item-sliding', defineCustomElement$B, [
|
|
762
744
|
'disabled',
|
|
763
745
|
'ionDrag'
|
|
764
746
|
], [
|
|
765
747
|
'ionDrag'
|
|
766
748
|
]);
|
|
767
|
-
const IonLabel = /*@__PURE__*/ defineContainer('ion-label', defineCustomElement$
|
|
749
|
+
const IonLabel = /*@__PURE__*/ defineContainer('ion-label', defineCustomElement$C, [
|
|
768
750
|
'color',
|
|
769
751
|
'position',
|
|
770
752
|
'ionColor',
|
|
@@ -773,16 +755,15 @@ const IonLabel = /*@__PURE__*/ defineContainer('ion-label', defineCustomElement$
|
|
|
773
755
|
'ionColor',
|
|
774
756
|
'ionStyle'
|
|
775
757
|
]);
|
|
776
|
-
const IonList = /*@__PURE__*/ defineContainer('ion-list', defineCustomElement$
|
|
758
|
+
const IonList = /*@__PURE__*/ defineContainer('ion-list', defineCustomElement$D, [
|
|
777
759
|
'lines',
|
|
778
|
-
'inset'
|
|
779
|
-
'shape'
|
|
760
|
+
'inset'
|
|
780
761
|
]);
|
|
781
|
-
const IonListHeader = /*@__PURE__*/ defineContainer('ion-list-header', defineCustomElement$
|
|
762
|
+
const IonListHeader = /*@__PURE__*/ defineContainer('ion-list-header', defineCustomElement$E, [
|
|
782
763
|
'color',
|
|
783
764
|
'lines'
|
|
784
765
|
]);
|
|
785
|
-
const IonMenu = /*@__PURE__*/ defineContainer('ion-menu', defineCustomElement$
|
|
766
|
+
const IonMenu = /*@__PURE__*/ defineContainer('ion-menu', defineCustomElement$F, [
|
|
786
767
|
'contentId',
|
|
787
768
|
'menuId',
|
|
788
769
|
'type',
|
|
@@ -802,32 +783,32 @@ const IonMenu = /*@__PURE__*/ defineContainer('ion-menu', defineCustomElement$I,
|
|
|
802
783
|
'ionDidClose',
|
|
803
784
|
'ionMenuChange'
|
|
804
785
|
]);
|
|
805
|
-
const IonMenuButton = /*@__PURE__*/ defineContainer('ion-menu-button', defineCustomElement$
|
|
786
|
+
const IonMenuButton = /*@__PURE__*/ defineContainer('ion-menu-button', defineCustomElement$G, [
|
|
806
787
|
'color',
|
|
807
788
|
'disabled',
|
|
808
789
|
'menu',
|
|
809
790
|
'autoHide',
|
|
810
791
|
'type'
|
|
811
792
|
]);
|
|
812
|
-
const IonMenuToggle = /*@__PURE__*/ defineContainer('ion-menu-toggle', defineCustomElement$
|
|
793
|
+
const IonMenuToggle = /*@__PURE__*/ defineContainer('ion-menu-toggle', defineCustomElement$H, [
|
|
813
794
|
'menu',
|
|
814
795
|
'autoHide'
|
|
815
796
|
]);
|
|
816
|
-
const IonNavLink = /*@__PURE__*/ defineContainer('ion-nav-link', defineCustomElement$
|
|
797
|
+
const IonNavLink = /*@__PURE__*/ defineContainer('ion-nav-link', defineCustomElement$I, [
|
|
817
798
|
'component',
|
|
818
799
|
'componentProps',
|
|
819
800
|
'routerDirection',
|
|
820
801
|
'routerAnimation'
|
|
821
802
|
]);
|
|
822
|
-
const IonNote = /*@__PURE__*/ defineContainer('ion-note', defineCustomElement$
|
|
803
|
+
const IonNote = /*@__PURE__*/ defineContainer('ion-note', defineCustomElement$J, [
|
|
823
804
|
'color'
|
|
824
805
|
]);
|
|
825
|
-
const IonPicker = /*@__PURE__*/ defineContainer('ion-picker', defineCustomElement$
|
|
806
|
+
const IonPicker = /*@__PURE__*/ defineContainer('ion-picker', defineCustomElement$K, [
|
|
826
807
|
'ionInputModeChange'
|
|
827
808
|
], [
|
|
828
809
|
'ionInputModeChange'
|
|
829
810
|
]);
|
|
830
|
-
const IonPickerColumn = /*@__PURE__*/ defineContainer('ion-picker-column', defineCustomElement$
|
|
811
|
+
const IonPickerColumn = /*@__PURE__*/ defineContainer('ion-picker-column', defineCustomElement$L, [
|
|
831
812
|
'disabled',
|
|
832
813
|
'value',
|
|
833
814
|
'color',
|
|
@@ -836,20 +817,19 @@ const IonPickerColumn = /*@__PURE__*/ defineContainer('ion-picker-column', defin
|
|
|
836
817
|
], [
|
|
837
818
|
'ionChange'
|
|
838
819
|
]);
|
|
839
|
-
const IonPickerColumnOption = /*@__PURE__*/ defineContainer('ion-picker-column-option', defineCustomElement$
|
|
820
|
+
const IonPickerColumnOption = /*@__PURE__*/ defineContainer('ion-picker-column-option', defineCustomElement$M, [
|
|
840
821
|
'disabled',
|
|
841
822
|
'value',
|
|
842
823
|
'color'
|
|
843
824
|
]);
|
|
844
|
-
const IonProgressBar = /*@__PURE__*/ defineContainer('ion-progress-bar', defineCustomElement$
|
|
825
|
+
const IonProgressBar = /*@__PURE__*/ defineContainer('ion-progress-bar', defineCustomElement$N, [
|
|
845
826
|
'type',
|
|
846
827
|
'reversed',
|
|
847
828
|
'value',
|
|
848
829
|
'buffer',
|
|
849
|
-
'color'
|
|
850
|
-
'shape'
|
|
830
|
+
'color'
|
|
851
831
|
]);
|
|
852
|
-
const IonRadio = /*@__PURE__*/ defineContainer('ion-radio', defineCustomElement$
|
|
832
|
+
const IonRadio = /*@__PURE__*/ defineContainer('ion-radio', defineCustomElement$O, [
|
|
853
833
|
'color',
|
|
854
834
|
'name',
|
|
855
835
|
'disabled',
|
|
@@ -862,8 +842,8 @@ const IonRadio = /*@__PURE__*/ defineContainer('ion-radio', defineCustomElement$
|
|
|
862
842
|
], [
|
|
863
843
|
'ionFocus',
|
|
864
844
|
'ionBlur'
|
|
865
|
-
], 'value', '
|
|
866
|
-
const IonRadioGroup = /*@__PURE__*/ defineContainer('ion-radio-group', defineCustomElement$
|
|
845
|
+
], 'value', 'ionChange', undefined);
|
|
846
|
+
const IonRadioGroup = /*@__PURE__*/ defineContainer('ion-radio-group', defineCustomElement$P, [
|
|
867
847
|
'allowEmptySelection',
|
|
868
848
|
'compareWith',
|
|
869
849
|
'name',
|
|
@@ -875,8 +855,8 @@ const IonRadioGroup = /*@__PURE__*/ defineContainer('ion-radio-group', defineCus
|
|
|
875
855
|
], [
|
|
876
856
|
'ionChange',
|
|
877
857
|
'ionValueChange'
|
|
878
|
-
], 'value', '
|
|
879
|
-
const IonRange = /*@__PURE__*/ defineContainer('ion-range', defineCustomElement$
|
|
858
|
+
], 'value', 'ionChange', undefined);
|
|
859
|
+
const IonRange = /*@__PURE__*/ defineContainer('ion-range', defineCustomElement$Q, [
|
|
880
860
|
'color',
|
|
881
861
|
'debounce',
|
|
882
862
|
'name',
|
|
@@ -906,8 +886,8 @@ const IonRange = /*@__PURE__*/ defineContainer('ion-range', defineCustomElement$
|
|
|
906
886
|
'ionBlur',
|
|
907
887
|
'ionKnobMoveStart',
|
|
908
888
|
'ionKnobMoveEnd'
|
|
909
|
-
], 'value', '
|
|
910
|
-
const IonRefresher = /*@__PURE__*/ defineContainer('ion-refresher', defineCustomElement$
|
|
889
|
+
], 'value', 'ionInput', undefined);
|
|
890
|
+
const IonRefresher = /*@__PURE__*/ defineContainer('ion-refresher', defineCustomElement$R, [
|
|
911
891
|
'pullMin',
|
|
912
892
|
'pullMax',
|
|
913
893
|
'closeDuration',
|
|
@@ -926,14 +906,14 @@ const IonRefresher = /*@__PURE__*/ defineContainer('ion-refresher', defineCustom
|
|
|
926
906
|
'ionPullStart',
|
|
927
907
|
'ionPullEnd'
|
|
928
908
|
]);
|
|
929
|
-
const IonRefresherContent = /*@__PURE__*/ defineContainer('ion-refresher-content', defineCustomElement$
|
|
909
|
+
const IonRefresherContent = /*@__PURE__*/ defineContainer('ion-refresher-content', defineCustomElement$S, [
|
|
930
910
|
'pullingIcon',
|
|
931
911
|
'pullingText',
|
|
932
912
|
'refreshingSpinner',
|
|
933
913
|
'refreshingText'
|
|
934
914
|
]);
|
|
935
|
-
const IonReorder = /*@__PURE__*/ defineContainer('ion-reorder', defineCustomElement$
|
|
936
|
-
const IonReorderGroup = /*@__PURE__*/ defineContainer('ion-reorder-group', defineCustomElement$
|
|
915
|
+
const IonReorder = /*@__PURE__*/ defineContainer('ion-reorder', defineCustomElement$T);
|
|
916
|
+
const IonReorderGroup = /*@__PURE__*/ defineContainer('ion-reorder-group', defineCustomElement$U, [
|
|
937
917
|
'disabled',
|
|
938
918
|
'ionItemReorder',
|
|
939
919
|
'ionReorderStart',
|
|
@@ -945,11 +925,11 @@ const IonReorderGroup = /*@__PURE__*/ defineContainer('ion-reorder-group', defin
|
|
|
945
925
|
'ionReorderMove',
|
|
946
926
|
'ionReorderEnd'
|
|
947
927
|
]);
|
|
948
|
-
const IonRippleEffect = /*@__PURE__*/ defineContainer('ion-ripple-effect', defineCustomElement$
|
|
928
|
+
const IonRippleEffect = /*@__PURE__*/ defineContainer('ion-ripple-effect', defineCustomElement$V, [
|
|
949
929
|
'type'
|
|
950
930
|
]);
|
|
951
|
-
const IonRow = /*@__PURE__*/ defineContainer('ion-row', defineCustomElement$
|
|
952
|
-
const IonSearchbar = /*@__PURE__*/ defineContainer('ion-searchbar', defineCustomElement$
|
|
931
|
+
const IonRow = /*@__PURE__*/ defineContainer('ion-row', defineCustomElement$W);
|
|
932
|
+
const IonSearchbar = /*@__PURE__*/ defineContainer('ion-searchbar', defineCustomElement$X, [
|
|
953
933
|
'color',
|
|
954
934
|
'animated',
|
|
955
935
|
'autocapitalize',
|
|
@@ -972,8 +952,6 @@ const IonSearchbar = /*@__PURE__*/ defineContainer('ion-searchbar', defineCustom
|
|
|
972
952
|
'spellcheck',
|
|
973
953
|
'type',
|
|
974
954
|
'value',
|
|
975
|
-
'shape',
|
|
976
|
-
'size',
|
|
977
955
|
'ionInput',
|
|
978
956
|
'ionChange',
|
|
979
957
|
'ionCancel',
|
|
@@ -989,8 +967,8 @@ const IonSearchbar = /*@__PURE__*/ defineContainer('ion-searchbar', defineCustom
|
|
|
989
967
|
'ionBlur',
|
|
990
968
|
'ionFocus',
|
|
991
969
|
'ionStyle'
|
|
992
|
-
], 'value', '
|
|
993
|
-
const IonSegment = /*@__PURE__*/ defineContainer('ion-segment', defineCustomElement
|
|
970
|
+
], 'value', 'ionInput', undefined);
|
|
971
|
+
const IonSegment = /*@__PURE__*/ defineContainer('ion-segment', defineCustomElement$Y, [
|
|
994
972
|
'color',
|
|
995
973
|
'disabled',
|
|
996
974
|
'scrollable',
|
|
@@ -1004,25 +982,24 @@ const IonSegment = /*@__PURE__*/ defineContainer('ion-segment', defineCustomElem
|
|
|
1004
982
|
'ionChange',
|
|
1005
983
|
'ionSelect',
|
|
1006
984
|
'ionStyle'
|
|
1007
|
-
], 'value', '
|
|
1008
|
-
const IonSegmentButton = /*@__PURE__*/ defineContainer('ion-segment-button', defineCustomElement$
|
|
985
|
+
], 'value', 'ionChange', undefined);
|
|
986
|
+
const IonSegmentButton = /*@__PURE__*/ defineContainer('ion-segment-button', defineCustomElement$Z, [
|
|
1009
987
|
'contentId',
|
|
1010
988
|
'disabled',
|
|
1011
989
|
'layout',
|
|
1012
990
|
'type',
|
|
1013
991
|
'value'
|
|
1014
|
-
], [], 'value', '
|
|
1015
|
-
const IonSegmentContent = /*@__PURE__*/ defineContainer('ion-segment-content', defineCustomElement$
|
|
1016
|
-
const IonSegmentView = /*@__PURE__*/ defineContainer('ion-segment-view', defineCustomElement
|
|
992
|
+
], [], 'value', 'ionChange', undefined);
|
|
993
|
+
const IonSegmentContent = /*@__PURE__*/ defineContainer('ion-segment-content', defineCustomElement$_);
|
|
994
|
+
const IonSegmentView = /*@__PURE__*/ defineContainer('ion-segment-view', defineCustomElement$$, [
|
|
1017
995
|
'disabled',
|
|
1018
996
|
'swipeGesture',
|
|
1019
997
|
'ionSegmentViewScroll'
|
|
1020
998
|
], [
|
|
1021
999
|
'ionSegmentViewScroll'
|
|
1022
1000
|
]);
|
|
1023
|
-
const IonSelect = /*@__PURE__*/ defineContainer('ion-select', defineCustomElement$
|
|
1001
|
+
const IonSelect = /*@__PURE__*/ defineContainer('ion-select', defineCustomElement$10, [
|
|
1024
1002
|
'cancelText',
|
|
1025
|
-
'cancelIcon',
|
|
1026
1003
|
'color',
|
|
1027
1004
|
'compareWith',
|
|
1028
1005
|
'disabled',
|
|
@@ -1041,10 +1018,9 @@ const IonSelect = /*@__PURE__*/ defineContainer('ion-select', defineCustomElemen
|
|
|
1041
1018
|
'selectedText',
|
|
1042
1019
|
'toggleIcon',
|
|
1043
1020
|
'expandedIcon',
|
|
1044
|
-
'required',
|
|
1045
1021
|
'shape',
|
|
1046
|
-
'size',
|
|
1047
1022
|
'value',
|
|
1023
|
+
'required',
|
|
1048
1024
|
'ionChange',
|
|
1049
1025
|
'ionCancel',
|
|
1050
1026
|
'ionDismiss',
|
|
@@ -1058,35 +1034,33 @@ const IonSelect = /*@__PURE__*/ defineContainer('ion-select', defineCustomElemen
|
|
|
1058
1034
|
'ionFocus',
|
|
1059
1035
|
'ionBlur',
|
|
1060
1036
|
'ionStyle'
|
|
1061
|
-
], 'value', '
|
|
1062
|
-
const IonSelectModal = /*@__PURE__*/ defineContainer('ion-select-modal', defineCustomElement$
|
|
1037
|
+
], 'value', 'ionChange', undefined);
|
|
1038
|
+
const IonSelectModal = /*@__PURE__*/ defineContainer('ion-select-modal', defineCustomElement$11, [
|
|
1063
1039
|
'header',
|
|
1064
1040
|
'cancelText',
|
|
1065
|
-
'cancelIcon',
|
|
1066
1041
|
'multiple',
|
|
1067
1042
|
'options'
|
|
1068
1043
|
]);
|
|
1069
|
-
const IonSelectOption = /*@__PURE__*/ defineContainer('ion-select-option', defineCustomElement$
|
|
1044
|
+
const IonSelectOption = /*@__PURE__*/ defineContainer('ion-select-option', defineCustomElement$12, [
|
|
1070
1045
|
'disabled',
|
|
1071
1046
|
'value',
|
|
1072
1047
|
'description',
|
|
1073
1048
|
'labelPlacement',
|
|
1074
1049
|
'justify'
|
|
1075
1050
|
]);
|
|
1076
|
-
const IonSkeletonText = /*@__PURE__*/ defineContainer('ion-skeleton-text', defineCustomElement$
|
|
1051
|
+
const IonSkeletonText = /*@__PURE__*/ defineContainer('ion-skeleton-text', defineCustomElement$13, [
|
|
1077
1052
|
'animated',
|
|
1078
1053
|
'ionStyle'
|
|
1079
1054
|
], [
|
|
1080
1055
|
'ionStyle'
|
|
1081
1056
|
]);
|
|
1082
|
-
const IonSpinner = /*@__PURE__*/ defineContainer('ion-spinner', defineCustomElement$
|
|
1057
|
+
const IonSpinner = /*@__PURE__*/ defineContainer('ion-spinner', defineCustomElement$14, [
|
|
1083
1058
|
'color',
|
|
1084
1059
|
'duration',
|
|
1085
1060
|
'name',
|
|
1086
|
-
'paused'
|
|
1087
|
-
'size'
|
|
1061
|
+
'paused'
|
|
1088
1062
|
]);
|
|
1089
|
-
const IonSplitPane = /*@__PURE__*/ defineContainer('ion-split-pane', defineCustomElement$
|
|
1063
|
+
const IonSplitPane = /*@__PURE__*/ defineContainer('ion-split-pane', defineCustomElement$15, [
|
|
1090
1064
|
'contentId',
|
|
1091
1065
|
'disabled',
|
|
1092
1066
|
'when',
|
|
@@ -1094,16 +1068,16 @@ const IonSplitPane = /*@__PURE__*/ defineContainer('ion-split-pane', defineCusto
|
|
|
1094
1068
|
], [
|
|
1095
1069
|
'ionSplitPaneVisible'
|
|
1096
1070
|
]);
|
|
1097
|
-
const IonTab = /*@__PURE__*/ defineContainer('ion-tab', defineCustomElement$
|
|
1071
|
+
const IonTab = /*@__PURE__*/ defineContainer('ion-tab', defineCustomElement$16, [
|
|
1098
1072
|
'active',
|
|
1099
1073
|
'delegate',
|
|
1100
1074
|
'tab',
|
|
1101
1075
|
'component'
|
|
1102
1076
|
]);
|
|
1103
|
-
const IonText = /*@__PURE__*/ defineContainer('ion-text', defineCustomElement$
|
|
1077
|
+
const IonText = /*@__PURE__*/ defineContainer('ion-text', defineCustomElement$17, [
|
|
1104
1078
|
'color'
|
|
1105
1079
|
]);
|
|
1106
|
-
const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomElement$
|
|
1080
|
+
const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomElement$18, [
|
|
1107
1081
|
'color',
|
|
1108
1082
|
'autocapitalize',
|
|
1109
1083
|
'autofocus',
|
|
@@ -1132,7 +1106,6 @@ const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomEl
|
|
|
1132
1106
|
'label',
|
|
1133
1107
|
'labelPlacement',
|
|
1134
1108
|
'shape',
|
|
1135
|
-
'size',
|
|
1136
1109
|
'ionChange',
|
|
1137
1110
|
'ionInput',
|
|
1138
1111
|
'ionBlur',
|
|
@@ -1142,16 +1115,16 @@ const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomEl
|
|
|
1142
1115
|
'ionInput',
|
|
1143
1116
|
'ionBlur',
|
|
1144
1117
|
'ionFocus'
|
|
1145
|
-
], 'value', '
|
|
1146
|
-
const IonThumbnail = /*@__PURE__*/ defineContainer('ion-thumbnail', defineCustomElement$
|
|
1147
|
-
const IonTitle = /*@__PURE__*/ defineContainer('ion-title', defineCustomElement$
|
|
1118
|
+
], 'value', 'ionInput', undefined);
|
|
1119
|
+
const IonThumbnail = /*@__PURE__*/ defineContainer('ion-thumbnail', defineCustomElement$19);
|
|
1120
|
+
const IonTitle = /*@__PURE__*/ defineContainer('ion-title', defineCustomElement$1a, [
|
|
1148
1121
|
'color',
|
|
1149
1122
|
'size',
|
|
1150
1123
|
'ionStyle'
|
|
1151
1124
|
], [
|
|
1152
1125
|
'ionStyle'
|
|
1153
1126
|
]);
|
|
1154
|
-
const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineCustomElement$
|
|
1127
|
+
const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineCustomElement$1b, [
|
|
1155
1128
|
'color',
|
|
1156
1129
|
'name',
|
|
1157
1130
|
'checked',
|
|
@@ -1171,14 +1144,21 @@ const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineCustomElemen
|
|
|
1171
1144
|
'ionChange',
|
|
1172
1145
|
'ionFocus',
|
|
1173
1146
|
'ionBlur'
|
|
1174
|
-
], 'checked', '
|
|
1175
|
-
const IonToolbar = /*@__PURE__*/ defineContainer('ion-toolbar', defineCustomElement$
|
|
1176
|
-
'color'
|
|
1177
|
-
'titlePlacement'
|
|
1147
|
+
], 'checked', 'ionChange', undefined);
|
|
1148
|
+
const IonToolbar = /*@__PURE__*/ defineContainer('ion-toolbar', defineCustomElement$1c, [
|
|
1149
|
+
'color'
|
|
1178
1150
|
]);
|
|
1179
1151
|
|
|
1180
1152
|
const useBackButton = (priority, handler) => {
|
|
1181
|
-
|
|
1153
|
+
/**
|
|
1154
|
+
* `Handler` permits returning null, which core's public `register` type
|
|
1155
|
+
* does not accept, so normalize it rather than narrowing the public
|
|
1156
|
+
* `useBackButton` contract.
|
|
1157
|
+
*/
|
|
1158
|
+
const callback = (ev) => ev.detail.register(priority, (processNextHandler) => {
|
|
1159
|
+
const result = handler(processNextHandler);
|
|
1160
|
+
return result === null ? undefined : result;
|
|
1161
|
+
});
|
|
1182
1162
|
const unregister = () => document.removeEventListener("ionBackButton", callback);
|
|
1183
1163
|
document.addEventListener("ionBackButton", callback);
|
|
1184
1164
|
return { unregister };
|
|
@@ -1228,17 +1208,16 @@ const hookNames = {
|
|
|
1228
1208
|
};
|
|
1229
1209
|
const ids = { main: 0 };
|
|
1230
1210
|
const generateId = (type = "main") => {
|
|
1231
|
-
|
|
1232
|
-
const id = ((_a = ids[type]) !== null && _a !== void 0 ? _a : 0) + 1;
|
|
1211
|
+
const id = (ids[type] ?? 0) + 1;
|
|
1233
1212
|
ids[type] = id;
|
|
1234
1213
|
return id.toString();
|
|
1235
1214
|
};
|
|
1236
1215
|
const fireLifecycle = (vueComponent, vueInstance, lifecycle) => {
|
|
1237
|
-
if (vueComponent
|
|
1238
|
-
vueComponent[lifecycle].bind(vueInstance
|
|
1216
|
+
if (vueComponent?.[lifecycle]) {
|
|
1217
|
+
vueComponent[lifecycle].bind(vueInstance?.value)();
|
|
1239
1218
|
}
|
|
1240
|
-
const instance = vueInstance
|
|
1241
|
-
if (instance
|
|
1219
|
+
const instance = vueInstance?.value;
|
|
1220
|
+
if (instance?.[lifecycle]) {
|
|
1242
1221
|
instance[lifecycle]();
|
|
1243
1222
|
}
|
|
1244
1223
|
/**
|
|
@@ -1292,7 +1271,13 @@ const injectHook = (lifecycleType, hook, component) => {
|
|
|
1292
1271
|
}
|
|
1293
1272
|
};
|
|
1294
1273
|
const createHook = (lifecycle) => {
|
|
1295
|
-
return (hook, target = getCurrentInstance()
|
|
1274
|
+
return (hook, target = getCurrentInstance()
|
|
1275
|
+
/**
|
|
1276
|
+
* `injectHook` returns undefined when called outside of `setup()`, but
|
|
1277
|
+
* that path only warns. Keep the published `Function` return so enabling
|
|
1278
|
+
* `strict` does not widen this to `Function | undefined` for consumers.
|
|
1279
|
+
*/
|
|
1280
|
+
) => injectHook(lifecycle, hook, target);
|
|
1296
1281
|
};
|
|
1297
1282
|
const onIonViewWillEnter = createHook(LifecycleHooks.WillEnter);
|
|
1298
1283
|
const onIonViewDidEnter = createHook(LifecycleHooks.DidEnter);
|
|
@@ -1337,10 +1322,10 @@ const IonicVue = {
|
|
|
1337
1322
|
};
|
|
1338
1323
|
|
|
1339
1324
|
const IonBackButton = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
|
|
1340
|
-
defineCustomElement$
|
|
1325
|
+
defineCustomElement$1d();
|
|
1341
1326
|
// TODO(FW-2969): type
|
|
1342
1327
|
const ionRouter = inject("navManager");
|
|
1343
|
-
const onClick = () => {
|
|
1328
|
+
const onClick = (ev) => {
|
|
1344
1329
|
/**
|
|
1345
1330
|
* When using ion-back-button outside of
|
|
1346
1331
|
* a routing context, ionRouter is undefined.
|
|
@@ -1348,12 +1333,33 @@ const IonBackButton = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
|
|
|
1348
1333
|
if (ionRouter === undefined) {
|
|
1349
1334
|
return;
|
|
1350
1335
|
}
|
|
1351
|
-
|
|
1336
|
+
/**
|
|
1337
|
+
* If ion-back-button is being used inside
|
|
1338
|
+
* of ion-nav (e.g. in a modal) then we should
|
|
1339
|
+
* not interact with the router. The core
|
|
1340
|
+
* ion-back-button component will handle the
|
|
1341
|
+
* nav.pop() in that case.
|
|
1342
|
+
*/
|
|
1343
|
+
const target = ev.target;
|
|
1344
|
+
if (target && target.closest("ion-nav") !== null) {
|
|
1345
|
+
return;
|
|
1346
|
+
}
|
|
1347
|
+
/**
|
|
1348
|
+
* Core resolves `backButtonDefaultHref` itself and only renders the
|
|
1349
|
+
* button once it has a href, so read the config here too or a
|
|
1350
|
+
* config-only back button would be visible but do nothing.
|
|
1351
|
+
*/
|
|
1352
|
+
const defaultHref = attrs["default-href"] ||
|
|
1353
|
+
attrs["defaultHref"] ||
|
|
1354
|
+
getConfig()?.get("backButtonDefaultHref");
|
|
1352
1355
|
const routerAnimation = attrs["router-animation"] || attrs["routerAnimation"];
|
|
1353
1356
|
ionRouter.handleNavigateBack(defaultHref, routerAnimation);
|
|
1354
1357
|
};
|
|
1355
1358
|
return () => {
|
|
1356
|
-
return h("ion-back-button",
|
|
1359
|
+
return h("ion-back-button", {
|
|
1360
|
+
onClick,
|
|
1361
|
+
...attrs,
|
|
1362
|
+
}, slots.default && slots.default());
|
|
1357
1363
|
};
|
|
1358
1364
|
}, {
|
|
1359
1365
|
name: "IonBackButton",
|
|
@@ -1362,7 +1368,6 @@ const IonBackButton = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
|
|
|
1362
1368
|
const IonPage = /*@__PURE__*/ defineComponent({
|
|
1363
1369
|
name: "IonPage",
|
|
1364
1370
|
props: {
|
|
1365
|
-
// eslint-disable-next-line @typescript-eslint/no-empty-function
|
|
1366
1371
|
registerIonPage: { type: Function, default: () => { } },
|
|
1367
1372
|
},
|
|
1368
1373
|
mounted() {
|
|
@@ -1370,7 +1375,11 @@ const IonPage = /*@__PURE__*/ defineComponent({
|
|
|
1370
1375
|
},
|
|
1371
1376
|
setup(_, { attrs, slots }) {
|
|
1372
1377
|
return () => {
|
|
1373
|
-
return h("div",
|
|
1378
|
+
return h("div", {
|
|
1379
|
+
...attrs,
|
|
1380
|
+
["class"]: "ion-page",
|
|
1381
|
+
ref: "ionPage",
|
|
1382
|
+
}, slots.default && slots.default());
|
|
1374
1383
|
};
|
|
1375
1384
|
},
|
|
1376
1385
|
});
|
|
@@ -1383,8 +1392,14 @@ const isViewVisible = (enteringEl) => {
|
|
|
1383
1392
|
const viewDepthKey = Symbol(0);
|
|
1384
1393
|
const IonRouterOutlet = /*@__PURE__*/ defineComponent({
|
|
1385
1394
|
name: "IonRouterOutlet",
|
|
1395
|
+
props: {
|
|
1396
|
+
swipeGesture: {
|
|
1397
|
+
type: Boolean,
|
|
1398
|
+
default: undefined,
|
|
1399
|
+
},
|
|
1400
|
+
},
|
|
1386
1401
|
setup() {
|
|
1387
|
-
defineCustomElement$
|
|
1402
|
+
defineCustomElement$1e();
|
|
1388
1403
|
const injectedRoute = inject(routeLocationKey);
|
|
1389
1404
|
const route = useRoute();
|
|
1390
1405
|
const depth = inject(viewDepthKey, 0);
|
|
@@ -1397,6 +1412,7 @@ const IonRouterOutlet = /*@__PURE__*/ defineComponent({
|
|
|
1397
1412
|
const id = generateId("ion-router-outlet");
|
|
1398
1413
|
const ionRouter = inject("navManager");
|
|
1399
1414
|
const viewStacks = inject("viewStacks");
|
|
1415
|
+
// TODO(FW-2969): type
|
|
1400
1416
|
const components = shallowRef([]);
|
|
1401
1417
|
let skipTransition = false;
|
|
1402
1418
|
// The base url for this router outlet
|
|
@@ -1460,11 +1476,6 @@ const IonRouterOutlet = /*@__PURE__*/ defineComponent({
|
|
|
1460
1476
|
*/
|
|
1461
1477
|
{ deep: true });
|
|
1462
1478
|
const canStart = () => {
|
|
1463
|
-
const config = getConfig();
|
|
1464
|
-
const swipeEnabled = config &&
|
|
1465
|
-
config.get("swipeBackEnabled", ionRouterOutlet.value.mode === "ios");
|
|
1466
|
-
if (!swipeEnabled)
|
|
1467
|
-
return false;
|
|
1468
1479
|
const stack = viewStacks.getViewStack(id);
|
|
1469
1480
|
if (!stack || stack.length <= 1)
|
|
1470
1481
|
return false;
|
|
@@ -1599,12 +1610,12 @@ See https://ionicframework.com/docs/vue/navigation#ionpage for more information.
|
|
|
1599
1610
|
* going from a non-tabs page to a tabs page.
|
|
1600
1611
|
*/
|
|
1601
1612
|
if (isViewVisible(enteringEl) &&
|
|
1602
|
-
|
|
1613
|
+
leavingViewItem?.ionPageElement !== undefined &&
|
|
1603
1614
|
!isViewVisible(leavingViewItem.ionPageElement)) {
|
|
1604
1615
|
return;
|
|
1605
1616
|
}
|
|
1606
1617
|
fireLifecycle(enteringViewItem.vueComponent, enteringViewItem.vueComponentRef, LIFECYCLE_WILL_ENTER);
|
|
1607
|
-
if (
|
|
1618
|
+
if (leavingViewItem?.ionPageElement &&
|
|
1608
1619
|
enteringViewItem !== leavingViewItem) {
|
|
1609
1620
|
let animationBuilder = routerAnimation;
|
|
1610
1621
|
const leavingEl = leavingViewItem.ionPageElement;
|
|
@@ -1755,9 +1766,16 @@ See https://ionicframework.com/docs/vue/navigation#ionpage for more information.
|
|
|
1755
1766
|
},
|
|
1756
1767
|
render() {
|
|
1757
1768
|
const { components, registerIonPage, injectedRoute } = this;
|
|
1758
|
-
|
|
1769
|
+
/**
|
|
1770
|
+
* Forward props selectively to avoid setting undefined values
|
|
1771
|
+
* that would override the web component's config-based defaults.
|
|
1772
|
+
*/
|
|
1773
|
+
const routerOutletProps = { ref: "ionRouterOutlet" };
|
|
1774
|
+
if (this.$props.swipeGesture !== undefined) {
|
|
1775
|
+
routerOutletProps.swipeGesture = this.$props.swipeGesture;
|
|
1776
|
+
}
|
|
1777
|
+
return h("ion-router-outlet", routerOutletProps, components &&
|
|
1759
1778
|
components.map((c) => {
|
|
1760
|
-
var _a, _b;
|
|
1761
1779
|
let props = {
|
|
1762
1780
|
ref: c.vueComponentRef,
|
|
1763
1781
|
key: c.pathname,
|
|
@@ -1766,7 +1784,7 @@ See https://ionicframework.com/docs/vue/navigation#ionpage for more information.
|
|
|
1766
1784
|
/**
|
|
1767
1785
|
* IonRouterOutlet does not support named outlets.
|
|
1768
1786
|
*/
|
|
1769
|
-
const routePropsOption =
|
|
1787
|
+
const routePropsOption = c.matchedRoute?.props?.default;
|
|
1770
1788
|
/**
|
|
1771
1789
|
* Since IonRouterOutlet renders multiple components,
|
|
1772
1790
|
* each render will cause all props functions to be
|
|
@@ -1777,14 +1795,16 @@ See https://ionicframework.com/docs/vue/navigation#ionpage for more information.
|
|
|
1777
1795
|
* function is called again.
|
|
1778
1796
|
*/
|
|
1779
1797
|
const getPropsFunctionResult = () => {
|
|
1780
|
-
|
|
1781
|
-
const cachedPropsResult = (_a = c.vueComponentData) === null || _a === void 0 ? void 0 : _a.propsFunctionResult;
|
|
1798
|
+
const cachedPropsResult = c.vueComponentData?.propsFunctionResult;
|
|
1782
1799
|
if (cachedPropsResult) {
|
|
1783
1800
|
return cachedPropsResult;
|
|
1784
1801
|
}
|
|
1785
1802
|
else {
|
|
1786
1803
|
const propsFunctionResult = routePropsOption(injectedRoute);
|
|
1787
|
-
c.vueComponentData =
|
|
1804
|
+
c.vueComponentData = {
|
|
1805
|
+
...c.vueComponentData,
|
|
1806
|
+
propsFunctionResult,
|
|
1807
|
+
};
|
|
1788
1808
|
return propsFunctionResult;
|
|
1789
1809
|
}
|
|
1790
1810
|
};
|
|
@@ -1795,7 +1815,10 @@ See https://ionicframework.com/docs/vue/navigation#ionpage for more information.
|
|
|
1795
1815
|
? getPropsFunctionResult()
|
|
1796
1816
|
: routePropsOption
|
|
1797
1817
|
: null;
|
|
1798
|
-
props =
|
|
1818
|
+
props = {
|
|
1819
|
+
...props,
|
|
1820
|
+
...routeProps,
|
|
1821
|
+
};
|
|
1799
1822
|
return h(c.vueComponent, props);
|
|
1800
1823
|
}));
|
|
1801
1824
|
},
|
|
@@ -1824,7 +1847,7 @@ const IonTabButton = /*@__PURE__*/ defineComponent({
|
|
|
1824
1847
|
},
|
|
1825
1848
|
},
|
|
1826
1849
|
setup(props, { slots }) {
|
|
1827
|
-
defineCustomElement$
|
|
1850
|
+
defineCustomElement$1f();
|
|
1828
1851
|
// TODO(FW-2969): type
|
|
1829
1852
|
const ionRouter = inject("navManager", null);
|
|
1830
1853
|
const onClick = (ev) => {
|
|
@@ -1840,7 +1863,7 @@ const IonTabButton = /*@__PURE__*/ defineComponent({
|
|
|
1840
1863
|
const { tab, href, _getTabState } = props;
|
|
1841
1864
|
const tabState = _getTabState();
|
|
1842
1865
|
const hasRouterOutlet = tabState.hasRouterOutlet;
|
|
1843
|
-
const tappedTab = tabState.tabs[tab] || {};
|
|
1866
|
+
const tappedTab = tabState.tabs[String(tab)] || {};
|
|
1844
1867
|
const originalHref = tappedTab.originalHref || href;
|
|
1845
1868
|
/**
|
|
1846
1869
|
* If the router outlet is not defined, then the tabs is being used
|
|
@@ -1869,7 +1892,7 @@ const IonTabButton = /*@__PURE__*/ defineComponent({
|
|
|
1869
1892
|
if (ionRouter !== null) {
|
|
1870
1893
|
if (prevActiveTab === tab) {
|
|
1871
1894
|
if (originalHref !== currentHref) {
|
|
1872
|
-
ionRouter.resetTab(tab);
|
|
1895
|
+
ionRouter.resetTab(tab, originalHref);
|
|
1873
1896
|
}
|
|
1874
1897
|
}
|
|
1875
1898
|
else {
|
|
@@ -1878,13 +1901,17 @@ const IonTabButton = /*@__PURE__*/ defineComponent({
|
|
|
1878
1901
|
}
|
|
1879
1902
|
};
|
|
1880
1903
|
return () => {
|
|
1881
|
-
return h("ion-tab-button",
|
|
1904
|
+
return h("ion-tab-button", {
|
|
1905
|
+
onClick,
|
|
1906
|
+
...props,
|
|
1907
|
+
}, slots.default && slots.default());
|
|
1882
1908
|
};
|
|
1883
1909
|
},
|
|
1884
1910
|
});
|
|
1885
1911
|
|
|
1886
1912
|
const WILL_CHANGE = "ionTabsWillChange";
|
|
1887
1913
|
const DID_CHANGE = "ionTabsDidChange";
|
|
1914
|
+
// TODO(FW-2969): types
|
|
1888
1915
|
/**
|
|
1889
1916
|
* Vue 3.2.38 fixed an issue where Web Component
|
|
1890
1917
|
* names are respected using kebab case instead of pascal case.
|
|
@@ -1905,7 +1932,8 @@ const isTab = (node) => {
|
|
|
1905
1932
|
}
|
|
1906
1933
|
return false; // In case the fragment has no children.
|
|
1907
1934
|
}
|
|
1908
|
-
return (node.type &&
|
|
1935
|
+
return (!!node.type &&
|
|
1936
|
+
(node.type.name === "ion-tab" || node.type === IonTab));
|
|
1909
1937
|
};
|
|
1910
1938
|
const IonTabs = /*@__PURE__*/ defineComponent({
|
|
1911
1939
|
name: "IonTabs",
|
|
@@ -1953,7 +1981,7 @@ const IonTabs = /*@__PURE__*/ defineComponent({
|
|
|
1953
1981
|
* `selectedTab` from core, which may occur if the custom
|
|
1954
1982
|
* element is defined too early in the component's lifecycle.
|
|
1955
1983
|
*/
|
|
1956
|
-
defineCustomElement$
|
|
1984
|
+
defineCustomElement$1g();
|
|
1957
1985
|
},
|
|
1958
1986
|
render() {
|
|
1959
1987
|
const { slots, props } = this;
|
|
@@ -1984,7 +2012,9 @@ const IonTabs = /*@__PURE__*/ defineComponent({
|
|
|
1984
2012
|
throw new Error("IonTabs cannot contain an IonRouterOutlet and IonTab at the same time.");
|
|
1985
2013
|
}
|
|
1986
2014
|
if (hasTab) {
|
|
1987
|
-
return h("ion-tabs",
|
|
2015
|
+
return h("ion-tabs", {
|
|
2016
|
+
...props,
|
|
2017
|
+
}, slottedContent);
|
|
1988
2018
|
}
|
|
1989
2019
|
/**
|
|
1990
2020
|
* TODO(ROU-11056)
|
|
@@ -2014,7 +2044,7 @@ const IonTabs = /*@__PURE__*/ defineComponent({
|
|
|
2014
2044
|
},
|
|
2015
2045
|
});
|
|
2016
2046
|
|
|
2017
|
-
const isTabButton = (child) =>
|
|
2047
|
+
const isTabButton = (child) => child.type?.name === "IonTabButton";
|
|
2018
2048
|
/**
|
|
2019
2049
|
* Checks if pathname matches the tab's href using path segment matching.
|
|
2020
2050
|
* Avoids false matches like /home2 matching /home by requiring exact match
|
|
@@ -2063,10 +2093,12 @@ const IonTabBar = defineComponent({
|
|
|
2063
2093
|
hasRouterOutlet: false,
|
|
2064
2094
|
},
|
|
2065
2095
|
tabVnodes: [],
|
|
2066
|
-
|
|
2067
|
-
|
|
2068
|
-
|
|
2069
|
-
|
|
2096
|
+
/**
|
|
2097
|
+
* No-ops until `mounted` swaps in IonTabs' emitters, if IonTabs is
|
|
2098
|
+
* present.
|
|
2099
|
+
*/
|
|
2100
|
+
_tabsWillChange: (() => { }),
|
|
2101
|
+
_tabsDidChange: (() => { }),
|
|
2070
2102
|
};
|
|
2071
2103
|
},
|
|
2072
2104
|
updated() {
|
|
@@ -2083,14 +2115,21 @@ const IonTabBar = defineComponent({
|
|
|
2083
2115
|
* show any child pages if necessary.
|
|
2084
2116
|
*/
|
|
2085
2117
|
const tabState = this.$data.tabState;
|
|
2086
|
-
const
|
|
2087
|
-
const tabs = (this.$data.tabVnodes = getTabs((currentInstance.subTree.children || [])));
|
|
2118
|
+
const tabs = (this.$data.tabVnodes = getTabs((this.$.subTree.children || [])));
|
|
2088
2119
|
tabs.forEach((child) => {
|
|
2089
|
-
|
|
2090
|
-
|
|
2091
|
-
|
|
2120
|
+
/**
|
|
2121
|
+
* `tab` may be undefined. `String()` keeps the key identical to the
|
|
2122
|
+
* one IonTabButton looks up.
|
|
2123
|
+
*/
|
|
2124
|
+
const childProps = child.props ?? {};
|
|
2125
|
+
tabState.tabs[String(childProps.tab)] = {
|
|
2126
|
+
originalHref: childProps.href,
|
|
2127
|
+
currentHref: childProps.href,
|
|
2092
2128
|
ref: child,
|
|
2093
2129
|
};
|
|
2130
|
+
if (!child.component) {
|
|
2131
|
+
return;
|
|
2132
|
+
}
|
|
2094
2133
|
/**
|
|
2095
2134
|
* Passing this prop to each tab button
|
|
2096
2135
|
* lets it be aware of the state that
|
|
@@ -2128,13 +2167,13 @@ const IonTabBar = defineComponent({
|
|
|
2128
2167
|
*/
|
|
2129
2168
|
checkActiveTab(ionRouter) {
|
|
2130
2169
|
const hasRouterOutlet = this.$data.tabState.hasRouterOutlet;
|
|
2131
|
-
const currentRoute = ionRouter
|
|
2170
|
+
const currentRoute = ionRouter?.getCurrentRouteInfo();
|
|
2132
2171
|
const childNodes = this.$data.tabVnodes;
|
|
2133
2172
|
const { tabs, activeTab: prevActiveTab } = this.$data.tabState;
|
|
2134
2173
|
const tabKeys = Object.keys(tabs);
|
|
2135
2174
|
let activeTab = tabKeys.find((key) => {
|
|
2136
2175
|
const href = tabs[key].originalHref;
|
|
2137
|
-
return (
|
|
2176
|
+
return (currentRoute?.pathname && matchesTab(currentRoute.pathname, href));
|
|
2138
2177
|
});
|
|
2139
2178
|
/**
|
|
2140
2179
|
* Tabs is being used as a basic tab navigation,
|
|
@@ -2150,42 +2189,54 @@ const IonTabBar = defineComponent({
|
|
|
2150
2189
|
* it in the tabs state.
|
|
2151
2190
|
*/
|
|
2152
2191
|
childNodes.forEach((child) => {
|
|
2153
|
-
const
|
|
2154
|
-
|
|
2155
|
-
|
|
2156
|
-
|
|
2157
|
-
|
|
2192
|
+
const childProps = child.props ?? {};
|
|
2193
|
+
const tab = tabs[String(childProps.tab)];
|
|
2194
|
+
if (!tab || tab.originalHref !== childProps.href) {
|
|
2195
|
+
tabs[String(childProps.tab)] = {
|
|
2196
|
+
originalHref: childProps.href,
|
|
2197
|
+
currentHref: childProps.href,
|
|
2158
2198
|
ref: child,
|
|
2159
2199
|
};
|
|
2160
2200
|
}
|
|
2161
2201
|
});
|
|
2162
|
-
if (activeTab &&
|
|
2163
|
-
const prevHref =
|
|
2202
|
+
if (activeTab && currentRoute?.pathname) {
|
|
2203
|
+
const prevHref = prevActiveTab
|
|
2204
|
+
? this.$data.tabState.tabs[prevActiveTab].currentHref
|
|
2205
|
+
: undefined;
|
|
2164
2206
|
/**
|
|
2165
2207
|
* If the tabs change or the url changes,
|
|
2166
2208
|
* update the currentHref for the active tab.
|
|
2167
|
-
* Ex: url changes from /tabs/tab1
|
|
2209
|
+
* Ex: url changes from /tabs/tab1 to /tabs/tab1/child.
|
|
2168
2210
|
* If we went to tab2 then back to tab1, we should
|
|
2169
2211
|
* land on /tabs/tab1/child instead of /tabs/tab1.
|
|
2212
|
+
*
|
|
2213
|
+
* Also runs on initial setup so a deep-loaded tab child
|
|
2214
|
+
* records its real pathname instead of `originalHref`.
|
|
2170
2215
|
*/
|
|
2171
|
-
if (activeTab !== prevActiveTab ||
|
|
2172
|
-
prevHref !== (currentRoute === null || currentRoute === void 0 ? void 0 : currentRoute.pathname)) {
|
|
2216
|
+
if (activeTab !== prevActiveTab || prevHref !== currentRoute.pathname) {
|
|
2173
2217
|
/**
|
|
2174
2218
|
* By default the search is `undefined` in Ionic Vue,
|
|
2175
2219
|
* but Vue Router can set the search to the empty string.
|
|
2176
2220
|
* We check for truthy here because empty string is falsy
|
|
2177
2221
|
* and currentRoute.search cannot ever be a boolean.
|
|
2178
2222
|
*/
|
|
2179
|
-
const search =
|
|
2180
|
-
tabs[activeTab] =
|
|
2223
|
+
const search = currentRoute.search ? `?${currentRoute.search}` : "";
|
|
2224
|
+
tabs[activeTab] = {
|
|
2225
|
+
...tabs[activeTab],
|
|
2226
|
+
currentHref: currentRoute.pathname + search,
|
|
2227
|
+
};
|
|
2181
2228
|
}
|
|
2182
2229
|
/**
|
|
2183
2230
|
* If navigating back and the tabs change,
|
|
2184
2231
|
* set the previous tab back to its original href.
|
|
2185
2232
|
*/
|
|
2186
|
-
if (
|
|
2233
|
+
if (prevActiveTab &&
|
|
2234
|
+
currentRoute.routerAction === "pop" &&
|
|
2187
2235
|
activeTab !== prevActiveTab) {
|
|
2188
|
-
tabs[prevActiveTab] =
|
|
2236
|
+
tabs[prevActiveTab] = {
|
|
2237
|
+
...tabs[prevActiveTab],
|
|
2238
|
+
currentHref: tabs[prevActiveTab].originalHref,
|
|
2239
|
+
};
|
|
2189
2240
|
}
|
|
2190
2241
|
}
|
|
2191
2242
|
this.tabSwitch(activeTab, ionRouter);
|
|
@@ -2199,7 +2250,7 @@ const IonTabBar = defineComponent({
|
|
|
2199
2250
|
const childNodes = this.$data.tabVnodes;
|
|
2200
2251
|
const { activeTab: prevActiveTab } = this.$data.tabState;
|
|
2201
2252
|
const tabState = this.$data.tabState;
|
|
2202
|
-
const activeChild = childNodes.find((child) =>
|
|
2253
|
+
const activeChild = childNodes.find((child) => isTabButton(child) && child.props?.tab === activeTab);
|
|
2203
2254
|
const tabBar = this.$refs.ionTabBar;
|
|
2204
2255
|
const tabDidChange = activeTab !== prevActiveTab;
|
|
2205
2256
|
if (tabBar) {
|
|
@@ -2231,15 +2282,17 @@ const IonTabBar = defineComponent({
|
|
|
2231
2282
|
* IonTabs. Instead, data will be passed through
|
|
2232
2283
|
* the provide/inject.
|
|
2233
2284
|
*/
|
|
2234
|
-
const tabBarData = inject("tabBarData");
|
|
2235
|
-
|
|
2236
|
-
|
|
2237
|
-
|
|
2285
|
+
const tabBarData = inject("tabBarData", null);
|
|
2286
|
+
if (tabBarData) {
|
|
2287
|
+
this.$data.tabState.hasRouterOutlet = tabBarData.value.hasRouterOutlet;
|
|
2288
|
+
this.$data._tabsWillChange = tabBarData.value._tabsWillChange;
|
|
2289
|
+
this.$data._tabsDidChange = tabBarData.value._tabsDidChange;
|
|
2290
|
+
}
|
|
2238
2291
|
this.setupTabState(ionRouter);
|
|
2239
|
-
ionRouter
|
|
2292
|
+
ionRouter?.registerHistoryChangeListener(() => this.checkActiveTab(ionRouter));
|
|
2240
2293
|
},
|
|
2241
2294
|
setup(_, { slots }) {
|
|
2242
|
-
defineCustomElement$
|
|
2295
|
+
defineCustomElement$1h();
|
|
2243
2296
|
return () => {
|
|
2244
2297
|
return h("ion-tab-bar", { ref: "ionTabBar" }, slots.default && slots.default());
|
|
2245
2298
|
};
|
|
@@ -2248,9 +2301,12 @@ const IonTabBar = defineComponent({
|
|
|
2248
2301
|
|
|
2249
2302
|
const userComponents = shallowRef([]);
|
|
2250
2303
|
const IonApp = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
|
|
2251
|
-
defineCustomElement$
|
|
2304
|
+
defineCustomElement$1i();
|
|
2252
2305
|
return () => {
|
|
2253
|
-
return h("ion-app",
|
|
2306
|
+
return h("ion-app", {
|
|
2307
|
+
name: "IonApp",
|
|
2308
|
+
...attrs,
|
|
2309
|
+
}, [slots.default && slots.default(), ...userComponents.value]);
|
|
2254
2310
|
};
|
|
2255
2311
|
}, {
|
|
2256
2312
|
name: "IonApp",
|
|
@@ -2280,7 +2336,7 @@ const VueDelegate = (addFn = addTeleportedUserComponent, removeFn = removeTelepo
|
|
|
2280
2336
|
const div = document.createElement("div");
|
|
2281
2337
|
classes && div.classList.add(...classes);
|
|
2282
2338
|
parentElement.appendChild(div);
|
|
2283
|
-
const hostComponent = h(Teleport, { to: div }, h(componentOrTagName,
|
|
2339
|
+
const hostComponent = h(Teleport, { to: div }, h(componentOrTagName, { ...componentProps }));
|
|
2284
2340
|
/**
|
|
2285
2341
|
* Ionic Framework will use what is returned from `attachViewToDom`
|
|
2286
2342
|
* as the `component` argument in `removeViewFromDom`.
|
|
@@ -2301,7 +2357,7 @@ const VueDelegate = (addFn = addTeleportedUserComponent, removeFn = removeTelepo
|
|
|
2301
2357
|
};
|
|
2302
2358
|
|
|
2303
2359
|
const IonNav = /*@__PURE__*/ defineComponent((props) => {
|
|
2304
|
-
defineCustomElement$
|
|
2360
|
+
defineCustomElement$1j();
|
|
2305
2361
|
const views = shallowRef([]);
|
|
2306
2362
|
/**
|
|
2307
2363
|
* Allows us to create the component
|
|
@@ -2311,7 +2367,7 @@ const IonNav = /*@__PURE__*/ defineComponent((props) => {
|
|
|
2311
2367
|
const removeView = (component) => (views.value = views.value.filter((cmp) => cmp !== component));
|
|
2312
2368
|
const delegate = VueDelegate(addView, removeView);
|
|
2313
2369
|
return () => {
|
|
2314
|
-
return h("ion-nav",
|
|
2370
|
+
return h("ion-nav", { ...props, delegate }, views.value);
|
|
2315
2371
|
};
|
|
2316
2372
|
}, {
|
|
2317
2373
|
name: "IonNav",
|
|
@@ -2348,25 +2404,27 @@ const IonNav = /*@__PURE__*/ defineComponent((props) => {
|
|
|
2348
2404
|
});
|
|
2349
2405
|
|
|
2350
2406
|
const IonIcon = /*@__PURE__*/ defineComponent((props, { slots }) => {
|
|
2351
|
-
defineCustomElement$
|
|
2407
|
+
defineCustomElement$1k();
|
|
2352
2408
|
return () => {
|
|
2353
|
-
var _a, _b;
|
|
2354
2409
|
const { icon, ios, md, mode } = props;
|
|
2355
2410
|
let iconToUse;
|
|
2356
2411
|
const config = getConfig();
|
|
2357
|
-
const iconMode = mode ||
|
|
2412
|
+
const iconMode = mode || config?.get("mode");
|
|
2358
2413
|
if (ios || md) {
|
|
2359
2414
|
if (iconMode === "ios") {
|
|
2360
|
-
iconToUse =
|
|
2415
|
+
iconToUse = ios ?? md ?? icon;
|
|
2361
2416
|
}
|
|
2362
2417
|
else {
|
|
2363
|
-
iconToUse =
|
|
2418
|
+
iconToUse = md ?? ios ?? icon;
|
|
2364
2419
|
}
|
|
2365
2420
|
}
|
|
2366
2421
|
else {
|
|
2367
2422
|
iconToUse = icon;
|
|
2368
2423
|
}
|
|
2369
|
-
return h("ion-icon",
|
|
2424
|
+
return h("ion-icon", {
|
|
2425
|
+
...props,
|
|
2426
|
+
icon: iconToUse,
|
|
2427
|
+
}, slots);
|
|
2370
2428
|
};
|
|
2371
2429
|
}, {
|
|
2372
2430
|
name: "IonIcon",
|
|
@@ -2431,7 +2489,6 @@ const defineOverlayContainer = (name, defineCustomElement, componentProps = [],
|
|
|
2431
2489
|
overlay.value = undefined;
|
|
2432
2490
|
};
|
|
2433
2491
|
const present = async (props) => {
|
|
2434
|
-
var _a;
|
|
2435
2492
|
/**
|
|
2436
2493
|
* Do not open another instance
|
|
2437
2494
|
* if one is already opened.
|
|
@@ -2439,7 +2496,7 @@ const defineOverlayContainer = (name, defineCustomElement, componentProps = [],
|
|
|
2439
2496
|
if (overlay.value) {
|
|
2440
2497
|
await overlay.value;
|
|
2441
2498
|
}
|
|
2442
|
-
if (
|
|
2499
|
+
if (overlay.value?.present) {
|
|
2443
2500
|
await overlay.value.present();
|
|
2444
2501
|
return;
|
|
2445
2502
|
}
|
|
@@ -2471,7 +2528,10 @@ const defineOverlayContainer = (name, defineCustomElement, componentProps = [],
|
|
|
2471
2528
|
delete restOfProps.onIonDragEnd;
|
|
2472
2529
|
}
|
|
2473
2530
|
const component = slots.default && slots.default()[0];
|
|
2474
|
-
overlay.value = controller.create(
|
|
2531
|
+
overlay.value = controller.create({
|
|
2532
|
+
...restOfProps,
|
|
2533
|
+
component,
|
|
2534
|
+
});
|
|
2475
2535
|
overlay.value = await overlay.value;
|
|
2476
2536
|
eventListeners.forEach((eventListener) => {
|
|
2477
2537
|
overlay.value.addEventListener(eventListener.componentEv, () => {
|
|
@@ -2566,7 +2626,7 @@ const defineOverlayContainer = (name, defineCustomElement, componentProps = [],
|
|
|
2566
2626
|
}
|
|
2567
2627
|
return slots;
|
|
2568
2628
|
};
|
|
2569
|
-
return h(name,
|
|
2629
|
+
return h(name, { ...restOfProps, ref: elementRef },
|
|
2570
2630
|
/**
|
|
2571
2631
|
* When binding keepContentsMounted as an attribute
|
|
2572
2632
|
* i.e. <ion-modal keep-contents-mounted></ion-modal>
|
|
@@ -2583,10 +2643,13 @@ const defineOverlayContainer = (name, defineCustomElement, componentProps = [],
|
|
|
2583
2643
|
};
|
|
2584
2644
|
const options = {
|
|
2585
2645
|
name,
|
|
2586
|
-
props:
|
|
2587
|
-
|
|
2588
|
-
|
|
2589
|
-
|
|
2646
|
+
props: {
|
|
2647
|
+
isOpen: DEFAULT_EMPTY_PROP,
|
|
2648
|
+
...componentProps.reduce((acc, prop) => {
|
|
2649
|
+
acc[prop] = DEFAULT_EMPTY_PROP;
|
|
2650
|
+
return acc;
|
|
2651
|
+
}, {}),
|
|
2652
|
+
},
|
|
2590
2653
|
emits: typeof controller !== "undefined"
|
|
2591
2654
|
? ["willPresent", "didPresent", "willDismiss", "didDismiss"]
|
|
2592
2655
|
: undefined,
|
|
@@ -2600,13 +2663,12 @@ const defineOverlayContainer = (name, defineCustomElement, componentProps = [],
|
|
|
2600
2663
|
* This is an autogenerated file created by 'scripts/copy-overlays.js'.
|
|
2601
2664
|
* Changes made to this file will be overwritten on build.
|
|
2602
2665
|
*/
|
|
2603
|
-
const IonActionSheet = /*@__PURE__*/ defineOverlayContainer('ion-action-sheet', defineCustomElement$
|
|
2604
|
-
const IonAlert = /*@__PURE__*/ defineOverlayContainer('ion-alert', defineCustomElement$
|
|
2605
|
-
const IonLoading = /*@__PURE__*/ defineOverlayContainer('ion-loading', defineCustomElement$
|
|
2606
|
-
const IonModal = /*@__PURE__*/ defineOverlayContainer('ion-modal', defineCustomElement$
|
|
2607
|
-
const
|
|
2608
|
-
const
|
|
2609
|
-
const IonToast = /*@__PURE__*/ defineOverlayContainer('ion-toast', defineCustomElement$1u, ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'hue', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'shape', 'swipeGesture', 'theme', 'translucent', 'trigger']);
|
|
2666
|
+
const IonActionSheet = /*@__PURE__*/ defineOverlayContainer('ion-action-sheet', defineCustomElement$1l, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'mode', 'subHeader', 'translucent', 'trigger']);
|
|
2667
|
+
const IonAlert = /*@__PURE__*/ defineOverlayContainer('ion-alert', defineCustomElement$1m, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'inputs', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'subHeader', 'translucent', 'trigger']);
|
|
2668
|
+
const IonLoading = /*@__PURE__*/ defineOverlayContainer('ion-loading', defineCustomElement$1n, ['animated', 'backdropDismiss', 'cssClass', 'duration', 'enterAnimation', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'showBackdrop', 'spinner', 'translucent', 'trigger']);
|
|
2669
|
+
const IonModal = /*@__PURE__*/ defineOverlayContainer('ion-modal', defineCustomElement$1o, ['animated', 'backdropBreakpoint', 'backdropDismiss', 'breakpoints', 'canDismiss', 'enterAnimation', 'expandToScroll', 'focusTrap', 'handle', 'handleBehavior', 'htmlAttributes', 'initialBreakpoint', 'isOpen', 'keepContentsMounted', 'keyboardClose', 'leaveAnimation', 'mode', 'presentingElement', 'showBackdrop', 'trigger'], true);
|
|
2670
|
+
const IonPopover = /*@__PURE__*/ defineOverlayContainer('ion-popover', defineCustomElement$1p, ['alignment', 'animated', 'arrow', 'backdropDismiss', 'component', 'componentProps', 'dismissOnSelect', 'enterAnimation', 'event', 'focusTrap', 'htmlAttributes', 'isOpen', 'keepContentsMounted', 'keyboardClose', 'leaveAnimation', 'mode', 'reference', 'showBackdrop', 'side', 'size', 'translucent', 'trigger', 'triggerAction']);
|
|
2671
|
+
const IonToast = /*@__PURE__*/ defineOverlayContainer('ion-toast', defineCustomElement$1q, ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'swipeGesture', 'translucent', 'trigger']);
|
|
2610
2672
|
|
|
2611
2673
|
// TODO(FW-2969): types
|
|
2612
2674
|
/**
|
|
@@ -2619,20 +2681,19 @@ const createController = (defineCustomElement, oldController, useDelegate = fals
|
|
|
2619
2681
|
const oldCreate = oldController.create.bind(oldController);
|
|
2620
2682
|
oldController.create = (options) => {
|
|
2621
2683
|
defineCustomElement();
|
|
2622
|
-
return oldCreate(
|
|
2684
|
+
return oldCreate({
|
|
2685
|
+
...options,
|
|
2686
|
+
delegate,
|
|
2687
|
+
});
|
|
2623
2688
|
};
|
|
2624
2689
|
return oldController;
|
|
2625
2690
|
};
|
|
2626
|
-
const modalController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2627
|
-
const popoverController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2628
|
-
const alertController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2629
|
-
const actionSheetController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2630
|
-
const loadingController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2631
|
-
|
|
2632
|
-
* @deprecated Use the inline ion-picker component instead.
|
|
2633
|
-
*/
|
|
2634
|
-
const pickerController = /*@__PURE__*/ createController(defineCustomElement$1s, pickerController$1);
|
|
2635
|
-
const toastController = /*@__PURE__*/ createController(defineCustomElement$1u, toastController$1);
|
|
2691
|
+
const modalController = /*@__PURE__*/ createController(defineCustomElement$1o, modalController$1, true);
|
|
2692
|
+
const popoverController = /*@__PURE__*/ createController(defineCustomElement$1p, popoverController$1, true);
|
|
2693
|
+
const alertController = /*@__PURE__*/ createController(defineCustomElement$1m, alertController$1);
|
|
2694
|
+
const actionSheetController = /*@__PURE__*/ createController(defineCustomElement$1l, actionSheetController$1);
|
|
2695
|
+
const loadingController = /*@__PURE__*/ createController(defineCustomElement$1n, loadingController$1);
|
|
2696
|
+
const toastController = /*@__PURE__*/ createController(defineCustomElement$1q, toastController$1);
|
|
2636
2697
|
|
|
2637
|
-
export { IonAccordion, IonAccordionGroup, IonActionSheet, IonAlert, IonApp, IonAvatar, IonBackButton, IonBackdrop, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonCheckbox, IonChip, IonCol, IonContent, IonDatetime, IonDatetimeButton,
|
|
2698
|
+
export { IonAccordion, IonAccordionGroup, IonActionSheet, IonAlert, IonApp, IonAvatar, IonBackButton, IonBackdrop, IonBadge, IonBreadcrumb, IonBreadcrumbs, IonButton, IonButtons, IonCard, IonCardContent, IonCardHeader, IonCardSubtitle, IonCardTitle, IonCheckbox, IonChip, IonCol, IonContent, IonDatetime, IonDatetimeButton, IonFab, IonFabButton, IonFabList, IonFooter, IonGrid, IonHeader, IonIcon, IonImg, IonInfiniteScroll, IonInfiniteScrollContent, IonInput, IonInputOtp, IonInputPasswordToggle, IonItem, IonItemDivider, IonItemGroup, IonItemOption, IonItemOptions, IonItemSliding, IonLabel, IonList, IonListHeader, IonLoading, IonMenu, IonMenuButton, IonMenuToggle, IonModal, IonNav, IonNavLink, IonNote, IonPage, IonPicker, IonPickerColumn, IonPickerColumnOption, IonPopover, IonProgressBar, IonRadio, IonRadioGroup, IonRange, IonRefresher, IonRefresherContent, IonReorder, IonReorderGroup, IonRippleEffect, IonRouterOutlet, IonRow, IonSearchbar, IonSegment, IonSegmentButton, IonSegmentContent, IonSegmentView, IonSelect, IonSelectModal, IonSelectOption, IonSkeletonText, IonSpinner, IonSplitPane, IonTab, IonTabBar, IonTabButton, IonTabs, IonText, IonTextarea, IonThumbnail, IonTitle, IonToast, IonToggle, IonToolbar, IonicVue, actionSheetController, alertController, loadingController, modalController, onIonViewDidEnter, onIonViewDidLeave, onIonViewWillEnter, onIonViewWillLeave, popoverController, toastController, useBackButton, useIonRouter, useKeyboard };
|
|
2638
2699
|
//# sourceMappingURL=index.js.map
|