{"version":3,"file":"Br5Z77_Y.js","sources":["../../../../components/blog/SearchHeaderForm.vue","../../../../composables/storyblok/useSearchPosts.ts"],"sourcesContent":["\n \n \n \n \n \n {{ t(\"subtitle\") }}\n \n \n {{ t(\"title\") }}\n \n \n {{ t(\"description\") }}\n \n \n \n $emit('update:searchTerm', v)\"\n />\n \n \n \n \n\n\n\n\n\n\n\n{\n \"pt\": {\n \"subtitle\": \"Blog\",\n \"title\": \"Tempo & Dinheiro\",\n \"description\": \"Dicas, artigos e ferramentas para gerir as tuas finanças pessoais de forma inteligente.\",\n \"input\": {\n \"search\": {\n \"placeholder\": \"Pesquisa um tópico\"\n }\n }\n }\n}\n\n","import { Post } from \"@/types/Post\";\nimport { Status } from \"~/types/CustomFetch\";\nimport { mapResultToPosts } from \"~/utils/storyblok/mapResultToPosts\";\n\nexport const useSearchPosts = (\n searchTerm: Ref,\n searchTag?: Ref\n) => {\n const status: Ref = ref(\"idle\");\n const { storyblokVersion } = useRuntimeConfig().public;\n\n const posts: Ref = ref([]);\n const page = ref(1);\n const totalPages = ref(0);\n const nFound = ref(0);\n\n let timer: any;\n\n watch(\n [page, searchTerm],\n () => {\n status.value = \"pending\";\n\n clearTimeout(timer);\n timer = setTimeout(() => {\n useStoryblokApi()\n .getStories(\n (() => {\n const options: any = {\n version: storyblokVersion as \"draft\" | \"published\",\n content_type: \"post\",\n page: page.value,\n per_page: 12,\n resolve_links: \"url\",\n resolve_relations: [\"post.author\", \"post.specialist\"],\n filter_query: {\n postType: {\n in: \"post\",\n },\n },\n };\n\n if (searchTerm.value) {\n options.search_term = searchTerm.value;\n options.filter_query.title = {\n like: `*${searchTerm.value}*`,\n };\n } else if (searchTag?.value) {\n options.with_tag = searchTag.value;\n options.sort_by = \"first_published_at:desc\";\n }\n\n return options;\n })()\n )\n .then((r) => {\n const mappedResult = mapResultToPosts(r);\n\n posts.value = mappedResult.posts;\n totalPages.value = mappedResult.totalPages;\n nFound.value = r.total;\n\n status.value = \"success\";\n })\n .catch(() => {\n status.value = \"error\";\n });\n }, 500);\n },\n {\n immediate: searchTerm.value || searchTag?.value ? true : false,\n }\n );\n\n return {\n status,\n posts,\n page,\n totalPages,\n nFound,\n };\n};\n"],"names":["t","useI18n","searchTerm","ref","__props","useSearchPosts","searchTag","status","storyblokVersion","useRuntimeConfig","posts","page","totalPages","nFound","timer","watch","useStoryblokApi","options","r","mappedResult","mapResultToPosts"],"mappings":"iXA8BM,KAAA,CAAE,EAAAA,CAAE,EAAIC,EAAQ,EAMhBC,EAAaC,EAJLC,EAIe,QAAU,EAAE,2/BChC5BC,EAAiB,CAC5BH,EACAI,IACG,CACG,MAAAC,EAAsBJ,EAAI,MAAM,EAChC,CAAE,iBAAAK,CAAA,EAAqBC,EAAA,EAAmB,OAE1CC,EAAqBP,EAAI,EAAE,EAC3BQ,EAAOR,EAAI,CAAC,EACZS,EAAaT,EAAI,CAAC,EAClBU,EAASV,EAAI,CAAC,EAEhB,IAAAW,EAEJ,OAAAC,EACE,CAACJ,EAAMT,CAAU,EACjB,IAAM,CACJK,EAAO,MAAQ,UAEf,aAAaO,CAAK,EAClBA,EAAQ,WAAW,IAAM,CACvBE,EACG,EAAA,YACE,IAAM,CACL,MAAMC,EAAe,CACnB,QAAST,EACT,aAAc,OACd,KAAMG,EAAK,MACX,SAAU,GACV,cAAe,MACf,kBAAmB,CAAC,cAAe,iBAAiB,EACpD,aAAc,CACZ,SAAU,CACR,GAAI,MAAA,CACN,CAEJ,EAEA,OAAIT,EAAW,OACbe,EAAQ,YAAcf,EAAW,MACjCe,EAAQ,aAAa,MAAQ,CAC3B,KAAM,IAAIf,EAAW,KAAK,GAC5B,GACSI,GAAA,MAAAA,EAAW,QACpBW,EAAQ,SAAWX,EAAU,MAC7BW,EAAQ,QAAU,2BAGbA,CACN,GAAA,CAAA,EAEJ,KAAMC,GAAM,CACL,MAAAC,EAAeC,EAAiBF,CAAC,EAEvCR,EAAM,MAAQS,EAAa,MAC3BP,EAAW,MAAQO,EAAa,WAChCN,EAAO,MAAQK,EAAE,MAEjBX,EAAO,MAAQ,SAAA,CAChB,EACA,MAAM,IAAM,CACXA,EAAO,MAAQ,OAAA,CAChB,GACF,GAAG,CACR,EACA,CACE,UAAW,GAAAL,EAAW,OAASI,GAAA,MAAAA,EAAW,MAAe,CAE7D,EAEO,CACL,OAAAC,EACA,MAAAG,EACA,KAAAC,EACA,WAAAC,EACA,OAAAC,CACF,CACF"}
\n {{ t(\"description\") }}\n