1
0

dav-settings-personal-availability.js.map 36 KB

1
  1. {"version":3,"file":"dav-settings-personal-availability.js?v=26e58c0d74caf9507449","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/apps/dav/src/dav/client.js","webpack:///nextcloud/apps/dav/src/service/logger.js","webpack:///nextcloud/apps/dav/src/service/CalendarService.js","webpack:///nextcloud/apps/dav/src/service/PreferenceService.js","webpack:///nextcloud/apps/dav/src/views/Availability.vue","webpack:///nextcloud/apps/dav/src/views/Availability.vue?vue&type=script&lang=js&","webpack://nextcloud/./apps/dav/src/views/Availability.vue?540e","webpack://nextcloud/./apps/dav/src/views/Availability.vue?aa5a","webpack:///nextcloud/apps/dav/src/views/Availability.vue?vue&type=template&id=e90bacba&scoped=true&","webpack:///nextcloud/apps/dav/src/settings-personal-availability.js","webpack:///nextcloud/apps/dav/src/views/Availability.vue?vue&type=style&index=0&id=e90bacba&lang=scss&scoped=true&","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/amd define","webpack:///nextcloud/webpack/runtime/amd options","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/global","webpack:///nextcloud/webpack/runtime/hasOwnProperty shorthand","webpack:///nextcloud/webpack/runtime/make namespace object","webpack:///nextcloud/webpack/runtime/node module decorator","webpack:///nextcloud/webpack/runtime/runtimeId","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = function(result, chunkIds, fn, priority) {\n\tif(chunkIds) {\n\t\tpriority = priority || 0;\n\t\tfor(var i = deferred.length; i > 0 && deferred[i - 1][2] > priority; i--) deferred[i] = deferred[i - 1];\n\t\tdeferred[i] = [chunkIds, fn, priority];\n\t\treturn;\n\t}\n\tvar notFulfilled = Infinity;\n\tfor (var i = 0; i < deferred.length; i++) {\n\t\tvar chunkIds = deferred[i][0];\n\t\tvar fn = deferred[i][1];\n\t\tvar priority = deferred[i][2];\n\t\tvar fulfilled = true;\n\t\tfor (var j = 0; j < chunkIds.length; j++) {\n\t\t\tif ((priority & 1 === 0 || notFulfilled >= priority) && Object.keys(__webpack_require__.O).every(function(key) { return __webpack_require__.O[key](chunkIds[j]); })) {\n\t\t\t\tchunkIds.splice(j--, 1);\n\t\t\t} else {\n\t\t\t\tfulfilled = false;\n\t\t\t\tif(priority < notFulfilled) notFulfilled = priority;\n\t\t\t}\n\t\t}\n\t\tif(fulfilled) {\n\t\t\tdeferred.splice(i--, 1)\n\t\t\tvar r = fn();\n\t\t\tif (r !== undefined) result = r;\n\t\t}\n\t}\n\treturn result;\n};","/*\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\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 * as webdav from 'webdav'\nimport axios from '@nextcloud/axios'\nimport memoize from 'lodash/fp/memoize'\nimport { generateRemoteUrl } from '@nextcloud/router'\nimport { getCurrentUser } from '@nextcloud/auth'\n\nexport const getClient = memoize((service) => {\n\t// Add this so the server knows it is an request from the browser\n\taxios.defaults.headers['X-Requested-With'] = 'XMLHttpRequest'\n\n\t// force our axios\n\tconst patcher = webdav.getPatcher()\n\tpatcher.patch('request', axios)\n\n\treturn webdav.createClient(\n\t\tgenerateRemoteUrl(`dav/${service}/${getCurrentUser().uid}`)\n\t)\n})\n","/*\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\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 */\nimport { getLoggerBuilder } from '@nextcloud/logger'\n\nconst logger = getLoggerBuilder()\n\t.setApp('dav')\n\t.detectUser()\n\t.build()\n\nexport default logger\n","/**\n * @copyright 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\n *\n * @author 2021 Christoph Wurst <christoph@winzerhof-wurst.at>\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 */\nimport { getClient } from '../dav/client'\nimport logger from './logger'\nimport { parseXML } from 'webdav/dist/node/tools/dav'\n\nimport {\n\tslotsToVavailability,\n\tvavailabilityToSlots,\n} from '@nextcloud/calendar-availability-vue'\n\n/**\n *\n */\nexport function getEmptySlots() {\n\treturn {\n\t\tMO: [],\n\t\tTU: [],\n\t\tWE: [],\n\t\tTH: [],\n\t\tFR: [],\n\t\tSA: [],\n\t\tSU: [],\n\t}\n}\n\n/**\n *\n */\nexport async function findScheduleInboxAvailability() {\n\tconst client = getClient('calendars')\n\n\tconst response = await client.customRequest('inbox', {\n\t\tmethod: 'PROPFIND',\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t<x0:propfind xmlns:x0=\"DAV:\">\n\t\t\t <x0:prop>\n\t\t\t\t<x1:calendar-availability xmlns:x1=\"urn:ietf:params:xml:ns:caldav\"/>\n\t\t\t </x0:prop>\n\t\t\t</x0:propfind>`,\n\t})\n\n\tconst xml = await parseXML(response.data)\n\n\tif (!xml) {\n\t\treturn undefined\n\t}\n\n\tconst availability = xml?.multistatus?.response[0]?.propstat?.prop['calendar-availability']\n\tif (!availability) {\n\t\treturn undefined\n\t}\n\n\treturn vavailabilityToSlots(availability)\n}\n\n/**\n * @param {any} slots -\n * @param {any} timezoneId -\n */\nexport async function saveScheduleInboxAvailability(slots, timezoneId) {\n\tconst all = [...Object.keys(slots).flatMap(dayId => slots[dayId].map(slot => ({\n\t\t...slot,\n\t\tday: dayId,\n\t})))]\n\n\tconst vavailability = slotsToVavailability(all, timezoneId)\n\n\tlogger.debug('New availability ical created', {\n\t\tvavailability,\n\t})\n\n\tconst client = getClient('calendars')\n\tawait client.customRequest('inbox', {\n\t\tmethod: 'PROPPATCH',\n\t\tdata: `<?xml version=\"1.0\"?>\n\t\t\t<x0:propertyupdate xmlns:x0=\"DAV:\">\n\t\t\t <x0:set>\n\t\t\t\t<x0:prop>\n\t\t\t\t <x1:calendar-availability xmlns:x1=\"urn:ietf:params:xml:ns:caldav\">${vavailability}</x1:calendar-availability>\n\t\t\t\t</x0:prop>\n\t\t\t </x0:set>\n\t\t\t</x0:propertyupdate>`,\n\t})\n}\n","/**\n * @copyright 2022 Joas Schilling <coding@schilljs.com>\n *\n * @author Joas Schilling <coding@schilljs.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 axios from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n * Enable user status automation based on availability\n */\nexport async function enableUserStatusAutomation() {\n\treturn await axios.post(\n\t\tgenerateOcsUrl('/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\tappId: 'dav',\n\t\t\tconfigKey: 'user_status_automation',\n\t\t}),\n\t\t{\n\t\t\tconfigValue: 'yes',\n\t\t}\n\t)\n}\n\n/**\n * Disable user status automation based on availability\n */\nexport async function disableUserStatusAutomation() {\n\treturn await axios.delete(\n\t\tgenerateOcsUrl('/apps/provisioning_api/api/v1/config/users/{appId}/{configKey}', {\n\t\t\tappId: 'dav',\n\t\t\tconfigKey: 'user_status_automation',\n\t\t})\n\t)\n}\n","<template>\n\t<NcSettingsSection :title=\"$t('dav', 'Availability')\"\n\t\t:description=\"$t('dav', 'If you configure your working hours, other users will see when you are out of office when they book a meeting.')\">\n\t\t<div class=\"time-zone\">\n\t\t\t<strong>\n\t\t\t\t{{ $t('dav', 'Time zone:') }}\n\t\t\t</strong>\n\t\t\t<span class=\"time-zone-text\">\n\t\t\t\t<NcTimezonePicker v-model=\"timezone\" />\n\t\t\t</span>\n\t\t</div>\n\n\t\t<CalendarAvailability :slots.sync=\"slots\"\n\t\t\t:loading=\"loading\"\n\t\t\t:l10n-to=\"$t('dav', 'to')\"\n\t\t\t:l10n-delete-slot=\"$t('dav', 'Delete slot')\"\n\t\t\t:l10n-empty-day=\"$t('dav', 'No working hours set')\"\n\t\t\t:l10n-add-slot=\"$t('dav', 'Add slot')\"\n\t\t\t:l10n-monday=\"$t('dav', 'Monday')\"\n\t\t\t:l10n-tuesday=\"$t('dav', 'Tuesday')\"\n\t\t\t:l10n-wednesday=\"$t('dav', 'Wednesday')\"\n\t\t\t:l10n-thursday=\"$t('dav', 'Thursday')\"\n\t\t\t:l10n-friday=\"$t('dav', 'Friday')\"\n\t\t\t:l10n-saturday=\"$t('dav', 'Saturday')\"\n\t\t\t:l10n-sunday=\"$t('dav', 'Sunday')\" />\n\n\t\t<NcCheckboxRadioSwitch :checked.sync=\"automated\">\n\t\t\t{{ $t('dav', 'Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications.') }}\n\t\t</NcCheckboxRadioSwitch>\n\n\t\t<NcButton :disabled=\"loading || saving\"\n\t\t\ttype=\"primary\"\n\t\t\t@click=\"save\">\n\t\t\t{{ $t('dav', 'Save') }}\n\t\t</NcButton>\n\t</NcSettingsSection>\n</template>\n\n<script>\nimport { CalendarAvailability } from '@nextcloud/calendar-availability-vue'\nimport { loadState } from '@nextcloud/initial-state'\nimport {\n\tshowError,\n\tshowSuccess,\n} from '@nextcloud/dialogs'\nimport {\n\tfindScheduleInboxAvailability,\n\tgetEmptySlots,\n\tsaveScheduleInboxAvailability,\n} from '../service/CalendarService'\nimport {\n\tenableUserStatusAutomation,\n\tdisableUserStatusAutomation,\n} from '../service/PreferenceService'\nimport jstz from 'jstimezonedetect'\nimport NcButton from '@nextcloud/vue/dist/Components/NcButton'\nimport NcCheckboxRadioSwitch from '@nextcloud/vue/dist/Components/NcCheckboxRadioSwitch'\nimport NcSettingsSection from '@nextcloud/vue/dist/Components/NcSettingsSection'\nimport NcTimezonePicker from '@nextcloud/vue/dist/Components/NcTimezonePicker'\n\nexport default {\n\tname: 'Availability',\n\tcomponents: {\n\t\tNcButton,\n\t\tNcCheckboxRadioSwitch,\n\t\tCalendarAvailability,\n\t\tNcSettingsSection,\n\t\tNcTimezonePicker,\n\t},\n\tdata() {\n\t\t// Try to determine the current timezone, and fall back to UTC otherwise\n\t\tconst defaultTimezone = jstz.determine()\n\t\tconst defaultTimezoneId = defaultTimezone ? defaultTimezone.name() : 'UTC'\n\n\t\treturn {\n\t\t\tloading: true,\n\t\t\tsaving: false,\n\t\t\ttimezone: defaultTimezoneId,\n\t\t\tslots: getEmptySlots(),\n\t\t\tautomated: loadState('dav', 'user_status_automation') === 'yes',\n\t\t}\n\t},\n\tasync mounted() {\n\t\ttry {\n\t\t\tconst slotData = await findScheduleInboxAvailability()\n\t\t\tif (!slotData) {\n\t\t\t\tconsole.info('no availability is set')\n\t\t\t\tthis.slots = getEmptySlots()\n\t\t\t} else {\n\t\t\t\tconst { slots, timezoneId } = slotData\n\t\t\t\tthis.slots = slots\n\t\t\t\tif (timezoneId) {\n\t\t\t\t\tthis.timezone = timezoneId\n\t\t\t\t}\n\t\t\t\tconsole.info('availability loaded', this.slots, this.timezoneId)\n\t\t\t}\n\t\t} catch (e) {\n\t\t\tconsole.error('could not load existing availability', e)\n\n\t\t\tshowError(t('dav', 'Failed to load availability'))\n\t\t} finally {\n\t\t\tthis.loading = false\n\t\t}\n\t},\n\tmethods: {\n\t\tasync save() {\n\t\t\ttry {\n\t\t\t\tthis.saving = true\n\n\t\t\t\tawait saveScheduleInboxAvailability(this.slots, this.timezone)\n\t\t\t\tif (this.automated) {\n\t\t\t\t\tawait enableUserStatusAutomation()\n\t\t\t\t} else {\n\t\t\t\t\tawait disableUserStatusAutomation()\n\t\t\t\t}\n\n\t\t\t\tshowSuccess(t('dav', 'Saved availability'))\n\t\t\t} catch (e) {\n\t\t\t\tconsole.error('could not save availability', e)\n\n\t\t\t\tshowError(t('dav', 'Failed to save availability'))\n\t\t\t} finally {\n\t\t\t\tthis.saving = false\n\t\t\t}\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\" scoped>\n.availability-day {\n\tpadding: 0 10px 0 10px;\n\tposition: absolute;\n}\n.availability-slots {\n\tdisplay: flex;\n\twhite-space: nowrap;\n}\n.availability-slot {\n\tdisplay: flex;\n\tflex-direction: row;\n\talign-items: center;\n}\n.availability-slot-group {\n\tdisplay: flex;\n\tflex-direction: column;\n}\n::v-deep .mx-input-wrapper {\n\twidth: 85px;\n}\n::v-deep .mx-datepicker {\n\twidth: 97px;\n}\n::v-deep .multiselect {\n\tborder: 1px solid var(--color-border-dark);\n\twidth: 120px;\n}\n.time-zone {\n\tpadding: 32px 12px 12px 0;\n}\n.grid-table {\n\tdisplay: grid;\n\tmargin-bottom: 32px;\n\tgrid-column-gap: 24px;\n\tgrid-row-gap: 6px;\n\tgrid-template-columns: min-content min-content min-content;\n}\n.button {\n\talign-self: flex-end;\n}\n.label-weekday {\n\tposition: relative;\n\tdisplay: inline-flex;\n\tpadding-top: 4px;\n}\n.delete-slot {\n\tbackground-color: transparent;\n\tborder: none;\n\tpadding-bottom: 12px;\n\topacity: .5;\n\t&:hover {\n\t\topacity: 1;\n\t}\n}\n\n.add-another {\n\tbackground-color: transparent;\n\tborder: none;\n\topacity: .5;\n\tdisplay: inline-flex;\n\tpadding: 0;\n\tmargin: 0;\n\tmargin-bottom: 3px;\n\n\t&:hover {\n\t\topacity: 1;\n\t}\n}\n.to-text {\n\tpadding-right: 12px;\n}\n.time-zone-text{\n\tpadding-left: 22px;\n}\n.empty-content {\n\tcolor: var(--color-text-lighter);\n\tmargin-top: 4px;\n}\n\n</style>\n","import mod from \"-!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Availability.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!./Availability.vue?vue&type=script&lang=js&\"","\n import API from \"!../../../../node_modules/style-loader/dist/runtime/injectStylesIntoStyleTag.js\";\n import domAPI from \"!../../../../node_modules/style-loader/dist/runtime/styleDomAPI.js\";\n import insertFn from \"!../../../../node_modules/style-loader/dist/runtime/insertBySelector.js\";\n import setAttributes from \"!../../../../node_modules/style-loader/dist/runtime/setAttributesWithoutAttributes.js\";\n import insertStyleElement from \"!../../../../node_modules/style-loader/dist/runtime/insertStyleElement.js\";\n import styleTagTransformFn from \"!../../../../node_modules/style-loader/dist/runtime/styleTagTransform.js\";\n import content, * as namedExport from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Availability.vue?vue&type=style&index=0&id=e90bacba&lang=scss&scoped=true&\";\n \n \n\nvar options = {};\n\noptions.styleTagTransform = styleTagTransformFn;\noptions.setAttributes = setAttributes;\n\n options.insert = insertFn.bind(null, \"head\");\n \noptions.domAPI = domAPI;\noptions.insertStyleElement = insertStyleElement;\n\nvar update = API(content, options);\n\n\n\nexport * from \"!!../../../../node_modules/css-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../../node_modules/sass-loader/dist/cjs.js!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Availability.vue?vue&type=style&index=0&id=e90bacba&lang=scss&scoped=true&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./Availability.vue?vue&type=template&id=e90bacba&scoped=true&\"\nimport script from \"./Availability.vue?vue&type=script&lang=js&\"\nexport * from \"./Availability.vue?vue&type=script&lang=js&\"\nimport style0 from \"./Availability.vue?vue&type=style&index=0&id=e90bacba&lang=scss&scoped=true&\"\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 \"e90bacba\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('NcSettingsSection',{attrs:{\"title\":_vm.$t('dav', 'Availability'),\"description\":_vm.$t('dav', 'If you configure your working hours, other users will see when you are out of office when they book a meeting.')}},[_c('div',{staticClass:\"time-zone\"},[_c('strong',[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.$t('dav', 'Time zone:'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('span',{staticClass:\"time-zone-text\"},[_c('NcTimezonePicker',{model:{value:(_vm.timezone),callback:function ($$v) {_vm.timezone=$$v},expression:\"timezone\"}})],1)]),_vm._v(\" \"),_c('CalendarAvailability',{attrs:{\"slots\":_vm.slots,\"loading\":_vm.loading,\"l10n-to\":_vm.$t('dav', 'to'),\"l10n-delete-slot\":_vm.$t('dav', 'Delete slot'),\"l10n-empty-day\":_vm.$t('dav', 'No working hours set'),\"l10n-add-slot\":_vm.$t('dav', 'Add slot'),\"l10n-monday\":_vm.$t('dav', 'Monday'),\"l10n-tuesday\":_vm.$t('dav', 'Tuesday'),\"l10n-wednesday\":_vm.$t('dav', 'Wednesday'),\"l10n-thursday\":_vm.$t('dav', 'Thursday'),\"l10n-friday\":_vm.$t('dav', 'Friday'),\"l10n-saturday\":_vm.$t('dav', 'Saturday'),\"l10n-sunday\":_vm.$t('dav', 'Sunday')},on:{\"update:slots\":function($event){_vm.slots=$event}}}),_vm._v(\" \"),_c('NcCheckboxRadioSwitch',{attrs:{\"checked\":_vm.automated},on:{\"update:checked\":function($event){_vm.automated=$event}}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('dav', 'Automatically set user status to \"Do not disturb\" outside of availability to mute all notifications.'))+\"\\n\\t\")]),_vm._v(\" \"),_c('NcButton',{attrs:{\"disabled\":_vm.loading || _vm.saving,\"type\":\"primary\"},on:{\"click\":_vm.save}},[_vm._v(\"\\n\\t\\t\"+_vm._s(_vm.$t('dav', 'Save'))+\"\\n\\t\")])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport { translate } from '@nextcloud/l10n'\nimport Availability from './views/Availability'\n\nVue.prototype.$t = translate\n\nconst View = Vue.extend(Availability);\n\n(new View({})).$mount('#settings-personal-availability')\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, \".availability-day[data-v-e90bacba]{padding:0 10px 0 10px;position:absolute}.availability-slots[data-v-e90bacba]{display:flex;white-space:nowrap}.availability-slot[data-v-e90bacba]{display:flex;flex-direction:row;align-items:center}.availability-slot-group[data-v-e90bacba]{display:flex;flex-direction:column}[data-v-e90bacba] .mx-input-wrapper{width:85px}[data-v-e90bacba] .mx-datepicker{width:97px}[data-v-e90bacba] .multiselect{border:1px solid var(--color-border-dark);width:120px}.time-zone[data-v-e90bacba]{padding:32px 12px 12px 0}.grid-table[data-v-e90bacba]{display:grid;margin-bottom:32px;grid-column-gap:24px;grid-row-gap:6px;grid-template-columns:min-content min-content min-content}.button[data-v-e90bacba]{align-self:flex-end}.label-weekday[data-v-e90bacba]{position:relative;display:inline-flex;padding-top:4px}.delete-slot[data-v-e90bacba]{background-color:rgba(0,0,0,0);border:none;padding-bottom:12px;opacity:.5}.delete-slot[data-v-e90bacba]:hover{opacity:1}.add-another[data-v-e90bacba]{background-color:rgba(0,0,0,0);border:none;opacity:.5;display:inline-flex;padding:0;margin:0;margin-bottom:3px}.add-another[data-v-e90bacba]:hover{opacity:1}.to-text[data-v-e90bacba]{padding-right:12px}.time-zone-text[data-v-e90bacba]{padding-left:22px}.empty-content[data-v-e90bacba]{color:var(--color-text-lighter);margin-top:4px}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/dav/src/views/Availability.vue\"],\"names\":[],\"mappings\":\"AAkIA,mCACC,qBAAA,CACA,iBAAA,CAED,qCACC,YAAA,CACA,kBAAA,CAED,oCACC,YAAA,CACA,kBAAA,CACA,kBAAA,CAED,0CACC,YAAA,CACA,qBAAA,CAED,oCACC,UAAA,CAED,iCACC,UAAA,CAED,+BACC,yCAAA,CACA,WAAA,CAED,4BACC,wBAAA,CAED,6BACC,YAAA,CACA,kBAAA,CACA,oBAAA,CACA,gBAAA,CACA,yDAAA,CAED,yBACC,mBAAA,CAED,gCACC,iBAAA,CACA,mBAAA,CACA,eAAA,CAED,8BACC,8BAAA,CACA,WAAA,CACA,mBAAA,CACA,UAAA,CACA,oCACC,SAAA,CAIF,8BACC,8BAAA,CACA,WAAA,CACA,UAAA,CACA,mBAAA,CACA,SAAA,CACA,QAAA,CACA,iBAAA,CAEA,oCACC,SAAA,CAGF,0BACC,kBAAA,CAED,iCACC,iBAAA,CAED,gCACC,+BAAA,CACA,cAAA\",\"sourcesContent\":[\"\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n\\n.availability-day {\\n\\tpadding: 0 10px 0 10px;\\n\\tposition: absolute;\\n}\\n.availability-slots {\\n\\tdisplay: flex;\\n\\twhite-space: nowrap;\\n}\\n.availability-slot {\\n\\tdisplay: flex;\\n\\tflex-direction: row;\\n\\talign-items: center;\\n}\\n.availability-slot-group {\\n\\tdisplay: flex;\\n\\tflex-direction: column;\\n}\\n::v-deep .mx-input-wrapper {\\n\\twidth: 85px;\\n}\\n::v-deep .mx-datepicker {\\n\\twidth: 97px;\\n}\\n::v-deep .multiselect {\\n\\tborder: 1px solid var(--color-border-dark);\\n\\twidth: 120px;\\n}\\n.time-zone {\\n\\tpadding: 32px 12px 12px 0;\\n}\\n.grid-table {\\n\\tdisplay: grid;\\n\\tmargin-bottom: 32px;\\n\\tgrid-column-gap: 24px;\\n\\tgrid-row-gap: 6px;\\n\\tgrid-template-columns: min-content min-content min-content;\\n}\\n.button {\\n\\talign-self: flex-end;\\n}\\n.label-weekday {\\n\\tposition: relative;\\n\\tdisplay: inline-flex;\\n\\tpadding-top: 4px;\\n}\\n.delete-slot {\\n\\tbackground-color: transparent;\\n\\tborder: none;\\n\\tpadding-bottom: 12px;\\n\\topacity: .5;\\n\\t&:hover {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n\\n.add-another {\\n\\tbackground-color: transparent;\\n\\tborder: none;\\n\\topacity: .5;\\n\\tdisplay: inline-flex;\\n\\tpadding: 0;\\n\\tmargin: 0;\\n\\tmargin-bottom: 3px;\\n\\n\\t&:hover {\\n\\t\\topacity: 1;\\n\\t}\\n}\\n.to-text {\\n\\tpadding-right: 12px;\\n}\\n.time-zone-text{\\n\\tpadding-left: 22px;\\n}\\n.empty-content {\\n\\tcolor: var(--color-text-lighter);\\n\\tmargin-top: 4px;\\n}\\n\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","// The module cache\nvar __webpack_module_cache__ = {};\n\n// The require function\nfunction __webpack_require__(moduleId) {\n\t// Check if module is in cache\n\tvar cachedModule = __webpack_module_cache__[moduleId];\n\tif (cachedModule !== undefined) {\n\t\treturn cachedModule.exports;\n\t}\n\t// Create a new module (and put it into the cache)\n\tvar module = __webpack_module_cache__[moduleId] = {\n\t\tid: moduleId,\n\t\tloaded: false,\n\t\texports: {}\n\t};\n\n\t// Execute the module function\n\t__webpack_modules__[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n\t// Flag the module as loaded\n\tmodule.loaded = true;\n\n\t// Return the exports of the module\n\treturn module.exports;\n}\n\n// expose the modules object (__webpack_modules__)\n__webpack_require__.m = __webpack_modules__;\n\n","__webpack_require__.amdD = function () {\n\tthrow new Error('define cannot be used indirect');\n};","__webpack_require__.amdO = {};","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = function(module) {\n\tvar getter = module && module.__esModule ?\n\t\tfunction() { return module['default']; } :\n\t\tfunction() { return module; };\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = function(exports, definition) {\n\tfor(var key in definition) {\n\t\tif(__webpack_require__.o(definition, key) && !__webpack_require__.o(exports, key)) {\n\t\t\tObject.defineProperty(exports, key, { enumerable: true, get: definition[key] });\n\t\t}\n\t}\n};","__webpack_require__.g = (function() {\n\tif (typeof globalThis === 'object') return globalThis;\n\ttry {\n\t\treturn this || new Function('return this')();\n\t} catch (e) {\n\t\tif (typeof window === 'object') return window;\n\t}\n})();","__webpack_require__.o = function(obj, prop) { return Object.prototype.hasOwnProperty.call(obj, prop); }","// define __esModule on exports\n__webpack_require__.r = function(exports) {\n\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n\t}\n\tObject.defineProperty(exports, '__esModule', { value: true });\n};","__webpack_require__.nmd = function(module) {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 3347;","__webpack_require__.b = document.baseURI || self.location.href;\n\n// object to store loaded and loading chunks\n// undefined = chunk not loaded, null = chunk preloaded/prefetched\n// [resolve, reject, Promise] = chunk loading, 0 = chunk loaded\nvar installedChunks = {\n\t3347: 0\n};\n\n// no chunk on demand loading\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = function(chunkId) { return installedChunks[chunkId] === 0; };\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = function(parentChunkLoadingFunction, data) {\n\tvar chunkIds = data[0];\n\tvar moreModules = data[1];\n\tvar runtime = data[2];\n\t// add \"moreModules\" to the modules object,\n\t// then flag all \"chunkIds\" as loaded and fire callback\n\tvar moduleId, chunkId, i = 0;\n\tif(chunkIds.some(function(id) { return installedChunks[id] !== 0; })) {\n\t\tfor(moduleId in moreModules) {\n\t\t\tif(__webpack_require__.o(moreModules, moduleId)) {\n\t\t\t\t__webpack_require__.m[moduleId] = moreModules[moduleId];\n\t\t\t}\n\t\t}\n\t\tif(runtime) var result = runtime(__webpack_require__);\n\t}\n\tif(parentChunkLoadingFunction) parentChunkLoadingFunction(data);\n\tfor(;i < chunkIds.length; i++) {\n\t\tchunkId = chunkIds[i];\n\t\tif(__webpack_require__.o(installedChunks, chunkId) && installedChunks[chunkId]) {\n\t\t\tinstalledChunks[chunkId][0]();\n\t\t}\n\t\tinstalledChunks[chunkId] = 0;\n\t}\n\treturn __webpack_require__.O(result);\n}\n\nvar chunkLoadingGlobal = self[\"webpackChunknextcloud\"] = self[\"webpackChunknextcloud\"] || [];\nchunkLoadingGlobal.forEach(webpackJsonpCallback.bind(null, 0));\nchunkLoadingGlobal.push = webpackJsonpCallback.bind(null, chunkLoadingGlobal.push.bind(chunkLoadingGlobal));","__webpack_require__.nc = undefined;","// startup\n// Load entry module and return exports\n// This entry module depends on other loaded chunks and execution need to be delayed\nvar __webpack_exports__ = __webpack_require__.O(undefined, [7874], function() { return __webpack_require__(44435); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","getClient","memoize","service","axios","webdav","patch","generateRemoteUrl","getCurrentUser","uid","getLoggerBuilder","setApp","detectUser","build","findScheduleInboxAvailability","client","customRequest","method","data","response","parseXML","xml","undefined","availability","multistatus","propstat","prop","vavailabilityToSlots","saveScheduleInboxAvailability","slots","timezoneId","all","Object","keys","flatMap","dayId","map","slot","day","vavailability","slotsToVavailability","logger","enableUserStatusAutomation","generateOcsUrl","appId","configKey","configValue","disableUserStatusAutomation","MO","TU","WE","TH","FR","SA","SU","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_h","$createElement","_c","_self","attrs","$t","staticClass","_v","_s","model","value","callback","$$v","timezone","expression","loading","on","$event","automated","saving","save","Vue","translate","Availability","$mount","___CSS_LOADER_EXPORT___","push","module","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","amdD","Error","amdO","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","length","fulfilled","j","every","key","splice","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","get","g","globalThis","Function","e","window","obj","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","b","document","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","nc","__webpack_exports__"],"sourceRoot":""}