{"version":3,"sources":["src/app/app-routing.module.ts","src/app/shared/services/seo-service.service.ts","src/app/app.component.ts","src/app/app.component.html","node_modules/@angular/platform-browser/fesm2022/animations/async.mjs","node_modules/@ngx-translate/http-loader/fesm2022/ngx-translate-http-loader.mjs","src/app/app.module.ts","node_modules/swiper/shared/ssr-window.esm.mjs","node_modules/swiper/shared/utils.mjs","node_modules/swiper/shared/swiper-core.mjs","node_modules/swiper/modules/virtual.mjs","node_modules/swiper/modules/keyboard.mjs","node_modules/swiper/modules/mousewheel.mjs","node_modules/swiper/shared/create-element-if-not-defined.mjs","node_modules/swiper/modules/navigation.mjs","node_modules/swiper/shared/classes-to-selector.mjs","node_modules/swiper/modules/pagination.mjs","node_modules/swiper/modules/scrollbar.mjs","node_modules/swiper/modules/parallax.mjs","node_modules/swiper/modules/zoom.mjs","node_modules/swiper/modules/controller.mjs","node_modules/swiper/modules/a11y.mjs","node_modules/swiper/modules/history.mjs","node_modules/swiper/modules/hash-navigation.mjs","node_modules/swiper/modules/autoplay.mjs","node_modules/swiper/modules/thumbs.mjs","node_modules/swiper/modules/free-mode.mjs","node_modules/swiper/modules/grid.mjs","node_modules/swiper/modules/manipulation.mjs","node_modules/swiper/shared/effect-init.mjs","node_modules/swiper/shared/effect-target.mjs","node_modules/swiper/shared/effect-virtual-transition-end.mjs","node_modules/swiper/modules/effect-fade.mjs","node_modules/swiper/modules/effect-cube.mjs","node_modules/swiper/shared/create-shadow.mjs","node_modules/swiper/modules/effect-flip.mjs","node_modules/swiper/modules/effect-coverflow.mjs","node_modules/swiper/modules/effect-creative.mjs","node_modules/swiper/modules/effect-cards.mjs","node_modules/swiper/swiper-bundle.mjs","node_modules/swiper/shared/update-swiper.mjs","node_modules/swiper/shared/get-element-params.mjs","node_modules/swiper/swiper-element-bundle.mjs","src/main.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\nimport { RouterModule, Routes } from '@angular/router';\nimport { SharedModule } from './shared/shared.module';\nimport { CalenderMobileViewComponent } from './shared/components/flight-search-box/calender-mobile-view/calender-mobile-view.component';\nconst routes: Routes = [\n {\n path: '',\n loadChildren: () =>\n import('./components/home/home.module').then((m) => m.HomeModule),\n },\n\n {\n path: 'airlines/:slug', // Handle both 'en' and 'ar'\n loadChildren: () =>\n import('./components/popular-airlines/popular-airlines.module').then(\n (m) => m.PopularAirlinesModule,\n ),\n },\n {\n path: 'searchboxMob/:index',\n component: CalenderMobileViewComponent,\n },\n];\n\n@NgModule({\n imports: [RouterModule.forRoot(routes), SharedModule],\n exports: [RouterModule],\n})\nexport class AppRoutingModule {}\n","import { Injectable, Inject, PLATFORM_ID } from '@angular/core';\nimport { Meta, Title } from '@angular/platform-browser';\nimport { isPlatformBrowser } from '@angular/common';\n\n@Injectable({\n providedIn: 'root',\n})\nexport class SeoService {\n private isBrowser: boolean;\n\n constructor(\n private meta: Meta,\n private title: Title,\n @Inject(PLATFORM_ID) private platformId: object,\n ) {\n this.isBrowser = isPlatformBrowser(this.platformId);\n }\n\n updateMetaTags(route: string, lang: string) {\n const airlineData = this.getAirlineMeta(route, lang);\n if (!airlineData) return;\n\n this.title.setTitle(airlineData.title);\n\n this.meta.updateTag({\n name: 'description',\n content: airlineData.description,\n });\n this.meta.updateTag({ name: 'keywords', content: airlineData.keywords });\n this.meta.updateTag({ rel: 'canonical', href: airlineData.canonical });\n }\n\n getAirlineMeta(route: string, lang: string) {\n const airlines: Record<\n string,\n Record<\n string,\n {\n title: string;\n description: string;\n keywords: string;\n alternateHref: string;\n hreflang: string;\n canonical: string;\n }\n >\n > = {\n 'air-cairo-SM': {\n en: {\n title: 'Book the Cheapest Air Cairo Flights | Travasky',\n description:\n 'Book the cheapest Air Cairo flights with Travasky. Get the best deals, lowest prices, and 24/7 customer support.',\n keywords:\n 'Air Cairo flights, book Air Cairo, cheap Air Cairo tickets, Travasky Air Cairo deals, Air Cairo booking',\n alternateHref: 'https://travasky.com/en/airlines/air-cairo-SM',\n hreflang: 'en-EG',\n canonical: 'https://travasky.com/en/airlines/air-cairo-SM',\n },\n ar: {\n title: 'حجز أرخص رحلات طيران القاهرة | ترافاسكاي',\n description:\n 'احجز أرخص تذاكر طيران على متن طيران القاهرة عبر ترافاسكاي. استمتع بأفضل العروض وخدمة عملاء متميزة.',\n keywords:\n 'حجز طيران القاهرة, تذاكر طيران القاهرة, رحلات طيران القاهرة, عروض طيران القاهرة, ترافاسكاي طيران القاهرة',\n alternateHref: 'https://travasky.com/airlines/air-cairo-SM',\n hreflang: 'ar-EG',\n canonical: 'https://travasky.com/airlines/air-cairo-SM',\n },\n },\n 'almasria-universal-airlines-UJ': {\n en: {\n title:\n 'Book The cheapest almasria universal airlines flights | Travasky',\n description:\n 'Book the cheapest almasria universal airlines flights tickets through Travasky, and get a unique booking. ✓ Find the lowest price ✓ 24/7 Customer Support.',\n keywords: 'almasria, universal, airlines',\n alternateHref:\n 'https://travasky.com/en/airlines/almasria-universal-airlines-UJ',\n hreflang: 'en-EG',\n canonical:\n 'https://travasky.com/en/airlines/almasria-universal-airlines-UJ',\n },\n ar: {\n title: 'حجز رحلات المصرية العالمية للطيران بأرخص الأسعار | ترافاسكاي',\n description:\n 'احجز أرخص تذاكر طيران على متن المصرية العالمية للطيران من خلال ترافاسكاي وتمتع بأفضل العروض. استمتع بخدمة عملاء متميزة وتجربة حجز سهلة وآمنة مع خيارات مرنة.',\n keywords:\n 'حجز طيران القاهرة, تذاكر طيران القاهرة, رحلات طيران القاهرة, عروض طيران القاهرة, ترافاسكاي طيران القاهرة',\n alternateHref:\n 'https://travasky.com/airlines/almasria-universal-airlines-UJ',\n hreflang: 'ar-EG',\n canonical:\n 'https://travasky.com/airlines/almasria-universal-airlines-UJ',\n },\n },\n 'egyptair-MS': {\n en: {\n title: 'Book the Cheapest EgyptAir Flights | Travasky',\n description:\n 'Get the lowest fares for EgyptAir flights through Travasky. Enjoy a hassle-free booking experience with the best flight deals.',\n keywords:\n 'EgyptAir flights, book EgyptAir, EgyptAir tickets, EgyptAir best deals, Travasky EgyptAir offers',\n alternateHref: 'https://travasky.com/en/airlines/egyptair-MS',\n hreflang: 'en-EG',\n canonical: 'https://travasky.com/en/airlines/egyptair-MS',\n },\n ar: {\n title: 'حجز أرخص رحلات مصر للطيران | ترافاسكاي',\n description:\n 'احجز أرخص تذاكر مصر للطيران عبر ترافاسكاي. استفد من أفضل الأسعار والخدمات المتميزة.',\n keywords:\n 'حجز مصر للطيران, تذاكر مصر للطيران, رحلات مصر للطيران, عروض مصر للطيران, ترافاسكاي مصر للطيران',\n alternateHref: 'https://travasky.com/airlines/egyptair-MS',\n hreflang: 'ar-EG',\n canonical: 'https://travasky.com/airlines/egyptair-MS',\n },\n },\n 'flyegypt-FT': {\n en: {\n title: 'Book the Cheapest FlyEgypt Flights | Travasky',\n description:\n 'Find the best deals on FlyEgypt flights with Travasky. Secure your booking with the lowest fares available.',\n keywords:\n 'FlyEgypt flights, book FlyEgypt, FlyEgypt tickets, FlyEgypt deals, Travasky FlyEgypt booking',\n alternateHref: 'https://travasky.com/en/airlines/flyegypt-FT',\n hreflang: 'en-EG',\n canonical: 'https://travasky.com/en/airlines/flyegypt-FT',\n },\n ar: {\n title: 'حجز أرخص رحلات فلاي ايجيبت | ترافاسكاي',\n description:\n 'احجز أرخص تذاكر فلاي ايجيبت عبر ترافاسكاي. استمتع بأفضل الأسعار والخدمات المتميزة.',\n keywords:\n 'حجز فلاي ايجيبت, تذاكر فلاي ايجيبت, رحلات فلاي ايجيبت, عروض فلاي ايجيبت, ترافاسكاي فلاي ايجيبت',\n alternateHref: 'https://travasky.com/airlines/flyegypt-FT',\n hreflang: 'ar-EG',\n canonical: 'https://travasky.com/airlines/flyegypt-FT',\n },\n },\n 'nile-air-NP': {\n en: {\n title: 'Book the Cheapest Nile Air Flights | Travasky',\n description:\n 'Get the lowest prices on Nile Air flights through Travasky. Book your next journey with confidence.',\n keywords:\n 'Nile Air flights, book Nile Air, Nile Air tickets, Nile Air deals, Travasky Nile Air booking',\n alternateHref: 'https://travasky.com/en/airlines/nile-air-NP',\n hreflang: 'en-EG',\n canonical: 'https://travasky.com/en/airlines/nile-air-NP',\n },\n ar: {\n title: 'حجز أرخص رحلات طيران النيل | ترافاسكاي',\n description:\n 'احجز أرخص تذاكر طيران النيل عبر ترافاسكاي. استمتع بأفضل الأسعار والخدمات الممتازة.',\n keywords:\n 'حجز طيران النيل, تذاكر طيران النيل, رحلات طيران النيل, عروض طيران النيل, ترافاسكاي طيران النيل',\n alternateHref: 'https://travasky.com/airlines/nile-air-NP',\n hreflang: 'ar-EG',\n canonical: 'https://travasky.com/airlines/nile-air-NP',\n },\n },\n 'wizz-air-W6': {\n en: {\n title: 'Book the Cheapest Wizz Air Flights | Travasky',\n description:\n 'Find the best prices on Wizz Air flights at Travasky. Book now and enjoy a smooth journey at the lowest fares.',\n keywords:\n 'Wizz Air flights, book Wizz Air, Wizz Air tickets, Wizz Air deals, Travasky Wizz Air booking',\n alternateHref: 'https://travasky.com/en/airlines/wizz-air-W6',\n hreflang: 'en-EG',\n canonical: 'https://travasky.com/en/airlines/wizz-air-W6',\n },\n ar: {\n title: 'حجز أرخص رحلات ويز اير | ترافاسكاي',\n description:\n 'احجز أرخص تذاكر ويز اير عبر ترافاسكاي. استفد من أفضل العروض والرحلات بأسعار مخفضة.',\n keywords:\n 'حجز ويز اير, تذاكر ويز اير, رحلات ويز اير, عروض ويز اير, ترافاسكاي ويز اير',\n alternateHref: 'https://travasky.com/airlines/wizz-air-W6',\n hreflang: 'ar-EG',\n canonical: 'https://travasky.com/airlines/wizz-air-W6',\n },\n },\n 'flynas-XY': {\n en: {\n title: 'Book the Cheapest Flynas Flights | Travasky',\n description:\n 'Book the cheapest Flynas flights tickets through Travasky, and get a unique booking. ✓ Find the lowest price ✓ 24/7 Customer Support.',\n keywords:\n 'Flynas flights, book Flynas, Flynas tickets, Flynas deals, Travasky Flynas booking',\n alternateHref: 'https://travasky.com/en/airlines/flynas-XY',\n hreflang: 'en-EG',\n canonical: 'https://travasky.com/en/airlines/flynas-XY',\n },\n ar: {\n title: 'حجز أرخص رحلات طيران ناس | ترافاسكاي',\n description:\n 'احجز أرخص تذاكر طيران ناس من خلال ترافاسكاي وتمتع بأفضل العروض. استمتع بخدمة عملاء متميزة وتجربة حجز سهلة وآمنة مع خيارات مرنة.',\n keywords:\n 'حجز طيران ناس, تذاكر طيران ناس, رحلات طيران ناس, عروض طيران ناس, ترافاسكاي طيران ناس',\n alternateHref: 'https://travasky.com/airlines/flynas-XY',\n hreflang: 'ar-EG',\n canonical: 'https://travasky.com/airlines/flynas-XY',\n },\n },\n 'saudia-airlines-SV': {\n en: {\n title: 'Book the Cheapest Saudia Airlines Flights | Travasky',\n description:\n 'Book the cheapest Saudia Airlines flights tickets through Travasky, and get a unique booking. ✓ Find the lowest price ✓ 24/7 Customer Support.',\n keywords:\n 'Saudia Airlines flights, book Saudia Airlines, Saudia Airlines tickets, Saudia Airlines deals, Travasky Saudia Airlines booking',\n alternateHref: 'https://travasky.com/en/airlines/saudia-airlines-SV',\n hreflang: 'en-EG',\n canonical: 'https://travasky.com/en/airlines/saudia-airlines-SV',\n },\n ar: {\n title: 'حجز أرخص رحلات الخطوط السعودية | ترافاسكاي',\n description:\n 'احجز أرخص تذاكر الخطوط السعودية من خلال ترافاسكاي وتمتع بأفضل العروض. استمتع بخدمة عملاء متميزة وتجربة حجز سهلة وآمنة مع خيارات مرنة.',\n keywords:\n 'حجز الخطوط السعودية, تذاكر الخطوط السعودية, رحلات الخطوط السعودية, عروض الخطوط السعودية, ترافاسكاي الخطوط السعودية',\n alternateHref: 'https://travasky.com/airlines/saudia-airlines-SV',\n hreflang: 'ar-EG',\n canonical: 'https://travasky.com/airlines/saudia-airlines-SV',\n },\n },\n 'air-arabia-G9': {\n en: {\n title: 'Book the Cheapest Air Arabia Flights | Travasky',\n description:\n 'Book the cheapest Air Arabia flights tickets through Travasky, and get a unique booking. ✓ Find the lowest price ✓ 24/7 Customer Support.',\n keywords:\n 'Air Arabia flights, book Air Arabia, Air Arabia tickets, Air Arabia deals, Travasky Air Arabia booking',\n alternateHref: 'https://travasky.com/en/airlines/air-arabia-G9',\n hreflang: 'en-EG',\n canonical: 'https://travasky.com/en/airlines/air-arabia-G9',\n },\n ar: {\n title: 'حجز أرخص رحلات طيران العربية | ترافاسكاي',\n description:\n 'احجز أرخص تذاكر طيران العربية من خلال ترافاسكاي وتمتع بأفضل العروض. استمتع بخدمة عملاء متميزة وتجربة حجز سهلة وآمنة مع خيارات مرنة.',\n keywords:\n 'حجز طيران العربية, تذاكر طيران العربية, رحلات طيران العربية, عروض طيران العربية, ترافاسكاي طيران العربية',\n alternateHref: 'https://travasky.com/airlines/air-arabia-G9',\n hreflang: 'ar-EG',\n canonical: 'https://travasky.com/airlines/air-arabia-G9',\n },\n },\n 'emirates-EK': {\n en: {\n title: 'Book the Cheapest Emirates Flights | Travasky',\n description:\n 'Book the cheapest Emirates flights tickets through Travasky, and get a unique booking. ✓ Find the lowest price ✓ 24/7 Customer Support.',\n keywords:\n 'Emirates flights, book Emirates, Emirates tickets, Emirates deals, Travasky Emirates booking',\n alternateHref: 'https://travasky.com/en/airlines/emirates-EK',\n hreflang: 'en-EG',\n canonical: 'https://travasky.com/en/airlines/emirates-EK',\n },\n ar: {\n title: 'حجز أرخص رحلات طيران الإمارات | ترافاسكاي',\n description:\n 'احجز أرخص تذاكر طيران الإمارات من خلال ترافاسكاي وتمتع بأفضل العروض. استمتع بخدمة عملاء متميزة وتجربة حجز سهلة وآمنة مع خيارات مرنة.',\n keywords:\n 'حجز طيران الإمارات, تذاكر طيران الإمارات, رحلات طيران الإمارات, عروض طيران الإمارات, ترافاسكاي طيران الإمارات',\n alternateHref: 'https://travasky.com/airlines/emirates-EK',\n hreflang: 'ar-EG',\n canonical: 'https://travasky.com/airlines/emirates-EK',\n },\n },\n };\n\n const airlineCode = route.split('/').pop() || '';\n return airlines[airlineCode]?.[lang] || null;\n }\n}\n","import { Component, Inject, PLATFORM_ID, OnInit, inject } from '@angular/core';\nimport { isPlatformBrowser } from '@angular/common';\nimport { TranslateService } from '@ngx-translate/core';\nimport { SeoService } from './shared/services/seo-service.service';\nimport { NavigationEnd, Router } from '@angular/router';\nimport { filter } from 'rxjs/operators';\nimport { EnvironmentService } from './shared/services/environment.service';\n\n@Component({\n selector: 'app-root',\n templateUrl: './app.component.html',\n styleUrls: ['./app.component.scss'],\n})\nexport class AppComponent implements OnInit {\n private isBrowser: boolean;\n env = inject(EnvironmentService);\n\n constructor(\n private translate: TranslateService,\n @Inject(PLATFORM_ID) private platformId: object,\n private router: Router,\n private seoService: SeoService,\n ) {\n this.isBrowser = isPlatformBrowser(this.platformId);\n }\n\n ngOnInit(): void {\n if (this.isBrowser) {\n const isInit = localStorage.getItem('init');\n\n if(!isInit) {\n localStorage.removeItem('departingAirports');\n localStorage.removeItem('landingAirports');\n localStorage.removeItem('hotelform');\n localStorage.removeItem('form');\n localStorage.setItem('init', '1');\n }\n }\n\n this.setLanguage();\n this.updateMetaTagsForInitialRoute();\n this.subscribeToRouterEvents();\n\n let envTravasky = {\n offlineSeats:\"http://41.223.55.14:7025\",\n searchflow: 'https://flightsearch.travasky.com',\n BookingFlow: 'https://flightflow.travasky.com',\n FareRules: 'https://flightprov.travasky.com',\n asm: 'https://backofficeapi.travasky.com',\n Apihotels: \"https://hotelsapi.travasky.com\",\n users: 'https://usersapi.travasky.com',\n admin: 'https://adminapi.travasky.com/',\n getDPayment: 'https://adminapi.travasky.com/',\n bookHotels: \"https://hotels.travasky.com\",\n prepay: 'https://prepayapi.travasky.com',\n backOffice: 'https://backofficeapi.travasky.com',\n FlightTop: 'https://flightsearch.travasky.com',\n offers: {\n getAll: 'http://41.215.243.36:7893/api/GetAllOffersAPI?POS=',\n getByID: 'http://41.215.243.36:7893/api/GetOfferByIdAPI?OfferId=',\n BookOffer: \"http://41.215.243.36:7895/api/BookOffer\",\n RetriveItineraryDetails:'/api/Admin/RetriveItineraryDetails'\n }\n }\n\n this.env.envConfiguration(envTravasky);\n }\n\n private setLanguage(): void {\n if (this.isBrowser) {\n const savedLang = localStorage.getItem('lang') || 'en';\n console.log('saved lang', savedLang)\n this.translate.use(savedLang);\n } else {\n this.translate.use('en');\n }\n }\n\n private updateMetaTagsForInitialRoute(): void {\n const urlSegments = this.router.url.split('/');\n const airlineCode = urlSegments[2]; // Assuming the URL is /airlines/:airlineCode\n const lang = this.isBrowser ? localStorage.getItem('lang') || 'en' : 'en';\n\n if (airlineCode) {\n this.seoService.updateMetaTags(airlineCode, lang);\n }\n }\n\n private subscribeToRouterEvents(): void {\n this.router.events\n .pipe(filter((event) => event instanceof NavigationEnd))\n .subscribe((event: NavigationEnd) => {\n if (this.isBrowser) {\n const lang = localStorage.getItem('lang') || 'en';\n const urlSegments = event.url.split('/');\n const airlineCode = urlSegments[2]; // Assuming the URL is /airlines/:airlineCode\n\n if (airlineCode) {\n this.seoService.updateMetaTags(airlineCode, lang);\n }\n }\n });\n }\n}\n","