You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
nextcloud/dist/weather_status-weather-stat...

1 line
76 KiB
Plaintext

{"version":3,"file":"weather_status-weather-status.js?v=f9b9ef13241945c758fe","mappings":"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","sources":["webpack:///nextcloud/webpack/runtime/chunk loaded","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?633a","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=76b0dba2&prod&lang=scss&","webpack:///nextcloud/node_modules/moment/locale|sync|/^\\.\\/.*$","webpack:///nextcloud/webpack/bootstrap","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 Copyright (c) 2020, Julien Veyssier\n *\n * @author Julien Veyssier <eneiluj@posteo.net>\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 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 - @copyright Copyright (c) 2020 Julien Veyssier <eneiluj@posteo.net>\n - @author Julien Veyssier <eneiluj@posteo.net>\n -\n - @license GNU AGPL version 3 or any later version\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<template>\n\t<li :class=\"{ inline }\">\n\t\t<div id=\"weather-status-menu-item\">\n\t\t\t<NcActions class=\"weather-status-menu-item__subheader\"\n\t\t\t\t:default-icon=\"weatherIcon\"\n\t\t\t\t:menu-title=\"currentWeatherMessage\">\n\t\t\t\t<NcActionText v-if=\"gotWeather\"\n\t\t\t\t\t:icon=\"futureWeatherIcon\">\n\t\t\t\t\t{{ forecastMessage }}\n\t\t\t\t</NcActionText>\n\t\t\t\t<NcActionLink v-if=\"gotWeather\"\n\t\t\t\t\ticon=\"icon-address\"\n\t\t\t\t\ttarget=\"_blank\"\n\t\t\t\t\t:href=\"weatherLinkTarget\"\n\t\t\t\t\t:close-after-click=\"true\">\n\t\t\t\t\t{{ locationText }}\n\t\t\t\t</NcActionLink>\n\t\t\t\t<NcActionButton v-if=\"gotWeather\"\n\t\t\t\t\t:icon=\"addRemoveFavoriteIcon\"\n\t\t\t\t\t@click=\"onAddRemoveFavoriteClick\">\n\t\t\t\t\t{{ addRemoveFavoriteText }}\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionSeparator v-if=\"address && !errorMessage\" />\n\t\t\t\t<NcActionButton icon=\"icon-crosshair\"\n\t\t\t\t\t:close-after-click=\"true\"\n\t\t\t\t\t@click=\"onBrowserLocationClick\">\n\t\t\t\t\t{{ t('weather_status', 'Detect location') }}\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionInput ref=\"addressInput\"\n\t\t\t\t\t:disabled=\"false\"\n\t\t\t\t\ticon=\"icon-rename\"\n\t\t\t\t\ttype=\"text\"\n\t\t\t\t\tvalue=\"\"\n\t\t\t\t\t@submit=\"onAddressSubmit\">\n\t\t\t\t\t{{ t('weather_status', 'Set custom address') }}\n\t\t\t\t</NcActionInput>\n\t\t\t\t<NcActionButton v-show=\"favorites.length > 0\"\n\t\t\t\t\t:icon=\"toggleFavoritesIcon\"\n\t\t\t\t\t@click=\"showFavorites = !showFavorites\">\n\t\t\t\t\t{{ t('weather_status', 'Favorites') }}\n\t\t\t\t</NcActionButton>\n\t\t\t\t<NcActionButton v-for=\"f in displayedFavorites\"\n\t\t\t\t\t:key=\"f\"\n\t\t\t\t\ticon=\"icon-starred\"\n\t\t\t\t\t@click=\"onFavoriteClick($event, f)\">\n\t\t\t\t\t{{ f }}\n\t\t\t\t</NcActionButton>\n\t\t\t</NcActions>\n\t\t</div>\n\t</li>\n</template>\n\n<script>\nimport { showError } from '@nextcloud/dialogs'\nimport moment from '@nextcloud/moment'\nimport { getLocale } from '@nextcloud/l10n'\nimport NcActions from '@nextcloud/vue/dist/Components/NcActions'\nimport NcActionButton from '@nextcloud/vue/dist/Components/NcActionButton'\nimport NcActionInput from '@nextcloud/vue/dist/Components/NcActionInput'\nimport NcActionLink from '@nextcloud/vue/dist/Components/NcActionLink'\nimport NcActionSeparator from '@nextcloud/vue/dist/Components/NcActionSeparator'\nimport NcActionText from '@nextcloud/vue/dist/Components/NcActionText'\nimport * as network from './services/weatherStatusService'\n\nconst MODE_BROWSER_LOCATION = 1\nconst MODE_MANUAL_LOCATION = 2\nconst weatherOptions = {\n\tclearsky_day: {\n\t\ticon: 'icon-clearsky-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\ticon: 'icon-clearsky-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\ticon: 'icon-cloudy',\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\tfair_day: {\n\t\ticon: 'icon-fair-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\ticon: 'icon-fair-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\ticon: 'icon-partlycloudy-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\ticon: 'icon-partlycloudy-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\ticon: 'icon-fog',\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\ticon: 'icon-lightrain',\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\ticon: 'icon-rain',\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\ticon: 'icon-heavyrain',\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\ticon: 'icon-rainshowers-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\ticon: 'icon-rainshowers-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\ticon: 'icon-light-rainshowers-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\ticon: 'icon-light-rainshowers-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\ticon: 'icon-heavy-rainshowers-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\ticon: 'icon-heavy-rainshowers-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\tNcActionInput,\n\t\tNcActionLink,\n\t\tNcActionSeparator,\n\t\tNcActionText,\n\t},\n\tprops: {\n\t\tinline: {\n\t\t\ttype: Boolean,\n\t\t\tdefault: false,\n\t\t},\n\t},\n\tdata() {\n\t\treturn {\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\tshowFavorites: false,\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\tweatherIcon() {\n\t\t\treturn this.getWeatherIcon(this.weatherCode, this.loading)\n\t\t},\n\t\tfutureWeatherIcon() {\n\t\t\treturn this.getWeatherIcon(this.futureWeatherCode, this.loading)\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 {\n\t\t\t\treturn this.getWeatherMessage(this.weatherCode, this.temperature)\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 {\n\t\t\t\treturn this.getWeatherMessage(this.futureWeatherCode, this.futureTemperature, true)\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\taddRemoveFavoriteIcon() {\n\t\t\treturn this.currentAddressIsFavorite\n\t\t\t\t? 'icon-starred'\n\t\t\t\t: 'icon-star'\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\ttoggleFavoritesIcon() {\n\t\t\treturn this.showFavorites\n\t\t\t\t? 'icon-triangle-s'\n\t\t\t\t: 'icon-triangle-e'\n\t\t},\n\t\tdisplayedFavorites() {\n\t\t\treturn this.showFavorites\n\t\t\t\t? this.favorites\n\t\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\tgetWeatherIcon(weatherCode, loading) {\n\t\t\tif (loading) {\n\t\t\t\treturn 'icon-loading-small'\n\t\t\t} else {\n\t\t\t\treturn 'icon-weather ' + (weatherCode && weatherCode in weatherOptions\n\t\t\t\t\t? weatherOptions[weatherCode].icon\n\t\t\t\t\t: 'icon-fair-day')\n\t\t\t}\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', 'Set location for weather')\n\t\t},\n\t},\n}\n</script>\n\n<style lang=\"scss\">\n.icon-weather {\n\tbackground-size: 16px;\n}\n.icon-weather-status {\n\tbackground-image: url('./../img/app-dark.svg');\n}\n.icon-clearsky-day {\n\tbackground-image: url('./../img/sun.svg');\n}\n.icon-clearsky-night {\n\tbackground-image: url('./../img/moon.svg');\n}\n.icon-cloudy {\n\tbackground-image: url('./../img/cloud-cloud.svg');\n}\n.icon-fair-day {\n\tbackground-image: url('./../img/sun-small-cloud.svg');\n}\n.icon-fair-night {\n\tbackground-image: url('./../img/moon-small-cloud.svg');\n}\n.icon-partlycloudy-day {\n\tbackground-image: url('./../img/sun-cloud.svg');\n}\n.icon-partlycloudy-night {\n\tbackground-image: url('./../img/moon-cloud.svg');\n}\n.icon-fog {\n\tbackground-image: url('./../img/fog.svg');\n}\n.icon-lightrain {\n\tbackground-image: url('./../img/light-rain.svg');\n}\n.icon-rain {\n\tbackground-image: url('./../img/rain.svg');\n}\n.icon-heavyrain {\n\tbackground-image: url('./../img/heavy-rain.svg');\n}\n.icon-light-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-light-rain.svg');\n}\n.icon-light-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-light-rain.svg');\n}\n.icon-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-rain.svg');\n}\n.icon-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-rain.svg');\n}\n.icon-heavy-rainshowers-day {\n\tbackground-image: url('./../img/sun-cloud-heavy-rain.svg');\n}\n.icon-heavy-rainshowers-night {\n\tbackground-image: url('./../img/moon-cloud-heavy-rain.svg');\n}\n.icon-crosshair {\n background-color: var(--color-main-text);\n padding: 0 !important;\n mask: url(./../img/cross.svg) no-repeat;\n mask-size: 18px 18px;\n mask-position: center;\n -webkit-mask: url(./../img/cross.svg) no-repeat;\n -webkit-mask-size: 18px 18px;\n -webkit-mask-position: center;\n min-width: 44px !important;\n min-height: 44px !important;\n}\n\nli:not(.inline) .weather-status-menu-item {\n\t&__header {\n\t\tdisplay: block;\n\t\talign-items: center;\n\t\tcolor: var(--color-main-text);\n\t\tpadding: 10px 12px 5px 12px;\n\t\tbox-sizing: border-box;\n\t\topacity: 1;\n\t\twhite-space: nowrap;\n\t\twidth: 100%;\n\t\ttext-align: center;\n\t\tmax-width: 250px;\n\t\ttext-overflow: ellipsis;\n\t\tmin-width: 175px;\n\t}\n\n\t&__subheader {\n\t\twidth: 100%;\n\n\t\t.trigger > .icon {\n\t\t\tbackground-color: var(--color-main-background);\n\t\t\tbackground-size: 16px;\n\t\t\tborder: 0;\n\t\t\tborder-radius: 0;\n\t\t\tfont-weight: normal;\n\t\t\tpadding-left: 40px;\n\n\t\t\t&:hover,\n\t\t\t&:focus {\n\t\t\t\tbox-shadow: inset 4px 0 var(--color-primary-element);\n\t\t\t}\n\t\t}\n\t}\n}\n\n.inline .weather-status-menu-item__subheader {\n\twidth: 100%;\n\n\t.trigger > .icon {\n\t\tbackground-size: 16px;\n\t\tborder: 0;\n\t\tborder-radius: var(--border-radius-pill);\n\t\tfont-weight: normal;\n\t\tpadding-left: 40px;\n\n\t\t&.icon-loading-small {\n\t\t\t&::after {\n\t\t\t\tleft: 21px;\n\t\t\t}\n\t\t}\n\t}\n}\n\nli {\n\tlist-style-type: none;\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=76b0dba2&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=76b0dba2&prod&lang=scss&\";\n export default content && content.locals ? content.locals : undefined;\n","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=76b0dba2&\"\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=76b0dba2&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('li',{class:{ inline: _vm.inline }},[_c('div',{attrs:{\"id\":\"weather-status-menu-item\"}},[_c('NcActions',{staticClass:\"weather-status-menu-item__subheader\",attrs:{\"default-icon\":_vm.weatherIcon,\"menu-title\":_vm.currentWeatherMessage}},[(_vm.gotWeather)?_c('NcActionText',{attrs:{\"icon\":_vm.futureWeatherIcon}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.forecastMessage)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.gotWeather)?_c('NcActionLink',{attrs:{\"icon\":\"icon-address\",\"target\":\"_blank\",\"href\":_vm.weatherLinkTarget,\"close-after-click\":true}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.locationText)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.gotWeather)?_c('NcActionButton',{attrs:{\"icon\":_vm.addRemoveFavoriteIcon},on:{\"click\":_vm.onAddRemoveFavoriteClick}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.addRemoveFavoriteText)+\"\\n\\t\\t\\t\")]):_vm._e(),_vm._v(\" \"),(_vm.address && !_vm.errorMessage)?_c('NcActionSeparator'):_vm._e(),_vm._v(\" \"),_c('NcActionButton',{attrs:{\"icon\":\"icon-crosshair\",\"close-after-click\":true},on:{\"click\":_vm.onBrowserLocationClick}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('weather_status', 'Detect location'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionInput',{ref:\"addressInput\",attrs:{\"disabled\":false,\"icon\":\"icon-rename\",\"type\":\"text\",\"value\":\"\"},on:{\"submit\":_vm.onAddressSubmit}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('weather_status', 'Set custom address'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_c('NcActionButton',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.favorites.length > 0),expression:\"favorites.length > 0\"}],attrs:{\"icon\":_vm.toggleFavoritesIcon},on:{\"click\":function($event){_vm.showFavorites = !_vm.showFavorites}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(_vm.t('weather_status', 'Favorites'))+\"\\n\\t\\t\\t\")]),_vm._v(\" \"),_vm._l((_vm.displayedFavorites),function(f){return _c('NcActionButton',{key:f,attrs:{\"icon\":\"icon-starred\"},on:{\"click\":function($event){return _vm.onFavoriteClick($event, f)}}},[_vm._v(\"\\n\\t\\t\\t\\t\"+_vm._s(f)+\"\\n\\t\\t\\t\")])})],2)],1)])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","/**\n * @copyright Copyright (c) 2016 Julien Veyssier <eneiluj@posteo.net>\n *\n * @author Julien Veyssier <eneiluj@posteo.net>\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 Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport App from './App'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\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({\n\t\t\tpropsData: {\n\t\t\t\tinline: true,\n\t\t\t},\n\t\t}).$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\";\nimport ___CSS_LOADER_GET_URL_IMPORT___ from \"../../../node_modules/css-loader/dist/runtime/getUrl.js\";\nvar ___CSS_LOADER_URL_IMPORT_0___ = new URL(\"./../img/app-dark.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_1___ = new URL(\"./../img/sun.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_2___ = new URL(\"./../img/moon.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_3___ = new URL(\"./../img/cloud-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_4___ = new URL(\"./../img/sun-small-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_5___ = new URL(\"./../img/moon-small-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_6___ = new URL(\"./../img/sun-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_7___ = new URL(\"./../img/moon-cloud.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_8___ = new URL(\"./../img/fog.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_9___ = new URL(\"./../img/light-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_10___ = new URL(\"./../img/rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_11___ = new URL(\"./../img/heavy-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_12___ = new URL(\"./../img/sun-cloud-light-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_13___ = new URL(\"./../img/moon-cloud-light-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_14___ = new URL(\"./../img/sun-cloud-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_15___ = new URL(\"./../img/moon-cloud-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_16___ = new URL(\"./../img/sun-cloud-heavy-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_17___ = new URL(\"./../img/moon-cloud-heavy-rain.svg\", import.meta.url);\nvar ___CSS_LOADER_URL_IMPORT_18___ = new URL(\"./../img/cross.svg\", import.meta.url);\nvar ___CSS_LOADER_EXPORT___ = ___CSS_LOADER_API_IMPORT___(___CSS_LOADER_API_SOURCEMAP_IMPORT___);\nvar ___CSS_LOADER_URL_REPLACEMENT_0___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_0___);\nvar ___CSS_LOADER_URL_REPLACEMENT_1___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_1___);\nvar ___CSS_LOADER_URL_REPLACEMENT_2___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_2___);\nvar ___CSS_LOADER_URL_REPLACEMENT_3___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_3___);\nvar ___CSS_LOADER_URL_REPLACEMENT_4___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_4___);\nvar ___CSS_LOADER_URL_REPLACEMENT_5___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_5___);\nvar ___CSS_LOADER_URL_REPLACEMENT_6___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_6___);\nvar ___CSS_LOADER_URL_REPLACEMENT_7___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_7___);\nvar ___CSS_LOADER_URL_REPLACEMENT_8___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_8___);\nvar ___CSS_LOADER_URL_REPLACEMENT_9___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_9___);\nvar ___CSS_LOADER_URL_REPLACEMENT_10___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_10___);\nvar ___CSS_LOADER_URL_REPLACEMENT_11___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_11___);\nvar ___CSS_LOADER_URL_REPLACEMENT_12___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_12___);\nvar ___CSS_LOADER_URL_REPLACEMENT_13___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_13___);\nvar ___CSS_LOADER_URL_REPLACEMENT_14___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_14___);\nvar ___CSS_LOADER_URL_REPLACEMENT_15___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_15___);\nvar ___CSS_LOADER_URL_REPLACEMENT_16___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_16___);\nvar ___CSS_LOADER_URL_REPLACEMENT_17___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_17___);\nvar ___CSS_LOADER_URL_REPLACEMENT_18___ = ___CSS_LOADER_GET_URL_IMPORT___(___CSS_LOADER_URL_IMPORT_18___);\n// Module\n___CSS_LOADER_EXPORT___.push([module.id, \".icon-weather{background-size:16px}.icon-weather-status{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_0___ + \")}.icon-clearsky-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_1___ + \")}.icon-clearsky-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_2___ + \")}.icon-cloudy{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_3___ + \")}.icon-fair-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_4___ + \")}.icon-fair-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_5___ + \")}.icon-partlycloudy-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_6___ + \")}.icon-partlycloudy-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_7___ + \")}.icon-fog{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_8___ + \")}.icon-lightrain{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_9___ + \")}.icon-rain{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_10___ + \")}.icon-heavyrain{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_11___ + \")}.icon-light-rainshowers-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_12___ + \")}.icon-light-rainshowers-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_13___ + \")}.icon-rainshowers-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_14___ + \")}.icon-rainshowers-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_15___ + \")}.icon-heavy-rainshowers-day{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_16___ + \")}.icon-heavy-rainshowers-night{background-image:url(\" + ___CSS_LOADER_URL_REPLACEMENT_17___ + \")}.icon-crosshair{background-color:var(--color-main-text);padding:0 !important;mask:url(\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \") no-repeat;mask-size:18px 18px;mask-position:center;-webkit-mask:url(\" + ___CSS_LOADER_URL_REPLACEMENT_18___ + \") no-repeat;-webkit-mask-size:18px 18px;-webkit-mask-position:center;min-width:44px !important;min-height:44px !important}li:not(.inline) .weather-status-menu-item__header{display:block;align-items:center;color:var(--color-main-text);padding:10px 12px 5px 12px;box-sizing:border-box;opacity:1;white-space:nowrap;width:100%;text-align:center;max-width:250px;text-overflow:ellipsis;min-width:175px}li:not(.inline) .weather-status-menu-item__subheader{width:100%}li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon{background-color:var(--color-main-background);background-size:16px;border:0;border-radius:0;font-weight:normal;padding-left:40px}li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon:hover,li:not(.inline) .weather-status-menu-item__subheader .trigger>.icon:focus{box-shadow:inset 4px 0 var(--color-primary-element)}.inline .weather-status-menu-item__subheader{width:100%}.inline .weather-status-menu-item__subheader .trigger>.icon{background-size:16px;border:0;border-radius:var(--border-radius-pill);font-weight:normal;padding-left:40px}.inline .weather-status-menu-item__subheader .trigger>.icon.icon-loading-small::after{left:21px}li{list-style-type:none}\", \"\",{\"version\":3,\"sources\":[\"webpack://./apps/weather_status/src/App.vue\"],\"names\":[],\"mappings\":\"AACA,cACC,oBAAA,CAED,qBACC,wDAAA,CAED,mBACC,wDAAA,CAED,qBACC,wDAAA,CAED,aACC,wDAAA,CAED,eACC,wDAAA,CAED,iBACC,wDAAA,CAED,uBACC,wDAAA,CAED,yBACC,wDAAA,CAED,UACC,wDAAA,CAED,gBACC,wDAAA,CAED,WACC,yDAAA,CAED,gBACC,yDAAA,CAED,4BACC,yDAAA,CAED,8BACC,yDAAA,CAED,sBACC,yDAAA,CAED,wBACC,yDAAA,CAED,4BACC,yDAAA,CAED,8BACC,yDAAA,CAED,gBACI,uCAAA,CACA,oBAAA,CACA,uDAAA,CACA,mBAAA,CACA,oBAAA,CACA,+DAAA,CACA,2BAAA,CACA,4BAAA,CACA,yBAAA,CACA,0BAAA,CAIH,kDACC,aAAA,CACA,kBAAA,CACA,4BAAA,CACA,0BAAA,CACA,qBAAA,CACA,SAAA,CACA,kBAAA,CACA,UAAA,CACA,iBAAA,CACA,eAAA,CACA,sBAAA,CACA,eAAA,CAGD,qDACC,UAAA,CAEA,oEACC,6CAAA,CACA,oBAAA,CACA,QAAA,CACA,eAAA,CACA,kBAAA,CACA,iBAAA,CAEA,oJAEC,mDAAA,CAMJ,6CACC,UAAA,CAEA,4DACC,oBAAA,CACA,QAAA,CACA,uCAAA,CACA,kBAAA,CACA,iBAAA,CAGC,sFACC,SAAA,CAMJ,GACC,oBAAA\",\"sourcesContent\":[\"\\n.icon-weather {\\n\\tbackground-size: 16px;\\n}\\n.icon-weather-status {\\n\\tbackground-image: url('./../img/app-dark.svg');\\n}\\n.icon-clearsky-day {\\n\\tbackground-image: url('./../img/sun.svg');\\n}\\n.icon-clearsky-night {\\n\\tbackground-image: url('./../img/moon.svg');\\n}\\n.icon-cloudy {\\n\\tbackground-image: url('./../img/cloud-cloud.svg');\\n}\\n.icon-fair-day {\\n\\tbackground-image: url('./../img/sun-small-cloud.svg');\\n}\\n.icon-fair-night {\\n\\tbackground-image: url('./../img/moon-small-cloud.svg');\\n}\\n.icon-partlycloudy-day {\\n\\tbackground-image: url('./../img/sun-cloud.svg');\\n}\\n.icon-partlycloudy-night {\\n\\tbackground-image: url('./../img/moon-cloud.svg');\\n}\\n.icon-fog {\\n\\tbackground-image: url('./../img/fog.svg');\\n}\\n.icon-lightrain {\\n\\tbackground-image: url('./../img/light-rain.svg');\\n}\\n.icon-rain {\\n\\tbackground-image: url('./../img/rain.svg');\\n}\\n.icon-heavyrain {\\n\\tbackground-image: url('./../img/heavy-rain.svg');\\n}\\n.icon-light-rainshowers-day {\\n\\tbackground-image: url('./../img/sun-cloud-light-rain.svg');\\n}\\n.icon-light-rainshowers-night {\\n\\tbackground-image: url('./../img/moon-cloud-light-rain.svg');\\n}\\n.icon-rainshowers-day {\\n\\tbackground-image: url('./../img/sun-cloud-rain.svg');\\n}\\n.icon-rainshowers-night {\\n\\tbackground-image: url('./../img/moon-cloud-rain.svg');\\n}\\n.icon-heavy-rainshowers-day {\\n\\tbackground-image: url('./../img/sun-cloud-heavy-rain.svg');\\n}\\n.icon-heavy-rainshowers-night {\\n\\tbackground-image: url('./../img/moon-cloud-heavy-rain.svg');\\n}\\n.icon-crosshair {\\n background-color: var(--color-main-text);\\n padding: 0 !important;\\n mask: url(./../img/cross.svg) no-repeat;\\n mask-size: 18px 18px;\\n mask-position: center;\\n -webkit-mask: url(./../img/cross.svg) no-repeat;\\n -webkit-mask-size: 18px 18px;\\n -webkit-mask-position: center;\\n min-width: 44px !important;\\n min-height: 44px !important;\\n}\\n\\nli:not(.inline) .weather-status-menu-item {\\n\\t&__header {\\n\\t\\tdisplay: block;\\n\\t\\talign-items: center;\\n\\t\\tcolor: var(--color-main-text);\\n\\t\\tpadding: 10px 12px 5px 12px;\\n\\t\\tbox-sizing: border-box;\\n\\t\\topacity: 1;\\n\\t\\twhite-space: nowrap;\\n\\t\\twidth: 100%;\\n\\t\\ttext-align: center;\\n\\t\\tmax-width: 250px;\\n\\t\\ttext-overflow: ellipsis;\\n\\t\\tmin-width: 175px;\\n\\t}\\n\\n\\t&__subheader {\\n\\t\\twidth: 100%;\\n\\n\\t\\t.trigger > .icon {\\n\\t\\t\\tbackground-color: var(--color-main-background);\\n\\t\\t\\tbackground-size: 16px;\\n\\t\\t\\tborder: 0;\\n\\t\\t\\tborder-radius: 0;\\n\\t\\t\\tfont-weight: normal;\\n\\t\\t\\tpadding-left: 40px;\\n\\n\\t\\t\\t&:hover,\\n\\t\\t\\t&:focus {\\n\\t\\t\\t\\tbox-shadow: inset 4px 0 var(--color-primary-element);\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\n.inline .weather-status-menu-item__subheader {\\n\\twidth: 100%;\\n\\n\\t.trigger > .icon {\\n\\t\\tbackground-size: 16px;\\n\\t\\tborder: 0;\\n\\t\\tborder-radius: var(--border-radius-pill);\\n\\t\\tfont-weight: normal;\\n\\t\\tpadding-left: 40px;\\n\\n\\t\\t&.icon-loading-small {\\n\\t\\t\\t&::after {\\n\\t\\t\\t\\tleft: 21px;\\n\\t\\t\\t}\\n\\t\\t}\\n\\t}\\n}\\n\\nli {\\n\\tlist-style-type: none;\\n}\\n\"],\"sourceRoot\":\"\"}]);\n// Exports\nexport default ___CSS_LOADER_EXPORT___;\n","var map = {\n\t\"./af\": 42786,\n\t\"./af.js\": 42786,\n\t\"./ar\": 30867,\n\t\"./ar-dz\": 14130,\n\t\"./ar-dz.js\": 14130,\n\t\"./ar-kw\": 96135,\n\t\"./ar-kw.js\": 96135,\n\t\"./ar-ly\": 56440,\n\t\"./ar-ly.js\": 56440,\n\t\"./ar-ma\": 47702,\n\t\"./ar-ma.js\": 47702,\n\t\"./ar-sa\": 16040,\n\t\"./ar-sa.js\": 16040,\n\t\"./ar-tn\": 37100,\n\t\"./ar-tn.js\": 37100,\n\t\"./ar.js\": 30867,\n\t\"./az\": 31083,\n\t\"./az.js\": 31083,\n\t\"./be\": 9808,\n\t\"./be.js\": 9808,\n\t\"./bg\": 68338,\n\t\"./bg.js\": 68338,\n\t\"./bm\": 67438,\n\t\"./bm.js\": 67438,\n\t\"./bn\": 8905,\n\t\"./bn-bd\": 76225,\n\t\"./bn-bd.js\": 76225,\n\t\"./bn.js\": 8905,\n\t\"./bo\": 11560,\n\t\"./bo.js\": 11560,\n\t\"./br\": 1278,\n\t\"./br.js\": 1278,\n\t\"./bs\": 80622,\n\t\"./bs.js\": 80622,\n\t\"./ca\": 2468,\n\t\"./ca.js\": 2468,\n\t\"./cs\": 5822,\n\t\"./cs.js\": 5822,\n\t\"./cv\": 50877,\n\t\"./cv.js\": 50877,\n\t\"./cy\": 47373,\n\t\"./cy.js\": 47373,\n\t\"./da\": 24780,\n\t\"./da.js\": 24780,\n\t\"./de\": 59740,\n\t\"./de-at\": 60217,\n\t\"./de-at.js\": 60217,\n\t\"./de-ch\": 60894,\n\t\"./de-ch.js\": 60894,\n\t\"./de.js\": 59740,\n\t\"./dv\": 5300,\n\t\"./dv.js\": 5300,\n\t\"./el\": 50837,\n\t\"./el.js\": 50837,\n\t\"./en-au\": 78348,\n\t\"./en-au.js\": 78348,\n\t\"./en-ca\": 77925,\n\t\"./en-ca.js\": 77925,\n\t\"./en-gb\": 22243,\n\t\"./en-gb.js\": 22243,\n\t\"./en-ie\": 46436,\n\t\"./en-ie.js\": 46436,\n\t\"./en-il\": 47207,\n\t\"./en-il.js\": 47207,\n\t\"./en-in\": 44175,\n\t\"./en-in.js\": 44175,\n\t\"./en-nz\": 76319,\n\t\"./en-nz.js\": 76319,\n\t\"./en-sg\": 31662,\n\t\"./en-sg.js\": 31662,\n\t\"./eo\": 92915,\n\t\"./eo.js\": 92915,\n\t\"./es\": 55655,\n\t\"./es-do\": 55251,\n\t\"./es-do.js\": 55251,\n\t\"./es-mx\": 96112,\n\t\"./es-mx.js\": 96112,\n\t\"./es-us\": 71146,\n\t\"./es-us.js\": 71146,\n\t\"./es.js\": 55655,\n\t\"./et\": 5603,\n\t\"./et.js\": 5603,\n\t\"./eu\": 77763,\n\t\"./eu.js\": 77763,\n\t\"./fa\": 76959,\n\t\"./fa.js\": 76959,\n\t\"./fi\": 11897,\n\t\"./fi.js\": 11897,\n\t\"./fil\": 42549,\n\t\"./fil.js\": 42549,\n\t\"./fo\": 94694,\n\t\"./fo.js\": 94694,\n\t\"./fr\": 94470,\n\t\"./fr-ca\": 63049,\n\t\"./fr-ca.js\": 63049,\n\t\"./fr-ch\": 52330,\n\t\"./fr-ch.js\": 52330,\n\t\"./fr.js\": 94470,\n\t\"./fy\": 5044,\n\t\"./fy.js\": 5044,\n\t\"./ga\": 29295,\n\t\"./ga.js\": 29295,\n\t\"./gd\": 2101,\n\t\"./gd.js\": 2101,\n\t\"./gl\": 38794,\n\t\"./gl.js\": 38794,\n\t\"./gom-deva\": 27884,\n\t\"./gom-deva.js\": 27884,\n\t\"./gom-latn\": 23168,\n\t\"./gom-latn.js\": 23168,\n\t\"./gu\": 95349,\n\t\"./gu.js\": 95349,\n\t\"./he\": 24206,\n\t\"./he.js\": 24206,\n\t\"./hi\": 30094,\n\t\"./hi.js\": 30094,\n\t\"./hr\": 30316,\n\t\"./hr.js\": 30316,\n\t\"./hu\": 22138,\n\t\"./hu.js\": 22138,\n\t\"./hy-am\": 11423,\n\t\"./hy-am.js\": 11423,\n\t\"./id\": 29218,\n\t\"./id.js\": 29218,\n\t\"./is\": 90135,\n\t\"./is.js\": 90135,\n\t\"./it\": 90626,\n\t\"./it-ch\": 10150,\n\t\"./it-ch.js\": 10150,\n\t\"./it.js\": 90626,\n\t\"./ja\": 39183,\n\t\"./ja.js\": 39183,\n\t\"./jv\": 24286,\n\t\"./jv.js\": 24286,\n\t\"./ka\": 12105,\n\t\"./ka.js\": 12105,\n\t\"./kk\": 47772,\n\t\"./kk.js\": 47772,\n\t\"./km\": 18758,\n\t\"./km.js\": 18758,\n\t\"./kn\": 79282,\n\t\"./kn.js\": 79282,\n\t\"./ko\": 33730,\n\t\"./ko.js\": 33730,\n\t\"./ku\": 1408,\n\t\"./ku.js\": 1408,\n\t\"./ky\": 33291,\n\t\"./ky.js\": 33291,\n\t\"./lb\": 36841,\n\t\"./lb.js\": 36841,\n\t\"./lo\": 55466,\n\t\"./lo.js\": 55466,\n\t\"./lt\": 57010,\n\t\"./lt.js\": 57010,\n\t\"./lv\": 37595,\n\t\"./lv.js\": 37595,\n\t\"./me\": 39861,\n\t\"./me.js\": 39861,\n\t\"./mi\": 35493,\n\t\"./mi.js\": 35493,\n\t\"./mk\": 95966,\n\t\"./mk.js\": 95966,\n\t\"./ml\": 87341,\n\t\"./ml.js\": 87341,\n\t\"./mn\": 5115,\n\t\"./mn.js\": 5115,\n\t\"./mr\": 10370,\n\t\"./mr.js\": 10370,\n\t\"./ms\": 9847,\n\t\"./ms-my\": 41237,\n\t\"./ms-my.js\": 41237,\n\t\"./ms.js\": 9847,\n\t\"./mt\": 72126,\n\t\"./mt.js\": 72126,\n\t\"./my\": 56165,\n\t\"./my.js\": 56165,\n\t\"./nb\": 64924,\n\t\"./nb.js\": 64924,\n\t\"./ne\": 16744,\n\t\"./ne.js\": 16744,\n\t\"./nl\": 93901,\n\t\"./nl-be\": 59814,\n\t\"./nl-be.js\": 59814,\n\t\"./nl.js\": 93901,\n\t\"./nn\": 83877,\n\t\"./nn.js\": 83877,\n\t\"./oc-lnc\": 92135,\n\t\"./oc-lnc.js\": 92135,\n\t\"./pa-in\": 15858,\n\t\"./pa-in.js\": 15858,\n\t\"./pl\": 64495,\n\t\"./pl.js\": 64495,\n\t\"./pt\": 89520,\n\t\"./pt-br\": 57971,\n\t\"./pt-br.js\": 57971,\n\t\"./pt.js\": 89520,\n\t\"./ro\": 96459,\n\t\"./ro.js\": 96459,\n\t\"./ru\": 21793,\n\t\"./ru.js\": 21793,\n\t\"./sd\": 40950,\n\t\"./sd.js\": 40950,\n\t\"./se\": 10490,\n\t\"./se.js\": 10490,\n\t\"./si\": 90124,\n\t\"./si.js\": 90124,\n\t\"./sk\": 64249,\n\t\"./sk.js\": 64249,\n\t\"./sl\": 14985,\n\t\"./sl.js\": 14985,\n\t\"./sq\": 51104,\n\t\"./sq.js\": 51104,\n\t\"./sr\": 49131,\n\t\"./sr-cyrl\": 79915,\n\t\"./sr-cyrl.js\": 79915,\n\t\"./sr.js\": 49131,\n\t\"./ss\": 85893,\n\t\"./ss.js\": 85893,\n\t\"./sv\": 98760,\n\t\"./sv.js\": 98760,\n\t\"./sw\": 91172,\n\t\"./sw.js\": 91172,\n\t\"./ta\": 27333,\n\t\"./ta.js\": 27333,\n\t\"./te\": 23110,\n\t\"./te.js\": 23110,\n\t\"./tet\": 52095,\n\t\"./tet.js\": 52095,\n\t\"./tg\": 27321,\n\t\"./tg.js\": 27321,\n\t\"./th\": 9041,\n\t\"./th.js\": 9041,\n\t\"./tk\": 19005,\n\t\"./tk.js\": 19005,\n\t\"./tl-ph\": 75768,\n\t\"./tl-ph.js\": 75768,\n\t\"./tlh\": 89444,\n\t\"./tlh.js\": 89444,\n\t\"./tr\": 72397,\n\t\"./tr.js\": 72397,\n\t\"./tzl\": 28254,\n\t\"./tzl.js\": 28254,\n\t\"./tzm\": 51106,\n\t\"./tzm-latn\": 30699,\n\t\"./tzm-latn.js\": 30699,\n\t\"./tzm.js\": 51106,\n\t\"./ug-cn\": 9288,\n\t\"./ug-cn.js\": 9288,\n\t\"./uk\": 67691,\n\t\"./uk.js\": 67691,\n\t\"./ur\": 13795,\n\t\"./ur.js\": 13795,\n\t\"./uz\": 6791,\n\t\"./uz-latn\": 60588,\n\t\"./uz-latn.js\": 60588,\n\t\"./uz.js\": 6791,\n\t\"./vi\": 65666,\n\t\"./vi.js\": 65666,\n\t\"./x-pseudo\": 14378,\n\t\"./x-pseudo.js\": 14378,\n\t\"./yo\": 75805,\n\t\"./yo.js\": 75805,\n\t\"./zh-cn\": 83839,\n\t\"./zh-cn.js\": 83839,\n\t\"./zh-hk\": 55726,\n\t\"./zh-hk.js\": 55726,\n\t\"./zh-mo\": 99807,\n\t\"./zh-mo.js\": 99807,\n\t\"./zh-tw\": 74152,\n\t\"./zh-tw.js\": 74152\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = 46700;","// 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 = 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 = 5275;","__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\t5275: 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__(38569); })\n__webpack_exports__ = __webpack_require__.O(__webpack_exports__);\n"],"names":["deferred","setLocation","lat","lon","url","generateOcsUrl","HttpClient","address","response","data","ocs","setAddress","setMode","mode","usePersonalAddress","getLocation","fetchForecast","getFavorites","saveFavorites","favorites","clearsky_day","icon","text","t","temperature","unit","clearsky_night","cloudy","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","NcActionInput","NcActionLink","NcActionSeparator","NcActionText","props","inline","type","default","locale","loading","errorMessage","offset","forecasts","loop","showFavorites","computed","useFahrenheitLocale","temperatureUnit","locationText","adr","futureTemperature","weatherCode","futureWeatherCode","weatherIcon","futureWeatherIcon","currentWeatherMessage","forecastMessage","weatherLinkTarget","gotWeather","addRemoveFavoriteIcon","addRemoveFavoriteText","currentAddressIsFavorite","toggleFavoritesIcon","displayedFavorites","mounted","methods","initWeatherStatus","network","loc","favs","console","showError","startLoop","clearInterval","askBrowserLocation","navigator","getForecast","saveLocation","saveMode","onBrowserLocationClick","onAddressSubmit","getLocalizedTemperature","celcius","onAddRemoveFavoriteClick","onFavoriteClick","formatTime","getTemperature","getWeatherCode","getWeatherIcon","weatherOptions","getWeatherMessage","Math","later","options","styleTagTransform","setAttributes","insert","domAPI","insertStyleElement","_vm","this","_c","_self","class","attrs","staticClass","_v","_s","_e","on","ref","directives","rawName","value","length","expression","$event","_l","f","key","__webpack_nonce__","btoa","getRequestToken","Vue","document","addEventListener","OCA","Dashboard","registerStatus","el","App","propsData","$mount","___CSS_LOADER_URL_IMPORT_0___","URL","___CSS_LOADER_URL_IMPORT_1___","___CSS_LOADER_URL_IMPORT_2___","___CSS_LOADER_URL_IMPORT_3___","___CSS_LOADER_URL_IMPORT_4___","___CSS_LOADER_URL_IMPORT_5___","___CSS_LOADER_URL_IMPORT_6___","___CSS_LOADER_URL_IMPORT_7___","___CSS_LOADER_URL_IMPORT_8___","___CSS_LOADER_URL_IMPORT_9___","___CSS_LOADER_URL_IMPORT_10___","___CSS_LOADER_URL_IMPORT_11___","___CSS_LOADER_URL_IMPORT_12___","___CSS_LOADER_URL_IMPORT_13___","___CSS_LOADER_URL_IMPORT_14___","___CSS_LOADER_URL_IMPORT_15___","___CSS_LOADER_URL_IMPORT_16___","___CSS_LOADER_URL_IMPORT_17___","___CSS_LOADER_URL_IMPORT_18___","___CSS_LOADER_EXPORT___","___CSS_LOADER_URL_REPLACEMENT_0___","___CSS_LOADER_URL_REPLACEMENT_1___","___CSS_LOADER_URL_REPLACEMENT_2___","___CSS_LOADER_URL_REPLACEMENT_3___","___CSS_LOADER_URL_REPLACEMENT_4___","___CSS_LOADER_URL_REPLACEMENT_5___","___CSS_LOADER_URL_REPLACEMENT_6___","___CSS_LOADER_URL_REPLACEMENT_7___","___CSS_LOADER_URL_REPLACEMENT_8___","___CSS_LOADER_URL_REPLACEMENT_9___","___CSS_LOADER_URL_REPLACEMENT_10___","___CSS_LOADER_URL_REPLACEMENT_11___","___CSS_LOADER_URL_REPLACEMENT_12___","___CSS_LOADER_URL_REPLACEMENT_13___","___CSS_LOADER_URL_REPLACEMENT_14___","___CSS_LOADER_URL_REPLACEMENT_15___","___CSS_LOADER_URL_REPLACEMENT_16___","___CSS_LOADER_URL_REPLACEMENT_17___","___CSS_LOADER_URL_REPLACEMENT_18___","push","module","id","map","webpackContext","req","webpackContextResolve","__webpack_require__","o","e","Error","code","keys","Object","resolve","exports","__webpack_module_cache__","moduleId","cachedModule","undefined","loaded","__webpack_modules__","call","m","O","result","chunkIds","fn","priority","notFulfilled","Infinity","i","fulfilled","j","every","splice","r","n","getter","__esModule","d","a","definition","defineProperty","enumerable","get","g","globalThis","Function","window","obj","prop","prototype","hasOwnProperty","Symbol","toStringTag","nmd","paths","children","b","baseURI","self","location","href","installedChunks","chunkId","webpackJsonpCallback","parentChunkLoadingFunction","moreModules","runtime","some","chunkLoadingGlobal","forEach","bind","nc","__webpack_exports__"],"sourceRoot":""}