UNPKG

2.51 kBSource Map (JSON)View Raw
1{"version":3,"sources":["../src/downloadCalendar.js"],"names":["isIcsUrl","url","startsWith","isBlobDownload","window","open","filename","blob","Blob","type","navigator","msSaveOrOpenBlob","link","document","createElement","href","URL","createObjectURL","setAttribute","body","appendChild","click","removeChild"],"mappings":";;;;;;;;;AAAA;;AACA;;AAEA,IAAMA,QAAQ,GAAG,SAAXA,QAAW,CAACC,GAAD;AAAA,SAASA,GAAG,CAACC,UAAJ,CAAe,MAAf,KAA0BD,GAAG,CAACC,UAAJ,CAAe,OAAf,CAAnC;AAAA,CAAjB;;AACA,IAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACF,GAAD;AAAA,SAAS,CAAC,kCAAD,IAAsBD,QAAQ,CAACC,GAAD,CAAvC;AAAA,CAAvB;;eAEe,kBAACA,GAAD,EAAS;AACtB,MAAI,CAACE,cAAc,EAAnB,EAAuB;AACrBC,IAAAA,MAAM,CAACC,IAAP,CAAYJ,GAAZ,EAAiB,QAAjB;AACA;AACD;;AACD,MAAMK,QAAQ,GAAG,cAAjB;AACA,MAAMC,IAAI,GAAG,IAAIC,IAAJ,CAAS,CAACP,GAAD,CAAT,EAAgB;AAAEQ,IAAAA,IAAI,EAAE;AAAR,GAAhB,CAAb;;AAEA,MAAI,oCAAJ,EAAyB;AACvBL,IAAAA,MAAM,CAACM,SAAP,CAAiBC,gBAAjB,CAAkCJ,IAAlC,EAAwCD,QAAxC;AACD,GAFD,MAEO;AACL;;;;;AAKA,QAAMM,IAAI,GAAGC,QAAQ,CAACC,aAAT,CAAuB,GAAvB,CAAb;AACAF,IAAAA,IAAI,CAACG,IAAL,GAAYX,MAAM,CAACY,GAAP,CAAWC,eAAX,CAA2BV,IAA3B,CAAZ;AACAK,IAAAA,IAAI,CAACM,YAAL,CAAkB,UAAlB,EAA8BZ,QAA9B;AACAO,IAAAA,QAAQ,CAACM,IAAT,CAAcC,WAAd,CAA0BR,IAA1B;AACAA,IAAAA,IAAI,CAACS,KAAL;AACAR,IAAAA,QAAQ,CAACM,IAAT,CAAcG,WAAd,CAA0BV,IAA1B;AACD;AACF,C","sourcesContent":["import isMobileBrowser from '@lskjs/utils/isMobileBrowser';\nimport isCrappyIEBrowser from '@lskjs/utils/isCrappyIEBrowser';\n\nconst isIcsUrl = (url) => url.startsWith('data') || url.startsWith('BEGIN');\nconst isBlobDownload = (url) => !isMobileBrowser() && isIcsUrl(url);\n\nexport default (url) => {\n if (!isBlobDownload()) {\n window.open(url, '_blank');\n return;\n }\n const filename = 'download.ics';\n const blob = new Blob([url], { type: 'text/calendar;charset=utf-8' });\n\n if (isCrappyIEBrowser()) {\n window.navigator.msSaveOrOpenBlob(blob, filename);\n } else {\n /** **************************************************************\n // many browsers do not properly support downloading data URIs\n // (even with \"download\" attribute in use) so this solution\n // ensures the event will download cross-browser\n *************************************************************** */\n const link = document.createElement('a');\n link.href = window.URL.createObjectURL(blob);\n link.setAttribute('download', filename);\n document.body.appendChild(link);\n link.click();\n document.body.removeChild(link);\n }\n};\n"],"file":"downloadCalendar.js"}
\No newline at end of file