{"version":3,"sources":["wwwroot/scripts/youli.common.calendar.js"],"names":["MS_IN_MINUTES","formatTime","date","toISOString","replace","getURLGoogle","event","startTime","start","endTime","end","encodeURI","title","description","address","join","getURLYahoo","eventDuration","getTime","yahooEventDuration","Math","floor","st","getURLICS","components","validParams","params","undefined","data","getAddToCalendarURL","type","toLowerCase","console","log"],"mappings":"AAAA,IAAAA,cAAA,IAEAC,WAAA,SAAAC,GACA,OAAAA,EAAAC,cAAAC,QAAA,aAAA,KAGAC,aAAA,SAAAC,GACA,IAAAC,EAAAN,WAAAK,EAAAE,OACAC,EAAAR,WAAAK,EAAAI,KAEA,OAAAC,WACA,yCACA,mBACA,UAAAL,EAAAM,OAAA,IACA,WAAAL,GAAA,IACA,KAAAE,GAAA,IACA,aAAAH,EAAAO,aAAA,IACA,cAAAP,EAAAQ,SAAA,IACA,uBACAC,KAAA,MAGAC,YAAA,SAAAV,GACA,IAAAW,GAAAX,EAAAI,IAAAQ,UAAAZ,EAAAE,MAAAU,WAAAlB,cAWAmB,GARAF,EAAA,IACA,IAAAG,KAAAC,MAAAJ,EAAA,IACAG,KAAAC,MAAAJ,EAAA,IAAA,KAEAA,EAAA,GAAA,GACA,IAAAA,EAAA,GACAA,EAAA,GAAA,IAQAK,EAAArB,WAAAK,EAAAE,OAEA,OAAAG,WACA,iDACA,WAAAL,EAAAM,OAAA,IACA,OAAAU,EACA,SAAAH,GAAA,IACA,UAAAb,EAAAO,aAAA,IACA,YAAAP,EAAAQ,SAAA,KACAC,KAAA,MAGAQ,UAAA,SAAAjB,GACA,IAAAC,EAAAN,WAAAK,EAAAE,OACAC,EAAAR,WAAAK,EAAAI,KAEA,MAAAc,GACA,kBACA,cACA,eAEA,YAAAjB,GAAA,IACA,UAAAE,GAAA,IACA,YAAAH,EAAAM,OAAA,IACA,gBAAAN,EAAAO,aAAA,IACA,aAAAP,EAAAQ,SAAA,IACA,aACA,iBAGA,OAAAH,6CAAAa,EAAAT,KAAA,UAIAU,YAAA,SAAAC,GACA,YAAAC,IAAAD,EAAAE,WAAAD,IAAAD,EAAAE,KAAApB,YAAAmB,IAAAD,EAAAE,KAAAlB,KAGAmB,oBAAA,SAAAH,GACA,GAAAD,YAAAC,GAKA,OAAAA,EAAAI,KAAAC,eACA,IAAA,SACA,OAAA1B,aAAAqB,EAAAE,MACA,IAAA,QACA,OAAAZ,YAAAU,EAAAE,MACA,IAAA,UAEA,IAAA,OACA,OAAAL,UAAAG,EAAAE,MACA,QACA,MAAA,QAdAI,QAAAC,IAAA,kCAkBAJ","file":"youli.common.calendar.min.js","sourcesContent":["let MS_IN_MINUTES = 60 * 1000;\r\n\r\nlet formatTime = function (date) {\r\n return date.toISOString().replace(/-|:|\\.\\d+/g, '');\r\n};\r\n\r\nlet getURLGoogle = function (event) {\r\n let startTime = formatTime(event.start);\r\n let endTime = formatTime(event.end);\r\n\r\n return encodeURI([\r\n 'https://www.google.com/calendar/render',\r\n '?action=TEMPLATE',\r\n '&text=' + (event.title || ''),\r\n '&dates=' + (startTime || ''),\r\n '/' + (endTime || ''),\r\n '&details=' + (event.description || ''),\r\n '&location=' + (event.address || ''),\r\n '&sprop=&sprop=name:'\r\n ].join(''));\r\n}\r\n\r\nlet getURLYahoo = function (event) {\r\n let eventDuration = ((event.end.getTime() - event.start.getTime()) / MS_IN_MINUTES);\r\n\r\n // Yahoo dates are crazy, we need to convert the duration from minutes to hh:mm\r\n let yahooHourDuration = eventDuration < 600 ?\r\n '0' + Math.floor((eventDuration / 60)) :\r\n Math.floor((eventDuration / 60)) + '';\r\n\r\n let yahooMinuteDuration = eventDuration % 60 < 10 ?\r\n '0' + eventDuration % 60 :\r\n eventDuration % 60 + '';\r\n\r\n let yahooEventDuration = yahooHourDuration + yahooMinuteDuration;\r\n\r\n // Remove timezone from event time\r\n //let st = formatTime(new Date(event.start - (event.start.getTimezoneOffset() *\r\n // MS_IN_MINUTES))) || '';\r\n\r\n let st = formatTime(event.start);\r\n\r\n return encodeURI([\r\n 'http://calendar.yahoo.com/?v=60&view=d&type=20',\r\n '&title=' + (event.title || ''),\r\n '&st=' + st,\r\n '&dur=' + (yahooEventDuration || ''),\r\n '&desc=' + (event.description || ''),\r\n '&in_loc=' + (event.address || '')\r\n ].join(''));\r\n}\r\n\r\nlet getURLICS = function (event) {\r\n let startTime = formatTime(event.start);\r\n let endTime = formatTime(event.end);\r\n\r\n const components = [\r\n \"BEGIN:VCALENDAR\",\r\n \"VERSION:2.0\",\r\n \"BEGIN:VEVENT\",\r\n //`URL:${document.URL}`,\r\n 'DTSTART:' + (startTime || ''),\r\n 'DTEND:' + (endTime || ''),\r\n 'SUMMARY:' + (event.title || ''),\r\n 'DESCRIPTION:' + (event.description || ''),\r\n 'LOCATION:' + (event.address || ''),\r\n \"END:VEVENT\",\r\n \"END:VCALENDAR\"\r\n ];\r\n\r\n return encodeURI(`data:text/calendar;charset=utf8,${components.join(\"\\n\")}`);\r\n}\r\n\r\n// Make sure we have the necessary event data, such as start time and end time\r\nlet validParams = function (params) {\r\n return params.data !== undefined && params.data.start !== undefined && params.data.end !== undefined;\r\n};\r\n\r\nlet getAddToCalendarURL = function (params) {\r\n if (!validParams(params)) {\r\n console.log('Event details missing.');\r\n return;\r\n }\r\n\r\n switch (params.type.toLowerCase()) {\r\n case \"google\":\r\n return getURLGoogle(params.data);\r\n case \"yahoo\":\r\n return getURLYahoo(params.data);\r\n case \"outlook\":\r\n return getURLICS(params.data);\r\n case \"ical\":\r\n return getURLICS(params.data);\r\n default:\r\n return \"\";\r\n }\r\n}\r\n\r\nexport { getAddToCalendarURL }"]}