@ionic/vue 8.2.8-dev.11724886491.1c0dd39d → 8.2.8-dev.11725452518.16aa47d3
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/css/core.css +1 -1
- package/css/core.css.map +1 -1
- package/css/display.css.map +1 -1
- package/css/flex-utils.css.map +1 -1
- package/css/float-elements.css.map +1 -1
- package/css/global.bundle.css +1 -1
- package/css/global.bundle.css.map +1 -1
- package/css/ionic/bundle.ionic.css +1 -0
- package/css/ionic/bundle.ionic.css.map +1 -0
- package/css/ionic/core.ionic.css +1 -0
- package/css/ionic/core.ionic.css.map +1 -0
- package/css/ionic/global.bundle.ionic.css +1 -0
- package/css/ionic/global.bundle.ionic.css.map +1 -0
- package/css/ionic/ionic-swiper.ionic.css +1 -0
- package/css/ionic/ionic-swiper.ionic.css.map +1 -0
- package/css/ionic/link.ionic.css +1 -0
- package/css/ionic/link.ionic.css.map +1 -0
- package/css/ionic/structure.ionic.css +1 -0
- package/css/ionic/structure.ionic.css.map +1 -0
- package/css/ionic/typography.ionic.css +1 -0
- package/css/ionic/typography.ionic.css.map +1 -0
- package/css/ionic/utils.bundle.ionic.css +1 -0
- package/css/ionic/utils.bundle.ionic.css.map +1 -0
- 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 +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 +1 -1
- package/css/typography.css.map +1 -1
- package/css/utils.bundle.css.map +1 -1
- package/dist/index.js +116 -210
- package/dist/index.js.map +1 -1
- package/dist/types/components/IonTabBar.d.ts +0 -29
- package/dist/types/components/IonTabButton.d.ts +0 -8
- package/dist/types/components/IonTabs.d.ts +1 -10
- package/dist/types/components/Overlays.d.ts +1 -1
- package/dist/types/proxies.d.ts +0 -1
- package/dist/vetur/attributes.json +1342 -104
- package/dist/vetur/tags.json +193 -45
- package/dist/web-types.json +1292 -112
- package/package.json +2 -2
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { defineComponent, ref, getCurrentInstance, inject, h, withDirectives, computed, provide, shallowRef, watch, onUnmounted,
|
|
1
|
+
import { defineComponent, ref, getCurrentInstance, inject, h, withDirectives, computed, provide, shallowRef, watch, onUnmounted, Teleport, onMounted } from 'vue';
|
|
2
2
|
import { defineCustomElement } from '@ionic/core/components/ion-accordion.js';
|
|
3
3
|
import { defineCustomElement as defineCustomElement$1 } from '@ionic/core/components/ion-accordion-group.js';
|
|
4
4
|
import { defineCustomElement as defineCustomElement$2 } from '@ionic/core/components/ion-avatar.js';
|
|
@@ -42,7 +42,7 @@ import { defineCustomElement as defineCustomElement$D } from '@ionic/core/compon
|
|
|
42
42
|
import { defineCustomElement as defineCustomElement$E } from '@ionic/core/components/ion-menu.js';
|
|
43
43
|
import { defineCustomElement as defineCustomElement$F } from '@ionic/core/components/ion-menu-button.js';
|
|
44
44
|
import { defineCustomElement as defineCustomElement$G } from '@ionic/core/components/ion-menu-toggle.js';
|
|
45
|
-
import { defineCustomElement as defineCustomElement$
|
|
45
|
+
import { defineCustomElement as defineCustomElement$1d } from '@ionic/core/components/ion-nav.js';
|
|
46
46
|
import { defineCustomElement as defineCustomElement$H } from '@ionic/core/components/ion-nav-link.js';
|
|
47
47
|
import { defineCustomElement as defineCustomElement$I } from '@ionic/core/components/ion-note.js';
|
|
48
48
|
import { defineCustomElement as defineCustomElement$J } from '@ionic/core/components/ion-picker.js';
|
|
@@ -66,30 +66,28 @@ import { defineCustomElement as defineCustomElement$_ } from '@ionic/core/compon
|
|
|
66
66
|
import { defineCustomElement as defineCustomElement$$ } from '@ionic/core/components/ion-skeleton-text.js';
|
|
67
67
|
import { defineCustomElement as defineCustomElement$10 } from '@ionic/core/components/ion-spinner.js';
|
|
68
68
|
import { defineCustomElement as defineCustomElement$11 } from '@ionic/core/components/ion-split-pane.js';
|
|
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-toolbar.js';
|
|
69
|
+
import { defineCustomElement as defineCustomElement$12 } from '@ionic/core/components/ion-text.js';
|
|
70
|
+
import { defineCustomElement as defineCustomElement$13 } from '@ionic/core/components/ion-textarea.js';
|
|
71
|
+
import { defineCustomElement as defineCustomElement$14 } from '@ionic/core/components/ion-thumbnail.js';
|
|
72
|
+
import { defineCustomElement as defineCustomElement$15 } from '@ionic/core/components/ion-title.js';
|
|
73
|
+
import { defineCustomElement as defineCustomElement$16 } from '@ionic/core/components/ion-toggle.js';
|
|
74
|
+
import { defineCustomElement as defineCustomElement$17 } from '@ionic/core/components/ion-toolbar.js';
|
|
76
75
|
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';
|
|
77
76
|
export { IonicSafeString, IonicSlides, createAnimation, createGesture, getIonPageElement, getPlatforms, getTimeGivenProgression, iosTransitionAnimation, isPlatform, mdTransitionAnimation, menuController, openURL } from '@ionic/core/components';
|
|
78
|
-
import { defineCustomElement as defineCustomElement$
|
|
79
|
-
import { defineCustomElement as defineCustomElement$
|
|
77
|
+
import { defineCustomElement as defineCustomElement$18 } from '@ionic/core/components/ion-back-button.js';
|
|
78
|
+
import { defineCustomElement as defineCustomElement$19 } from '@ionic/core/components/ion-router-outlet.js';
|
|
80
79
|
import { routeLocationKey, useRoute, matchedRouteKey } from 'vue-router';
|
|
81
|
-
import { defineCustomElement as defineCustomElement$
|
|
82
|
-
import { defineCustomElement as defineCustomElement$
|
|
83
|
-
import { defineCustomElement as defineCustomElement$
|
|
84
|
-
import { defineCustomElement as defineCustomElement$1e } from '
|
|
85
|
-
import { defineCustomElement as defineCustomElement$
|
|
86
|
-
import { defineCustomElement as defineCustomElement$
|
|
87
|
-
import { defineCustomElement as defineCustomElement$
|
|
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$1n } from '@ionic/core/components/ion-popover.js';
|
|
80
|
+
import { defineCustomElement as defineCustomElement$1a } from '@ionic/core/components/ion-tab-button.js';
|
|
81
|
+
import { defineCustomElement as defineCustomElement$1b } from '@ionic/core/components/ion-tab-bar.js';
|
|
82
|
+
import { defineCustomElement as defineCustomElement$1c } from '@ionic/core/components/ion-app.js';
|
|
83
|
+
import { defineCustomElement as defineCustomElement$1e } from 'ionicons/components/ion-icon.js';
|
|
84
|
+
import { defineCustomElement as defineCustomElement$1f } from '@ionic/core/components/ion-action-sheet.js';
|
|
85
|
+
import { defineCustomElement as defineCustomElement$1g } from '@ionic/core/components/ion-alert.js';
|
|
86
|
+
import { defineCustomElement as defineCustomElement$1h } from '@ionic/core/components/ion-loading.js';
|
|
87
|
+
import { defineCustomElement as defineCustomElement$1i } from '@ionic/core/components/ion-picker-legacy.js';
|
|
88
|
+
import { defineCustomElement as defineCustomElement$1j } from '@ionic/core/components/ion-toast.js';
|
|
89
|
+
import { defineCustomElement as defineCustomElement$1k } from '@ionic/core/components/ion-modal.js';
|
|
90
|
+
import { defineCustomElement as defineCustomElement$1l } from '@ionic/core/components/ion-popover.js';
|
|
93
91
|
|
|
94
92
|
// @ts-nocheck
|
|
95
93
|
// It's easier and safer for Volar to disable typechecking and let the return type inference do its job.
|
|
@@ -299,7 +297,10 @@ const IonAccordionGroup = /*@__PURE__*/ defineContainer('ion-accordion-group', d
|
|
|
299
297
|
'ionChange',
|
|
300
298
|
'ionValueChange'
|
|
301
299
|
], 'value', 'ion-change');
|
|
302
|
-
const IonAvatar = /*@__PURE__*/ defineContainer('ion-avatar', defineCustomElement$2
|
|
300
|
+
const IonAvatar = /*@__PURE__*/ defineContainer('ion-avatar', defineCustomElement$2, [
|
|
301
|
+
'size',
|
|
302
|
+
'shape'
|
|
303
|
+
]);
|
|
303
304
|
const IonBackdrop = /*@__PURE__*/ defineContainer('ion-backdrop', defineCustomElement$3, [
|
|
304
305
|
'visible',
|
|
305
306
|
'tappable',
|
|
@@ -307,7 +308,9 @@ const IonBackdrop = /*@__PURE__*/ defineContainer('ion-backdrop', defineCustomEl
|
|
|
307
308
|
'ionBackdropTap'
|
|
308
309
|
]);
|
|
309
310
|
const IonBadge = /*@__PURE__*/ defineContainer('ion-badge', defineCustomElement$4, [
|
|
310
|
-
'color'
|
|
311
|
+
'color',
|
|
312
|
+
'shape',
|
|
313
|
+
'size'
|
|
311
314
|
]);
|
|
312
315
|
const IonBreadcrumb = /*@__PURE__*/ defineContainer('ion-breadcrumb', defineCustomElement$5, [
|
|
313
316
|
'collapsed',
|
|
@@ -367,6 +370,7 @@ const IonCard = /*@__PURE__*/ defineContainer('ion-card', defineCustomElement$9,
|
|
|
367
370
|
'rel',
|
|
368
371
|
'routerDirection',
|
|
369
372
|
'routerAnimation',
|
|
373
|
+
'shape',
|
|
370
374
|
'target'
|
|
371
375
|
]);
|
|
372
376
|
const IonCardContent = /*@__PURE__*/ defineContainer('ion-card-content', defineCustomElement$a);
|
|
@@ -390,6 +394,8 @@ const IonCheckbox = /*@__PURE__*/ defineContainer('ion-checkbox', defineCustomEl
|
|
|
390
394
|
'labelPlacement',
|
|
391
395
|
'justify',
|
|
392
396
|
'alignment',
|
|
397
|
+
'size',
|
|
398
|
+
'shape',
|
|
393
399
|
'ionChange',
|
|
394
400
|
'ionFocus',
|
|
395
401
|
'ionBlur'
|
|
@@ -397,7 +403,9 @@ const IonCheckbox = /*@__PURE__*/ defineContainer('ion-checkbox', defineCustomEl
|
|
|
397
403
|
const IonChip = /*@__PURE__*/ defineContainer('ion-chip', defineCustomElement$f, [
|
|
398
404
|
'color',
|
|
399
405
|
'outline',
|
|
400
|
-
'disabled'
|
|
406
|
+
'disabled',
|
|
407
|
+
'shape',
|
|
408
|
+
'size'
|
|
401
409
|
]);
|
|
402
410
|
const IonCol = /*@__PURE__*/ defineContainer('ion-col', defineCustomElement$g, [
|
|
403
411
|
'offset',
|
|
@@ -518,6 +526,7 @@ const IonGrid = /*@__PURE__*/ defineContainer('ion-grid', defineCustomElement$o,
|
|
|
518
526
|
]);
|
|
519
527
|
const IonHeader = /*@__PURE__*/ defineContainer('ion-header', defineCustomElement$p, [
|
|
520
528
|
'collapse',
|
|
529
|
+
'divider',
|
|
521
530
|
'translucent'
|
|
522
531
|
]);
|
|
523
532
|
const IonImg = /*@__PURE__*/ defineContainer('ion-img', defineCustomElement$q, [
|
|
@@ -570,6 +579,7 @@ const IonInput = /*@__PURE__*/ defineContainer('ion-input', defineCustomElement$
|
|
|
570
579
|
'shape',
|
|
571
580
|
'spellcheck',
|
|
572
581
|
'step',
|
|
582
|
+
'size',
|
|
573
583
|
'type',
|
|
574
584
|
'value',
|
|
575
585
|
'ionInput',
|
|
@@ -611,7 +621,8 @@ const IonItemOption = /*@__PURE__*/ defineContainer('ion-item-option', defineCus
|
|
|
611
621
|
'href',
|
|
612
622
|
'rel',
|
|
613
623
|
'target',
|
|
614
|
-
'type'
|
|
624
|
+
'type',
|
|
625
|
+
'shape'
|
|
615
626
|
]);
|
|
616
627
|
const IonItemOptions = /*@__PURE__*/ defineContainer('ion-item-options', defineCustomElement$z, [
|
|
617
628
|
'side',
|
|
@@ -629,7 +640,8 @@ const IonLabel = /*@__PURE__*/ defineContainer('ion-label', defineCustomElement$
|
|
|
629
640
|
]);
|
|
630
641
|
const IonList = /*@__PURE__*/ defineContainer('ion-list', defineCustomElement$C, [
|
|
631
642
|
'lines',
|
|
632
|
-
'inset'
|
|
643
|
+
'inset',
|
|
644
|
+
'shape'
|
|
633
645
|
]);
|
|
634
646
|
const IonListHeader = /*@__PURE__*/ defineContainer('ion-list-header', defineCustomElement$D, [
|
|
635
647
|
'color',
|
|
@@ -847,7 +859,8 @@ const IonSpinner = /*@__PURE__*/ defineContainer('ion-spinner', defineCustomElem
|
|
|
847
859
|
'color',
|
|
848
860
|
'duration',
|
|
849
861
|
'name',
|
|
850
|
-
'paused'
|
|
862
|
+
'paused',
|
|
863
|
+
'size'
|
|
851
864
|
]);
|
|
852
865
|
const IonSplitPane = /*@__PURE__*/ defineContainer('ion-split-pane', defineCustomElement$11, [
|
|
853
866
|
'contentId',
|
|
@@ -855,16 +868,10 @@ const IonSplitPane = /*@__PURE__*/ defineContainer('ion-split-pane', defineCusto
|
|
|
855
868
|
'when',
|
|
856
869
|
'ionSplitPaneVisible'
|
|
857
870
|
]);
|
|
858
|
-
const
|
|
859
|
-
'active',
|
|
860
|
-
'delegate',
|
|
861
|
-
'tab',
|
|
862
|
-
'component'
|
|
863
|
-
]);
|
|
864
|
-
const IonText = /*@__PURE__*/ defineContainer('ion-text', defineCustomElement$13, [
|
|
871
|
+
const IonText = /*@__PURE__*/ defineContainer('ion-text', defineCustomElement$12, [
|
|
865
872
|
'color'
|
|
866
873
|
]);
|
|
867
|
-
const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomElement$
|
|
874
|
+
const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomElement$13, [
|
|
868
875
|
'color',
|
|
869
876
|
'autocapitalize',
|
|
870
877
|
'autofocus',
|
|
@@ -893,18 +900,19 @@ const IonTextarea = /*@__PURE__*/ defineContainer('ion-textarea', defineCustomEl
|
|
|
893
900
|
'label',
|
|
894
901
|
'labelPlacement',
|
|
895
902
|
'shape',
|
|
903
|
+
'size',
|
|
896
904
|
'ionChange',
|
|
897
905
|
'ionInput',
|
|
898
906
|
'ionBlur',
|
|
899
907
|
'ionFocus'
|
|
900
908
|
], 'value', 'ion-input');
|
|
901
|
-
const IonThumbnail = /*@__PURE__*/ defineContainer('ion-thumbnail', defineCustomElement$
|
|
902
|
-
const IonTitle = /*@__PURE__*/ defineContainer('ion-title', defineCustomElement$
|
|
909
|
+
const IonThumbnail = /*@__PURE__*/ defineContainer('ion-thumbnail', defineCustomElement$14);
|
|
910
|
+
const IonTitle = /*@__PURE__*/ defineContainer('ion-title', defineCustomElement$15, [
|
|
903
911
|
'color',
|
|
904
912
|
'size',
|
|
905
913
|
'ionStyle'
|
|
906
914
|
]);
|
|
907
|
-
const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineCustomElement$
|
|
915
|
+
const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineCustomElement$16, [
|
|
908
916
|
'color',
|
|
909
917
|
'name',
|
|
910
918
|
'checked',
|
|
@@ -918,7 +926,7 @@ const IonToggle = /*@__PURE__*/ defineContainer('ion-toggle', defineCustomElemen
|
|
|
918
926
|
'ionFocus',
|
|
919
927
|
'ionBlur'
|
|
920
928
|
], 'checked', 'ion-change');
|
|
921
|
-
const IonToolbar = /*@__PURE__*/ defineContainer('ion-toolbar', defineCustomElement$
|
|
929
|
+
const IonToolbar = /*@__PURE__*/ defineContainer('ion-toolbar', defineCustomElement$17, [
|
|
922
930
|
'color'
|
|
923
931
|
]);
|
|
924
932
|
|
|
@@ -1096,7 +1104,7 @@ const IonicVue = {
|
|
|
1096
1104
|
};
|
|
1097
1105
|
|
|
1098
1106
|
const IonBackButton = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
|
|
1099
|
-
defineCustomElement$
|
|
1107
|
+
defineCustomElement$18();
|
|
1100
1108
|
// TODO(FW-2969): type
|
|
1101
1109
|
const ionRouter = inject("navManager");
|
|
1102
1110
|
const onClick = () => {
|
|
@@ -1142,7 +1150,7 @@ const viewDepthKey = Symbol(0);
|
|
|
1142
1150
|
const IonRouterOutlet = /*@__PURE__*/ defineComponent({
|
|
1143
1151
|
name: "IonRouterOutlet",
|
|
1144
1152
|
setup() {
|
|
1145
|
-
defineCustomElement$
|
|
1153
|
+
defineCustomElement$19();
|
|
1146
1154
|
const injectedRoute = inject(routeLocationKey);
|
|
1147
1155
|
const route = useRoute();
|
|
1148
1156
|
const depth = inject(viewDepthKey, 0);
|
|
@@ -1576,13 +1584,9 @@ const IonTabButton = /*@__PURE__*/ defineComponent({
|
|
|
1576
1584
|
selected: Boolean,
|
|
1577
1585
|
tab: String,
|
|
1578
1586
|
target: String,
|
|
1579
|
-
_onClick: {
|
|
1580
|
-
type: Function,
|
|
1581
|
-
required: false,
|
|
1582
|
-
},
|
|
1583
1587
|
},
|
|
1584
1588
|
setup(props, { slots }) {
|
|
1585
|
-
defineCustomElement$
|
|
1589
|
+
defineCustomElement$1a();
|
|
1586
1590
|
// TODO(FW-2969): type
|
|
1587
1591
|
const ionRouter = inject("navManager");
|
|
1588
1592
|
const onClick = (ev) => {
|
|
@@ -1597,25 +1601,10 @@ const IonTabButton = /*@__PURE__*/ defineComponent({
|
|
|
1597
1601
|
*/
|
|
1598
1602
|
const { tab, href, _getTabState } = props;
|
|
1599
1603
|
const tabState = _getTabState();
|
|
1600
|
-
const hasRouterOutlet = tabState.hasRouterOutlet;
|
|
1601
1604
|
const tappedTab = tabState.tabs[tab] || {};
|
|
1602
1605
|
const originalHref = tappedTab.originalHref || href;
|
|
1603
|
-
|
|
1604
|
-
* If the router outlet is not defined, then the tabs is being used
|
|
1605
|
-
* as a basic tab navigation without the router. In this case, we
|
|
1606
|
-
* don't want to update the href else the URL will change.
|
|
1607
|
-
*/
|
|
1608
|
-
const currentHref = hasRouterOutlet ? tappedTab.currentHref || href : "";
|
|
1606
|
+
const currentHref = tappedTab.currentHref || href;
|
|
1609
1607
|
const prevActiveTab = tabState.activeTab;
|
|
1610
|
-
if (!hasRouterOutlet && props._onClick) {
|
|
1611
|
-
props._onClick(new CustomEvent("ionTabButtonClick", {
|
|
1612
|
-
detail: {
|
|
1613
|
-
href: currentHref,
|
|
1614
|
-
selected: tab === prevActiveTab,
|
|
1615
|
-
tab,
|
|
1616
|
-
},
|
|
1617
|
-
}));
|
|
1618
|
-
}
|
|
1619
1608
|
/**
|
|
1620
1609
|
* If we are still on the same
|
|
1621
1610
|
* tab as before, but the base href
|
|
@@ -1658,67 +1647,47 @@ const isTabBar = (node) => {
|
|
|
1658
1647
|
return (node.type &&
|
|
1659
1648
|
(node.type.name === "IonTabBar" || node.type === "ion-tab-bar"));
|
|
1660
1649
|
};
|
|
1661
|
-
const isTab = (node) => {
|
|
1662
|
-
// The `ion-tab` component was created with the `v-for` directive.
|
|
1663
|
-
if (node.type === Fragment) {
|
|
1664
|
-
if (Array.isArray(node.children)) {
|
|
1665
|
-
return node.children.some((child) => isVNode(child) && isTab(child));
|
|
1666
|
-
}
|
|
1667
|
-
return false; // In case the fragment has no children.
|
|
1668
|
-
}
|
|
1669
|
-
return (node.type && (node.type.name === "ion-tab" || node.type === IonTab));
|
|
1670
|
-
};
|
|
1671
1650
|
const IonTabs = /*@__PURE__*/ defineComponent({
|
|
1672
1651
|
name: "IonTabs",
|
|
1673
1652
|
emits: [WILL_CHANGE, DID_CHANGE],
|
|
1674
|
-
setup(props, { slots, emit }) {
|
|
1675
|
-
return {
|
|
1676
|
-
props,
|
|
1677
|
-
slots,
|
|
1678
|
-
emit,
|
|
1679
|
-
};
|
|
1680
|
-
},
|
|
1681
|
-
mounted() {
|
|
1682
|
-
/**
|
|
1683
|
-
* `defineCustomElement` must be called in the `mounted` hook
|
|
1684
|
-
* to ensure that the custom element is defined after the
|
|
1685
|
-
* component has been fully rendered and initialized.
|
|
1686
|
-
* This prevents issues with undefined properties, like
|
|
1687
|
-
* `selectedTab` from core, which may occur if the custom
|
|
1688
|
-
* element is defined too early in the component's lifecycle.
|
|
1689
|
-
*/
|
|
1690
|
-
defineCustomElement$1c();
|
|
1691
|
-
},
|
|
1692
1653
|
render() {
|
|
1693
|
-
|
|
1654
|
+
var _a;
|
|
1655
|
+
const { $slots: slots, $emit } = this;
|
|
1694
1656
|
const slottedContent = slots.default && slots.default();
|
|
1695
1657
|
let routerOutlet;
|
|
1696
|
-
|
|
1658
|
+
/**
|
|
1659
|
+
* Developers must pass an ion-router-outlet
|
|
1660
|
+
* inside of ion-tabs.
|
|
1661
|
+
*/
|
|
1697
1662
|
if (slottedContent && slottedContent.length > 0) {
|
|
1698
|
-
/**
|
|
1699
|
-
* Developers must pass an ion-router-outlet
|
|
1700
|
-
* inside of ion-tabs if they want to use
|
|
1701
|
-
* the history stack or URL updates associated
|
|
1702
|
-
* wit the router.
|
|
1703
|
-
*/
|
|
1704
1663
|
routerOutlet = slottedContent.find((child) => isRouterOutlet(child));
|
|
1705
|
-
/**
|
|
1706
|
-
* Developers must pass at least one ion-tab
|
|
1707
|
-
* inside of ion-tabs if they want to use a
|
|
1708
|
-
* basic tab-based navigation without the
|
|
1709
|
-
* history stack or URL updates associated
|
|
1710
|
-
* with the router.
|
|
1711
|
-
*/
|
|
1712
|
-
hasTab = slottedContent.some((child) => isTab(child));
|
|
1713
|
-
}
|
|
1714
|
-
if (!routerOutlet && !hasTab) {
|
|
1715
|
-
throw new Error("IonTabs must contain an IonRouterOutlet or an IonTab.");
|
|
1716
1664
|
}
|
|
1717
|
-
if (routerOutlet
|
|
1718
|
-
throw new Error("IonTabs
|
|
1665
|
+
if (!routerOutlet) {
|
|
1666
|
+
throw new Error("IonTabs must contain an IonRouterOutlet. See https://ionicframework.com/docs/vue/navigation#working-with-tabs for more information.");
|
|
1719
1667
|
}
|
|
1668
|
+
let childrenToRender = [
|
|
1669
|
+
h("div", {
|
|
1670
|
+
class: "tabs-inner",
|
|
1671
|
+
style: {
|
|
1672
|
+
position: "relative",
|
|
1673
|
+
flex: "1",
|
|
1674
|
+
contain: "layout size style",
|
|
1675
|
+
},
|
|
1676
|
+
}, routerOutlet),
|
|
1677
|
+
];
|
|
1678
|
+
/**
|
|
1679
|
+
* If ion-tab-bar has slot="top" it needs to be
|
|
1680
|
+
* rendered before `.tabs-inner` otherwise it will
|
|
1681
|
+
* not show above the tab content.
|
|
1682
|
+
*/
|
|
1720
1683
|
if (slottedContent && slottedContent.length > 0) {
|
|
1721
|
-
|
|
1684
|
+
/**
|
|
1685
|
+
* Render all content except for router outlet
|
|
1686
|
+
* since that needs to be inside of `.tabs-inner`.
|
|
1687
|
+
*/
|
|
1688
|
+
const filteredContent = slottedContent.filter((child) => !child.type || !isRouterOutlet(child));
|
|
1689
|
+
const slottedTabBar = filteredContent.find((child) => isTabBar(child));
|
|
1690
|
+
const hasTopSlotTabBar = slottedTabBar && ((_a = slottedTabBar.props) === null || _a === void 0 ? void 0 : _a.slot) === "top";
|
|
1722
1691
|
if (slottedTabBar) {
|
|
1723
1692
|
if (!slottedTabBar.props) {
|
|
1724
1693
|
slottedTabBar.props = {};
|
|
@@ -1730,24 +1699,16 @@ const IonTabs = /*@__PURE__*/ defineComponent({
|
|
|
1730
1699
|
* TODO: We may want to move logic from the tab bar into here
|
|
1731
1700
|
* so we do not have code split across two components.
|
|
1732
1701
|
*/
|
|
1733
|
-
slottedTabBar.props._tabsWillChange = (tab) => emit(WILL_CHANGE, { tab });
|
|
1734
|
-
slottedTabBar.props._tabsDidChange = (tab) => emit(DID_CHANGE, { tab });
|
|
1735
|
-
|
|
1702
|
+
slottedTabBar.props._tabsWillChange = (tab) => $emit(WILL_CHANGE, { tab });
|
|
1703
|
+
slottedTabBar.props._tabsDidChange = (tab) => $emit(DID_CHANGE, { tab });
|
|
1704
|
+
}
|
|
1705
|
+
if (hasTopSlotTabBar) {
|
|
1706
|
+
childrenToRender = [...filteredContent, ...childrenToRender];
|
|
1707
|
+
}
|
|
1708
|
+
else {
|
|
1709
|
+
childrenToRender = [...childrenToRender, ...filteredContent];
|
|
1736
1710
|
}
|
|
1737
1711
|
}
|
|
1738
|
-
if (hasTab) {
|
|
1739
|
-
return h("ion-tabs", Object.assign({}, props), slottedContent);
|
|
1740
|
-
}
|
|
1741
|
-
/**
|
|
1742
|
-
* TODO(ROU-11056)
|
|
1743
|
-
*
|
|
1744
|
-
* Vue handles the error case for when there is no
|
|
1745
|
-
* associated page matching the tab `href`.
|
|
1746
|
-
*
|
|
1747
|
-
* More investigation is needed to determine if we
|
|
1748
|
-
* override the error handling and provide our own
|
|
1749
|
-
* error message.
|
|
1750
|
-
*/
|
|
1751
1712
|
return h("ion-tabs", {
|
|
1752
1713
|
style: {
|
|
1753
1714
|
display: "flex",
|
|
@@ -1762,7 +1723,7 @@ const IonTabs = /*@__PURE__*/ defineComponent({
|
|
|
1762
1723
|
contain: "layout size style",
|
|
1763
1724
|
"z-index": "0",
|
|
1764
1725
|
},
|
|
1765
|
-
},
|
|
1726
|
+
}, childrenToRender);
|
|
1766
1727
|
},
|
|
1767
1728
|
});
|
|
1768
1729
|
|
|
@@ -1786,7 +1747,6 @@ const IonTabBar = defineComponent({
|
|
|
1786
1747
|
/* eslint-disable @typescript-eslint/no-empty-function */
|
|
1787
1748
|
_tabsWillChange: { type: Function, default: () => { } },
|
|
1788
1749
|
_tabsDidChange: { type: Function, default: () => { } },
|
|
1789
|
-
_hasRouterOutlet: { type: Boolean, default: false },
|
|
1790
1750
|
/* eslint-enable @typescript-eslint/no-empty-function */
|
|
1791
1751
|
},
|
|
1792
1752
|
data() {
|
|
@@ -1803,7 +1763,6 @@ const IonTabBar = defineComponent({
|
|
|
1803
1763
|
},
|
|
1804
1764
|
methods: {
|
|
1805
1765
|
setupTabState(ionRouter) {
|
|
1806
|
-
const hasRouterOutlet = this.$props._hasRouterOutlet;
|
|
1807
1766
|
/**
|
|
1808
1767
|
* For each tab, we need to keep track of its
|
|
1809
1768
|
* base href as well as any child page that
|
|
@@ -1820,65 +1779,25 @@ const IonTabBar = defineComponent({
|
|
|
1820
1779
|
currentHref: child.props.href,
|
|
1821
1780
|
ref: child,
|
|
1822
1781
|
};
|
|
1823
|
-
/**
|
|
1824
|
-
* Passing this prop to each tab button
|
|
1825
|
-
* lets it be aware of the presence of
|
|
1826
|
-
* the router outlet.
|
|
1827
|
-
*/
|
|
1828
|
-
tabState.hasRouterOutlet = hasRouterOutlet;
|
|
1829
1782
|
/**
|
|
1830
1783
|
* Passing this prop to each tab button
|
|
1831
1784
|
* lets it be aware of the state that
|
|
1832
1785
|
* ion-tab-bar is managing for it.
|
|
1833
1786
|
*/
|
|
1834
1787
|
child.component.props._getTabState = () => tabState;
|
|
1835
|
-
/**
|
|
1836
|
-
* If the router outlet is not defined, then the tabs are being used
|
|
1837
|
-
* as a basic tab navigation without the router. In this case, the
|
|
1838
|
-
* tabs will not emit the `ionTabsDidChange` and `ionTabsWillChange`
|
|
1839
|
-
* events through the `checkActiveTab` method. Instead, we need to
|
|
1840
|
-
* handle those events through the tab buttons.
|
|
1841
|
-
*/
|
|
1842
|
-
if (!hasRouterOutlet) {
|
|
1843
|
-
child.component.props._onClick = (event) => {
|
|
1844
|
-
this.handleIonTabButtonClick(event);
|
|
1845
|
-
};
|
|
1846
|
-
}
|
|
1847
1788
|
});
|
|
1848
1789
|
this.checkActiveTab(ionRouter);
|
|
1849
1790
|
},
|
|
1850
|
-
/**
|
|
1851
|
-
* This method is called upon setup and when the
|
|
1852
|
-
* history changes. It checks the current route
|
|
1853
|
-
* and updates the active tab accordingly.
|
|
1854
|
-
*
|
|
1855
|
-
* History changes only occur when the router
|
|
1856
|
-
* outlet is present. Due to this, the
|
|
1857
|
-
* `ionTabsDidChange` and `ionTabsWillChange`
|
|
1858
|
-
* events are only emitted when the router
|
|
1859
|
-
* outlet is present. A different approach must
|
|
1860
|
-
* be taken for tabs without a router outlet.
|
|
1861
|
-
*
|
|
1862
|
-
* @param ionRouter
|
|
1863
|
-
*/
|
|
1864
1791
|
checkActiveTab(ionRouter) {
|
|
1865
|
-
const hasRouterOutlet = this.$props._hasRouterOutlet;
|
|
1866
1792
|
const currentRoute = ionRouter.getCurrentRouteInfo();
|
|
1867
1793
|
const childNodes = this.$data.tabVnodes;
|
|
1868
1794
|
const { tabs, activeTab: prevActiveTab } = this.$data.tabState;
|
|
1795
|
+
const tabState = this.$data.tabState;
|
|
1869
1796
|
const tabKeys = Object.keys(tabs);
|
|
1870
|
-
|
|
1797
|
+
const activeTab = tabKeys.find((key) => {
|
|
1871
1798
|
const href = tabs[key].originalHref;
|
|
1872
1799
|
return currentRoute.pathname.startsWith(href);
|
|
1873
1800
|
});
|
|
1874
|
-
/**
|
|
1875
|
-
* Tabs is being used as a basic tab navigation,
|
|
1876
|
-
* so we need to set the first tab as active since
|
|
1877
|
-
* `checkActiveTab` will not be called after setup.
|
|
1878
|
-
*/
|
|
1879
|
-
if (!activeTab && !hasRouterOutlet) {
|
|
1880
|
-
activeTab = tabKeys[0];
|
|
1881
|
-
}
|
|
1882
1801
|
/**
|
|
1883
1802
|
* For each tab, check to see if the
|
|
1884
1803
|
* base href has changed. If so, update
|
|
@@ -1922,36 +1841,23 @@ const IonTabBar = defineComponent({
|
|
|
1922
1841
|
tabs[prevActiveTab] = Object.assign(Object.assign({}, tabs[prevActiveTab]), { currentHref: tabs[prevActiveTab].originalHref });
|
|
1923
1842
|
}
|
|
1924
1843
|
}
|
|
1925
|
-
this.tabSwitch(activeTab, ionRouter);
|
|
1926
|
-
},
|
|
1927
|
-
handleIonTabButtonClick(event) {
|
|
1928
|
-
const activeTab = event.detail.tab;
|
|
1929
|
-
this.tabSwitch(activeTab);
|
|
1930
|
-
},
|
|
1931
|
-
tabSwitch(activeTab, ionRouter) {
|
|
1932
|
-
const hasRouterOutlet = this.$props._hasRouterOutlet;
|
|
1933
|
-
const childNodes = this.$data.tabVnodes;
|
|
1934
|
-
const { activeTab: prevActiveTab } = this.$data.tabState;
|
|
1935
|
-
const tabState = this.$data.tabState;
|
|
1936
1844
|
const activeChild = childNodes.find((child) => { var _a; return isTabButton(child) && ((_a = child.props) === null || _a === void 0 ? void 0 : _a.tab) === activeTab; });
|
|
1937
1845
|
const tabBar = this.$refs.ionTabBar;
|
|
1938
1846
|
const tabDidChange = activeTab !== prevActiveTab;
|
|
1939
1847
|
if (tabBar) {
|
|
1940
1848
|
if (activeChild) {
|
|
1941
1849
|
tabDidChange && this.$props._tabsWillChange(activeTab);
|
|
1942
|
-
|
|
1943
|
-
ionRouter.handleSetCurrentTab(activeTab);
|
|
1944
|
-
}
|
|
1850
|
+
ionRouter.handleSetCurrentTab(activeTab);
|
|
1945
1851
|
tabBar.selectedTab = tabState.activeTab = activeTab;
|
|
1946
1852
|
tabDidChange && this.$props._tabsDidChange(activeTab);
|
|
1947
|
-
}
|
|
1948
|
-
else {
|
|
1949
1853
|
/**
|
|
1950
1854
|
* When going to a tab that does
|
|
1951
1855
|
* not have an associated ion-tab-button
|
|
1952
1856
|
* we need to remove the selected state from
|
|
1953
1857
|
* the old tab.
|
|
1954
1858
|
*/
|
|
1859
|
+
}
|
|
1860
|
+
else {
|
|
1955
1861
|
tabBar.selectedTab = tabState.activeTab = "";
|
|
1956
1862
|
}
|
|
1957
1863
|
}
|
|
@@ -1963,7 +1869,7 @@ const IonTabBar = defineComponent({
|
|
|
1963
1869
|
ionRouter.registerHistoryChangeListener(() => this.checkActiveTab(ionRouter));
|
|
1964
1870
|
},
|
|
1965
1871
|
setup(_, { slots }) {
|
|
1966
|
-
defineCustomElement$
|
|
1872
|
+
defineCustomElement$1b();
|
|
1967
1873
|
return () => {
|
|
1968
1874
|
return h("ion-tab-bar", { ref: "ionTabBar" }, slots.default && slots.default());
|
|
1969
1875
|
};
|
|
@@ -1972,7 +1878,7 @@ const IonTabBar = defineComponent({
|
|
|
1972
1878
|
|
|
1973
1879
|
const userComponents = shallowRef([]);
|
|
1974
1880
|
const IonApp = /*@__PURE__*/ defineComponent((_, { attrs, slots }) => {
|
|
1975
|
-
defineCustomElement$
|
|
1881
|
+
defineCustomElement$1c();
|
|
1976
1882
|
return () => {
|
|
1977
1883
|
return h("ion-app", Object.assign({}, attrs), [slots.default && slots.default(), ...userComponents.value]);
|
|
1978
1884
|
};
|
|
@@ -2024,7 +1930,7 @@ const VueDelegate = (addFn = addTeleportedUserComponent, removeFn = removeTelepo
|
|
|
2024
1930
|
};
|
|
2025
1931
|
|
|
2026
1932
|
const IonNav = /*@__PURE__*/ defineComponent((props) => {
|
|
2027
|
-
defineCustomElement$
|
|
1933
|
+
defineCustomElement$1d();
|
|
2028
1934
|
const views = shallowRef([]);
|
|
2029
1935
|
/**
|
|
2030
1936
|
* Allows us to create the component
|
|
@@ -2084,7 +1990,7 @@ const IonIcon = /*@__PURE__*/ defineComponent({
|
|
|
2084
1990
|
src: String,
|
|
2085
1991
|
},
|
|
2086
1992
|
setup(props, { slots }) {
|
|
2087
|
-
defineCustomElement$
|
|
1993
|
+
defineCustomElement$1e();
|
|
2088
1994
|
return () => {
|
|
2089
1995
|
var _a, _b;
|
|
2090
1996
|
const { icon, ios, md, mode } = props;
|
|
@@ -2273,13 +2179,13 @@ const defineOverlayContainer = (name, defineCustomElement, componentProps = [],
|
|
|
2273
2179
|
* This is an autogenerated file created by 'scripts/copy-overlays.js'.
|
|
2274
2180
|
* Changes made to this file will be overwritten on build.
|
|
2275
2181
|
*/
|
|
2276
|
-
const IonActionSheet = /*@__PURE__*/ defineOverlayContainer('ion-action-sheet', defineCustomElement$
|
|
2277
|
-
const IonAlert = /*@__PURE__*/ defineOverlayContainer('ion-alert', defineCustomElement$
|
|
2278
|
-
const IonLoading = /*@__PURE__*/ defineOverlayContainer('ion-loading', defineCustomElement$
|
|
2279
|
-
const IonPickerLegacy = /*@__PURE__*/ defineOverlayContainer('ion-picker-legacy', defineCustomElement$
|
|
2280
|
-
const IonToast = /*@__PURE__*/ defineOverlayContainer('ion-toast', defineCustomElement$
|
|
2281
|
-
const IonModal = /*@__PURE__*/ defineOverlayContainer('ion-modal', defineCustomElement$
|
|
2282
|
-
const IonPopover = /*@__PURE__*/ defineOverlayContainer('ion-popover', defineCustomElement$
|
|
2182
|
+
const IonActionSheet = /*@__PURE__*/ defineOverlayContainer('ion-action-sheet', defineCustomElement$1f, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'mode', 'subHeader', 'theme', 'translucent', 'trigger']);
|
|
2183
|
+
const IonAlert = /*@__PURE__*/ defineOverlayContainer('ion-alert', defineCustomElement$1g, ['animated', 'backdropDismiss', 'buttons', 'cssClass', 'enterAnimation', 'header', 'htmlAttributes', 'inputs', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'subHeader', 'theme', 'translucent', 'trigger']);
|
|
2184
|
+
const IonLoading = /*@__PURE__*/ defineOverlayContainer('ion-loading', defineCustomElement$1h, ['animated', 'backdropDismiss', 'cssClass', 'duration', 'enterAnimation', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'message', 'mode', 'showBackdrop', 'spinner', 'theme', 'translucent', 'trigger']);
|
|
2185
|
+
const IonPickerLegacy = /*@__PURE__*/ defineOverlayContainer('ion-picker-legacy', defineCustomElement$1i, ['animated', 'backdropDismiss', 'buttons', 'columns', 'cssClass', 'duration', 'enterAnimation', 'htmlAttributes', 'isOpen', 'keyboardClose', 'leaveAnimation', 'mode', 'showBackdrop', 'theme', 'trigger']);
|
|
2186
|
+
const IonToast = /*@__PURE__*/ defineOverlayContainer('ion-toast', defineCustomElement$1j, ['animated', 'buttons', 'color', 'cssClass', 'duration', 'enterAnimation', 'header', 'htmlAttributes', 'icon', 'isOpen', 'keyboardClose', 'layout', 'leaveAnimation', 'message', 'mode', 'position', 'positionAnchor', 'swipeGesture', 'theme', 'translucent', 'trigger']);
|
|
2187
|
+
const IonModal = /*@__PURE__*/ defineOverlayContainer('ion-modal', defineCustomElement$1k, ['animated', 'backdropBreakpoint', 'backdropDismiss', 'breakpoints', 'canDismiss', 'enterAnimation', 'focusTrap', 'handle', 'handleBehavior', 'htmlAttributes', 'initialBreakpoint', 'isOpen', 'keepContentsMounted', 'keyboardClose', 'leaveAnimation', 'mode', 'presentingElement', 'showBackdrop', 'theme', 'trigger'], true);
|
|
2188
|
+
const IonPopover = /*@__PURE__*/ defineOverlayContainer('ion-popover', defineCustomElement$1l, ['alignment', 'animated', 'arrow', 'backdropDismiss', 'component', 'componentProps', 'dismissOnSelect', 'enterAnimation', 'event', 'focusTrap', 'htmlAttributes', 'isOpen', 'keepContentsMounted', 'keyboardClose', 'leaveAnimation', 'mode', 'reference', 'showBackdrop', 'side', 'size', 'theme', 'translucent', 'trigger', 'triggerAction']);
|
|
2283
2189
|
|
|
2284
2190
|
// TODO(FW-2969): types
|
|
2285
2191
|
/**
|
|
@@ -2296,16 +2202,16 @@ const createController = (defineCustomElement, oldController, useDelegate = fals
|
|
|
2296
2202
|
};
|
|
2297
2203
|
return oldController;
|
|
2298
2204
|
};
|
|
2299
|
-
const modalController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2300
|
-
const popoverController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2301
|
-
const alertController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2302
|
-
const actionSheetController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2303
|
-
const loadingController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2205
|
+
const modalController = /*@__PURE__*/ createController(defineCustomElement$1k, modalController$1, true);
|
|
2206
|
+
const popoverController = /*@__PURE__*/ createController(defineCustomElement$1l, popoverController$1, true);
|
|
2207
|
+
const alertController = /*@__PURE__*/ createController(defineCustomElement$1g, alertController$1);
|
|
2208
|
+
const actionSheetController = /*@__PURE__*/ createController(defineCustomElement$1f, actionSheetController$1);
|
|
2209
|
+
const loadingController = /*@__PURE__*/ createController(defineCustomElement$1h, loadingController$1);
|
|
2304
2210
|
/**
|
|
2305
2211
|
* @deprecated Use the inline ion-picker component instead.
|
|
2306
2212
|
*/
|
|
2307
|
-
const pickerController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2308
|
-
const toastController = /*@__PURE__*/ createController(defineCustomElement$
|
|
2213
|
+
const pickerController = /*@__PURE__*/ createController(defineCustomElement$1i, pickerController$1);
|
|
2214
|
+
const toastController = /*@__PURE__*/ createController(defineCustomElement$1j, toastController$1);
|
|
2309
2215
|
|
|
2310
|
-
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, IonInputPasswordToggle, IonItem, IonItemDivider, IonItemGroup, IonItemOption, IonItemOptions, IonItemSliding, IonLabel, IonList, IonListHeader, IonLoading, IonMenu, IonMenuButton, IonMenuToggle, IonModal, IonNav, IonNavLink, IonNote, IonPage, IonPicker, IonPickerColumn, IonPickerColumnOption, IonPickerLegacy, IonPopover, IonProgressBar, IonRadio, IonRadioGroup, IonRange, IonRefresher, IonRefresherContent, IonReorder, IonReorderGroup, IonRippleEffect, IonRouterOutlet, IonRow, IonSearchbar, IonSegment, IonSegmentButton, IonSelect, IonSelectOption, IonSkeletonText, IonSpinner, IonSplitPane,
|
|
2216
|
+
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, IonInputPasswordToggle, IonItem, IonItemDivider, IonItemGroup, IonItemOption, IonItemOptions, IonItemSliding, IonLabel, IonList, IonListHeader, IonLoading, IonMenu, IonMenuButton, IonMenuToggle, IonModal, IonNav, IonNavLink, IonNote, IonPage, IonPicker, IonPickerColumn, IonPickerColumnOption, IonPickerLegacy, IonPopover, IonProgressBar, IonRadio, IonRadioGroup, IonRange, IonRefresher, IonRefresherContent, IonReorder, IonReorderGroup, IonRippleEffect, IonRouterOutlet, IonRow, IonSearchbar, IonSegment, IonSegmentButton, IonSelect, IonSelectOption, IonSkeletonText, IonSpinner, IonSplitPane, IonTabBar, IonTabButton, IonTabs, IonText, IonTextarea, IonThumbnail, IonTitle, IonToast, IonToggle, IonToolbar, IonicVue, actionSheetController, alertController, loadingController, modalController, onIonViewDidEnter, onIonViewDidLeave, onIonViewWillEnter, onIonViewWillLeave, pickerController, popoverController, toastController, useBackButton, useIonRouter, useKeyboard };
|
|
2311
2217
|
//# sourceMappingURL=index.js.map
|