├── .gitignore ├── README.md ├── babel.config.js ├── docs ├── css │ └── app.c8eea07c.css ├── favicon.ico ├── index.html └── js │ ├── app.6d244c97.js │ ├── app.6d244c97.js.map │ ├── chunk-vendors.b4e23434.js │ └── chunk-vendors.b4e23434.js.map ├── package.json ├── public ├── favicon.ico └── index.html ├── src ├── App.vue ├── assets │ └── logo.png ├── components │ ├── Flash.vue │ └── Todo.vue ├── domain │ └── task │ │ ├── index.ts │ │ ├── reducers.ts │ │ ├── types.ts │ │ └── utils.ts ├── interfaces │ └── repository │ │ └── index.ts ├── main.ts ├── repositories │ └── index.ts ├── services │ └── TaskService.ts ├── shims-vue.d.ts └── store │ ├── index.ts │ └── modules │ ├── flash.ts │ └── task.ts ├── tests └── unit │ ├── .eslintrc.js │ └── example.spec.ts ├── tsconfig.json ├── vue.config.js └── yarn.lock /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | node_modules 3 | /dist 4 | 5 | # local env files 6 | .env.local 7 | .env.*.local 8 | 9 | # Log files 10 | npm-debug.log* 11 | yarn-debug.log* 12 | yarn-error.log* 13 | 14 | # Editor directories and files 15 | .idea 16 | .vscode 17 | *.suo 18 | *.ntvs* 19 | *.njsproj 20 | *.sln 21 | *.sw? 22 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # clean-todo 2 | 3 | ## Layer 4 | 5 | ### Entities 6 | データと振る舞い 7 | * Task 8 | 9 | ### UseCases 10 | EntitiesのビジネスロジックやRepositoryやAPIのInterfaceを組み合わせてアプリケーションロジックを組む 11 | * Interactors 12 | 13 | ### Interface Adapter 14 | 外界(infra、UI、Storageなど)とのinterface 15 | * Store 16 | * Repository 17 | * Vue Components 18 | 19 | ## Project setup 20 | ``` 21 | yarn install 22 | ``` 23 | 24 | ### Compiles and hot-reloads for development 25 | ``` 26 | yarn run serve 27 | ``` 28 | 29 | ### Compiles and minifies for production 30 | ``` 31 | yarn run build 32 | ``` 33 | 34 | ### Run your tests 35 | ``` 36 | yarn run test 37 | ``` 38 | 39 | ### Lints and fixes files 40 | ``` 41 | yarn run lint 42 | ``` 43 | 44 | ### Run your unit tests 45 | ``` 46 | yarn run test:unit 47 | ``` 48 | 49 | ### Customize configuration 50 | See [Configuration Reference](https://cli.vuejs.org/config/). 51 | -------------------------------------------------------------------------------- /babel.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | presets: ['@vue/app'] 3 | } 4 | -------------------------------------------------------------------------------- /docs/css/app.c8eea07c.css: -------------------------------------------------------------------------------- 1 | .strike[data-v-235926c5]{text-decoration:line-through}ul[data-v-235926c5]{list-style:none}#app{font-family:Avenir,Helvetica,Arial,sans-serif;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;text-align:center;color:#2c3e50;margin-top:60px} -------------------------------------------------------------------------------- /docs/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/92thunder/clean-architecture-todo/4353659364f6514c6c91ce3aea861aeff02de60e/docs/favicon.ico -------------------------------------------------------------------------------- /docs/index.html: -------------------------------------------------------------------------------- 1 | clean-todo
-------------------------------------------------------------------------------- /docs/js/app.6d244c97.js: -------------------------------------------------------------------------------- 1 | (function(t){function e(e){for(var a,c,i=e[0],s=e[1],u=e[2],f=0,d=[];f void\n update: ({ index, task }: { index: number; task: Task }) => void\n}\n\ninterface TaskStoreModule {\n state: TaskStoreState\n actions: TaskStoreActions\n}\n\nexport class TaskInteractor {\n store: TaskStoreModule\n\n constructor(store: TaskStoreModule) {\n this.store = store\n }\n\n addTask(task: Task) {\n // store\n this.store.actions.add(task)\n\n // repository\n // this.repository.save(tasks)\n\n // api\n // this.api.save(tasks)\n }\n\n complete(index: number) {\n const task = this.store.state.tasks[index]\n this.store.actions.update({ index, task: setState(task, 'DONE') })\n }\n}\n","import {\n Mutations,\n Actions,\n Getters,\n Module,\n createMapper\n} from 'vuex-smart-module'\nimport Task from '../../../entities/Task'\nimport { TaskStoreActions, TaskStoreState } from '@/useCases/taskInteractor'\n\nclass state implements TaskStoreState {\n tasks: Task[] = []\n}\n\nclass getters extends Getters {\n get tasks() {\n return this.state.tasks\n }\n}\n\n// 状態の更新はVuex流に合わせ、API通信などについてはusecase側にロジックを隠蔽する\nclass mutations extends Mutations {\n updateTasks(tasks: Task[]) {\n this.state.tasks = tasks\n }\n\n updateTask({ index, task }: { index: number; task: Task }) {\n this.state.tasks.splice(index, 1, task)\n }\n}\n\n// 状態の更新はVuex流に合わせ、API通信などについてはusecase側にロジックを隠蔽する\nclass actions extends Actions\n implements TaskStoreActions {\n add(task: Task) {\n this.commit('updateTasks', this.state.tasks.concat(task))\n }\n update({ index, task }: { index: number; task: Task }) {\n this.commit('updateTask', {\n index,\n task\n })\n }\n}\n\nexport const task = new Module({\n state,\n mutations,\n actions,\n getters\n})\n\nexport const taskMapper = createMapper(task)\n","import {\n Mutations,\n Actions,\n Getters,\n Module,\n createMapper\n} from 'vuex-smart-module'\nimport Task from '@/entities/Task'\nimport { TaskInteractor } from '@/useCases/taskInteractor'\nimport { Store } from 'vuex'\nimport { task } from '../domain/task'\n\nclass state {}\n\nclass getters extends Getters {}\n\nclass mutations extends Mutations {}\n\nclass actions extends Actions {\n taskInteractor!: TaskInteractor\n\n $init(store: Store) {\n this.taskInteractor = new TaskInteractor(task.context(store))\n }\n\n addTask(title: string) {\n if (!title) {\n return\n }\n\n const task: Task = {\n title,\n description: '',\n state: 'TODO'\n }\n this.taskInteractor.addTask(task)\n }\n\n complete(index: number) {\n this.taskInteractor.complete(index)\n }\n}\n\nexport const controllers = new Module({\n actions\n})\n\nexport const controllersMapper = createMapper(controllers)\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport Vue from 'vue'\nimport Task from '../entities/Task'\nimport { controllersMapper } from '@/store/modules/controllers'\nimport { taskMapper } from '@/store/modules/domain/task'\n\nexport default Vue.extend({\n name: 'Todo',\n data: (): { text: string } => ({\n text: ''\n }),\n\n computed: taskMapper.mapGetters(['tasks']),\n\n methods: {\n ...controllersMapper.mapActions(['addTask', 'complete']),\n\n add() {\n this.addTask(this.text)\n this.text = ''\n },\n close(index: number) {\n this.complete(index)\n },\n isCompleted(task: Task) {\n return task.state !== 'DONE'\n }\n }\n})\n","import mod from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Todo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/cache-loader/dist/cjs.js??ref--14-0!../../node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--14-3!../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/vue-loader/lib/index.js??vue-loader-options!./Todo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./Todo.vue?vue&type=template&id=235926c5&scoped=true&\"\nimport script from \"./Todo.vue?vue&type=script&lang=ts&\"\nexport * from \"./Todo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./Todo.vue?vue&type=style&index=0&id=235926c5&scoped=true&lang=css&\"\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 \"235926c5\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\nimport Vue from 'vue'\nimport Todo from './components/Todo.vue'\n\nexport default Vue.extend({\n name: 'app',\n components: {\n Todo\n }\n})\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--14-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--14-3!../node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=09f2e136&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&lang=css&\"\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","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport { task } from './modules/domain/task'\nimport { controllers } from './modules/controllers'\nimport { createStore, Module } from 'vuex-smart-module'\n\nVue.use(Vuex)\n\nconst root = new Module({\n modules: {\n controllers,\n task\n }\n})\n\nexport const store = createStore(root, {\n strict: process.env.NODE_ENV !== 'production'\n})\n","import Vue from 'vue'\nimport App from './App.vue'\nimport { store } from './store'\n\nVue.config.productionTip = false\n\nnew Vue({\n store,\n render: h => h(App)\n}).$mount('#app')\n"],"sourceRoot":""} -------------------------------------------------------------------------------- /docs/js/chunk-vendors.b4e23434.js: -------------------------------------------------------------------------------- 1 | (window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-vendors"],{"014b":function(t,e,n){"use strict";var r=n("e53d"),o=n("07e3"),i=n("8e60"),a=n("63b6"),c=n("9138"),s=n("ebfd").KEY,u=n("294c"),f=n("dbdb"),l=n("45f2"),p=n("62a0"),d=n("5168"),v=n("ccb9"),h=n("6718"),y=n("47ee"),m=n("9003"),b=n("e4ae"),_=n("f772"),g=n("241e"),w=n("36c3"),x=n("1bc3"),O=n("aebd"),S=n("a159"),C=n("0395"),j=n("bf0b"),$=n("9aa9"),A=n("d9f6"),k=n("c3a1"),E=j.f,P=A.f,T=C.f,M=r.Symbol,I=r.JSON,N=I&&I.stringify,L="prototype",D=d("_hidden"),F=d("toPrimitive"),R={}.propertyIsEnumerable,U=f("symbol-registry"),V=f("symbols"),G=f("op-symbols"),H=Object[L],B="function"==typeof M&&!!$.f,z=r.QObject,W=!z||!z[L]||!z[L].findChild,K=i&&u(function(){return 7!=S(P({},"a",{get:function(){return P(this,"a",{value:7}).a}})).a})?function(t,e,n){var r=E(H,e);r&&delete H[e],P(t,e,n),r&&t!==H&&P(H,e,r)}:P,q=function(t){var e=V[t]=S(M[L]);return e._k=t,e},J=B&&"symbol"==typeof M.iterator?function(t){return"symbol"==typeof t}:function(t){return t instanceof M},X=function(t,e,n){return t===H&&X(G,e,n),b(t),e=x(e,!0),b(n),o(V,e)?(n.enumerable?(o(t,D)&&t[D][e]&&(t[D][e]=!1),n=S(n,{enumerable:O(0,!1)})):(o(t,D)||P(t,D,O(1,{})),t[D][e]=!0),K(t,e,n)):P(t,e,n)},Y=function(t,e){b(t);var n,r=y(e=w(e)),o=0,i=r.length;while(i>o)X(t,n=r[o++],e[n]);return t},Z=function(t,e){return void 0===e?S(t):Y(S(t),e)},Q=function(t){var e=R.call(this,t=x(t,!0));return!(this===H&&o(V,t)&&!o(G,t))&&(!(e||!o(this,t)||!o(V,t)||o(this,D)&&this[D][t])||e)},tt=function(t,e){if(t=w(t),e=x(e,!0),t!==H||!o(V,e)||o(G,e)){var n=E(t,e);return!n||!o(V,e)||o(t,D)&&t[D][e]||(n.enumerable=!0),n}},et=function(t){var e,n=T(w(t)),r=[],i=0;while(n.length>i)o(V,e=n[i++])||e==D||e==s||r.push(e);return r},nt=function(t){var e,n=t===H,r=T(n?G:w(t)),i=[],a=0;while(r.length>a)!o(V,e=r[a++])||n&&!o(H,e)||i.push(V[e]);return i};B||(M=function(){if(this instanceof M)throw TypeError("Symbol is not a constructor!");var t=p(arguments.length>0?arguments[0]:void 0),e=function(n){this===H&&e.call(G,n),o(this,D)&&o(this[D],t)&&(this[D][t]=!1),K(this,t,O(1,n))};return i&&W&&K(H,t,{configurable:!0,set:e}),q(t)},c(M[L],"toString",function(){return this._k}),j.f=tt,A.f=X,n("6abf").f=C.f=et,n("355d").f=Q,$.f=nt,i&&!n("b8e3")&&c(H,"propertyIsEnumerable",Q,!0),v.f=function(t){return q(d(t))}),a(a.G+a.W+a.F*!B,{Symbol:M});for(var rt="hasInstance,isConcatSpreadable,iterator,match,replace,search,species,split,toPrimitive,toStringTag,unscopables".split(","),ot=0;rt.length>ot;)d(rt[ot++]);for(var it=k(d.store),at=0;it.length>at;)h(it[at++]);a(a.S+a.F*!B,"Symbol",{for:function(t){return o(U,t+="")?U[t]:U[t]=M(t)},keyFor:function(t){if(!J(t))throw TypeError(t+" is not a symbol!");for(var e in U)if(U[e]===t)return e},useSetter:function(){W=!0},useSimple:function(){W=!1}}),a(a.S+a.F*!B,"Object",{create:Z,defineProperty:X,defineProperties:Y,getOwnPropertyDescriptor:tt,getOwnPropertyNames:et,getOwnPropertySymbols:nt});var ct=u(function(){$.f(1)});a(a.S+a.F*ct,"Object",{getOwnPropertySymbols:function(t){return $.f(g(t))}}),I&&a(a.S+a.F*(!B||u(function(){var t=M();return"[null]"!=N([t])||"{}"!=N({a:t})||"{}"!=N(Object(t))})),"JSON",{stringify:function(t){var e,n,r=[t],o=1;while(arguments.length>o)r.push(arguments[o++]);if(n=e=r[1],(_(e)||void 0!==t)&&!J(t))return m(e)||(e=function(t,e){if("function"==typeof n&&(e=n.call(this,t,e)),!J(e))return e}),r[1]=e,N.apply(I,r)}}),M[L][F]||n("35e8")(M[L],F,M[L].valueOf),l(M,"Symbol"),l(Math,"Math",!0),l(r.JSON,"JSON",!0)},"01f9":function(t,e,n){"use strict";var r=n("2d00"),o=n("5ca1"),i=n("2aba"),a=n("32e9"),c=n("84f2"),s=n("41a0"),u=n("7f20"),f=n("38fd"),l=n("2b4c")("iterator"),p=!([].keys&&"next"in[].keys()),d="@@iterator",v="keys",h="values",y=function(){return this};t.exports=function(t,e,n,m,b,_,g){s(n,e,m);var w,x,O,S=function(t){if(!p&&t in A)return A[t];switch(t){case v:return function(){return new n(this,t)};case h:return function(){return new n(this,t)}}return function(){return new n(this,t)}},C=e+" Iterator",j=b==h,$=!1,A=t.prototype,k=A[l]||A[d]||b&&A[b],E=k||S(b),P=b?j?S("entries"):E:void 0,T="Array"==e&&A.entries||k;if(T&&(O=f(T.call(new t)),O!==Object.prototype&&O.next&&(u(O,C,!0),r||"function"==typeof O[l]||a(O,l,y))),j&&k&&k.name!==h&&($=!0,E=function(){return k.call(this)}),r&&!g||!p&&!$&&A[l]||a(A,l,E),c[e]=E,c[C]=y,b)if(w={values:j?E:S(h),keys:_?E:S(v),entries:P},g)for(x in w)x in A||i(A,x,w[x]);else o(o.P+o.F*(p||$),e,w);return w}},"0293":function(t,e,n){var r=n("241e"),o=n("53e2");n("ce7e")("getPrototypeOf",function(){return function(t){return o(r(t))}})},"0395":function(t,e,n){var r=n("36c3"),o=n("6abf").f,i={}.toString,a="object"==typeof window&&window&&Object.getOwnPropertyNames?Object.getOwnPropertyNames(window):[],c=function(t){try{return o(t)}catch(e){return a.slice()}};t.exports.f=function(t){return a&&"[object Window]"==i.call(t)?c(t):o(r(t))}},"061b":function(t,e,n){t.exports=n("fa99")},"07e3":function(t,e){var n={}.hasOwnProperty;t.exports=function(t,e){return n.call(t,e)}},"097d":function(t,e,n){"use strict";var r=n("5ca1"),o=n("8378"),i=n("7726"),a=n("ebd6"),c=n("bcaa");r(r.P+r.R,"Promise",{finally:function(t){var e=a(this,o.Promise||i.Promise),n="function"==typeof t;return this.then(n?function(n){return c(e,t()).then(function(){return n})}:t,n?function(n){return c(e,t()).then(function(){throw n})}:t)}})},"0d58":function(t,e,n){var r=n("ce10"),o=n("e11e");t.exports=Object.keys||function(t){return r(t,o)}},"0fc9":function(t,e,n){var r=n("3a38"),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},1495:function(t,e,n){var r=n("86cc"),o=n("cb7c"),i=n("0d58");t.exports=n("9e1e")?Object.defineProperties:function(t,e){o(t);var n,a=i(e),c=a.length,s=0;while(c>s)r.f(t,n=a[s++],e[n]);return t}},1654:function(t,e,n){"use strict";var r=n("71c1")(!0);n("30f1")(String,"String",function(t){this._t=String(t),this._i=0},function(){var t,e=this._t,n=this._i;return n>=e.length?{value:void 0,done:!0}:(t=r(e,n),this._i+=t.length,{value:t,done:!1})})},1691:function(t,e){t.exports="constructor,hasOwnProperty,isPrototypeOf,propertyIsEnumerable,toLocaleString,toString,valueOf".split(",")},1991:function(t,e,n){var r,o,i,a=n("9b43"),c=n("31f4"),s=n("fab2"),u=n("230e"),f=n("7726"),l=f.process,p=f.setImmediate,d=f.clearImmediate,v=f.MessageChannel,h=f.Dispatch,y=0,m={},b="onreadystatechange",_=function(){var t=+this;if(m.hasOwnProperty(t)){var e=m[t];delete m[t],e()}},g=function(t){_.call(t.data)};p&&d||(p=function(t){var e=[],n=1;while(arguments.length>n)e.push(arguments[n++]);return m[++y]=function(){c("function"==typeof t?t:Function(t),e)},r(y),y},d=function(t){delete m[t]},"process"==n("2d95")(l)?r=function(t){l.nextTick(a(_,t,1))}:h&&h.now?r=function(t){h.now(a(_,t,1))}:v?(o=new v,i=o.port2,o.port1.onmessage=g,r=a(i.postMessage,i,1)):f.addEventListener&&"function"==typeof postMessage&&!f.importScripts?(r=function(t){f.postMessage(t+"","*")},f.addEventListener("message",g,!1)):r=b in u("script")?function(t){s.appendChild(u("script"))[b]=function(){s.removeChild(this),_.call(t)}}:function(t){setTimeout(a(_,t,1),0)}),t.exports={set:p,clear:d}},"1bc3":function(t,e,n){var r=n("f772");t.exports=function(t,e){if(!r(t))return t;var n,o;if(e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;if("function"==typeof(n=t.valueOf)&&!r(o=n.call(t)))return o;if(!e&&"function"==typeof(n=t.toString)&&!r(o=n.call(t)))return o;throw TypeError("Can't convert object to primitive value")}},"1df8":function(t,e,n){var r=n("63b6");r(r.S,"Object",{setPrototypeOf:n("ead6").set})},"1ec9":function(t,e,n){var r=n("f772"),o=n("e53d").document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},"1fa8":function(t,e,n){var r=n("cb7c");t.exports=function(t,e,n,o){try{return o?e(r(n)[0],n[1]):e(n)}catch(a){var i=t["return"];throw void 0!==i&&r(i.call(t)),a}}},"230e":function(t,e,n){var r=n("d3f4"),o=n("7726").document,i=r(o)&&r(o.createElement);t.exports=function(t){return i?o.createElement(t):{}}},"23c6":function(t,e,n){var r=n("2d95"),o=n("2b4c")("toStringTag"),i="Arguments"==r(function(){return arguments}()),a=function(t,e){try{return t[e]}catch(n){}};t.exports=function(t){var e,n,c;return void 0===t?"Undefined":null===t?"Null":"string"==typeof(n=a(e=Object(t),o))?n:i?r(e):"Object"==(c=r(e))&&"function"==typeof e.callee?"Arguments":c}},"241e":function(t,e,n){var r=n("25eb");t.exports=function(t){return Object(r(t))}},"25b0":function(t,e,n){n("1df8"),t.exports=n("584a").Object.setPrototypeOf},"25eb":function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},2621:function(t,e){e.f=Object.getOwnPropertySymbols},"268f":function(t,e,n){t.exports=n("fde4")},"27ee":function(t,e,n){var r=n("23c6"),o=n("2b4c")("iterator"),i=n("84f2");t.exports=n("8378").getIteratorMethod=function(t){if(void 0!=t)return t[o]||t["@@iterator"]||i[r(t)]}},2877:function(t,e,n){"use strict";function r(t,e,n,r,o,i,a,c){var s,u="function"===typeof t?t.options:t;if(e&&(u.render=e,u.staticRenderFns=n,u._compiled=!0),r&&(u.functional=!0),i&&(u._scopeId="data-v-"+i),a?(s=function(t){t=t||this.$vnode&&this.$vnode.ssrContext||this.parent&&this.parent.$vnode&&this.parent.$vnode.ssrContext,t||"undefined"===typeof __VUE_SSR_CONTEXT__||(t=__VUE_SSR_CONTEXT__),o&&o.call(this,t),t&&t._registeredComponents&&t._registeredComponents.add(a)},u._ssrRegister=s):o&&(s=c?function(){o.call(this,this.$root.$options.shadowRoot)}:o),s)if(u.functional){u._injectStyles=s;var f=u.render;u.render=function(t,e){return s.call(e),f(t,e)}}else{var l=u.beforeCreate;u.beforeCreate=l?[].concat(l,s):[s]}return{exports:t,options:u}}n.d(e,"a",function(){return r})},"294c":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},"2aba":function(t,e,n){var r=n("7726"),o=n("32e9"),i=n("69a8"),a=n("ca5a")("src"),c=n("fa5b"),s="toString",u=(""+c).split(s);n("8378").inspectSource=function(t){return c.call(t)},(t.exports=function(t,e,n,c){var s="function"==typeof n;s&&(i(n,"name")||o(n,"name",e)),t[e]!==n&&(s&&(i(n,a)||o(n,a,t[e]?""+t[e]:u.join(String(e)))),t===r?t[e]=n:c?t[e]?t[e]=n:o(t,e,n):(delete t[e],o(t,e,n)))})(Function.prototype,s,function(){return"function"==typeof this&&this[a]||c.call(this)})},"2aeb":function(t,e,n){var r=n("cb7c"),o=n("1495"),i=n("e11e"),a=n("613b")("IE_PROTO"),c=function(){},s="prototype",u=function(){var t,e=n("230e")("iframe"),r=i.length,o="<",a=">";e.style.display="none",n("fab2").appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(o+"script"+a+"document.F=Object"+o+"/script"+a),t.close(),u=t.F;while(r--)delete u[s][i[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(c[s]=r(t),n=new c,c[s]=null,n[a]=t):n=u(),void 0===e?n:o(n,e)}},"2b0e":function(t,e,n){"use strict";(function(t){ 2 | /*! 3 | * Vue.js v2.6.10 4 | * (c) 2014-2019 Evan You 5 | * Released under the MIT License. 6 | */ 7 | var n=Object.freeze({});function r(t){return void 0===t||null===t}function o(t){return void 0!==t&&null!==t}function i(t){return!0===t}function a(t){return!1===t}function c(t){return"string"===typeof t||"number"===typeof t||"symbol"===typeof t||"boolean"===typeof t}function s(t){return null!==t&&"object"===typeof t}var u=Object.prototype.toString;function f(t){return"[object Object]"===u.call(t)}function l(t){return"[object RegExp]"===u.call(t)}function p(t){var e=parseFloat(String(t));return e>=0&&Math.floor(e)===e&&isFinite(t)}function d(t){return o(t)&&"function"===typeof t.then&&"function"===typeof t.catch}function v(t){return null==t?"":Array.isArray(t)||f(t)&&t.toString===u?JSON.stringify(t,null,2):String(t)}function h(t){var e=parseFloat(t);return isNaN(e)?t:e}function y(t,e){for(var n=Object.create(null),r=t.split(","),o=0;o-1)return t.splice(n,1)}}var _=Object.prototype.hasOwnProperty;function g(t,e){return _.call(t,e)}function w(t){var e=Object.create(null);return function(n){var r=e[n];return r||(e[n]=t(n))}}var x=/-(\w)/g,O=w(function(t){return t.replace(x,function(t,e){return e?e.toUpperCase():""})}),S=w(function(t){return t.charAt(0).toUpperCase()+t.slice(1)}),C=/\B([A-Z])/g,j=w(function(t){return t.replace(C,"-$1").toLowerCase()});function $(t,e){function n(n){var r=arguments.length;return r?r>1?t.apply(e,arguments):t.call(e,n):t.call(e)}return n._length=t.length,n}function A(t,e){return t.bind(e)}var k=Function.prototype.bind?A:$;function E(t,e){e=e||0;var n=t.length-e,r=new Array(n);while(n--)r[n]=t[n+e];return r}function P(t,e){for(var n in e)t[n]=e[n];return t}function T(t){for(var e={},n=0;n0,nt=Q&&Q.indexOf("edge/")>0,rt=(Q&&Q.indexOf("android"),Q&&/iphone|ipad|ipod|ios/.test(Q)||"ios"===Z),ot=(Q&&/chrome\/\d+/.test(Q),Q&&/phantomjs/.test(Q),Q&&Q.match(/firefox\/(\d+)/)),it={}.watch,at=!1;if(X)try{var ct={};Object.defineProperty(ct,"passive",{get:function(){at=!0}}),window.addEventListener("test-passive",null,ct)}catch(Oa){}var st=function(){return void 0===q&&(q=!X&&!Y&&"undefined"!==typeof t&&(t["process"]&&"server"===t["process"].env.VUE_ENV)),q},ut=X&&window.__VUE_DEVTOOLS_GLOBAL_HOOK__;function ft(t){return"function"===typeof t&&/native code/.test(t.toString())}var lt,pt="undefined"!==typeof Symbol&&ft(Symbol)&&"undefined"!==typeof Reflect&&ft(Reflect.ownKeys);lt="undefined"!==typeof Set&&ft(Set)?Set:function(){function t(){this.set=Object.create(null)}return t.prototype.has=function(t){return!0===this.set[t]},t.prototype.add=function(t){this.set[t]=!0},t.prototype.clear=function(){this.set=Object.create(null)},t}();var dt=M,vt=0,ht=function(){this.id=vt++,this.subs=[]};ht.prototype.addSub=function(t){this.subs.push(t)},ht.prototype.removeSub=function(t){b(this.subs,t)},ht.prototype.depend=function(){ht.target&&ht.target.addDep(this)},ht.prototype.notify=function(){var t=this.subs.slice();for(var e=0,n=t.length;e-1)if(i&&!g(o,"default"))a=!1;else if(""===a||a===j(t)){var s=te(String,o.type);(s<0||c0&&(a=$e(a,(e||"")+"_"+n),je(a[0])&&je(u)&&(f[s]=xt(u.text+a[0].text),a.shift()),f.push.apply(f,a)):c(a)?je(u)?f[s]=xt(u.text+a):""!==a&&f.push(xt(a)):je(a)&&je(u)?f[s]=xt(u.text+a.text):(i(t._isVList)&&o(a.tag)&&r(a.key)&&o(e)&&(a.key="__vlist"+e+"_"+n+"__"),f.push(a)));return f}function Ae(t){var e=t.$options.provide;e&&(t._provided="function"===typeof e?e.call(t):e)}function ke(t){var e=Ee(t.$options.inject,t);e&&(kt(!1),Object.keys(e).forEach(function(n){It(t,n,e[n])}),kt(!0))}function Ee(t,e){if(t){for(var n=Object.create(null),r=pt?Reflect.ownKeys(t):Object.keys(t),o=0;o0,a=t?!!t.$stable:!i,c=t&&t.$key;if(t){if(t._normalized)return t._normalized;if(a&&r&&r!==n&&c===r.$key&&!i&&!r.$hasNormal)return r;for(var s in o={},t)t[s]&&"$"!==s[0]&&(o[s]=Ie(e,s,t[s]))}else o={};for(var u in e)u in o||(o[u]=Ne(e,u));return t&&Object.isExtensible(t)&&(t._normalized=o),z(o,"$stable",a),z(o,"$key",c),z(o,"$hasNormal",i),o}function Ie(t,e,n){var r=function(){var t=arguments.length?n.apply(null,arguments):n({});return t=t&&"object"===typeof t&&!Array.isArray(t)?[t]:Ce(t),t&&(0===t.length||1===t.length&&t[0].isComment)?void 0:t};return n.proxy&&Object.defineProperty(t,e,{get:r,enumerable:!0,configurable:!0}),r}function Ne(t,e){return function(){return t[e]}}function Le(t,e){var n,r,i,a,c;if(Array.isArray(t)||"string"===typeof t)for(n=new Array(t.length),r=0,i=t.length;r1?E(n):n;for(var r=E(arguments,1),o='event handler for "'+t+'"',i=0,a=n.length;idocument.createEvent("Event").timeStamp&&(qn=function(){return Jn.now()})}function Xn(){var t,e;for(Kn=qn(),Bn=!0,Un.sort(function(t,e){return t.id-e.id}),zn=0;znzn&&Un[n].id>t.id)n--;Un.splice(n+1,0,t)}else Un.push(t);Hn||(Hn=!0,ve(Xn))}}var er=0,nr=function(t,e,n,r,o){this.vm=t,o&&(t._watcher=this),t._watchers.push(this),r?(this.deep=!!r.deep,this.user=!!r.user,this.lazy=!!r.lazy,this.sync=!!r.sync,this.before=r.before):this.deep=this.user=this.lazy=this.sync=!1,this.cb=n,this.id=++er,this.active=!0,this.dirty=this.lazy,this.deps=[],this.newDeps=[],this.depIds=new lt,this.newDepIds=new lt,this.expression="","function"===typeof e?this.getter=e:(this.getter=K(e),this.getter||(this.getter=M)),this.value=this.lazy?void 0:this.get()};nr.prototype.get=function(){var t;mt(this);var e=this.vm;try{t=this.getter.call(e,e)}catch(Oa){if(!this.user)throw Oa;ee(Oa,e,'getter for watcher "'+this.expression+'"')}finally{this.deep&&ye(t),bt(),this.cleanupDeps()}return t},nr.prototype.addDep=function(t){var e=t.id;this.newDepIds.has(e)||(this.newDepIds.add(e),this.newDeps.push(t),this.depIds.has(e)||t.addSub(this))},nr.prototype.cleanupDeps=function(){var t=this.deps.length;while(t--){var e=this.deps[t];this.newDepIds.has(e.id)||e.removeSub(this)}var n=this.depIds;this.depIds=this.newDepIds,this.newDepIds=n,this.newDepIds.clear(),n=this.deps,this.deps=this.newDeps,this.newDeps=n,this.newDeps.length=0},nr.prototype.update=function(){this.lazy?this.dirty=!0:this.sync?this.run():tr(this)},nr.prototype.run=function(){if(this.active){var t=this.get();if(t!==this.value||s(t)||this.deep){var e=this.value;if(this.value=t,this.user)try{this.cb.call(this.vm,t,e)}catch(Oa){ee(Oa,this.vm,'callback for watcher "'+this.expression+'"')}else this.cb.call(this.vm,t,e)}}},nr.prototype.evaluate=function(){this.value=this.get(),this.dirty=!1},nr.prototype.depend=function(){var t=this.deps.length;while(t--)this.deps[t].depend()},nr.prototype.teardown=function(){if(this.active){this.vm._isBeingDestroyed||b(this.vm._watchers,this);var t=this.deps.length;while(t--)this.deps[t].removeSub(this);this.active=!1}};var rr={enumerable:!0,configurable:!0,get:M,set:M};function or(t,e,n){rr.get=function(){return this[e][n]},rr.set=function(t){this[e][n]=t},Object.defineProperty(t,n,rr)}function ir(t){t._watchers=[];var e=t.$options;e.props&&ar(t,e.props),e.methods&&vr(t,e.methods),e.data?cr(t):Mt(t._data={},!0),e.computed&&fr(t,e.computed),e.watch&&e.watch!==it&&hr(t,e.watch)}function ar(t,e){var n=t.$options.propsData||{},r=t._props={},o=t.$options._propKeys=[],i=!t.$parent;i||kt(!1);var a=function(i){o.push(i);var a=Xt(i,e,n,t);It(r,i,a),i in t||or(t,"_props",i)};for(var c in e)a(c);kt(!0)}function cr(t){var e=t.$options.data;e=t._data="function"===typeof e?sr(e,t):e||{},f(e)||(e={});var n=Object.keys(e),r=t.$options.props,o=(t.$options.methods,n.length);while(o--){var i=n[o];0,r&&g(r,i)||B(i)||or(t,"_data",i)}Mt(e,!0)}function sr(t,e){mt();try{return t.call(e,e)}catch(Oa){return ee(Oa,e,"data()"),{}}finally{bt()}}var ur={lazy:!0};function fr(t,e){var n=t._computedWatchers=Object.create(null),r=st();for(var o in e){var i=e[o],a="function"===typeof i?i:i.get;0,r||(n[o]=new nr(t,a||M,M,ur)),o in t||lr(t,o,i)}}function lr(t,e,n){var r=!st();"function"===typeof n?(rr.get=r?pr(e):dr(n),rr.set=M):(rr.get=n.get?r&&!1!==n.cache?pr(e):dr(n.get):M,rr.set=n.set||M),Object.defineProperty(t,e,rr)}function pr(t){return function(){var e=this._computedWatchers&&this._computedWatchers[t];if(e)return e.dirty&&e.evaluate(),ht.target&&e.depend(),e.value}}function dr(t){return function(){return t.call(this,this)}}function vr(t,e){t.$options.props;for(var n in e)t[n]="function"!==typeof e[n]?M:k(e[n],t)}function hr(t,e){for(var n in e){var r=e[n];if(Array.isArray(r))for(var o=0;o-1)return this;var n=E(arguments,1);return n.unshift(this),"function"===typeof t.install?t.install.apply(t,n):"function"===typeof t&&t.apply(null,n),e.push(t),this}}function Cr(t){t.mixin=function(t){return this.options=qt(this.options,t),this}}function jr(t){t.cid=0;var e=1;t.extend=function(t){t=t||{};var n=this,r=n.cid,o=t._Ctor||(t._Ctor={});if(o[r])return o[r];var i=t.name||n.options.name;var a=function(t){this._init(t)};return a.prototype=Object.create(n.prototype),a.prototype.constructor=a,a.cid=e++,a.options=qt(n.options,t),a["super"]=n,a.options.props&&$r(a),a.options.computed&&Ar(a),a.extend=n.extend,a.mixin=n.mixin,a.use=n.use,U.forEach(function(t){a[t]=n[t]}),i&&(a.options.components[i]=a),a.superOptions=n.options,a.extendOptions=t,a.sealedOptions=P({},a.options),o[r]=a,a}}function $r(t){var e=t.options.props;for(var n in e)or(t.prototype,"_props",n)}function Ar(t){var e=t.options.computed;for(var n in e)lr(t.prototype,n,e[n])}function kr(t){U.forEach(function(e){t[e]=function(t,n){return n?("component"===e&&f(n)&&(n.name=n.name||t,n=this.options._base.extend(n)),"directive"===e&&"function"===typeof n&&(n={bind:n,update:n}),this.options[e+"s"][t]=n,n):this.options[e+"s"][t]}})}function Er(t){return t&&(t.Ctor.options.name||t.tag)}function Pr(t,e){return Array.isArray(t)?t.indexOf(e)>-1:"string"===typeof t?t.split(",").indexOf(e)>-1:!!l(t)&&t.test(e)}function Tr(t,e){var n=t.cache,r=t.keys,o=t._vnode;for(var i in n){var a=n[i];if(a){var c=Er(a.componentOptions);c&&!e(c)&&Mr(n,i,r,o)}}}function Mr(t,e,n,r){var o=t[e];!o||r&&o.tag===r.tag||o.componentInstance.$destroy(),t[e]=null,b(n,e)}_r(Or),mr(Or),kn(Or),Mn(Or),bn(Or);var Ir=[String,RegExp,Array],Nr={name:"keep-alive",abstract:!0,props:{include:Ir,exclude:Ir,max:[String,Number]},created:function(){this.cache=Object.create(null),this.keys=[]},destroyed:function(){for(var t in this.cache)Mr(this.cache,t,this.keys)},mounted:function(){var t=this;this.$watch("include",function(e){Tr(t,function(t){return Pr(e,t)})}),this.$watch("exclude",function(e){Tr(t,function(t){return!Pr(e,t)})})},render:function(){var t=this.$slots.default,e=On(t),n=e&&e.componentOptions;if(n){var r=Er(n),o=this,i=o.include,a=o.exclude;if(i&&(!r||!Pr(i,r))||a&&r&&Pr(a,r))return e;var c=this,s=c.cache,u=c.keys,f=null==e.key?n.Ctor.cid+(n.tag?"::"+n.tag:""):e.key;s[f]?(e.componentInstance=s[f].componentInstance,b(u,f),u.push(f)):(s[f]=e,u.push(f),this.max&&u.length>parseInt(this.max)&&Mr(s,u[0],u,this._vnode)),e.data.keepAlive=!0}return e||t&&t[0]}},Lr={KeepAlive:Nr};function Dr(t){var e={get:function(){return G}};Object.defineProperty(t,"config",e),t.util={warn:dt,extend:P,mergeOptions:qt,defineReactive:It},t.set=Nt,t.delete=Lt,t.nextTick=ve,t.observable=function(t){return Mt(t),t},t.options=Object.create(null),U.forEach(function(e){t.options[e+"s"]=Object.create(null)}),t.options._base=t,P(t.options.components,Lr),Sr(t),Cr(t),jr(t),kr(t)}Dr(Or),Object.defineProperty(Or.prototype,"$isServer",{get:st}),Object.defineProperty(Or.prototype,"$ssrContext",{get:function(){return this.$vnode&&this.$vnode.ssrContext}}),Object.defineProperty(Or,"FunctionalRenderContext",{value:Ye}),Or.version="2.6.10";var Fr=y("style,class"),Rr=y("input,textarea,option,select,progress"),Ur=function(t,e,n){return"value"===n&&Rr(t)&&"button"!==e||"selected"===n&&"option"===t||"checked"===n&&"input"===t||"muted"===n&&"video"===t},Vr=y("contenteditable,draggable,spellcheck"),Gr=y("events,caret,typing,plaintext-only"),Hr=function(t,e){return qr(e)||"false"===e?"false":"contenteditable"===t&&Gr(e)?e:"true"},Br=y("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"),zr="http://www.w3.org/1999/xlink",Wr=function(t){return":"===t.charAt(5)&&"xlink"===t.slice(0,5)},Kr=function(t){return Wr(t)?t.slice(6,t.length):""},qr=function(t){return null==t||!1===t};function Jr(t){var e=t.data,n=t,r=t;while(o(r.componentInstance))r=r.componentInstance._vnode,r&&r.data&&(e=Xr(r.data,e));while(o(n=n.parent))n&&n.data&&(e=Xr(e,n.data));return Yr(e.staticClass,e.class)}function Xr(t,e){return{staticClass:Zr(t.staticClass,e.staticClass),class:o(t.class)?[t.class,e.class]:e.class}}function Yr(t,e){return o(t)||o(e)?Zr(t,Qr(e)):""}function Zr(t,e){return t?e?t+" "+e:t:e||""}function Qr(t){return Array.isArray(t)?to(t):s(t)?eo(t):"string"===typeof t?t:""}function to(t){for(var e,n="",r=0,i=t.length;r-1?co[t]=e.constructor===window.HTMLUnknownElement||e.constructor===window.HTMLElement:co[t]=/HTMLUnknownElement/.test(e.toString())}var uo=y("text,number,password,search,email,tel,url");function fo(t){if("string"===typeof t){var e=document.querySelector(t);return e||document.createElement("div")}return t}function lo(t,e){var n=document.createElement(t);return"select"!==t?n:(e.data&&e.data.attrs&&void 0!==e.data.attrs.multiple&&n.setAttribute("multiple","multiple"),n)}function po(t,e){return document.createElementNS(no[t],e)}function vo(t){return document.createTextNode(t)}function ho(t){return document.createComment(t)}function yo(t,e,n){t.insertBefore(e,n)}function mo(t,e){t.removeChild(e)}function bo(t,e){t.appendChild(e)}function _o(t){return t.parentNode}function go(t){return t.nextSibling}function wo(t){return t.tagName}function xo(t,e){t.textContent=e}function Oo(t,e){t.setAttribute(e,"")}var So=Object.freeze({createElement:lo,createElementNS:po,createTextNode:vo,createComment:ho,insertBefore:yo,removeChild:mo,appendChild:bo,parentNode:_o,nextSibling:go,tagName:wo,setTextContent:xo,setStyleScope:Oo}),Co={create:function(t,e){jo(e)},update:function(t,e){t.data.ref!==e.data.ref&&(jo(t,!0),jo(e))},destroy:function(t){jo(t,!0)}};function jo(t,e){var n=t.data.ref;if(o(n)){var r=t.context,i=t.componentInstance||t.elm,a=r.$refs;e?Array.isArray(a[n])?b(a[n],i):a[n]===i&&(a[n]=void 0):t.data.refInFor?Array.isArray(a[n])?a[n].indexOf(i)<0&&a[n].push(i):a[n]=[i]:a[n]=i}}var $o=new _t("",{},[]),Ao=["create","activate","update","remove","destroy"];function ko(t,e){return t.key===e.key&&(t.tag===e.tag&&t.isComment===e.isComment&&o(t.data)===o(e.data)&&Eo(t,e)||i(t.isAsyncPlaceholder)&&t.asyncFactory===e.asyncFactory&&r(e.asyncFactory.error))}function Eo(t,e){if("input"!==t.tag)return!0;var n,r=o(n=t.data)&&o(n=n.attrs)&&n.type,i=o(n=e.data)&&o(n=n.attrs)&&n.type;return r===i||uo(r)&&uo(i)}function Po(t,e,n){var r,i,a={};for(r=e;r<=n;++r)i=t[r].key,o(i)&&(a[i]=r);return a}function To(t){var e,n,a={},s=t.modules,u=t.nodeOps;for(e=0;eh?(l=r(n[b+1])?null:n[b+1].elm,O(t,l,n,v,b,i)):v>b&&C(t,e,p,h)}function A(t,e,n,r){for(var i=n;i-1?Ho(t,e,n):Br(e)?qr(n)?t.removeAttribute(e):(n="allowfullscreen"===e&&"EMBED"===t.tagName?"true":e,t.setAttribute(e,n)):Vr(e)?t.setAttribute(e,Hr(e,n)):Wr(e)?qr(n)?t.removeAttributeNS(zr,Kr(e)):t.setAttributeNS(zr,e,n):Ho(t,e,n)}function Ho(t,e,n){if(qr(n))t.removeAttribute(e);else{if(tt&&!et&&"TEXTAREA"===t.tagName&&"placeholder"===e&&""!==n&&!t.__ieph){var r=function(e){e.stopImmediatePropagation(),t.removeEventListener("input",r)};t.addEventListener("input",r),t.__ieph=!0}t.setAttribute(e,n)}}var Bo={create:Vo,update:Vo};function zo(t,e){var n=e.elm,i=e.data,a=t.data;if(!(r(i.staticClass)&&r(i.class)&&(r(a)||r(a.staticClass)&&r(a.class)))){var c=Jr(e),s=n._transitionClasses;o(s)&&(c=Zr(c,Qr(s))),c!==n._prevClass&&(n.setAttribute("class",c),n._prevClass=c)}}var Wo,Ko={create:zo,update:zo},qo="__r",Jo="__c";function Xo(t){if(o(t[qo])){var e=tt?"change":"input";t[e]=[].concat(t[qo],t[e]||[]),delete t[qo]}o(t[Jo])&&(t.change=[].concat(t[Jo],t.change||[]),delete t[Jo])}function Yo(t,e,n){var r=Wo;return function o(){var i=e.apply(null,arguments);null!==i&&ti(t,o,n,r)}}var Zo=ae&&!(ot&&Number(ot[1])<=53);function Qo(t,e,n,r){if(Zo){var o=Kn,i=e;e=i._wrapper=function(t){if(t.target===t.currentTarget||t.timeStamp>=o||t.timeStamp<=0||t.target.ownerDocument!==document)return i.apply(this,arguments)}}Wo.addEventListener(t,e,at?{capture:n,passive:r}:n)}function ti(t,e,n,r){(r||Wo).removeEventListener(t,e._wrapper||e,n)}function ei(t,e){if(!r(t.data.on)||!r(e.data.on)){var n=e.data.on||{},o=t.data.on||{};Wo=e.elm,Xo(n),ge(n,o,Qo,ti,Yo,e.context),Wo=void 0}}var ni,ri={create:ei,update:ei};function oi(t,e){if(!r(t.data.domProps)||!r(e.data.domProps)){var n,i,a=e.elm,c=t.data.domProps||{},s=e.data.domProps||{};for(n in o(s.__ob__)&&(s=e.data.domProps=P({},s)),c)n in s||(a[n]="");for(n in s){if(i=s[n],"textContent"===n||"innerHTML"===n){if(e.children&&(e.children.length=0),i===c[n])continue;1===a.childNodes.length&&a.removeChild(a.childNodes[0])}if("value"===n&&"PROGRESS"!==a.tagName){a._value=i;var u=r(i)?"":String(i);ii(a,u)&&(a.value=u)}else if("innerHTML"===n&&oo(a.tagName)&&r(a.innerHTML)){ni=ni||document.createElement("div"),ni.innerHTML=""+i+"";var f=ni.firstChild;while(a.firstChild)a.removeChild(a.firstChild);while(f.firstChild)a.appendChild(f.firstChild)}else if(i!==c[n])try{a[n]=i}catch(Oa){}}}}function ii(t,e){return!t.composing&&("OPTION"===t.tagName||ai(t,e)||ci(t,e))}function ai(t,e){var n=!0;try{n=document.activeElement!==t}catch(Oa){}return n&&t.value!==e}function ci(t,e){var n=t.value,r=t._vModifiers;if(o(r)){if(r.number)return h(n)!==h(e);if(r.trim)return n.trim()!==e.trim()}return n!==e}var si={create:oi,update:oi},ui=w(function(t){var e={},n=/;(?![^(]*\))/g,r=/:(.+)/;return t.split(n).forEach(function(t){if(t){var n=t.split(r);n.length>1&&(e[n[0].trim()]=n[1].trim())}}),e});function fi(t){var e=li(t.style);return t.staticStyle?P(t.staticStyle,e):e}function li(t){return Array.isArray(t)?T(t):"string"===typeof t?ui(t):t}function pi(t,e){var n,r={};if(e){var o=t;while(o.componentInstance)o=o.componentInstance._vnode,o&&o.data&&(n=fi(o.data))&&P(r,n)}(n=fi(t.data))&&P(r,n);var i=t;while(i=i.parent)i.data&&(n=fi(i.data))&&P(r,n);return r}var di,vi=/^--/,hi=/\s*!important$/,yi=function(t,e,n){if(vi.test(e))t.style.setProperty(e,n);else if(hi.test(n))t.style.setProperty(j(e),n.replace(hi,""),"important");else{var r=bi(e);if(Array.isArray(n))for(var o=0,i=n.length;o-1?e.split(wi).forEach(function(e){return t.classList.add(e)}):t.classList.add(e);else{var n=" "+(t.getAttribute("class")||"")+" ";n.indexOf(" "+e+" ")<0&&t.setAttribute("class",(n+e).trim())}}function Oi(t,e){if(e&&(e=e.trim()))if(t.classList)e.indexOf(" ")>-1?e.split(wi).forEach(function(e){return t.classList.remove(e)}):t.classList.remove(e),t.classList.length||t.removeAttribute("class");else{var n=" "+(t.getAttribute("class")||"")+" ",r=" "+e+" ";while(n.indexOf(r)>=0)n=n.replace(r," ");n=n.trim(),n?t.setAttribute("class",n):t.removeAttribute("class")}}function Si(t){if(t){if("object"===typeof t){var e={};return!1!==t.css&&P(e,Ci(t.name||"v")),P(e,t),e}return"string"===typeof t?Ci(t):void 0}}var Ci=w(function(t){return{enterClass:t+"-enter",enterToClass:t+"-enter-to",enterActiveClass:t+"-enter-active",leaveClass:t+"-leave",leaveToClass:t+"-leave-to",leaveActiveClass:t+"-leave-active"}}),ji=X&&!et,$i="transition",Ai="animation",ki="transition",Ei="transitionend",Pi="animation",Ti="animationend";ji&&(void 0===window.ontransitionend&&void 0!==window.onwebkittransitionend&&(ki="WebkitTransition",Ei="webkitTransitionEnd"),void 0===window.onanimationend&&void 0!==window.onwebkitanimationend&&(Pi="WebkitAnimation",Ti="webkitAnimationEnd"));var Mi=X?window.requestAnimationFrame?window.requestAnimationFrame.bind(window):setTimeout:function(t){return t()};function Ii(t){Mi(function(){Mi(t)})}function Ni(t,e){var n=t._transitionClasses||(t._transitionClasses=[]);n.indexOf(e)<0&&(n.push(e),xi(t,e))}function Li(t,e){t._transitionClasses&&b(t._transitionClasses,e),Oi(t,e)}function Di(t,e,n){var r=Ri(t,e),o=r.type,i=r.timeout,a=r.propCount;if(!o)return n();var c=o===$i?Ei:Ti,s=0,u=function(){t.removeEventListener(c,f),n()},f=function(e){e.target===t&&++s>=a&&u()};setTimeout(function(){s0&&(n=$i,f=a,l=i.length):e===Ai?u>0&&(n=Ai,f=u,l=s.length):(f=Math.max(a,u),n=f>0?a>u?$i:Ai:null,l=n?n===$i?i.length:s.length:0);var p=n===$i&&Fi.test(r[ki+"Property"]);return{type:n,timeout:f,propCount:l,hasTransform:p}}function Ui(t,e){while(t.length1}function Wi(t,e){!0!==e.data.show&&Gi(e)}var Ki=X?{create:Wi,activate:Wi,remove:function(t,e){!0!==t.data.show?Hi(t,e):e()}}:{},qi=[Bo,Ko,ri,si,gi,Ki],Ji=qi.concat(Uo),Xi=To({nodeOps:So,modules:Ji});et&&document.addEventListener("selectionchange",function(){var t=document.activeElement;t&&t.vmodel&&oa(t,"input")});var Yi={inserted:function(t,e,n,r){"select"===n.tag?(r.elm&&!r.elm._vOptions?we(n,"postpatch",function(){Yi.componentUpdated(t,e,n)}):Zi(t,e,n.context),t._vOptions=[].map.call(t.options,ea)):("textarea"===n.tag||uo(t.type))&&(t._vModifiers=e.modifiers,e.modifiers.lazy||(t.addEventListener("compositionstart",na),t.addEventListener("compositionend",ra),t.addEventListener("change",ra),et&&(t.vmodel=!0)))},componentUpdated:function(t,e,n){if("select"===n.tag){Zi(t,e,n.context);var r=t._vOptions,o=t._vOptions=[].map.call(t.options,ea);if(o.some(function(t,e){return!L(t,r[e])})){var i=t.multiple?e.value.some(function(t){return ta(t,o)}):e.value!==e.oldValue&&ta(e.value,o);i&&oa(t,"change")}}}};function Zi(t,e,n){Qi(t,e,n),(tt||nt)&&setTimeout(function(){Qi(t,e,n)},0)}function Qi(t,e,n){var r=e.value,o=t.multiple;if(!o||Array.isArray(r)){for(var i,a,c=0,s=t.options.length;c-1,a.selected!==i&&(a.selected=i);else if(L(ea(a),r))return void(t.selectedIndex!==c&&(t.selectedIndex=c));o||(t.selectedIndex=-1)}}function ta(t,e){return e.every(function(e){return!L(e,t)})}function ea(t){return"_value"in t?t._value:t.value}function na(t){t.target.composing=!0}function ra(t){t.target.composing&&(t.target.composing=!1,oa(t.target,"input"))}function oa(t,e){var n=document.createEvent("HTMLEvents");n.initEvent(e,!0,!0),t.dispatchEvent(n)}function ia(t){return!t.componentInstance||t.data&&t.data.transition?t:ia(t.componentInstance._vnode)}var aa={bind:function(t,e,n){var r=e.value;n=ia(n);var o=n.data&&n.data.transition,i=t.__vOriginalDisplay="none"===t.style.display?"":t.style.display;r&&o?(n.data.show=!0,Gi(n,function(){t.style.display=i})):t.style.display=r?i:"none"},update:function(t,e,n){var r=e.value,o=e.oldValue;if(!r!==!o){n=ia(n);var i=n.data&&n.data.transition;i?(n.data.show=!0,r?Gi(n,function(){t.style.display=t.__vOriginalDisplay}):Hi(n,function(){t.style.display="none"})):t.style.display=r?t.__vOriginalDisplay:"none"}},unbind:function(t,e,n,r,o){o||(t.style.display=t.__vOriginalDisplay)}},ca={model:Yi,show:aa},sa={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 ua(t){var e=t&&t.componentOptions;return e&&e.Ctor.options.abstract?ua(On(e.children)):t}function fa(t){var e={},n=t.$options;for(var r in n.propsData)e[r]=t[r];var o=n._parentListeners;for(var i in o)e[O(i)]=o[i];return e}function la(t,e){if(/\d-keep-alive$/.test(e.tag))return t("keep-alive",{props:e.componentOptions.propsData})}function pa(t){while(t=t.parent)if(t.data.transition)return!0}function da(t,e){return e.key===t.key&&e.tag===t.tag}var va=function(t){return t.tag||xn(t)},ha=function(t){return"show"===t.name},ya={name:"transition",props:sa,abstract:!0,render:function(t){var e=this,n=this.$slots.default;if(n&&(n=n.filter(va),n.length)){0;var r=this.mode;0;var o=n[0];if(pa(this.$vnode))return o;var i=ua(o);if(!i)return o;if(this._leaving)return la(t,o);var a="__transition-"+this._uid+"-";i.key=null==i.key?i.isComment?a+"comment":a+i.tag:c(i.key)?0===String(i.key).indexOf(a)?i.key:a+i.key:i.key;var s=(i.data||(i.data={})).transition=fa(this),u=this._vnode,f=ua(u);if(i.data.directives&&i.data.directives.some(ha)&&(i.data.show=!0),f&&f.data&&!da(i,f)&&!xn(f)&&(!f.componentInstance||!f.componentInstance._vnode.isComment)){var l=f.data.transition=P({},s);if("out-in"===r)return this._leaving=!0,we(l,"afterLeave",function(){e._leaving=!1,e.$forceUpdate()}),la(t,o);if("in-out"===r){if(xn(i))return u;var p,d=function(){p()};we(s,"afterEnter",d),we(s,"enterCancelled",d),we(l,"delayLeave",function(t){p=t})}}return o}}},ma=P({tag:String,moveClass:String},sa);delete ma.mode;var ba={props:ma,beforeMount:function(){var t=this,e=this._update;this._update=function(n,r){var o=Pn(t);t.__patch__(t._vnode,t.kept,!1,!0),t._vnode=t.kept,o(),e.call(t,n,r)}},render:function(t){for(var e=this.tag||this.$vnode.data.tag||"span",n=Object.create(null),r=this.prevChildren=this.children,o=this.$slots.default||[],i=this.children=[],a=fa(this),c=0;c=2)t.mixin({beforeCreate:r});else{var n=t.prototype._init;t.prototype._init=function(t){void 0===t&&(t={}),t.init=t.init?[r].concat(t.init):r,n.call(this,t)}}function r(){var t=this.$options;t.store?this.$store="function"===typeof t.store?t.store():t.store:t.parent&&t.parent.$store&&(this.$store=t.parent.$store)}}n.d(e,"a",function(){return y});var o="undefined"!==typeof window?window:"undefined"!==typeof t?t:{},i=o.__VUE_DEVTOOLS_GLOBAL_HOOK__;function a(t){i&&(t._devtoolHook=i,i.emit("vuex:init",t),i.on("vuex:travel-to-state",function(e){t.replaceState(e)}),t.subscribe(function(t,e){i.emit("vuex:mutation",t,e)}))}function c(t,e){Object.keys(t).forEach(function(n){return e(t[n],n)})}function s(t){return null!==t&&"object"===typeof t}function u(t){return t&&"function"===typeof t.then}function f(t,e){return function(){return t(e)}}var l=function(t,e){this.runtime=e,this._children=Object.create(null),this._rawModule=t;var n=t.state;this.state=("function"===typeof n?n():n)||{}},p={namespaced:{configurable:!0}};p.namespaced.get=function(){return!!this._rawModule.namespaced},l.prototype.addChild=function(t,e){this._children[t]=e},l.prototype.removeChild=function(t){delete this._children[t]},l.prototype.getChild=function(t){return this._children[t]},l.prototype.update=function(t){this._rawModule.namespaced=t.namespaced,t.actions&&(this._rawModule.actions=t.actions),t.mutations&&(this._rawModule.mutations=t.mutations),t.getters&&(this._rawModule.getters=t.getters)},l.prototype.forEachChild=function(t){c(this._children,t)},l.prototype.forEachGetter=function(t){this._rawModule.getters&&c(this._rawModule.getters,t)},l.prototype.forEachAction=function(t){this._rawModule.actions&&c(this._rawModule.actions,t)},l.prototype.forEachMutation=function(t){this._rawModule.mutations&&c(this._rawModule.mutations,t)},Object.defineProperties(l.prototype,p);var d=function(t){this.register([],t,!1)};function v(t,e,n){if(e.update(n),n.modules)for(var r in n.modules){if(!e.getChild(r))return void 0;v(t.concat(r),e.getChild(r),n.modules[r])}}d.prototype.get=function(t){return t.reduce(function(t,e){return t.getChild(e)},this.root)},d.prototype.getNamespace=function(t){var e=this.root;return t.reduce(function(t,n){return e=e.getChild(n),t+(e.namespaced?n+"/":"")},"")},d.prototype.update=function(t){v([],this.root,t)},d.prototype.register=function(t,e,n){var r=this;void 0===n&&(n=!0);var o=new l(e,n);if(0===t.length)this.root=o;else{var i=this.get(t.slice(0,-1));i.addChild(t[t.length-1],o)}e.modules&&c(e.modules,function(e,o){r.register(t.concat(o),e,n)})},d.prototype.unregister=function(t){var e=this.get(t.slice(0,-1)),n=t[t.length-1];e.getChild(n).runtime&&e.removeChild(n)};var h;var y=function(t){var e=this;void 0===t&&(t={}),!h&&"undefined"!==typeof window&&window.Vue&&E(window.Vue);var n=t.plugins;void 0===n&&(n=[]);var r=t.strict;void 0===r&&(r=!1),this._committing=!1,this._actions=Object.create(null),this._actionSubscribers=[],this._mutations=Object.create(null),this._wrappedGetters=Object.create(null),this._modules=new d(t),this._modulesNamespaceMap=Object.create(null),this._subscribers=[],this._watcherVM=new h;var o=this,i=this,c=i.dispatch,s=i.commit;this.dispatch=function(t,e){return c.call(o,t,e)},this.commit=function(t,e,n){return s.call(o,t,e,n)},this.strict=r;var u=this._modules.root.state;w(this,u,[],this._modules.root),g(this,u),n.forEach(function(t){return t(e)});var f=void 0!==t.devtools?t.devtools:h.config.devtools;f&&a(this)},m={state:{configurable:!0}};function b(t,e){return e.indexOf(t)<0&&e.push(t),function(){var n=e.indexOf(t);n>-1&&e.splice(n,1)}}function _(t,e){t._actions=Object.create(null),t._mutations=Object.create(null),t._wrappedGetters=Object.create(null),t._modulesNamespaceMap=Object.create(null);var n=t.state;w(t,n,[],t._modules.root,!0),g(t,n,e)}function g(t,e,n){var r=t._vm;t.getters={};var o=t._wrappedGetters,i={};c(o,function(e,n){i[n]=f(e,t),Object.defineProperty(t.getters,n,{get:function(){return t._vm[n]},enumerable:!0})});var a=h.config.silent;h.config.silent=!0,t._vm=new h({data:{$$state:e},computed:i}),h.config.silent=a,t.strict&&$(t),r&&(n&&t._withCommit(function(){r._data.$$state=null}),h.nextTick(function(){return r.$destroy()}))}function w(t,e,n,r,o){var i=!n.length,a=t._modules.getNamespace(n);if(r.namespaced&&(t._modulesNamespaceMap[a]=r),!i&&!o){var c=A(e,n.slice(0,-1)),s=n[n.length-1];t._withCommit(function(){h.set(c,s,r.state)})}var u=r.context=x(t,a,n);r.forEachMutation(function(e,n){var r=a+n;S(t,r,e,u)}),r.forEachAction(function(e,n){var r=e.root?n:a+n,o=e.handler||e;C(t,r,o,u)}),r.forEachGetter(function(e,n){var r=a+n;j(t,r,e,u)}),r.forEachChild(function(r,i){w(t,e,n.concat(i),r,o)})}function x(t,e,n){var r=""===e,o={dispatch:r?t.dispatch:function(n,r,o){var i=k(n,r,o),a=i.payload,c=i.options,s=i.type;return c&&c.root||(s=e+s),t.dispatch(s,a)},commit:r?t.commit:function(n,r,o){var i=k(n,r,o),a=i.payload,c=i.options,s=i.type;c&&c.root||(s=e+s),t.commit(s,a,c)}};return Object.defineProperties(o,{getters:{get:r?function(){return t.getters}:function(){return O(t,e)}},state:{get:function(){return A(t.state,n)}}}),o}function O(t,e){var n={},r=e.length;return Object.keys(t.getters).forEach(function(o){if(o.slice(0,r)===e){var i=o.slice(r);Object.defineProperty(n,i,{get:function(){return t.getters[o]},enumerable:!0})}}),n}function S(t,e,n,r){var o=t._mutations[e]||(t._mutations[e]=[]);o.push(function(e){n.call(t,r.state,e)})}function C(t,e,n,r){var o=t._actions[e]||(t._actions[e]=[]);o.push(function(e,o){var i=n.call(t,{dispatch:r.dispatch,commit:r.commit,getters:r.getters,state:r.state,rootGetters:t.getters,rootState:t.state},e,o);return u(i)||(i=Promise.resolve(i)),t._devtoolHook?i.catch(function(e){throw t._devtoolHook.emit("vuex:error",e),e}):i})}function j(t,e,n,r){t._wrappedGetters[e]||(t._wrappedGetters[e]=function(t){return n(r.state,r.getters,t.state,t.getters)})}function $(t){t._vm.$watch(function(){return this._data.$$state},function(){0},{deep:!0,sync:!0})}function A(t,e){return e.length?e.reduce(function(t,e){return t[e]},t):t}function k(t,e,n){return s(t)&&t.type&&(n=e,e=t,t=t.type),{type:t,payload:e,options:n}}function E(t){h&&t===h||(h=t,r(h))}m.state.get=function(){return this._vm._data.$$state},m.state.set=function(t){0},y.prototype.commit=function(t,e,n){var r=this,o=k(t,e,n),i=o.type,a=o.payload,c=(o.options,{type:i,payload:a}),s=this._mutations[i];s&&(this._withCommit(function(){s.forEach(function(t){t(a)})}),this._subscribers.forEach(function(t){return t(c,r.state)}))},y.prototype.dispatch=function(t,e){var n=this,r=k(t,e),o=r.type,i=r.payload,a={type:o,payload:i},c=this._actions[o];if(c){try{this._actionSubscribers.filter(function(t){return t.before}).forEach(function(t){return t.before(a,n.state)})}catch(u){0}var s=c.length>1?Promise.all(c.map(function(t){return t(i)})):c[0](i);return s.then(function(t){try{n._actionSubscribers.filter(function(t){return t.after}).forEach(function(t){return t.after(a,n.state)})}catch(u){0}return t})}},y.prototype.subscribe=function(t){return b(t,this._subscribers)},y.prototype.subscribeAction=function(t){var e="function"===typeof t?{before:t}:t;return b(e,this._actionSubscribers)},y.prototype.watch=function(t,e,n){var r=this;return this._watcherVM.$watch(function(){return t(r.state,r.getters)},e,n)},y.prototype.replaceState=function(t){var e=this;this._withCommit(function(){e._vm._data.$$state=t})},y.prototype.registerModule=function(t,e,n){void 0===n&&(n={}),"string"===typeof t&&(t=[t]),this._modules.register(t,e),w(this,this.state,t,this._modules.get(t),n.preserveState),g(this,this.state)},y.prototype.unregisterModule=function(t){var e=this;"string"===typeof t&&(t=[t]),this._modules.unregister(t),this._withCommit(function(){var n=A(e.state,t.slice(0,-1));h.delete(n,t[t.length-1])}),_(this)},y.prototype.hotUpdate=function(t){this._modules.update(t),_(this,!0)},y.prototype._withCommit=function(t){var e=this._committing;this._committing=!0,t(),this._committing=e},Object.defineProperties(y.prototype,m);var P=D(function(t,e){var n={};return L(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){var e=this.$store.state,n=this.$store.getters;if(t){var r=F(this.$store,"mapState",t);if(!r)return;e=r.context.state,n=r.context.getters}return"function"===typeof o?o.call(this,e,n):e[o]},n[r].vuex=!0}),n}),T=D(function(t,e){var n={};return L(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){var e=[],n=arguments.length;while(n--)e[n]=arguments[n];var r=this.$store.commit;if(t){var i=F(this.$store,"mapMutations",t);if(!i)return;r=i.context.commit}return"function"===typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}}),n}),M=D(function(t,e){var n={};return L(e).forEach(function(e){var r=e.key,o=e.val;o=t+o,n[r]=function(){if(!t||F(this.$store,"mapGetters",t))return this.$store.getters[o]},n[r].vuex=!0}),n}),I=D(function(t,e){var n={};return L(e).forEach(function(e){var r=e.key,o=e.val;n[r]=function(){var e=[],n=arguments.length;while(n--)e[n]=arguments[n];var r=this.$store.dispatch;if(t){var i=F(this.$store,"mapActions",t);if(!i)return;r=i.context.dispatch}return"function"===typeof o?o.apply(this,[r].concat(e)):r.apply(this.$store,[o].concat(e))}}),n}),N=function(t){return{mapState:P.bind(null,t),mapGetters:M.bind(null,t),mapMutations:T.bind(null,t),mapActions:I.bind(null,t)}};function L(t){return Array.isArray(t)?t.map(function(t){return{key:t,val:t}}):Object.keys(t).map(function(e){return{key:e,val:t[e]}})}function D(t){return function(e,n){return"string"!==typeof e?(n=e,e=""):"/"!==e.charAt(e.length-1)&&(e+="/"),t(e,n)}}function F(t,e,n){var r=t._modulesNamespaceMap[n];return r}var R={Store:y,install:E,version:"3.1.1",mapState:P,mapMutations:T,mapGetters:M,mapActions:I,createNamespacedHelpers:N};e["b"]=R}).call(this,n("c8ba"))},"308d":function(t,e,n){"use strict";var r=n("5d58"),o=n.n(r),i=n("67bb"),a=n.n(i);function c(t){return c="function"===typeof a.a&&"symbol"===typeof o.a?function(t){return typeof t}:function(t){return t&&"function"===typeof a.a&&t.constructor===a.a&&t!==a.a.prototype?"symbol":typeof t},c(t)}function s(t){return s="function"===typeof a.a&&"symbol"===c(o.a)?function(t){return c(t)}:function(t){return t&&"function"===typeof a.a&&t.constructor===a.a&&t!==a.a.prototype?"symbol":c(t)},s(t)}function u(t){if(void 0===t)throw new ReferenceError("this hasn't been initialised - super() hasn't been called");return t}function f(t,e){return!e||"object"!==s(e)&&"function"!==typeof e?u(t):e}n.d(e,"a",function(){return f})},"30f1":function(t,e,n){"use strict";var r=n("b8e3"),o=n("63b6"),i=n("9138"),a=n("35e8"),c=n("481b"),s=n("8f60"),u=n("45f2"),f=n("53e2"),l=n("5168")("iterator"),p=!([].keys&&"next"in[].keys()),d="@@iterator",v="keys",h="values",y=function(){return this};t.exports=function(t,e,n,m,b,_,g){s(n,e,m);var w,x,O,S=function(t){if(!p&&t in A)return A[t];switch(t){case v:return function(){return new n(this,t)};case h:return function(){return new n(this,t)}}return function(){return new n(this,t)}},C=e+" Iterator",j=b==h,$=!1,A=t.prototype,k=A[l]||A[d]||b&&A[b],E=k||S(b),P=b?j?S("entries"):E:void 0,T="Array"==e&&A.entries||k;if(T&&(O=f(T.call(new t)),O!==Object.prototype&&O.next&&(u(O,C,!0),r||"function"==typeof O[l]||a(O,l,y))),j&&k&&k.name!==h&&($=!0,E=function(){return k.call(this)}),r&&!g||!p&&!$&&A[l]||a(A,l,E),c[e]=E,c[C]=y,b)if(w={values:j?E:S(h),keys:_?E:S(v),entries:P},g)for(x in w)x in A||i(A,x,w[x]);else o(o.P+o.F*(p||$),e,w);return w}},"31f4":function(t,e){t.exports=function(t,e,n){var r=void 0===n;switch(e.length){case 0:return r?t():t.call(n);case 1:return r?t(e[0]):t.call(n,e[0]);case 2:return r?t(e[0],e[1]):t.call(n,e[0],e[1]);case 3:return r?t(e[0],e[1],e[2]):t.call(n,e[0],e[1],e[2]);case 4:return r?t(e[0],e[1],e[2],e[3]):t.call(n,e[0],e[1],e[2],e[3])}return t.apply(n,e)}},"32a6":function(t,e,n){var r=n("241e"),o=n("c3a1");n("ce7e")("keys",function(){return function(t){return o(r(t))}})},"32e9":function(t,e,n){var r=n("86cc"),o=n("4630");t.exports=n("9e1e")?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},"32fc":function(t,e,n){var r=n("e53d").document;t.exports=r&&r.documentElement},"335c":function(t,e,n){var r=n("6b4c");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},"33a4":function(t,e,n){var r=n("84f2"),o=n("2b4c")("iterator"),i=Array.prototype;t.exports=function(t){return void 0!==t&&(r.Array===t||i[o]===t)}},"355d":function(t,e){e.f={}.propertyIsEnumerable},"35e8":function(t,e,n){var r=n("d9f6"),o=n("aebd");t.exports=n("8e60")?function(t,e,n){return r.f(t,e,o(1,n))}:function(t,e,n){return t[e]=n,t}},"36c3":function(t,e,n){var r=n("335c"),o=n("25eb");t.exports=function(t){return r(o(t))}},"38fd":function(t,e,n){var r=n("69a8"),o=n("4bf8"),i=n("613b")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},"3a38":function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},"41a0":function(t,e,n){"use strict";var r=n("2aeb"),o=n("4630"),i=n("7f20"),a={};n("32e9")(a,n("2b4c")("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},"454f":function(t,e,n){n("46a7");var r=n("584a").Object;t.exports=function(t,e,n){return r.defineProperty(t,e,n)}},4588:function(t,e){var n=Math.ceil,r=Math.floor;t.exports=function(t){return isNaN(t=+t)?0:(t>0?r:n)(t)}},"45f2":function(t,e,n){var r=n("d9f6").f,o=n("07e3"),i=n("5168")("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},4630:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},"46a7":function(t,e,n){var r=n("63b6");r(r.S+r.F*!n("8e60"),"Object",{defineProperty:n("d9f6").f})},"47ee":function(t,e,n){var r=n("c3a1"),o=n("9aa9"),i=n("355d");t.exports=function(t){var e=r(t),n=o.f;if(n){var a,c=n(t),s=i.f,u=0;while(c.length>u)s.call(t,a=c[u++])&&e.push(a)}return e}},"481b":function(t,e){t.exports={}},"4a59":function(t,e,n){var r=n("9b43"),o=n("1fa8"),i=n("33a4"),a=n("cb7c"),c=n("9def"),s=n("27ee"),u={},f={};e=t.exports=function(t,e,n,l,p){var d,v,h,y,m=p?function(){return t}:s(t),b=r(n,l,e?2:1),_=0;if("function"!=typeof m)throw TypeError(t+" is not iterable!");if(i(m)){for(d=c(t.length);d>_;_++)if(y=e?b(a(v=t[_])[0],v[1]):b(t[_]),y===u||y===f)return y}else for(h=m.call(t);!(v=h.next()).done;)if(y=o(h,b,v.value,e),y===u||y===f)return y};e.BREAK=u,e.RETURN=f},"4aa6":function(t,e,n){t.exports=n("dc62")},"4bf8":function(t,e,n){var r=n("be13");t.exports=function(t){return Object(r(t))}},"4d16":function(t,e,n){t.exports=n("25b0")},"4e2b":function(t,e,n){"use strict";var r=n("4aa6"),o=n.n(r),i=n("4d16"),a=n.n(i);function c(t,e){return c=a.a||function(t,e){return t.__proto__=e,t},c(t,e)}function s(t,e){if("function"!==typeof e&&null!==e)throw new TypeError("Super expression must either be null or a function");t.prototype=o()(e&&e.prototype,{constructor:{value:t,writable:!0,configurable:!0}}),e&&c(t,e)}n.d(e,"a",function(){return s})},"50ed":function(t,e){t.exports=function(t,e){return{value:e,done:!!t}}},5168:function(t,e,n){var r=n("dbdb")("wks"),o=n("62a0"),i=n("e53d").Symbol,a="function"==typeof i,c=t.exports=function(t){return r[t]||(r[t]=a&&i[t]||(a?i:o)("Symbol."+t))};c.store=r},"52a7":function(t,e){e.f={}.propertyIsEnumerable},"53e2":function(t,e,n){var r=n("07e3"),o=n("241e"),i=n("5559")("IE_PROTO"),a=Object.prototype;t.exports=Object.getPrototypeOf||function(t){return t=o(t),r(t,i)?t[i]:"function"==typeof t.constructor&&t instanceof t.constructor?t.constructor.prototype:t instanceof Object?a:null}},"551c":function(t,e,n){"use strict";var r,o,i,a,c=n("2d00"),s=n("7726"),u=n("9b43"),f=n("23c6"),l=n("5ca1"),p=n("d3f4"),d=n("d8e8"),v=n("f605"),h=n("4a59"),y=n("ebd6"),m=n("1991").set,b=n("8079")(),_=n("a5b8"),g=n("9c80"),w=n("a25f"),x=n("bcaa"),O="Promise",S=s.TypeError,C=s.process,j=C&&C.versions,$=j&&j.v8||"",A=s[O],k="process"==f(C),E=function(){},P=o=_.f,T=!!function(){try{var t=A.resolve(1),e=(t.constructor={})[n("2b4c")("species")]=function(t){t(E,E)};return(k||"function"==typeof PromiseRejectionEvent)&&t.then(E)instanceof e&&0!==$.indexOf("6.6")&&-1===w.indexOf("Chrome/66")}catch(r){}}(),M=function(t){var e;return!(!p(t)||"function"!=typeof(e=t.then))&&e},I=function(t,e){if(!t._n){t._n=!0;var n=t._c;b(function(){var r=t._v,o=1==t._s,i=0,a=function(e){var n,i,a,c=o?e.ok:e.fail,s=e.resolve,u=e.reject,f=e.domain;try{c?(o||(2==t._h&&D(t),t._h=1),!0===c?n=r:(f&&f.enter(),n=c(r),f&&(f.exit(),a=!0)),n===e.promise?u(S("Promise-chain cycle")):(i=M(n))?i.call(n,s,u):s(n)):u(r)}catch(l){f&&!a&&f.exit(),u(l)}};while(n.length>i)a(n[i++]);t._c=[],t._n=!1,e&&!t._h&&N(t)})}},N=function(t){m.call(s,function(){var e,n,r,o=t._v,i=L(t);if(i&&(e=g(function(){k?C.emit("unhandledRejection",o,t):(n=s.onunhandledrejection)?n({promise:t,reason:o}):(r=s.console)&&r.error&&r.error("Unhandled promise rejection",o)}),t._h=k||L(t)?2:1),t._a=void 0,i&&e.e)throw e.v})},L=function(t){return 1!==t._h&&0===(t._a||t._c).length},D=function(t){m.call(s,function(){var e;k?C.emit("rejectionHandled",t):(e=s.onrejectionhandled)&&e({promise:t,reason:t._v})})},F=function(t){var e=this;e._d||(e._d=!0,e=e._w||e,e._v=t,e._s=2,e._a||(e._a=e._c.slice()),I(e,!0))},R=function(t){var e,n=this;if(!n._d){n._d=!0,n=n._w||n;try{if(n===t)throw S("Promise can't be resolved itself");(e=M(t))?b(function(){var r={_w:n,_d:!1};try{e.call(t,u(R,r,1),u(F,r,1))}catch(o){F.call(r,o)}}):(n._v=t,n._s=1,I(n,!1))}catch(r){F.call({_w:n,_d:!1},r)}}};T||(A=function(t){v(this,A,O,"_h"),d(t),r.call(this);try{t(u(R,this,1),u(F,this,1))}catch(e){F.call(this,e)}},r=function(t){this._c=[],this._a=void 0,this._s=0,this._d=!1,this._v=void 0,this._h=0,this._n=!1},r.prototype=n("dcbc")(A.prototype,{then:function(t,e){var n=P(y(this,A));return n.ok="function"!=typeof t||t,n.fail="function"==typeof e&&e,n.domain=k?C.domain:void 0,this._c.push(n),this._a&&this._a.push(n),this._s&&I(this,!1),n.promise},catch:function(t){return this.then(void 0,t)}}),i=function(){var t=new r;this.promise=t,this.resolve=u(R,t,1),this.reject=u(F,t,1)},_.f=P=function(t){return t===A||t===a?new i(t):o(t)}),l(l.G+l.W+l.F*!T,{Promise:A}),n("7f20")(A,O),n("7a56")(O),a=n("8378")[O],l(l.S+l.F*!T,O,{reject:function(t){var e=P(this),n=e.reject;return n(t),e.promise}}),l(l.S+l.F*(c||!T),O,{resolve:function(t){return x(c&&this===a?A:this,t)}}),l(l.S+l.F*!(T&&n("5cc5")(function(t){A.all(t)["catch"](E)})),O,{all:function(t){var e=this,n=P(e),r=n.resolve,o=n.reject,i=g(function(){var n=[],i=0,a=1;h(t,!1,function(t){var c=i++,s=!1;n.push(void 0),a++,e.resolve(t).then(function(t){s||(s=!0,n[c]=t,--a||r(n))},o)}),--a||r(n)});return i.e&&o(i.v),n.promise},race:function(t){var e=this,n=P(e),r=n.reject,o=g(function(){h(t,!1,function(t){e.resolve(t).then(n.resolve,r)})});return o.e&&r(o.v),n.promise}})},5537:function(t,e,n){var r=n("8378"),o=n("7726"),i="__core-js_shared__",a=o[i]||(o[i]={});(t.exports=function(t,e){return a[t]||(a[t]=void 0!==e?e:{})})("versions",[]).push({version:r.version,mode:n("2d00")?"pure":"global",copyright:"© 2019 Denis Pushkarev (zloirock.ru)"})},5559:function(t,e,n){var r=n("dbdb")("keys"),o=n("62a0");t.exports=function(t){return r[t]||(r[t]=o(t))}},"584a":function(t,e){var n=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},"5b4e":function(t,e,n){var r=n("36c3"),o=n("b447"),i=n("0fc9");t.exports=function(t){return function(e,n,a){var c,s=r(e),u=o(s.length),f=i(a,u);if(t&&n!=n){while(u>f)if(c=s[f++],c!=c)return!0}else for(;u>f;f++)if((t||f in s)&&s[f]===n)return t||f||0;return!t&&-1}}},"5ca1":function(t,e,n){var r=n("7726"),o=n("8378"),i=n("32e9"),a=n("2aba"),c=n("9b43"),s="prototype",u=function(t,e,n){var f,l,p,d,v=t&u.F,h=t&u.G,y=t&u.S,m=t&u.P,b=t&u.B,_=h?r:y?r[e]||(r[e]={}):(r[e]||{})[s],g=h?o:o[e]||(o[e]={}),w=g[s]||(g[s]={});for(f in h&&(n=e),n)l=!v&&_&&void 0!==_[f],p=(l?_:n)[f],d=b&&l?c(p,r):m&&"function"==typeof p?c(Function.call,p):p,_&&a(_,f,p,t&u.U),g[f]!=p&&i(g,f,d),m&&w[f]!=p&&(w[f]=p)};r.core=o,u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},"5cc5":function(t,e,n){var r=n("2b4c")("iterator"),o=!1;try{var i=[7][r]();i["return"]=function(){o=!0},Array.from(i,function(){throw 2})}catch(a){}t.exports=function(t,e){if(!e&&!o)return!1;var n=!1;try{var i=[7],c=i[r]();c.next=function(){return{done:n=!0}},i[r]=function(){return c},t(i)}catch(a){}return n}},"5d58":function(t,e,n){t.exports=n("d8d6")},"613b":function(t,e,n){var r=n("5537")("keys"),o=n("ca5a");t.exports=function(t){return r[t]||(r[t]=o(t))}},"626a":function(t,e,n){var r=n("2d95");t.exports=Object("z").propertyIsEnumerable(0)?Object:function(t){return"String"==r(t)?t.split(""):Object(t)}},"62a0":function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},"63b6":function(t,e,n){var r=n("e53d"),o=n("584a"),i=n("d864"),a=n("35e8"),c=n("07e3"),s="prototype",u=function(t,e,n){var f,l,p,d=t&u.F,v=t&u.G,h=t&u.S,y=t&u.P,m=t&u.B,b=t&u.W,_=v?o:o[e]||(o[e]={}),g=_[s],w=v?r:h?r[e]:(r[e]||{})[s];for(f in v&&(n=e),n)l=!d&&w&&void 0!==w[f],l&&c(_,f)||(p=l?w[f]:n[f],_[f]=v&&"function"!=typeof w[f]?n[f]:m&&l?i(p,r):b&&w[f]==p?function(t){var e=function(e,n,r){if(this instanceof t){switch(arguments.length){case 0:return new t;case 1:return new t(e);case 2:return new t(e,n)}return new t(e,n,r)}return t.apply(this,arguments)};return e[s]=t[s],e}(p):y&&"function"==typeof p?i(Function.call,p):p,y&&((_.virtual||(_.virtual={}))[f]=p,t&u.R&&g&&!g[f]&&a(g,f,p)))};u.F=1,u.G=2,u.S=4,u.P=8,u.B=16,u.W=32,u.U=64,u.R=128,t.exports=u},6718:function(t,e,n){var r=n("e53d"),o=n("584a"),i=n("b8e3"),a=n("ccb9"),c=n("d9f6").f;t.exports=function(t){var e=o.Symbol||(o.Symbol=i?{}:r.Symbol||{});"_"==t.charAt(0)||t in e||c(e,t,{value:a.f(t)})}},"675f":function(t,e,n){"use strict";n.d(e,"a",function(){return c}),n.d(e,"b",function(){return i}),n.d(e,"c",function(){return C}),n.d(e,"d",function(){return a}),n.d(e,"e",function(){return x}),n.d(e,"f",function(){return k});var r=n("2f62"),o=function(){return o=Object.assign||function(t){for(var e,n=1,r=arguments.length;n=u?t?"":void 0:(i=c.charCodeAt(s),i<55296||i>56319||s+1===u||(a=c.charCodeAt(s+1))<56320||a>57343?t?c.charAt(s):i:t?c.slice(s,s+2):a-56320+(i-55296<<10)+65536)}}},7333:function(t,e,n){"use strict";var r=n("9e1e"),o=n("0d58"),i=n("2621"),a=n("52a7"),c=n("4bf8"),s=n("626a"),u=Object.assign;t.exports=!u||n("79e5")(function(){var t={},e={},n=Symbol(),r="abcdefghijklmnopqrst";return t[n]=7,r.split("").forEach(function(t){e[t]=t}),7!=u({},t)[n]||Object.keys(u({},e)).join("")!=r})?function(t,e){var n=c(t),u=arguments.length,f=1,l=i.f,p=a.f;while(u>f){var d,v=s(arguments[f++]),h=l?o(v).concat(l(v)):o(v),y=h.length,m=0;while(y>m)d=h[m++],r&&!p.call(v,d)||(n[d]=v[d])}return n}:u},"765d":function(t,e,n){n("6718")("observable")},7726:function(t,e){var n=t.exports="undefined"!=typeof window&&window.Math==Math?window:"undefined"!=typeof self&&self.Math==Math?self:Function("return this")();"number"==typeof __g&&(__g=n)},"77f1":function(t,e,n){var r=n("4588"),o=Math.max,i=Math.min;t.exports=function(t,e){return t=r(t),t<0?o(t+e,0):i(t,e)}},"794b":function(t,e,n){t.exports=!n("8e60")&&!n("294c")(function(){return 7!=Object.defineProperty(n("1ec9")("div"),"a",{get:function(){return 7}}).a})},"79aa":function(t,e){t.exports=function(t){if("function"!=typeof t)throw TypeError(t+" is not a function!");return t}},"79e5":function(t,e){t.exports=function(t){try{return!!t()}catch(e){return!0}}},"7a56":function(t,e,n){"use strict";var r=n("7726"),o=n("86cc"),i=n("9e1e"),a=n("2b4c")("species");t.exports=function(t){var e=r[t];i&&e&&!e[a]&&o.f(e,a,{configurable:!0,get:function(){return this}})}},"7e90":function(t,e,n){var r=n("d9f6"),o=n("e4ae"),i=n("c3a1");t.exports=n("8e60")?Object.defineProperties:function(t,e){o(t);var n,a=i(e),c=a.length,s=0;while(c>s)r.f(t,n=a[s++],e[n]);return t}},"7f20":function(t,e,n){var r=n("86cc").f,o=n("69a8"),i=n("2b4c")("toStringTag");t.exports=function(t,e,n){t&&!o(t=n?t:t.prototype,i)&&r(t,i,{configurable:!0,value:e})}},8079:function(t,e,n){var r=n("7726"),o=n("1991").set,i=r.MutationObserver||r.WebKitMutationObserver,a=r.process,c=r.Promise,s="process"==n("2d95")(a);t.exports=function(){var t,e,n,u=function(){var r,o;s&&(r=a.domain)&&r.exit();while(t){o=t.fn,t=t.next;try{o()}catch(i){throw t?n():e=void 0,i}}e=void 0,r&&r.enter()};if(s)n=function(){a.nextTick(u)};else if(!i||r.navigator&&r.navigator.standalone)if(c&&c.resolve){var f=c.resolve(void 0);n=function(){f.then(u)}}else n=function(){o.call(r,u)};else{var l=!0,p=document.createTextNode("");new i(u).observe(p,{characterData:!0}),n=function(){p.data=l=!l}}return function(r){var o={fn:r,next:void 0};e&&(e.next=o),t||(t=o,n()),e=o}}},8378:function(t,e){var n=t.exports={version:"2.6.9"};"number"==typeof __e&&(__e=n)},8436:function(t,e){t.exports=function(){}},"84f2":function(t,e){t.exports={}},"85f2":function(t,e,n){t.exports=n("454f")},"86cc":function(t,e,n){var r=n("cb7c"),o=n("c69a"),i=n("6a99"),a=Object.defineProperty;e.f=n("9e1e")?Object.defineProperty:function(t,e,n){if(r(t),e=i(e,!0),r(n),o)try{return a(t,e,n)}catch(c){}if("get"in n||"set"in n)throw TypeError("Accessors not supported!");return"value"in n&&(t[e]=n.value),t}},"8aae":function(t,e,n){n("32a6"),t.exports=n("584a").Object.keys},"8e60":function(t,e,n){t.exports=!n("294c")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},"8f60":function(t,e,n){"use strict";var r=n("a159"),o=n("aebd"),i=n("45f2"),a={};n("35e8")(a,n("5168")("iterator"),function(){return this}),t.exports=function(t,e,n){t.prototype=r(a,{next:o(1,n)}),i(t,e+" Iterator")}},9003:function(t,e,n){var r=n("6b4c");t.exports=Array.isArray||function(t){return"Array"==r(t)}},9138:function(t,e,n){t.exports=n("35e8")},9427:function(t,e,n){var r=n("63b6");r(r.S,"Object",{create:n("a159")})},"9aa9":function(t,e){e.f=Object.getOwnPropertySymbols},"9b43":function(t,e,n){var r=n("d8e8");t.exports=function(t,e,n){if(r(t),void 0===e)return t;switch(n){case 1:return function(n){return t.call(e,n)};case 2:return function(n,r){return t.call(e,n,r)};case 3:return function(n,r,o){return t.call(e,n,r,o)}}return function(){return t.apply(e,arguments)}}},"9c6c":function(t,e,n){var r=n("2b4c")("unscopables"),o=Array.prototype;void 0==o[r]&&n("32e9")(o,r,{}),t.exports=function(t){o[r][t]=!0}},"9c80":function(t,e){t.exports=function(t){try{return{e:!1,v:t()}}catch(e){return{e:!0,v:e}}}},"9def":function(t,e,n){var r=n("4588"),o=Math.min;t.exports=function(t){return t>0?o(r(t),9007199254740991):0}},"9e1e":function(t,e,n){t.exports=!n("79e5")(function(){return 7!=Object.defineProperty({},"a",{get:function(){return 7}}).a})},a159:function(t,e,n){var r=n("e4ae"),o=n("7e90"),i=n("1691"),a=n("5559")("IE_PROTO"),c=function(){},s="prototype",u=function(){var t,e=n("1ec9")("iframe"),r=i.length,o="<",a=">";e.style.display="none",n("32fc").appendChild(e),e.src="javascript:",t=e.contentWindow.document,t.open(),t.write(o+"script"+a+"document.F=Object"+o+"/script"+a),t.close(),u=t.F;while(r--)delete u[s][i[r]];return u()};t.exports=Object.create||function(t,e){var n;return null!==t?(c[s]=r(t),n=new c,c[s]=null,n[a]=t):n=u(),void 0===e?n:o(n,e)}},a25f:function(t,e,n){var r=n("7726"),o=r.navigator;t.exports=o&&o.userAgent||""},a4bb:function(t,e,n){t.exports=n("8aae")},a5b8:function(t,e,n){"use strict";var r=n("d8e8");function o(t){var e,n;this.promise=new t(function(t,r){if(void 0!==e||void 0!==n)throw TypeError("Bad Promise constructor");e=t,n=r}),this.resolve=r(e),this.reject=r(n)}t.exports.f=function(t){return new o(t)}},aebd:function(t,e){t.exports=function(t,e){return{enumerable:!(1&t),configurable:!(2&t),writable:!(4&t),value:e}}},b0b4:function(t,e,n){"use strict";n.d(e,"a",function(){return a});var r=n("85f2"),o=n.n(r);function i(t,e){for(var n=0;n0?o(r(t),9007199254740991):0}},b8e3:function(t,e){t.exports=!0},bcaa:function(t,e,n){var r=n("cb7c"),o=n("d3f4"),i=n("a5b8");t.exports=function(t,e){if(r(t),o(e)&&e.constructor===t)return e;var n=i.f(t),a=n.resolve;return a(e),n.promise}},be13:function(t,e){t.exports=function(t){if(void 0==t)throw TypeError("Can't call method on "+t);return t}},bf0b:function(t,e,n){var r=n("355d"),o=n("aebd"),i=n("36c3"),a=n("1bc3"),c=n("07e3"),s=n("794b"),u=Object.getOwnPropertyDescriptor;e.f=n("8e60")?u:function(t,e){if(t=i(t),e=a(e,!0),s)try{return u(t,e)}catch(n){}if(c(t,e))return o(!r.f.call(t,e),t[e])}},bf90:function(t,e,n){var r=n("36c3"),o=n("bf0b").f;n("ce7e")("getOwnPropertyDescriptor",function(){return function(t,e){return o(r(t),e)}})},c207:function(t,e){},c366:function(t,e,n){var r=n("6821"),o=n("9def"),i=n("77f1");t.exports=function(t){return function(e,n,a){var c,s=r(e),u=o(s.length),f=i(a,u);if(t&&n!=n){while(u>f)if(c=s[f++],c!=c)return!0}else for(;u>f;f++)if((t||f in s)&&s[f]===n)return t||f||0;return!t&&-1}}},c367:function(t,e,n){"use strict";var r=n("8436"),o=n("50ed"),i=n("481b"),a=n("36c3");t.exports=n("30f1")(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},c3a1:function(t,e,n){var r=n("e6f3"),o=n("1691");t.exports=Object.keys||function(t){return r(t,o)}},c69a:function(t,e,n){t.exports=!n("9e1e")&&!n("79e5")(function(){return 7!=Object.defineProperty(n("230e")("div"),"a",{get:function(){return 7}}).a})},c8ba:function(t,e){var n;n=function(){return this}();try{n=n||new Function("return this")()}catch(r){"object"===typeof window&&(n=window)}t.exports=n},ca5a:function(t,e){var n=0,r=Math.random();t.exports=function(t){return"Symbol(".concat(void 0===t?"":t,")_",(++n+r).toString(36))}},cadf:function(t,e,n){"use strict";var r=n("9c6c"),o=n("d53b"),i=n("84f2"),a=n("6821");t.exports=n("01f9")(Array,"Array",function(t,e){this._t=a(t),this._i=0,this._k=e},function(){var t=this._t,e=this._k,n=this._i++;return!t||n>=t.length?(this._t=void 0,o(1)):o(0,"keys"==e?n:"values"==e?t[n]:[n,t[n]])},"values"),i.Arguments=i.Array,r("keys"),r("values"),r("entries")},cb7c:function(t,e,n){var r=n("d3f4");t.exports=function(t){if(!r(t))throw TypeError(t+" is not an object!");return t}},ccb9:function(t,e,n){e.f=n("5168")},ce10:function(t,e,n){var r=n("69a8"),o=n("6821"),i=n("c366")(!1),a=n("613b")("IE_PROTO");t.exports=function(t,e){var n,c=o(t),s=0,u=[];for(n in c)n!=a&&r(c,n)&&u.push(n);while(e.length>s)r(c,n=e[s++])&&(~i(u,n)||u.push(n));return u}},ce7e:function(t,e,n){var r=n("63b6"),o=n("584a"),i=n("294c");t.exports=function(t,e){var n=(o.Object||{})[t]||Object[t],a={};a[t]=e(n),r(r.S+r.F*i(function(){n(1)}),"Object",a)}},cebc:function(t,e,n){"use strict";var r=n("268f"),o=n.n(r),i=n("e265"),a=n.n(i),c=n("a4bb"),s=n.n(c),u=n("85f2"),f=n.n(u);function l(t,e,n){return e in t?f()(t,e,{value:n,enumerable:!0,configurable:!0,writable:!0}):t[e]=n,t}function p(t){for(var e=1;es)r(c,n=e[s++])&&(~i(u,n)||u.push(n));return u}},ead6:function(t,e,n){var r=n("f772"),o=n("e4ae"),i=function(t,e){if(o(t),!r(e)&&null!==e)throw TypeError(e+": can't set as prototype!")};t.exports={set:Object.setPrototypeOf||("__proto__"in{}?function(t,e,r){try{r=n("d864")(Function.call,n("bf0b").f(Object.prototype,"__proto__").set,2),r(t,[]),e=!(t instanceof Array)}catch(o){e=!0}return function(t,n){return i(t,n),e?t.__proto__=n:r(t,n),t}}({},!1):void 0),check:i}},ebd6:function(t,e,n){var r=n("cb7c"),o=n("d8e8"),i=n("2b4c")("species");t.exports=function(t,e){var n,a=r(t).constructor;return void 0===a||void 0==(n=r(a)[i])?e:o(n)}},ebfd:function(t,e,n){var r=n("62a0")("meta"),o=n("f772"),i=n("07e3"),a=n("d9f6").f,c=0,s=Object.isExtensible||function(){return!0},u=!n("294c")(function(){return s(Object.preventExtensions({}))}),f=function(t){a(t,r,{value:{i:"O"+ ++c,w:{}}})},l=function(t,e){if(!o(t))return"symbol"==typeof t?t:("string"==typeof t?"S":"P")+t;if(!i(t,r)){if(!s(t))return"F";if(!e)return"E";f(t)}return t[r].i},p=function(t,e){if(!i(t,r)){if(!s(t))return!0;if(!e)return!1;f(t)}return t[r].w},d=function(t){return u&&v.NEED&&s(t)&&!i(t,r)&&f(t),t},v=t.exports={KEY:r,NEED:!1,fastKey:l,getWeak:p,onFreeze:d}},ed33:function(t,e,n){n("014b"),t.exports=n("584a").Object.getOwnPropertySymbols},f605:function(t,e){t.exports=function(t,e,n,r){if(!(t instanceof e)||void 0!==r&&r in t)throw TypeError(n+": incorrect invocation!");return t}},f751:function(t,e,n){var r=n("5ca1");r(r.S+r.F,"Object",{assign:n("7333")})},f772:function(t,e){t.exports=function(t){return"object"===typeof t?null!==t:"function"===typeof t}},f921:function(t,e,n){n("014b"),n("c207"),n("69d3"),n("765d"),t.exports=n("584a").Symbol},fa5b:function(t,e,n){t.exports=n("5537")("native-function-to-string",Function.toString)},fa99:function(t,e,n){n("0293"),t.exports=n("584a").Object.getPrototypeOf},fab2:function(t,e,n){var r=n("7726").document;t.exports=r&&r.documentElement},fde4:function(t,e,n){n("bf90");var r=n("584a").Object;t.exports=function(t,e){return r.getOwnPropertyDescriptor(t,e)}}}]); 37 | //# sourceMappingURL=chunk-vendors.b4e23434.js.map -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "clean-todo", 3 | "version": "0.1.0", 4 | "private": true, 5 | "scripts": { 6 | "serve": "vue-cli-service serve", 7 | "build": "vue-cli-service build", 8 | "lint": "vue-cli-service lint", 9 | "lint:fix": "vue-cli-service lint --fix", 10 | "test:unit": "vue-cli-service test:unit" 11 | }, 12 | "dependencies": { 13 | "core-js": "^2.6.5", 14 | "vue": "^2.6.10", 15 | "vuex": "^3.0.1", 16 | "vuex-smart-module": "^0.3.2" 17 | }, 18 | "devDependencies": { 19 | "@types/jest": "^23.1.4", 20 | "@vue/cli-plugin-babel": "^3.8.0", 21 | "@vue/cli-plugin-eslint": "^3.8.0", 22 | "@vue/cli-plugin-typescript": "^3.8.0", 23 | "@vue/cli-plugin-unit-jest": "^3.8.0", 24 | "@vue/cli-service": "^3.8.0", 25 | "@vue/eslint-config-prettier": "^4.0.1", 26 | "@vue/eslint-config-typescript": "^4.0.0", 27 | "@vue/test-utils": "1.0.0-beta.29", 28 | "babel-core": "7.0.0-bridge.0", 29 | "babel-eslint": "^10.0.1", 30 | "eslint": "^5.16.0", 31 | "eslint-plugin-vue": "^5.0.0", 32 | "ts-jest": "^23.0.0", 33 | "typescript": "3.6", 34 | "vue-template-compiler": "^2.6.10" 35 | }, 36 | "eslintConfig": { 37 | "root": true, 38 | "env": { 39 | "node": true 40 | }, 41 | "extends": [ 42 | "plugin:vue/essential", 43 | "@vue/prettier", 44 | "@vue/typescript" 45 | ], 46 | "rules": { 47 | "@typescript-eslint/no-unused-vars": "error", 48 | "semi": [ 49 | "error", 50 | "never" 51 | ], 52 | "prettier/prettier": [ 53 | "error", 54 | { 55 | "semi": false, 56 | "singleQuote": true 57 | } 58 | ] 59 | }, 60 | "parserOptions": { 61 | "parser": "@typescript-eslint/parser" 62 | } 63 | }, 64 | "postcss": { 65 | "plugins": { 66 | "autoprefixer": {} 67 | } 68 | }, 69 | "browserslist": [ 70 | "> 1%", 71 | "last 2 versions" 72 | ], 73 | "jest": { 74 | "moduleFileExtensions": [ 75 | "js", 76 | "jsx", 77 | "json", 78 | "vue", 79 | "ts", 80 | "tsx" 81 | ], 82 | "transform": { 83 | "^.+\\.vue$": "vue-jest", 84 | ".+\\.(css|styl|less|sass|scss|svg|png|jpg|ttf|woff|woff2)$": "jest-transform-stub", 85 | "^.+\\.tsx?$": "ts-jest" 86 | }, 87 | "transformIgnorePatterns": [ 88 | "/node_modules/" 89 | ], 90 | "moduleNameMapper": { 91 | "^@/(.*)$": "/src/$1" 92 | }, 93 | "snapshotSerializers": [ 94 | "jest-serializer-vue" 95 | ], 96 | "testMatch": [ 97 | "**/tests/unit/**/*.spec.(js|jsx|ts|tsx)|**/__tests__/*.(js|jsx|ts|tsx)" 98 | ], 99 | "testURL": "http://localhost/", 100 | "watchPlugins": [ 101 | "jest-watch-typeahead/filename", 102 | "jest-watch-typeahead/testname" 103 | ], 104 | "globals": { 105 | "ts-jest": { 106 | "babelConfig": true 107 | } 108 | } 109 | } 110 | } 111 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/92thunder/clean-architecture-todo/4353659364f6514c6c91ce3aea861aeff02de60e/public/favicon.ico -------------------------------------------------------------------------------- /public/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | clean-todo 9 | 10 | 11 | 14 |
15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /src/App.vue: -------------------------------------------------------------------------------- 1 | 6 | 7 | 18 | 19 | 29 | -------------------------------------------------------------------------------- /src/assets/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/92thunder/clean-architecture-todo/4353659364f6514c6c91ce3aea861aeff02de60e/src/assets/logo.png -------------------------------------------------------------------------------- /src/components/Flash.vue: -------------------------------------------------------------------------------- 1 | 8 | 9 | 19 | 20 | 37 | -------------------------------------------------------------------------------- /src/components/Todo.vue: -------------------------------------------------------------------------------- 1 | 20 | 21 | 60 | 61 | 70 | -------------------------------------------------------------------------------- /src/domain/task/index.ts: -------------------------------------------------------------------------------- 1 | export * from './types' 2 | export * from './reducers' 3 | export * from './utils' 4 | -------------------------------------------------------------------------------- /src/domain/task/reducers.ts: -------------------------------------------------------------------------------- 1 | import { Task, TaskState } from './types' 2 | 3 | export function changeState(task: Task, taskState: TaskState): Task { 4 | return { 5 | ...task, 6 | state: taskState 7 | } 8 | } 9 | -------------------------------------------------------------------------------- /src/domain/task/types.ts: -------------------------------------------------------------------------------- 1 | export type TaskState = 'TODO' | 'DONE' 2 | 3 | export type Task = Readonly<{ 4 | title: string 5 | description: string 6 | state: TaskState 7 | }> 8 | -------------------------------------------------------------------------------- /src/domain/task/utils.ts: -------------------------------------------------------------------------------- 1 | import { Task } from './types' 2 | 3 | export function createTask(title: string): Task { 4 | if (!title) { 5 | throw new Error('タイトルの形式が不正です') 6 | } 7 | return { 8 | title, 9 | description: '', 10 | state: 'TODO' 11 | } 12 | } 13 | 14 | export function visibleTasks(tasks: Task[]) { 15 | return tasks.filter(task => task.state === 'TODO') 16 | } 17 | -------------------------------------------------------------------------------- /src/interfaces/repository/index.ts: -------------------------------------------------------------------------------- 1 | import { Task } from '@/domain/task' 2 | 3 | export interface ITaskRepository { 4 | load: () => Task[] 5 | save: (tasks: Task[]) => void 6 | add: (task: Task) => Task[] 7 | } 8 | -------------------------------------------------------------------------------- /src/main.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import App from './App.vue' 3 | import { store } from './store' 4 | 5 | Vue.config.productionTip = false 6 | 7 | new Vue({ 8 | store, 9 | render: h => h(App) 10 | }).$mount('#app') 11 | -------------------------------------------------------------------------------- /src/repositories/index.ts: -------------------------------------------------------------------------------- 1 | import { ITaskRepository } from '@/interfaces/repository/index' 2 | import { Task } from '@/domain/task' 3 | 4 | const KEY = 'tasks' 5 | 6 | interface IStorage { 7 | getItem: (key: string) => string | null 8 | setItem: (key: string, value: string) => void 9 | } 10 | 11 | export class TaskRepository implements ITaskRepository { 12 | storage: IStorage 13 | 14 | constructor() { 15 | this.storage = localStorage 16 | } 17 | 18 | load() { 19 | const tasksStr = this.storage.getItem(KEY) 20 | return tasksStr ? JSON.parse(tasksStr) : [] 21 | } 22 | 23 | add(task: Task) { 24 | const tasks = this.load() 25 | tasks.push(task) 26 | this.save(tasks) 27 | return tasks 28 | } 29 | 30 | save(tasks: Task[]) { 31 | this.storage.setItem(KEY, JSON.stringify(tasks)) 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /src/services/TaskService.ts: -------------------------------------------------------------------------------- 1 | import { createTask, Task, changeState } from '@/domain/task' 2 | import { ITaskRepository } from '@/interfaces/repository' 3 | 4 | export class TaskService { 5 | repository: ITaskRepository 6 | 7 | constructor(repository: ITaskRepository) { 8 | this.repository = repository 9 | } 10 | 11 | addTask(title: string): Task[] { 12 | try { 13 | // Domain/utilsでtask作成 14 | const task = createTask(title) 15 | 16 | // Repositoryを使って保存する 17 | const tasks = this.repository.add(task) 18 | 19 | return tasks 20 | } catch (e) { 21 | throw e 22 | } 23 | } 24 | 25 | complete(index: number) { 26 | const tasks = this.repository.load() 27 | const completedTask = changeState(tasks[index], 'DONE') 28 | tasks[index] = completedTask 29 | this.repository.save(tasks) 30 | return completedTask 31 | } 32 | 33 | load() { 34 | const tasks = this.repository.load() 35 | return tasks 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /src/shims-vue.d.ts: -------------------------------------------------------------------------------- 1 | declare module '*.vue' { 2 | import Vue from 'vue' 3 | export default Vue 4 | } 5 | -------------------------------------------------------------------------------- /src/store/index.ts: -------------------------------------------------------------------------------- 1 | import Vue from 'vue' 2 | import Vuex from 'vuex' 3 | import { task } from './modules/task' 4 | import { flash } from './modules/flash' 5 | import { createStore, Module } from 'vuex-smart-module' 6 | 7 | Vue.use(Vuex) 8 | 9 | const root = new Module({ 10 | modules: { 11 | task, 12 | flash 13 | } 14 | }) 15 | 16 | export const store = createStore(root, { 17 | strict: process.env.NODE_ENV !== 'production' 18 | }) 19 | -------------------------------------------------------------------------------- /src/store/modules/flash.ts: -------------------------------------------------------------------------------- 1 | import { 2 | Mutations, 3 | Actions, 4 | Getters, 5 | Module, 6 | createMapper 7 | } from 'vuex-smart-module' 8 | 9 | class state { 10 | messages: string[] = [] 11 | } 12 | 13 | class getters extends Getters { 14 | get messages() { 15 | return this.state.messages 16 | } 17 | } 18 | 19 | // 状態の更新はVuex流に合わせ、API通信などについてはusecase側にロジックを隠蔽する 20 | class mutations extends Mutations { 21 | addMessage(message: string) { 22 | this.state.messages.push(message) 23 | } 24 | 25 | clearMessages() { 26 | this.state.messages.splice(0, this.state.messages.length) 27 | } 28 | } 29 | 30 | // 状態の更新はVuex流に合わせ、API通信などについてはusecase側にロジックを隠蔽する 31 | class actions extends Actions { 32 | showFlash(message: string) { 33 | this.commit('addMessage', message) 34 | window.setTimeout(() => this.commit('clearMessages', undefined), 3000) 35 | } 36 | } 37 | 38 | export const flash = new Module({ 39 | state, 40 | mutations, 41 | actions, 42 | getters 43 | }) 44 | 45 | export const flashMapper = createMapper(flash) 46 | -------------------------------------------------------------------------------- /src/store/modules/task.ts: -------------------------------------------------------------------------------- 1 | import { 2 | Mutations, 3 | Actions, 4 | Getters, 5 | Module, 6 | createMapper, 7 | Context 8 | } from 'vuex-smart-module' 9 | import { Task, visibleTasks } from '@/domain/task' 10 | import { TaskService } from '@/services/TaskService' 11 | import { TaskRepository } from '@/repositories' 12 | import { flash } from './flash' 13 | import { Store } from 'vuex' 14 | 15 | class state { 16 | tasks: Task[] = [] 17 | } 18 | 19 | class getters extends Getters { 20 | get tasks() { 21 | return visibleTasks(this.state.tasks) 22 | } 23 | } 24 | 25 | class mutations extends Mutations { 26 | updateTasks(tasks: Task[]) { 27 | this.state.tasks = tasks 28 | } 29 | 30 | updateTask({ index, task }: { index: number; task: Task }) { 31 | this.state.tasks.splice(index, 1, task) 32 | } 33 | } 34 | 35 | class actions extends Actions { 36 | flash!: Context 37 | taskService: TaskService 38 | 39 | constructor() { 40 | super() 41 | this.taskService = new TaskService(new TaskRepository()) 42 | } 43 | 44 | $init(store: Store) { 45 | this.flash = flash.context(store) 46 | } 47 | 48 | addTask(title: string) { 49 | try { 50 | // 永続化などアプリケーションとしての仕事はApplicationServiceに任せる 51 | const tasks = this.taskService.addTask(title) 52 | 53 | // Serviceの返り値をStoreに反映 54 | this.commit('updateTasks', tasks) 55 | } catch (e) { 56 | // エラーがあればUIに反映する 57 | this.flash.dispatch('showFlash', e.message) 58 | } 59 | } 60 | 61 | complete(index: number) { 62 | const completedTask = this.taskService.complete(index) 63 | this.commit('updateTask', { index, task: completedTask }) 64 | } 65 | 66 | load() { 67 | const tasks = this.taskService.load() 68 | this.commit('updateTasks', tasks) 69 | } 70 | } 71 | 72 | export const task = new Module({ 73 | state, 74 | mutations, 75 | actions, 76 | getters 77 | }) 78 | 79 | export const taskMapper = createMapper(task) 80 | -------------------------------------------------------------------------------- /tests/unit/.eslintrc.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | env: { 3 | jest: true 4 | } 5 | } 6 | -------------------------------------------------------------------------------- /tests/unit/example.spec.ts: -------------------------------------------------------------------------------- 1 | import { shallowMount } from '@vue/test-utils' 2 | import HelloWorld from '@/components/HelloWorld.vue' 3 | 4 | describe('HelloWorld.vue', () => { 5 | it('renders props.msg when passed', () => { 6 | const msg = 'new message' 7 | const wrapper = shallowMount(HelloWorld, { 8 | propsData: { msg } 9 | }) 10 | expect(wrapper.text()).toMatch(msg) 11 | }) 12 | }) 13 | -------------------------------------------------------------------------------- /tsconfig.json: -------------------------------------------------------------------------------- 1 | { 2 | "compilerOptions": { 3 | "target": "esnext", 4 | "module": "esnext", 5 | "strict": true, 6 | "jsx": "preserve", 7 | "importHelpers": true, 8 | "moduleResolution": "node", 9 | "esModuleInterop": true, 10 | "allowSyntheticDefaultImports": true, 11 | "sourceMap": true, 12 | "noUnusedLocals": true, 13 | "noUnusedParameters": true, 14 | "baseUrl": ".", 15 | "types": [ 16 | "webpack-env", 17 | "jest" 18 | ], 19 | "paths": { 20 | "@/*": [ 21 | "src/*" 22 | ] 23 | }, 24 | "lib": [ 25 | "esnext", 26 | "dom", 27 | "dom.iterable", 28 | "scripthost" 29 | ] 30 | }, 31 | "include": [ 32 | "src/**/*.ts", 33 | "src/**/*.tsx", 34 | "src/**/*.vue", 35 | "tests/**/*.ts", 36 | "tests/**/*.tsx" 37 | ], 38 | "exclude": [ 39 | "node_modules" 40 | ] 41 | } 42 | -------------------------------------------------------------------------------- /vue.config.js: -------------------------------------------------------------------------------- 1 | module.exports = { 2 | publicPath: '/clean-architecture-todo/', 3 | outputDir: 'docs' 4 | } 5 | --------------------------------------------------------------------------------