{"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 }"]}