From 70d1d1997af5fe8d18f2d0ed06680bdbef76e304 Mon Sep 17 00:00:00 2001 From: Julien Veyssier Date: Thu, 6 Aug 2020 10:43:26 +0200 Subject: [PATCH] new weather status used in dashboard Signed-off-by: Julien Veyssier --- .gitignore | 1 + apps/weather_status/appinfo/info.xml | 21 + apps/weather_status/appinfo/routes.php | 34 ++ apps/weather_status/img/app-dark.svg | 1 + apps/weather_status/img/app.svg | 1 + apps/weather_status/img/cloud-cloud.svg | 1 + apps/weather_status/img/cloud-dots.svg | 1 + apps/weather_status/img/cross.svg | 1 + apps/weather_status/img/drop.svg | 1 + apps/weather_status/img/fog.svg | 1 + apps/weather_status/img/half-sun.svg | 1 + apps/weather_status/img/heavy-rain.svg | 1 + apps/weather_status/img/light-rain.svg | 1 + .../img/moon-cloud-heavy-rain.svg | 1 + .../img/moon-cloud-light-rain.svg | 1 + apps/weather_status/img/moon-cloud-rain.svg | 1 + apps/weather_status/img/moon-cloud.svg | 1 + apps/weather_status/img/moon-small-cloud.svg | 1 + apps/weather_status/img/moon.svg | 1 + apps/weather_status/img/rain.svg | 1 + apps/weather_status/img/snow.svg | 1 + .../img/sun-cloud-heavy-rain.svg | 1 + .../img/sun-cloud-light-rain.svg | 1 + apps/weather_status/img/sun-cloud-rain.svg | 1 + apps/weather_status/img/sun-cloud.svg | 1 + apps/weather_status/img/sun-small-cloud.svg | 1 + apps/weather_status/img/sun.svg | 1 + apps/weather_status/img/thunder.svg | 1 + apps/weather_status/img/umbrella.svg | 1 + apps/weather_status/js/weather-status.js | 2 + apps/weather_status/js/weather-status.js.map | 1 + .../lib/AppInfo/Application.php | 72 +++ apps/weather_status/lib/Capabilities.php | 55 ++ .../Controller/WeatherStatusController.php | 124 +++++ .../lib/Service/WeatherStatusService.php | 429 +++++++++++++++ apps/weather_status/src/App.vue | 503 ++++++++++++++++++ .../src/services/weatherStatusService.js | 116 ++++ apps/weather_status/src/weather-status.js | 28 + apps/weather_status/webpack.js | 26 + .../features/provisioning-v1.feature | 1 + core/shipped.json | 1 + webpack.common.js | 2 + 42 files changed, 1442 insertions(+) create mode 100644 apps/weather_status/appinfo/info.xml create mode 100644 apps/weather_status/appinfo/routes.php create mode 100644 apps/weather_status/img/app-dark.svg create mode 100644 apps/weather_status/img/app.svg create mode 100644 apps/weather_status/img/cloud-cloud.svg create mode 100644 apps/weather_status/img/cloud-dots.svg create mode 100644 apps/weather_status/img/cross.svg create mode 100644 apps/weather_status/img/drop.svg create mode 100644 apps/weather_status/img/fog.svg create mode 100644 apps/weather_status/img/half-sun.svg create mode 100644 apps/weather_status/img/heavy-rain.svg create mode 100644 apps/weather_status/img/light-rain.svg create mode 100644 apps/weather_status/img/moon-cloud-heavy-rain.svg create mode 100644 apps/weather_status/img/moon-cloud-light-rain.svg create mode 100644 apps/weather_status/img/moon-cloud-rain.svg create mode 100644 apps/weather_status/img/moon-cloud.svg create mode 100644 apps/weather_status/img/moon-small-cloud.svg create mode 100644 apps/weather_status/img/moon.svg create mode 100644 apps/weather_status/img/rain.svg create mode 100644 apps/weather_status/img/snow.svg create mode 100644 apps/weather_status/img/sun-cloud-heavy-rain.svg create mode 100644 apps/weather_status/img/sun-cloud-light-rain.svg create mode 100644 apps/weather_status/img/sun-cloud-rain.svg create mode 100644 apps/weather_status/img/sun-cloud.svg create mode 100644 apps/weather_status/img/sun-small-cloud.svg create mode 100644 apps/weather_status/img/sun.svg create mode 100644 apps/weather_status/img/thunder.svg create mode 100644 apps/weather_status/img/umbrella.svg create mode 100644 apps/weather_status/js/weather-status.js create mode 100644 apps/weather_status/js/weather-status.js.map create mode 100644 apps/weather_status/lib/AppInfo/Application.php create mode 100644 apps/weather_status/lib/Capabilities.php create mode 100644 apps/weather_status/lib/Controller/WeatherStatusController.php create mode 100644 apps/weather_status/lib/Service/WeatherStatusService.php create mode 100644 apps/weather_status/src/App.vue create mode 100644 apps/weather_status/src/services/weatherStatusService.js create mode 100644 apps/weather_status/src/weather-status.js create mode 100644 apps/weather_status/webpack.js diff --git a/.gitignore b/.gitignore index 752a6329a87..27d5dbecc51 100644 --- a/.gitignore +++ b/.gitignore @@ -40,6 +40,7 @@ !/apps/theming !/apps/twofactor_backupcodes !/apps/user_status +!/apps/weather_status !/apps/workflowengine /apps/files_external/3rdparty/irodsphp/PHPUnitTest /apps/files_external/3rdparty/irodsphp/web diff --git a/apps/weather_status/appinfo/info.xml b/apps/weather_status/appinfo/info.xml new file mode 100644 index 00000000000..23f37a2a947 --- /dev/null +++ b/apps/weather_status/appinfo/info.xml @@ -0,0 +1,21 @@ + + + weather_status + Weather status + Weather status in your dashboard + + 1.0.0 + agpl + Julien Veyssier + WeatherStatus + + integration + dashboard + https://github.com/nextcloud/server + + + + diff --git a/apps/weather_status/appinfo/routes.php b/apps/weather_status/appinfo/routes.php new file mode 100644 index 00000000000..6218595a381 --- /dev/null +++ b/apps/weather_status/appinfo/routes.php @@ -0,0 +1,34 @@ + + * + * @license AGPL-3.0 + * + * This code is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License, version 3, + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License, version 3, + * along with this program. If not, see + * + */ + +return [ + 'ocs' => [ + ['name' => 'WeatherStatus#setMode', 'url' => '/api/v1/mode', 'verb' => 'PUT'], + ['name' => 'WeatherStatus#usePersonalAddress', 'url' => '/api/v1/use-personal', 'verb' => 'PUT'], + ['name' => 'WeatherStatus#getLocation', 'url' => '/api/v1/location', 'verb' => 'GET'], + ['name' => 'WeatherStatus#setLocation', 'url' => '/api/v1/location', 'verb' => 'PUT'], + ['name' => 'WeatherStatus#getForecast', 'url' => '/api/v1/forecast', 'verb' => 'GET'], + ], +]; diff --git a/apps/weather_status/img/app-dark.svg b/apps/weather_status/img/app-dark.svg new file mode 100644 index 00000000000..6f555a36d78 --- /dev/null +++ b/apps/weather_status/img/app-dark.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/app.svg b/apps/weather_status/img/app.svg new file mode 100644 index 00000000000..0c1a137c983 --- /dev/null +++ b/apps/weather_status/img/app.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/cloud-cloud.svg b/apps/weather_status/img/cloud-cloud.svg new file mode 100644 index 00000000000..b1c8a0b8e36 --- /dev/null +++ b/apps/weather_status/img/cloud-cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/cloud-dots.svg b/apps/weather_status/img/cloud-dots.svg new file mode 100644 index 00000000000..818cbb87890 --- /dev/null +++ b/apps/weather_status/img/cloud-dots.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/cross.svg b/apps/weather_status/img/cross.svg new file mode 100644 index 00000000000..e315da6038c --- /dev/null +++ b/apps/weather_status/img/cross.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/drop.svg b/apps/weather_status/img/drop.svg new file mode 100644 index 00000000000..99b3ad259e5 --- /dev/null +++ b/apps/weather_status/img/drop.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/fog.svg b/apps/weather_status/img/fog.svg new file mode 100644 index 00000000000..606d3bfd99b --- /dev/null +++ b/apps/weather_status/img/fog.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/half-sun.svg b/apps/weather_status/img/half-sun.svg new file mode 100644 index 00000000000..c8d6a80b614 --- /dev/null +++ b/apps/weather_status/img/half-sun.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/heavy-rain.svg b/apps/weather_status/img/heavy-rain.svg new file mode 100644 index 00000000000..1296e6757e6 --- /dev/null +++ b/apps/weather_status/img/heavy-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/light-rain.svg b/apps/weather_status/img/light-rain.svg new file mode 100644 index 00000000000..8cc8b41b149 --- /dev/null +++ b/apps/weather_status/img/light-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/moon-cloud-heavy-rain.svg b/apps/weather_status/img/moon-cloud-heavy-rain.svg new file mode 100644 index 00000000000..33d08e42b11 --- /dev/null +++ b/apps/weather_status/img/moon-cloud-heavy-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/moon-cloud-light-rain.svg b/apps/weather_status/img/moon-cloud-light-rain.svg new file mode 100644 index 00000000000..468eab9c97f --- /dev/null +++ b/apps/weather_status/img/moon-cloud-light-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/moon-cloud-rain.svg b/apps/weather_status/img/moon-cloud-rain.svg new file mode 100644 index 00000000000..76e377451d9 --- /dev/null +++ b/apps/weather_status/img/moon-cloud-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/moon-cloud.svg b/apps/weather_status/img/moon-cloud.svg new file mode 100644 index 00000000000..62d2e3f1fe6 --- /dev/null +++ b/apps/weather_status/img/moon-cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/moon-small-cloud.svg b/apps/weather_status/img/moon-small-cloud.svg new file mode 100644 index 00000000000..758595e7a30 --- /dev/null +++ b/apps/weather_status/img/moon-small-cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/moon.svg b/apps/weather_status/img/moon.svg new file mode 100644 index 00000000000..ea87eb60977 --- /dev/null +++ b/apps/weather_status/img/moon.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/rain.svg b/apps/weather_status/img/rain.svg new file mode 100644 index 00000000000..1e8003f6430 --- /dev/null +++ b/apps/weather_status/img/rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/snow.svg b/apps/weather_status/img/snow.svg new file mode 100644 index 00000000000..39842b05af9 --- /dev/null +++ b/apps/weather_status/img/snow.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/sun-cloud-heavy-rain.svg b/apps/weather_status/img/sun-cloud-heavy-rain.svg new file mode 100644 index 00000000000..ff1876424eb --- /dev/null +++ b/apps/weather_status/img/sun-cloud-heavy-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/sun-cloud-light-rain.svg b/apps/weather_status/img/sun-cloud-light-rain.svg new file mode 100644 index 00000000000..2121d850584 --- /dev/null +++ b/apps/weather_status/img/sun-cloud-light-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/sun-cloud-rain.svg b/apps/weather_status/img/sun-cloud-rain.svg new file mode 100644 index 00000000000..edf011492b8 --- /dev/null +++ b/apps/weather_status/img/sun-cloud-rain.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/sun-cloud.svg b/apps/weather_status/img/sun-cloud.svg new file mode 100644 index 00000000000..6b675f94937 --- /dev/null +++ b/apps/weather_status/img/sun-cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/sun-small-cloud.svg b/apps/weather_status/img/sun-small-cloud.svg new file mode 100644 index 00000000000..a5c23fbe1f6 --- /dev/null +++ b/apps/weather_status/img/sun-small-cloud.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/sun.svg b/apps/weather_status/img/sun.svg new file mode 100644 index 00000000000..9b7ed580e0a --- /dev/null +++ b/apps/weather_status/img/sun.svg @@ -0,0 +1 @@ + diff --git a/apps/weather_status/img/thunder.svg b/apps/weather_status/img/thunder.svg new file mode 100644 index 00000000000..9902338708c --- /dev/null +++ b/apps/weather_status/img/thunder.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/img/umbrella.svg b/apps/weather_status/img/umbrella.svg new file mode 100644 index 00000000000..42dd802c233 --- /dev/null +++ b/apps/weather_status/img/umbrella.svg @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/apps/weather_status/js/weather-status.js b/apps/weather_status/js/weather-status.js new file mode 100644 index 00000000000..2bf6dd0946a --- /dev/null +++ b/apps/weather_status/js/weather-status.js @@ -0,0 +1,2 @@ +!function(e){var t={};function n(r){if(t[r])return t[r].exports;var a=t[r]={i:r,l:!1,exports:{}};return e[r].call(a.exports,a,a.exports,n),a.l=!0,a.exports}n.m=e,n.c=t,n.d=function(e,t,r){n.o(e,t)||Object.defineProperty(e,t,{enumerable:!0,get:r})},n.r=function(e){"undefined"!=typeof Symbol&&Symbol.toStringTag&&Object.defineProperty(e,Symbol.toStringTag,{value:"Module"}),Object.defineProperty(e,"__esModule",{value:!0})},n.t=function(e,t){if(1&t&&(e=n(e)),8&t)return e;if(4&t&&"object"==typeof e&&e&&e.__esModule)return e;var r=Object.create(null);if(n.r(r),Object.defineProperty(r,"default",{enumerable:!0,value:e}),2&t&&"string"!=typeof e)for(var a in e)n.d(r,a,function(t){return e[t]}.bind(null,a));return r},n.n=function(e){var t=e&&e.__esModule?function(){return e.default}:function(){return e};return n.d(t,"a",t),t},n.o=function(e,t){return Object.prototype.hasOwnProperty.call(e,t)},n.p="/js/",n(n.s=370)}([function(e,t,n){(function(e){e.exports=function(){"use strict";var t,r;function a(){return t.apply(null,arguments)}function s(e){return e instanceof Array||"[object Array]"===Object.prototype.toString.call(e)}function i(e){return null!=e&&"[object Object]"===Object.prototype.toString.call(e)}function o(e){return void 0===e}function l(e){return"number"==typeof e||"[object Number]"===Object.prototype.toString.call(e)}function u(e){return e instanceof Date||"[object Date]"===Object.prototype.toString.call(e)}function c(e,t){var n,r=[];for(n=0;n>>0,r=0;r0)for(n=0;n=0?n?"+":"":"-")+Math.pow(10,Math.max(0,a)).toString().substr(1)+r}var B=/(\[[^\[]*\])|(\\)?([Hh]mm(ss)?|Mo|MM?M?M?|Do|DDDo|DD?D?D?|ddd?d?|do?|w[o|w]?|W[o|W]?|Qo?|YYYYYY|YYYYY|YYYY|YY|gg(ggg?)?|GG(GGG?)?|e|E|a|A|hh?|HH?|kk?|mm?|ss?|S{1,9}|x|X|zz?|ZZ?|.)/g,H=/(\[[^\[]*\])|(\\)?(LTS|LT|LL?L?L?|l{1,4})/g,Q={},U={};function G(e,t,n,r){var a=r;"string"==typeof r&&(a=function(){return this[r]()}),e&&(U[e]=a),t&&(U[t[0]]=function(){return F(a.apply(this,arguments),t[1],t[2])}),n&&(U[n]=function(){return this.localeData().ordinal(a.apply(this,arguments),e)})}function R(e,t){return e.isValid()?(t=W(t,e.localeData()),Q[t]=Q[t]||function(e){var t,n,r,a=e.match(B);for(t=0,n=a.length;t=0&&H.test(e);)e=e.replace(H,r),H.lastIndex=0,n-=1;return e}var J=/\d/,Z=/\d\d/,V=/\d{3}/,$=/\d{4}/,K=/[+-]?\d{6}/,X=/\d\d?/,q=/\d\d\d\d?/,ee=/\d\d\d\d\d\d?/,te=/\d{1,3}/,ne=/\d{1,4}/,re=/[+-]?\d{1,6}/,ae=/\d+/,se=/[+-]?\d+/,ie=/Z|[+-]\d\d:?\d\d/gi,oe=/Z|[+-]\d\d(?::?\d\d)?/gi,le=/[0-9]{0,256}['a-z\u00A0-\u05FF\u0700-\uD7FF\uF900-\uFDCF\uFDF0-\uFF07\uFF10-\uFFEF]{1,256}|[\u0600-\u06FF\/]{1,256}(\s*?[\u0600-\u06FF]{1,256}){1,2}/i,ue={};function ce(e,t,n){ue[e]=Y(t)?t:function(e,r){return e&&n?n:t}}function de(e,t){return d(ue,e)?ue[e](t._strict,t._locale):new RegExp(me(e.replace("\\","").replace(/\\(\[)|\\(\])|\[([^\]\[]*)\]|\\(.)/g,(function(e,t,n,r,a){return t||n||r||a}))))}function me(e){return e.replace(/[-\/\\^$*+?.()|[\]{}]/g,"\\$&")}var pe={};function fe(e,t){var n,r=t;for("string"==typeof e&&(e=[e]),l(t)&&(r=function(e,n){n[t]=T(e)}),n=0;n68?1900:2e3)};var Me,ye=ve("FullYear",!0);function ve(e,t){return function(n){return null!=n?(Te(this,e,n),a.updateOffset(this,t),this):Le(this,e)}}function Le(e,t){return e.isValid()?e._d["get"+(e._isUTC?"UTC":"")+t]():NaN}function Te(e,t,n){e.isValid()&&!isNaN(n)&&("FullYear"===t&&_e(e.year())&&1===e.month()&&29===e.date()?e._d["set"+(e._isUTC?"UTC":"")+t](n,e.month(),we(n,e.month())):e._d["set"+(e._isUTC?"UTC":"")+t](n))}function we(e,t){if(isNaN(e)||isNaN(t))return NaN;var n,r=(t%(n=12)+n)%n;return e+=(t-r)/12,1===r?_e(e)?29:28:31-r%7%2}Me=Array.prototype.indexOf?Array.prototype.indexOf:function(e){var t;for(t=0;t=0?(o=new Date(e+400,t,n,r,a,s,i),isFinite(o.getFullYear())&&o.setFullYear(e)):o=new Date(e,t,n,r,a,s,i),o}function Ee(e){var t;if(e<100&&e>=0){var n=Array.prototype.slice.call(arguments);n[0]=e+400,t=new Date(Date.UTC.apply(null,n)),isFinite(t.getUTCFullYear())&&t.setUTCFullYear(e)}else t=new Date(Date.UTC.apply(null,arguments));return t}function Oe(e,t,n){var r=7+t-n;return-(7+Ee(e,0,r).getUTCDay()-t)%7+r-1}function Pe(e,t,n,r,a){var s,i,o=1+7*(t-1)+(7+n-r)%7+Oe(e,r,a);return o<=0?i=ge(s=e-1)+o:o>ge(e)?(s=e+1,i=o-ge(e)):(s=e,i=o),{year:s,dayOfYear:i}}function ze(e,t,n){var r,a,s=Oe(e.year(),t,n),i=Math.floor((e.dayOfYear()-s-1)/7)+1;return i<1?r=i+Fe(a=e.year()-1,t,n):i>Fe(e.year(),t,n)?(r=i-Fe(e.year(),t,n),a=e.year()+1):(a=e.year(),r=i),{week:r,year:a}}function Fe(e,t,n){var r=Oe(e,t,n),a=Oe(e+1,t,n);return(ge(e)-r+a)/7}function Be(e,t){return e.slice(t,7).concat(e.slice(0,t))}G("w",["ww",2],"wo","week"),G("W",["WW",2],"Wo","isoWeek"),C("week","w"),C("isoWeek","W"),z("week",5),z("isoWeek",5),ce("w",X),ce("ww",X,Z),ce("W",X),ce("WW",X,Z),Ae(["w","ww","W","WW"],(function(e,t,n,r){t[r.substr(0,1)]=T(e)})),G("d",0,"do","day"),G("dd",0,0,(function(e){return this.localeData().weekdaysMin(this,e)})),G("ddd",0,0,(function(e){return this.localeData().weekdaysShort(this,e)})),G("dddd",0,0,(function(e){return this.localeData().weekdays(this,e)})),G("e",0,0,"weekday"),G("E",0,0,"isoWeekday"),C("day","d"),C("weekday","e"),C("isoWeekday","E"),z("day",11),z("weekday",11),z("isoWeekday",11),ce("d",X),ce("e",X),ce("E",X),ce("dd",(function(e,t){return t.weekdaysMinRegex(e)})),ce("ddd",(function(e,t){return t.weekdaysShortRegex(e)})),ce("dddd",(function(e,t){return t.weekdaysRegex(e)})),Ae(["dd","ddd","dddd"],(function(e,t,n,r){var a=n._locale.weekdaysParse(e,r,n._strict);null!=a?t.d=a:f(n).invalidWeekday=e})),Ae(["d","e","E"],(function(e,t,n,r){t[r]=T(e)}));var He="Sunday_Monday_Tuesday_Wednesday_Thursday_Friday_Saturday".split("_"),Qe="Sun_Mon_Tue_Wed_Thu_Fri_Sat".split("_"),Ue="Su_Mo_Tu_We_Th_Fr_Sa".split("_");function Ge(e,t,n){var r,a,s,i=e.toLocaleLowerCase();if(!this._weekdaysParse)for(this._weekdaysParse=[],this._shortWeekdaysParse=[],this._minWeekdaysParse=[],r=0;r<7;++r)s=p([2e3,1]).day(r),this._minWeekdaysParse[r]=this.weekdaysMin(s,"").toLocaleLowerCase(),this._shortWeekdaysParse[r]=this.weekdaysShort(s,"").toLocaleLowerCase(),this._weekdaysParse[r]=this.weekdays(s,"").toLocaleLowerCase();return n?"dddd"===t?-1!==(a=Me.call(this._weekdaysParse,i))?a:null:"ddd"===t?-1!==(a=Me.call(this._shortWeekdaysParse,i))?a:null:-1!==(a=Me.call(this._minWeekdaysParse,i))?a:null:"dddd"===t?-1!==(a=Me.call(this._weekdaysParse,i))||-1!==(a=Me.call(this._shortWeekdaysParse,i))||-1!==(a=Me.call(this._minWeekdaysParse,i))?a:null:"ddd"===t?-1!==(a=Me.call(this._shortWeekdaysParse,i))||-1!==(a=Me.call(this._weekdaysParse,i))||-1!==(a=Me.call(this._minWeekdaysParse,i))?a:null:-1!==(a=Me.call(this._minWeekdaysParse,i))||-1!==(a=Me.call(this._weekdaysParse,i))||-1!==(a=Me.call(this._shortWeekdaysParse,i))?a:null}var Re=le,We=le,Je=le;function Ze(){function e(e,t){return t.length-e.length}var t,n,r,a,s,i=[],o=[],l=[],u=[];for(t=0;t<7;t++)n=p([2e3,1]).day(t),r=this.weekdaysMin(n,""),a=this.weekdaysShort(n,""),s=this.weekdays(n,""),i.push(r),o.push(a),l.push(s),u.push(r),u.push(a),u.push(s);for(i.sort(e),o.sort(e),l.sort(e),u.sort(e),t=0;t<7;t++)o[t]=me(o[t]),l[t]=me(l[t]),u[t]=me(u[t]);this._weekdaysRegex=new RegExp("^("+u.join("|")+")","i"),this._weekdaysShortRegex=this._weekdaysRegex,this._weekdaysMinRegex=this._weekdaysRegex,this._weekdaysStrictRegex=new RegExp("^("+l.join("|")+")","i"),this._weekdaysShortStrictRegex=new RegExp("^("+o.join("|")+")","i"),this._weekdaysMinStrictRegex=new RegExp("^("+i.join("|")+")","i")}function Ve(){return this.hours()%12||12}function $e(e,t){G(e,0,0,(function(){return this.localeData().meridiem(this.hours(),this.minutes(),t)}))}function Ke(e,t){return t._meridiemParse}G("H",["HH",2],0,"hour"),G("h",["hh",2],0,Ve),G("k",["kk",2],0,(function(){return this.hours()||24})),G("hmm",0,0,(function(){return""+Ve.apply(this)+F(this.minutes(),2)})),G("hmmss",0,0,(function(){return""+Ve.apply(this)+F(this.minutes(),2)+F(this.seconds(),2)})),G("Hmm",0,0,(function(){return""+this.hours()+F(this.minutes(),2)})),G("Hmmss",0,0,(function(){return""+this.hours()+F(this.minutes(),2)+F(this.seconds(),2)})),$e("a",!0),$e("A",!1),C("hour","h"),z("hour",13),ce("a",Ke),ce("A",Ke),ce("H",X),ce("h",X),ce("k",X),ce("HH",X,Z),ce("hh",X,Z),ce("kk",X,Z),ce("hmm",q),ce("hmmss",ee),ce("Hmm",q),ce("Hmmss",ee),fe(["H","HH"],3),fe(["k","kk"],(function(e,t,n){var r=T(e);t[3]=24===r?0:r})),fe(["a","A"],(function(e,t,n){n._isPm=n._locale.isPM(e),n._meridiem=e})),fe(["h","hh"],(function(e,t,n){t[3]=T(e),f(n).bigHour=!0})),fe("hmm",(function(e,t,n){var r=e.length-2;t[3]=T(e.substr(0,r)),t[4]=T(e.substr(r)),f(n).bigHour=!0})),fe("hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=T(e.substr(0,r)),t[4]=T(e.substr(r,2)),t[5]=T(e.substr(a)),f(n).bigHour=!0})),fe("Hmm",(function(e,t,n){var r=e.length-2;t[3]=T(e.substr(0,r)),t[4]=T(e.substr(r))})),fe("Hmmss",(function(e,t,n){var r=e.length-4,a=e.length-2;t[3]=T(e.substr(0,r)),t[4]=T(e.substr(r,2)),t[5]=T(e.substr(a))}));var Xe,qe=ve("Hours",!0),et={calendar:{sameDay:"[Today at] LT",nextDay:"[Tomorrow at] LT",nextWeek:"dddd [at] LT",lastDay:"[Yesterday at] LT",lastWeek:"[Last] dddd [at] LT",sameElse:"L"},longDateFormat:{LTS:"h:mm:ss A",LT:"h:mm A",L:"MM/DD/YYYY",LL:"MMMM D, YYYY",LLL:"MMMM D, YYYY h:mm A",LLLL:"dddd, MMMM D, YYYY h:mm A"},invalidDate:"Invalid date",ordinal:"%d",dayOfMonthOrdinalParse:/\d{1,2}/,relativeTime:{future:"in %s",past:"%s ago",s:"a few seconds",ss:"%d seconds",m:"a minute",mm:"%d minutes",h:"an hour",hh:"%d hours",d:"a day",dd:"%d days",M:"a month",MM:"%d months",y:"a year",yy:"%d years"},months:xe,monthsShort:De,week:{dow:0,doy:6},weekdays:He,weekdaysMin:Ue,weekdaysShort:Qe,meridiemParse:/[ap]\.?m?\.?/i},tt={},nt={};function rt(e){return e?e.toLowerCase().replace("_","-"):e}function at(t){var r=null;if(!tt[t]&&void 0!==e&&e&&e.exports)try{r=Xe._abbr,n(307)("./"+t),st(r)}catch(e){}return tt[t]}function st(e,t){var n;return e&&((n=o(t)?ot(e):it(e,t))?Xe=n:"undefined"!=typeof console&&console.warn&&console.warn("Locale "+e+" not found. Did you forget to load it?")),Xe._abbr}function it(e,t){if(null!==t){var n,r=et;if(t.abbr=e,null!=tt[e])j("defineLocaleOverride","use moment.updateLocale(localeName, config) to change an existing locale. moment.defineLocale(localeName, config) should only be used for creating a new locale See http://momentjs.com/guides/#/warnings/define-locale/ for more info."),r=tt[e]._config;else if(null!=t.parentLocale)if(null!=tt[t.parentLocale])r=tt[t.parentLocale]._config;else{if(null==(n=at(t.parentLocale)))return nt[t.parentLocale]||(nt[t.parentLocale]=[]),nt[t.parentLocale].push({name:e,config:t}),null;r=n._config}return tt[e]=new N(S(r,t)),nt[e]&&nt[e].forEach((function(e){it(e.name,e.config)})),st(e),tt[e]}return delete tt[e],null}function ot(e){var t;if(e&&e._locale&&e._locale._abbr&&(e=e._locale._abbr),!e)return Xe;if(!s(e)){if(t=at(e))return t;e=[e]}return function(e){for(var t,n,r,a,s=0;s0;){if(r=at(a.slice(0,t).join("-")))return r;if(n&&n.length>=t&&w(a,n,!0)>=t-1)break;t--}s++}return Xe}(e)}function lt(e){var t,n=e._a;return n&&-2===f(e).overflow&&(t=n[1]<0||n[1]>11?1:n[2]<1||n[2]>we(n[0],n[1])?2:n[3]<0||n[3]>24||24===n[3]&&(0!==n[4]||0!==n[5]||0!==n[6])?3:n[4]<0||n[4]>59?4:n[5]<0||n[5]>59?5:n[6]<0||n[6]>999?6:-1,f(e)._overflowDayOfYear&&(t<0||t>2)&&(t=2),f(e)._overflowWeeks&&-1===t&&(t=7),f(e)._overflowWeekday&&-1===t&&(t=8),f(e).overflow=t),e}function ut(e,t,n){return null!=e?e:null!=t?t:n}function ct(e){var t,n,r,s,i,o=[];if(!e._d){for(r=function(e){var t=new Date(a.now());return e._useUTC?[t.getUTCFullYear(),t.getUTCMonth(),t.getUTCDate()]:[t.getFullYear(),t.getMonth(),t.getDate()]}(e),e._w&&null==e._a[2]&&null==e._a[1]&&function(e){var t,n,r,a,s,i,o,l;if(null!=(t=e._w).GG||null!=t.W||null!=t.E)s=1,i=4,n=ut(t.GG,e._a[0],ze(bt(),1,4).year),r=ut(t.W,1),((a=ut(t.E,1))<1||a>7)&&(l=!0);else{s=e._locale._week.dow,i=e._locale._week.doy;var u=ze(bt(),s,i);n=ut(t.gg,e._a[0],u.year),r=ut(t.w,u.week),null!=t.d?((a=t.d)<0||a>6)&&(l=!0):null!=t.e?(a=t.e+s,(t.e<0||t.e>6)&&(l=!0)):a=s}r<1||r>Fe(n,s,i)?f(e)._overflowWeeks=!0:null!=l?f(e)._overflowWeekday=!0:(o=Pe(n,r,a,s,i),e._a[0]=o.year,e._dayOfYear=o.dayOfYear)}(e),null!=e._dayOfYear&&(i=ut(e._a[0],r[0]),(e._dayOfYear>ge(i)||0===e._dayOfYear)&&(f(e)._overflowDayOfYear=!0),n=Ee(i,0,e._dayOfYear),e._a[1]=n.getUTCMonth(),e._a[2]=n.getUTCDate()),t=0;t<3&&null==e._a[t];++t)e._a[t]=o[t]=r[t];for(;t<7;t++)e._a[t]=o[t]=null==e._a[t]?2===t?1:0:e._a[t];24===e._a[3]&&0===e._a[4]&&0===e._a[5]&&0===e._a[6]&&(e._nextDay=!0,e._a[3]=0),e._d=(e._useUTC?Ee:Ce).apply(null,o),s=e._useUTC?e._d.getUTCDay():e._d.getDay(),null!=e._tzm&&e._d.setUTCMinutes(e._d.getUTCMinutes()-e._tzm),e._nextDay&&(e._a[3]=24),e._w&&void 0!==e._w.d&&e._w.d!==s&&(f(e).weekdayMismatch=!0)}}var dt=/^\s*((?:[+-]\d{6}|\d{4})-(?:\d\d-\d\d|W\d\d-\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?::\d\d(?::\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,mt=/^\s*((?:[+-]\d{6}|\d{4})(?:\d\d\d\d|W\d\d\d|W\d\d|\d\d\d|\d\d))(?:(T| )(\d\d(?:\d\d(?:\d\d(?:[.,]\d+)?)?)?)([\+\-]\d\d(?::?\d\d)?|\s*Z)?)?$/,pt=/Z|[+-]\d\d(?::?\d\d)?/,ft=[["YYYYYY-MM-DD",/[+-]\d{6}-\d\d-\d\d/],["YYYY-MM-DD",/\d{4}-\d\d-\d\d/],["GGGG-[W]WW-E",/\d{4}-W\d\d-\d/],["GGGG-[W]WW",/\d{4}-W\d\d/,!1],["YYYY-DDD",/\d{4}-\d{3}/],["YYYY-MM",/\d{4}-\d\d/,!1],["YYYYYYMMDD",/[+-]\d{10}/],["YYYYMMDD",/\d{8}/],["GGGG[W]WWE",/\d{4}W\d{3}/],["GGGG[W]WW",/\d{4}W\d{2}/,!1],["YYYYDDD",/\d{7}/]],At=[["HH:mm:ss.SSSS",/\d\d:\d\d:\d\d\.\d+/],["HH:mm:ss,SSSS",/\d\d:\d\d:\d\d,\d+/],["HH:mm:ss",/\d\d:\d\d:\d\d/],["HH:mm",/\d\d:\d\d/],["HHmmss.SSSS",/\d\d\d\d\d\d\.\d+/],["HHmmss,SSSS",/\d\d\d\d\d\d,\d+/],["HHmmss",/\d\d\d\d\d\d/],["HHmm",/\d\d\d\d/],["HH",/\d\d/]],ht=/^\/?Date\((\-?\d+)/i;function gt(e){var t,n,r,a,s,i,o=e._i,l=dt.exec(o)||mt.exec(o);if(l){for(f(e).iso=!0,t=0,n=ft.length;t0&&f(e).unusedInput.push(i),o=o.slice(o.indexOf(n)+n.length),u+=n.length),U[s]?(n?f(e).empty=!1:f(e).unusedTokens.push(s),he(s,n,e)):e._strict&&!n&&f(e).unusedTokens.push(s);f(e).charsLeftOver=l-u,o.length>0&&f(e).unusedInput.push(o),e._a[3]<=12&&!0===f(e).bigHour&&e._a[3]>0&&(f(e).bigHour=void 0),f(e).parsedDateParts=e._a.slice(0),f(e).meridiem=e._meridiem,e._a[3]=function(e,t,n){var r;return null==n?t:null!=e.meridiemHour?e.meridiemHour(t,n):null!=e.isPM?((r=e.isPM(n))&&t<12&&(t+=12),r||12!==t||(t=0),t):t}(e._locale,e._a[3],e._meridiem),ct(e),lt(e)}else vt(e);else gt(e)}function Tt(e){var t=e._i,n=e._f;return e._locale=e._locale||ot(e._l),null===t||void 0===n&&""===t?h({nullInput:!0}):("string"==typeof t&&(e._i=t=e._locale.preparse(t)),v(t)?new y(lt(t)):(u(t)?e._d=t:s(n)?function(e){var t,n,r,a,s;if(0===e._f.length)return f(e).invalidFormat=!0,void(e._d=new Date(NaN));for(a=0;athis?this:e:h()}));function kt(e,t){var n,r;if(1===t.length&&s(t[0])&&(t=t[0]),!t.length)return bt();for(n=t[0],r=1;r=0?new Date(e+400,t,n)-126227808e5:new Date(e,t,n).valueOf()}function en(e,t,n){return e<100&&e>=0?Date.UTC(e+400,t,n)-126227808e5:Date.UTC(e,t,n)}function tn(e,t){G(0,[e,e.length],0,t)}function nn(e,t,n,r,a){var s;return null==e?ze(this,r,a).year:(t>(s=Fe(e,r,a))&&(t=s),rn.call(this,e,t,n,r,a))}function rn(e,t,n,r,a){var s=Pe(e,t,n,r,a),i=Ee(s.year,0,s.dayOfYear);return this.year(i.getUTCFullYear()),this.month(i.getUTCMonth()),this.date(i.getUTCDate()),this}G(0,["gg",2],0,(function(){return this.weekYear()%100})),G(0,["GG",2],0,(function(){return this.isoWeekYear()%100})),tn("gggg","weekYear"),tn("ggggg","weekYear"),tn("GGGG","isoWeekYear"),tn("GGGGG","isoWeekYear"),C("weekYear","gg"),C("isoWeekYear","GG"),z("weekYear",1),z("isoWeekYear",1),ce("G",se),ce("g",se),ce("GG",X,Z),ce("gg",X,Z),ce("GGGG",ne,$),ce("gggg",ne,$),ce("GGGGG",re,K),ce("ggggg",re,K),Ae(["gggg","ggggg","GGGG","GGGGG"],(function(e,t,n,r){t[r.substr(0,2)]=T(e)})),Ae(["gg","GG"],(function(e,t,n,r){t[r]=a.parseTwoDigitYear(e)})),G("Q",0,"Qo","quarter"),C("quarter","Q"),z("quarter",7),ce("Q",J),fe("Q",(function(e,t){t[1]=3*(T(e)-1)})),G("D",["DD",2],"Do","date"),C("date","D"),z("date",9),ce("D",X),ce("DD",X,Z),ce("Do",(function(e,t){return e?t._dayOfMonthOrdinalParse||t._ordinalParse:t._dayOfMonthOrdinalParseLenient})),fe(["D","DD"],2),fe("Do",(function(e,t){t[2]=T(e.match(X)[0])}));var an=ve("Date",!0);G("DDD",["DDDD",3],"DDDo","dayOfYear"),C("dayOfYear","DDD"),z("dayOfYear",4),ce("DDD",te),ce("DDDD",V),fe(["DDD","DDDD"],(function(e,t,n){n._dayOfYear=T(e)})),G("m",["mm",2],0,"minute"),C("minute","m"),z("minute",14),ce("m",X),ce("mm",X,Z),fe(["m","mm"],4);var sn=ve("Minutes",!1);G("s",["ss",2],0,"second"),C("second","s"),z("second",15),ce("s",X),ce("ss",X,Z),fe(["s","ss"],5);var on,ln=ve("Seconds",!1);for(G("S",0,0,(function(){return~~(this.millisecond()/100)})),G(0,["SS",2],0,(function(){return~~(this.millisecond()/10)})),G(0,["SSS",3],0,"millisecond"),G(0,["SSSS",4],0,(function(){return 10*this.millisecond()})),G(0,["SSSSS",5],0,(function(){return 100*this.millisecond()})),G(0,["SSSSSS",6],0,(function(){return 1e3*this.millisecond()})),G(0,["SSSSSSS",7],0,(function(){return 1e4*this.millisecond()})),G(0,["SSSSSSSS",8],0,(function(){return 1e5*this.millisecond()})),G(0,["SSSSSSSSS",9],0,(function(){return 1e6*this.millisecond()})),C("millisecond","ms"),z("millisecond",16),ce("S",te,J),ce("SS",te,Z),ce("SSS",te,V),on="SSSS";on.length<=9;on+="S")ce(on,ae);function un(e,t){t[6]=T(1e3*("0."+e))}for(on="S";on.length<=9;on+="S")fe(on,un);var cn=ve("Milliseconds",!1);G("z",0,0,"zoneAbbr"),G("zz",0,0,"zoneName");var dn=y.prototype;function mn(e){return e}dn.add=Wt,dn.calendar=function(e,t){var n=e||bt(),r=Ot(n,this).startOf("day"),s=a.calendarFormat(this,r)||"sameElse",i=t&&(Y(t[s])?t[s].call(this,n):t[s]);return this.format(i||this.localeData().calendar(s,this,bt(n)))},dn.clone=function(){return new y(this)},dn.diff=function(e,t,n){var r,a,s;if(!this.isValid())return NaN;if(!(r=Ot(e,this)).isValid())return NaN;switch(a=6e4*(r.utcOffset()-this.utcOffset()),t=E(t)){case"year":s=Zt(this,r)/12;break;case"month":s=Zt(this,r);break;case"quarter":s=Zt(this,r)/3;break;case"second":s=(this-r)/1e3;break;case"minute":s=(this-r)/6e4;break;case"hour":s=(this-r)/36e5;break;case"day":s=(this-r-a)/864e5;break;case"week":s=(this-r-a)/6048e5;break;default:s=this-r}return n?s:L(s)},dn.endOf=function(e){var t;if(void 0===(e=E(e))||"millisecond"===e||!this.isValid())return this;var n=this._isUTC?en:qt;switch(e){case"year":t=n(this.year()+1,0,1)-1;break;case"quarter":t=n(this.year(),this.month()-this.month()%3+3,1)-1;break;case"month":t=n(this.year(),this.month()+1,1)-1;break;case"week":t=n(this.year(),this.month(),this.date()-this.weekday()+7)-1;break;case"isoWeek":t=n(this.year(),this.month(),this.date()-(this.isoWeekday()-1)+7)-1;break;case"day":case"date":t=n(this.year(),this.month(),this.date()+1)-1;break;case"hour":t=this._d.valueOf(),t+=36e5-Xt(t+(this._isUTC?0:6e4*this.utcOffset()),36e5)-1;break;case"minute":t=this._d.valueOf(),t+=6e4-Xt(t,6e4)-1;break;case"second":t=this._d.valueOf(),t+=1e3-Xt(t,1e3)-1}return this._d.setTime(t),a.updateOffset(this,!0),this},dn.format=function(e){e||(e=this.isUtc()?a.defaultFormatUtc:a.defaultFormat);var t=R(this,e);return this.localeData().postformat(t)},dn.from=function(e,t){return this.isValid()&&(v(e)&&e.isValid()||bt(e).isValid())?Ht({to:this,from:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},dn.fromNow=function(e){return this.from(bt(),e)},dn.to=function(e,t){return this.isValid()&&(v(e)&&e.isValid()||bt(e).isValid())?Ht({from:this,to:e}).locale(this.locale()).humanize(!t):this.localeData().invalidDate()},dn.toNow=function(e){return this.to(bt(),e)},dn.get=function(e){return Y(this[e=E(e)])?this[e]():this},dn.invalidAt=function(){return f(this).overflow},dn.isAfter=function(e,t){var n=v(e)?e:bt(e);return!(!this.isValid()||!n.isValid())&&("millisecond"===(t=E(t)||"millisecond")?this.valueOf()>n.valueOf():n.valueOf()9999?R(n,t?"YYYYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYYYY-MM-DD[T]HH:mm:ss.SSSZ"):Y(Date.prototype.toISOString)?t?this.toDate().toISOString():new Date(this.valueOf()+60*this.utcOffset()*1e3).toISOString().replace("Z",R(n,"Z")):R(n,t?"YYYY-MM-DD[T]HH:mm:ss.SSS[Z]":"YYYY-MM-DD[T]HH:mm:ss.SSSZ")},dn.inspect=function(){if(!this.isValid())return"moment.invalid(/* "+this._i+" */)";var e="moment",t="";this.isLocal()||(e=0===this.utcOffset()?"moment.utc":"moment.parseZone",t="Z");var n="["+e+'("]',r=0<=this.year()&&this.year()<=9999?"YYYY":"YYYYYY",a=t+'[")]';return this.format(n+r+"-MM-DD[T]HH:mm:ss.SSS"+a)},dn.toJSON=function(){return this.isValid()?this.toISOString():null},dn.toString=function(){return this.clone().locale("en").format("ddd MMM DD YYYY HH:mm:ss [GMT]ZZ")},dn.unix=function(){return Math.floor(this.valueOf()/1e3)},dn.valueOf=function(){return this._d.valueOf()-6e4*(this._offset||0)},dn.creationData=function(){return{input:this._i,format:this._f,locale:this._locale,isUTC:this._isUTC,strict:this._strict}},dn.year=ye,dn.isLeapYear=function(){return _e(this.year())},dn.weekYear=function(e){return nn.call(this,e,this.week(),this.weekday(),this.localeData()._week.dow,this.localeData()._week.doy)},dn.isoWeekYear=function(e){return nn.call(this,e,this.isoWeek(),this.isoWeekday(),1,4)},dn.quarter=dn.quarters=function(e){return null==e?Math.ceil((this.month()+1)/3):this.month(3*(e-1)+this.month()%3)},dn.month=Ye,dn.daysInMonth=function(){return we(this.year(),this.month())},dn.week=dn.weeks=function(e){var t=this.localeData().week(this);return null==e?t:this.add(7*(e-t),"d")},dn.isoWeek=dn.isoWeeks=function(e){var t=ze(this,1,4).week;return null==e?t:this.add(7*(e-t),"d")},dn.weeksInYear=function(){var e=this.localeData()._week;return Fe(this.year(),e.dow,e.doy)},dn.isoWeeksInYear=function(){return Fe(this.year(),1,4)},dn.date=an,dn.day=dn.days=function(e){if(!this.isValid())return null!=e?this:NaN;var t=this._isUTC?this._d.getUTCDay():this._d.getDay();return null!=e?(e=function(e,t){return"string"!=typeof e?e:isNaN(e)?"number"==typeof(e=t.weekdaysParse(e))?e:null:parseInt(e,10)}(e,this.localeData()),this.add(e-t,"d")):t},dn.weekday=function(e){if(!this.isValid())return null!=e?this:NaN;var t=(this.day()+7-this.localeData()._week.dow)%7;return null==e?t:this.add(e-t,"d")},dn.isoWeekday=function(e){if(!this.isValid())return null!=e?this:NaN;if(null!=e){var t=function(e,t){return"string"==typeof e?t.weekdaysParse(e)%7||7:isNaN(e)?null:e}(e,this.localeData());return this.day(this.day()%7?t:t-7)}return this.day()||7},dn.dayOfYear=function(e){var t=Math.round((this.clone().startOf("day")-this.clone().startOf("year"))/864e5)+1;return null==e?t:this.add(e-t,"d")},dn.hour=dn.hours=qe,dn.minute=dn.minutes=sn,dn.second=dn.seconds=ln,dn.millisecond=dn.milliseconds=cn,dn.utcOffset=function(e,t,n){var r,s=this._offset||0;if(!this.isValid())return null!=e?this:NaN;if(null!=e){if("string"==typeof e){if(null===(e=Et(oe,e)))return this}else Math.abs(e)<16&&!n&&(e*=60);return!this._isUTC&&t&&(r=Pt(this)),this._offset=e,this._isUTC=!0,null!=r&&this.add(r,"m"),s!==e&&(!t||this._changeInProgress?Rt(this,Ht(e-s,"m"),1,!1):this._changeInProgress||(this._changeInProgress=!0,a.updateOffset(this,!0),this._changeInProgress=null)),this}return this._isUTC?s:Pt(this)},dn.utc=function(e){return this.utcOffset(0,e)},dn.local=function(e){return this._isUTC&&(this.utcOffset(0,e),this._isUTC=!1,e&&this.subtract(Pt(this),"m")),this},dn.parseZone=function(){if(null!=this._tzm)this.utcOffset(this._tzm,!1,!0);else if("string"==typeof this._i){var e=Et(ie,this._i);null!=e?this.utcOffset(e):this.utcOffset(0,!0)}return this},dn.hasAlignedHourOffset=function(e){return!!this.isValid()&&(e=e?bt(e).utcOffset():0,(this.utcOffset()-e)%60==0)},dn.isDST=function(){return this.utcOffset()>this.clone().month(0).utcOffset()||this.utcOffset()>this.clone().month(5).utcOffset()},dn.isLocal=function(){return!!this.isValid()&&!this._isUTC},dn.isUtcOffset=function(){return!!this.isValid()&&this._isUTC},dn.isUtc=zt,dn.isUTC=zt,dn.zoneAbbr=function(){return this._isUTC?"UTC":""},dn.zoneName=function(){return this._isUTC?"Coordinated Universal Time":""},dn.dates=x("dates accessor is deprecated. Use date instead.",an),dn.months=x("months accessor is deprecated. Use month instead",Ye),dn.years=x("years accessor is deprecated. Use year instead",ye),dn.zone=x("moment().zone is deprecated, use moment().utcOffset instead. http://momentjs.com/guides/#/warnings/zone/",(function(e,t){return null!=e?("string"!=typeof e&&(e=-e),this.utcOffset(e,t),this):-this.utcOffset()})),dn.isDSTShifted=x("isDSTShifted is deprecated. See http://momentjs.com/guides/#/warnings/dst-shifted/ for more information",(function(){if(!o(this._isDSTShifted))return this._isDSTShifted;var e={};if(_(e,this),(e=Tt(e))._a){var t=e._isUTC?p(e._a):bt(e._a);this._isDSTShifted=this.isValid()&&w(e._a,t.toArray())>0}else this._isDSTShifted=!1;return this._isDSTShifted}));var pn=N.prototype;function fn(e,t,n,r){var a=ot(),s=p().set(r,t);return a[n](s,e)}function An(e,t,n){if(l(e)&&(t=e,e=void 0),e=e||"",null!=t)return fn(e,t,n,"month");var r,a=[];for(r=0;r<12;r++)a[r]=fn(e,r,n,"month");return a}function hn(e,t,n,r){"boolean"==typeof e?(l(t)&&(n=t,t=void 0),t=t||""):(n=t=e,e=!1,l(t)&&(n=t,t=void 0),t=t||"");var a,s=ot(),i=e?s._week.dow:0;if(null!=n)return fn(t,(n+i)%7,r,"day");var o=[];for(a=0;a<7;a++)o[a]=fn(t,(a+i)%7,r,"day");return o}pn.calendar=function(e,t,n){var r=this._calendar[e]||this._calendar.sameElse;return Y(r)?r.call(t,n):r},pn.longDateFormat=function(e){var t=this._longDateFormat[e],n=this._longDateFormat[e.toUpperCase()];return t||!n?t:(this._longDateFormat[e]=n.replace(/MMMM|MM|DD|dddd/g,(function(e){return e.slice(1)})),this._longDateFormat[e])},pn.invalidDate=function(){return this._invalidDate},pn.ordinal=function(e){return this._ordinal.replace("%d",e)},pn.preparse=mn,pn.postformat=mn,pn.relativeTime=function(e,t,n,r){var a=this._relativeTime[n];return Y(a)?a(e,t,n,r):a.replace(/%d/i,e)},pn.pastFuture=function(e,t){var n=this._relativeTime[e>0?"future":"past"];return Y(n)?n(t):n.replace(/%s/i,t)},pn.set=function(e){var t,n;for(n in e)Y(t=e[n])?this[n]=t:this["_"+n]=t;this._config=e,this._dayOfMonthOrdinalParseLenient=new RegExp((this._dayOfMonthOrdinalParse.source||this._ordinalParse.source)+"|"+/\d{1,2}/.source)},pn.months=function(e,t){return e?s(this._months)?this._months[e.month()]:this._months[(this._months.isFormat||be).test(t)?"format":"standalone"][e.month()]:s(this._months)?this._months:this._months.standalone},pn.monthsShort=function(e,t){return e?s(this._monthsShort)?this._monthsShort[e.month()]:this._monthsShort[be.test(t)?"format":"standalone"][e.month()]:s(this._monthsShort)?this._monthsShort:this._monthsShort.standalone},pn.monthsParse=function(e,t,n){var r,a,s;if(this._monthsParseExact)return ke.call(this,e,t,n);for(this._monthsParse||(this._monthsParse=[],this._longMonthsParse=[],this._shortMonthsParse=[]),r=0;r<12;r++){if(a=p([2e3,r]),n&&!this._longMonthsParse[r]&&(this._longMonthsParse[r]=new RegExp("^"+this.months(a,"").replace(".","")+"$","i"),this._shortMonthsParse[r]=new RegExp("^"+this.monthsShort(a,"").replace(".","")+"$","i")),n||this._monthsParse[r]||(s="^"+this.months(a,"")+"|^"+this.monthsShort(a,""),this._monthsParse[r]=new RegExp(s.replace(".",""),"i")),n&&"MMMM"===t&&this._longMonthsParse[r].test(e))return r;if(n&&"MMM"===t&&this._shortMonthsParse[r].test(e))return r;if(!n&&this._monthsParse[r].test(e))return r}},pn.monthsRegex=function(e){return this._monthsParseExact?(d(this,"_monthsRegex")||Ie.call(this),e?this._monthsStrictRegex:this._monthsRegex):(d(this,"_monthsRegex")||(this._monthsRegex=Ne),this._monthsStrictRegex&&e?this._monthsStrictRegex:this._monthsRegex)},pn.monthsShortRegex=function(e){return this._monthsParseExact?(d(this,"_monthsRegex")||Ie.call(this),e?this._monthsShortStrictRegex:this._monthsShortRegex):(d(this,"_monthsShortRegex")||(this._monthsShortRegex=Se),this._monthsShortStrictRegex&&e?this._monthsShortStrictRegex:this._monthsShortRegex)},pn.week=function(e){return ze(e,this._week.dow,this._week.doy).week},pn.firstDayOfYear=function(){return this._week.doy},pn.firstDayOfWeek=function(){return this._week.dow},pn.weekdays=function(e,t){var n=s(this._weekdays)?this._weekdays:this._weekdays[e&&!0!==e&&this._weekdays.isFormat.test(t)?"format":"standalone"];return!0===e?Be(n,this._week.dow):e?n[e.day()]:n},pn.weekdaysMin=function(e){return!0===e?Be(this._weekdaysMin,this._week.dow):e?this._weekdaysMin[e.day()]:this._weekdaysMin},pn.weekdaysShort=function(e){return!0===e?Be(this._weekdaysShort,this._week.dow):e?this._weekdaysShort[e.day()]:this._weekdaysShort},pn.weekdaysParse=function(e,t,n){var r,a,s;if(this._weekdaysParseExact)return Ge.call(this,e,t,n);for(this._weekdaysParse||(this._weekdaysParse=[],this._minWeekdaysParse=[],this._shortWeekdaysParse=[],this._fullWeekdaysParse=[]),r=0;r<7;r++){if(a=p([2e3,1]).day(r),n&&!this._fullWeekdaysParse[r]&&(this._fullWeekdaysParse[r]=new RegExp("^"+this.weekdays(a,"").replace(".","\\.?")+"$","i"),this._shortWeekdaysParse[r]=new RegExp("^"+this.weekdaysShort(a,"").replace(".","\\.?")+"$","i"),this._minWeekdaysParse[r]=new RegExp("^"+this.weekdaysMin(a,"").replace(".","\\.?")+"$","i")),this._weekdaysParse[r]||(s="^"+this.weekdays(a,"")+"|^"+this.weekdaysShort(a,"")+"|^"+this.weekdaysMin(a,""),this._weekdaysParse[r]=new RegExp(s.replace(".",""),"i")),n&&"dddd"===t&&this._fullWeekdaysParse[r].test(e))return r;if(n&&"ddd"===t&&this._shortWeekdaysParse[r].test(e))return r;if(n&&"dd"===t&&this._minWeekdaysParse[r].test(e))return r;if(!n&&this._weekdaysParse[r].test(e))return r}},pn.weekdaysRegex=function(e){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Ze.call(this),e?this._weekdaysStrictRegex:this._weekdaysRegex):(d(this,"_weekdaysRegex")||(this._weekdaysRegex=Re),this._weekdaysStrictRegex&&e?this._weekdaysStrictRegex:this._weekdaysRegex)},pn.weekdaysShortRegex=function(e){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Ze.call(this),e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex):(d(this,"_weekdaysShortRegex")||(this._weekdaysShortRegex=We),this._weekdaysShortStrictRegex&&e?this._weekdaysShortStrictRegex:this._weekdaysShortRegex)},pn.weekdaysMinRegex=function(e){return this._weekdaysParseExact?(d(this,"_weekdaysRegex")||Ze.call(this),e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex):(d(this,"_weekdaysMinRegex")||(this._weekdaysMinRegex=Je),this._weekdaysMinStrictRegex&&e?this._weekdaysMinStrictRegex:this._weekdaysMinRegex)},pn.isPM=function(e){return"p"===(e+"").toLowerCase().charAt(0)},pn.meridiem=function(e,t,n){return e>11?n?"pm":"PM":n?"am":"AM"},st("en",{dayOfMonthOrdinalParse:/\d{1,2}(th|st|nd|rd)/,ordinal:function(e){var t=e%10;return e+(1===T(e%100/10)?"th":1===t?"st":2===t?"nd":3===t?"rd":"th")}}),a.lang=x("moment.lang is deprecated. Use moment.locale instead.",st),a.langData=x("moment.langData is deprecated. Use moment.localeData instead.",ot);var gn=Math.abs;function _n(e,t,n,r){var a=Ht(t,n);return e._milliseconds+=r*a._milliseconds,e._days+=r*a._days,e._months+=r*a._months,e._bubble()}function Mn(e){return e<0?Math.floor(e):Math.ceil(e)}function yn(e){return 4800*e/146097}function vn(e){return 146097*e/4800}function Ln(e){return function(){return this.as(e)}}var Tn=Ln("ms"),wn=Ln("s"),bn=Ln("m"),xn=Ln("h"),Dn=Ln("d"),kn=Ln("w"),jn=Ln("M"),Yn=Ln("Q"),Sn=Ln("y");function Nn(e){return function(){return this.isValid()?this._data[e]:NaN}}var In=Nn("milliseconds"),Cn=Nn("seconds"),En=Nn("minutes"),On=Nn("hours"),Pn=Nn("days"),zn=Nn("months"),Fn=Nn("years"),Bn=Math.round,Hn={ss:44,s:45,m:45,h:22,d:26,M:11};function Qn(e,t,n,r,a){return a.relativeTime(t||1,!!n,e,r)}var Un=Math.abs;function Gn(e){return(e>0)-(e<0)||+e}function Rn(){if(!this.isValid())return this.localeData().invalidDate();var e,t,n=Un(this._milliseconds)/1e3,r=Un(this._days),a=Un(this._months);e=L(n/60),t=L(e/60),n%=60,e%=60;var s=L(a/12),i=a%=12,o=r,l=t,u=e,c=n?n.toFixed(3).replace(/\.?0+$/,""):"",d=this.asSeconds();if(!d)return"P0D";var m=d<0?"-":"",p=Gn(this._months)!==Gn(d)?"-":"",f=Gn(this._days)!==Gn(d)?"-":"",A=Gn(this._milliseconds)!==Gn(d)?"-":"";return m+"P"+(s?p+s+"Y":"")+(i?p+i+"M":"")+(o?f+o+"D":"")+(l||u||c?"T":"")+(l?A+l+"H":"")+(u?A+u+"M":"")+(c?A+c+"S":"")}var Wn=Yt.prototype;return Wn.isValid=function(){return this._isValid},Wn.abs=function(){var e=this._data;return this._milliseconds=gn(this._milliseconds),this._days=gn(this._days),this._months=gn(this._months),e.milliseconds=gn(e.milliseconds),e.seconds=gn(e.seconds),e.minutes=gn(e.minutes),e.hours=gn(e.hours),e.months=gn(e.months),e.years=gn(e.years),this},Wn.add=function(e,t){return _n(this,e,t,1)},Wn.subtract=function(e,t){return _n(this,e,t,-1)},Wn.as=function(e){if(!this.isValid())return NaN;var t,n,r=this._milliseconds;if("month"===(e=E(e))||"quarter"===e||"year"===e)switch(t=this._days+r/864e5,n=this._months+yn(t),e){case"month":return n;case"quarter":return n/3;case"year":return n/12}else switch(t=this._days+Math.round(vn(this._months)),e){case"week":return t/7+r/6048e5;case"day":return t+r/864e5;case"hour":return 24*t+r/36e5;case"minute":return 1440*t+r/6e4;case"second":return 86400*t+r/1e3;case"millisecond":return Math.floor(864e5*t)+r;default:throw new Error("Unknown unit "+e)}},Wn.asMilliseconds=Tn,Wn.asSeconds=wn,Wn.asMinutes=bn,Wn.asHours=xn,Wn.asDays=Dn,Wn.asWeeks=kn,Wn.asMonths=jn,Wn.asQuarters=Yn,Wn.asYears=Sn,Wn.valueOf=function(){return this.isValid()?this._milliseconds+864e5*this._days+this._months%12*2592e6+31536e6*T(this._months/12):NaN},Wn._bubble=function(){var e,t,n,r,a,s=this._milliseconds,i=this._days,o=this._months,l=this._data;return s>=0&&i>=0&&o>=0||s<=0&&i<=0&&o<=0||(s+=864e5*Mn(vn(o)+i),i=0,o=0),l.milliseconds=s%1e3,e=L(s/1e3),l.seconds=e%60,t=L(e/60),l.minutes=t%60,n=L(t/60),l.hours=n%24,i+=L(n/24),a=L(yn(i)),o+=a,i-=Mn(vn(a)),r=L(o/12),o%=12,l.days=i,l.months=o,l.years=r,this},Wn.clone=function(){return Ht(this)},Wn.get=function(e){return e=E(e),this.isValid()?this[e+"s"]():NaN},Wn.milliseconds=In,Wn.seconds=Cn,Wn.minutes=En,Wn.hours=On,Wn.days=Pn,Wn.weeks=function(){return L(this.days()/7)},Wn.months=zn,Wn.years=Fn,Wn.humanize=function(e){if(!this.isValid())return this.localeData().invalidDate();var t=this.localeData(),n=function(e,t,n){var r=Ht(e).abs(),a=Bn(r.as("s")),s=Bn(r.as("m")),i=Bn(r.as("h")),o=Bn(r.as("d")),l=Bn(r.as("M")),u=Bn(r.as("y")),c=a<=Hn.ss&&["s",a]||a0,c[4]=n,Qn.apply(null,c)}(this,!e,t);return e&&(n=t.pastFuture(+this,n)),t.postformat(n)},Wn.toISOString=Rn,Wn.toString=Rn,Wn.toJSON=Rn,Wn.locale=Vt,Wn.localeData=Kt,Wn.toIsoString=x("toIsoString() is deprecated. Please use toISOString() instead (notice the capitals)",Rn),Wn.lang=$t,G("X",0,0,"unix"),G("x",0,0,"valueOf"),ce("x",se),ce("X",/[+-]?\d+(\.\d{1,3})?/),fe("X",(function(e,t,n){n._d=new Date(1e3*parseFloat(e,10))})),fe("x",(function(e,t,n){n._d=new Date(T(e))})),a.version="2.24.0",t=bt,a.fn=dn,a.min=function(){var e=[].slice.call(arguments,0);return kt("isBefore",e)},a.max=function(){var e=[].slice.call(arguments,0);return kt("isAfter",e)},a.now=function(){return Date.now?Date.now():+new Date},a.utc=p,a.unix=function(e){return bt(1e3*e)},a.months=function(e,t){return An(e,t,"months")},a.isDate=u,a.locale=st,a.invalid=h,a.duration=Ht,a.isMoment=v,a.weekdays=function(e,t,n){return hn(e,t,n,"weekdays")},a.parseZone=function(){return bt.apply(null,arguments).parseZone()},a.localeData=ot,a.isDuration=St,a.monthsShort=function(e,t){return An(e,t,"monthsShort")},a.weekdaysMin=function(e,t,n){return hn(e,t,n,"weekdaysMin")},a.defineLocale=it,a.updateLocale=function(e,t){if(null!=t){var n,r,a=et;null!=(r=at(e))&&(a=r._config),t=S(a,t),(n=new N(t)).parentLocale=tt[e],tt[e]=n,st(e)}else null!=tt[e]&&(null!=tt[e].parentLocale?tt[e]=tt[e].parentLocale:null!=tt[e]&&delete tt[e]);return tt[e]},a.locales=function(){return D(tt)},a.weekdaysShort=function(e,t,n){return hn(e,t,n,"weekdaysShort")},a.normalizeUnits=E,a.relativeTimeRounding=function(e){return void 0===e?Bn:"function"==typeof e&&(Bn=e,!0)},a.relativeTimeThreshold=function(e,t){return void 0!==Hn[e]&&(void 0===t?Hn[e]:(Hn[e]=t,"s"===e&&(Hn.ss=t-1),!0))},a.calendarFormat=function(e,t){var n=e.diff(t,"days",!0);return n<-6?"sameElse":n<-1?"lastWeek":n<0?"lastDay":n<1?"sameDay":n<2?"nextDay":n<7?"nextWeek":"sameElse"},a.prototype=dn,a.HTML5_FMT={DATETIME_LOCAL:"YYYY-MM-DDTHH:mm",DATETIME_LOCAL_SECONDS:"YYYY-MM-DDTHH:mm:ss",DATETIME_LOCAL_MS:"YYYY-MM-DDTHH:mm:ss.SSS",DATE:"YYYY-MM-DD",TIME:"HH:mm",TIME_SECONDS:"HH:mm:ss",TIME_MS:"HH:mm:ss.SSS",WEEK:"GGGG-[W]WW",MONTH:"YYYY-MM"},a}()}).call(this,n(121)(e))},function(e,t){e.exports=function(e){try{return!!e()}catch(e){return!0}}},function(e,t,n){var r=n(3),a=n(65),s=n(5),i=n(43),o=n(70),l=n(94),u=a("wks"),c=r.Symbol,d=l?c:c&&c.withoutSetter||i;e.exports=function(e){return s(u,e)||(o&&s(c,e)?u[e]=c[e]:u[e]=d("Symbol."+e)),u[e]}},function(e,t,n){(function(t){var n=function(e){return e&&e.Math==Math&&e};e.exports=n("object"==typeof globalThis&&globalThis)||n("object"==typeof window&&window)||n("object"==typeof self&&self)||n("object"==typeof t&&t)||Function("return this")()}).call(this,n(16))},function(e,t,n){var r=n(3),a=n(17).f,s=n(12),i=n(11),o=n(63),l=n(270),u=n(45);e.exports=function(e,t){var n,c,d,m,p,f=e.target,A=e.global,h=e.stat;if(n=A?r:h?r[f]||o(f,{}):(r[f]||{}).prototype)for(c in t){if(m=t[c],d=e.noTargetGet?(p=a(n,c))&&p.value:n[c],!u(A?c:f+(h?".":"#")+c,e.forced)&&void 0!==d){if(typeof m==typeof d)continue;l(m,d)}(e.sham||d&&d.sham)&&s(m,"sham",!0),i(n,c,m,e)}}},function(e,t){var n={}.hasOwnProperty;e.exports=function(e,t){return n.call(e,t)}},function(e,t,n){var r=n(1);e.exports=!r((function(){return 7!=Object.defineProperty({},1,{get:function(){return 7}})[1]}))},function(e,t){e.exports=function(e){return"object"==typeof e?null!==e:"function"==typeof e}},function(e,t,n){var r=n(7);e.exports=function(e){if(!r(e))throw TypeError(String(e)+" is not an object");return e}},function(e,t,n){var r=n(6),a=n(86),s=n(8),i=n(34),o=Object.defineProperty;t.f=r?o:function(e,t,n){if(s(e),t=i(t,!0),s(n),a)try{return o(e,t,n)}catch(e){}if("get"in n||"set"in n)throw TypeError("Accessors not supported");return"value"in n&&(e[t]=n.value),e}},function(e,t,n){"use strict";var r=n(253),a=Object.prototype.toString;function s(e){return"[object Array]"===a.call(e)}function i(e){return void 0===e}function o(e){return null!==e&&"object"==typeof e}function l(e){return"[object Function]"===a.call(e)}function u(e,t){if(null!=e)if("object"!=typeof e&&(e=[e]),s(e))for(var n=0,r=e.length;n0?a(r(e),9007199254740991):0}},function(e,t,n){var r=n(77),a=n(11),s=n(285);r||a(Object.prototype,"toString",s,{unsafe:!0})},function(e,t){e.exports=!1},function(e,t,n){var r=n(89),a=n(3),s=function(e){return"function"==typeof e?e:void 0};e.exports=function(e,t){return arguments.length<2?s(r[e])||s(a[e]):r[e]&&r[e][t]||a[e]&&a[e][t]}},function(e,t,n){var r=n(9).f,a=n(5),s=n(2)("toStringTag");e.exports=function(e,t,n){e&&!a(e=n?e:e.prototype,s)&&r(e,s,{configurable:!0,value:t})}},function(e,t,n){"use strict";n.r(t),function(e,n){var r=Object.freeze({});function a(e){return null==e}function s(e){return null!=e}function i(e){return!0===e}function o(e){return"string"==typeof e||"number"==typeof e||"symbol"==typeof e||"boolean"==typeof e}function l(e){return null!==e&&"object"==typeof e}var u=Object.prototype.toString;function c(e){return"[object Object]"===u.call(e)}function d(e){return"[object RegExp]"===u.call(e)}function m(e){var t=parseFloat(String(e));return t>=0&&Math.floor(t)===t&&isFinite(e)}function p(e){return s(e)&&"function"==typeof e.then&&"function"==typeof e.catch}function f(e){return null==e?"":Array.isArray(e)||c(e)&&e.toString===u?JSON.stringify(e,null,2):String(e)}function A(e){var t=parseFloat(e);return isNaN(t)?e:t}function h(e,t){for(var n=Object.create(null),r=e.split(","),a=0;a-1)return e.splice(n,1)}}var M=Object.prototype.hasOwnProperty;function y(e,t){return M.call(e,t)}function v(e){var t=Object.create(null);return function(n){return t[n]||(t[n]=e(n))}}var L=/-(\w)/g,T=v((function(e){return e.replace(L,(function(e,t){return t?t.toUpperCase():""}))})),w=v((function(e){return e.charAt(0).toUpperCase()+e.slice(1)})),b=/\B([A-Z])/g,x=v((function(e){return e.replace(b,"-$1").toLowerCase()}));var D=Function.prototype.bind?function(e,t){return e.bind(t)}:function(e,t){function n(n){var r=arguments.length;return r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}return n._length=e.length,n};function k(e,t){t=t||0;for(var n=e.length-t,r=new Array(n);n--;)r[n]=e[n+t];return r}function j(e,t){for(var n in t)e[n]=t[n];return e}function Y(e){for(var t={},n=0;n0,K=Z&&Z.indexOf("edge/")>0,X=(Z&&Z.indexOf("android"),Z&&/iphone|ipad|ipod|ios/.test(Z)||"ios"===J),q=(Z&&/chrome\/\d+/.test(Z),Z&&/phantomjs/.test(Z),Z&&Z.match(/firefox\/(\d+)/)),ee={}.watch,te=!1;if(R)try{var ne={};Object.defineProperty(ne,"passive",{get:function(){te=!0}}),window.addEventListener("test-passive",null,ne)}catch(e){}var re=function(){return void 0===U&&(U=!R&&!W&&void 0!==e&&(e.process&&"server"===e.process.env.VUE_ENV)),U},ae=R&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function se(e){return"function"==typeof e&&/native code/.test(e.toString())}var ie,oe="undefined"!=typeof Symbol&&se(Symbol)&&"undefined"!=typeof Reflect&&se(Reflect.ownKeys);ie="undefined"!=typeof Set&&se(Set)?Set:function(){function e(){this.set=Object.create(null)}return e.prototype.has=function(e){return!0===this.set[e]},e.prototype.add=function(e){this.set[e]=!0},e.prototype.clear=function(){this.set=Object.create(null)},e}();var le=S,ue=0,ce=function(){this.id=ue++,this.subs=[]};ce.prototype.addSub=function(e){this.subs.push(e)},ce.prototype.removeSub=function(e){_(this.subs,e)},ce.prototype.depend=function(){ce.target&&ce.target.addDep(this)},ce.prototype.notify=function(){var e=this.subs.slice();for(var t=0,n=e.length;t-1)if(s&&!y(a,"default"))i=!1;else if(""===i||i===x(e)){var l=He(String,a.type);(l<0||o0&&(ct((l=e(l,(n||"")+"_"+r))[0])&&ct(c)&&(d[u]=ge(c.text+l[0].text),l.shift()),d.push.apply(d,l)):o(l)?ct(c)?d[u]=ge(c.text+l):""!==l&&d.push(ge(l)):ct(l)&&ct(c)?d[u]=ge(c.text+l.text):(i(t._isVList)&&s(l.tag)&&a(l.key)&&s(n)&&(l.key="__vlist"+n+"_"+r+"__"),d.push(l)));return d}(e):void 0}function ct(e){return s(e)&&s(e.text)&&!1===e.isComment}function dt(e,t){if(e){for(var n=Object.create(null),r=oe?Reflect.ownKeys(e):Object.keys(e),a=0;a0,i=e?!!e.$stable:!s,o=e&&e.$key;if(e){if(e._normalized)return e._normalized;if(i&&n&&n!==r&&o===n.$key&&!s&&!n.$hasNormal)return n;for(var l in a={},e)e[l]&&"$"!==l[0]&&(a[l]=At(t,l,e[l]))}else a={};for(var u in t)u in a||(a[u]=ht(t,u));return e&&Object.isExtensible(e)&&(e._normalized=a),H(a,"$stable",i),H(a,"$key",o),H(a,"$hasNormal",s),a}function At(e,t,n){var r=function(){var e=arguments.length?n.apply(null,arguments):n({});return(e=e&&"object"==typeof e&&!Array.isArray(e)?[e]:ut(e))&&(0===e.length||1===e.length&&e[0].isComment)?void 0:e};return n.proxy&&Object.defineProperty(e,t,{get:r,enumerable:!0,configurable:!0}),r}function ht(e,t){return function(){return e[t]}}function gt(e,t){var n,r,a,i,o;if(Array.isArray(e)||"string"==typeof e)for(n=new Array(e.length),r=0,a=e.length;rdocument.createEvent("Event").timeStamp&&(ln=function(){return un.now()})}function cn(){var e,t;for(on=ln(),an=!0,en.sort((function(e,t){return e.id-t.id})),sn=0;snsn&&en[n].id>e.id;)n--;en.splice(n+1,0,e)}else en.push(e);rn||(rn=!0,tt(cn))}}(this)},mn.prototype.run=function(){if(this.active){var e=this.get();if(e!==this.value||l(e)||this.deep){var t=this.value;if(this.value=e,this.user)try{this.cb.call(this.vm,e,t)}catch(e){Qe(e,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,e,t)}}},mn.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},mn.prototype.depend=function(){for(var e=this.deps.length;e--;)this.deps[e].depend()},mn.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||_(this.vm._watchers,this);for(var e=this.deps.length;e--;)this.deps[e].removeSub(this);this.active=!1}};var pn={enumerable:!0,configurable:!0,get:S,set:S};function fn(e,t,n){pn.get=function(){return this[t][n]},pn.set=function(e){this[t][n]=e},Object.defineProperty(e,n,pn)}function An(e){e._watchers=[];var t=e.$options;t.props&&function(e,t){var n=e.$options.propsData||{},r=e._props={},a=e.$options._propKeys=[];e.$parent&&Te(!1);var s=function(s){a.push(s);var i=ze(s,t,n,e);xe(r,s,i),s in e||fn(e,"_props",s)};for(var i in t)s(i);Te(!0)}(e,t.props),t.methods&&function(e,t){e.$options.props;for(var n in t)e[n]="function"!=typeof t[n]?S:D(t[n],e)}(e,t.methods),t.data?function(e){var t=e.$options.data;c(t=e._data="function"==typeof t?function(e,t){me();try{return e.call(t,t)}catch(e){return Qe(e,t,"data()"),{}}finally{pe()}}(t,e):t||{})||(t={});var n=Object.keys(t),r=e.$options.props,a=(e.$options.methods,n.length);for(;a--;){var s=n[a];0,r&&y(r,s)||(i=void 0,36!==(i=(s+"").charCodeAt(0))&&95!==i&&fn(e,"_data",s))}var i;be(t,!0)}(e):be(e._data={},!0),t.computed&&function(e,t){var n=e._computedWatchers=Object.create(null),r=re();for(var a in t){var s=t[a],i="function"==typeof s?s:s.get;0,r||(n[a]=new mn(e,i||S,S,hn)),a in e||gn(e,a,s)}}(e,t.computed),t.watch&&t.watch!==ee&&function(e,t){for(var n in t){var r=t[n];if(Array.isArray(r))for(var a=0;a-1:"string"==typeof e?e.split(",").indexOf(t)>-1:!!d(e)&&e.test(t)}function Dn(e,t){var n=e.cache,r=e.keys,a=e._vnode;for(var s in n){var i=n[s];if(i){var o=bn(i.componentOptions);o&&!t(o)&&kn(n,s,r,a)}}}function kn(e,t,n,r){var a=e[t];!a||r&&a.tag===r.tag||a.componentInstance.$destroy(),e[t]=null,_(n,t)}!function(e){e.prototype._init=function(e){var t=this;t._uid=vn++,t._isVue=!0,e&&e._isComponent?function(e,t){var n=e.$options=Object.create(e.constructor.options),r=t._parentVnode;n.parent=t.parent,n._parentVnode=r;var a=r.componentOptions;n.propsData=a.propsData,n._parentListeners=a.listeners,n._renderChildren=a.children,n._componentTag=a.tag,t.render&&(n.render=t.render,n.staticRenderFns=t.staticRenderFns)}(t,e):t.$options=Oe(Ln(t.constructor),e||{},t),t._renderProxy=t,t._self=t,function(e){var t=e.$options,n=t.parent;if(n&&!t.abstract){for(;n.$options.abstract&&n.$parent;)n=n.$parent;n.$children.push(e)}e.$parent=n,e.$root=n?n.$root:e,e.$children=[],e.$refs={},e._watcher=null,e._inactive=null,e._directInactive=!1,e._isMounted=!1,e._isDestroyed=!1,e._isBeingDestroyed=!1}(t),function(e){e._events=Object.create(null),e._hasHookEvent=!1;var t=e.$options._parentListeners;t&&Zt(e,t)}(t),function(e){e._vnode=null,e._staticTrees=null;var t=e.$options,n=e.$vnode=t._parentVnode,a=n&&n.context;e.$slots=mt(t._renderChildren,a),e.$scopedSlots=r,e._c=function(t,n,r,a){return Ft(e,t,n,r,a,!1)},e.$createElement=function(t,n,r,a){return Ft(e,t,n,r,a,!0)};var s=n&&n.data;xe(e,"$attrs",s&&s.attrs||r,null,!0),xe(e,"$listeners",t._parentListeners||r,null,!0)}(t),qt(t,"beforeCreate"),function(e){var t=dt(e.$options.inject,e);t&&(Te(!1),Object.keys(t).forEach((function(n){xe(e,n,t[n])})),Te(!0))}(t),An(t),function(e){var t=e.$options.provide;t&&(e._provided="function"==typeof t?t.call(e):t)}(t),qt(t,"created"),t.$options.el&&t.$mount(t.$options.el)}}(Tn),function(e){var t={get:function(){return this._data}},n={get:function(){return this._props}};Object.defineProperty(e.prototype,"$data",t),Object.defineProperty(e.prototype,"$props",n),e.prototype.$set=De,e.prototype.$delete=ke,e.prototype.$watch=function(e,t,n){if(c(t))return yn(this,e,t,n);(n=n||{}).user=!0;var r=new mn(this,e,t,n);if(n.immediate)try{t.call(this,r.value)}catch(e){Qe(e,this,'callback for immediate watcher "'+r.expression+'"')}return function(){r.teardown()}}}(Tn),function(e){var t=/^hook:/;e.prototype.$on=function(e,n){var r=this;if(Array.isArray(e))for(var a=0,s=e.length;a1?k(n):n;for(var r=k(arguments,1),a='event handler for "'+e+'"',s=0,i=n.length;sparseInt(this.max)&&kn(i,o[0],o,this._vnode)),t.data.keepAlive=!0}return t||e&&e[0]}}};!function(e){var t={get:function(){return F}};Object.defineProperty(e,"config",t),e.util={warn:le,extend:j,mergeOptions:Oe,defineReactive:xe},e.set=De,e.delete=ke,e.nextTick=tt,e.observable=function(e){return be(e),e},e.options=Object.create(null),P.forEach((function(t){e.options[t+"s"]=Object.create(null)})),e.options._base=e,j(e.options.components,Yn),function(e){e.use=function(e){var t=this._installedPlugins||(this._installedPlugins=[]);if(t.indexOf(e)>-1)return this;var n=k(arguments,1);return n.unshift(this),"function"==typeof e.install?e.install.apply(e,n):"function"==typeof e&&e.apply(null,n),t.push(e),this}}(e),function(e){e.mixin=function(e){return this.options=Oe(this.options,e),this}}(e),wn(e),function(e){P.forEach((function(t){e[t]=function(e,n){return n?("component"===t&&c(n)&&(n.name=n.name||e,n=this.options._base.extend(n)),"directive"===t&&"function"==typeof n&&(n={bind:n,update:n}),this.options[t+"s"][e]=n,n):this.options[t+"s"][e]}}))}(e)}(Tn),Object.defineProperty(Tn.prototype,"$isServer",{get:re}),Object.defineProperty(Tn.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Tn,"FunctionalRenderContext",{value:Nt}),Tn.version="2.6.11";var Sn=h("style,class"),Nn=h("input,textarea,option,select,progress"),In=h("contenteditable,draggable,spellcheck"),Cn=h("events,caret,typing,plaintext-only"),En=h("allowfullscreen,async,autofocus,autoplay,checked,compact,controls,declare,default,defaultchecked,defaultmuted,defaultselected,defer,disabled,enabled,formnovalidate,hidden,indeterminate,inert,ismap,itemscope,loop,multiple,muted,nohref,noresize,noshade,novalidate,nowrap,open,pauseonexit,readonly,required,reversed,scoped,seamless,selected,sortable,translate,truespeed,typemustmatch,visible"),On="http://www.w3.org/1999/xlink",Pn=function(e){return":"===e.charAt(5)&&"xlink"===e.slice(0,5)},zn=function(e){return Pn(e)?e.slice(6,e.length):""},Fn=function(e){return null==e||!1===e};function Bn(e){for(var t=e.data,n=e,r=e;s(r.componentInstance);)(r=r.componentInstance._vnode)&&r.data&&(t=Hn(r.data,t));for(;s(n=n.parent);)n&&n.data&&(t=Hn(t,n.data));return function(e,t){if(s(e)||s(t))return Qn(e,Un(t));return""}(t.staticClass,t.class)}function Hn(e,t){return{staticClass:Qn(e.staticClass,t.staticClass),class:s(e.class)?[e.class,t.class]:t.class}}function Qn(e,t){return e?t?e+" "+t:e:t||""}function Un(e){return Array.isArray(e)?function(e){for(var t,n="",r=0,a=e.length;r-1?mr(e,t,n):En(t)?Fn(n)?e.removeAttribute(t):(n="allowfullscreen"===t&&"EMBED"===e.tagName?"true":t,e.setAttribute(t,n)):In(t)?e.setAttribute(t,function(e,t){return Fn(t)||"false"===t?"false":"contenteditable"===e&&Cn(t)?t:"true"}(t,n)):Pn(t)?Fn(n)?e.removeAttributeNS(On,zn(t)):e.setAttributeNS(On,t,n):mr(e,t,n)}function mr(e,t,n){if(Fn(n))e.removeAttribute(t);else{if(V&&!$&&"TEXTAREA"===e.tagName&&"placeholder"===t&&""!==n&&!e.__ieph){var r=function(t){t.stopImmediatePropagation(),e.removeEventListener("input",r)};e.addEventListener("input",r),e.__ieph=!0}e.setAttribute(t,n)}}var pr={create:cr,update:cr};function fr(e,t){var n=t.elm,r=t.data,i=e.data;if(!(a(r.staticClass)&&a(r.class)&&(a(i)||a(i.staticClass)&&a(i.class)))){var o=Bn(t),l=n._transitionClasses;s(l)&&(o=Qn(o,Un(l))),o!==n._prevClass&&(n.setAttribute("class",o),n._prevClass=o)}}var Ar,hr={create:fr,update:fr};function gr(e,t,n){var r=Ar;return function a(){var s=t.apply(null,arguments);null!==s&&yr(e,a,n,r)}}var _r=Je&&!(q&&Number(q[1])<=53);function Mr(e,t,n,r){if(_r){var a=on,s=t;t=s._wrapper=function(e){if(e.target===e.currentTarget||e.timeStamp>=a||e.timeStamp<=0||e.target.ownerDocument!==document)return s.apply(this,arguments)}}Ar.addEventListener(e,t,te?{capture:n,passive:r}:n)}function yr(e,t,n,r){(r||Ar).removeEventListener(e,t._wrapper||t,n)}function vr(e,t){if(!a(e.data.on)||!a(t.data.on)){var n=t.data.on||{},r=e.data.on||{};Ar=t.elm,function(e){if(s(e.__r)){var t=V?"change":"input";e[t]=[].concat(e.__r,e[t]||[]),delete e.__r}s(e.__c)&&(e.change=[].concat(e.__c,e.change||[]),delete e.__c)}(n),it(n,r,Mr,yr,gr,t.context),Ar=void 0}}var Lr,Tr={create:vr,update:vr};function wr(e,t){if(!a(e.data.domProps)||!a(t.data.domProps)){var n,r,i=t.elm,o=e.data.domProps||{},l=t.data.domProps||{};for(n in s(l.__ob__)&&(l=t.data.domProps=j({},l)),o)n in l||(i[n]="");for(n in l){if(r=l[n],"textContent"===n||"innerHTML"===n){if(t.children&&(t.children.length=0),r===o[n])continue;1===i.childNodes.length&&i.removeChild(i.childNodes[0])}if("value"===n&&"PROGRESS"!==i.tagName){i._value=r;var u=a(r)?"":String(r);br(i,u)&&(i.value=u)}else if("innerHTML"===n&&Wn(i.tagName)&&a(i.innerHTML)){(Lr=Lr||document.createElement("div")).innerHTML=""+r+"";for(var c=Lr.firstChild;i.firstChild;)i.removeChild(i.firstChild);for(;c.firstChild;)i.appendChild(c.firstChild)}else if(r!==o[n])try{i[n]=r}catch(e){}}}}function br(e,t){return!e.composing&&("OPTION"===e.tagName||function(e,t){var n=!0;try{n=document.activeElement!==e}catch(e){}return n&&e.value!==t}(e,t)||function(e,t){var n=e.value,r=e._vModifiers;if(s(r)){if(r.number)return A(n)!==A(t);if(r.trim)return n.trim()!==t.trim()}return n!==t}(e,t))}var xr={create:wr,update:wr},Dr=v((function(e){var t={},n=/:(.+)/;return e.split(/;(?![^(]*\))/g).forEach((function(e){if(e){var r=e.split(n);r.length>1&&(t[r[0].trim()]=r[1].trim())}})),t}));function kr(e){var t=jr(e.style);return e.staticStyle?j(e.staticStyle,t):t}function jr(e){return Array.isArray(e)?Y(e):"string"==typeof e?Dr(e):e}var Yr,Sr=/^--/,Nr=/\s*!important$/,Ir=function(e,t,n){if(Sr.test(t))e.style.setProperty(t,n);else if(Nr.test(n))e.style.setProperty(x(t),n.replace(Nr,""),"important");else{var r=Er(t);if(Array.isArray(n))for(var a=0,s=n.length;a-1?t.split(zr).forEach((function(t){return e.classList.add(t)})):e.classList.add(t);else{var n=" "+(e.getAttribute("class")||"")+" ";n.indexOf(" "+t+" ")<0&&e.setAttribute("class",(n+t).trim())}}function Br(e,t){if(t&&(t=t.trim()))if(e.classList)t.indexOf(" ")>-1?t.split(zr).forEach((function(t){return e.classList.remove(t)})):e.classList.remove(t),e.classList.length||e.removeAttribute("class");else{for(var n=" "+(e.getAttribute("class")||"")+" ",r=" "+t+" ";n.indexOf(r)>=0;)n=n.replace(r," ");(n=n.trim())?e.setAttribute("class",n):e.removeAttribute("class")}}function Hr(e){if(e){if("object"==typeof e){var t={};return!1!==e.css&&j(t,Qr(e.name||"v")),j(t,e),t}return"string"==typeof e?Qr(e):void 0}}var Qr=v((function(e){return{enterClass:e+"-enter",enterToClass:e+"-enter-to",enterActiveClass:e+"-enter-active",leaveClass:e+"-leave",leaveToClass:e+"-leave-to",leaveActiveClass:e+"-leave-active"}})),Ur=R&&!$,Gr="transition",Rr="transitionend",Wr="animation",Jr="animationend";Ur&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(Gr="WebkitTransition",Rr="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Wr="WebkitAnimation",Jr="webkitAnimationEnd"));var Zr=R?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(e){return e()};function Vr(e){Zr((function(){Zr(e)}))}function $r(e,t){var n=e._transitionClasses||(e._transitionClasses=[]);n.indexOf(t)<0&&(n.push(t),Fr(e,t))}function Kr(e,t){e._transitionClasses&&_(e._transitionClasses,t),Br(e,t)}function Xr(e,t,n){var r=ea(e,t),a=r.type,s=r.timeout,i=r.propCount;if(!a)return n();var o="transition"===a?Rr:Jr,l=0,u=function(){e.removeEventListener(o,c),n()},c=function(t){t.target===e&&++l>=i&&u()};setTimeout((function(){l0&&(n="transition",c=i,d=s.length):"animation"===t?u>0&&(n="animation",c=u,d=l.length):d=(n=(c=Math.max(i,u))>0?i>u?"transition":"animation":null)?"transition"===n?s.length:l.length:0,{type:n,timeout:c,propCount:d,hasTransform:"transition"===n&&qr.test(r[Gr+"Property"])}}function ta(e,t){for(;e.length1}function oa(e,t){!0!==t.data.show&&ra(t)}var la=function(e){var t,n,r={},l=e.modules,u=e.nodeOps;for(t=0;tf?M(e,a(n[g+1])?null:n[g+1].elm,n,p,g,r):p>g&&v(t,m,f)}(m,h,g,n,c):s(g)?(s(e.text)&&u.setTextContent(m,""),M(m,null,g,0,g.length-1,n)):s(h)?v(h,0,h.length-1):s(e.text)&&u.setTextContent(m,""):e.text!==t.text&&u.setTextContent(m,t.text),s(f)&&s(p=f.hook)&&s(p=p.postpatch)&&p(e,t)}}}function b(e,t,n){if(i(n)&&s(e.parent))e.parent.data.pendingInsert=t;else for(var r=0;r-1,i.selected!==s&&(i.selected=s);else if(C(pa(i),r))return void(e.selectedIndex!==o&&(e.selectedIndex=o));a||(e.selectedIndex=-1)}}function ma(e,t){return t.every((function(t){return!C(t,e)}))}function pa(e){return"_value"in e?e._value:e.value}function fa(e){e.target.composing=!0}function Aa(e){e.target.composing&&(e.target.composing=!1,ha(e.target,"input"))}function ha(e,t){var n=document.createEvent("HTMLEvents");n.initEvent(t,!0,!0),e.dispatchEvent(n)}function ga(e){return!e.componentInstance||e.data&&e.data.transition?e:ga(e.componentInstance._vnode)}var _a={model:ua,show:{bind:function(e,t,n){var r=t.value,a=(n=ga(n)).data&&n.data.transition,s=e.__vOriginalDisplay="none"===e.style.display?"":e.style.display;r&&a?(n.data.show=!0,ra(n,(function(){e.style.display=s}))):e.style.display=r?s:"none"},update:function(e,t,n){var r=t.value;!r!=!t.oldValue&&((n=ga(n)).data&&n.data.transition?(n.data.show=!0,r?ra(n,(function(){e.style.display=e.__vOriginalDisplay})):aa(n,(function(){e.style.display="none"}))):e.style.display=r?e.__vOriginalDisplay:"none")},unbind:function(e,t,n,r,a){a||(e.style.display=e.__vOriginalDisplay)}}},Ma={name:String,appear:Boolean,css:Boolean,mode:String,type:String,enterClass:String,leaveClass:String,enterToClass:String,leaveToClass:String,enterActiveClass:String,leaveActiveClass:String,appearClass:String,appearActiveClass:String,appearToClass:String,duration:[Number,String,Object]};function ya(e){var t=e&&e.componentOptions;return t&&t.Ctor.options.abstract?ya(Gt(t.children)):e}function va(e){var t={},n=e.$options;for(var r in n.propsData)t[r]=e[r];var a=n._parentListeners;for(var s in a)t[T(s)]=a[s];return t}function La(e,t){if(/\d-keep-alive$/.test(t.tag))return e("keep-alive",{props:t.componentOptions.propsData})}var Ta=function(e){return e.tag||Ut(e)},wa=function(e){return"show"===e.name},ba={name:"transition",props:Ma,abstract:!0,render:function(e){var t=this,n=this.$slots.default;if(n&&(n=n.filter(Ta)).length){0;var r=this.mode;0;var a=n[0];if(function(e){for(;e=e.parent;)if(e.data.transition)return!0}(this.$vnode))return a;var s=ya(a);if(!s)return a;if(this._leaving)return La(e,a);var i="__transition-"+this._uid+"-";s.key=null==s.key?s.isComment?i+"comment":i+s.tag:o(s.key)?0===String(s.key).indexOf(i)?s.key:i+s.key:s.key;var l=(s.data||(s.data={})).transition=va(this),u=this._vnode,c=ya(u);if(s.data.directives&&s.data.directives.some(wa)&&(s.data.show=!0),c&&c.data&&!function(e,t){return t.key===e.key&&t.tag===e.tag}(s,c)&&!Ut(c)&&(!c.componentInstance||!c.componentInstance._vnode.isComment)){var d=c.data.transition=j({},l);if("out-in"===r)return this._leaving=!0,ot(d,"afterLeave",(function(){t._leaving=!1,t.$forceUpdate()})),La(e,a);if("in-out"===r){if(Ut(s))return u;var m,p=function(){m()};ot(l,"afterEnter",p),ot(l,"enterCancelled",p),ot(d,"delayLeave",(function(e){m=e}))}}return a}}},xa=j({tag:String,moveClass:String},Ma);function Da(e){e.elm._moveCb&&e.elm._moveCb(),e.elm._enterCb&&e.elm._enterCb()}function ka(e){e.data.newPos=e.elm.getBoundingClientRect()}function ja(e){var t=e.data.pos,n=e.data.newPos,r=t.left-n.left,a=t.top-n.top;if(r||a){e.data.moved=!0;var s=e.elm.style;s.transform=s.WebkitTransform="translate("+r+"px,"+a+"px)",s.transitionDuration="0s"}}delete xa.mode;var Ya={Transition:ba,TransitionGroup:{props:xa,beforeMount:function(){var e=this,t=this._update;this._update=function(n,r){var a=$t(e);e.__patch__(e._vnode,e.kept,!1,!0),e._vnode=e.kept,a(),t.call(e,n,r)}},render:function(e){for(var t=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,a=this.$slots.default||[],s=this.children=[],i=va(this),o=0;o-1?Zn[e]=t.constructor===window.HTMLUnknownElement||t.constructor===window.HTMLElement:Zn[e]=/HTMLUnknownElement/.test(t.toString())},j(Tn.options.directives,_a),j(Tn.options.components,Ya),Tn.prototype.__patch__=R?la:S,Tn.prototype.$mount=function(e,t){return function(e,t,n){var r;return e.$el=t,e.$options.render||(e.$options.render=he),qt(e,"beforeMount"),r=function(){e._update(e._render(),n)},new mn(e,r,S,{before:function(){e._isMounted&&!e._isDestroyed&&qt(e,"beforeUpdate")}},!0),n=!1,null==e.$vnode&&(e._isMounted=!0,qt(e,"mounted")),e}(this,e=e&&R?function(e){if("string"==typeof e){var t=document.querySelector(e);return t||document.createElement("div")}return e}(e):void 0,t)},R&&setTimeout((function(){F.devtools&&ae&&ae.emit("init",Tn)}),0),t.default=Tn}.call(this,n(16),n(312).setImmediate)},function(e,t,n){"use strict";n(55),Object.defineProperty(t,"__esModule",{value:!0}),t.default=void 0;var r,a=(r=n(330))&&r.__esModule?r:{default:r},s=n(83);var i=a.default.create({headers:{requesttoken:(0,s.getRequestToken)()}}),o=Object.assign(i,{CancelToken:a.default.CancelToken,isCancel:a.default.isCancel});(0,s.onRequestTokenUpdate)((function(e){return i.defaults.headers.requesttoken=e}));var l=o;t.default=l},function(e,t){e.exports=function(e,t){return{enumerable:!(1&e),configurable:!(2&e),writable:!(4&e),value:t}}},function(e,t){e.exports=function(e){if(null==e)throw TypeError("Can't call method on "+e);return e}},function(e,t,n){var r=n(47);e.exports=function(e,t,n){if(r(e),void 0===t)return e;switch(n){case 0:return function(){return e.call(t)};case 1:return function(n){return e.call(t,n)};case 2:return function(n,r){return e.call(t,n,r)};case 3:return function(n,r,a){return e.call(t,n,r,a)}}return function(){return e.apply(t,arguments)}}},function(e,t,n){"use strict";var r=n(18),a=n(278),s=n(38),i=n(19),o=n(74),l=i.set,u=i.getterFor("Array Iterator");e.exports=o(Array,"Array",(function(e,t){l(this,{type:"Array Iterator",target:r(e),index:0,kind:t})}),(function(){var e=u(this),t=e.target,n=e.kind,r=e.index++;return!t||r>=t.length?(e.target=void 0,{value:void 0,done:!0}):"keys"==n?{value:r,done:!1}:"values"==n?{value:t[r],done:!1}:{value:[r,t[r]],done:!1}}),"values"),s.Arguments=s.Array,a("keys"),a("values"),a("entries")},function(e,t,n){var r,a=n(8),s=n(101),i=n(66),o=n(35),l=n(102),u=n(62),c=n(42),d=c("IE_PROTO"),m=function(){},p=function(e){return"\n\n\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&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=8b8292f6&\"\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&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","/* globals __VUE_SSR_CONTEXT__ */\n\n// IMPORTANT: Do NOT use ES2015 features in this file (except for modules).\n// This module is a runtime utility for cleaner component module output and will\n// be included in the final webpack user bundle.\n\nexport default function normalizeComponent (\n scriptExports,\n render,\n staticRenderFns,\n functionalTemplate,\n injectStyles,\n scopeId,\n moduleIdentifier, /* server only */\n shadowMode /* vue-cli only */\n) {\n // Vue.extend constructor export interop\n var options = typeof scriptExports === 'function'\n ? scriptExports.options\n : scriptExports\n\n // render functions\n if (render) {\n options.render = render\n options.staticRenderFns = staticRenderFns\n options._compiled = true\n }\n\n // functional template\n if (functionalTemplate) {\n options.functional = true\n }\n\n // scopedId\n if (scopeId) {\n options._scopeId = 'data-v-' + scopeId\n }\n\n var hook\n if (moduleIdentifier) { // server build\n hook = function (context) {\n // 2.3 injection\n context =\n context || // cached call\n (this.$vnode && this.$vnode.ssrContext) || // stateful\n (this.parent && this.parent.$vnode && this.parent.$vnode.ssrContext) // functional\n // 2.2 with runInNewContext: true\n if (!context && typeof __VUE_SSR_CONTEXT__ !== 'undefined') {\n context = __VUE_SSR_CONTEXT__\n }\n // inject component styles\n if (injectStyles) {\n injectStyles.call(this, context)\n }\n // register component module identifier for async chunk inferrence\n if (context && context._registeredComponents) {\n context._registeredComponents.add(moduleIdentifier)\n }\n }\n // used by ssr in case component is cached and beforeCreate\n // never gets called\n options._ssrRegister = hook\n } else if (injectStyles) {\n hook = shadowMode\n ? function () {\n injectStyles.call(\n this,\n (options.functional ? this.parent : this).$root.$options.shadowRoot\n )\n }\n : injectStyles\n }\n\n if (hook) {\n if (options.functional) {\n // for template-only hot-reload because in that case the render fn doesn't\n // go through the normalizer\n options._injectStyles = hook\n // register for functional component in vue file\n var originalRender = options.render\n options.render = function renderWithStyleInjection (h, context) {\n hook.call(context)\n return originalRender(h, context)\n }\n } else {\n // inject component registration as beforeCreate hook\n var existing = options.beforeCreate\n options.beforeCreate = existing\n ? [].concat(existing, hook)\n : [hook]\n }\n }\n\n return {\n exports: scriptExports,\n options: options\n }\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('li',{class:{ inline: _vm.inline }},[_c('div',{attrs:{\"id\":\"weather-status-menu-item\"}},[_c('Actions',{staticClass:\"weather-status-menu-item__subheader\",attrs:{\"default-icon\":_vm.weatherIcon,\"menu-title\":_vm.visibleMessage}},[(_vm.address && !_vm.errorMessage)?_c('ActionLink',{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.address && !_vm.errorMessage)?_c('ActionSeparator'):_vm._e(),_vm._v(\" \"),_c('ActionButton',{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('ActionInput',{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\")])],1)],1)])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import Vue from 'vue'\nimport { getRequestToken } from '@nextcloud/auth'\nimport { generateUrl } from '@nextcloud/router'\nimport App from './App'\n\n// eslint-disable-next-line camelcase\n__webpack_nonce__ = btoa(getRequestToken())\n\n// Correct the root of the app for chunk loading\n// eslint-disable-next-line\n__webpack_public_path__ = generateUrl('/apps/weather_status/js/')\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","/**\n * Translates the list format produced by css-loader into something\n * easier to manipulate.\n */\nexport default function listToStyles (parentId, list) {\n var styles = []\n var newStyles = {}\n for (var i = 0; i < list.length; i++) {\n var item = list[i]\n var id = item[0]\n var css = item[1]\n var media = item[2]\n var sourceMap = item[3]\n var part = {\n id: parentId + ':' + i,\n css: css,\n media: media,\n sourceMap: sourceMap\n }\n if (!newStyles[id]) {\n styles.push(newStyles[id] = { id: id, parts: [part] })\n } else {\n newStyles[id].parts.push(part)\n }\n }\n return styles\n}\n","/*\n MIT License http://www.opensource.org/licenses/mit-license.php\n Author Tobias Koppers @sokra\n Modified by Evan You @yyx990803\n*/\n\nimport listToStyles from './listToStyles'\n\nvar hasDocument = typeof document !== 'undefined'\n\nif (typeof DEBUG !== 'undefined' && DEBUG) {\n if (!hasDocument) {\n throw new Error(\n 'vue-style-loader cannot be used in a non-browser environment. ' +\n \"Use { target: 'node' } in your Webpack config to indicate a server-rendering environment.\"\n ) }\n}\n\n/*\ntype StyleObject = {\n id: number;\n parts: Array\n}\n\ntype StyleObjectPart = {\n css: string;\n media: string;\n sourceMap: ?string\n}\n*/\n\nvar stylesInDom = {/*\n [id: number]: {\n id: number,\n refs: number,\n parts: Array<(obj?: StyleObjectPart) => void>\n }\n*/}\n\nvar head = hasDocument && (document.head || document.getElementsByTagName('head')[0])\nvar singletonElement = null\nvar singletonCounter = 0\nvar isProduction = false\nvar noop = function () {}\nvar options = null\nvar ssrIdKey = 'data-vue-ssr-id'\n\n// Force single-tag solution on IE6-9, which has a hard limit on the # of diff --git a/apps/weather_status/src/services/weatherStatusService.js b/apps/weather_status/src/services/weatherStatusService.js new file mode 100644 index 00000000000..54ea13259ae --- /dev/null +++ b/apps/weather_status/src/services/weatherStatusService.js @@ -0,0 +1,116 @@ +/** + * @copyright Copyright (c) 2020, Julien Veyssier + * + * @author Julien Veyssier + * + * @license GNU AGPL version 3 or any later version + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as + * published by the Free Software Foundation, either version 3 of the + * License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + * + */ +import HttpClient from '@nextcloud/axios' +import { generateOcsUrl } from '@nextcloud/router' + +/** + * + * + * @param {String} lat the latitude + * @param {String} lon the longitude + * @returns {Promise} + */ +const setLocation = async(lat, lon) => { + const url = generateOcsUrl('apps/weather_status/api/v1', 2) + 'location' + const response = await HttpClient.put(url, { + address: '', + lat, + lon, + }) + + return response.data.ocs.data +} + +/** + * + * @param {String} address The location + * @returns {Promise} + */ +const setAddress = async(address) => { + const url = generateOcsUrl('apps/weather_status/api/v1', 2) + 'location' + const response = await HttpClient.put(url, { + address, + lat: null, + lon: null, + }) + + return response.data.ocs.data +} + +/** + * + * @param {String} mode can be 1 browser or 2 custom + * @returns {Promise} + */ +const setMode = async(mode) => { + const url = generateOcsUrl('apps/weather_status/api/v1', 2) + 'mode' + const response = await HttpClient.put(url, { + mode, + }) + + return response.data.ocs.data +} + +/** + * + * @returns {Promise} + */ +const usePersonalAddress = async() => { + const url = generateOcsUrl('apps/weather_status/api/v1', 2) + 'use-personal' + const response = await HttpClient.put(url) + + return response.data.ocs.data +} + +/** + * Fetches the location information for current user + * + * @returns {Promise} + */ +const getLocation = async() => { + const url = generateOcsUrl('apps/weather_status/api/v1', 2) + 'location' + const response = await HttpClient.get(url) + + return response.data.ocs.data +} + +/** + * Fetches the weather forecast + * + * @param {String} address The location + * @returns {Promise} + */ +const fetchForecast = async() => { + const url = generateOcsUrl('apps/weather_status/api/v1', 2) + 'forecast' + const response = await HttpClient.get(url) + + return response.data.ocs.data +} + +export { + usePersonalAddress, + setMode, + getLocation, + setLocation, + setAddress, + fetchForecast, +} diff --git a/apps/weather_status/src/weather-status.js b/apps/weather_status/src/weather-status.js new file mode 100644 index 00000000000..0e7c5690b90 --- /dev/null +++ b/apps/weather_status/src/weather-status.js @@ -0,0 +1,28 @@ +import Vue from 'vue' +import { getRequestToken } from '@nextcloud/auth' +import { generateUrl } from '@nextcloud/router' +import App from './App' + +// eslint-disable-next-line camelcase +__webpack_nonce__ = btoa(getRequestToken()) + +// Correct the root of the app for chunk loading +// eslint-disable-next-line +__webpack_public_path__ = generateUrl('/apps/weather_status/js/') + +Vue.prototype.t = t + +document.addEventListener('DOMContentLoaded', function() { + if (!OCA.Dashboard) { + return + } + + OCA.Dashboard.registerStatus('weather', (el) => { + const Dashboard = Vue.extend(App) + return new Dashboard({ + propsData: { + inline: true, + }, + }).$mount(el) + }) +}) diff --git a/apps/weather_status/webpack.js b/apps/weather_status/webpack.js new file mode 100644 index 00000000000..500f1d4616c --- /dev/null +++ b/apps/weather_status/webpack.js @@ -0,0 +1,26 @@ +const path = require('path') + +module.exports = { + entry: { + 'weather-status': path.join(__dirname, 'src', 'weather-status') + }, + output: { + path: path.resolve(__dirname, './js'), + publicPath: '/js/', + filename: '[name].js?v=[chunkhash]', + jsonpFunction: 'webpackJsonpWeatherStatus' + }, + optimization: { + splitChunks: { + automaticNameDelimiter: '-', + } + }, + module: { + rules: [ + { + test: /\.(png|jpg|gif|svg|woff|woff2|eot|ttf)$/, + loader: 'url-loader', + }, + ], + }, +} diff --git a/build/integration/features/provisioning-v1.feature b/build/integration/features/provisioning-v1.feature index 18c71dd7a69..ecc33c657f4 100644 --- a/build/integration/features/provisioning-v1.feature +++ b/build/integration/features/provisioning-v1.feature @@ -349,6 +349,7 @@ Feature: provisioning | user_status | | viewer | | workflowengine | + | weather_status | | files_external | | oauth2 | diff --git a/core/shipped.json b/core/shipped.json index f59dd609899..c37ec6ce7c6 100644 --- a/core/shipped.json +++ b/core/shipped.json @@ -43,6 +43,7 @@ "user_ldap", "user_status", "viewer", + "weather_status", "workflowengine" ], "alwaysEnabled": [ diff --git a/webpack.common.js b/webpack.common.js index 979ff6e5708..95a331afd43 100644 --- a/webpack.common.js +++ b/webpack.common.js @@ -16,6 +16,7 @@ const oauth2 = require('./apps/oauth2/webpack') const settings = require('./apps/settings/webpack') const systemtags = require('./apps/systemtags/webpack') const user_status = require('./apps/user_status/webpack') +const weather_status = require('./apps/weather_status/webpack') const twofactor_backupscodes = require('./apps/twofactor_backupcodes/webpack') const updatenotification = require('./apps/updatenotification/webpack') const workflowengine = require('./apps/workflowengine/webpack') @@ -33,6 +34,7 @@ const modules = { settings, systemtags, user_status, + weather_status, twofactor_backupscodes, updatenotification, workflowengine -- 2.39.5