{"version":3,"file":"ShareStore-DzG5DR0a.js","sources":["../../Vue/src/stores/ShareStore.ts"],"sourcesContent":["export const useShareStore = defineStore(\"share\", () => {\r\n const toast = useToastStore();\r\n const debug = useDebug();\r\n const modals = useModalStore();\r\n const { t } = useI18n();\r\n const data = ref<{\r\n blob: Blob;\r\n filename: string;\r\n type: string;\r\n text: string;\r\n title: string;\r\n } | null>(null);\r\n\r\n /**\r\n * There is currently an issue with share especially on iOS and other async operations.\r\n * The share will not work well if there's significant delay between the user interaction and when the navigation.share api is called.\r\n * It's especially apparent on slighly older iOS devices (i.e. iOS 15 )\r\n *\r\n *\r\n * The work around for now is when that occurs, prompt the user to interact one more time to share.\r\n */\r\n\r\n async function shareFile(text: string, filename: string, fileType: string) {\r\n const blob = new Blob([text], { type: fileType });\r\n const file = new File([blob], filename, { type: fileType });\r\n try {\r\n await navigator.share({ files: [file] });\r\n } catch (err) {\r\n debug.log(\"Share did not work\", err);\r\n if (!(err as Error).message.includes(\"AbortError\")) {\r\n toast.errorToast(t(\"SV.MES_BlockedShareRequest\"));\r\n }\r\n }\r\n }\r\n\r\n async function fetchUrlPdfAndShare(\r\n url: string,\r\n filename: string,\r\n shareTitle: string,\r\n shareText: string,\r\n ) {\r\n const response = await fetch(url);\r\n const blob = await response.blob();\r\n const file = new File([blob], filename, { type: \"application/pdf\" });\r\n const data = { files: [file], title: shareTitle, text: shareText };\r\n try {\r\n await navigator.share(data);\r\n } catch (err) {\r\n debug.log(\"Share did not work\", err);\r\n if (!(err as string).toString().includes(\"AbortError\")) {\r\n showShareModal({\r\n blob: blob,\r\n filename: filename,\r\n text: shareText,\r\n title: shareTitle,\r\n type: \"application/pdf\",\r\n });\r\n }\r\n }\r\n }\r\n\r\n async function shareBlob(\r\n blob: Blob,\r\n filename: string,\r\n fileType: string,\r\n shareTitle: string,\r\n shareText: string,\r\n ) {\r\n const file = new File([blob], filename, { type: fileType });\r\n const data = { files: [file], title: shareTitle, text: shareText };\r\n try {\r\n await navigator.share(data);\r\n } catch (err) {\r\n debug.log(\"Share did not work\", err);\r\n if (!(err as string).toString().includes(\"AbortError\")) {\r\n toast.errorToast(t(\"SV.MES_BlockedShareRequest\"));\r\n }\r\n }\r\n }\r\n\r\n function shareTextFile(text: string, filename: string) {\r\n shareFile(text, filename + \".txt\", \"text/plain\");\r\n }\r\n\r\n async function share() {\r\n if (!data.value) {\r\n return;\r\n }\r\n await shareBlob(\r\n data.value.blob,\r\n data.value.filename,\r\n data.value.type,\r\n data.value.title,\r\n data.value.text,\r\n );\r\n }\r\n\r\n function showShareModal(_data: {\r\n blob: Blob;\r\n filename: string;\r\n type: string;\r\n text: string;\r\n title: string;\r\n }) {\r\n data.value = _data;\r\n modals.showModal(\"ShareModal\");\r\n }\r\n\r\n return {\r\n shareFile,\r\n shareBlob,\r\n shareTextFile,\r\n fetchUrlPdfAndShare,\r\n data,\r\n share,\r\n };\r\n});\r\n"],"names":["useShareStore","defineStore","toast","useToastStore","debug","useDebug","modals","useModalStore","t","useI18n","data","ref","shareFile","text","filename","fileType","blob","file","err","fetchUrlPdfAndShare","url","shareTitle","shareText","showShareModal","shareBlob","shareTextFile","share","_data"],"mappings":"kJAAa,MAAAA,EAAgBC,EAAY,QAAS,IAAM,CACtD,MAAMC,EAAQC,IACRC,EAAQC,IACRC,EAASC,IACT,CAAE,EAAAC,GAAMC,EAAAA,UACRC,EAAOC,EAMH,IAAI,EAWC,eAAAC,EAAUC,EAAcC,EAAkBC,EAAkB,CACnE,MAAAC,EAAO,IAAI,KAAK,CAACH,CAAI,EAAG,CAAE,KAAME,CAAA,CAAU,EAC1CE,EAAO,IAAI,KAAK,CAACD,CAAI,EAAGF,EAAU,CAAE,KAAMC,CAAA,CAAU,EACtD,GAAA,CACF,MAAM,UAAU,MAAM,CAAE,MAAO,CAACE,CAAI,EAAG,QAChCC,EAAK,CACNd,EAAA,IAAI,qBAAsBc,CAAG,EAC7BA,EAAc,QAAQ,SAAS,YAAY,GACzChB,EAAA,WAAWM,EAAE,4BAA4B,CAAC,CAEpD,CACF,CAEA,eAAeW,EACbC,EACAN,EACAO,EACAC,EACA,CAEM,MAAAN,EAAO,MADI,MAAM,MAAMI,CAAG,GACJ,OAEtBV,EAAO,CAAE,MAAO,CADT,IAAI,KAAK,CAACM,CAAI,EAAGF,EAAU,CAAE,KAAM,iBAAA,CAAmB,CACxC,EAAG,MAAOO,EAAY,KAAMC,GACnD,GAAA,CACI,MAAA,UAAU,MAAMZ,CAAI,QACnBQ,EAAK,CACNd,EAAA,IAAI,qBAAsBc,CAAG,EAC7BA,EAAe,SAAW,EAAA,SAAS,YAAY,GACpCK,EAAA,CACb,KAAAP,EACA,SAAAF,EACA,KAAMQ,EACN,MAAOD,EACP,KAAM,iBAAA,CACP,CAEL,CACF,CAEA,eAAeG,EACbR,EACAF,EACAC,EACAM,EACAC,EACA,CAEMZ,MAAAA,EAAO,CAAE,MAAO,CADT,IAAI,KAAK,CAACM,CAAI,EAAGF,EAAU,CAAE,KAAMC,CAAA,CAAU,CAC/B,EAAG,MAAOM,EAAY,KAAMC,GACnD,GAAA,CACI,MAAA,UAAU,MAAMZ,CAAI,QACnBQ,EAAK,CACNd,EAAA,IAAI,qBAAsBc,CAAG,EAC7BA,EAAe,SAAW,EAAA,SAAS,YAAY,GAC7ChB,EAAA,WAAWM,EAAE,4BAA4B,CAAC,CAEpD,CACF,CAES,SAAAiB,EAAcZ,EAAcC,EAAkB,CAC3CF,EAAAC,EAAMC,EAAW,OAAQ,YAAY,CACjD,CAEA,eAAeY,GAAQ,CAChBhB,EAAK,OAGJ,MAAAc,EACJd,EAAK,MAAM,KACXA,EAAK,MAAM,SACXA,EAAK,MAAM,KACXA,EAAK,MAAM,MACXA,EAAK,MAAM,IAAA,CAEf,CAEA,SAASa,EAAeI,EAMrB,CACDjB,EAAK,MAAQiB,EACbrB,EAAO,UAAU,YAAY,CAC/B,CAEO,MAAA,CACL,UAAAM,EACA,UAAAY,EACA,cAAAC,EACA,oBAAAN,EACA,KAAAT,EACA,MAAAgB,CAAA,CAEJ,CAAC"}