1
0

weather_status-weather-status.js.map 65 KB

1
  1. {"version":3,"file":"weather_status-weather-status.js?v=3edb81294cfb2bfcbc16","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","webpack:///nextcloud/webpack/runtime/load script","webpack:///nextcloud/apps/weather_status/src/services/weatherStatusService.js","webpack:///nextcloud/apps/weather_status/src/App.vue","webpack:///nextcloud/apps/weather_status/src/App.vue?vue&type=script&lang=js","webpack://nextcloud/./apps/weather_status/src/App.vue?cd57","webpack://nextcloud/./apps/weather_status/src/App.vue?02d4","webpack://nextcloud/./apps/weather_status/src/App.vue?2990","webpack:///nextcloud/apps/weather_status/src/weather-status.js","webpack:///nextcloud/apps/weather_status/src/App.vue?vue&type=style&index=0&id=5fc6f836&prod&lang=scss","webpack:///nextcloud/webpack/bootstrap","webpack:///nextcloud/webpack/runtime/compat get default export","webpack:///nextcloud/webpack/runtime/define property getters","webpack:///nextcloud/webpack/runtime/ensure chunk","webpack:///nextcloud/webpack/runtime/get javascript chunk filename","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/publicPath","webpack:///nextcloud/webpack/runtime/jsonp chunk loading","webpack:///nextcloud/webpack/runtime/nonce","webpack:///nextcloud/webpack/startup"],"sourcesContent":["var deferred = [];\n__webpack_require__.O = (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((key) => (__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};","var inProgress = {};\nvar dataWebpackPrefix = \"nextcloud:\";\n// loadScript function to load a script via script tag\n__webpack_require__.l = (url, done, key, chunkId) => {\n\tif(inProgress[url]) { inProgress[url].push(done); return; }\n\tvar script, needAttach;\n\tif(key !== undefined) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tfor(var i = 0; i < scripts.length; i++) {\n\t\t\tvar s = scripts[i];\n\t\t\tif(s.getAttribute(\"src\") == url || s.getAttribute(\"data-webpack\") == dataWebpackPrefix + key) { script = s; break; }\n\t\t}\n\t}\n\tif(!script) {\n\t\tneedAttach = true;\n\t\tscript = document.createElement('script');\n\n\t\tscript.charset = 'utf-8';\n\t\tscript.timeout = 120;\n\t\tif (__webpack_require__.nc) {\n\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n\t\t}\n\t\tscript.setAttribute(\"data-webpack\", dataWebpackPrefix + key);\n\n\t\tscript.src = url;\n\t}\n\tinProgress[url] = [done];\n\tvar onScriptComplete = (prev, event) => {\n\t\t// avoid mem leaks in IE.\n\t\tscript.onerror = script.onload = null;\n\t\tclearTimeout(timeout);\n\t\tvar doneFns = inProgress[url];\n\t\tdelete inProgress[url];\n\t\tscript.parentNode && script.parentNode.removeChild(script);\n\t\tdoneFns && doneFns.forEach((fn) => (fn(event)));\n\t\tif(prev) return prev(event);\n\t}\n\tvar timeout = setTimeout(onScriptComplete.bind(null, undefined, { type: 'timeout', target: script }), 120000);\n\tscript.onerror = onScriptComplete.bind(null, script.onerror);\n\tscript.onload = onScriptComplete.bind(null, script.onload);\n\tneedAttach && document.head.appendChild(script);\n};","/**\n * SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport HttpClient from '@nextcloud/axios'\nimport { generateOcsUrl } from '@nextcloud/router'\n\n/**\n *\n *\n * @param {string} lat the latitude\n * @param {string} lon the longitude\n * @return {Promise<object>}\n */\nconst setLocation = async (lat, lon) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/location')\n\tconst response = await HttpClient.put(url, {\n\t\taddress: '',\n\t\tlat,\n\t\tlon,\n\t})\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @param {string} address The location\n * @return {Promise<object>}\n */\nconst setAddress = async (address) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/location')\n\tconst response = await HttpClient.put(url, {\n\t\taddress,\n\t\tlat: null,\n\t\tlon: null,\n\t})\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @param {string} mode can be 1 browser or 2 custom\n * @return {Promise<object>}\n */\nconst setMode = async (mode) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/mode')\n\tconst response = await HttpClient.put(url, {\n\t\tmode,\n\t})\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @return {Promise<object>}\n */\nconst usePersonalAddress = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/use-personal')\n\tconst response = await HttpClient.put(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Fetches the location information for current user\n *\n * @return {Promise<object>}\n */\nconst getLocation = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/location')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Fetches the weather forecast\n *\n * @return {Promise<object>}\n */\nconst fetchForecast = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/forecast')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n * Fetches the location favorites\n *\n * @return {Promise<object>}\n */\nconst getFavorites = async () => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/favorites')\n\tconst response = await HttpClient.get(url)\n\n\treturn response.data.ocs.data\n}\n\n/**\n *\n * @param {Array} favorites List of favorite addresses\n * @return {Promise<object>}\n */\nconst saveFavorites = async (favorites) => {\n\tconst url = generateOcsUrl('apps/weather_status/api/v1/favorites')\n\tconst response = await HttpClient.put(url, {\n\t\tfavorites,\n\t})\n\n\treturn response.data.ocs.data\n}\n\nexport {\n\tusePersonalAddress,\n\tsetMode,\n\tgetLocation,\n\tsetLocation,\n\tsetAddress,\n\tfetchForecast,\n\tgetFavorites,\n\tsaveFavorites,\n}\n","<!--\n - SPDX-FileCopyrightText: 2020 Nextcloud GmbH and Nextcloud contributors\n - SPDX-License-Identifier: AGPL-3.0-or-later\n-->\n\n<template>\n\t<div id=\"weather-status-menu-item\">\n\t\t<NcActions class=\"weather-status-menu-item__subheader\"\n\t\t\t:aria-hidden=\"true\"\n\t\t\t:aria-label=\"currentWeatherMessage\"\n\t\t\t:menu-name=\"currentWeatherMessage\">\n\t\t\t<template #icon>\n\t\t\t\t<NcLoadingIcon v-if=\"loading\" />\n\t\t\t\t<img v-else\n\t\t\t\t\t:src=\"weatherIconUrl\"\n\t\t\t\t\talt=\"\"\n\t\t\t\t\tclass=\"weather-image\">\n\t\t\t</template>\n\t\t\t<NcActionText v-if=\"gotWeather\"\n\t\t\t\t:aria-hidden=\"true\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcLoadingIcon v-if=\"loading\" />\n\t\t\t\t\t<div v-else class=\"weather-action-image-container\">\n\t\t\t\t\t\t<img :src=\"futureWeatherIconUrl\"\n\t\t\t\t\t\t\talt=\"\"\n\t\t\t\t\t\t\tclass=\"weather-image\">\n\t\t\t\t\t</div>\n\t\t\t\t</template>\n\t\t\t\t{{ forecastMessage }}\n\t\t\t</NcActionText>\n\t\t\t<NcActionLink v-if=\"gotWeather\"\n\t\t\t\ttarget=\"_blank\"\n\t\t\t\t:aria-hidden=\"true\"\n\t\t\t\t:href=\"weatherLinkTarget\"\n\t\t\t\t:close-after-click=\"true\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper name=\"MapMarker\"\n\t\t\t\t\t\t:svg=\"mapMarkerSvg\"\n\t\t\t\t\t\t:size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ locationText }}\n\t\t\t</NcActionLink>\n\t\t\t<NcActionButton v-if=\"gotWeather\"\n\t\t\t\t:aria-hidden=\"true\"\n\t\t\t\t@click=\"onAddRemoveFavoriteClick\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper name=\"Star\"\n\t\t\t\t\t\t:svg=\"addRemoveFavoriteSvg\"\n\t\t\t\t\t\t:size=\"20\"\n\t\t\t\t\t\tclass=\"favorite-color\" />\n\t\t\t\t</template>\n\t\t\t\t{{ addRemoveFavoriteText }}\n\t\t\t</NcActionButton>\n\t\t\t<NcActionSeparator v-if=\"address && !errorMessage\" />\n\t\t\t<NcActionButton :close-after-click=\"true\"\n\t\t\t\t:aria-hidden=\"true\"\n\t\t\t\t@click=\"onBrowserLocationClick\">\n\t\t\t\t<template #icon>\n\t\t\t\t\t<NcIconSvgWrapper name=\"Crosshairs\"\n\t\t\t\t\t\t:svg=\"crosshairsSvg\"\n\t\t\t\t\t\t:size=\"20\" />\n\t\t\t\t</template>\n\t\t\t\t{{ t('weather_status', 'Detect location') }}\n\t\t\t</NcActionButton>\n\t\t\t<NcActionInput ref=\"addressInput\"\n\t\t\t\t:label=\"t('weather_status', 'Set custom address')\"\n\t\t\t\t:disabled=\"false\"\n\t\t\t\ticon=\"icon-rename\"\n\t\t\t\t:aria-hidden=\"true\"\n\t\t\t\ttype=\"text\"\n\t\t\t\tvalue=\"\"\n\t\t\t\t@submit=\"onAddressSubmit\" />\n\t\t\t<template v-if=\"favorites.length > 0\">\n\t\t\t\t<NcActionCaption :name=\"t('weather_status', 'Favorites')\" />\n\t\t\t\t<NcActionButton v-for=\"favorite in favorites\"\n\t\t\t\t\t:key=\"favorite\"\n\t\t\t\t\t:aria-hidden=\"true\"\n\t\t\t\t\t@click=\"onFavoriteClick($event, favorite)\">\n\t\t\t\t\t<template #icon>\n\t\t\t\t\t\t<NcIconSvgWrapper name=\"Star\"\n\t\t\t\t\t\t\t:svg=\"starSvg\"\n\t\t\t\t\t\t\t:size=\"20\"\n\t\t\t\t\t\t\t:class=\"{'favorite-color': address === favorite}\" />\n\t\t\t\t\t</template>\n\t\t\t\t\t{{ favorite }}\n\t\t\t\t</NcActionButton>\n\t\t\t</template>\n\t\t</NcActions>\n\t</div>\n</template>\n\n<script>\nimport { showError } from '@nextcloud/dialogs'\nimport moment from '@nextcloud/moment'\nimport { getLocale } from '@nextcloud/l10n'\nimport { imagePath } from '@nextcloud/router'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions.js'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton.js'\nimport NcActionCaption from '@nextcloud/vue/dist/Components/NcActionCaption.js'\nimport NcActionInput from '@nextcloud/vue/dist/Components/NcActionInput.js'\nimport NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink.js'\nimport NcActionSeparator from '@nextcloud/vue/dist/Components/NcActionSeparator.js'\nimport NcActionText from '@nextcloud/vue/dist/Components/NcActionText.js'\nimport NcLoadingIcon from '@nextcloud/vue/dist/Components/NcLoadingIcon.js'\nimport NcIconSvgWrapper from '@nextcloud/vue/dist/Components/NcIconSvgWrapper.js'\nimport * as network from './services/weatherStatusService.js'\nimport crosshairsSvg from '@mdi/svg/svg/crosshairs.svg?raw'\nimport mapMarkerSvg from '@mdi/svg/svg/map-marker.svg?raw'\nimport starSvg from '@mdi/svg/svg/star.svg?raw'\nimport starOutlineSvg from '@mdi/svg/svg/star-outline.svg?raw'\n\nconst MODE_BROWSER_LOCATION = 1\nconst MODE_MANUAL_LOCATION = 2\nconst weatherOptions = {\n\tclearsky_day: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} clear sky later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} clear sky', { temperature, unit }),\n\t},\n\tclearsky_night: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} clear sky later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} clear sky', { temperature, unit }),\n\t},\n\tcloudy: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} cloudy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} cloudy', { temperature, unit }),\n\t},\n\tsnowandthunder: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} snow and thunder later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} snow and thunder', { temperature, unit }),\n\t},\n\tsnowshowersandthunder_day: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} snow showers and thunder later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} snow showers and thunder', { temperature, unit }),\n\t},\n\tsnowshowersandthunder_night: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} snow showers and thunder later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} snow showers and thunder', { temperature, unit }),\n\t},\n\tsnowshowersandthunder_polartwilight: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} snow showers, thunder and polar twilight later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} snow showers, thunder and polar twilight', { temperature, unit }),\n\t},\n\tsnowshowers_day: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} snow showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} snow showers', { temperature, unit }),\n\t},\n\tsnowshowers_night: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} snow showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} snow showers', { temperature, unit }),\n\t},\n\tsnowshowers_polartwilight: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} snow showers and polar twilight later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} snow showers and polar twilight', { temperature, unit }),\n\t},\n\tsnow: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} snow later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} snow', { temperature, unit }),\n\t},\n\tfair_day: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} fair weather later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} fair weather', { temperature, unit }),\n\t},\n\tfair_night: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} fair weather later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} fair weather', { temperature, unit }),\n\t},\n\tpartlycloudy_day: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} partly cloudy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} partly cloudy', { temperature, unit }),\n\t},\n\tpartlycloudy_night: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} partly cloudy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} partly cloudy', { temperature, unit }),\n\t},\n\tfog: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} foggy later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} foggy', { temperature, unit }),\n\t},\n\tlightrain: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} light rainfall later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} light rainfall', { temperature, unit }),\n\t},\n\train: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} rainfall later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} rainfall', { temperature, unit }),\n\t},\n\theavyrain: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} heavy rainfall later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} heavy rainfall', { temperature, unit }),\n\t},\n\trainshowers_day: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} rainfall showers', { temperature, unit }),\n\t},\n\trainshowers_night: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} rainfall showers', { temperature, unit }),\n\t},\n\tlightrainshowers_day: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} light rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} light rainfall showers', { temperature, unit }),\n\t},\n\tlightrainshowers_night: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} light rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} light rainfall showers', { temperature, unit }),\n\t},\n\theavyrainshowers_day: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} heavy rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} heavy rainfall showers', { temperature, unit }),\n\t},\n\theavyrainshowers_night: {\n\t\ttext: (temperature, unit, later = false) => later\n\t\t\t? t('weather_status', '{temperature} {unit} heavy rainfall showers later today', { temperature, unit })\n\t\t\t: t('weather_status', '{temperature} {unit} heavy rainfall showers', { temperature, unit }),\n\t},\n}\n\nexport default {\n\tname: 'App',\n\tcomponents: {\n\t\tNcActions,\n\t\tNcActionButton,\n\t\tNcActionCaption,\n\t\tNcActionInput,\n\t\tNcActionLink,\n\t\tNcActionSeparator,\n\t\tNcActionText,\n\t\tNcLoadingIcon,\n\t\tNcIconSvgWrapper,\n\t},\n\tdata() {\n\t\treturn {\n\t\t\tcrosshairsSvg,\n\t\t\tmapMarkerSvg,\n\t\t\tstarSvg,\n\t\t\tstarOutlineSvg,\n\t\t\tlocale: getLocale(),\n\t\t\tloading: true,\n\t\t\terrorMessage: '',\n\t\t\tmode: MODE_BROWSER_LOCATION,\n\t\t\taddress: null,\n\t\t\tlat: null,\n\t\t\tlon: null,\n\t\t\t// how many hours ahead do we want to see the forecast?\n\t\t\toffset: 5,\n\t\t\tforecasts: [],\n\t\t\tloop: null,\n\t\t\tfavorites: [],\n\t\t}\n\t},\n\tcomputed: {\n\t\tuseFahrenheitLocale() {\n\t\t\treturn ['en_US', 'en_MH', 'en_FM', 'en_PW', 'en_KY', 'en_LR'].includes(this.locale)\n\t\t},\n\t\ttemperatureUnit() {\n\t\t\treturn this.useFahrenheitLocale ? '°F' : '°C'\n\t\t},\n\t\tlocationText() {\n\t\t\treturn t('weather_status', 'More weather for {adr}', { adr: this.address })\n\t\t},\n\t\ttemperature() {\n\t\t\treturn this.getTemperature(this.forecasts, 0)\n\t\t},\n\t\tfutureTemperature() {\n\t\t\treturn this.getTemperature(this.forecasts, this.offset)\n\t\t},\n\t\tweatherCode() {\n\t\t\treturn this.getWeatherCode(this.forecasts, 0)\n\t\t},\n\t\tfutureWeatherCode() {\n\t\t\treturn this.getWeatherCode(this.forecasts, this.offset)\n\t\t},\n\t\tweatherIconUrl() {\n\t\t\treturn this.getWeatherIconUrl(this.weatherCode)\n\t\t},\n\t\tfutureWeatherIconUrl() {\n\t\t\treturn this.getWeatherIconUrl(this.futureWeatherCode)\n\t\t},\n\t\t/**\n\t\t * The message displayed in the top right corner\n\t\t *\n\t\t * @return {string}\n\t\t */\n\t\tcurrentWeatherMessage() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn t('weather_status', 'Loading weather')\n\t\t\t} else if (this.errorMessage) {\n\t\t\t\treturn this.errorMessage\n\t\t\t} else if (this.gotWeather) {\n\t\t\t\treturn this.getWeatherMessage(this.weatherCode, this.temperature)\n\t\t\t} else {\n\t\t\t\treturn t('weather_status', 'Set location for weather')\n\t\t\t}\n\t\t},\n\t\tforecastMessage() {\n\t\t\tif (this.loading) {\n\t\t\t\treturn t('weather_status', 'Loading weather')\n\t\t\t} else if (this.gotWeather) {\n\t\t\t\treturn this.getWeatherMessage(this.futureWeatherCode, this.futureTemperature, true)\n\t\t\t} else {\n\t\t\t\treturn t('weather_status', 'Set location for weather')\n\t\t\t}\n\t\t},\n\t\tweatherLinkTarget() {\n\t\t\treturn 'https://www.windy.com/-Rain-thunder-rain?rain,' + this.lat + ',' + this.lon + ',11'\n\t\t},\n\t\tgotWeather() {\n\t\t\treturn this.address && !this.errorMessage\n\t\t},\n\t\taddRemoveFavoriteSvg() {\n\t\t\treturn this.currentAddressIsFavorite\n\t\t\t\t? starSvg\n\t\t\t\t: starOutlineSvg\n\t\t},\n\t\taddRemoveFavoriteText() {\n\t\t\treturn this.currentAddressIsFavorite\n\t\t\t\t? t('weather_status', 'Remove from favorites')\n\t\t\t\t: t('weather_status', 'Add as favorite')\n\t\t},\n\t\tcurrentAddressIsFavorite() {\n\t\t\treturn this.favorites.find((f) => {\n\t\t\t\treturn f === this.address\n\t\t\t})\n\t\t},\n\t},\n\tmounted() {\n\t\tthis.initWeatherStatus()\n\t},\n\tmethods: {\n\t\tasync initWeatherStatus() {\n\t\t\ttry {\n\t\t\t\tconst loc = await network.getLocation()\n\t\t\t\tthis.lat = loc.lat\n\t\t\t\tthis.lon = loc.lon\n\t\t\t\tthis.address = loc.address\n\t\t\t\tthis.mode = loc.mode\n\n\t\t\t\tif (this.mode === MODE_BROWSER_LOCATION) {\n\t\t\t\t\tthis.askBrowserLocation()\n\t\t\t\t} else if (this.mode === MODE_MANUAL_LOCATION) {\n\t\t\t\t\tthis.startLoop()\n\t\t\t\t}\n\t\t\t\tconst favs = await network.getFavorites()\n\t\t\t\tthis.favorites = favs\n\t\t\t} catch (err) {\n\t\t\t\tif (err?.code === 'ECONNABORTED') {\n\t\t\t\t\tconsole.info('The weather status request was cancelled because the user navigates.')\n\t\t\t\t\treturn\n\t\t\t\t}\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error getting the weather status information.'))\n\t\t\t\t}\n\t\t\t\tconsole.error(err)\n\t\t\t}\n\t\t},\n\t\tstartLoop() {\n\t\t\tclearInterval(this.loop)\n\t\t\tif (this.lat && this.lon) {\n\t\t\t\tthis.loop = setInterval(() => this.getForecast(), 60 * 1000 * 60)\n\t\t\t\tthis.getForecast()\n\t\t\t} else {\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\taskBrowserLocation() {\n\t\t\tthis.loading = true\n\t\t\tthis.errorMessage = ''\n\t\t\tif (navigator.geolocation && window.isSecureContext) {\n\t\t\t\tnavigator.geolocation.getCurrentPosition((position) => {\n\t\t\t\t\tconsole.debug('browser location success')\n\t\t\t\t\tthis.lat = position.coords.latitude\n\t\t\t\t\tthis.lon = position.coords.longitude\n\t\t\t\t\tthis.saveMode(MODE_BROWSER_LOCATION)\n\t\t\t\t\tthis.mode = MODE_BROWSER_LOCATION\n\t\t\t\t\tthis.saveLocation(this.lat, this.lon)\n\t\t\t\t},\n\t\t\t\t(error) => {\n\t\t\t\t\tconsole.debug('location permission refused')\n\t\t\t\t\tconsole.debug(error)\n\t\t\t\t\tthis.saveMode(MODE_MANUAL_LOCATION)\n\t\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\t\t// fallback on what we have if possible\n\t\t\t\t\tif (this.lat && this.lon) {\n\t\t\t\t\t\tthis.startLoop()\n\t\t\t\t\t} else {\n\t\t\t\t\t\tthis.usePersonalAddress()\n\t\t\t\t\t}\n\t\t\t\t})\n\t\t\t} else {\n\t\t\t\tconsole.debug('no secure context!')\n\t\t\t\tthis.saveMode(MODE_MANUAL_LOCATION)\n\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\tthis.startLoop()\n\t\t\t}\n\t\t},\n\t\tasync getForecast() {\n\t\t\ttry {\n\t\t\t\tthis.forecasts = await network.fetchForecast()\n\t\t\t} catch (err) {\n\t\t\t\tthis.errorMessage = t('weather_status', 'No weather information found')\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t\tthis.loading = false\n\t\t},\n\t\tasync setAddress(address) {\n\t\t\tthis.loading = true\n\t\t\tthis.errorMessage = ''\n\t\t\ttry {\n\t\t\t\tconst loc = await network.setAddress(address)\n\t\t\t\tif (loc.success) {\n\t\t\t\t\tthis.lat = loc.lat\n\t\t\t\t\tthis.lon = loc.lon\n\t\t\t\t\tthis.address = loc.address\n\t\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\t\tthis.startLoop()\n\t\t\t\t} else {\n\t\t\t\t\tthis.errorMessage = t('weather_status', 'Location not found')\n\t\t\t\t\tthis.loading = false\n\t\t\t\t}\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error setting the location address.'))\n\t\t\t\t}\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\tasync saveLocation(lat, lon) {\n\t\t\ttry {\n\t\t\t\tconst loc = await network.setLocation(lat, lon)\n\t\t\t\tthis.address = loc.address\n\t\t\t\tthis.startLoop()\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error setting the location.'))\n\t\t\t\t}\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t},\n\t\tasync saveMode(mode) {\n\t\t\ttry {\n\t\t\t\tawait network.setMode(mode)\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error saving the mode.'))\n\t\t\t\t}\n\t\t\t\tconsole.debug(err)\n\t\t\t}\n\t\t},\n\t\tonBrowserLocationClick() {\n\t\t\tthis.askBrowserLocation()\n\t\t},\n\t\tasync usePersonalAddress() {\n\t\t\tthis.loading = true\n\t\t\ttry {\n\t\t\t\tconst loc = await network.usePersonalAddress()\n\t\t\t\tthis.lat = loc.lat\n\t\t\t\tthis.lon = loc.lon\n\t\t\t\tthis.address = loc.address\n\t\t\t\tthis.mode = MODE_MANUAL_LOCATION\n\t\t\t\tthis.startLoop()\n\t\t\t} catch (err) {\n\t\t\t\tif (err.response && err.response.status === 401) {\n\t\t\t\t\tshowError(t('weather_status', 'You are not logged in.'))\n\t\t\t\t} else {\n\t\t\t\t\tshowError(t('weather_status', 'There was an error using personal address.'))\n\t\t\t\t}\n\t\t\t\tconsole.debug(err)\n\t\t\t\tthis.loading = false\n\t\t\t}\n\t\t},\n\t\tonAddressSubmit() {\n\t\t\tconst newAddress = this.$refs.addressInput.$el.querySelector('input[type=\"text\"]').value\n\t\t\tthis.setAddress(newAddress)\n\t\t},\n\t\tgetLocalizedTemperature(celcius) {\n\t\t\treturn this.useFahrenheitLocale\n\t\t\t\t? (celcius * (9 / 5)) + 32\n\t\t\t\t: celcius\n\t\t},\n\t\tonAddRemoveFavoriteClick() {\n\t\t\tconst currentIsFavorite = this.currentAddressIsFavorite\n\t\t\tif (currentIsFavorite) {\n\t\t\t\tconst i = this.favorites.indexOf(currentIsFavorite)\n\t\t\t\tif (i !== -1) {\n\t\t\t\t\tthis.favorites.splice(i, 1)\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tthis.favorites.push(this.address)\n\t\t\t}\n\t\t\tnetwork.saveFavorites(this.favorites)\n\t\t},\n\t\tonFavoriteClick(e, favAddress) {\n\t\t\t// clicked on the icon\n\t\t\tif (e.target.classList.contains('action-button__icon')) {\n\t\t\t\tconst i = this.favorites.indexOf(favAddress)\n\t\t\t\tif (i !== -1) {\n\t\t\t\t\tthis.favorites.splice(i, 1)\n\t\t\t\t}\n\t\t\t\tnetwork.saveFavorites(this.favorites)\n\t\t\t} else if (favAddress !== this.address) {\n\t\t\t\t// clicked on the text\n\t\t\t\tthis.setAddress(favAddress)\n\t\t\t}\n\t\t},\n\t\tformatTime(time) {\n\t\t\treturn moment(time).format('LT')\n\t\t},\n\t\tgetTemperature(forecasts, offset = 0) {\n\t\t\treturn forecasts.length > offset ? forecasts[offset].data.instant.details.air_temperature : ''\n\t\t},\n\t\tgetWeatherCode(forecasts, offset = 0) {\n\t\t\treturn forecasts.length > offset ? forecasts[offset].data.next_1_hours.summary.symbol_code : ''\n\t\t},\n\t\tgetWeatherIconUrl(weatherCode) {\n\t\t\t// those icons were obtained there: https://github.com/metno/weathericons/tree/main/weather/svg\n\t\t\treturn (weatherCode && weatherCode in weatherOptions)\n\t\t\t\t? imagePath('weather_status', 'met.no.icons/' + weatherCode + '.svg')\n\t\t\t\t: imagePath('weather_status', 'met.no.icons/fair_day.svg')\n\t\t},\n\t\tgetWeatherMessage(weatherCode, temperature, later = false) {\n\t\t\treturn weatherCode && weatherCode in weatherOptions\n\t\t\t\t? weatherOptions[weatherCode].text(\n\t\t\t\t\tMath.round(this.getLocalizedTemperature(temperature)),\n\t\t\t\t\tthis.temperatureUnit,\n\t\t\t\t\tlater,\n\t\t\t\t)\n\t\t\t\t: t('weather_status', 'Unknown weather code')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n.weather-action-image-container {\n\twidth: var(--default-clickable-area);\n\theight: var(--default-clickable-area);\n\tdisplay: flex;\n\talign-items: center;\n\tjustify-content: center;\n}\n.weather-image {\n\twidth: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\n}\n\n// Set color to primary element for current / active favorite address\n.favorite-color {\n\tcolor: var(--color-favorite);\n}\n</style>\n","import mod from \"-!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.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!./App.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!./App.vue?vue&type=style&index=0&id=5fc6f836&prod&lang=scss\";\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!./App.vue?vue&type=style&index=0&id=5fc6f836&prod&lang=scss\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=5fc6f836\"\nimport script from \"./App.vue?vue&type=script&lang=js\"\nexport * from \"./App.vue?vue&type=script&lang=js\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=5fc6f836&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","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"weather-status-menu-item\"}},[_c('NcActions',{staticClass:\"weather-status-menu-item__subheader\",attrs:{\"aria-hidden\":true,\"aria-label\":_vm.currentWeatherMessage,\"menu-name\":_vm.currentWeatherMessage},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('img',{staticClass:\"weather-image\",attrs:{\"src\":_vm.weatherIconUrl,\"alt\":\"\"}})]},proxy:true}])},[_vm._v(\" \"),(_vm.gotWeather)?_c('NcActionText',{attrs:{\"aria-hidden\":true},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [(_vm.loading)?_c('NcLoadingIcon'):_c('div',{staticClass:\"weather-action-image-container\"},[_c('img',{staticClass:\"weather-image\",attrs:{\"src\":_vm.futureWeatherIconUrl,\"alt\":\"\"}})])]},proxy:true}],null,false,1876957744)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.forecastMessage)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.gotWeather)?_c('NcActionLink',{attrs:{\"target\":\"_blank\",\"aria-hidden\":true,\"href\":_vm.weatherLinkTarget,\"close-after-click\":true},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"name\":\"MapMarker\",\"svg\":_vm.mapMarkerSvg,\"size\":20}})]},proxy:true}],null,false,2374361976)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.locationText)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.gotWeather)?_c('NcActionButton',{attrs:{\"aria-hidden\":true},on:{\"click\":_vm.onAddRemoveFavoriteClick},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{staticClass:\"favorite-color\",attrs:{\"name\":\"Star\",\"svg\":_vm.addRemoveFavoriteSvg,\"size\":20}})]},proxy:true}],null,false,2760308411)},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.addRemoveFavoriteText)+\"\\n\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.address && !_vm.errorMessage)?_c('NcActionSeparator'):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"close-after-click\":true,\"aria-hidden\":true},on:{\"click\":_vm.onBrowserLocationClick},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{attrs:{\"name\":\"Crosshairs\",\"svg\":_vm.crosshairsSvg,\"size\":20}})]},proxy:true}])},[_vm._v(\"\\n\\t\\t\\t\"+_vm._s(_vm.t('weather_status', 'Detect location'))+\"\\n\\t\\t\")]),_vm._v(\" \"),_c('NcActionInput',{ref:\"addressInput\",attrs:{\"label\":_vm.t('weather_status', 'Set custom address'),\"disabled\":false,\"icon\":\"icon-rename\",\"aria-hidden\":true,\"type\":\"text\",\"value\":\"\"},on:{\"submit\":_vm.onAddressSubmit}}),_vm._v(\" \"),(_vm.favorites.length > 0)?[_c('NcActionCaption',{attrs:{\"name\":_vm.t('weather_status', 'Favorites')}}),_vm._v(\" \"),_vm._l((_vm.favorites),function(favorite){return _c('NcActionButton',{key:favorite,attrs:{\"aria-hidden\":true},on:{\"click\":function($event){return _vm.onFavoriteClick($event, favorite)}},scopedSlots:_vm._u([{key:\"icon\",fn:function(){return [_c('NcIconSvgWrapper',{class:{'favorite-color': _vm.address === favorite},attrs:{\"name\":\"Star\",\"svg\":_vm.starSvg,\"size\":20}})]},proxy:true}],null,true)},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(favorite)+\"\\n\\t\\t\\t\")])})]:_vm._e()],2)],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * SPDX-FileCopyrightText: 2016 Nextcloud GmbH and Nextcloud contributors\n * SPDX-License-Identifier: AGPL-3.0-or-later\n */\n\nimport { getCSPNonce } from '@nextcloud/auth'\nimport Vue from 'vue'\nimport App from './App.vue'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = getCSPNonce()\n\nVue.prototype.t = t\n\ndocument.addEventListener('DOMContentLoaded', function() {\n\tif (!OCA.Dashboard) {\n\t\treturn\n\t}\n\n\tOCA.Dashboard.registerStatus('weather', (el) => {\n\t\tconst Dashboard = Vue.extend(App)\n\t\treturn new Dashboard().$mount(el)\n\t})\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, `.weather-action-image-container{width:var(--default-clickable-area);height:var(--default-clickable-area);display:flex;align-items:center;justify-content:center}.weather-image{width:calc(var(--default-clickable-area) - 2*var(--default-grid-baseline))}.favorite-color{color:var(--color-favorite)}`, \"\",{\"version\":3,\"sources\":[\"webpack://./apps/weather_status/src/App.vue\"],\"names\":[],\"mappings\":\"AACA,gCACC,mCAAA,CACA,oCAAA,CACA,YAAA,CACA,kBAAA,CACA,sBAAA,CAED,eACC,0EAAA,CAID,gBACC,2BAAA\",\"sourcesContent\":[\"\\n.weather-action-image-container {\\n\\twidth: var(--default-clickable-area);\\n\\theight: var(--default-clickable-area);\\n\\tdisplay: flex;\\n\\talign-items: center;\\n\\tjustify-content: center;\\n}\\n.weather-image {\\n\\twidth: calc(var(--default-clickable-area) - 2 * var(--default-grid-baseline));\\n}\\n\\n// Set color to primary element for current / active favorite address\\n.favorite-color {\\n\\tcolor: var(--color-favorite);\\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","// getDefaultExport function for compatibility with non-harmony modules\n__webpack_require__.n = (module) => {\n\tvar getter = module && module.__esModule ?\n\t\t() => (module['default']) :\n\t\t() => (module);\n\t__webpack_require__.d(getter, { a: getter });\n\treturn getter;\n};","// define getter functions for harmony exports\n__webpack_require__.d = (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__.f = {};\n// This file contains only the entry chunk.\n// The chunk loading function for additional chunks\n__webpack_require__.e = (chunkId) => {\n\treturn Promise.all(Object.keys(__webpack_require__.f).reduce((promises, key) => {\n\t\t__webpack_require__.f[key](chunkId, promises);\n\t\treturn promises;\n\t}, []));\n};","// This function allow to reference async chunks\n__webpack_require__.u = (chunkId) => {\n\t// return url for filenames based on template\n\treturn \"\" + chunkId + \"-\" + chunkId + \".js?v=\" + {\"802\":\"eddac441912aee9d7aa8\",\"9291\":\"077955af818a227340aa\"}[chunkId] + \"\";\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 = (obj, prop) => (Object.prototype.hasOwnProperty.call(obj, prop))","// define __esModule on exports\n__webpack_require__.r = (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 = (module) => {\n\tmodule.paths = [];\n\tif (!module.children) module.children = [];\n\treturn module;\n};","__webpack_require__.j = 1848;","var scriptUrl;\nif (__webpack_require__.g.importScripts) scriptUrl = __webpack_require__.g.location + \"\";\nvar document = __webpack_require__.g.document;\nif (!scriptUrl && document) {\n\tif (document.currentScript && document.currentScript.tagName.toUpperCase() === 'SCRIPT')\n\t\tscriptUrl = document.currentScript.src;\n\tif (!scriptUrl) {\n\t\tvar scripts = document.getElementsByTagName(\"script\");\n\t\tif(scripts.length) {\n\t\t\tvar i = scripts.length - 1;\n\t\t\twhile (i > -1 && (!scriptUrl || !/^http(s?):/.test(scriptUrl))) scriptUrl = scripts[i--].src;\n\t\t}\n\t}\n}\n// When supporting browsers where an automatic publicPath is not supported you must specify an output.publicPath manually via configuration\n// or pass an empty string (\"\") and set the __webpack_public_path__ variable from your code to use your own logic.\nif (!scriptUrl) throw new Error(\"Automatic publicPath is not supported in this browser\");\nscriptUrl = scriptUrl.replace(/#.*$/, \"\").replace(/\\?.*$/, \"\").replace(/\\/[^\\/]+$/, \"/\");\n__webpack_require__.p = scriptUrl;","__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\t1848: 0\n};\n\n__webpack_require__.f.j = (chunkId, promises) => {\n\t\t// JSONP chunk loading for javascript\n\t\tvar installedChunkData = __webpack_require__.o(installedChunks, chunkId) ? installedChunks[chunkId] : undefined;\n\t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n\t\t\t// a Promise means \"currently loading\".\n\t\t\tif(installedChunkData) {\n\t\t\t\tpromises.push(installedChunkData[2]);\n\t\t\t} else {\n\t\t\t\tif(true) { // all chunks have JS\n\t\t\t\t\t// setup Promise in chunk cache\n\t\t\t\t\tvar promise = new Promise((resolve, reject) => (installedChunkData = installedChunks[chunkId] = [resolve, reject]));\n\t\t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n\t\t\t\t\t// start chunk loading\n\t\t\t\t\tvar url = __webpack_require__.p + __webpack_require__.u(chunkId);\n\t\t\t\t\t// create error before stack unwound to get useful stacktrace later\n\t\t\t\t\tvar error = new Error();\n\t\t\t\t\tvar loadingEnded = (event) => {\n\t\t\t\t\t\tif(__webpack_require__.o(installedChunks, chunkId)) {\n\t\t\t\t\t\t\tinstalledChunkData = installedChunks[chunkId];\n\t\t\t\t\t\t\tif(installedChunkData !== 0) installedChunks[chunkId] = undefined;\n\t\t\t\t\t\t\tif(installedChunkData) {\n\t\t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n\t\t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n\t\t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n\t\t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n\t\t\t\t\t\t\t\terror.type = errorType;\n\t\t\t\t\t\t\t\terror.request = realSrc;\n\t\t\t\t\t\t\t\tinstalledChunkData[1](error);\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t}\n\t\t\t\t\t};\n\t\t\t\t\t__webpack_require__.l(url, loadingEnded, \"chunk-\" + chunkId, chunkId);\n\t\t\t\t}\n\t\t\t}\n\t\t}\n};\n\n// no prefetching\n\n// no preloaded\n\n// no HMR\n\n// no HMR manifest\n\n__webpack_require__.O.j = (chunkId) => (installedChunks[chunkId] === 0);\n\n// install a JSONP callback for chunk loading\nvar webpackJsonpCallback = (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((id) => (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, [4208], () => (__webpack_require__(20994)))\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","inProgress","dataWebpackPrefix","saveFavorites","async","url","generateOcsUrl","HttpClient","put","favorites","data","ocs","weatherOptions","clearsky_day","text","temperature","unit","arguments","length","undefined","t","clearsky_night","cloudy","snowandthunder","snowshowersandthunder_day","snowshowersandthunder_night","snowshowersandthunder_polartwilight","snowshowers_day","snowshowers_night","snowshowers_polartwilight","snow","fair_day","fair_night","partlycloudy_day","partlycloudy_night","fog","lightrain","rain","heavyrain","rainshowers_day","rainshowers_night","lightrainshowers_day","lightrainshowers_night","heavyrainshowers_day","heavyrainshowers_night","name","components","NcActions","NcActionButton","NcActionCaption","NcActionInput","NcActionLink","NcActionSeparator","NcActionText","NcLoadingIcon","NcIconSvgWrapper","crosshairsSvg","mapMarkerSvg","starSvg","starOutlineSvg","locale","getLocale","loading","errorMessage","mode","address","lat","lon","offset","forecasts","loop","computed","useFahrenheitLocale","includes","temperatureUnit","locationText","adr","getTemperature","futureTemperature","weatherCode","getWeatherCode","futureWeatherCode","weatherIconUrl","getWeatherIconUrl","futureWeatherIconUrl","currentWeatherMessage","gotWeather","getWeatherMessage","forecastMessage","weatherLinkTarget","addRemoveFavoriteSvg","currentAddressIsFavorite","addRemoveFavoriteText","find","f","mounted","initWeatherStatus","methods","loc","get","network","askBrowserLocation","startLoop","favs","err","code","console","info","response","status","showError","error","clearInterval","setInterval","getForecast","navigator","geolocation","window","isSecureContext","getCurrentPosition","position","debug","coords","latitude","longitude","saveMode","saveLocation","usePersonalAddress","setAddress","success","onBrowserLocationClick","onAddressSubmit","newAddress","$refs","addressInput","$el","querySelector","value","getLocalizedTemperature","celcius","onAddRemoveFavoriteClick","currentIsFavorite","i","indexOf","splice","push","onFavoriteClick","e","favAddress","target","classList","contains","formatTime","time","moment","format","instant","details","air_temperature","next_1_hours","summary","symbol_code","imagePath","later","Math","round","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","locals","_vm","this","_c","_self","attrs","staticClass","scopedSlots","_u","key","fn","proxy","_v","_s","_e","on","ref","_l","favorite","$event","class","__webpack_nonce__","getCSPNonce","Vue","prototype","document","addEventListener","OCA","Dashboard","registerStatus","el","extend","App","$mount","___CSS_LOADER_EXPORT___","module","id","__webpack_module_cache__","__webpack_require__","moduleId","cachedModule","exports","loaded","__webpack_modules__","call","m","O","result","chunkIds","priority","notFulfilled","Infinity","fulfilled","j","Object","keys","every","r","n","getter","__esModule","d","a","definition","o","defineProperty","enumerable","chunkId","Promise","all","reduce","promises","u","g","globalThis","Function","obj","prop","hasOwnProperty","l","done","script","needAttach","scripts","getElementsByTagName","s","getAttribute","createElement","charset","timeout","nc","setAttribute","src","onScriptComplete","prev","event","onerror","onload","clearTimeout","doneFns","parentNode","removeChild","forEach","setTimeout","bind","type","head","appendChild","Symbol","toStringTag","nmd","paths","children","scriptUrl","importScripts","location","currentScript","tagName","toUpperCase","test","Error","replace","p","b","baseURI","self","href","installedChunks","installedChunkData","promise","resolve","reject","errorType","realSrc","message","request","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","__webpack_exports__"],"sourceRoot":""}