{"version":3,"file":"actions-7G0Djizc.js","sources":["../../../app/frontend/entrypoints/actions.js"],"sourcesContent":["import 'vue3-toastify/dist/index.css';\nimport { toast } from 'vue3-toastify';\nimport Client from '@/utils/client';\nimport { recordActivity } from '@/utils/activity';\nimport ToastMsg from '@/components/feedback/ToastMsg.vue';\nimport { h } from 'vue';\n\nfunction notifyError(text, position=toast.POSITION.BOTTOM_RIGHT) {\n const props = {\n title: \"Error!\",\n message: text,\n };\n\n toast.error(h(ToastMsg, props), { position }); \n}\n\nfunction notifySuccess(text, position=toast.POSITION.BOTTOM_RIGHT) {\n const props = {\n title: \"Success!\",\n message: text,\n };\n\n toast.success(h(ToastMsg, props), { position }); \n}\n\nasync function copyAction(element) {\n const copy = element.dataset.copy;\n await navigator.clipboard.writeText(copy);\n}\n\nfunction toggleElement(selector) {\n const element = document.querySelector(selector);\n element.open = !element.open;\n}\n\ndocument.querySelectorAll('[data-action]').forEach((element) => {\n const action = element.dataset.action;\n\n switch (action) {\n case 'copy':\n element.onclick = async () => {\n await copyAction(element);\n notifySuccess(`\"${copy}\" Copied to clipboard`)\n };\n break;\n\n case 'copy-email':\n element.onclick = async () => {\n await copyAction(element)\n notifySuccess(\"Email copied to clipboard\");\n recordActivity(\"Copy email\");\n };\n break;\n \n\n case 'share-link':\n element.onclick = async () => {\n const data = { id: element.dataset.id };\n const response = await Client.post(\"share_link\", data);\n\n if (response.status != 200) {\n return notifyError(\"Unable to copy profile link\");\n }\n \n const json = await response.json();\n\n const url = location.origin + location.pathname + `?code=${json.code}`;\n await navigator.clipboard.writeText(url);\n\n notifySuccess(\"Profile link copied!\");\n recordActivity(\"Click on share\");\n };\n\n break;\n\n case 'record-activity':\n element.onclick = async () => {\n recordActivity(element.dataset.activity);\n };\n\n break;\n\n case 'toggle-dialog':\n element.addEventListener('click', async (e) => {\n e.stopPropagation();\n toggleElement(element.dataset.target);\n document.querySelector(\"body\").style.overflow = dialog.open ? \"hidden\": null;\n });\n\n break;\n\n case 'toggle-details':\n element.addEventListener('click', async (e) => {\n e.preventDefault();\n toggleElement(element.dataset.target);\n });\n\n break;\n } \n});"],"names":["notifyError","text","position","toast","props","h","ToastMsg","notifySuccess","copyAction","element","copy","toggleElement","selector","recordActivity","data","response","Client","json","url","e"],"mappings":"yUAOA,SAASA,EAAYC,EAAMC,EAASC,EAAM,SAAS,aAAc,CAC7D,MAAMC,EAAQ,CACV,MAAO,SACP,QAASH,CACjB,EAEIE,EAAM,MAAME,EAAEC,EAAUF,CAAK,EAAG,CAAE,SAAAF,CAAQ,CAAE,CAChD,CAEA,SAASK,EAAcN,EAAMC,EAASC,EAAM,SAAS,aAAc,CAC/D,MAAMC,EAAQ,CACV,MAAO,WACP,QAASH,CACjB,EAEIE,EAAM,QAAQE,EAAEC,EAAUF,CAAK,EAAG,CAAE,SAAAF,CAAQ,CAAE,CAClD,CAEA,eAAeM,EAAWC,EAAS,CAC/B,MAAMC,EAAOD,EAAQ,QAAQ,KAC7B,MAAM,UAAU,UAAU,UAAUC,CAAI,CAC5C,CAEA,SAASC,EAAcC,EAAU,CAC7B,MAAMH,EAAU,SAAS,cAAcG,CAAQ,EAC/CH,EAAQ,KAAO,CAACA,EAAQ,IAC5B,CAEA,SAAS,iBAAiB,eAAe,EAAE,QAASA,GAAY,CAG5D,OAFeA,EAAQ,QAAQ,OAEjB,CACV,IAAK,OACDA,EAAQ,QAAU,SAAY,CAC1B,MAAMD,EAAWC,CAAO,EACxBF,EAAc,IAAI,IAAI,uBAAuB,CAC7D,EACY,MAEJ,IAAK,aACDE,EAAQ,QAAU,SAAY,CAC1B,MAAMD,EAAWC,CAAO,EACxBF,EAAc,2BAA2B,EACzCM,EAAe,YAAY,CAC3C,EACY,MAGJ,IAAK,aACDJ,EAAQ,QAAU,SAAY,CAC1B,MAAMK,EAAO,CAAE,GAAIL,EAAQ,QAAQ,EAAE,EAC/BM,EAAW,MAAMC,EAAO,KAAK,aAAcF,CAAI,EAErD,GAAIC,EAAS,QAAU,IACnB,OAAOf,EAAY,6BAA6B,EAGpD,MAAMiB,EAAO,MAAMF,EAAS,OAEtBG,EAAM,SAAS,OAAS,SAAS,SAAW,SAASD,EAAK,IAAI,GACpE,MAAM,UAAU,UAAU,UAAUC,CAAG,EAEvCX,EAAc,sBAAsB,EACpCM,EAAe,gBAAgB,CAC/C,EAEY,MAEJ,IAAK,kBACDJ,EAAQ,QAAU,SAAY,CAC1BI,EAAeJ,EAAQ,QAAQ,QAAQ,CACvD,EAEY,MAEJ,IAAK,gBACDA,EAAQ,iBAAiB,QAAS,MAAOU,GAAM,CAC3CA,EAAE,gBAAe,EACjBR,EAAcF,EAAQ,QAAQ,MAAM,EACpC,SAAS,cAAc,MAAM,EAAE,MAAM,SAAW,OAAO,KAAO,SAAU,IACxF,CAAa,EAED,MAEJ,IAAK,iBACDA,EAAQ,iBAAiB,QAAS,MAAOU,GAAM,CAC3CA,EAAE,eAAc,EAChBR,EAAcF,EAAQ,QAAQ,MAAM,CACpD,CAAa,EAED,KACP,CACL,CAAC"}