import 'vue-tel-input/vue-tel-input.css' import 'floating-vue/dist/style.css' import 'modern-normalize/modern-normalize.css' import '@/assets/main.css' import FloatingVue from 'floating-vue' import { vMaska } from 'maska/vue' import PrimeVue from 'primevue/config' import ToastService from 'primevue/toastservice' import type { App, Plugin } from 'vue' import { BindOnceDirective } from 'vue-bind-once' import VueTelInput from 'vue-tel-input' import { useReducedMotion } from '../composables/useReducedMotion' import ClickOutside from '../directives/ClickOutside' import CpCoreDatepicker from '../libs/CoreDatepicker.vue' import CpAccordion from './CpAccordion.vue' import CpAccordionGroup from './CpAccordionGroup.vue' import CpAirlineLogo from './CpAirlineLogo.vue' import CpAlert from './CpAlert.vue' import CpBadge from './CpBadge.vue' import CpBottomSheet from './CpBottomSheet.vue' import CpButton from './CpButton.vue' import CpButtonGroup from './CpButtonGroup.vue' import CpButtonToggle from './CpButtonToggle.vue' import CpCalendar from './CpCalendar.vue' import CpCheckbox from './CpCheckbox.vue' import CpContextualMenu from './CpContextualMenu.vue' import CpDate from './CpDate.vue' import CpDatepicker from './CpDatepicker.vue' import CpDialog from './CpDialog.vue' import CpDynamicDialog from './CpDynamicDialog.vue' import CpHeading from './CpHeading.vue' import CpIcon from './CpIcon.vue' import CpInput from './CpInput.vue' import CpItemActions from './CpItemActions.vue' import CpLoader from './CpLoader.vue' import CpMenu from './CpMenu.vue' import CpMenuItem from './CpMenuItem.vue' import CpMenuList from './CpMenuList.vue' import CpMultiselect from './CpMultiselect.vue' import CpRadio from './CpRadio.vue' import CpRadioGroup from './CpRadioGroup.vue' import CpRadioNew from './CpRadioNew.vue' import CpSeatMap from './CpSeatMap.vue' import CpSeatMapEmergencyExitDialog from './CpSeatMapEmergencyExitDialog.vue' import CpSeatMapGrid from './CpSeatMapGrid.vue' import CpSeatMapPlane from './CpSeatMapPlane.vue' import CpSeatMapRow from './CpSeatMapRow.vue' import CpSeatMapRowFacility from './CpSeatMapRowFacility.vue' import CpSeatMapSeat from './CpSeatMapSeat.vue' import CpSeatMapSeatWrapper from './CpSeatMapSeatWrapper.vue' import CpSeatMapZone from './CpSeatMapZone.vue' import CpSegmentedControl from './CpSegmentedControl.vue' import CpSelect from './CpSelect.vue' import CpSelectableButton from './CpSelectableButton.vue' import CpSelectMenu from './CpSelectMenu.vue' import CpSwitch from './CpSwitch.vue' import CpTable from './CpTable.vue' import CpTableColumnEditor from './CpTableColumnEditor.vue' import CpTabs from './CpTabs.vue' import CpTelInput from './CpTelInput.vue' import CpText from './CpText.vue' import CpTextarea from './CpTextarea.vue' import CpTextMorph from './CpTextMorph.vue' import CpToast from './CpToast.vue' import CpTooltip from './CpTooltip.vue' import CpTransitionCounter from './CpTransitionCounter.vue' import CpTransitionDialog from './CpTransitionDialog.vue' import CpTransitionExpand from './CpTransitionExpand.vue' import CpTransitionListItems from './CpTransitionListItems.vue' import CpTransitionSize from './CpTransitionSize.vue' import CpTransitionSlide from './CpTransitionSlide.vue' import CpTransitionTabContent from './CpTransitionTabContent.vue' import CpTrip from './CpTrip.vue' import CpTripDetails from './CpTripDetails.vue' import CpTripLegRouteInformation from './CpTripLegRouteInformation.vue' import CpTripLegRouteLayover from './CpTripLegRouteLayover.vue' import CpTripLegRoutePlace from './CpTripLegRoutePlace.vue' import CpTripLegRouteSegment from './CpTripLegRouteSegment.vue' import IconAirline from './icons/IconAirline.vue' import IconCheckList from './icons/IconCheckList.vue' import IconCollapse from './icons/IconCollapse.vue' import IconExpand from './icons/IconExpand.vue' import IconGroupBy from './icons/IconGroupBy.vue' import IconOta from './icons/IconOta.vue' import IconSupplier from './icons/IconSupplier.vue' import IconThirdParty from './icons/IconThirdParty.vue' import IconTooltip from './icons/IconTooltip.vue' const Components = { CpAccordion, CpAccordionGroup, CpToast, CpButtonToggle, CpBadge, CpBottomSheet, CpTabs, CpHeading, CpButton, CpButtonGroup, CpDialog, CpDynamicDialog, CpDate, CpContextualMenu, CpMenu, CpMenuItem, CpMenuList, CpItemActions, CpCoreDatepicker, CpDatepicker, CpRadioNew, CpCalendar, CpAlert, CpLoader, CpInput, CpText, CpTextarea, CpSelect, CpSelectMenu, CpMultiselect, CpCheckbox, CpRadio, CpRadioGroup, CpSelectableButton, CpSwitch, CpSegmentedControl, CpTable, CpTableColumnEditor, CpIcon, CpTelInput, CpTooltip, CpTextMorph, CpAirlineLogo, IconAirline, IconOta, IconSupplier, IconThirdParty, IconTooltip, IconGroupBy, IconCollapse, IconExpand, IconCheckList, CpTransitionDialog, CpTransitionExpand, CpTransitionSize, CpTransitionCounter, CpTransitionListItems, CpTransitionSlide, CpTransitionTabContent, CpTrip, CpTripDetails, CpTripLegRouteInformation, CpTripLegRouteLayover, CpTripLegRoutePlace, CpTripLegRouteSegment, CpSeatMap, CpSeatMapEmergencyExitDialog, CpSeatMapGrid, CpSeatMapPlane, CpSeatMapRow, CpSeatMapRowFacility, CpSeatMapSeat, CpSeatMapSeatWrapper, CpSeatMapZone, } const Pimp: Plugin = { install(app: App) { app.use(PrimeVue, { unstyled: true }) app.use(VueTelInput) app.use(ToastService) app.use(FloatingVue) Object.keys(Components).forEach((name) => { app.component(name, Components[name as keyof typeof Components]) }) // Directives app.directive('click-outside', ClickOutside) app.directive('bind-once', BindOnceDirective) app.directive('maska', vMaska) }, } export type { CpSeatMapConfig, CpSeatMapSeatSelection, Seat, SeatAncillary, SeatCharacteristic, SeatMap, SeatMapZone, SeatRow, SeatRowFacilityFlags, } from '@/constants/seatMap' export type { CpSeatMapSeatSelection as CpSeatMapSelection } from '@/constants/seatMap/CpSeatMapSeatSelection' export type { CpTripDetailsConfig, Flight, FlightAirline, FlightAirport, FlightSegment, FlightTerminal, } from '@/constants/tripDetails' export { CpSeatMapTransitionDirections, DEFAULT_CP_SEAT_MAP_CONFIG, IataTravelerTypes, SeatCharacteristicCodes, SeatRowFacilities, SeatRowFacilityPosition, SeatStatuses, } from '@/constants/seatMap' export { DEFAULT_CP_TRIP_DETAILS_CONFIG, FlightStopTypes } from '@/constants/tripDetails' // Consumers key `selections` with this, so it has to be the very same helper. export { displaySeat } from '@/helpers/seatMap' export { CpAccordion, CpAccordionGroup, CpAirlineLogo, CpAlert, CpBadge, CpBottomSheet, CpButton, CpButtonGroup, CpButtonToggle, CpCalendar, CpCheckbox, CpContextualMenu, CpCoreDatepicker, CpDate, CpDatepicker, CpDialog, CpDynamicDialog, CpHeading, CpIcon, CpInput, CpItemActions, CpLoader, CpMenu, CpMenuItem, CpMenuList, CpMultiselect, CpRadio, CpRadioGroup, CpRadioNew, CpSeatMap, CpSeatMapEmergencyExitDialog, CpSeatMapGrid, CpSeatMapPlane, CpSeatMapRow, CpSeatMapRowFacility, CpSeatMapSeat, CpSeatMapSeatWrapper, CpSeatMapZone, CpSegmentedControl, CpSelect, CpSelectableButton, CpSelectMenu, CpSwitch, CpTable, CpTableColumnEditor, CpTabs, CpTelInput, CpText, CpTextarea, CpTextMorph, CpToast, CpTooltip, CpTransitionCounter, CpTransitionDialog, CpTransitionExpand, CpTransitionListItems, CpTransitionSize, CpTransitionSlide, CpTransitionTabContent, CpTrip, CpTripDetails, CpTripLegRouteInformation, CpTripLegRouteLayover, CpTripLegRoutePlace, CpTripLegRouteSegment, IconAirline, IconCheckList, IconCollapse, IconExpand, IconGroupBy, IconOta, IconSupplier, IconThirdParty, IconTooltip, useReducedMotion, } export default Pimp