%PDF- %PDF-
Mini Shell

Mini Shell

Direktori : /www/varak.net/nextcloud.varak.net/apps_old/apps/calendar/js/
Upload File :
Create Path :
Current File : //www/varak.net/nextcloud.varak.net/apps_old/apps/calendar/js/calendar-dashboard-lazy.js.map

{"version":3,"file":"calendar-dashboard-lazy.js?v=ffcbba0dfc4764206d76","mappings":"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,SAAW,iKAAiK,eAAiB,CAAC,kcAAkc,WAAa,MAEpnC,2BCPA,IAAIuB,EAAM,CACT,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,IACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,KACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,WAAY,CACX,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,KACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,KACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,gBAAiB,CAChB,MACA,uGACA,8CAED,gBAAiB,CAChB,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,IACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,cAAe,CACd,KACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,cAAe,CACd,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,KACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,eAAgB,CACf,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,WAAY,CACX,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,WAAY,CACX,IACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,WAAY,CACX,MACA,uGACA,8CAED,gBAAiB,CAChB,KACA,uGACA,8CAED,WAAY,CACX,MACA,uGACA,8CAED,aAAc,CACb,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,eAAgB,CACf,MACA,uGACA,8CAED,UAAW,CACV,MACA,uGACA,8CAED,UAAW,CACV,MAC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","sources":["webpack:///calendar/src/models/consts.js","webpack:///calendar/src/services/caldavService.js","webpack:///calendar/src/services/talkService.js","webpack:///calendar/src/utils/attendee.js","webpack:///calendar/src/utils/date.js","webpack:///calendar/src/views/Dashboard.vue?vue&type=style&index=0&id=6dcb2714&prod&lang=scss","webpack:///calendar/node_modules/moment/locale|lazy|/^\\.\\/.*\\.js$/|groupOptions: {}|namespace object","webpack://calendar/./src/views/Dashboard.vue?7277","webpack:///calendar/src/fullcalendar/eventSources/eventSourceFunction.js","webpack:///calendar/src/utils/moment.js","webpack:///calendar/src/views/Dashboard.vue","webpack:///calendar/src/views/Dashboard.vue?vue&type=script&lang=js","webpack://calendar/./src/views/Dashboard.vue?e0de","webpack://calendar/./src/views/Dashboard.vue?e463"],"sourcesContent":["/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nconst COMPONENT_NAME_EVENT = 'VEVENT'\nconst COMPONENT_NAME_JOURNAL = 'VJOURNAL'\nconst COMPONENT_NAME_VTODO = 'VTODO'\n\nconst ITIP_MESSAGE_ADD = 'ADD'\nconst ITIP_MESSAGE_CANCEL = 'CANCEL'\nconst ITIP_MESSAGE_COUNTER = 'COUNTER'\nconst ITIP_MESSAGE_DECLINECOUNTER = 'DECLINECOUNTER'\nconst ITIP_MESSAGE_PUBLISH = 'PUBLISH'\nconst ITIP_MESSAGE_REFRESH = 'REFRESH'\nconst ITIP_MESSAGE_REPLY = 'REPLY'\nconst ITIP_MESSAGE_REQUEST = 'REQUEST'\n\nconst PRINCIPAL_PREFIX_USER = 'principal:principals/users/'\nconst PRINCIPAL_PREFIX_GROUP = 'principal:principals/groups/'\nconst PRINCIPAL_PREFIX_CIRCLE = 'principal:principals/circles/'\nconst PRINCIPAL_PREFIX_CALENDAR_RESOURCE = 'principal:principals/calendar-resources/'\nconst PRINCIPAL_PREFIX_CALENDAR_ROOM = 'principal:principals/calendar-rooms/'\n\nconst CALDAV_BIRTHDAY_CALENDAR = 'contact_birthdays'\n\nconst IMPORT_STAGE_DEFAULT = 'default'\nconst IMPORT_STAGE_IMPORTING = 'importing'\nconst IMPORT_STAGE_AWAITING_USER_SELECT = 'awaitingUserSelect'\nconst IMPORT_STAGE_PROCESSING = 'processing'\n\nexport {\n\tCOMPONENT_NAME_EVENT,\n\tCOMPONENT_NAME_JOURNAL,\n\tCOMPONENT_NAME_VTODO,\n\tITIP_MESSAGE_ADD,\n\tITIP_MESSAGE_CANCEL,\n\tITIP_MESSAGE_COUNTER,\n\tITIP_MESSAGE_DECLINECOUNTER,\n\tITIP_MESSAGE_PUBLISH,\n\tITIP_MESSAGE_REFRESH,\n\tITIP_MESSAGE_REPLY,\n\tITIP_MESSAGE_REQUEST,\n\tPRINCIPAL_PREFIX_USER,\n\tPRINCIPAL_PREFIX_GROUP,\n\tPRINCIPAL_PREFIX_CIRCLE,\n\tPRINCIPAL_PREFIX_CALENDAR_RESOURCE,\n\tPRINCIPAL_PREFIX_CALENDAR_ROOM,\n\tCALDAV_BIRTHDAY_CALENDAR,\n\tIMPORT_STAGE_DEFAULT,\n\tIMPORT_STAGE_IMPORTING,\n\tIMPORT_STAGE_AWAITING_USER_SELECT,\n\tIMPORT_STAGE_PROCESSING,\n}\n","/**\n * @copyright Copyright (c) 2020 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport DavClient from '@nextcloud/cdav-library'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { CALDAV_BIRTHDAY_CALENDAR } from '../models/consts.js'\n\nconst clients = {}\n\nconst getClientKey = (headers) => JSON.stringify(headers)\n\nconst getClient = (headers = {}) => {\n\tconst clientKey = getClientKey(headers)\n\tif (clients[clientKey]) {\n\t\treturn clients[clientKey]\n\t}\n\n\tclients[clientKey] = new DavClient({\n\t\trootUrl: generateRemoteUrl('dav'),\n\t}, () => {\n\t\tconst mergedHeaders = {\n\t\t\t'X-Requested-With': 'XMLHttpRequest',\n\t\t\trequesttoken: getRequestToken(),\n\t\t\t'X-NC-CalDAV-Webcal-Caching': 'On',\n\t\t\t...headers,\n\t\t}\n\t\tconst xhr = new XMLHttpRequest()\n\t\tconst oldOpen = xhr.open\n\n\t\t// override open() method to add headers\n\t\txhr.open = function() {\n\t\t\tconst result = oldOpen.apply(this, arguments)\n\t\t\tfor (const name in mergedHeaders) {\n\t\t\t\txhr.setRequestHeader(name, mergedHeaders[name])\n\t\t\t}\n\n\t\t\treturn result\n\t\t}\n\n\t\tOC.registerXHRForErrorProcessing(xhr) // eslint-disable-line no-undef\n\t\treturn xhr\n\t})\n\n\treturn clients[clientKey]\n}\n\n/**\n * Initializes the client for use in the user-view\n */\nconst initializeClientForUserView = async () => {\n\tawait getClient().connect({ enableCalDAV: true })\n}\n\n/**\n * Initializes the client for use in the public/embed-view\n */\nconst initializeClientForPublicView = async () => {\n\tawait getClient()._createPublicCalendarHome()\n}\n\n/**\n * Fetch all calendars from the server\n *\n * @param {object} headers\n * @return {Promise<CalendarHome>}\n */\nconst getCalendarHome = (headers) => getClient(headers).calendarHomes[0]\n\n/**\n * Fetch all collections in the calendar home from the server\n *\n * @return {Promise<Collection[]>}\n */\nconst findAll = () => {\n\treturn getCalendarHome().findAllCalDAVCollectionsGrouped()\n}\n\n/**\n * Fetch all subscriptions in the calendar home from the server\n */\nexport const findAllSubscriptions = async () => {\n\tconst headers = {\n\t\t'X-NC-CalDAV-Webcal-Caching': 'Off',\n\t}\n\n\t// Ensure the client is initialized once\n\tawait getClient(headers).connect({ enableCalDAV: true })\n\n\treturn getCalendarHome(headers).findAllSubscriptions()\n}\n\n/**\n * Fetch all deleted calendars from the server\n *\n * @return {Promise<Calendar[]>}\n */\nconst findAllDeletedCalendars = () => {\n\treturn getCalendarHome().findAllDeletedCalendars()\n}\n\n/**\n * Fetch public calendars by their token\n *\n * @param {string[]} tokens List of tokens\n * @return {Promise<Calendar[]>}\n */\nconst findPublicCalendarsByTokens = async (tokens) => {\n\tconst findPromises = []\n\n\tfor (const token of tokens) {\n\t\tconst promise = getClient().publicCalendarHome\n\t\t\t.find(token)\n\t\t\t.catch(() => null) // Catch outdated tokens\n\n\t\tfindPromises.push(promise)\n\t}\n\n\tconst calendars = await Promise.all(findPromises)\n\treturn calendars.filter((calendar) => calendar !== null)\n}\n\n/**\n * Fetches all scheduling inboxes\n *\n * Nitpick detail: Technically, we shouldn't be querying all scheduling inboxes\n * in the calendar-home and just take the first one, but rather query the\n * \"CALDAV:schedule-inbox-URL\" property on the principal URL and take that one.\n * However, it doesn't make any difference for the Nextcloud CalDAV server\n * and saves us extraneous requests here.\n *\n * https://tools.ietf.org/html/rfc6638#section-2.2.1\n *\n * @return {Promise<ScheduleInbox[]>}\n */\nconst findSchedulingInbox = async () => {\n\tconst inboxes = await getCalendarHome().findAllScheduleInboxes()\n\treturn inboxes[0]\n}\n\n/**\n * Fetches all scheduling outboxes\n *\n * Nitpick detail: Technically, we shouldn't be querying all scheduling outboxes\n * in the calendar-home and just take the first one, but rather query the\n * \"CALDAV:schedule-outbox-URL\" property on the principal URL and take that one.\n * However, it doesn't make any difference for the Nextcloud CalDAV server\n * and saves us extraneous requests here.\n *\n * https://tools.ietf.org/html/rfc6638#section-2.1.1\n *\n * @return {Promise<ScheduleOutbox>}\n */\nconst findSchedulingOutbox = async () => {\n\tconst outboxes = await getCalendarHome().findAllScheduleOutboxes()\n\treturn outboxes[0]\n}\n\n/**\n * Creates a calendar\n *\n * @param {string} displayName Visible name\n * @param {string} color Color\n * @param {string[]} components Supported component set\n * @param {number} order Order of calendar in list\n * @param {string} timezoneIcs ICS representation of timezone\n * @return {Promise<Calendar>}\n */\nconst createCalendar = async (displayName, color, components, order, timezoneIcs) => {\n\treturn getCalendarHome().createCalendarCollection(displayName, color, components, order, timezoneIcs)\n}\n\n/**\n * Creates a subscription\n *\n * This function does not return a subscription, but a cached calendar\n *\n * @param {string} displayName Visible name\n * @param {string} color Color\n * @param {string} source Link to WebCAL Source\n * @param {number} order Order of calendar in list\n * @return {Promise<Calendar>}\n */\nconst createSubscription = async (displayName, color, source, order) => {\n\treturn getCalendarHome().createSubscribedCollection(displayName, color, source, order)\n}\n\n/**\n * Enables the birthday calendar\n *\n * @return {Promise<Calendar>}\n */\nconst enableBirthdayCalendar = async () => {\n\tawait getCalendarHome().enableBirthdayCalendar()\n\treturn getBirthdayCalendar()\n}\n\n/**\n * Gets the birthday calendar\n *\n * @return {Promise<Calendar>}\n */\nconst getBirthdayCalendar = async () => {\n\treturn getCalendarHome().find(CALDAV_BIRTHDAY_CALENDAR)\n}\n\n/**\n * Returns the Current User Principal\n *\n * @return {Principal}\n */\nconst getCurrentUserPrincipal = () => {\n\treturn getClient().currentUserPrincipal\n}\n\n/**\n * Finds calendar principals by displayname\n *\n * @param {string} term The search-term\n * @return {Promise<void>}\n */\nconst principalPropertySearchByDisplaynameOrEmail = async (term) => {\n\treturn getClient().principalPropertySearchByDisplaynameOrEmail(term)\n}\n\n/**\n * Performs a principal property search based on multiple advanced filters\n *\n * @param {object} query The destructuring query object\n * @param {string=} query.displayName The display name to search for\n * @param {number=} query.capacity The minimum required seating capacity\n * @param {string[]=} query.features The features to filter by\n * @param {string=} query.roomType The room type to filter by\n * @return {Promise<Principal[]>}\n */\nconst advancedPrincipalPropertySearch = async (query) => {\n\treturn getClient().advancedPrincipalPropertySearch(query)\n}\n\n/**\n * Finds one principal by it's URL\n *\n * @param {string} url The principal-url\n * @return {Promise<Principal>}\n */\nconst findPrincipalByUrl = async (url) => {\n\treturn getClient().findPrincipal(url)\n}\n\nexport {\n\tinitializeClientForUserView,\n\tinitializeClientForPublicView,\n\tfindAll,\n\tfindAllDeletedCalendars,\n\tfindPublicCalendarsByTokens,\n\tfindSchedulingInbox,\n\tfindSchedulingOutbox,\n\tcreateCalendar,\n\tcreateSubscription,\n\tenableBirthdayCalendar,\n\tgetBirthdayCalendar,\n\tgetCurrentUserPrincipal,\n\tprincipalPropertySearchByDisplaynameOrEmail,\n\tadvancedPrincipalPropertySearch,\n\tfindPrincipalByUrl,\n}\n","/**\n * @copyright Copyright (c) 2019 Georg Ehrke\n *\n * @author Team Popcorn <teampopcornberlin@gmail.com>\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport HTTPClient from '@nextcloud/axios'\nimport { translate as t } from '@nextcloud/l10n'\nimport { generateUrl, generateOcsUrl } from '@nextcloud/router'\nimport { loadState } from '@nextcloud/initial-state'\nimport { getCurrentUser } from '@nextcloud/auth'\nimport logger from '../utils/logger.js'\nimport { removeMailtoPrefix } from '../utils/attendee.js'\n\n/**\n * Creates a new public talk room\n *\n * @param {?string} eventTitle Title of the event\n * @param {?string} eventDescription Description of the event\n * @param {?string[]} attendees Attendees of the event\n *\n * @return {Promise<string>}\n */\nexport async function createTalkRoom(eventTitle = null, eventDescription = null, attendees = []) {\n\tconst apiVersion = loadState('calendar', 'talk_api_version')\n\ttry {\n\t\tconst response = await HTTPClient.post(generateOcsUrl('apps/spreed/api/' + apiVersion + '/', 2) + 'room', {\n\t\t\troomType: 3,\n\t\t\troomName: eventTitle || t('calendar', 'Chat room for event'),\n\t\t})\n\n\t\tconst conversation = response.data.ocs.data\n\t\tconst token = conversation.token\n\t\tif (eventDescription) {\n\t\t\tawait HTTPClient.put(generateOcsUrl('apps/spreed/api/' + apiVersion + '/', 2) + 'room/' + token + '/description', {\n\t\t\t\tdescription: eventDescription,\n\t\t\t})\n\t\t}\n\n\t\treturn generateURLForToken(token)\n\t} catch (error) {\n\t\tconsole.debug(error)\n\t\tthrow error\n\t}\n}\n\n/**\n *\n * @param eventComponent\n */\nexport async function updateTalkParticipants(eventComponent) {\n\tconst apiVersion = loadState('calendar', 'talk_api_version')\n\tconst url = eventComponent.getConferenceList()[0]?.uri ?? eventComponent.location\n\tif (!url || !url.startsWith(window.location.protocol + '//' + window.location.host)) {\n\t\tlogger.debug('Event\\'s conference/location is from another host', url)\n\t\treturn\n\t}\n\tconst token = url.match(/\\/call\\/([a-z0-9]*)$/)[1]\n\tif (!token) {\n\t\tlogger.debug('URL ' + url + ' contains no call token')\n\t\treturn\n\t}\n\ttry {\n\t\tconst { data: { ocs: { data: room } } } = await HTTPClient.get(generateOcsUrl('apps/spreed/api/' + apiVersion + '/', 2) + 'room/' + token)\n\t\tconst participantsResponse = await HTTPClient.get(generateOcsUrl('apps/spreed/api/' + apiVersion + '/', 2) + 'room/' + token + '/participants')\n\t\t// Ignore if the actor isn't owner of the conversation\n\t\tif (!participantsResponse.data.ocs.data.some(participant => participant.actorId === getCurrentUser().uid && participant.participantType <= 2)) {\n\t\t\tlogger.debug('Current user is not a moderator or owner', { currentUser: getCurrentUser().uid, conversation: participantsResponse.data.ocs.data })\n\t\t\treturn\n\t\t}\n\t\tconsole.info('room', room)\n\n\t\tfor (const attendee of eventComponent.getAttendeeIterator()) {\n\t\t\tlogger.debug('Processing attendee', { attendee })\n\t\t\tif (['GROUP', 'RESOURCE', 'ROOM'].includes(attendee.userType)) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tconst participantId = removeMailtoPrefix(attendee.email)\n\t\t\ttry {\n\t\t\t\t// Map attendee email to Nextcloud user uid\n\t\t\t\tconst searchResult = await HTTPClient.get(generateOcsUrl('core/autocomplete/', 2) + 'get?search=' + encodeURIComponent(participantId) + '&itemType=&itemId=%20&shareTypes[]=0&limit=2')\n\t\t\t\t// Only map if there is exactly one result\n\t\t\t\tif (searchResult.data.ocs.data.length === 1 && searchResult.data.ocs.data[0].id !== getCurrentUser().uid) {\n\t\t\t\t\tawait HTTPClient.post(generateOcsUrl('apps/spreed/api/' + apiVersion + '/', 2) + 'room/' + token + '/participants', {\n\t\t\t\t\t\tnewParticipant: searchResult.data.ocs.data[0].id,\n\t\t\t\t\t\tsource: 'users',\n\t\t\t\t\t})\n\t\t\t\t} else if (searchResult.data.ocs.data[0]?.id === getCurrentUser().uid) {\n\t\t\t\t\tlogger.debug('Skipping organizer ' + searchResult.data.ocs.data[0].id)\n\t\t\t\t} else if (room.type === 3) {\n\t\t\t\t\tawait HTTPClient.post(generateOcsUrl('apps/spreed/api/' + apiVersion + '/', 2) + 'room/' + token + '/participants', {\n\t\t\t\t\t\tnewParticipant: participantId,\n\t\t\t\t\t\tsource: 'emails',\n\t\t\t\t\t})\n\t\t\t\t} else {\n\t\t\t\t\tlogger.debug('Attendee ' + participantId + ' ignored as Talk participant')\n\t\t\t\t}\n\t\t\t} catch (error) {\n\t\t\t\tlogger.info('Could not add attendee ' + participantId + ' as Talk participant', { error })\n\t\t\t}\n\t\t}\n\t} catch (error) {\n\t\tlogger.warn('Could not update Talk room attendees', { error })\n\t}\n}\n\n/**\n * Checks whether the value contains a talk link\n *\n * @param {?string} text Haystack\n * @return {boolean}\n */\nexport function doesContainTalkLink(text) {\n\tif (!text) {\n\t\treturn false\n\t}\n\n\t// TODO: there is most definitely a more reliable way,\n\t// but this works for now\n\tconst fakeUrl = generateURLForToken()\n\treturn text.includes(fakeUrl)\n}\n\n/**\n * Generates an absolute URL to the talk room based on the token\n *\n * @param {string} token The token to the call room\n * @return {string}\n */\nfunction generateURLForToken(token = '') {\n\treturn window.location.protocol + '//' + window.location.host + generateUrl('/call/' + token)\n}\n","/**\n * @copyright Copyright (c) 2021 Richard Steinmetz <richard@steinmetz.cloud>\n *\n * @author Richard Steinmetz <richard@steinmetz.cloud>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\n/**\n * Remove the mailto prefix from a URI and return it\n *\n * @param {string} uri URI to remove the prefix from\n * @return {string} URI without a mailto prefix\n */\nexport function removeMailtoPrefix(uri) {\n\tif (typeof uri !== 'string') {\n\t\treturn ''\n\t}\n\n\tif (uri.startsWith('mailto:')) {\n\t\treturn uri.slice(7)\n\t}\n\n\treturn uri\n}\n\n/**\n * Add the mailto prefix to a URI if it doesn't have one yet and return it\n *\n * @param {string} uri URI to add the prefix to\n * @return {string} URI with a mailto prefix\n */\nexport function addMailtoPrefix(uri) {\n\tif (typeof uri !== 'string') {\n\t\treturn 'mailto:'\n\t}\n\n\tif (uri.startsWith('mailto:')) {\n\t\treturn uri\n\t}\n\n\treturn `mailto:${uri}`\n}\n\n/**\n * Get the display name of an organizer\n *\n * @param {?object} organizer Organizer object to extract a display name from\n * @return {string} Display name of given organizer\n */\nexport function organizerDisplayName(organizer) {\n\tif (!organizer) {\n\t\treturn ''\n\t}\n\n\tif (organizer.commonName) {\n\t\treturn organizer.commonName\n\t}\n\n\treturn removeMailtoPrefix(organizer.uri)\n}\n","/**\n * @copyright Copyright (c) 2019 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY; without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\n\nimport logger from './logger.js'\n\n/**\n * returns a new Date object\n *\n * @return {Date}\n */\nexport function dateFactory() {\n\treturn new Date()\n}\n\n/**\n * formats a Date object as YYYYMMDD\n *\n * @param {Date} date Date to format\n * @return {string}\n */\nexport function getYYYYMMDDFromDate(date) {\n\treturn new Date(date.getTime() - (date.getTimezoneOffset() * 60000))\n\t\t.toISOString()\n\t\t.split('T')[0]\n}\n\n/**\n * get unix time from date object\n *\n * @param {Date} date Date to format\n * @return {number}\n */\nexport function getUnixTimestampFromDate(date) {\n\treturn Math.floor(date.getTime() / 1000)\n}\n\n/**\n * Gets a Date-object based on the firstday param used in routes\n *\n * @param {string} firstDayParam The firstday param from the router\n * @return {Date}\n */\nexport function getDateFromFirstdayParam(firstDayParam) {\n\tif (firstDayParam === 'now') {\n\t\treturn dateFactory()\n\t}\n\n\tconst [year, month, date] = firstDayParam.split('-')\n\t\t.map((str) => parseInt(str, 10))\n\n\tif (Number.isNaN(year) || Number.isNaN(month) || Number.isNaN(date)) {\n\t\tlogger.error('First day parameter contains non-numerical components, falling back to today')\n\t\treturn dateFactory()\n\t}\n\n\tconst dateObject = dateFactory()\n\tdateObject.setFullYear(year, month - 1, date)\n\tdateObject.setHours(0, 0, 0, 0)\n\n\treturn dateObject\n}\n\n/**\n * formats firstday param as YYYYMMDD\n *\n * @param {string} firstDayParam The firstday param from the router\n * @return {string}\n */\nexport function getYYYYMMDDFromFirstdayParam(firstDayParam) {\n\tif (firstDayParam === 'now') {\n\t\treturn getYYYYMMDDFromDate(dateFactory())\n\t}\n\n\treturn firstDayParam\n}\n\n/**\n * Gets a date object based on the given DateTimeValue\n * Ignores given timezone-information\n *\n * @param {DateTimeValue} dateTimeValue Value to get date from\n * @return {Date}\n */\nexport function getDateFromDateTimeValue(dateTimeValue) {\n\treturn new Date(\n\t\tdateTimeValue.year,\n\t\tdateTimeValue.month - 1,\n\t\tdateTimeValue.day,\n\t\tdateTimeValue.hour,\n\t\tdateTimeValue.minute,\n\t\t0,\n\t\t0,\n\t)\n}\n\n/**\n * modifies a date\n *\n * @param {Date} date Date object to modify\n * @param {object} data The destructuring object\n * @param {number} data.day Number of days to add\n * @param {number} data.week Number of weeks to add\n * @param {number} data.month Number of months to add\n * @param data.year\n * @return {Date}\n */\nexport function modifyDate(date, { day = 0, week = 0, month = 0, year = 0 }) {\n\tdate = new Date(date.getTime())\n\tdate.setDate(date.getDate() + day)\n\tdate.setDate(date.getDate() + week * 7)\n\tdate.setMonth(date.getMonth() + month)\n\tdate.setFullYear(date.getFullYear() + year)\n\n\treturn date\n}\n","// Imports\nimport ___CSS_LOADER_API_SOURCEMAP_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/sourceMaps.js\";\nimport ___CSS_LOADER_API_IMPORT___ from \"../../node_modules/css-loader/dist/runtime/api.js\";\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, `#calendar_panel .calendar-dot{flex-shrink:0;height:1rem;width:1rem;margin-top:.2rem;border-radius:50%}#calendar_panel #calendar-widget-empty-content{text-align:center;margin-top:5vh}#calendar_panel #calendar-widget-empty-content.half-screen{margin-top:0;height:120px;margin-bottom:2vh}#calendar_panel .empty-label{display:flex;justify-content:center;margin-top:5vh}`, \"\",{\"version\":3,\"sources\":[\"webpack://./src/views/Dashboard.vue\"],\"names\":[],\"mappings\":\"AAEC,8BACC,aAAA,CACA,WAAA,CACA,UAAA,CACA,gBAAA,CACA,iBAAA,CAGD,+CACC,iBAAA,CACA,cAAA,CAEA,2DACC,YAAA,CACA,YAAA,CACA,iBAAA,CAKF,6BACC,YAAA,CACA,sBAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n#calendar_panel {\\n\\t.calendar-dot {\\n\\t\\tflex-shrink: 0;\\n\\t\\theight: 1rem;\\n\\t\\twidth: 1rem;\\n\\t\\tmargin-top: 0.2rem;\\n\\t\\tborder-radius: 50%;\\n\\t}\\n\\n\\t#calendar-widget-empty-content {\\n\\t\\ttext-align: center;\\n\\t\\tmargin-top: 5vh;\\n\\n\\t\\t&.half-screen {\\n\\t\\t\\tmargin-top: 0;\\n\\t\\t\\theight: 120px;\\n\\t\\t\\tmargin-bottom: 2vh;\\n\\t\\t}\\n\\n\\t}\\n\\n\\t.empty-label {\\n\\t\\tdisplay: flex;\\n\\t\\tjustify-content: center;\\n\\t\\tmargin-top: 5vh;\\n\\t}\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af.js\": [\n\t\t36024,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ar-dz.js\": [\n\t\t11736,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ar-kw.js\": [\n\t\t47888,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ar-ly.js\": [\n\t\t512,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ar-ma.js\": [\n\t\t89688,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ar-ps.js\": [\n\t\t65280,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ar-sa.js\": [\n\t\t44948,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ar-tn.js\": [\n\t\t61992,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ar.js\": [\n\t\t27544,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./az.js\": [\n\t\t95777,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./be.js\": [\n\t\t69940,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./bg.js\": [\n\t\t86107,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./bm.js\": [\n\t\t63544,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./bn-bd.js\": [\n\t\t92876,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./bn.js\": [\n\t\t94952,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./bo.js\": [\n\t\t56576,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./br.js\": [\n\t\t85011,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./bs.js\": [\n\t\t43584,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ca.js\": [\n\t\t39776,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./cs.js\": [\n\t\t36560,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./cv.js\": [\n\t\t67716,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./cy.js\": [\n\t\t70956,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./da.js\": [\n\t\t15188,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./de-at.js\": [\n\t\t52131,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./de-ch.js\": [\n\t\t46128,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./de.js\": [\n\t\t78960,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./dv.js\": [\n\t\t43284,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./el.js\": [\n\t\t32972,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./en-au.js\": [\n\t\t64356,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./en-ca.js\": [\n\t\t28440,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./en-gb.js\": [\n\t\t2448,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./en-ie.js\": [\n\t\t16320,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./en-il.js\": [\n\t\t74360,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./en-in.js\": [\n\t\t80632,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./en-nz.js\": [\n\t\t81140,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./en-sg.js\": [\n\t\t85384,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./eo.js\": [\n\t\t65620,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./es-do.js\": [\n\t\t76528,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./es-mx.js\": [\n\t\t98544,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./es-us.js\": [\n\t\t71208,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./es.js\": [\n\t\t32348,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./et.js\": [\n\t\t20373,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./eu.js\": [\n\t\t69912,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./fa.js\": [\n\t\t74984,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./fi.js\": [\n\t\t52819,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./fil.js\": [\n\t\t72512,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./fo.js\": [\n\t\t18571,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./fr-ca.js\": [\n\t\t93220,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./fr-ch.js\": [\n\t\t45720,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./fr.js\": [\n\t\t8405,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./fy.js\": [\n\t\t58116,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ga.js\": [\n\t\t9916,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./gd.js\": [\n\t\t86908,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./gl.js\": [\n\t\t54088,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./gom-deva.js\": [\n\t\t15064,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./gom-latn.js\": [\n\t\t96300,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./gu.js\": [\n\t\t51208,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./he.js\": [\n\t\t78291,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./hi.js\": [\n\t\t648,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./hr.js\": [\n\t\t38864,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./hu.js\": [\n\t\t28164,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./hy-am.js\": [\n\t\t62528,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./id.js\": [\n\t\t63400,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./is.js\": [\n\t\t23912,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./it-ch.js\": [\n\t\t77988,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./it.js\": [\n\t\t77088,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ja.js\": [\n\t\t52501,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./jv.js\": [\n\t\t40376,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ka.js\": [\n\t\t67048,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./kk.js\": [\n\t\t56416,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./km.js\": [\n\t\t58288,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./kn.js\": [\n\t\t84833,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ko.js\": [\n\t\t33352,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ku-kmr.js\": [\n\t\t5192,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ku.js\": [\n\t\t76376,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ky.js\": [\n\t\t92832,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./lb.js\": [\n\t\t61448,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./lo.js\": [\n\t\t34116,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./lt.js\": [\n\t\t20296,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./lv.js\": [\n\t\t76136,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./me.js\": [\n\t\t28019,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./mi.js\": [\n\t\t41320,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./mk.js\": [\n\t\t47720,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ml.js\": [\n\t\t81228,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./mn.js\": [\n\t\t49564,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./mr.js\": [\n\t\t56116,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ms-my.js\": [\n\t\t69676,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ms.js\": [\n\t\t88512,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./mt.js\": [\n\t\t29824,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./my.js\": [\n\t\t82792,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./nb.js\": [\n\t\t23444,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ne.js\": [\n\t\t77860,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./nl-be.js\": [\n\t\t63760,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./nl.js\": [\n\t\t39940,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./nn.js\": [\n\t\t28888,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./oc-lnc.js\": [\n\t\t18096,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./pa-in.js\": [\n\t\t78837,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./pl.js\": [\n\t\t13524,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./pt-br.js\": [\n\t\t11048,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./pt.js\": [\n\t\t96840,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ro.js\": [\n\t\t33060,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ru.js\": [\n\t\t3156,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./sd.js\": [\n\t\t96595,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./se.js\": [\n\t\t94560,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./si.js\": [\n\t\t38668,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./sk.js\": [\n\t\t69500,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./sl.js\": [\n\t\t67643,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./sq.js\": [\n\t\t84192,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./sr-cyrl.js\": [\n\t\t58728,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./sr.js\": [\n\t\t56832,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ss.js\": [\n\t\t28692,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./sv.js\": [\n\t\t63252,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./sw.js\": [\n\t\t98904,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ta.js\": [\n\t\t71120,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./te.js\": [\n\t\t46688,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./tet.js\": [\n\t\t37176,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./tg.js\": [\n\t\t69248,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./th.js\": [\n\t\t27172,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./tk.js\": [\n\t\t30208,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./tl-ph.js\": [\n\t\t69363,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./tlh.js\": [\n\t\t331,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./tr.js\": [\n\t\t43920,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./tzl.js\": [\n\t\t84360,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./tzm-latn.js\": [\n\t\t4112,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./tzm.js\": [\n\t\t97524,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ug-cn.js\": [\n\t\t71124,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./uk.js\": [\n\t\t69328,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./ur.js\": [\n\t\t88968,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./uz-latn.js\": [\n\t\t19388,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./uz.js\": [\n\t\t51516,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./vi.js\": [\n\t\t59664,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./x-pseudo.js\": [\n\t\t68616,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./yo.js\": [\n\t\t85436,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./zh-cn.js\": [\n\t\t3820,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./zh-hk.js\": [\n\t\t60112,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./zh-mo.js\": [\n\t\t99504,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t],\n\t\"./zh-tw.js\": [\n\t\t15660,\n\t\t\"vendors-node_modules_moment_locale_af_js-node_modules_moment_locale_ar-dz_js-node_modules_mom-582c96\",\n\t\t\"node_modules_moment_locale_sync_recursive_\"\n\t]\n};\nfunction webpackAsyncContext(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\treturn Promise.resolve().then(() => {\n\t\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\t\te.code = 'MODULE_NOT_FOUND';\n\t\t\tthrow e;\n\t\t});\n\t}\n\n\tvar ids = map[req], id = ids[0];\n\treturn Promise.all(ids.slice(1).map(__webpack_require__.e)).then(() => {\n\t\treturn __webpack_require__.t(id, 7 | 16);\n\t});\n}\nwebpackAsyncContext.keys = () => (Object.keys(map));\nwebpackAsyncContext.id = 10540;\nmodule.exports = webpackAsyncContext;","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('DashboardWidget',{attrs:{\"id\":\"calendar_panel\",\"items\":_vm.items,\"loading\":_vm.loading},scopedSlots:_vm._u([{key:\"default\",fn:function({ item }){return [(item.isEmptyItem)?_c('EmptyContent',{staticClass:\"half-screen\",attrs:{\"id\":\"calendar-widget-empty-content\",\"name\":_vm.t('calendar', 'No more events today')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('IconCheck',{attrs:{\"size\":67}})]},proxy:true}],null,true)}):_c('DashboardWidgetItem',{attrs:{\"main-text\":item.mainText,\"sub-text\":item.subText,\"target-url\":item.targetUrl},scopedSlots:_vm._u([{key:\"avatar\",fn:function(){return [(item.componentName === 'VEVENT')?_c('div',{staticClass:\"calendar-dot\",style:({'background-color': item.calendarColor}),attrs:{\"name\":item.calendarDisplayName}}):_c('IconCheckbox',{attrs:{\"fill-color\":item.calendarColor}})]},proxy:true}],null,true)})]}},{key:\"empty-content\",fn:function(){return [_c('EmptyContent',{attrs:{\"id\":\"calendar-widget-empty-content\",\"name\":_vm.t('calendar', 'No upcoming events')},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('EmptyCalendar')]},proxy:true}])}),_vm._v(\" \"),_c('div',{staticClass:\"empty-label\"},[_c('NcButton',{attrs:{\"type\":\"secondary\",\"href\":_vm.clickStartNew}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('calendar', 'Create a new event'))+\"\\n\\t\\t\\t\")])],1)]},proxy:true}])})\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2019 Georg Ehrke\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { translate as t } from '@nextcloud/l10n'\nimport {\n\thexToRGB,\n\tisLight,\n\tgenerateTextColorForHex,\n\tgetHexForColorName,\n} from '../../utils/color.js'\nimport logger from '../../utils/logger.js'\nimport { getAllObjectsInTimeRange } from '../../utils/calendarObject.js'\n\n/**\n * convert an array of calendar-objects to events\n *\n * @param {CalendarObject[]} calendarObjects Array of calendar-objects to turn into fc events\n * @param {object} calendar The calendar object\n * @param {Date} start Start of time-range\n * @param {Date} end End of time-range\n * @param {Timezone} timezone Desired time-zone\n * @return {object}[]\n */\nexport function eventSourceFunction(calendarObjects, calendar, start, end, timezone) {\n\tconst fcEvents = []\n\tfor (const calendarObject of calendarObjects) {\n\t\tlet allObjectsInTimeRange\n\t\ttry {\n\t\t\tallObjectsInTimeRange = getAllObjectsInTimeRange(calendarObject, start, end)\n\t\t} catch (error) {\n\t\t\tlogger.error(error.message)\n\t\t\tcontinue\n\t\t}\n\n\t\tfor (const object of allObjectsInTimeRange) {\n\t\t\tconst classNames = []\n\n\t\t\tif (object.status === 'CANCELLED') {\n\t\t\t\tclassNames.push('fc-event-nc-cancelled')\n\t\t\t} else if (object.status === 'TENTATIVE') {\n\t\t\t\tclassNames.push('fc-event-nc-tentative')\n\t\t\t}\n\n\t\t\tif (object.hasComponent('VALARM')) {\n\t\t\t\tclassNames.push('fc-event-nc-alarms')\n\t\t\t}\n\n\t\t\t// For now, we only display\n\t\t\tif (object.name === 'VTODO' && object.endDate === null) {\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\tlet jsStart, jsEnd\n\t\t\tif (object.name === 'VEVENT') {\n\t\t\t\tjsStart = object.startDate.getInTimezone(timezone).jsDate\n\t\t\t\tjsEnd = object.endDate.getInTimezone(timezone).jsDate\n\t\t\t} else if (object.name === 'VTODO') {\n\t\t\t\t// For tasks, we only want to display when it is due,\n\t\t\t\t// not for how long it has been in progress already\n\t\t\t\tjsStart = object.endDate.getInTimezone(timezone).jsDate\n\t\t\t\tjsEnd = object.endDate.getInTimezone(timezone).jsDate\n\t\t\t} else {\n\t\t\t\t// We do not want to display anything that's neither\n\t\t\t\t// an event nor a task\n\t\t\t\tcontinue\n\t\t\t}\n\n\t\t\t// Technically, an event's end is not allowed to be equal to it's start,\n\t\t\t// because the event's end is exclusive. Most calendar applications\n\t\t\t// (including all big ones) allow creating such events anyway (we do too).\n\t\t\t// If the event's start is equal to it's end, fullcalendar is giving\n\t\t\t// the event a default length of one hour. We are preventing that by\n\t\t\t// adding one second to the end in that case.\n\t\t\tif (jsStart.getTime() === jsEnd.getTime()) {\n\t\t\t\tjsEnd.setSeconds(jsEnd.getSeconds() + 1)\n\t\t\t}\n\n\t\t\tif (object.name === 'VTODO') {\n\t\t\t\tclassNames.push('fc-event-nc-task')\n\t\t\t\tif (object.percent === 100 || object.status === 'COMPLETED') {\n\t\t\t\t\tclassNames.push('fc-event-nc-task-completed')\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tlet title\n\t\t\tif (object.name === 'VEVENT') {\n\t\t\t\tif (object.title) {\n\t\t\t\t\ttitle = object.title.replace(/\\n/g, ' ')\n\t\t\t\t} else {\n\t\t\t\t\ttitle = t('calendar', 'Untitled event')\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (object.title) {\n\t\t\t\t\ttitle = object.title.replace(/\\n/g, ' ')\n\t\t\t\t} else {\n\t\t\t\t\ttitle = t('calendar', 'Untitled task')\n\t\t\t\t}\n\n\t\t\t\tif (object.percent !== null) {\n\t\t\t\t\ttitle += ` (${object.percent}%)`\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tconst fcEvent = {\n\t\t\t\tid: [calendarObject.id, object.id].join('###'),\n\t\t\t\ttitle,\n\t\t\t\tallDay: object.isAllDay(),\n\t\t\t\tstart: jsStart,\n\t\t\t\tend: jsEnd,\n\t\t\t\t// start: formatLocal(jsStart, object.isAllDay()),\n\t\t\t\t// end: formatLocal(jsEnd, object.isAllDay()),\n\t\t\t\tclassNames,\n\t\t\t\textendedProps: {\n\t\t\t\t\tobjectId: calendarObject.id,\n\t\t\t\t\trecurrenceId: object.getReferenceRecurrenceId()\n\t\t\t\t\t\t? object.getReferenceRecurrenceId().unixTime\n\t\t\t\t\t\t: null,\n\t\t\t\t\tcanModifyAllDay: object.canModifyAllDay(),\n\t\t\t\t\tcalendarOrder: calendar.order,\n\t\t\t\t\tcalendarName: calendar.displayName,\n\t\t\t\t\tcalendarId: calendar.id,\n\t\t\t\t\tdarkText: isLight(hexToRGB(calendar.color)),\n\t\t\t\t\tobjectType: object.name,\n\t\t\t\t\tpercent: object.percent || null,\n\t\t\t\t\tdavUrl: calendarObject.dav.url,\n\t\t\t\t\tlocation: object.location,\n\t\t\t\t\tdescription: object.description,\n\t\t\t\t},\n\t\t\t}\n\n\t\t\tif (object.color) {\n\t\t\t\tconst customColor = getHexForColorName(object.color)\n\t\t\t\tif (customColor) {\n\t\t\t\t\tfcEvent.backgroundColor = customColor\n\t\t\t\t\tfcEvent.borderColor = customColor\n\t\t\t\t\tfcEvent.textColor = generateTextColorForHex(customColor)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tfcEvents.push(fcEvent)\n\t\t}\n\t}\n\n\treturn fcEvents\n}\n","/**\n * @copyright Copyright (c) 2019 Georg Ehrke\n *\n * @copyright Copyright (c) 2018 John Molakvoæ\n *\n * @author Georg Ehrke <oc.list@georgehrke.com>\n *\n * @author John Molakvoæ <skjnldsv@protonmail.com>\n *\n * @license AGPL-3.0-or-later\n *\n * This program is free software: you can redistribute it and/or modify\n * it under the terms of the GNU Affero General Public License as\n * published by the Free Software Foundation, either version 3 of the\n * License, or (at your option) any later version.\n *\n * This program is distributed in the hope that it will be useful,\n * but WITHOUT ANY WARRANTY without even the implied warranty of\n * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the\n * GNU Affero General Public License for more details.\n *\n * You should have received a copy of the GNU Affero General Public License\n * along with this program. If not, see <http://www.gnu.org/licenses/>.\n *\n */\nimport { getLanguage, getLocale } from '@nextcloud/l10n'\nimport moment from '@nextcloud/moment'\n\n/**\n *\n * @return {Promise<string>}\n */\nexport default async function loadMomentLocalization() {\n\tconst locale = getLocale().replace('_', '-').toLowerCase()\n\tconst language = getLanguage().replace('_', '-').toLowerCase()\n\n\tif (locale === language) {\n\t\treturn getLocaleFor(locale)\n\t}\n\n\tconst [realLocale, realLanguage] = await Promise.all([getLocaleFor(locale), getLocaleFor(language)])\n\tif (realLocale === realLanguage) {\n\t\treturn realLocale\n\t}\n\n\tconst name = `nextcloud-calendar-fake-locale-${realLocale}-${realLanguage}`\n\tmoment.defineLocale(name, {\n\t\tparentLocale: realLanguage,\n\t\tlongDateFormat: {\n\t\t\tLT: moment.localeData(realLocale).longDateFormat('LT'),\n\t\t\tLTS: moment.localeData(realLocale).longDateFormat('LTS'),\n\t\t\tL: moment.localeData(realLocale).longDateFormat('L'),\n\t\t\tLL: moment.localeData(realLocale).longDateFormat('LL'),\n\t\t\tLLL: moment.localeData(realLocale).longDateFormat('LLL'),\n\t\t\tLLLL: moment.localeData(realLocale).longDateFormat('LLLL'),\n\t\t\tl: moment.localeData(realLocale).longDateFormat('l'),\n\t\t\tll: moment.localeData(realLocale).longDateFormat('ll'),\n\t\t\tlll: moment.localeData(realLocale).longDateFormat('lll'),\n\t\t\tllll: moment.localeData(realLocale).longDateFormat('llll'),\n\t\t},\n\t\tweek: {\n\t\t\tdow: moment.localeData(realLocale).firstDayOfWeek(),\n\t\t\tdoy: moment.localeData(realLocale).firstDayOfYear(),\n\t\t},\n\t})\n\n\treturn name\n}\n\n/**\n * Dynamically loads the requested locale and returns the actually loaded locale\n *\n * @param {string} locale Name of locale to load\n * @return {Promise<string>}\n */\nasync function getLocaleFor(locale) {\n\t// IMPORTANT: Keep each '/moment/local/...' string as is. Otherwise, webpack might not bundle\n\t//            locale data because the contentRegExp fails to detect any files.\n\ttry {\n\t\t// default load e.g. en-de\n\t\tawait import(`moment/locale/${locale}.js`)\n\t\treturn locale\n\t} catch (error) {\n\t\tconst splitLocale = locale.split('-')\n\t\ttry {\n\t\t\t// failure: fallback to first part of locale, which\n\t\t\t// should be language\n\t\t\tlocale = splitLocale[0]\n\t\t\tawait import(`moment/locale/${locale}.js`)\n\t\t\treturn locale\n\t\t} catch (e) {\n\t\t\t// failure, fallback to english\n\t\t\tconsole.debug('Fallback to locale', 'en')\n\t\t\t// English is the default locale and doesn't need to imported.\n\t\t\t// It is already included in moment.js.\n\t\t}\n\t}\n\n\treturn 'en'\n}\n\n/**\n * Get's the first day of a week based on a moment locale\n *\n * @return {number}\n */\nexport function getFirstDayOfWeekFromMomentLocale() {\n\treturn moment.localeData().firstDayOfWeek()\n}\n","<!--\n\t- @copyright Copyright (c) 2020 Julius Härtl <jus@bitgrid.net>\n\t-\n\t- @author Julius Härtl <jus@bitgrid.net>\n\t-\n\t- @license AGPL-3.0-or-later\n\t-\n\t- This program is free software: you can redistribute it and/or modify\n\t- it under the terms of the GNU Affero General Public License as\n\t- published by the Free Software Foundation, either version 3 of the\n\t- License, or (at your option) any later version.\n\t-\n\t- This program is distributed in the hope that it will be useful,\n\t- but WITHOUT ANY WARRANTY; without even the implied warranty of\n\t- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the\n\t- GNU Affero General Public License for more details.\n\t-\n\t- You should have received a copy of the GNU Affero General Public License\n\t- along with this program. If not, see <http://www.gnu.org/licenses/>.\n\t-\n\t-->\n\n<template>\n\t<DashboardWidget id=\"calendar_panel\"\n\t\t:items=\"items\"\n\t\t:loading=\"loading\">\n\t\t<template #default=\"{ item }\">\n\t\t\t<EmptyContent v-if=\"item.isEmptyItem\"\n\t\t\t\tid=\"calendar-widget-empty-content\"\n\t\t\t\tclass=\"half-screen\"\n\t\t\t\t:name=\"t('calendar', 'No more events today')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<IconCheck :size=\"67\" />\n\t\t\t\t</template>\n\t\t\t</EmptyContent>\n\t\t\t<DashboardWidgetItem v-else\n\t\t\t\t:main-text=\"item.mainText\"\n\t\t\t\t:sub-text=\"item.subText\"\n\t\t\t\t:target-url=\"item.targetUrl\">\n\t\t\t\t<template #avatar>\n\t\t\t\t\t<div v-if=\"item.componentName === 'VEVENT'\"\n\t\t\t\t\t\tclass=\"calendar-dot\"\n\t\t\t\t\t\t:style=\"{'background-color': item.calendarColor}\"\n\t\t\t\t\t\t:name=\"item.calendarDisplayName\" />\n\t\t\t\t\t<IconCheckbox v-else\n\t\t\t\t\t\t:fill-color=\"item.calendarColor\" />\n\t\t\t\t</template>\n\t\t\t</DashboardWidgetItem>\n\t\t</template>\n\t\t<template #empty-content>\n\t\t\t<EmptyContent id=\"calendar-widget-empty-content\"\n\t\t\t\t:name=\"t('calendar', 'No upcoming events')\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<EmptyCalendar />\n\t\t\t\t</template>\n\t\t\t</EmptyContent>\n\t\t\t<div class=\"empty-label\">\n\t\t\t\t<NcButton type=\"secondary\" :href=\"clickStartNew\">\n\t\t\t\t\t{{ t('calendar', 'Create a new event') }}\n\t\t\t\t</NcButton>\n\t\t\t</div>\n\t\t</template>\n\t</DashboardWidget>\n</template>\n\n<script>\nimport { DashboardWidget, DashboardWidgetItem } from '@nextcloud/vue-dashboard'\nimport { NcEmptyContent as EmptyContent, NcButton } from '@nextcloud/vue'\nimport EmptyCalendar from 'vue-material-design-icons/CalendarBlankOutline.vue'\nimport IconCheck from 'vue-material-design-icons/Check.vue'\nimport IconCheckbox from 'vue-material-design-icons/CheckboxBlankOutline.vue'\nimport { loadState } from '@nextcloud/initial-state'\nimport moment from '@nextcloud/moment'\nimport { imagePath, generateUrl } from '@nextcloud/router'\nimport { initializeClientForUserView } from '../services/caldavService.js'\nimport { dateFactory } from '../utils/date.js'\nimport pLimit from 'p-limit'\nimport { eventSourceFunction } from '../fullcalendar/eventSources/eventSourceFunction.js'\nimport loadMomentLocalization from '../utils/moment.js'\nimport { DateTimeValue } from '@nextcloud/calendar-js'\nimport { mapGetters } from 'vuex'\n\nexport default {\n\tname: 'Dashboard',\n\tcomponents: {\n\t  DashboardWidget,\n\t\tDashboardWidgetItem,\n\t  NcButton,\n\t\tEmptyContent,\n\t  EmptyCalendar,\n\t  IconCheck,\n\t  IconCheckbox,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tevents: null,\n\t\t\tlocale: 'en',\n\t\t\timagePath: imagePath('calendar', 'illustrations/calendar'),\n\t\t\tloading: true,\n\t\t\tnow: dateFactory(),\n\t\t}\n\t},\n\tcomputed: {\n\t\t...mapGetters({\n\t\t\ttimezoneObject: 'getResolvedTimezoneObject',\n\t\t}),\n\t\t/**\n\t\t * Format loaded events\n\t\t *\n\t\t * @return {Array}\n\t\t */\n\t\titems() {\n\t\t\tif (!Array.isArray(this.events) || this.events.length === 0) {\n\t\t\t\treturn []\n\t\t\t}\n\n\t\t\tconst firstEvent = this.events[0]\n\t\t\tconst endOfToday = moment(this.now).endOf('day')\n\t\t\tif (endOfToday.isBefore(firstEvent.startDate)) {\n\t\t\t\treturn [{\n\t\t\t\t\tisEmptyItem: true,\n\t\t\t\t}].concat(this.events.slice(0, 4))\n\t\t\t}\n\n\t\t\treturn this.events\n\t\t},\n\t\t/**\n\t\t * Redirects to the new event route\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tclickStartNew() {\n\t\t\treturn generateUrl('apps/calendar') + '/new'\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.initialize()\n\t},\n\tmethods: {\n\t\t/**\n\t\t * Initialize the widget\n\t\t */\n\t\tasync initialize() {\n\t\t\tconst start = dateFactory()\n\t\t\tconst end = dateFactory()\n\t\t\tend.setDate(end.getDate() + 14)\n\n\t\t\tconst startOfToday = moment(start).startOf('day').toDate()\n\n\t\t\tawait this.initializeEnvironment()\n\t\t\tconst expandedEvents = await this.fetchExpandedEvents(start, end)\n\t\t\tthis.events = await this.formatEvents(expandedEvents, startOfToday)\n\t\t\tthis.loading = false\n\t\t},\n\t\t/**\n\t\t * Initialize everything necessary,\n\t\t * before we can fetch events\n\t\t *\n\t\t * @return {Promise<void>}\n\t\t */\n\t\tasync initializeEnvironment() {\n\t\t\tawait initializeClientForUserView()\n\t\t\tawait this.$store.dispatch('fetchCurrentUserPrincipal')\n\t\t\tawait this.$store.dispatch('loadCollections')\n\n\t\t\tconst {\n\t\t\t\tshow_tasks: showTasks,\n\t\t\t\ttimezone,\n\t\t\t} = loadState('calendar', 'dashboard_data')\n\t\t\tconst locale = await loadMomentLocalization()\n\n\t\t\tthis.$store.commit('loadSettingsFromServer', {\n\t\t\t\ttimezone,\n\t\t\t\tshowTasks,\n\t\t\t})\n\t\t\tthis.$store.commit('setMomentLocale', {\n\t\t\t\tlocale,\n\t\t\t})\n\t\t},\n\t\t/**\n\t\t * Fetch events\n\t\t *\n\t\t * @param {Date} from Start of time-range\n\t\t * @param {Date} to End of time-range\n\t\t * @return {Promise<object[]>}\n\t\t */\n\t\tasync fetchExpandedEvents(from, to) {\n\t\t\tconst limit = pLimit(10)\n\t\t\tconst fetchEventPromises = []\n\t\t\tfor (const calendar of this.$store.getters.enabledCalendars) {\n\t\t\t\tfetchEventPromises.push(limit(async () => {\n\t\t\t\t\tlet timeRangeId\n\t\t\t\t\ttry {\n\t\t\t\t\t\ttimeRangeId = await this.$store.dispatch('getEventsFromCalendarInTimeRange', {\n\t\t\t\t\t\t\tcalendar,\n\t\t\t\t\t\t\tfrom,\n\t\t\t\t\t\t\tto,\n\t\t\t\t\t\t})\n\t\t\t\t\t} catch (e) {\n\t\t\t\t\t\treturn []\n\t\t\t\t\t}\n\n\t\t\t\t\tconst calendarObjects = this.$store.getters.getCalendarObjectsByTimeRangeId(timeRangeId)\n\t\t\t\t\treturn eventSourceFunction(calendarObjects, calendar, from, to, this.timezoneObject)\n\t\t\t\t}))\n\t\t\t}\n\n\t\t\tconst expandedEvents = await Promise.all(fetchEventPromises)\n\t\t\treturn expandedEvents.flat()\n\t\t},\n\t\t/**\n\t\t * @param {object[]} expandedEvents Array of fullcalendar events\n\t\t * @param {Date} filterBefore filter events that start before date\n\t\t * @return {object[]}\n\t\t */\n\t\tformatEvents(expandedEvents, filterBefore) {\n\t\t\treturn expandedEvents\n\t\t\t\t.sort((a, b) => a.start.getTime() - b.start.getTime())\n\t\t\t\t.filter(event => !event.classNames.includes('fc-event-nc-task-completed'))\n\t\t\t\t.filter(event => !event.classNames.includes('fc-event-nc-cancelled'))\n\t\t\t\t.filter(event => filterBefore.getTime() <= event.start.getTime())\n\t\t\t\t.slice(0, 7)\n\t\t\t\t.map((event) => ({\n\t\t\t\t\tisEmptyItem: false,\n\t\t\t\t\tcomponentName: event.extendedProps.objectType,\n\t\t\t\t\ttargetUrl: event.extendedProps.objectType === 'VEVENT'\n\t\t\t\t\t\t? this.getCalendarAppUrl(event)\n\t\t\t\t\t\t: this.getTasksAppUrl(event),\n\t\t\t\t\tsubText: this.formatSubtext(event),\n\t\t\t\t\tmainText: event.title,\n\t\t\t\t\tstartDate: event.start,\n\t\t\t\t\tcalendarColor: this.$store.state.calendars.calendarsById[event.extendedProps.calendarId].color,\n\t\t\t\t\tcalendarDisplayName: this.$store.state.calendars.calendarsById[event.extendedProps.calendarId].displayname,\n\t\t\t\t}))\n\t\t},\n\t\t/**\n\t\t * @param {object} event The full-calendar formatted event\n\t\t * @return {string}\n\t\t */\n\t\tformatSubtext(event) {\n\t\t\tconst locale = this.$store.state.settings.momentLocale\n\n\t\t\tif (event.allDay) {\n\t\t\t\treturn moment(event.start).locale(locale).calendar(null, {\n\t\t\t\t\t// TRANSLATORS Please translate only the text in brackets and keep the brackets!\n\t\t\t\t\tsameDay: t('calendar', '[Today]'),\n\t\t\t\t\t// TRANSLATORS Please translate only the text in brackets and keep the brackets!\n\t\t\t\t\tnextDay: t('calendar', '[Tomorrow]'),\n\t\t\t\t\tnextWeek: 'dddd',\n\t\t\t\t\t// TRANSLATORS Please translate only the text in brackets and keep the brackets!\n\t\t\t\t\tlastDay: t('calendar', '[Yesterday]'),\n\t\t\t\t\t// TRANSLATORS Please translate only the text in brackets and keep the brackets!\n\t\t\t\t\tlastWeek: t('calendar', '[Last] dddd'),\n\t\t\t\t\tsameElse: () => '[replace-from-now]',\n\t\t\t\t}).replace('replace-from-now', moment(event.start).locale(locale).fromNow())\n\t\t\t} else {\n\t\t\t\tconst start = DateTimeValue.fromJSDate(event.start).getInTimezone(this.timezoneObject)\n\t\t\t\tconst utcOffset = start.utcOffset() / 60\n\t\t\t\treturn moment(event.start)\n\t\t\t\t\t.utcOffset(utcOffset)\n\t\t\t\t\t.locale(locale)\n\t\t\t\t\t.calendar(null, {\n\t\t\t\t\t\tsameElse: () => '[replace-from-now]',\n\t\t\t\t\t})\n\t\t\t\t\t.replace(\n\t\t\t\t\t\t'replace-from-now',\n\t\t\t\t\t\tmoment(event.start).utcOffset(utcOffset).locale(locale).fromNow(),\n\t\t\t\t\t)\n\t\t\t}\n\t\t},\n\t\t/**\n\t\t * @param {object} data The data destructuring object\n\t\t * @param {object} data.extendedProps Extended Properties of the FC object\n\t\t * @return {string}\n\t\t */\n\t\tgetCalendarAppUrl({ extendedProps }) {\n\t\t\treturn generateUrl('apps/calendar') + '/edit/' + extendedProps.objectId + '/' + extendedProps.recurrenceId\n\t\t},\n\t\t/**\n\t\t * @param {object} data The data destructuring object\n\t\t * @param {object} data.extendedProps Extended Properties of the FC object\n\t\t * @return {string}\n\t\t */\n\t\tgetTasksAppUrl({ extendedProps }) {\n\t\t\tconst davUrlParts = extendedProps.davUrl.split('/')\n\t\t\tconst taskId = davUrlParts.pop()\n\t\t\tconst calendarId = davUrlParts.pop()\n\t\t\treturn generateUrl('apps/tasks') + `/#/calendars/${calendarId}/tasks/${taskId}`\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n#calendar_panel {\n\t.calendar-dot {\n\t\tflex-shrink: 0;\n\t\theight: 1rem;\n\t\twidth: 1rem;\n\t\tmargin-top: 0.2rem;\n\t\tborder-radius: 50%;\n\t}\n\n\t#calendar-widget-empty-content {\n\t\ttext-align: center;\n\t\tmargin-top: 5vh;\n\n\t\t&.half-screen {\n\t\t\tmargin-top: 0;\n\t\t\theight: 120px;\n\t\t\tmargin-bottom: 2vh;\n\t\t}\n\n\t}\n\n\t.empty-label {\n\t\tdisplay: flex;\n\t\tjustify-content: center;\n\t\tmargin-top: 5vh;\n\t}\n}\n</style>\n","import mod from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js\"; export default mod; export * from \"-!../../node_modules/babel-loader/lib/index.js!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=script&lang=js\"","import { render, staticRenderFns } from \"./Dashboard.vue?vue&type=template&id=6dcb2714\"\nimport script from \"./Dashboard.vue?vue&type=script&lang=js\"\nexport * from \"./Dashboard.vue?vue&type=script&lang=js\"\nimport style0 from \"./Dashboard.vue?vue&type=style&index=0&id=6dcb2714&prod&lang=scss\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n  script,\n  render,\n  staticRenderFns,\n  false,\n  null,\n  null,\n  null\n  \n)\n\nexport default component.exports","// style-loader: Adds some css to the DOM by adding a <style> tag\n\n// load the styles\nvar content = require(\"!!../../node_modules/css-loader/dist/cjs.js!../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../node_modules/resolve-url-loader/index.js!../../node_modules/sass-loader/dist/cjs.js??clonedRuleSet-2.use[3]!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Dashboard.vue?vue&type=style&index=0&id=6dcb2714&prod&lang=scss\");\nif(content.__esModule) content = content.default;\nif(typeof content === 'string') content = [[module.id, content, '']];\nif(content.locals) module.exports = content.locals;\n// add the styles to the DOM\nvar add = require(\"!../../node_modules/vue-style-loader/lib/addStylesClient.js\").default\nvar update = add(\"d84a2ee6\", content, true, {});"],"names":["COMPONENT_NAME_EVENT","COMPONENT_NAME_JOURNAL","COMPONENT_NAME_VTODO","PRINCIPAL_PREFIX_USER","PRINCIPAL_PREFIX_GROUP","PRINCIPAL_PREFIX_CIRCLE","PRINCIPAL_PREFIX_CALENDAR_RESOURCE","PRINCIPAL_PREFIX_CALENDAR_ROOM","CALDAV_BIRTHDAY_CALENDAR","IMPORT_STAGE_DEFAULT","IMPORT_STAGE_IMPORTING","IMPORT_STAGE_PROCESSING","clients","getClient","headers","arguments","length","undefined","clientKey","JSON","stringify","getClientKey","DavClient","rootUrl","generateRemoteUrl","mergedHeaders","requesttoken","getRequestToken","xhr","XMLHttpRequest","oldOpen","open","result","apply","this","name","setRequestHeader","OC","registerXHRForErrorProcessing","initializeClientForUserView","async","connect","enableCalDAV","getCalendarHome","calendarHomes","findAll","findAllCalDAVCollectionsGrouped","findAllDeletedCalendars","findPublicCalendarsByTokens","findPromises","token","tokens","promise","publicCalendarHome","find","catch","push","Promise","all","filter","calendar","createCalendar","displayName","color","components","order","timezoneIcs","createCalendarCollection","createSubscription","source","createSubscribedCollection","enableBirthdayCalendar","getBirthdayCalendar","getCurrentUserPrincipal","currentUserPrincipal","findPrincipalByUrl","findPrincipal","url","updateTalkParticipants","eventComponent","_eventComponent$getCo","_eventComponent$getCo2","apiVersion","loadState","getConferenceList","uri","location","startsWith","window","protocol","host","logger","debug","match","data","ocs","room","HTTPClient","get","generateOcsUrl","participantsResponse","some","participant","actorId","getCurrentUser","uid","participantType","currentUser","conversation","console","info","attendee","getAttendeeIterator","includes","userType","participantId","removeMailtoPrefix","email","_searchResult$data$oc","searchResult","encodeURIComponent","id","post","newParticipant","type","error","warn","slice","dateFactory","Date","getUnixTimestampFromDate","date","Math","floor","getTime","getDateFromDateTimeValue","dateTimeValue","year","month","day","hour","minute","___CSS_LOADER_EXPORT___","module","map","webpackAsyncContext","req","__webpack_require__","o","resolve","then","e","Error","code","ids","t","keys","Object","exports","eventSourceFunction","calendarObjects","start","end","timezone","fcEvents","calendarObject","allObjectsInTimeRange","getAllObjectsInTimeRange","message","object","classNames","status","hasComponent","endDate","jsStart","jsEnd","title","startDate","getInTimezone","jsDate","setSeconds","getSeconds","percent","replace","concat","fcEvent","join","allDay","isAllDay","extendedProps","objectId","recurrenceId","getReferenceRecurrenceId","unixTime","canModifyAllDay","calendarOrder","calendarName","calendarId","darkText","isLight","hexToRGB","objectType","davUrl","dav","description","customColor","getHexForColorName","backgroundColor","borderColor","textColor","generateTextColorForHex","getLocaleFor","locale","splitLocale","split","DashboardWidget","DashboardWidgetItem","NcButton","EmptyContent","EmptyCalendar","IconCheck","IconCheckbox","events","imagePath","loading","now","computed","mapGetters","timezoneObject","items","Array","isArray","firstEvent","moment","endOf","isBefore","isEmptyItem","clickStartNew","generateUrl","mounted","initialize","methods","setDate","getDate","startOfToday","startOf","toDate","initializeEnvironment","expandedEvents","fetchExpandedEvents","formatEvents","$store","dispatch","show_tasks","showTasks","getLocale","toLowerCase","language","getLanguage","realLocale","realLanguage","defineLocale","parentLocale","longDateFormat","LT","localeData","LTS","L","LL","LLL","LLLL","l","ll","lll","llll","week","dow","firstDayOfWeek","doy","firstDayOfYear","loadMomentLocalization","commit","from","to","limit","pLimit","fetchEventPromises","getters","enabledCalendars","timeRangeId","getCalendarObjectsByTimeRangeId","flat","filterBefore","sort","a","b","event","componentName","targetUrl","getCalendarAppUrl","getTasksAppUrl","subText","formatSubtext","mainText","calendarColor","state","calendars","calendarsById","calendarDisplayName","displayname","settings","momentLocale","sameDay","nextDay","nextWeek","lastDay","lastWeek","sameElse","fromNow","utcOffset","DateTimeValue","fromJSDate","_ref","_ref2","davUrlParts","taskId","pop","_vm","_c","_self","attrs","scopedSlots","_u","key","fn","item","staticClass","proxy","style","_v","_s","content","__esModule","default","locals","add"],"sourceRoot":""}

Zerion Mini Shell 1.0