{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/layout/header-aside/layout.vue","webpack:///./src/layout/header-aside/mixins/search.js","webpack:///src/layout/header-aside/layout.vue","webpack:///./src/layout/header-aside/layout.vue?1dd6","webpack:///./src/layout/header-aside/layout.vue?f135","webpack:///./src/layout/header-aside/index.js","webpack:///./src/store/modules/d2admin/modules/transition.js","webpack:///./src/layout/header-aside/layout.vue?03be","webpack:///./src/mock/api/sys/login/index.js","webpack:///./src/mock/api sync \\.js$","webpack:///./src/store/modules/d2admin/modules/log.js","webpack:///./src/store/modules/d2admin/modules/menu.js","webpack:///./src/store/modules/d2admin/modules/fullscreen.js","webpack:///./src/store/modules/d2admin/modules/search.js","webpack:///./src/store/modules/d2admin/index.js","webpack:///./src/store/index.js","webpack:///./src/store/modules/d2admin/modules/releases.js","webpack:///./src/App.vue","webpack:///src/App.vue","webpack:///./src/App.vue?a7d1","webpack:///./src/App.vue?a938","webpack:///./src/mock/patch/cookie/index.js","webpack:///./src/mock/index.js","webpack:///./src/i18n/lang/cn/index.js","webpack:///./src/i18n/lang/ja/index.js","webpack:///./src/i18n/lang/en/index.js","webpack:///./src/i18n/index.js","webpack:///./src/components/d2-container/index.vue","webpack:///./src/components/d2-container/components/d2-container-full.vue","webpack:///src/components/d2-container/components/d2-container-full.vue","webpack:///./src/components/d2-container/components/d2-container-full.vue?3e2e","webpack:///./src/components/d2-container/components/d2-container-full.vue?87cb","webpack:///./src/components/d2-container/components/d2-container-full-bs.vue","webpack:///./src/components/d2-container/components/mixins/bs.js","webpack:///src/components/d2-container/components/d2-container-full-bs.vue","webpack:///./src/components/d2-container/components/d2-container-full-bs.vue?39d4","webpack:///./src/components/d2-container/components/d2-container-full-bs.vue?0594","webpack:///./src/components/d2-container/components/d2-container-ghost.vue","webpack:///./src/components/d2-container/components/d2-container-ghost.vue?6ad6","webpack:///./src/components/d2-container/components/d2-container-ghost-bs.vue","webpack:///src/components/d2-container/components/d2-container-ghost-bs.vue","webpack:///./src/components/d2-container/components/d2-container-ghost-bs.vue?b251","webpack:///./src/components/d2-container/components/d2-container-ghost-bs.vue?3b82","webpack:///./src/components/d2-container/components/d2-container-card.vue","webpack:///src/components/d2-container/components/d2-container-card.vue","webpack:///./src/components/d2-container/components/d2-container-card.vue?2c39","webpack:///./src/components/d2-container/components/d2-container-card.vue?7ad6","webpack:///./src/components/d2-container/components/d2-container-card-bs.vue","webpack:///src/components/d2-container/components/d2-container-card-bs.vue","webpack:///./src/components/d2-container/components/d2-container-card-bs.vue?e4ee","webpack:///./src/components/d2-container/components/d2-container-card-bs.vue?6101","webpack:///src/components/d2-container/index.vue","webpack:///./src/components/d2-container/index.vue?699e","webpack:///./src/components/d2-container/index.vue?5bf5","webpack:///./src/components/index.js","webpack:///./src/assets/svg-icons/index.js","webpack:///./src/plugin/error/index.js","webpack:///./src/plugin/log/index.js","webpack:///./src/plugin/open/index.js","webpack:///./src/plugin/permission/index.js","webpack:///./src/plugin/d2admin/index.js","webpack:///./src/main.js","webpack:///./src/development/index.js","webpack:///./src/store/modules/d2admin/modules/page.js","webpack:///./src/store/modules/d2admin/modules/size.js","webpack:///./src/store/modules/d2admin/modules/gray.js","webpack:///./src/libs/db.js","webpack:///./src/store/modules/d2admin/modules/db.js","webpack:///./src/routerMapComponents sync \\.js$","webpack:///./src/App.vue?f6d3","webpack:///./src/libs/loading.js","webpack:///./src/libs/message.js","webpack:///./src/libs/permission.js","webpack:///./src/plugin/axios/index.js","webpack:///./src/router/modules/demo.js","webpack:///./src/router/routes.js","webpack:///./src/menu/header.js","webpack:///./src/menu/aside.js","webpack:///./src/api/sys/user.js","webpack:///./src/router/index.js","webpack:///./src/assets/svg-icons/icons/d2-admin-text.svg","webpack:///./src/store/modules/d2admin/modules/theme.js","webpack:///./src/store/modules/d2admin/modules sync nonrecursive \\.js$","webpack:///./src/assets/svg-icons/icons/d2-admin.svg","webpack:///./src/routerMapComponents/index.js","webpack:///./src/development sync \\.js$","webpack:///./src/libs/util.log.js","webpack:///./src/libs/util.cookies.js","webpack:///./src/libs/util.js","webpack:///./src/setting.js","webpack:///./src/store/modules/d2admin/modules/account.js","webpack:///./src/assets/svg-icons/icons sync nonrecursive \\.svg$","webpack:///./src/store/modules/d2admin/modules/ua.js","webpack:///./src/api/sys/login.js","webpack:///./src/store/modules/d2admin/modules/user.js","webpack:///./src/store/modules/d2admin/modules/permission.js"],"names":["webpackJsonpCallback","data","moduleId","chunkId","chunkIds","moreModules","executeModules","i","resolves","length","Object","prototype","hasOwnProperty","call","installedChunks","push","modules","parentJsonpFunction","shift","deferredModules","apply","checkDeferredModules","result","deferredModule","fulfilled","j","depId","splice","__webpack_require__","s","installedModules","installedCssChunks","jsonpScriptSrc","p","exports","module","l","e","promises","cssChunks","Promise","resolve","reject","href","fullhref","existingLinkTags","document","getElementsByTagName","tag","dataHref","getAttribute","rel","existingStyleTags","linkTag","createElement","type","onload","onerror","event","request","target","src","err","Error","code","parentNode","removeChild","head","appendChild","then","installedChunkData","promise","onScriptComplete","script","charset","timeout","nc","setAttribute","error","clearTimeout","chunk","errorType","realSrc","message","name","undefined","setTimeout","all","m","c","d","getter","o","defineProperty","enumerable","get","r","Symbol","toStringTag","value","t","mode","__esModule","ns","create","key","bind","n","object","property","oe","console","jsonpArray","window","oldJsonpFunction","slice","render","_vm","this","_c","_self","staticClass","class","grayMode","grayActive","style","styleLayoutMainGroup","attrs","opacity","searchActive","width","asideCollapse","asideWidthCollapse","asideWidth","$baseUrl","themeActiveSetting","on","handleToggleAside","handleSearchClick","ref","directives","rawName","expression","searchPanelClose","transitionActive","keepAlive","_m","staticRenderFns","staticStyle","_v","components","mounted","hotkeys","searchHotkey","open","preventDefault","searchPanelOpen","close","beforeDestroy","unbind","computed","mapState","state","search","active","hotkey","methods","mapMutations","searchToggle","searchSet","$refs","panelSearch","focus","mixins","mixinSearch","mapGetters","backgroundImage","mapActions","menuClick","val","component","layout","namespaced","setting","transition","actions","set","dispatch","dbName","path","user","root","load","defaultValue","userDB","username","password","uuid","Mock","mock","url","body","bodyObj","JSON","parse","find","msg","token","map","webpackContext","req","id","webpackContextResolve","keys","list","getters","lengthError","filter","add","rootState","vm","info","assign","d2admin","util","cookies","time","dayjs","format","toString","mutations","clean","header","aside","fullAside","menu","asideCollapseSet","collapse","asideCollapseToggle","asideCollapseLoad","headerSet","asideSet","fullAsideSet","listen","commit","screenfull","enabled","log","isFullscreen","toggle","exit","pool","init","titlePrefix","forEach","children","title","fullTitle","join","files","require","replace","default","Vue","use","Vuex","Store","version","releases","versionShow","capsule","XHR","proxy_send","send","custom","xhr","withCredentials","arguments","PatchCookie","context","setup","pub","pageHeader","demo","VueI18n","locale","messages","cn","ja","en","betterScroll","_e","$slots","_t","footer","_b","$attrs","props","betterScrollOptions","required","BS","scrollInit","scrollDestroy","BScroll","wrapper","mouseWheel","scrollbar","fade","interactive","destroy","bs","d2Container","requireAll","requireContext","iconMap","$IconSvg","install","options","config","errorHandler","nextTick","store","$log","$logAdd","$open","directive","inserted","el","binding","vnode","isAdmin","permission","checkCodes","arg","functions","roles","concat","access","modifiers","need","some","hasPermissions","permissions","has","hasFunctions","hasRoles","productionTip","$env","process","ElementUI","pluginError","pluginLog","pluginOpen","pluginPermission","d2Admin","router","i18n","h","App","created","$store","watch","_side","$mount","autoGenerateMenus","autoGenerateRouters","indexOf","menus","routers","isKeepAlive","opened","page","current","openedLoad","valid","item","index","opend2db","openedUpdate","params","query","newTag","pageOpendIndex","pageOpend","same","tagName","newPage","isCurrent","len","findIndex","routerObj","$router","closeLeft","pageSelect","pageAim","currentIndex","$route","closeRight","closeOther","closeAll","keepAliveRefresh","keepAliveRemove","remove","keepAlivePush","keep","Array","from","Set","keepAliveClean","currentSet","routes","route","hidden","meta","size","adapter","LocalStorage","db","low","defaults","sys","database","write","pathInit","validator","currentPath","databaseClear","databasePage","basis","databasePageClear","pageSet","$data","pageGet","pageClear","loading","loadingInstance","Date","show","now","interval","Loading","service","NProgress","start","hide","done","success","Message","MessageBox","Notification","functionAccess","interfaceAccess","needPermissions","hasPermission","interfaceCheck","baseURL","method","toUpperCase","interfaces","matched","match","split","errorLog","duration","axios","interceptors","test","headers","response","res","statusCode","status","requiresAuth","redirect","layoutHeaderAside","pre","frameIn","beforeRouteEnter","to","next","fullPath","frameOut","errorPage","frameInRoutes","getUserPermissionInfo","VueRouter","permissionMenu","permissionRouter","permissionHeader","userInfo","isFetchPermissionInfo","fetchPermissionInfo","formatRoutes","routerMapComponents","userService","userPermissionInfo","userName","avatarUrl","accessMenus","accessHeader","accessRoutes","userPermissions","userRoles","formatInterfaces","accessInterfaces","autoGenerateMenusAndRouters","allMenuAside","menuAside","allMenuHeader","menuHeader","addRoutes","whiteList","beforeEach","afterEach","app","symbol","theme","activeName","activeSetting","themeName","dom","className","componentMaps","typeColor","color","colorful","textArr","text","primary","warning","danger","cookieSetting","currentCookieSetting","expires","Cookies","titleText","processTitle","a","click","getElementById","enable","preview","login","verCode","AccountLogin","accessToken","catch","logout","confirm","AccountLogout","$confirm","confirmButtonText","cancelButtonText","$message","location","reload","UaParser","getResult","fullscreen","lock","spinner","background","getCodeImg","GET","POST","PUT","DELETE"],"mappings":"aACE,SAASA,EAAqBC,GAQ7B,IAPA,IAMIC,EAAUC,EANVC,EAAWH,EAAK,GAChBI,EAAcJ,EAAK,GACnBK,EAAiBL,EAAK,GAIHM,EAAI,EAAGC,EAAW,GACpCD,EAAIH,EAASK,OAAQF,IACzBJ,EAAUC,EAASG,GAChBG,OAAOC,UAAUC,eAAeC,KAAKC,EAAiBX,IAAYW,EAAgBX,IACpFK,EAASO,KAAKD,EAAgBX,GAAS,IAExCW,EAAgBX,GAAW,EAE5B,IAAID,KAAYG,EACZK,OAAOC,UAAUC,eAAeC,KAAKR,EAAaH,KACpDc,EAAQd,GAAYG,EAAYH,IAG/Be,GAAqBA,EAAoBhB,GAE5C,MAAMO,EAASC,OACdD,EAASU,OAATV,GAOD,OAHAW,EAAgBJ,KAAKK,MAAMD,EAAiBb,GAAkB,IAGvDe,IAER,SAASA,IAER,IADA,IAAIC,EACIf,EAAI,EAAGA,EAAIY,EAAgBV,OAAQF,IAAK,CAG/C,IAFA,IAAIgB,EAAiBJ,EAAgBZ,GACjCiB,GAAY,EACRC,EAAI,EAAGA,EAAIF,EAAed,OAAQgB,IAAK,CAC9C,IAAIC,EAAQH,EAAeE,GACG,IAA3BX,EAAgBY,KAAcF,GAAY,GAE3CA,IACFL,EAAgBQ,OAAOpB,IAAK,GAC5Be,EAASM,EAAoBA,EAAoBC,EAAIN,EAAe,KAItE,OAAOD,EAIR,IAAIQ,EAAmB,GAGnBC,EAAqB,CACxB,IAAO,GAMJjB,EAAkB,CACrB,IAAO,GAGJK,EAAkB,GAGtB,SAASa,EAAe7B,GACvB,OAAOyB,EAAoBK,EAAI,OAAS,CAAC,YAAc,cAAc,eAAiB,iBAAiB,eAAiB,iBAAiB,aAAe,eAAe,iBAAmB,mBAAmB,YAAc,cAAc,cAAgB,gBAAgB,eAAiB,iBAAiB,YAAc,eAAe9B,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,YAAc,WAAW,eAAiB,WAAW,eAAiB,WAAW,aAAe,WAAW,iBAAmB,WAAW,YAAc,WAAW,cAAgB,WAAW,eAAiB,WAAW,YAAc,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,MAI//C,SAASyB,EAAoB1B,GAG5B,GAAG4B,EAAiB5B,GACnB,OAAO4B,EAAiB5B,GAAUgC,QAGnC,IAAIC,EAASL,EAAiB5B,GAAY,CACzCK,EAAGL,EACHkC,GAAG,EACHF,QAAS,IAUV,OANAlB,EAAQd,GAAUW,KAAKsB,EAAOD,QAASC,EAAQA,EAAOD,QAASN,GAG/DO,EAAOC,GAAI,EAGJD,EAAOD,QAKfN,EAAoBS,EAAI,SAAuBlC,GAC9C,IAAImC,EAAW,GAIXC,EAAY,CAAC,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,eAAiB,EAAE,aAAe,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,GACpRR,EAAmB5B,GAAUmC,EAASvB,KAAKgB,EAAmB5B,IACzB,IAAhC4B,EAAmB5B,IAAkBoC,EAAUpC,IACtDmC,EAASvB,KAAKgB,EAAmB5B,GAAW,IAAIqC,SAAQ,SAASC,EAASC,GAIzE,IAHA,IAAIC,EAAO,QAAU,CAAC,YAAc,cAAc,eAAiB,iBAAiB,eAAiB,iBAAiB,aAAe,eAAe,iBAAmB,mBAAmB,YAAc,cAAc,cAAgB,gBAAgB,eAAiB,iBAAiB,YAAc,eAAexC,IAAUA,GAAW,IAAM,CAAC,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,YAAc,WAAW,eAAiB,WAAW,eAAiB,WAAW,aAAe,WAAW,iBAAmB,WAAW,YAAc,WAAW,cAAgB,WAAW,eAAiB,WAAW,YAAc,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,YAAYA,GAAW,OACv+CyC,EAAWhB,EAAoBK,EAAIU,EACnCE,EAAmBC,SAASC,qBAAqB,QAC7CxC,EAAI,EAAGA,EAAIsC,EAAiBpC,OAAQF,IAAK,CAChD,IAAIyC,EAAMH,EAAiBtC,GACvB0C,EAAWD,EAAIE,aAAa,cAAgBF,EAAIE,aAAa,QACjE,GAAe,eAAZF,EAAIG,MAAyBF,IAAaN,GAAQM,IAAaL,GAAW,OAAOH,IAErF,IAAIW,EAAoBN,SAASC,qBAAqB,SACtD,IAAQxC,EAAI,EAAGA,EAAI6C,EAAkB3C,OAAQF,IAAK,CAC7CyC,EAAMI,EAAkB7C,GACxB0C,EAAWD,EAAIE,aAAa,aAChC,GAAGD,IAAaN,GAAQM,IAAaL,EAAU,OAAOH,IAEvD,IAAIY,EAAUP,SAASQ,cAAc,QACrCD,EAAQF,IAAM,aACdE,EAAQE,KAAO,WACfF,EAAQG,OAASf,EACjBY,EAAQI,QAAU,SAASC,GAC1B,IAAIC,EAAUD,GAASA,EAAME,QAAUF,EAAME,OAAOC,KAAOjB,EACvDkB,EAAM,IAAIC,MAAM,qBAAuB5D,EAAU,cAAgBwD,EAAU,KAC/EG,EAAIE,KAAO,wBACXF,EAAIH,QAAUA,SACP5B,EAAmB5B,GAC1BkD,EAAQY,WAAWC,YAAYb,GAC/BX,EAAOoB,IAERT,EAAQV,KAAOC,EAEf,IAAIuB,EAAOrB,SAASC,qBAAqB,QAAQ,GACjDoB,EAAKC,YAAYf,MACfgB,MAAK,WACPtC,EAAmB5B,GAAW,MAMhC,IAAImE,EAAqBxD,EAAgBX,GACzC,GAA0B,IAAvBmE,EAGF,GAAGA,EACFhC,EAASvB,KAAKuD,EAAmB,QAC3B,CAEN,IAAIC,EAAU,IAAI/B,SAAQ,SAASC,EAASC,GAC3C4B,EAAqBxD,EAAgBX,GAAW,CAACsC,EAASC,MAE3DJ,EAASvB,KAAKuD,EAAmB,GAAKC,GAGtC,IACIC,EADAC,EAAS3B,SAASQ,cAAc,UAGpCmB,EAAOC,QAAU,QACjBD,EAAOE,QAAU,IACb/C,EAAoBgD,IACvBH,EAAOI,aAAa,QAASjD,EAAoBgD,IAElDH,EAAOZ,IAAM7B,EAAe7B,GAG5B,IAAI2E,EAAQ,IAAIf,MAChBS,EAAmB,SAAUd,GAE5Be,EAAOhB,QAAUgB,EAAOjB,OAAS,KACjCuB,aAAaJ,GACb,IAAIK,EAAQlE,EAAgBX,GAC5B,GAAa,IAAV6E,EAAa,CACf,GAAGA,EAAO,CACT,IAAIC,EAAYvB,IAAyB,SAAfA,EAAMH,KAAkB,UAAYG,EAAMH,MAChE2B,EAAUxB,GAASA,EAAME,QAAUF,EAAME,OAAOC,IACpDiB,EAAMK,QAAU,iBAAmBhF,EAAU,cAAgB8E,EAAY,KAAOC,EAAU,IAC1FJ,EAAMM,KAAO,iBACbN,EAAMvB,KAAO0B,EACbH,EAAMnB,QAAUuB,EAChBF,EAAM,GAAGF,GAEVhE,EAAgBX,QAAWkF,IAG7B,IAAIV,EAAUW,YAAW,WACxBd,EAAiB,CAAEjB,KAAM,UAAWK,OAAQa,MAC1C,MACHA,EAAOhB,QAAUgB,EAAOjB,OAASgB,EACjC1B,SAASqB,KAAKC,YAAYK,GAG5B,OAAOjC,QAAQ+C,IAAIjD,IAIpBV,EAAoB4D,EAAIxE,EAGxBY,EAAoB6D,EAAI3D,EAGxBF,EAAoB8D,EAAI,SAASxD,EAASkD,EAAMO,GAC3C/D,EAAoBgE,EAAE1D,EAASkD,IAClC1E,OAAOmF,eAAe3D,EAASkD,EAAM,CAAEU,YAAY,EAAMC,IAAKJ,KAKhE/D,EAAoBoE,EAAI,SAAS9D,GACX,qBAAX+D,QAA0BA,OAAOC,aAC1CxF,OAAOmF,eAAe3D,EAAS+D,OAAOC,YAAa,CAAEC,MAAO,WAE7DzF,OAAOmF,eAAe3D,EAAS,aAAc,CAAEiE,OAAO,KAQvDvE,EAAoBwE,EAAI,SAASD,EAAOE,GAEvC,GADU,EAAPA,IAAUF,EAAQvE,EAAoBuE,IAC/B,EAAPE,EAAU,OAAOF,EACpB,GAAW,EAAPE,GAA8B,kBAAVF,GAAsBA,GAASA,EAAMG,WAAY,OAAOH,EAChF,IAAII,EAAK7F,OAAO8F,OAAO,MAGvB,GAFA5E,EAAoBoE,EAAEO,GACtB7F,OAAOmF,eAAeU,EAAI,UAAW,CAAET,YAAY,EAAMK,MAAOA,IACtD,EAAPE,GAA4B,iBAATF,EAAmB,IAAI,IAAIM,KAAON,EAAOvE,EAAoB8D,EAAEa,EAAIE,EAAK,SAASA,GAAO,OAAON,EAAMM,IAAQC,KAAK,KAAMD,IAC9I,OAAOF,GAIR3E,EAAoB+E,EAAI,SAASxE,GAChC,IAAIwD,EAASxD,GAAUA,EAAOmE,WAC7B,WAAwB,OAAOnE,EAAO,YACtC,WAA8B,OAAOA,GAEtC,OADAP,EAAoB8D,EAAEC,EAAQ,IAAKA,GAC5BA,GAIR/D,EAAoBgE,EAAI,SAASgB,EAAQC,GAAY,OAAOnG,OAAOC,UAAUC,eAAeC,KAAK+F,EAAQC,IAGzGjF,EAAoBK,EAAI,IAGxBL,EAAoBkF,GAAK,SAAShD,GAA2B,MAApBiD,QAAQjC,MAAMhB,GAAYA,GAEnE,IAAIkD,EAAaC,OAAO,gBAAkBA,OAAO,iBAAmB,GAChEC,EAAmBF,EAAWjG,KAAK2F,KAAKM,GAC5CA,EAAWjG,KAAOf,EAClBgH,EAAaA,EAAWG,QACxB,IAAI,IAAI5G,EAAI,EAAGA,EAAIyG,EAAWvG,OAAQF,IAAKP,EAAqBgH,EAAWzG,IAC3E,IAAIU,EAAsBiG,EAI1B/F,EAAgBJ,KAAK,CAAC,EAAE,kBAEjBM,K,qGC1QL+F,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,+BAA+BC,MAAM,CAACC,SAAUN,EAAIO,YAAYC,MAAOR,EAAIS,sBAAuB,CAACP,EAAG,MAAM,CAACE,YAAY,gCAAgCF,EAAG,MAAM,CAACE,YAAY,iCAAiCM,MAAM,CAAC,KAAO,YAAY,CAACR,EAAG,MAAM,CAACE,YAAY,kBAAkBI,MAAO,CAC3WG,QAASV,KAAKW,aAAe,GAAM,GAClCF,MAAM,CAAC,WAAW,IAAI,KAAO,KAAK,CAACR,EAAG,MAAM,CAACE,YAAY,aAAaI,MAAO,CAACK,MAAOb,EAAIc,cAAgBd,EAAIe,mBAAqBf,EAAIgB,YAAaN,MAAM,CAAC,WAAW,MAAM,CAAEV,EAAIc,cAAeZ,EAAG,MAAM,CAACQ,MAAM,CAAC,cAASV,EAAIiB,SAAb,uBAAoCjB,EAAIkB,mBAAmBnD,KAA3D,0BAAwFmC,EAAG,MAAM,CAACQ,MAAM,CAAC,cAASV,EAAIiB,SAAb,uBAAoCjB,EAAIkB,mBAAmBnD,KAA3D,sBAAoFmC,EAAG,MAAM,CAACE,YAAY,mBAAmBM,MAAM,CAAC,WAAW,KAAKS,GAAG,CAAC,MAAQnB,EAAIoB,oBAAoB,CAAClB,EAAG,UAAU,CAACQ,MAAM,CAAC,KAAO,WAAW,GAAGR,EAAG,iBAAiB,CAACQ,MAAM,CAAC,WAAW,OAAOR,EAAG,MAAM,CAACE,YAAY,kBAAkBM,MAAM,CAAC,WAAW,MAAM,CAACR,EAAG,mBAAmB,CAACiB,GAAG,CAAC,MAAQnB,EAAIqB,qBAAqBnB,EAAG,uBAAuBA,EAAG,wBAAwBA,EAAG,mBAAmBA,EAAG,kBAAkBA,EAAG,mBAAmB,IAAI,GAAGA,EAAG,MAAM,CAACE,YAAY,qBAAqBM,MAAM,CAAC,WAAW,IAAI,KAAO,KAAK,CAACR,EAAG,MAAM,CAACoB,IAAI,QAAQlB,YAAY,2BAA2BI,MAAO,CACt9BK,MAAOb,EAAIc,cAAgBd,EAAIe,mBAAqBf,EAAIgB,WACxDL,QAASV,KAAKW,aAAe,GAAM,GAClCF,MAAM,CAAC,WAAW,MAAM,CAACR,EAAG,iBAAiB,GAAGA,EAAG,MAAM,CAACE,YAAY,0BAA0BM,MAAM,CAAC,WAAW,IAAI,KAAO,KAAK,CAACR,EAAG,aAAa,CAACQ,MAAM,CAAC,KAAO,eAAe,CAACR,EAAG,MAAM,CAACqB,WAAW,CAAC,CAACxD,KAAK,OAAOyD,QAAQ,SAAS1C,MAAOkB,EAAIY,aAAca,WAAW,iBAAiBrB,YAAY,gCAAgCM,MAAM,CAAC,KAAO,YAAY,CAACR,EAAG,kBAAkB,CAACoB,IAAI,cAAcH,GAAG,CAAC,MAAQnB,EAAI0B,qBAAqB,KAAKxB,EAAG,aAAa,CAACQ,MAAM,CAAC,KAAO,eAAe,CAACR,EAAG,MAAM,CAACqB,WAAW,CAAC,CAACxD,KAAK,OAAOyD,QAAQ,SAAS1C,OAAQkB,EAAIY,aAAca,WAAW,kBAAkBrB,YAAY,gCAAgCM,MAAM,CAAC,KAAO,YAAY,CAACR,EAAG,MAAM,CAACE,YAAY,iCAAiCM,MAAM,CAAC,WAAW,MAAM,CAACR,EAAG,YAAY,GAAGA,EAAG,MAAM,CAACE,YAAY,+BAA+BM,MAAM,CAAC,WAAW,MAAM,CAACR,EAAG,aAAa,CAACQ,MAAM,CAAC,KAAOV,EAAI2B,iBAAmB,kBAAoB,KAAK,CAACzB,EAAG,aAAa,CAACQ,MAAM,CAAC,QAAUV,EAAI4B,YAAY,CAAC1B,EAAG,gBAAgB,IAAI,IAAI,QAAQ,KAAKF,EAAI6B,GAAG,QAE9/BC,EAAkB,CAAC,WAAY,IAAI9B,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAAC6B,YAAY,CAAC,cAAc,QAAQ,CAAC7B,EAAG,MAAM,CAAC6B,YAAY,CAAC,MAAQ,OAAO,OAAS,QAAQrB,MAAM,CAAC,IAAM,qBAAqBR,EAAG,OAAO,CAAC6B,YAAY,CAAC,MAAQ,QAAQ,YAAY,OAAO,cAAc,SAAS,CAAC/B,EAAIgC,GAAG,8BAA8B9B,EAAG,OAAO,CAAC6B,YAAY,CAAC,MAAQ,QAAQ,YAAY,OAAO,cAAc,SAAS,CAAC/B,EAAIgC,GAAG,oC,4pBCHjZ,OACbC,WAAY,CACV,kBAAmB,kBAAM,kDAE3BC,QAJa,WAIF,WAETC,eAAQlC,KAAKmC,aAAaC,MAAM,SAAAhG,GAC9BA,EAAMiG,iBACN,EAAKC,qBAGPJ,eAAQlC,KAAKmC,aAAaI,OAAO,SAAAnG,GAC/BA,EAAMiG,iBACN,EAAKZ,uBAGTe,cAhBa,WAiBXN,OAAQO,OAAOzC,KAAKmC,aAAaC,MACjCF,OAAQO,OAAOzC,KAAKmC,aAAaI,QAEnCG,SAAU,EAAF,GACHC,eAAS,UAAW,CACrBhC,aAAc,SAAAiC,GAAK,OAAIA,EAAMC,OAAOC,QACpCX,aAAc,SAAAS,GAAK,OAAIA,EAAMC,OAAOE,WAGxCC,QAAS,EAAF,KACFC,eAAa,CACdC,aAAc,wBACdC,UAAW,wBAHR,IAQL/B,kBARO,WASLpB,KAAKkD,eACDlD,KAAKW,cACPX,KAAKoD,MAAMC,YAAYC,SAG3BhB,gBAdO,WAeAtC,KAAKW,eACRX,KAAKmD,WAAU,GACfnD,KAAKoD,MAAMC,YAAYC,UAI3B7B,iBArBO,WAsBDzB,KAAKW,cACPX,KAAKmD,WAAU,O,4kBCqCR,OACfrF,8BACAyF,QACAC,GAEAxB,YACA,kFACA,oFACA,6EACA,0FACA,sFACA,oFACA,qFACA,oFACA,0FAEArJ,KAhBA,WAiBA,OAEAoI,mBAEAD,4BAGA4B,kBACAC,0BACAhB,sBAAA,yBACArB,uBAAA,sBACAoB,6BAAA,4BACAb,0BAAA,gCAEA4C,0BACAxC,4CARA,IAaAT,qBAbA,WAcA,YACA,yCACAkD,oGACA,OAIAV,eACAW,+BACA,yBAFA,IAOAxC,kBAPA,WAQA,4BAEAyC,UAVA,SAUAC,GACApE,eACAA,2BCnJ+V,I,wBCQ3VqE,EAAY,eACd,EACAhE,EACA+B,GACA,EACA,KACA,KACA,MAIa,EAAAiC,E,QCjBAC,U,iFCCA,cACbC,YAAY,EACZpB,MAAO,CAELE,OAAQmB,OAAQC,WAAWpB,QAE7BqB,QAAS,CAMPC,IANO,WAMmBtB,GAAQ,IAA3BF,EAA2B,EAA3BA,MAAOyB,EAAoB,EAApBA,SACZ,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,wFAEjByH,EAAME,OAASA,EAFE,SAIXuB,EAAS,iBAAkB,CAC/BC,OAAQ,MACRC,KAAM,oBACN1F,MAAO+D,EAAME,OACb0B,MAAM,GACL,CAAEC,MAAM,IATM,OAWjBtJ,IAXiB,2CAAZ,wDAkBTuJ,KAzBO,YAyBoB,IAAnB9B,EAAmB,EAAnBA,MAAOyB,EAAY,EAAZA,SACb,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,iGAEIkJ,EAAS,iBAAkB,CAC9CC,OAAQ,MACRC,KAAM,oBACNI,aAAcV,OAAQC,WAAWpB,OACjC0B,MAAM,GACL,CAAEC,MAAM,IAPM,OAEjB7B,EAAME,OAFW,OASjB3H,IATiB,2CAAZ,2D,oCCnCb,W,osBCEA,IAAMyJ,EAAS,CACb,CACEC,SAAU,QACVC,SAAU,QACVC,KAAM,aACNjH,KAAM,OAER,CACE+G,SAAU,SACVC,SAAU,SACVC,KAAM,cACNjH,KAAM,MAER,CACE+G,SAAU,QACVC,SAAU,QACVC,KAAM,aACNjH,KAAM,QAIVkH,IAAKC,KAAK,aAAc,QAAQ,YAAyB,EAAtBC,IAAsB,EAAjBjJ,KAAiB,IAAXkJ,EAAW,EAAXA,KACtCC,EAAUC,KAAKC,MAAMH,GACrBX,EAAOI,EAAOW,MAAK,SAAAxK,GAAC,OAAIA,EAAE8J,WAAaO,EAAQP,UAAY9J,EAAE+J,WAAaM,EAAQN,YACxF,OAAIN,EACK,CACL9H,KAAM,EACN8I,IAAK,OACL7M,KAAM,EAAF,KACC6L,GADD,IAEFiB,MAAO,iEAIJ,CACL/I,KAAM,IACN8I,IAAK,WACL7M,KAAM,Q,uBCvCZ,IAAI+M,EAAM,CACT,uBAAwB,QAIzB,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOtL,EAAoBuL,GAE5B,SAASC,EAAsBF,GAC9B,IAAItL,EAAoBgE,EAAEoH,EAAKE,GAAM,CACpC,IAAI7K,EAAI,IAAI0B,MAAM,uBAAyBmJ,EAAM,KAEjD,MADA7K,EAAE2B,KAAO,mBACH3B,EAEP,OAAO2K,EAAIE,GAEZD,EAAeI,KAAO,WACrB,OAAO3M,OAAO2M,KAAKL,IAEpBC,EAAexK,QAAU2K,EACzBjL,EAAOD,QAAU+K,EACjBA,EAAeE,GAAK,Q,oCCtBpB,wDAIe,cACb7B,YAAY,EACZpB,MAAO,CAELoD,KAAM,IAERC,QAAS,CAKP9M,OALO,SAKCyJ,GACN,OAAOA,EAAMoD,KAAK7M,QAMpB+M,YAZO,SAYMtD,GACX,OAAOA,EAAMoD,KAAKG,QAAO,SAAArL,GAAC,MAAe,UAAXA,EAAEmB,QAAkB9C,SAGtDgL,QAAS,CAQPiC,IARO,cAQ6C,IAA7CxD,EAA6C,EAA7CA,MAAOyD,EAAsC,EAAtCA,UAAepK,EAAuB,EAAvBA,KAAMO,EAAiB,EAAjBA,IAAK8J,EAAY,EAAZA,GAAIC,EAAQ,EAARA,KAE1C3D,EAAMoD,KAAKvM,KAAKL,OAAOoN,OAAO,CAE5BvK,KAAM,MAENsK,KAAM,GAEN/J,IAAK,GAEL8J,GAAI,GAEJ9B,KAAM6B,EAAUI,QAAQjC,KAAK+B,KAE7BxB,KAAM2B,OAAKC,QAAQlI,IAAI,QAEvBgH,MAAOiB,OAAKC,QAAQlI,IAAI,SAExByG,IAAKzG,iBAAIkB,OAAQ,gBAAiB,IAElCiH,KAAMC,MAAQC,OAAO,sBACpB,CACD7K,OACAO,MACA8J,KACAC,KAAMQ,sBAASR,QAIrBS,UAAW,CAKTC,MALS,SAKFrE,GAELA,EAAMoD,KAAO,O,iFCnEJ,cACbhC,YAAY,EACZpB,MAAO,CAELsE,OAAQ,GAERC,MAAO,GACPC,UAAW,GAEXvG,cAAeoD,OAAQoD,KAAKxG,eAE9BsD,QAAS,CAMPmD,iBANO,WAM+BC,GAAU,IAA7B3E,EAA6B,EAA7BA,MAAOyB,EAAsB,EAAtBA,SACxB,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,wFAEjByH,EAAM/B,cAAgB0G,EAFL,SAIXlD,EAAS,iBAAkB,CAC/BC,OAAQ,MACRC,KAAM,qBACN1F,MAAO+D,EAAM/B,cACb2D,MAAM,GACL,CAAEC,MAAM,IATM,OAWjBtJ,IAXiB,2CAAZ,wDAkBTqM,oBAzBO,YAyBkC,IAAnB5E,EAAmB,EAAnBA,MAAOyB,EAAY,EAAZA,SAC3B,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,wFAEjByH,EAAM/B,eAAiB+B,EAAM/B,cAFZ,SAIXwD,EAAS,iBAAkB,CAC/BC,OAAQ,MACRC,KAAM,qBACN1F,MAAO+D,EAAM/B,cACb2D,MAAM,GACL,CAAEC,MAAM,IATM,OAWjBtJ,IAXiB,2CAAZ,wDAkBTsM,kBA5CO,YA4CgC,IAAnB7E,EAAmB,EAAnBA,MAAOyB,EAAY,EAAZA,SACzB,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,iGAEWkJ,EAAS,iBAAkB,CACrDC,OAAQ,MACRC,KAAM,qBACNI,aAAcV,OAAQoD,KAAKxG,cAC3B2D,MAAM,GACL,CAAEC,MAAM,IAPM,OAEjB7B,EAAM/B,cAFW,OASjB1F,IATiB,2CAAZ,yDAaX6L,UAAW,CAMTU,UANS,SAMC9E,EAAOyE,GAEfzE,EAAMsE,OAASG,GAOjBM,SAfS,SAeA/E,EAAOyE,GAEdzE,EAAMuE,MAAQE,GAEhBO,aAnBS,SAmBIhF,EAAOyE,GAElBzE,EAAMwE,UAAYC,EAClBzE,EAAMuE,MAAQE,M,oCC9FpB,gCAEe,cACbrD,YAAY,EACZpB,MAAO,CAELE,QAAQ,GAEVqB,QAAS,CAIP0D,OAJO,YAIa,IAAVC,EAAU,EAAVA,OACR,OAAO,IAAI5M,SAAQ,SAAAC,GACb4M,IAAWC,SACbD,IAAW7G,GAAG,UAAU,WACtBzB,QAAQwI,IAAI,KACPF,IAAWG,cACdJ,EAAO,OAAO,MAKpB3M,QAMJgN,OArBO,YAqBa,IAAVL,EAAU,EAAVA,OACR,OAAO,IAAI5M,SAAQ,SAAAC,GACb4M,IAAWG,cACbH,IAAWK,OACXN,EAAO,OAAO,KAEdC,IAAW1L,UACXyL,EAAO,OAAO,IAGhB3M,SAIN6L,UAAW,CAMT5C,IANS,SAMJxB,EAAOE,GACVF,EAAME,OAASA,M,ysBChDN,cACbkB,YAAY,EACZpB,MAAO,CAELE,QAAQ,EAERC,OAAQ,CACNX,KAAM6B,OAAQlB,OAAOF,OAAOT,KAC5BG,MAAO0B,OAAQlB,OAAOF,OAAON,OAG/B8F,KAAM,IAERrB,UAAW,CAKTmB,OALS,SAKDvF,GACNA,EAAME,QAAUF,EAAME,QAOxBsB,IAbS,SAaJxB,EAAOE,GACVF,EAAME,OAASA,GAOjBwF,KArBS,SAqBH1F,EAAOyE,GACX,IAAMgB,EAAO,GACP5O,EAAO,SAAPA,EAAiB4N,GAAwB,IAAlBkB,EAAkB,uDAAJ,GACzClB,EAAKmB,SAAQ,SAAAtK,GACPA,EAAEuK,SACJhP,EAAKyE,EAAEuK,SAAH,yBAAkBF,GAAlB,CAA+BrK,EAAEwK,SAErCL,EAAK5O,KAAL,OACKyE,GADL,IAEEyK,UAAW,yBAAKJ,GAAL,CAAkBrK,EAAEwK,QAAQE,KAAK,cAKpDnP,EAAK4N,GACLzE,EAAMyF,KAAOA,M,8DC9CbQ,G,oBAAQC,WACRpP,EAAU,GAEhBmP,EAAM9C,OAAOyC,SAAQ,SAAArJ,GACnBzF,EAAQyF,EAAI4J,QAAQ,eAAgB,KAAOF,EAAM1J,GAAK6J,WAGzC,OACbhF,YAAY,EACZtK,WCTFuP,aAAIC,IAAIC,QAEO,WAAIA,OAAKC,MAAM,CAC5B1P,QAAS,CACP+M,c,kCCTJ,mCAGe,cACbzC,YAAY,EACZpB,MAAO,CAELyG,QAASpF,OAAQqF,SAASD,SAE5BrC,UAAW,CAKTuC,YALS,SAKI3G,GACX8D,OAAKuB,IAAIuB,QAAQ,UAAjB,WAAgC5G,EAAMyG,UACtC5J,QAAQwI,IAAI,2DACZxI,QAAQwI,IAAI,yB,6GCjBdnI,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACQ,MAAM,CAAC,GAAK,QAAQ,CAACR,EAAG,gBAAgB,IAEjH4B,EAAkB,GCKP,GACf/D,YCR8T,I,wBCQ1TgG,EAAY,eACd,EACA,EACAjC,GACA,EACA,KACA,KACA,MAIa,EAAAiC,E,qDCnBA,WAAUkB,GAEvBA,EAAKyE,IAAIpQ,UAAUqQ,WAAa1E,EAAKyE,IAAIpQ,UAAUsQ,KACnD3E,EAAKyE,IAAIpQ,UAAUsQ,KAAO,WACpB3J,KAAK4J,OAAOC,MACd7J,KAAK4J,OAAOC,IAAIC,gBAAkB9J,KAAK8J,kBAAmB,GAE5D9J,KAAK0J,WAAL,MAAA1J,KAAmB+J,aCFvBC,EAAYhF,KAGZ,IAAMY,EAAM,SAAAqE,GAAO,OAAIA,EAAQlE,OAAOL,IAAIuE,IAC1CrE,EAAIkD,WAGJ9D,IAAKkF,MAAM,CACT7M,QAAS,Y,gBCbI,GACb8M,IAAK,CACHC,WAAY,CACVC,KAAM,QCHG,GACbF,IAAK,CACHC,WAAY,CACVC,KAAM,UCHG,GACbF,IAAK,CACHC,WAAY,CACVC,KAAM,UCIZpB,aAAIC,IAAIoB,QAEO,UAAIA,OAAQ,CACzBC,OAAQ,KACRC,SAAU,CACRC,KACAC,KACAC,Q,6CCdA7K,G,oBAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACoB,IAAI,YAAYlB,YAAY,uBAAuB,CAAe,SAAbJ,EAAI9D,MAAoB8D,EAAI6K,aAAsM7K,EAAI8K,KAA5L5K,EAAG,oBAAoB,CAAEF,EAAI+K,OAAO5D,OAAQnH,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,KAAK9K,EAAIgL,GAAG,WAAYhL,EAAI+K,OAAOE,OAAQjL,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,MAAM,GAA0B,SAAb9K,EAAI9D,MAAmB8D,EAAI6K,aAAc3K,EAAG,uBAAuBF,EAAIkL,GAAG,GAAG,uBAAuBlL,EAAImL,QAAO,GAAO,CAAEnL,EAAI+K,OAAO5D,OAAQnH,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,KAAK9K,EAAIgL,GAAG,WAAYhL,EAAI+K,OAAOE,OAAQjL,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,MAAM,GAAG9K,EAAI8K,KAAmB,UAAb9K,EAAI9D,MAAqB8D,EAAI6K,aAAuM7K,EAAI8K,KAA7L5K,EAAG,qBAAqB,CAAEF,EAAI+K,OAAO5D,OAAQnH,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,KAAK9K,EAAIgL,GAAG,WAAYhL,EAAI+K,OAAOE,OAAQjL,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,MAAM,GAA0B,UAAb9K,EAAI9D,MAAoB8D,EAAI6K,aAAc3K,EAAG,wBAAwBF,EAAIkL,GAAG,GAAG,wBAAwBlL,EAAImL,QAAO,GAAO,CAAEnL,EAAI+K,OAAO5D,OAAQnH,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,KAAK9K,EAAIgL,GAAG,WAAYhL,EAAI+K,OAAOE,OAAQjL,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,MAAM,GAAG9K,EAAI8K,KAAmB,SAAb9K,EAAI9D,MAAoB8D,EAAI6K,aAAsM7K,EAAI8K,KAA5L5K,EAAG,oBAAoB,CAAEF,EAAI+K,OAAO5D,OAAQnH,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,KAAK9K,EAAIgL,GAAG,WAAYhL,EAAI+K,OAAOE,OAAQjL,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,MAAM,GAA0B,SAAb9K,EAAI9D,MAAmB8D,EAAI6K,aAAc3K,EAAG,uBAAuBF,EAAIkL,GAAG,GAAG,uBAAuBlL,EAAImL,QAAO,GAAO,CAAEnL,EAAI+K,OAAO5D,OAAQnH,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,KAAK9K,EAAIgL,GAAG,WAAYhL,EAAI+K,OAAOE,OAAQjL,EAAIgL,GAAG,SAAS,KAAK,CAAC,KAAO,WAAWhL,EAAI8K,MAAM,GAAG9K,EAAI8K,MAAM,KAE1qDhJ,EAAkB,GCFlB/B,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAAEJ,EAAI+K,OAAO5D,OAAQjH,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,6BAA6B,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,KAAK5K,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACJ,EAAIgL,GAAG,YAAY,GAAIhL,EAAI+K,OAAOE,OAAQ/K,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,6BAA6B,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,QAEpZhJ,EAAkB,GCaP,GACf/D,0BChByX,ICOrX,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBXgC,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAAEJ,EAAI+K,OAAO5D,OAAQjH,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,gCAAgC,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,KAAK5K,EAAG,MAAM,CAACoB,IAAI,UAAUlB,YAAY,8BAA8B,CAACF,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACJ,EAAIgL,GAAG,YAAY,KAAMhL,EAAI+K,OAAOE,OAAQ/K,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,gCAAgC,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,QAEnfhJ,EAAkB,G,YCDP,GACbsJ,MAAO,CACLC,oBAAqB,CACnBnP,KAAM7C,OACNiS,UAAU,EACVrC,QAAS,iBAAO,MAGpBrQ,KARa,WASX,MAAO,CACL2S,GAAI,OAGRrJ,QAba,WAcXjC,KAAKuL,cAEP/I,cAhBa,WAiBXxC,KAAKwL,iBAEPxI,QAAS,CACPuI,WADO,WAELvL,KAAKsL,GAAK,IAAIG,OAAQzL,KAAKoD,MAAMsI,QAAStS,OAAOoN,OAAO,CACtDmF,YAAY,EACZC,UAAW,CACTC,MAAM,EACNC,aAAa,IAEd9L,KAAKoL,uBAEVI,cAVO,WAYL,IACExL,KAAKsL,GAAGS,UACR,MAAOhR,UACAiF,KAAKsL,GACZtL,KAAKsL,GAAK,SClBH,GACfxN,4BACAyF,QACAyI,ICrB4X,ICOxX,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBXlM,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,sBAAsB,CAAEJ,EAAI+K,OAAO5D,OAAQjH,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,8BAA8B,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,KAAK5K,EAAG,MAAM,CAACE,YAAY,4BAA4B,CAACJ,EAAIgL,GAAG,YAAY,GAAIhL,EAAI+K,OAAOE,OAAQ/K,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,8BAA8B,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,QAExZhJ,EAAkB,GCDlB1E,EAAS,GAKT,EAAY,eACdA,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QCjBX2C,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,yBAAyB,CAAEJ,EAAI+K,OAAO5D,OAAQjH,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,iCAAiC,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,KAAK5K,EAAG,MAAM,CAACoB,IAAI,UAAUlB,YAAY,+BAA+B,CAACJ,EAAIgL,GAAG,YAAY,GAAIhL,EAAI+K,OAAOE,OAAQ/K,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,iCAAiC,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,QAElbhJ,EAAkB,GCcP,GACf/D,4BACAyF,QACAyI,ICnB6X,ICOzX,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,KACA,MAIa,I,QClBXlM,EAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,qBAAqB,CAAEJ,EAAI+K,OAAO5D,OAAQjH,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,6BAA6B,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,KAAK5K,EAAG,MAAM,CAACE,YAAY,2BAA2B,CAACF,EAAG,MAAM,CAACE,YAAY,gCAAgC,CAACJ,EAAIgL,GAAG,YAAY,KAAMhL,EAAI+K,OAAOE,OAAQ/K,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,6BAA6B,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,QAE7chJ,EAAkB,GCeP,GACf/D,0BClByX,KCOrX,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,KACA,MAIa,M,QClBXgC,GAAS,WAAkB,IAAIC,EAAIC,KAAKC,EAAGF,EAAIG,MAAMD,GAAG,OAAOA,EAAG,MAAM,CAACE,YAAY,wBAAwB,CAAEJ,EAAI+K,OAAO5D,OAAQjH,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,gCAAgC,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,KAAK5K,EAAG,MAAM,CAACoB,IAAI,UAAUlB,YAAY,8BAA8B,CAACF,EAAG,MAAM,CAACE,YAAY,4CAA4C,CAACF,EAAG,MAAM,CAACE,YAAY,mCAAmC,CAACJ,EAAIgL,GAAG,YAAY,OAAQhL,EAAI+K,OAAOE,OAAQ/K,EAAG,MAAM,CAACoB,IAAI,SAASlB,YAAY,gCAAgC,CAACJ,EAAIgL,GAAG,WAAW,GAAGhL,EAAI8K,QAE/iBhJ,GAAkB,GCkBP,IACf/D,4BACAyF,QACAyI,ICvB4X,MCOxX,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QC+BA,IACflO,oBACAkE,YACA,sBACA,yBACA,uBACA,0BACA,uBACA,2BAEAmJ,OAEAlP,MACAA,YACAoP,YACArC,gBAGA4B,cACA3O,aACAoP,YACArC,cCtE8V,MCO1V,GAAY,eACd,GACA,EACA,GACA,EACA,KACA,KACA,MAIa,M,QCbfC,aAAInF,UAAU,eAAgBmI,IAC9BhD,aAAInF,UAAU,iBAAiB,kBAAM,mDACrCmF,aAAInF,UAAU,WAAW,kBAAM,mDAC/BmF,aAAInF,UAAU,eAAe,kBAAM,mDACnCmF,aAAInF,UAAU,kBAAkB,kBAAM,mDCPtC,IAAMoI,GAAa,SAAAC,GAAc,OAAIA,EAAepG,OAAOL,IAAIyG,IACzDvG,GAAMkD,WACNsD,GAAUF,GAAWtG,IAE3BqD,aAAI5P,UAAUgT,SAAWD,GAAQ1G,KAAI,SAAA3K,GAAC,OAAIA,EAAEiO,QAAQnD,GAAGhG,MAAM,M,iBCH9C,IACbyM,QADa,SACJrD,EAAKsD,GACZtD,EAAIuD,OAAOC,aAAe,SAAUjQ,EAAK8J,EAAIC,GAC3C0C,EAAIyD,UAAS,WAEXC,OAAMtI,SAAS,kBAAmB,CAChCpI,KAAM,QACNO,MACA8J,KACAC,eCTK,IACb+F,QADa,SACJrD,EAAKsD,GAEZtD,EAAI5P,UAAUuT,KAAOlG,QAAKuB,IAE1BgB,EAAI5P,UAAUwT,QAAU,SAAUtG,GAEhCoG,OAAMtI,SAAS,kBAAmB,CAChCpI,KAAM,MACNsK,YCVO,IACb+F,QADa,SACJrD,EAAKsD,GACZtD,EAAI5P,UAAUyT,MAAQpG,QAAKtE,O,+kCCJhB,QACXkK,QADW,SACHrD,EAAKsD,GACT,IAAII,EAAQJ,EAAQI,MACpB1D,EAAI8D,UAAU,aAAc,CACxBC,SAAU,SAAUC,EAAIC,EAASC,GAC7B,IAAIC,EAAUT,EAAM/J,MAAM6D,QAAQ4G,WAAWD,QAC7C,IAAIA,EAAJ,CAGA,IAAIE,EAAa,GAEbA,EADgB,aAAhBJ,EAAQK,IACKZ,EAAM/J,MAAM6D,QAAQ4G,WAAWG,UACrB,SAAhBN,EAAQK,IACFZ,EAAM/J,MAAM6D,QAAQ4G,WAAWI,MAE/Bd,EAAM/J,MAAM6D,QAAQ4G,WAAWG,UAAUE,OAAOf,EAAM/J,MAAM6D,QAAQ4G,WAAWI,OAEhG,IAAIE,GAAS,EACb,GAAIT,EAAQU,UAAU3P,IAAK,YACNiP,EAAQrO,OADF,yBACdgP,EADc,QAEnB,GAAIP,EAAWQ,MAAK,SAAAvT,GAAC,OAAIA,IAAMsT,KAE3B,OADAF,GAAS,EACT,SAHR,IAAK,EAAL,qBAAgC,0BAGxB,OAJe,mCAOpB,CACHA,GAAS,EADN,WAEcT,EAAQrO,OAFtB,yBAEMgP,EAFN,QAGC,GAAIP,EAAWQ,MAAK,SAAAvT,GAAC,OAAIA,IAAMsT,KAE3B,OADAF,GAAS,EACT,SAHR,IAAK,EAAL,qBAAgC,0BAGxB,OALL,+BASFA,GACDV,EAAGtQ,WAAWC,YAAYqQ,OAItChE,EAAI5P,UAAU0U,eAAiB,SAACC,GAC5B,IAAIZ,EAAUT,EAAM/J,MAAM6D,QAAQ4G,WAAWD,QAC7C,GAAIA,EACA,OAAO,EAEX,IAL4C,EAKxCa,GAAM,EACNX,EAAaX,EAAM/J,MAAM6D,QAAQ4G,WAAWG,UAAUE,OAAOf,EAAM/J,MAAM6D,QAAQ4G,WAAWI,OANpD,KAO3BO,GAP2B,yBAOnCH,EAPmC,QAQxC,GAAIP,EAAWQ,MAAK,SAAAvT,GAAC,OAAIA,IAAMsT,KAE3B,OADAI,GAAM,EACN,SAHR,IAAK,EAAL,qBAA8B,0BAGtB,OAVoC,8BAa5C,OAAOA,GAEXhF,EAAI5P,UAAU6U,aAAe,SAACV,GAC1B,IAAIJ,EAAUT,EAAM/J,MAAM6D,QAAQ4G,WAAWD,QAC7C,GAAIA,EACA,OAAO,EAEX,IALwC,EAKpCa,GAAM,EACNX,EAAaX,EAAM/J,MAAM6D,QAAQ4G,WAAWG,UANR,KAOvBA,GAPuB,yBAO/BK,EAP+B,QAQpC,GAAIP,EAAWQ,MAAK,SAAAvT,GAAC,OAAIA,IAAMsT,KAE3B,OADAI,GAAM,EACN,SAHR,IAAK,EAAL,qBAA4B,0BAGpB,OAVgC,8BAaxC,OAAOA,GAEXhF,EAAI5P,UAAU8U,SAAW,SAACV,GACtB,IAAIL,EAAUT,EAAM/J,MAAM6D,QAAQ4G,WAAWD,QAC7C,GAAIA,EACA,OAAO,EAEX,IALgC,EAK5Ba,GAAM,EACNX,EAAaX,EAAM/J,MAAM6D,QAAQ4G,WAAWI,MANhB,KAOfA,GAPe,yBAOvBI,EAPuB,QAQ5B,GAAIP,EAAWQ,MAAK,SAAAvT,GAAC,OAAIA,IAAMsT,KAE3B,OADAI,GAAM,EACN,SAHR,IAAK,EAAL,qBAAwB,0BAGhB,OAVwB,8BAahC,OAAOA,KCnEJ,IACP3B,QADO,oEACCrD,EAAKsD,GADN,iFAGXtD,EAAIuD,OAAO4B,eAAgB,EAE3BnF,EAAI5P,UAAUgV,KAAOC,aAErBrF,EAAI5P,UAAU2H,SAAWsN,IAEzBrF,EAAIC,IAAIqF,KAERtF,EAAIC,IAAIsF,IACRvF,EAAIC,IAAIuF,IACRxF,EAAIC,IAAIwF,IACRzF,EAAIC,IAAIyF,GAAkBpC,GAdf,uG,aCCftD,aAAIC,IAAI0F,GAAS,CAAEjC,eAEnB,IAAI1D,aAAI,CACN4F,eACAlC,aACAmC,OACAhP,OAAQ,SAAAiP,GAAC,OAAIA,EAAEC,IACfC,QALM,aAQNhN,QARM,WAUJjC,KAAKkP,OAAOpH,OAAO,gCAEnB9H,KAAKkP,OAAO7K,SAAS,wBAErBrE,KAAKkP,OAAOpH,OAAO,kBAEnB9H,KAAKkP,OAAO7K,SAAS,8BAEvB8K,MAAO,CACL,iBADK,SACatL,GAChB,IAAIuD,EAAYpH,KAAKkP,OAAOtM,MAAM6D,QAAQY,KAAKD,UACzCgI,EAAQhI,EAAUjB,QAAO,SAAAkB,GAAI,OAAIA,EAAK9C,OAASV,EAAI,GAAGU,QAC5DvE,KAAKkP,OAAOpH,OAAO,wBAAyBsH,EAAMjW,OAAS,EAAIiW,EAAM,GAAG3G,SAAW,QAGtF4G,OAAO,S,uDC3CJxG,EAAQC,UAEVwG,EAAoB,GACpBC,EAAsB,GAC1B9P,QAAQwI,IAAIY,GACZA,EAAM9C,OAAOyC,SAAQ,SAACrJ,GAClBM,QAAQwI,IAAI9I,GACA,eAARA,IACAA,EAAIqQ,QAAQ,SAAW,EACvBF,EAAkB7V,KAAKoP,EAAM1J,GAAK6J,SAC3B7J,EAAIqQ,QAAQ,WAAa,GAChCD,EAAoB9V,KAAKoP,EAAM1J,GAAK6J,aAG7B,cACXyG,MAAOH,EACPI,QAASH,I,iLCVPI,EAAc,SAAAhX,GAAI,OAAI8F,iBAAI9F,EAAM,cAAc,IAErC,cACbqL,YAAY,EACZpB,MAAO,CAELyF,KAAM,GAENuH,OAAQ3L,OAAQ4L,KAAKD,OAErBE,QAAS,GAETnO,UAAW,IAEbwC,QAAS,CAMP4L,WANO,YAMkC,IAA3BnN,EAA2B,EAA3BA,MAAOkF,EAAoB,EAApBA,OAAQzD,EAAY,EAAZA,SAC3B,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,yGAEGkJ,EAAS,iBAAkB,CAC7CC,OAAQ,MACRC,KAAM,cACNI,aAAcV,OAAQ4L,KAAKD,OAC3BpL,MAAM,GACL,CAAEC,MAAM,IAPM,OAEX5F,EAFW,OAYXmR,EAAQ,GAEdpN,EAAMgN,OAAS/Q,EAAM6G,KAAI,SAAAkK,GAEvB,GAAoB,UAAhBA,EAAO9R,KAET,OADAkS,EAAMvW,KAAK,GACJmW,EAGT,IAAMrK,EAAO3C,EAAMyF,KAAK9C,MAAK,SAAA0K,GAAI,OAAIA,EAAKnS,OAAS8R,EAAO9R,QAK1D,OAHAkS,EAAMvW,KAAK8L,EAAO,EAAI,GAGfnM,OAAOoN,OAAO,GAAIoJ,EAAQrK,MAChCY,QAAO,SAACyJ,EAAQM,GAAT,OAAoC,IAAjBF,EAAME,MAEnCpI,EAAO,oBAEP3M,IA/BiB,2CAAZ,wDAsCTgV,SA7CO,YA6CwB,IAAnBvN,EAAmB,EAAnBA,MAAOyB,EAAY,EAAZA,SACjB,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,iFAEjBkJ,EAAS,iBAAkB,CACzBC,OAAQ,MACRC,KAAM,cACN1F,MAAO+D,EAAMgN,OACbpL,MAAM,GACL,CAAEC,MAAM,IAEXtJ,IATiB,2CAAZ,wDAkBTiV,aAhEO,cAgE8D,IAArDxN,EAAqD,EAArDA,MAAOkF,EAA8C,EAA9CA,OAAQzD,EAAsC,EAAtCA,SAAc6L,EAAwB,EAAxBA,MAAOG,EAAiB,EAAjBA,OAAQC,EAAS,EAATA,MAC1D,OAAO,IAAIpV,QAAJ,yDAAY,WAAMC,GAAN,8FAEb0U,EAAOjN,EAAMgN,OAAOM,GACxBL,EAAKQ,OAASA,GAAUR,EAAKQ,OAC7BR,EAAKS,MAAQA,GAAST,EAAKS,MAC3B1N,EAAMgN,OAAOvV,OAAO6V,EAAO,EAAGL,GAE1BF,EAAYE,IACd/H,EAAO,gBAAiB+H,EAAK/R,MARd,SAWXuG,EAAS,YAXE,OAajBlJ,IAbiB,2CAAZ,wDAsBTiL,IAvFO,cAuFmD,IAAnDxD,EAAmD,EAAnDA,MAAOkF,EAA4C,EAA5CA,OAAQzD,EAAoC,EAApCA,SAAc3I,EAAsB,EAAtBA,IAAK2U,EAAiB,EAAjBA,OAAQC,EAAS,EAATA,MAC/C,OAAO,IAAIpV,QAAJ,yDAAY,WAAMC,GAAN,8FAEboV,EAAS7U,EACb6U,EAAOF,OAASA,GAAUE,EAAOF,OACjCE,EAAOD,MAAQA,GAASC,EAAOD,MAE/B1N,EAAMgN,OAAOnW,KAAK8W,GAEdZ,EAAYY,IACdzI,EAAO,gBAAiBpM,EAAIoC,MATb,SAYXuG,EAAS,YAZE,OAcjBlJ,IAdiB,2CAAZ,wDAuBTiH,KA/GO,cA+GqD,IAApDQ,EAAoD,EAApDA,MAAOkF,EAA6C,EAA7CA,OAAQzD,EAAqC,EAArCA,SAAcvG,EAAuB,EAAvBA,KAAMuS,EAAiB,EAAjBA,OAAQC,EAAS,EAATA,MACjD,OAAO,IAAIpV,QAAJ,yDAAY,WAAMC,GAAN,gGAEbyU,EAAShN,EAAMgN,OAEfY,EAAiB,EACfC,EAAYb,EAAOrK,MAAK,SAACsK,EAAMK,GACnC,IAAMQ,EAAOb,EAAK/R,OAASA,EAE3B,OADA0S,EAAiBE,EAAOR,EAAQM,EACzBE,MAELD,EAVa,gCAYTpM,EAAS,eAAgB,CAC7B6L,MAAOM,EACPH,SACAC,UAfa,iCAmBXT,EAAOjN,EAAMyF,KAAK9C,MAAK,SAAAzG,GAAC,OAAIA,EAAEhB,OAASA,MAEvC+R,EArBW,kCAsBPxL,EAAS,MAAO,CACpB3I,IAAKmU,EACLQ,SACAC,UAzBW,QA6BjBxI,EAAO,aAAchK,GAErB3C,IA/BiB,4CAAZ,wDAwCToH,MAxJO,cAwJ8C,IAA5CK,EAA4C,EAA5CA,MAAOkF,EAAqC,EAArCA,OAAQzD,EAA6B,EAA7BA,SAAcsM,EAAe,EAAfA,QAASrK,EAAM,EAANA,GAC7C,OAAO,IAAIpL,QAAJ,yDAAY,WAAMC,GAAN,kHAEbyV,EAAUhO,EAAMgN,OAAO,GACrBiB,EAAYjO,EAAMkN,UAAYa,GAEhCE,EALa,iBAOXC,EAAMlO,EAAMgN,OAAOzW,OACdF,EAAI,EARE,YAQCA,EAAI6X,GARL,oBASTlO,EAAMgN,OAAO3W,GAAG6E,OAAS6S,EAThB,uBAWTC,EADE3X,EAAI6X,EAAM,EACFlO,EAAMgN,OAAO3W,EAAI,GAEjB2J,EAAMgN,OAAO3W,EAAI,GAblB,4BAQUA,IARV,8BAoBXiX,EAAQtN,EAAMgN,OAAOmB,WAAU,SAAAlB,GAAI,OAAIA,EAAK/R,OAAS6S,KACvDT,GAAS,IAEXtN,EAAMgN,OAAOvV,OAAO6V,EAAO,GAE3BpI,EAAO,kBAAmB6I,IAzBX,UA4BXtM,EAAS,YA5BE,QA8BbwM,IAAW,EACkCD,EADlC,IACL9S,YADK,MACE,GADF,MACMuS,cADN,MACe,GADf,MACmBC,aADnB,MAC2B,GAD3B,EAETU,EAAY,CACdlT,OACAuS,SACAC,SAEFhK,EAAG2K,QAAQxX,KAAKuX,IAGlB7V,IAxCiB,4CAAZ,wDAiDT+V,UA1MO,YA0M0D,IAApDtO,EAAoD,EAApDA,MAAOkF,EAA6C,EAA7CA,OAAQzD,EAAqC,EAArCA,SAAqC,yDAAJ,GAAnB8M,EAAuB,EAAvBA,WAAY7K,EAAW,EAAXA,GACpD,OAAO,IAAIpL,QAAJ,yDAAY,WAAMC,GAAN,gGACXiW,EAAUD,GAAcvO,EAAMkN,QAChCuB,EAAe,EACnBzO,EAAMgN,OAAOpH,SAAQ,SAACqH,EAAMK,GACtBL,EAAK/R,OAASsT,IAChBC,EAAenB,MAGfmB,EAAe,GAEjBzO,EAAMgN,OAAOvV,OAAO,EAAGgX,EAAe,GAAG7I,SAAQ,gBAAG1K,EAAH,EAAGA,KAAH,OAAcgK,EAAO,kBAAmBhK,MAE3F8E,EAAMkN,QAAUsB,EACZ9K,GAAMA,EAAGgL,OAAOxT,OAASsT,GAC3B9K,EAAG2K,QAAQxX,KAAK,CACdqE,KAAMsT,IAfO,SAmBX/M,EAAS,YAnBE,OAqBjBlJ,IArBiB,2CAAZ,wDA8BToW,WAzOO,YAyO2D,IAApD3O,EAAoD,EAApDA,MAAOkF,EAA6C,EAA7CA,OAAQzD,EAAqC,EAArCA,SAAqC,yDAAJ,GAAnB8M,EAAuB,EAAvBA,WAAY7K,EAAW,EAAXA,GACrD,OAAO,IAAIpL,QAAJ,yDAAY,WAAMC,GAAN,gGACXiW,EAAUD,GAAcvO,EAAMkN,QAChCuB,EAAe,EACnBzO,EAAMgN,OAAOpH,SAAQ,SAACqH,EAAMK,GACtBL,EAAK/R,OAASsT,IAChBC,EAAenB,MAInBtN,EAAMgN,OAAOvV,OAAOgX,EAAe,GAAG7I,SAAQ,gBAAG1K,EAAH,EAAGA,KAAH,OAAcgK,EAAO,kBAAmBhK,MAEtF8E,EAAMkN,QAAUsB,EACZ9K,GAAMA,EAAGgL,OAAOxT,OAASsT,GAC3B9K,EAAG2K,QAAQxX,KAAK,CACdqE,KAAMsT,IAdO,SAkBX/M,EAAS,YAlBE,OAoBjBlJ,IApBiB,2CAAZ,wDA6BTqW,WAvQO,YAuQ2D,IAApD5O,EAAoD,EAApDA,MAAOkF,EAA6C,EAA7CA,OAAQzD,EAAqC,EAArCA,SAAqC,yDAAJ,GAAnB8M,EAAuB,EAAvBA,WAAY7K,EAAW,EAAXA,GACrD,OAAO,IAAIpL,QAAJ,yDAAY,WAAMC,GAAN,gGACXiW,EAAUD,GAAcvO,EAAMkN,QAChCuB,EAAe,EACnBzO,EAAMgN,OAAOpH,SAAQ,SAACqH,EAAMK,GACtBL,EAAK/R,OAASsT,IAChBC,EAAenB,MAIE,IAAjBmB,EACFzO,EAAMgN,OAAOvV,OAAO,GAAGmO,SAAQ,gBAAG1K,EAAH,EAAGA,KAAH,OAAcgK,EAAO,kBAAmBhK,OAEvE8E,EAAMgN,OAAOvV,OAAOgX,EAAe,GAAG7I,SAAQ,gBAAG1K,EAAH,EAAGA,KAAH,OAAcgK,EAAO,kBAAmBhK,MACtF8E,EAAMgN,OAAOvV,OAAO,EAAGgX,EAAe,GAAG7I,SAAQ,gBAAG1K,EAAH,EAAGA,KAAH,OAAcgK,EAAO,kBAAmBhK,OAG3F8E,EAAMkN,QAAUsB,EACZ9K,GAAMA,EAAGgL,OAAOxT,OAASsT,GAC3B9K,EAAG2K,QAAQxX,KAAK,CACdqE,KAAMsT,IAnBO,SAuBX/M,EAAS,YAvBE,OAyBjBlJ,IAzBiB,2CAAZ,wDAkCTsW,SA1SO,WA0SgCnL,GAAI,IAA/B1D,EAA+B,EAA/BA,MAAOkF,EAAwB,EAAxBA,OAAQzD,EAAgB,EAAhBA,SACzB,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,wFAEjByH,EAAMgN,OAAOvV,OAAO,GAAGmO,SAAQ,gBAAG1K,EAAH,EAAGA,KAAH,OAAcgK,EAAO,kBAAmBhK,MAFtD,SAIXuG,EAAS,YAJE,OAMM,UAAnBiC,EAAGgL,OAAOxT,MACZwI,EAAG2K,QAAQxX,KAAK,CACdqE,KAAM,UAIV3C,IAZiB,2CAAZ,yDAgBX6L,UAAW,CAMT0K,iBANS,SAMS9O,GAChBA,EAAMjB,UAAYiB,EAAMgN,OAAOzJ,QAAO,SAAA8J,GAAI,OAAIN,EAAYM,MAAOvK,KAAI,SAAA3K,GAAC,OAAIA,EAAE+C,SAO9E6T,gBAdS,SAcQ/O,EAAO9E,GACtB,IAAMkI,EAAO,eAAKpD,EAAMjB,WACxBiQ,oBAAO5L,GAAM,SAAAiK,GAAI,OAAIA,IAASnS,KAC9B8E,EAAMjB,UAAYqE,GAOpB6L,cAxBS,SAwBMjP,EAAO9E,GACpB,IAAMgU,EAAO,eAAKlP,EAAMjB,WACxBmQ,EAAKrY,KAAKqE,GACV8E,EAAMjB,UAAYoQ,MAAMC,KAAK,IAAIC,IAAIH,KAMvCI,eAjCS,SAiCOtP,GACdA,EAAMjB,UAAY,IAQpBwQ,WA1CS,SA0CGvP,EAAO9E,GACjB8E,EAAMkN,QAAUhS,GAQlBwK,KAnDS,SAmDH1F,EAAOwP,GACX,IAAM/J,EAAO,GACP5O,EAAO,SAAPA,EAAiB2Y,GACrBA,EAAO5J,SAAQ,SAAA6J,GACb,GAAIA,EAAM5J,SACRhP,EAAK4Y,EAAM5J,eAEX,IAAK4J,EAAMC,OAAQ,CACjB,IAAQC,EAAqBF,EAArBE,KAAMzU,EAAeuU,EAAfvU,KAAMyG,EAAS8N,EAAT9N,KACpB8D,EAAK5O,KAAK,CAAE8Y,OAAMzU,OAAMyG,cAKhC9K,EAAK2Y,GACLxP,EAAMyF,KAAOA,M,mECjZJ,cACbrE,YAAY,EACZpB,MAAO,CAEL/D,MAAO,IAETsF,QAAS,CAMPC,IANO,WAMmBoO,GAAM,IAAzB5P,EAAyB,EAAzBA,MAAOyB,EAAkB,EAAlBA,SACZ,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,wFAEjByH,EAAM/D,MAAQ2T,EAFG,SAIXnO,EAAS,iBAAkB,CAC/BC,OAAQ,MACRC,KAAM,aACN1F,MAAO+D,EAAM/D,MACb2F,MAAM,GACL,CAAEC,MAAM,IATM,OAWjBtJ,IAXiB,2CAAZ,wDAkBTuJ,KAzBO,YAyBoB,IAAnB9B,EAAmB,EAAnBA,MAAOyB,EAAY,EAAZA,SACb,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,iGAEGkJ,EAAS,iBAAkB,CAC7CC,OAAQ,MACRC,KAAM,aACNI,aAAc,UACdH,MAAM,GACL,CAAEC,MAAM,IAPM,OAEjB7B,EAAM/D,MAFW,OASjB1D,IATiB,2CAAZ,2D,oCChCb,OAAe,cACb6I,YAAY,EACZpB,MAAO,CAELE,QAAQ,GAEVkE,UAAW,CAKTmB,OALS,SAKDvF,GACNA,EAAME,QAAUF,EAAME,QAOxBsB,IAbS,SAaJxB,EAAOE,GACVF,EAAME,OAASA,M,mGChBf2P,EAAU,IAAIC,IAAJ,kBAA4BzO,OAAQqF,SAASD,UACvDsJ,EAAKC,IAAIH,GAEfE,EACGE,SAAS,CACRC,IAAK,GACLC,SAAU,KAEXC,QAEYL,Q,YCFf,SAASM,EAAT,GAMG,QALD3O,cAKC,MALQ,WAKR,MAJDC,YAIC,MAJM,GAIN,MAHDC,YAGC,aAFD0O,iBAEC,MAFW,kBAAM,GAEjB,MADDvO,oBACC,MADc,GACd,EACKI,EAAO2B,OAAKC,QAAQlI,IAAI,SAAW,aACnC0U,EAAc,GAAH,OAAM7O,EAAN,YAAgBE,EAAO,QAAH,OAAWO,GAAS,UAAxC,OAAmDR,EAAO,IAAH,OAAOA,GAAS,IAClF1F,EAAQ8T,EAAGlU,IAAI0U,GAAatU,QAMlC,YALgBd,IAAVc,GAAuBqU,EAAUrU,IACrC8T,EACGvO,IAAI+O,EAAaxO,GACjBqO,QAEEG,EAGM,cACbnP,YAAY,EACZG,QAAS,CASPC,IATO,SASF6F,EATE,GAcJ,QAJD3F,cAIC,MAJQ,WAIR,MAHDC,YAGC,MAHM,GAGN,MAFD1F,aAEC,MAFO,GAEP,MADD2F,YACC,SACDmO,EAAGvO,IAAI6O,EAAS,CACd3O,SACAC,OACAC,SACE3F,GAAOmU,SAUbvU,IA7BO,SA6BFwL,EA7BE,GAkCJ,QAJD3F,cAIC,MAJQ,WAIR,MAHDC,YAGC,MAHM,GAGN,MAFDI,oBAEC,MAFc,GAEd,MADDH,YACC,SACD,OAAO,IAAItJ,SAAQ,SAAAC,GACjBA,EAAQwX,EAAGlU,IAAIwU,EAAS,CACtB3O,SACAC,OACAC,OACAG,kBACE9F,aAQRkU,SAjDO,SAiDG9I,GAEF,6DAAJ,GAAI,IADNzF,YACM,SACN,OAAO,IAAItJ,SAAQ,SAAAC,GACjBA,EAAQwX,EAAGlU,IAAIwU,EAAS,CACtB3O,OAAQ,WACRC,KAAM,GACNC,OACAG,aAAc,WASpByO,cAlEO,SAkEQnJ,GAEP,6DAAJ,GAAI,IADNzF,YACM,SACN,OAAO,IAAItJ,SAAQ,SAAAC,GACjBA,EAAQwX,EAAGlU,IAAIwU,EAAS,CACtB3O,OAAQ,WACRC,KAAM,GACNC,OACA0O,UAAW,kBAAM,GACjBvO,aAAc,WAWpB0O,aAtFO,SAsFOpJ,GAIN,6DAAJ,GAHF3D,EAGM,EAHNA,GAGM,IAFNgN,aAEM,MAFE,OAEF,MADN9O,YACM,SACN,OAAO,IAAItJ,SAAQ,SAAAC,GACjBA,EAAQwX,EAAGlU,IAAIwU,EAAS,CACtB3O,OAAQ,WACRC,KAAM,SAAF,OAAW+B,EAAGgL,OAAOgC,IACzB9O,OACAG,aAAc,WAWpB4O,kBA3GO,SA2GYtJ,GAIX,6DAAJ,GAHF3D,EAGM,EAHNA,GAGM,IAFNgN,aAEM,MAFE,OAEF,MADN9O,YACM,SACN,OAAO,IAAItJ,SAAQ,SAAAC,GACjBA,EAAQwX,EAAGlU,IAAIwU,EAAS,CACtB3O,OAAQ,WACRC,KAAM,SAAF,OAAW+B,EAAGgL,OAAOgC,IACzB9O,OACA0O,UAAW,kBAAM,GACjBvO,aAAc,WAWpB6O,QAjIO,SAiIEvJ,EAjIF,GAqIJ,IAHD3D,EAGC,EAHDA,GAGC,IAFDgN,aAEC,MAFO,OAEP,MADD9O,YACC,SACD,OAAO,IAAItJ,SAAQ,SAAAC,GACjBA,EAAQwX,EAAGlU,IAAIwU,EAAS,CACtB3O,OAAQ,WACRC,KAAM,SAAF,OAAW+B,EAAGgL,OAAOgC,GAArB,UACJ9O,OACA0O,UAAW,kBAAM,GACjBvO,aAAc2B,EAAGmN,cAWvBC,QAvJO,SAuJEzJ,EAvJF,GA2JJ,IAHD3D,EAGC,EAHDA,GAGC,IAFDgN,aAEC,MAFO,OAEP,MADD9O,YACC,SACD,OAAO,IAAItJ,SAAQ,SAAAC,GACjBA,EAAQwX,EAAGlU,IAAIwU,EAAS,CACtB3O,OAAQ,WACRC,KAAM,SAAF,OAAW+B,EAAGgL,OAAOgC,GAArB,UACJ9O,OACAG,aAAc2B,EAAGmN,SACf5U,aAUR8U,UA5KO,SA4KI1J,EA5KJ,GAgLJ,IAHD3D,EAGC,EAHDA,GAGC,IAFDgN,aAEC,MAFO,OAEP,MADD9O,YACC,SACD,OAAO,IAAItJ,SAAQ,SAAAC,GACjBA,EAAQwX,EAAGlU,IAAIwU,EAAS,CACtB3O,OAAQ,WACRC,KAAM,SAAF,OAAW+B,EAAGgL,OAAOgC,GAArB,UACJ9O,OACA0O,UAAW,kBAAM,GACjBvO,aAAc,c,uBCvNxB,IAAIe,EAAM,CACT,aAAc,QAIf,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOtL,EAAoBuL,GAE5B,SAASC,EAAsBF,GAC9B,IAAItL,EAAoBgE,EAAEoH,EAAKE,GAAM,CACpC,IAAI7K,EAAI,IAAI0B,MAAM,uBAAyBmJ,EAAM,KAEjD,MADA7K,EAAE2B,KAAO,mBACH3B,EAEP,OAAO2K,EAAIE,GAEZD,EAAeI,KAAO,WACrB,OAAO3M,OAAO2M,KAAKL,IAEpBC,EAAexK,QAAU2K,EACzBjL,EAAOD,QAAU+K,EACjBA,EAAeE,GAAK,Q,kCCtBpB,W,0LCGI+N,G,UAAU,IAEVC,EAAkB,KAEJ,IAAIC,KAAK,QAE3BF,EAAQG,KAAO,SAAUvH,GACrB,GAAIA,GAAUA,EAAOoH,QAAS,CAC1B,IAAII,EAAM,IAAIF,KAEAE,EACLxH,EAAOoH,QAAQK,SACQ,YAAxBzH,EAAOoH,QAAQ3X,KACf4X,EAAkBK,aAAQC,QAAQ3H,EAAOoH,QAAQrH,SAClB,cAAxBC,EAAOoH,QAAQ3X,MACtBmY,IAAUC,UAO1BT,EAAQU,KAAO,SAAU9H,GACjBA,GAAUA,EAAOoH,UACW,YAAxBpH,EAAOoH,QAAQ3X,MAAsB4X,GACrCA,EAAgBtR,QAChBsR,EAAkB,MACa,cAAxBrH,EAAOoH,QAAQ3X,MACtBmY,IAAUG,SAKPX,QCnCA,WAAUpH,GACjBA,GAAUA,EAAOgI,UACW,YAAxBhI,EAAOgI,QAAQvY,KACfwY,qBAAQjI,EAAOgI,QAAQjI,SACQ,eAAxBC,EAAOgI,QAAQvY,KACtByY,wBAAWlI,EAAOgI,QAAQjI,SACK,iBAAxBC,EAAOgI,QAAQvY,MACtB0Y,0BAAanI,EAAOgI,QAAQjI,W,kCCPzB,GACboB,OAAQ,SAAUnB,EAAQG,GACxB,IAAIiI,GAAiB,EACjBC,GAAkB,EAClBzH,EAAUT,EAAM/J,MAAM6D,QAAQ4G,WAAWD,QAC7C,GAAIZ,EAAOa,YAAcb,EAAOa,WAAWlU,OAAS,EAAG,CACrD,IAAI2b,EAAkBtI,EAAOa,WACzBW,EAAcrB,EAAM/J,MAAM6D,QAAQ4G,WAAWG,UAAUE,OAAOf,EAAM/J,MAAM6D,QAAQ4G,WAAWI,OAC7FsH,EAAgB/G,EAAYF,MAAK,SAAAvT,GACnC,OAAOua,EAAgBtF,QAAQjV,IAAM,KAElCwa,GAAkB3H,IACrBwH,GAAiB,GAGrB,GAAIpI,EAAOwI,eAAgB,CACzB,IAAIzQ,EAAOiI,EAAOtH,IAAI6D,QAAQyD,EAAOyI,QAAS,IAC1CC,EAAS1I,EAAO0I,OAAOC,cACvBC,EAAazI,EAAM/J,MAAM6D,QAAQ4G,WAAW+H,WAAWF,GACvDG,EAAUC,eAAM/Q,EAAKgR,MAAM,KAAK,GAAIH,GAClB,GAAlBC,EAAQlc,QAAgBiU,IAC1ByH,GAAkB,GAGtB,OAAOD,GAAkBC,ICf7B,SAASW,EAAUhZ,GAEjBmQ,OAAMtI,SAAS,kBAAmB,CAChCpI,KAAM,QACNO,MACA+J,KAAM,WAQRkO,qBAAQ,CACN5W,QAASrB,EAAIqB,QACb5B,KAAM,QACNwZ,SAAU,MAKd,IAAMtB,EAAUuB,IAAMxW,OAAO,CAC3B+V,QAAS3G,2BACTjR,QAAS,MAIX8W,EAAQwB,aAAatZ,QAAQ6M,KAC3B,SAAAsD,GACE,IAAKa,EAAWM,OAAOnB,EAAQG,QAE7B,KAAM,CACJ1Q,KAAM,MACNuQ,OAAQA,GAKZ,GAFAoH,EAAQG,KAAKvH,IAEP,wBAAwBoJ,KAAKpJ,EAAOtH,KAAO,CAC/C,IAAMO,EAAQiB,OAAKC,QAAQlI,IAAI,SAC3BgH,GAAmB,cAAVA,IAEX+G,EAAOqJ,QAAQ,iBAAmB,UAAYpQ,GAGlD,OAAO+G,KAET,SAAAhP,GAEEiC,QAAQwI,IAAIzK,GACZtC,QAAQE,OAAOoC,MAKnB2W,EAAQwB,aAAaG,SAAS5M,KAC5B,SAAA4M,GACElC,EAAQU,KAAKwB,EAAStJ,QACtB,IAAMuJ,EAAMD,EAASnd,KACrB,OAAuB,MAAnBod,EAAIC,YACNvB,qBAAQ,CACN5W,QAASkY,EAAIlY,QACb5B,KAAM,QACNwZ,SAAU,MAELva,QAAQE,OAAO2a,EAAIlY,WAE1BA,EAAQiY,EAAStJ,QACVuJ,EAAIpd,SAGf,SAAA6E,GA8BE,OA7BAiC,QAAQwI,IAAIzK,GACZoW,EAAQU,KAAK9W,EAAMgP,QACfhP,EAAMsY,UAAsC,MAA1BtY,EAAMsY,SAASG,QACnCvP,OAAKC,QAAQiL,UAC+B,IAAxCpU,EAAMgP,OAAOtH,IAAIsK,QAAQ,WAC3BiF,qBAAQ,CACN5W,QAAS,iBACT5B,KAAM,QACNwZ,SAAU,MAGdzX,YAAW,WAET0I,OAAKC,QAAQiL,OAAO,SACpBlL,OAAKC,QAAQiL,OAAO,QAEpB/C,OAAOpV,KAAK,CACVqE,KAAM,YAEP,MACMN,EAAMsY,UAAsC,MAA1BtY,EAAMsY,SAASG,OAC1CT,EAAS,IAAI/Y,MAAJ,iBAAoBe,EAAMgP,OAAOtH,OACjC1H,EAAMK,SAAWL,EAAMK,QAAQ2R,QAAQ,YAAc,EAC9DgG,EAAS,IAAI/Y,MAAJ,iBAAoBe,EAAMgP,OAAOtH,OAClB,QAAf1H,EAAMvB,KACfuZ,EAAS,IAAI/Y,MAAJ,mBAAsBe,EAAMgP,OAAOtH,OAE5CsQ,EAAS,IAAI/Y,MAAJ,iBAAoBe,EAAMgP,OAAOtH,OAErChK,QAAQE,OAAOoC,MAIX2W,U,uMCjHT5B,EAAO,CAAE2D,cAAc,GAEd,GACb3R,KAAM,QACNzG,KAAM,OACNyU,OACA4D,SAAU,CAAErY,KAAM,cAClBgG,UAAWsS,OACX3N,SAAW,SAAA4N,GAAG,MAAI,CAChB,CAAE9R,KAAM,QAASzG,KAAM,GAAF,OAAKuY,EAAL,SAAiBvS,UAAW,kBAAM,iDAA8ByO,KAAM,CAAEA,OAAM7J,MAAO,SAC1G,CAAEnE,KAAM,QAASzG,KAAM,GAAF,OAAKuY,EAAL,SAAiBvS,UAAW,kBAAM,iDAA8ByO,KAAM,CAAEA,OAAM7J,MAAO,SAC1G,CAAEnE,KAAM,QAASzG,KAAM,GAAF,OAAKuY,EAAL,SAAiBvS,UAAW,kBAAM,iDAA8ByO,KAAM,CAAEA,OAAM7J,MAAO,SAC1G,CAAEnE,KAAM,QAASzG,KAAM,GAAF,OAAKuY,EAAL,SAAiBvS,UAAW,kBAAM,iDAA8ByO,KAAM,CAAEA,OAAM7J,MAAO,UAJjG,CAKR,UCXC6J,EAAO,CAAE2D,cAAc,GAKvBI,EAAU,CACd,CACE/R,KAAM,IACN4R,SAAU,CAAErY,KAAM,SAClBgG,UAAWsS,OACX3N,SAAU,CAER,CACElE,KAAM,QACNzG,KAAM,QACNyU,OACAzO,UAAW,kBAAM,kDAGnB,CACES,KAAM,UACNzG,KAAM,UACNwU,QAAQ,EACRxO,UAAW,CACTyS,iBADS,SACSC,EAAIxE,EAAMyE,GAC1BA,GAAK,SAAAnQ,GAAE,OAAIA,EAAG2K,QAAQlI,QAAQiJ,EAAK0E,cAErC5W,OAAQ,SAAAiP,GAAC,OAAIA,OAIjB,CACExK,KAAM,mBACNzG,KAAM,WACNwU,QAAQ,EACRxO,UAAW,CACTyS,iBADS,SACSC,EAAIxE,EAAMyE,GAC1BA,GAAK,SAAAnQ,GAAE,OAAIA,EAAG2K,QAAQlI,QAAQ1D,KAAKC,MAAM0M,EAAK3B,OAAOgC,YAEvDvS,OAAQ,SAAAiP,GAAC,OAAIA,SAKrB1E,GAMIsM,EAAW,CAEf,CACEpS,KAAM,SACNzG,KAAM,QACNgG,UAAW,kBAAM,mDAOf8S,EAAY,CAEhB,CACErS,KAAM,IACNzG,KAAM,MACNgG,UAAW,kBAAM,mDAKR+S,EAAgBP,EAGd,YACVA,EACAK,EACAC,GCjFU,KCAA,K,oCCCR,SAASE,IACd,OAAOza,eAAQ,CACb6I,IAAK,gCACLgQ,OAAQ,QCqBZjM,aAAIC,IAAI6N,QAGR,IAKIC,EAAgBC,EALdpI,EAAS,IAAIkI,OAAU,CAC3B3E,WAIoC8E,EAAmB,GACrDC,EAAW,GACX9J,EAAa,CACfG,UAAW,GACXC,MAAO,GACPL,SAAS,GAIPgK,GAAwB,EAExBC,EAAmB,yDAAG,iHAElBC,EAAe,SAAfA,EAAyBlF,GAC7BA,EAAO5J,SAAQ,SAAA6J,GACbA,EAAMvO,UAAYyT,EAAoBA,WAAAlF,EAAMvO,WACxCuO,EAAM5J,UACR6O,EAAajF,EAAM5J,cAND,kBA+BS+O,IA/BT,OA+BlBC,EA/BkB,OAgCtBN,EAASrZ,KAAO2Z,EAAmBC,SACnCP,EAASQ,UAAYF,EAAmBE,UACxCX,EAAiBS,EAAmBG,YACpCV,EAAmBO,EAAmBI,aACtCZ,EAAmBQ,EAAmBK,aACtCzK,EAAWG,UAAYiK,EAAmBM,gBAC1C1K,EAAWI,MAAQgK,EAAmBO,UACtC3K,EAAW+H,WAAa1O,OAAKuR,iBAAiBR,EAAmBS,kBACjE7K,EAAWD,QAAyC,IAA/BqK,EAAmBrK,QAxClB,qDA0CtB3N,QAAQwI,IAAR,MA1CsB,eA8CxBxI,QAAQwI,IAAIkQ,cACZnB,EAAiB,GAAH,sBAAOA,GAAP,eAA0BmB,aAA4B1I,QACpEwH,EAAmB,GAAH,sBAAOA,GAAP,eAA4BkB,aAA4BzI,UAExE4H,EAAaL,GACTmB,EAnDoB,yBAmDDC,GAnDC,eAmDarB,IACjCsB,EApDoB,yBAoDAC,GApDA,eAoDerB,IAEvCrI,EAAO2J,UAAUvB,GACjBtK,OAAMtI,SAAS,mBAAoB8S,GAEnCxK,OAAM7E,OAAO,oBAAb,yBAAsC+O,GAAtC,eAAwDI,KAExDtK,OAAM7E,OAAO,yBAA0BwQ,GAEvC3L,OAAM7E,OAAO,4BAA6BsQ,GAE1CzL,OAAM7E,OAAO,sBAAuBsQ,GAEpCzL,OAAM7E,OAAO,yBAA0BuF,GAEvCV,OAAMtI,SAAS,2BAnES,UAoElBnJ,QAAQC,UApEU,0DAAH,qDAuEnBsd,EAAY,CAAC,UAMjB5J,EAAO6J,WAAP,yDAAkB,WAAOlC,EAAIxE,EAAMyE,GAAjB,0FAEhBrC,IAAUC,QAEV1H,OAAM7E,OAAO,sBAAsB,GAC7BrC,EAAQiB,OAAKC,QAAQlI,IAAI,UACK,IAAhCga,EAAUjJ,QAAQgH,EAAGjS,MANT,qBASVkB,GAAmB,cAAVA,EATC,oBAWP2R,EAXO,iCAYJC,IAZI,OAaVD,GAAwB,EACxBX,EAAKD,EAAGjS,MAAM,GAdJ,wBAgBVkS,IAhBU,gCAqBZ/P,OAAKC,QAAQvC,IAAI,WAAYoS,EAAGE,UAEhCD,EAAK,CACH3Y,KAAM,UAxBI,gCA4BE,UAAZ0Y,EAAG1Y,MAED2H,QAAmB1H,IAAV0H,GACXgR,EAAKzE,EAAKzN,MAAM,GAChB6P,IAAUG,QAKZkC,IArCY,4CAAlB,2DA0CA5H,EAAO8J,WAAU,SAAAnC,GAEfpC,IAAUG,OAEV,IAAMqE,EAAM/J,EAAO+J,IACX9a,EAAwB0Y,EAAxB1Y,KAAMuS,EAAkBmG,EAAlBnG,OAAQC,EAAUkG,EAAVlG,MAEtBsI,EAAI1J,OAAO7K,SAAS,oBAAqB,CAAEvG,OAAMuS,SAAQC,UAEzD5J,OAAKgC,MAAM8N,EAAGjE,KAAK7J,UAGNmG,U,kCChLf,qDAEIgK,EAAS,IAAI,IAAa,CAC5B,GAAM,mBACN,IAAO,yBACP,QAAW,YACX,QAAW,g/PAEA,IAAOzS,IAAIyS,GACT,gB,qGCNA,cACb7U,YAAY,EACZpB,MAAO,CAELoD,KAAM/B,OAAQ6U,MAAM9S,KAEpB+S,WAAY9U,OAAQ6U,MAAM9S,KAAK,GAAGlI,MAEpCmI,QAAS,CAKP+S,cALO,SAKQpW,GACb,OAAOA,EAAMoD,KAAKT,MAAK,SAAAuT,GAAK,OAAIA,EAAMhb,OAAS8E,EAAMmW,gBAGzD5U,QAAS,CAMPC,IANO,WAM2B6U,GAAW,IAAtCrW,EAAsC,EAAtCA,MAAOkF,EAA+B,EAA/BA,OAAQzD,EAAuB,EAAvBA,SACpB,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,wFAEjByH,EAAMmW,WAAanW,EAAMoD,KAAKT,MAAK,SAAAxK,GAAC,OAAIA,EAAE+C,OAASmb,KAAaA,EAAYrW,EAAMoD,KAAK,GAAGlI,KAE1FgK,EAAO,OAJU,SAMXzD,EAAS,iBAAkB,CAC/BC,OAAQ,MACRC,KAAM,mBACN1F,MAAO+D,EAAMmW,WACbvU,MAAM,GACL,CAAEC,MAAM,IAXM,OAajBtJ,IAbiB,2CAAZ,wDAoBTuJ,KA3BO,YA2B4B,IAA3B9B,EAA2B,EAA3BA,MAAOkF,EAAoB,EAApBA,OAAQzD,EAAY,EAAZA,SACrB,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,iGAEQkJ,EAAS,iBAAkB,CAClDC,OAAQ,MACRC,KAAM,mBACNI,aAAc/B,EAAMoD,KAAK,GAAGlI,KAC5B0G,MAAM,GACL,CAAEC,MAAM,IAPM,OAEjB7B,EAAMmW,WAFW,OASjBjR,EAAO,OAEP3M,IAXiB,2CAAZ,yDAeX6L,UAAW,CAKTkS,IALS,SAKJtW,GACHpH,SAAS2J,KAAKgU,UAAd,gBAAmCvW,EAAMmW,gB,qBCrE/C,IAAIrT,EAAM,CACT,eAAgB,OAChB,UAAW,OACX,kBAAmB,OACnB,YAAa,OACb,WAAY,OACZ,YAAa,OACb,YAAa,OACb,kBAAmB,OACnB,gBAAiB,OACjB,cAAe,OACf,YAAa,OACb,aAAc,OACd,kBAAmB,OACnB,UAAW,OACX,YAAa,QAId,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOtL,EAAoBuL,GAE5B,SAASC,EAAsBF,GAC9B,IAAItL,EAAoBgE,EAAEoH,EAAKE,GAAM,CACpC,IAAI7K,EAAI,IAAI0B,MAAM,uBAAyBmJ,EAAM,KAEjD,MADA7K,EAAE2B,KAAO,mBACH3B,EAEP,OAAO2K,EAAIE,GAEZD,EAAeI,KAAO,WACrB,OAAO3M,OAAO2M,KAAKL,IAEpBC,EAAexK,QAAU2K,EACzBjL,EAAOD,QAAU+K,EACjBA,EAAeE,GAAK,Q,kCCpCpB,qDAEIgT,EAAS,IAAI,IAAa,CAC5B,GAAM,cACN,IAAO,oBACP,QAAW,YACX,QAAW,irFAEA,IAAOzS,IAAIyS,GACT,gB,mECRThQ,EAAQC,UAEVsQ,EAAgB,CAClB,kBAAqBhD,OACrB,eAAkB,kBAAM,iDACxB,YAAe,kBAAM,8CACrB,aAAgB,kBAAM,+CACtB,YAAe,kBAAM,8CACrB,eAAkB,kBAAM,iDACxB,iBAAoB,kBAAM,mDAC1B,eAAkB,kBAAM,iDACxB,YAAe,kBAAM,8CACrB,cAAiB,kBAAM,gDACvB,eAAkB,kBAAM,iDACxB,SAAY,kBAAM,iDAClB,SAAY,kBAAM,iDAClB,cAAiB,kBAAM,iDACvB,cAAiB,kBAAM,iDACvB,IAAO,kBAAM,kDAGfvN,EAAM9C,OAAOyC,SAAQ,SAACrJ,GACpBM,QAAQwI,IAAI9I,GACA,eAARA,GACJ/F,OAAOoN,OAAO4S,EAAevQ,EAAM1J,GAAK6J,YAE3BoQ,gB,qBC3Bf,IAAI1T,EAAM,CACT,aAAc,QAIf,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOtL,EAAoBuL,GAE5B,SAASC,EAAsBF,GAC9B,IAAItL,EAAoBgE,EAAEoH,EAAKE,GAAM,CACpC,IAAI7K,EAAI,IAAI0B,MAAM,uBAAyBmJ,EAAM,KAEjD,MADA7K,EAAE2B,KAAO,mBACH3B,EAEP,OAAO2K,EAAIE,GAEZD,EAAeI,KAAO,WACrB,OAAO3M,OAAO2M,KAAKL,IAEpBC,EAAexK,QAAU2K,EACzBjL,EAAOD,QAAU+K,EACjBA,EAAeE,GAAK,Q,kDCtBdoC,EAAM,GAMZ,SAASoR,IAA6B,IAAlBpd,EAAkB,uDAAX,UACrBqd,EAAQ,GACZ,OAAQrd,GACN,IAAK,UAAWqd,EAAQ,UAAW,MACnC,IAAK,UAAWA,EAAQ,UAAW,MACnC,IAAK,UAAWA,EAAQ,UAAW,MACnC,IAAK,UAAWA,EAAQ,UAAW,MACnC,IAAK,SAAUA,EAAQ,UAAW,MAClC,QAAU,MAEZ,OAAOA,EASTrR,EAAIuB,QAAU,SAAUd,EAAOnC,GAAwB,IAAlBtK,EAAkB,uDAAX,UAC1CwD,QAAQwI,IAAR,aACQS,EADR,eACoBnC,EADpB,OAEE,6EAFF,qBAGgB8S,EAAUpd,GAH1B,6DAIE,2BAOJgM,EAAIsR,SAAW,SAAUC,GAAS,OAChC,EAAA/Z,SAAQwI,IAAR,qBACOuR,EAAQ9T,KAAI,SAAA5G,GAAC,OAAIA,EAAE2a,MAAQ,MAAI7Q,KAAK,QAD3C,sBAEK4Q,EAAQ9T,KAAI,SAAA5G,GAAC,uBAAcua,EAAUva,EAAE7C,MAA1B,YAOpBgM,EAAIe,QAAU,SAAUyQ,GACtBxR,EAAIsR,SAAS,CAAC,CAAEE,WAMlBxR,EAAIyR,QAAU,SAAUD,GACtBxR,EAAIsR,SAAS,CAAC,CAAEE,OAAMxd,KAAM,cAM9BgM,EAAIuM,QAAU,SAAUiF,GACtBxR,EAAIsR,SAAS,CAAC,CAAEE,OAAMxd,KAAM,cAM9BgM,EAAI0R,QAAU,SAAUF,GACtBxR,EAAIsR,SAAS,CAAC,CAAEE,OAAMxd,KAAM,cAM9BgM,EAAI2R,OAAS,SAAUH,GACrBxR,EAAIsR,SAAS,CAAC,CAAEE,OAAMxd,KAAM,aAGfgM,Q,iCC5ETtB,EAAU,CAQhBA,IAAc,WAA4D,IAAlD7I,EAAkD,uDAA3C,UAAWe,EAAgC,uDAAxB,GAAIgb,EAAoB,uDAAJ,GAChEC,EAAuB,CACzBC,QAAS,GAEX3gB,OAAOoN,OAAOsT,EAAsBD,GACpCG,IAAQ5V,IAAR,kBAAuBH,OAAQqF,SAASD,QAAxC,YAAmDvL,GAAQe,EAAOib,IAOpEnT,IAAc,WAA4B,IAAlB7I,EAAkB,uDAAX,UAC7B,OAAOkc,IAAQvb,IAAR,kBAAuBwF,OAAQqF,SAASD,QAAxC,YAAmDvL,KAM5D6I,OAAiB,WACf,OAAOqT,IAAQvb,OAOjBkI,OAAiB,WAA4B,IAAlB7I,EAAkB,uDAAX,UAChC,OAAOkc,IAAQpI,OAAR,kBAA0B3N,OAAQqF,SAASD,QAA3C,YAAsDvL,MAGhD6I,I,YCtCXD,EAAO,CACTC,UACAsB,MAMFvB,MAAa,SAAUuT,GACrB,IAAMC,EAAe5L,iBACrB3O,OAAOnE,SAASkN,MAAhB,UAA2BwR,GAA3B,OAA0CD,EAAY,MAAH,OAASA,GAAc,KAM5EvT,KAAY,SAAUxB,GACpB,IAAIiV,EAAI3e,SAASQ,cAAc,KAC/Bme,EAAE5c,aAAa,OAAQ2H,GACvBiV,EAAE5c,aAAa,SAAU,UACzB4c,EAAE5c,aAAa,KAAM,qBACrB/B,SAAS2J,KAAKrI,YAAYqd,GAC1BA,EAAEC,QACF5e,SAAS2J,KAAKvI,YAAYpB,SAAS6e,eAAe,uBAMpD3T,iBAAwB,SAAU0O,GAChC,IAAInc,EAAI,GAKR,OAJAA,EAAE,OAASmc,EAAWjP,QAAO,SAAA5L,GAAC,MAA+B,QAA3BA,EAAE2a,OAAOC,iBAAyBzP,KAAI,SAAAnL,GAAC,OAAI+K,eAAM/K,EAAEgK,SACrFtL,EAAE,QAAUmc,EAAWjP,QAAO,SAAA5L,GAAC,MAA+B,SAA3BA,EAAE2a,OAAOC,iBAA0BzP,KAAI,SAAAnL,GAAC,OAAI+K,eAAM/K,EAAEgK,SACvFtL,EAAE,OAASmc,EAAWjP,QAAO,SAAA5L,GAAC,MAA+B,QAA3BA,EAAE2a,OAAOC,iBAAyBzP,KAAI,SAAAnL,GAAC,OAAI+K,eAAM/K,EAAEgK,SACrFtL,EAAE,UAAYmc,EAAWjP,QAAO,SAAA5L,GAAC,MAA+B,WAA3BA,EAAE2a,OAAOC,iBAA4BzP,KAAI,SAAAnL,GAAC,OAAI+K,eAAM/K,EAAEgK,SACpFtL,IAGMyN,U,kCC1Cf,gBAEe,QAGb3D,OAAQ,CACNF,OAAQ,CACNT,KAAM,IACNG,MAAO,QAIX8E,KAAM,CACJxG,eAAe,GAGjBgP,KAAM,CACJD,OAAQ,CACN,CACE9R,KAAM,QACNyU,KAAM,CACJ7J,MAAO,KACPwN,cAAc,MAMtB5M,SAAU,CACRD,gBAGFxG,OAAQ,CACNyX,QAAQ,GAGVxB,MAAO,CACL9S,KAAM,CACJ,CACE0C,MAAO,aACP5K,KAAM,KACNyc,QAAS,iCAEX,CACE7R,MAAO,MACP5K,KAAM,SACNyc,QAAS,qCAEX,CACE7R,MAAO,OACP5K,KAAM,OACN4F,gBAAiB,0BACjB6W,QAAS,mCAEX,CACE7R,MAAO,KACP5K,KAAM,OACN4F,gBAAiB,0BACjB6W,QAAS,mCAEX,CACE7R,MAAO,+BACP5K,KAAM,sBACNyc,QAAS,oDAKfrW,WAAY,CACVpB,QAAQ,GAGV0B,KAAM,CACJ+B,KAAM,CACJzI,KAAM,Y,sICvEG,cACbkG,YAAY,EACZG,QAAS,CASPqW,MATO,cAkBJ,IATMnW,EASN,EATMA,SACPiC,EAQC,EARDA,GACAzB,EAOC,EAPDA,SACAC,EAMC,EANDA,SACAC,EAKC,EALDA,KACA0V,EAIC,EAJDA,QAIC,IAHDpI,aAGC,MAHO,CACNvU,KAAM,SAEP,EAED4c,eAAa,CACX7V,WACAC,WACAC,OACA0V,YAEC1d,KANH,yDAMQ,WAAMgZ,GAAN,8FAMJrP,OAAKC,QAAQvC,IAAI,OAAQ2R,EAAIlQ,IAC7Ba,OAAKC,QAAQvC,IAAI,QAAS2R,EAAI4E,aAP1B,SASEtW,EAAS,mBAAoB,CACjCvG,KAAMiY,EAAIjY,MACT,CAAE2G,MAAM,IAXP,uBAaEJ,EAAS,QAbX,OAeEE,EAAOmC,OAAKC,QAAQlI,IAAI,YAE9B6H,EAAG2K,QAAQlI,QAAQxE,EAAO,CAAEA,QAAS8N,GAErC3L,OAAKC,QAAQiL,OAAO,YAnBhB,2CANR,uDA2BGgJ,OAAM,SAAApe,GACLiD,QAAQwI,IAAI,QAASzL,OAS3Bqe,OAzDO,cAyDsC,IAAnC/S,EAAmC,EAAnCA,OAAYxB,EAAuB,EAAvBA,GAAuB,IAAnBwU,eAAmB,SAI3C,SAASD,IACPE,eAAcrU,OAAKC,QAAQlI,IAAI,UAAU1B,KAAzC,yDAA8C,WAAMgZ,GAAN,iFAE5CrP,OAAKC,QAAQiL,OAAO,SACpBlL,OAAKC,QAAQiL,OAAO,QAEpBtL,EAAG2K,QAAQxX,KAAK,CACdqE,KAAM,UANoC,2CAA9C,uDAWEgd,GACFhT,EAAO,oBAAoB,EAAM,CAAErD,MAAM,IACzC6B,EAAG0U,SAAS,8BAA+B,OAAQ,CACjDC,kBAAmB,OACnBC,iBAAkB,KAClBjf,KAAM,YAELc,MAAK,WACJ+K,EAAO,oBAAoB,EAAO,CAAErD,MAAM,IAC1CoW,OAMDD,OAAM,WACL9S,EAAO,oBAAoB,EAAO,CAAErD,MAAM,IAC1C6B,EAAG6U,SAAS,eAGhBN,IACA7c,YAAW,WACTod,SAASC,WACR,OAOP3W,KAvGO,YAuGqB,EAApBoD,OAAoB,IAAZzD,EAAY,EAAZA,SACd,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,iGAEXkJ,EAAS,oBAAqB,KAAM,CAAEI,MAAM,IAFjC,uBAIXJ,EAAS,qBAAsB,KAAM,CAAEI,MAAM,IAJlC,uBAMXJ,EAAS,0BAA2B,KAAM,CAAEI,MAAM,IANvC,uBAQXJ,EAAS,iCAAkC,KAAM,CAAEI,MAAM,IAR9C,wBAUXJ,EAAS,oBAAqB,KAAM,CAAEI,MAAM,IAVjC,QAYjBtJ,IAZiB,4CAAZ,2D,sBC7Gb,IAAIuK,EAAM,CACT,sBAAuB,OACvB,iBAAkB,QAInB,SAASC,EAAeC,GACvB,IAAIC,EAAKC,EAAsBF,GAC/B,OAAOtL,EAAoBuL,GAE5B,SAASC,EAAsBF,GAC9B,IAAItL,EAAoBgE,EAAEoH,EAAKE,GAAM,CACpC,IAAI7K,EAAI,IAAI0B,MAAM,uBAAyBmJ,EAAM,KAEjD,MADA7K,EAAE2B,KAAO,mBACH3B,EAEP,OAAO2K,EAAIE,GAEZD,EAAeI,KAAO,WACrB,OAAO3M,OAAO2M,KAAKL,IAEpBC,EAAexK,QAAU2K,EACzBjL,EAAOD,QAAU+K,EACjBA,EAAeE,GAAK,S,kCCvBpB,gCAEe,cACb7B,YAAY,EACZpB,MAAO,CAELjK,KAAM,IAERqO,UAAW,CAKTvI,IALS,SAKJmE,GACHA,EAAMjK,MAAO,IAAI2iB,KAAWC,gB,yDCdlC,sHAEO,SAASb,EAAc/hB,GAC5B,OAAO0D,eAAQ,CACb6I,IAAK,sBACLgQ,OAAQ,OACRvc,OACAib,QAAS,CACP3X,KAAM,UACNsQ,QAAS,CACPiP,YAAY,EACZC,MAAM,EACNhC,KAAM,UACNiC,QAAS,kBACTC,WAAY,yBAMb,SAASZ,EAAetV,GAC7B,OAAOpJ,eAAQ,CACb6I,IAAK,8BAAgCO,EACrCyP,OAAQ,SACRtB,QAAS,CACP3X,KAAM,UACNsQ,QAAS,CACPiP,YAAY,EACZC,MAAM,EACNhC,KAAM,UACNiC,QAAS,kBACTC,WAAY,yBAMb,SAASC,EAAYjjB,GAC1B,OAAO0D,eAAQ,CACb6I,IAAK,oBACLgQ,OAAQ,U,+ECrCG,cACblR,YAAY,EACZpB,MAAO,CAEL2D,KAAMtC,OAAQO,KAAK+B,MAErBpC,QAAS,CAMPC,IANO,WAMmBmC,GAAM,IAAzB3D,EAAyB,EAAzBA,MAAOyB,EAAkB,EAAlBA,SACZ,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,wFAEjByH,EAAM2D,KAAOA,EAFI,SAIXlC,EAAS,iBAAkB,CAC/BC,OAAQ,MACRC,KAAM,YACN1F,MAAO0H,EACP/B,MAAM,GACL,CAAEC,MAAM,IATM,OAWjBtJ,IAXiB,2CAAZ,wDAkBTuJ,KAzBO,YAyBoB,IAAnB9B,EAAmB,EAAnBA,MAAOyB,EAAY,EAAZA,SACb,OAAO,IAAInJ,QAAJ,yDAAY,WAAMC,GAAN,iGAEEkJ,EAAS,iBAAkB,CAC5CC,OAAQ,MACRC,KAAM,YACNI,aAAcV,OAAQO,KAAK+B,KAC3B/B,MAAM,GACL,CAAEC,MAAM,IAPM,OAEjB7B,EAAM2D,KAFW,OASjBpL,IATiB,2CAAZ,2D,kCCnCb,OAAe,cACX6I,YAAY,EACZpB,MAAO,CAEH4K,UAAW,GAEXC,MAAO,GAEP2H,WAAY,CACRyG,IAAK,GACLC,KAAM,GACNC,IAAK,GACLC,OAAQ,IAGZ5O,SAAS,GAEbpG,UAAW,CACP5C,IADO,SACHxB,EAAOjK,GACPiK,EAAM4K,UAAY7U,EAAK6U,UACvB5K,EAAM6K,MAAQ9U,EAAK8U,MACnB7K,EAAMwK,QAAUzU,EAAKyU,QACrBxK,EAAMwS,WAAazc,EAAKyc","file":"js/app.949ba85c.js","sourcesContent":[" \t// install a JSONP callback for chunk loading\n \tfunction webpackJsonpCallback(data) {\n \t\tvar chunkIds = data[0];\n \t\tvar moreModules = data[1];\n \t\tvar executeModules = data[2];\n\n \t\t// add \"moreModules\" to the modules object,\n \t\t// then flag all \"chunkIds\" as loaded and fire callback\n \t\tvar moduleId, chunkId, i = 0, resolves = [];\n \t\tfor(;i < chunkIds.length; i++) {\n \t\t\tchunkId = chunkIds[i];\n \t\t\tif(Object.prototype.hasOwnProperty.call(installedChunks, chunkId) && installedChunks[chunkId]) {\n \t\t\t\tresolves.push(installedChunks[chunkId][0]);\n \t\t\t}\n \t\t\tinstalledChunks[chunkId] = 0;\n \t\t}\n \t\tfor(moduleId in moreModules) {\n \t\t\tif(Object.prototype.hasOwnProperty.call(moreModules, moduleId)) {\n \t\t\t\tmodules[moduleId] = moreModules[moduleId];\n \t\t\t}\n \t\t}\n \t\tif(parentJsonpFunction) parentJsonpFunction(data);\n\n \t\twhile(resolves.length) {\n \t\t\tresolves.shift()();\n \t\t}\n\n \t\t// add entry modules from loaded chunk to deferred list\n \t\tdeferredModules.push.apply(deferredModules, executeModules || []);\n\n \t\t// run deferred modules when all chunks ready\n \t\treturn checkDeferredModules();\n \t};\n \tfunction checkDeferredModules() {\n \t\tvar result;\n \t\tfor(var i = 0; i < deferredModules.length; i++) {\n \t\t\tvar deferredModule = deferredModules[i];\n \t\t\tvar fulfilled = true;\n \t\t\tfor(var j = 1; j < deferredModule.length; j++) {\n \t\t\t\tvar depId = deferredModule[j];\n \t\t\t\tif(installedChunks[depId] !== 0) fulfilled = false;\n \t\t\t}\n \t\t\tif(fulfilled) {\n \t\t\t\tdeferredModules.splice(i--, 1);\n \t\t\t\tresult = __webpack_require__(__webpack_require__.s = deferredModule[0]);\n \t\t\t}\n \t\t}\n\n \t\treturn result;\n \t}\n\n \t// The module cache\n \tvar installedModules = {};\n\n \t// object to store loaded CSS chunks\n \tvar installedCssChunks = {\n \t\t\"app\": 0\n \t}\n\n \t// object to store loaded and loading chunks\n \t// undefined = chunk not loaded, null = chunk preloaded/prefetched\n \t// Promise = chunk loading, 0 = chunk loaded\n \tvar installedChunks = {\n \t\t\"app\": 0\n \t};\n\n \tvar deferredModules = [];\n\n \t// script path function\n \tfunction jsonpScriptSrc(chunkId) {\n \t\treturn __webpack_require__.p + \"js/\" + ({\"codeManager\":\"codeManager\",\"devFormManager\":\"devFormManager\",\"gateLogManager\":\"gateLogManager\",\"groupManager\":\"groupManager\",\"groupTypeManager\":\"groupTypeManager\",\"menuManager\":\"menuManager\",\"onlineManager\":\"onlineManager\",\"serviceManager\":\"serviceManager\",\"userManager\":\"userManager\"}[chunkId]||chunkId) + \".\" + {\"chunk-09a3ba54\":\"b9882ee6\",\"chunk-0f3f85b2\":\"4971298d\",\"chunk-167af6f8\":\"81f8ff9c\",\"chunk-21999a58\":\"551e0b83\",\"chunk-27e78702\":\"4bb4498f\",\"chunk-2d0ac38d\":\"49cebbf2\",\"chunk-2d0c8d39\":\"40982999\",\"chunk-2d0c949d\":\"3f336196\",\"chunk-2d0cbf32\":\"0d79a09c\",\"chunk-2d0cc242\":\"805c51f0\",\"chunk-2d0d7df7\":\"d6e4f6d0\",\"chunk-2d21388d\":\"9317cc9c\",\"chunk-2d21ab47\":\"274213f5\",\"chunk-2d221854\":\"bf499880\",\"chunk-2d222388\":\"13ac4908\",\"chunk-2d224943\":\"1e21b5a1\",\"chunk-2d2300c6\":\"29e81811\",\"chunk-2d23824b\":\"1e7c614a\",\"chunk-340e0b2c\":\"390bcc34\",\"chunk-5a08fdb5\":\"681373d2\",\"chunk-5e08dfa6\":\"8276c8f7\",\"chunk-5fa7c920\":\"7ba9151b\",\"chunk-7440e432\":\"9c6f91cc\",\"chunk-a6b5f0e6\":\"a0c52f26\",\"chunk-a8dbd37c\":\"f8f19074\",\"chunk-b2696c32\":\"2014e95d\",\"chunk-caf7fca2\":\"d2dc46e8\",\"codeManager\":\"dd6c5146\",\"devFormManager\":\"39be730f\",\"gateLogManager\":\"12a1f7cd\",\"groupManager\":\"b96514a4\",\"groupTypeManager\":\"fe17247e\",\"menuManager\":\"ba3fd203\",\"onlineManager\":\"46151df0\",\"serviceManager\":\"eb369b9e\",\"userManager\":\"00c9847c\",\"chunk-067b0828\":\"b50c363e\",\"chunk-9a91c376\":\"d6e56780\",\"chunk-7a8d8083\":\"eef859fc\",\"chunk-0c8cee4c\":\"5c2f3332\",\"chunk-4fdd1de8\":\"99690471\",\"chunk-2d0cc450\":\"f2e517c8\"}[chunkId] + \".js\"\n \t}\n\n \t// The require function\n \tfunction __webpack_require__(moduleId) {\n\n \t\t// Check if module is in cache\n \t\tif(installedModules[moduleId]) {\n \t\t\treturn installedModules[moduleId].exports;\n \t\t}\n \t\t// Create a new module (and put it into the cache)\n \t\tvar module = installedModules[moduleId] = {\n \t\t\ti: moduleId,\n \t\t\tl: false,\n \t\t\texports: {}\n \t\t};\n\n \t\t// Execute the module function\n \t\tmodules[moduleId].call(module.exports, module, module.exports, __webpack_require__);\n\n \t\t// Flag the module as loaded\n \t\tmodule.l = true;\n\n \t\t// Return the exports of the module\n \t\treturn module.exports;\n \t}\n\n \t// This file contains only the entry chunk.\n \t// The chunk loading function for additional chunks\n \t__webpack_require__.e = function requireEnsure(chunkId) {\n \t\tvar promises = [];\n\n\n \t\t// mini-css-extract-plugin CSS loading\n \t\tvar cssChunks = {\"chunk-09a3ba54\":1,\"chunk-167af6f8\":1,\"chunk-21999a58\":1,\"chunk-5e08dfa6\":1,\"chunk-5fa7c920\":1,\"chunk-7440e432\":1,\"chunk-a6b5f0e6\":1,\"chunk-b2696c32\":1,\"chunk-caf7fca2\":1,\"devFormManager\":1,\"groupManager\":1,\"chunk-067b0828\":1,\"chunk-9a91c376\":1,\"chunk-7a8d8083\":1};\n \t\tif(installedCssChunks[chunkId]) promises.push(installedCssChunks[chunkId]);\n \t\telse if(installedCssChunks[chunkId] !== 0 && cssChunks[chunkId]) {\n \t\t\tpromises.push(installedCssChunks[chunkId] = new Promise(function(resolve, reject) {\n \t\t\t\tvar href = \"css/\" + ({\"codeManager\":\"codeManager\",\"devFormManager\":\"devFormManager\",\"gateLogManager\":\"gateLogManager\",\"groupManager\":\"groupManager\",\"groupTypeManager\":\"groupTypeManager\",\"menuManager\":\"menuManager\",\"onlineManager\":\"onlineManager\",\"serviceManager\":\"serviceManager\",\"userManager\":\"userManager\"}[chunkId]||chunkId) + \".\" + {\"chunk-09a3ba54\":\"7a36e3b2\",\"chunk-0f3f85b2\":\"31d6cfe0\",\"chunk-167af6f8\":\"8f5014f5\",\"chunk-21999a58\":\"2d9dc680\",\"chunk-27e78702\":\"31d6cfe0\",\"chunk-2d0ac38d\":\"31d6cfe0\",\"chunk-2d0c8d39\":\"31d6cfe0\",\"chunk-2d0c949d\":\"31d6cfe0\",\"chunk-2d0cbf32\":\"31d6cfe0\",\"chunk-2d0cc242\":\"31d6cfe0\",\"chunk-2d0d7df7\":\"31d6cfe0\",\"chunk-2d21388d\":\"31d6cfe0\",\"chunk-2d21ab47\":\"31d6cfe0\",\"chunk-2d221854\":\"31d6cfe0\",\"chunk-2d222388\":\"31d6cfe0\",\"chunk-2d224943\":\"31d6cfe0\",\"chunk-2d2300c6\":\"31d6cfe0\",\"chunk-2d23824b\":\"31d6cfe0\",\"chunk-340e0b2c\":\"31d6cfe0\",\"chunk-5a08fdb5\":\"31d6cfe0\",\"chunk-5e08dfa6\":\"18fe0c5e\",\"chunk-5fa7c920\":\"11471bd2\",\"chunk-7440e432\":\"9c9fb550\",\"chunk-a6b5f0e6\":\"185a00af\",\"chunk-a8dbd37c\":\"31d6cfe0\",\"chunk-b2696c32\":\"47afe051\",\"chunk-caf7fca2\":\"a4ddb895\",\"codeManager\":\"31d6cfe0\",\"devFormManager\":\"45889504\",\"gateLogManager\":\"31d6cfe0\",\"groupManager\":\"b78b2c38\",\"groupTypeManager\":\"31d6cfe0\",\"menuManager\":\"31d6cfe0\",\"onlineManager\":\"31d6cfe0\",\"serviceManager\":\"31d6cfe0\",\"userManager\":\"31d6cfe0\",\"chunk-067b0828\":\"1507f13f\",\"chunk-9a91c376\":\"e5a13fe4\",\"chunk-7a8d8083\":\"c130a640\",\"chunk-0c8cee4c\":\"31d6cfe0\",\"chunk-4fdd1de8\":\"31d6cfe0\",\"chunk-2d0cc450\":\"31d6cfe0\"}[chunkId] + \".css\";\n \t\t\t\tvar fullhref = __webpack_require__.p + href;\n \t\t\t\tvar existingLinkTags = document.getElementsByTagName(\"link\");\n \t\t\t\tfor(var i = 0; i < existingLinkTags.length; i++) {\n \t\t\t\t\tvar tag = existingLinkTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\") || tag.getAttribute(\"href\");\n \t\t\t\t\tif(tag.rel === \"stylesheet\" && (dataHref === href || dataHref === fullhref)) return resolve();\n \t\t\t\t}\n \t\t\t\tvar existingStyleTags = document.getElementsByTagName(\"style\");\n \t\t\t\tfor(var i = 0; i < existingStyleTags.length; i++) {\n \t\t\t\t\tvar tag = existingStyleTags[i];\n \t\t\t\t\tvar dataHref = tag.getAttribute(\"data-href\");\n \t\t\t\t\tif(dataHref === href || dataHref === fullhref) return resolve();\n \t\t\t\t}\n \t\t\t\tvar linkTag = document.createElement(\"link\");\n \t\t\t\tlinkTag.rel = \"stylesheet\";\n \t\t\t\tlinkTag.type = \"text/css\";\n \t\t\t\tlinkTag.onload = resolve;\n \t\t\t\tlinkTag.onerror = function(event) {\n \t\t\t\t\tvar request = event && event.target && event.target.src || fullhref;\n \t\t\t\t\tvar err = new Error(\"Loading CSS chunk \" + chunkId + \" failed.\\n(\" + request + \")\");\n \t\t\t\t\terr.code = \"CSS_CHUNK_LOAD_FAILED\";\n \t\t\t\t\terr.request = request;\n \t\t\t\t\tdelete installedCssChunks[chunkId]\n \t\t\t\t\tlinkTag.parentNode.removeChild(linkTag)\n \t\t\t\t\treject(err);\n \t\t\t\t};\n \t\t\t\tlinkTag.href = fullhref;\n\n \t\t\t\tvar head = document.getElementsByTagName(\"head\")[0];\n \t\t\t\thead.appendChild(linkTag);\n \t\t\t}).then(function() {\n \t\t\t\tinstalledCssChunks[chunkId] = 0;\n \t\t\t}));\n \t\t}\n\n \t\t// JSONP chunk loading for javascript\n\n \t\tvar installedChunkData = installedChunks[chunkId];\n \t\tif(installedChunkData !== 0) { // 0 means \"already installed\".\n\n \t\t\t// a Promise means \"currently loading\".\n \t\t\tif(installedChunkData) {\n \t\t\t\tpromises.push(installedChunkData[2]);\n \t\t\t} else {\n \t\t\t\t// setup Promise in chunk cache\n \t\t\t\tvar promise = new Promise(function(resolve, reject) {\n \t\t\t\t\tinstalledChunkData = installedChunks[chunkId] = [resolve, reject];\n \t\t\t\t});\n \t\t\t\tpromises.push(installedChunkData[2] = promise);\n\n \t\t\t\t// start chunk loading\n \t\t\t\tvar script = document.createElement('script');\n \t\t\t\tvar onScriptComplete;\n\n \t\t\t\tscript.charset = 'utf-8';\n \t\t\t\tscript.timeout = 120;\n \t\t\t\tif (__webpack_require__.nc) {\n \t\t\t\t\tscript.setAttribute(\"nonce\", __webpack_require__.nc);\n \t\t\t\t}\n \t\t\t\tscript.src = jsonpScriptSrc(chunkId);\n\n \t\t\t\t// create error before stack unwound to get useful stacktrace later\n \t\t\t\tvar error = new Error();\n \t\t\t\tonScriptComplete = function (event) {\n \t\t\t\t\t// avoid mem leaks in IE.\n \t\t\t\t\tscript.onerror = script.onload = null;\n \t\t\t\t\tclearTimeout(timeout);\n \t\t\t\t\tvar chunk = installedChunks[chunkId];\n \t\t\t\t\tif(chunk !== 0) {\n \t\t\t\t\t\tif(chunk) {\n \t\t\t\t\t\t\tvar errorType = event && (event.type === 'load' ? 'missing' : event.type);\n \t\t\t\t\t\t\tvar realSrc = event && event.target && event.target.src;\n \t\t\t\t\t\t\terror.message = 'Loading chunk ' + chunkId + ' failed.\\n(' + errorType + ': ' + realSrc + ')';\n \t\t\t\t\t\t\terror.name = 'ChunkLoadError';\n \t\t\t\t\t\t\terror.type = errorType;\n \t\t\t\t\t\t\terror.request = realSrc;\n \t\t\t\t\t\t\tchunk[1](error);\n \t\t\t\t\t\t}\n \t\t\t\t\t\tinstalledChunks[chunkId] = undefined;\n \t\t\t\t\t}\n \t\t\t\t};\n \t\t\t\tvar timeout = setTimeout(function(){\n \t\t\t\t\tonScriptComplete({ type: 'timeout', target: script });\n \t\t\t\t}, 120000);\n \t\t\t\tscript.onerror = script.onload = onScriptComplete;\n \t\t\t\tdocument.head.appendChild(script);\n \t\t\t}\n \t\t}\n \t\treturn Promise.all(promises);\n \t};\n\n \t// expose the modules object (__webpack_modules__)\n \t__webpack_require__.m = modules;\n\n \t// expose the module cache\n \t__webpack_require__.c = installedModules;\n\n \t// define getter function for harmony exports\n \t__webpack_require__.d = function(exports, name, getter) {\n \t\tif(!__webpack_require__.o(exports, name)) {\n \t\t\tObject.defineProperty(exports, name, { enumerable: true, get: getter });\n \t\t}\n \t};\n\n \t// define __esModule on exports\n \t__webpack_require__.r = function(exports) {\n \t\tif(typeof Symbol !== 'undefined' && Symbol.toStringTag) {\n \t\t\tObject.defineProperty(exports, Symbol.toStringTag, { value: 'Module' });\n \t\t}\n \t\tObject.defineProperty(exports, '__esModule', { value: true });\n \t};\n\n \t// create a fake namespace object\n \t// mode & 1: value is a module id, require it\n \t// mode & 2: merge all properties of value into the ns\n \t// mode & 4: return value when already ns object\n \t// mode & 8|1: behave like require\n \t__webpack_require__.t = function(value, mode) {\n \t\tif(mode & 1) value = __webpack_require__(value);\n \t\tif(mode & 8) return value;\n \t\tif((mode & 4) && typeof value === 'object' && value && value.__esModule) return value;\n \t\tvar ns = Object.create(null);\n \t\t__webpack_require__.r(ns);\n \t\tObject.defineProperty(ns, 'default', { enumerable: true, value: value });\n \t\tif(mode & 2 && typeof value != 'string') for(var key in value) __webpack_require__.d(ns, key, function(key) { return value[key]; }.bind(null, key));\n \t\treturn ns;\n \t};\n\n \t// getDefaultExport function for compatibility with non-harmony modules\n \t__webpack_require__.n = function(module) {\n \t\tvar getter = module && module.__esModule ?\n \t\t\tfunction getDefault() { return module['default']; } :\n \t\t\tfunction getModuleExports() { return module; };\n \t\t__webpack_require__.d(getter, 'a', getter);\n \t\treturn getter;\n \t};\n\n \t// Object.prototype.hasOwnProperty.call\n \t__webpack_require__.o = function(object, property) { return Object.prototype.hasOwnProperty.call(object, property); };\n\n \t// __webpack_public_path__\n \t__webpack_require__.p = \"/\";\n\n \t// on error function for async loading\n \t__webpack_require__.oe = function(err) { console.error(err); throw err; };\n\n \tvar jsonpArray = window[\"webpackJsonp\"] = window[\"webpackJsonp\"] || [];\n \tvar oldJsonpFunction = jsonpArray.push.bind(jsonpArray);\n \tjsonpArray.push = webpackJsonpCallback;\n \tjsonpArray = jsonpArray.slice();\n \tfor(var i = 0; i < jsonpArray.length; i++) webpackJsonpCallback(jsonpArray[i]);\n \tvar parentJsonpFunction = oldJsonpFunction;\n\n\n \t// add entry module to deferred list\n \tdeferredModules.push([0,\"chunk-vendors\"]);\n \t// run deferred modules when ready\n \treturn checkDeferredModules();\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d2-layout-header-aside-group\",class:{grayMode: _vm.grayActive},style:(_vm.styleLayoutMainGroup)},[_c('div',{staticClass:\"d2-layout-header-aside-mask\"}),_c('div',{staticClass:\"d2-layout-header-aside-content\",attrs:{\"flex\":\"dir:top\"}},[_c('div',{staticClass:\"d2-theme-header\",style:({\n opacity: this.searchActive ? 0.5 : 1\n }),attrs:{\"flex-box\":\"0\",\"flex\":\"\"}},[_c('div',{staticClass:\"logo-group\",style:({width: _vm.asideCollapse ? _vm.asideWidthCollapse : _vm.asideWidth}),attrs:{\"flex-box\":\"0\"}},[(_vm.asideCollapse)?_c('img',{attrs:{\"src\":`${_vm.$baseUrl}image/theme/${_vm.themeActiveSetting.name}/logo/icon-only.png`}}):_c('img',{attrs:{\"src\":`${_vm.$baseUrl}image/theme/${_vm.themeActiveSetting.name}/logo/all.png`}})]),_c('div',{staticClass:\"toggle-aside-btn\",attrs:{\"flex-box\":\"0\"},on:{\"click\":_vm.handleToggleAside}},[_c('d2-icon',{attrs:{\"name\":\"bars\"}})],1),_c('d2-menu-header',{attrs:{\"flex-box\":\"1\"}}),_c('div',{staticClass:\"d2-header-right\",attrs:{\"flex-box\":\"0\"}},[_c('d2-header-search',{on:{\"click\":_vm.handleSearchClick}}),_c('d2-header-error-log'),_c('d2-header-fullscreen'),_c('d2-header-theme'),_c('d2-header-size'),_c('d2-header-user')],1)],1),_c('div',{staticClass:\"d2-theme-container\",attrs:{\"flex-box\":\"1\",\"flex\":\"\"}},[_c('div',{ref:\"aside\",staticClass:\"d2-theme-container-aside\",style:({\n width: _vm.asideCollapse ? _vm.asideWidthCollapse : _vm.asideWidth,\n opacity: this.searchActive ? 0.5 : 1\n }),attrs:{\"flex-box\":\"0\"}},[_c('d2-menu-side')],1),_c('div',{staticClass:\"d2-theme-container-main\",attrs:{\"flex-box\":\"1\",\"flex\":\"\"}},[_c('transition',{attrs:{\"name\":\"fade-scale\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.searchActive),expression:\"searchActive\"}],staticClass:\"d2-theme-container-main-layer\",attrs:{\"flex\":\"dir:top\"}},[_c('d2-panel-search',{ref:\"panelSearch\",on:{\"close\":_vm.searchPanelClose}})],1)]),_c('transition',{attrs:{\"name\":\"fade-scale\"}},[_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(!_vm.searchActive),expression:\"!searchActive\"}],staticClass:\"d2-theme-container-main-layer\",attrs:{\"flex\":\"dir:top\"}},[_c('div',{staticClass:\"d2-theme-container-main-header\",attrs:{\"flex-box\":\"0\"}},[_c('d2-tabs')],1),_c('div',{staticClass:\"d2-theme-container-main-body\",attrs:{\"flex-box\":\"1\"}},[_c('transition',{attrs:{\"name\":_vm.transitionActive ? 'fade-transverse' : ''}},[_c('keep-alive',{attrs:{\"include\":_vm.keepAlive}},[_c('router-view')],1)],1)],1)])])],1)]),_vm._m(0)])])\n}\nvar staticRenderFns = [function (){var _vm=this,_c=_vm._self._c;return _c('div',{staticStyle:{\"margin-left\":\"40%\"}},[_c('img',{staticStyle:{\"width\":\"12px\",\"height\":\"12px\"},attrs:{\"src\":\"logo/gongan.png\"}}),_c('span',{staticStyle:{\"color\":\"white\",\"font-size\":\"12px\",\"margin-left\":\"10px\"}},[_vm._v(\"公安备案号:皖ICP备2020016300号-1\")]),_c('span',{staticStyle:{\"color\":\"white\",\"font-size\":\"12px\",\"margin-left\":\"30px\"}},[_vm._v(\"©2021 www.hfkg-ap.top 版权所有\")])])\n}]\n\nexport { render, staticRenderFns }","import { mapState, mapMutations } from 'vuex'\r\n\r\nimport hotkeys from 'hotkeys-js'\r\n\r\nexport default {\r\n components: {\r\n 'd2-panel-search': () => import('../components/panel-search')\r\n },\r\n mounted () {\r\n // 绑定搜索功能快捷键 [ 打开 ]\r\n hotkeys(this.searchHotkey.open, event => {\r\n event.preventDefault()\r\n this.searchPanelOpen()\r\n })\r\n // 绑定搜索功能快捷键 [ 关闭 ]\r\n hotkeys(this.searchHotkey.close, event => {\r\n event.preventDefault()\r\n this.searchPanelClose()\r\n })\r\n },\r\n beforeDestroy () {\r\n hotkeys.unbind(this.searchHotkey.open)\r\n hotkeys.unbind(this.searchHotkey.close)\r\n },\r\n computed: {\r\n ...mapState('d2admin', {\r\n searchActive: state => state.search.active,\r\n searchHotkey: state => state.search.hotkey\r\n })\r\n },\r\n methods: {\r\n ...mapMutations({\r\n searchToggle: 'd2admin/search/toggle',\r\n searchSet: 'd2admin/search/set'\r\n }),\r\n /**\r\n * 接收点击搜索按钮\r\n */\r\n handleSearchClick () {\r\n this.searchToggle()\r\n if (this.searchActive) {\r\n this.$refs.panelSearch.focus()\r\n }\r\n },\r\n searchPanelOpen () {\r\n if (!this.searchActive) {\r\n this.searchSet(true)\r\n this.$refs.panelSearch.focus()\r\n }\r\n },\r\n // 关闭搜索面板\r\n searchPanelClose () {\r\n if (this.searchActive) {\r\n this.searchSet(false)\r\n }\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./layout.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./layout.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./layout.vue?vue&type=template&id=652a23be&\"\nimport script from \"./layout.vue?vue&type=script&lang=js&\"\nexport * from \"./layout.vue?vue&type=script&lang=js&\"\nimport style0 from \"./layout.vue?vue&type=style&index=0&id=652a23be&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","import layout from './layout'\r\n\r\nexport default layout\r\n","// 设置文件\r\nimport setting from '@/setting.js'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n // 是否开启页面过度动画\r\n active: setting.transition.active\r\n },\r\n actions: {\r\n /**\r\n * @description 设置开启状态\r\n * @param {Object} state vuex state\r\n * @param {Boolean} active 新的状态\r\n */\r\n set ({ state, dispatch }, active) {\r\n return new Promise(async resolve => {\r\n // store 赋值\r\n state.active = active\r\n // 持久化\r\n await dispatch('d2admin/db/set', {\r\n dbName: 'sys',\r\n path: 'transition.active',\r\n value: state.active,\r\n user: true\r\n }, { root: true })\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * 从数据库读取页面过渡动画设置\r\n * @param {Object} state vuex state\r\n */\r\n load ({ state, dispatch }) {\r\n return new Promise(async resolve => {\r\n // store 赋值\r\n state.active = await dispatch('d2admin/db/get', {\r\n dbName: 'sys',\r\n path: 'transition.active',\r\n defaultValue: setting.transition.active,\r\n user: true\r\n }, { root: true })\r\n // end\r\n resolve()\r\n })\r\n }\r\n }\r\n}\r\n","export * from \"-!../../../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../../../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../../../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../../../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-3!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./layout.vue?vue&type=style&index=0&id=652a23be&prod&lang=scss&\"","import Mock from 'mockjs'\r\n\r\nconst userDB = [\r\n {\r\n username: 'admin',\r\n password: 'admin',\r\n uuid: 'admin-uuid',\r\n name: '管理员'\r\n },\r\n {\r\n username: 'editor',\r\n password: 'editor',\r\n uuid: 'editor-uuid',\r\n name: '编辑'\r\n },\r\n {\r\n username: 'user1',\r\n password: 'user1',\r\n uuid: 'user1-uuid',\r\n name: '用户1'\r\n }\r\n]\r\n\r\nMock.mock('/api/login', 'post', ({ url, type, body }) => {\r\n const bodyObj = JSON.parse(body)\r\n const user = userDB.find(e => e.username === bodyObj.username && e.password === bodyObj.password)\r\n if (user) {\r\n return {\r\n code: 0,\r\n msg: '登录成功',\r\n data: {\r\n ...user,\r\n token: 'd787syv8dys8cas80d9s0a0d8f79ads56f7s4d56f879a8as89fd980s7dg'\r\n }\r\n }\r\n } else {\r\n return {\r\n code: 401,\r\n msg: '用户名或密码错误',\r\n data: {}\r\n }\r\n }\r\n})\r\n","var map = {\n\t\"./sys/login/index.js\": \"3197\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"358e\";","import dayjs from 'dayjs'\r\nimport { get, toString } from 'lodash'\r\nimport util from '@/libs/util.js'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n // 错误日志\r\n list: []\r\n },\r\n getters: {\r\n /**\r\n * @description 返回现存 log (all) 的条数\r\n * @param {*} state vuex state\r\n */\r\n length (state) {\r\n return state.list.length\r\n },\r\n /**\r\n * @description 返回现存 log (error) 的条数\r\n * @param {*} state vuex state\r\n */\r\n lengthError (state) {\r\n return state.list.filter(l => l.type === 'error').length\r\n }\r\n },\r\n actions: {\r\n /**\r\n * @description 添加一个日志\r\n * @param {Object} param type {String} 类型\r\n * @param {Object} param err {Error} 错误对象\r\n * @param {Object} param vm {Object} vue 实例\r\n * @param {Object} param info {String} 信息\r\n */\r\n add ({ state, rootState }, { type, err, vm, info }) {\r\n // store 赋值\r\n state.list.push(Object.assign({\r\n // 记录类型\r\n type: 'log', // or error\r\n // 信息\r\n info: '',\r\n // 错误对象\r\n err: '',\r\n // vue 实例\r\n vm: '',\r\n // 当前用户信息\r\n user: rootState.d2admin.user.info,\r\n // 当前用户的 uuid\r\n uuid: util.cookies.get('uuid'),\r\n // 当前的 token\r\n token: util.cookies.get('token'),\r\n // 当前地址\r\n url: get(window, 'location.href', ''),\r\n // 当前时间\r\n time: dayjs().format('YYYY-M-D HH:mm:ss')\r\n }, {\r\n type,\r\n err,\r\n vm,\r\n info: toString(info)\r\n }))\r\n }\r\n },\r\n mutations: {\r\n /**\r\n * @description 清空日志\r\n * @param {Object} state vuex state\r\n */\r\n clean (state) {\r\n // store 赋值\r\n state.list = []\r\n }\r\n }\r\n}\r\n","// 设置文件\r\nimport setting from '@/setting.js'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n // 顶栏菜单\r\n header: [],\r\n // 侧栏菜单\r\n aside: [],\r\n fullAside: [],\r\n // 侧边栏收缩\r\n asideCollapse: setting.menu.asideCollapse\r\n },\r\n actions: {\r\n /**\r\n * 设置侧边栏展开或者收缩\r\n * @param {Object} state vuex state\r\n * @param {Boolean} collapse is collapse\r\n */\r\n asideCollapseSet({ state, dispatch }, collapse) {\r\n return new Promise(async resolve => {\r\n // store 赋值\r\n state.asideCollapse = collapse\r\n // 持久化\r\n await dispatch('d2admin/db/set', {\r\n dbName: 'sys',\r\n path: 'menu.asideCollapse',\r\n value: state.asideCollapse,\r\n user: true\r\n }, { root: true })\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * 切换侧边栏展开和收缩\r\n * @param {Object} state vuex state\r\n */\r\n asideCollapseToggle({ state, dispatch }) {\r\n return new Promise(async resolve => {\r\n // store 赋值\r\n state.asideCollapse = !state.asideCollapse\r\n // 持久化\r\n await dispatch('d2admin/db/set', {\r\n dbName: 'sys',\r\n path: 'menu.asideCollapse',\r\n value: state.asideCollapse,\r\n user: true\r\n }, { root: true })\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * 从持久化数据读取侧边栏展开或者收缩\r\n * @param {Object} state vuex state\r\n */\r\n asideCollapseLoad({ state, dispatch }) {\r\n return new Promise(async resolve => {\r\n // store 赋值\r\n state.asideCollapse = await dispatch('d2admin/db/get', {\r\n dbName: 'sys',\r\n path: 'menu.asideCollapse',\r\n defaultValue: setting.menu.asideCollapse,\r\n user: true\r\n }, { root: true })\r\n // end\r\n resolve()\r\n })\r\n }\r\n },\r\n mutations: {\r\n /**\r\n * @description 设置顶栏菜单\r\n * @param {Object} state vuex state\r\n * @param {Array} menu menu setting\r\n */\r\n headerSet(state, menu) {\r\n // store 赋值\r\n state.header = menu\r\n },\r\n /**\r\n * @description 设置侧边栏菜单\r\n * @param {Object} state vuex state\r\n * @param {Array} menu menu setting\r\n */\r\n asideSet(state, menu) {\r\n // store 赋值\r\n state.aside = menu\r\n },\r\n fullAsideSet(state, menu) {\r\n // store 赋值\r\n state.fullAside = menu\r\n state.aside = menu\r\n }\r\n }\r\n}\r\n","import screenfull from 'screenfull'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n // 全屏激活\r\n active: false\r\n },\r\n actions: {\r\n /**\r\n * @description 初始化监听\r\n */\r\n listen ({ commit }) {\r\n return new Promise(resolve => {\r\n if (screenfull.enabled) {\r\n screenfull.on('change', () => {\r\n console.log('1')\r\n if (!screenfull.isFullscreen) {\r\n commit('set', false)\r\n }\r\n })\r\n }\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @description 切换全屏\r\n */\r\n toggle ({ commit }) {\r\n return new Promise(resolve => {\r\n if (screenfull.isFullscreen) {\r\n screenfull.exit()\r\n commit('set', false)\r\n } else {\r\n screenfull.request()\r\n commit('set', true)\r\n }\r\n // end\r\n resolve()\r\n })\r\n }\r\n },\r\n mutations: {\r\n /**\r\n * @description 设置 store 里的全屏状态\r\n * @param {Object} state vuex state\r\n * @param {Boolean} active active\r\n */\r\n set (state, active) {\r\n state.active = active\r\n }\r\n }\r\n}\r\n","import setting from '@/setting.js'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n // 搜索面板激活状态\r\n active: false,\r\n // 快捷键\r\n hotkey: {\r\n open: setting.hotkey.search.open,\r\n close: setting.hotkey.search.close\r\n },\r\n // 所有可以搜索的页面\r\n pool: []\r\n },\r\n mutations: {\r\n /**\r\n * @description 切换激活状态\r\n * @param {Object} state vuex state\r\n */\r\n toggle (state) {\r\n state.active = !state.active\r\n },\r\n /**\r\n * @description 设置激活模式\r\n * @param {Object} state vuex state\r\n * @param {Boolean} active active\r\n */\r\n set (state, active) {\r\n state.active = active\r\n },\r\n /**\r\n * @description 初始化\r\n * @param {Object} state vuex state\r\n * @param {Array} menu menu\r\n */\r\n init (state, menu) {\r\n const pool = []\r\n const push = function (menu, titlePrefix = []) {\r\n menu.forEach(m => {\r\n if (m.children) {\r\n push(m.children, [ ...titlePrefix, m.title ])\r\n } else {\r\n pool.push({\r\n ...m,\r\n fullTitle: [ ...titlePrefix, m.title ].join(' / ')\r\n })\r\n }\r\n })\r\n }\r\n push(menu)\r\n state.pool = pool\r\n }\r\n }\r\n}\r\n","/**\r\n * The file enables `@/store/index.js` to import all vuex modules\r\n * in a one-shot manner. There should not be any reason to edit this file.\r\n */\r\n\r\nconst files = require.context('./modules', false, /\\.js$/)\r\nconst modules = {}\r\n\r\nfiles.keys().forEach(key => {\r\n modules[key.replace(/(\\.\\/|\\.js)/g, '')] = files(key).default\r\n})\r\n\r\nexport default {\r\n namespaced: true,\r\n modules\r\n}\r\n","import Vue from 'vue'\r\nimport Vuex from 'vuex'\r\n\r\nimport d2admin from './modules/d2admin'\r\n\r\nVue.use(Vuex)\r\n\r\nexport default new Vuex.Store({\r\n modules: {\r\n d2admin\r\n }\r\n})\r\n","import util from '@/libs/util.js'\r\nimport setting from '@/setting.js'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n // D2Admin 版本\r\n version: setting.releases.version\r\n },\r\n mutations: {\r\n /**\r\n * @description 显示版本信息\r\n * @param {Object} state vuex state\r\n */\r\n versionShow (state) {\r\n util.log.capsule('D2Admin', `v${state.version}`)\r\n console.log('Github https://github.com/wxiaoqi/Spring-Cloud-Platform')\r\n console.log('请不要吝啬您的 star,谢谢 ~')\r\n }\r\n }\r\n}\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n\r\n\r\n","import mod from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../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=js&\"; export default mod; export * from \"-!../node_modules/cache-loader/dist/cjs.js??ref--12-0!../node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../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=js&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=29a75034&\"\nimport script from \"./App.vue?vue&type=script&lang=js&\"\nexport * from \"./App.vue?vue&type=script&lang=js&\"\nimport style0 from \"./App.vue?vue&type=style&index=0&id=29a75034&prod&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","export default function (Mock) {\r\n // 解决 Mock 情况下,携带 withCredentials = true,且未被拦截的跨域请求丢失 Cookies 的问题\r\n Mock.XHR.prototype.proxy_send = Mock.XHR.prototype.send\r\n Mock.XHR.prototype.send = function () {\r\n if (this.custom.xhr) {\r\n this.custom.xhr.withCredentials = this.withCredentials || false\r\n }\r\n this.proxy_send(...arguments)\r\n }\r\n}\r\n","import Mock from 'mockjs'\r\n\r\n// 补丁 解决 mock.js 影响 Cookie 携带\r\nimport PatchCookie from './patch/cookie'\r\n\r\nPatchCookie(Mock)\r\n\r\n// 导入所有的接口\r\nconst req = context => context.keys().map(context)\r\nreq(require.context('./api/', true, /\\.js$/))\r\n\r\n// 设置全局延时 没有延时的话有时候会检测不到数据变化 建议保留\r\nMock.setup({\r\n timeout: '300-600'\r\n})\r\n","export default {\r\n pub: {\r\n pageHeader: {\r\n demo: '示例'\r\n }\r\n }\r\n}\r\n","export default {\r\n pub: {\r\n pageHeader: {\r\n demo: 'サンプル'\r\n }\r\n }\r\n}\r\n","export default {\r\n pub: {\r\n pageHeader: {\r\n demo: 'Demo'\r\n }\r\n }\r\n}\r\n","import Vue from 'vue'\r\nimport VueI18n from 'vue-i18n'\r\n\r\nimport cn from './lang/cn'\r\nimport ja from './lang/ja'\r\nimport en from './lang/en'\r\n\r\nVue.use(VueI18n)\r\n\r\nexport default new VueI18n({\r\n locale: 'cn',\r\n messages: {\r\n cn,\r\n ja,\r\n en\r\n }\r\n})\r\n","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{ref:\"container\",staticClass:\"container-component\"},[(_vm.type === 'card' && !_vm.betterScroll)?_c('d2-container-card',[(_vm.$slots.header)?_vm._t(\"header\",null,{\"slot\":\"header\"}):_vm._e(),_vm._t(\"default\"),(_vm.$slots.footer)?_vm._t(\"footer\",null,{\"slot\":\"footer\"}):_vm._e()],2):_vm._e(),(_vm.type === 'card' && _vm.betterScroll)?_c('d2-container-card-bs',_vm._b({},'d2-container-card-bs',_vm.$attrs,false),[(_vm.$slots.header)?_vm._t(\"header\",null,{\"slot\":\"header\"}):_vm._e(),_vm._t(\"default\"),(_vm.$slots.footer)?_vm._t(\"footer\",null,{\"slot\":\"footer\"}):_vm._e()],2):_vm._e(),(_vm.type === 'ghost' && !_vm.betterScroll)?_c('d2-container-ghost',[(_vm.$slots.header)?_vm._t(\"header\",null,{\"slot\":\"header\"}):_vm._e(),_vm._t(\"default\"),(_vm.$slots.footer)?_vm._t(\"footer\",null,{\"slot\":\"footer\"}):_vm._e()],2):_vm._e(),(_vm.type === 'ghost' && _vm.betterScroll)?_c('d2-container-ghost-bs',_vm._b({},'d2-container-ghost-bs',_vm.$attrs,false),[(_vm.$slots.header)?_vm._t(\"header\",null,{\"slot\":\"header\"}):_vm._e(),_vm._t(\"default\"),(_vm.$slots.footer)?_vm._t(\"footer\",null,{\"slot\":\"footer\"}):_vm._e()],2):_vm._e(),(_vm.type === 'full' && !_vm.betterScroll)?_c('d2-container-full',[(_vm.$slots.header)?_vm._t(\"header\",null,{\"slot\":\"header\"}):_vm._e(),_vm._t(\"default\"),(_vm.$slots.footer)?_vm._t(\"footer\",null,{\"slot\":\"footer\"}):_vm._e()],2):_vm._e(),(_vm.type === 'full' && _vm.betterScroll)?_c('d2-container-full-bs',_vm._b({},'d2-container-full-bs',_vm.$attrs,false),[(_vm.$slots.header)?_vm._t(\"header\",null,{\"slot\":\"header\"}):_vm._e(),_vm._t(\"default\"),(_vm.$slots.footer)?_vm._t(\"footer\",null,{\"slot\":\"footer\"}):_vm._e()],2):_vm._e()],1)\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d2-container-full\"},[(_vm.$slots.header)?_c('div',{ref:\"header\",staticClass:\"d2-container-full__header\"},[_vm._t(\"header\")],2):_vm._e(),_c('div',{staticClass:\"d2-container-full__body\"},[_vm._t(\"default\")],2),(_vm.$slots.footer)?_c('div',{ref:\"footer\",staticClass:\"d2-container-full__footer\"},[_vm._t(\"footer\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./d2-container-full.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./d2-container-full.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./d2-container-full.vue?vue&type=template&id=34e5541e&\"\nimport script from \"./d2-container-full.vue?vue&type=script&lang=js&\"\nexport * from \"./d2-container-full.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d2-container-full-bs\"},[(_vm.$slots.header)?_c('div',{ref:\"header\",staticClass:\"d2-container-full-bs__header\"},[_vm._t(\"header\")],2):_vm._e(),_c('div',{ref:\"wrapper\",staticClass:\"d2-container-full-bs__body\"},[_c('div',{staticClass:\"d2-container-full-bs__body-wrapper-inner\"},[_vm._t(\"default\")],2)]),(_vm.$slots.footer)?_c('div',{ref:\"footer\",staticClass:\"d2-container-full-bs__footer\"},[_vm._t(\"footer\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import BScroll from 'better-scroll'\r\nexport default {\r\n props: {\r\n betterScrollOptions: {\r\n type: Object,\r\n required: false,\r\n default: () => ({})\r\n }\r\n },\r\n data () {\r\n return {\r\n BS: null\r\n }\r\n },\r\n mounted () {\r\n this.scrollInit()\r\n },\r\n beforeDestroy () {\r\n this.scrollDestroy()\r\n },\r\n methods: {\r\n scrollInit () {\r\n this.BS = new BScroll(this.$refs.wrapper, Object.assign({\r\n mouseWheel: true,\r\n scrollbar: {\r\n fade: true,\r\n interactive: false\r\n }\r\n }, this.betterScrollOptions))\r\n },\r\n scrollDestroy () {\r\n // https://github.com/d2-projects/d2-admin/issues/75\r\n try {\r\n this.BS.destroy()\r\n } catch (e) {\r\n delete this.BS\r\n this.BS = null\r\n }\r\n }\r\n }\r\n}\r\n","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./d2-container-full-bs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./d2-container-full-bs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./d2-container-full-bs.vue?vue&type=template&id=53ff50d8&\"\nimport script from \"./d2-container-full-bs.vue?vue&type=script&lang=js&\"\nexport * from \"./d2-container-full-bs.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d2-container-ghost\"},[(_vm.$slots.header)?_c('div',{ref:\"header\",staticClass:\"d2-container-ghost__header\"},[_vm._t(\"header\")],2):_vm._e(),_c('div',{staticClass:\"d2-container-ghost__body\"},[_vm._t(\"default\")],2),(_vm.$slots.footer)?_c('div',{ref:\"footer\",staticClass:\"d2-container-ghost__footer\"},[_vm._t(\"footer\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { render, staticRenderFns } from \"./d2-container-ghost.vue?vue&type=template&id=50087654&\"\nvar script = {}\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d2-container-ghost-bs\"},[(_vm.$slots.header)?_c('div',{ref:\"header\",staticClass:\"d2-container-ghost-bs__header\"},[_vm._t(\"header\")],2):_vm._e(),_c('div',{ref:\"wrapper\",staticClass:\"d2-container-ghost-bs__body\"},[_vm._t(\"default\")],2),(_vm.$slots.footer)?_c('div',{ref:\"footer\",staticClass:\"d2-container-ghost-bs__footer\"},[_vm._t(\"footer\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./d2-container-ghost-bs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./d2-container-ghost-bs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./d2-container-ghost-bs.vue?vue&type=template&id=4b5a955b&\"\nimport script from \"./d2-container-ghost-bs.vue?vue&type=script&lang=js&\"\nexport * from \"./d2-container-ghost-bs.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d2-container-card\"},[(_vm.$slots.header)?_c('div',{ref:\"header\",staticClass:\"d2-container-card__header\"},[_vm._t(\"header\")],2):_vm._e(),_c('div',{staticClass:\"d2-container-card__body\"},[_c('div',{staticClass:\"d2-container-card__body-card\"},[_vm._t(\"default\")],2)]),(_vm.$slots.footer)?_c('div',{ref:\"footer\",staticClass:\"d2-container-card__footer\"},[_vm._t(\"footer\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./d2-container-card.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./d2-container-card.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./d2-container-card.vue?vue&type=template&id=ae877d8a&\"\nimport script from \"./d2-container-card.vue?vue&type=script&lang=js&\"\nexport * from \"./d2-container-card.vue?vue&type=script&lang=js&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n null,\n null\n \n)\n\nexport default component.exports","var render = function render(){var _vm=this,_c=_vm._self._c;return _c('div',{staticClass:\"d2-container-card-bs\"},[(_vm.$slots.header)?_c('div',{ref:\"header\",staticClass:\"d2-container-card-bs__header\"},[_vm._t(\"header\")],2):_vm._e(),_c('div',{ref:\"wrapper\",staticClass:\"d2-container-card-bs__body\"},[_c('div',{staticClass:\"d2-container-card-bs__body-wrapper-inner\"},[_c('div',{staticClass:\"d2-container-card-bs__body-card\"},[_vm._t(\"default\")],2)])]),(_vm.$slots.footer)?_c('div',{ref:\"footer\",staticClass:\"d2-container-card-bs__footer\"},[_vm._t(\"footer\")],2):_vm._e()])\n}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\r\n\r\n\r\n","import mod from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./d2-container-card-bs.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../../node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./d2-container-card-bs.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./d2-container-card-bs.vue?vue&type=template&id=32848464&\"\nimport script from \"./d2-container-card-bs.vue?vue&type=script&lang=js&\"\nexport * from \"./d2-container-card-bs.vue?vue&type=script&lang=js&\"\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","\r\n\r\n\r\n","import mod from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"; export default mod; export * from \"-!../../../node_modules/cache-loader/dist/cjs.js??ref--12-0!../../../node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=js&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=31cdb644&\"\nimport script from \"./index.vue?vue&type=script&lang=js&\"\nexport * from \"./index.vue?vue&type=script&lang=js&\"\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'\r\n\r\nimport d2Container from './d2-container'\r\n\r\n// 注意 有些组件使用异步加载会有影响\r\nVue.component('d2-container', d2Container)\r\nVue.component('d2-page-cover', () => import('./d2-page-cover'))\r\nVue.component('d2-icon', () => import('./d2-icon'))\r\nVue.component('d2-icon-svg', () => import('./d2-icon-svg/index.vue'))\r\nVue.component('d2-icon-select', () => import('./d2-icon-select/index.vue'))\r\n","import Vue from 'vue'\r\n\r\nconst requireAll = requireContext => requireContext.keys().map(requireContext)\r\nconst req = require.context('./icons', false, /\\.svg$/)\r\nconst iconMap = requireAll(req)\r\n\r\nVue.prototype.$IconSvg = iconMap.map(e => e.default.id.slice(3))\r\n","import store from '@/store'\r\nimport util from '@/libs/util'\r\n\r\nexport default {\r\n install (Vue, options) {\r\n Vue.config.errorHandler = function (err, vm, info) {\r\n Vue.nextTick(() => {\r\n // 添加 log\r\n store.dispatch('d2admin/log/add', {\r\n type: 'error',\r\n err,\r\n vm,\r\n info\r\n })\r\n // 只在开发模式下打印 log\r\n if (process.env.NODE_ENV === 'development') {\r\n util.log.capsule('D2Admin', 'ErrorHandler', 'danger')\r\n util.log.danger('>>>>>> 错误信息 >>>>>>')\r\n console.log(info)\r\n util.log.danger('>>>>>> Vue 实例 >>>>>>')\r\n console.log(vm)\r\n util.log.danger('>>>>>> Error >>>>>>')\r\n console.log(err)\r\n }\r\n })\r\n }\r\n }\r\n}\r\n","import store from '@/store'\r\nimport util from '@/libs/util'\r\n\r\nexport default {\r\n install (Vue, options) {\r\n // 快速打印 log\r\n Vue.prototype.$log = util.log\r\n // 快速记录日志\r\n Vue.prototype.$logAdd = function (info, show = true) {\r\n // store 赋值\r\n store.dispatch('d2admin/log/add', {\r\n type: 'log',\r\n info\r\n })\r\n // 显示在控制台\r\n if (show && process.env.NODE_ENV === 'development') {\r\n util.log.default(info)\r\n }\r\n }\r\n }\r\n}\r\n","import util from '@/libs/util'\r\n\r\nexport default {\r\n install (Vue, options) {\r\n Vue.prototype.$open = util.open\r\n }\r\n}\r\n","export default {\r\n install(Vue, options) {\r\n let store = options.store\r\n Vue.directive('permission', {\r\n inserted: function (el, binding, vnode) {\r\n let isAdmin = store.state.d2admin.permission.isAdmin;\r\n if (isAdmin) {\r\n return\r\n }\r\n let checkCodes = [];\r\n if (binding.arg === \"function\") {\r\n checkCodes = store.state.d2admin.permission.functions;\r\n } else if (binding.arg === \"role\") {\r\n checkCodes = store.state.d2admin.permission.roles;\r\n } else {\r\n checkCodes = store.state.d2admin.permission.functions.concat(store.state.d2admin.permission.roles);\r\n }\r\n let access = true;\r\n if (binding.modifiers.all) {\r\n for (let need of binding.value) {\r\n if (checkCodes.some(s => s !== need)) {\r\n access = false;\r\n break;\r\n }\r\n }\r\n } else {\r\n access = false;\r\n for (let need of binding.value) {\r\n if (checkCodes.some(s => s === need)) {\r\n access = true;\r\n break;\r\n }\r\n }\r\n }\r\n if (!access) {\r\n el.parentNode.removeChild(el);\r\n }\r\n }\r\n })\r\n Vue.prototype.hasPermissions = (permissions) => {\r\n let isAdmin = store.state.d2admin.permission.isAdmin;\r\n if (isAdmin) {\r\n return true\r\n }\r\n let has = false;\r\n let checkCodes = store.state.d2admin.permission.functions.concat(store.state.d2admin.permission.roles);\r\n for (let need of permissions) {\r\n if (checkCodes.some(s => s === need)) {\r\n has = true;\r\n break;\r\n }\r\n }\r\n return has\r\n }\r\n Vue.prototype.hasFunctions = (functions) => {\r\n let isAdmin = store.state.d2admin.permission.isAdmin;\r\n if (isAdmin) {\r\n return true\r\n }\r\n let has = false;\r\n let checkCodes = store.state.d2admin.permission.functions\r\n for (let need of functions) {\r\n if (checkCodes.some(s => s === need)) {\r\n has = true;\r\n break;\r\n }\r\n }\r\n return has;\r\n }\r\n Vue.prototype.hasRoles = (roles) => {\r\n let isAdmin = store.state.d2admin.permission.isAdmin;\r\n if (isAdmin) {\r\n return true\r\n }\r\n let has = false;\r\n let checkCodes = store.state.d2admin.permission.roles\r\n for (let need of roles) {\r\n if (checkCodes.some(s => s === need)) {\r\n has = true;\r\n break;\r\n }\r\n }\r\n return has;\r\n }\r\n }\r\n}\r\n","// Element\r\nimport ElementUI from 'element-ui'\r\nimport 'element-ui/lib/theme-chalk/index.css'\r\n// flex 布局库\r\nimport 'flex.css'\r\n// 组件\r\nimport '@/components'\r\n// svg 图标\r\nimport '@/assets/svg-icons'\r\n// 功能插件\r\nimport pluginError from '@/plugin/error'\r\nimport pluginLog from '@/plugin/log'\r\nimport pluginOpen from '@/plugin/open'\r\nimport pluginPermission from '@/plugin/permission'\r\n\r\nexport default {\r\n async install(Vue, options) {\r\n // 设置为 false 以阻止 vue 在启动时生成生产提示。https://cn.vuejs.org/v2/api/#productionTip\r\n Vue.config.productionTip = false\r\n // 当前环境\r\n Vue.prototype.$env = process.env.NODE_ENV\r\n // 当前的 baseUrl\r\n Vue.prototype.$baseUrl = process.env.BASE_URL\r\n // Element\r\n Vue.use(ElementUI)\r\n // 插件\r\n Vue.use(pluginError)\r\n Vue.use(pluginLog)\r\n Vue.use(pluginOpen)\r\n Vue.use(pluginPermission, options)\r\n }\r\n}\r\n","// polyfill\r\nimport 'babel-polyfill'\r\n// Vue\r\nimport Vue from 'vue'\r\nimport App from './App'\r\n// store\r\nimport store from '@/store/index'\r\n// 模拟数据\r\nimport '@/mock'\r\n// 多国语\r\nimport i18n from './i18n'\r\n// 核心插件\r\nimport d2Admin from '@/plugin/d2admin'\r\n// 路由\r\nimport router from './router'\r\n// 核心插件\r\nVue.use(d2Admin, { store })\r\n\r\nnew Vue({\r\n router,\r\n store,\r\n i18n,\r\n render: h => h(App),\r\n created () {\r\n\r\n },\r\n mounted () {\r\n // 展示系统信息\r\n this.$store.commit('d2admin/releases/versionShow')\r\n // 用户登录后从数据库加载一系列的设置\r\n this.$store.dispatch('d2admin/account/load')\r\n // 获取并记录用户 UA\r\n this.$store.commit('d2admin/ua/get')\r\n // 初始化全屏监听\r\n this.$store.dispatch('d2admin/fullscreen/listen')\r\n },\r\n watch: {\r\n '$route.matched' (val) {\r\n let fullAside = this.$store.state.d2admin.menu.fullAside\r\n const _side = fullAside.filter(menu => menu.path === val[0].path)\r\n this.$store.commit('d2admin/menu/asideSet', _side.length > 0 ? _side[0].children : [])\r\n }\r\n }\r\n}).$mount('#app')\r\n","const files = require.context('./', true, /\\.js$/);\r\n\r\nlet autoGenerateMenus = []\r\nlet autoGenerateRouters = []\r\nconsole.log(files)\r\nfiles.keys().forEach((key) => {\r\n console.log(key)\r\n if (key === './index.js') return\r\n if (key.indexOf('menu') > -1) {\r\n autoGenerateMenus.push(files(key).default)\r\n } else if (key.indexOf('router') > -1) {\r\n autoGenerateRouters.push(files(key).default)\r\n }\r\n})\r\nexport default {\r\n menus: autoGenerateMenus,\r\n routers: autoGenerateRouters\r\n}\r\n","import { remove, get } from 'lodash'\r\n\r\n// 设置文件\r\nimport setting from '@/setting.js'\r\n\r\n// 判定是否需要缓存\r\nconst isKeepAlive = data => get(data, 'meta.cache', false)\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n // 可以在多页 tab 模式下显示的页面\r\n pool: [],\r\n // 当前显示的多页面列表\r\n opened: setting.page.opened,\r\n // 当前页面\r\n current: '',\r\n // 需要缓存的页面 name\r\n keepAlive: []\r\n },\r\n actions: {\r\n /**\r\n * @class opened\r\n * @description 从持久化数据载入分页列表\r\n * @param {Object} state vuex state\r\n */\r\n openedLoad ({ state, commit, dispatch }) {\r\n return new Promise(async resolve => {\r\n // store 赋值\r\n const value = await dispatch('d2admin/db/get', {\r\n dbName: 'sys',\r\n path: 'page.opened',\r\n defaultValue: setting.page.opened,\r\n user: true\r\n }, { root: true })\r\n // 在处理函数中进行数据优化 过滤掉现在已经失效的页签或者已经改变了信息的页签\r\n // 以 name 字段为准\r\n // 如果页面过多的话可能需要优化算法\r\n // valid 有效列表 1, 1, 0, 1 => 有效, 有效, 失效, 有效\r\n const valid = []\r\n // 处理数据\r\n state.opened = value.map(opened => {\r\n // 忽略首页\r\n if (opened.name === 'index') {\r\n valid.push(1)\r\n return opened\r\n }\r\n // 尝试在所有的支持多标签页的页面里找到 name 匹配的页面\r\n const find = state.pool.find(item => item.name === opened.name)\r\n // 记录有效或无效信息\r\n valid.push(find ? 1 : 0)\r\n // 返回合并后的数据 新的覆盖旧的\r\n // 新的数据中一般不会携带 params 和 query, 所以旧的参数会留存\r\n return Object.assign({}, opened, find)\r\n }).filter((opened, index) => valid[index] === 1)\r\n // 根据 opened 数据生成缓存设置\r\n commit('keepAliveRefresh')\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * 将 opened 属性赋值并持久化 在这之前请先确保已经更新了 state.opened\r\n * @param {Object} state vuex state\r\n */\r\n opend2db ({ state, dispatch }) {\r\n return new Promise(async resolve => {\r\n // 设置数据\r\n dispatch('d2admin/db/set', {\r\n dbName: 'sys',\r\n path: 'page.opened',\r\n value: state.opened,\r\n user: true\r\n }, { root: true })\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @class opened\r\n * @description 更新页面列表上的某一项\r\n * @param {Object} state vuex state\r\n * @param {Object} param { index, params, query } 路由信息\r\n */\r\n openedUpdate ({ state, commit, dispatch }, { index, params, query }) {\r\n return new Promise(async resolve => {\r\n // 更新页面列表某一项\r\n let page = state.opened[index]\r\n page.params = params || page.params\r\n page.query = query || page.query\r\n state.opened.splice(index, 1, page)\r\n // 增加缓存设置\r\n if (isKeepAlive(page)) {\r\n commit('keepAlivePush', page.name)\r\n }\r\n // 持久化\r\n await dispatch('opend2db')\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @class opened\r\n * @description 新增一个 tag (打开一个页面)\r\n * @param {Object} state vuex state\r\n * @param {Object} param new tag info\r\n */\r\n add ({ state, commit, dispatch }, { tag, params, query }) {\r\n return new Promise(async resolve => {\r\n // 设置新的 tag 在新打开一个以前没打开过的页面时使用\r\n let newTag = tag\r\n newTag.params = params || newTag.params\r\n newTag.query = query || newTag.query\r\n // 添加进当前显示的页面数组\r\n state.opened.push(newTag)\r\n // 如果这个页面需要缓存 将其添加到缓存设置\r\n if (isKeepAlive(newTag)) {\r\n commit('keepAlivePush', tag.name)\r\n }\r\n // 持久化\r\n await dispatch('opend2db')\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @class current\r\n * @description 打开一个新的页面\r\n * @param {Object} state vuex state\r\n * @param {Object} param { name, params, query } 路由信息\r\n */\r\n open ({ state, commit, dispatch }, { name, params, query }) {\r\n return new Promise(async resolve => {\r\n // 已经打开的页面\r\n let opened = state.opened\r\n // 判断此页面是否已经打开 并且记录位置\r\n let pageOpendIndex = 0\r\n const pageOpend = opened.find((page, index) => {\r\n const same = page.name === name\r\n pageOpendIndex = same ? index : pageOpendIndex\r\n return same\r\n })\r\n if (pageOpend) {\r\n // 页面以前打开过 但是新的页面可能 name 一样,参数不一样\r\n await dispatch('openedUpdate', {\r\n index: pageOpendIndex,\r\n params,\r\n query\r\n })\r\n } else {\r\n // 页面以前没有打开过\r\n let page = state.pool.find(t => t.name === name)\r\n // 如果这里没有找到 page 代表这个路由虽然在框架内 但是不参与标签页显示\r\n if (page) {\r\n await dispatch('add', {\r\n tag: page,\r\n params,\r\n query\r\n })\r\n }\r\n }\r\n commit('currentSet', name)\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @class opened\r\n * @description 关闭一个 tag (关闭一个页面)\r\n * @param {Object} state vuex state\r\n * @param {Object} param { tagName: 要关闭的标签名字, vm: vue }\r\n */\r\n close ({ state, commit, dispatch }, { tagName, vm }) {\r\n return new Promise(async resolve => {\r\n // 下个新的页面\r\n let newPage = state.opened[0]\r\n const isCurrent = state.current === tagName\r\n // 如果关闭的页面就是当前显示的页面\r\n if (isCurrent) {\r\n // 去找一个新的页面\r\n let len = state.opened.length\r\n for (let i = 1; i < len; i++) {\r\n if (state.opened[i].name === tagName) {\r\n if (i < len - 1) {\r\n newPage = state.opened[i + 1]\r\n } else {\r\n newPage = state.opened[i - 1]\r\n }\r\n break\r\n }\r\n }\r\n }\r\n // 找到这个页面在已经打开的数据里是第几个\r\n const index = state.opened.findIndex(page => page.name === tagName)\r\n if (index >= 0) {\r\n // 更新数据 删除关闭的页面\r\n state.opened.splice(index, 1)\r\n // 如果这个页面是缓存的页面 将其在缓存设置中删除\r\n commit('keepAliveRemove', tagName)\r\n }\r\n // 持久化\r\n await dispatch('opend2db')\r\n // 最后需要判断是否需要跳到首页\r\n if (isCurrent) {\r\n const { name = '', params = {}, query = {} } = newPage\r\n let routerObj = {\r\n name,\r\n params,\r\n query\r\n }\r\n vm.$router.push(routerObj)\r\n }\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @class opened\r\n * @description 关闭当前标签左边的标签\r\n * @param {Object} state vuex state\r\n * @param {Object} param { pageSelect: 当前选中的tagName, vm: vue }\r\n */\r\n closeLeft ({ state, commit, dispatch }, { pageSelect, vm } = {}) {\r\n return new Promise(async resolve => {\r\n const pageAim = pageSelect || state.current\r\n let currentIndex = 0\r\n state.opened.forEach((page, index) => {\r\n if (page.name === pageAim) {\r\n currentIndex = index\r\n }\r\n })\r\n if (currentIndex > 0) {\r\n // 删除打开的页面 并在缓存设置中删除\r\n state.opened.splice(1, currentIndex - 1).forEach(({ name }) => commit('keepAliveRemove', name))\r\n }\r\n state.current = pageAim\r\n if (vm && vm.$route.name !== pageAim) {\r\n vm.$router.push({\r\n name: pageAim\r\n })\r\n }\r\n // 持久化\r\n await dispatch('opend2db')\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @class opened\r\n * @description 关闭当前标签右边的标签\r\n * @param {Object} state vuex state\r\n * @param {Object} param { pageSelect: 当前选中的tagName, vm: vue }\r\n */\r\n closeRight ({ state, commit, dispatch }, { pageSelect, vm } = {}) {\r\n return new Promise(async resolve => {\r\n const pageAim = pageSelect || state.current\r\n let currentIndex = 0\r\n state.opened.forEach((page, index) => {\r\n if (page.name === pageAim) {\r\n currentIndex = index\r\n }\r\n })\r\n // 删除打开的页面 并在缓存设置中删除\r\n state.opened.splice(currentIndex + 1).forEach(({ name }) => commit('keepAliveRemove', name))\r\n // 设置当前的页面\r\n state.current = pageAim\r\n if (vm && vm.$route.name !== pageAim) {\r\n vm.$router.push({\r\n name: pageAim\r\n })\r\n }\r\n // 持久化\r\n await dispatch('opend2db')\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @class opened\r\n * @description 关闭当前激活之外的 tag\r\n * @param {Object} state vuex state\r\n * @param {Object} param { pageSelect: 当前选中的tagName, vm: vue }\r\n */\r\n closeOther ({ state, commit, dispatch }, { pageSelect, vm } = {}) {\r\n return new Promise(async resolve => {\r\n const pageAim = pageSelect || state.current\r\n let currentIndex = 0\r\n state.opened.forEach((page, index) => {\r\n if (page.name === pageAim) {\r\n currentIndex = index\r\n }\r\n })\r\n // 删除打开的页面数据 并更新缓存设置\r\n if (currentIndex === 0) {\r\n state.opened.splice(1).forEach(({ name }) => commit('keepAliveRemove', name))\r\n } else {\r\n state.opened.splice(currentIndex + 1).forEach(({ name }) => commit('keepAliveRemove', name))\r\n state.opened.splice(1, currentIndex - 1).forEach(({ name }) => commit('keepAliveRemove', name))\r\n }\r\n // 设置新的页面\r\n state.current = pageAim\r\n if (vm && vm.$route.name !== pageAim) {\r\n vm.$router.push({\r\n name: pageAim\r\n })\r\n }\r\n // 持久化\r\n await dispatch('opend2db')\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @class opened\r\n * @description 关闭所有 tag\r\n * @param {Object} state vuex state\r\n * @param {Object} vm vue\r\n */\r\n closeAll ({ state, commit, dispatch }, vm) {\r\n return new Promise(async resolve => {\r\n // 删除打开的页面 并在缓存设置中删除\r\n state.opened.splice(1).forEach(({ name }) => commit('keepAliveRemove', name))\r\n // 持久化\r\n await dispatch('opend2db')\r\n // 关闭所有的标签页后需要判断一次现在是不是在首页\r\n if (vm.$route.name !== 'index') {\r\n vm.$router.push({\r\n name: 'index'\r\n })\r\n }\r\n // end\r\n resolve()\r\n })\r\n }\r\n },\r\n mutations: {\r\n /**\r\n * @class keepAlive\r\n * @description 从已经打开的页面记录中更新需要缓存的页面记录\r\n * @param {Object} state vuex state\r\n */\r\n keepAliveRefresh (state) {\r\n state.keepAlive = state.opened.filter(item => isKeepAlive(item)).map(e => e.name)\r\n },\r\n /**\r\n * @description 删除一个页面的缓存设置\r\n * @param {Object} state vuex state\r\n * @param {String} name name\r\n */\r\n keepAliveRemove (state, name) {\r\n const list = [ ...state.keepAlive ]\r\n remove(list, item => item === name)\r\n state.keepAlive = list\r\n },\r\n /**\r\n * @description 增加一个页面的缓存设置\r\n * @param {Object} state vuex state\r\n * @param {String} name name\r\n */\r\n keepAlivePush (state, name) {\r\n const keep = [ ...state.keepAlive ]\r\n keep.push(name)\r\n state.keepAlive = Array.from(new Set(keep))\r\n },\r\n /**\r\n * @description 清空页面缓存设置\r\n * @param {Object} state vuex state\r\n */\r\n keepAliveClean (state) {\r\n state.keepAlive = []\r\n },\r\n /**\r\n * @class current\r\n * @description 设置当前激活的页面 name\r\n * @param {Object} state vuex state\r\n * @param {String} name new name\r\n */\r\n currentSet (state, name) {\r\n state.current = name\r\n },\r\n /**\r\n * @class pool\r\n * @description 保存 pool (候选池)\r\n * @param {Object} state vuex state\r\n * @param {Array} routes routes\r\n */\r\n init (state, routes) {\r\n const pool = []\r\n const push = function (routes) {\r\n routes.forEach(route => {\r\n if (route.children) {\r\n push(route.children)\r\n } else {\r\n if (!route.hidden) {\r\n const { meta, name, path } = route\r\n pool.push({ meta, name, path })\r\n }\r\n }\r\n })\r\n }\r\n push(routes)\r\n state.pool = pool\r\n }\r\n }\r\n}\r\n","export default {\r\n namespaced: true,\r\n state: {\r\n // 尺寸\r\n value: '' // medium small mini\r\n },\r\n actions: {\r\n /**\r\n * @description 设置尺寸\r\n * @param {Object} state vuex state\r\n * @param {String} size 尺寸\r\n */\r\n set ({ state, dispatch }, size) {\r\n return new Promise(async resolve => {\r\n // store 赋值\r\n state.value = size\r\n // 持久化\r\n await dispatch('d2admin/db/set', {\r\n dbName: 'sys',\r\n path: 'size.value',\r\n value: state.value,\r\n user: true\r\n }, { root: true })\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @description 从持久化数据读取尺寸设置\r\n * @param {Object} state vuex state\r\n */\r\n load ({ state, dispatch }) {\r\n return new Promise(async resolve => {\r\n // store 赋值\r\n state.value = await dispatch('d2admin/db/get', {\r\n dbName: 'sys',\r\n path: 'size.value',\r\n defaultValue: 'default',\r\n user: true\r\n }, { root: true })\r\n // end\r\n resolve()\r\n })\r\n }\r\n }\r\n}\r\n","export default {\r\n namespaced: true,\r\n state: {\r\n // 灰度\r\n active: false\r\n },\r\n mutations: {\r\n /**\r\n * @description 切换灰度状态\r\n * @param {Object} state vuex state\r\n */\r\n toggle (state) {\r\n state.active = !state.active\r\n },\r\n /**\r\n * @description 设置灰度模式\r\n * @param {Object} state vuex state\r\n * @param {Boolean} active active\r\n */\r\n set (state, active) {\r\n state.active = active\r\n }\r\n }\r\n}\r\n","import low from 'lowdb'\r\nimport LocalStorage from 'lowdb/adapters/LocalStorage'\r\nimport setting from '@/setting.js'\r\n\r\nconst adapter = new LocalStorage(`d2admin-${setting.releases.version}`)\r\nconst db = low(adapter)\r\n\r\ndb\r\n .defaults({\r\n sys: {},\r\n database: {}\r\n })\r\n .write()\r\n\r\nexport default db\r\n","import db from '@/libs/db.js'\r\nimport util from '@/libs/util.js'\r\n\r\n/**\r\n * @description 检查路径是否存在 不存在的话初始化\r\n * @param {Object} param dbName {String} 数据库名称\r\n * @param {Object} param path {String} 路径\r\n * @param {Object} param user {Boolean} 区分用户\r\n * @param {Object} param validator {Function} 数据校验钩子 返回 true 表示验证通过\r\n * @param {Object} param defaultValue {*} 初始化默认值\r\n * @returns {String} 可以直接使用的路径\r\n */\r\nfunction pathInit ({\r\n dbName = 'database',\r\n path = '',\r\n user = true,\r\n validator = () => true,\r\n defaultValue = ''\r\n}) {\r\n const uuid = util.cookies.get('uuid') || 'ghost-uuid'\r\n const currentPath = `${dbName}.${user ? `user.${uuid}` : 'public'}${path ? `.${path}` : ''}`\r\n const value = db.get(currentPath).value()\r\n if (!(value !== undefined && validator(value))) {\r\n db\r\n .set(currentPath, defaultValue)\r\n .write()\r\n }\r\n return currentPath\r\n}\r\n\r\nexport default {\r\n namespaced: true,\r\n actions: {\r\n /**\r\n * @description 将数据存储到指定位置 | 路径不存在会自动初始化\r\n * @description 效果类似于取值 dbName.path = value\r\n * @param {Object} param dbName {String} 数据库名称\r\n * @param {Object} param path {String} 存储路径\r\n * @param {Object} param value {*} 需要存储的值\r\n * @param {Object} param user {Boolean} 是否区分用户\r\n */\r\n set (context, {\r\n dbName = 'database',\r\n path = '',\r\n value = '',\r\n user = false\r\n }) {\r\n db.set(pathInit({\r\n dbName,\r\n path,\r\n user\r\n }), value).write()\r\n },\r\n /**\r\n * @description 获取数据\r\n * @description 效果类似于取值 dbName.path || defaultValue\r\n * @param {Object} param dbName {String} 数据库名称\r\n * @param {Object} param path {String} 存储路径\r\n * @param {Object} param defaultValue {*} 取值失败的默认值\r\n * @param {Object} param user {Boolean} 是否区分用户\r\n */\r\n get (context, {\r\n dbName = 'database',\r\n path = '',\r\n defaultValue = '',\r\n user = false\r\n }) {\r\n return new Promise(resolve => {\r\n resolve(db.get(pathInit({\r\n dbName,\r\n path,\r\n user,\r\n defaultValue\r\n })).value())\r\n })\r\n },\r\n /**\r\n * @description 获取存储数据库对象\r\n * @param {Object} context context\r\n * @param {Object} param user {Boolean} 是否区分用户\r\n */\r\n database (context, {\r\n user = false\r\n } = {}) {\r\n return new Promise(resolve => {\r\n resolve(db.get(pathInit({\r\n dbName: 'database',\r\n path: '',\r\n user,\r\n defaultValue: {}\r\n })))\r\n })\r\n },\r\n /**\r\n * @description 清空存储数据库对象\r\n * @param {Object} context context\r\n * @param {Object} param user {Boolean} 是否区分用户\r\n */\r\n databaseClear (context, {\r\n user = false\r\n } = {}) {\r\n return new Promise(resolve => {\r\n resolve(db.get(pathInit({\r\n dbName: 'database',\r\n path: '',\r\n user,\r\n validator: () => false,\r\n defaultValue: {}\r\n })))\r\n })\r\n },\r\n /**\r\n * @description 获取存储数据库对象 [ 区分页面 ]\r\n * @param {Object} context context\r\n * @param {Object} param vm {Object} vue\r\n * @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ]\r\n * @param {Object} param user {Boolean} 是否区分用户\r\n */\r\n databasePage (context, {\r\n vm,\r\n basis = 'name',\r\n user = false\r\n } = {}) {\r\n return new Promise(resolve => {\r\n resolve(db.get(pathInit({\r\n dbName: 'database',\r\n path: `$page.${vm.$route[basis]}`,\r\n user,\r\n defaultValue: {}\r\n })))\r\n })\r\n },\r\n /**\r\n * @description 清空存储数据库对象 [ 区分页面 ]\r\n * @param {Object} context context\r\n * @param {Object} param vm {Object} vue\r\n * @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ]\r\n * @param {Object} param user {Boolean} 是否区分用户\r\n */\r\n databasePageClear (context, {\r\n vm,\r\n basis = 'name',\r\n user = false\r\n } = {}) {\r\n return new Promise(resolve => {\r\n resolve(db.get(pathInit({\r\n dbName: 'database',\r\n path: `$page.${vm.$route[basis]}`,\r\n user,\r\n validator: () => false,\r\n defaultValue: {}\r\n })))\r\n })\r\n },\r\n /**\r\n * @description 快速将页面当前的数据 ( $data ) 持久化\r\n * @param {Object} context context\r\n * @param {Object} param vm {Object} vue\r\n * @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ]\r\n * @param {Object} param user {Boolean} 是否区分用户\r\n */\r\n pageSet (context, {\r\n vm,\r\n basis = 'name',\r\n user = false\r\n }) {\r\n return new Promise(resolve => {\r\n resolve(db.get(pathInit({\r\n dbName: 'database',\r\n path: `$page.${vm.$route[basis]}.$data`,\r\n user,\r\n validator: () => false,\r\n defaultValue: vm.$data\r\n })))\r\n })\r\n },\r\n /**\r\n * @description 快速获取页面快速持久化的数据\r\n * @param {Object} context context\r\n * @param {Object} param vm {Object} vue\r\n * @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ]\r\n * @param {Object} param user {Boolean} 是否区分用户\r\n */\r\n pageGet (context, {\r\n vm,\r\n basis = 'name',\r\n user = false\r\n }) {\r\n return new Promise(resolve => {\r\n resolve(db.get(pathInit({\r\n dbName: 'database',\r\n path: `$page.${vm.$route[basis]}.$data`,\r\n user,\r\n defaultValue: vm.$data\r\n })).value())\r\n })\r\n },\r\n /**\r\n * @description 清空页面快照\r\n * @param {Object} context context\r\n * @param {Object} param vm {Object} vue\r\n * @param {Object} param basis {String} 页面区分依据 [ name | path | fullPath ]\r\n * @param {Object} param user {Boolean} 是否区分用户\r\n */\r\n pageClear (context, {\r\n vm,\r\n basis = 'name',\r\n user = false\r\n }) {\r\n return new Promise(resolve => {\r\n resolve(db.get(pathInit({\r\n dbName: 'database',\r\n path: `$page.${vm.$route[basis]}.$data`,\r\n user,\r\n validator: () => false,\r\n defaultValue: {}\r\n })))\r\n })\r\n }\r\n }\r\n}\r\n","var map = {\n\t\"./index.js\": \"bf9e\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"758e\";","export * from \"-!../node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../node_modules/css-loader/index.js??ref--8-oneOf-1-1!../node_modules/vue-loader/lib/loaders/stylePostLoader.js!../node_modules/postcss-loader/src/index.js??ref--8-oneOf-1-2!../node_modules/sass-loader/dist/cjs.js??ref--8-oneOf-1-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=style&index=0&id=29a75034&prod&lang=scss&\"","import { Loading } from 'element-ui';\r\nimport NProgress from 'nprogress'\r\nimport 'nprogress/nprogress.css'\r\nlet loading = {\r\n}\r\nlet loadingInstance = null;\r\n\r\nlet lastRequest = new Date('2018');\r\n\r\nloading.show = function (config) {\r\n if (config && config.loading) {\r\n let now = new Date();\r\n let ms = now - lastRequest;\r\n lastRequest = now;\r\n if (ms > config.loading.interval || 2000) {//默认相隔超过两秒的请求才重新显示loading\r\n if (config.loading.type === \"loading\") {\r\n loadingInstance = Loading.service(config.loading.options)\r\n } else if (config.loading.type === \"nprogress\") {\r\n NProgress.start()\r\n }\r\n }\r\n }\r\n\r\n}\r\n\r\nloading.hide = function (config) {\r\n if (config && config.loading) {\r\n if (config.loading.type === \"loading\" && loadingInstance) {\r\n loadingInstance.close();\r\n loadingInstance = null;\r\n } else if (config.loading.type === \"nprogress\") {\r\n NProgress.done()\r\n }\r\n }\r\n}\r\n\r\nexport default loading;","import { Message, MessageBox, Notification } from 'element-ui';\r\nexport default function (config) {\r\n if (config && config.success) {\r\n if (config.success.type === 'message') {\r\n Message(config.success.options)\r\n } else if (config.success.type === 'messagebox') {\r\n MessageBox(config.success.options)\r\n } else if (config.success.type === 'notification') {\r\n Notification(config.success.options)\r\n }\r\n }\r\n}","import { match } from 'matchit'\r\nexport default {\r\n access: function (config, store) {\r\n let functionAccess = true\r\n let interfaceAccess = true\r\n let isAdmin = store.state.d2admin.permission.isAdmin\r\n if (config.permission && config.permission.length > 0) {\r\n let needPermissions = config.permission\r\n let permissions = store.state.d2admin.permission.functions.concat(store.state.d2admin.permission.roles)\r\n let hasPermission = permissions.some(s => {\r\n return needPermissions.indexOf(s) > -1\r\n })\r\n if (!hasPermission && !isAdmin) {\r\n functionAccess = false\r\n }\r\n }\r\n if (config.interfaceCheck) {\r\n let path = config.url.replace(config.baseURL, '')\r\n let method = config.method.toUpperCase()\r\n let interfaces = store.state.d2admin.permission.interfaces[method]\r\n let matched = match(path.split('?')[0], interfaces)\r\n if (matched.length == 0 && !isAdmin) {\r\n interfaceAccess = false\r\n }\r\n }\r\n return functionAccess && interfaceAccess\r\n }\r\n}\r\n","import store from '@/store'\r\nimport axios from 'axios'\r\nimport router from '@/router/index'\r\nimport { Message } from 'element-ui'\r\nimport util from '@/libs/util'\r\nimport loading from '@/libs/loading'\r\nimport message from '@/libs/message'\r\nimport permission from '@/libs/permission'\r\n\r\n// 记录和显示错误\r\nfunction errorLog (err) {\r\n // 添加到日志\r\n store.dispatch('d2admin/log/add', {\r\n type: 'error',\r\n err,\r\n info: '数据请求异常'\r\n })\r\n // 打印到控制台\r\n if (process.env.NODE_ENV === 'development') {\r\n util.log.danger('>>>>>> Error >>>>>>')\r\n console.log(err)\r\n }\r\n // 显示提示\r\n Message({\r\n message: err.message,\r\n type: 'error',\r\n duration: 5 * 1000\r\n })\r\n}\r\n\r\n// 创建一个 axios 实例\r\nconst service = axios.create({\r\n baseURL: process.env.VUE_APP_API,\r\n timeout: 20000 // 请求超时时间\r\n})\r\n\r\n// 请求拦截器\r\nservice.interceptors.request.use(\r\n config => {\r\n if (!permission.access(config, store)) {\r\n // eslint-disable-next-line no-throw-literal\r\n throw {\r\n type: '403',\r\n config: config\r\n }\r\n }\r\n loading.show(config)\r\n // 在请求发送之前做一些处理\r\n if (!(/^https:\\/\\/|http:\\/\\//.test(config.url))) {\r\n const token = util.cookies.get('token')\r\n if (token && token !== 'undefined') {\r\n // 让每个请求携带token-- ['Authorization']为自定义key 请根据实际情况自行修改\r\n config.headers['Authorization'] = 'Bearer ' + token\r\n }\r\n }\r\n return config\r\n },\r\n error => {\r\n // 发送失败\r\n console.log(error)\r\n Promise.reject(error)\r\n }\r\n)\r\n\r\n// 响应拦截器\r\nservice.interceptors.response.use(\r\n response => {\r\n loading.hide(response.config)\r\n const res = response.data\r\n if (res.statusCode !== 200) {\r\n Message({\r\n message: res.message,\r\n type: 'error',\r\n duration: 3 * 1000\r\n })\r\n return Promise.reject(res.message)\r\n } else {\r\n message(response.config)\r\n return res.data\r\n }\r\n },\r\n error => {\r\n console.log(error)\r\n loading.hide(error.config)\r\n if (error.response && error.response.status === 401) {\r\n util.cookies.remove()\r\n if (error.config.url.indexOf('logout') === -1) {\r\n Message({\r\n message: '登陆信息已过期,请重新登陆!',\r\n type: 'error',\r\n duration: 3 * 1000\r\n })\r\n }\r\n setTimeout(() => {\r\n // 删除cookie\r\n util.cookies.remove('token')\r\n util.cookies.remove('uuid')\r\n // 跳转路由\r\n router.push({\r\n name: 'login'\r\n })\r\n }, 1000)\r\n } else if (error.response && error.response.status === 500) {\r\n errorLog(new Error(`系统错误!: ${error.config.url}`))\r\n } else if (error.message && error.message.indexOf('timeout') > -1) {\r\n errorLog(new Error(`网络超时!: ${error.config.url}`))\r\n } else if (error.type === '403') {\r\n errorLog(new Error(`没有请求权限!: ${error.config.url}`))\r\n } else {\r\n errorLog(new Error(`网络错误!: ${error.config.url}`))\r\n }\r\n return Promise.reject(error)\r\n }\r\n)\r\n\r\nexport default service\r\n","import layoutHeaderAside from '@/layout/header-aside'\r\n\r\nconst meta = { requiresAuth: true }\r\n\r\nexport default {\r\n path: '/demo',\r\n name: 'demo',\r\n meta,\r\n redirect: { name: 'demo-page1' },\r\n component: layoutHeaderAside,\r\n children: (pre => [\r\n { path: 'page1', name: `${pre}page1`, component: () => import('@/pages/demo/page1'), meta: { meta, title: '页面 1' } },\r\n { path: 'page2', name: `${pre}page2`, component: () => import('@/pages/demo/page2'), meta: { meta, title: '页面 2' } },\r\n { path: 'page3', name: `${pre}page3`, component: () => import('@/pages/demo/page3'), meta: { meta, title: '页面 3' } },\r\n { path: 'page4', name: `${pre}page4`, component: () => import('@/pages/demo/page4'), meta: { meta, title: '页面 4' } }\r\n ])('demo-')\r\n}\r\n","import demo from './modules/demo'\r\n\r\nimport layoutHeaderAside from '@/layout/header-aside'\r\n\r\nconst meta = { requiresAuth: true }\r\n\r\n/**\r\n * 在主框架内显示\r\n */\r\nconst frameIn = [\r\n {\r\n path: '/',\r\n redirect: { name: 'index' },\r\n component: layoutHeaderAside,\r\n children: [\r\n // 首页 必须 name:index\r\n {\r\n path: 'index',\r\n name: 'index',\r\n meta,\r\n component: () => import('@/pages/index')\r\n },\r\n // 刷新页面 必须保留\r\n {\r\n path: 'refresh',\r\n name: 'refresh',\r\n hidden: true,\r\n component: {\r\n beforeRouteEnter (to, from, next) {\r\n next(vm => vm.$router.replace(from.fullPath))\r\n },\r\n render: h => h()\r\n }\r\n },\r\n // 页面重定向 必须保留\r\n {\r\n path: 'redirect/:route*',\r\n name: 'redirect',\r\n hidden: true,\r\n component: {\r\n beforeRouteEnter (to, from, next) {\r\n next(vm => vm.$router.replace(JSON.parse(from.params.route)))\r\n },\r\n render: h => h()\r\n }\r\n }\r\n ]\r\n },\r\n demo\r\n]\r\n\r\n/**\r\n * 在主框架之外显示\r\n */\r\nconst frameOut = [\r\n // 登录\r\n {\r\n path: '/login',\r\n name: 'login',\r\n component: () => import('@/pages/login')\r\n }\r\n]\r\n\r\n/**\r\n * 错误页面\r\n */\r\nconst errorPage = [\r\n // 404\r\n {\r\n path: '*',\r\n name: '404',\r\n component: () => import('@/pages/error-page-404')\r\n }\r\n]\r\n\r\n// 导出需要显示菜单的\r\nexport const frameInRoutes = frameIn\r\n\r\n// 重新组织后导出\r\nexport default [\r\n ...frameIn,\r\n ...frameOut,\r\n ...errorPage\r\n]\r\n","// 菜单 顶栏\r\nexport default [\r\n\r\n]\r\n","// 菜单 侧边栏\r\nexport default [\r\n\r\n]\r\n","import request from '@/plugin/axios'\r\n\r\nexport function getUserPermissionInfo () {\r\n return request({\r\n url: '/api/admin/user/v2/front/info',\r\n method: 'get'\r\n })\r\n}\r\n","import Vue from 'vue'\r\nimport VueRouter from 'vue-router'\r\n\r\n// 进度条\r\nimport NProgress from 'nprogress'\r\nimport 'nprogress/nprogress.css'\r\n\r\nimport store from '@/store/index'\r\n\r\nimport util from '@/libs/util.js'\r\n\r\n// 路由数据\r\nimport routes from './routes'\r\n\r\n// 固定菜单与路由\r\nimport menuHeader from '@/menu/header'\r\nimport menuAside from '@/menu/aside'\r\nimport { frameInRoutes } from '@/router/routes'\r\n// 路由与组件映射关系\r\nimport routerMapComponents from '@/routerMapComponents'\r\n// 模拟动态菜单与路由\r\n// import { permissionMenu, permissionRouter } from '@/mock/permissionMenuAndRouter'\r\n// 代码生成器生成的菜单与路由\r\nimport autoGenerateMenusAndRouters from '@/development'\r\nimport * as userService from '@/api/sys/user'\r\n\r\nVue.use(VueRouter)\r\n\r\n// 导出路由 在 main.js 里使用\r\nconst router = new VueRouter({\r\n routes\r\n})\r\n\r\n// eslint-disable-next-line one-var\r\nlet permissionMenu, permissionRouter, permissionHeader = []\r\nlet userInfo = {}\r\nlet permission = {\r\n functions: [],\r\n roles: [],\r\n isAdmin: false\r\n}\r\n\r\n// 标记是否已经拉取权限信息\r\nlet isFetchPermissionInfo = false\r\n\r\nlet fetchPermissionInfo = async () => {\r\n // 处理动态添加的路由\r\n const formatRoutes = function (routes) {\r\n routes.forEach(route => {\r\n route.component = routerMapComponents[route.component]\r\n if (route.children) {\r\n formatRoutes(route.children)\r\n }\r\n })\r\n }\r\n\r\n // const formatRoutesByComponentPath = function (routes) {\r\n // routes.forEach(route => {\r\n // route.component = function (resolve) {\r\n // require([`../${route.componentPath}.vue`], resolve)\r\n // }\r\n // if (route.children) {\r\n // formatRoutesByComponentPath(route.children)\r\n // }\r\n // })\r\n // }\r\n\r\n // const formatRoutesByComponentPath = function (routes) {\r\n // routes.forEach(route => {\r\n // route.component = () => import(`../${route.componentPath}.vue`)\r\n // if (route.children) {\r\n // formatRoutesByComponentPath(route.children)\r\n // }\r\n // })\r\n // }\r\n try {\r\n let userPermissionInfo = await userService.getUserPermissionInfo()\r\n userInfo.name = userPermissionInfo.userName\r\n userInfo.avatarUrl = userPermissionInfo.avatarUrl\r\n permissionMenu = userPermissionInfo.accessMenus\r\n permissionHeader = userPermissionInfo.accessHeader\r\n permissionRouter = userPermissionInfo.accessRoutes\r\n permission.functions = userPermissionInfo.userPermissions\r\n permission.roles = userPermissionInfo.userRoles\r\n permission.interfaces = util.formatInterfaces(userPermissionInfo.accessInterfaces)\r\n permission.isAdmin = userPermissionInfo.isAdmin === 1\r\n } catch (ex) {\r\n console.log(ex)\r\n }\r\n\r\n // 组合代码生成器生成的菜单和路由\r\n console.log(autoGenerateMenusAndRouters)\r\n permissionMenu = [...permissionMenu, ...autoGenerateMenusAndRouters.menus]\r\n permissionRouter = [...permissionRouter, ...autoGenerateMenusAndRouters.routers]\r\n\r\n formatRoutes(permissionRouter)\r\n let allMenuAside = [...menuAside, ...permissionMenu]\r\n let allMenuHeader = [...menuHeader, ...permissionHeader]\r\n // 动态添加路由\r\n router.addRoutes(permissionRouter)\r\n store.dispatch('d2admin/user/set', userInfo)\r\n // 处理路由 得到每一级的路由设置\r\n store.commit('d2admin/page/init', [...frameInRoutes, ...permissionRouter])\r\n // 设置顶栏菜单\r\n store.commit('d2admin/menu/headerSet', allMenuHeader)\r\n // 设置侧边栏菜单\r\n store.commit('d2admin/menu/fullAsideSet', allMenuAside)\r\n // 初始化菜单搜索功能\r\n store.commit('d2admin/search/init', allMenuAside)\r\n // 设置权限信息\r\n store.commit('d2admin/permission/set', permission)\r\n // 加载上次退出时的多页列表\r\n store.dispatch('d2admin/page/openedLoad')\r\n await Promise.resolve()\r\n}\r\n// 免校验token白名单\r\nlet whiteList = ['/login']\r\n\r\n/**\r\n * 路由拦截\r\n * 权限验证\r\n */\r\nrouter.beforeEach(async (to, from, next) => {\r\n // 进度条\r\n NProgress.start()\r\n // 关闭搜索面板\r\n store.commit('d2admin/search/set', false)\r\n const token = util.cookies.get('token')\r\n if (whiteList.indexOf(to.path) === -1) {\r\n // 这里暂时将cookie里是否存有token作为验证是否登录的条件\r\n // 请根据自身业务需要修改\r\n if (token && token !== 'undefined') {\r\n // 拉取权限信息\r\n if (!isFetchPermissionInfo) {\r\n await fetchPermissionInfo()\r\n isFetchPermissionInfo = true\r\n next(to.path, true)\r\n } else {\r\n next()\r\n }\r\n } else {\r\n // 将当前预计打开的页面完整地址临时存储 登录后继续跳转\r\n // 这个 cookie(redirect) 会在登录后自动删除\r\n util.cookies.set('redirect', to.fullPath)\r\n // 没有登录的时候跳转到登录界面\r\n next({\r\n name: 'login'\r\n })\r\n }\r\n } else {\r\n if (to.name === 'login') {\r\n // 如果已经登录,则直接进入系统\r\n if (token && token !== undefined) {\r\n next(from.path, true)\r\n NProgress.done()\r\n } else {\r\n next()\r\n }\r\n } else {\r\n next()\r\n }\r\n }\r\n})\r\n\r\nrouter.afterEach(to => {\r\n // 进度条\r\n NProgress.done()\r\n // 需要的信息\r\n const app = router.app\r\n const { name, params, query } = to\r\n // 多页控制 打开新的页面\r\n app.$store.dispatch('d2admin/page/open', { name, params, query })\r\n // 更改标题\r\n util.title(to.meta.title)\r\n})\r\n\r\nexport default router\r\n","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"d2-d2-admin-text\",\n \"use\": \"d2-d2-admin-text-usage\",\n \"viewBox\": \"0 0 88 84\",\n \"content\": \"\\r\\n \\r\\n Created with Sketch.\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","// 设置文件\r\nimport setting from '@/setting.js'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n // 主题\r\n list: setting.theme.list,\r\n // 现在激活的主题 这应该是一个名字 不是对象\r\n activeName: setting.theme.list[0].name\r\n },\r\n getters: {\r\n /**\r\n * @description 返回当前的主题信息 不是一个名字 而是当前激活主题的所有数据\r\n * @param {Object} state vuex state\r\n */\r\n activeSetting (state) {\r\n return state.list.find(theme => theme.name === state.activeName)\r\n }\r\n },\r\n actions: {\r\n /**\r\n * @description 激活一个主题\r\n * @param {Object} state vuex state\r\n * @param {String} themeValue 需要激活的主题名称\r\n */\r\n set ({ state, commit, dispatch }, themeName) {\r\n return new Promise(async resolve => {\r\n // 检查这个主题在主题列表里是否存在\r\n state.activeName = state.list.find(e => e.name === themeName) ? themeName : state.list[0].name\r\n // 将 vuex 中的主题应用到 dom\r\n commit('dom')\r\n // 持久化\r\n await dispatch('d2admin/db/set', {\r\n dbName: 'sys',\r\n path: 'theme.activeName',\r\n value: state.activeName,\r\n user: true\r\n }, { root: true })\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @description 从持久化数据加载主题设置\r\n * @param {Object} state vuex state\r\n */\r\n load ({ state, commit, dispatch }) {\r\n return new Promise(async resolve => {\r\n // store 赋值\r\n state.activeName = await dispatch('d2admin/db/get', {\r\n dbName: 'sys',\r\n path: 'theme.activeName',\r\n defaultValue: state.list[0].name,\r\n user: true\r\n }, { root: true })\r\n // 将 vuex 中的主题应用到 dom\r\n commit('dom')\r\n // end\r\n resolve()\r\n })\r\n }\r\n },\r\n mutations: {\r\n /**\r\n * @description 将 vuex 中的主题应用到 dom\r\n * @param {Object} state vuex state\r\n */\r\n dom (state) {\r\n document.body.className = `theme-${state.activeName}`\r\n }\r\n }\r\n}\r\n","var map = {\n\t\"./account.js\": \"e7e2\",\n\t\"./db.js\": \"7308\",\n\t\"./fullscreen.js\": \"3b3e\",\n\t\"./gray.js\": \"69a2\",\n\t\"./log.js\": \"391b\",\n\t\"./menu.js\": \"39fd\",\n\t\"./page.js\": \"64c0\",\n\t\"./permission.js\": \"ff1a\",\n\t\"./releases.js\": \"4948\",\n\t\"./search.js\": \"3ec1\",\n\t\"./size.js\": \"6894\",\n\t\"./theme.js\": \"ae81\",\n\t\"./transition.js\": \"09ec\",\n\t\"./ua.js\": \"f19a\",\n\t\"./user.js\": \"fda1\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"b9f3\";","import SpriteSymbol from \"svg-baker-runtime/browser-symbol\";\nimport sprite from \"svg-sprite-loader/runtime/browser-sprite.build\";\nvar symbol = new SpriteSymbol({\n \"id\": \"d2-d2-admin\",\n \"use\": \"d2-d2-admin-usage\",\n \"viewBox\": \"0 0 60 54\",\n \"content\": \"\\r\\n D2Admin\\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n \\r\\n\"\n});\nvar result = sprite.add(symbol);\nexport default symbol","import layoutHeaderAside from '@/layout/header-aside'\r\nconst files = require.context('./', true, /\\.js$/)\r\n\r\nlet componentMaps = {\r\n 'layoutHeaderAside': layoutHeaderAside,\r\n 'serviceManager': () => import(/* webpackChunkName: \"serviceManager\" */'@/pages/auth/service/index'),\r\n 'userManager': () => import(/* webpackChunkName: \"userManager\" */'@/pages/admin/user'),\r\n 'groupManager': () => import(/* webpackChunkName: \"groupManager\" */'@/pages/admin/group'),\r\n 'menuManager': () => import(/* webpackChunkName: \"menuManager\" */'@/pages/admin/menu'),\r\n 'gateLogManager': () => import(/* webpackChunkName: \"gateLogManager\" */'@/pages/admin/gateLog'),\r\n 'groupTypeManager': () => import(/* webpackChunkName: \"groupTypeManager\" */'@/pages/admin/groupType'),\r\n 'devFormManager': () => import(/* webpackChunkName: \"devFormManager\" */'@/pages/dev/build'),\r\n 'codeManager': () => import(/* webpackChunkName: \"codeManager\" */'@/pages/dev/code'),\r\n 'onlineManager': () => import(/* webpackChunkName: \"onlineManager\" */'@/pages/admin/online'),\r\n 'appInfoManager': () => import('@/pages/app/applicationInfo'),\r\n 'dictInfo': () => import('@/pages/app/dictInfo'),\r\n 'fileInfo': () => import('@/pages/app/fileInfo'),\r\n 'appRemarkInfo': () => import('@/pages/app/appRemarkInfo'),\r\n 'appMarketInfo': () => import('@/pages/app/appMarketInfo'),\r\n 'job': () => import('@/pages/admin/job/index')\r\n\r\n}\r\nfiles.keys().forEach((key) => {\r\n console.log(key)\r\n if (key === './index.js') return\r\n Object.assign(componentMaps, files(key).default)\r\n})\r\nexport default componentMaps\r\n","var map = {\n\t\"./index.js\": \"6243\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"c091\";","const log = {}\r\n\r\n/**\r\n * @description 返回这个样式的颜色值\r\n * @param {String} type 样式名称 [ primary | success | warning | danger | text ]\r\n */\r\nfunction typeColor (type = 'default') {\r\n let color = ''\r\n switch (type) {\r\n case 'default': color = '#35495E'; break\r\n case 'primary': color = '#3488ff'; break\r\n case 'success': color = '#43B883'; break\r\n case 'warning': color = '#e6a23c'; break\r\n case 'danger': color = '#f56c6c'; break\r\n default:; break\r\n }\r\n return color\r\n}\r\n\r\n/**\r\n * @description 打印一个 [ title | text ] 样式的信息\r\n * @param {String} title title text\r\n * @param {String} info info text\r\n * @param {String} type style\r\n */\r\nlog.capsule = function (title, info, type = 'primary') {\r\n console.log(\r\n `%c ${title} %c ${info} %c`,\r\n 'background:#35495E; padding: 1px; border-radius: 3px 0 0 3px; color: #fff;',\r\n `background:${typeColor(type)}; padding: 1px; border-radius: 0 3px 3px 0; color: #fff;`,\r\n 'background:transparent'\r\n )\r\n}\r\n\r\n/**\r\n * @description 打印彩色文字\r\n */\r\nlog.colorful = function (textArr) {\r\n console.log(\r\n `%c${textArr.map(t => t.text || '').join('%c')}`,\r\n ...textArr.map(t => `color: ${typeColor(t.type)};`)\r\n )\r\n}\r\n\r\n/**\r\n * @description 打印 default 样式的文字\r\n */\r\nlog.default = function (text) {\r\n log.colorful([{ text }])\r\n}\r\n\r\n/**\r\n * @description 打印 primary 样式的文字\r\n */\r\nlog.primary = function (text) {\r\n log.colorful([{ text, type: 'primary' }])\r\n}\r\n\r\n/**\r\n * @description 打印 success 样式的文字\r\n */\r\nlog.success = function (text) {\r\n log.colorful([{ text, type: 'success' }])\r\n}\r\n\r\n/**\r\n * @description 打印 warning 样式的文字\r\n */\r\nlog.warning = function (text) {\r\n log.colorful([{ text, type: 'warning' }])\r\n}\r\n\r\n/**\r\n * @description 打印 danger 样式的文字\r\n */\r\nlog.danger = function (text) {\r\n log.colorful([{ text, type: 'danger' }])\r\n}\r\n\r\nexport default log\r\n","import Cookies from 'js-cookie'\r\nimport setting from '@/setting.js'\r\n\r\nconst cookies = {}\r\n\r\n/**\r\n * @description 存储 cookie 值\r\n * @param {String} name cookie name\r\n * @param {String} value cookie value\r\n * @param {Object} setting cookie setting\r\n */\r\ncookies.set = function (name = 'default', value = '', cookieSetting = {}) {\r\n let currentCookieSetting = {\r\n expires: 1\r\n }\r\n Object.assign(currentCookieSetting, cookieSetting)\r\n Cookies.set(`d2admin-${setting.releases.version}-${name}`, value, currentCookieSetting)\r\n}\r\n\r\n/**\r\n * @description 拿到 cookie 值\r\n * @param {String} name cookie name\r\n */\r\ncookies.get = function (name = 'default') {\r\n return Cookies.get(`d2admin-${setting.releases.version}-${name}`)\r\n}\r\n\r\n/**\r\n * @description 拿到 cookie 全部的值\r\n */\r\ncookies.getAll = function () {\r\n return Cookies.get()\r\n}\r\n\r\n/**\r\n * @description 删除 cookie\r\n * @param {String} name cookie name\r\n */\r\ncookies.remove = function (name = 'default') {\r\n return Cookies.remove(`d2admin-${setting.releases.version}-${name}`)\r\n}\r\n\r\nexport default cookies\r\n","import log from './util.log.js'\r\nimport cookies from './util.cookies.js'\r\nimport { parse } from 'matchit'\r\n\r\nlet util = {\r\n cookies,\r\n log\r\n}\r\n/**\r\n * @description 更新标题\r\n * @param {String} title 标题\r\n */\r\nutil.title = function (titleText) {\r\n const processTitle = process.env.VUE_APP_TITLE || 'D2Admin'\r\n window.document.title = `${processTitle}${titleText ? ` | ${titleText}` : ''}`\r\n}\r\n/**\r\n * @description 打开新页面\r\n * @param {String} url 地址\r\n */\r\nutil.open = function (url) {\r\n var a = document.createElement('a')\r\n a.setAttribute('href', url)\r\n a.setAttribute('target', '_blank')\r\n a.setAttribute('id', 'd2admin-menu-link')\r\n document.body.appendChild(a)\r\n a.click()\r\n document.body.removeChild(document.getElementById('d2admin-menu-link'))\r\n}\r\n/**\r\n * @description 处理接口\r\n * @param {Array} interfaces 接口\r\n */\r\nutil.formatInterfaces = function (interfaces) {\r\n let i = {}\r\n i['GET'] = interfaces.filter(s => s.method.toUpperCase() === 'GET').map(s => parse(s.path))\r\n i['POST'] = interfaces.filter(s => s.method.toUpperCase() === 'POST').map(s => parse(s.path))\r\n i['PUT'] = interfaces.filter(s => s.method.toUpperCase() === 'PUT').map(s => parse(s.path))\r\n i['DELETE'] = interfaces.filter(s => s.method.toUpperCase() === 'DELETE').map(s => parse(s.path))\r\n return i\r\n}\r\n\r\nexport default util\r\n","import { version } from '../package'\r\n\r\nexport default {\r\n // 快捷键\r\n // 支持快捷键 例如 ctrl+shift+s\r\n hotkey: {\r\n search: {\r\n open: 's',\r\n close: 'esc'\r\n }\r\n },\r\n // 侧边栏默认折叠状态\r\n menu: {\r\n asideCollapse: false\r\n },\r\n // 在读取持久化数据失败时默认页面\r\n page: {\r\n opened: [\r\n {\r\n name: 'index',\r\n meta: {\r\n title: '首页',\r\n requiresAuth: false\r\n }\r\n }\r\n ]\r\n },\r\n // 版本\r\n releases: {\r\n version\r\n },\r\n // 菜单搜索\r\n search: {\r\n enable: true\r\n },\r\n // 注册的主题\r\n theme: {\r\n list: [\r\n {\r\n title: 'd2admin 经典',\r\n name: 'd2',\r\n preview: 'image/theme/d2/preview@2x.png'\r\n },\r\n {\r\n title: '紫罗兰',\r\n name: 'violet',\r\n preview: 'image/theme/violet/preview@2x.png'\r\n },\r\n {\r\n title: '简约线条',\r\n name: 'line',\r\n backgroundImage: 'image/theme/line/bg.jpg',\r\n preview: 'image/theme/line/preview@2x.png'\r\n },\r\n {\r\n title: '流星',\r\n name: 'star',\r\n backgroundImage: 'image/theme/star/bg.jpg',\r\n preview: 'image/theme/star/preview@2x.png'\r\n },\r\n {\r\n title: 'Tomorrow Night Blue (vsCode)',\r\n name: 'tomorrow-night-blue',\r\n preview: 'image/theme/tomorrow-night-blue/preview@2x.png'\r\n }\r\n ]\r\n },\r\n // 是否默认开启页面切换动画\r\n transition: {\r\n active: true\r\n },\r\n // 在读取持久化数据失败时默认用户信息\r\n user: {\r\n info: {\r\n name: 'Ghost'\r\n }\r\n }\r\n}\r\n","import util from '@/libs/util.js'\r\nimport { AccountLogin,AccountLogout } from '@/api/sys/login'\r\n\r\nexport default {\r\n namespaced: true,\r\n actions: {\r\n /**\r\n * @description 登录\r\n * @param {Object} param context\r\n * @param {Object} param vm {Object} vue 实例\r\n * @param {Object} param username {String} 用户账号\r\n * @param {Object} param password {String} 密码\r\n * @param {Object} param route {Object} 登录成功后定向的路由对象\r\n */\r\n login ({ dispatch }, {\r\n vm,\r\n username,\r\n password,\r\n uuid,\r\n verCode,\r\n route = {\r\n name: 'index'\r\n }\r\n }) {\r\n // 开始请求登录接口\r\n AccountLogin({\r\n username,\r\n password,\r\n uuid,\r\n verCode\r\n })\r\n .then(async res => {\r\n // 设置 cookie 一定要存 uuid 和 token 两个 cookie\r\n // 整个系统依赖这两个数据进行校验和存储\r\n // uuid 是用户身份唯一标识 用户注册的时候确定 并且不可改变 不可重复\r\n // token 代表用户当前登录状态 建议在网络请求中携带 token\r\n // 如有必要 token 需要定时更新,默认保存一天\r\n util.cookies.set('uuid', res.id)\r\n util.cookies.set('token', res.accessToken)\r\n // 设置 vuex 用户信息\r\n await dispatch('d2admin/user/set', {\r\n name: res.name\r\n }, { root: true })\r\n // 用户登录后从持久化数据加载一系列的设置\r\n await dispatch('load')\r\n // 更新路由 尝试去获取 cookie 里保存的需要重定向的页面完整地址\r\n const path = util.cookies.get('redirect')\r\n // 根据是否存有重定向页面判断如何重定向\r\n vm.$router.replace(path ? { path } : route)\r\n // 删除 cookie 中保存的重定向页面\r\n util.cookies.remove('redirect')\r\n })\r\n .catch(err => {\r\n console.log('err: ', err)\r\n })\r\n },\r\n /**\r\n * @description 注销用户并返回登录页面\r\n * @param {Object} param context\r\n * @param {Object} param vm {Object} vue 实例\r\n * @param {Object} param confirm {Boolean} 是否需要确认\r\n */\r\n logout ({ commit }, { vm, confirm = false }) {\r\n /**\r\n * @description 注销\r\n */\r\n function logout () {\r\n AccountLogout(util.cookies.get('token')).then(async res => {\r\n // 删除cookie\r\n util.cookies.remove('token')\r\n util.cookies.remove('uuid')\r\n // // 跳转路由\r\n vm.$router.push({\r\n name: 'login'\r\n })\r\n })\r\n }\r\n // 判断是否需要确认\r\n if (confirm) {\r\n commit('d2admin/gray/set', true, { root: true })\r\n vm.$confirm('注销当前账户吗? 打开的标签页和用户设置将会被保存。', '确认操作', {\r\n confirmButtonText: '确定注销',\r\n cancelButtonText: '放弃',\r\n type: 'warning'\r\n })\r\n .then(() => {\r\n commit('d2admin/gray/set', false, { root: true })\r\n logout()\r\n // 注销后重置应用,目前没有找到更好的方法\r\n // setTimeout(() => {\r\n // location.reload()\r\n // }, 1000)\r\n })\r\n .catch(() => {\r\n commit('d2admin/gray/set', false, { root: true })\r\n vm.$message('放弃注销用户')\r\n })\r\n } else {\r\n logout()\r\n setTimeout(() => {\r\n location.reload()\r\n }, 1000)\r\n }\r\n },\r\n /**\r\n * @description 用户登录后从持久化数据加载一系列的设置\r\n * @param {Object} state vuex state\r\n */\r\n load ({ commit, dispatch }) {\r\n return new Promise(async resolve => {\r\n // DB -> store 加载用户名\r\n await dispatch('d2admin/user/load', null, { root: true })\r\n // DB -> store 加载主题\r\n await dispatch('d2admin/theme/load', null, { root: true })\r\n // DB -> store 加载页面过渡效果设置\r\n await dispatch('d2admin/transition/load', null, { root: true })\r\n // DB -> store 持久化数据加载侧边栏折叠状态\r\n await dispatch('d2admin/menu/asideCollapseLoad', null, { root: true })\r\n // DB -> store 持久化数据加载全局尺寸\r\n await dispatch('d2admin/size/load', null, { root: true })\r\n // end\r\n resolve()\r\n })\r\n }\r\n }\r\n}\r\n","var map = {\n\t\"./d2-admin-text.svg\": \"ae5c\",\n\t\"./d2-admin.svg\": \"bb12\"\n};\n\n\nfunction webpackContext(req) {\n\tvar id = webpackContextResolve(req);\n\treturn __webpack_require__(id);\n}\nfunction webpackContextResolve(req) {\n\tif(!__webpack_require__.o(map, req)) {\n\t\tvar e = new Error(\"Cannot find module '\" + req + \"'\");\n\t\te.code = 'MODULE_NOT_FOUND';\n\t\tthrow e;\n\t}\n\treturn map[req];\n}\nwebpackContext.keys = function webpackContextKeys() {\n\treturn Object.keys(map);\n};\nwebpackContext.resolve = webpackContextResolve;\nmodule.exports = webpackContext;\nwebpackContext.id = \"ec399\";","import UaParser from 'ua-parser-js'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n // 用户 UA\r\n data: {}\r\n },\r\n mutations: {\r\n /**\r\n * @description 记录 UA\r\n * @param {Object} state vuex state\r\n */\r\n get (state) {\r\n state.data = new UaParser().getResult()\r\n }\r\n }\r\n}\r\n","import request from '@/plugin/axios'\r\n\r\nexport function AccountLogin (data) {\r\n return request({\r\n url: '/api/auth/jwt/token',\r\n method: 'post',\r\n data,\r\n loading: {\r\n type: 'loading',\r\n options: {\r\n fullscreen: true,\r\n lock: true,\r\n text: '正在登陆...',\r\n spinner: 'el-icon-loading',\r\n background: 'rgba(0, 0, 0, 0.8)'\r\n }\r\n }\r\n })\r\n}\r\n\r\nexport function AccountLogout (token) {\r\n return request({\r\n url: '/api/auth/jwt/logout?token=' + token,\r\n method: 'delete',\r\n loading: {\r\n type: 'loading',\r\n options: {\r\n fullscreen: true,\r\n lock: true,\r\n text: '正在退出...',\r\n spinner: 'el-icon-loading',\r\n background: 'rgba(0, 0, 0, 0.8)'\r\n }\r\n }\r\n })\r\n}\r\n\r\nexport function getCodeImg (data) {\r\n return request({\r\n url: '/api/auth/captcha',\r\n method: 'get'\r\n })\r\n}\r\n","// 设置文件\r\nimport setting from '@/setting.js'\r\n\r\nexport default {\r\n namespaced: true,\r\n state: {\r\n // 用户信息\r\n info: setting.user.info\r\n },\r\n actions: {\r\n /**\r\n * @description 设置用户数据\r\n * @param {Object} state vuex state\r\n * @param {*} info info\r\n */\r\n set ({ state, dispatch }, info) {\r\n return new Promise(async resolve => {\r\n // store 赋值\r\n state.info = info\r\n // 持久化\r\n await dispatch('d2admin/db/set', {\r\n dbName: 'sys',\r\n path: 'user.info',\r\n value: info,\r\n user: true\r\n }, { root: true })\r\n // end\r\n resolve()\r\n })\r\n },\r\n /**\r\n * @description 从数据库取用户数据\r\n * @param {Object} state vuex state\r\n */\r\n load ({ state, dispatch }) {\r\n return new Promise(async resolve => {\r\n // store 赋值\r\n state.info = await dispatch('d2admin/db/get', {\r\n dbName: 'sys',\r\n path: 'user.info',\r\n defaultValue: setting.user.info,\r\n user: true\r\n }, { root: true })\r\n // end\r\n resolve()\r\n })\r\n }\r\n }\r\n}\r\n","export default {\r\n namespaced: true,\r\n state: {\r\n //功能编码\r\n functions: [],\r\n //角色编码\r\n roles: [],\r\n //接口\r\n interfaces: {\r\n GET: [],\r\n POST: [],\r\n PUT: [],\r\n DELETE: []\r\n },\r\n //是否管理员\r\n isAdmin: false\r\n },\r\n mutations: {\r\n set(state, data) {\r\n state.functions = data.functions;\r\n state.roles = data.roles;\r\n state.isAdmin = data.isAdmin;\r\n state.interfaces = data.interfaces;\r\n }\r\n }\r\n}"],"sourceRoot":""}