@ionic/vue 8.8.10 → 8.8.11-dev.11781186446.19d9a1cc
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/dist/index.js +87 -51
- 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 +1 -1
- package/dist/types/components/IonTabButton.d.ts +6 -6
- package/dist/types/components/IonTabs.d.ts +4 -4
- 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/vetur/attributes.json +9 -83
- package/dist/vetur/tags.json +2 -20
- package/dist/web-types.json +5 -233
- package/package.json +5 -5
package/dist/index.js
CHANGED
|
@@ -77,7 +77,7 @@ import { defineCustomElement as defineCustomElement$19 } from '@ionic/core/compo
|
|
|
77
77
|
import { defineCustomElement as defineCustomElement$1a } from '@ionic/core/components/ion-title.js';
|
|
78
78
|
import { defineCustomElement as defineCustomElement$1b } from '@ionic/core/components/ion-toggle.js';
|
|
79
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,
|
|
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';
|
|
81
81
|
export { IonicSafeString, IonicSlides, createAnimation, createGesture, getIonPageElement, getPlatforms, getTimeGivenProgression, iosTransitionAnimation, isPlatform, mdTransitionAnimation, menuController, openURL } from '@ionic/core/components';
|
|
82
82
|
import { defineCustomElement as defineCustomElement$1d } from '@ionic/core/components/ion-back-button.js';
|
|
83
83
|
import { defineCustomElement as defineCustomElement$1e } from '@ionic/core/components/ion-router-outlet.js';
|
|
@@ -91,9 +91,8 @@ import { defineCustomElement as defineCustomElement$1l } from '@ionic/core/compo
|
|
|
91
91
|
import { defineCustomElement as defineCustomElement$1m } from '@ionic/core/components/ion-alert.js';
|
|
92
92
|
import { defineCustomElement as defineCustomElement$1n } from '@ionic/core/components/ion-loading.js';
|
|
93
93
|
import { defineCustomElement as defineCustomElement$1o } from '@ionic/core/components/ion-modal.js';
|
|
94
|
-
import { defineCustomElement as defineCustomElement$1p } from '@ionic/core/components/ion-
|
|
95
|
-
import { defineCustomElement as defineCustomElement$1q } from '@ionic/core/components/ion-
|
|
96
|
-
import { defineCustomElement as defineCustomElement$1r } from '@ionic/core/components/ion-toast.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';
|
|
97
96
|
|
|
98
97
|
const UPDATE_VALUE_EVENT = 'update:modelValue';
|
|
99
98
|
const MODEL_VALUE = 'modelValue';
|
|
@@ -115,8 +114,19 @@ const DEFAULT_EMPTY_PROP$1 = { default: EMPTY_PROP$1 };
|
|
|
115
114
|
const getComponentClasses = (classes) => {
|
|
116
115
|
return classes?.split(' ') || [];
|
|
117
116
|
};
|
|
118
|
-
const
|
|
119
|
-
|
|
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
|
+
});
|
|
120
130
|
};
|
|
121
131
|
/**
|
|
122
132
|
* Create a callback to define a Vue component wrapper around a Web Component.
|
|
@@ -132,8 +142,9 @@ const getElementClasses = (ref, componentClasses, defaultClasses = []) => {
|
|
|
132
142
|
* to customElements.define. Only set if `includeImportCustomElements: true` in your config.
|
|
133
143
|
* @prop modelProp - The prop that v-model binds to (i.e. value)
|
|
134
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.
|
|
135
146
|
*/
|
|
136
|
-
const defineContainer = (name, defineCustomElement, componentProps = [], emitProps = [], modelProp, modelUpdateEvent) => {
|
|
147
|
+
const defineContainer = (name, defineCustomElement, componentProps = [], emitProps = [], modelProp, modelUpdateEvent, modelUpdateEventAttribute, transformTagFn) => {
|
|
137
148
|
/**
|
|
138
149
|
* Create a Vue component wrapper around a Web Component.
|
|
139
150
|
* Note: The `props` here are not all properties on a component.
|
|
@@ -178,7 +189,7 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
|
|
|
178
189
|
*/
|
|
179
190
|
const vModelDirective = {
|
|
180
191
|
created: (el) => {
|
|
181
|
-
const eventsNames =
|
|
192
|
+
const eventsNames = Array.isArray(modelUpdateEvent) ? modelUpdateEvent : [modelUpdateEvent];
|
|
182
193
|
eventsNames.forEach((eventName) => {
|
|
183
194
|
el.addEventListener(eventName, (e) => {
|
|
184
195
|
/**
|
|
@@ -189,7 +200,11 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
|
|
|
189
200
|
* when ionChange bubbles up from Component B.
|
|
190
201
|
*/
|
|
191
202
|
if (e.target.tagName === el.tagName && modelProp) {
|
|
192
|
-
|
|
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);
|
|
193
208
|
emit(UPDATE_VALUE_EVENT, modelPropValue);
|
|
194
209
|
}
|
|
195
210
|
});
|
|
@@ -243,7 +258,7 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
|
|
|
243
258
|
};
|
|
244
259
|
const propsToAdd = {
|
|
245
260
|
ref: containerRef,
|
|
246
|
-
class:
|
|
261
|
+
class: syncElementClasses(containerRef, classes),
|
|
247
262
|
onClick: handleClick,
|
|
248
263
|
};
|
|
249
264
|
/**
|
|
@@ -291,7 +306,8 @@ const defineContainer = (name, defineCustomElement, componentProps = [], emitPro
|
|
|
291
306
|
* vModelDirective is only needed on components that support v-model.
|
|
292
307
|
* As a result, we conditionally call withDirectives with v-model components.
|
|
293
308
|
*/
|
|
294
|
-
const
|
|
309
|
+
const tagName = transformTagFn ? transformTagFn(name) : name;
|
|
310
|
+
const node = h(tagName, propsToAdd, slots.default && slots.default());
|
|
295
311
|
return modelProp === undefined ? node : withDirectives(node, [[vModelDirective]]);
|
|
296
312
|
};
|
|
297
313
|
}, {
|
|
@@ -323,7 +339,7 @@ const IonAccordionGroup = /*@__PURE__*/ defineContainer('ion-accordion-group', d
|
|
|
323
339
|
], [
|
|
324
340
|
'ionChange',
|
|
325
341
|
'ionValueChange'
|
|
326
|
-
], 'value', '
|
|
342
|
+
], 'value', 'ionChange', undefined);
|
|
327
343
|
const IonAvatar = /*@__PURE__*/ defineContainer('ion-avatar', defineCustomElement$2);
|
|
328
344
|
const IonBackdrop = /*@__PURE__*/ defineContainer('ion-backdrop', defineCustomElement$3, [
|
|
329
345
|
'visible',
|
|
@@ -436,7 +452,7 @@ const IonCheckbox = /*@__PURE__*/ defineContainer('ion-checkbox', defineCustomEl
|
|
|
436
452
|
'ionChange',
|
|
437
453
|
'ionFocus',
|
|
438
454
|
'ionBlur'
|
|
439
|
-
], 'checked', '
|
|
455
|
+
], 'checked', 'ionChange', undefined);
|
|
440
456
|
const IonChip = /*@__PURE__*/ defineContainer('ion-chip', defineCustomElement$f, [
|
|
441
457
|
'color',
|
|
442
458
|
'outline',
|
|
@@ -531,7 +547,7 @@ const IonDatetime = /*@__PURE__*/ defineContainer('ion-datetime', defineCustomEl
|
|
|
531
547
|
'ionBlur',
|
|
532
548
|
'ionStyle',
|
|
533
549
|
'ionRender'
|
|
534
|
-
], 'value', '
|
|
550
|
+
], 'value', 'ionChange', undefined);
|
|
535
551
|
const IonDatetimeButton = /*@__PURE__*/ defineContainer('ion-datetime-button', defineCustomElement$j, [
|
|
536
552
|
'color',
|
|
537
553
|
'disabled',
|
|
@@ -646,7 +662,7 @@ const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineCustomElement$
|
|
|
646
662
|
'ionChange',
|
|
647
663
|
'ionBlur',
|
|
648
664
|
'ionFocus'
|
|
649
|
-
], 'value', '
|
|
665
|
+
], 'value', 'ionInput', undefined);
|
|
650
666
|
const IonInputOtp = /*@__PURE__*/ defineContainer('ion-input-otp', defineCustomElement$u, [
|
|
651
667
|
'autocapitalize',
|
|
652
668
|
'color',
|
|
@@ -672,7 +688,7 @@ const IonInputOtp = /*@__PURE__*/ defineContainer('ion-input-otp', defineCustomE
|
|
|
672
688
|
'ionComplete',
|
|
673
689
|
'ionBlur',
|
|
674
690
|
'ionFocus'
|
|
675
|
-
], 'value', '
|
|
691
|
+
], 'value', 'ionInput', undefined);
|
|
676
692
|
const IonInputPasswordToggle = /*@__PURE__*/ defineContainer('ion-input-password-toggle', defineCustomElement$v, [
|
|
677
693
|
'color',
|
|
678
694
|
'showIcon',
|
|
@@ -817,7 +833,7 @@ const IonRadio = /*@__PURE__*/ defineContainer('ion-radio', defineCustomElement$
|
|
|
817
833
|
], [
|
|
818
834
|
'ionFocus',
|
|
819
835
|
'ionBlur'
|
|
820
|
-
], 'value', '
|
|
836
|
+
], 'value', 'ionChange', undefined);
|
|
821
837
|
const IonRadioGroup = /*@__PURE__*/ defineContainer('ion-radio-group', defineCustomElement$P, [
|
|
822
838
|
'allowEmptySelection',
|
|
823
839
|
'compareWith',
|
|
@@ -830,7 +846,7 @@ const IonRadioGroup = /*@__PURE__*/ defineContainer('ion-radio-group', defineCus
|
|
|
830
846
|
], [
|
|
831
847
|
'ionChange',
|
|
832
848
|
'ionValueChange'
|
|
833
|
-
], 'value', '
|
|
849
|
+
], 'value', 'ionChange', undefined);
|
|
834
850
|
const IonRange = /*@__PURE__*/ defineContainer('ion-range', defineCustomElement$Q, [
|
|
835
851
|
'color',
|
|
836
852
|
'debounce',
|
|
@@ -861,7 +877,7 @@ const IonRange = /*@__PURE__*/ defineContainer('ion-range', defineCustomElement$
|
|
|
861
877
|
'ionBlur',
|
|
862
878
|
'ionKnobMoveStart',
|
|
863
879
|
'ionKnobMoveEnd'
|
|
864
|
-
], 'value', '
|
|
880
|
+
], 'value', 'ionInput', undefined);
|
|
865
881
|
const IonRefresher = /*@__PURE__*/ defineContainer('ion-refresher', defineCustomElement$R, [
|
|
866
882
|
'pullMin',
|
|
867
883
|
'pullMax',
|
|
@@ -942,7 +958,7 @@ const IonSearchbar = /*@__PURE__*/ defineContainer('ion-searchbar', defineCustom
|
|
|
942
958
|
'ionBlur',
|
|
943
959
|
'ionFocus',
|
|
944
960
|
'ionStyle'
|
|
945
|
-
], 'value', '
|
|
961
|
+
], 'value', 'ionInput', undefined);
|
|
946
962
|
const IonSegment = /*@__PURE__*/ defineContainer('ion-segment', defineCustomElement$Y, [
|
|
947
963
|
'color',
|
|
948
964
|
'disabled',
|
|
@@ -957,14 +973,14 @@ const IonSegment = /*@__PURE__*/ defineContainer('ion-segment', defineCustomElem
|
|
|
957
973
|
'ionChange',
|
|
958
974
|
'ionSelect',
|
|
959
975
|
'ionStyle'
|
|
960
|
-
], 'value', '
|
|
976
|
+
], 'value', 'ionChange', undefined);
|
|
961
977
|
const IonSegmentButton = /*@__PURE__*/ defineContainer('ion-segment-button', defineCustomElement$Z, [
|
|
962
978
|
'contentId',
|
|
963
979
|
'disabled',
|
|
964
980
|
'layout',
|
|
965
981
|
'type',
|
|
966
982
|
'value'
|
|
967
|
-
], [], 'value', '
|
|
983
|
+
], [], 'value', 'ionChange', undefined);
|
|
968
984
|
const IonSegmentContent = /*@__PURE__*/ defineContainer('ion-segment-content', defineCustomElement$_);
|
|
969
985
|
const IonSegmentView = /*@__PURE__*/ defineContainer('ion-segment-view', defineCustomElement$$, [
|
|
970
986
|
'disabled',
|
|
@@ -1009,7 +1025,7 @@ const IonSelect = /*@__PURE__*/ defineContainer('ion-select', defineCustomElemen
|
|
|
1009
1025
|
'ionFocus',
|
|
1010
1026
|
'ionBlur',
|
|
1011
1027
|
'ionStyle'
|
|
1012
|
-
], 'value', '
|
|
1028
|
+
], 'value', 'ionChange', undefined);
|
|
1013
1029
|
const IonSelectModal = /*@__PURE__*/ defineContainer('ion-select-modal', defineCustomElement$11, [
|
|
1014
1030
|
'header',
|
|
1015
1031
|
'cancelText',
|
|
@@ -1087,7 +1103,7 @@ const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomEl
|
|
|
1087
1103
|
'ionInput',
|
|
1088
1104
|
'ionBlur',
|
|
1089
1105
|
'ionFocus'
|
|
1090
|
-
], 'value', '
|
|
1106
|
+
], 'value', 'ionInput', undefined);
|
|
1091
1107
|
const IonThumbnail = /*@__PURE__*/ defineContainer('ion-thumbnail', defineCustomElement$19);
|
|
1092
1108
|
const IonTitle = /*@__PURE__*/ defineContainer('ion-title', defineCustomElement$1a, [
|
|
1093
1109
|
'color',
|
|
@@ -1116,7 +1132,7 @@ const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineCustomElemen
|
|
|
1116
1132
|
'ionChange',
|
|
1117
1133
|
'ionFocus',
|
|
1118
1134
|
'ionBlur'
|
|
1119
|
-
], 'checked', '
|
|
1135
|
+
], 'checked', 'ionChange', undefined);
|
|
1120
1136
|
const IonToolbar = /*@__PURE__*/ defineContainer('ion-toolbar', defineCustomElement$1c, [
|
|
1121
1137
|
'color'
|
|
1122
1138
|
]);
|
|
@@ -1284,7 +1300,7 @@ const IonBackButton = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
|
|
|
1284
1300
|
defineCustomElement$1d();
|
|
1285
1301
|
// TODO(FW-2969): type
|
|
1286
1302
|
const ionRouter = inject("navManager");
|
|
1287
|
-
const onClick = () => {
|
|
1303
|
+
const onClick = (ev) => {
|
|
1288
1304
|
/**
|
|
1289
1305
|
* When using ion-back-button outside of
|
|
1290
1306
|
* a routing context, ionRouter is undefined.
|
|
@@ -1292,6 +1308,17 @@ const IonBackButton = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
|
|
|
1292
1308
|
if (ionRouter === undefined) {
|
|
1293
1309
|
return;
|
|
1294
1310
|
}
|
|
1311
|
+
/**
|
|
1312
|
+
* If ion-back-button is being used inside
|
|
1313
|
+
* of ion-nav (e.g. in a modal) then we should
|
|
1314
|
+
* not interact with the router. The core
|
|
1315
|
+
* ion-back-button component will handle the
|
|
1316
|
+
* nav.pop() in that case.
|
|
1317
|
+
*/
|
|
1318
|
+
const target = ev.target;
|
|
1319
|
+
if (target && target.closest("ion-nav") !== null) {
|
|
1320
|
+
return;
|
|
1321
|
+
}
|
|
1295
1322
|
const defaultHref = attrs["default-href"] || attrs["defaultHref"];
|
|
1296
1323
|
const routerAnimation = attrs["router-animation"] || attrs["routerAnimation"];
|
|
1297
1324
|
ionRouter.handleNavigateBack(defaultHref, routerAnimation);
|
|
@@ -1327,6 +1354,12 @@ const isViewVisible = (enteringEl) => {
|
|
|
1327
1354
|
const viewDepthKey = Symbol(0);
|
|
1328
1355
|
const IonRouterOutlet = /*@__PURE__*/ defineComponent({
|
|
1329
1356
|
name: "IonRouterOutlet",
|
|
1357
|
+
props: {
|
|
1358
|
+
swipeGesture: {
|
|
1359
|
+
type: Boolean,
|
|
1360
|
+
default: undefined,
|
|
1361
|
+
},
|
|
1362
|
+
},
|
|
1330
1363
|
setup() {
|
|
1331
1364
|
defineCustomElement$1e();
|
|
1332
1365
|
const injectedRoute = inject(routeLocationKey);
|
|
@@ -1404,11 +1437,6 @@ const IonRouterOutlet = /*@__PURE__*/ defineComponent({
|
|
|
1404
1437
|
*/
|
|
1405
1438
|
{ deep: true });
|
|
1406
1439
|
const canStart = () => {
|
|
1407
|
-
const config = getConfig();
|
|
1408
|
-
const swipeEnabled = config &&
|
|
1409
|
-
config.get("swipeBackEnabled", ionRouterOutlet.value.mode === "ios");
|
|
1410
|
-
if (!swipeEnabled)
|
|
1411
|
-
return false;
|
|
1412
1440
|
const stack = viewStacks.getViewStack(id);
|
|
1413
1441
|
if (!stack || stack.length <= 1)
|
|
1414
1442
|
return false;
|
|
@@ -1699,7 +1727,15 @@ See https://ionicframework.com/docs/vue/navigation#ionpage for more information.
|
|
|
1699
1727
|
},
|
|
1700
1728
|
render() {
|
|
1701
1729
|
const { components, registerIonPage, injectedRoute } = this;
|
|
1702
|
-
|
|
1730
|
+
/**
|
|
1731
|
+
* Forward props selectively to avoid setting undefined values
|
|
1732
|
+
* that would override the web component's config-based defaults.
|
|
1733
|
+
*/
|
|
1734
|
+
const routerOutletProps = { ref: "ionRouterOutlet" };
|
|
1735
|
+
if (this.$props.swipeGesture !== undefined) {
|
|
1736
|
+
routerOutletProps.swipeGesture = this.$props.swipeGesture;
|
|
1737
|
+
}
|
|
1738
|
+
return h("ion-router-outlet", routerOutletProps, components &&
|
|
1703
1739
|
components.map((c) => {
|
|
1704
1740
|
var _a, _b;
|
|
1705
1741
|
let props = {
|
|
@@ -1813,7 +1849,7 @@ const IonTabButton = /*@__PURE__*/ defineComponent({
|
|
|
1813
1849
|
if (ionRouter !== null) {
|
|
1814
1850
|
if (prevActiveTab === tab) {
|
|
1815
1851
|
if (originalHref !== currentHref) {
|
|
1816
|
-
ionRouter.resetTab(tab);
|
|
1852
|
+
ionRouter.resetTab(tab, originalHref);
|
|
1817
1853
|
}
|
|
1818
1854
|
}
|
|
1819
1855
|
else {
|
|
@@ -2103,31 +2139,36 @@ const IonTabBar = defineComponent({
|
|
|
2103
2139
|
};
|
|
2104
2140
|
}
|
|
2105
2141
|
});
|
|
2106
|
-
if (activeTab &&
|
|
2107
|
-
const prevHref =
|
|
2142
|
+
if (activeTab && (currentRoute === null || currentRoute === void 0 ? void 0 : currentRoute.pathname)) {
|
|
2143
|
+
const prevHref = prevActiveTab
|
|
2144
|
+
? this.$data.tabState.tabs[prevActiveTab].currentHref
|
|
2145
|
+
: undefined;
|
|
2108
2146
|
/**
|
|
2109
2147
|
* If the tabs change or the url changes,
|
|
2110
2148
|
* update the currentHref for the active tab.
|
|
2111
|
-
* Ex: url changes from /tabs/tab1
|
|
2149
|
+
* Ex: url changes from /tabs/tab1 to /tabs/tab1/child.
|
|
2112
2150
|
* If we went to tab2 then back to tab1, we should
|
|
2113
2151
|
* land on /tabs/tab1/child instead of /tabs/tab1.
|
|
2152
|
+
*
|
|
2153
|
+
* Also runs on initial setup so a deep-loaded tab child
|
|
2154
|
+
* records its real pathname instead of `originalHref`.
|
|
2114
2155
|
*/
|
|
2115
|
-
if (activeTab !== prevActiveTab ||
|
|
2116
|
-
prevHref !== (currentRoute === null || currentRoute === void 0 ? void 0 : currentRoute.pathname)) {
|
|
2156
|
+
if (activeTab !== prevActiveTab || prevHref !== currentRoute.pathname) {
|
|
2117
2157
|
/**
|
|
2118
2158
|
* By default the search is `undefined` in Ionic Vue,
|
|
2119
2159
|
* but Vue Router can set the search to the empty string.
|
|
2120
2160
|
* We check for truthy here because empty string is falsy
|
|
2121
2161
|
* and currentRoute.search cannot ever be a boolean.
|
|
2122
2162
|
*/
|
|
2123
|
-
const search =
|
|
2124
|
-
tabs[activeTab] = Object.assign(Object.assign({}, tabs[activeTab]), { currentHref:
|
|
2163
|
+
const search = currentRoute.search ? `?${currentRoute.search}` : "";
|
|
2164
|
+
tabs[activeTab] = Object.assign(Object.assign({}, tabs[activeTab]), { currentHref: currentRoute.pathname + search });
|
|
2125
2165
|
}
|
|
2126
2166
|
/**
|
|
2127
2167
|
* If navigating back and the tabs change,
|
|
2128
2168
|
* set the previous tab back to its original href.
|
|
2129
2169
|
*/
|
|
2130
|
-
if (
|
|
2170
|
+
if (prevActiveTab &&
|
|
2171
|
+
currentRoute.routerAction === "pop" &&
|
|
2131
2172
|
activeTab !== prevActiveTab) {
|
|
2132
2173
|
tabs[prevActiveTab] = Object.assign(Object.assign({}, tabs[prevActiveTab]), { currentHref: tabs[prevActiveTab].originalHref });
|
|
2133
2174
|
}
|
|
@@ -2548,9 +2589,8 @@ const IonActionSheet = /*@__PURE__*/ defineOverlayContainer('ion-action-sheet',
|
|
|
2548
2589
|
const IonAlert = /*@__PURE__*/ defineOverlayContainer('ion-alert', defineCustomElement$1m, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'inputs', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'subHeader', 'translucent', 'trigger']);
|
|
2549
2590
|
const IonLoading = /*@__PURE__*/ defineOverlayContainer('ion-loading', defineCustomElement$1n, ['animated', 'backdropDismiss', 'cssClass', 'duration', 'enterAnimation', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'showBackdrop', 'spinner', 'translucent', 'trigger']);
|
|
2550
2591
|
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);
|
|
2551
|
-
const
|
|
2552
|
-
const
|
|
2553
|
-
const IonToast = /*@__PURE__*/ defineOverlayContainer('ion-toast', defineCustomElement$1r, ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'swipeGesture', 'translucent', 'trigger']);
|
|
2592
|
+
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']);
|
|
2593
|
+
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']);
|
|
2554
2594
|
|
|
2555
2595
|
// TODO(FW-2969): types
|
|
2556
2596
|
/**
|
|
@@ -2568,15 +2608,11 @@ const createController = (defineCustomElement, oldController, useDelegate = fals
|
|
|
2568
2608
|
return oldController;
|
|
2569
2609
|
};
|
|
2570
2610
|
const modalController = /*@__PURE__*/ createController(defineCustomElement$1o, modalController$1, true);
|
|
2571
|
-
const popoverController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2611
|
+
const popoverController = /*@__PURE__*/ createController(defineCustomElement$1p, popoverController$1, true);
|
|
2572
2612
|
const alertController = /*@__PURE__*/ createController(defineCustomElement$1m, alertController$1);
|
|
2573
2613
|
const actionSheetController = /*@__PURE__*/ createController(defineCustomElement$1l, actionSheetController$1);
|
|
2574
2614
|
const loadingController = /*@__PURE__*/ createController(defineCustomElement$1n, loadingController$1);
|
|
2575
|
-
|
|
2576
|
-
* @deprecated Use the inline ion-picker component instead.
|
|
2577
|
-
*/
|
|
2578
|
-
const pickerController = /*@__PURE__*/ createController(defineCustomElement$1p, pickerController$1);
|
|
2579
|
-
const toastController = /*@__PURE__*/ createController(defineCustomElement$1r, toastController$1);
|
|
2615
|
+
const toastController = /*@__PURE__*/ createController(defineCustomElement$1q, toastController$1);
|
|
2580
2616
|
|
|
2581
|
-
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,
|
|
2617
|
+
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 };
|
|
2582
2618
|
//# sourceMappingURL=index.js.map
|