import { modalController } from '@ionic/vue';
import Icon from './icon';
import commonService from './common.service';
import utils from './utils.service';

import {
	IonBackButton,
	IonBadge,
	IonButton,
	IonButtons,
	IonCheckbox,
	IonChip,
	IonCol,
	IonContent,
	IonDatetime,
	IonDatetimeButton,
	IonFab,
	IonFabButton,
	IonFabList,
	IonFooter,
	IonGrid,
	IonHeader,
	IonIcon,
	IonImg,
	IonInput,
	IonItem,
	IonItemDivider,
	IonItemGroup,
	IonLabel,
	IonList,
	IonListHeader,
	IonMenuButton,
	IonModal,
	IonNote,
	IonPage,
	IonPopover,
	IonRadio,
	IonRadioGroup,
	IonRow,
	IonSelect,
	IonSelectOption,
	IonText,
	IonTextarea,
	IonThumbnail,
	IonTitle,
	IonToolbar,
} from '@ionic/vue';

import { defineComponent, ref } from 'vue';

import GgcComponents from '../views/components/index';

const IonPageModules = {
	IonButtons,
	IonContent,
	IonHeader,
	IonMenuButton,
	IonPage,
	IonChip,
	IonTitle,
	IonBadge,
	IonButton,
	IonBackButton,
	IonToolbar,
	IonItem,
	IonImg,
	IonItemDivider,
	IonItemGroup,
	IonList,
	IonNote,
	IonListHeader,
	IonText,
	IonLabel,
	IonFab,
	IonFabList,
	IonFabButton,
	IonInput,
	IonPopover,
	IonThumbnail,
	IonGrid,
	IonRow,
	IonCol,
	IonIcon,
	IonFooter,
	...GgcComponents,
};

const IonFormModules = {
	IonSelect,
	IonRadioGroup,
	IonRadio,
	IonCheckbox,
	IonTextarea,
	IonSelectOption,
	IonDatetime,
	IonDatetimeButton,
	IonModal,
};

const processEnv = process.env;

export { commonService, IonPageModules, IonFormModules, Icon, modalController, ref, defineComponent, processEnv, utils };
