UNPKG

4.96 kBJavaScriptView Raw
1"use strict";
2
3var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
5Object.defineProperty(exports, "__esModule", {
6 value: true
7});
8exports["default"] = void 0;
9
10var _isMobileBrowser = _interopRequireDefault(require("@lskjs/utils/isMobileBrowser"));
11
12var _isCrappyIEBrowser = _interopRequireDefault(require("@lskjs/utils/isCrappyIEBrowser"));
13
14var isIcsUrl = function isIcsUrl(url) {
15 return url.startsWith('data') || url.startsWith('BEGIN');
16};
17
18var isBlobDownload = function isBlobDownload(url) {
19 return !(0, _isMobileBrowser["default"])() && isIcsUrl(url);
20};
21
22var _default = function _default(url) {
23 if (!isBlobDownload()) {
24 window.open(url, '_blank');
25 return;
26 }
27
28 var filename = 'download.ics';
29 var blob = new Blob([url], {
30 type: 'text/calendar;charset=utf-8'
31 });
32
33 if ((0, _isCrappyIEBrowser["default"])()) {
34 window.navigator.msSaveOrOpenBlob(blob, filename);
35 } else {
36 /** **************************************************************
37 // many browsers do not properly support downloading data URIs
38 // (even with "download" attribute in use) so this solution
39 // ensures the event will download cross-browser
40 *************************************************************** */
41 var link = document.createElement('a');
42 link.href = window.URL.createObjectURL(blob);
43 link.setAttribute('download', filename);
44 document.body.appendChild(link);
45 link.click();
46 document.body.removeChild(link);
47 }
48};
49
50exports["default"] = _default;
51//# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIi4uL3NyYy9kb3dubG9hZENhbGVuZGFyLmpzIl0sIm5hbWVzIjpbImlzSWNzVXJsIiwidXJsIiwic3RhcnRzV2l0aCIsImlzQmxvYkRvd25sb2FkIiwid2luZG93Iiwib3BlbiIsImZpbGVuYW1lIiwiYmxvYiIsIkJsb2IiLCJ0eXBlIiwibmF2aWdhdG9yIiwibXNTYXZlT3JPcGVuQmxvYiIsImxpbmsiLCJkb2N1bWVudCIsImNyZWF0ZUVsZW1lbnQiLCJocmVmIiwiVVJMIiwiY3JlYXRlT2JqZWN0VVJMIiwic2V0QXR0cmlidXRlIiwiYm9keSIsImFwcGVuZENoaWxkIiwiY2xpY2siLCJyZW1vdmVDaGlsZCJdLCJtYXBwaW5ncyI6Ijs7Ozs7Ozs7O0FBQUE7O0FBQ0E7O0FBRUEsSUFBTUEsUUFBUSxHQUFHLFNBQVhBLFFBQVcsQ0FBQ0MsR0FBRDtBQUFBLFNBQVNBLEdBQUcsQ0FBQ0MsVUFBSixDQUFlLE1BQWYsS0FBMEJELEdBQUcsQ0FBQ0MsVUFBSixDQUFlLE9BQWYsQ0FBbkM7QUFBQSxDQUFqQjs7QUFDQSxJQUFNQyxjQUFjLEdBQUcsU0FBakJBLGNBQWlCLENBQUNGLEdBQUQ7QUFBQSxTQUFTLENBQUMsa0NBQUQsSUFBc0JELFFBQVEsQ0FBQ0MsR0FBRCxDQUF2QztBQUFBLENBQXZCOztlQUVlLGtCQUFDQSxHQUFELEVBQVM7QUFDdEIsTUFBSSxDQUFDRSxjQUFjLEVBQW5CLEVBQXVCO0FBQ3JCQyxJQUFBQSxNQUFNLENBQUNDLElBQVAsQ0FBWUosR0FBWixFQUFpQixRQUFqQjtBQUNBO0FBQ0Q7O0FBQ0QsTUFBTUssUUFBUSxHQUFHLGNBQWpCO0FBQ0EsTUFBTUMsSUFBSSxHQUFHLElBQUlDLElBQUosQ0FBUyxDQUFDUCxHQUFELENBQVQsRUFBZ0I7QUFBRVEsSUFBQUEsSUFBSSxFQUFFO0FBQVIsR0FBaEIsQ0FBYjs7QUFFQSxNQUFJLG9DQUFKLEVBQXlCO0FBQ3ZCTCxJQUFBQSxNQUFNLENBQUNNLFNBQVAsQ0FBaUJDLGdCQUFqQixDQUFrQ0osSUFBbEMsRUFBd0NELFFBQXhDO0FBQ0QsR0FGRCxNQUVPO0FBQ0w7Ozs7O0FBS0EsUUFBTU0sSUFBSSxHQUFHQyxRQUFRLENBQUNDLGFBQVQsQ0FBdUIsR0FBdkIsQ0FBYjtBQUNBRixJQUFBQSxJQUFJLENBQUNHLElBQUwsR0FBWVgsTUFBTSxDQUFDWSxHQUFQLENBQVdDLGVBQVgsQ0FBMkJWLElBQTNCLENBQVo7QUFDQUssSUFBQUEsSUFBSSxDQUFDTSxZQUFMLENBQWtCLFVBQWxCLEVBQThCWixRQUE5QjtBQUNBTyxJQUFBQSxRQUFRLENBQUNNLElBQVQsQ0FBY0MsV0FBZCxDQUEwQlIsSUFBMUI7QUFDQUEsSUFBQUEsSUFBSSxDQUFDUyxLQUFMO0FBQ0FSLElBQUFBLFFBQVEsQ0FBQ00sSUFBVCxDQUFjRyxXQUFkLENBQTBCVixJQUExQjtBQUNEO0FBQ0YsQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCBpc01vYmlsZUJyb3dzZXIgZnJvbSAnQGxza2pzL3V0aWxzL2lzTW9iaWxlQnJvd3Nlcic7XG5pbXBvcnQgaXNDcmFwcHlJRUJyb3dzZXIgZnJvbSAnQGxza2pzL3V0aWxzL2lzQ3JhcHB5SUVCcm93c2VyJztcblxuY29uc3QgaXNJY3NVcmwgPSAodXJsKSA9PiB1cmwuc3RhcnRzV2l0aCgnZGF0YScpIHx8IHVybC5zdGFydHNXaXRoKCdCRUdJTicpO1xuY29uc3QgaXNCbG9iRG93bmxvYWQgPSAodXJsKSA9PiAhaXNNb2JpbGVCcm93c2VyKCkgJiYgaXNJY3NVcmwodXJsKTtcblxuZXhwb3J0IGRlZmF1bHQgKHVybCkgPT4ge1xuICBpZiAoIWlzQmxvYkRvd25sb2FkKCkpIHtcbiAgICB3aW5kb3cub3Blbih1cmwsICdfYmxhbmsnKTtcbiAgICByZXR1cm47XG4gIH1cbiAgY29uc3QgZmlsZW5hbWUgPSAnZG93bmxvYWQuaWNzJztcbiAgY29uc3QgYmxvYiA9IG5ldyBCbG9iKFt1cmxdLCB7IHR5cGU6ICd0ZXh0L2NhbGVuZGFyO2NoYXJzZXQ9dXRmLTgnIH0pO1xuXG4gIGlmIChpc0NyYXBweUlFQnJvd3NlcigpKSB7XG4gICAgd2luZG93Lm5hdmlnYXRvci5tc1NhdmVPck9wZW5CbG9iKGJsb2IsIGZpbGVuYW1lKTtcbiAgfSBlbHNlIHtcbiAgICAvKiogKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKipcbiAgICAgLy8gbWFueSBicm93c2VycyBkbyBub3QgcHJvcGVybHkgc3VwcG9ydCBkb3dubG9hZGluZyBkYXRhIFVSSXNcbiAgICAgIC8vIChldmVuIHdpdGggXCJkb3dubG9hZFwiIGF0dHJpYnV0ZSBpbiB1c2UpIHNvIHRoaXMgc29sdXRpb25cbiAgICAgIC8vIGVuc3VyZXMgdGhlIGV2ZW50IHdpbGwgZG93bmxvYWQgY3Jvc3MtYnJvd3NlclxuICAgICAgKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqKioqICovXG4gICAgY29uc3QgbGluayA9IGRvY3VtZW50LmNyZWF0ZUVsZW1lbnQoJ2EnKTtcbiAgICBsaW5rLmhyZWYgPSB3aW5kb3cuVVJMLmNyZWF0ZU9iamVjdFVSTChibG9iKTtcbiAgICBsaW5rLnNldEF0dHJpYnV0ZSgnZG93bmxvYWQnLCBmaWxlbmFtZSk7XG4gICAgZG9jdW1lbnQuYm9keS5hcHBlbmRDaGlsZChsaW5rKTtcbiAgICBsaW5rLmNsaWNrKCk7XG4gICAgZG9jdW1lbnQuYm9keS5yZW1vdmVDaGlsZChsaW5rKTtcbiAgfVxufTtcbiJdfQ==
52//# sourceMappingURL=downloadCalendar.js.map
\No newline at end of file