{"version":3,"file":"CdeE1vEI.js","sources":["../../../../node_modules/.c12/github_comparaja_en_JEIltKnjEc/composables/useENJourneyStore.ts","../../../../node_modules/.c12/github_comparaja_en_JEIltKnjEc/composables/useENJourneyConfig.ts"],"sourcesContent":["import {\n AddressType,\n EnergyType,\n HouseUsage,\n CurrentElectricityContractedPower,\n CurrentGasTier,\n} from \"~/types/ENJourney\";\n\nexport const useENJourneyStore = defineStore(\"ENJourney\", () => {\n // Config Data\n const journeyId: Ref = ref();\n\n // Funnel Data\n const energyType: Ref = ref();\n const addressType: Ref = ref();\n const householdAdults: Ref = ref();\n const householdChildren: Ref = ref();\n const houseUsage: Ref = ref();\n const currentElectricityContractedPower: Ref<\n CurrentElectricityContractedPower | undefined\n > = ref();\n const unknownContractedPower: Ref = ref(false);\n const currentGasTier: Ref = ref();\n const unknownGasTier: Ref = ref(false);\n const currentElectricityProvider: Ref = ref();\n const currentGasProvider: Ref = ref();\n const fullName: Ref = ref();\n const phone: Ref = ref();\n const phoneCountryCode: Ref = ref(\"351\");\n const email: Ref = ref();\n const marketingOptIn: Ref = ref(false);\n\n return {\n journeyId,\n energyType,\n addressType,\n householdAdults,\n householdChildren,\n houseUsage,\n currentElectricityContractedPower,\n unknownContractedPower,\n currentGasTier,\n unknownGasTier,\n currentElectricityProvider,\n currentGasProvider,\n fullName,\n phone,\n phoneCountryCode,\n email,\n marketingOptIn,\n };\n});\n","import { useENJourneyStore } from \"./useENJourneyStore\";\n\nexport const useENJourneyBreadcrumbs = (\n location: \"funnel\" | \"results\" | \"checkout\"\n) => {\n const { t } = useI18n();\n\n return [\n {\n icon: \"m-cgg-icon--macro-step-funnel\",\n label: t(\"journey.breadcrumbs.funnel\"),\n status: (() => {\n switch (location) {\n case \"funnel\":\n return \"current\";\n\n default:\n return \"previous\";\n }\n })(),\n path: \"/energia/simular/dados-de-contacto\",\n },\n {\n icon: \"m-cgg-icon--macro-step-results\",\n label: t(\"journey.breadcrumbs.results\"),\n status: (() => {\n switch (location) {\n case \"funnel\":\n return \"next\";\n\n case \"results\":\n return \"current\";\n\n case \"checkout\":\n return \"previous\";\n }\n })(),\n },\n {\n icon: \"m-cgg-icon--macro-step-checkout\",\n label: t(\"journey.breadcrumbs.checkout\"),\n status: (() => {\n switch (location) {\n case \"checkout\":\n return \"current\";\n\n default:\n return \"next\";\n }\n })(),\n },\n {\n icon: \"m-cgg-icon--macro-step-contact\",\n label: t(\"journey.breadcrumbs.contact\"),\n status: \"next\",\n },\n ];\n};\n\nexport const useENFunnelStructure = () => {\n const store = useENJourneyStore();\n\n const structure = computed(() => {\n switch (store.energyType) {\n case \"electricity\":\n return [\n \"tipo-de-produto\",\n \"morada\",\n \"habitantes\",\n \"tempo-em-casa\",\n \"potencia-contratada\",\n \"comercializadora\",\n \"dados-de-contacto\",\n ];\n\n case \"gas\":\n return [\n \"tipo-de-produto\",\n \"morada\",\n \"habitantes\",\n \"tempo-em-casa\",\n \"escalao-gas\",\n \"comercializadora\",\n \"dados-de-contacto\",\n ];\n\n default:\n return [\n \"tipo-de-produto\",\n \"morada\",\n \"habitantes\",\n \"tempo-em-casa\",\n \"potencia-contratada\",\n \"escalao-gas\",\n \"comercializadora\",\n \"dados-de-contacto\",\n ];\n }\n });\n\n const steps = {\n \"tipo-de-produto\": {\n fields: [\"energyType\"],\n },\n morada: {\n fields: [\"addressType\"],\n },\n habitantes: {\n fields: [\"householdAdults\", \"householdChildren\"],\n },\n \"tempo-em-casa\": {\n fields: [\"houseUsage\"],\n },\n \"potencia-contratada\": {\n fields: [\"currentElectricityContractedPower\"],\n },\n \"escalao-gas\": {\n fields: [\"currentGasTier\"],\n },\n comercializadora: {\n fields: (() => {\n switch (store.energyType) {\n case \"electricity\":\n return [\"currentElectricityProvider\"];\n\n case \"gas\":\n return [\"currentGasProvider\"];\n\n default:\n return [\"currentElectricityProvider\", \"currentGasProvider\"];\n }\n })(),\n },\n \"dados-de-contacto\": {},\n };\n\n const currentRouteFields = computed(() => steps[currentRoute.value]?.fields);\n\n const currentRoute = computed(() => {\n const path = useRouter().currentRoute.value.path.split(\"/\");\n return path[path.length - 1];\n });\n\n const previousRoute = computed(() => structure.value[currentIndex.value - 1]);\n\n const nextRoute = computed(() => structure.value[currentIndex.value + 1]);\n\n const currentIndex = computed(() =>\n structure.value.indexOf(currentRoute.value)\n );\n\n const currentStep = computed(() => currentIndex.value + 1);\n\n const getStep = (stepRoute: string) =>\n structure.value.indexOf(stepRoute) >= 0\n ? structure.value.indexOf(stepRoute) + 1\n : undefined;\n\n const totalSteps = computed(() => structure.value.length);\n\n const transitionActive = ref(false);\n\n const goPrevStep = async () => {\n const route = useRoute();\n\n if (previousRoute.value) {\n transitionActive.value = true;\n\n await navigateTo({\n path: route.path.replace(currentRoute.value, previousRoute.value),\n query: route.query,\n });\n\n transitionActive.value = false;\n }\n };\n\n const goNextStep = async () => {\n const route = useRoute();\n\n if (nextRoute.value) {\n transitionActive.value = true;\n\n await navigateTo({\n path: route.path.replace(currentRoute.value, nextRoute.value),\n query: route.query,\n });\n\n transitionActive.value = false;\n }\n };\n\n return {\n steps,\n totalSteps,\n\n structure,\n currentRouteFields,\n\n currentRoute,\n previousRoute,\n nextRoute,\n\n currentStep,\n\n transitionActive,\n getStep,\n goPrevStep,\n goNextStep,\n };\n};\n\nexport const useENJourneyConfig = (\n location: \"funnel\" | \"results\" | \"checkout\"\n) => ({\n initialStep: \"/energia/simular/tipo-de-produto\",\n previousUrl: (() => {\n switch (location) {\n case \"results\":\n return \"/energia/simular/dados-de-contacto\";\n case \"checkout\":\n return \"/energia/resultados\";\n }\n })(),\n});\n"],"names":["useENJourneyStore","defineStore","journeyId","ref","energyType","addressType","householdAdults","householdChildren","houseUsage","currentElectricityContractedPower","unknownContractedPower","currentGasTier","unknownGasTier","currentElectricityProvider","currentGasProvider","fullName","phone","phoneCountryCode","email","marketingOptIn","useENJourneyBreadcrumbs","location","t","useI18n","useENFunnelStructure","store","structure","computed","steps","currentRouteFields","_a","currentRoute","path","useRouter","previousRoute","currentIndex","nextRoute","currentStep","getStep","stepRoute","totalSteps","transitionActive","route","useRoute","navigateTo","useENJourneyConfig"],"mappings":"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","x_google_ignoreList":[0,1]}