diff --git a/dist/css/chunk-1160da0b.0bb21cbe.css b/dist/css/chunk-1160da0b.0bb21cbe.css
new file mode 100644
index 0000000..7ec3e62
--- /dev/null
+++ b/dist/css/chunk-1160da0b.0bb21cbe.css
@@ -0,0 +1 @@
+[data-v-09384920]:export{menuBg:#304156;menuText:#bfcbd9;menuActiveText:#409eff}#pre_canvas[data-v-09384920]{border:1px solid #ccc}
\ No newline at end of file
diff --git a/dist/css/chunk-d1a6e4dc.87e1bd75.css b/dist/css/chunk-d1a6e4dc.87e1bd75.css
deleted file mode 100644
index ec40232..0000000
--- a/dist/css/chunk-d1a6e4dc.87e1bd75.css
+++ /dev/null
@@ -1 +0,0 @@
-[data-v-d0aabc72]:export{menuBg:#304156;menuText:#bfcbd9;menuActiveText:#409eff}#pre_canvas[data-v-d0aabc72]{border:1px solid #ccc}
\ No newline at end of file
diff --git a/dist/index.html b/dist/index.html
index 6a0a6f2..2bcc8a3 100644
--- a/dist/index.html
+++ b/dist/index.html
@@ -1 +1 @@
-
Game Admin
\ No newline at end of file
+Game Admin
\ No newline at end of file
diff --git a/dist/js/app.bf2dfb95.js b/dist/js/app.84e7df09.js
similarity index 99%
rename from dist/js/app.bf2dfb95.js
rename to dist/js/app.84e7df09.js
index a405063..6b19c2b 100644
--- a/dist/js/app.bf2dfb95.js
+++ b/dist/js/app.84e7df09.js
@@ -1,2 +1,2 @@
-(function(e){function t(t){for(var n,i,c=t[0],s=t[1],l=t[2],u=0,d=[];u0){var t,a=i["a"].permissions,o=!1,r=Object(n["a"])(e);try{for(r.s();!(t=r.n()).done;){var c=t.value;if("*"===c){o=!0;break}var s=c.split(":");if("*"===s[0]){var l,u=Object(n["a"])(a);try{for(u.s();!(l=u.n()).done;){var d=l.value;if("*"===d[1]||d[1]===s[1]){o=!0;break}}}catch(v){u.e(v)}finally{u.f()}}else if("*"===s[1]){var h,p=Object(n["a"])(a);try{for(p.s();!(h=p.n()).done;){var m=h.value;if("*"===m[0]||m[0]===s[0]){o=!0;break}}}catch(v){p.e(v)}finally{p.f()}}else{var f,b=Object(n["a"])(a);try{for(b.s();!(f=b.n()).done;){var g=f.value;if("*"===g[0]&&"*"===g[1]||"*"===g[0]&&g[1]===s[1]||g[0]===s[0]&&"*"===g[1]||g[0]===s[0]&&g[1]===s[1]){o=!0;break}}}catch(v){b.e(v)}finally{b.f()}}if(o)break}}catch(v){r.e(v)}finally{r.f()}return o}return console.error("need roles! Like v-permission=\"['admin','editor']\""),!1}},"232e":function(e,t,a){},"23f6":function(e,t,a){"use strict";a("2988")},"24ab":function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff",theme:"#1890ff"}},"24be":function(e,t,a){},2988:function(e,t,a){},"2ca8":function(e,t,a){"use strict";a("c494")},4155:function(e,t,a){"use strict";a("f6a5")},"435a":function(e,t,a){"use strict";a("e4f3")},"4b2f":function(e,t,a){},"4d44":function(e,t,a){},"4f20":function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff"}},5361:function(e,t,a){"use strict";var n=a("448a")["default"];a("1d1c"),a("0d03"),a("c975"),a("a434"),a("4160"),a("159b"),a("fb6a"),a("99af"),a("d3b7"),a("6062b"),a("3ca3"),a("ddb0"),a("4de4"),a("4ec9"),Object.defineProperties(Date.prototype,{addDays:{value:function(e){return new Date(this.getTime()+3600*e*24*1e3)},writable:!0}}),Object.defineProperties(CanvasRenderingContext2D.prototype,{roundRect:{value:function(e,t,a,n,i){var o=Math.min(a,n);return i>o/2&&(i=o/2),this.beginPath(),this.moveTo(e+i,t),this.arcTo(e+a,t,e+a,t+n,i),this.arcTo(e+a,t+n,e,t+n,i),this.arcTo(e,t+n,e,t,i),this.arcTo(e,t,e+a,t,i),this.strokeStyle="#FFF",this.stroke(),this.closePath(),this},writable:!0}}),Object.defineProperties(Array.prototype,{cloneTo:{value:function(e){e.length=this.length;var t=this.length;e.length=t;for(var a=0;a=this.length)return!1;for(var t=this.length-1,a=e;a0&&void 0!==arguments[0]?arguments[0]:1,n=this.slice(0),i=this.length,o=i-a;if(o<0)return n;while(i-- >o)t=Math.floor((i+1)*Math.random()),e=n[t],n[t]=n[i],n[i]=e;return n.slice(o)},writable:!0},randomOne:{value:function(){var e=this.randomGet(1);return e.length>0?e[0]:null},writable:!0},randomRemove:{value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=[];while(e-- >0&&this.length>0){var a=Math.random()*this.length|0;t.push.apply(t,n(this.splice(a,1)))}return t},writable:!0},moveElement:{value:function(e){return Math.abs(e)>this.length&&(e%=this.length),this.slice(-e).concat(this.slice(0,-e))},writable:!0},union:{value:function(e){var t=this.concat(e);return n(new Set(t))},writable:!0},intersect:{value:function(e){var t=new Set(e),a=new Set(this.filter((function(e){return t.has(e)})));return n(a)},writable:!0},difference:{value:function(e){var t=new Set(e),a=new Set(this.filter((function(e){return!t.has(e)})));return n(a)},writable:!0}}),Object.defineProperties(Map.prototype,{inc:{value:function(e,t){return"number"===typeof t?this.set(e,(this.get(e)||0)+t):this.set(e,t),this.get(e)}}})},5581:function(e,t,a){"use strict";a.d(t,"c",(function(){return r})),a.d(t,"i",(function(){return c})),a.d(t,"a",(function(){return l})),a.d(t,"g",(function(){return u})),a.d(t,"d",(function(){return h})),a.d(t,"j",(function(){return p})),a.d(t,"b",(function(){return f})),a.d(t,"h",(function(){return b})),a.d(t,"e",(function(){return v})),a.d(t,"k",(function(){return y})),a.d(t,"f",(function(){return w}));var n=a("a78e"),i=a.n(n),o="sidebar_status",r=function(){return i.a.get(o)},c=function(e){return i.a.set(o,e)},s="language",l=function(){return i.a.get(s)},u=function(e){return i.a.set(s,e)},d="size",h=function(){return i.a.get(d)},p=function(e){return i.a.set(d,e)},m="mini",f=function(){return i.a.get(m)},b=function(e){return i.a.set(m,e)},g="vue_typescript_admin_access_token",v=function(){return i.a.get(g)},y=function(e){return i.a.set(g,e)},w=function(){return i.a.remove(g)}},"58dd":function(e,t,a){"use strict";a("92fc")},"5f49":function(e,t,a){},6199:function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff"}},"6ebf":function(e,t,a){"use strict";a.d(t,"b",(function(){return x}));var n=a("5530"),i=(a("b64b"),a("c975"),a("2b0e")),o=a("a925"),r=a("5581"),c=a("b2d6"),s=a.n(c),l=a("f0d9"),u=a.n(l),d=a("3ed6"),h=a.n(d),p=a("c3ff"),m=a.n(p),f=a("fcff"),b=a.n(f),g={route:{dashboard:"Dashboard",system:"System",adminuser:"Admin",documentation:"Documentation",guide:"Guide",permission:"Permission",pagePermission:"Page Permission",rolePermission:"Role Permission",directivePermission:"Directive Permission",icons:"Icons",components:"Components",tinymce:"Tinymce",markdown:"Markdown",jsonEditor:"JSON Editor",splitPane:"SplitPane",avatarUpload:"Avatar Upload",dropzone:"Dropzone",sticky:"Sticky",countTo:"Count To",componentMixin:"Mixin",backToTop:"Back To Top",draggableDialog:"Draggable Dialog",draggableKanban:"Draggable Kanban",draggableList:"Draggable List",draggableSelect:"Draggable Select",charts:"Charts",barChart:"Bar Chart",lineChart:"Line Chart",mixedChart:"Mixed Chart",example:"Example",nested:"Nested Routes",menu1:"Menu 1","menu1-1":"Menu 1-1","menu1-2":"Menu 1-2","menu1-2-1":"Menu 1-2-1","menu1-2-2":"Menu 1-2-2","menu1-3":"Menu 1-3",menu2:"Menu 2",table:"Table",dynamicTable:"Dynamic Table",draggableTable:"Draggable Table",inlineEditTable:"Inline Edit Table",complexTable:"Complex Table",tab:"Tab",form:"Form",createArticle:"Create Article",editArticle:"Edit Article",articleList:"Article List",errorPages:"Error Pages",page401:"401",page404:"404",errorLog:"Error Log",excel:"Excel",exportExcel:"Export Excel",selectExcel:"Export Selected",mergeHeader:"Merge Header",uploadExcel:"Upload Excel",zip:"Zip",pdf:"PDF",exportZip:"Export Zip",theme:"Theme",clipboard:"Clipboard",i18n:"I18n",externalLink:"External Link",profile:"Profile",article:"Article",marketing:"Marketing",marketing_coupon:"Coupon",marketing_coupon_info:"Coupon Info",marketing_promo:"Promo Code",marketing_points:"Points Setting",question:"Question Set",question_list:"Question List",question_prepare:"Question Edit",question_setting:"Question Setting",createQuestion:"Create Question",shop:"Shop Setting",shop_list:"Shop List",shop_admin:"Shop Admins",create_shop:"Create Shop",shop_edit:"Shop Editor",game_setting:"Game Setting",game:"Game",game_list:"Game List",game_edit:"Game Info",activity_list:"Activity List",create_activity:"New Activity",edit_activity:"Edit Activity",exam_list:"Exam List",create_exam:"New Exam",edit_exam:"Edit Exam",password:"Password",edit_theme:"Edit Theme",shop_member:"Member Manage",shop_statistics:"Statistics",game_statistics:"Game Statistics",shop_puzzles:"Custom Puzzles",shop_lottery:"Lottery Setting",shop_share:"Share Setting",shop_mail:"Mails",create_mail:"New Mail",edit_mail:"Edit Mail",shop_announce:"Announce",create_announce:"New Announce",edit_announce:"Edit Announce"},navbar:{logOut:"Log Out",dashboard:"Dashboard",github:"Github",theme:"Theme",size:"Global Size",profile:"Profile",password:"Password"},login:{title:"Login Form",logIn:"Login",username:"Username",password:"Password",any:"any",thirdparty:"Or connect with",thirdpartyTips:"Can not be simulated on local, so please combine you own business simulation! ! !"},documentation:{documentation:"Documentation",github:"Github Repository"},permission:{createRole:"New Role",editPermission:"Edit",roles:"Your roles",switchRoles:"Switch roles",tips:"In some cases, using v-permission will have no effect. For example: Element-UI el-tab or el-table-column and other scenes that dynamically render dom. You can only do this with v-if.",delete:"Delete",confirm:"Confirm",cancel:"Cancel"},guide:{description:"The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ",button:"Show Guide"},components:{documentation:"Documentation",tinymceTips:"Rich text is a core feature of the management backend, but at the same time it is a place with lots of pits. In the process of selecting rich texts, I also took a lot of detours. The common rich texts on the market have been basically used, and I finally chose Tinymce. See the more detailed rich text comparison and introduction.",stickyTips:"when the page is scrolled to the preset position will be sticky on the top.",backToTopTips1:"When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner",backToTopTips2:"You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally",imageUploadTips:"Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.",changeLanguageTips:"Switch Language Success"},table:{dynamicTips1:"Fixed header, sorted by header order",dynamicTips2:"Not fixed header, sorted by click order",dragTips1:"The default order",dragTips2:"The after dragging order",title:"Title",importance:"Importance",type:"Type",remark:"Remark",search:"Search",add:"Add",export:"Export",reviewer:"Reviewer",id:"ID",date:"Date",author:"Author",readings:"Readings",status:"Status",actions:"Actions",edit:"Edit",publish:"Publish",draft:"Draft",delete:"Delete",cancel:"Cancel",confirm:"Confirm"},example:{warning:"Creating and editing pages cannot be cached by keep-alive because keep-alive's 'include' currently does not support caching based on routes, so now it's cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or don't use keep-alive's 'include' to cache all pages directly. See details"},errorLog:{tips:"Please click the bug icon in the upper right corner",description:"Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.",documentation:"Document introduction"},excel:{export:"Export",selectedExport:"Export Selected Items",placeholder:"Please enter the file name (default excel-list)"},zip:{export:"Export",placeholder:"Please enter the file name (default file)"},pdf:{tips:"Here we use window.print() to implement the feature of downloading PDF."},theme:{change:"Change Theme",documentation:"Theme documentation",tips:"Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details."},tagsView:{refresh:"Refresh",close:"Close",closeOthers:"Close Others",closeAll:"Close All"},settings:{title:"Page style setting",theme:"Theme Color",showTagsView:"Open Tags-View",showSidebarLogo:"Sidebar Logo",fixedHeader:"Fixed Header",sidebarTextTheme:"Sidebar Text Theme"},admin:{addAdmin:"New Admin",editAdmin:"Edit Admin"},article:{add:"New Article"},marketing:{},main:{shop:"shop"}},v={route:{dashboard:"首页",documentation:"文档",system:"系统",adminuser:"管理员",guide:"引导页",permission:"权限管理",rolePermission:"角色权限",pagePermission:"页面权限",directivePermission:"指令权限",icons:"图标",components:"组件",tinymce:"富文本编辑器",markdown:"Markdown",jsonEditor:"JSON 编辑器",splitPane:"Splitpane",avatarUpload:"头像上传",dropzone:"Dropzone",sticky:"Sticky",countTo:"Count To",componentMixin:"小组件",backToTop:"返回顶部",draggableDialog:"可拖拽对话框",draggableKanban:"可拖拽看板",draggableList:"可拖拽列表",draggableSelect:"可拖拽选择",charts:"图表",barChart:"柱状图表",lineChart:"折线图",mixedChart:"混合图表",example:"综合实例",nested:"路由嵌套",menu1:"菜单 1","menu1-1":"菜单 1-1","menu1-2":"菜单 1-2","menu1-2-1":"菜单 1-2-1","menu1-2-2":"菜单 1-2-2","menu1-3":"菜单 1-3",menu2:"菜单 2",table:"表格",dynamicTable:"动态表格",draggableTable:"可拖拽表格",inlineEditTable:"表格内编辑",complexTable:"综合表格",tab:"分栏",form:"表单",createArticle:"创建文章",editArticle:"编辑文章",articleList:"文章列表",errorPages:"错误页面",page401:"401",page404:"404",errorLog:"错误日志",excel:"Excel",exportExcel:"导出 Excel",selectExcel:"导出 已选择项",mergeHeader:"导出 多级表头",uploadExcel:"上传 Excel",zip:"Zip",pdf:"PDF",exportZip:"导出 Zip",theme:"换肤",clipboard:"粘贴板",i18n:"国际化",externalLink:"外链",profile:"个人中心",article:"资讯管理",marketing:"营销管理",marketing_coupon:"优惠券设置",marketing_coupon_info:"编辑优惠券",marketing_promo:"优惠码设置",marketing_points:"积分设置",question:"题库管理",question_list:"题目列表",question_prepare:"题目编辑",question_setting:"题库设置",createQuestion:"创建题目",shop:"店铺设置",shop_list:"店铺列表",shop_admin:"店铺管理员",create_shop:"创建店铺",shop_edit:"编辑店铺",game_setting:"游戏设置",game:"游戏信息",game_list:"游戏列表",game_edit:"编辑游戏",activity_list:"活动列表",create_activity:"新建活动",edit_activity:"编辑活动",exam_list:"挑战列表",create_exam:"新建挑战",edit_exam:"编辑挑战",password:"修改密码",edit_theme:"订制游戏主题",shop_member:"成员管理",shop_statistics:"统计",game_statistics:"游戏数据",shop_puzzles:"自定义题库",shop_lottery:"抽奖转盘",shop_share:"分享设置",shop_mail:"邮件",create_mail:"新邮件",edit_mail:"编辑邮件",shop_announce:"公告",create_announce:"新建公告",edit_announce:"编辑公告"},navbar:{logOut:"退出登录",dashboard:"首页",github:"项目地址",theme:"换肤",size:"布局大小",profile:"个人信息",password:"修改密码"},login:{title:"系统登录",logIn:"登录",username:"账号",password:"密码",any:"随便填",thirdparty:"第三方登录",thirdpartyTips:"本地不能模拟,请结合自己业务进行模拟!!!"},documentation:{documentation:"文档",github:"Github 地址"},permission:{createRole:"新增角色",editPermission:"编辑权限",roles:"你的权限",switchRoles:"切换权限",tips:"在某些情况下,不适合使用 v-permission。例如:Element-UI 的 el-tab 或 el-table-column 以及其它动态渲染 dom 的场景。你只能通过手动设置 v-if 来实现。",delete:"删除",confirm:"确定",cancel:"取消"},guide:{description:"引导页对于一些第一次进入项目的人很有用,你可以简单介绍下项目的功能。本 Demo 是基于",button:"打开引导"},components:{documentation:"文档",tinymceTips:"富文本是管理后台一个核心的功能,但同时又是一个有很多坑的地方。在选择富文本的过程中我也走了不少的弯路,市面上常见的富文本都基本用过了,最终权衡了一下选择了Tinymce。更详细的富文本比较和介绍见",stickyTips:"当页面滚动到预设的位置会吸附在顶部",backToTopTips1:"页面滚动到指定位置会在右下角出现返回顶部按钮",backToTopTips2:"可自定义按钮的样式、show/hide、出现的高度、返回的位置 如需文字提示,可在外部使用Element的el-tooltip元素",imageUploadTips:"由于我在使用时它只有vue@1版本,而且和mockjs不兼容,所以自己改造了一下,如果大家要使用的话,优先还是使用官方版本。",changeLanguageTips:"切换语言成功"},table:{dynamicTips1:"固定表头, 按照表头顺序排序",dynamicTips2:"不固定表头, 按照点击顺序排序",dragTips1:"默认顺序",dragTips2:"拖拽后顺序",title:"标题",importance:"重要性",type:"类型",remark:"点评",search:"搜索",add:"添加",export:"导出",reviewer:"审核人",id:"序号",date:"时间",author:"作者",readings:"阅读数",status:"状态",actions:"操作",edit:"编辑",publish:"发布",draft:"草稿",delete:"删除",cancel:"取 消",confirm:"确 定"},example:{warning:"创建和编辑页面是不能被 keep-alive 缓存的,因为keep-alive 的 include 目前不支持根据路由来缓存,所以目前都是基于 component name 来进行缓存的。如果你想类似的实现缓存效果,可以使用 localStorage 等浏览器缓存方案。或者不要使用 keep-alive 的 include,直接缓存所有页面。详情见"},errorLog:{tips:"请点击右上角bug小图标",description:"现在的管理后台基本都是spa的形式了,它增强了用户体验,但同时也会增加页面出问题的可能性,可能一个小小的疏忽就导致整个页面的死锁。好在 Vue 官网提供了一个方法来捕获处理异常,你可以在其中进行错误处理或者异常上报。",documentation:"文档介绍"},excel:{export:"导出",selectedExport:"导出已选择项",placeholder:"请输入文件名(默认excel-list)"},zip:{export:"导出",placeholder:"请输入文件名(默认file)"},pdf:{tips:"这里使用 window.print() 来实现下载pdf的功能"},theme:{change:"换肤",documentation:"换肤文档",tips:"Tips: 它区别于 navbar 上的 theme-pick, 是两种不同的换肤方法,各自有不同的应用场景,具体请参考文档。"},tagsView:{refresh:"刷新",close:"关闭",closeOthers:"关闭其它",closeAll:"关闭所有"},settings:{title:"系统布局配置",theme:"主题色",showTagsView:"显示 Tags-View",showSidebarLogo:"显示侧边栏 Logo",fixedHeader:"固定 Header",sidebarTextTheme:"侧边栏文字主题色"},admin:{addAdmin:"新增",editAdmin:"编辑"},article:{add:"添加"},main:{shop:"店铺"}},y={route:{dashboard:"Panel de control",documentation:"Documentación",guide:"Guía",permission:"Permisos",rolePermission:"Permisos de rol",pagePermission:"Permisos de la página",directivePermission:"Permisos de la directiva",icons:"Iconos",components:"Componentes",tinymce:"Tinymce",markdown:"Markdown",jsonEditor:"Editor JSON",splitPane:"Panel dividido",avatarUpload:"Subir avatar",dropzone:"Subir ficheros",sticky:"Sticky",countTo:"Count To",componentMixin:"Mixin",backToTop:"Ir arriba",draggableDialog:"Draggable Dialog",draggableKanban:"Draggable Kanban",draggableList:"Draggable List",draggableSelect:"Draggable Select",charts:"Gráficos",barChart:"Bar Chart",lineChart:"Gráfico de líneas",mixedChart:"Mixed Chart",example:"Ejemplo",nested:"Rutas anidadass",menu1:"Menu 1","menu1-1":"Menu 1-1","menu1-2":"Menu 1-2","menu1-2-1":"Menu 1-2-1","menu1-2-2":"Menu 1-2-2","menu1-3":"Menu 1-3",menu2:"Menu 2",table:"Tabla",dynamicTable:"Tabla dinámica",draggableTable:"Arrastrar tabla",inlineEditTable:"Editor",complexTable:"Complex Table",tab:"Pestaña",form:"Formulario",createArticle:"Crear artículo",editArticle:"Editar artículo",articleList:"Listado de artículos",errorPages:"Páginas de error",page401:"401",page404:"404",errorLog:"Registro de errores",excel:"Excel",exportExcel:"Exportar a Excel",selectExcel:"Export seleccionado",mergeHeader:"Merge Header",uploadExcel:"Subir Excel",zip:"Zip",pdf:"PDF",exportZip:"Exportar a Zip",theme:"Tema",clipboard:"Clipboard",i18n:"I18n",externalLink:"Enlace externo",profile:"Profile"},navbar:{logOut:"Salir",dashboard:"Panel de control",github:"Github",theme:"Tema",size:"Tamaño global",profile:"Profile"},login:{title:"Formulario de acceso",logIn:"Acceso",username:"Usuario",password:"Contraseña",any:"nada",thirdparty:"Conectar con",thirdpartyTips:"No se puede simular en local, así que combine su propia simulación de negocios. ! !"},documentation:{documentation:"Documentación",github:"Repositorio Github"},permission:{createRole:"Nuevo rol",editPermission:"Permiso de edición",roles:"Tus permisos",switchRoles:"Cambiar permisos",tips:"In some cases it is not suitable to use v-permission, such as element Tab component or el-table-column and other asynchronous rendering dom cases which can only be achieved by manually setting the v-if.",delete:"Borrar",confirm:"Confirmar",cancel:"Cancelar"},guide:{description:"The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ",button:"Ver guía"},components:{documentation:"Documentación",tinymceTips:"Rich text editor is a core part of management system, but at the same time is a place with lots of problems. In the process of selecting rich texts, I also walked a lot of detours. The common rich text editors in the market are basically used, and the finally chose Tinymce. See documentation for more detailed rich text editor comparisons and introductions.",stickyTips:"when the page is scrolled to the preset position will be sticky on the top.",backToTopTips1:"When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner",backToTopTips2:"You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally",imageUploadTips:"Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.",changeLanguageTips:"Cambiar de idioma correctamente"},table:{dynamicTips1:"Fixed header, sorted by header order",dynamicTips2:"Not fixed header, sorted by click order",dragTips1:"Orden por defecto",dragTips2:"The after dragging order",title:"Título",importance:"Importancia",type:"Tipo",remark:"Remark",search:"Buscar",add:"Añadir",export:"Exportar",reviewer:"Reviewer",id:"ID",date:"Fecha",author:"Autor",readings:"Lector",status:"Estado",actions:"Acciones",edit:"Editar",publish:"Publicar",draft:"Draft",delete:"Eliminar",cancel:"Cancelar",confirm:"Confirmar"},example:{warning:"Creating and editing pages cannot be cached by keep-alive because keep-alive include does not currently support caching based on routes, so it is currently cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or do not use keep-alive include to cache all pages directly. See details"},errorLog:{tips:"Please click the bug icon in the upper right corner",description:"Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.",documentation:"Documento de introducción"},excel:{export:"Exportar",selectedExport:"Exportar seleccionados",placeholder:"Por favor escribe un nombre de fichero"},zip:{export:"Exportar",placeholder:"Por favor escribe un nombre de fichero"},pdf:{tips:"Here we use window.print() to implement the feature of downloading PDF."},theme:{change:"Cambiar tema",documentation:"Documentación del tema",tips:"Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details."},tagsView:{refresh:"Actualizar",close:"Cerrar",closeOthers:"Cerrar otros",closeAll:"Cerrar todos"},settings:{title:"Page style setting",theme:"Theme Color",showTagsView:"Show Tags-View",showSidebarLogo:"Show Sidebar Logo",fixedHeader:"Fixed Header",sidebarTextTheme:"Sidebar Text Theme"}},w={route:{dashboard:"トップ",system:"システム",documentation:"ドキュメント",guide:"ガイド",permission:"権限",rolePermission:"権限ロール",pagePermission:"ページ権限",directivePermission:"ディレクティブ権限",icons:"アイコン",components:"コンポーネント",tinymce:"TinyMCE",markdown:"Markdown",jsonEditor:"JSON Editor",splitPane:"パネル",avatarUpload:"アバターアップロード",dropzone:"Dropzone",sticky:"Sticky",countTo:"Count To",componentMixin:"コンポーネントMixin",backToTop:"Back To Top",draggableDialog:"Draggable Dialog",draggableKanban:"Draggable 看板",draggableList:"Draggable List",draggableSelect:"Draggable Select",charts:"チャート",barChart:"Barチャート",lineChart:"Lineチャート",mixedChart:"Mixedチャート",example:"Example",nested:"Nested Routes",menu1:"メニュー1","menu1-1":"メニュー 1-1","menu1-2":"メニュー 1-2","menu1-2-1":"メニュー 1-2-1","menu1-2-2":"メニュー 1-2-2","menu1-3":"メニュー 1-3",menu2:"メニュー 2",table:"Table",dynamicTable:"可変 Table",draggableTable:"Draggable Table",inlineEditTable:"Inline Edit Table",complexTable:"Complex Table",tab:"Tab",form:"フォーム",createArticle:"投稿作成",editArticle:"投稿編集",articleList:"投稿リスト",errorPages:"エラーページ",page401:"401",page404:"404",errorLog:"エラーログ",excel:"Excel",exportExcel:"一括エクスポート",selectExcel:"複数選択エクスポート",mergeHeader:"ヘッダーマージ",uploadExcel:"アップロード",zip:"Zip",pdf:"PDF",exportZip:"Export Zip",theme:"テーマ変更",clipboard:"Clipboard",i18n:"多言語",externalLink:"外部リンク",profile:"プロフィール"},navbar:{dashboard:"トップ",github:"GitHub",logOut:"ログアウト",profile:"プロフィール",theme:"テーマ変更",size:"画面サイズ"},login:{title:"ユーザログイン",logIn:"ログイン",username:"ユーザ名",password:"パスワード",any:"any",thirdparty:"外部IDでログイン",thirdpartyTips:"ローカル環境ではログインできません。実装が必要です。"},documentation:{documentation:"ドキュメント",github:"Github Link"},permission:{createRole:"ロール追加",editPermission:"ロール変更",roles:"ロール",switchRoles:"ロール切替",tips:"v-permissionは使えない時があります。例えば: Element-UI の el-tab、 el-table-column 及び他の dom。v-ifを使う必要があります。",delete:"削除",confirm:"確認",cancel:"キャンセル"},guide:{description:"ガイドは各機能の説明です。",button:"ガイドを見る"},components:{documentation:"ドキュメント",tinymceTips:"tinymceは管理画面に重要な機能ですが、その同時に落とし穴がありあす。tinymceを使う道のりが大変でした。Tinymceを使う時に各自のプロジェクト状況で判断が必要です。ドキュメントはこちら",stickyTips:"ページの指定位置へスクロールした場合、表示されます。",backToTopTips1:"トップへスクロールが表示されます。",backToTopTips2:"ボタンのスタイルはカスタマイズできます。例えば、show/hide、height、position。 またはElementのel-tooltipを使って、ツールチップを実装できます。",imageUploadTips:"mockjsは使えないため、カスタマイズしています。公式の最新バージョンを使ってください。",changeLanguageTips:"言語切り替えの成功"},table:{dynamicTips1:"先頭は固定、最後に追加",dynamicTips2:"戦後に追加せず、指定列に追加",dragTips1:"デフォルト順番",dragTips2:"Drag後の順番",title:"タイトル",importance:"重要",type:"タイプ",remark:"評価",search:"検索",add:"追加",export:"エクスポート",reviewer:"レビュアー",id:"番号",date:"日時",author:"作成者",readings:"閲覧数",status:"ステータス",actions:"操作",edit:"編集",publish:"公開",draft:"下書き",delete:"キャンセル",cancel:"キャンセル",confirm:"確認"},example:{warning:"新規作成と編集画面は keep-alive を使えないです。keep-alive の include はrouteのキャッシュは使えないです。そのため、component name を使ってキャッシュさせるようにします。このようなキャッシュ機能を作りたい場合,localStorageを使う手があります。もしくは keep-alive の includeを使って、全ページキャッシュする方法はあります。"},errorLog:{tips:"右上のbugアイコンをクリックしてください。",description:"管理画面はspaを使う場合が多い、ユーザ体現向上はできますが、想定外エラーが発生する場合があります。Vueはそのエラーハンドリング機能を提供し、エラーレポートができます。",documentation:"ドキュメント"},excel:{export:"エクスポート",selectedExport:"エクスポート対象を選択してください。",placeholder:"ファイル名を入力してください。"},zip:{export:"エクスポート",placeholder:"ファイル名を入力してください。"},pdf:{tips:"window.print() を使ってPDFダウンロードしています。"},theme:{change:"テーマ切替",documentation:"ドキュメント",tips:"Tips: テーマの切り替え方法はnavbarのtheme-pickと異なります、使い方はドキュメントを確認してください。"},tagsView:{refresh:"更新",close:"閉じる",closeOthers:"その他閉じる",closeAll:"すべて閉じる"},settings:{title:"システムテーマ",theme:"テーマ色",showTagsView:"Tags-View 開く",showSidebarLogo:"Show Sidebar Logo",fixedHeader:"Fixed Header",sidebarTextTheme:"Sidebar Text Theme"}},k={route:{dashboard:"대시보드",system:"체계",documentation:"문서",guide:"가이드",permission:"권한",rolePermission:"역할 권한",pagePermission:"페이지 권한",directivePermission:"지시 권한",icons:"아이콘",components:"구성 요소",tinymce:"TinyMCE",markdown:"Markdown",jsonEditor:"JSON Editor",splitPane:"패널",avatarUpload:"아바타업로드",dropzone:"Dropzone",sticky:"Sticky",countTo:"Count To",componentMixin:"구성 요소 Mixin",backToTop:"Back To Top",draggableDialog:"드래그 상자",draggableKanban:"드래그 간판",draggableList:"드래그 리스트",draggableSelect:"드래그 선택",charts:"차트",barChart:"막대그래프",lineChart:"꺽은선그래프",mixedChart:"종합차트",example:"예시",nested:"Nested Routes",menu1:"메뉴1","menu1-1":"메뉴 1-1","menu1-2":"메뉴 1-2","menu1-2-1":"메뉴 1-2-1","menu1-2-2":"메뉴 1-2-2","menu1-3":"메뉴 1-3",menu2:"메뉴 2",table:"표",dynamicTable:"Dynamic 표",draggableTable:"Draggable 표",inlineEditTable:"Inline Edit 표",complexTable:"Complex 표",tab:"Tab",form:"형태",createArticle:"게시물 작성",editArticle:"게시물 편집",articleList:"게시물 리스트",errorPages:"에러 페이지",page401:"401",page404:"404",errorLog:"에러 로그",excel:"엑셀",exportExcel:"엑셀 내보내기",selectExcel:"엑셀 선택",mergeHeader:"헤더 병합",uploadExcel:"엑셀 올리기",zip:"Zip",pdf:"PDF",exportZip:"Export Zip",theme:"테마",clipboard:"Clipboard",i18n:"언어",externalLink:"외부 링크",profile:"프로필"},navbar:{dashboard:"대시보드",github:"깃허브",logOut:"로그아웃",profile:"프로필",theme:"테마",size:"크기"},login:{title:"타이틀",logIn:"로그인",username:"이름",password:"비밀번호",any:"any",thirdparty:"외부 ID로 로그인",thirdpartyTips:"로컬 환경에서 로그인 할 수 없습니다."},documentation:{documentation:"문서",github:"깃허브 링크"},permission:{createRole:"역할 추가",editPermission:"권한 수정",roles:"역할",switchRoles:"역할 바꾸기",tips:"v-permission 사용할 때가 있습니다. 예 : Element-UI의 el-tab, el-table-column 및 다른 dom. v-if를 사용해야합니다.",delete:"삭제",confirm:"확인",cancel:"취소"},guide:{description:"각 기능에 대한 설명입니다.",button:"버튼"},components:{documentation:"문서",tinymceTips:"서식있는 텍스트는 관리 백엔드의 핵심 기능이지만 동시에 문제가 많은 곳입니다. 리치 텍스트를 선택하는 과정에서도 많은 우회가 필요했습니다. 시중에 나와있는 일반적인 서식있는 텍스트는 기본적으로 사용되었으며 마침내 Tinymce를 선택했습니다. 보다 자세한 리치 텍스트 비교 및 소개를 참조하십시오.",stickyTips:"페이지의 지정된 위치에 스크롤하면 나타납니다.",backToTopTips1:"페이지가 지정된 위치로 스크롤되면 맨 아래 오른쪽 모서리에 맨 위로 이동 단추가 나타납니다.",backToTopTips2:"버튼 스타일, 표시 / 숨기기, 모양 높이, 반환 높이를 사용자 정의 할 수 있습니다. 텍스트 프롬프트가 필요한 경우 element-ui el-tooltip 요소를 외부에서 사용할 수 있습니다",imageUploadTips:"vue @ 1 버전 만 사용하고 있었고 현재 mockjs와 호환되지 않기 때문에 직접 수정했으며 사용하려는 경우 공식 버전을 사용하는 것이 좋습니다.",changeLanguageTips:"언어 전환 성공"},table:{dynamicTips1:"정렬된 헤더",dynamicTips2:"정렬되지 않은 헤더",dragTips1:"기본 순서",dragTips2:"드래그한 순서",title:"타이틀",importance:"중요성",type:"Type",remark:"Remark",search:"검색",add:"추가",export:"내보내기",reviewer:"Reviewer",id:"ID",date:"날짜",author:"글쓴이",readings:"Readings",status:"상태",actions:"Actions",edit:"수정",publish:"게시",draft:"Draft",delete:"삭제",cancel:"취소",confirm:"확인"},example:{warning:"keep-alive의 'include '는 (는) 현재 경로 기반 캐싱을 지원하지 않으므로 구성 요소 이름을 기반으로 캐시되기 때문에 keep-alive로 페이지를 만들고 편집 할 수 없습니다. 비슷한 캐싱 효과를 얻으려면 localStorage와 같은 브라우저 캐싱 구성표를 사용할 수 있습니다. 또는 keep-alive ' include '를 사용하여 모든 페이지를 직접 캐시하지 마십시오. 자세히보다"},errorLog:{tips:"오른쪽 상단에있는 버그 아이콘을 클릭하십시오",description:"이제 관리 시스템은 기본적으로 스파의 형태이며 사용자 경험을 향상 시키지만 페이지 문제의 가능성을 증가시킵니다. 작은 태만으로 인해 전체 페이지 교착 상태가 발생할 수 있습니다. 다행히 Vue는 오류를 처리하거나 예외를보고 할 수있는 예외 처리를 포착하는 방법을 제공합니다.",documentation:"문서 소개"},excel:{export:"내보내기",selectedExport:"선택 항목 내보내기",placeholder:"파일 이름을 입력하세요.(기본 엑셀 목록)"},zip:{export:"내보내기",placeholder:"파일 이름을 입력하세요.(기본 파일)"},pdf:{tips:"여기서는 window.print ()를 사용하여 PDF 다운로드 기능을 구현합니다."},theme:{change:"테마 바꾸기",documentation:"테마 문서",tips:"Tips: 탐색 모음의 테마 선택과는 다른 응용 프로그램 시나리오가있는 두 가지 다른 스키닝 방법입니다. 자세한 내용은 설명서를 참조하십시오."},tagsView:{refresh:"새로고침",close:"닫기",closeOthers:"기타 닫기",closeAll:"모두 닫기"},settings:{title:"페이지 스타일 설정",theme:"테마 색상",showTagsView:"Tags-View 열기",showSidebarLogo:"사이드 메뉴 로고",fixedHeader:"헤더 고정",sidebarTextTheme:"사이드 메뉴 글꼴 테마"}},T={route:{dashboard:"Dashboard",documentation:"Documentazione",guide:"Guida",permission:"Permessi",pagePermission:"Pagina permessi",rolePermission:"Permessi ruolo",directivePermission:"Direttive Permessi",icons:"Icone",components:"Componenti",tinymce:"Tinymce",markdown:"Markdown",jsonEditor:"Editor JSON",splitPane:"SplitPane",avatarUpload:"Carica Avatar",dropzone:"Dropzone",sticky:"Sticky",countTo:"Conta Fino",componentMixin:"Mixin",backToTop:"Torna su",draggableDialog:"Dialogo Trascinabile",draggableKanban:"Kanban Trascinabile",draggableList:"Lista Trascinabile",draggableSelect:"Select Trascinabile",charts:"Grafici",barChart:"Grafico a Barre",lineChart:"Grafico a Linee",mixedChart:"Grafico Misto",example:"Esempio",nested:"Menu Nidificato",menu1:"Menu 1","menu1-1":"Menu 1-1","menu1-2":"Menu 1-2","menu1-2-1":"Menu 1-2-1","menu1-2-2":"Menu 1-2-2","menu1-3":"Menu 1-3",menu2:"Menu 2",table:"Tabella",dynamicTable:"Tabella Dinamica",draggableTable:"Tabella Trascinabile",inlineEditTable:"Tabella Modifica in Linea",complexTable:"Tabella Complessa",tab:"Tab",form:"Form",createArticle:"Crea Articolo",editArticle:"Modifica Articolo",articleList:"Lista Articoli",errorPages:"Pagine di Errore",page401:"401",page404:"404",errorLog:"Registro Errori",excel:"Excel",exportExcel:"Esporta Excel",selectExcel:"Esporta Selezionato",mergeHeader:"Unisci Intestazione",uploadExcel:"Carica Excel",zip:"Zip",pdf:"PDF",exportZip:"Esporta Zip",theme:"Tema",clipboard:"Appunti",i18n:"I18n",externalLink:"Link Esterno",profile:"Profilo"},navbar:{logOut:"Esci",dashboard:"Dashboard",github:"Github",theme:"Tema",size:"Grandezza Globale",profile:"Profilo"},login:{title:"Accesso",logIn:"Accedi",username:"Utente",password:"Password",any:"qualunque",thirdparty:"Connetti con",thirdpartyTips:"Non può essere simulato in locale, quindi combina la tua simulazione di business, per favore!!!"},documentation:{documentation:"Documentazione",github:"Github Repository"},permission:{createRole:"Nuovo Ruolo",editPermission:"Modifica",roles:"I tuoi ruoli",switchRoles:"Cambia ruoli",tips:"In alcuni casi usare v-permission non ha effetto. Per esempio: Element-UI el-tab o el-table-column e altri componenti che renderizzano il dom dinamicamente. Puoi farlo solo con v-if.",delete:"Elimina",confirm:"Conferma",cancel:"Annulla"},guide:{description:"La pagina Guida è utile per alcune persone che entrano nel progetto per la prima volta. Puoi introdurre brevemente le funzionalità del progetto. Il demo è basato su ",button:"Mostra guida"},components:{documentation:"Documentazione",stickyTips:"when the page is scrolled to the preset position will be sticky on the top.",tinymceTips:"Il testo ricco è una funzionalità fondamentale della gestione backend, ma allo stesso tempo è un posto molto scosceso. Nel processo di selezionare un Rich Text editor o fatto molte ricerche. I Rich Text editor comuni sul mercato sono molto usati, per questo alla fine ho scelto Tinymce. Vedi la più dettagliata comparazione e introduzione al Rich text editor.",backToTopTips1:'Quando la pagina viene spostata alla posizione specificata, il bottone "Torna Su" compare nell\'angolo in basso a destra',backToTopTips2:"Puoi personalizzare lo stile dei bottoni, mostra / nascondi, altezza di apparizione, altezza del ritorno a capo. Se hai bisogno di un prompt di testo, puoi utilizzare gli elementi element-ui el-tooltip esternamente",imageUploadTips:"Da quando usavo la verione 1 di Vue che non è compatibile con mockjs, la ho modificata io stesst, e se la userai, è meglio utilizzare versioni ufficiali.",changeLanguageTips:"Cambio lingua riuscito"},table:{dynamicTips1:"Intestazione Fissa, ordinato dall'ordine delle intestazioni",dynamicTips2:"Intestazione non fissa, ordinato dall'ordine dei click",dragTips1:"Ordine di default",dragTips2:"Ordine post trascinamento",title:"Titolo",importance:"Importanza",type:"Tipo",remark:"Osservazione",search:"Ricerca",add:"Aggiungi",export:"Esporta",reviewer:"Recensore",id:"ID",date:"Data",author:"Autore",readings:"Lettori",status:"Status",actions:"Azioni",edit:"Modifica",publish:"Pubblica",draft:"Bozza",delete:"Elimina",cancel:"Annulla",confirm:"Conferma"},example:{warning:"Creare e modificare pagine non può essere tenuto in cache da keep-alive, perchè l'include di keep-alive attualmente non supporta la cache basata sugli indirizzi, per questo ora viene utilizzata la cache basandosi sul nome del componente. Se vuoi utilizzare uno schema di caching basato sul browser come localStorage. O non usare l'include di keep-alive per mettere le pagine in cache direttamente. Vedi dettagli"},errorLog:{tips:"Per favore clicca l'icona dell'insetto nell'angolo in alto a sinistra",description:"Ora il sistema di gestione è fondamentalmente il form della spa, aumenta l'esperienza utente, ma incrementa anche le possibilità di problemi nelle pagine, una piccola negligenza può portare al blocco della pagina. Fortunatamente Vue offre un modo di catturare le eccezioni, dove puoi manipolare gli errori o riportare un'eccezione.",documentation:"Introduzione documentazione"},excel:{export:"Esporta",selectedExport:"Esporta Elementi Selezionati",placeholder:"Per favore inserisci il nome del file(default: excel-list)"},zip:{export:"Esporta",placeholder:"Per favore inserisci il nome del file(default: file)"},pdf:{tips:"Qui usiamo window.print() per implementare la funzionalità del download PDF."},theme:{change:"Cambia Tema",documentation:"Documentazione Tema",tips:"Consiglio: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details."},tagsView:{refresh:"Ricarica",close:"Chiudi",closeOthers:"Chiudi Altri",closeAll:"Chiudi Tutto"},settings:{title:"Impostazione Stile Pagina",theme:"Colore Tema",showTagsView:"Apri Vista Tag",showSidebarLogo:"Logo Barra Laterale",fixedHeader:"Intestazione Fissa",sidebarTextTheme:"Tema Testo Barra Laterale"},toasts:{switchLanguage:"Cambio lingua effettuato"}};i["default"].use(o["a"]);var O={en:Object(n["a"])(Object(n["a"])({},g),s.a),zh:Object(n["a"])(Object(n["a"])({},v),u.a),es:Object(n["a"])(Object(n["a"])({},y),h.a),ja:Object(n["a"])(Object(n["a"])({},w),m.a),ko:Object(n["a"])(Object(n["a"])({},k),b.a),it:Object(n["a"])({},T)},x=function(){var e=Object(r["a"])();if(e)return document.documentElement.lang=e,e;for(var t=navigator.language.toLowerCase(),a=Object.keys(O),n=0,i=a;n-1)return document.documentElement.lang=o,o}return"en"},E=new o["a"]({locale:x(),messages:O});t["a"]=E},"6fa2":function(e,t,a){"use strict";a("6199")},"704b":function(e,t,a){},7176:function(e,t,a){"use strict";a("0b76")},7383:function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a("d4ec"),i=a("bee2"),o=a("262e"),r=a("2caf"),c=a("9ab4"),s=a("6fc5"),l=a("0613"),u=a("24ab"),d=a.n(u),h=a("8b99"),p=function(e){Object(o["a"])(a,e);var t=Object(r["a"])(a);function a(){var e;return Object(n["a"])(this,a),e=t.apply(this,arguments),e.theme=d.a.theme,e.fixedHeader=h["a"].fixedHeader,e.showSettings=h["a"].showSettings,e.showTagsView=h["a"].showTagsView,e.showSidebarLogo=h["a"].showSidebarLogo,e.sidebarTextTheme=h["a"].sidebarTextTheme,e}return Object(i["a"])(a,[{key:"ChangeSetting",value:function(e){this.CHANGE_SETTING(e)}},{key:"CHANGE_SETTING",value:function(e){var t=e.key,a=e.value;Object.prototype.hasOwnProperty.call(this,t)&&(this[t]=a)}}]),a}(s["d"]);Object(c["a"])([s["a"]],p.prototype,"ChangeSetting",null),Object(c["a"])([s["c"]],p.prototype,"CHANGE_SETTING",null),p=Object(c["a"])([Object(s["b"])({dynamic:!0,store:l["a"],name:"settings"})],p);var m=Object(s["e"])(p)},"8ad0":function(e,t,a){"use strict";a.d(t,"a",(function(){return v}));var n=a("d4ec"),i=a("bee2"),o=a("262e"),r=a("2caf"),c=a("5530"),s=(a("45fc"),a("caad"),a("2532"),a("4160"),a("159b"),a("99af"),a("9ab4")),l=a("6fc5"),u=a("afbc"),d=a("0613"),h=a("1e24"),p=function(e,t){var a;return!(null===(a=t.meta)||void 0===a||!a.roles)&&e.some((function(e){return t.meta.roles.includes(e)}))},m=function(e){var t,a;return!(null===(t=e.meta)||void 0===t||!t.permissions)&&Object(h["a"])(null===(a=e.meta)||void 0===a?void 0:a.permissions)},f=function(e){var t,a;return!(null!==(t=e.meta)&&void 0!==t&&t.roles)&&!(null!==(a=e.meta)&&void 0!==a&&a.permissions)},b=function e(t,a){var n=[];return t.forEach((function(t){var i=Object(c["a"])({},t);(p(a,i)||m(i)||f(i))&&(i.children&&(i.children=e(i.children,a)),n.push(i))})),n},g=function(e){Object(o["a"])(a,e);var t=Object(r["a"])(a);function a(){var e;return Object(n["a"])(this,a),e=t.apply(this,arguments),e.routes=[],e.dynamicRoutes=[],e}return Object(i["a"])(a,[{key:"SET_ROUTES",value:function(e){this.routes=u["b"].concat(e),this.dynamicRoutes=e}},{key:"GenerateRoutes",value:function(e){var t;t=e.includes("admin")?u["a"]:b(u["a"],e),this.SET_ROUTES(t)}}]),a}(l["d"]);Object(s["a"])([l["c"]],g.prototype,"SET_ROUTES",null),Object(s["a"])([l["a"]],g.prototype,"GenerateRoutes",null),g=Object(s["a"])([Object(l["b"])({dynamic:!0,store:d["a"],name:"permission"})],g);var v=Object(l["e"])(g)},"8b99":function(e,t,a){"use strict";var n={title:"管理后台",showSettings:!0,showTagsView:!0,fixedHeader:!1,showSidebarLogo:!1,errorLog:["production"],sidebarTextTheme:!0,devServerPort:9527,mockServerPort:9528};t["a"]=n},"8db4":function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff"}},"92fc":function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff"}},"981a":function(e,t,a){"use strict";a.d(t,"d",(function(){return i})),a.d(t,"f",(function(){return o})),a.d(t,"h",(function(){return r})),a.d(t,"i",(function(){return c})),a.d(t,"j",(function(){return s})),a.d(t,"e",(function(){return l})),a.d(t,"b",(function(){return u})),a.d(t,"g",(function(){return d})),a.d(t,"c",(function(){return h})),a.d(t,"a",(function(){return p}));var n=a("b32d"),i={id:"",username:"",showname:"",comment:"",locked:!1,roles:[],level:1,sex:"0",password:"",avatar:"",department:""},o=function(e){return Object(n["a"])({url:"/api/admin/info",method:"post",data:e})},r=function(e){return Object(n["a"])({url:"/api/admin/login",method:"post",data:e})},c=function(){return Object(n["a"])({url:"/api/admin/logout",method:"post"})},s=function(e){return Object(n["a"])({url:"/api/admin/save",method:"post",data:e})},l=function(e){return Object(n["a"])({url:"/api/admin/".concat(e,"/delete"),method:"post"})},u=function(e,t){return Object(n["a"])({url:"/api/admin/".concat(e,"/locker"),method:"post",data:{lock:t}})},d=function(e){return Object(n["a"])({url:"/api/admins",method:"get",params:e})},h=function(e){return Object(n["a"])({url:"/api/admin/passwd",method:"post",data:e})},p=function(e){return Object(n["a"])({url:"/api/admin/update_info",method:"post",data:e})}},9858:function(e,t,a){"use strict";a("c804")},"9dba":function(e,t,a){"use strict";a.d(t,"a",(function(){return v}));var n=a("b85c"),i=a("1da1"),o=a("d4ec"),r=a("bee2"),c=a("262e"),s=a("2caf"),l=(a("96cf"),a("b0c0"),a("498a"),a("ac1f"),a("1276"),a("9ab4")),u=a("6fc5"),d=a("981a"),h=a("5581"),p=a("0613"),m=a("afbc"),f=a("8ad0"),b=a("e741"),g=function(e){Object(c["a"])(a,e);var t=Object(s["a"])(a);function a(){var e;return Object(o["a"])(this,a),e=t.apply(this,arguments),e.token=Object(h["e"])()||"",e.name="",e.avatar="",e.introduction="",e.roles=[],e.permissions=[],e.email="",e.department="",e.deptname="",e.level=999,e.sex="0",e}return Object(r["a"])(a,[{key:"Login",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(t){var a,n,i,o;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return a=t.username,n=t.password,a=a.trim(),e.next=4,Object(d["h"])({username:a,password:n});case 4:i=e.sent,o=i.data,Object(h["k"])(o.token),this.SET_TOKEN(o.token);case 8:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"ResetToken",value:function(){Object(h["f"])(),this.SET_TOKEN(""),this.SET_ROLES([]),this.SET_PERMISSIONS([])}},{key:"GetUserInfo",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(){var t,a,n,i,o,r,c,s,l,u,h;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(""!==this.token){e.next=2;break}throw Error("GetUserInfo: token is undefined!");case 2:return e.next=4,Object(d["f"])({});case 4:if(t=e.sent,a=t.data,a){e.next=8;break}throw Error("Verification failed, please Login again.");case 8:if(n=a.roles,i=a.showname,o=a.avatar,r=a.introduction,c=a.permissions,s=a.department,l=a.level,u=a.deptname,h=a.sex,n&&!(n.length<=0)){e.next=11;break}throw Error("GetUserInfo: roles must be a non-null array!");case 11:this.SET_ROLES(n),this.SET_NAME(i),this.SET_AVATAR(o),this.SET_INTRODUCTION(r),this.SET_PERMISSIONS(c),this.SET_DEPARTMENT(s),this.SET_LEVEL(l),this.SET_DEPTNAME(u),this.SET_SEX(h);case 20:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"UpdateInfo",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(t){var a,n,i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:a=t.showname,n=t.sex,i=t.avatar,this.SET_NAME(a),this.SET_SEX(n),this.SET_AVATAR(i);case 4:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"ChangeRoles",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(t){var a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return a=t+"-token",this.SET_TOKEN(a),Object(h["k"])(a),e.next=5,this.GetUserInfo();case 5:Object(m["d"])(),f["a"].GenerateRoutes(this.roles),m["c"].addRoutes(f["a"].dynamicRoutes),b["a"].delAllViews();case 9:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"LogOut",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(""!==this.token){e.next=2;break}throw Error("LogOut: token is undefined!");case 2:return e.next=4,Object(d["i"])();case 4:Object(h["f"])(),this.SET_TOKEN(""),this.SET_ROLES([]),this.SET_PERMISSIONS([]),this.SET_DEPARTMENT("");case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"SET_TOKEN",value:function(e){this.token=e}},{key:"updatePageToken",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:this.SET_TOKEN(t);case 1:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"SET_NAME",value:function(e){this.name=e}},{key:"SET_AVATAR",value:function(e){this.avatar=e}},{key:"SET_INTRODUCTION",value:function(e){this.introduction=e}},{key:"SET_ROLES",value:function(e){this.roles=e}},{key:"SET_DEPARTMENT",value:function(e){this.department=e}},{key:"SET_DEPTNAME",value:function(e){this.deptname=e}},{key:"SET_SEX",value:function(e){this.sex=e}},{key:"SET_LEVEL",value:function(e){this.level=e}},{key:"SET_PERMISSIONS",value:function(e){var t,a=[],i=Object(n["a"])(e);try{for(i.s();!(t=i.n()).done;){var o=t.value;"*"===o?a.push(["*","*"]):a.push(o.split(":"))}}catch(r){i.e(r)}finally{i.f()}this.permissions=a}}]),a}(u["d"]);Object(l["a"])([u["a"]],g.prototype,"Login",null),Object(l["a"])([u["a"]],g.prototype,"ResetToken",null),Object(l["a"])([u["a"]],g.prototype,"GetUserInfo",null),Object(l["a"])([u["a"]],g.prototype,"UpdateInfo",null),Object(l["a"])([u["a"]],g.prototype,"ChangeRoles",null),Object(l["a"])([u["a"]],g.prototype,"LogOut",null),Object(l["a"])([u["c"]],g.prototype,"SET_TOKEN",null),Object(l["a"])([u["a"]],g.prototype,"updatePageToken",null),Object(l["a"])([u["c"]],g.prototype,"SET_NAME",null),Object(l["a"])([u["c"]],g.prototype,"SET_AVATAR",null),Object(l["a"])([u["c"]],g.prototype,"SET_INTRODUCTION",null),Object(l["a"])([u["c"]],g.prototype,"SET_ROLES",null),Object(l["a"])([u["c"]],g.prototype,"SET_DEPARTMENT",null),Object(l["a"])([u["c"]],g.prototype,"SET_DEPTNAME",null),Object(l["a"])([u["c"]],g.prototype,"SET_SEX",null),Object(l["a"])([u["c"]],g.prototype,"SET_LEVEL",null),Object(l["a"])([u["c"]],g.prototype,"SET_PERMISSIONS",null),g=Object(l["a"])([Object(u["b"])({dynamic:!0,store:p["a"],name:"user"})],g);var v=Object(u["e"])(g)},a1de:function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff"}},ac1a:function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return m}));var n,i=a("d4ec"),o=a("bee2"),r=a("262e"),c=a("2caf"),s=(a("a9e3"),a("9ab4")),l=a("6fc5"),u=a("5581"),d=a("6ebf"),h=a("0613");(function(e){e[e["Mobile"]=0]="Mobile",e[e["Desktop"]=1]="Desktop"})(n||(n={}));var p=function(e){Object(r["a"])(a,e);var t=Object(c["a"])(a);function a(){var e;return Object(i["a"])(this,a),e=t.apply(this,arguments),e.sidebar={opened:"closed"!==Object(u["c"])(),withoutAnimation:!1},e.device=n.Desktop,e.language=Object(d["b"])(),e.size=Object(u["d"])()||"medium",e.mini=Object(u["b"])()?Number(Object(u["b"])()):0,e}return Object(o["a"])(a,[{key:"TOGGLE_SIDEBAR",value:function(e){this.sidebar.opened=!this.sidebar.opened,this.sidebar.withoutAnimation=e,this.sidebar.opened?Object(u["i"])("opened"):Object(u["i"])("closed")}},{key:"CLOSE_SIDEBAR",value:function(e){this.sidebar.opened=!1,this.sidebar.withoutAnimation=e,Object(u["i"])("closed")}},{key:"TOGGLE_DEVICE",value:function(e){this.device=e}},{key:"SET_LANGUAGE",value:function(e){this.language=e,Object(u["g"])(this.language)}},{key:"SET_SIZE",value:function(e){this.size=e,Object(u["j"])(this.size)}},{key:"SET_MINI",value:function(e){this.mini=e,Object(u["h"])(e+"")}},{key:"ToggleSideBar",value:function(e){this.TOGGLE_SIDEBAR(e)}},{key:"CloseSideBar",value:function(e){this.CLOSE_SIDEBAR(e)}},{key:"ToggleDevice",value:function(e){this.TOGGLE_DEVICE(e)}},{key:"SetLanguage",value:function(e){this.SET_LANGUAGE(e)}},{key:"SetSize",value:function(e){this.SET_SIZE(e)}},{key:"SetMini",value:function(e){this.SET_MINI(e),e&&this.CloseSideBar(!1)}}]),a}(l["d"]);Object(s["a"])([l["c"]],p.prototype,"TOGGLE_SIDEBAR",null),Object(s["a"])([l["c"]],p.prototype,"CLOSE_SIDEBAR",null),Object(s["a"])([l["c"]],p.prototype,"TOGGLE_DEVICE",null),Object(s["a"])([l["c"]],p.prototype,"SET_LANGUAGE",null),Object(s["a"])([l["c"]],p.prototype,"SET_SIZE",null),Object(s["a"])([l["c"]],p.prototype,"SET_MINI",null),Object(s["a"])([l["a"]],p.prototype,"ToggleSideBar",null),Object(s["a"])([l["a"]],p.prototype,"CloseSideBar",null),Object(s["a"])([l["a"]],p.prototype,"ToggleDevice",null),Object(s["a"])([l["a"]],p.prototype,"SetLanguage",null),Object(s["a"])([l["a"]],p.prototype,"SetSize",null),Object(s["a"])([l["a"]],p.prototype,"SetMini",null),p=Object(s["a"])([Object(l["b"])({dynamic:!0,store:h["a"],name:"app"})],p);var m=Object(l["e"])(p)},ad9d:function(e,t,a){"use strict";a("e15f")},adc6:function(e,t,a){"use strict";a("232e")},afbc:function(e,t,a){"use strict";a.d(t,"b",(function(){return Ta})),a.d(t,"a",(function(){return Oa})),a.d(t,"d",(function(){return _a}));a("d3b7"),a("3ca3"),a("ddb0");var n=a("2b0e"),i=a("8c4f"),o=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"app-wrapper",class:e.classObj},[e.classObj.mobile&&e.sidebar.opened?a("div",{staticClass:"drawer-bg",on:{click:e.handleClickOutside}}):e._e(),e.showMenu?a("sidebar",{staticClass:"sidebar-container"}):e._e(),a("div",{staticClass:"main-container",class:{hasTagsView:e.showTagsView}},[e.showMenu?a("div",{class:{"fixed-header":e.fixedHeader}},[a("navbar"),e.showTagsView?a("tags-view"):e._e()],1):e._e(),a("app-main"),e.showSettings?a("right-panel",[a("settings")],1):e._e()],1)],1)},r=[],c=a("d4ec"),s=a("bee2"),l=a("262e"),u=a("2caf"),d=a("9ab4"),h=a("1b40"),p=a("2fe1"),m=a("ac1a"),f=a("7383"),b=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("section",{staticClass:"app-main"},[a("transition",{attrs:{name:"fade-transform",mode:"out-in"}},[a("keep-alive",{attrs:{include:e.cachedViews}},[a("router-view",{key:e.key})],1)],1)],1)},g=[],v=a("e741"),y=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"cachedViews",get:function(){return v["a"].cachedViews}},{key:"key",get:function(){return this.$route.path}}]),a}(h["c"]);y=Object(d["a"])([Object(h["a"])({name:"AppMain"})],y);var w=y,k=w,T=(a("7176"),a("0c7c")),O=Object(T["a"])(k,b,g,!1,null,"d4c70f86",null),x=O.exports,E=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"navbar"},[a("hamburger",{staticClass:"hamburger-container",attrs:{id:"hamburger-container","is-active":e.sidebar.opened},on:{"toggle-click":e.toggleSideBar}}),a("breadcrumb",{staticClass:"breadcrumb-container",attrs:{id:"breadcrumb-container"}}),a("div",{staticClass:"right-menu"},["mobile"!==e.device?[a("header-search",{staticClass:"right-menu-item"}),a("error-log",{staticClass:"errLog-container right-menu-item hover-effect"}),a("screenfull",{staticClass:"right-menu-item hover-effect"}),a("el-tooltip",{attrs:{content:e.$t("navbar.size"),effect:"dark",placement:"bottom"}},[a("size-select",{staticClass:"right-menu-item hover-effect"})],1),a("lang-select",{staticClass:"right-menu-item hover-effect"})]:e._e(),a("el-dropdown",{staticClass:"avatar-container right-menu-item hover-effect",attrs:{trigger:"click"}},[a("div",{staticClass:"avatar-wrapper"},[a("img",{staticClass:"user-avatar",attrs:{src:e.avatar+"?imageView2/1/w/80/h/80"}}),a("i",{staticClass:"el-icon-caret-bottom"})]),a("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[a("router-link",{attrs:{to:"/"}},[a("el-dropdown-item",[e._v(" "+e._s(e.$t("navbar.dashboard"))+" ")])],1),a("router-link",{attrs:{to:"/profile/"}},[a("el-dropdown-item",[e._v(" "+e._s(e.$t("navbar.profile"))+" ")])],1),a("router-link",{attrs:{to:"/password"}},[a("el-dropdown-item",[e._v(" "+e._s(e.$t("navbar.password"))+" ")])],1),a("el-dropdown-item",{attrs:{divided:""},nativeOn:{click:function(t){return e.logout(t)}}},[a("span",{staticStyle:{display:"block"}},[e._v(" "+e._s(e.$t("navbar.logOut"))+" ")])])],1)],1)],2)],1)},_=[],S=a("1da1"),z=(a("96cf"),a("0d03"),a("25f0"),a("9dba")),j=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-breadcrumb",{staticClass:"app-breadcrumb",attrs:{separator:"/"}},[a("transition-group",{attrs:{name:"breadcrumb"}},e._l(e.breadcrumbs,(function(t,n){return a("el-breadcrumb-item",{key:t.path},["noredirect"===t.redirect||n===e.breadcrumbs.length-1?a("span",{staticClass:"no-redirect"},[e._v(e._s(e.$t("route."+t.meta.title)))]):a("a",{on:{click:function(a){return a.preventDefault(),e.handleLink(t)}}},[e._v(e._s(e.$t("route."+t.meta.title)))])])})),1)],1)},C=[],V=(a("2ca0"),a("4de4"),a("99af"),a("b0c0"),a("498a"),a("84d6")),L=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.breadcrumbs=[],e}return Object(s["a"])(a,[{key:"onRouteChange",value:function(e){e.path.startsWith("/redirect/")||this.getBreadcrumb()}},{key:"created",value:function(){this.getBreadcrumb()}},{key:"getBreadcrumb",value:function(){var e=this.$route.matched.filter((function(e){return e.meta&&e.meta.title})),t=e[0];this.isDashboard(t)||(e=[{path:"/dashboard",meta:{title:"dashboard"}}].concat(e)),this.breadcrumbs=e.filter((function(e){return e.meta&&e.meta.title&&!1!==e.meta.breadcrumb}))}},{key:"isDashboard",value:function(e){var t=e&&e.name;return!!t&&t.trim().toLocaleLowerCase()==="Dashboard".toLocaleLowerCase()}},{key:"pathCompile",value:function(e){var t=this.$route.params,a=Object(V["a"])(e);return a(t)}},{key:"handleLink",value:function(e){var t=e.redirect,a=e.path;t?this.$router.push(t)["catch"]((function(e){console.warn(e)})):this.$router.push(this.pathCompile(a))["catch"]((function(e){console.warn(e)}))}}]),a}(h["c"]);Object(d["a"])([Object(h["d"])("$route")],L.prototype,"onRouteChange",null),L=Object(d["a"])([Object(h["a"])({name:"Breadcrumb"})],L);var M=L,H=M,A=(a("4155"),Object(T["a"])(H,j,C,!1,null,"48aca8f5",null)),P=A.exports,D=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.errorLogs.length>0?a("div",[a("el-badge",{staticStyle:{"line-height":"25px","margin-top":"-5px"},attrs:{"is-dot":!0},nativeOn:{click:function(t){e.dialogTableVisible=!0}}},[a("el-button",{staticStyle:{padding:"8px 10px"},attrs:{size:"small",type:"danger"}},[a("svg-icon",{attrs:{name:"bug"}})],1)],1),a("el-dialog",{attrs:{visible:e.dialogTableVisible,width:"80%","append-to-body":""},on:{"update:visible":function(t){e.dialogTableVisible=t}}},[a("div",{attrs:{slot:"title"},slot:"title"},[a("span",{staticStyle:{"padding-right":"10px"}},[e._v("Error Log")]),a("el-button",{attrs:{size:"mini",type:"primary",icon:"el-icon-delete"},on:{click:e.clearAll}},[e._v(" Clear All ")])],1),a("el-table",{attrs:{data:e.errorLogs,border:""}},[a("el-table-column",{attrs:{label:"Message"},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.row;return[a("div",[a("span",{staticClass:"message-title"},[e._v("Msg:")]),a("el-tag",{attrs:{type:"danger"}},[e._v(" "+e._s(n.err.message)+" ")])],1),a("br"),a("div",[a("span",{staticClass:"message-title",staticStyle:{"padding-right":"10px"}},[e._v("Info: ")]),a("el-tag",{attrs:{type:"warning"}},[e._v(" "+e._s(n.vm.$vnode.tag)+" error in "+e._s(n.info)+" ")])],1),a("br"),a("div",[a("span",{staticClass:"message-title",staticStyle:{"padding-right":"16px"}},[e._v("Url: ")]),a("el-tag",{attrs:{type:"success"}},[e._v(" "+e._s(n.url)+" ")])],1)]}}],null,!1,3134886942)}),a("el-table-column",{attrs:{label:"Stack"},scopedSlots:e._u([{key:"default",fn:function(t){var a=t.row;return[e._v(" "+e._s(a.err.stack)+" ")]}}],null,!1,284746202)})],1)],1)],1):e._e()},I=[],R=(a("a434"),a("6fc5")),B=a("0613"),$=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.logs=[],e}return Object(s["a"])(a,[{key:"ADD_ERROR_LOG",value:function(e){this.logs.push(e)}},{key:"CLEAR_ERROR_LOG",value:function(){this.logs.splice(0)}},{key:"AddErrorLog",value:function(e){this.ADD_ERROR_LOG(e)}},{key:"ClearErrorLog",value:function(){this.CLEAR_ERROR_LOG()}}]),a}(R["d"]);Object(d["a"])([R["c"]],$.prototype,"ADD_ERROR_LOG",null),Object(d["a"])([R["c"]],$.prototype,"CLEAR_ERROR_LOG",null),Object(d["a"])([R["a"]],$.prototype,"AddErrorLog",null),Object(d["a"])([R["a"]],$.prototype,"ClearErrorLog",null),$=Object(d["a"])([Object(R["b"])({dynamic:!0,store:B["a"],name:"errorLog"})],$);var N=Object(R["e"])($),q=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.dialogTableVisible=!1,e}return Object(s["a"])(a,[{key:"errorLogs",get:function(){return N.logs}},{key:"clearAll",value:function(){this.dialogTableVisible=!1,N.ClearErrorLog()}}]),a}(h["c"]);q=Object(d["a"])([Object(h["a"])({name:"ErrorLog"})],q);var G=q,F=G,W=(a("435a"),Object(T["a"])(F,D,I,!1,null,"72a28363",null)),U=W.exports,Z=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:[{"is-active":e.isActive}],on:{click:e.toggleClick}},[a("svg-icon",{attrs:{name:"hamburger",width:"20",height:"20"}})],1)},K=[],Q=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"toggleClick",value:function(){this.$emit("toggle-click")}}]),a}(h["c"]);Object(d["a"])([Object(h["b"])({default:!1})],Q.prototype,"isActive",void 0),Q=Object(d["a"])([Object(h["a"])({name:"Hamburger"})],Q);var Y=Q,J=Y,X=(a("adc6"),Object(T["a"])(J,Z,K,!1,null,"715ce9d0",null)),ee=X.exports,te=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"header-search",class:{show:e.show},attrs:{id:"header-search"}},[a("svg-icon",{staticClass:"search-icon",attrs:{name:"search"},on:{click:function(t){return t.stopPropagation(),e.click(t)}}}),a("el-select",{ref:"headerSearchSelect",staticClass:"header-search-select",attrs:{"remote-method":e.querySearch,filterable:"","default-first-option":"",remote:"",placeholder:"Search"},on:{change:e.change},model:{value:e.search,callback:function(t){e.search=t},expression:"search"}},e._l(e.options,(function(e){return a("el-option",{key:e.path,attrs:{value:e,label:e.meta.title.join(" > ")}})})),1)],1)},ae=[],ne=a("2909"),ie=a("b85c"),oe=(a("ac1f"),a("841c"),a("d81d"),a("df7c")),re=a.n(oe),ce=a("6062"),se=a("8ad0"),le=a("6ebf"),ue=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.search="",e.show=!1,e.options=[],e.searchPool=[],e}return Object(s["a"])(a,[{key:"routes",get:function(){return se["a"].routes}},{key:"lang",get:function(){return m["a"].language}},{key:"onLangChange",value:function(){this.searchPool=this.generateRoutes(this.routes)}},{key:"onRoutesChange",value:function(){this.searchPool=this.generateRoutes(this.routes)}},{key:"onSearchPoolChange",value:function(e){this.initFuse(e)}},{key:"onShowChange",value:function(e){e?document.body.addEventListener("click",this.close):document.body.removeEventListener("click",this.close)}},{key:"mounted",value:function(){this.searchPool=this.generateRoutes(this.routes)}},{key:"click",value:function(){this.show=!this.show,this.show&&this.$refs.headerSearchSelect&&this.$refs.headerSearchSelect.focus()}},{key:"close",value:function(){this.$refs.headerSearchSelect&&this.$refs.headerSearchSelect.blur(),this.options=[],this.show=!1}},{key:"change",value:function(e){var t=this;this.$router.push(e.path)["catch"]((function(e){console.warn(e)})),this.search="",this.options=[],this.$nextTick((function(){t.show=!1}))}},{key:"initFuse",value:function(e){this.fuse=new ce["a"](e,{shouldSort:!0,threshold:.4,location:0,distance:100,minMatchCharLength:1,keys:[{name:"title",weight:.7},{name:"path",weight:.3}]})}},{key:"generateRoutes",value:function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=[],o=Object(ie["a"])(e);try{for(o.s();!(t=o.n()).done;){var r=t.value;if(!r.meta||!r.meta.hidden){var c={path:re.a.resolve(a,r.path),meta:{title:Object(ne["a"])(n)}};if(r.meta&&r.meta.title){var s=le["a"].t("route.".concat(r.meta.title)).toString();c.meta.title=[].concat(Object(ne["a"])(c.meta.title),[s]),"noRedirect"!==r.redirect&&i.push(c)}if(r.children){var l=this.generateRoutes(r.children,c.path,c.meta.title);l.length>=1&&(i=[].concat(Object(ne["a"])(i),Object(ne["a"])(l)))}}}}catch(u){o.e(u)}finally{o.f()}return i}},{key:"querySearch",value:function(e){""!==e?this.fuse&&(this.options=this.fuse.search(e).map((function(e){return e.item}))):this.options=[]}}]),a}(h["c"]);Object(d["a"])([Object(h["d"])("lang")],ue.prototype,"onLangChange",null),Object(d["a"])([Object(h["d"])("routes")],ue.prototype,"onRoutesChange",null),Object(d["a"])([Object(h["d"])("searchPool")],ue.prototype,"onSearchPoolChange",null),Object(d["a"])([Object(h["d"])("show")],ue.prototype,"onShowChange",null),ue=Object(d["a"])([Object(h["a"])({name:"HeaderSearch"})],ue);var de=ue,he=de,pe=(a("d2c9"),Object(T["a"])(he,te,ae,!1,null,"ed2ef868",null)),me=pe.exports,fe=a("1131"),be=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"screenfull"}},[a("svg-icon",{attrs:{name:e.isFullscreen?"exit-fullscreen":"fullscreen"},on:{click:e.click}})],1)},ge=[],ve=a("93bf"),ye=a.n(ve),we=ye.a,ke=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.isFullscreen=!1,e}return Object(s["a"])(a,[{key:"mounted",value:function(){we.isEnabled&&we.on("change",this.change)}},{key:"beforeDestory",value:function(){we.isEnabled&&we.off("change",this.change)}},{key:"change",value:function(){we.isEnabled&&(this.isFullscreen=we.isFullscreen)}},{key:"click",value:function(){if(!we.isEnabled)return this.$message({message:"you browser can not work",type:"warning"}),!1;we.toggle()}}]),a}(h["c"]);ke=Object(d["a"])([Object(h["a"])({name:"Screenfull"})],ke);var Te=ke,Oe=Te,xe=Object(T["a"])(Oe,be,ge,!1,null,null,null),Ee=xe.exports,_e=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-dropdown",{attrs:{id:"size-select",trigger:"click"},on:{command:e.handleSetSize}},[a("div",[a("svg-icon",{staticClass:"size-icon",attrs:{name:"size"}})],1),a("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},e._l(e.sizeOptions,(function(t){return a("el-dropdown-item",{key:t.value,attrs:{disabled:e.size===t.value,command:t.value}},[e._v(" "+e._s(t.label)+" ")])})),1)],1)},Se=[],ze=(a("5319"),function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.sizeOptions=[{label:"Default",value:"default"},{label:"Medium",value:"medium"},{label:"Small",value:"small"},{label:"Mini",value:"mini"}],e}return Object(s["a"])(a,[{key:"size",get:function(){return m["a"].size}},{key:"handleSetSize",value:function(e){this.$ELEMENT.size=e,m["a"].SetSize(e),this.refreshView(),this.$message({message:"Switch Size Success",type:"success"})}},{key:"refreshView",value:function(){var e=this;v["a"].delAllCachedViews();var t=this.$route.fullPath;this.$nextTick((function(){e.$router.replace({path:"/redirect"+t})["catch"]((function(e){console.warn(e)}))}))}}]),a}(h["c"]));ze=Object(d["a"])([Object(h["a"])({name:"SizeSelect"})],ze);var je=ze,Ce=je,Ve=Object(T["a"])(Ce,_e,Se,!1,null,null,null),Le=Ve.exports,Me=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"sidebar",get:function(){return m["a"].sidebar}},{key:"device",get:function(){return m["a"].device.toString()}},{key:"avatar",get:function(){return z["a"].avatar}},{key:"toggleSideBar",value:function(){m["a"].ToggleSideBar(!1)}},{key:"logout",value:function(){var e=Object(S["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,z["a"].LogOut();case 2:this.$router.push("/login?redirect=".concat(this.$route.fullPath))["catch"]((function(e){console.warn(e)}));case 3:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()}]),a}(h["c"]);Me=Object(d["a"])([Object(h["a"])({name:"Navbar",components:{Breadcrumb:P,ErrorLog:U,Hamburger:ee,HeaderSearch:me,LangSelect:fe["a"],Screenfull:Ee,SizeSelect:Le}})],Me);var He=Me,Ae=He,Pe=(a("ad9d"),Object(T["a"])(Ae,E,_,!1,null,"1a173b7f",null)),De=Pe.exports,Ie=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"drawer-container"},[a("div",[a("h3",{staticClass:"drawer-title"},[e._v(" "+e._s(e.$t("settings.title"))+" ")]),a("div",{staticClass:"drawer-item"},[a("span",[e._v(e._s(e.$t("settings.theme")))]),a("theme-picker",{staticStyle:{float:"right",height:"26px",margin:"-3px 8px 0 0"},on:{change:e.themeChange}})],1),a("div",{staticClass:"drawer-item"},[a("span",[e._v(e._s(e.$t("settings.showTagsView")))]),a("el-switch",{staticClass:"drawer-switch",model:{value:e.showTagsView,callback:function(t){e.showTagsView=t},expression:"showTagsView"}})],1),a("div",{staticClass:"drawer-item"},[a("span",[e._v(e._s(e.$t("settings.showSidebarLogo")))]),a("el-switch",{staticClass:"drawer-switch",model:{value:e.showSidebarLogo,callback:function(t){e.showSidebarLogo=t},expression:"showSidebarLogo"}})],1),a("div",{staticClass:"drawer-item"},[a("span",[e._v(e._s(e.$t("settings.fixedHeader")))]),a("el-switch",{staticClass:"drawer-switch",model:{value:e.fixedHeader,callback:function(t){e.fixedHeader=t},expression:"fixedHeader"}})],1),a("div",{staticClass:"drawer-item"},[a("span",[e._v(e._s(e.$t("settings.sidebarTextTheme")))]),a("el-switch",{staticClass:"drawer-switch",model:{value:e.sidebarTextTheme,callback:function(t){e.sidebarTextTheme=t},expression:"sidebarTextTheme"}})],1)])])},Re=[],Be=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-color-picker",{staticClass:"theme-picker",attrs:{predefine:["#409EFF","#1890ff","#304156","#212121","#11a983","#13c2c2","#6959CD","#f5222d"],"popper-class":"theme-picker-dropdown"},model:{value:e.theme,callback:function(t){e.theme=t},expression:"theme"}})},$e=[],Ne=(a("fb6a"),a("4d63"),a("4160"),a("159b"),a("e25e"),a("a15b"),a("a9e3"),a("b680"),a("f6f8").version),qe="#409EFF",Ge=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.chalk="",e.theme="",e}return Object(s["a"])(a,[{key:"defaultTheme",get:function(){return f["a"].theme}},{key:"onDefaultThemeChange",value:function(e){this.theme=e}},{key:"onThemeChange",value:function(){var e=Object(S["a"])(regeneratorRuntime.mark((function e(t){var a,n,i,o,r,c,s,l,u=this;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return");case 2:if(a=this.chalk?this.theme:qe,n=this.getThemeCluster(t.replace("#","")),i=this.getThemeCluster(a.replace("#","")),o=this.$message({message:" Compiling the theme",customClass:"theme-message",type:"success",duration:0,iconClass:"el-icon-loading"}),this.chalk){e.next=10;break}return r="https://unpkg.com/element-ui@".concat(Ne,"/lib/theme-chalk/index.css"),e.next=10,this.getCSSString(r,"chalk");case 10:c=function(e,t){return function(){var a=u.getThemeCluster(qe.replace("#","")),i=u.updateStyle(u[e],a,n),o=document.getElementById(t);o||(o=document.createElement("style"),o.setAttribute("id",t),document.head.appendChild(o)),o.innerText=i}},s=c("chalk","chalk-style"),s(),l=[].slice.call(document.querySelectorAll("style")),l=l.filter((function(e){var t=e.innerText;return new RegExp(a,"i").test(t)&&!/Chalk Variables/.test(t)})),l.forEach((function(e){var t=e.innerText;"string"===typeof t&&(e.innerText=u.updateStyle(t,i,n))})),this.$emit("change",t),o.close();case 18:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"updateStyle",value:function(e,t,a){var n=e;return t.forEach((function(e,t){n=n.replace(new RegExp(e,"ig"),a[t])})),n}},{key:"getCSSString",value:function(e,t){var a=this;return new Promise((function(n){var i=new XMLHttpRequest;i.onreadystatechange=function(){4===i.readyState&&200===i.status&&(a[t]=i.responseText.replace(/@font-face{[^}]+}/,""),n())},i.open("GET",e),i.send()}))}},{key:"getThemeCluster",value:function(e){for(var t=function(e,t){var a=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),i=parseInt(e.slice(4,6),16);return 0===t?[a,n,i].join(","):(a+=Math.round(t*(255-a)),n+=Math.round(t*(255-n)),i+=Math.round(t*(255-i)),"#".concat(a.toString(16)).concat(n.toString(16)).concat(i.toString(16)))},a=function(e,t){var a=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),i=parseInt(e.slice(4,6),16);return a=Math.round((1-t)*a),n=Math.round((1-t)*n),i=Math.round((1-t)*i),"#".concat(a.toString(16)).concat(n.toString(16)).concat(i.toString(16))},n=[e],i=0;i<=9;i++)n.push(t(e,Number((i/10).toFixed(2))));return n.push(a(e,.1)),n}}]),a}(h["c"]);Object(d["a"])([Object(h["d"])("defaultTheme",{immediate:!0})],Ge.prototype,"onDefaultThemeChange",null),Object(d["a"])([Object(h["d"])("theme")],Ge.prototype,"onThemeChange",null),Ge=Object(d["a"])([Object(h["a"])({name:"ThemePicker"})],Ge);var Fe=Ge,We=Fe,Ue=(a("6fa2"),Object(T["a"])(We,Be,$e,!1,null,null,null)),Ze=Ue.exports,Ke=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"fixedHeader",get:function(){return f["a"].fixedHeader},set:function(e){f["a"].ChangeSetting({key:"fixedHeader",value:e})}},{key:"showTagsView",get:function(){return f["a"].showTagsView},set:function(e){f["a"].ChangeSetting({key:"showTagsView",value:e})}},{key:"showSidebarLogo",get:function(){return f["a"].showSidebarLogo},set:function(e){f["a"].ChangeSetting({key:"showSidebarLogo",value:e})}},{key:"sidebarTextTheme",get:function(){return f["a"].sidebarTextTheme},set:function(e){f["a"].ChangeSetting({key:"sidebarTextTheme",value:e})}},{key:"themeChange",value:function(e){f["a"].ChangeSetting({key:"theme",value:e})}}]),a}(h["c"]);Ke=Object(d["a"])([Object(h["a"])({name:"Settings",components:{ThemePicker:Ze}})],Ke);var Qe=Ke,Ye=Qe,Je=(a("017a"),Object(T["a"])(Ye,Ie,Re,!1,null,"f76a8f60",null)),Xe=Je.exports,et=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:{"has-logo":e.showLogo}},[e.showLogo?a("sidebar-logo",{attrs:{collapse:e.isCollapse}}):e._e(),a("el-scrollbar",{attrs:{"wrap-class":"scrollbar-wrapper"}},[a("el-menu",{attrs:{"default-active":e.activeMenu,collapse:e.isCollapse,"background-color":e.variables.menuBg,"text-color":e.variables.menuText,"active-text-color":e.menuActiveTextColor,"unique-opened":!1,"collapse-transition":!1,mode:"vertical"}},e._l(e.routes,(function(t){return a("sidebar-item",{key:t.path,attrs:{item:t,"base-path":t.path,"is-collapse":e.isCollapse}})})),1)],1)],1)},tt=[],at=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.item.meta&&e.item.meta.hidden?e._e():a("div",{class:[e.isCollapse?"simple-mode":"full-mode",{"first-level":e.isFirstLevel}]},[e.alwaysShowRootMenu||!e.theOnlyOneChild||e.theOnlyOneChild.children?a("el-submenu",{attrs:{index:e.resolvePath(e.item.path),"popper-append-to-body":""}},[a("template",{slot:"title"},[e.item.meta&&e.item.meta.icon?a("svg-icon",{attrs:{name:e.item.meta.icon}}):e._e(),e.item.meta&&e.item.meta.elicon?a("i",{class:e.item.meta.elicon}):e._e(),e.item.meta&&e.item.meta.title?a("span",{attrs:{slot:"title"},slot:"title"},[e._v(e._s(e.$t("route."+e.item.meta.title)))]):e._e()],1),e.item.children?e._l(e.item.children,(function(t){return a("sidebar-item",{key:t.path,staticClass:"nest-menu",attrs:{item:t,"is-collapse":e.isCollapse,"is-first-level":!1,"base-path":e.resolvePath(t.path)}})})):e._e()],2):[e.theOnlyOneChild.meta?a("sidebar-item-link",{attrs:{to:e.resolvePath(e.theOnlyOneChild.path)}},[a("el-menu-item",{class:{"submenu-title-noDropdown":e.isFirstLevel},attrs:{index:e.resolvePath(e.theOnlyOneChild.path)}},[e.theOnlyOneChild.meta.icon?a("svg-icon",{attrs:{name:e.theOnlyOneChild.meta.icon}}):e._e(),e.item.meta&&e.item.meta.elicon?a("i",{class:e.item.meta.elicon}):e._e(),e.theOnlyOneChild.meta.title?a("span",{attrs:{slot:"title"},slot:"title"},[e._v(e._s(e.$t("route."+e.theOnlyOneChild.meta.title)))]):e._e()],1)],1):e._e()]],2)},nt=[],it=a("5530"),ot=(a("c975"),a("277d"),function(e){return/^(https?:|mailto:|tel:)/.test(e)}),rt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.isExternal(e.to)?a("a",{attrs:{href:e.to,target:"_blank",rel:"noopener"}},[e._t("default")],2):a("router-link",{attrs:{to:e.to}},[e._t("default")],2)},ct=[],st=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.isExternal=ot,e}return a}(h["c"]);Object(d["a"])([Object(h["b"])({required:!0})],st.prototype,"to",void 0),st=Object(d["a"])([Object(h["a"])({name:"SidebarItemLink"})],st);var lt=st,ut=lt,dt=Object(T["a"])(ut,rt,ct,!1,null,null,null),ht=dt.exports,pt=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"alwaysShowRootMenu",get:function(){return!(!this.item.meta||!this.item.meta.alwaysShow)}},{key:"showingChildNumber",get:function(){if(this.item.children){var e=this.item.children.filter((function(e){return!e.meta||!e.meta.hidden}));return e.length}return 0}},{key:"theOnlyOneChild",get:function(){if(this.showingChildNumber>1)return null;if(this.item.children){var e,t=Object(ie["a"])(this.item.children);try{for(t.s();!(e=t.n()).done;){var a=e.value;if(!a.meta||!a.meta.hidden)return a}}catch(n){t.e(n)}finally{t.f()}}return Object(it["a"])(Object(it["a"])({},this.item),{},{path:""})}},{key:"resolvePath",value:function(e){return ot(e)?e:ot(this.basePath)?this.basePath:re.a.resolve(this.basePath,e)}}]),a}(h["c"]);Object(d["a"])([Object(h["b"])({required:!0})],pt.prototype,"item",void 0),Object(d["a"])([Object(h["b"])({default:!1})],pt.prototype,"isCollapse",void 0),Object(d["a"])([Object(h["b"])({default:!0})],pt.prototype,"isFirstLevel",void 0),Object(d["a"])([Object(h["b"])({default:""})],pt.prototype,"basePath",void 0),pt=Object(d["a"])([Object(h["a"])({name:"SidebarItem",components:{SidebarItemLink:ht}})],pt);var mt=pt,ft=mt,bt=(a("d729"),a("2ca8"),Object(T["a"])(ft,at,nt,!1,null,"35bc604c",null)),gt=bt.exports,vt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"sidebar-logo-container",class:{collapse:e.collapse}},[a("transition",{attrs:{name:"sidebarLogoFade"}},[e.collapse?a("router-link",{key:"collapse",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[a("img",{staticClass:"sidebar-logo",attrs:{src:"favicon.ico"}})]):a("router-link",{key:"expand",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[a("img",{staticClass:"sidebar-logo",attrs:{src:"favicon.ico"}}),a("h1",{staticClass:"sidebar-title"},[e._v(" "+e._s(e.title)+" ")])])],1)],1)},yt=[],wt=a("8b99"),kt=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.title=wt["a"].title,e}return a}(h["c"]);Object(d["a"])([Object(h["b"])({required:!0})],kt.prototype,"collapse",void 0),kt=Object(d["a"])([Object(h["a"])({name:"SidebarLogo"})],kt);var Tt=kt,Ot=Tt,xt=(a("02d6"),Object(T["a"])(Ot,vt,yt,!1,null,"7847d0d3",null)),Et=xt.exports,_t=a("a1de"),St=a.n(_t),zt=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"sidebar",get:function(){return m["a"].sidebar}},{key:"routes",get:function(){return se["a"].routes}},{key:"showLogo",get:function(){return f["a"].showSidebarLogo}},{key:"menuActiveTextColor",get:function(){return f["a"].sidebarTextTheme?f["a"].theme:St.a.menuActiveText}},{key:"variables",get:function(){return St.a}},{key:"activeMenu",get:function(){var e=this.$route,t=e.meta,a=e.path;return t.activeMenu?t.activeMenu:a}},{key:"isCollapse",get:function(){return!this.sidebar.opened}}]),a}(h["c"]);zt=Object(d["a"])([Object(h["a"])({name:"SideBar",components:{SidebarItem:gt,SidebarLogo:Et}})],zt);var jt=zt,Ct=jt,Vt=(a("023d"),a("b567"),Object(T["a"])(Ct,et,tt,!1,null,"061fdbbc",null)),Lt=Vt.exports,Mt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"tags-view-container",attrs:{id:"tags-view-container"}},[a("scroll-pane",{ref:"scrollPane",staticClass:"tags-view-wrapper",on:{scroll:e.handleScroll}},e._l(e.visitedViews,(function(t){return a("router-link",{key:t.path,ref:"tag",refInFor:!0,staticClass:"tags-view-item",class:e.isActive(t)?"active":"",attrs:{to:{path:t.path,query:t.query,fullPath:t.fullPath},tag:"span"},nativeOn:{mouseup:function(a){if("button"in a&&1!==a.button)return null;!e.isAffix(t)&&e.closeSelectedTag(t)},contextmenu:function(a){return a.preventDefault(),e.openMenu(t,a)}}},[e._v(" "+e._s(e.$t("route."+t.meta.title))+" "),e.isAffix(t)?e._e():a("span",{staticClass:"el-icon-close",on:{click:function(a){return a.preventDefault(),a.stopPropagation(),e.closeSelectedTag(t)}}})])})),1),a("ul",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"contextmenu",style:{left:e.left+"px",top:e.top+"px"}},[a("li",{on:{click:function(t){return e.refreshSelectedTag(e.selectedTag)}}},[e._v(" "+e._s(e.$t("tagsView.refresh"))+" ")]),e.isAffix(e.selectedTag)?e._e():a("li",{on:{click:function(t){return e.closeSelectedTag(e.selectedTag)}}},[e._v(" "+e._s(e.$t("tagsView.close"))+" ")]),a("li",{on:{click:e.closeOthersTags}},[e._v(" "+e._s(e.$t("tagsView.closeOthers"))+" ")]),a("li",{on:{click:function(t){return e.closeAllTags(e.selectedTag)}}},[e._v(" "+e._s(e.$t("tagsView.closeAll"))+" ")])])],1)},Ht=[],At=(a("45fc"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-scrollbar",{ref:"scrollContainer",staticClass:"scroll-container",attrs:{vertical:!1},nativeOn:{wheel:function(t){return t.preventDefault(),e.handleScroll(t)}}},[e._t("default")],2)}),Pt=[],Dt=(a("c740"),4),It=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"scrollWrapper",get:function(){return this.$refs.scrollContainer.$refs.wrap}},{key:"mounted",value:function(){this.scrollWrapper.addEventListener("scroll",this.emitScroll,!0)}},{key:"beforeDestroy",value:function(){this.scrollWrapper.removeEventListener("scroll",this.emitScroll)}},{key:"handleScroll",value:function(e){var t=e.wheelDelta||40*-e.deltaY,a=this.scrollWrapper;a.scrollLeft=a.scrollLeft+t/4}},{key:"emitScroll",value:function(){this.$emit("scroll")}},{key:"moveToTarget",value:function(e){var t=this.$refs.scrollContainer.$el,a=t.offsetWidth,n=this.scrollWrapper,i=this.$parent.$refs.tag,o=null,r=null;if(i.length>0&&(o=i[0],r=i[i.length-1]),o===e)n.scrollLeft=0;else if(r===e)n.scrollLeft=n.scrollWidth-a;else{var c=i.findIndex((function(t){return t===e})),s=i[c-1],l=i[c+1],u=l.$el.offsetLeft+l.$el.offsetWidth+Dt,d=s.$el.offsetLeft-Dt;u>n.scrollLeft+a?n.scrollLeft=u-a:d1&&void 0!==arguments[1]?arguments[1]:"/",n=[];return e.forEach((function(e){if(e.meta&&e.meta.affix){var i=re.a.resolve(a,e.path);n.push({fullPath:i,path:i,name:e.name,meta:Object(it["a"])({},e.meta)})}if(e.children){var o=t.filterAffixTags(e.children,e.path);o.length>=1&&(n=[].concat(Object(ne["a"])(n),Object(ne["a"])(o)))}})),n}},{key:"initTags",value:function(){this.affixTags=this.filterAffixTags(this.routes);var e,t=Object(ie["a"])(this.affixTags);try{for(t.s();!(e=t.n()).done;){var a=e.value;a.name&&v["a"].addVisitedView(a)}}catch(n){t.e(n)}finally{t.f()}}},{key:"addTags",value:function(){var e=this.$route.name;return e&&v["a"].addView(this.$route),!1}},{key:"moveToCurrentTag",value:function(){var e=this,t=this.$refs.tag;this.$nextTick((function(){var a,n=Object(ie["a"])(t);try{for(n.s();!(a=n.n()).done;){var i=a.value;if(i.to.path===e.$route.path){e.$refs.scrollPane.moveToTarget(i),i.to.fullPath!==e.$route.fullPath&&v["a"].updateVisitedView(e.$route);break}}}catch(o){n.e(o)}finally{n.f()}}))}},{key:"refreshSelectedTag",value:function(e){var t=this;v["a"].delCachedView(e);var a=e.fullPath;this.$nextTick((function(){t.$router.replace({path:"/redirect"+a})["catch"]((function(e){console.warn(e)}))}))}},{key:"closeSelectedTag",value:function(e){v["a"].delView(e),this.isActive(e)&&this.toLastView(v["a"].visitedViews,e)}},{key:"closeOthersTags",value:function(){this.selectedTag.fullPath!==this.$route.path&&void 0!==this.selectedTag.fullPath&&this.$router.push(this.selectedTag.fullPath)["catch"]((function(e){console.warn(e)})),v["a"].delOthersViews(this.selectedTag),this.moveToCurrentTag()}},{key:"closeAllTags",value:function(e){var t=this;v["a"].delAllViews(),this.affixTags.some((function(e){return e.path===t.$route.path}))||this.toLastView(v["a"].visitedViews,e)}},{key:"toLastView",value:function(e,t){var a=e.slice(-1)[0];void 0!==a&&void 0!==a.fullPath?this.$router.push(a.fullPath)["catch"]((function(e){console.warn(e)})):"Dashboard"===t.name?this.$router.replace({path:"/redirect"+t.fullPath})["catch"]((function(e){console.warn(e)})):this.$router.push("/")["catch"]((function(e){console.warn(e)}))}},{key:"openMenu",value:function(e,t){var a=105,n=this.$el.getBoundingClientRect().left,i=this.$el.offsetWidth,o=i-a,r=t.clientX-n+15;this.left=r>o?o:r,this.top=t.clientY,this.visible=!0,this.selectedTag=e}},{key:"closeMenu",value:function(){this.visible=!1}},{key:"handleScroll",value:function(){this.closeMenu()}}]),a}(h["c"]);Object(d["a"])([Object(h["d"])("$route")],qt.prototype,"onRouteChange",null),Object(d["a"])([Object(h["d"])("visible")],qt.prototype,"onVisibleChange",null),qt=Object(d["a"])([Object(h["a"])({name:"TagsView",components:{ScrollPane:Nt}})],qt);var Gt=qt,Ft=Gt,Wt=(a("9858"),a("ebd8"),Object(T["a"])(Ft,Mt,Ht,!1,null,"31c3d88a",null)),Ut=Wt.exports,Zt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"rightPanel",staticClass:"rightPanel-container",class:{show:e.show}},[a("div",{staticClass:"rightPanel-background"}),a("div",{directives:[{name:"show",rawName:"v-show",value:e.showMenu,expression:"showMenu"}],staticClass:"rightPanel"},[a("div",{staticClass:"handle-button",style:{top:e.buttonTop+"px","background-color":e.theme},on:{click:function(t){e.show=!e.show}}},[a("i",{class:e.show?"el-icon-close":"el-icon-setting"})]),a("div",{staticClass:"rightPanel-items"},[e._t("default")],2)])])},Kt=[],Qt=a("d257"),Yt=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.show=!1,e}return Object(s["a"])(a,[{key:"showMenu",get:function(){return!m["a"].mini}},{key:"theme",get:function(){return f["a"].theme}},{key:"onShowChange",value:function(e){e&&!this.clickNotClose&&this.addEventClick(),e?Object(Qt["a"])(document.body,"showRightPanel"):Object(Qt["f"])(document.body,"showRightPanel")}},{key:"mounted",value:function(){this.insertToBody()}},{key:"beforeDestroy",value:function(){var e=this.$refs.rightPanel;e.remove()}},{key:"addEventClick",value:function(){window.addEventListener("click",this.closeSidebar)}},{key:"closeSidebar",value:function(e){var t=e.target.closest(".rightPanel");t||(this.show=!1,window.removeEventListener("click",this.closeSidebar))}},{key:"insertToBody",value:function(){var e=this.$refs.rightPanel,t=document.querySelector("body");t&&t.insertBefore(e,t.firstChild)}}]),a}(h["c"]);Object(d["a"])([Object(h["b"])({default:!1})],Yt.prototype,"clickNotClose",void 0),Object(d["a"])([Object(h["b"])({default:250})],Yt.prototype,"buttonTop",void 0),Object(d["a"])([Object(h["d"])("show")],Yt.prototype,"onShowChange",null),Yt=Object(d["a"])([Object(h["a"])({name:"RightPanel"})],Yt);var Jt=Yt,Xt=Jt,ea=(a("bd5e"),a("034b"),Object(T["a"])(Xt,Zt,Kt,!1,null,"745a2b41",null)),ta=ea.exports,aa=992,na=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"device",get:function(){return m["a"].device}},{key:"sidebar",get:function(){return m["a"].sidebar}},{key:"onRouteChange",value:function(){this.device===m["b"].Mobile&&this.sidebar.opened&&m["a"].CloseSideBar(!1)}},{key:"beforeMount",value:function(){window.addEventListener("resize",this.resizeHandler)}},{key:"mounted",value:function(){var e=this.isMobile();e&&(m["a"].ToggleDevice(m["b"].Mobile),m["a"].CloseSideBar(!0))}},{key:"beforeDestroy",value:function(){window.removeEventListener("resize",this.resizeHandler)}},{key:"isMobile",value:function(){var e=document.body.getBoundingClientRect();return e.width-1'}}),l.a.register({admin:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({announce:{width:125.156,height:120,viewBox:"0 0 1068 1024",data:''}}),l.a.register({"back-top":{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({bug:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({chart:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({clipboard:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({component:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({coupon:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({dashboard:{width:128,height:100,viewBox:"0 0 128 100",data:''}}),l.a.register({documentation:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({drag:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({edit:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({education:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({email:{width:128,height:96,viewBox:"0 0 128 96",data:''}}),l.a.register({example:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({excel:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({"exit-fullscreen":{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({"eye-off":{width:128,height:64,viewBox:"0 0 128 64",data:''}}),l.a.register({"eye-on":{width:128,height:128,viewBox:"0 0 1024 1024",data:''}}),l.a.register({form:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({fullscreen:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({game:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({"guide-2":{width:1e3,height:1e3,viewBox:"0 0 1000 1000",data:''}}),l.a.register({guide:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({hamburger:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({icon:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({international:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({language:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({like:{width:24,height:24,viewBox:"0 0 24 24",data:''}}),l.a.register({link:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({list:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({lock:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({lottery:{width:120,height:120,viewBox:"0 0 1024 1024",data:''}}),l.a.register({mail:{width:120,height:120,viewBox:"0 0 1024 1024",data:''}}),l.a.register({message:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({money:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({nested:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({password:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({pdf:{width:128,height:128,viewBox:"0 0 1024 1024",data:''}}),l.a.register({people:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({peoples:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({permission:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({points:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({promo:{width:82.625,height:64,viewBox:"0 0 1322 1024",data:''}}),l.a.register({qq:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({question_list:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({role:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({search:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({sell:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({share:{width:120,height:120,viewBox:"0 0 1024 1024",data:''}}),l.a.register({shop_list:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({shop:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({shopping:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({size:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({skill:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({star:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({statistics:{width:120,height:120,viewBox:"0 0 1024 1024",data:''}}),l.a.register({tab:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({table:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({theme:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({theme2:{width:120,height:120,viewBox:"0 0 1024 1024",data:''}}),l.a.register({"tree-table":{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({tree:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({user:{width:130,height:130,viewBox:"0 0 130 130",data:''}}),l.a.register({wechat:{width:128,height:110,viewBox:"0 0 128 110",data:''}}),l.a.register({zip:{width:128,height:128,viewBox:"0 0 128 128",data:''}});var C=a("5530"),V=a("1da1"),L=(a("96cf"),a("99af"),a("c975"),a("323e")),M=a.n(L),H=(a("a5d8"),a("8ad0")),A=a("8b99");M.a.configure({showSpinner:!1});var P=["/login","/auth-redirect"],D=function(e){var t=j["a"].te("route.".concat(e));if(t){var a=j["a"].t("route.".concat(e));return"".concat(a," - ").concat(A["a"].title)}return"".concat(A["a"].title)};z["c"].beforeEach(function(){var e=Object(V["a"])(regeneratorRuntime.mark((function e(t,a,n){var i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(M.a.start(),!w["a"].token){e.next=28;break}if("/login"!==t.path){e.next=7;break}n({path:"/"}),M.a.done(),e.next=26;break;case 7:if(0!==w["a"].roles.length){e.next=25;break}return e.prev=8,e.next=11,w["a"].GetUserInfo();case 11:i=w["a"].roles,H["a"].GenerateRoutes(i),z["c"].addRoutes(H["a"].dynamicRoutes),n(Object(C["a"])(Object(C["a"])({},t),{},{replace:!0})),e.next=23;break;case 17:e.prev=17,e.t0=e["catch"](8),w["a"].ResetToken(),r["Message"].error(e.t0||"Has Error"),n("/login?redirect=".concat(t.path)),M.a.done();case 23:e.next=26;break;case 25:n();case 26:e.next=29;break;case 28:-1!==P.indexOf(t.path)?n():(n("/login?redirect=".concat(t.path)),M.a.done());case 29:case"end":return e.stop()}}),e,null,[[8,17]])})));return function(t,a,n){return e.apply(this,arguments)}}()),z["c"].afterEach((function(e){M.a.done(),document.title=D(e.meta.title)}));var I,R,B,$=a("1e24"),N={inserted:function(e,t){var a=t.value;Object($["a"])(a)||(e.style.display="none")}},q=(a("caad"),a("2532"),a("ac1f"),a("5319"),{bind:function(e,t,a){var n=e.querySelector(".el-dialog"),i=e.querySelector(".el-dialog__header");n.style.cssText+=";top:0px;",i.style.cssText+=";cursor:move;",i.onmousedown=function(e){var t,o,r=e.clientX-i.offsetLeft,c=e.clientY-i.offsetTop,s=n.offsetWidth,l=n.offsetHeight,u=document.body.clientWidth,d=document.body.clientHeight,h=n.offsetLeft,p=u-n.offsetLeft-s,m=n.offsetTop,f=d-n.offsetTop-l,b=getComputedStyle(n).left,g=getComputedStyle(n).top;b&&g&&(b.includes("%")?(t=+document.body.clientWidth*(+b.replace(/%/g,"")/100),o=+document.body.clientHeight*(+g.replace(/%/g,"")/100)):(t=+b.replace(/px/g,""),o=+g.replace(/px/g,"")),document.onmousemove=function(e){var i=e.clientX-r,s=e.clientY-c;-i>h?i=-h:i>p&&(i=p),-s>m?s=-m:s>f&&(s=f),n.style.cssText+=";left:".concat(i+t,"px;top:").concat(s+o,"px;"),a.componentInstance?a.componentInstance.$emit("on-dialog-drag"):a.elm&&a.elm.dispatchEvent(new CustomEvent("on-dialog-drag"))},document.onmouseup=function(){document.onmousemove=null,document.onmouseup=null})}}}),G=(a("4d44"),{bind:function(e,t){e.addEventListener("click",(function(a){var n=Object.assign({},t.value),i=Object.assign({ele:e,type:"hit",color:"rgba(0, 0, 0, 0.15)"},n),o=i.ele;if(o){o.style.position="relative",o.style.overflow="hidden";var r=o.getBoundingClientRect(),c=o.querySelector(".waves-ripple");switch(c?c.className="waves-ripple":(c=document.createElement("span"),c.className="waves-ripple",c.style.height=c.style.width=Math.max(r.width,r.height)+"px",o.appendChild(c)),i.type){case"center":c.style.top=r.height/2-c.offsetHeight/2+"px",c.style.left=r.width/2-c.offsetWidth/2+"px";break;default:c.style.top=(a.pageY-r.top-c.offsetHeight/2-document.documentElement.scrollTop||document.body.scrollTop)+"px",c.style.left=(a.pageX-r.left-c.offsetWidth/2-document.documentElement.scrollLeft||document.body.scrollLeft)+"px"}return c.style.backgroundColor=i.color,c.className="waves-ripple z-active",!1}}),!1)}}),F=a("b311"),W=a.n(F);if(!W.a)throw new Error("you should npm install `clipboard` --save at first ");var U={bind:function(e,t){"success"===t.arg?I=t.value:"error"===t.arg?R=t.value:(B=new W.a(e,{text:function(){return t.value},action:function(){return"cut"===t.arg?"cut":"copy"}}),B.on("success",(function(e){var t=I;t&&t(e)})),B.on("error",(function(e){var t=R;t&&t(e)})))},update:function(e,t){"success"===t.arg?I=t.value:"error"===t.arg?R=t.value:B=new W.a(e,{text:function(){return t.value},action:function(){return"cut"===t.arg?"cut":"copy"}})},unbind:function(e,t){"success"===t.arg?I=null:"error"===t.arg?R=null:(B&&B.destroy(),B=null)}},Z=(a("45fc"),{inserted:function(e,t){var a=t.value,n=w["a"].roles;if(!(a&&a instanceof Array&&a.length>0))throw new Error("need roles! Like v-role=\"['admin','editor']\"");var i=a,o=n.some((function(e){return i.includes(e)}));o||(e.style.display="none")}}),K=(a("fb6a"),function(e){var t={published:"success",draft:"info",deleted:"danger"};return t[e]}),Q=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},Y=a("b7c7");a("5361");o["default"].use(c.a,{size:y["a"].size,i18n:function(e,t){return j["a"].t(e,t)}}),o["default"].use(l.a,{tagName:"svg-icon",defaultWidth:"1em",defaultHeight:"1em"}),o["default"].use(Y["b"]),Object.keys(n).forEach((function(e){o["default"].directive(e,n[e])})),Object.keys(i).forEach((function(e){o["default"].filter(e,i[e])})),o["default"].config.productionTip=!1,new o["default"]({router:z["c"],store:S["a"],i18n:j["a"],render:function(e){return e(_)}}).$mount("#app")},d257:function(e,t,a){"use strict";a.d(t,"e",(function(){return i})),a.d(t,"g",(function(){return o})),a.d(t,"h",(function(){return r})),a.d(t,"c",(function(){return c})),a.d(t,"a",(function(){return l})),a.d(t,"f",(function(){return u})),a.d(t,"i",(function(){return d})),a.d(t,"b",(function(){return h})),a.d(t,"d",(function(){return p}));var n=a("53ca"),i=(a("e25e"),a("0d03"),a("d3b7"),a("25f0"),a("ac1f"),a("5319"),a("4d90"),a("1276"),a("d81d"),a("466d"),a("4d63"),a("c975"),a("4795"),function(e,t){if(void 0===e||!e)return null;var a,i=t||"{y}-{m}-{d} {h}:{i}:{s}";"object"===Object(n["a"])(e)?a=e:("string"===typeof e&&/^[0-9]+$/.test(e)&&(e=parseInt(e)),"number"===typeof e&&10===e.toString().length&&(e*=1e3),a=new Date(e));var o={y:a.getFullYear(),m:a.getMonth()+1,d:a.getDate(),h:a.getHours(),i:a.getMinutes(),s:a.getSeconds(),a:a.getDay()};return i.replace(/{([ymdhisa])+}/g,(function(e,t){var a=o[t];return"a"===t?["日","一","二","三","四","五","六"][a]:a.toString().padStart(2,"0")}))}),o=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t="undefined"===typeof t||t;var a=e%60,n=(e%3600-a)/60,i=Math.floor(e/3600);return t?(i>9?""+i:"0"+i)+":"+(n>9?n:"0"+n)+":"+(a>9?a:"0"+a):(i>9?""+i:"0"+i)+":"+(n>9?n:"0"+n)},r=function(e){var t=e.split(":"),a=t.length>0?+t[0]:0,n=t.length>1?+t[1]:0,i=t.length>2?+t[2]:0;return 3600*a+60*n+i},c=function(e,t){return t.map((function(t){return e.map((function(e){return"timestamp"===e?i(t[e]):t[e]}))}))},s=function(e,t){return!!e.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))},l=function(e,t){s(e,t)||(e.className+=" "+t)},u=function(e,t){if(s(e,t)){var a=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className=e.className.replace(a," ")}},d=function(e,t){if(e&&t){var a=e.className,n=a.indexOf(t);-1===n?a+=""+t:a=a.substr(0,n)+a.substr(n+t.length),e.className=a}},h=function(e){return new Promise((function(t,a){setTimeout((function(){t&&t("")}),1e3*e)}))},p=function(e){var t=window.location.hash||"",a=new RegExp(e+"=([^&?]*)","ig");return t.match(a)?t.match(a)[0].substr(e.length+1):null}},d2a7:function(e,t,a){},d2c9:function(e,t,a){"use strict";a("704b")},d729:function(e,t,a){"use strict";a("4f20")},e149:function(e,t,a){},e15f:function(e,t,a){},e4f3:function(e,t,a){},e741:function(e,t,a){"use strict";a.d(t,"a",(function(){return p}));var n=a("3835"),i=a("b85c"),o=a("d4ec"),r=a("bee2"),c=a("262e"),s=a("2caf"),l=(a("45fc"),a("b0c0"),a("caad"),a("2532"),a("d3b7"),a("ddb0"),a("a434"),a("c975"),a("4de4"),a("fb6a"),a("9ab4")),u=a("6fc5"),d=a("0613"),h=function(e){Object(c["a"])(a,e);var t=Object(s["a"])(a);function a(){var e;return Object(o["a"])(this,a),e=t.apply(this,arguments),e.visitedViews=[],e.cachedViews=[],e}return Object(r["a"])(a,[{key:"ADD_VISITED_VIEW",value:function(e){this.visitedViews.some((function(t){return t.path===e.path}))||this.visitedViews.push(Object.assign({},e,{title:e.meta.title||"no-name"}))}},{key:"ADD_CACHED_VIEW",value:function(e){null!==e.name&&(this.cachedViews.includes(e.name)||e.meta.noCache||this.cachedViews.push(e.name))}},{key:"DEL_VISITED_VIEW",value:function(e){var t,a=Object(i["a"])(this.visitedViews.entries());try{for(a.s();!(t=a.n()).done;){var o=Object(n["a"])(t.value,2),r=o[0],c=o[1];if(c.path===e.path){this.visitedViews.splice(r,1);break}}}catch(s){a.e(s)}finally{a.f()}}},{key:"DEL_CACHED_VIEW",value:function(e){if(null!==e.name){var t=this.cachedViews.indexOf(e.name);t>-1&&this.cachedViews.splice(t,1)}}},{key:"DEL_OTHERS_VISITED_VIEWS",value:function(e){this.visitedViews=this.visitedViews.filter((function(t){return t.meta.affix||t.path===e.path}))}},{key:"DEL_OTHERS_CACHED_VIEWS",value:function(e){if(null!==e.name){var t=this.cachedViews.indexOf(e.name);this.cachedViews=t>-1?this.cachedViews.slice(t,t+1):[]}}},{key:"DEL_ALL_VISITED_VIEWS",value:function(){var e=this.visitedViews.filter((function(e){return e.meta.affix}));this.visitedViews=e}},{key:"DEL_ALL_CACHED_VIEWS",value:function(){this.cachedViews=[]}},{key:"UPDATE_VISITED_VIEW",value:function(e){var t,a=Object(i["a"])(this.visitedViews);try{for(a.s();!(t=a.n()).done;){var n=t.value;if(n.path===e.path){n=Object.assign(n,e);break}}}catch(o){a.e(o)}finally{a.f()}}},{key:"addView",value:function(e){this.ADD_VISITED_VIEW(e),this.ADD_CACHED_VIEW(e)}},{key:"addVisitedView",value:function(e){this.ADD_VISITED_VIEW(e)}},{key:"delView",value:function(e){this.DEL_VISITED_VIEW(e),this.DEL_CACHED_VIEW(e)}},{key:"delCachedView",value:function(e){this.DEL_CACHED_VIEW(e)}},{key:"delOthersViews",value:function(e){this.DEL_OTHERS_VISITED_VIEWS(e),this.DEL_OTHERS_CACHED_VIEWS(e)}},{key:"delAllViews",value:function(){this.DEL_ALL_VISITED_VIEWS(),this.DEL_ALL_CACHED_VIEWS()}},{key:"delAllCachedViews",value:function(){this.DEL_ALL_CACHED_VIEWS()}},{key:"updateVisitedView",value:function(e){this.UPDATE_VISITED_VIEW(e)}}]),a}(u["d"]);Object(l["a"])([u["c"]],h.prototype,"ADD_VISITED_VIEW",null),Object(l["a"])([u["c"]],h.prototype,"ADD_CACHED_VIEW",null),Object(l["a"])([u["c"]],h.prototype,"DEL_VISITED_VIEW",null),Object(l["a"])([u["c"]],h.prototype,"DEL_CACHED_VIEW",null),Object(l["a"])([u["c"]],h.prototype,"DEL_OTHERS_VISITED_VIEWS",null),Object(l["a"])([u["c"]],h.prototype,"DEL_OTHERS_CACHED_VIEWS",null),Object(l["a"])([u["c"]],h.prototype,"DEL_ALL_VISITED_VIEWS",null),Object(l["a"])([u["c"]],h.prototype,"DEL_ALL_CACHED_VIEWS",null),Object(l["a"])([u["c"]],h.prototype,"UPDATE_VISITED_VIEW",null),Object(l["a"])([u["a"]],h.prototype,"addView",null),Object(l["a"])([u["a"]],h.prototype,"addVisitedView",null),Object(l["a"])([u["a"]],h.prototype,"delView",null),Object(l["a"])([u["a"]],h.prototype,"delCachedView",null),Object(l["a"])([u["a"]],h.prototype,"delOthersViews",null),Object(l["a"])([u["a"]],h.prototype,"delAllViews",null),Object(l["a"])([u["a"]],h.prototype,"delAllCachedViews",null),Object(l["a"])([u["a"]],h.prototype,"updateVisitedView",null),h=Object(l["a"])([Object(u["b"])({dynamic:!0,store:d["a"],name:"tagsView"})],h);var p=Object(u["e"])(h)},ebd8:function(e,t,a){"use strict";a("4b2f")},f6a5:function(e,t,a){}});
-//# sourceMappingURL=app.bf2dfb95.js.map
\ No newline at end of file
+(function(e){function t(t){for(var n,i,c=t[0],s=t[1],l=t[2],u=0,d=[];u0){var t,a=i["a"].permissions,o=!1,r=Object(n["a"])(e);try{for(r.s();!(t=r.n()).done;){var c=t.value;if("*"===c){o=!0;break}var s=c.split(":");if("*"===s[0]){var l,u=Object(n["a"])(a);try{for(u.s();!(l=u.n()).done;){var d=l.value;if("*"===d[1]||d[1]===s[1]){o=!0;break}}}catch(v){u.e(v)}finally{u.f()}}else if("*"===s[1]){var h,p=Object(n["a"])(a);try{for(p.s();!(h=p.n()).done;){var m=h.value;if("*"===m[0]||m[0]===s[0]){o=!0;break}}}catch(v){p.e(v)}finally{p.f()}}else{var f,b=Object(n["a"])(a);try{for(b.s();!(f=b.n()).done;){var g=f.value;if("*"===g[0]&&"*"===g[1]||"*"===g[0]&&g[1]===s[1]||g[0]===s[0]&&"*"===g[1]||g[0]===s[0]&&g[1]===s[1]){o=!0;break}}}catch(v){b.e(v)}finally{b.f()}}if(o)break}}catch(v){r.e(v)}finally{r.f()}return o}return console.error("need roles! Like v-permission=\"['admin','editor']\""),!1}},"232e":function(e,t,a){},"23f6":function(e,t,a){"use strict";a("2988")},"24ab":function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff",theme:"#1890ff"}},"24be":function(e,t,a){},2988:function(e,t,a){},"2ca8":function(e,t,a){"use strict";a("c494")},4155:function(e,t,a){"use strict";a("f6a5")},"435a":function(e,t,a){"use strict";a("e4f3")},"4b2f":function(e,t,a){},"4d44":function(e,t,a){},"4f20":function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff"}},5361:function(e,t,a){"use strict";var n=a("448a")["default"];a("1d1c"),a("0d03"),a("c975"),a("a434"),a("4160"),a("159b"),a("fb6a"),a("99af"),a("d3b7"),a("6062b"),a("3ca3"),a("ddb0"),a("4de4"),a("4ec9"),Object.defineProperties(Date.prototype,{addDays:{value:function(e){return new Date(this.getTime()+3600*e*24*1e3)},writable:!0}}),Object.defineProperties(CanvasRenderingContext2D.prototype,{roundRect:{value:function(e,t,a,n,i){var o=Math.min(a,n);return i>o/2&&(i=o/2),this.beginPath(),this.moveTo(e+i,t),this.arcTo(e+a,t,e+a,t+n,i),this.arcTo(e+a,t+n,e,t+n,i),this.arcTo(e,t+n,e,t,i),this.arcTo(e,t,e+a,t,i),this.strokeStyle="#FFF",this.stroke(),this.closePath(),this},writable:!0}}),Object.defineProperties(Array.prototype,{cloneTo:{value:function(e){e.length=this.length;var t=this.length;e.length=t;for(var a=0;a=this.length)return!1;for(var t=this.length-1,a=e;a0&&void 0!==arguments[0]?arguments[0]:1,n=this.slice(0),i=this.length,o=i-a;if(o<0)return n;while(i-- >o)t=Math.floor((i+1)*Math.random()),e=n[t],n[t]=n[i],n[i]=e;return n.slice(o)},writable:!0},randomOne:{value:function(){var e=this.randomGet(1);return e.length>0?e[0]:null},writable:!0},randomRemove:{value:function(){var e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:1,t=[];while(e-- >0&&this.length>0){var a=Math.random()*this.length|0;t.push.apply(t,n(this.splice(a,1)))}return t},writable:!0},moveElement:{value:function(e){return Math.abs(e)>this.length&&(e%=this.length),this.slice(-e).concat(this.slice(0,-e))},writable:!0},union:{value:function(e){var t=this.concat(e);return n(new Set(t))},writable:!0},intersect:{value:function(e){var t=new Set(e),a=new Set(this.filter((function(e){return t.has(e)})));return n(a)},writable:!0},difference:{value:function(e){var t=new Set(e),a=new Set(this.filter((function(e){return!t.has(e)})));return n(a)},writable:!0}}),Object.defineProperties(Map.prototype,{inc:{value:function(e,t){return"number"===typeof t?this.set(e,(this.get(e)||0)+t):this.set(e,t),this.get(e)}}})},5581:function(e,t,a){"use strict";a.d(t,"c",(function(){return r})),a.d(t,"i",(function(){return c})),a.d(t,"a",(function(){return l})),a.d(t,"g",(function(){return u})),a.d(t,"d",(function(){return h})),a.d(t,"j",(function(){return p})),a.d(t,"b",(function(){return f})),a.d(t,"h",(function(){return b})),a.d(t,"e",(function(){return v})),a.d(t,"k",(function(){return y})),a.d(t,"f",(function(){return w}));var n=a("a78e"),i=a.n(n),o="sidebar_status",r=function(){return i.a.get(o)},c=function(e){return i.a.set(o,e)},s="language",l=function(){return i.a.get(s)},u=function(e){return i.a.set(s,e)},d="size",h=function(){return i.a.get(d)},p=function(e){return i.a.set(d,e)},m="mini",f=function(){return i.a.get(m)},b=function(e){return i.a.set(m,e)},g="vue_typescript_admin_access_token",v=function(){return i.a.get(g)},y=function(e){return i.a.set(g,e)},w=function(){return i.a.remove(g)}},"58dd":function(e,t,a){"use strict";a("92fc")},"5f49":function(e,t,a){},6199:function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff"}},"6ebf":function(e,t,a){"use strict";a.d(t,"b",(function(){return x}));var n=a("5530"),i=(a("b64b"),a("c975"),a("2b0e")),o=a("a925"),r=a("5581"),c=a("b2d6"),s=a.n(c),l=a("f0d9"),u=a.n(l),d=a("3ed6"),h=a.n(d),p=a("c3ff"),m=a.n(p),f=a("fcff"),b=a.n(f),g={route:{dashboard:"Dashboard",system:"System",adminuser:"Admin",documentation:"Documentation",guide:"Guide",permission:"Permission",pagePermission:"Page Permission",rolePermission:"Role Permission",directivePermission:"Directive Permission",icons:"Icons",components:"Components",tinymce:"Tinymce",markdown:"Markdown",jsonEditor:"JSON Editor",splitPane:"SplitPane",avatarUpload:"Avatar Upload",dropzone:"Dropzone",sticky:"Sticky",countTo:"Count To",componentMixin:"Mixin",backToTop:"Back To Top",draggableDialog:"Draggable Dialog",draggableKanban:"Draggable Kanban",draggableList:"Draggable List",draggableSelect:"Draggable Select",charts:"Charts",barChart:"Bar Chart",lineChart:"Line Chart",mixedChart:"Mixed Chart",example:"Example",nested:"Nested Routes",menu1:"Menu 1","menu1-1":"Menu 1-1","menu1-2":"Menu 1-2","menu1-2-1":"Menu 1-2-1","menu1-2-2":"Menu 1-2-2","menu1-3":"Menu 1-3",menu2:"Menu 2",table:"Table",dynamicTable:"Dynamic Table",draggableTable:"Draggable Table",inlineEditTable:"Inline Edit Table",complexTable:"Complex Table",tab:"Tab",form:"Form",createArticle:"Create Article",editArticle:"Edit Article",articleList:"Article List",errorPages:"Error Pages",page401:"401",page404:"404",errorLog:"Error Log",excel:"Excel",exportExcel:"Export Excel",selectExcel:"Export Selected",mergeHeader:"Merge Header",uploadExcel:"Upload Excel",zip:"Zip",pdf:"PDF",exportZip:"Export Zip",theme:"Theme",clipboard:"Clipboard",i18n:"I18n",externalLink:"External Link",profile:"Profile",article:"Article",marketing:"Marketing",marketing_coupon:"Coupon",marketing_coupon_info:"Coupon Info",marketing_promo:"Promo Code",marketing_points:"Points Setting",question:"Question Set",question_list:"Question List",question_prepare:"Question Edit",question_setting:"Question Setting",createQuestion:"Create Question",shop:"Shop Setting",shop_list:"Shop List",shop_admin:"Shop Admins",create_shop:"Create Shop",shop_edit:"Shop Editor",game_setting:"Game Setting",game:"Game",game_list:"Game List",game_edit:"Game Info",activity_list:"Activity List",create_activity:"New Activity",edit_activity:"Edit Activity",exam_list:"Exam List",create_exam:"New Exam",edit_exam:"Edit Exam",password:"Password",edit_theme:"Edit Theme",shop_member:"Member Manage",shop_statistics:"Statistics",game_statistics:"Game Statistics",shop_puzzles:"Custom Puzzles",shop_lottery:"Lottery Setting",shop_share:"Share Setting",shop_mail:"Mails",create_mail:"New Mail",edit_mail:"Edit Mail",shop_announce:"Announce",create_announce:"New Announce",edit_announce:"Edit Announce"},navbar:{logOut:"Log Out",dashboard:"Dashboard",github:"Github",theme:"Theme",size:"Global Size",profile:"Profile",password:"Password"},login:{title:"Login Form",logIn:"Login",username:"Username",password:"Password",any:"any",thirdparty:"Or connect with",thirdpartyTips:"Can not be simulated on local, so please combine you own business simulation! ! !"},documentation:{documentation:"Documentation",github:"Github Repository"},permission:{createRole:"New Role",editPermission:"Edit",roles:"Your roles",switchRoles:"Switch roles",tips:"In some cases, using v-permission will have no effect. For example: Element-UI el-tab or el-table-column and other scenes that dynamically render dom. You can only do this with v-if.",delete:"Delete",confirm:"Confirm",cancel:"Cancel"},guide:{description:"The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ",button:"Show Guide"},components:{documentation:"Documentation",tinymceTips:"Rich text is a core feature of the management backend, but at the same time it is a place with lots of pits. In the process of selecting rich texts, I also took a lot of detours. The common rich texts on the market have been basically used, and I finally chose Tinymce. See the more detailed rich text comparison and introduction.",stickyTips:"when the page is scrolled to the preset position will be sticky on the top.",backToTopTips1:"When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner",backToTopTips2:"You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally",imageUploadTips:"Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.",changeLanguageTips:"Switch Language Success"},table:{dynamicTips1:"Fixed header, sorted by header order",dynamicTips2:"Not fixed header, sorted by click order",dragTips1:"The default order",dragTips2:"The after dragging order",title:"Title",importance:"Importance",type:"Type",remark:"Remark",search:"Search",add:"Add",export:"Export",reviewer:"Reviewer",id:"ID",date:"Date",author:"Author",readings:"Readings",status:"Status",actions:"Actions",edit:"Edit",publish:"Publish",draft:"Draft",delete:"Delete",cancel:"Cancel",confirm:"Confirm"},example:{warning:"Creating and editing pages cannot be cached by keep-alive because keep-alive's 'include' currently does not support caching based on routes, so now it's cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or don't use keep-alive's 'include' to cache all pages directly. See details"},errorLog:{tips:"Please click the bug icon in the upper right corner",description:"Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.",documentation:"Document introduction"},excel:{export:"Export",selectedExport:"Export Selected Items",placeholder:"Please enter the file name (default excel-list)"},zip:{export:"Export",placeholder:"Please enter the file name (default file)"},pdf:{tips:"Here we use window.print() to implement the feature of downloading PDF."},theme:{change:"Change Theme",documentation:"Theme documentation",tips:"Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details."},tagsView:{refresh:"Refresh",close:"Close",closeOthers:"Close Others",closeAll:"Close All"},settings:{title:"Page style setting",theme:"Theme Color",showTagsView:"Open Tags-View",showSidebarLogo:"Sidebar Logo",fixedHeader:"Fixed Header",sidebarTextTheme:"Sidebar Text Theme"},admin:{addAdmin:"New Admin",editAdmin:"Edit Admin"},article:{add:"New Article"},marketing:{},main:{shop:"shop"}},v={route:{dashboard:"首页",documentation:"文档",system:"系统",adminuser:"管理员",guide:"引导页",permission:"权限管理",rolePermission:"角色权限",pagePermission:"页面权限",directivePermission:"指令权限",icons:"图标",components:"组件",tinymce:"富文本编辑器",markdown:"Markdown",jsonEditor:"JSON 编辑器",splitPane:"Splitpane",avatarUpload:"头像上传",dropzone:"Dropzone",sticky:"Sticky",countTo:"Count To",componentMixin:"小组件",backToTop:"返回顶部",draggableDialog:"可拖拽对话框",draggableKanban:"可拖拽看板",draggableList:"可拖拽列表",draggableSelect:"可拖拽选择",charts:"图表",barChart:"柱状图表",lineChart:"折线图",mixedChart:"混合图表",example:"综合实例",nested:"路由嵌套",menu1:"菜单 1","menu1-1":"菜单 1-1","menu1-2":"菜单 1-2","menu1-2-1":"菜单 1-2-1","menu1-2-2":"菜单 1-2-2","menu1-3":"菜单 1-3",menu2:"菜单 2",table:"表格",dynamicTable:"动态表格",draggableTable:"可拖拽表格",inlineEditTable:"表格内编辑",complexTable:"综合表格",tab:"分栏",form:"表单",createArticle:"创建文章",editArticle:"编辑文章",articleList:"文章列表",errorPages:"错误页面",page401:"401",page404:"404",errorLog:"错误日志",excel:"Excel",exportExcel:"导出 Excel",selectExcel:"导出 已选择项",mergeHeader:"导出 多级表头",uploadExcel:"上传 Excel",zip:"Zip",pdf:"PDF",exportZip:"导出 Zip",theme:"换肤",clipboard:"粘贴板",i18n:"国际化",externalLink:"外链",profile:"个人中心",article:"资讯管理",marketing:"营销管理",marketing_coupon:"优惠券设置",marketing_coupon_info:"编辑优惠券",marketing_promo:"优惠码设置",marketing_points:"积分设置",question:"题库管理",question_list:"题目列表",question_prepare:"题目编辑",question_setting:"题库设置",createQuestion:"创建题目",shop:"店铺设置",shop_list:"店铺列表",shop_admin:"店铺管理员",create_shop:"创建店铺",shop_edit:"编辑店铺",game_setting:"游戏设置",game:"游戏信息",game_list:"游戏列表",game_edit:"编辑游戏",activity_list:"活动列表",create_activity:"新建活动",edit_activity:"编辑活动",exam_list:"挑战列表",create_exam:"新建挑战",edit_exam:"编辑挑战",password:"修改密码",edit_theme:"订制游戏主题",shop_member:"成员管理",shop_statistics:"统计",game_statistics:"游戏数据",shop_puzzles:"自定义题库",shop_lottery:"抽奖转盘",shop_share:"分享设置",shop_mail:"邮件",create_mail:"新邮件",edit_mail:"编辑邮件",shop_announce:"公告",create_announce:"新建公告",edit_announce:"编辑公告"},navbar:{logOut:"退出登录",dashboard:"首页",github:"项目地址",theme:"换肤",size:"布局大小",profile:"个人信息",password:"修改密码"},login:{title:"系统登录",logIn:"登录",username:"账号",password:"密码",any:"随便填",thirdparty:"第三方登录",thirdpartyTips:"本地不能模拟,请结合自己业务进行模拟!!!"},documentation:{documentation:"文档",github:"Github 地址"},permission:{createRole:"新增角色",editPermission:"编辑权限",roles:"你的权限",switchRoles:"切换权限",tips:"在某些情况下,不适合使用 v-permission。例如:Element-UI 的 el-tab 或 el-table-column 以及其它动态渲染 dom 的场景。你只能通过手动设置 v-if 来实现。",delete:"删除",confirm:"确定",cancel:"取消"},guide:{description:"引导页对于一些第一次进入项目的人很有用,你可以简单介绍下项目的功能。本 Demo 是基于",button:"打开引导"},components:{documentation:"文档",tinymceTips:"富文本是管理后台一个核心的功能,但同时又是一个有很多坑的地方。在选择富文本的过程中我也走了不少的弯路,市面上常见的富文本都基本用过了,最终权衡了一下选择了Tinymce。更详细的富文本比较和介绍见",stickyTips:"当页面滚动到预设的位置会吸附在顶部",backToTopTips1:"页面滚动到指定位置会在右下角出现返回顶部按钮",backToTopTips2:"可自定义按钮的样式、show/hide、出现的高度、返回的位置 如需文字提示,可在外部使用Element的el-tooltip元素",imageUploadTips:"由于我在使用时它只有vue@1版本,而且和mockjs不兼容,所以自己改造了一下,如果大家要使用的话,优先还是使用官方版本。",changeLanguageTips:"切换语言成功"},table:{dynamicTips1:"固定表头, 按照表头顺序排序",dynamicTips2:"不固定表头, 按照点击顺序排序",dragTips1:"默认顺序",dragTips2:"拖拽后顺序",title:"标题",importance:"重要性",type:"类型",remark:"点评",search:"搜索",add:"添加",export:"导出",reviewer:"审核人",id:"序号",date:"时间",author:"作者",readings:"阅读数",status:"状态",actions:"操作",edit:"编辑",publish:"发布",draft:"草稿",delete:"删除",cancel:"取 消",confirm:"确 定"},example:{warning:"创建和编辑页面是不能被 keep-alive 缓存的,因为keep-alive 的 include 目前不支持根据路由来缓存,所以目前都是基于 component name 来进行缓存的。如果你想类似的实现缓存效果,可以使用 localStorage 等浏览器缓存方案。或者不要使用 keep-alive 的 include,直接缓存所有页面。详情见"},errorLog:{tips:"请点击右上角bug小图标",description:"现在的管理后台基本都是spa的形式了,它增强了用户体验,但同时也会增加页面出问题的可能性,可能一个小小的疏忽就导致整个页面的死锁。好在 Vue 官网提供了一个方法来捕获处理异常,你可以在其中进行错误处理或者异常上报。",documentation:"文档介绍"},excel:{export:"导出",selectedExport:"导出已选择项",placeholder:"请输入文件名(默认excel-list)"},zip:{export:"导出",placeholder:"请输入文件名(默认file)"},pdf:{tips:"这里使用 window.print() 来实现下载pdf的功能"},theme:{change:"换肤",documentation:"换肤文档",tips:"Tips: 它区别于 navbar 上的 theme-pick, 是两种不同的换肤方法,各自有不同的应用场景,具体请参考文档。"},tagsView:{refresh:"刷新",close:"关闭",closeOthers:"关闭其它",closeAll:"关闭所有"},settings:{title:"系统布局配置",theme:"主题色",showTagsView:"显示 Tags-View",showSidebarLogo:"显示侧边栏 Logo",fixedHeader:"固定 Header",sidebarTextTheme:"侧边栏文字主题色"},admin:{addAdmin:"新增",editAdmin:"编辑"},article:{add:"添加"},main:{shop:"店铺"}},y={route:{dashboard:"Panel de control",documentation:"Documentación",guide:"Guía",permission:"Permisos",rolePermission:"Permisos de rol",pagePermission:"Permisos de la página",directivePermission:"Permisos de la directiva",icons:"Iconos",components:"Componentes",tinymce:"Tinymce",markdown:"Markdown",jsonEditor:"Editor JSON",splitPane:"Panel dividido",avatarUpload:"Subir avatar",dropzone:"Subir ficheros",sticky:"Sticky",countTo:"Count To",componentMixin:"Mixin",backToTop:"Ir arriba",draggableDialog:"Draggable Dialog",draggableKanban:"Draggable Kanban",draggableList:"Draggable List",draggableSelect:"Draggable Select",charts:"Gráficos",barChart:"Bar Chart",lineChart:"Gráfico de líneas",mixedChart:"Mixed Chart",example:"Ejemplo",nested:"Rutas anidadass",menu1:"Menu 1","menu1-1":"Menu 1-1","menu1-2":"Menu 1-2","menu1-2-1":"Menu 1-2-1","menu1-2-2":"Menu 1-2-2","menu1-3":"Menu 1-3",menu2:"Menu 2",table:"Tabla",dynamicTable:"Tabla dinámica",draggableTable:"Arrastrar tabla",inlineEditTable:"Editor",complexTable:"Complex Table",tab:"Pestaña",form:"Formulario",createArticle:"Crear artículo",editArticle:"Editar artículo",articleList:"Listado de artículos",errorPages:"Páginas de error",page401:"401",page404:"404",errorLog:"Registro de errores",excel:"Excel",exportExcel:"Exportar a Excel",selectExcel:"Export seleccionado",mergeHeader:"Merge Header",uploadExcel:"Subir Excel",zip:"Zip",pdf:"PDF",exportZip:"Exportar a Zip",theme:"Tema",clipboard:"Clipboard",i18n:"I18n",externalLink:"Enlace externo",profile:"Profile"},navbar:{logOut:"Salir",dashboard:"Panel de control",github:"Github",theme:"Tema",size:"Tamaño global",profile:"Profile"},login:{title:"Formulario de acceso",logIn:"Acceso",username:"Usuario",password:"Contraseña",any:"nada",thirdparty:"Conectar con",thirdpartyTips:"No se puede simular en local, así que combine su propia simulación de negocios. ! !"},documentation:{documentation:"Documentación",github:"Repositorio Github"},permission:{createRole:"Nuevo rol",editPermission:"Permiso de edición",roles:"Tus permisos",switchRoles:"Cambiar permisos",tips:"In some cases it is not suitable to use v-permission, such as element Tab component or el-table-column and other asynchronous rendering dom cases which can only be achieved by manually setting the v-if.",delete:"Borrar",confirm:"Confirmar",cancel:"Cancelar"},guide:{description:"The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ",button:"Ver guía"},components:{documentation:"Documentación",tinymceTips:"Rich text editor is a core part of management system, but at the same time is a place with lots of problems. In the process of selecting rich texts, I also walked a lot of detours. The common rich text editors in the market are basically used, and the finally chose Tinymce. See documentation for more detailed rich text editor comparisons and introductions.",stickyTips:"when the page is scrolled to the preset position will be sticky on the top.",backToTopTips1:"When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner",backToTopTips2:"You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally",imageUploadTips:"Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.",changeLanguageTips:"Cambiar de idioma correctamente"},table:{dynamicTips1:"Fixed header, sorted by header order",dynamicTips2:"Not fixed header, sorted by click order",dragTips1:"Orden por defecto",dragTips2:"The after dragging order",title:"Título",importance:"Importancia",type:"Tipo",remark:"Remark",search:"Buscar",add:"Añadir",export:"Exportar",reviewer:"Reviewer",id:"ID",date:"Fecha",author:"Autor",readings:"Lector",status:"Estado",actions:"Acciones",edit:"Editar",publish:"Publicar",draft:"Draft",delete:"Eliminar",cancel:"Cancelar",confirm:"Confirmar"},example:{warning:"Creating and editing pages cannot be cached by keep-alive because keep-alive include does not currently support caching based on routes, so it is currently cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or do not use keep-alive include to cache all pages directly. See details"},errorLog:{tips:"Please click the bug icon in the upper right corner",description:"Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.",documentation:"Documento de introducción"},excel:{export:"Exportar",selectedExport:"Exportar seleccionados",placeholder:"Por favor escribe un nombre de fichero"},zip:{export:"Exportar",placeholder:"Por favor escribe un nombre de fichero"},pdf:{tips:"Here we use window.print() to implement the feature of downloading PDF."},theme:{change:"Cambiar tema",documentation:"Documentación del tema",tips:"Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details."},tagsView:{refresh:"Actualizar",close:"Cerrar",closeOthers:"Cerrar otros",closeAll:"Cerrar todos"},settings:{title:"Page style setting",theme:"Theme Color",showTagsView:"Show Tags-View",showSidebarLogo:"Show Sidebar Logo",fixedHeader:"Fixed Header",sidebarTextTheme:"Sidebar Text Theme"}},w={route:{dashboard:"トップ",system:"システム",documentation:"ドキュメント",guide:"ガイド",permission:"権限",rolePermission:"権限ロール",pagePermission:"ページ権限",directivePermission:"ディレクティブ権限",icons:"アイコン",components:"コンポーネント",tinymce:"TinyMCE",markdown:"Markdown",jsonEditor:"JSON Editor",splitPane:"パネル",avatarUpload:"アバターアップロード",dropzone:"Dropzone",sticky:"Sticky",countTo:"Count To",componentMixin:"コンポーネントMixin",backToTop:"Back To Top",draggableDialog:"Draggable Dialog",draggableKanban:"Draggable 看板",draggableList:"Draggable List",draggableSelect:"Draggable Select",charts:"チャート",barChart:"Barチャート",lineChart:"Lineチャート",mixedChart:"Mixedチャート",example:"Example",nested:"Nested Routes",menu1:"メニュー1","menu1-1":"メニュー 1-1","menu1-2":"メニュー 1-2","menu1-2-1":"メニュー 1-2-1","menu1-2-2":"メニュー 1-2-2","menu1-3":"メニュー 1-3",menu2:"メニュー 2",table:"Table",dynamicTable:"可変 Table",draggableTable:"Draggable Table",inlineEditTable:"Inline Edit Table",complexTable:"Complex Table",tab:"Tab",form:"フォーム",createArticle:"投稿作成",editArticle:"投稿編集",articleList:"投稿リスト",errorPages:"エラーページ",page401:"401",page404:"404",errorLog:"エラーログ",excel:"Excel",exportExcel:"一括エクスポート",selectExcel:"複数選択エクスポート",mergeHeader:"ヘッダーマージ",uploadExcel:"アップロード",zip:"Zip",pdf:"PDF",exportZip:"Export Zip",theme:"テーマ変更",clipboard:"Clipboard",i18n:"多言語",externalLink:"外部リンク",profile:"プロフィール"},navbar:{dashboard:"トップ",github:"GitHub",logOut:"ログアウト",profile:"プロフィール",theme:"テーマ変更",size:"画面サイズ"},login:{title:"ユーザログイン",logIn:"ログイン",username:"ユーザ名",password:"パスワード",any:"any",thirdparty:"外部IDでログイン",thirdpartyTips:"ローカル環境ではログインできません。実装が必要です。"},documentation:{documentation:"ドキュメント",github:"Github Link"},permission:{createRole:"ロール追加",editPermission:"ロール変更",roles:"ロール",switchRoles:"ロール切替",tips:"v-permissionは使えない時があります。例えば: Element-UI の el-tab、 el-table-column 及び他の dom。v-ifを使う必要があります。",delete:"削除",confirm:"確認",cancel:"キャンセル"},guide:{description:"ガイドは各機能の説明です。",button:"ガイドを見る"},components:{documentation:"ドキュメント",tinymceTips:"tinymceは管理画面に重要な機能ですが、その同時に落とし穴がありあす。tinymceを使う道のりが大変でした。Tinymceを使う時に各自のプロジェクト状況で判断が必要です。ドキュメントはこちら",stickyTips:"ページの指定位置へスクロールした場合、表示されます。",backToTopTips1:"トップへスクロールが表示されます。",backToTopTips2:"ボタンのスタイルはカスタマイズできます。例えば、show/hide、height、position。 またはElementのel-tooltipを使って、ツールチップを実装できます。",imageUploadTips:"mockjsは使えないため、カスタマイズしています。公式の最新バージョンを使ってください。",changeLanguageTips:"言語切り替えの成功"},table:{dynamicTips1:"先頭は固定、最後に追加",dynamicTips2:"戦後に追加せず、指定列に追加",dragTips1:"デフォルト順番",dragTips2:"Drag後の順番",title:"タイトル",importance:"重要",type:"タイプ",remark:"評価",search:"検索",add:"追加",export:"エクスポート",reviewer:"レビュアー",id:"番号",date:"日時",author:"作成者",readings:"閲覧数",status:"ステータス",actions:"操作",edit:"編集",publish:"公開",draft:"下書き",delete:"キャンセル",cancel:"キャンセル",confirm:"確認"},example:{warning:"新規作成と編集画面は keep-alive を使えないです。keep-alive の include はrouteのキャッシュは使えないです。そのため、component name を使ってキャッシュさせるようにします。このようなキャッシュ機能を作りたい場合,localStorageを使う手があります。もしくは keep-alive の includeを使って、全ページキャッシュする方法はあります。"},errorLog:{tips:"右上のbugアイコンをクリックしてください。",description:"管理画面はspaを使う場合が多い、ユーザ体現向上はできますが、想定外エラーが発生する場合があります。Vueはそのエラーハンドリング機能を提供し、エラーレポートができます。",documentation:"ドキュメント"},excel:{export:"エクスポート",selectedExport:"エクスポート対象を選択してください。",placeholder:"ファイル名を入力してください。"},zip:{export:"エクスポート",placeholder:"ファイル名を入力してください。"},pdf:{tips:"window.print() を使ってPDFダウンロードしています。"},theme:{change:"テーマ切替",documentation:"ドキュメント",tips:"Tips: テーマの切り替え方法はnavbarのtheme-pickと異なります、使い方はドキュメントを確認してください。"},tagsView:{refresh:"更新",close:"閉じる",closeOthers:"その他閉じる",closeAll:"すべて閉じる"},settings:{title:"システムテーマ",theme:"テーマ色",showTagsView:"Tags-View 開く",showSidebarLogo:"Show Sidebar Logo",fixedHeader:"Fixed Header",sidebarTextTheme:"Sidebar Text Theme"}},k={route:{dashboard:"대시보드",system:"체계",documentation:"문서",guide:"가이드",permission:"권한",rolePermission:"역할 권한",pagePermission:"페이지 권한",directivePermission:"지시 권한",icons:"아이콘",components:"구성 요소",tinymce:"TinyMCE",markdown:"Markdown",jsonEditor:"JSON Editor",splitPane:"패널",avatarUpload:"아바타업로드",dropzone:"Dropzone",sticky:"Sticky",countTo:"Count To",componentMixin:"구성 요소 Mixin",backToTop:"Back To Top",draggableDialog:"드래그 상자",draggableKanban:"드래그 간판",draggableList:"드래그 리스트",draggableSelect:"드래그 선택",charts:"차트",barChart:"막대그래프",lineChart:"꺽은선그래프",mixedChart:"종합차트",example:"예시",nested:"Nested Routes",menu1:"메뉴1","menu1-1":"메뉴 1-1","menu1-2":"메뉴 1-2","menu1-2-1":"메뉴 1-2-1","menu1-2-2":"메뉴 1-2-2","menu1-3":"메뉴 1-3",menu2:"메뉴 2",table:"표",dynamicTable:"Dynamic 표",draggableTable:"Draggable 표",inlineEditTable:"Inline Edit 표",complexTable:"Complex 표",tab:"Tab",form:"형태",createArticle:"게시물 작성",editArticle:"게시물 편집",articleList:"게시물 리스트",errorPages:"에러 페이지",page401:"401",page404:"404",errorLog:"에러 로그",excel:"엑셀",exportExcel:"엑셀 내보내기",selectExcel:"엑셀 선택",mergeHeader:"헤더 병합",uploadExcel:"엑셀 올리기",zip:"Zip",pdf:"PDF",exportZip:"Export Zip",theme:"테마",clipboard:"Clipboard",i18n:"언어",externalLink:"외부 링크",profile:"프로필"},navbar:{dashboard:"대시보드",github:"깃허브",logOut:"로그아웃",profile:"프로필",theme:"테마",size:"크기"},login:{title:"타이틀",logIn:"로그인",username:"이름",password:"비밀번호",any:"any",thirdparty:"외부 ID로 로그인",thirdpartyTips:"로컬 환경에서 로그인 할 수 없습니다."},documentation:{documentation:"문서",github:"깃허브 링크"},permission:{createRole:"역할 추가",editPermission:"권한 수정",roles:"역할",switchRoles:"역할 바꾸기",tips:"v-permission 사용할 때가 있습니다. 예 : Element-UI의 el-tab, el-table-column 및 다른 dom. v-if를 사용해야합니다.",delete:"삭제",confirm:"확인",cancel:"취소"},guide:{description:"각 기능에 대한 설명입니다.",button:"버튼"},components:{documentation:"문서",tinymceTips:"서식있는 텍스트는 관리 백엔드의 핵심 기능이지만 동시에 문제가 많은 곳입니다. 리치 텍스트를 선택하는 과정에서도 많은 우회가 필요했습니다. 시중에 나와있는 일반적인 서식있는 텍스트는 기본적으로 사용되었으며 마침내 Tinymce를 선택했습니다. 보다 자세한 리치 텍스트 비교 및 소개를 참조하십시오.",stickyTips:"페이지의 지정된 위치에 스크롤하면 나타납니다.",backToTopTips1:"페이지가 지정된 위치로 스크롤되면 맨 아래 오른쪽 모서리에 맨 위로 이동 단추가 나타납니다.",backToTopTips2:"버튼 스타일, 표시 / 숨기기, 모양 높이, 반환 높이를 사용자 정의 할 수 있습니다. 텍스트 프롬프트가 필요한 경우 element-ui el-tooltip 요소를 외부에서 사용할 수 있습니다",imageUploadTips:"vue @ 1 버전 만 사용하고 있었고 현재 mockjs와 호환되지 않기 때문에 직접 수정했으며 사용하려는 경우 공식 버전을 사용하는 것이 좋습니다.",changeLanguageTips:"언어 전환 성공"},table:{dynamicTips1:"정렬된 헤더",dynamicTips2:"정렬되지 않은 헤더",dragTips1:"기본 순서",dragTips2:"드래그한 순서",title:"타이틀",importance:"중요성",type:"Type",remark:"Remark",search:"검색",add:"추가",export:"내보내기",reviewer:"Reviewer",id:"ID",date:"날짜",author:"글쓴이",readings:"Readings",status:"상태",actions:"Actions",edit:"수정",publish:"게시",draft:"Draft",delete:"삭제",cancel:"취소",confirm:"확인"},example:{warning:"keep-alive의 'include '는 (는) 현재 경로 기반 캐싱을 지원하지 않으므로 구성 요소 이름을 기반으로 캐시되기 때문에 keep-alive로 페이지를 만들고 편집 할 수 없습니다. 비슷한 캐싱 효과를 얻으려면 localStorage와 같은 브라우저 캐싱 구성표를 사용할 수 있습니다. 또는 keep-alive ' include '를 사용하여 모든 페이지를 직접 캐시하지 마십시오. 자세히보다"},errorLog:{tips:"오른쪽 상단에있는 버그 아이콘을 클릭하십시오",description:"이제 관리 시스템은 기본적으로 스파의 형태이며 사용자 경험을 향상 시키지만 페이지 문제의 가능성을 증가시킵니다. 작은 태만으로 인해 전체 페이지 교착 상태가 발생할 수 있습니다. 다행히 Vue는 오류를 처리하거나 예외를보고 할 수있는 예외 처리를 포착하는 방법을 제공합니다.",documentation:"문서 소개"},excel:{export:"내보내기",selectedExport:"선택 항목 내보내기",placeholder:"파일 이름을 입력하세요.(기본 엑셀 목록)"},zip:{export:"내보내기",placeholder:"파일 이름을 입력하세요.(기본 파일)"},pdf:{tips:"여기서는 window.print ()를 사용하여 PDF 다운로드 기능을 구현합니다."},theme:{change:"테마 바꾸기",documentation:"테마 문서",tips:"Tips: 탐색 모음의 테마 선택과는 다른 응용 프로그램 시나리오가있는 두 가지 다른 스키닝 방법입니다. 자세한 내용은 설명서를 참조하십시오."},tagsView:{refresh:"새로고침",close:"닫기",closeOthers:"기타 닫기",closeAll:"모두 닫기"},settings:{title:"페이지 스타일 설정",theme:"테마 색상",showTagsView:"Tags-View 열기",showSidebarLogo:"사이드 메뉴 로고",fixedHeader:"헤더 고정",sidebarTextTheme:"사이드 메뉴 글꼴 테마"}},T={route:{dashboard:"Dashboard",documentation:"Documentazione",guide:"Guida",permission:"Permessi",pagePermission:"Pagina permessi",rolePermission:"Permessi ruolo",directivePermission:"Direttive Permessi",icons:"Icone",components:"Componenti",tinymce:"Tinymce",markdown:"Markdown",jsonEditor:"Editor JSON",splitPane:"SplitPane",avatarUpload:"Carica Avatar",dropzone:"Dropzone",sticky:"Sticky",countTo:"Conta Fino",componentMixin:"Mixin",backToTop:"Torna su",draggableDialog:"Dialogo Trascinabile",draggableKanban:"Kanban Trascinabile",draggableList:"Lista Trascinabile",draggableSelect:"Select Trascinabile",charts:"Grafici",barChart:"Grafico a Barre",lineChart:"Grafico a Linee",mixedChart:"Grafico Misto",example:"Esempio",nested:"Menu Nidificato",menu1:"Menu 1","menu1-1":"Menu 1-1","menu1-2":"Menu 1-2","menu1-2-1":"Menu 1-2-1","menu1-2-2":"Menu 1-2-2","menu1-3":"Menu 1-3",menu2:"Menu 2",table:"Tabella",dynamicTable:"Tabella Dinamica",draggableTable:"Tabella Trascinabile",inlineEditTable:"Tabella Modifica in Linea",complexTable:"Tabella Complessa",tab:"Tab",form:"Form",createArticle:"Crea Articolo",editArticle:"Modifica Articolo",articleList:"Lista Articoli",errorPages:"Pagine di Errore",page401:"401",page404:"404",errorLog:"Registro Errori",excel:"Excel",exportExcel:"Esporta Excel",selectExcel:"Esporta Selezionato",mergeHeader:"Unisci Intestazione",uploadExcel:"Carica Excel",zip:"Zip",pdf:"PDF",exportZip:"Esporta Zip",theme:"Tema",clipboard:"Appunti",i18n:"I18n",externalLink:"Link Esterno",profile:"Profilo"},navbar:{logOut:"Esci",dashboard:"Dashboard",github:"Github",theme:"Tema",size:"Grandezza Globale",profile:"Profilo"},login:{title:"Accesso",logIn:"Accedi",username:"Utente",password:"Password",any:"qualunque",thirdparty:"Connetti con",thirdpartyTips:"Non può essere simulato in locale, quindi combina la tua simulazione di business, per favore!!!"},documentation:{documentation:"Documentazione",github:"Github Repository"},permission:{createRole:"Nuovo Ruolo",editPermission:"Modifica",roles:"I tuoi ruoli",switchRoles:"Cambia ruoli",tips:"In alcuni casi usare v-permission non ha effetto. Per esempio: Element-UI el-tab o el-table-column e altri componenti che renderizzano il dom dinamicamente. Puoi farlo solo con v-if.",delete:"Elimina",confirm:"Conferma",cancel:"Annulla"},guide:{description:"La pagina Guida è utile per alcune persone che entrano nel progetto per la prima volta. Puoi introdurre brevemente le funzionalità del progetto. Il demo è basato su ",button:"Mostra guida"},components:{documentation:"Documentazione",stickyTips:"when the page is scrolled to the preset position will be sticky on the top.",tinymceTips:"Il testo ricco è una funzionalità fondamentale della gestione backend, ma allo stesso tempo è un posto molto scosceso. Nel processo di selezionare un Rich Text editor o fatto molte ricerche. I Rich Text editor comuni sul mercato sono molto usati, per questo alla fine ho scelto Tinymce. Vedi la più dettagliata comparazione e introduzione al Rich text editor.",backToTopTips1:'Quando la pagina viene spostata alla posizione specificata, il bottone "Torna Su" compare nell\'angolo in basso a destra',backToTopTips2:"Puoi personalizzare lo stile dei bottoni, mostra / nascondi, altezza di apparizione, altezza del ritorno a capo. Se hai bisogno di un prompt di testo, puoi utilizzare gli elementi element-ui el-tooltip esternamente",imageUploadTips:"Da quando usavo la verione 1 di Vue che non è compatibile con mockjs, la ho modificata io stesst, e se la userai, è meglio utilizzare versioni ufficiali.",changeLanguageTips:"Cambio lingua riuscito"},table:{dynamicTips1:"Intestazione Fissa, ordinato dall'ordine delle intestazioni",dynamicTips2:"Intestazione non fissa, ordinato dall'ordine dei click",dragTips1:"Ordine di default",dragTips2:"Ordine post trascinamento",title:"Titolo",importance:"Importanza",type:"Tipo",remark:"Osservazione",search:"Ricerca",add:"Aggiungi",export:"Esporta",reviewer:"Recensore",id:"ID",date:"Data",author:"Autore",readings:"Lettori",status:"Status",actions:"Azioni",edit:"Modifica",publish:"Pubblica",draft:"Bozza",delete:"Elimina",cancel:"Annulla",confirm:"Conferma"},example:{warning:"Creare e modificare pagine non può essere tenuto in cache da keep-alive, perchè l'include di keep-alive attualmente non supporta la cache basata sugli indirizzi, per questo ora viene utilizzata la cache basandosi sul nome del componente. Se vuoi utilizzare uno schema di caching basato sul browser come localStorage. O non usare l'include di keep-alive per mettere le pagine in cache direttamente. Vedi dettagli"},errorLog:{tips:"Per favore clicca l'icona dell'insetto nell'angolo in alto a sinistra",description:"Ora il sistema di gestione è fondamentalmente il form della spa, aumenta l'esperienza utente, ma incrementa anche le possibilità di problemi nelle pagine, una piccola negligenza può portare al blocco della pagina. Fortunatamente Vue offre un modo di catturare le eccezioni, dove puoi manipolare gli errori o riportare un'eccezione.",documentation:"Introduzione documentazione"},excel:{export:"Esporta",selectedExport:"Esporta Elementi Selezionati",placeholder:"Per favore inserisci il nome del file(default: excel-list)"},zip:{export:"Esporta",placeholder:"Per favore inserisci il nome del file(default: file)"},pdf:{tips:"Qui usiamo window.print() per implementare la funzionalità del download PDF."},theme:{change:"Cambia Tema",documentation:"Documentazione Tema",tips:"Consiglio: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details."},tagsView:{refresh:"Ricarica",close:"Chiudi",closeOthers:"Chiudi Altri",closeAll:"Chiudi Tutto"},settings:{title:"Impostazione Stile Pagina",theme:"Colore Tema",showTagsView:"Apri Vista Tag",showSidebarLogo:"Logo Barra Laterale",fixedHeader:"Intestazione Fissa",sidebarTextTheme:"Tema Testo Barra Laterale"},toasts:{switchLanguage:"Cambio lingua effettuato"}};i["default"].use(o["a"]);var O={en:Object(n["a"])(Object(n["a"])({},g),s.a),zh:Object(n["a"])(Object(n["a"])({},v),u.a),es:Object(n["a"])(Object(n["a"])({},y),h.a),ja:Object(n["a"])(Object(n["a"])({},w),m.a),ko:Object(n["a"])(Object(n["a"])({},k),b.a),it:Object(n["a"])({},T)},x=function(){var e=Object(r["a"])();if(e)return document.documentElement.lang=e,e;for(var t=navigator.language.toLowerCase(),a=Object.keys(O),n=0,i=a;n-1)return document.documentElement.lang=o,o}return"en"},E=new o["a"]({locale:x(),messages:O});t["a"]=E},"6fa2":function(e,t,a){"use strict";a("6199")},"704b":function(e,t,a){},7176:function(e,t,a){"use strict";a("0b76")},7383:function(e,t,a){"use strict";a.d(t,"a",(function(){return m}));var n=a("d4ec"),i=a("bee2"),o=a("262e"),r=a("2caf"),c=a("9ab4"),s=a("6fc5"),l=a("0613"),u=a("24ab"),d=a.n(u),h=a("8b99"),p=function(e){Object(o["a"])(a,e);var t=Object(r["a"])(a);function a(){var e;return Object(n["a"])(this,a),e=t.apply(this,arguments),e.theme=d.a.theme,e.fixedHeader=h["a"].fixedHeader,e.showSettings=h["a"].showSettings,e.showTagsView=h["a"].showTagsView,e.showSidebarLogo=h["a"].showSidebarLogo,e.sidebarTextTheme=h["a"].sidebarTextTheme,e}return Object(i["a"])(a,[{key:"ChangeSetting",value:function(e){this.CHANGE_SETTING(e)}},{key:"CHANGE_SETTING",value:function(e){var t=e.key,a=e.value;Object.prototype.hasOwnProperty.call(this,t)&&(this[t]=a)}}]),a}(s["d"]);Object(c["a"])([s["a"]],p.prototype,"ChangeSetting",null),Object(c["a"])([s["c"]],p.prototype,"CHANGE_SETTING",null),p=Object(c["a"])([Object(s["b"])({dynamic:!0,store:l["a"],name:"settings"})],p);var m=Object(s["e"])(p)},"8ad0":function(e,t,a){"use strict";a.d(t,"a",(function(){return v}));var n=a("d4ec"),i=a("bee2"),o=a("262e"),r=a("2caf"),c=a("5530"),s=(a("45fc"),a("caad"),a("2532"),a("4160"),a("159b"),a("99af"),a("9ab4")),l=a("6fc5"),u=a("afbc"),d=a("0613"),h=a("1e24"),p=function(e,t){var a;return!(null===(a=t.meta)||void 0===a||!a.roles)&&e.some((function(e){return t.meta.roles.includes(e)}))},m=function(e){var t,a;return!(null===(t=e.meta)||void 0===t||!t.permissions)&&Object(h["a"])(null===(a=e.meta)||void 0===a?void 0:a.permissions)},f=function(e){var t,a;return!(null!==(t=e.meta)&&void 0!==t&&t.roles)&&!(null!==(a=e.meta)&&void 0!==a&&a.permissions)},b=function e(t,a){var n=[];return t.forEach((function(t){var i=Object(c["a"])({},t);(p(a,i)||m(i)||f(i))&&(i.children&&(i.children=e(i.children,a)),n.push(i))})),n},g=function(e){Object(o["a"])(a,e);var t=Object(r["a"])(a);function a(){var e;return Object(n["a"])(this,a),e=t.apply(this,arguments),e.routes=[],e.dynamicRoutes=[],e}return Object(i["a"])(a,[{key:"SET_ROUTES",value:function(e){this.routes=u["b"].concat(e),this.dynamicRoutes=e}},{key:"GenerateRoutes",value:function(e){var t;t=e.includes("admin")?u["a"]:b(u["a"],e),this.SET_ROUTES(t)}}]),a}(l["d"]);Object(s["a"])([l["c"]],g.prototype,"SET_ROUTES",null),Object(s["a"])([l["a"]],g.prototype,"GenerateRoutes",null),g=Object(s["a"])([Object(l["b"])({dynamic:!0,store:d["a"],name:"permission"})],g);var v=Object(l["e"])(g)},"8b99":function(e,t,a){"use strict";var n={title:"管理后台",showSettings:!0,showTagsView:!0,fixedHeader:!1,showSidebarLogo:!1,errorLog:["production"],sidebarTextTheme:!0,devServerPort:9527,mockServerPort:9528};t["a"]=n},"8db4":function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff"}},"92fc":function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff"}},"981a":function(e,t,a){"use strict";a.d(t,"d",(function(){return i})),a.d(t,"f",(function(){return o})),a.d(t,"h",(function(){return r})),a.d(t,"i",(function(){return c})),a.d(t,"j",(function(){return s})),a.d(t,"e",(function(){return l})),a.d(t,"b",(function(){return u})),a.d(t,"g",(function(){return d})),a.d(t,"c",(function(){return h})),a.d(t,"a",(function(){return p}));var n=a("b32d"),i={id:"",username:"",showname:"",comment:"",locked:!1,roles:[],level:1,sex:"0",password:"",avatar:"",department:""},o=function(e){return Object(n["a"])({url:"/api/admin/info",method:"post",data:e})},r=function(e){return Object(n["a"])({url:"/api/admin/login",method:"post",data:e})},c=function(){return Object(n["a"])({url:"/api/admin/logout",method:"post"})},s=function(e){return Object(n["a"])({url:"/api/admin/save",method:"post",data:e})},l=function(e){return Object(n["a"])({url:"/api/admin/".concat(e,"/delete"),method:"post"})},u=function(e,t){return Object(n["a"])({url:"/api/admin/".concat(e,"/locker"),method:"post",data:{lock:t}})},d=function(e){return Object(n["a"])({url:"/api/admins",method:"get",params:e})},h=function(e){return Object(n["a"])({url:"/api/admin/passwd",method:"post",data:e})},p=function(e){return Object(n["a"])({url:"/api/admin/update_info",method:"post",data:e})}},9858:function(e,t,a){"use strict";a("c804")},"9dba":function(e,t,a){"use strict";a.d(t,"a",(function(){return v}));var n=a("b85c"),i=a("1da1"),o=a("d4ec"),r=a("bee2"),c=a("262e"),s=a("2caf"),l=(a("96cf"),a("b0c0"),a("498a"),a("ac1f"),a("1276"),a("9ab4")),u=a("6fc5"),d=a("981a"),h=a("5581"),p=a("0613"),m=a("afbc"),f=a("8ad0"),b=a("e741"),g=function(e){Object(c["a"])(a,e);var t=Object(s["a"])(a);function a(){var e;return Object(o["a"])(this,a),e=t.apply(this,arguments),e.token=Object(h["e"])()||"",e.name="",e.avatar="",e.introduction="",e.roles=[],e.permissions=[],e.email="",e.department="",e.deptname="",e.level=999,e.sex="0",e}return Object(r["a"])(a,[{key:"Login",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(t){var a,n,i,o;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return a=t.username,n=t.password,a=a.trim(),e.next=4,Object(d["h"])({username:a,password:n});case 4:i=e.sent,o=i.data,Object(h["k"])(o.token),this.SET_TOKEN(o.token);case 8:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"ResetToken",value:function(){Object(h["f"])(),this.SET_TOKEN(""),this.SET_ROLES([]),this.SET_PERMISSIONS([])}},{key:"GetUserInfo",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(){var t,a,n,i,o,r,c,s,l,u,h;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(""!==this.token){e.next=2;break}throw Error("GetUserInfo: token is undefined!");case 2:return e.next=4,Object(d["f"])({});case 4:if(t=e.sent,a=t.data,a){e.next=8;break}throw Error("Verification failed, please Login again.");case 8:if(n=a.roles,i=a.showname,o=a.avatar,r=a.introduction,c=a.permissions,s=a.department,l=a.level,u=a.deptname,h=a.sex,n&&!(n.length<=0)){e.next=11;break}throw Error("GetUserInfo: roles must be a non-null array!");case 11:this.SET_ROLES(n),this.SET_NAME(i),this.SET_AVATAR(o),this.SET_INTRODUCTION(r),this.SET_PERMISSIONS(c),this.SET_DEPARTMENT(s),this.SET_LEVEL(l),this.SET_DEPTNAME(u),this.SET_SEX(h);case 20:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"UpdateInfo",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(t){var a,n,i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:a=t.showname,n=t.sex,i=t.avatar,this.SET_NAME(a),this.SET_SEX(n),this.SET_AVATAR(i);case 4:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"ChangeRoles",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(t){var a;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return a=t+"-token",this.SET_TOKEN(a),Object(h["k"])(a),e.next=5,this.GetUserInfo();case 5:Object(m["d"])(),f["a"].GenerateRoutes(this.roles),m["c"].addRoutes(f["a"].dynamicRoutes),b["a"].delAllViews();case 9:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"LogOut",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(""!==this.token){e.next=2;break}throw Error("LogOut: token is undefined!");case 2:return e.next=4,Object(d["i"])();case 4:Object(h["f"])(),this.SET_TOKEN(""),this.SET_ROLES([]),this.SET_PERMISSIONS([]),this.SET_DEPARTMENT("");case 9:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()},{key:"SET_TOKEN",value:function(e){this.token=e}},{key:"updatePageToken",value:function(){var e=Object(i["a"])(regeneratorRuntime.mark((function e(t){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:this.SET_TOKEN(t);case 1:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"SET_NAME",value:function(e){this.name=e}},{key:"SET_AVATAR",value:function(e){this.avatar=e}},{key:"SET_INTRODUCTION",value:function(e){this.introduction=e}},{key:"SET_ROLES",value:function(e){this.roles=e}},{key:"SET_DEPARTMENT",value:function(e){this.department=e}},{key:"SET_DEPTNAME",value:function(e){this.deptname=e}},{key:"SET_SEX",value:function(e){this.sex=e}},{key:"SET_LEVEL",value:function(e){this.level=e}},{key:"SET_PERMISSIONS",value:function(e){var t,a=[],i=Object(n["a"])(e);try{for(i.s();!(t=i.n()).done;){var o=t.value;"*"===o?a.push(["*","*"]):a.push(o.split(":"))}}catch(r){i.e(r)}finally{i.f()}this.permissions=a}}]),a}(u["d"]);Object(l["a"])([u["a"]],g.prototype,"Login",null),Object(l["a"])([u["a"]],g.prototype,"ResetToken",null),Object(l["a"])([u["a"]],g.prototype,"GetUserInfo",null),Object(l["a"])([u["a"]],g.prototype,"UpdateInfo",null),Object(l["a"])([u["a"]],g.prototype,"ChangeRoles",null),Object(l["a"])([u["a"]],g.prototype,"LogOut",null),Object(l["a"])([u["c"]],g.prototype,"SET_TOKEN",null),Object(l["a"])([u["a"]],g.prototype,"updatePageToken",null),Object(l["a"])([u["c"]],g.prototype,"SET_NAME",null),Object(l["a"])([u["c"]],g.prototype,"SET_AVATAR",null),Object(l["a"])([u["c"]],g.prototype,"SET_INTRODUCTION",null),Object(l["a"])([u["c"]],g.prototype,"SET_ROLES",null),Object(l["a"])([u["c"]],g.prototype,"SET_DEPARTMENT",null),Object(l["a"])([u["c"]],g.prototype,"SET_DEPTNAME",null),Object(l["a"])([u["c"]],g.prototype,"SET_SEX",null),Object(l["a"])([u["c"]],g.prototype,"SET_LEVEL",null),Object(l["a"])([u["c"]],g.prototype,"SET_PERMISSIONS",null),g=Object(l["a"])([Object(u["b"])({dynamic:!0,store:p["a"],name:"user"})],g);var v=Object(u["e"])(g)},a1de:function(e,t,a){e.exports={menuBg:"#304156",menuText:"#bfcbd9",menuActiveText:"#409eff"}},ac1a:function(e,t,a){"use strict";a.d(t,"b",(function(){return n})),a.d(t,"a",(function(){return m}));var n,i=a("d4ec"),o=a("bee2"),r=a("262e"),c=a("2caf"),s=(a("a9e3"),a("9ab4")),l=a("6fc5"),u=a("5581"),d=a("6ebf"),h=a("0613");(function(e){e[e["Mobile"]=0]="Mobile",e[e["Desktop"]=1]="Desktop"})(n||(n={}));var p=function(e){Object(r["a"])(a,e);var t=Object(c["a"])(a);function a(){var e;return Object(i["a"])(this,a),e=t.apply(this,arguments),e.sidebar={opened:"closed"!==Object(u["c"])(),withoutAnimation:!1},e.device=n.Desktop,e.language=Object(d["b"])(),e.size=Object(u["d"])()||"medium",e.mini=Object(u["b"])()?Number(Object(u["b"])()):0,e}return Object(o["a"])(a,[{key:"TOGGLE_SIDEBAR",value:function(e){this.sidebar.opened=!this.sidebar.opened,this.sidebar.withoutAnimation=e,this.sidebar.opened?Object(u["i"])("opened"):Object(u["i"])("closed")}},{key:"CLOSE_SIDEBAR",value:function(e){this.sidebar.opened=!1,this.sidebar.withoutAnimation=e,Object(u["i"])("closed")}},{key:"TOGGLE_DEVICE",value:function(e){this.device=e}},{key:"SET_LANGUAGE",value:function(e){this.language=e,Object(u["g"])(this.language)}},{key:"SET_SIZE",value:function(e){this.size=e,Object(u["j"])(this.size)}},{key:"SET_MINI",value:function(e){this.mini=e,Object(u["h"])(e+"")}},{key:"ToggleSideBar",value:function(e){this.TOGGLE_SIDEBAR(e)}},{key:"CloseSideBar",value:function(e){this.CLOSE_SIDEBAR(e)}},{key:"ToggleDevice",value:function(e){this.TOGGLE_DEVICE(e)}},{key:"SetLanguage",value:function(e){this.SET_LANGUAGE(e)}},{key:"SetSize",value:function(e){this.SET_SIZE(e)}},{key:"SetMini",value:function(e){this.SET_MINI(e),e&&this.CloseSideBar(!1)}}]),a}(l["d"]);Object(s["a"])([l["c"]],p.prototype,"TOGGLE_SIDEBAR",null),Object(s["a"])([l["c"]],p.prototype,"CLOSE_SIDEBAR",null),Object(s["a"])([l["c"]],p.prototype,"TOGGLE_DEVICE",null),Object(s["a"])([l["c"]],p.prototype,"SET_LANGUAGE",null),Object(s["a"])([l["c"]],p.prototype,"SET_SIZE",null),Object(s["a"])([l["c"]],p.prototype,"SET_MINI",null),Object(s["a"])([l["a"]],p.prototype,"ToggleSideBar",null),Object(s["a"])([l["a"]],p.prototype,"CloseSideBar",null),Object(s["a"])([l["a"]],p.prototype,"ToggleDevice",null),Object(s["a"])([l["a"]],p.prototype,"SetLanguage",null),Object(s["a"])([l["a"]],p.prototype,"SetSize",null),Object(s["a"])([l["a"]],p.prototype,"SetMini",null),p=Object(s["a"])([Object(l["b"])({dynamic:!0,store:h["a"],name:"app"})],p);var m=Object(l["e"])(p)},ad9d:function(e,t,a){"use strict";a("e15f")},adc6:function(e,t,a){"use strict";a("232e")},afbc:function(e,t,a){"use strict";a.d(t,"b",(function(){return Ta})),a.d(t,"a",(function(){return Oa})),a.d(t,"d",(function(){return _a}));a("d3b7"),a("3ca3"),a("ddb0");var n=a("2b0e"),i=a("8c4f"),o=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"app-wrapper",class:e.classObj},[e.classObj.mobile&&e.sidebar.opened?a("div",{staticClass:"drawer-bg",on:{click:e.handleClickOutside}}):e._e(),e.showMenu?a("sidebar",{staticClass:"sidebar-container"}):e._e(),a("div",{staticClass:"main-container",class:{hasTagsView:e.showTagsView}},[e.showMenu?a("div",{class:{"fixed-header":e.fixedHeader}},[a("navbar"),e.showTagsView?a("tags-view"):e._e()],1):e._e(),a("app-main"),e.showSettings?a("right-panel",[a("settings")],1):e._e()],1)],1)},r=[],c=a("d4ec"),s=a("bee2"),l=a("262e"),u=a("2caf"),d=a("9ab4"),h=a("1b40"),p=a("2fe1"),m=a("ac1a"),f=a("7383"),b=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("section",{staticClass:"app-main"},[a("transition",{attrs:{name:"fade-transform",mode:"out-in"}},[a("keep-alive",{attrs:{include:e.cachedViews}},[a("router-view",{key:e.key})],1)],1)],1)},g=[],v=a("e741"),y=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"cachedViews",get:function(){return v["a"].cachedViews}},{key:"key",get:function(){return this.$route.path}}]),a}(h["c"]);y=Object(d["a"])([Object(h["a"])({name:"AppMain"})],y);var w=y,k=w,T=(a("7176"),a("0c7c")),O=Object(T["a"])(k,b,g,!1,null,"d4c70f86",null),x=O.exports,E=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"navbar"},[a("hamburger",{staticClass:"hamburger-container",attrs:{id:"hamburger-container","is-active":e.sidebar.opened},on:{"toggle-click":e.toggleSideBar}}),a("breadcrumb",{staticClass:"breadcrumb-container",attrs:{id:"breadcrumb-container"}}),a("div",{staticClass:"right-menu"},["mobile"!==e.device?[a("header-search",{staticClass:"right-menu-item"}),a("error-log",{staticClass:"errLog-container right-menu-item hover-effect"}),a("screenfull",{staticClass:"right-menu-item hover-effect"}),a("el-tooltip",{attrs:{content:e.$t("navbar.size"),effect:"dark",placement:"bottom"}},[a("size-select",{staticClass:"right-menu-item hover-effect"})],1),a("lang-select",{staticClass:"right-menu-item hover-effect"})]:e._e(),a("el-dropdown",{staticClass:"avatar-container right-menu-item hover-effect",attrs:{trigger:"click"}},[a("div",{staticClass:"avatar-wrapper"},[a("img",{staticClass:"user-avatar",attrs:{src:e.avatar+"?imageView2/1/w/80/h/80"}}),a("i",{staticClass:"el-icon-caret-bottom"})]),a("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},[a("router-link",{attrs:{to:"/"}},[a("el-dropdown-item",[e._v(" "+e._s(e.$t("navbar.dashboard"))+" ")])],1),a("router-link",{attrs:{to:"/profile/"}},[a("el-dropdown-item",[e._v(" "+e._s(e.$t("navbar.profile"))+" ")])],1),a("router-link",{attrs:{to:"/password"}},[a("el-dropdown-item",[e._v(" "+e._s(e.$t("navbar.password"))+" ")])],1),a("el-dropdown-item",{attrs:{divided:""},nativeOn:{click:function(t){return e.logout(t)}}},[a("span",{staticStyle:{display:"block"}},[e._v(" "+e._s(e.$t("navbar.logOut"))+" ")])])],1)],1)],2)],1)},_=[],S=a("1da1"),z=(a("96cf"),a("0d03"),a("25f0"),a("9dba")),j=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-breadcrumb",{staticClass:"app-breadcrumb",attrs:{separator:"/"}},[a("transition-group",{attrs:{name:"breadcrumb"}},e._l(e.breadcrumbs,(function(t,n){return a("el-breadcrumb-item",{key:t.path},["noredirect"===t.redirect||n===e.breadcrumbs.length-1?a("span",{staticClass:"no-redirect"},[e._v(e._s(e.$t("route."+t.meta.title)))]):a("a",{on:{click:function(a){return a.preventDefault(),e.handleLink(t)}}},[e._v(e._s(e.$t("route."+t.meta.title)))])])})),1)],1)},C=[],V=(a("2ca0"),a("4de4"),a("99af"),a("b0c0"),a("498a"),a("84d6")),L=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.breadcrumbs=[],e}return Object(s["a"])(a,[{key:"onRouteChange",value:function(e){e.path.startsWith("/redirect/")||this.getBreadcrumb()}},{key:"created",value:function(){this.getBreadcrumb()}},{key:"getBreadcrumb",value:function(){var e=this.$route.matched.filter((function(e){return e.meta&&e.meta.title})),t=e[0];this.isDashboard(t)||(e=[{path:"/dashboard",meta:{title:"dashboard"}}].concat(e)),this.breadcrumbs=e.filter((function(e){return e.meta&&e.meta.title&&!1!==e.meta.breadcrumb}))}},{key:"isDashboard",value:function(e){var t=e&&e.name;return!!t&&t.trim().toLocaleLowerCase()==="Dashboard".toLocaleLowerCase()}},{key:"pathCompile",value:function(e){var t=this.$route.params,a=Object(V["a"])(e);return a(t)}},{key:"handleLink",value:function(e){var t=e.redirect,a=e.path;t?this.$router.push(t)["catch"]((function(e){console.warn(e)})):this.$router.push(this.pathCompile(a))["catch"]((function(e){console.warn(e)}))}}]),a}(h["c"]);Object(d["a"])([Object(h["d"])("$route")],L.prototype,"onRouteChange",null),L=Object(d["a"])([Object(h["a"])({name:"Breadcrumb"})],L);var M=L,H=M,A=(a("4155"),Object(T["a"])(H,j,C,!1,null,"48aca8f5",null)),P=A.exports,D=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.errorLogs.length>0?a("div",[a("el-badge",{staticStyle:{"line-height":"25px","margin-top":"-5px"},attrs:{"is-dot":!0},nativeOn:{click:function(t){e.dialogTableVisible=!0}}},[a("el-button",{staticStyle:{padding:"8px 10px"},attrs:{size:"small",type:"danger"}},[a("svg-icon",{attrs:{name:"bug"}})],1)],1),a("el-dialog",{attrs:{visible:e.dialogTableVisible,width:"80%","append-to-body":""},on:{"update:visible":function(t){e.dialogTableVisible=t}}},[a("div",{attrs:{slot:"title"},slot:"title"},[a("span",{staticStyle:{"padding-right":"10px"}},[e._v("Error Log")]),a("el-button",{attrs:{size:"mini",type:"primary",icon:"el-icon-delete"},on:{click:e.clearAll}},[e._v(" Clear All ")])],1),a("el-table",{attrs:{data:e.errorLogs,border:""}},[a("el-table-column",{attrs:{label:"Message"},scopedSlots:e._u([{key:"default",fn:function(t){var n=t.row;return[a("div",[a("span",{staticClass:"message-title"},[e._v("Msg:")]),a("el-tag",{attrs:{type:"danger"}},[e._v(" "+e._s(n.err.message)+" ")])],1),a("br"),a("div",[a("span",{staticClass:"message-title",staticStyle:{"padding-right":"10px"}},[e._v("Info: ")]),a("el-tag",{attrs:{type:"warning"}},[e._v(" "+e._s(n.vm.$vnode.tag)+" error in "+e._s(n.info)+" ")])],1),a("br"),a("div",[a("span",{staticClass:"message-title",staticStyle:{"padding-right":"16px"}},[e._v("Url: ")]),a("el-tag",{attrs:{type:"success"}},[e._v(" "+e._s(n.url)+" ")])],1)]}}],null,!1,3134886942)}),a("el-table-column",{attrs:{label:"Stack"},scopedSlots:e._u([{key:"default",fn:function(t){var a=t.row;return[e._v(" "+e._s(a.err.stack)+" ")]}}],null,!1,284746202)})],1)],1)],1):e._e()},I=[],R=(a("a434"),a("6fc5")),B=a("0613"),$=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.logs=[],e}return Object(s["a"])(a,[{key:"ADD_ERROR_LOG",value:function(e){this.logs.push(e)}},{key:"CLEAR_ERROR_LOG",value:function(){this.logs.splice(0)}},{key:"AddErrorLog",value:function(e){this.ADD_ERROR_LOG(e)}},{key:"ClearErrorLog",value:function(){this.CLEAR_ERROR_LOG()}}]),a}(R["d"]);Object(d["a"])([R["c"]],$.prototype,"ADD_ERROR_LOG",null),Object(d["a"])([R["c"]],$.prototype,"CLEAR_ERROR_LOG",null),Object(d["a"])([R["a"]],$.prototype,"AddErrorLog",null),Object(d["a"])([R["a"]],$.prototype,"ClearErrorLog",null),$=Object(d["a"])([Object(R["b"])({dynamic:!0,store:B["a"],name:"errorLog"})],$);var N=Object(R["e"])($),q=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.dialogTableVisible=!1,e}return Object(s["a"])(a,[{key:"errorLogs",get:function(){return N.logs}},{key:"clearAll",value:function(){this.dialogTableVisible=!1,N.ClearErrorLog()}}]),a}(h["c"]);q=Object(d["a"])([Object(h["a"])({name:"ErrorLog"})],q);var G=q,F=G,W=(a("435a"),Object(T["a"])(F,D,I,!1,null,"72a28363",null)),U=W.exports,Z=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:[{"is-active":e.isActive}],on:{click:e.toggleClick}},[a("svg-icon",{attrs:{name:"hamburger",width:"20",height:"20"}})],1)},K=[],Q=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"toggleClick",value:function(){this.$emit("toggle-click")}}]),a}(h["c"]);Object(d["a"])([Object(h["b"])({default:!1})],Q.prototype,"isActive",void 0),Q=Object(d["a"])([Object(h["a"])({name:"Hamburger"})],Q);var Y=Q,J=Y,X=(a("adc6"),Object(T["a"])(J,Z,K,!1,null,"715ce9d0",null)),ee=X.exports,te=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"header-search",class:{show:e.show},attrs:{id:"header-search"}},[a("svg-icon",{staticClass:"search-icon",attrs:{name:"search"},on:{click:function(t){return t.stopPropagation(),e.click(t)}}}),a("el-select",{ref:"headerSearchSelect",staticClass:"header-search-select",attrs:{"remote-method":e.querySearch,filterable:"","default-first-option":"",remote:"",placeholder:"Search"},on:{change:e.change},model:{value:e.search,callback:function(t){e.search=t},expression:"search"}},e._l(e.options,(function(e){return a("el-option",{key:e.path,attrs:{value:e,label:e.meta.title.join(" > ")}})})),1)],1)},ae=[],ne=a("2909"),ie=a("b85c"),oe=(a("ac1f"),a("841c"),a("d81d"),a("df7c")),re=a.n(oe),ce=a("6062"),se=a("8ad0"),le=a("6ebf"),ue=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.search="",e.show=!1,e.options=[],e.searchPool=[],e}return Object(s["a"])(a,[{key:"routes",get:function(){return se["a"].routes}},{key:"lang",get:function(){return m["a"].language}},{key:"onLangChange",value:function(){this.searchPool=this.generateRoutes(this.routes)}},{key:"onRoutesChange",value:function(){this.searchPool=this.generateRoutes(this.routes)}},{key:"onSearchPoolChange",value:function(e){this.initFuse(e)}},{key:"onShowChange",value:function(e){e?document.body.addEventListener("click",this.close):document.body.removeEventListener("click",this.close)}},{key:"mounted",value:function(){this.searchPool=this.generateRoutes(this.routes)}},{key:"click",value:function(){this.show=!this.show,this.show&&this.$refs.headerSearchSelect&&this.$refs.headerSearchSelect.focus()}},{key:"close",value:function(){this.$refs.headerSearchSelect&&this.$refs.headerSearchSelect.blur(),this.options=[],this.show=!1}},{key:"change",value:function(e){var t=this;this.$router.push(e.path)["catch"]((function(e){console.warn(e)})),this.search="",this.options=[],this.$nextTick((function(){t.show=!1}))}},{key:"initFuse",value:function(e){this.fuse=new ce["a"](e,{shouldSort:!0,threshold:.4,location:0,distance:100,minMatchCharLength:1,keys:[{name:"title",weight:.7},{name:"path",weight:.3}]})}},{key:"generateRoutes",value:function(e){var t,a=arguments.length>1&&void 0!==arguments[1]?arguments[1]:"/",n=arguments.length>2&&void 0!==arguments[2]?arguments[2]:[],i=[],o=Object(ie["a"])(e);try{for(o.s();!(t=o.n()).done;){var r=t.value;if(!r.meta||!r.meta.hidden){var c={path:re.a.resolve(a,r.path),meta:{title:Object(ne["a"])(n)}};if(r.meta&&r.meta.title){var s=le["a"].t("route.".concat(r.meta.title)).toString();c.meta.title=[].concat(Object(ne["a"])(c.meta.title),[s]),"noRedirect"!==r.redirect&&i.push(c)}if(r.children){var l=this.generateRoutes(r.children,c.path,c.meta.title);l.length>=1&&(i=[].concat(Object(ne["a"])(i),Object(ne["a"])(l)))}}}}catch(u){o.e(u)}finally{o.f()}return i}},{key:"querySearch",value:function(e){""!==e?this.fuse&&(this.options=this.fuse.search(e).map((function(e){return e.item}))):this.options=[]}}]),a}(h["c"]);Object(d["a"])([Object(h["d"])("lang")],ue.prototype,"onLangChange",null),Object(d["a"])([Object(h["d"])("routes")],ue.prototype,"onRoutesChange",null),Object(d["a"])([Object(h["d"])("searchPool")],ue.prototype,"onSearchPoolChange",null),Object(d["a"])([Object(h["d"])("show")],ue.prototype,"onShowChange",null),ue=Object(d["a"])([Object(h["a"])({name:"HeaderSearch"})],ue);var de=ue,he=de,pe=(a("d2c9"),Object(T["a"])(he,te,ae,!1,null,"ed2ef868",null)),me=pe.exports,fe=a("1131"),be=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{attrs:{id:"screenfull"}},[a("svg-icon",{attrs:{name:e.isFullscreen?"exit-fullscreen":"fullscreen"},on:{click:e.click}})],1)},ge=[],ve=a("93bf"),ye=a.n(ve),we=ye.a,ke=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.isFullscreen=!1,e}return Object(s["a"])(a,[{key:"mounted",value:function(){we.isEnabled&&we.on("change",this.change)}},{key:"beforeDestory",value:function(){we.isEnabled&&we.off("change",this.change)}},{key:"change",value:function(){we.isEnabled&&(this.isFullscreen=we.isFullscreen)}},{key:"click",value:function(){if(!we.isEnabled)return this.$message({message:"you browser can not work",type:"warning"}),!1;we.toggle()}}]),a}(h["c"]);ke=Object(d["a"])([Object(h["a"])({name:"Screenfull"})],ke);var Te=ke,Oe=Te,xe=Object(T["a"])(Oe,be,ge,!1,null,null,null),Ee=xe.exports,_e=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-dropdown",{attrs:{id:"size-select",trigger:"click"},on:{command:e.handleSetSize}},[a("div",[a("svg-icon",{staticClass:"size-icon",attrs:{name:"size"}})],1),a("el-dropdown-menu",{attrs:{slot:"dropdown"},slot:"dropdown"},e._l(e.sizeOptions,(function(t){return a("el-dropdown-item",{key:t.value,attrs:{disabled:e.size===t.value,command:t.value}},[e._v(" "+e._s(t.label)+" ")])})),1)],1)},Se=[],ze=(a("5319"),function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.sizeOptions=[{label:"Default",value:"default"},{label:"Medium",value:"medium"},{label:"Small",value:"small"},{label:"Mini",value:"mini"}],e}return Object(s["a"])(a,[{key:"size",get:function(){return m["a"].size}},{key:"handleSetSize",value:function(e){this.$ELEMENT.size=e,m["a"].SetSize(e),this.refreshView(),this.$message({message:"Switch Size Success",type:"success"})}},{key:"refreshView",value:function(){var e=this;v["a"].delAllCachedViews();var t=this.$route.fullPath;this.$nextTick((function(){e.$router.replace({path:"/redirect"+t})["catch"]((function(e){console.warn(e)}))}))}}]),a}(h["c"]));ze=Object(d["a"])([Object(h["a"])({name:"SizeSelect"})],ze);var je=ze,Ce=je,Ve=Object(T["a"])(Ce,_e,Se,!1,null,null,null),Le=Ve.exports,Me=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"sidebar",get:function(){return m["a"].sidebar}},{key:"device",get:function(){return m["a"].device.toString()}},{key:"avatar",get:function(){return z["a"].avatar}},{key:"toggleSideBar",value:function(){m["a"].ToggleSideBar(!1)}},{key:"logout",value:function(){var e=Object(S["a"])(regeneratorRuntime.mark((function e(){return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:return e.next=2,z["a"].LogOut();case 2:this.$router.push("/login?redirect=".concat(this.$route.fullPath))["catch"]((function(e){console.warn(e)}));case 3:case"end":return e.stop()}}),e,this)})));function t(){return e.apply(this,arguments)}return t}()}]),a}(h["c"]);Me=Object(d["a"])([Object(h["a"])({name:"Navbar",components:{Breadcrumb:P,ErrorLog:U,Hamburger:ee,HeaderSearch:me,LangSelect:fe["a"],Screenfull:Ee,SizeSelect:Le}})],Me);var He=Me,Ae=He,Pe=(a("ad9d"),Object(T["a"])(Ae,E,_,!1,null,"1a173b7f",null)),De=Pe.exports,Ie=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"drawer-container"},[a("div",[a("h3",{staticClass:"drawer-title"},[e._v(" "+e._s(e.$t("settings.title"))+" ")]),a("div",{staticClass:"drawer-item"},[a("span",[e._v(e._s(e.$t("settings.theme")))]),a("theme-picker",{staticStyle:{float:"right",height:"26px",margin:"-3px 8px 0 0"},on:{change:e.themeChange}})],1),a("div",{staticClass:"drawer-item"},[a("span",[e._v(e._s(e.$t("settings.showTagsView")))]),a("el-switch",{staticClass:"drawer-switch",model:{value:e.showTagsView,callback:function(t){e.showTagsView=t},expression:"showTagsView"}})],1),a("div",{staticClass:"drawer-item"},[a("span",[e._v(e._s(e.$t("settings.showSidebarLogo")))]),a("el-switch",{staticClass:"drawer-switch",model:{value:e.showSidebarLogo,callback:function(t){e.showSidebarLogo=t},expression:"showSidebarLogo"}})],1),a("div",{staticClass:"drawer-item"},[a("span",[e._v(e._s(e.$t("settings.fixedHeader")))]),a("el-switch",{staticClass:"drawer-switch",model:{value:e.fixedHeader,callback:function(t){e.fixedHeader=t},expression:"fixedHeader"}})],1),a("div",{staticClass:"drawer-item"},[a("span",[e._v(e._s(e.$t("settings.sidebarTextTheme")))]),a("el-switch",{staticClass:"drawer-switch",model:{value:e.sidebarTextTheme,callback:function(t){e.sidebarTextTheme=t},expression:"sidebarTextTheme"}})],1)])])},Re=[],Be=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-color-picker",{staticClass:"theme-picker",attrs:{predefine:["#409EFF","#1890ff","#304156","#212121","#11a983","#13c2c2","#6959CD","#f5222d"],"popper-class":"theme-picker-dropdown"},model:{value:e.theme,callback:function(t){e.theme=t},expression:"theme"}})},$e=[],Ne=(a("fb6a"),a("4d63"),a("4160"),a("159b"),a("e25e"),a("a15b"),a("a9e3"),a("b680"),a("f6f8").version),qe="#409EFF",Ge=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.chalk="",e.theme="",e}return Object(s["a"])(a,[{key:"defaultTheme",get:function(){return f["a"].theme}},{key:"onDefaultThemeChange",value:function(e){this.theme=e}},{key:"onThemeChange",value:function(){var e=Object(S["a"])(regeneratorRuntime.mark((function e(t){var a,n,i,o,r,c,s,l,u=this;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(t){e.next=2;break}return e.abrupt("return");case 2:if(a=this.chalk?this.theme:qe,n=this.getThemeCluster(t.replace("#","")),i=this.getThemeCluster(a.replace("#","")),o=this.$message({message:" Compiling the theme",customClass:"theme-message",type:"success",duration:0,iconClass:"el-icon-loading"}),this.chalk){e.next=10;break}return r="https://unpkg.com/element-ui@".concat(Ne,"/lib/theme-chalk/index.css"),e.next=10,this.getCSSString(r,"chalk");case 10:c=function(e,t){return function(){var a=u.getThemeCluster(qe.replace("#","")),i=u.updateStyle(u[e],a,n),o=document.getElementById(t);o||(o=document.createElement("style"),o.setAttribute("id",t),document.head.appendChild(o)),o.innerText=i}},s=c("chalk","chalk-style"),s(),l=[].slice.call(document.querySelectorAll("style")),l=l.filter((function(e){var t=e.innerText;return new RegExp(a,"i").test(t)&&!/Chalk Variables/.test(t)})),l.forEach((function(e){var t=e.innerText;"string"===typeof t&&(e.innerText=u.updateStyle(t,i,n))})),this.$emit("change",t),o.close();case 18:case"end":return e.stop()}}),e,this)})));function t(t){return e.apply(this,arguments)}return t}()},{key:"updateStyle",value:function(e,t,a){var n=e;return t.forEach((function(e,t){n=n.replace(new RegExp(e,"ig"),a[t])})),n}},{key:"getCSSString",value:function(e,t){var a=this;return new Promise((function(n){var i=new XMLHttpRequest;i.onreadystatechange=function(){4===i.readyState&&200===i.status&&(a[t]=i.responseText.replace(/@font-face{[^}]+}/,""),n())},i.open("GET",e),i.send()}))}},{key:"getThemeCluster",value:function(e){for(var t=function(e,t){var a=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),i=parseInt(e.slice(4,6),16);return 0===t?[a,n,i].join(","):(a+=Math.round(t*(255-a)),n+=Math.round(t*(255-n)),i+=Math.round(t*(255-i)),"#".concat(a.toString(16)).concat(n.toString(16)).concat(i.toString(16)))},a=function(e,t){var a=parseInt(e.slice(0,2),16),n=parseInt(e.slice(2,4),16),i=parseInt(e.slice(4,6),16);return a=Math.round((1-t)*a),n=Math.round((1-t)*n),i=Math.round((1-t)*i),"#".concat(a.toString(16)).concat(n.toString(16)).concat(i.toString(16))},n=[e],i=0;i<=9;i++)n.push(t(e,Number((i/10).toFixed(2))));return n.push(a(e,.1)),n}}]),a}(h["c"]);Object(d["a"])([Object(h["d"])("defaultTheme",{immediate:!0})],Ge.prototype,"onDefaultThemeChange",null),Object(d["a"])([Object(h["d"])("theme")],Ge.prototype,"onThemeChange",null),Ge=Object(d["a"])([Object(h["a"])({name:"ThemePicker"})],Ge);var Fe=Ge,We=Fe,Ue=(a("6fa2"),Object(T["a"])(We,Be,$e,!1,null,null,null)),Ze=Ue.exports,Ke=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"fixedHeader",get:function(){return f["a"].fixedHeader},set:function(e){f["a"].ChangeSetting({key:"fixedHeader",value:e})}},{key:"showTagsView",get:function(){return f["a"].showTagsView},set:function(e){f["a"].ChangeSetting({key:"showTagsView",value:e})}},{key:"showSidebarLogo",get:function(){return f["a"].showSidebarLogo},set:function(e){f["a"].ChangeSetting({key:"showSidebarLogo",value:e})}},{key:"sidebarTextTheme",get:function(){return f["a"].sidebarTextTheme},set:function(e){f["a"].ChangeSetting({key:"sidebarTextTheme",value:e})}},{key:"themeChange",value:function(e){f["a"].ChangeSetting({key:"theme",value:e})}}]),a}(h["c"]);Ke=Object(d["a"])([Object(h["a"])({name:"Settings",components:{ThemePicker:Ze}})],Ke);var Qe=Ke,Ye=Qe,Je=(a("017a"),Object(T["a"])(Ye,Ie,Re,!1,null,"f76a8f60",null)),Xe=Je.exports,et=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{class:{"has-logo":e.showLogo}},[e.showLogo?a("sidebar-logo",{attrs:{collapse:e.isCollapse}}):e._e(),a("el-scrollbar",{attrs:{"wrap-class":"scrollbar-wrapper"}},[a("el-menu",{attrs:{"default-active":e.activeMenu,collapse:e.isCollapse,"background-color":e.variables.menuBg,"text-color":e.variables.menuText,"active-text-color":e.menuActiveTextColor,"unique-opened":!1,"collapse-transition":!1,mode:"vertical"}},e._l(e.routes,(function(t){return a("sidebar-item",{key:t.path,attrs:{item:t,"base-path":t.path,"is-collapse":e.isCollapse}})})),1)],1)],1)},tt=[],at=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.item.meta&&e.item.meta.hidden?e._e():a("div",{class:[e.isCollapse?"simple-mode":"full-mode",{"first-level":e.isFirstLevel}]},[e.alwaysShowRootMenu||!e.theOnlyOneChild||e.theOnlyOneChild.children?a("el-submenu",{attrs:{index:e.resolvePath(e.item.path),"popper-append-to-body":""}},[a("template",{slot:"title"},[e.item.meta&&e.item.meta.icon?a("svg-icon",{attrs:{name:e.item.meta.icon}}):e._e(),e.item.meta&&e.item.meta.elicon?a("i",{class:e.item.meta.elicon}):e._e(),e.item.meta&&e.item.meta.title?a("span",{attrs:{slot:"title"},slot:"title"},[e._v(e._s(e.$t("route."+e.item.meta.title)))]):e._e()],1),e.item.children?e._l(e.item.children,(function(t){return a("sidebar-item",{key:t.path,staticClass:"nest-menu",attrs:{item:t,"is-collapse":e.isCollapse,"is-first-level":!1,"base-path":e.resolvePath(t.path)}})})):e._e()],2):[e.theOnlyOneChild.meta?a("sidebar-item-link",{attrs:{to:e.resolvePath(e.theOnlyOneChild.path)}},[a("el-menu-item",{class:{"submenu-title-noDropdown":e.isFirstLevel},attrs:{index:e.resolvePath(e.theOnlyOneChild.path)}},[e.theOnlyOneChild.meta.icon?a("svg-icon",{attrs:{name:e.theOnlyOneChild.meta.icon}}):e._e(),e.item.meta&&e.item.meta.elicon?a("i",{class:e.item.meta.elicon}):e._e(),e.theOnlyOneChild.meta.title?a("span",{attrs:{slot:"title"},slot:"title"},[e._v(e._s(e.$t("route."+e.theOnlyOneChild.meta.title)))]):e._e()],1)],1):e._e()]],2)},nt=[],it=a("5530"),ot=(a("c975"),a("277d"),function(e){return/^(https?:|mailto:|tel:)/.test(e)}),rt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return e.isExternal(e.to)?a("a",{attrs:{href:e.to,target:"_blank",rel:"noopener"}},[e._t("default")],2):a("router-link",{attrs:{to:e.to}},[e._t("default")],2)},ct=[],st=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.isExternal=ot,e}return a}(h["c"]);Object(d["a"])([Object(h["b"])({required:!0})],st.prototype,"to",void 0),st=Object(d["a"])([Object(h["a"])({name:"SidebarItemLink"})],st);var lt=st,ut=lt,dt=Object(T["a"])(ut,rt,ct,!1,null,null,null),ht=dt.exports,pt=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"alwaysShowRootMenu",get:function(){return!(!this.item.meta||!this.item.meta.alwaysShow)}},{key:"showingChildNumber",get:function(){if(this.item.children){var e=this.item.children.filter((function(e){return!e.meta||!e.meta.hidden}));return e.length}return 0}},{key:"theOnlyOneChild",get:function(){if(this.showingChildNumber>1)return null;if(this.item.children){var e,t=Object(ie["a"])(this.item.children);try{for(t.s();!(e=t.n()).done;){var a=e.value;if(!a.meta||!a.meta.hidden)return a}}catch(n){t.e(n)}finally{t.f()}}return Object(it["a"])(Object(it["a"])({},this.item),{},{path:""})}},{key:"resolvePath",value:function(e){return ot(e)?e:ot(this.basePath)?this.basePath:re.a.resolve(this.basePath,e)}}]),a}(h["c"]);Object(d["a"])([Object(h["b"])({required:!0})],pt.prototype,"item",void 0),Object(d["a"])([Object(h["b"])({default:!1})],pt.prototype,"isCollapse",void 0),Object(d["a"])([Object(h["b"])({default:!0})],pt.prototype,"isFirstLevel",void 0),Object(d["a"])([Object(h["b"])({default:""})],pt.prototype,"basePath",void 0),pt=Object(d["a"])([Object(h["a"])({name:"SidebarItem",components:{SidebarItemLink:ht}})],pt);var mt=pt,ft=mt,bt=(a("d729"),a("2ca8"),Object(T["a"])(ft,at,nt,!1,null,"35bc604c",null)),gt=bt.exports,vt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"sidebar-logo-container",class:{collapse:e.collapse}},[a("transition",{attrs:{name:"sidebarLogoFade"}},[e.collapse?a("router-link",{key:"collapse",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[a("img",{staticClass:"sidebar-logo",attrs:{src:"favicon.ico"}})]):a("router-link",{key:"expand",staticClass:"sidebar-logo-link",attrs:{to:"/"}},[a("img",{staticClass:"sidebar-logo",attrs:{src:"favicon.ico"}}),a("h1",{staticClass:"sidebar-title"},[e._v(" "+e._s(e.title)+" ")])])],1)],1)},yt=[],wt=a("8b99"),kt=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.title=wt["a"].title,e}return a}(h["c"]);Object(d["a"])([Object(h["b"])({required:!0})],kt.prototype,"collapse",void 0),kt=Object(d["a"])([Object(h["a"])({name:"SidebarLogo"})],kt);var Tt=kt,Ot=Tt,xt=(a("02d6"),Object(T["a"])(Ot,vt,yt,!1,null,"7847d0d3",null)),Et=xt.exports,_t=a("a1de"),St=a.n(_t),zt=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"sidebar",get:function(){return m["a"].sidebar}},{key:"routes",get:function(){return se["a"].routes}},{key:"showLogo",get:function(){return f["a"].showSidebarLogo}},{key:"menuActiveTextColor",get:function(){return f["a"].sidebarTextTheme?f["a"].theme:St.a.menuActiveText}},{key:"variables",get:function(){return St.a}},{key:"activeMenu",get:function(){var e=this.$route,t=e.meta,a=e.path;return t.activeMenu?t.activeMenu:a}},{key:"isCollapse",get:function(){return!this.sidebar.opened}}]),a}(h["c"]);zt=Object(d["a"])([Object(h["a"])({name:"SideBar",components:{SidebarItem:gt,SidebarLogo:Et}})],zt);var jt=zt,Ct=jt,Vt=(a("023d"),a("b567"),Object(T["a"])(Ct,et,tt,!1,null,"061fdbbc",null)),Lt=Vt.exports,Mt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{staticClass:"tags-view-container",attrs:{id:"tags-view-container"}},[a("scroll-pane",{ref:"scrollPane",staticClass:"tags-view-wrapper",on:{scroll:e.handleScroll}},e._l(e.visitedViews,(function(t){return a("router-link",{key:t.path,ref:"tag",refInFor:!0,staticClass:"tags-view-item",class:e.isActive(t)?"active":"",attrs:{to:{path:t.path,query:t.query,fullPath:t.fullPath},tag:"span"},nativeOn:{mouseup:function(a){if("button"in a&&1!==a.button)return null;!e.isAffix(t)&&e.closeSelectedTag(t)},contextmenu:function(a){return a.preventDefault(),e.openMenu(t,a)}}},[e._v(" "+e._s(e.$t("route."+t.meta.title))+" "),e.isAffix(t)?e._e():a("span",{staticClass:"el-icon-close",on:{click:function(a){return a.preventDefault(),a.stopPropagation(),e.closeSelectedTag(t)}}})])})),1),a("ul",{directives:[{name:"show",rawName:"v-show",value:e.visible,expression:"visible"}],staticClass:"contextmenu",style:{left:e.left+"px",top:e.top+"px"}},[a("li",{on:{click:function(t){return e.refreshSelectedTag(e.selectedTag)}}},[e._v(" "+e._s(e.$t("tagsView.refresh"))+" ")]),e.isAffix(e.selectedTag)?e._e():a("li",{on:{click:function(t){return e.closeSelectedTag(e.selectedTag)}}},[e._v(" "+e._s(e.$t("tagsView.close"))+" ")]),a("li",{on:{click:e.closeOthersTags}},[e._v(" "+e._s(e.$t("tagsView.closeOthers"))+" ")]),a("li",{on:{click:function(t){return e.closeAllTags(e.selectedTag)}}},[e._v(" "+e._s(e.$t("tagsView.closeAll"))+" ")])])],1)},Ht=[],At=(a("45fc"),function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("el-scrollbar",{ref:"scrollContainer",staticClass:"scroll-container",attrs:{vertical:!1},nativeOn:{wheel:function(t){return t.preventDefault(),e.handleScroll(t)}}},[e._t("default")],2)}),Pt=[],Dt=(a("c740"),4),It=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"scrollWrapper",get:function(){return this.$refs.scrollContainer.$refs.wrap}},{key:"mounted",value:function(){this.scrollWrapper.addEventListener("scroll",this.emitScroll,!0)}},{key:"beforeDestroy",value:function(){this.scrollWrapper.removeEventListener("scroll",this.emitScroll)}},{key:"handleScroll",value:function(e){var t=e.wheelDelta||40*-e.deltaY,a=this.scrollWrapper;a.scrollLeft=a.scrollLeft+t/4}},{key:"emitScroll",value:function(){this.$emit("scroll")}},{key:"moveToTarget",value:function(e){var t=this.$refs.scrollContainer.$el,a=t.offsetWidth,n=this.scrollWrapper,i=this.$parent.$refs.tag,o=null,r=null;if(i.length>0&&(o=i[0],r=i[i.length-1]),o===e)n.scrollLeft=0;else if(r===e)n.scrollLeft=n.scrollWidth-a;else{var c=i.findIndex((function(t){return t===e})),s=i[c-1],l=i[c+1],u=l.$el.offsetLeft+l.$el.offsetWidth+Dt,d=s.$el.offsetLeft-Dt;u>n.scrollLeft+a?n.scrollLeft=u-a:d1&&void 0!==arguments[1]?arguments[1]:"/",n=[];return e.forEach((function(e){if(e.meta&&e.meta.affix){var i=re.a.resolve(a,e.path);n.push({fullPath:i,path:i,name:e.name,meta:Object(it["a"])({},e.meta)})}if(e.children){var o=t.filterAffixTags(e.children,e.path);o.length>=1&&(n=[].concat(Object(ne["a"])(n),Object(ne["a"])(o)))}})),n}},{key:"initTags",value:function(){this.affixTags=this.filterAffixTags(this.routes);var e,t=Object(ie["a"])(this.affixTags);try{for(t.s();!(e=t.n()).done;){var a=e.value;a.name&&v["a"].addVisitedView(a)}}catch(n){t.e(n)}finally{t.f()}}},{key:"addTags",value:function(){var e=this.$route.name;return e&&v["a"].addView(this.$route),!1}},{key:"moveToCurrentTag",value:function(){var e=this,t=this.$refs.tag;this.$nextTick((function(){var a,n=Object(ie["a"])(t);try{for(n.s();!(a=n.n()).done;){var i=a.value;if(i.to.path===e.$route.path){e.$refs.scrollPane.moveToTarget(i),i.to.fullPath!==e.$route.fullPath&&v["a"].updateVisitedView(e.$route);break}}}catch(o){n.e(o)}finally{n.f()}}))}},{key:"refreshSelectedTag",value:function(e){var t=this;v["a"].delCachedView(e);var a=e.fullPath;this.$nextTick((function(){t.$router.replace({path:"/redirect"+a})["catch"]((function(e){console.warn(e)}))}))}},{key:"closeSelectedTag",value:function(e){v["a"].delView(e),this.isActive(e)&&this.toLastView(v["a"].visitedViews,e)}},{key:"closeOthersTags",value:function(){this.selectedTag.fullPath!==this.$route.path&&void 0!==this.selectedTag.fullPath&&this.$router.push(this.selectedTag.fullPath)["catch"]((function(e){console.warn(e)})),v["a"].delOthersViews(this.selectedTag),this.moveToCurrentTag()}},{key:"closeAllTags",value:function(e){var t=this;v["a"].delAllViews(),this.affixTags.some((function(e){return e.path===t.$route.path}))||this.toLastView(v["a"].visitedViews,e)}},{key:"toLastView",value:function(e,t){var a=e.slice(-1)[0];void 0!==a&&void 0!==a.fullPath?this.$router.push(a.fullPath)["catch"]((function(e){console.warn(e)})):"Dashboard"===t.name?this.$router.replace({path:"/redirect"+t.fullPath})["catch"]((function(e){console.warn(e)})):this.$router.push("/")["catch"]((function(e){console.warn(e)}))}},{key:"openMenu",value:function(e,t){var a=105,n=this.$el.getBoundingClientRect().left,i=this.$el.offsetWidth,o=i-a,r=t.clientX-n+15;this.left=r>o?o:r,this.top=t.clientY,this.visible=!0,this.selectedTag=e}},{key:"closeMenu",value:function(){this.visible=!1}},{key:"handleScroll",value:function(){this.closeMenu()}}]),a}(h["c"]);Object(d["a"])([Object(h["d"])("$route")],qt.prototype,"onRouteChange",null),Object(d["a"])([Object(h["d"])("visible")],qt.prototype,"onVisibleChange",null),qt=Object(d["a"])([Object(h["a"])({name:"TagsView",components:{ScrollPane:Nt}})],qt);var Gt=qt,Ft=Gt,Wt=(a("9858"),a("ebd8"),Object(T["a"])(Ft,Mt,Ht,!1,null,"31c3d88a",null)),Ut=Wt.exports,Zt=function(){var e=this,t=e.$createElement,a=e._self._c||t;return a("div",{ref:"rightPanel",staticClass:"rightPanel-container",class:{show:e.show}},[a("div",{staticClass:"rightPanel-background"}),a("div",{directives:[{name:"show",rawName:"v-show",value:e.showMenu,expression:"showMenu"}],staticClass:"rightPanel"},[a("div",{staticClass:"handle-button",style:{top:e.buttonTop+"px","background-color":e.theme},on:{click:function(t){e.show=!e.show}}},[a("i",{class:e.show?"el-icon-close":"el-icon-setting"})]),a("div",{staticClass:"rightPanel-items"},[e._t("default")],2)])])},Kt=[],Qt=a("d257"),Yt=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){var e;return Object(c["a"])(this,a),e=t.apply(this,arguments),e.show=!1,e}return Object(s["a"])(a,[{key:"showMenu",get:function(){return!m["a"].mini}},{key:"theme",get:function(){return f["a"].theme}},{key:"onShowChange",value:function(e){e&&!this.clickNotClose&&this.addEventClick(),e?Object(Qt["a"])(document.body,"showRightPanel"):Object(Qt["f"])(document.body,"showRightPanel")}},{key:"mounted",value:function(){this.insertToBody()}},{key:"beforeDestroy",value:function(){var e=this.$refs.rightPanel;e.remove()}},{key:"addEventClick",value:function(){window.addEventListener("click",this.closeSidebar)}},{key:"closeSidebar",value:function(e){var t=e.target.closest(".rightPanel");t||(this.show=!1,window.removeEventListener("click",this.closeSidebar))}},{key:"insertToBody",value:function(){var e=this.$refs.rightPanel,t=document.querySelector("body");t&&t.insertBefore(e,t.firstChild)}}]),a}(h["c"]);Object(d["a"])([Object(h["b"])({default:!1})],Yt.prototype,"clickNotClose",void 0),Object(d["a"])([Object(h["b"])({default:250})],Yt.prototype,"buttonTop",void 0),Object(d["a"])([Object(h["d"])("show")],Yt.prototype,"onShowChange",null),Yt=Object(d["a"])([Object(h["a"])({name:"RightPanel"})],Yt);var Jt=Yt,Xt=Jt,ea=(a("bd5e"),a("034b"),Object(T["a"])(Xt,Zt,Kt,!1,null,"745a2b41",null)),ta=ea.exports,aa=992,na=function(e){Object(l["a"])(a,e);var t=Object(u["a"])(a);function a(){return Object(c["a"])(this,a),t.apply(this,arguments)}return Object(s["a"])(a,[{key:"device",get:function(){return m["a"].device}},{key:"sidebar",get:function(){return m["a"].sidebar}},{key:"onRouteChange",value:function(){this.device===m["b"].Mobile&&this.sidebar.opened&&m["a"].CloseSideBar(!1)}},{key:"beforeMount",value:function(){window.addEventListener("resize",this.resizeHandler)}},{key:"mounted",value:function(){var e=this.isMobile();e&&(m["a"].ToggleDevice(m["b"].Mobile),m["a"].CloseSideBar(!0))}},{key:"beforeDestroy",value:function(){window.removeEventListener("resize",this.resizeHandler)}},{key:"isMobile",value:function(){var e=document.body.getBoundingClientRect();return e.width-1'}}),l.a.register({admin:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({announce:{width:125.156,height:120,viewBox:"0 0 1068 1024",data:''}}),l.a.register({"back-top":{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({bug:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({chart:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({clipboard:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({component:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({coupon:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({dashboard:{width:128,height:100,viewBox:"0 0 128 100",data:''}}),l.a.register({documentation:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({drag:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({edit:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({education:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({email:{width:128,height:96,viewBox:"0 0 128 96",data:''}}),l.a.register({example:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({excel:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({"exit-fullscreen":{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({"eye-off":{width:128,height:64,viewBox:"0 0 128 64",data:''}}),l.a.register({"eye-on":{width:128,height:128,viewBox:"0 0 1024 1024",data:''}}),l.a.register({form:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({fullscreen:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({game:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({"guide-2":{width:1e3,height:1e3,viewBox:"0 0 1000 1000",data:''}}),l.a.register({guide:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({hamburger:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({icon:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({international:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({language:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({like:{width:24,height:24,viewBox:"0 0 24 24",data:''}}),l.a.register({link:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({list:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({lock:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({lottery:{width:120,height:120,viewBox:"0 0 1024 1024",data:''}}),l.a.register({mail:{width:120,height:120,viewBox:"0 0 1024 1024",data:''}}),l.a.register({message:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({money:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({nested:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({password:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({pdf:{width:128,height:128,viewBox:"0 0 1024 1024",data:''}}),l.a.register({people:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({peoples:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({permission:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({points:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({promo:{width:82.625,height:64,viewBox:"0 0 1322 1024",data:''}}),l.a.register({qq:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({question_list:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({role:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({search:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({sell:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({share:{width:120,height:120,viewBox:"0 0 1024 1024",data:''}}),l.a.register({shop_list:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({shop:{width:64,height:64,viewBox:"0 0 1024 1024",data:''}}),l.a.register({shopping:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({size:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({skill:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({star:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({statistics:{width:120,height:120,viewBox:"0 0 1024 1024",data:''}}),l.a.register({tab:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({table:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({theme:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({theme2:{width:120,height:120,viewBox:"0 0 1024 1024",data:''}}),l.a.register({"tree-table":{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({tree:{width:128,height:128,viewBox:"0 0 128 128",data:''}}),l.a.register({user:{width:130,height:130,viewBox:"0 0 130 130",data:''}}),l.a.register({wechat:{width:128,height:110,viewBox:"0 0 128 110",data:''}}),l.a.register({zip:{width:128,height:128,viewBox:"0 0 128 128",data:''}});var C=a("5530"),V=a("1da1"),L=(a("96cf"),a("99af"),a("c975"),a("323e")),M=a.n(L),H=(a("a5d8"),a("8ad0")),A=a("8b99");M.a.configure({showSpinner:!1});var P=["/login","/auth-redirect"],D=function(e){var t=j["a"].te("route.".concat(e));if(t){var a=j["a"].t("route.".concat(e));return"".concat(a," - ").concat(A["a"].title)}return"".concat(A["a"].title)};z["c"].beforeEach(function(){var e=Object(V["a"])(regeneratorRuntime.mark((function e(t,a,n){var i;return regeneratorRuntime.wrap((function(e){while(1)switch(e.prev=e.next){case 0:if(M.a.start(),!w["a"].token){e.next=28;break}if("/login"!==t.path){e.next=7;break}n({path:"/"}),M.a.done(),e.next=26;break;case 7:if(0!==w["a"].roles.length){e.next=25;break}return e.prev=8,e.next=11,w["a"].GetUserInfo();case 11:i=w["a"].roles,H["a"].GenerateRoutes(i),z["c"].addRoutes(H["a"].dynamicRoutes),n(Object(C["a"])(Object(C["a"])({},t),{},{replace:!0})),e.next=23;break;case 17:e.prev=17,e.t0=e["catch"](8),w["a"].ResetToken(),r["Message"].error(e.t0||"Has Error"),n("/login?redirect=".concat(t.path)),M.a.done();case 23:e.next=26;break;case 25:n();case 26:e.next=29;break;case 28:-1!==P.indexOf(t.path)?n():(n("/login?redirect=".concat(t.path)),M.a.done());case 29:case"end":return e.stop()}}),e,null,[[8,17]])})));return function(t,a,n){return e.apply(this,arguments)}}()),z["c"].afterEach((function(e){M.a.done(),document.title=D(e.meta.title)}));var I,R,B,$=a("1e24"),N={inserted:function(e,t){var a=t.value;Object($["a"])(a)||(e.style.display="none")}},q=(a("caad"),a("2532"),a("ac1f"),a("5319"),{bind:function(e,t,a){var n=e.querySelector(".el-dialog"),i=e.querySelector(".el-dialog__header");n.style.cssText+=";top:0px;",i.style.cssText+=";cursor:move;",i.onmousedown=function(e){var t,o,r=e.clientX-i.offsetLeft,c=e.clientY-i.offsetTop,s=n.offsetWidth,l=n.offsetHeight,u=document.body.clientWidth,d=document.body.clientHeight,h=n.offsetLeft,p=u-n.offsetLeft-s,m=n.offsetTop,f=d-n.offsetTop-l,b=getComputedStyle(n).left,g=getComputedStyle(n).top;b&&g&&(b.includes("%")?(t=+document.body.clientWidth*(+b.replace(/%/g,"")/100),o=+document.body.clientHeight*(+g.replace(/%/g,"")/100)):(t=+b.replace(/px/g,""),o=+g.replace(/px/g,"")),document.onmousemove=function(e){var i=e.clientX-r,s=e.clientY-c;-i>h?i=-h:i>p&&(i=p),-s>m?s=-m:s>f&&(s=f),n.style.cssText+=";left:".concat(i+t,"px;top:").concat(s+o,"px;"),a.componentInstance?a.componentInstance.$emit("on-dialog-drag"):a.elm&&a.elm.dispatchEvent(new CustomEvent("on-dialog-drag"))},document.onmouseup=function(){document.onmousemove=null,document.onmouseup=null})}}}),G=(a("4d44"),{bind:function(e,t){e.addEventListener("click",(function(a){var n=Object.assign({},t.value),i=Object.assign({ele:e,type:"hit",color:"rgba(0, 0, 0, 0.15)"},n),o=i.ele;if(o){o.style.position="relative",o.style.overflow="hidden";var r=o.getBoundingClientRect(),c=o.querySelector(".waves-ripple");switch(c?c.className="waves-ripple":(c=document.createElement("span"),c.className="waves-ripple",c.style.height=c.style.width=Math.max(r.width,r.height)+"px",o.appendChild(c)),i.type){case"center":c.style.top=r.height/2-c.offsetHeight/2+"px",c.style.left=r.width/2-c.offsetWidth/2+"px";break;default:c.style.top=(a.pageY-r.top-c.offsetHeight/2-document.documentElement.scrollTop||document.body.scrollTop)+"px",c.style.left=(a.pageX-r.left-c.offsetWidth/2-document.documentElement.scrollLeft||document.body.scrollLeft)+"px"}return c.style.backgroundColor=i.color,c.className="waves-ripple z-active",!1}}),!1)}}),F=a("b311"),W=a.n(F);if(!W.a)throw new Error("you should npm install `clipboard` --save at first ");var U={bind:function(e,t){"success"===t.arg?I=t.value:"error"===t.arg?R=t.value:(B=new W.a(e,{text:function(){return t.value},action:function(){return"cut"===t.arg?"cut":"copy"}}),B.on("success",(function(e){var t=I;t&&t(e)})),B.on("error",(function(e){var t=R;t&&t(e)})))},update:function(e,t){"success"===t.arg?I=t.value:"error"===t.arg?R=t.value:B=new W.a(e,{text:function(){return t.value},action:function(){return"cut"===t.arg?"cut":"copy"}})},unbind:function(e,t){"success"===t.arg?I=null:"error"===t.arg?R=null:(B&&B.destroy(),B=null)}},Z=(a("45fc"),{inserted:function(e,t){var a=t.value,n=w["a"].roles;if(!(a&&a instanceof Array&&a.length>0))throw new Error("need roles! Like v-role=\"['admin','editor']\"");var i=a,o=n.some((function(e){return i.includes(e)}));o||(e.style.display="none")}}),K=(a("fb6a"),function(e){var t={published:"success",draft:"info",deleted:"danger"};return t[e]}),Q=function(e){return e.charAt(0).toUpperCase()+e.slice(1)},Y=a("b7c7");a("5361");o["default"].use(c.a,{size:y["a"].size,i18n:function(e,t){return j["a"].t(e,t)}}),o["default"].use(l.a,{tagName:"svg-icon",defaultWidth:"1em",defaultHeight:"1em"}),o["default"].use(Y["b"]),Object.keys(n).forEach((function(e){o["default"].directive(e,n[e])})),Object.keys(i).forEach((function(e){o["default"].filter(e,i[e])})),o["default"].config.productionTip=!1,new o["default"]({router:z["c"],store:S["a"],i18n:j["a"],render:function(e){return e(_)}}).$mount("#app")},d257:function(e,t,a){"use strict";a.d(t,"e",(function(){return i})),a.d(t,"g",(function(){return o})),a.d(t,"h",(function(){return r})),a.d(t,"c",(function(){return c})),a.d(t,"a",(function(){return l})),a.d(t,"f",(function(){return u})),a.d(t,"i",(function(){return d})),a.d(t,"b",(function(){return h})),a.d(t,"d",(function(){return p}));var n=a("53ca"),i=(a("e25e"),a("0d03"),a("d3b7"),a("25f0"),a("ac1f"),a("5319"),a("4d90"),a("1276"),a("d81d"),a("466d"),a("4d63"),a("c975"),a("4795"),function(e,t){if(void 0===e||!e)return null;var a,i=t||"{y}-{m}-{d} {h}:{i}:{s}";"object"===Object(n["a"])(e)?a=e:("string"===typeof e&&/^[0-9]+$/.test(e)&&(e=parseInt(e)),"number"===typeof e&&10===e.toString().length&&(e*=1e3),a=new Date(e));var o={y:a.getFullYear(),m:a.getMonth()+1,d:a.getDate(),h:a.getHours(),i:a.getMinutes(),s:a.getSeconds(),a:a.getDay()};return i.replace(/{([ymdhisa])+}/g,(function(e,t){var a=o[t];return"a"===t?["日","一","二","三","四","五","六"][a]:a.toString().padStart(2,"0")}))}),o=function(e){var t=!(arguments.length>1&&void 0!==arguments[1])||arguments[1];t="undefined"===typeof t||t;var a=e%60,n=(e%3600-a)/60,i=Math.floor(e/3600);return t?(i>9?""+i:"0"+i)+":"+(n>9?n:"0"+n)+":"+(a>9?a:"0"+a):(i>9?""+i:"0"+i)+":"+(n>9?n:"0"+n)},r=function(e){var t=e.split(":"),a=t.length>0?+t[0]:0,n=t.length>1?+t[1]:0,i=t.length>2?+t[2]:0;return 3600*a+60*n+i},c=function(e,t){return t.map((function(t){return e.map((function(e){return"timestamp"===e?i(t[e]):t[e]}))}))},s=function(e,t){return!!e.className.match(new RegExp("(\\s|^)"+t+"(\\s|$)"))},l=function(e,t){s(e,t)||(e.className+=" "+t)},u=function(e,t){if(s(e,t)){var a=new RegExp("(\\s|^)"+t+"(\\s|$)");e.className=e.className.replace(a," ")}},d=function(e,t){if(e&&t){var a=e.className,n=a.indexOf(t);-1===n?a+=""+t:a=a.substr(0,n)+a.substr(n+t.length),e.className=a}},h=function(e){return new Promise((function(t,a){setTimeout((function(){t&&t("")}),1e3*e)}))},p=function(e){var t=window.location.hash||"",a=new RegExp(e+"=([^&?]*)","ig");return t.match(a)?t.match(a)[0].substr(e.length+1):null}},d2a7:function(e,t,a){},d2c9:function(e,t,a){"use strict";a("704b")},d729:function(e,t,a){"use strict";a("4f20")},e149:function(e,t,a){},e15f:function(e,t,a){},e4f3:function(e,t,a){},e741:function(e,t,a){"use strict";a.d(t,"a",(function(){return p}));var n=a("3835"),i=a("b85c"),o=a("d4ec"),r=a("bee2"),c=a("262e"),s=a("2caf"),l=(a("45fc"),a("b0c0"),a("caad"),a("2532"),a("d3b7"),a("ddb0"),a("a434"),a("c975"),a("4de4"),a("fb6a"),a("9ab4")),u=a("6fc5"),d=a("0613"),h=function(e){Object(c["a"])(a,e);var t=Object(s["a"])(a);function a(){var e;return Object(o["a"])(this,a),e=t.apply(this,arguments),e.visitedViews=[],e.cachedViews=[],e}return Object(r["a"])(a,[{key:"ADD_VISITED_VIEW",value:function(e){this.visitedViews.some((function(t){return t.path===e.path}))||this.visitedViews.push(Object.assign({},e,{title:e.meta.title||"no-name"}))}},{key:"ADD_CACHED_VIEW",value:function(e){null!==e.name&&(this.cachedViews.includes(e.name)||e.meta.noCache||this.cachedViews.push(e.name))}},{key:"DEL_VISITED_VIEW",value:function(e){var t,a=Object(i["a"])(this.visitedViews.entries());try{for(a.s();!(t=a.n()).done;){var o=Object(n["a"])(t.value,2),r=o[0],c=o[1];if(c.path===e.path){this.visitedViews.splice(r,1);break}}}catch(s){a.e(s)}finally{a.f()}}},{key:"DEL_CACHED_VIEW",value:function(e){if(null!==e.name){var t=this.cachedViews.indexOf(e.name);t>-1&&this.cachedViews.splice(t,1)}}},{key:"DEL_OTHERS_VISITED_VIEWS",value:function(e){this.visitedViews=this.visitedViews.filter((function(t){return t.meta.affix||t.path===e.path}))}},{key:"DEL_OTHERS_CACHED_VIEWS",value:function(e){if(null!==e.name){var t=this.cachedViews.indexOf(e.name);this.cachedViews=t>-1?this.cachedViews.slice(t,t+1):[]}}},{key:"DEL_ALL_VISITED_VIEWS",value:function(){var e=this.visitedViews.filter((function(e){return e.meta.affix}));this.visitedViews=e}},{key:"DEL_ALL_CACHED_VIEWS",value:function(){this.cachedViews=[]}},{key:"UPDATE_VISITED_VIEW",value:function(e){var t,a=Object(i["a"])(this.visitedViews);try{for(a.s();!(t=a.n()).done;){var n=t.value;if(n.path===e.path){n=Object.assign(n,e);break}}}catch(o){a.e(o)}finally{a.f()}}},{key:"addView",value:function(e){this.ADD_VISITED_VIEW(e),this.ADD_CACHED_VIEW(e)}},{key:"addVisitedView",value:function(e){this.ADD_VISITED_VIEW(e)}},{key:"delView",value:function(e){this.DEL_VISITED_VIEW(e),this.DEL_CACHED_VIEW(e)}},{key:"delCachedView",value:function(e){this.DEL_CACHED_VIEW(e)}},{key:"delOthersViews",value:function(e){this.DEL_OTHERS_VISITED_VIEWS(e),this.DEL_OTHERS_CACHED_VIEWS(e)}},{key:"delAllViews",value:function(){this.DEL_ALL_VISITED_VIEWS(),this.DEL_ALL_CACHED_VIEWS()}},{key:"delAllCachedViews",value:function(){this.DEL_ALL_CACHED_VIEWS()}},{key:"updateVisitedView",value:function(e){this.UPDATE_VISITED_VIEW(e)}}]),a}(u["d"]);Object(l["a"])([u["c"]],h.prototype,"ADD_VISITED_VIEW",null),Object(l["a"])([u["c"]],h.prototype,"ADD_CACHED_VIEW",null),Object(l["a"])([u["c"]],h.prototype,"DEL_VISITED_VIEW",null),Object(l["a"])([u["c"]],h.prototype,"DEL_CACHED_VIEW",null),Object(l["a"])([u["c"]],h.prototype,"DEL_OTHERS_VISITED_VIEWS",null),Object(l["a"])([u["c"]],h.prototype,"DEL_OTHERS_CACHED_VIEWS",null),Object(l["a"])([u["c"]],h.prototype,"DEL_ALL_VISITED_VIEWS",null),Object(l["a"])([u["c"]],h.prototype,"DEL_ALL_CACHED_VIEWS",null),Object(l["a"])([u["c"]],h.prototype,"UPDATE_VISITED_VIEW",null),Object(l["a"])([u["a"]],h.prototype,"addView",null),Object(l["a"])([u["a"]],h.prototype,"addVisitedView",null),Object(l["a"])([u["a"]],h.prototype,"delView",null),Object(l["a"])([u["a"]],h.prototype,"delCachedView",null),Object(l["a"])([u["a"]],h.prototype,"delOthersViews",null),Object(l["a"])([u["a"]],h.prototype,"delAllViews",null),Object(l["a"])([u["a"]],h.prototype,"delAllCachedViews",null),Object(l["a"])([u["a"]],h.prototype,"updateVisitedView",null),h=Object(l["a"])([Object(u["b"])({dynamic:!0,store:d["a"],name:"tagsView"})],h);var p=Object(u["e"])(h)},ebd8:function(e,t,a){"use strict";a("4b2f")},f6a5:function(e,t,a){}});
+//# sourceMappingURL=app.84e7df09.js.map
\ No newline at end of file
diff --git a/dist/js/app.bf2dfb95.js.map b/dist/js/app.84e7df09.js.map
similarity index 99%
rename from dist/js/app.bf2dfb95.js.map
rename to dist/js/app.84e7df09.js.map
index 1d006fe..4da7074 100644
--- a/dist/js/app.bf2dfb95.js.map
+++ b/dist/js/app.84e7df09.js.map
@@ -1 +1 @@
-{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/layout/components/Settings/index.vue?e22b","webpack:///./src/layout/components/Sidebar/index.vue?d9f3","webpack:///./src/layout/components/Sidebar/SidebarLogo.vue?0e33","webpack:///./src/components/RightPanel/index.vue?1b2c","webpack:///./src/layout/components/Sidebar/index.vue?427e","webpack:///./src/store/index.ts","webpack:///./src/components/LangSelect/index.vue?9a5c","webpack:///./src/components/LangSelect/index.vue?e88c","webpack:///./src/components/LangSelect/index.vue?17c2","webpack:///./src/components/LangSelect/index.vue","webpack:///./src/utils/permission.ts","webpack:///./src/layout/components/TagsView/ScrollPane.vue?d787","webpack:///./src/styles/element-variables.scss?0651","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?e8a9","webpack:///./src/components/Breadcrumb/index.vue?1fda","webpack:///./src/components/ErrorLog/index.vue?cde2","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?2ce7","webpack:///./src/utils/Extend.ts","webpack:///./src/utils/cookies.ts","webpack:///./src/layout/components/TagsView/ScrollPane.vue?6587","webpack:///./src/components/ThemePicker/index.vue?361b","webpack:///./src/lang/en.ts","webpack:///./src/lang/zh.ts","webpack:///./src/lang/es.ts","webpack:///./src/lang/ja.ts","webpack:///./src/lang/ko.ts","webpack:///./src/lang/it.ts","webpack:///./src/lang/index.ts","webpack:///./src/components/ThemePicker/index.vue?7fab","webpack:///./src/layout/components/AppMain.vue?1989","webpack:///./src/store/modules/settings.ts","webpack:///./src/store/modules/permission.ts","webpack:///./src/settings.ts","webpack:///./src/components/RightPanel/index.vue?9a67","webpack:///./src/layout/components/TagsView/ScrollPane.vue?f788","webpack:///./src/api/admins.ts","webpack:///./src/layout/components/TagsView/index.vue?de25","webpack:///./src/store/modules/user.ts","webpack:///./src/styles/_variables.scss","webpack:///./src/store/modules/app.ts","webpack:///./src/layout/components/Navbar/index.vue?838b","webpack:///./src/components/Hamburger/index.vue?750d","webpack:///./src/layout/index.vue?0512","webpack:///./src/layout/components/AppMain.vue?374d","webpack:///./src/layout/components/AppMain.vue?40de","webpack:///./src/layout/components/AppMain.vue?ba62","webpack:///./src/layout/components/AppMain.vue","webpack:///./src/layout/components/Navbar/index.vue?5e6d","webpack:///./src/components/Breadcrumb/index.vue?03e3","webpack:///./src/components/Breadcrumb/index.vue?12bf","webpack:///./src/components/Breadcrumb/index.vue?db4b","webpack:///./src/components/Breadcrumb/index.vue","webpack:///./src/components/ErrorLog/index.vue?24a9","webpack:///./src/store/modules/error-log.ts","webpack:///./src/components/ErrorLog/index.vue?b810","webpack:///./src/components/ErrorLog/index.vue?5c58","webpack:///./src/components/ErrorLog/index.vue","webpack:///./src/components/Hamburger/index.vue?2027","webpack:///./src/components/Hamburger/index.vue?8de9","webpack:///./src/components/Hamburger/index.vue?6557","webpack:///./src/components/Hamburger/index.vue","webpack:///./src/components/HeaderSearch/index.vue?2be0","webpack:///./src/components/HeaderSearch/index.vue?31aa","webpack:///./src/components/HeaderSearch/index.vue?6f38","webpack:///./src/components/HeaderSearch/index.vue","webpack:///./src/components/Screenfull/index.vue?948f","webpack:///./src/components/Screenfull/index.vue?ca69","webpack:///./src/components/Screenfull/index.vue?cba9","webpack:///./src/components/Screenfull/index.vue","webpack:///./src/components/SizeSelect/index.vue?5ffa","webpack:///./src/components/SizeSelect/index.vue?1aed","webpack:///./src/components/SizeSelect/index.vue?03ec","webpack:///./src/components/SizeSelect/index.vue","webpack:///./src/layout/components/Navbar/index.vue?9a5d","webpack:///./src/layout/components/Navbar/index.vue?9362","webpack:///./src/layout/components/Navbar/index.vue","webpack:///./src/layout/components/Settings/index.vue?b93e","webpack:///./src/components/ThemePicker/index.vue?293c","webpack:///./src/components/ThemePicker/index.vue?a6ad","webpack:///./src/components/ThemePicker/index.vue?5987","webpack:///./src/components/ThemePicker/index.vue","webpack:///./src/layout/components/Settings/index.vue?bbb9","webpack:///./src/layout/components/Settings/index.vue?66a9","webpack:///./src/layout/components/Settings/index.vue","webpack:///./src/layout/components/Sidebar/index.vue?cbf4","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?f6b8","webpack:///./src/utils/validate.ts","webpack:///./src/layout/components/Sidebar/SidebarItemLink.vue?77e9","webpack:///./src/layout/components/Sidebar/SidebarItemLink.vue?9406","webpack:///./src/layout/components/Sidebar/SidebarItemLink.vue?0e65","webpack:///./src/layout/components/Sidebar/SidebarItemLink.vue","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?2bba","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?e261","webpack:///./src/layout/components/Sidebar/SidebarItem.vue","webpack:///./src/layout/components/Sidebar/SidebarLogo.vue?618b","webpack:///./src/layout/components/Sidebar/SidebarLogo.vue?3328","webpack:///./src/layout/components/Sidebar/SidebarLogo.vue?f717","webpack:///./src/layout/components/Sidebar/SidebarLogo.vue","webpack:///./src/layout/components/Sidebar/index.vue?3a34","webpack:///./src/layout/components/Sidebar/index.vue?a172","webpack:///./src/layout/components/Sidebar/index.vue","webpack:///./src/layout/components/TagsView/index.vue?5da6","webpack:///./src/layout/components/TagsView/ScrollPane.vue?7261","webpack:///./src/layout/components/TagsView/ScrollPane.vue?9f04","webpack:///./src/layout/components/TagsView/ScrollPane.vue?2c29","webpack:///./src/layout/components/TagsView/ScrollPane.vue","webpack:///./src/layout/components/TagsView/index.vue?db3e","webpack:///./src/layout/components/TagsView/index.vue?d9d5","webpack:///./src/layout/components/TagsView/index.vue","webpack:///./src/components/RightPanel/index.vue?7303","webpack:///./src/components/RightPanel/index.vue?9d03","webpack:///./src/components/RightPanel/index.vue?b2ad","webpack:///./src/components/RightPanel/index.vue","webpack:///./src/layout/mixin/resize.ts","webpack:///./src/layout/index.vue?8696","webpack:///./src/layout/index.vue?5d14","webpack:///./src/layout/index.vue","webpack:///./src/router/modules/system.ts","webpack:///./src/router/modules/marketing.ts","webpack:///./src/router/modules/question.ts","webpack:///./src/router/modules/shop.ts","webpack:///./src/router/modules/game.ts","webpack:///./src/router/modules/statics.ts","webpack:///./src/router/index.ts","webpack:///./src/styles/index.scss?5214","webpack:///./src/utils/request.ts","webpack:///./src/layout/components/Sidebar/index.vue?569c","webpack:///./src/layout/index.vue?a71d","webpack:///./src/utils/storage.ts","webpack:///./src/components/RightPanel/index.vue?3ce2","webpack:///./src/layout/components/TagsView/index.vue?1d70","webpack:///./src/App.vue?dce3","webpack:///./src/App.vue?376d","webpack:///./src/App.vue?8d29","webpack:///./src/App.vue","webpack:///./src/icons/components/404.ts","webpack:///./src/icons/components/admin.ts","webpack:///./src/icons/components/announce.ts","webpack:///./src/icons/components/back-top.ts","webpack:///./src/icons/components/bug.ts","webpack:///./src/icons/components/chart.ts","webpack:///./src/icons/components/clipboard.ts","webpack:///./src/icons/components/component.ts","webpack:///./src/icons/components/coupon.ts","webpack:///./src/icons/components/dashboard.ts","webpack:///./src/icons/components/documentation.ts","webpack:///./src/icons/components/drag.ts","webpack:///./src/icons/components/edit.ts","webpack:///./src/icons/components/education.ts","webpack:///./src/icons/components/email.ts","webpack:///./src/icons/components/example.ts","webpack:///./src/icons/components/excel.ts","webpack:///./src/icons/components/exit-fullscreen.ts","webpack:///./src/icons/components/eye-off.ts","webpack:///./src/icons/components/eye-on.ts","webpack:///./src/icons/components/form.ts","webpack:///./src/icons/components/fullscreen.ts","webpack:///./src/icons/components/game.ts","webpack:///./src/icons/components/guide-2.ts","webpack:///./src/icons/components/guide.ts","webpack:///./src/icons/components/hamburger.ts","webpack:///./src/icons/components/icon.ts","webpack:///./src/icons/components/international.ts","webpack:///./src/icons/components/language.ts","webpack:///./src/icons/components/like.ts","webpack:///./src/icons/components/link.ts","webpack:///./src/icons/components/list.ts","webpack:///./src/icons/components/lock.ts","webpack:///./src/icons/components/lottery.ts","webpack:///./src/icons/components/mail.ts","webpack:///./src/icons/components/message.ts","webpack:///./src/icons/components/money.ts","webpack:///./src/icons/components/nested.ts","webpack:///./src/icons/components/password.ts","webpack:///./src/icons/components/pdf.ts","webpack:///./src/icons/components/people.ts","webpack:///./src/icons/components/peoples.ts","webpack:///./src/icons/components/permission.ts","webpack:///./src/icons/components/points.ts","webpack:///./src/icons/components/promo.ts","webpack:///./src/icons/components/qq.ts","webpack:///./src/icons/components/question_list.ts","webpack:///./src/icons/components/role.ts","webpack:///./src/icons/components/search.ts","webpack:///./src/icons/components/sell.ts","webpack:///./src/icons/components/share.ts","webpack:///./src/icons/components/shop_list.ts","webpack:///./src/icons/components/shop.ts","webpack:///./src/icons/components/shopping.ts","webpack:///./src/icons/components/size.ts","webpack:///./src/icons/components/skill.ts","webpack:///./src/icons/components/star.ts","webpack:///./src/icons/components/statistics.ts","webpack:///./src/icons/components/tab.ts","webpack:///./src/icons/components/table.ts","webpack:///./src/icons/components/theme.ts","webpack:///./src/icons/components/theme2.ts","webpack:///./src/icons/components/tree-table.ts","webpack:///./src/icons/components/tree.ts","webpack:///./src/icons/components/user.ts","webpack:///./src/icons/components/wechat.ts","webpack:///./src/icons/components/zip.ts","webpack:///./src/permission.ts","webpack:///./src/directives/clipboard/index.ts","webpack:///./src/directives/permission/index.ts","webpack:///./src/directives/el-draggable-dialog/index.ts","webpack:///./src/directives/waves/index.ts","webpack:///./src/directives/role/index.ts","webpack:///./src/filters/index.ts","webpack:///./src/main.ts","webpack:///./src/utils/index.ts","webpack:///./src/components/HeaderSearch/index.vue?c1ac","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?b1f4","webpack:///./src/store/modules/tags-view.ts","webpack:///./src/layout/components/TagsView/index.vue?3503"],"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","use","Store","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","on","handleSetLanguage","slot","language","_v","staticRenderFns","lang","$i18n","locale","SetLanguage","documentElement","title","$route","meta","$t","settings","$message","toString","component","checkPermission","Array","permissions","hasPermission","sub","subArr","split","defineProperties","Date","addDays","days","getTime","writable","CanvasRenderingContext2D","roundRect","x","y","w","h","minSize","Math","min","beginPath","moveTo","arcTo","strokeStyle","stroke","closePath","cloneTo","b","len","appendTo","pushOnce","idx","indexOf","zremove","spliceOne","index","randomSort","random","randomInsert","arr","forEach","randomGet","temp","count","shuffled","floor","randomOne","results","randomRemove","moveElement","abs","concat","union","a","Set","intersect","set0","set1","filter","has","difference","Map","inc","set","sidebarStatusKey","getSidebarStatus","setSidebarStatus","sidebarStatus","languageKey","getLanguage","setLanguage","sizeKey","getSize","setSize","size","miniKey","getMini","setMini","mini","tokenKey","getToken","setToken","token","removeToken","remove","route","dashboard","system","adminuser","documentation","guide","permission","pagePermission","rolePermission","directivePermission","icons","components","tinymce","markdown","jsonEditor","splitPane","avatarUpload","dropzone","sticky","countTo","componentMixin","backToTop","draggableDialog","draggableKanban","draggableList","draggableSelect","charts","barChart","lineChart","mixedChart","example","nested","menu1","menu2","table","dynamicTable","draggableTable","inlineEditTable","complexTable","tab","form","createArticle","editArticle","articleList","errorPages","page401","page404","errorLog","excel","exportExcel","selectExcel","mergeHeader","uploadExcel","zip","pdf","exportZip","theme","clipboard","i18n","externalLink","profile","article","marketing","marketing_coupon","marketing_coupon_info","marketing_promo","marketing_points","question","question_list","question_prepare","question_setting","createQuestion","shop","shop_list","shop_admin","create_shop","shop_edit","game_setting","game","game_list","game_edit","activity_list","create_activity","edit_activity","exam_list","create_exam","edit_exam","password","edit_theme","shop_member","shop_statistics","game_statistics","shop_puzzles","shop_lottery","shop_share","shop_mail","create_mail","edit_mail","shop_announce","create_announce","edit_announce","navbar","logOut","github","login","logIn","username","any","thirdparty","thirdpartyTips","createRole","editPermission","roles","switchRoles","tips","delete","confirm","cancel","description","button","tinymceTips","stickyTips","backToTopTips1","backToTopTips2","imageUploadTips","changeLanguageTips","dynamicTips1","dynamicTips2","dragTips1","dragTips2","importance","remark","search","add","export","reviewer","id","date","author","readings","status","actions","edit","publish","draft","warning","selectedExport","placeholder","change","tagsView","refresh","close","closeOthers","closeAll","showTagsView","showSidebarLogo","fixedHeader","sidebarTextTheme","admin","addAdmin","editAdmin","main","toasts","switchLanguage","messages","en","zh","es","ja","ko","it","cookieLanguage","navigator","toLowerCase","locales","keys","Settings","showSettings","payload","CHANGE_SETTING","dynamic","store","SettingsModule","hasRole","some","role","includes","defaultPublic","filterAsyncRoutes","routes","res","children","Permission","dynamicRoutes","accessedRoutes","SET_ROUTES","PermissionModule","devServerPort","mockServerPort","defaultAdmin","showname","comment","locked","level","sex","avatar","department","getAdminInfo","url","method","logout","saveAdmin","deleteAdmin","uid","changeLocker","lock","getUsers","params","changePass","changeInfo","User","introduction","email","deptname","userInfo","trim","SET_TOKEN","SET_ROLES","SET_PERMISSIONS","SET_NAME","SET_AVATAR","SET_INTRODUCTION","SET_DEPARTMENT","SET_LEVEL","SET_DEPTNAME","SET_SEX","GetUserInfo","GenerateRoutes","addRoutes","delAllViews","UserModule","DeviceType","App","sidebar","opened","withoutAnimation","device","Desktop","Number","TOGGLE_SIDEBAR","CLOSE_SIDEBAR","TOGGLE_DEVICE","SET_LANGUAGE","SET_SIZE","SET_MINI","CloseSideBar","AppModule","class","classObj","mobile","handleClickOutside","_e","hasTagsView","cachedViews","path","toggleSideBar","_s","nativeOn","$event","staticStyle","_l","item","redirect","breadcrumbs","preventDefault","handleLink","startsWith","getBreadcrumb","matched","first","isDashboard","breadcrumb","toLocaleLowerCase","toPath","$router","warn","pathCompile","errorLogs","dialogTableVisible","clearAll","scopedSlots","_u","fn","ref","row","vm","$vnode","info","stack","logs","log","ADD_ERROR_LOG","CLEAR_ERROR_LOG","ErrorLogModule","ClearErrorLog","isActive","toggleClick","$emit","default","show","stopPropagation","click","querySearch","model","callback","$$v","expression","join","options","searchPool","generateRoutes","initFuse","body","addEventListener","removeEventListener","$refs","headerSearchSelect","focus","blur","$nextTick","list","fuse","shouldSort","threshold","location","distance","minMatchCharLength","weight","basePath","prefixTitle","router","hidden","i18ntitle","tempRoutes","query","map","isFullscreen","sf","isEnabled","off","toggle","handleSetSize","label","sizeOptions","$ELEMENT","SetSize","refreshView","delAllCachedViews","fullPath","replace","ToggleSideBar","LogOut","Breadcrumb","ErrorLog","Hamburger","HeaderSearch","LangSelect","Screenfull","SizeSelect","themeChange","version","ORIGINAL_THEME","chalk","oldValue","themeCluster","getThemeCluster","originalCluster","customClass","duration","iconClass","getCSSString","getHandler","variable","newStyle","updateStyle","styleTag","getElementById","innerText","chalkHandler","styles","querySelectorAll","style","text","RegExp","test","oldCluster","newCluster","color","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","open","send","tintColor","tint","red","parseInt","green","blue","round","shadeColor","shade","clusters","toFixed","immediate","ChangeSetting","ThemePicker","showLogo","isCollapse","activeMenu","variables","menuBg","menuText","menuActiveTextColor","isFirstLevel","alwaysShowRootMenu","theOnlyOneChild","resolvePath","icon","elicon","child","isExternal","to","_t","required","alwaysShow","showingChildren","showingChildNumber","routePath","SidebarItemLink","collapse","menuActiveText","SidebarItem","SidebarLogo","handleScroll","refInFor","isAffix","closeSelectedTag","openMenu","directives","rawName","left","top","refreshSelectedTag","selectedTag","closeOthersTags","closeAllTags","tagSpacing","scrollContainer","wrap","scrollWrapper","emitScroll","eventDelta","wheelDelta","deltaY","scrollLeft","currentTag","container","$el","containerWidth","offsetWidth","tagList","$parent","firstTag","lastTag","scrollWidth","currentIndex","findIndex","prevTag","nextTag","afterNextTagOffsetLeft","offsetLeft","beforePrevTagOffsetLeft","visible","affixTags","visitedViews","addTags","moveToCurrentTag","closeMenu","initTags","affix","tags","tagPath","childTags","filterAffixTags","addVisitedView","addView","scrollPane","moveToTarget","updateVisitedView","view","delCachedView","delView","toLastView","delOthersViews","latestView","menuMinWidth","getBoundingClientRect","maxLeft","clientX","clientY","ScrollPane","buttonTop","clickNotClose","addEventClick","insertToBody","elx","rightPanel","closeSidebar","ev","parent","closest","querySelector","insertBefore","firstChild","WIDTH","Mobile","resizeHandler","isMobile","ToggleDevice","rect","width","hideSidebar","openSidebar","AppMain","Navbar","RightPanel","Sidebar","TagsView","systemRoutes","marketingRoutes","questionRoutes","shopRoutes","gameRoutes","staticsRoutes","statics","constantRoutes","noCache","asyncRoutes","scrollBehavior","from","savedPosition","base","resetRouter","newRouter","matcher","service","baseURL","interceptors","config","headers","authorization","response","msg","confirmButtonText","cancelButtonText","ResetToken","reload","local","val","localStorage","getItem","JSON","parse","setItem","stringify","install","vue","$local","LAST_SHOP","SetMini","updatePageToken","register","height","viewBox","configure","showSpinner","whiteList","hasKey","te","pageName","beforeEach","_","next","start","done","afterEach","successCallback","errorCallback","clipboardInstance","inserted","el","binding","display","elDraggableDialog","vnode","dragDom","dialogHeaderEl","cssText","onmousedown","styleLeft","styleTop","disX","disY","offsetTop","dragDomWidth","dragDomHeight","offsetHeight","screenWidth","clientWidth","screenHeight","clientHeight","minDragDomLeft","maxDragDomLeft","minDragDomTop","maxDragDomTop","styleLeftStr","getComputedStyle","styleTopStr","onmousemove","componentInstance","elm","dispatchEvent","CustomEvent","onmouseup","customOpts","assign","opts","ele","position","overflow","ripple","className","max","pageY","scrollTop","pageX","backgroundColor","arg","action","update","unbind","destroy","permissionRoles","articleStatusFilter","statusMap","published","deleted","uppercaseFirstChar","str","charAt","toUpperCase","tagName","defaultWidth","defaultHeight","directive","productionTip","$mount","parseTime","time","cFormat","format","formatObj","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getDay","padStart","sec2TimeStr","sec","showSeconds","timeStr2Sec","vals","formatJson","filterKeys","jsonData","hasClass","match","addClass","removeClass","reg","toggleClass","classString","nameIndex","substr","delay","getParameter","hash","v","entries","ADD_VISITED_VIEW","ADD_CACHED_VIEW","DEL_VISITED_VIEW","DEL_CACHED_VIEW","DEL_OTHERS_VISITED_VIEWS","DEL_OTHERS_CACHED_VIEWS","DEL_ALL_VISITED_VIEWS","DEL_ALL_CACHED_VIEWS","UPDATE_VISITED_VIEW","TagsViewModule"],"mappings":"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","file":"js/app.bf2dfb95.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/\" + ({\"401\":\"401\",\"404\":\"404\",\"auth-redirect\":\"auth-redirect\",\"dashboard\":\"dashboard\",\"i18n-demo\":\"i18n-demo\",\"login\":\"login\",\"profile\":\"profile\",\"redirect\":\"redirect\",\"theme\":\"theme\"}[chunkId]||chunkId) + \".\" + {\"401\":\"c4c44001\",\"404\":\"b1bc2078\",\"auth-redirect\":\"d5b70f0f\",\"chunk-01c0add2\":\"ca1b9d8d\",\"chunk-035792c2\":\"cb14260f\",\"chunk-1426d9f9\":\"cee2e077\",\"chunk-144e8b05\":\"539f7280\",\"chunk-1d3d01ed\":\"80a164f1\",\"chunk-208d8a12\":\"a2a5901a\",\"chunk-21495f61\":\"225b886f\",\"chunk-6b4a5bf1\":\"b1a85584\",\"chunk-d4ad27d8\":\"80e78674\",\"chunk-320254da\":\"6f688d54\",\"chunk-408127e4\":\"9cf97b91\",\"chunk-41e8e32c\":\"baeb9f1f\",\"chunk-4bf5c744\":\"55d43cf1\",\"chunk-746aff6b\":\"40960a53\",\"chunk-01717ca4\":\"abff9986\",\"chunk-4cad52d2\":\"cdf86532\",\"chunk-5337e365\":\"58dbee9b\",\"chunk-551b767f\":\"477d1d4e\",\"chunk-5823cdba\":\"0d8b6252\",\"chunk-83c684a0\":\"49c7c576\",\"chunk-03981715\":\"97a8e9cd\",\"chunk-21871d0b\":\"6151f616\",\"chunk-e3e6e8fe\":\"4fd32f55\",\"chunk-151a93ee\":\"c9e353a9\",\"chunk-fd5993aa\":\"5f4a16bc\",\"chunk-7a4adbf7\":\"ed521c69\",\"chunk-7ee58394\":\"8accd56d\",\"chunk-308db560\":\"aa73643b\",\"chunk-d1a6e4dc\":\"3a898f93\",\"chunk-cd008602\":\"48da3f3a\",\"chunk-eccc87f4\":\"c30ff0d8\",\"chunk-facc6e54\":\"964a7b46\",\"dashboard\":\"cecb23a8\",\"i18n-demo\":\"bd145662\",\"login\":\"c7d11a72\",\"profile\":\"be0ab4f3\",\"redirect\":\"7905c4af\",\"theme\":\"4f27f50e\"}[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 = {\"401\":1,\"404\":1,\"chunk-01c0add2\":1,\"chunk-035792c2\":1,\"chunk-1426d9f9\":1,\"chunk-144e8b05\":1,\"chunk-1d3d01ed\":1,\"chunk-208d8a12\":1,\"chunk-21495f61\":1,\"chunk-6b4a5bf1\":1,\"chunk-d4ad27d8\":1,\"chunk-320254da\":1,\"chunk-408127e4\":1,\"chunk-41e8e32c\":1,\"chunk-4bf5c744\":1,\"chunk-01717ca4\":1,\"chunk-4cad52d2\":1,\"chunk-5337e365\":1,\"chunk-551b767f\":1,\"chunk-5823cdba\":1,\"chunk-03981715\":1,\"chunk-21871d0b\":1,\"chunk-151a93ee\":1,\"chunk-fd5993aa\":1,\"chunk-7a4adbf7\":1,\"chunk-7ee58394\":1,\"chunk-308db560\":1,\"chunk-d1a6e4dc\":1,\"chunk-cd008602\":1,\"chunk-eccc87f4\":1,\"chunk-facc6e54\":1,\"dashboard\":1,\"i18n-demo\":1,\"login\":1,\"profile\":1,\"theme\":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/\" + ({\"401\":\"401\",\"404\":\"404\",\"auth-redirect\":\"auth-redirect\",\"dashboard\":\"dashboard\",\"i18n-demo\":\"i18n-demo\",\"login\":\"login\",\"profile\":\"profile\",\"redirect\":\"redirect\",\"theme\":\"theme\"}[chunkId]||chunkId) + \".\" + {\"401\":\"11c016b8\",\"404\":\"96fe1c26\",\"auth-redirect\":\"31d6cfe0\",\"chunk-01c0add2\":\"200293c4\",\"chunk-035792c2\":\"5c7c2651\",\"chunk-1426d9f9\":\"c73fa990\",\"chunk-144e8b05\":\"200293c4\",\"chunk-1d3d01ed\":\"200293c4\",\"chunk-208d8a12\":\"3fc2e519\",\"chunk-21495f61\":\"146db6b7\",\"chunk-6b4a5bf1\":\"1a2de8a5\",\"chunk-d4ad27d8\":\"af60e613\",\"chunk-320254da\":\"7043d55d\",\"chunk-408127e4\":\"5b669c31\",\"chunk-41e8e32c\":\"ab6179cd\",\"chunk-4bf5c744\":\"d25b5fbc\",\"chunk-746aff6b\":\"31d6cfe0\",\"chunk-01717ca4\":\"0461aed2\",\"chunk-4cad52d2\":\"38768785\",\"chunk-5337e365\":\"9011efc0\",\"chunk-551b767f\":\"00048683\",\"chunk-5823cdba\":\"be777eac\",\"chunk-83c684a0\":\"31d6cfe0\",\"chunk-03981715\":\"c22f04b8\",\"chunk-21871d0b\":\"4c0f28ef\",\"chunk-e3e6e8fe\":\"31d6cfe0\",\"chunk-151a93ee\":\"03ae7354\",\"chunk-fd5993aa\":\"0461aed2\",\"chunk-7a4adbf7\":\"38768785\",\"chunk-7ee58394\":\"200293c4\",\"chunk-308db560\":\"6e0a53f0\",\"chunk-d1a6e4dc\":\"87e1bd75\",\"chunk-cd008602\":\"286b633f\",\"chunk-eccc87f4\":\"200293c4\",\"chunk-facc6e54\":\"3c643e28\",\"dashboard\":\"704ea637\",\"i18n-demo\":\"037e2f6c\",\"login\":\"5da2793e\",\"profile\":\"38768785\",\"redirect\":\"31d6cfe0\",\"theme\":\"4119be69\"}[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","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=f76a8f60&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarLogo.vue?vue&type=style&index=0&id=7847d0d3&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&id=745a2b41&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport { IAppState } from './modules/app'\nimport { IUserState } from './modules/user'\n\nVue.use(Vuex)\n\nexport interface IRootState {\n app: IAppState\n user: IUserState\n}\n\n// Declare empty store first, dynamically register all modules later.\nexport default new Vuex.Store({})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dropdown',{staticClass:\"international\",attrs:{\"trigger\":\"click\"},on:{\"command\":_vm.handleSetLanguage}},[_c('div',[_c('svg-icon',{staticClass:\"international-icon\",attrs:{\"name\":\"language\"}})],1),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='zh',\"command\":\"zh\"}},[_vm._v(\" 中文 \")]),_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='en',\"command\":\"en\"}},[_vm._v(\" English \")]),_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='es',\"command\":\"es\"}},[_vm._v(\" Español \")]),_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='ja',\"command\":\"ja\"}},[_vm._v(\" 日本語 \")]),_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='ko',\"command\":\"ko\"}},[_vm._v(\" 한국어 \")]),_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='it',\"command\":\"it\"}},[_vm._v(\" Italiano \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { AppModule } from '@/store/modules/app'\nimport settings from '../../settings'\n@Component({\n name: 'Login'\n})\nexport default class extends Vue {\n get language() {\n return AppModule.language\n }\n\n private handleSetLanguage(lang: string) {\n this.$i18n.locale = lang\n AppModule.SetLanguage(lang)\n document.documentElement.lang = lang\n const title = this.$route.meta.title ? `${this.$t(`route.${this.$route.meta.title}`)} - ${settings.title}` : `${settings.title}`\n document.title = title\n this.$message({\n message: this.$t('components.changeLanguageTips').toString(),\n type: 'success'\n })\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7302ef94&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/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 { UserModule } from '@/store/modules/user'\n\nexport const checkRole = (value: string[]): boolean => {\n if (value && value instanceof Array && value.length > 0) {\n const roles = UserModule.roles\n const permissionRoles = value\n const hasPermission = roles.some(role => {\n return permissionRoles.includes(role)\n })\n return hasPermission\n } else {\n console.error('need roles! Like v-permission=\"[\\'admin\\',\\'editor\\']\"')\n return false\n }\n}\n\nexport const checkPermission = (value: string[]): boolean => {\n if (value && value instanceof Array && value.length > 0) {\n const permissions = UserModule.permissions\n let hasPermission = false\n for (const sub of value) {\n if (sub === '*') {\n hasPermission = true\n break\n }\n const subArr = sub.split(':')\n if (subArr[0] === '*') {\n for (const p of permissions) {\n if (p[1] === '*' || p[1] === subArr[1]) {\n hasPermission = true\n break\n }\n }\n } else if (subArr[1] === '*') {\n for (const p of permissions) {\n if (p[0] === '*' || p[0] === subArr[0]) {\n hasPermission = true\n break\n }\n }\n } else {\n for (const p of permissions) {\n if ((p[0] === '*' && p[1] === '*') ||\n (p[0] === '*' && p[1] === subArr[1]) ||\n (p[0] === subArr[0] && p[1] === '*') ||\n (p[0] === subArr[0] && p[1] === subArr[1])) {\n hasPermission = true\n break\n }\n }\n }\n if (hasPermission) {\n break\n }\n }\n return hasPermission\n } else {\n console.error('need roles! Like v-permission=\"[\\'admin\\',\\'editor\\']\"')\n return false\n }\n}\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=style&index=1&id=4712a34c&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\",\"theme\":\"#1890ff\"};","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=style&index=1&id=35bc604c&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=48aca8f5&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=72a28363&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","interface Date {\n /**\n * 增加n天\n * @param {number} days\n * @return {Date}\n */\n addDays(days: number): Date\n}\n// eslint-disable-next-line no-extend-native\nObject.defineProperties(Date.prototype, {\n addDays: {\n value: function(days: number) {\n return new Date(this.getTime() + days * 3600 * 24 * 1000)\n },\n writable: true\n }\n})\ninterface CanvasRenderingContext2D {\n roundRect(x: number, y: number, w: number, h: number, r: number):CanvasRenderingContext2D\n}\nObject.defineProperties(CanvasRenderingContext2D.prototype, {\n roundRect: {\n value: function(x: number, y: number, w: number, h: number, r: number) {\n const minSize = Math.min(w, h)\n if (r > minSize / 2) r = minSize / 2\n // 开始绘制\n this.beginPath()\n this.moveTo(x + r, y)\n this.arcTo(x + w, y, x + w, y + h, r)\n this.arcTo(x + w, y + h, x, y + h, r)\n this.arcTo(x, y + h, x, y, r)\n this.arcTo(x, y, x + w, y, r)\n this.strokeStyle = '#FFF'\n this.stroke()\n this.closePath()\n return this\n },\n writable: true\n }\n})\n\ninterface Array {\n /**\n * 如果数组中没有要放入的对象,则将对象放入数组\n *\n * @param {T} t 要放入的对象\n * @returns {number} 放入的对象,在数组中的索引\n *\n * @member Array\n */\n pushOnce(t: T): number\n\n /**\n *\n * 删除某个数据\n * @param {T} t\n * @returns {boolean} true 有这个数据并且删除成功\n * false 没有这个数据\n */\n zremove(t: T): boolean\n\n /**\n * 将数组克隆到to\n * to的数组长度会和当前数组一致\n *\n * @template T\n * @param {Array} to\n */\n cloneTo(to: Array): void\n\n /**\n * 将数组附加到to中\n *\n * @template T\n * @param {Array} to\n *\n * @member ArrayConstructor\n */\n appendTo(to: Array): void\n\n /**\n * 移除数组index位置的元素, 比slice效率高\n * @param index\n */\n spliceOne(index: number): boolean\n\n /**\n * 随机排序\n */\n randomSort(): void\n\n /**\n * 检查数组中是否含有另外一个object\n * @param obj 与数组同类型的obj | 同类型的数组 | 指定child字段的值 | 指定child字段的数组\n * @param child 比较字段\n */\n contains(obj: T | T[] | {} | {}[], child?: string): boolean\n\n /**\n * 将数组随机插入当前数组中\n * @param arr\n */\n randomInsert(arr: Array): void\n\n /**\n * 随机获取n个元素\n * @param count\n */\n randomGet(count?: number): T[]\n\n /**\n * 随机获取1个元素\n */\n randomOne(): T\n\n /**\n * 随机移除n个元素\n * @param count\n */\n randomRemove(count?: number): T[]\n\n /**\n * 数组移动n位\n * @param n n > 0 右移, n<0 左移\n */\n moveElement(n: number): T[]\n\n /**\n * 两个数组并集\n * @param arr\n */\n union(arr: T[]): T[]\n\n /**\n * 两个数组交集\n * @param arr\n */\n intersect(arr: T[]): T[]\n\n /**\n * 相对于arr的差集\n * @param arr\n */\n difference(arr: T[]): T[]\n\n}\n\n// eslint-disable-next-line no-extend-native\nObject.defineProperties(Array.prototype, {\n cloneTo: {\n value: function (this: T[], b: any[]) {\n b.length = this.length\n const len = this.length\n b.length = len\n for (let i = 0; i < len; i++) {\n b[i] = this[i]\n }\n },\n writable: true\n },\n appendTo: {\n value: function (this: T[], b: any[]) {\n const len = this.length\n for (let i = 0; i < len; i++) {\n b.push(this[i])\n }\n },\n writable: true\n },\n pushOnce: {\n value: function (this: T[], t: T) {\n let idx = this.indexOf(t)\n if (!~idx) {\n idx = this.length\n this.push(t)\n }\n return idx\n },\n writable: true\n },\n zremove: {\n value: function (this: T[], t: T) {\n const idx = this.indexOf(t)\n if (~idx) {\n this.splice(idx, 1)\n return true\n }\n return false\n },\n writable: true\n },\n spliceOne: {\n value: function(index: number): boolean {\n if (index === -1 || index >= this.length) {\n return false\n }\n const len = this.length - 1\n for (let i = index; i < len; i++) {\n this[i] = this[i + 1]\n }\n this.length = len\n return true\n },\n writable: true\n },\n\n randomSort: {\n value: function () {\n for (let j, x, i = this.length; i; j = (Math.random() * i) | 0, x = this[--i], this[i] = this[j], this[j] = x) {}\n },\n writable: true\n },\n randomInsert: {\n value: function (arr: Array) {\n const length = this.length\n arr.forEach(value => {\n this.splice(Math.random() * length, 0, value)\n })\n },\n writable: true\n },\n randomGet: {\n value: function (count = 1): T[] {\n const shuffled: T[] = this.slice(0)\n let i = this.length\n const min = i - count\n let temp\n let index\n if (min < 0) {\n return shuffled\n }\n while (i-- > min) {\n index = Math.floor((i + 1) * Math.random())\n temp = shuffled[index]\n shuffled[index] = shuffled[i]\n shuffled[i] = temp\n }\n return shuffled.slice(min)\n },\n writable: true\n },\n randomOne: {\n value: function (): T|null {\n const results = this.randomGet(1)\n if (results.length > 0) {\n return results[0]\n } else {\n return null\n }\n },\n writable: true\n },\n randomRemove: {\n value: function (count = 1): T[] {\n const result = []\n while (count-- > 0 && this.length > 0) {\n const index = (Math.random() * this.length) | 0\n result.push(...this.splice(index, 1))\n }\n return result\n },\n writable: true\n },\n\n moveElement: {\n value: function (n: number): T[] {\n if (Math.abs(n) > this.length) n = n % this.length\n return this.slice(-n).concat(this.slice(0, -n))\n },\n writable: true\n },\n\n union: {\n value: function (this: T[], b: any[]): T[] {\n const a = this.concat(b)\n return [...new Set(a)]\n },\n writable: true\n },\n\n intersect: {\n value: function (this: T[], b: any[]): T[] {\n const set0 = new Set(b)\n const set1 = new Set(this.filter(x => set0.has(x)))\n return [...set1]\n },\n writable: true\n },\n\n difference: {\n value: function (this: T[], b: any[]): T[] {\n const set0 = new Set(b)\n const set1 = new Set(this.filter(x => !set0.has(x)))\n return [...set1]\n },\n writable: true\n }\n})\n\ninterface Map {\n /**\n * 只针对V为number的Map, 有值的话, 加上V, 没值则直接set\n * V为其他类型时, 直接set\n * @param key\n * @param value\n */\n inc(key: K, value: V): number\n}\n\n// eslint-disable-next-line no-extend-native\nObject.defineProperties(Map.prototype, {\n inc: {\n value: function (key: K, value: V) {\n if (typeof value === 'number') {\n this.set(key, (this.get(key) || 0) + value)\n } else {\n this.set(key, value)\n }\n return this.get(key)\n }\n }\n})\n","import Cookies from 'js-cookie'\n\n// App\nconst sidebarStatusKey = 'sidebar_status'\nexport const getSidebarStatus = () => Cookies.get(sidebarStatusKey)\nexport const setSidebarStatus = (sidebarStatus: string) => Cookies.set(sidebarStatusKey, sidebarStatus)\n\nconst languageKey = 'language'\nexport const getLanguage = () => Cookies.get(languageKey)\nexport const setLanguage = (language: string) => Cookies.set(languageKey, language)\n\nconst sizeKey = 'size'\nexport const getSize = () => Cookies.get(sizeKey)\nexport const setSize = (size: string) => Cookies.set(sizeKey, size)\n\nconst miniKey = 'mini'\nexport const getMini = () => Cookies.get(miniKey)\nexport const setMini = (mini: string) => Cookies.set(miniKey, mini)\n\n// User\nconst tokenKey = 'vue_typescript_admin_access_token'\nexport const getToken = () => Cookies.get(tokenKey)\nexport const setToken = (token: string) => Cookies.set(tokenKey, token)\nexport const removeToken = () => Cookies.remove(tokenKey)\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","export default {\n route: {\n dashboard: 'Dashboard',\n system: 'System',\n adminuser: 'Admin',\n documentation: 'Documentation',\n guide: 'Guide',\n permission: 'Permission',\n pagePermission: 'Page Permission',\n rolePermission: 'Role Permission',\n directivePermission: 'Directive Permission',\n icons: 'Icons',\n components: 'Components',\n tinymce: 'Tinymce',\n markdown: 'Markdown',\n jsonEditor: 'JSON Editor',\n splitPane: 'SplitPane',\n avatarUpload: 'Avatar Upload',\n dropzone: 'Dropzone',\n sticky: 'Sticky',\n countTo: 'Count To',\n componentMixin: 'Mixin',\n backToTop: 'Back To Top',\n draggableDialog: 'Draggable Dialog',\n draggableKanban: 'Draggable Kanban',\n draggableList: 'Draggable List',\n draggableSelect: 'Draggable Select',\n charts: 'Charts',\n barChart: 'Bar Chart',\n lineChart: 'Line Chart',\n mixedChart: 'Mixed Chart',\n example: 'Example',\n nested: 'Nested Routes',\n menu1: 'Menu 1',\n 'menu1-1': 'Menu 1-1',\n 'menu1-2': 'Menu 1-2',\n 'menu1-2-1': 'Menu 1-2-1',\n 'menu1-2-2': 'Menu 1-2-2',\n 'menu1-3': 'Menu 1-3',\n menu2: 'Menu 2',\n table: 'Table',\n dynamicTable: 'Dynamic Table',\n draggableTable: 'Draggable Table',\n inlineEditTable: 'Inline Edit Table',\n complexTable: 'Complex Table',\n tab: 'Tab',\n form: 'Form',\n createArticle: 'Create Article',\n editArticle: 'Edit Article',\n articleList: 'Article List',\n errorPages: 'Error Pages',\n page401: '401',\n page404: '404',\n errorLog: 'Error Log',\n excel: 'Excel',\n exportExcel: 'Export Excel',\n selectExcel: 'Export Selected',\n mergeHeader: 'Merge Header',\n uploadExcel: 'Upload Excel',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: 'Export Zip',\n theme: 'Theme',\n clipboard: 'Clipboard',\n i18n: 'I18n',\n externalLink: 'External Link',\n profile: 'Profile',\n article: 'Article',\n marketing: 'Marketing',\n marketing_coupon: 'Coupon',\n marketing_coupon_info: 'Coupon Info',\n marketing_promo: 'Promo Code',\n marketing_points: 'Points Setting',\n question: 'Question Set',\n question_list: 'Question List',\n question_prepare: 'Question Edit',\n question_setting: 'Question Setting',\n createQuestion: 'Create Question',\n shop: 'Shop Setting',\n shop_list: 'Shop List',\n shop_admin: 'Shop Admins',\n create_shop: 'Create Shop',\n shop_edit: 'Shop Editor',\n game_setting: 'Game Setting',\n game: 'Game',\n game_list: 'Game List',\n game_edit: 'Game Info',\n activity_list: 'Activity List',\n create_activity: 'New Activity',\n edit_activity: 'Edit Activity',\n exam_list: 'Exam List',\n create_exam: 'New Exam',\n edit_exam: 'Edit Exam',\n password: 'Password',\n edit_theme: 'Edit Theme',\n shop_member: 'Member Manage',\n shop_statistics: 'Statistics',\n game_statistics: 'Game Statistics',\n shop_puzzles: 'Custom Puzzles',\n shop_lottery: 'Lottery Setting',\n shop_share: 'Share Setting',\n shop_mail: 'Mails',\n create_mail: 'New Mail',\n edit_mail: 'Edit Mail',\n shop_announce: 'Announce',\n create_announce: 'New Announce',\n edit_announce: 'Edit Announce'\n },\n navbar: {\n logOut: 'Log Out',\n dashboard: 'Dashboard',\n github: 'Github',\n theme: 'Theme',\n size: 'Global Size',\n profile: 'Profile',\n password: 'Password'\n },\n login: {\n title: 'Login Form',\n logIn: 'Login',\n username: 'Username',\n password: 'Password',\n any: 'any',\n thirdparty: 'Or connect with',\n thirdpartyTips: 'Can not be simulated on local, so please combine you own business simulation! ! !'\n },\n documentation: {\n documentation: 'Documentation',\n github: 'Github Repository'\n },\n permission: {\n createRole: 'New Role',\n editPermission: 'Edit',\n roles: 'Your roles',\n switchRoles: 'Switch roles',\n tips: 'In some cases, using v-permission will have no effect. For example: Element-UI el-tab or el-table-column and other scenes that dynamically render dom. You can only do this with v-if.',\n delete: 'Delete',\n confirm: 'Confirm',\n cancel: 'Cancel'\n },\n guide: {\n description: 'The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ',\n button: 'Show Guide'\n },\n components: {\n documentation: 'Documentation',\n tinymceTips: 'Rich text is a core feature of the management backend, but at the same time it is a place with lots of pits. In the process of selecting rich texts, I also took a lot of detours. The common rich texts on the market have been basically used, and I finally chose Tinymce. See the more detailed rich text comparison and introduction.',\n stickyTips: 'when the page is scrolled to the preset position will be sticky on the top.',\n backToTopTips1: 'When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner',\n backToTopTips2: 'You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally',\n imageUploadTips: 'Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.',\n changeLanguageTips: 'Switch Language Success'\n },\n table: {\n dynamicTips1: 'Fixed header, sorted by header order',\n dynamicTips2: 'Not fixed header, sorted by click order',\n dragTips1: 'The default order',\n dragTips2: 'The after dragging order',\n title: 'Title',\n importance: 'Importance',\n type: 'Type',\n remark: 'Remark',\n search: 'Search',\n add: 'Add',\n export: 'Export',\n reviewer: 'Reviewer',\n id: 'ID',\n date: 'Date',\n author: 'Author',\n readings: 'Readings',\n status: 'Status',\n actions: 'Actions',\n edit: 'Edit',\n publish: 'Publish',\n draft: 'Draft',\n delete: 'Delete',\n cancel: 'Cancel',\n confirm: 'Confirm'\n },\n example: {\n warning: 'Creating and editing pages cannot be cached by keep-alive because keep-alive\\'s \\'include\\' currently does not support caching based on routes, so now it\\'s cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or don\\'t use keep-alive\\'s \\'include\\' to cache all pages directly. See details'\n },\n errorLog: {\n tips: 'Please click the bug icon in the upper right corner',\n description: 'Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.',\n documentation: 'Document introduction'\n },\n excel: {\n export: 'Export',\n selectedExport: 'Export Selected Items',\n placeholder: 'Please enter the file name (default excel-list)'\n },\n zip: {\n export: 'Export',\n placeholder: 'Please enter the file name (default file)'\n },\n pdf: {\n tips: 'Here we use window.print() to implement the feature of downloading PDF.'\n },\n theme: {\n change: 'Change Theme',\n documentation: 'Theme documentation',\n tips: 'Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.'\n },\n tagsView: {\n refresh: 'Refresh',\n close: 'Close',\n closeOthers: 'Close Others',\n closeAll: 'Close All'\n },\n settings: {\n title: 'Page style setting',\n theme: 'Theme Color',\n showTagsView: 'Open Tags-View',\n showSidebarLogo: 'Sidebar Logo',\n fixedHeader: 'Fixed Header',\n sidebarTextTheme: 'Sidebar Text Theme'\n },\n admin: {\n addAdmin: 'New Admin',\n editAdmin: 'Edit Admin'\n },\n article: {\n add: 'New Article'\n },\n marketing: {\n\n },\n main: {\n shop: 'shop'\n }\n}\n","export default {\n route: {\n dashboard: '首页',\n documentation: '文档',\n system: '系统',\n adminuser: '管理员',\n guide: '引导页',\n permission: '权限管理',\n rolePermission: '角色权限',\n pagePermission: '页面权限',\n directivePermission: '指令权限',\n icons: '图标',\n components: '组件',\n tinymce: '富文本编辑器',\n markdown: 'Markdown',\n jsonEditor: 'JSON 编辑器',\n splitPane: 'Splitpane',\n avatarUpload: '头像上传',\n dropzone: 'Dropzone',\n sticky: 'Sticky',\n countTo: 'Count To',\n componentMixin: '小组件',\n backToTop: '返回顶部',\n draggableDialog: '可拖拽对话框',\n draggableKanban: '可拖拽看板',\n draggableList: '可拖拽列表',\n draggableSelect: '可拖拽选择',\n charts: '图表',\n barChart: '柱状图表',\n lineChart: '折线图',\n mixedChart: '混合图表',\n example: '综合实例',\n nested: '路由嵌套',\n menu1: '菜单 1',\n 'menu1-1': '菜单 1-1',\n 'menu1-2': '菜单 1-2',\n 'menu1-2-1': '菜单 1-2-1',\n 'menu1-2-2': '菜单 1-2-2',\n 'menu1-3': '菜单 1-3',\n menu2: '菜单 2',\n table: '表格',\n dynamicTable: '动态表格',\n draggableTable: '可拖拽表格',\n inlineEditTable: '表格内编辑',\n complexTable: '综合表格',\n tab: '分栏',\n form: '表单',\n createArticle: '创建文章',\n editArticle: '编辑文章',\n articleList: '文章列表',\n errorPages: '错误页面',\n page401: '401',\n page404: '404',\n errorLog: '错误日志',\n excel: 'Excel',\n exportExcel: '导出 Excel',\n selectExcel: '导出 已选择项',\n mergeHeader: '导出 多级表头',\n uploadExcel: '上传 Excel',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: '导出 Zip',\n theme: '换肤',\n clipboard: '粘贴板',\n i18n: '国际化',\n externalLink: '外链',\n profile: '个人中心',\n article: '资讯管理',\n marketing: '营销管理',\n marketing_coupon: '优惠券设置',\n marketing_coupon_info: '编辑优惠券',\n marketing_promo: '优惠码设置',\n marketing_points: '积分设置',\n question: '题库管理',\n question_list: '题目列表',\n question_prepare: '题目编辑',\n question_setting: '题库设置',\n createQuestion: '创建题目',\n shop: '店铺设置',\n shop_list: '店铺列表',\n shop_admin: '店铺管理员',\n create_shop: '创建店铺',\n shop_edit: '编辑店铺',\n game_setting: '游戏设置',\n game: '游戏信息',\n game_list: '游戏列表',\n game_edit: '编辑游戏',\n activity_list: '活动列表',\n create_activity: '新建活动',\n edit_activity: '编辑活动',\n exam_list: '挑战列表',\n create_exam: '新建挑战',\n edit_exam: '编辑挑战',\n password: '修改密码',\n edit_theme: '订制游戏主题',\n shop_member: '成员管理',\n shop_statistics: '统计',\n game_statistics: '游戏数据',\n shop_puzzles: '自定义题库',\n shop_lottery: '抽奖转盘',\n shop_share: '分享设置',\n shop_mail: '邮件',\n create_mail: '新邮件',\n edit_mail: '编辑邮件',\n shop_announce: '公告',\n create_announce: '新建公告',\n edit_announce: '编辑公告'\n },\n navbar: {\n logOut: '退出登录',\n dashboard: '首页',\n github: '项目地址',\n theme: '换肤',\n size: '布局大小',\n profile: '个人信息',\n password: '修改密码'\n },\n login: {\n title: '系统登录',\n logIn: '登录',\n username: '账号',\n password: '密码',\n any: '随便填',\n thirdparty: '第三方登录',\n thirdpartyTips: '本地不能模拟,请结合自己业务进行模拟!!!'\n },\n documentation: {\n documentation: '文档',\n github: 'Github 地址'\n },\n permission: {\n createRole: '新增角色',\n editPermission: '编辑权限',\n roles: '你的权限',\n switchRoles: '切换权限',\n tips: '在某些情况下,不适合使用 v-permission。例如:Element-UI 的 el-tab 或 el-table-column 以及其它动态渲染 dom 的场景。你只能通过手动设置 v-if 来实现。',\n delete: '删除',\n confirm: '确定',\n cancel: '取消'\n },\n guide: {\n description: '引导页对于一些第一次进入项目的人很有用,你可以简单介绍下项目的功能。本 Demo 是基于',\n button: '打开引导'\n },\n components: {\n documentation: '文档',\n tinymceTips: '富文本是管理后台一个核心的功能,但同时又是一个有很多坑的地方。在选择富文本的过程中我也走了不少的弯路,市面上常见的富文本都基本用过了,最终权衡了一下选择了Tinymce。更详细的富文本比较和介绍见',\n stickyTips: '当页面滚动到预设的位置会吸附在顶部',\n backToTopTips1: '页面滚动到指定位置会在右下角出现返回顶部按钮',\n backToTopTips2: '可自定义按钮的样式、show/hide、出现的高度、返回的位置 如需文字提示,可在外部使用Element的el-tooltip元素',\n imageUploadTips: '由于我在使用时它只有vue@1版本,而且和mockjs不兼容,所以自己改造了一下,如果大家要使用的话,优先还是使用官方版本。',\n changeLanguageTips: '切换语言成功'\n },\n table: {\n dynamicTips1: '固定表头, 按照表头顺序排序',\n dynamicTips2: '不固定表头, 按照点击顺序排序',\n dragTips1: '默认顺序',\n dragTips2: '拖拽后顺序',\n title: '标题',\n importance: '重要性',\n type: '类型',\n remark: '点评',\n search: '搜索',\n add: '添加',\n export: '导出',\n reviewer: '审核人',\n id: '序号',\n date: '时间',\n author: '作者',\n readings: '阅读数',\n status: '状态',\n actions: '操作',\n edit: '编辑',\n publish: '发布',\n draft: '草稿',\n delete: '删除',\n cancel: '取 消',\n confirm: '确 定'\n },\n example: {\n warning: '创建和编辑页面是不能被 keep-alive 缓存的,因为keep-alive 的 include 目前不支持根据路由来缓存,所以目前都是基于 component name 来进行缓存的。如果你想类似的实现缓存效果,可以使用 localStorage 等浏览器缓存方案。或者不要使用 keep-alive 的 include,直接缓存所有页面。详情见'\n },\n errorLog: {\n tips: '请点击右上角bug小图标',\n description: '现在的管理后台基本都是spa的形式了,它增强了用户体验,但同时也会增加页面出问题的可能性,可能一个小小的疏忽就导致整个页面的死锁。好在 Vue 官网提供了一个方法来捕获处理异常,你可以在其中进行错误处理或者异常上报。',\n documentation: '文档介绍'\n },\n excel: {\n export: '导出',\n selectedExport: '导出已选择项',\n placeholder: '请输入文件名(默认excel-list)'\n },\n zip: {\n export: '导出',\n placeholder: '请输入文件名(默认file)'\n },\n pdf: {\n tips: '这里使用 window.print() 来实现下载pdf的功能'\n },\n theme: {\n change: '换肤',\n documentation: '换肤文档',\n tips: 'Tips: 它区别于 navbar 上的 theme-pick, 是两种不同的换肤方法,各自有不同的应用场景,具体请参考文档。'\n },\n tagsView: {\n refresh: '刷新',\n close: '关闭',\n closeOthers: '关闭其它',\n closeAll: '关闭所有'\n },\n settings: {\n title: '系统布局配置',\n theme: '主题色',\n showTagsView: '显示 Tags-View',\n showSidebarLogo: '显示侧边栏 Logo',\n fixedHeader: '固定 Header',\n sidebarTextTheme: '侧边栏文字主题色'\n },\n admin: {\n addAdmin: '新增',\n editAdmin: '编辑'\n },\n article: {\n add: '添加'\n },\n main: {\n shop: '店铺'\n }\n}\n","export default {\n route: {\n dashboard: 'Panel de control',\n documentation: 'Documentación',\n guide: 'Guía',\n permission: 'Permisos',\n rolePermission: 'Permisos de rol',\n pagePermission: 'Permisos de la página',\n directivePermission: 'Permisos de la directiva',\n icons: 'Iconos',\n components: 'Componentes',\n tinymce: 'Tinymce',\n markdown: 'Markdown',\n jsonEditor: 'Editor JSON',\n splitPane: 'Panel dividido',\n avatarUpload: 'Subir avatar',\n dropzone: 'Subir ficheros',\n sticky: 'Sticky',\n countTo: 'Count To',\n componentMixin: 'Mixin',\n backToTop: 'Ir arriba',\n draggableDialog: 'Draggable Dialog',\n draggableKanban: 'Draggable Kanban',\n draggableList: 'Draggable List',\n draggableSelect: 'Draggable Select',\n charts: 'Gráficos',\n barChart: 'Bar Chart',\n lineChart: 'Gráfico de líneas',\n mixedChart: 'Mixed Chart',\n example: 'Ejemplo',\n nested: 'Rutas anidadass',\n menu1: 'Menu 1',\n 'menu1-1': 'Menu 1-1',\n 'menu1-2': 'Menu 1-2',\n 'menu1-2-1': 'Menu 1-2-1',\n 'menu1-2-2': 'Menu 1-2-2',\n 'menu1-3': 'Menu 1-3',\n menu2: 'Menu 2',\n table: 'Tabla',\n dynamicTable: 'Tabla dinámica',\n draggableTable: 'Arrastrar tabla',\n inlineEditTable: 'Editor',\n complexTable: 'Complex Table',\n tab: 'Pestaña',\n form: 'Formulario',\n createArticle: 'Crear artículo',\n editArticle: 'Editar artículo',\n articleList: 'Listado de artículos',\n errorPages: 'Páginas de error',\n page401: '401',\n page404: '404',\n errorLog: 'Registro de errores',\n excel: 'Excel',\n exportExcel: 'Exportar a Excel',\n selectExcel: 'Export seleccionado',\n mergeHeader: 'Merge Header',\n uploadExcel: 'Subir Excel',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: 'Exportar a Zip',\n theme: 'Tema',\n clipboard: 'Clipboard',\n i18n: 'I18n',\n externalLink: 'Enlace externo',\n profile: 'Profile'\n },\n navbar: {\n logOut: 'Salir',\n dashboard: 'Panel de control',\n github: 'Github',\n theme: 'Tema',\n size: 'Tamaño global',\n profile: 'Profile'\n },\n login: {\n title: 'Formulario de acceso',\n logIn: 'Acceso',\n username: 'Usuario',\n password: 'Contraseña',\n any: 'nada',\n thirdparty: 'Conectar con',\n thirdpartyTips: 'No se puede simular en local, así que combine su propia simulación de negocios. ! !'\n },\n documentation: {\n documentation: 'Documentación',\n github: 'Repositorio Github'\n },\n permission: {\n createRole: 'Nuevo rol',\n editPermission: 'Permiso de edición',\n roles: 'Tus permisos',\n switchRoles: 'Cambiar permisos',\n tips: 'In some cases it is not suitable to use v-permission, such as element Tab component or el-table-column and other asynchronous rendering dom cases which can only be achieved by manually setting the v-if.',\n delete: 'Borrar',\n confirm: 'Confirmar',\n cancel: 'Cancelar'\n },\n guide: {\n description: 'The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ',\n button: 'Ver guía'\n },\n components: {\n documentation: 'Documentación',\n tinymceTips: 'Rich text editor is a core part of management system, but at the same time is a place with lots of problems. In the process of selecting rich texts, I also walked a lot of detours. The common rich text editors in the market are basically used, and the finally chose Tinymce. See documentation for more detailed rich text editor comparisons and introductions.',\n stickyTips: 'when the page is scrolled to the preset position will be sticky on the top.',\n backToTopTips1: 'When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner',\n backToTopTips2: 'You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally',\n imageUploadTips: 'Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.',\n changeLanguageTips: 'Cambiar de idioma correctamente'\n },\n table: {\n dynamicTips1: 'Fixed header, sorted by header order',\n dynamicTips2: 'Not fixed header, sorted by click order',\n dragTips1: 'Orden por defecto',\n dragTips2: 'The after dragging order',\n title: 'Título',\n importance: 'Importancia',\n type: 'Tipo',\n remark: 'Remark',\n search: 'Buscar',\n add: 'Añadir',\n export: 'Exportar',\n reviewer: 'Reviewer',\n id: 'ID',\n date: 'Fecha',\n author: 'Autor',\n readings: 'Lector',\n status: 'Estado',\n actions: 'Acciones',\n edit: 'Editar',\n publish: 'Publicar',\n draft: 'Draft',\n delete: 'Eliminar',\n cancel: 'Cancelar',\n confirm: 'Confirmar'\n },\n example: {\n warning: 'Creating and editing pages cannot be cached by keep-alive because keep-alive include does not currently support caching based on routes, so it is currently cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or do not use keep-alive include to cache all pages directly. See details'\n },\n errorLog: {\n tips: 'Please click the bug icon in the upper right corner',\n description: 'Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.',\n documentation: 'Documento de introducción'\n },\n excel: {\n export: 'Exportar',\n selectedExport: 'Exportar seleccionados',\n placeholder: 'Por favor escribe un nombre de fichero'\n },\n zip: {\n export: 'Exportar',\n placeholder: 'Por favor escribe un nombre de fichero'\n },\n pdf: {\n tips: 'Here we use window.print() to implement the feature of downloading PDF.'\n },\n theme: {\n change: 'Cambiar tema',\n documentation: 'Documentación del tema',\n tips: 'Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.'\n },\n tagsView: {\n refresh: 'Actualizar',\n close: 'Cerrar',\n closeOthers: 'Cerrar otros',\n closeAll: 'Cerrar todos'\n },\n settings: {\n title: 'Page style setting',\n theme: 'Theme Color',\n showTagsView: 'Show Tags-View',\n showSidebarLogo: 'Show Sidebar Logo',\n fixedHeader: 'Fixed Header',\n sidebarTextTheme: 'Sidebar Text Theme'\n }\n}\n","export default {\n route: {\n dashboard: 'トップ',\n system: 'システム',\n documentation: 'ドキュメント',\n guide: 'ガイド',\n permission: '権限',\n rolePermission: '権限ロール',\n pagePermission: 'ページ権限',\n directivePermission: 'ディレクティブ権限',\n icons: 'アイコン',\n components: 'コンポーネント',\n tinymce: 'TinyMCE',\n markdown: 'Markdown',\n jsonEditor: 'JSON Editor',\n splitPane: 'パネル',\n avatarUpload: 'アバターアップロード',\n dropzone: 'Dropzone',\n sticky: 'Sticky',\n countTo: 'Count To',\n componentMixin: 'コンポーネントMixin',\n backToTop: 'Back To Top',\n draggableDialog: 'Draggable Dialog',\n draggableKanban: 'Draggable 看板',\n draggableList: 'Draggable List',\n draggableSelect: 'Draggable Select',\n charts: 'チャート',\n barChart: 'Barチャート',\n lineChart: 'Lineチャート',\n mixedChart: 'Mixedチャート',\n example: 'Example',\n nested: 'Nested Routes',\n menu1: 'メニュー1',\n 'menu1-1': 'メニュー 1-1',\n 'menu1-2': 'メニュー 1-2',\n 'menu1-2-1': 'メニュー 1-2-1',\n 'menu1-2-2': 'メニュー 1-2-2',\n 'menu1-3': 'メニュー 1-3',\n menu2: 'メニュー 2',\n table: 'Table',\n dynamicTable: '可変 Table',\n draggableTable: 'Draggable Table',\n inlineEditTable: 'Inline Edit Table',\n complexTable: 'Complex Table',\n tab: 'Tab',\n form: 'フォーム',\n createArticle: '投稿作成',\n editArticle: '投稿編集',\n articleList: '投稿リスト',\n errorPages: 'エラーページ',\n page401: '401',\n page404: '404',\n errorLog: 'エラーログ',\n excel: 'Excel',\n exportExcel: '一括エクスポート',\n selectExcel: '複数選択エクスポート',\n mergeHeader: 'ヘッダーマージ',\n uploadExcel: 'アップロード',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: 'Export Zip',\n theme: 'テーマ変更',\n clipboard: 'Clipboard',\n i18n: '多言語',\n externalLink: '外部リンク',\n profile: 'プロフィール'\n },\n navbar: {\n dashboard: 'トップ',\n github: 'GitHub',\n logOut: 'ログアウト',\n profile: 'プロフィール',\n theme: 'テーマ変更',\n size: '画面サイズ'\n },\n login: {\n title: 'ユーザログイン',\n logIn: 'ログイン',\n username: 'ユーザ名',\n password: 'パスワード',\n any: 'any',\n thirdparty: '外部IDでログイン',\n thirdpartyTips: 'ローカル環境ではログインできません。実装が必要です。'\n },\n documentation: {\n documentation: 'ドキュメント',\n github: 'Github Link'\n },\n permission: {\n createRole: 'ロール追加',\n editPermission: 'ロール変更',\n roles: 'ロール',\n switchRoles: 'ロール切替',\n tips: 'v-permissionは使えない時があります。例えば: Element-UI の el-tab、 el-table-column 及び他の dom。v-ifを使う必要があります。',\n delete: '削除',\n confirm: '確認',\n cancel: 'キャンセル'\n },\n guide: {\n description: 'ガイドは各機能の説明です。',\n button: 'ガイドを見る'\n },\n components: {\n documentation: 'ドキュメント',\n tinymceTips: 'tinymceは管理画面に重要な機能ですが、その同時に落とし穴がありあす。tinymceを使う道のりが大変でした。Tinymceを使う時に各自のプロジェクト状況で判断が必要です。ドキュメントはこちら',\n stickyTips: 'ページの指定位置へスクロールした場合、表示されます。',\n backToTopTips1: 'トップへスクロールが表示されます。',\n backToTopTips2: 'ボタンのスタイルはカスタマイズできます。例えば、show/hide、height、position。 またはElementのel-tooltipを使って、ツールチップを実装できます。',\n imageUploadTips: 'mockjsは使えないため、カスタマイズしています。公式の最新バージョンを使ってください。',\n changeLanguageTips: '言語切り替えの成功'\n },\n table: {\n dynamicTips1: '先頭は固定、最後に追加',\n dynamicTips2: '戦後に追加せず、指定列に追加',\n dragTips1: 'デフォルト順番',\n dragTips2: 'Drag後の順番',\n title: 'タイトル',\n importance: '重要',\n type: 'タイプ',\n remark: '評価',\n search: '検索',\n add: '追加',\n export: 'エクスポート',\n reviewer: 'レビュアー',\n id: '番号',\n date: '日時',\n author: '作成者',\n readings: '閲覧数',\n status: 'ステータス',\n actions: '操作',\n edit: '編集',\n publish: '公開',\n draft: '下書き',\n delete: 'キャンセル',\n cancel: 'キャンセル',\n confirm: '確認'\n },\n example: {\n warning: '新規作成と編集画面は keep-alive を使えないです。keep-alive の include はrouteのキャッシュは使えないです。そのため、component name を使ってキャッシュさせるようにします。このようなキャッシュ機能を作りたい場合,localStorageを使う手があります。もしくは keep-alive の includeを使って、全ページキャッシュする方法はあります。'\n },\n errorLog: {\n tips: '右上のbugアイコンをクリックしてください。',\n description: '管理画面はspaを使う場合が多い、ユーザ体現向上はできますが、想定外エラーが発生する場合があります。Vueはそのエラーハンドリング機能を提供し、エラーレポートができます。',\n documentation: 'ドキュメント'\n },\n excel: {\n export: 'エクスポート',\n selectedExport: 'エクスポート対象を選択してください。',\n placeholder: 'ファイル名を入力してください。'\n },\n zip: {\n export: 'エクスポート',\n placeholder: 'ファイル名を入力してください。'\n },\n pdf: {\n tips: 'window.print() を使ってPDFダウンロードしています。'\n },\n theme: {\n change: 'テーマ切替',\n documentation: 'ドキュメント',\n tips: 'Tips: テーマの切り替え方法はnavbarのtheme-pickと異なります、使い方はドキュメントを確認してください。'\n },\n tagsView: {\n refresh: '更新',\n close: '閉じる',\n closeOthers: 'その他閉じる',\n closeAll: 'すべて閉じる'\n },\n settings: {\n title: 'システムテーマ',\n theme: 'テーマ色',\n showTagsView: 'Tags-View 開く',\n showSidebarLogo: 'Show Sidebar Logo',\n fixedHeader: 'Fixed Header',\n sidebarTextTheme: 'Sidebar Text Theme'\n }\n}\n","export default {\n route: {\n dashboard: '대시보드',\n system: '체계',\n documentation: '문서',\n guide: '가이드',\n permission: '권한',\n rolePermission: '역할 권한',\n pagePermission: '페이지 권한',\n directivePermission: '지시 권한',\n icons: '아이콘',\n components: '구성 요소',\n tinymce: 'TinyMCE',\n markdown: 'Markdown',\n jsonEditor: 'JSON Editor',\n splitPane: '패널',\n avatarUpload: '아바타업로드',\n dropzone: 'Dropzone',\n sticky: 'Sticky',\n countTo: 'Count To',\n componentMixin: '구성 요소 Mixin',\n backToTop: 'Back To Top',\n draggableDialog: '드래그 상자',\n draggableKanban: '드래그 간판',\n draggableList: '드래그 리스트',\n draggableSelect: '드래그 선택',\n charts: '차트',\n barChart: '막대그래프',\n lineChart: '꺽은선그래프',\n mixedChart: '종합차트',\n example: '예시',\n nested: 'Nested Routes',\n menu1: '메뉴1',\n 'menu1-1': '메뉴 1-1',\n 'menu1-2': '메뉴 1-2',\n 'menu1-2-1': '메뉴 1-2-1',\n 'menu1-2-2': '메뉴 1-2-2',\n 'menu1-3': '메뉴 1-3',\n menu2: '메뉴 2',\n table: '표',\n dynamicTable: 'Dynamic 표',\n draggableTable: 'Draggable 표',\n inlineEditTable: 'Inline Edit 표',\n complexTable: 'Complex 표',\n tab: 'Tab',\n form: '형태',\n createArticle: '게시물 작성',\n editArticle: '게시물 편집',\n articleList: '게시물 리스트',\n errorPages: '에러 페이지',\n page401: '401',\n page404: '404',\n errorLog: '에러 로그',\n excel: '엑셀',\n exportExcel: '엑셀 내보내기',\n selectExcel: '엑셀 선택',\n mergeHeader: '헤더 병합',\n uploadExcel: '엑셀 올리기',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: 'Export Zip',\n theme: '테마',\n clipboard: 'Clipboard',\n i18n: '언어',\n externalLink: '외부 링크',\n profile: '프로필'\n },\n navbar: {\n dashboard: '대시보드',\n github: '깃허브',\n logOut: '로그아웃',\n profile: '프로필',\n theme: '테마',\n size: '크기'\n },\n login: {\n title: '타이틀',\n logIn: '로그인',\n username: '이름',\n password: '비밀번호',\n any: 'any',\n thirdparty: '외부 ID로 로그인',\n thirdpartyTips: '로컬 환경에서 로그인 할 수 없습니다.'\n },\n documentation: {\n documentation: '문서',\n github: '깃허브 링크'\n },\n permission: {\n createRole: '역할 추가',\n editPermission: '권한 수정',\n roles: '역할',\n switchRoles: '역할 바꾸기',\n tips: 'v-permission 사용할 때가 있습니다. 예 : Element-UI의 el-tab, el-table-column 및 다른 dom. v-if를 사용해야합니다.',\n delete: '삭제',\n confirm: '확인',\n cancel: '취소'\n },\n guide: {\n description: '각 기능에 대한 설명입니다.',\n button: '버튼'\n },\n components: {\n documentation: '문서',\n tinymceTips: '서식있는 텍스트는 관리 백엔드의 핵심 기능이지만 동시에 문제가 많은 곳입니다. 리치 텍스트를 선택하는 과정에서도 많은 우회가 필요했습니다. 시중에 나와있는 일반적인 서식있는 텍스트는 기본적으로 사용되었으며 마침내 Tinymce를 선택했습니다. 보다 자세한 리치 텍스트 비교 및 소개를 참조하십시오.',\n stickyTips: '페이지의 지정된 위치에 스크롤하면 나타납니다.',\n backToTopTips1: '페이지가 지정된 위치로 스크롤되면 맨 아래 오른쪽 모서리에 맨 위로 이동 단추가 나타납니다.',\n backToTopTips2: '버튼 스타일, 표시 / 숨기기, 모양 높이, 반환 높이를 사용자 정의 할 수 있습니다. 텍스트 프롬프트가 필요한 경우 element-ui el-tooltip 요소를 외부에서 사용할 수 있습니다',\n imageUploadTips: 'vue @ 1 버전 만 사용하고 있었고 현재 mockjs와 호환되지 않기 때문에 직접 수정했으며 사용하려는 경우 공식 버전을 사용하는 것이 좋습니다.',\n changeLanguageTips: '언어 전환 성공'\n },\n table: {\n dynamicTips1: '정렬된 헤더',\n dynamicTips2: '정렬되지 않은 헤더',\n dragTips1: '기본 순서',\n dragTips2: '드래그한 순서',\n title: '타이틀',\n importance: '중요성',\n type: 'Type',\n remark: 'Remark',\n search: '검색',\n add: '추가',\n export: '내보내기',\n reviewer: 'Reviewer',\n id: 'ID',\n date: '날짜',\n author: '글쓴이',\n readings: 'Readings',\n status: '상태',\n actions: 'Actions',\n edit: '수정',\n publish: '게시',\n draft: 'Draft',\n delete: '삭제',\n cancel: '취소',\n confirm: '확인'\n },\n example: {\n warning: 'keep-alive의 \\'include \\'는 (는) 현재 경로 기반 캐싱을 지원하지 않으므로 구성 요소 이름을 기반으로 캐시되기 때문에 keep-alive로 페이지를 만들고 편집 할 수 없습니다. 비슷한 캐싱 효과를 얻으려면 localStorage와 같은 브라우저 캐싱 구성표를 사용할 수 있습니다. 또는 keep-alive \\' include \\'를 사용하여 모든 페이지를 직접 캐시하지 마십시오. 자세히보다'\n },\n errorLog: {\n tips: '오른쪽 상단에있는 버그 아이콘을 클릭하십시오',\n description: '이제 관리 시스템은 기본적으로 스파의 형태이며 사용자 경험을 향상 시키지만 페이지 문제의 가능성을 증가시킵니다. 작은 태만으로 인해 전체 페이지 교착 상태가 발생할 수 있습니다. 다행히 Vue는 오류를 처리하거나 예외를보고 할 수있는 예외 처리를 포착하는 방법을 제공합니다.',\n documentation: '문서 소개'\n },\n excel: {\n export: '내보내기',\n selectedExport: '선택 항목 내보내기',\n placeholder: '파일 이름을 입력하세요.(기본 엑셀 목록)'\n },\n zip: {\n export: '내보내기',\n placeholder: '파일 이름을 입력하세요.(기본 파일)'\n },\n pdf: {\n tips: '여기서는 window.print ()를 사용하여 PDF 다운로드 기능을 구현합니다.'\n },\n theme: {\n change: '테마 바꾸기',\n documentation: '테마 문서',\n tips: 'Tips: 탐색 모음의 테마 선택과는 다른 응용 프로그램 시나리오가있는 두 가지 다른 스키닝 방법입니다. 자세한 내용은 설명서를 참조하십시오.'\n },\n tagsView: {\n refresh: '새로고침',\n close: '닫기',\n closeOthers: '기타 닫기',\n closeAll: '모두 닫기'\n },\n settings: {\n title: '페이지 스타일 설정',\n theme: '테마 색상',\n showTagsView: 'Tags-View 열기',\n showSidebarLogo: '사이드 메뉴 로고',\n fixedHeader: '헤더 고정',\n sidebarTextTheme: '사이드 메뉴 글꼴 테마'\n }\n}\n","export default {\n route: {\n dashboard: 'Dashboard',\n documentation: 'Documentazione',\n guide: 'Guida',\n permission: 'Permessi',\n pagePermission: 'Pagina permessi',\n rolePermission: 'Permessi ruolo',\n directivePermission: 'Direttive Permessi',\n icons: 'Icone',\n components: 'Componenti',\n tinymce: 'Tinymce',\n markdown: 'Markdown',\n jsonEditor: 'Editor JSON',\n splitPane: 'SplitPane',\n avatarUpload: 'Carica Avatar',\n dropzone: 'Dropzone',\n sticky: 'Sticky',\n countTo: 'Conta Fino',\n componentMixin: 'Mixin',\n backToTop: 'Torna su',\n draggableDialog: 'Dialogo Trascinabile',\n draggableKanban: 'Kanban Trascinabile',\n draggableList: 'Lista Trascinabile',\n draggableSelect: 'Select Trascinabile',\n charts: 'Grafici',\n barChart: 'Grafico a Barre',\n lineChart: 'Grafico a Linee',\n mixedChart: 'Grafico Misto',\n example: 'Esempio',\n nested: 'Menu Nidificato',\n menu1: 'Menu 1',\n 'menu1-1': 'Menu 1-1',\n 'menu1-2': 'Menu 1-2',\n 'menu1-2-1': 'Menu 1-2-1',\n 'menu1-2-2': 'Menu 1-2-2',\n 'menu1-3': 'Menu 1-3',\n menu2: 'Menu 2',\n table: 'Tabella',\n dynamicTable: 'Tabella Dinamica',\n draggableTable: 'Tabella Trascinabile',\n inlineEditTable: 'Tabella Modifica in Linea',\n complexTable: 'Tabella Complessa',\n tab: 'Tab',\n form: 'Form',\n createArticle: 'Crea Articolo',\n editArticle: 'Modifica Articolo',\n articleList: 'Lista Articoli',\n errorPages: 'Pagine di Errore',\n page401: '401',\n page404: '404',\n errorLog: 'Registro Errori',\n excel: 'Excel',\n exportExcel: 'Esporta Excel',\n selectExcel: 'Esporta Selezionato',\n mergeHeader: 'Unisci Intestazione',\n uploadExcel: 'Carica Excel',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: 'Esporta Zip',\n theme: 'Tema',\n clipboard: 'Appunti',\n i18n: 'I18n',\n externalLink: 'Link Esterno',\n profile: 'Profilo'\n },\n navbar: {\n logOut: 'Esci',\n dashboard: 'Dashboard',\n github: 'Github',\n theme: 'Tema',\n size: 'Grandezza Globale',\n profile: 'Profilo'\n },\n login: {\n title: 'Accesso',\n logIn: 'Accedi',\n username: 'Utente',\n password: 'Password',\n any: 'qualunque',\n thirdparty: 'Connetti con',\n thirdpartyTips: 'Non può essere simulato in locale, quindi combina la tua simulazione di business, per favore!!!'\n },\n documentation: {\n documentation: 'Documentazione',\n github: 'Github Repository'\n },\n permission: {\n createRole: 'Nuovo Ruolo',\n editPermission: 'Modifica',\n roles: 'I tuoi ruoli',\n switchRoles: 'Cambia ruoli',\n tips: 'In alcuni casi usare v-permission non ha effetto. Per esempio: Element-UI el-tab o el-table-column e altri componenti che renderizzano il dom dinamicamente. Puoi farlo solo con v-if.',\n delete: 'Elimina',\n confirm: 'Conferma',\n cancel: 'Annulla'\n },\n guide: {\n description: 'La pagina Guida è utile per alcune persone che entrano nel progetto per la prima volta. Puoi introdurre brevemente le funzionalità del progetto. Il demo è basato su ',\n button: 'Mostra guida'\n },\n components: {\n documentation: 'Documentazione',\n stickyTips: 'when the page is scrolled to the preset position will be sticky on the top.',\n tinymceTips: 'Il testo ricco è una funzionalità fondamentale della gestione backend, ma allo stesso tempo è un posto molto scosceso. Nel processo di selezionare un Rich Text editor o fatto molte ricerche. I Rich Text editor comuni sul mercato sono molto usati, per questo alla fine ho scelto Tinymce. Vedi la più dettagliata comparazione e introduzione al Rich text editor.',\n backToTopTips1: 'Quando la pagina viene spostata alla posizione specificata, il bottone \"Torna Su\" compare nell\\'angolo in basso a destra',\n backToTopTips2: 'Puoi personalizzare lo stile dei bottoni, mostra / nascondi, altezza di apparizione, altezza del ritorno a capo. Se hai bisogno di un prompt di testo, puoi utilizzare gli elementi element-ui el-tooltip esternamente',\n imageUploadTips: 'Da quando usavo la verione 1 di Vue che non è compatibile con mockjs, la ho modificata io stesst, e se la userai, è meglio utilizzare versioni ufficiali.',\n changeLanguageTips: 'Cambio lingua riuscito'\n },\n table: {\n dynamicTips1: 'Intestazione Fissa, ordinato dall\\'ordine delle intestazioni',\n dynamicTips2: 'Intestazione non fissa, ordinato dall\\'ordine dei click',\n dragTips1: 'Ordine di default',\n dragTips2: 'Ordine post trascinamento',\n title: 'Titolo',\n importance: 'Importanza',\n type: 'Tipo',\n remark: 'Osservazione',\n search: 'Ricerca',\n add: 'Aggiungi',\n export: 'Esporta',\n reviewer: 'Recensore',\n id: 'ID',\n date: 'Data',\n author: 'Autore',\n readings: 'Lettori',\n status: 'Status',\n actions: 'Azioni',\n edit: 'Modifica',\n publish: 'Pubblica',\n draft: 'Bozza',\n delete: 'Elimina',\n cancel: 'Annulla',\n confirm: 'Conferma'\n },\n example: {\n warning: 'Creare e modificare pagine non può essere tenuto in cache da keep-alive, perchè l\\'include di keep-alive attualmente non supporta la cache basata sugli indirizzi, per questo ora viene utilizzata la cache basandosi sul nome del componente. Se vuoi utilizzare uno schema di caching basato sul browser come localStorage. O non usare l\\'include di keep-alive per mettere le pagine in cache direttamente. Vedi dettagli'\n },\n errorLog: {\n tips: 'Per favore clicca l\\'icona dell\\'insetto nell\\'angolo in alto a sinistra',\n description: 'Ora il sistema di gestione è fondamentalmente il form della spa, aumenta l\\'esperienza utente, ma incrementa anche le possibilità di problemi nelle pagine, una piccola negligenza può portare al blocco della pagina. Fortunatamente Vue offre un modo di catturare le eccezioni, dove puoi manipolare gli errori o riportare un\\'eccezione.',\n documentation: 'Introduzione documentazione'\n },\n excel: {\n export: 'Esporta',\n selectedExport: 'Esporta Elementi Selezionati',\n placeholder: 'Per favore inserisci il nome del file(default: excel-list)'\n },\n zip: {\n export: 'Esporta',\n placeholder: 'Per favore inserisci il nome del file(default: file)'\n },\n pdf: {\n tips: 'Qui usiamo window.print() per implementare la funzionalità del download PDF.'\n },\n theme: {\n change: 'Cambia Tema',\n documentation: 'Documentazione Tema',\n tips: 'Consiglio: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.'\n },\n tagsView: {\n refresh: 'Ricarica',\n close: 'Chiudi',\n closeOthers: 'Chiudi Altri',\n closeAll: 'Chiudi Tutto'\n },\n settings: {\n title: 'Impostazione Stile Pagina',\n theme: 'Colore Tema',\n showTagsView: 'Apri Vista Tag',\n showSidebarLogo: 'Logo Barra Laterale',\n fixedHeader: 'Intestazione Fissa',\n sidebarTextTheme: 'Tema Testo Barra Laterale'\n },\n toasts: {\n switchLanguage: 'Cambio lingua effettuato'\n }\n}\n","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\n\nimport { getLanguage } from '@/utils/cookies'\n\n// element-ui built-in lang\nimport elementEnLocale from 'element-ui/lib/locale/lang/en'\nimport elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'\nimport elementEsLocale from 'element-ui/lib/locale/lang/es'\nimport elementJaLocale from 'element-ui/lib/locale/lang/ja'\nimport elementKoLocale from 'element-ui/lib/locale/lang/ko'\n\n// User defined lang\nimport enLocale from './en'\nimport zhLocale from './zh'\nimport esLocale from './es'\nimport jaLocale from './ja'\nimport koLocale from './ko'\nimport itLocale from './it'\n\nVue.use(VueI18n)\n\nconst messages = {\n en: {\n ...enLocale,\n ...elementEnLocale\n },\n zh: {\n ...zhLocale,\n ...elementZhLocale\n },\n es: {\n ...esLocale,\n ...elementEsLocale\n },\n ja: {\n ...jaLocale,\n ...elementJaLocale\n },\n ko: {\n ...koLocale,\n ...elementKoLocale\n },\n it: {\n ...itLocale\n }\n}\n\nexport const getLocale = () => {\n const cookieLanguage = getLanguage()\n if (cookieLanguage) {\n document.documentElement.lang = cookieLanguage\n return cookieLanguage\n }\n\n const language = navigator.language.toLowerCase()\n const locales = Object.keys(messages)\n for (const locale of locales) {\n if (language.indexOf(locale) > -1) {\n document.documentElement.lang = locale\n return locale\n }\n }\n\n // Default language is english\n return 'en'\n}\n\nconst i18n = new VueI18n({\n locale: getLocale(),\n messages\n})\n\nexport default i18n\n","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=style&index=0&id=d4c70f86&lang=scss&scoped=true&\"","import {\n Action,\n getModule,\n Module,\n Mutation,\n VuexModule\n} from 'vuex-module-decorators'\nimport store from '@/store'\nimport elementVariables from '@/styles/element-variables.scss'\nimport defaultSettings from '@/settings'\n\nexport interface ISettingsState {\n theme: string\n fixedHeader: boolean\n showSettings: boolean\n showTagsView: boolean\n showSidebarLogo: boolean\n sidebarTextTheme: boolean\n}\n\n@Module({ dynamic: true, store, name: 'settings' })\nclass Settings extends VuexModule implements ISettingsState {\n public theme = elementVariables.theme\n public fixedHeader = defaultSettings.fixedHeader\n public showSettings = defaultSettings.showSettings\n public showTagsView = defaultSettings.showTagsView\n public showSidebarLogo = defaultSettings.showSidebarLogo\n public sidebarTextTheme = defaultSettings.sidebarTextTheme\n\n @Action\n public ChangeSetting(payload: { key: string, value: any }) {\n this.CHANGE_SETTING(payload)\n }\n\n @Mutation\n private CHANGE_SETTING(payload: { key: string, value: any }) {\n const { key, value } = payload\n if (Object.prototype.hasOwnProperty.call(this, key)) {\n (this as any)[key] = value\n }\n }\n}\n\nexport const SettingsModule = getModule(Settings)\n","import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators'\nimport { RouteConfig } from 'vue-router'\nimport { asyncRoutes, constantRoutes } from '@/router'\nimport store from '@/store'\nimport { checkPermission } from '@/utils/permission'\n\nconst hasRole = (roles: string[], route: RouteConfig) => {\n if (route.meta?.roles) {\n return roles.some(role => route.meta.roles.includes(role))\n } else {\n return false\n }\n}\nconst hasPermission = (route: RouteConfig) => {\n if (route.meta?.permissions) {\n return checkPermission(route.meta?.permissions)\n } else {\n return false\n }\n}\nconst defaultPublic = (route: RouteConfig) => {\n return !route.meta?.roles && !route.meta?.permissions\n}\n\nexport const filterAsyncRoutes = (routes: RouteConfig[], roles: string[]) => {\n const res: RouteConfig[] = []\n routes.forEach(route => {\n const r = { ...route }\n if ((hasRole(roles, r) || hasPermission(r)) || defaultPublic(r)) {\n if (r.children) {\n r.children = filterAsyncRoutes(r.children, roles)\n }\n res.push(r)\n }\n })\n return res\n}\n\nexport interface IPermissionState {\n routes: RouteConfig[]\n dynamicRoutes: RouteConfig[]\n}\n\n@Module({ dynamic: true, store, name: 'permission' })\nclass Permission extends VuexModule implements IPermissionState {\n public routes: RouteConfig[] = []\n public dynamicRoutes: RouteConfig[] = []\n\n @Mutation\n private SET_ROUTES(routes: RouteConfig[]) {\n this.routes = constantRoutes.concat(routes)\n this.dynamicRoutes = routes\n }\n\n @Action\n public GenerateRoutes(roles: string[]) {\n let accessedRoutes\n if (roles.includes('admin')) {\n accessedRoutes = asyncRoutes\n } else {\n accessedRoutes = filterAsyncRoutes(asyncRoutes, roles)\n }\n this.SET_ROUTES(accessedRoutes)\n }\n}\n\nexport const PermissionModule = getModule(Permission)\n","interface ISettings {\n title: string // Overrides the default title\n showSettings: boolean // Controls settings panel display\n showTagsView: boolean // Controls tagsview display\n showSidebarLogo: boolean // Controls siderbar logo display\n fixedHeader: boolean // If true, will fix the header component\n errorLog: string[] // The env to enable the errorlog component, default 'production' only\n sidebarTextTheme: boolean // If true, will change active text color for sidebar based on theme\n devServerPort: number // Port number for webpack-dev-server\n mockServerPort: number // Port number for mock server\n}\n\n// You can customize below settings :)\nconst settings: ISettings = {\n title: '管理后台',\n showSettings: true,\n showTagsView: true,\n fixedHeader: false,\n showSidebarLogo: false,\n errorLog: ['production'],\n sidebarTextTheme: true,\n devServerPort: 9527,\n mockServerPort: 9528\n}\n\nexport default settings\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","import request from '@/utils/request'\nimport { UserModule } from '@/store/modules/user'\nexport interface IAdmin {\n id: string\n username: string\n showname: string\n comment: string\n locked: boolean\n roles: string[]\n sex: string\n avatar: string\n password: string\n department: string\n level: number\n}\n\nexport const defaultAdmin: IAdmin = {\n id: '',\n username: '',\n showname: '',\n comment: '',\n locked: false,\n roles: [],\n level: 1,\n sex: '0',\n password: '',\n avatar: '',\n department: ''\n}\nexport const getAdminInfo = (data: any) =>\n request({\n url: '/api/admin/info',\n method: 'post',\n data\n })\n\nexport const login = (data: any) =>\n request({\n url: '/api/admin/login',\n method: 'post',\n data\n })\n\nexport const logout = () =>\n request({\n url: '/api/admin/logout',\n method: 'post'\n })\n\nexport const saveAdmin = (data: any) =>\n request({\n url: '/api/admin/save',\n method: 'post',\n data\n })\n\nexport const deleteAdmin = (uid: string) => {\n return request({\n url: `/api/admin/${uid}/delete`,\n method: 'post'\n })\n}\n\nexport const changeLocker = (uid: string, status: boolean) => {\n return request({\n url: `/api/admin/${uid}/locker`,\n method: 'post',\n data: { lock: status }\n })\n}\n\nexport const getUsers = (params: any) =>\n request({\n url: '/api/admins',\n method: 'get',\n params\n })\n\nexport const changePass = (params: any) =>\n request({\n url: '/api/admin/passwd',\n method: 'post',\n data: params\n })\n\nexport const changeInfo = (params: any) =>\n request({\n url: '/api/admin/update_info',\n method: 'post',\n data: params\n })\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","import {\n Action,\n getModule,\n Module,\n Mutation,\n VuexModule\n} from 'vuex-module-decorators'\nimport { getAdminInfo, login, logout } from '@/api/admins'\nimport { getToken, removeToken, setToken } from '@/utils/cookies'\nimport store from '@/store'\nimport router, { resetRouter } from '@/router'\nimport { PermissionModule } from '@/store/modules/permission'\nimport { TagsViewModule } from '@/store/modules/tags-view'\n\nexport interface IUserState {\n token: string\n name: string\n avatar: string\n introduction: string\n roles: string[]\n email: string\n permissions: string[][]\n department?: string\n deptname?: string\n level: number\n sex?: string\n}\n\n@Module({ dynamic: true, store, name: 'user' })\nclass User extends VuexModule implements IUserState {\n public token = getToken() || ''\n public name = ''\n public avatar = ''\n public introduction = ''\n public roles: string[] = []\n public permissions: string[][] = []\n public email = ''\n public department = ''\n public deptname = ''\n public level = 999\n public sex = '0'\n\n @Action\n public async Login(userInfo: { username: string, password: string }) {\n let { username, password } = userInfo\n username = username.trim()\n const { data } = await login({ username, password })\n setToken(data.token)\n this.SET_TOKEN(data.token)\n }\n\n @Action\n public ResetToken() {\n removeToken()\n this.SET_TOKEN('')\n this.SET_ROLES([])\n this.SET_PERMISSIONS([])\n }\n\n @Action\n public async GetUserInfo() {\n if (this.token === '') {\n throw Error('GetUserInfo: token is undefined!')\n }\n const { data } = await getAdminInfo({ /* Your params here */ })\n if (!data) {\n throw Error('Verification failed, please Login again.')\n }\n const { roles, showname, avatar, introduction, permissions, department, level, deptname, sex } = data\n // roles must be a non-empty array\n if (!roles || roles.length <= 0) {\n throw Error('GetUserInfo: roles must be a non-null array!')\n }\n this.SET_ROLES(roles)\n this.SET_NAME(showname)\n this.SET_AVATAR(avatar)\n this.SET_INTRODUCTION(introduction)\n this.SET_PERMISSIONS(permissions)\n this.SET_DEPARTMENT(department)\n this.SET_LEVEL(level)\n this.SET_DEPTNAME(deptname)\n this.SET_SEX(sex)\n }\n\n @Action\n public async UpdateInfo(data: any) {\n const { showname, sex, avatar } = data\n this.SET_NAME(showname)\n this.SET_SEX(sex)\n this.SET_AVATAR(avatar)\n }\n\n @Action\n public async ChangeRoles(role: string) {\n // Dynamically modify permissions\n const token = role + '-token'\n this.SET_TOKEN(token)\n setToken(token)\n await this.GetUserInfo()\n resetRouter()\n // Generate dynamic accessible routes based on roles\n PermissionModule.GenerateRoutes(this.roles)\n // Add generated routes\n router.addRoutes(PermissionModule.dynamicRoutes)\n // Reset visited views and cached views\n TagsViewModule.delAllViews()\n }\n\n @Action\n public async LogOut() {\n if (this.token === '') {\n throw Error('LogOut: token is undefined!')\n }\n await logout()\n removeToken()\n this.SET_TOKEN('')\n this.SET_ROLES([])\n this.SET_PERMISSIONS([])\n this.SET_DEPARTMENT('')\n }\n\n @Mutation\n private SET_TOKEN(token: string) {\n this.token = token\n }\n\n @Action\n public async updatePageToken(token: string) {\n this.SET_TOKEN(token)\n }\n\n @Mutation\n private SET_NAME(name: string) {\n this.name = name\n }\n\n @Mutation\n private SET_AVATAR(avatar: string) {\n this.avatar = avatar\n }\n\n @Mutation\n private SET_INTRODUCTION(introduction: string) {\n this.introduction = introduction\n }\n\n @Mutation\n private SET_ROLES(roles: string[]) {\n this.roles = roles\n }\n\n @Mutation\n private SET_DEPARTMENT(department: string) {\n this.department = department\n }\n\n @Mutation\n private SET_DEPTNAME(deptname: string) {\n this.deptname = deptname\n }\n\n @Mutation\n private SET_SEX(sex: string) {\n this.sex = sex\n }\n\n @Mutation\n private SET_LEVEL(level: number) {\n this.level = level\n }\n\n @Mutation\n private SET_PERMISSIONS(permissions: string[]) {\n const results: string[][] = []\n for (const permission of permissions) {\n if (permission === '*') {\n results.push(['*', '*'])\n } else {\n results.push(permission.split(':'))\n }\n }\n this.permissions = results\n }\n}\n\nexport const UserModule = getModule(User)\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators'\nimport { getSidebarStatus, getSize, setSidebarStatus, setLanguage, setSize, setMini, getMini } from '@/utils/cookies'\nimport { getLocale } from '@/lang'\nimport store from '@/store'\n\nexport enum DeviceType {\n Mobile,\n Desktop,\n}\n\nexport interface IAppState {\n device: DeviceType\n sidebar: {\n opened: boolean\n withoutAnimation: boolean\n }\n language: string\n size: string\n mini: number\n}\n\n@Module({ dynamic: true, store, name: 'app' })\nclass App extends VuexModule implements IAppState {\n public sidebar = {\n opened: getSidebarStatus() !== 'closed',\n withoutAnimation: false\n }\n\n public device = DeviceType.Desktop\n public language = getLocale()\n public size = getSize() || 'medium'\n public mini = getMini() ? Number(getMini()) : 0\n\n @Mutation\n private TOGGLE_SIDEBAR(withoutAnimation: boolean) {\n this.sidebar.opened = !this.sidebar.opened\n this.sidebar.withoutAnimation = withoutAnimation\n if (this.sidebar.opened) {\n setSidebarStatus('opened')\n } else {\n setSidebarStatus('closed')\n }\n }\n\n @Mutation\n private CLOSE_SIDEBAR(withoutAnimation: boolean) {\n this.sidebar.opened = false\n this.sidebar.withoutAnimation = withoutAnimation\n setSidebarStatus('closed')\n }\n\n @Mutation\n private TOGGLE_DEVICE(device: DeviceType) {\n this.device = device\n }\n\n @Mutation\n private SET_LANGUAGE(language: string) {\n this.language = language\n setLanguage(this.language)\n }\n\n @Mutation\n private SET_SIZE(size: string) {\n this.size = size\n setSize(this.size)\n }\n\n @Mutation\n private SET_MINI(mini: number) {\n this.mini = mini\n setMini(mini + '')\n }\n\n @Action\n public ToggleSideBar(withoutAnimation: boolean) {\n this.TOGGLE_SIDEBAR(withoutAnimation)\n }\n\n @Action\n public CloseSideBar(withoutAnimation: boolean) {\n this.CLOSE_SIDEBAR(withoutAnimation)\n }\n\n @Action\n public ToggleDevice(device: DeviceType) {\n this.TOGGLE_DEVICE(device)\n }\n\n @Action\n public SetLanguage(language: string) {\n this.SET_LANGUAGE(language)\n }\n\n @Action\n public SetSize(size: string) {\n this.SET_SIZE(size)\n }\n\n @Action\n public SetMini(mini: number) {\n this.SET_MINI(mini)\n if (mini) this.CloseSideBar(false)\n }\n}\n\nexport const AppModule = getModule(App)\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=1a173b7f&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=715ce9d0&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-wrapper\",class:_vm.classObj},[(_vm.classObj.mobile && _vm.sidebar.opened)?_c('div',{staticClass:\"drawer-bg\",on:{\"click\":_vm.handleClickOutside}}):_vm._e(),(_vm.showMenu)?_c('sidebar',{staticClass:\"sidebar-container\"}):_vm._e(),_c('div',{staticClass:\"main-container\",class:{hasTagsView: _vm.showTagsView}},[(_vm.showMenu)?_c('div',{class:{'fixed-header': _vm.fixedHeader}},[_c('navbar'),(_vm.showTagsView)?_c('tags-view'):_vm._e()],1):_vm._e(),_c('app-main'),(_vm.showSettings)?_c('right-panel',[_c('settings')],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"app-main\"},[_c('transition',{attrs:{\"name\":\"fade-transform\",\"mode\":\"out-in\"}},[_c('keep-alive',{attrs:{\"include\":_vm.cachedViews}},[_c('router-view',{key:_vm.key})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { TagsViewModule } from '@/store/modules/tags-view'\n\n@Component({\n name: 'AppMain'\n})\nexport default class extends Vue {\n get cachedViews() {\n return TagsViewModule.cachedViews\n }\n\n get key() {\n return this.$route.path\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppMain.vue?vue&type=template&id=d4c70f86&scoped=true&\"\nimport script from \"./AppMain.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppMain.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppMain.vue?vue&type=style&index=0&id=d4c70f86&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d4c70f86\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"navbar\"},[_c('hamburger',{staticClass:\"hamburger-container\",attrs:{\"id\":\"hamburger-container\",\"is-active\":_vm.sidebar.opened},on:{\"toggle-click\":_vm.toggleSideBar}}),_c('breadcrumb',{staticClass:\"breadcrumb-container\",attrs:{\"id\":\"breadcrumb-container\"}}),_c('div',{staticClass:\"right-menu\"},[(_vm.device!=='mobile')?[_c('header-search',{staticClass:\"right-menu-item\"}),_c('error-log',{staticClass:\"errLog-container right-menu-item hover-effect\"}),_c('screenfull',{staticClass:\"right-menu-item hover-effect\"}),_c('el-tooltip',{attrs:{\"content\":_vm.$t('navbar.size'),\"effect\":\"dark\",\"placement\":\"bottom\"}},[_c('size-select',{staticClass:\"right-menu-item hover-effect\"})],1),_c('lang-select',{staticClass:\"right-menu-item hover-effect\"})]:_vm._e(),_c('el-dropdown',{staticClass:\"avatar-container right-menu-item hover-effect\",attrs:{\"trigger\":\"click\"}},[_c('div',{staticClass:\"avatar-wrapper\"},[_c('img',{staticClass:\"user-avatar\",attrs:{\"src\":_vm.avatar+'?imageView2/1/w/80/h/80'}}),_c('i',{staticClass:\"el-icon-caret-bottom\"})]),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('router-link',{attrs:{\"to\":\"/\"}},[_c('el-dropdown-item',[_vm._v(\" \"+_vm._s(_vm.$t('navbar.dashboard'))+\" \")])],1),_c('router-link',{attrs:{\"to\":\"/profile/\"}},[_c('el-dropdown-item',[_vm._v(\" \"+_vm._s(_vm.$t('navbar.profile'))+\" \")])],1),_c('router-link',{attrs:{\"to\":\"/password\"}},[_c('el-dropdown-item',[_vm._v(\" \"+_vm._s(_vm.$t('navbar.password'))+\" \")])],1),_c('el-dropdown-item',{attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.logout($event)}}},[_c('span',{staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('navbar.logOut'))+\" \")])])],1)],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-breadcrumb',{staticClass:\"app-breadcrumb\",attrs:{\"separator\":\"/\"}},[_c('transition-group',{attrs:{\"name\":\"breadcrumb\"}},_vm._l((_vm.breadcrumbs),function(item,index){return _c('el-breadcrumb-item',{key:item.path},[(item.redirect === 'noredirect' || index === _vm.breadcrumbs.length-1)?_c('span',{staticClass:\"no-redirect\"},[_vm._v(_vm._s(_vm.$t('route.' + item.meta.title)))]):_c('a',{on:{\"click\":function($event){$event.preventDefault();return _vm.handleLink(item)}}},[_vm._v(_vm._s(_vm.$t('route.' + item.meta.title)))])])}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { compile } from 'path-to-regexp'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { RouteRecord, Route } from 'vue-router'\n\n@Component({\n name: 'Breadcrumb'\n})\nexport default class extends Vue {\n private breadcrumbs: RouteRecord[] = []\n\n @Watch('$route')\n private onRouteChange(route: Route) {\n // if you go to the redirect page, do not update the breadcrumbs\n if (route.path.startsWith('/redirect/')) {\n return\n }\n this.getBreadcrumb()\n }\n\n created() {\n this.getBreadcrumb()\n }\n\n private getBreadcrumb() {\n let matched = this.$route.matched.filter((item) => item.meta && item.meta.title)\n const first = matched[0]\n if (!this.isDashboard(first)) {\n matched = [{ path: '/dashboard', meta: { title: 'dashboard' } } as RouteRecord].concat(matched)\n }\n this.breadcrumbs = matched.filter((item) => {\n return item.meta && item.meta.title && item.meta.breadcrumb !== false\n })\n }\n\n private isDashboard(route: RouteRecord) {\n const name = route && route.name\n if (!name) {\n return false\n }\n return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase()\n }\n\n private pathCompile(path: string) {\n // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561\n const { params } = this.$route\n const toPath = compile(path)\n return toPath(params)\n }\n\n private handleLink(item: any) {\n const { redirect, path } = item\n if (redirect) {\n this.$router.push(redirect).catch(err => {\n console.warn(err)\n })\n return\n }\n this.$router.push(this.pathCompile(path)).catch(err => {\n console.warn(err)\n })\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=48aca8f5&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=48aca8f5&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"48aca8f5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.errorLogs.length>0)?_c('div',[_c('el-badge',{staticStyle:{\"line-height\":\"25px\",\"margin-top\":\"-5px\"},attrs:{\"is-dot\":true},nativeOn:{\"click\":function($event){_vm.dialogTableVisible=true}}},[_c('el-button',{staticStyle:{\"padding\":\"8px 10px\"},attrs:{\"size\":\"small\",\"type\":\"danger\"}},[_c('svg-icon',{attrs:{\"name\":\"bug\"}})],1)],1),_c('el-dialog',{attrs:{\"visible\":_vm.dialogTableVisible,\"width\":\"80%\",\"append-to-body\":\"\"},on:{\"update:visible\":function($event){_vm.dialogTableVisible=$event}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('span',{staticStyle:{\"padding-right\":\"10px\"}},[_vm._v(\"Error Log\")]),_c('el-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\",\"icon\":\"el-icon-delete\"},on:{\"click\":_vm.clearAll}},[_vm._v(\" Clear All \")])],1),_c('el-table',{attrs:{\"data\":_vm.errorLogs,\"border\":\"\"}},[_c('el-table-column',{attrs:{\"label\":\"Message\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('div',[_c('span',{staticClass:\"message-title\"},[_vm._v(\"Msg:\")]),_c('el-tag',{attrs:{\"type\":\"danger\"}},[_vm._v(\" \"+_vm._s(row.err.message)+\" \")])],1),_c('br'),_c('div',[_c('span',{staticClass:\"message-title\",staticStyle:{\"padding-right\":\"10px\"}},[_vm._v(\"Info: \")]),_c('el-tag',{attrs:{\"type\":\"warning\"}},[_vm._v(\" \"+_vm._s(row.vm.$vnode.tag)+\" error in \"+_vm._s(row.info)+\" \")])],1),_c('br'),_c('div',[_c('span',{staticClass:\"message-title\",staticStyle:{\"padding-right\":\"16px\"}},[_vm._v(\"Url: \")]),_c('el-tag',{attrs:{\"type\":\"success\"}},[_vm._v(\" \"+_vm._s(row.url)+\" \")])],1)]}}],null,false,3134886942)}),_c('el-table-column',{attrs:{\"label\":\"Stack\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.err.stack)+\" \")]}}],null,false,284746202)})],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators'\nimport store from '@/store'\n\ninterface IErrorLog {\n err: Error\n vm: any\n info: string\n url: string\n}\n\nexport interface IErrorLogState {\n logs: IErrorLog[]\n}\n\n@Module({ dynamic: true, store, name: 'errorLog' })\nclass ErrorLog extends VuexModule implements IErrorLogState {\n public logs: IErrorLog[] = []\n\n @Mutation\n private ADD_ERROR_LOG(log: IErrorLog) {\n this.logs.push(log)\n }\n\n @Mutation\n private CLEAR_ERROR_LOG() {\n this.logs.splice(0)\n }\n\n @Action\n public AddErrorLog(log: IErrorLog) {\n this.ADD_ERROR_LOG(log)\n }\n\n @Action\n public ClearErrorLog() {\n this.CLEAR_ERROR_LOG()\n }\n}\n\nexport const ErrorLogModule = getModule(ErrorLog)\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { ErrorLogModule } from '@/store/modules/error-log'\n\n@Component({\n name: 'ErrorLog'\n})\nexport default class extends Vue {\n private dialogTableVisible = false\n\n get errorLogs() {\n return ErrorLogModule.logs\n }\n\n private clearAll() {\n this.dialogTableVisible = false\n ErrorLogModule.ClearErrorLog()\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=72a28363&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=72a28363&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"72a28363\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[{'is-active': _vm.isActive}],on:{\"click\":_vm.toggleClick}},[_c('svg-icon',{attrs:{\"name\":\"hamburger\",\"width\":\"20\",\"height\":\"20\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\n\n@Component({\n name: 'Hamburger'\n})\nexport default class extends Vue {\n @Prop({ default: false }) private isActive!: boolean\n\n private toggleClick() {\n this.$emit('toggle-click')\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=715ce9d0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=715ce9d0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"715ce9d0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header-search\",class:{'show': _vm.show},attrs:{\"id\":\"header-search\"}},[_c('svg-icon',{staticClass:\"search-icon\",attrs:{\"name\":\"search\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.click($event)}}}),_c('el-select',{ref:\"headerSearchSelect\",staticClass:\"header-search-select\",attrs:{\"remote-method\":_vm.querySearch,\"filterable\":\"\",\"default-first-option\":\"\",\"remote\":\"\",\"placeholder\":\"Search\"},on:{\"change\":_vm.change},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}},_vm._l((_vm.options),function(item){return _c('el-option',{key:item.path,attrs:{\"value\":item,\"label\":item.meta.title.join(' > ')}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport path from 'path'\nimport Fuse from 'fuse.js' // A lightweight fuzzy-search module\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { RouteConfig } from 'vue-router'\nimport { AppModule } from '@/store/modules/app'\nimport { PermissionModule } from '@/store/modules/permission'\nimport i18n from '@/lang' // Internationalization\n\n@Component({\n name: 'HeaderSearch'\n})\nexport default class extends Vue {\n private search = ''\n private show = false\n private options: RouteConfig[] = []\n private searchPool: RouteConfig[] = []\n private fuse?: Fuse\n\n get routes() {\n return PermissionModule.routes\n }\n\n get lang() {\n return AppModule.language\n }\n\n @Watch('lang')\n private onLangChange() {\n this.searchPool = this.generateRoutes(this.routes)\n }\n\n @Watch('routes')\n private onRoutesChange() {\n this.searchPool = this.generateRoutes(this.routes)\n }\n\n @Watch('searchPool')\n private onSearchPoolChange(value: RouteConfig[]) {\n this.initFuse(value)\n }\n\n @Watch('show')\n private onShowChange(value: boolean) {\n if (value) {\n document.body.addEventListener('click', this.close)\n } else {\n document.body.removeEventListener('click', this.close)\n }\n }\n\n mounted() {\n this.searchPool = this.generateRoutes(this.routes)\n }\n\n private click() {\n this.show = !this.show\n if (this.show) {\n this.$refs.headerSearchSelect && (this.$refs.headerSearchSelect as HTMLElement).focus()\n }\n }\n\n private close() {\n this.$refs.headerSearchSelect && (this.$refs.headerSearchSelect as HTMLElement).blur()\n this.options = []\n this.show = false\n }\n\n private change(route: RouteConfig) {\n this.$router.push(route.path).catch(err => {\n console.warn(err)\n })\n this.search = ''\n this.options = []\n this.$nextTick(() => {\n this.show = false\n })\n }\n\n private initFuse(list: RouteConfig[]) {\n this.fuse = new Fuse(list, {\n shouldSort: true,\n threshold: 0.4,\n location: 0,\n distance: 100,\n minMatchCharLength: 1,\n keys: [{\n name: 'title',\n weight: 0.7\n }, {\n name: 'path',\n weight: 0.3\n }]\n })\n }\n\n // Filter out the routes that can be displayed in the sidebar\n // And generate the internationalized title\n private generateRoutes(routes: RouteConfig[], basePath = '/', prefixTitle: string[] = []) {\n let res: RouteConfig[] = []\n\n for (const router of routes) {\n // skip hidden router\n if (router.meta && router.meta.hidden) {\n continue\n }\n\n const data: RouteConfig = {\n path: path.resolve(basePath, router.path),\n meta: {\n title: [...prefixTitle]\n }\n }\n\n if (router.meta && router.meta.title) {\n // generate internationalized title\n const i18ntitle = i18n.t(`route.${router.meta.title}`).toString()\n data.meta.title = [...data.meta.title, i18ntitle]\n if (router.redirect !== 'noRedirect') {\n // only push the routes with title\n // special case: need to exclude parent router without redirect\n res.push(data)\n }\n }\n\n // recursive child routes\n if (router.children) {\n const tempRoutes = this.generateRoutes(router.children, data.path, data.meta.title)\n if (tempRoutes.length >= 1) {\n res = [...res, ...tempRoutes]\n }\n }\n }\n return res\n }\n\n private querySearch(query: string) {\n if (query !== '') {\n if (this.fuse) {\n this.options = this.fuse.search(query).map((result) => result.item)\n }\n } else {\n this.options = []\n }\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ed2ef868&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ed2ef868&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ed2ef868\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"screenfull\"}},[_c('svg-icon',{attrs:{\"name\":_vm.isFullscreen? 'exit-fullscreen': 'fullscreen'},on:{\"click\":_vm.click}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport screenfull from 'screenfull'\nimport { Component, Vue } from 'vue-property-decorator'\n\nconst sf = screenfull\n\n@Component({\n name: 'Screenfull'\n})\nexport default class extends Vue {\n private isFullscreen = false\n\n mounted() {\n if (sf.isEnabled) {\n sf.on('change', this.change)\n }\n }\n\n beforeDestory() {\n if (sf.isEnabled) {\n sf.off('change', this.change)\n }\n }\n\n private change() {\n if (sf.isEnabled) {\n this.isFullscreen = sf.isFullscreen\n }\n }\n\n private click() {\n if (!sf.isEnabled) {\n this.$message({\n message: 'you browser can not work',\n type: 'warning'\n })\n return false\n }\n sf.toggle()\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2bed2e26&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dropdown',{attrs:{\"id\":\"size-select\",\"trigger\":\"click\"},on:{\"command\":_vm.handleSetSize}},[_c('div',[_c('svg-icon',{staticClass:\"size-icon\",attrs:{\"name\":\"size\"}})],1),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},_vm._l((_vm.sizeOptions),function(item){return _c('el-dropdown-item',{key:item.value,attrs:{\"disabled\":_vm.size===item.value,\"command\":item.value}},[_vm._v(\" \"+_vm._s(item.label)+\" \")])}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { AppModule } from '@/store/modules/app'\nimport { TagsViewModule } from '@/store/modules/tags-view'\n\n@Component({\n name: 'SizeSelect'\n})\nexport default class extends Vue {\n private sizeOptions = [\n { label: 'Default', value: 'default' },\n { label: 'Medium', value: 'medium' },\n { label: 'Small', value: 'small' },\n { label: 'Mini', value: 'mini' }\n ]\n\n get size() {\n return AppModule.size\n }\n\n private handleSetSize(size: string) {\n (this as any).$ELEMENT.size = size\n AppModule.SetSize(size)\n this.refreshView()\n this.$message({\n message: 'Switch Size Success',\n type: 'success'\n })\n }\n\n private refreshView() {\n // In order to make the cached page re-rendered\n TagsViewModule.delAllCachedViews()\n const { fullPath } = this.$route\n this.$nextTick(() => {\n this.$router.replace({\n path: '/redirect' + fullPath\n }).catch(err => {\n console.warn(err)\n })\n })\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7035045c&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { AppModule } from '@/store/modules/app'\nimport { UserModule } from '@/store/modules/user'\nimport Breadcrumb from '@/components/Breadcrumb/index.vue'\nimport ErrorLog from '@/components/ErrorLog/index.vue'\nimport Hamburger from '@/components/Hamburger/index.vue'\nimport HeaderSearch from '@/components/HeaderSearch/index.vue'\nimport LangSelect from '@/components/LangSelect/index.vue'\nimport Screenfull from '@/components/Screenfull/index.vue'\nimport SizeSelect from '@/components/SizeSelect/index.vue'\n\n@Component({\n name: 'Navbar',\n components: {\n Breadcrumb,\n ErrorLog,\n Hamburger,\n HeaderSearch,\n LangSelect,\n Screenfull,\n SizeSelect\n }\n})\nexport default class extends Vue {\n get sidebar() {\n return AppModule.sidebar\n }\n\n get device() {\n return AppModule.device.toString()\n }\n\n get avatar() {\n return UserModule.avatar\n }\n\n private toggleSideBar() {\n AppModule.ToggleSideBar(false)\n }\n\n private async logout() {\n await UserModule.LogOut()\n this.$router.push(`/login?redirect=${this.$route.fullPath}`).catch(err => {\n console.warn(err)\n })\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1a173b7f&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1a173b7f&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a173b7f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"drawer-container\"},[_c('div',[_c('h3',{staticClass:\"drawer-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('settings.title'))+\" \")]),_c('div',{staticClass:\"drawer-item\"},[_c('span',[_vm._v(_vm._s(_vm.$t('settings.theme')))]),_c('theme-picker',{staticStyle:{\"float\":\"right\",\"height\":\"26px\",\"margin\":\"-3px 8px 0 0\"},on:{\"change\":_vm.themeChange}})],1),_c('div',{staticClass:\"drawer-item\"},[_c('span',[_vm._v(_vm._s(_vm.$t('settings.showTagsView')))]),_c('el-switch',{staticClass:\"drawer-switch\",model:{value:(_vm.showTagsView),callback:function ($$v) {_vm.showTagsView=$$v},expression:\"showTagsView\"}})],1),_c('div',{staticClass:\"drawer-item\"},[_c('span',[_vm._v(_vm._s(_vm.$t('settings.showSidebarLogo')))]),_c('el-switch',{staticClass:\"drawer-switch\",model:{value:(_vm.showSidebarLogo),callback:function ($$v) {_vm.showSidebarLogo=$$v},expression:\"showSidebarLogo\"}})],1),_c('div',{staticClass:\"drawer-item\"},[_c('span',[_vm._v(_vm._s(_vm.$t('settings.fixedHeader')))]),_c('el-switch',{staticClass:\"drawer-switch\",model:{value:(_vm.fixedHeader),callback:function ($$v) {_vm.fixedHeader=$$v},expression:\"fixedHeader\"}})],1),_c('div',{staticClass:\"drawer-item\"},[_c('span',[_vm._v(_vm._s(_vm.$t('settings.sidebarTextTheme')))]),_c('el-switch',{staticClass:\"drawer-switch\",model:{value:(_vm.sidebarTextTheme),callback:function ($$v) {_vm.sidebarTextTheme=$$v},expression:\"sidebarTextTheme\"}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-color-picker',{staticClass:\"theme-picker\",attrs:{\"predefine\":['#409EFF', '#1890ff', '#304156','#212121','#11a983', '#13c2c2', '#6959CD', '#f5222d'],\"popper-class\":\"theme-picker-dropdown\"},model:{value:(_vm.theme),callback:function ($$v) {_vm.theme=$$v},expression:\"theme\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { SettingsModule } from '@/store/modules/settings'\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst version = require('element-ui/package.json').version // element-ui version from node_modules\nconst ORIGINAL_THEME = '#409EFF' // default color\n\n@Component({\n name: 'ThemePicker'\n})\nexport default class extends Vue {\n private chalk = '' // The content of theme-chalk css\n private theme = ''\n\n get defaultTheme() {\n return SettingsModule.theme\n }\n\n @Watch('defaultTheme', { immediate: true })\n private onDefaultThemeChange(value: string) {\n this.theme = value\n }\n\n @Watch('theme')\n private async onThemeChange(value: string) {\n if (!value) return\n const oldValue = this.chalk ? this.theme : ORIGINAL_THEME\n const themeCluster = this.getThemeCluster(value.replace('#', ''))\n const originalCluster = this.getThemeCluster(oldValue.replace('#', ''))\n const message = this.$message({\n message: ' Compiling the theme',\n customClass: 'theme-message',\n type: 'success',\n duration: 0,\n iconClass: 'el-icon-loading'\n })\n\n if (!this.chalk) {\n const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`\n await this.getCSSString(url, 'chalk')\n }\n\n const getHandler = (variable: string, id: string) => {\n return () => {\n const originalCluster = this.getThemeCluster(ORIGINAL_THEME.replace('#', ''))\n const newStyle = this.updateStyle((this as any)[variable], originalCluster, themeCluster)\n\n let styleTag = document.getElementById(id)\n if (!styleTag) {\n styleTag = document.createElement('style')\n styleTag.setAttribute('id', id)\n document.head.appendChild(styleTag)\n }\n styleTag.innerText = newStyle\n }\n }\n const chalkHandler = getHandler('chalk', 'chalk-style')\n chalkHandler()\n\n let styles: HTMLElement[] = [].slice.call(document.querySelectorAll('style'))\n styles = styles\n .filter(style => {\n const text = style.innerText\n return new RegExp(oldValue, 'i').test(text) && !/Chalk Variables/.test(text)\n })\n styles.forEach(style => {\n const { innerText } = style\n if (typeof innerText !== 'string') return\n style.innerText = this.updateStyle(innerText, originalCluster, themeCluster)\n })\n\n this.$emit('change', value)\n message.close()\n }\n\n private updateStyle(style: string, oldCluster: string[], newCluster: string[]) {\n let newStyle = style\n oldCluster.forEach((color, index) => {\n newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index])\n })\n return newStyle\n }\n\n private getCSSString(url: string, variable: string) {\n return new Promise(resolve => {\n const xhr = new XMLHttpRequest()\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4 && xhr.status === 200) {\n (this as any)[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '')\n resolve()\n }\n }\n xhr.open('GET', url)\n xhr.send()\n })\n }\n\n private getThemeCluster(theme: string) {\n const tintColor = (color: string, tint: number) => {\n let red = parseInt(color.slice(0, 2), 16)\n let green = parseInt(color.slice(2, 4), 16)\n let blue = parseInt(color.slice(4, 6), 16)\n if (tint === 0) { // when primary color is in its rgb space\n return [red, green, blue].join(',')\n } else {\n red += Math.round(tint * (255 - red))\n green += Math.round(tint * (255 - green))\n blue += Math.round(tint * (255 - blue))\n return `#${red.toString(16)}${green.toString(16)}${blue.toString(16)}`\n }\n }\n\n const shadeColor = (color: string, shade: number) => {\n let red = parseInt(color.slice(0, 2), 16)\n let green = parseInt(color.slice(2, 4), 16)\n let blue = parseInt(color.slice(4, 6), 16)\n red = Math.round((1 - shade) * red)\n green = Math.round((1 - shade) * green)\n blue = Math.round((1 - shade) * blue)\n return `#${red.toString(16)}${green.toString(16)}${blue.toString(16)}`\n }\n\n const clusters = [theme]\n for (let i = 0; i <= 9; i++) {\n clusters.push(tintColor(theme, Number((i / 10).toFixed(2))))\n }\n clusters.push(shadeColor(theme, 0.1))\n return clusters\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=70f006ec&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { SettingsModule } from '@/store/modules/settings'\nimport ThemePicker from '@/components/ThemePicker/index.vue'\n\n@Component({\n name: 'Settings',\n components: {\n ThemePicker\n }\n})\nexport default class extends Vue {\n get fixedHeader() {\n return SettingsModule.fixedHeader\n }\n\n set fixedHeader(value) {\n SettingsModule.ChangeSetting({ key: 'fixedHeader', value })\n }\n\n get showTagsView() {\n return SettingsModule.showTagsView\n }\n\n set showTagsView(value) {\n SettingsModule.ChangeSetting({ key: 'showTagsView', value })\n }\n\n get showSidebarLogo() {\n return SettingsModule.showSidebarLogo\n }\n\n set showSidebarLogo(value) {\n SettingsModule.ChangeSetting({ key: 'showSidebarLogo', value })\n }\n\n get sidebarTextTheme() {\n return SettingsModule.sidebarTextTheme\n }\n\n set sidebarTextTheme(value) {\n SettingsModule.ChangeSetting({ key: 'sidebarTextTheme', value })\n }\n\n private themeChange(value: string) {\n SettingsModule.ChangeSetting({ key: 'theme', value })\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f76a8f60&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f76a8f60&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f76a8f60\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{'has-logo': _vm.showLogo}},[(_vm.showLogo)?_c('sidebar-logo',{attrs:{\"collapse\":_vm.isCollapse}}):_vm._e(),_c('el-scrollbar',{attrs:{\"wrap-class\":\"scrollbar-wrapper\"}},[_c('el-menu',{attrs:{\"default-active\":_vm.activeMenu,\"collapse\":_vm.isCollapse,\"background-color\":_vm.variables.menuBg,\"text-color\":_vm.variables.menuText,\"active-text-color\":_vm.menuActiveTextColor,\"unique-opened\":false,\"collapse-transition\":false,\"mode\":\"vertical\"}},_vm._l((_vm.routes),function(route){return _c('sidebar-item',{key:route.path,attrs:{\"item\":route,\"base-path\":route.path,\"is-collapse\":_vm.isCollapse}})}),1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.item.meta || !_vm.item.meta.hidden)?_c('div',{class:[_vm.isCollapse ? 'simple-mode' : 'full-mode', {'first-level': _vm.isFirstLevel}]},[(!_vm.alwaysShowRootMenu && _vm.theOnlyOneChild && !_vm.theOnlyOneChild.children)?[(_vm.theOnlyOneChild.meta)?_c('sidebar-item-link',{attrs:{\"to\":_vm.resolvePath(_vm.theOnlyOneChild.path)}},[_c('el-menu-item',{class:{'submenu-title-noDropdown': _vm.isFirstLevel},attrs:{\"index\":_vm.resolvePath(_vm.theOnlyOneChild.path)}},[(_vm.theOnlyOneChild.meta.icon)?_c('svg-icon',{attrs:{\"name\":_vm.theOnlyOneChild.meta.icon}}):_vm._e(),(_vm.item.meta && _vm.item.meta.elicon)?_c('i',{class:_vm.item.meta.elicon}):_vm._e(),(_vm.theOnlyOneChild.meta.title)?_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.$t('route.' + _vm.theOnlyOneChild.meta.title)))]):_vm._e()],1)],1):_vm._e()]:_c('el-submenu',{attrs:{\"index\":_vm.resolvePath(_vm.item.path),\"popper-append-to-body\":\"\"}},[_c('template',{slot:\"title\"},[(_vm.item.meta && _vm.item.meta.icon)?_c('svg-icon',{attrs:{\"name\":_vm.item.meta.icon}}):_vm._e(),(_vm.item.meta && _vm.item.meta.elicon)?_c('i',{class:_vm.item.meta.elicon}):_vm._e(),(_vm.item.meta && _vm.item.meta.title)?_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.$t('route.' + _vm.item.meta.title)))]):_vm._e()],1),(_vm.item.children)?_vm._l((_vm.item.children),function(child){return _c('sidebar-item',{key:child.path,staticClass:\"nest-menu\",attrs:{\"item\":child,\"is-collapse\":_vm.isCollapse,\"is-first-level\":false,\"base-path\":_vm.resolvePath(child.path)}})}):_vm._e()],2)],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const isValidUsername = (str: string) => ['admin', 'editor'].indexOf(str.trim()) >= 0\n\nexport const isExternal = (path: string) => /^(https?:|mailto:|tel:)/.test(path)\n\nexport const isArray = (arg: any) => {\n if (typeof Array.isArray === 'undefined') {\n return Object.prototype.toString.call(arg) === '[object Array]'\n }\n return Array.isArray(arg)\n}\n\nexport const isValidURL = (url: string) => {\n const reg = /^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$/\n return reg.test(url)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isExternal(_vm.to))?_c('a',{attrs:{\"href\":_vm.to,\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._t(\"default\")],2):_c('router-link',{attrs:{\"to\":_vm.to}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport { isExternal } from '@/utils/validate'\n\n@Component({\n name: 'SidebarItemLink'\n})\nexport default class extends Vue {\n @Prop({ required: true }) private to!: string\n\n private isExternal = isExternal\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItemLink.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItemLink.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SidebarItemLink.vue?vue&type=template&id=0d65696a&\"\nimport script from \"./SidebarItemLink.vue?vue&type=script&lang=ts&\"\nexport * from \"./SidebarItemLink.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport path from 'path'\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport { RouteConfig } from 'vue-router'\nimport { isExternal } from '@/utils/validate'\nimport SidebarItemLink from './SidebarItemLink.vue'\n\n@Component({\n // Set 'name' here to prevent uglifyjs from causing recursive component not work\n // See https://medium.com/haiiro-io/element-component-name-with-vue-class-component-f3b435656561 for detail\n name: 'SidebarItem',\n components: {\n SidebarItemLink\n }\n})\nexport default class extends Vue {\n @Prop({ required: true }) private item!: RouteConfig\n @Prop({ default: false }) private isCollapse!: boolean\n @Prop({ default: true }) private isFirstLevel!: boolean\n @Prop({ default: '' }) private basePath!: string\n\n get alwaysShowRootMenu() {\n if (this.item.meta && this.item.meta.alwaysShow) {\n return true\n }\n return false\n }\n\n get showingChildNumber() {\n if (this.item.children) {\n const showingChildren = this.item.children.filter((item) => {\n if (item.meta && item.meta.hidden) {\n return false\n } else {\n return true\n }\n })\n return showingChildren.length\n }\n return 0\n }\n\n get theOnlyOneChild() {\n if (this.showingChildNumber > 1) {\n return null\n }\n if (this.item.children) {\n for (const child of this.item.children) {\n if (!child.meta || !child.meta.hidden) {\n return child\n }\n }\n }\n // If there is no children, return itself with path removed,\n // because this.basePath already conatins item's path information\n return { ...this.item, path: '' }\n }\n\n private resolvePath(routePath: string) {\n if (isExternal(routePath)) {\n return routePath\n }\n if (isExternal(this.basePath)) {\n return this.basePath\n }\n return path.resolve(this.basePath, routePath)\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SidebarItem.vue?vue&type=template&id=35bc604c&scoped=true&\"\nimport script from \"./SidebarItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./SidebarItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SidebarItem.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./SidebarItem.vue?vue&type=style&index=1&id=35bc604c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35bc604c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sidebar-logo-container\",class:{'collapse': _vm.collapse}},[_c('transition',{attrs:{\"name\":\"sidebarLogoFade\"}},[(_vm.collapse)?_c('router-link',{key:\"collapse\",staticClass:\"sidebar-logo-link\",attrs:{\"to\":\"/\"}},[_c('img',{staticClass:\"sidebar-logo\",attrs:{\"src\":\"favicon.ico\"}})]):_c('router-link',{key:\"expand\",staticClass:\"sidebar-logo-link\",attrs:{\"to\":\"/\"}},[_c('img',{staticClass:\"sidebar-logo\",attrs:{\"src\":\"favicon.ico\"}}),_c('h1',{staticClass:\"sidebar-title\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport settings from '@/settings'\n\n@Component({\n name: 'SidebarLogo'\n})\nexport default class extends Vue {\n @Prop({ required: true }) private collapse!: boolean\n\n private title = settings.title\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarLogo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarLogo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SidebarLogo.vue?vue&type=template&id=7847d0d3&scoped=true&\"\nimport script from \"./SidebarLogo.vue?vue&type=script&lang=ts&\"\nexport * from \"./SidebarLogo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SidebarLogo.vue?vue&type=style&index=0&id=7847d0d3&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7847d0d3\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { AppModule } from '@/store/modules/app'\nimport { PermissionModule } from '@/store/modules/permission'\nimport { SettingsModule } from '@/store/modules/settings'\nimport SidebarItem from './SidebarItem.vue'\nimport SidebarLogo from './SidebarLogo.vue'\nimport variables from '@/styles/_variables.scss'\n\n@Component({\n name: 'SideBar',\n components: {\n SidebarItem,\n SidebarLogo\n }\n})\nexport default class extends Vue {\n get sidebar() {\n return AppModule.sidebar\n }\n\n get routes() {\n return PermissionModule.routes\n }\n\n get showLogo() {\n return SettingsModule.showSidebarLogo\n }\n\n get menuActiveTextColor() {\n if (SettingsModule.sidebarTextTheme) {\n return SettingsModule.theme\n } else {\n return variables.menuActiveText\n }\n }\n\n get variables() {\n return variables\n }\n\n get activeMenu() {\n const route = this.$route\n const { meta, path } = route\n // if set path, the sidebar will highlight the path you set\n if (meta.activeMenu) {\n return meta.activeMenu\n }\n return path\n }\n\n get isCollapse() {\n return !this.sidebar.opened\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=061fdbbc&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=061fdbbc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"061fdbbc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tags-view-container\",attrs:{\"id\":\"tags-view-container\"}},[_c('scroll-pane',{ref:\"scrollPane\",staticClass:\"tags-view-wrapper\",on:{\"scroll\":_vm.handleScroll}},_vm._l((_vm.visitedViews),function(tag){return _c('router-link',{key:tag.path,ref:\"tag\",refInFor:true,staticClass:\"tags-view-item\",class:_vm.isActive(tag) ? 'active' : '',attrs:{\"to\":{path: tag.path, query: tag.query, fullPath: tag.fullPath},\"tag\":\"span\"},nativeOn:{\"mouseup\":function($event){if('button' in $event && $event.button !== 1){ return null; }!_vm.isAffix(tag)?_vm.closeSelectedTag(tag):''},\"contextmenu\":function($event){$event.preventDefault();return _vm.openMenu(tag, $event)}}},[_vm._v(\" \"+_vm._s(_vm.$t('route.' + tag.meta.title))+\" \"),(!_vm.isAffix(tag))?_c('span',{staticClass:\"el-icon-close\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.closeSelectedTag(tag)}}}):_vm._e()])}),1),_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"contextmenu\",style:({left: _vm.left+'px', top: _vm.top+'px'})},[_c('li',{on:{\"click\":function($event){return _vm.refreshSelectedTag(_vm.selectedTag)}}},[_vm._v(\" \"+_vm._s(_vm.$t('tagsView.refresh'))+\" \")]),(!_vm.isAffix(_vm.selectedTag))?_c('li',{on:{\"click\":function($event){return _vm.closeSelectedTag(_vm.selectedTag)}}},[_vm._v(\" \"+_vm._s(_vm.$t('tagsView.close'))+\" \")]):_vm._e(),_c('li',{on:{\"click\":_vm.closeOthersTags}},[_vm._v(\" \"+_vm._s(_vm.$t('tagsView.closeOthers'))+\" \")]),_c('li',{on:{\"click\":function($event){return _vm.closeAllTags(_vm.selectedTag)}}},[_vm._v(\" \"+_vm._s(_vm.$t('tagsView.closeAll'))+\" \")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-scrollbar',{ref:\"scrollContainer\",staticClass:\"scroll-container\",attrs:{\"vertical\":false},nativeOn:{\"wheel\":function($event){$event.preventDefault();return _vm.handleScroll($event)}}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\n\nconst tagSpacing = 4\n\n@Component({\n name: 'ScrollPane'\n})\nexport default class extends Vue {\n get scrollWrapper() {\n return (this.$refs.scrollContainer as Vue).$refs.wrap as HTMLElement\n }\n\n mounted() {\n this.scrollWrapper.addEventListener('scroll', this.emitScroll, true)\n }\n\n beforeDestroy() {\n this.scrollWrapper.removeEventListener('scroll', this.emitScroll)\n }\n\n private handleScroll(e: WheelEvent) {\n const eventDelta = (e as any).wheelDelta || -e.deltaY * 40\n const scrollWrapper = this.scrollWrapper\n scrollWrapper.scrollLeft = scrollWrapper.scrollLeft + eventDelta / 4\n }\n\n private emitScroll() {\n this.$emit('scroll')\n }\n\n public moveToTarget(currentTag: HTMLElement) {\n const container = (this.$refs.scrollContainer as Vue).$el as HTMLElement\n const containerWidth = container.offsetWidth\n const scrollWrapper = this.scrollWrapper\n const tagList = this.$parent.$refs.tag as any[]\n\n let firstTag = null\n let lastTag = null\n\n // find first tag and last tag\n if (tagList.length > 0) {\n firstTag = tagList[0]\n lastTag = tagList[tagList.length - 1]\n }\n\n if (firstTag === currentTag) {\n scrollWrapper.scrollLeft = 0\n } else if (lastTag === currentTag) {\n scrollWrapper.scrollLeft = scrollWrapper.scrollWidth - containerWidth\n } else {\n // find preTag and nextTag\n const currentIndex = tagList.findIndex(item => item === currentTag)\n const prevTag = tagList[currentIndex - 1]\n const nextTag = tagList[currentIndex + 1]\n // the tag's offsetLeft after of nextTag\n const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagSpacing\n // the tag's offsetLeft before of prevTag\n const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagSpacing\n\n if (afterNextTagOffsetLeft > scrollWrapper.scrollLeft + containerWidth) {\n scrollWrapper.scrollLeft = afterNextTagOffsetLeft - containerWidth\n } else if (beforePrevTagOffsetLeft < scrollWrapper.scrollLeft) {\n scrollWrapper.scrollLeft = beforePrevTagOffsetLeft\n }\n }\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ScrollPane.vue?vue&type=template&id=4712a34c&scoped=true&\"\nimport script from \"./ScrollPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./ScrollPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ScrollPane.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./ScrollPane.vue?vue&type=style&index=1&id=4712a34c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4712a34c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport path from 'path'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { RouteConfig } from 'vue-router'\nimport { PermissionModule } from '@/store/modules/permission'\nimport { TagsViewModule, ITagView } from '@/store/modules/tags-view'\nimport ScrollPane from './ScrollPane.vue'\n\n@Component({\n name: 'TagsView',\n components: {\n ScrollPane\n }\n})\nexport default class extends Vue {\n private visible = false\n private top = 0\n private left = 0\n private selectedTag: ITagView = {}\n private affixTags: ITagView[] = []\n\n get visitedViews() {\n return TagsViewModule.visitedViews\n }\n\n get routes() {\n return PermissionModule.routes\n }\n\n @Watch('$route')\n private onRouteChange() {\n this.addTags()\n this.moveToCurrentTag()\n }\n\n @Watch('visible')\n private onVisibleChange(value: boolean) {\n if (value) {\n document.body.addEventListener('click', this.closeMenu)\n } else {\n document.body.removeEventListener('click', this.closeMenu)\n }\n }\n\n mounted() {\n this.initTags()\n this.addTags()\n }\n\n private isActive(route: ITagView) {\n return route.path === this.$route.path\n }\n\n private isAffix(tag: ITagView) {\n return tag.meta && tag.meta.affix\n }\n\n private filterAffixTags(routes: RouteConfig[], basePath = '/') {\n let tags: ITagView[] = []\n routes.forEach(route => {\n if (route.meta && route.meta.affix) {\n const tagPath = path.resolve(basePath, route.path)\n tags.push({\n fullPath: tagPath,\n path: tagPath,\n name: route.name,\n meta: { ...route.meta }\n })\n }\n if (route.children) {\n const childTags = this.filterAffixTags(route.children, route.path)\n if (childTags.length >= 1) {\n tags = [...tags, ...childTags]\n }\n }\n })\n return tags\n }\n\n private initTags() {\n this.affixTags = this.filterAffixTags(this.routes)\n for (const tag of this.affixTags) {\n // Must have tag name\n if (tag.name) {\n TagsViewModule.addVisitedView(tag)\n }\n }\n }\n\n private addTags() {\n const { name } = this.$route\n if (name) {\n TagsViewModule.addView(this.$route)\n }\n return false\n }\n\n private moveToCurrentTag() {\n const tags = this.$refs.tag as any[] // TODO: better typescript support for router-link\n this.$nextTick(() => {\n for (const tag of tags) {\n if ((tag.to as ITagView).path === this.$route.path) {\n (this.$refs.scrollPane as ScrollPane).moveToTarget(tag as any)\n // When query is different then update\n if ((tag.to as ITagView).fullPath !== this.$route.fullPath) {\n TagsViewModule.updateVisitedView(this.$route)\n }\n break\n }\n }\n })\n }\n\n private refreshSelectedTag(view: ITagView) {\n TagsViewModule.delCachedView(view)\n const { fullPath } = view\n this.$nextTick(() => {\n this.$router.replace({\n path: '/redirect' + fullPath\n }).catch(err => {\n console.warn(err)\n })\n })\n }\n\n private closeSelectedTag(view: ITagView) {\n TagsViewModule.delView(view)\n if (this.isActive(view)) {\n this.toLastView(TagsViewModule.visitedViews, view)\n }\n }\n\n private closeOthersTags() {\n if (this.selectedTag.fullPath !== this.$route.path && this.selectedTag.fullPath !== undefined) {\n this.$router.push(this.selectedTag.fullPath).catch(err => {\n console.warn(err)\n })\n }\n TagsViewModule.delOthersViews(this.selectedTag)\n this.moveToCurrentTag()\n }\n\n private closeAllTags(view: ITagView) {\n TagsViewModule.delAllViews()\n if (this.affixTags.some(tag => tag.path === this.$route.path)) {\n return\n }\n this.toLastView(TagsViewModule.visitedViews, view)\n }\n\n private toLastView(visitedViews: ITagView[], view: ITagView) {\n const latestView = visitedViews.slice(-1)[0]\n if (latestView !== undefined && latestView.fullPath !== undefined) {\n this.$router.push(latestView.fullPath).catch(err => {\n console.warn(err)\n })\n } else {\n // Default redirect to the home page if there is no tags-view, adjust it if you want\n if (view.name === 'Dashboard') {\n // to reload home page\n this.$router.replace({ path: '/redirect' + view.fullPath }).catch(err => {\n console.warn(err)\n })\n } else {\n this.$router.push('/').catch(err => {\n console.warn(err)\n })\n }\n }\n }\n\n private openMenu(tag: ITagView, e: MouseEvent) {\n const menuMinWidth = 105\n const offsetLeft = this.$el.getBoundingClientRect().left // container margin left\n const offsetWidth = (this.$el as HTMLElement).offsetWidth // container width\n const maxLeft = offsetWidth - menuMinWidth // left boundary\n const left = e.clientX - offsetLeft + 15 // 15: margin right\n if (left > maxLeft) {\n this.left = maxLeft\n } else {\n this.left = left\n }\n this.top = e.clientY\n this.visible = true\n this.selectedTag = tag\n }\n\n private closeMenu() {\n this.visible = false\n }\n\n private handleScroll() {\n this.closeMenu()\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=31c3d88a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=31c3d88a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31c3d88a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"rightPanel\",staticClass:\"rightPanel-container\",class:{show: _vm.show}},[_c('div',{staticClass:\"rightPanel-background\"}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showMenu),expression:\"showMenu\"}],staticClass:\"rightPanel\"},[_c('div',{staticClass:\"handle-button\",style:({'top': _vm.buttonTop+'px','background-color': _vm.theme}),on:{\"click\":function($event){_vm.show=!_vm.show}}},[_c('i',{class:_vm.show?'el-icon-close':'el-icon-setting'})]),_c('div',{staticClass:\"rightPanel-items\"},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport { addClass, removeClass } from '@/utils'\nimport { SettingsModule } from '@/store/modules/settings'\nimport { AppModule } from '@/store/modules/app'\n\n@Component({\n name: 'RightPanel'\n})\nexport default class extends Vue {\n @Prop({ default: false }) private clickNotClose!: boolean\n @Prop({ default: 250 }) private buttonTop!: number\n\n private show = false\n\n get showMenu() {\n return !AppModule.mini\n }\n\n get theme() {\n return SettingsModule.theme\n }\n\n @Watch('show')\n private onShowChange(value: boolean) {\n if (value && !this.clickNotClose) {\n this.addEventClick()\n }\n if (value) {\n addClass(document.body, 'showRightPanel')\n } else {\n removeClass(document.body, 'showRightPanel')\n }\n }\n\n mounted() {\n this.insertToBody()\n }\n\n beforeDestroy() {\n const elx = this.$refs.rightPanel as Element\n elx.remove()\n }\n\n private addEventClick() {\n window.addEventListener('click', this.closeSidebar)\n }\n\n private closeSidebar(ev: MouseEvent) {\n const parent = (ev.target as HTMLElement).closest('.rightPanel')\n if (!parent) {\n this.show = false\n window.removeEventListener('click', this.closeSidebar)\n }\n }\n\n private insertToBody() {\n const elx = this.$refs.rightPanel as Element\n const body = document.querySelector('body')\n if (body) {\n body.insertBefore(elx, body.firstChild)\n }\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=745a2b41&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=745a2b41&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"745a2b41\",\n null\n \n)\n\nexport default component.exports","import { Component, Vue, Watch } from 'vue-property-decorator'\nimport { AppModule, DeviceType } from '@/store/modules/app'\n\nconst WIDTH = 992 // refer to Bootstrap's responsive design\n\n@Component({\n name: 'ResizeMixin'\n})\nexport default class extends Vue {\n get device() {\n return AppModule.device\n }\n\n get sidebar() {\n return AppModule.sidebar\n }\n\n @Watch('$route')\n private onRouteChange() {\n if (this.device === DeviceType.Mobile && this.sidebar.opened) {\n AppModule.CloseSideBar(false)\n }\n }\n\n beforeMount() {\n window.addEventListener('resize', this.resizeHandler)\n }\n\n mounted() {\n const isMobile = this.isMobile()\n if (isMobile) {\n AppModule.ToggleDevice(DeviceType.Mobile)\n AppModule.CloseSideBar(true)\n }\n }\n\n beforeDestroy() {\n window.removeEventListener('resize', this.resizeHandler)\n }\n\n private isMobile() {\n const rect = document.body.getBoundingClientRect()\n return rect.width - 1 < WIDTH\n }\n\n private resizeHandler() {\n if (!document.hidden) {\n const isMobile = this.isMobile()\n AppModule.ToggleDevice(isMobile ? DeviceType.Mobile : DeviceType.Desktop)\n if (isMobile) {\n AppModule.CloseSideBar(true)\n }\n }\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component } from 'vue-property-decorator'\nimport { mixins } from 'vue-class-component'\nimport { AppModule, DeviceType } from '@/store/modules/app'\nimport { SettingsModule } from '@/store/modules/settings'\nimport { AppMain, Navbar, Settings, Sidebar, TagsView } from './components'\nimport RightPanel from '@/components/RightPanel/index.vue'\nimport ResizeMixin from './mixin/resize'\n\n@Component({\n name: 'Layout',\n components: {\n AppMain,\n Navbar,\n RightPanel,\n Settings,\n Sidebar,\n TagsView\n }\n})\nexport default class extends mixins(ResizeMixin) {\n get classObj() {\n return {\n hideSidebar: !this.sidebar.opened,\n openSidebar: this.sidebar.opened,\n withoutAnimation: this.sidebar.withoutAnimation,\n mobile: this.device === DeviceType.Mobile\n }\n }\n\n get showMenu() {\n return !AppModule.mini\n }\n\n get showSettings() {\n return SettingsModule.showSettings\n }\n\n get showTagsView() {\n return SettingsModule.showTagsView\n }\n\n get fixedHeader() {\n return SettingsModule.fixedHeader\n }\n\n private handleClickOutside() {\n AppModule.CloseSideBar(false)\n }\n}\n","import mod from \"-!../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d2cc4d70&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=d2cc4d70&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d2cc4d70\",\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst systemRoutes: RouteConfig = {\n path: '/system',\n component: Layout,\n redirect: '/system/list',\n meta: {\n title: 'system',\n icon: 'component',\n permissions: ['shopman:*', 'permission:*', 'admin:*', 'role:*'],\n alwaysShow: true\n },\n children: [\n {\n path: 'permission',\n component: () => import('@/views/system/permission.vue'),\n name: 'Permission',\n meta: {\n title: 'permission',\n permissions: ['permission:read'],\n icon: 'permission'\n }\n },\n {\n path: 'role',\n component: () => import('@/views/system/role.vue'),\n name: 'RolePermission',\n meta: {\n title: 'rolePermission',\n permissions: ['role:read'],\n icon: 'role'\n }\n },\n {\n path: 'admin',\n component: () => import('@/views/system/admin.vue'),\n name: 'AdminPermission',\n meta: {\n title: 'adminuser',\n permissions: ['admin:read'],\n icon: 'admin'\n }\n },\n {\n path: 'list',\n component: () => import('@/views/shop/list.vue'),\n name: 'ShopList',\n meta: {\n title: 'shop_list',\n permissions: ['shopman:read'],\n icon: 'shop_list'\n }\n },\n {\n path: 'create',\n component: () => import('@/views/shop/edit.vue'),\n name: 'CreateShop',\n meta: {\n title: 'create_shop',\n icon: 'edit',\n hidden: true,\n permissions: ['shopman:edit']\n }\n },\n {\n path: 'edit/:id',\n component: () => import('@/views/shop/edit.vue'),\n name: 'ShopEditor',\n meta: {\n title: 'shop_edit',\n permissions: ['shopman:edit'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n },\n {\n path: 'i18n',\n component: () => import(/* webpackChunkName: \"i18n-demo\" */ '@/views/i18n-demo/index.vue'),\n name: 'I18n',\n meta: {\n title: 'i18n',\n icon: 'language',\n permissions: ['show:language']\n }\n },\n {\n path: 'theme',\n component: () => import(/* webpackChunkName: \"theme\" */ '@/views/theme/index.vue'),\n name: 'Theme',\n meta: {\n title: 'theme',\n icon: 'theme',\n permissions: ['show:theme']\n }\n }\n ]\n}\n\nexport default systemRoutes\n","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst marketingRoutes: RouteConfig = {\n path: '/marketing',\n component: Layout,\n meta: {\n title: 'marketing',\n icon: 'sell',\n alwaysShow: true,\n permissions: ['coupon:*']\n },\n children: [\n {\n path: 'coupon',\n component: () => import('@/views/marketing/coupon.vue'),\n name: 'CouponSetting',\n meta: {\n title: 'marketing_coupon',\n permissions: ['coupon:read'],\n icon: 'coupon'\n }\n },\n {\n path: 'edit_coupon',\n component: () => import('@/views/marketing/coupon_edit.vue'),\n name: 'CouponDetail',\n meta: {\n title: 'marketing_coupon_info',\n permissions: ['coupon:edit'],\n icon: 'coupon',\n hidden: true\n }\n },\n {\n path: 'edit_coupon/:id',\n component: () => import('@/views/marketing/coupon_edit.vue'),\n name: 'CouponDetail',\n meta: {\n title: 'marketing_coupon_info',\n permissions: ['coupon:edit'],\n icon: 'coupon',\n hidden: true\n }\n }\n // {\n // path: 'promo',\n // component: () => import('@/views/marketing/promo.vue'),\n // name: 'PromoSetting',\n // meta: {\n // title: 'marketing_promo',\n // permissions: ['promo:read'],\n // icon: 'promo'\n // }\n // },\n // {\n // path: 'points',\n // component: () => import('@/views/marketing/points.vue'),\n // name: 'PointsSetting',\n // meta: {\n // title: 'marketing_points',\n // permissions: ['points:read'],\n // icon: 'points'\n // }\n // }\n ]\n}\n\nexport default marketingRoutes\n","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst questionRoutes: RouteConfig = {\n path: '/question',\n component: Layout,\n meta: {\n title: 'question',\n icon: 'question_list',\n permissions: ['question:*', 'shop:tiku_setting'],\n alwaysShow: true\n },\n children: [\n {\n path: 'create',\n component: () => import('@/views/question/editor.vue'),\n name: 'CreateQuestion',\n meta: {\n title: 'createQuestion',\n permissions: ['question:edit'],\n icon: 'edit',\n hidden: true\n }\n },\n {\n path: 'edit/:id',\n component: () => import('@/views/question/editor.vue'),\n name: 'QuestionEditor',\n meta: {\n title: 'question_prepare',\n permissions: ['question:edit'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n },\n {\n path: 'list',\n component: () => import('@/views/question/list.vue'),\n name: 'QuestionList',\n meta: {\n title: 'question_list',\n permissions: ['question:read'],\n icon: 'list'\n }\n },\n {\n path: 'setting',\n component: () => import('@/views/question/setting.vue'),\n name: 'QuestionSetting',\n meta: {\n title: 'question_setting',\n permissions: ['shop:tiku_setting'],\n icon: 'excel'\n }\n },\n\n {\n path: 'shoppuzzles',\n component: () => import('@/views/question/shop_puzzles.vue'),\n name: 'ShopPuzzles',\n meta: {\n title: 'shop_puzzles',\n permissions: ['shoppuzzle:read'],\n icon: 'form'\n }\n },\n {\n path: 'newshoppuzzle/:shop',\n component: () => import('@/views/question/shop_puzzle_editor.vue'),\n name: 'CreatePuzzle',\n meta: {\n title: 'createQuestion',\n permissions: ['shoppuzzle:edit'],\n icon: 'edit',\n hidden: true\n }\n },\n {\n path: 'shoppuzzle/:shop/:id',\n component: () => import('@/views/question/shop_puzzle_editor.vue'),\n name: 'PuzzleEditor',\n meta: {\n title: 'question_prepare',\n permissions: ['shoppuzzle:edit'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n }\n ]\n}\n\nexport default questionRoutes\n","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst shopRoutes: RouteConfig = {\n path: '/shop',\n component: Layout,\n meta: {\n title: 'shop',\n icon: 'shop',\n alwaysShow: true,\n permissions: ['shopadmin:*', 'shop:game_setting', 'activity:*']\n },\n children: [\n {\n path: 'shopadmin',\n component: () => import('@/views/shop/shop_admin.vue'),\n name: 'ShopAdmin',\n meta: {\n title: 'shop_admin',\n permissions: ['shopadmin:read'],\n icon: 'admin'\n }\n },\n {\n path: 'shopmember',\n component: () => import('@/views/error-page/401.vue'),\n name: 'ShopMember',\n meta: {\n title: 'shop_member',\n permissions: ['shopadmin:read'],\n icon: 'peoples'\n }\n },\n {\n path: 'setting',\n component: () => import('@/views/game/game_setting.vue'),\n name: 'ShopSetting',\n meta: {\n title: 'game_setting',\n permissions: ['shop:game_setting'],\n icon: 'game'\n }\n },\n {\n path: 'activity_list',\n component: () => import('@/views/activity/list.vue'),\n name: 'ActivityList',\n meta: {\n title: 'activity_list',\n permissions: ['activity:read'],\n icon: 'list'\n }\n },\n {\n path: 'activity_new',\n component: () => import('@/views/activity/edit.vue'),\n name: 'CreateActivity',\n meta: {\n title: 'create_activity',\n icon: 'edit',\n permissions: ['activity:edit'],\n hidden: true\n }\n },\n {\n path: 'activity_edit/:id',\n component: () => import('@/views/activity/edit.vue'),\n name: 'ActivityEditor',\n meta: {\n title: 'edit_activity',\n permissions: ['activity:read'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n },\n {\n path: 'exam_list',\n component: () => import('@/views/exam/list.vue'),\n name: 'ExamList',\n meta: {\n title: 'exam_list',\n permissions: ['shopexam:read'],\n icon: 'tree'\n }\n },\n {\n path: 'exam_new',\n component: () => import('@/views/exam/edit.vue'),\n name: 'CreateExam',\n meta: {\n title: 'create_exam',\n icon: 'edit',\n permissions: ['shopexam:edit'],\n hidden: true\n }\n },\n {\n path: 'exam_edit/:id',\n component: () => import('@/views/exam/edit.vue'),\n name: 'ExamEditor',\n meta: {\n title: 'edit_exam',\n permissions: ['shopexam:read'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n },\n {\n path: 'theme_edit/:shop/:game/:version',\n component: () => import('@/views/game/game_theme.vue'),\n name: 'ThereEditor',\n meta: {\n title: 'edit_theme',\n permissions: ['shop:game_setting'],\n icon: 'theme2',\n hidden: true\n }\n },\n {\n path: 'lottery_setting',\n component: () => import('@/views/shop/shop_lottery.vue'),\n name: 'ShopLottery',\n meta: {\n title: 'shop_lottery',\n permissions: ['shop:edit'],\n icon: 'lottery'\n }\n },\n {\n path: 'share_setting',\n component: () => import('@/views/shop/shop_share.vue'),\n name: 'ShopShare',\n meta: {\n title: 'shop_share',\n permissions: ['shop:edit'],\n icon: 'share'\n }\n },\n {\n path: 'mail_list',\n component: () => import('@/views/mail/list.vue'),\n name: 'MailList',\n meta: {\n title: 'shop_mail',\n permissions: ['shopmail:read'],\n icon: 'mail'\n }\n },\n {\n path: 'mail_new',\n component: () => import('@/views/mail/edit.vue'),\n name: 'CreateMail',\n meta: {\n title: 'create_mail',\n icon: 'edit',\n permissions: ['shopmail:edit'],\n hidden: true\n }\n },\n {\n path: 'mail_edit/:id',\n component: () => import('@/views/mail/edit.vue'),\n name: 'MailEditor',\n meta: {\n title: 'edit_mail',\n permissions: ['shopmail:read'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n },\n {\n path: 'announce_list',\n component: () => import('@/views/announce/list.vue'),\n name: 'AnnounceList',\n meta: {\n title: 'shop_announce',\n permissions: ['shopannounce:read'],\n icon: 'announce'\n }\n },\n {\n path: 'announce_new',\n component: () => import('@/views/announce/edit.vue'),\n name: 'CreateAnnounce',\n meta: {\n title: 'create_announce',\n icon: 'edit',\n permissions: ['shopannounce:edit'],\n hidden: true\n }\n },\n {\n path: 'announce_edit/:id',\n component: () => import('@/views/announce/edit.vue'),\n name: 'AnnounceEditor',\n meta: {\n title: 'edit_announce',\n permissions: ['shopannounce:read'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n }\n ]\n}\n\nexport default shopRoutes\n","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst gameRoutes: RouteConfig = {\n path: '/game',\n component: Layout,\n meta: {\n title: 'game',\n icon: 'game',\n alwaysShow: true,\n permissions: ['sysgame:*']\n },\n children: [\n {\n path: 'games',\n component: () => import('@/views/game/game_list.vue'),\n name: 'GameList',\n meta: {\n title: 'game_list',\n permissions: ['sysgame:read'],\n icon: 'game'\n }\n },\n {\n path: 'edit_game',\n component: () => import('@/views/game/game_edit.vue'),\n name: 'GameDetail',\n meta: {\n title: 'game_edit',\n permissions: ['sysgame:edit'],\n icon: 'game',\n hidden: true\n }\n },\n {\n path: 'edit_game/:id',\n component: () => import('@/views/game/game_edit.vue'),\n name: 'edit_game',\n meta: {\n title: 'game_edit',\n permissions: ['sysgame:edit'],\n icon: 'game',\n hidden: true\n }\n }\n ]\n}\n\nexport default gameRoutes\n","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst staticsRoutes: RouteConfig = {\n path: '/statistics',\n component: Layout,\n meta: {\n title: 'shop_statistics',\n icon: 'statistics',\n alwaysShow: true,\n permissions: ['statistics:*']\n },\n children: [\n {\n path: 'gamestatistics',\n component: () => import('@/views/error-page/401.vue'),\n name: 'GameStatistics',\n meta: {\n title: 'game_statistics',\n permissions: ['statistics:read'],\n icon: 'game'\n }\n }\n ]\n}\nexport default staticsRoutes\n","import Vue from 'vue'\nimport VueRouter, { RouteConfig } from 'vue-router'\n\n/* Layout */\nimport Layout from '@/layout/index.vue'\n\n/* Router modules */\nimport systemRoutes from '@/router/modules/system'\nimport marketingRoutes from '@/router/modules/marketing'\nimport questionRoutes from '@/router/modules/question'\nimport shopRoutes from '@/router/modules/shop'\nimport gameRoutes from '@/router/modules/game'\nimport staticsRotuers from '@/router/modules/statics'\n\nVue.use(VueRouter)\n\n/*\n Note: sub-menu only appear when children.length>=1\n Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html\n*/\n\n/*\n name:'router-name' the name field is required when using , it should also match its component's name property\n detail see : https://vuejs.org/v2/guide/components-dynamic-async.html#keep-alive-with-Dynamic-Components\n redirect: if set to 'noredirect', no redirect action will be trigger when clicking the breadcrumb\n meta: {\n roles: ['admin', 'editor'] will control the page roles (allow setting multiple roles)\n permissions: ['app:read'] will control the page permissions (allow setting multiple permissions)\n title: 'title' the name showed in subMenu and breadcrumb (recommend set)\n icon: 'svg-name' the icon showed in the sidebar\n hidden: true if true, this route will not show in the sidebar (default is false)\n alwaysShow: true if true, will always show the root menu (default is false)\n if false, hide the root menu when has less or equal than one children route\n breadcrumb: false if false, the item will be hidden in breadcrumb (default is true)\n noCache: true if true, the page will not be cached (default is false)\n affix: true if true, the tag will affix in the tags-view\n activeMenu: '/example/list' if set path, the sidebar will highlight the path you set\n }\n*/\n\n/**\n ConstantRoutes\n a base page that does not have permission requirements\n all roles can be accessed\n*/\nexport const constantRoutes: RouteConfig[] = [\n {\n path: '/redirect',\n component: Layout,\n meta: { hidden: true },\n children: [\n {\n path: '/redirect/:path(.*)',\n component: () => import(/* webpackChunkName: \"redirect\" */ '@/views/redirect/index.vue')\n }\n ]\n },\n {\n path: '/login',\n component: () => import(/* webpackChunkName: \"login\" */ '@/views/login/index.vue'),\n meta: { hidden: true }\n },\n {\n path: '/auth-redirect',\n component: () => import(/* webpackChunkName: \"auth-redirect\" */ '@/views/login/auth-redirect.vue'),\n meta: { hidden: true }\n },\n {\n path: '/404',\n component: () => import(/* webpackChunkName: \"404\" */ '@/views/error-page/404.vue'),\n meta: { hidden: true }\n },\n {\n path: '/401',\n component: () => import(/* webpackChunkName: \"401\" */ '@/views/error-page/401.vue'),\n meta: { hidden: true }\n },\n {\n path: '/',\n component: Layout,\n redirect: '/dashboard',\n children: [\n {\n path: 'dashboard',\n component: () => import(/* webpackChunkName: \"dashboard\" */ '@/views/dashboard/index.vue'),\n name: 'Dashboard',\n meta: {\n title: 'dashboard',\n icon: 'dashboard',\n affix: true\n }\n }\n ]\n },\n {\n path: '/profile',\n component: Layout,\n redirect: '/profile/index',\n meta: { hidden: true },\n children: [\n {\n path: 'index',\n component: () => import(/* webpackChunkName: \"profile\" */ '@/views/profile/info.vue'),\n name: 'Profile',\n meta: {\n title: 'profile',\n icon: 'user',\n noCache: true\n }\n },\n {\n path: 'password',\n component: () => import(/* webpackChunkName: \"profile\" */ '@/views/profile/password.vue'),\n name: 'Password',\n meta: {\n title: 'password',\n icon: 'user',\n noCache: true\n }\n }\n ]\n },\n {\n path: '/password',\n component: Layout,\n redirect: '/profile/password',\n meta: { hidden: true },\n children: [\n ]\n }\n]\n\n/**\n * asyncRoutes\n * the routes that need to be dynamically loaded based on user roles\n*/\nexport const asyncRoutes: RouteConfig[] = [\n systemRoutes,\n gameRoutes,\n shopRoutes,\n // articleRouters,\n marketingRoutes,\n questionRoutes,\n staticsRotuers,\n // {\n // path: '/error-log',\n // component: Layout,\n // redirect: 'noredirect',\n // children: [\n // {\n // path: 'log',\n // component: () => import(/* webpackChunkName: \"error-log\" */ '@/views/error-log/index.vue'),\n // name: 'ErrorLog',\n // meta: {\n // title: 'errorLog',\n // icon: 'bug'\n // }\n // }\n // ]\n // },\n {\n path: '*',\n redirect: '/404',\n meta: { hidden: true }\n }\n]\n\nconst createRouter = () => new VueRouter({\n // mode: 'history', // Disabled due to Github Pages doesn't support this, enable this if you need.\n scrollBehavior: (to, from, savedPosition) => {\n if (savedPosition) {\n return savedPosition\n } else {\n return { x: 0, y: 0 }\n }\n },\n base: process.env.BASE_URL,\n routes: constantRoutes\n})\n\nconst router = createRouter()\n\n// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465\nexport function resetRouter() {\n const newRouter = createRouter();\n (router as any).matcher = (newRouter as any).matcher // reset router\n}\n\nexport default router\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","import axios from 'axios'\nimport { Message, MessageBox } from 'element-ui'\nimport { UserModule } from '@/store/modules/user'\n\nconst service = axios.create({\n baseURL: process.env.VUE_APP_BASE_API,\n timeout: 5000\n})\n\n// Request interceptors\nservice.interceptors.request.use(\n (config) => {\n // Add X-Access-Token header to every request, you can add other custom headers here\n if (UserModule.token) {\n config.headers.authorization = 'Bearer ' + UserModule.token\n }\n config.headers['Content-Type'] = 'application/json'\n return config\n },\n (error) => {\n Promise.reject(error)\n }\n)\n\n// Response interceptors\nservice.interceptors.response.use(\n (response) => {\n // Some example codes here:\n // code == 0: success\n // code == 50001: invalid access token\n // code == 50002: already login in other place\n // code == 50003: access token expired\n // code == 50004: invalid user (user not exist)\n // code == 10: username or password is incorrect\n // You can change this part for your own usage.\n const res = response.data\n if (res.code) {\n Message({\n message: res.msg || 'Error',\n type: 'error',\n duration: 5 * 1000\n })\n if (res.code === 50008 || res.code === 50012 || res.code === 50014) {\n MessageBox.confirm(\n 'You have been logged out, try to login again.',\n 'Log out',\n {\n confirmButtonText: 'Relogin',\n cancelButtonText: 'Cancel',\n type: 'warning'\n }\n ).then(() => {\n UserModule.ResetToken()\n location.reload() // To prevent bugs from vue-router\n })\n }\n return Promise.reject(new Error(res.msg || 'Error'))\n } else {\n return response.data\n }\n },\n (error) => {\n Message({\n message: error.message,\n type: 'error',\n duration: 5 * 1000\n })\n return Promise.reject(error)\n }\n)\n\nexport default service\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&id=061fdbbc&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=d2cc4d70&lang=scss&scoped=true&\"","import Vue from 'vue'\n\nconst local = {\n get: function(key: string) {\n const val = localStorage.getItem(key)\n if (val) {\n return JSON.parse(val)\n } else {\n return null\n }\n },\n set: function(key: string, val: any) {\n localStorage.setItem(key, JSON.stringify(val))\n }\n}\nexport default {\n install: function(vue: typeof Vue) {\n vue.prototype.$local = local\n }\n}\n/**\n * 最后编辑的店铺\n * @type {string}\n */\nexport const LAST_SHOP = 'last_edit_shop'\n","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { getParameter } from '@/utils'\nimport { AppModule } from '@/store/modules/app'\nimport { UserModule } from '@/store/modules/user'\n\n@Component({\n name: 'App'\n})\nexport default class extends Vue {\n created() {\n console.log('main app created')\n const mini = +getParameter('mini')! || 0\n const token = getParameter('token')\n if (mini && token) {\n console.log(`link from partner, token: ${token}`)\n AppModule.SetMini(1)\n UserModule.updatePageToken(token)\n }\n }\n}\n","import mod from \"-!../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=0b5ecc7a&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/cli-service/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","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n '404': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'admin': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'announce': {\n width: 125.156,\n height: 120,\n viewBox: '0 0 1068 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'back-top': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'bug': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'chart': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'clipboard': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'component': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'coupon': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'dashboard': {\n width: 128,\n height: 100,\n viewBox: '0 0 128 100',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'documentation': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'drag': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'edit': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'education': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'email': {\n width: 128,\n height: 96,\n viewBox: '0 0 128 96',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'example': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'excel': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'exit-fullscreen': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'eye-off': {\n width: 128,\n height: 64,\n viewBox: '0 0 128 64',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'eye-on': {\n width: 128,\n height: 128,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'form': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'fullscreen': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'game': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'guide-2': {\n width: 1000,\n height: 1000,\n viewBox: '0 0 1000 1000',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'guide': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'hamburger': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'icon': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'international': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'language': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'like': {\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'link': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'list': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'lock': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'lottery': {\n width: 120,\n height: 120,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'mail': {\n width: 120,\n height: 120,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'message': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'money': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'nested': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'password': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'pdf': {\n width: 128,\n height: 128,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'people': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'peoples': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'permission': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'points': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'promo': {\n width: 82.625,\n height: 64,\n viewBox: '0 0 1322 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'qq': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'question_list': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'role': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'search': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'sell': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'share': {\n width: 120,\n height: 120,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'shop_list': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'shop': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'shopping': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'size': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'skill': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'star': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'statistics': {\n width: 120,\n height: 120,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'tab': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'table': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'theme': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'theme2': {\n width: 120,\n height: 120,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'tree-table': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'tree': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'user': {\n width: 130,\n height: 130,\n viewBox: '0 0 130 130',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'wechat': {\n width: 128,\n height: 110,\n viewBox: '0 0 128 110',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'zip': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","import router from './router'\nimport NProgress from 'nprogress'\nimport 'nprogress/nprogress.css'\nimport { Message } from 'element-ui'\nimport { Route } from 'vue-router'\nimport { UserModule } from '@/store/modules/user'\nimport { PermissionModule } from '@/store/modules/permission'\nimport i18n from '@/lang' // Internationalization\nimport settings from './settings'\n\nNProgress.configure({ showSpinner: false })\n\nconst whiteList = ['/login', '/auth-redirect']\n\nconst getPageTitle = (key: string) => {\n const hasKey = i18n.te(`route.${key}`)\n if (hasKey) {\n const pageName = i18n.t(`route.${key}`)\n return `${pageName} - ${settings.title}`\n }\n return `${settings.title}`\n}\n\nrouter.beforeEach(async(to: Route, _: Route, next: any) => {\n // Start progress bar\n NProgress.start()\n\n // Determine whether the user has logged in\n if (UserModule.token) {\n if (to.path === '/login') {\n // If is logged in, redirect to the home page\n next({ path: '/' })\n NProgress.done()\n } else {\n // Check whether the user has obtained his permission roles\n if (UserModule.roles.length === 0) {\n try {\n // Note: roles must be a object array! such as: ['admin'] or ['developer', 'editor']\n await UserModule.GetUserInfo()\n const roles = UserModule.roles\n // Generate accessible routes map based on role\n PermissionModule.GenerateRoutes(roles)\n // Dynamically add accessible routes\n router.addRoutes(PermissionModule.dynamicRoutes)\n // Hack: ensure addRoutes is complete\n // Set the replace: true, so the navigation will not leave a history record\n next({ ...to, replace: true })\n } catch (err) {\n // Remove token and redirect to login page\n UserModule.ResetToken()\n Message.error(err || 'Has Error')\n next(`/login?redirect=${to.path}`)\n NProgress.done()\n }\n } else {\n next()\n }\n }\n } else {\n // Has no token\n if (whiteList.indexOf(to.path) !== -1) {\n // In the free login whitelist, go directly\n next()\n } else {\n // Other pages that do not have permission to access are redirected to the login page.\n next(`/login?redirect=${to.path}`)\n NProgress.done()\n }\n }\n})\n\nrouter.afterEach((to: Route) => {\n // Finish progress bar\n // hack: https://github.com/PanJiaChen/vue-element-admin/pull/2939\n NProgress.done()\n\n // set page title\n document.title = getPageTitle(to.meta.title)\n})\n","// Inspired by https://github.com/Inndy/vue-clipboard2\nimport Clipboard from 'clipboard'\nimport { DirectiveOptions } from 'vue'\n\nif (!Clipboard) {\n throw new Error('you should npm install `clipboard` --save at first ')\n}\n\nlet successCallback: Function | null\nlet errorCallback: Function | null\nlet clipboardInstance: Clipboard | null\n\nexport const clipboard: DirectiveOptions = {\n bind(el, binding) {\n if (binding.arg === 'success') {\n successCallback = binding.value\n } else if (binding.arg === 'error') {\n errorCallback = binding.value\n } else {\n clipboardInstance = new Clipboard(el, {\n text() { return binding.value },\n action() { return binding.arg === 'cut' ? 'cut' : 'copy' }\n })\n clipboardInstance.on('success', e => {\n const callback = successCallback\n callback && callback(e)\n })\n clipboardInstance.on('error', e => {\n const callback = errorCallback\n callback && callback(e)\n })\n }\n },\n\n update(el, binding) {\n if (binding.arg === 'success') {\n successCallback = binding.value\n } else if (binding.arg === 'error') {\n errorCallback = binding.value\n } else {\n clipboardInstance = new Clipboard(el, {\n text() { return binding.value },\n action() { return binding.arg === 'cut' ? 'cut' : 'copy' }\n })\n }\n },\n\n unbind(_, binding) {\n if (binding.arg === 'success') {\n successCallback = null\n } else if (binding.arg === 'error') {\n errorCallback = null\n } else {\n if (clipboardInstance) {\n clipboardInstance.destroy()\n }\n clipboardInstance = null\n }\n }\n}\n","import { DirectiveOptions } from 'vue'\nimport { checkPermission } from '@/utils/permission'\n\nexport const permission: DirectiveOptions = {\n inserted(el, binding) {\n const { value } = binding\n if (!checkPermission(value)) {\n el.style.display = 'none'\n }\n }\n\n}\n","import { DirectiveOptions } from 'vue'\n\nexport const elDraggableDialog: DirectiveOptions = {\n bind(el, _, vnode) {\n const dragDom = el.querySelector('.el-dialog') as HTMLElement\n const dialogHeaderEl = el.querySelector('.el-dialog__header') as HTMLElement\n dragDom.style.cssText += ';top:0px;'\n dialogHeaderEl.style.cssText += ';cursor:move;'\n\n dialogHeaderEl.onmousedown = (e) => {\n const disX = e.clientX - dialogHeaderEl.offsetLeft\n const disY = e.clientY - dialogHeaderEl.offsetTop\n\n const dragDomWidth = dragDom.offsetWidth\n const dragDomHeight = dragDom.offsetHeight\n\n const screenWidth = document.body.clientWidth\n const screenHeight = document.body.clientHeight\n\n const minDragDomLeft = dragDom.offsetLeft\n const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth\n\n const minDragDomTop = dragDom.offsetTop\n const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight\n\n const styleLeftStr = getComputedStyle(dragDom).left\n const styleTopStr = getComputedStyle(dragDom).top\n if (!styleLeftStr || !styleTopStr) return\n let styleLeft: number\n let styleTop: number\n\n // Format may be \"##%\" or \"##px\"\n if (styleLeftStr.includes('%')) {\n styleLeft = +document.body.clientWidth * (+styleLeftStr.replace(/%/g, '') / 100)\n styleTop = +document.body.clientHeight * (+styleTopStr.replace(/%/g, '') / 100)\n } else {\n styleLeft = +styleLeftStr.replace(/px/g, '')\n styleTop = +styleTopStr.replace(/px/g, '')\n }\n\n document.onmousemove = (e) => {\n let left = e.clientX - disX\n let top = e.clientY - disY\n\n // Handle edge cases\n if (-(left) > minDragDomLeft) {\n left = -minDragDomLeft\n } else if (left > maxDragDomLeft) {\n left = maxDragDomLeft\n }\n if (-(top) > minDragDomTop) {\n top = -minDragDomTop\n } else if (top > maxDragDomTop) {\n top = maxDragDomTop\n }\n\n // Move current element\n dragDom.style.cssText += `;left:${left + styleLeft}px;top:${top + styleTop}px;`\n\n // Emit on-dialog-drag event\n // See https://stackoverflow.com/questions/49264426/vuejs-custom-directive-emit-event\n if (vnode.componentInstance) {\n vnode.componentInstance.$emit('on-dialog-drag')\n } else if (vnode.elm) {\n vnode.elm.dispatchEvent(new CustomEvent('on-dialog-drag'))\n }\n }\n\n document.onmouseup = () => {\n document.onmousemove = null\n document.onmouseup = null\n }\n }\n }\n}\n","import './waves.css'\nimport { DirectiveOptions } from 'vue'\n\nexport const waves: DirectiveOptions = {\n bind(el, binding) {\n el.addEventListener('click', e => {\n const customOpts = Object.assign({}, binding.value)\n const opts = Object.assign({\n ele: el, // 波纹作用元素\n type: 'hit', // hit 点击位置扩散 center中心点扩展\n color: 'rgba(0, 0, 0, 0.15)' // 波纹颜色\n }, customOpts)\n const target: HTMLElement = opts.ele\n if (target) {\n target.style.position = 'relative'\n target.style.overflow = 'hidden'\n const rect = target.getBoundingClientRect()\n let ripple = target.querySelector('.waves-ripple') as HTMLElement\n if (!ripple) {\n ripple = document.createElement('span')\n ripple.className = 'waves-ripple'\n ripple.style.height = ripple.style.width = Math.max(rect.width, rect.height) + 'px'\n target.appendChild(ripple)\n } else {\n ripple.className = 'waves-ripple'\n }\n switch (opts.type) {\n case 'center':\n ripple.style.top = rect.height / 2 - ripple.offsetHeight / 2 + 'px'\n ripple.style.left = rect.width / 2 - ripple.offsetWidth / 2 + 'px'\n break\n default:\n ripple.style.top =\n (e.pageY - rect.top - ripple.offsetHeight / 2 - document.documentElement.scrollTop ||\n document.body.scrollTop) + 'px'\n ripple.style.left =\n (e.pageX - rect.left - ripple.offsetWidth / 2 - document.documentElement.scrollLeft ||\n document.body.scrollLeft) + 'px'\n }\n ripple.style.backgroundColor = opts.color\n ripple.className = 'waves-ripple z-active'\n return false\n }\n }, false)\n }\n}\n","import { DirectiveOptions } from 'vue'\nimport { UserModule } from '@/store/modules/user'\n\nexport const role: DirectiveOptions = {\n inserted(el, binding) {\n const { value } = binding\n const roles = UserModule.roles\n if (value && value instanceof Array && value.length > 0) {\n const permissionRoles = value\n const hasRole = roles.some(role => {\n return permissionRoles.includes(role)\n })\n if (!hasRole) {\n el.style.display = 'none'\n }\n } else {\n throw new Error('need roles! Like v-role=\"[\\'admin\\',\\'editor\\']\"')\n }\n }\n}\n","// Set utils function parseTime to filter\nexport { parseTime } from '@/utils'\n\n// Filter for article status\nexport const articleStatusFilter = (status: string) => {\n const statusMap: { [key: string]: string } = {\n published: 'success',\n draft: 'info',\n deleted: 'danger'\n }\n return statusMap[status]\n}\n\n// Filter to uppercase the first character\nexport const uppercaseFirstChar = (str: string) => {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n","import Vue, { DirectiveOptions } from 'vue'\n\nimport 'normalize.css'\nimport ElementUI from 'element-ui'\nimport SvgIcon from 'vue-svgicon'\n\nimport '@/styles/element-variables.scss'\nimport '@/styles/index.scss'\n\nimport App from '@/App.vue'\nimport store from '@/store'\nimport router from '@/router'\nimport i18n from '@/lang'\nimport '@/icons/components'\nimport '@/permission'\nimport { AppModule } from '@/store/modules/app'\nimport * as directives from '@/directives'\nimport * as filters from '@/filters'\nimport local from '@/utils/storage'\n\nimport '@/utils/Extend'\n\nVue.use(ElementUI, {\n size: AppModule.size,\n i18n: (key: string, value: string) => i18n.t(key, value)\n})\nVue.use(SvgIcon, {\n tagName: 'svg-icon',\n defaultWidth: '1em',\n defaultHeight: '1em'\n})\nVue.use(local)\n\nObject.keys(directives).forEach(key => {\n Vue.directive(key, (directives as { [key: string ]: DirectiveOptions })[key])\n})\n// Register global filter functions\nObject.keys(filters).forEach(key => {\n Vue.filter(key, (filters as { [key: string ]: Function })[key])\n})\n// Register global directives\nVue.config.productionTip = false\n\nnew Vue({\n router,\n store,\n i18n,\n render: (h) => h(App)\n}).$mount('#app')\n","// Parse the time to string\nexport const parseTime = (\n time?: object | string | number | null,\n cFormat?: string\n): string | null => {\n if (time === undefined || !time) {\n return null\n }\n const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'\n let date: Date\n if (typeof time === 'object') {\n date = time as Date\n } else {\n if (typeof time === 'string') {\n if (/^[0-9]+$/.test(time)) {\n // support \"1548221490638\"\n time = parseInt(time)\n } else {\n // support safari\n // https://stackoverflow.com/questions/4310953/invalid-date-in-safari\n // time = time.replace(new RegExp(/-/gm), '/')\n }\n }\n if (typeof time === 'number' && time.toString().length === 10) {\n time = time * 1000\n }\n date = new Date(time)\n }\n const formatObj: { [key: string]: number } = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n }\n return format.replace(/{([ymdhisa])+}/g, (result, key) => {\n const value = formatObj[key]\n // Note: getDay() returns 0 on Sunday\n if (key === 'a') {\n return ['日', '一', '二', '三', '四', '五', '六'][value]\n }\n return value.toString().padStart(2, '0')\n })\n}\n/**\n * 将秒数格式化成 小时:分钟:秒\n * @param {number} sec\n * @param showSeconds 是否显示秒\n */\nexport const sec2TimeStr = (sec: number, showSeconds = true) => {\n showSeconds = typeof showSeconds !== 'undefined' ? showSeconds : true\n const t = sec % 60\n const i = (sec % 3600 - t) / 60\n const n = Math.floor(sec / 3600)\n if (showSeconds) {\n return (n > 9 ? '' + n : '0' + n) + ':' + (i > 9 ? i : '0' + i) + ':' + (t > 9 ? t : '0' + t)\n } else {\n return (n > 9 ? '' + n : '0' + n) + ':' + (i > 9 ? i : '0' + i)\n }\n}\n/**\n * 将 小时:分钟:秒 格式的字符串转换为秒数\n * @param {string} str\n */\nexport const timeStr2Sec = (str: string) => {\n const vals = str.split(':')\n const h = vals.length > 0 ? +vals[0] : 0\n const m = vals.length > 1 ? +vals[1] : 0\n const s = vals.length > 2 ? +vals[2] : 0\n return h * 3600 + m * 60 + s\n}\n\n// Format and filter json data using filterKeys array\nexport const formatJson = (filterKeys: any, jsonData: any) =>\n jsonData.map((data: any) => filterKeys.map((key: string) => {\n if (key === 'timestamp') {\n return parseTime(data[key])\n } else {\n return data[key]\n }\n }))\n\n// Check if an element has a class\nexport const hasClass = (ele: HTMLElement, className: string) => {\n return !!ele.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'))\n}\n\n// Add class to element\nexport const addClass = (ele: HTMLElement, className: string) => {\n if (!hasClass(ele, className)) ele.className += ' ' + className\n}\n\n// Remove class from element\nexport const removeClass = (ele: HTMLElement, className: string) => {\n if (hasClass(ele, className)) {\n const reg = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)')\n ele.className = ele.className.replace(reg, ' ')\n }\n}\n\n// Toggle class for the selected element\nexport const toggleClass = (ele: HTMLElement, className: string) => {\n if (!ele || !className) {\n return\n }\n let classString = ele.className\n const nameIndex = classString.indexOf(className)\n if (nameIndex === -1) {\n classString += '' + className\n } else {\n classString =\n classString.substr(0, nameIndex) +\n classString.substr(nameIndex + className.length)\n }\n ele.className = classString\n}\n\nexport const delay = (sec: number) => {\n return new Promise((resolve, reject) => {\n setTimeout(function() {\n resolve && resolve('')\n }, sec * 1000)\n })\n}\n\nexport const getParameter = (t: string) => {\n const e = window.location.hash || ''\n const i = new RegExp(t + '=([^&?]*)', 'ig')\n return e.match(i) ? e.match(i)![0].substr(t.length + 1) : null\n}\n","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ed2ef868&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=style&index=0&lang=scss&\"","import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators'\nimport { Route } from 'vue-router'\nimport store from '@/store'\n\nexport interface ITagView extends Partial {\n title?: string\n}\n\nexport interface ITagsViewState {\n visitedViews: ITagView[]\n cachedViews: (string | undefined)[]\n}\n\n@Module({ dynamic: true, store, name: 'tagsView' })\nclass TagsView extends VuexModule implements ITagsViewState {\n public visitedViews: ITagView[] = []\n public cachedViews: (string | undefined)[] = []\n\n @Mutation\n private ADD_VISITED_VIEW(view: ITagView) {\n if (this.visitedViews.some(v => v.path === view.path)) return\n this.visitedViews.push(\n Object.assign({}, view, {\n title: view.meta.title || 'no-name'\n })\n )\n }\n\n @Mutation\n private ADD_CACHED_VIEW(view: ITagView) {\n if (view.name === null) return\n if (this.cachedViews.includes(view.name)) return\n if (!view.meta.noCache) {\n this.cachedViews.push(view.name)\n }\n }\n\n @Mutation\n private DEL_VISITED_VIEW(view: ITagView) {\n for (const [i, v] of this.visitedViews.entries()) {\n if (v.path === view.path) {\n this.visitedViews.splice(i, 1)\n break\n }\n }\n }\n\n @Mutation\n private DEL_CACHED_VIEW(view: ITagView) {\n if (view.name === null) return\n const index = this.cachedViews.indexOf(view.name)\n index > -1 && this.cachedViews.splice(index, 1)\n }\n\n @Mutation\n private DEL_OTHERS_VISITED_VIEWS(view: ITagView) {\n this.visitedViews = this.visitedViews.filter(v => {\n return v.meta.affix || v.path === view.path\n })\n }\n\n @Mutation\n private DEL_OTHERS_CACHED_VIEWS(view: ITagView) {\n if (view.name === null) return\n const index = this.cachedViews.indexOf(view.name)\n if (index > -1) {\n this.cachedViews = this.cachedViews.slice(index, index + 1)\n } else {\n // if index = -1, there is no cached tags\n this.cachedViews = []\n }\n }\n\n @Mutation\n private DEL_ALL_VISITED_VIEWS() {\n // keep affix tags\n const affixTags = this.visitedViews.filter(tag => tag.meta.affix)\n this.visitedViews = affixTags\n }\n\n @Mutation\n private DEL_ALL_CACHED_VIEWS() {\n this.cachedViews = []\n }\n\n @Mutation\n private UPDATE_VISITED_VIEW(view: ITagView) {\n for (let v of this.visitedViews) {\n if (v.path === view.path) {\n v = Object.assign(v, view)\n break\n }\n }\n }\n\n @Action\n public addView(view: ITagView) {\n this.ADD_VISITED_VIEW(view)\n this.ADD_CACHED_VIEW(view)\n }\n\n @Action\n public addVisitedView(view: ITagView) {\n this.ADD_VISITED_VIEW(view)\n }\n\n @Action\n public delView(view: ITagView) {\n this.DEL_VISITED_VIEW(view)\n this.DEL_CACHED_VIEW(view)\n }\n\n @Action\n public delCachedView(view: ITagView) {\n this.DEL_CACHED_VIEW(view)\n }\n\n @Action\n public delOthersViews(view: ITagView) {\n this.DEL_OTHERS_VISITED_VIEWS(view)\n this.DEL_OTHERS_CACHED_VIEWS(view)\n }\n\n @Action\n public delAllViews() {\n this.DEL_ALL_VISITED_VIEWS()\n this.DEL_ALL_CACHED_VIEWS()\n }\n\n @Action\n public delAllCachedViews() {\n this.DEL_ALL_CACHED_VIEWS()\n }\n\n @Action\n public updateVisitedView(view: ITagView) {\n this.UPDATE_VISITED_VIEW(view)\n }\n}\n\nexport const TagsViewModule = getModule(TagsView)\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&id=31c3d88a&lang=scss&scoped=true&\""],"sourceRoot":""}
\ No newline at end of file
+{"version":3,"sources":["webpack:///webpack/bootstrap","webpack:///./src/layout/components/Settings/index.vue?e22b","webpack:///./src/layout/components/Sidebar/index.vue?d9f3","webpack:///./src/layout/components/Sidebar/SidebarLogo.vue?0e33","webpack:///./src/components/RightPanel/index.vue?1b2c","webpack:///./src/layout/components/Sidebar/index.vue?427e","webpack:///./src/store/index.ts","webpack:///./src/components/LangSelect/index.vue?9a5c","webpack:///./src/components/LangSelect/index.vue?e88c","webpack:///./src/components/LangSelect/index.vue?17c2","webpack:///./src/components/LangSelect/index.vue","webpack:///./src/utils/permission.ts","webpack:///./src/layout/components/TagsView/ScrollPane.vue?d787","webpack:///./src/styles/element-variables.scss?0651","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?e8a9","webpack:///./src/components/Breadcrumb/index.vue?1fda","webpack:///./src/components/ErrorLog/index.vue?cde2","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?2ce7","webpack:///./src/utils/Extend.ts","webpack:///./src/utils/cookies.ts","webpack:///./src/layout/components/TagsView/ScrollPane.vue?6587","webpack:///./src/components/ThemePicker/index.vue?361b","webpack:///./src/lang/en.ts","webpack:///./src/lang/zh.ts","webpack:///./src/lang/es.ts","webpack:///./src/lang/ja.ts","webpack:///./src/lang/ko.ts","webpack:///./src/lang/it.ts","webpack:///./src/lang/index.ts","webpack:///./src/components/ThemePicker/index.vue?7fab","webpack:///./src/layout/components/AppMain.vue?1989","webpack:///./src/store/modules/settings.ts","webpack:///./src/store/modules/permission.ts","webpack:///./src/settings.ts","webpack:///./src/components/RightPanel/index.vue?9a67","webpack:///./src/layout/components/TagsView/ScrollPane.vue?f788","webpack:///./src/api/admins.ts","webpack:///./src/layout/components/TagsView/index.vue?de25","webpack:///./src/store/modules/user.ts","webpack:///./src/styles/_variables.scss","webpack:///./src/store/modules/app.ts","webpack:///./src/layout/components/Navbar/index.vue?838b","webpack:///./src/components/Hamburger/index.vue?750d","webpack:///./src/layout/index.vue?0512","webpack:///./src/layout/components/AppMain.vue?374d","webpack:///./src/layout/components/AppMain.vue?40de","webpack:///./src/layout/components/AppMain.vue?ba62","webpack:///./src/layout/components/AppMain.vue","webpack:///./src/layout/components/Navbar/index.vue?5e6d","webpack:///./src/components/Breadcrumb/index.vue?03e3","webpack:///./src/components/Breadcrumb/index.vue?12bf","webpack:///./src/components/Breadcrumb/index.vue?db4b","webpack:///./src/components/Breadcrumb/index.vue","webpack:///./src/components/ErrorLog/index.vue?24a9","webpack:///./src/store/modules/error-log.ts","webpack:///./src/components/ErrorLog/index.vue?b810","webpack:///./src/components/ErrorLog/index.vue?5c58","webpack:///./src/components/ErrorLog/index.vue","webpack:///./src/components/Hamburger/index.vue?2027","webpack:///./src/components/Hamburger/index.vue?8de9","webpack:///./src/components/Hamburger/index.vue?6557","webpack:///./src/components/Hamburger/index.vue","webpack:///./src/components/HeaderSearch/index.vue?2be0","webpack:///./src/components/HeaderSearch/index.vue?31aa","webpack:///./src/components/HeaderSearch/index.vue?6f38","webpack:///./src/components/HeaderSearch/index.vue","webpack:///./src/components/Screenfull/index.vue?948f","webpack:///./src/components/Screenfull/index.vue?ca69","webpack:///./src/components/Screenfull/index.vue?cba9","webpack:///./src/components/Screenfull/index.vue","webpack:///./src/components/SizeSelect/index.vue?5ffa","webpack:///./src/components/SizeSelect/index.vue?1aed","webpack:///./src/components/SizeSelect/index.vue?03ec","webpack:///./src/components/SizeSelect/index.vue","webpack:///./src/layout/components/Navbar/index.vue?9a5d","webpack:///./src/layout/components/Navbar/index.vue?9362","webpack:///./src/layout/components/Navbar/index.vue","webpack:///./src/layout/components/Settings/index.vue?b93e","webpack:///./src/components/ThemePicker/index.vue?293c","webpack:///./src/components/ThemePicker/index.vue?a6ad","webpack:///./src/components/ThemePicker/index.vue?5987","webpack:///./src/components/ThemePicker/index.vue","webpack:///./src/layout/components/Settings/index.vue?bbb9","webpack:///./src/layout/components/Settings/index.vue?66a9","webpack:///./src/layout/components/Settings/index.vue","webpack:///./src/layout/components/Sidebar/index.vue?cbf4","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?f6b8","webpack:///./src/utils/validate.ts","webpack:///./src/layout/components/Sidebar/SidebarItemLink.vue?77e9","webpack:///./src/layout/components/Sidebar/SidebarItemLink.vue?9406","webpack:///./src/layout/components/Sidebar/SidebarItemLink.vue?0e65","webpack:///./src/layout/components/Sidebar/SidebarItemLink.vue","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?2bba","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?e261","webpack:///./src/layout/components/Sidebar/SidebarItem.vue","webpack:///./src/layout/components/Sidebar/SidebarLogo.vue?618b","webpack:///./src/layout/components/Sidebar/SidebarLogo.vue?3328","webpack:///./src/layout/components/Sidebar/SidebarLogo.vue?f717","webpack:///./src/layout/components/Sidebar/SidebarLogo.vue","webpack:///./src/layout/components/Sidebar/index.vue?3a34","webpack:///./src/layout/components/Sidebar/index.vue?a172","webpack:///./src/layout/components/Sidebar/index.vue","webpack:///./src/layout/components/TagsView/index.vue?5da6","webpack:///./src/layout/components/TagsView/ScrollPane.vue?7261","webpack:///./src/layout/components/TagsView/ScrollPane.vue?9f04","webpack:///./src/layout/components/TagsView/ScrollPane.vue?2c29","webpack:///./src/layout/components/TagsView/ScrollPane.vue","webpack:///./src/layout/components/TagsView/index.vue?db3e","webpack:///./src/layout/components/TagsView/index.vue?d9d5","webpack:///./src/layout/components/TagsView/index.vue","webpack:///./src/components/RightPanel/index.vue?7303","webpack:///./src/components/RightPanel/index.vue?9d03","webpack:///./src/components/RightPanel/index.vue?b2ad","webpack:///./src/components/RightPanel/index.vue","webpack:///./src/layout/mixin/resize.ts","webpack:///./src/layout/index.vue?8696","webpack:///./src/layout/index.vue?5d14","webpack:///./src/layout/index.vue","webpack:///./src/router/modules/system.ts","webpack:///./src/router/modules/marketing.ts","webpack:///./src/router/modules/question.ts","webpack:///./src/router/modules/shop.ts","webpack:///./src/router/modules/game.ts","webpack:///./src/router/modules/statics.ts","webpack:///./src/router/index.ts","webpack:///./src/styles/index.scss?5214","webpack:///./src/utils/request.ts","webpack:///./src/layout/components/Sidebar/index.vue?569c","webpack:///./src/layout/index.vue?a71d","webpack:///./src/utils/storage.ts","webpack:///./src/components/RightPanel/index.vue?3ce2","webpack:///./src/layout/components/TagsView/index.vue?1d70","webpack:///./src/App.vue?dce3","webpack:///./src/App.vue?376d","webpack:///./src/App.vue?8d29","webpack:///./src/App.vue","webpack:///./src/icons/components/404.ts","webpack:///./src/icons/components/admin.ts","webpack:///./src/icons/components/announce.ts","webpack:///./src/icons/components/back-top.ts","webpack:///./src/icons/components/bug.ts","webpack:///./src/icons/components/chart.ts","webpack:///./src/icons/components/clipboard.ts","webpack:///./src/icons/components/component.ts","webpack:///./src/icons/components/coupon.ts","webpack:///./src/icons/components/dashboard.ts","webpack:///./src/icons/components/documentation.ts","webpack:///./src/icons/components/drag.ts","webpack:///./src/icons/components/edit.ts","webpack:///./src/icons/components/education.ts","webpack:///./src/icons/components/email.ts","webpack:///./src/icons/components/example.ts","webpack:///./src/icons/components/excel.ts","webpack:///./src/icons/components/exit-fullscreen.ts","webpack:///./src/icons/components/eye-off.ts","webpack:///./src/icons/components/eye-on.ts","webpack:///./src/icons/components/form.ts","webpack:///./src/icons/components/fullscreen.ts","webpack:///./src/icons/components/game.ts","webpack:///./src/icons/components/guide-2.ts","webpack:///./src/icons/components/guide.ts","webpack:///./src/icons/components/hamburger.ts","webpack:///./src/icons/components/icon.ts","webpack:///./src/icons/components/international.ts","webpack:///./src/icons/components/language.ts","webpack:///./src/icons/components/like.ts","webpack:///./src/icons/components/link.ts","webpack:///./src/icons/components/list.ts","webpack:///./src/icons/components/lock.ts","webpack:///./src/icons/components/lottery.ts","webpack:///./src/icons/components/mail.ts","webpack:///./src/icons/components/message.ts","webpack:///./src/icons/components/money.ts","webpack:///./src/icons/components/nested.ts","webpack:///./src/icons/components/password.ts","webpack:///./src/icons/components/pdf.ts","webpack:///./src/icons/components/people.ts","webpack:///./src/icons/components/peoples.ts","webpack:///./src/icons/components/permission.ts","webpack:///./src/icons/components/points.ts","webpack:///./src/icons/components/promo.ts","webpack:///./src/icons/components/qq.ts","webpack:///./src/icons/components/question_list.ts","webpack:///./src/icons/components/role.ts","webpack:///./src/icons/components/search.ts","webpack:///./src/icons/components/sell.ts","webpack:///./src/icons/components/share.ts","webpack:///./src/icons/components/shop_list.ts","webpack:///./src/icons/components/shop.ts","webpack:///./src/icons/components/shopping.ts","webpack:///./src/icons/components/size.ts","webpack:///./src/icons/components/skill.ts","webpack:///./src/icons/components/star.ts","webpack:///./src/icons/components/statistics.ts","webpack:///./src/icons/components/tab.ts","webpack:///./src/icons/components/table.ts","webpack:///./src/icons/components/theme.ts","webpack:///./src/icons/components/theme2.ts","webpack:///./src/icons/components/tree-table.ts","webpack:///./src/icons/components/tree.ts","webpack:///./src/icons/components/user.ts","webpack:///./src/icons/components/wechat.ts","webpack:///./src/icons/components/zip.ts","webpack:///./src/permission.ts","webpack:///./src/directives/clipboard/index.ts","webpack:///./src/directives/permission/index.ts","webpack:///./src/directives/el-draggable-dialog/index.ts","webpack:///./src/directives/waves/index.ts","webpack:///./src/directives/role/index.ts","webpack:///./src/filters/index.ts","webpack:///./src/main.ts","webpack:///./src/utils/index.ts","webpack:///./src/components/HeaderSearch/index.vue?c1ac","webpack:///./src/layout/components/Sidebar/SidebarItem.vue?b1f4","webpack:///./src/store/modules/tags-view.ts","webpack:///./src/layout/components/TagsView/index.vue?3503"],"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","use","Store","render","_vm","this","_h","$createElement","_c","_self","staticClass","attrs","on","handleSetLanguage","slot","language","_v","staticRenderFns","lang","$i18n","locale","SetLanguage","documentElement","title","$route","meta","$t","settings","$message","toString","component","checkPermission","Array","permissions","hasPermission","sub","subArr","split","defineProperties","Date","addDays","days","getTime","writable","CanvasRenderingContext2D","roundRect","x","y","w","h","minSize","Math","min","beginPath","moveTo","arcTo","strokeStyle","stroke","closePath","cloneTo","b","len","appendTo","pushOnce","idx","indexOf","zremove","spliceOne","index","randomSort","random","randomInsert","arr","forEach","randomGet","temp","count","shuffled","floor","randomOne","results","randomRemove","moveElement","abs","concat","union","a","Set","intersect","set0","set1","filter","has","difference","Map","inc","set","sidebarStatusKey","getSidebarStatus","setSidebarStatus","sidebarStatus","languageKey","getLanguage","setLanguage","sizeKey","getSize","setSize","size","miniKey","getMini","setMini","mini","tokenKey","getToken","setToken","token","removeToken","remove","route","dashboard","system","adminuser","documentation","guide","permission","pagePermission","rolePermission","directivePermission","icons","components","tinymce","markdown","jsonEditor","splitPane","avatarUpload","dropzone","sticky","countTo","componentMixin","backToTop","draggableDialog","draggableKanban","draggableList","draggableSelect","charts","barChart","lineChart","mixedChart","example","nested","menu1","menu2","table","dynamicTable","draggableTable","inlineEditTable","complexTable","tab","form","createArticle","editArticle","articleList","errorPages","page401","page404","errorLog","excel","exportExcel","selectExcel","mergeHeader","uploadExcel","zip","pdf","exportZip","theme","clipboard","i18n","externalLink","profile","article","marketing","marketing_coupon","marketing_coupon_info","marketing_promo","marketing_points","question","question_list","question_prepare","question_setting","createQuestion","shop","shop_list","shop_admin","create_shop","shop_edit","game_setting","game","game_list","game_edit","activity_list","create_activity","edit_activity","exam_list","create_exam","edit_exam","password","edit_theme","shop_member","shop_statistics","game_statistics","shop_puzzles","shop_lottery","shop_share","shop_mail","create_mail","edit_mail","shop_announce","create_announce","edit_announce","navbar","logOut","github","login","logIn","username","any","thirdparty","thirdpartyTips","createRole","editPermission","roles","switchRoles","tips","delete","confirm","cancel","description","button","tinymceTips","stickyTips","backToTopTips1","backToTopTips2","imageUploadTips","changeLanguageTips","dynamicTips1","dynamicTips2","dragTips1","dragTips2","importance","remark","search","add","export","reviewer","id","date","author","readings","status","actions","edit","publish","draft","warning","selectedExport","placeholder","change","tagsView","refresh","close","closeOthers","closeAll","showTagsView","showSidebarLogo","fixedHeader","sidebarTextTheme","admin","addAdmin","editAdmin","main","toasts","switchLanguage","messages","en","zh","es","ja","ko","it","cookieLanguage","navigator","toLowerCase","locales","keys","Settings","showSettings","payload","CHANGE_SETTING","dynamic","store","SettingsModule","hasRole","some","role","includes","defaultPublic","filterAsyncRoutes","routes","res","children","Permission","dynamicRoutes","accessedRoutes","SET_ROUTES","PermissionModule","devServerPort","mockServerPort","defaultAdmin","showname","comment","locked","level","sex","avatar","department","getAdminInfo","url","method","logout","saveAdmin","deleteAdmin","uid","changeLocker","lock","getUsers","params","changePass","changeInfo","User","introduction","email","deptname","userInfo","trim","SET_TOKEN","SET_ROLES","SET_PERMISSIONS","SET_NAME","SET_AVATAR","SET_INTRODUCTION","SET_DEPARTMENT","SET_LEVEL","SET_DEPTNAME","SET_SEX","GetUserInfo","GenerateRoutes","addRoutes","delAllViews","UserModule","DeviceType","App","sidebar","opened","withoutAnimation","device","Desktop","Number","TOGGLE_SIDEBAR","CLOSE_SIDEBAR","TOGGLE_DEVICE","SET_LANGUAGE","SET_SIZE","SET_MINI","CloseSideBar","AppModule","class","classObj","mobile","handleClickOutside","_e","hasTagsView","cachedViews","path","toggleSideBar","_s","nativeOn","$event","staticStyle","_l","item","redirect","breadcrumbs","preventDefault","handleLink","startsWith","getBreadcrumb","matched","first","isDashboard","breadcrumb","toLocaleLowerCase","toPath","$router","warn","pathCompile","errorLogs","dialogTableVisible","clearAll","scopedSlots","_u","fn","ref","row","vm","$vnode","info","stack","logs","log","ADD_ERROR_LOG","CLEAR_ERROR_LOG","ErrorLogModule","ClearErrorLog","isActive","toggleClick","$emit","default","show","stopPropagation","click","querySearch","model","callback","$$v","expression","join","options","searchPool","generateRoutes","initFuse","body","addEventListener","removeEventListener","$refs","headerSearchSelect","focus","blur","$nextTick","list","fuse","shouldSort","threshold","location","distance","minMatchCharLength","weight","basePath","prefixTitle","router","hidden","i18ntitle","tempRoutes","query","map","isFullscreen","sf","isEnabled","off","toggle","handleSetSize","label","sizeOptions","$ELEMENT","SetSize","refreshView","delAllCachedViews","fullPath","replace","ToggleSideBar","LogOut","Breadcrumb","ErrorLog","Hamburger","HeaderSearch","LangSelect","Screenfull","SizeSelect","themeChange","version","ORIGINAL_THEME","chalk","oldValue","themeCluster","getThemeCluster","originalCluster","customClass","duration","iconClass","getCSSString","getHandler","variable","newStyle","updateStyle","styleTag","getElementById","innerText","chalkHandler","styles","querySelectorAll","style","text","RegExp","test","oldCluster","newCluster","color","xhr","XMLHttpRequest","onreadystatechange","readyState","responseText","open","send","tintColor","tint","red","parseInt","green","blue","round","shadeColor","shade","clusters","toFixed","immediate","ChangeSetting","ThemePicker","showLogo","isCollapse","activeMenu","variables","menuBg","menuText","menuActiveTextColor","isFirstLevel","alwaysShowRootMenu","theOnlyOneChild","resolvePath","icon","elicon","child","isExternal","to","_t","required","alwaysShow","showingChildren","showingChildNumber","routePath","SidebarItemLink","collapse","menuActiveText","SidebarItem","SidebarLogo","handleScroll","refInFor","isAffix","closeSelectedTag","openMenu","directives","rawName","left","top","refreshSelectedTag","selectedTag","closeOthersTags","closeAllTags","tagSpacing","scrollContainer","wrap","scrollWrapper","emitScroll","eventDelta","wheelDelta","deltaY","scrollLeft","currentTag","container","$el","containerWidth","offsetWidth","tagList","$parent","firstTag","lastTag","scrollWidth","currentIndex","findIndex","prevTag","nextTag","afterNextTagOffsetLeft","offsetLeft","beforePrevTagOffsetLeft","visible","affixTags","visitedViews","addTags","moveToCurrentTag","closeMenu","initTags","affix","tags","tagPath","childTags","filterAffixTags","addVisitedView","addView","scrollPane","moveToTarget","updateVisitedView","view","delCachedView","delView","toLastView","delOthersViews","latestView","menuMinWidth","getBoundingClientRect","maxLeft","clientX","clientY","ScrollPane","buttonTop","clickNotClose","addEventClick","insertToBody","elx","rightPanel","closeSidebar","ev","parent","closest","querySelector","insertBefore","firstChild","WIDTH","Mobile","resizeHandler","isMobile","ToggleDevice","rect","width","hideSidebar","openSidebar","AppMain","Navbar","RightPanel","Sidebar","TagsView","systemRoutes","marketingRoutes","questionRoutes","shopRoutes","gameRoutes","staticsRoutes","statics","constantRoutes","noCache","asyncRoutes","scrollBehavior","from","savedPosition","base","resetRouter","newRouter","matcher","service","baseURL","interceptors","config","headers","authorization","response","msg","confirmButtonText","cancelButtonText","ResetToken","reload","local","val","localStorage","getItem","JSON","parse","setItem","stringify","install","vue","$local","LAST_SHOP","SetMini","updatePageToken","register","height","viewBox","configure","showSpinner","whiteList","hasKey","te","pageName","beforeEach","_","next","start","done","afterEach","successCallback","errorCallback","clipboardInstance","inserted","el","binding","display","elDraggableDialog","vnode","dragDom","dialogHeaderEl","cssText","onmousedown","styleLeft","styleTop","disX","disY","offsetTop","dragDomWidth","dragDomHeight","offsetHeight","screenWidth","clientWidth","screenHeight","clientHeight","minDragDomLeft","maxDragDomLeft","minDragDomTop","maxDragDomTop","styleLeftStr","getComputedStyle","styleTopStr","onmousemove","componentInstance","elm","dispatchEvent","CustomEvent","onmouseup","customOpts","assign","opts","ele","position","overflow","ripple","className","max","pageY","scrollTop","pageX","backgroundColor","arg","action","update","unbind","destroy","permissionRoles","articleStatusFilter","statusMap","published","deleted","uppercaseFirstChar","str","charAt","toUpperCase","tagName","defaultWidth","defaultHeight","directive","productionTip","$mount","parseTime","time","cFormat","format","formatObj","getFullYear","getMonth","getDate","getHours","getMinutes","getSeconds","getDay","padStart","sec2TimeStr","sec","showSeconds","timeStr2Sec","vals","formatJson","filterKeys","jsonData","hasClass","match","addClass","removeClass","reg","toggleClass","classString","nameIndex","substr","delay","getParameter","hash","v","entries","ADD_VISITED_VIEW","ADD_CACHED_VIEW","DEL_VISITED_VIEW","DEL_CACHED_VIEW","DEL_OTHERS_VISITED_VIEWS","DEL_OTHERS_CACHED_VIEWS","DEL_ALL_VISITED_VIEWS","DEL_ALL_CACHED_VIEWS","UPDATE_VISITED_VIEW","TagsViewModule"],"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,IAAM,MAAM,IAAM,MAAM,gBAAgB,gBAAgB,UAAY,YAAY,YAAY,YAAY,MAAQ,QAAQ,QAAU,UAAU,SAAW,WAAW,MAAQ,SAAS9B,IAAUA,GAAW,IAAM,CAAC,IAAM,WAAW,IAAM,WAAW,gBAAgB,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,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,UAAY,WAAW,YAAY,WAAW,MAAQ,WAAW,QAAU,WAAW,SAAW,WAAW,MAAQ,YAAYA,GAAW,MAIj0C,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,IAAM,EAAE,IAAM,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,iBAAiB,EAAE,UAAY,EAAE,YAAY,EAAE,MAAQ,EAAE,QAAU,EAAE,MAAQ,GAC/nBR,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,IAAM,MAAM,IAAM,MAAM,gBAAgB,gBAAgB,UAAY,YAAY,YAAY,YAAY,MAAQ,QAAQ,QAAU,UAAU,SAAW,WAAW,MAAQ,SAASxC,IAAUA,GAAW,IAAM,CAAC,IAAM,WAAW,IAAM,WAAW,gBAAgB,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,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,iBAAiB,WAAW,UAAY,WAAW,YAAY,WAAW,MAAQ,WAAW,QAAU,WAAW,SAAW,WAAW,MAAQ,YAAYA,GAAW,OACzyCyC,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,6EC1QT,W,oCCAA,W,oCCAA,W,oCCAA,W,uBCCAc,EAAOD,QAAU,CAAC,OAAS,UAAU,SAAW,UAAU,eAAiB,Y,oCCD3E,4BAKA,aAAIkF,IAAI,QAQO,WAAI,OAAKC,MAAkB,K,2DCb1C,IAAIC,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACE,YAAY,gBAAgBC,MAAM,CAAC,QAAU,SAASC,GAAG,CAAC,QAAUR,EAAIS,oBAAoB,CAACL,EAAG,MAAM,CAACA,EAAG,WAAW,CAACE,YAAY,qBAAqBC,MAAM,CAAC,KAAO,eAAe,GAAGH,EAAG,mBAAmB,CAACG,MAAM,CAAC,KAAO,YAAYG,KAAK,YAAY,CAACN,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAA0B,OAAfP,EAAIW,SAAgB,QAAU,OAAO,CAACX,EAAIY,GAAG,UAAUR,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAA0B,OAAfP,EAAIW,SAAgB,QAAU,OAAO,CAACX,EAAIY,GAAG,eAAeR,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAA0B,OAAfP,EAAIW,SAAgB,QAAU,OAAO,CAACX,EAAIY,GAAG,eAAeR,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAA0B,OAAfP,EAAIW,SAAgB,QAAU,OAAO,CAACX,EAAIY,GAAG,WAAWR,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAA0B,OAAfP,EAAIW,SAAgB,QAAU,OAAO,CAACX,EAAIY,GAAG,WAAWR,EAAG,mBAAmB,CAACG,MAAM,CAAC,SAA0B,OAAfP,EAAIW,SAAgB,QAAU,OAAO,CAACX,EAAIY,GAAG,iBAAiB,IAAI,IAC/7BC,EAAkB,G,0IC2DtB,0KACE,WACE,OAAO,OAAUF,WAFrB,+BAKU,SAAkBG,GACxBb,KAAKc,MAAMC,OAASF,EACpB,OAAUG,YAAYH,GACtBvF,SAAS2F,gBAAgBJ,KAAOA,EAChC,IAAMK,EAAQlB,KAAKmB,OAAOC,KAAKF,MAAjB,UAA4BlB,KAAKqB,GAAL,gBAAiBrB,KAAKmB,OAAOC,KAAKF,QAA9D,cAA4EI,EAAA,KAASJ,OAArF,UAAkGI,EAAA,KAASJ,OACzH5F,SAAS4F,MAAQA,EACjBlB,KAAKuB,SAAS,CACZ5D,QAASqC,KAAKqB,GAAG,iCAAiCG,WAClDzF,KAAM,gBAbZ,GAA6B,QAA7B,kBAHC,eAAU,CACT6B,KAAM,WAkBP,G,QC5E6hB,I,YCO1hB6D,EAAY,eACd,EACA3B,EACAc,GACA,EACA,KACA,KACA,MAIa,OAAAa,E,wLCFFC,EAAkB,SAAC/C,GAC9B,GAAIA,GAASA,aAAiBgD,OAAShD,EAAM1F,OAAS,EAAG,CACvD,IADuD,EACjD2I,EAAc,OAAWA,YAC3BC,GAAgB,EAFmC,iBAGrClD,GAHqC,IAGvD,2BAAyB,KAAdmD,EAAc,QACvB,GAAY,MAARA,EAAa,CACfD,GAAgB,EAChB,MAEF,IAAME,EAASD,EAAIE,MAAM,KACzB,GAAkB,MAAdD,EAAO,GAAY,wBACLH,GADK,IACrB,2BAA6B,KAAlBnH,EAAkB,QAC3B,GAAa,MAATA,EAAE,IAAcA,EAAE,KAAOsH,EAAO,GAAI,CACtCF,GAAgB,EAChB,QAJiB,oCAOhB,GAAkB,MAAdE,EAAO,GAAY,wBACZH,GADY,IAC5B,2BAA6B,KAAlB,EAAkB,QAC3B,GAAa,MAAT,EAAE,IAAc,EAAE,KAAOG,EAAO,GAAI,CACtCF,GAAgB,EAChB,QAJwB,mCAOvB,wBACWD,GADX,IACL,2BAA6B,KAAlB,EAAkB,QAC3B,GAAc,MAAT,EAAE,IAAuB,MAAT,EAAE,IACX,MAAT,EAAE,IAAc,EAAE,KAAOG,EAAO,IAChC,EAAE,KAAOA,EAAO,IAAe,MAAT,EAAE,IACxB,EAAE,KAAOA,EAAO,IAAM,EAAE,KAAOA,EAAO,GAAK,CAC5CF,GAAgB,EAChB,QAPC,+BAWP,GAAIA,EACF,OAnCmD,8BAsCvD,OAAOA,EAGP,OADAtC,QAAQjC,MAAM,yDACP,I,6DC1DX,W,uBCCA3C,EAAOD,QAAU,CAAC,OAAS,UAAU,SAAW,UAAU,eAAiB,UAAU,MAAQ,Y,oFCD7F,W,kCCAA,W,oCCAA,W,yECCAC,EAAOD,QAAU,CAAC,OAAS,UAAU,SAAW,UAAU,eAAiB,Y,0MCQ3ExB,OAAO+I,iBAAiBC,KAAK/I,UAAW,CACtCgJ,QAAS,CACPxD,MAAO,SAASyD,GACd,OAAO,IAAIF,KAAKlC,KAAKqC,UAAmB,KAAPD,EAAc,GAAK,MAEtDE,UAAU,KAMdpJ,OAAO+I,iBAAiBM,yBAAyBpJ,UAAW,CAC1DqJ,UAAW,CACT7D,MAAO,SAAS8D,EAAWC,EAAWC,EAAWC,EAAWpE,GAC1D,IAAMqE,EAAUC,KAAKC,IAAIJ,EAAGC,GAY5B,OAXIpE,EAAIqE,EAAU,IAAGrE,EAAIqE,EAAU,GAEnC7C,KAAKgD,YACLhD,KAAKiD,OAAOR,EAAIjE,EAAGkE,GACnB1C,KAAKkD,MAAMT,EAAIE,EAAGD,EAAGD,EAAIE,EAAGD,EAAIE,EAAGpE,GACnCwB,KAAKkD,MAAMT,EAAIE,EAAGD,EAAIE,EAAGH,EAAGC,EAAIE,EAAGpE,GACnCwB,KAAKkD,MAAMT,EAAGC,EAAIE,EAAGH,EAAGC,EAAGlE,GAC3BwB,KAAKkD,MAAMT,EAAGC,EAAGD,EAAIE,EAAGD,EAAGlE,GAC3BwB,KAAKmD,YAAc,OACnBnD,KAAKoD,SACLpD,KAAKqD,YACErD,MAETsC,UAAU,KA+GdpJ,OAAO+I,iBAAiBN,MAAMxI,UAAW,CACvCmK,QAAS,CACP3E,MAAO,SAAwB4E,GAC7BA,EAAEtK,OAAS+G,KAAK/G,OAChB,IAAMuK,EAAMxD,KAAK/G,OACjBsK,EAAEtK,OAASuK,EACX,IAAK,IAAIzK,EAAI,EAAGA,EAAIyK,EAAKzK,IACvBwK,EAAExK,GAAKiH,KAAKjH,IAGhBuJ,UAAU,GAEZmB,SAAU,CACR9E,MAAO,SAAwB4E,GAE7B,IADA,IAAMC,EAAMxD,KAAK/G,OACRF,EAAI,EAAGA,EAAIyK,EAAKzK,IACvBwK,EAAEhK,KAAKyG,KAAKjH,KAGhBuJ,UAAU,GAEZoB,SAAU,CACR/E,MAAO,SAAwBC,GAC7B,IAAI+E,EAAM3D,KAAK4D,QAAQhF,GAKvB,OAJM+E,IACJA,EAAM3D,KAAK/G,OACX+G,KAAKzG,KAAKqF,IAEL+E,GAETrB,UAAU,GAEZuB,QAAS,CACPlF,MAAO,SAAwBC,GAC7B,IAAM+E,EAAM3D,KAAK4D,QAAQhF,GACzB,SAAK+E,IACH3D,KAAK7F,OAAOwJ,EAAK,IACV,IAIXrB,UAAU,GAEZwB,UAAW,CACTnF,MAAO,SAASoF,GACd,IAAe,IAAXA,GAAgBA,GAAS/D,KAAK/G,OAChC,OAAO,EAGT,IADA,IAAMuK,EAAMxD,KAAK/G,OAAS,EACjBF,EAAIgL,EAAOhL,EAAIyK,EAAKzK,IAC3BiH,KAAKjH,GAAKiH,KAAKjH,EAAI,GAGrB,OADAiH,KAAK/G,OAASuK,GACP,GAETlB,UAAU,GAGZ0B,WAAY,CACVrF,MAAO,WACL,IAAK,IAAI1E,EAAGwI,EAAG1J,EAAIiH,KAAK/G,OAAQF,EAAGkB,EAAK6I,KAAKmB,SAAWlL,EAAK,EAAG0J,EAAIzC,OAAOjH,GAAIiH,KAAKjH,GAAKiH,KAAK/F,GAAI+F,KAAK/F,GAAKwI,KAE9GH,UAAU,GAEZ4B,aAAc,CACZvF,MAAO,SAAawF,GAAa,WACzBlL,EAAS+G,KAAK/G,OACpBkL,EAAIC,SAAQ,SAAAzF,GACV,EAAKxE,OAAO2I,KAAKmB,SAAWhL,EAAQ,EAAG0F,OAG3C2D,UAAU,GAEZ+B,UAAW,CACT1F,MAAO,WAAsB,IAIvB2F,EACAP,EALcQ,EAAS,uDAAD,EACpBC,EAAgBxE,KAAKL,MAAM,GAC7B5G,EAAIiH,KAAK/G,OACP8J,EAAMhK,EAAIwL,EAGhB,GAAIxB,EAAM,EACR,OAAOyB,EAET,MAAOzL,KAAMgK,EACXgB,EAAQjB,KAAK2B,OAAO1L,EAAI,GAAK+J,KAAKmB,UAClCK,EAAOE,EAAST,GAChBS,EAAST,GAASS,EAASzL,GAC3ByL,EAASzL,GAAKuL,EAEhB,OAAOE,EAAS7E,MAAMoD,IAExBT,UAAU,GAEZoC,UAAW,CACT/F,MAAO,WACL,IAAMgG,EAAU3E,KAAKqE,UAAU,GAC/B,OAAIM,EAAQ1L,OAAS,EACZ0L,EAAQ,GAER,MAGXrC,UAAU,GAEZsC,aAAc,CACZjG,MAAO,WAAsB,IAAT4F,EAAS,uDAAD,EACpBzK,EAAS,GACf,MAAOyK,KAAU,GAAKvE,KAAK/G,OAAS,EAAG,CACrC,IAAM8K,EAASjB,KAAKmB,SAAWjE,KAAK/G,OAAU,EAC9Ca,EAAOP,KAAP,MAAAO,EAAM,EAASkG,KAAK7F,OAAO4J,EAAO,KAEpC,OAAOjK,GAETwI,UAAU,GAGZuC,YAAa,CACXlG,MAAO,SAAaQ,GAElB,OADI2D,KAAKgC,IAAI3F,GAAKa,KAAK/G,SAAQkG,GAAQa,KAAK/G,QACrC+G,KAAKL,OAAOR,GAAG4F,OAAO/E,KAAKL,MAAM,GAAIR,KAE9CmD,UAAU,GAGZ0C,MAAO,CACLrG,MAAO,SAAwB4E,GAC7B,IAAM0B,EAAIjF,KAAK+E,OAAOxB,GACtB,SAAW,IAAI2B,IAAID,KAErB3C,UAAU,GAGZ6C,UAAW,CACTxG,MAAO,SAAwB4E,GAC7B,IAAM6B,EAAO,IAAIF,IAAI3B,GACf8B,EAAO,IAAIH,IAAIlF,KAAKsF,QAAO,SAAA7C,GAAC,OAAI2C,EAAKG,IAAI9C,OAC/C,SAAW4C,IAEb/C,UAAU,GAGZkD,WAAY,CACV7G,MAAO,SAAwB4E,GAC7B,IAAM6B,EAAO,IAAIF,IAAI3B,GACf8B,EAAO,IAAIH,IAAIlF,KAAKsF,QAAO,SAAA7C,GAAC,OAAK2C,EAAKG,IAAI9C,OAChD,SAAW4C,IAEb/C,UAAU,KAedpJ,OAAO+I,iBAAiBwD,IAAItM,UAAW,CACrCuM,IAAK,CACH/G,MAAO,SAAgBM,EAAQ,GAM7B,MALqB,kBAAV,EACTe,KAAK2F,IAAI1G,GAAMe,KAAKzB,IAAIU,IAAQ,GAAK,GAErCe,KAAK2F,IAAI1G,EAAK,GAETe,KAAKzB,IAAIU,Q,kCC9TtB,+YAGM2G,EAAmB,iBACZC,EAAmB,kBAAM,IAAQtH,IAAIqH,IACrCE,EAAmB,SAACC,GAAD,OAA2B,IAAQJ,IAAIC,EAAkBG,IAEnFC,EAAc,WACPC,EAAc,kBAAM,IAAQ1H,IAAIyH,IAChCE,EAAc,SAACxF,GAAD,OAAsB,IAAQiF,IAAIK,EAAatF,IAEpEyF,EAAU,OACHC,EAAU,kBAAM,IAAQ7H,IAAI4H,IAC5BE,EAAU,SAACC,GAAD,OAAkB,IAAQX,IAAIQ,EAASG,IAExDC,EAAU,OACHC,EAAU,kBAAM,IAAQjI,IAAIgI,IAC5BE,EAAU,SAACC,GAAD,OAAkB,IAAQf,IAAIY,EAASG,IAGxDC,EAAW,oCACJC,EAAW,kBAAM,IAAQrI,IAAIoI,IAC7BE,EAAW,SAACC,GAAD,OAAmB,IAAQnB,IAAIgB,EAAUG,IACpDC,EAAc,kBAAM,IAAQC,OAAOL,K,oCCvBhD,W,8CCCAhM,EAAOD,QAAU,CAAC,OAAS,UAAU,SAAW,UAAU,eAAiB,Y,yPCD5D,GACbuM,MAAO,CACLC,UAAW,YACXC,OAAQ,SACRC,UAAW,QACXC,cAAe,gBACfC,MAAO,QACPC,WAAY,aACZC,eAAgB,kBAChBC,eAAgB,kBAChBC,oBAAqB,uBACrBC,MAAO,QACPC,WAAY,aACZC,QAAS,UACTC,SAAU,WACVC,WAAY,cACZC,UAAW,YACXC,aAAc,gBACdC,SAAU,WACVC,OAAQ,SACRC,QAAS,WACTC,eAAgB,QAChBC,UAAW,cACXC,gBAAiB,mBACjBC,gBAAiB,mBACjBC,cAAe,iBACfC,gBAAiB,mBACjBC,OAAQ,SACRC,SAAU,YACVC,UAAW,aACXC,WAAY,cACZC,QAAS,UACTC,OAAQ,gBACRC,MAAO,SACP,UAAW,WACX,UAAW,WACX,YAAa,aACb,YAAa,aACb,UAAW,WACXC,MAAO,SACPC,MAAO,QACPC,aAAc,gBACdC,eAAgB,kBAChBC,gBAAiB,oBACjBC,aAAc,gBACdC,IAAK,MACLC,KAAM,OACNC,cAAe,iBACfC,YAAa,eACbC,YAAa,eACbC,WAAY,cACZC,QAAS,MACTC,QAAS,MACTC,SAAU,YACVC,MAAO,QACPC,YAAa,eACbC,YAAa,kBACbC,YAAa,eACbC,YAAa,eACbC,IAAK,MACLC,IAAK,MACLC,UAAW,aACXC,MAAO,QACPC,UAAW,YACXC,KAAM,OACNC,aAAc,gBACdC,QAAS,UACTC,QAAS,UACTC,UAAW,YACXC,iBAAkB,SAClBC,sBAAuB,cACvBC,gBAAiB,aACjBC,iBAAkB,iBAClBC,SAAU,eACVC,cAAe,gBACfC,iBAAkB,gBAClBC,iBAAkB,mBAClBC,eAAgB,kBAChBC,KAAM,eACNC,UAAW,YACXC,WAAY,cACZC,YAAa,cACbC,UAAW,cACXC,aAAc,eACdC,KAAM,OACNC,UAAW,YACXC,UAAW,YACXC,cAAe,gBACfC,gBAAiB,eACjBC,cAAe,gBACfC,UAAW,YACXC,YAAa,WACbC,UAAW,YACXC,SAAU,WACVC,WAAY,aACZC,YAAa,gBACbC,gBAAiB,aACjBC,gBAAiB,kBACjBC,aAAc,iBACdC,aAAc,kBACdC,WAAY,gBACZC,UAAW,QACXC,YAAa,WACbC,UAAW,YACXC,cAAe,WACfC,gBAAiB,eACjBC,cAAe,iBAEjBC,OAAQ,CACNC,OAAQ,UACRrG,UAAW,YACXsG,OAAQ,SACR/C,MAAO,QACPnE,KAAM,cACNuE,QAAS,UACT2B,SAAU,YAEZiB,MAAO,CACLvM,MAAO,aACPwM,MAAO,QACPC,SAAU,WACVnB,SAAU,WACVoB,IAAK,MACLC,WAAY,kBACZC,eAAgB,qFAElBzG,cAAe,CACbA,cAAe,gBACfmG,OAAQ,qBAEVjG,WAAY,CACVwG,WAAY,WACZC,eAAgB,OAChBC,MAAO,aACPC,YAAa,eACbC,KAAM,0LACNC,OAAQ,SACRC,QAAS,UACTC,OAAQ,UAEVhH,MAAO,CACLiH,YAAa,gKACbC,OAAQ,cAEV5G,WAAY,CACVP,cAAe,gBACfoH,YAAa,6UACbC,WAAY,8EACZC,eAAgB,gHAChBC,eAAgB,uLAChBC,gBAAiB,4LACjBC,mBAAoB,2BAEtB3F,MAAO,CACL4F,aAAc,uCACdC,aAAc,0CACdC,UAAW,oBACXC,UAAW,2BACXhO,MAAO,QACPiO,WAAY,aACZpT,KAAM,OACNqT,OAAQ,SACRC,OAAQ,SACRC,IAAK,MACLC,OAAQ,SACRC,SAAU,WACVC,GAAI,KACJC,KAAM,OACNC,OAAQ,SACRC,SAAU,WACVC,OAAQ,SACRC,QAAS,UACTC,KAAM,OACNC,QAAS,UACTC,MAAO,QACP7B,OAAQ,SACRE,OAAQ,SACRD,QAAS,WAEXtF,QAAS,CACPmH,QAAS,qXAEXlG,SAAU,CACRmE,KAAM,sDACNI,YAAa,gUACblH,cAAe,yBAEjB4C,MAAO,CACLsF,OAAQ,SACRY,eAAgB,wBAChBC,YAAa,mDAEf9F,IAAK,CACHiF,OAAQ,SACRa,YAAa,6CAEf7F,IAAK,CACH4D,KAAM,2EAER1D,MAAO,CACL4F,OAAQ,eACRhJ,cAAe,sBACf8G,KAAM,iLAERmC,SAAU,CACRC,QAAS,UACTC,MAAO,QACPC,YAAa,eACbC,SAAU,aAEZpP,SAAU,CACRJ,MAAO,qBACPuJ,MAAO,cACPkG,aAAc,iBACdC,gBAAiB,eACjBC,YAAa,eACbC,iBAAkB,sBAEpBC,MAAO,CACLC,SAAU,YACVC,UAAW,cAEbnG,QAAS,CACPwE,IAAK,eAEPvE,UAAW,GAGXmG,KAAM,CACJzF,KAAM,SCrOK,GACbxE,MAAO,CACLC,UAAW,KACXG,cAAe,KACfF,OAAQ,KACRC,UAAW,MACXE,MAAO,MACPC,WAAY,OACZE,eAAgB,OAChBD,eAAgB,OAChBE,oBAAqB,OACrBC,MAAO,KACPC,WAAY,KACZC,QAAS,SACTC,SAAU,WACVC,WAAY,WACZC,UAAW,YACXC,aAAc,OACdC,SAAU,WACVC,OAAQ,SACRC,QAAS,WACTC,eAAgB,MAChBC,UAAW,OACXC,gBAAiB,SACjBC,gBAAiB,QACjBC,cAAe,QACfC,gBAAiB,QACjBC,OAAQ,KACRC,SAAU,OACVC,UAAW,MACXC,WAAY,OACZC,QAAS,OACTC,OAAQ,OACRC,MAAO,OACP,UAAW,SACX,UAAW,SACX,YAAa,WACb,YAAa,WACb,UAAW,SACXC,MAAO,OACPC,MAAO,KACPC,aAAc,OACdC,eAAgB,QAChBC,gBAAiB,QACjBC,aAAc,OACdC,IAAK,KACLC,KAAM,KACNC,cAAe,OACfC,YAAa,OACbC,YAAa,OACbC,WAAY,OACZC,QAAS,MACTC,QAAS,MACTC,SAAU,OACVC,MAAO,QACPC,YAAa,WACbC,YAAa,UACbC,YAAa,UACbC,YAAa,WACbC,IAAK,MACLC,IAAK,MACLC,UAAW,SACXC,MAAO,KACPC,UAAW,MACXC,KAAM,MACNC,aAAc,KACdC,QAAS,OACTC,QAAS,OACTC,UAAW,OACXC,iBAAkB,QAClBC,sBAAuB,QACvBC,gBAAiB,QACjBC,iBAAkB,OAClBC,SAAU,OACVC,cAAe,OACfC,iBAAkB,OAClBC,iBAAkB,OAClBC,eAAgB,OAChBC,KAAM,OACNC,UAAW,OACXC,WAAY,QACZC,YAAa,OACbC,UAAW,OACXC,aAAc,OACdC,KAAM,OACNC,UAAW,OACXC,UAAW,OACXC,cAAe,OACfC,gBAAiB,OACjBC,cAAe,OACfC,UAAW,OACXC,YAAa,OACbC,UAAW,OACXC,SAAU,OACVC,WAAY,SACZC,YAAa,OACbC,gBAAiB,KACjBC,gBAAiB,OACjBC,aAAc,QACdC,aAAc,OACdC,WAAY,OACZC,UAAW,KACXC,YAAa,MACbC,UAAW,OACXC,cAAe,KACfC,gBAAiB,OACjBC,cAAe,QAEjBC,OAAQ,CACNC,OAAQ,OACRrG,UAAW,KACXsG,OAAQ,OACR/C,MAAO,KACPnE,KAAM,OACNuE,QAAS,OACT2B,SAAU,QAEZiB,MAAO,CACLvM,MAAO,OACPwM,MAAO,KACPC,SAAU,KACVnB,SAAU,KACVoB,IAAK,MACLC,WAAY,QACZC,eAAgB,yBAElBzG,cAAe,CACbA,cAAe,KACfmG,OAAQ,aAEVjG,WAAY,CACVwG,WAAY,OACZC,eAAgB,OAChBC,MAAO,OACPC,YAAa,OACbC,KAAM,0GACNC,OAAQ,KACRC,QAAS,KACTC,OAAQ,MAEVhH,MAAO,CACLiH,YAAa,+CACbC,OAAQ,QAEV5G,WAAY,CACVP,cAAe,KACfoH,YAAa,qGACbC,WAAY,oBACZC,eAAgB,yBAChBC,eAAgB,oEAChBC,gBAAiB,iEACjBC,mBAAoB,UAEtB3F,MAAO,CACL4F,aAAc,iBACdC,aAAc,kBACdC,UAAW,OACXC,UAAW,QACXhO,MAAO,KACPiO,WAAY,MACZpT,KAAM,KACNqT,OAAQ,KACRC,OAAQ,KACRC,IAAK,KACLC,OAAQ,KACRC,SAAU,MACVC,GAAI,KACJC,KAAM,KACNC,OAAQ,KACRC,SAAU,MACVC,OAAQ,KACRC,QAAS,KACTC,KAAM,KACNC,QAAS,KACTC,MAAO,KACP7B,OAAQ,KACRE,OAAQ,MACRD,QAAS,OAEXtF,QAAS,CACPmH,QAAS,mLAEXlG,SAAU,CACRmE,KAAM,eACNI,YAAa,+GACblH,cAAe,QAEjB4C,MAAO,CACLsF,OAAQ,KACRY,eAAgB,SAChBC,YAAa,wBAEf9F,IAAK,CACHiF,OAAQ,KACRa,YAAa,kBAEf7F,IAAK,CACH4D,KAAM,mCAER1D,MAAO,CACL4F,OAAQ,KACRhJ,cAAe,OACf8G,KAAM,mEAERmC,SAAU,CACRC,QAAS,KACTC,MAAO,KACPC,YAAa,OACbC,SAAU,QAEZpP,SAAU,CACRJ,MAAO,SACPuJ,MAAO,MACPkG,aAAc,eACdC,gBAAiB,aACjBC,YAAa,YACbC,iBAAkB,YAEpBC,MAAO,CACLC,SAAU,KACVC,UAAW,MAEbnG,QAAS,CACPwE,IAAK,MAEP4B,KAAM,CACJzF,KAAM,OClOK,GACbxE,MAAO,CACLC,UAAW,mBACXG,cAAe,gBACfC,MAAO,OACPC,WAAY,WACZE,eAAgB,kBAChBD,eAAgB,wBAChBE,oBAAqB,2BACrBC,MAAO,SACPC,WAAY,cACZC,QAAS,UACTC,SAAU,WACVC,WAAY,cACZC,UAAW,iBACXC,aAAc,eACdC,SAAU,iBACVC,OAAQ,SACRC,QAAS,WACTC,eAAgB,QAChBC,UAAW,YACXC,gBAAiB,mBACjBC,gBAAiB,mBACjBC,cAAe,iBACfC,gBAAiB,mBACjBC,OAAQ,WACRC,SAAU,YACVC,UAAW,oBACXC,WAAY,cACZC,QAAS,UACTC,OAAQ,kBACRC,MAAO,SACP,UAAW,WACX,UAAW,WACX,YAAa,aACb,YAAa,aACb,UAAW,WACXC,MAAO,SACPC,MAAO,QACPC,aAAc,iBACdC,eAAgB,kBAChBC,gBAAiB,SACjBC,aAAc,gBACdC,IAAK,UACLC,KAAM,aACNC,cAAe,iBACfC,YAAa,kBACbC,YAAa,uBACbC,WAAY,mBACZC,QAAS,MACTC,QAAS,MACTC,SAAU,sBACVC,MAAO,QACPC,YAAa,mBACbC,YAAa,sBACbC,YAAa,eACbC,YAAa,cACbC,IAAK,MACLC,IAAK,MACLC,UAAW,iBACXC,MAAO,OACPC,UAAW,YACXC,KAAM,OACNC,aAAc,iBACdC,QAAS,WAEXyC,OAAQ,CACNC,OAAQ,QACRrG,UAAW,mBACXsG,OAAQ,SACR/C,MAAO,OACPnE,KAAM,gBACNuE,QAAS,WAEX4C,MAAO,CACLvM,MAAO,uBACPwM,MAAO,SACPC,SAAU,UACVnB,SAAU,aACVoB,IAAK,OACLC,WAAY,eACZC,eAAgB,uFAElBzG,cAAe,CACbA,cAAe,gBACfmG,OAAQ,sBAEVjG,WAAY,CACVwG,WAAY,YACZC,eAAgB,qBAChBC,MAAO,eACPC,YAAa,mBACbC,KAAM,6MACNC,OAAQ,SACRC,QAAS,YACTC,OAAQ,YAEVhH,MAAO,CACLiH,YAAa,gKACbC,OAAQ,YAEV5G,WAAY,CACVP,cAAe,gBACfoH,YAAa,yWACbC,WAAY,8EACZC,eAAgB,gHAChBC,eAAgB,uLAChBC,gBAAiB,4LACjBC,mBAAoB,mCAEtB3F,MAAO,CACL4F,aAAc,uCACdC,aAAc,0CACdC,UAAW,oBACXC,UAAW,2BACXhO,MAAO,SACPiO,WAAY,cACZpT,KAAM,OACNqT,OAAQ,SACRC,OAAQ,SACRC,IAAK,SACLC,OAAQ,WACRC,SAAU,WACVC,GAAI,KACJC,KAAM,QACNC,OAAQ,QACRC,SAAU,SACVC,OAAQ,SACRC,QAAS,WACTC,KAAM,SACNC,QAAS,WACTC,MAAO,QACP7B,OAAQ,WACRE,OAAQ,WACRD,QAAS,aAEXtF,QAAS,CACPmH,QAAS,qXAEXlG,SAAU,CACRmE,KAAM,sDACNI,YAAa,gUACblH,cAAe,6BAEjB4C,MAAO,CACLsF,OAAQ,WACRY,eAAgB,yBAChBC,YAAa,0CAEf9F,IAAK,CACHiF,OAAQ,WACRa,YAAa,0CAEf7F,IAAK,CACH4D,KAAM,2EAER1D,MAAO,CACL4F,OAAQ,eACRhJ,cAAe,yBACf8G,KAAM,iLAERmC,SAAU,CACRC,QAAS,aACTC,MAAO,SACPC,YAAa,eACbC,SAAU,gBAEZpP,SAAU,CACRJ,MAAO,qBACPuJ,MAAO,cACPkG,aAAc,iBACdC,gBAAiB,oBACjBC,YAAa,eACbC,iBAAkB,uBC7KP,GACb7J,MAAO,CACLC,UAAW,MACXC,OAAQ,OACRE,cAAe,SACfC,MAAO,MACPC,WAAY,KACZE,eAAgB,QAChBD,eAAgB,QAChBE,oBAAqB,YACrBC,MAAO,OACPC,WAAY,UACZC,QAAS,UACTC,SAAU,WACVC,WAAY,cACZC,UAAW,MACXC,aAAc,aACdC,SAAU,WACVC,OAAQ,SACRC,QAAS,WACTC,eAAgB,eAChBC,UAAW,cACXC,gBAAiB,mBACjBC,gBAAiB,eACjBC,cAAe,iBACfC,gBAAiB,mBACjBC,OAAQ,OACRC,SAAU,UACVC,UAAW,WACXC,WAAY,YACZC,QAAS,UACTC,OAAQ,gBACRC,MAAO,QACP,UAAW,WACX,UAAW,WACX,YAAa,aACb,YAAa,aACb,UAAW,WACXC,MAAO,SACPC,MAAO,QACPC,aAAc,WACdC,eAAgB,kBAChBC,gBAAiB,oBACjBC,aAAc,gBACdC,IAAK,MACLC,KAAM,OACNC,cAAe,OACfC,YAAa,OACbC,YAAa,QACbC,WAAY,SACZC,QAAS,MACTC,QAAS,MACTC,SAAU,QACVC,MAAO,QACPC,YAAa,WACbC,YAAa,aACbC,YAAa,UACbC,YAAa,SACbC,IAAK,MACLC,IAAK,MACLC,UAAW,aACXC,MAAO,QACPC,UAAW,YACXC,KAAM,MACNC,aAAc,QACdC,QAAS,UAEXyC,OAAQ,CACNpG,UAAW,MACXsG,OAAQ,SACRD,OAAQ,QACR1C,QAAS,SACTJ,MAAO,QACPnE,KAAM,SAERmH,MAAO,CACLvM,MAAO,UACPwM,MAAO,OACPC,SAAU,OACVnB,SAAU,QACVoB,IAAK,MACLC,WAAY,YACZC,eAAgB,8BAElBzG,cAAe,CACbA,cAAe,SACfmG,OAAQ,eAEVjG,WAAY,CACVwG,WAAY,QACZC,eAAgB,QAChBC,MAAO,MACPC,YAAa,QACbC,KAAM,6FACNC,OAAQ,KACRC,QAAS,KACTC,OAAQ,SAEVhH,MAAO,CACLiH,YAAa,gBACbC,OAAQ,UAEV5G,WAAY,CACVP,cAAe,SACfoH,YAAa,sGACbC,WAAY,6BACZC,eAAgB,oBAChBC,eAAgB,8FAChBC,gBAAiB,gDACjBC,mBAAoB,aAEtB3F,MAAO,CACL4F,aAAc,cACdC,aAAc,iBACdC,UAAW,UACXC,UAAW,WACXhO,MAAO,OACPiO,WAAY,KACZpT,KAAM,MACNqT,OAAQ,KACRC,OAAQ,KACRC,IAAK,KACLC,OAAQ,SACRC,SAAU,QACVC,GAAI,KACJC,KAAM,KACNC,OAAQ,MACRC,SAAU,MACVC,OAAQ,QACRC,QAAS,KACTC,KAAM,KACNC,QAAS,KACTC,MAAO,MACP7B,OAAQ,QACRE,OAAQ,QACRD,QAAS,MAEXtF,QAAS,CACPmH,QAAS,6MAEXlG,SAAU,CACRmE,KAAM,yBACNI,YAAa,wFACblH,cAAe,UAEjB4C,MAAO,CACLsF,OAAQ,SACRY,eAAgB,qBAChBC,YAAa,mBAEf9F,IAAK,CACHiF,OAAQ,SACRa,YAAa,mBAEf7F,IAAK,CACH4D,KAAM,sCAER1D,MAAO,CACL4F,OAAQ,QACRhJ,cAAe,SACf8G,KAAM,iEAERmC,SAAU,CACRC,QAAS,KACTC,MAAO,MACPC,YAAa,SACbC,SAAU,UAEZpP,SAAU,CACRJ,MAAO,UACPuJ,MAAO,OACPkG,aAAc,eACdC,gBAAiB,oBACjBC,YAAa,eACbC,iBAAkB,uBC9KP,GACb7J,MAAO,CACLC,UAAW,OACXC,OAAQ,KACRE,cAAe,KACfC,MAAO,MACPC,WAAY,KACZE,eAAgB,QAChBD,eAAgB,SAChBE,oBAAqB,QACrBC,MAAO,MACPC,WAAY,QACZC,QAAS,UACTC,SAAU,WACVC,WAAY,cACZC,UAAW,KACXC,aAAc,SACdC,SAAU,WACVC,OAAQ,SACRC,QAAS,WACTC,eAAgB,cAChBC,UAAW,cACXC,gBAAiB,SACjBC,gBAAiB,SACjBC,cAAe,UACfC,gBAAiB,SACjBC,OAAQ,KACRC,SAAU,QACVC,UAAW,SACXC,WAAY,OACZC,QAAS,KACTC,OAAQ,gBACRC,MAAO,MACP,UAAW,SACX,UAAW,SACX,YAAa,WACb,YAAa,WACb,UAAW,SACXC,MAAO,OACPC,MAAO,IACPC,aAAc,YACdC,eAAgB,cAChBC,gBAAiB,gBACjBC,aAAc,YACdC,IAAK,MACLC,KAAM,KACNC,cAAe,SACfC,YAAa,SACbC,YAAa,UACbC,WAAY,SACZC,QAAS,MACTC,QAAS,MACTC,SAAU,QACVC,MAAO,KACPC,YAAa,UACbC,YAAa,QACbC,YAAa,QACbC,YAAa,SACbC,IAAK,MACLC,IAAK,MACLC,UAAW,aACXC,MAAO,KACPC,UAAW,YACXC,KAAM,KACNC,aAAc,QACdC,QAAS,OAEXyC,OAAQ,CACNpG,UAAW,OACXsG,OAAQ,MACRD,OAAQ,OACR1C,QAAS,MACTJ,MAAO,KACPnE,KAAM,MAERmH,MAAO,CACLvM,MAAO,MACPwM,MAAO,MACPC,SAAU,KACVnB,SAAU,OACVoB,IAAK,MACLC,WAAY,aACZC,eAAgB,yBAElBzG,cAAe,CACbA,cAAe,KACfmG,OAAQ,UAEVjG,WAAY,CACVwG,WAAY,QACZC,eAAgB,QAChBC,MAAO,KACPC,YAAa,SACbC,KAAM,6FACNC,OAAQ,KACRC,QAAS,KACTC,OAAQ,MAEVhH,MAAO,CACLiH,YAAa,kBACbC,OAAQ,MAEV5G,WAAY,CACVP,cAAe,KACfoH,YAAa,2KACbC,WAAY,4BACZC,eAAgB,sDAChBC,eAAgB,8GAChBC,gBAAiB,sFACjBC,mBAAoB,YAEtB3F,MAAO,CACL4F,aAAc,SACdC,aAAc,aACdC,UAAW,QACXC,UAAW,UACXhO,MAAO,MACPiO,WAAY,MACZpT,KAAM,OACNqT,OAAQ,SACRC,OAAQ,KACRC,IAAK,KACLC,OAAQ,OACRC,SAAU,WACVC,GAAI,KACJC,KAAM,KACNC,OAAQ,MACRC,SAAU,WACVC,OAAQ,KACRC,QAAS,UACTC,KAAM,KACNC,QAAS,KACTC,MAAO,QACP7B,OAAQ,KACRE,OAAQ,KACRD,QAAS,MAEXtF,QAAS,CACPmH,QAAS,sOAEXlG,SAAU,CACRmE,KAAM,2BACNI,YAAa,4JACblH,cAAe,SAEjB4C,MAAO,CACLsF,OAAQ,OACRY,eAAgB,aAChBC,YAAa,2BAEf9F,IAAK,CACHiF,OAAQ,OACRa,YAAa,wBAEf7F,IAAK,CACH4D,KAAM,kDAER1D,MAAO,CACL4F,OAAQ,SACRhJ,cAAe,QACf8G,KAAM,mFAERmC,SAAU,CACRC,QAAS,OACTC,MAAO,KACPC,YAAa,QACbC,SAAU,SAEZpP,SAAU,CACRJ,MAAO,aACPuJ,MAAO,QACPkG,aAAc,eACdC,gBAAiB,YACjBC,YAAa,QACbC,iBAAkB,iBC9KP,GACb7J,MAAO,CACLC,UAAW,YACXG,cAAe,iBACfC,MAAO,QACPC,WAAY,WACZC,eAAgB,kBAChBC,eAAgB,iBAChBC,oBAAqB,qBACrBC,MAAO,QACPC,WAAY,aACZC,QAAS,UACTC,SAAU,WACVC,WAAY,cACZC,UAAW,YACXC,aAAc,gBACdC,SAAU,WACVC,OAAQ,SACRC,QAAS,aACTC,eAAgB,QAChBC,UAAW,WACXC,gBAAiB,uBACjBC,gBAAiB,sBACjBC,cAAe,qBACfC,gBAAiB,sBACjBC,OAAQ,UACRC,SAAU,kBACVC,UAAW,kBACXC,WAAY,gBACZC,QAAS,UACTC,OAAQ,kBACRC,MAAO,SACP,UAAW,WACX,UAAW,WACX,YAAa,aACb,YAAa,aACb,UAAW,WACXC,MAAO,SACPC,MAAO,UACPC,aAAc,mBACdC,eAAgB,uBAChBC,gBAAiB,4BACjBC,aAAc,oBACdC,IAAK,MACLC,KAAM,OACNC,cAAe,gBACfC,YAAa,oBACbC,YAAa,iBACbC,WAAY,mBACZC,QAAS,MACTC,QAAS,MACTC,SAAU,kBACVC,MAAO,QACPC,YAAa,gBACbC,YAAa,sBACbC,YAAa,sBACbC,YAAa,eACbC,IAAK,MACLC,IAAK,MACLC,UAAW,cACXC,MAAO,OACPC,UAAW,UACXC,KAAM,OACNC,aAAc,eACdC,QAAS,WAEXyC,OAAQ,CACNC,OAAQ,OACRrG,UAAW,YACXsG,OAAQ,SACR/C,MAAO,OACPnE,KAAM,oBACNuE,QAAS,WAEX4C,MAAO,CACLvM,MAAO,UACPwM,MAAO,SACPC,SAAU,SACVnB,SAAU,WACVoB,IAAK,YACLC,WAAY,eACZC,eAAgB,mGAElBzG,cAAe,CACbA,cAAe,iBACfmG,OAAQ,qBAEVjG,WAAY,CACVwG,WAAY,cACZC,eAAgB,WAChBC,MAAO,eACPC,YAAa,eACbC,KAAM,0LACNC,OAAQ,UACRC,QAAS,WACTC,OAAQ,WAEVhH,MAAO,CACLiH,YAAa,wKACbC,OAAQ,gBAEV5G,WAAY,CACVP,cAAe,iBACfqH,WAAY,8EACZD,YAAa,0WACbE,eAAgB,2HAChBC,eAAgB,yNAChBC,gBAAiB,4JACjBC,mBAAoB,0BAEtB3F,MAAO,CACL4F,aAAc,8DACdC,aAAc,yDACdC,UAAW,oBACXC,UAAW,4BACXhO,MAAO,SACPiO,WAAY,aACZpT,KAAM,OACNqT,OAAQ,eACRC,OAAQ,UACRC,IAAK,WACLC,OAAQ,UACRC,SAAU,YACVC,GAAI,KACJC,KAAM,OACNC,OAAQ,SACRC,SAAU,UACVC,OAAQ,SACRC,QAAS,SACTC,KAAM,WACNC,QAAS,WACTC,MAAO,QACP7B,OAAQ,UACRE,OAAQ,UACRD,QAAS,YAEXtF,QAAS,CACPmH,QAAS,+ZAEXlG,SAAU,CACRmE,KAAM,wEACNI,YAAa,8UACblH,cAAe,+BAEjB4C,MAAO,CACLsF,OAAQ,UACRY,eAAgB,+BAChBC,YAAa,8DAEf9F,IAAK,CACHiF,OAAQ,UACRa,YAAa,wDAEf7F,IAAK,CACH4D,KAAM,gFAER1D,MAAO,CACL4F,OAAQ,cACRhJ,cAAe,sBACf8G,KAAM,sLAERmC,SAAU,CACRC,QAAS,WACTC,MAAO,SACPC,YAAa,eACbC,SAAU,gBAEZpP,SAAU,CACRJ,MAAO,4BACPuJ,MAAO,cACPkG,aAAc,iBACdC,gBAAiB,sBACjBC,YAAa,qBACbC,iBAAkB,6BAEpBK,OAAQ,CACNC,eAAgB,6BC5JpB,aAAIxR,IAAI,QAER,IAAMyR,EAAW,CACfC,GAAI,iCACC,GACA,KAELC,GAAI,iCACCA,GACA,KAELC,GAAI,iCACC,GACA,KAELC,GAAI,iCACC,GACA,KAELC,GAAI,iCACC,GACA,KAELC,GAAI,kBACCA,IAIM,EAAY,WACvB,IAAMC,EAAiB,iBACvB,GAAIA,EAEF,OADAtW,SAAS2F,gBAAgBJ,KAAO+Q,EACzBA,EAKT,IAFA,IAAMlR,EAAWmR,UAAUnR,SAASoR,cAC9BC,EAAU7Y,OAAO8Y,KAAKX,GAC5B,MAAqBU,EAArB,eAA8B,CAAzB,IAAMhR,EAAM,KACf,GAAIL,EAASkD,QAAQ7C,IAAW,EAE9B,OADAzF,SAAS2F,gBAAgBJ,KAAOE,EACzBA,EAKX,MAAO,MAGH4J,EAAO,IAAI,OAAQ,CACvB5J,OAAQ,IACRsQ,aAGa,U,oCCzEf,W,2DCAA,W,6LCqBMY,EAAN,yG,0BACS,EAAAxH,MAAQ,IAAiBA,MACzB,EAAAoG,YAAc,OAAgBA,YAC9B,EAAAqB,aAAe,OAAgBA,aAC/B,EAAAvB,aAAe,OAAgBA,aAC/B,EAAAC,gBAAkB,OAAgBA,gBAClC,EAAAE,iBAAmB,OAAgBA,iBAN5C,sDASS,SAAcqB,GACnBnS,KAAKoS,eAAeD,KAVxB,4BAcU,SAAeA,GAAoC,IACjDlT,EAAekT,EAAflT,IAAKN,EAAUwT,EAAVxT,MACTzF,OAAOC,UAAUC,eAAeC,KAAK2G,KAAMf,KAC5Ce,KAAaf,GAAON,OAjB3B,GAAuB,QASrB,gBADC,Q,4BAGA,MAGD,gBADC,Q,6BAMA,MAnBGsT,EAAQ,gBADb,eAAO,CAAEI,SAAS,EAAMC,MAAA,OAAO1U,KAAM,cAChCqU,GAsBC,IAAMM,EAAiB,eAAUN,I,gQCrClCO,EAAU,SAACvE,EAAiBhH,GAAsB,MACtD,kBAAIA,EAAM7F,YAAV,QAAI,EAAY6M,QACPA,EAAMwE,MAAK,SAAAC,GAAI,OAAIzL,EAAM7F,KAAK6M,MAAM0E,SAASD,OAKlD7Q,EAAgB,SAACoF,GAAsB,MACd,EAA7B,kBAAIA,EAAM7F,YAAV,QAAI,EAAYQ,cACP,eAAe,UAACqF,EAAM7F,YAAP,aAAC,EAAYQ,cAKjCgR,EAAgB,SAAC3L,GAAsB,QAC3C,QAAO,UAACA,EAAM7F,YAAP,OAAC,EAAY6M,UAAS,UAAChH,EAAM7F,YAAP,OAAC,EAAYQ,cAG/BiR,EAAoB,SAApBA,EAAqBC,EAAuB7E,GACvD,IAAM8E,EAAqB,GAU3B,OATAD,EAAO1O,SAAQ,SAAA6C,GACb,IAAMzI,EAAI,kBAAKyI,IACVuL,EAAQvE,EAAOzP,IAAMqD,EAAcrD,IAAOoU,EAAcpU,MACvDA,EAAEwU,WACJxU,EAAEwU,SAAWH,EAAkBrU,EAAEwU,SAAU/E,IAE7C8E,EAAIxZ,KAAKiF,OAGNuU,GASHE,EAAN,yG,0BACS,EAAAH,OAAwB,GACxB,EAAAI,cAA+B,GAFxC,mDAKU,SAAWJ,GACjB9S,KAAK8S,OAAS,OAAe/N,OAAO+N,GACpC9S,KAAKkT,cAAgBJ,IAPzB,4BAWS,SAAe7E,GACpB,IAAIkF,EAEFA,EADElF,EAAM0E,SAAS,SACA,OAEAE,EAAkB,OAAa5E,GAElDjO,KAAKoT,WAAWD,OAlBpB,GAAyB,QAKvB,gBADC,Q,yBAIA,MAGD,gBADC,Q,6BASA,MAnBGF,EAAU,gBADf,eAAO,CAAEZ,SAAS,EAAMC,MAAA,OAAO1U,KAAM,gBAChCqV,GAsBC,IAAMI,EAAmB,eAAUJ,I,oCCrD1C,IAAM3R,EAAsB,CAC1BJ,MAAO,OACPgR,cAAc,EACdvB,cAAc,EACdE,aAAa,EACbD,iBAAiB,EACjB5G,SAAU,CAAC,cACX8G,kBAAkB,EAClBwC,cAAe,KACfC,eAAgB,MAGH,U,uBCxBf5Y,EAAOD,QAAU,CAAC,OAAS,UAAU,SAAW,UAAU,eAAiB,Y,uBCA3EC,EAAOD,QAAU,CAAC,OAAS,UAAU,SAAW,UAAU,eAAiB,Y,oCCD3E,oWAgBa8Y,EAAuB,CAClC/D,GAAI,GACJ9B,SAAU,GACV8F,SAAU,GACVC,QAAS,GACTC,QAAQ,EACR1F,MAAO,GACP2F,MAAO,EACPC,IAAK,IACLrH,SAAU,GACVsH,OAAQ,GACRC,WAAY,IAEDC,EAAe,SAACvb,GAAD,OAC1B,eAAQ,CACNwb,IAAK,kBACLC,OAAQ,OACRzb,UAGSgV,EAAQ,SAAChV,GAAD,OACnB,eAAQ,CACNwb,IAAK,mBACLC,OAAQ,OACRzb,UAGS0b,EAAS,kBACpB,eAAQ,CACNF,IAAK,oBACLC,OAAQ,UAGCE,EAAY,SAAC3b,GAAD,OACvB,eAAQ,CACNwb,IAAK,kBACLC,OAAQ,OACRzb,UAGS4b,EAAc,SAACC,GAC1B,OAAO,eAAQ,CACbL,IAAK,cAAF,OAAgBK,EAAhB,WACHJ,OAAQ,UAICK,EAAe,SAACD,EAAazE,GACxC,OAAO,eAAQ,CACboE,IAAK,cAAF,OAAgBK,EAAhB,WACHJ,OAAQ,OACRzb,KAAM,CAAE+b,KAAM3E,MAIL4E,EAAW,SAACC,GAAD,OACtB,eAAQ,CACNT,IAAK,cACLC,OAAQ,MACRQ,YAGSC,EAAa,SAACD,GAAD,OACxB,eAAQ,CACNT,IAAK,oBACLC,OAAQ,OACRzb,KAAMic,KAGGE,EAAa,SAACF,GAAD,OACxB,eAAQ,CACNT,IAAK,yBACLC,OAAQ,OACRzb,KAAMic,M,kCCzFV,W,sSC6BMG,EAAN,yG,0BACS,EAAA/N,MAAQ,kBAAc,GACtB,EAAAlJ,KAAO,GACP,EAAAkW,OAAS,GACT,EAAAgB,aAAe,GACf,EAAA7G,MAAkB,GAClB,EAAArM,YAA0B,GAC1B,EAAAmT,MAAQ,GACR,EAAAhB,WAAa,GACb,EAAAiB,SAAW,GACX,EAAApB,MAAQ,IACR,EAAAC,IAAM,IAXf,uGAcS,WAAYoB,GAAZ,oGACCtH,EAAuBsH,EAAvBtH,SAAUnB,EAAayI,EAAbzI,SAChBmB,EAAWA,EAASuH,OAFf,SAGkB,eAAM,CAAEvH,WAAUnB,aAHpC,gBAGG/T,EAHH,EAGGA,KACR,eAASA,EAAKqO,OACd9G,KAAKmV,UAAU1c,EAAKqO,OALf,gDAdT,kFAuBS,WACL,iBACA9G,KAAKmV,UAAU,IACfnV,KAAKoV,UAAU,IACfpV,KAAKqV,gBAAgB,MA3BzB,kFA+BS,2HACc,KAAfrV,KAAK8G,MADJ,sBAEGvK,MAAM,oCAFT,uBAIkB,eAAa,IAJ/B,mBAIG9D,EAJH,EAIGA,KACHA,EALA,sBAMG8D,MAAM,4CANT,UAQG0R,EAAyFxV,EAAzFwV,MAAOwF,EAAkFhb,EAAlFgb,SAAUK,EAAwErb,EAAxEqb,OAAQgB,EAAgErc,EAAhEqc,aAAclT,EAAkDnJ,EAAlDmJ,YAAamS,EAAqCtb,EAArCsb,WAAYH,EAAyBnb,EAAzBmb,MAAOoB,EAAkBvc,EAAlBuc,SAAUnB,EAAQpb,EAARob,IAEpF5F,KAASA,EAAMhV,QAAU,GAVzB,uBAWGsD,MAAM,gDAXT,QAaLyD,KAAKoV,UAAUnH,GACfjO,KAAKsV,SAAS7B,GACdzT,KAAKuV,WAAWzB,GAChB9T,KAAKwV,iBAAiBV,GACtB9U,KAAKqV,gBAAgBzT,GACrB5B,KAAKyV,eAAe1B,GACpB/T,KAAK0V,UAAU9B,GACf5T,KAAK2V,aAAaX,GAClBhV,KAAK4V,QAAQ/B,GArBR,iDA/BT,0IAwDS,WAAiBpb,GAAjB,2FACGgb,EAA0Bhb,EAA1Bgb,SAAUI,EAAgBpb,EAAhBob,IAAKC,EAAWrb,EAAXqb,OACvB9T,KAAKsV,SAAS7B,GACdzT,KAAK4V,QAAQ/B,GACb7T,KAAKuV,WAAWzB,GAJX,gDAxDT,4IAgES,WAAkBpB,GAAlB,8FAEC5L,EAAQ4L,EAAO,SACrB1S,KAAKmV,UAAUrO,GACf,eAASA,GAJJ,SAKC9G,KAAK6V,cALN,OAML,iBAEA,OAAiBC,eAAe9V,KAAKiO,OAErC,OAAO8H,UAAU,OAAiB7C,eAElC,OAAe8C,cAZV,gDAhET,uIAgFS,iGACc,KAAfhW,KAAK8G,MADJ,sBAEGvK,MAAM,+BAFT,uBAIC,iBAJD,OAKL,iBACAyD,KAAKmV,UAAU,IACfnV,KAAKoV,UAAU,IACfpV,KAAKqV,gBAAgB,IACrBrV,KAAKyV,eAAe,IATf,gDAhFT,gFA6FU,SAAU3O,GAChB9G,KAAK8G,MAAQA,IA9FjB,sFAkGS,WAAsBA,GAAtB,iFACL9G,KAAKmV,UAAUrO,GADV,gDAlGT,gFAuGU,SAASlJ,GACfoC,KAAKpC,KAAOA,IAxGhB,wBA4GU,SAAWkW,GACjB9T,KAAK8T,OAASA,IA7GlB,8BAiHU,SAAiBgB,GACvB9U,KAAK8U,aAAeA,IAlHxB,uBAsHU,SAAU7G,GAChBjO,KAAKiO,MAAQA,IAvHjB,4BA2HU,SAAe8F,GACrB/T,KAAK+T,WAAaA,IA5HtB,0BAgIU,SAAaiB,GACnBhV,KAAKgV,SAAWA,IAjIpB,qBAqIU,SAAQnB,GACd7T,KAAK6T,IAAMA,IAtIf,uBA0IU,SAAUD,GAChB5T,KAAK4T,MAAQA,IA3IjB,6BA+IU,SAAgBhS,GACtB,IAD2C,EACrC+C,EAAsB,GADe,iBAElB/C,GAFkB,IAE3C,2BAAsC,KAA3B2F,EAA2B,QACjB,MAAfA,EACF5C,EAAQpL,KAAK,CAAC,IAAK,MAEnBoL,EAAQpL,KAAKgO,EAAWvF,MAAM,OANS,8BAS3ChC,KAAK4B,YAAc+C,MAxJvB,GAAmB,QAcjB,gBADC,Q,oBAOA,MAGD,gBADC,Q,yBAMA,MAGD,gBADC,Q,0BAuBA,MAGD,gBADC,Q,yBAMA,MAGD,gBADC,Q,0BAcA,MAGD,gBADC,Q,qBAWA,MAGD,gBADC,Q,wBAGA,MAGD,gBADC,Q,8BAGA,MAGD,gBADC,Q,uBAGA,MAGD,gBADC,Q,yBAGA,MAGD,gBADC,Q,+BAGA,MAGD,gBADC,Q,wBAGA,MAGD,gBADC,Q,6BAGA,MAGD,gBADC,Q,2BAGA,MAGD,gBADC,Q,sBAGA,MAGD,gBADC,Q,wBAGA,MAGD,gBADC,Q,8BAWA,MAzJGkQ,EAAI,gBADT,eAAO,CAAExC,SAAS,EAAMC,MAAA,OAAO1U,KAAM,UAChCiX,GA4JC,IAAMoB,EAAa,eAAUpB,I,qBCxLpCla,EAAOD,QAAU,CAAC,OAAS,UAAU,SAAW,UAAU,eAAiB,Y,0GCI/Dwb,E,yHAAZ,SAAYA,GACV,0BACA,6BAFF,CAAYA,MAAU,KAiBtB,IAAMC,EAAN,yG,0BACS,EAAAC,QAAU,CACfC,OAA+B,WAAvB,iBACRC,kBAAkB,GAGb,EAAAC,OAASL,EAAWM,QACpB,EAAA9V,SAAW,iBACX,EAAA4F,KAAO,kBAAa,SACpB,EAAAI,KAAO,iBAAY+P,OAAO,kBAAa,EAThD,uDAYU,SAAeH,GACrBtW,KAAKoW,QAAQC,QAAUrW,KAAKoW,QAAQC,OACpCrW,KAAKoW,QAAQE,iBAAmBA,EAC5BtW,KAAKoW,QAAQC,OACf,eAAiB,UAEjB,eAAiB,YAlBvB,2BAuBU,SAAcC,GACpBtW,KAAKoW,QAAQC,QAAS,EACtBrW,KAAKoW,QAAQE,iBAAmBA,EAChC,eAAiB,YA1BrB,2BA8BU,SAAcC,GACpBvW,KAAKuW,OAASA,IA/BlB,0BAmCU,SAAa7V,GACnBV,KAAKU,SAAWA,EAChB,eAAYV,KAAKU,YArCrB,sBAyCU,SAAS4F,GACftG,KAAKsG,KAAOA,EACZ,eAAQtG,KAAKsG,QA3CjB,sBA+CU,SAASI,GACf1G,KAAK0G,KAAOA,EACZ,eAAQA,EAAO,MAjDnB,2BAqDS,SAAc4P,GACnBtW,KAAK0W,eAAeJ,KAtDxB,0BA0DS,SAAaA,GAClBtW,KAAK2W,cAAcL,KA3DvB,0BA+DS,SAAaC,GAClBvW,KAAK4W,cAAcL,KAhEvB,yBAoES,SAAY7V,GACjBV,KAAK6W,aAAanW,KArEtB,qBAyES,SAAQ4F,GACbtG,KAAK8W,SAASxQ,KA1ElB,qBA8ES,SAAQI,GACb1G,KAAK+W,SAASrQ,GACVA,GAAM1G,KAAKgX,cAAa,OAhFhC,GAAkB,QAYhB,gBADC,Q,6BASA,MAGD,gBADC,Q,4BAKA,MAGD,gBADC,Q,4BAGA,MAGD,gBADC,Q,2BAIA,MAGD,gBADC,Q,uBAIA,MAGD,gBADC,Q,uBAIA,MAGD,gBADC,Q,4BAGA,MAGD,gBADC,Q,2BAGA,MAGD,gBADC,Q,2BAGA,MAGD,gBADC,Q,0BAGA,MAGD,gBADC,Q,sBAGA,MAGD,gBADC,Q,sBAIA,MAjFGb,EAAG,gBADR,eAAO,CAAE9D,SAAS,EAAMC,MAAA,OAAO1U,KAAM,SAChCuY,GAoFC,IAAMc,EAAY,eAAUd,I,kCC1GnC,W,kCCAA,W,qMCAIrW,EAAS,WAAa,IAAIC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,cAAc6W,MAAMnX,EAAIoX,UAAU,CAAEpX,EAAIoX,SAASC,QAAUrX,EAAIqW,QAAQC,OAAQlW,EAAG,MAAM,CAACE,YAAY,YAAYE,GAAG,CAAC,MAAQR,EAAIsX,sBAAsBtX,EAAIuX,KAAMvX,EAAY,SAAEI,EAAG,UAAU,CAACE,YAAY,sBAAsBN,EAAIuX,KAAKnX,EAAG,MAAM,CAACE,YAAY,iBAAiB6W,MAAM,CAACK,YAAaxX,EAAI4Q,eAAe,CAAE5Q,EAAY,SAAEI,EAAG,MAAM,CAAC+W,MAAM,CAAC,eAAgBnX,EAAI8Q,cAAc,CAAC1Q,EAAG,UAAWJ,EAAgB,aAAEI,EAAG,aAAaJ,EAAIuX,MAAM,GAAGvX,EAAIuX,KAAKnX,EAAG,YAAaJ,EAAgB,aAAEI,EAAG,cAAc,CAACA,EAAG,aAAa,GAAGJ,EAAIuX,MAAM,IAAI,IACvoB1W,EAAkB,G,4GCDlB,EAAS,WAAa,IAAIb,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,UAAU,CAACE,YAAY,YAAY,CAACF,EAAG,aAAa,CAACG,MAAM,CAAC,KAAO,iBAAiB,KAAO,WAAW,CAACH,EAAG,aAAa,CAACG,MAAM,CAAC,QAAUP,EAAIyX,cAAc,CAACrX,EAAG,cAAc,CAAClB,IAAIc,EAAId,OAAO,IAAI,IAAI,IACpS,EAAkB,G,YCmBtB,6KACE,WACE,OAAO,OAAeuY,cAF1B,eAKE,WACE,OAAOxX,KAAKmB,OAAOsW,SANvB,GAA6B,QAA7B,kBAHC,eAAU,CACT7Z,KAAM,aAUP,G,QC5B+hB,I,wBCQ5hB6D,EAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,MAIa,EAAAA,E,QCnBX,EAAS,WAAa,IAAI1B,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,UAAU,CAACF,EAAG,YAAY,CAACE,YAAY,sBAAsBC,MAAM,CAAC,GAAK,sBAAsB,YAAYP,EAAIqW,QAAQC,QAAQ9V,GAAG,CAAC,eAAeR,EAAI2X,iBAAiBvX,EAAG,aAAa,CAACE,YAAY,uBAAuBC,MAAM,CAAC,GAAK,0BAA0BH,EAAG,MAAM,CAACE,YAAY,cAAc,CAAe,WAAbN,EAAIwW,OAAmB,CAACpW,EAAG,gBAAgB,CAACE,YAAY,oBAAoBF,EAAG,YAAY,CAACE,YAAY,kDAAkDF,EAAG,aAAa,CAACE,YAAY,iCAAiCF,EAAG,aAAa,CAACG,MAAM,CAAC,QAAUP,EAAIsB,GAAG,eAAe,OAAS,OAAO,UAAY,WAAW,CAAClB,EAAG,cAAc,CAACE,YAAY,kCAAkC,GAAGF,EAAG,cAAc,CAACE,YAAY,kCAAkCN,EAAIuX,KAAKnX,EAAG,cAAc,CAACE,YAAY,gDAAgDC,MAAM,CAAC,QAAU,UAAU,CAACH,EAAG,MAAM,CAACE,YAAY,kBAAkB,CAACF,EAAG,MAAM,CAACE,YAAY,cAAcC,MAAM,CAAC,IAAMP,EAAI+T,OAAO,6BAA6B3T,EAAG,IAAI,CAACE,YAAY,2BAA2BF,EAAG,mBAAmB,CAACG,MAAM,CAAC,KAAO,YAAYG,KAAK,YAAY,CAACN,EAAG,cAAc,CAACG,MAAM,CAAC,GAAK,MAAM,CAACH,EAAG,mBAAmB,CAACJ,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG5X,EAAIsB,GAAG,qBAAqB,QAAQ,GAAGlB,EAAG,cAAc,CAACG,MAAM,CAAC,GAAK,cAAc,CAACH,EAAG,mBAAmB,CAACJ,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG5X,EAAIsB,GAAG,mBAAmB,QAAQ,GAAGlB,EAAG,cAAc,CAACG,MAAM,CAAC,GAAK,cAAc,CAACH,EAAG,mBAAmB,CAACJ,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG5X,EAAIsB,GAAG,oBAAoB,QAAQ,GAAGlB,EAAG,mBAAmB,CAACG,MAAM,CAAC,QAAU,IAAIsX,SAAS,CAAC,MAAQ,SAASC,GAAQ,OAAO9X,EAAIoU,OAAO0D,MAAW,CAAC1X,EAAG,OAAO,CAAC2X,YAAY,CAAC,QAAU,UAAU,CAAC/X,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG5X,EAAIsB,GAAG,kBAAkB,UAAU,IAAI,IAAI,IAAI,IAClwD,EAAkB,G,wDCDlB,EAAS,WAAa,IAAItB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,gBAAgB,CAACE,YAAY,iBAAiBC,MAAM,CAAC,UAAY,MAAM,CAACH,EAAG,mBAAmB,CAACG,MAAM,CAAC,KAAO,eAAeP,EAAIgY,GAAIhY,EAAe,aAAE,SAASiY,EAAKjU,GAAO,OAAO5D,EAAG,qBAAqB,CAAClB,IAAI+Y,EAAKP,MAAM,CAAoB,eAAlBO,EAAKC,UAA6BlU,IAAUhE,EAAImY,YAAYjf,OAAO,EAAGkH,EAAG,OAAO,CAACE,YAAY,eAAe,CAACN,EAAIY,GAAGZ,EAAI4X,GAAG5X,EAAIsB,GAAG,SAAW2W,EAAK5W,KAAKF,WAAWf,EAAG,IAAI,CAACI,GAAG,CAAC,MAAQ,SAASsX,GAAgC,OAAxBA,EAAOM,iBAAwBpY,EAAIqY,WAAWJ,MAAS,CAACjY,EAAIY,GAAGZ,EAAI4X,GAAG5X,EAAIsB,GAAG,SAAW2W,EAAK5W,KAAKF,gBAAe,IAAI,IACtnB,EAAkB,G,gEC8BtB,2G,0BACU,EAAAgX,YAA6B,GADvC,sDAIU,SAAcjR,GAEhBA,EAAMwQ,KAAKY,WAAW,eAG1BrY,KAAKsY,kBATT,qBAYE,WACEtY,KAAKsY,kBAbT,2BAgBU,WACN,IAAIC,EAAUvY,KAAKmB,OAAOoX,QAAQjT,QAAO,SAAC0S,GAAD,OAAUA,EAAK5W,MAAQ4W,EAAK5W,KAAKF,SACpEsX,EAAQD,EAAQ,GACjBvY,KAAKyY,YAAYD,KACpBD,EAAU,CAAC,CAAEd,KAAM,aAAcrW,KAAM,CAAEF,MAAO,eAAgC6D,OAAOwT,IAEzFvY,KAAKkY,YAAcK,EAAQjT,QAAO,SAAC0S,GACjC,OAAOA,EAAK5W,MAAQ4W,EAAK5W,KAAKF,QAAkC,IAAzB8W,EAAK5W,KAAKsX,gBAvBvD,yBA2BU,SAAYzR,GAClB,IAAMrJ,EAAOqJ,GAASA,EAAMrJ,KAC5B,QAAKA,GAGEA,EAAKsX,OAAOyD,sBAAwB,YAAYA,sBAhC3D,yBAmCU,SAAYlB,GAAY,IAEtB/C,EAAW1U,KAAKmB,OAAhBuT,OACFkE,EAAS,eAAQnB,GACvB,OAAOmB,EAAOlE,KAvClB,wBA0CU,SAAWsD,GAAS,IAClBC,EAAmBD,EAAnBC,SAAUR,EAASO,EAATP,KACdQ,EACFjY,KAAK6Y,QAAQtf,KAAK0e,GAAlB,UAAkC,SAAA3b,GAChCiD,QAAQuZ,KAAKxc,MAIjB0D,KAAK6Y,QAAQtf,KAAKyG,KAAK+Y,YAAYtB,IAAnC,UAAgD,SAAAnb,GAC9CiD,QAAQuZ,KAAKxc,UAnDnB,GAA6B,QAI3B,gBADC,eAAM,W,4BAON,MAVH,kBAHC,eAAU,CACTsB,KAAM,gBAwDP,G,QCrF6hB,ICQ1hB,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAImC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAIiZ,UAAU/f,OAAO,EAAGkH,EAAG,MAAM,CAACA,EAAG,WAAW,CAAC2X,YAAY,CAAC,cAAc,OAAO,aAAa,QAAQxX,MAAM,CAAC,UAAS,GAAMsX,SAAS,CAAC,MAAQ,SAASC,GAAQ9X,EAAIkZ,oBAAmB,KAAQ,CAAC9Y,EAAG,YAAY,CAAC2X,YAAY,CAAC,QAAU,YAAYxX,MAAM,CAAC,KAAO,QAAQ,KAAO,WAAW,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,UAAU,IAAI,GAAGH,EAAG,YAAY,CAACG,MAAM,CAAC,QAAUP,EAAIkZ,mBAAmB,MAAQ,MAAM,iBAAiB,IAAI1Y,GAAG,CAAC,iBAAiB,SAASsX,GAAQ9X,EAAIkZ,mBAAmBpB,KAAU,CAAC1X,EAAG,MAAM,CAACG,MAAM,CAAC,KAAO,SAASG,KAAK,SAAS,CAACN,EAAG,OAAO,CAAC2X,YAAY,CAAC,gBAAgB,SAAS,CAAC/X,EAAIY,GAAG,eAAeR,EAAG,YAAY,CAACG,MAAM,CAAC,KAAO,OAAO,KAAO,UAAU,KAAO,kBAAkBC,GAAG,CAAC,MAAQR,EAAImZ,WAAW,CAACnZ,EAAIY,GAAG,kBAAkB,GAAGR,EAAG,WAAW,CAACG,MAAM,CAAC,KAAOP,EAAIiZ,UAAU,OAAS,KAAK,CAAC7Y,EAAG,kBAAkB,CAACG,MAAM,CAAC,MAAQ,WAAW6Y,YAAYpZ,EAAIqZ,GAAG,CAAC,CAACna,IAAI,UAAUoa,GAAG,SAASC,GACv+B,IAAIC,EAAMD,EAAIC,IACd,MAAO,CAACpZ,EAAG,MAAM,CAACA,EAAG,OAAO,CAACE,YAAY,iBAAiB,CAACN,EAAIY,GAAG,UAAUR,EAAG,SAAS,CAACG,MAAM,CAAC,KAAO,WAAW,CAACP,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG4B,EAAIjd,IAAIqB,SAAS,QAAQ,GAAGwC,EAAG,MAAMA,EAAG,MAAM,CAACA,EAAG,OAAO,CAACE,YAAY,gBAAgByX,YAAY,CAAC,gBAAgB,SAAS,CAAC/X,EAAIY,GAAG,YAAYR,EAAG,SAAS,CAACG,MAAM,CAAC,KAAO,YAAY,CAACP,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG4B,EAAIC,GAAGC,OAAOje,KAAK,aAAauE,EAAI4X,GAAG4B,EAAIG,MAAM,QAAQ,GAAGvZ,EAAG,MAAMA,EAAG,MAAM,CAACA,EAAG,OAAO,CAACE,YAAY,gBAAgByX,YAAY,CAAC,gBAAgB,SAAS,CAAC/X,EAAIY,GAAG,WAAWR,EAAG,SAAS,CAACG,MAAM,CAAC,KAAO,YAAY,CAACP,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG4B,EAAItF,KAAK,QAAQ,OAAO,MAAK,EAAM,cAAc9T,EAAG,kBAAkB,CAACG,MAAM,CAAC,MAAQ,SAAS6Y,YAAYpZ,EAAIqZ,GAAG,CAAC,CAACna,IAAI,UAAUoa,GAAG,SAASC,GACtsB,IAAIC,EAAMD,EAAIC,IACd,MAAO,CAACxZ,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG4B,EAAIjd,IAAIqd,OAAO,SAAS,MAAK,EAAM,cAAc,IAAI,IAAI,GAAG5Z,EAAIuX,MACtF,EAAkB,G,oCCUhB,EAAN,yG,0BACS,EAAAsC,KAAoB,GAD7B,sDAIU,SAAcC,GACpB7Z,KAAK4Z,KAAKrgB,KAAKsgB,KALnB,6BASU,WACN7Z,KAAK4Z,KAAKzf,OAAO,KAVrB,yBAcS,SAAY0f,GACjB7Z,KAAK8Z,cAAcD,KAfvB,2BAmBS,WACL7Z,KAAK+Z,sBApBT,GAAuB,QAIrB,gBADC,Q,4BAGA,MAGD,gBADC,Q,8BAGA,MAGD,gBADC,Q,0BAGA,MAGD,gBADC,Q,4BAGA,MArBG,EAAQ,gBADb,eAAO,CAAE1H,SAAS,EAAMC,QAAA,KAAO1U,KAAM,cAChC,GAwBC,IAAMoc,EAAiB,eAAU,GC4CxC,2G,0BACU,EAAAf,oBAAqB,EAD/B,gDAGE,WACE,OAAOe,EAAeJ,OAJ1B,sBAOU,WACN5Z,KAAKiZ,oBAAqB,EAC1Be,EAAeC,oBATnB,GAA6B,QAA7B,kBAHC,eAAU,CACTrc,KAAM,cAaP,G,QC9F6hB,ICQ1hB,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,I,QCnBX,EAAS,WAAa,IAAImC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAC+W,MAAM,CAAC,CAAC,YAAanX,EAAIma,WAAW3Z,GAAG,CAAC,MAAQR,EAAIoa,cAAc,CAACha,EAAG,WAAW,CAACG,MAAM,CAAC,KAAO,YAAY,MAAQ,KAAK,OAAS,SAAS,IACjP,EAAkB,GCkBtB,+KAGU,WACNN,KAAKoa,MAAM,oBAJf,GAA6B,QACD,gBAAzB,eAAK,CAAEC,SAAS,K,+BADnB,kBAHC,eAAU,CACTzc,KAAM,eAQP,G,QCzB6hB,ICQ1hB,G,UAAY,eACd,EACA,EACA,GACA,EACA,KACA,WACA,OAIa,K,QCnBX,GAAS,WAAa,IAAImC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,gBAAgB6W,MAAM,CAAC,KAAQnX,EAAIua,MAAMha,MAAM,CAAC,GAAK,kBAAkB,CAACH,EAAG,WAAW,CAACE,YAAY,cAAcC,MAAM,CAAC,KAAO,UAAUC,GAAG,CAAC,MAAQ,SAASsX,GAAiC,OAAzBA,EAAO0C,kBAAyBxa,EAAIya,MAAM3C,OAAY1X,EAAG,YAAY,CAACmZ,IAAI,qBAAqBjZ,YAAY,uBAAuBC,MAAM,CAAC,gBAAgBP,EAAI0a,YAAY,WAAa,GAAG,uBAAuB,GAAG,OAAS,GAAG,YAAc,UAAUla,GAAG,CAAC,OAASR,EAAIsQ,QAAQqK,MAAM,CAAC/b,MAAOoB,EAAU,OAAE4a,SAAS,SAAUC,GAAM7a,EAAIsP,OAAOuL,GAAKC,WAAW,WAAW9a,EAAIgY,GAAIhY,EAAW,SAAE,SAASiY,GAAM,OAAO7X,EAAG,YAAY,CAAClB,IAAI+Y,EAAKP,KAAKnX,MAAM,CAAC,MAAQ0X,EAAK,MAAQA,EAAK5W,KAAKF,MAAM4Z,KAAK,aAAY,IAAI,IAC3wB,GAAkB,G,yHC2CtB,4G,0BACU,EAAAzL,OAAS,GACT,EAAAiL,MAAO,EACP,EAAAS,QAAyB,GACzB,EAAAC,WAA4B,GAJtC,6CAOE,WACE,OAAO,QAAiBlI,SAR5B,gBAWE,WACE,OAAO,OAAUpS,WAZrB,0BAgBU,WACNV,KAAKgb,WAAahb,KAAKib,eAAejb,KAAK8S,UAjB/C,4BAqBU,WACN9S,KAAKgb,WAAahb,KAAKib,eAAejb,KAAK8S,UAtB/C,gCA0BU,SAAmBnU,GACzBqB,KAAKkb,SAASvc,KA3BlB,0BA+BU,SAAaA,GACfA,EACFrD,SAAS6f,KAAKC,iBAAiB,QAASpb,KAAKwQ,OAE7ClV,SAAS6f,KAAKE,oBAAoB,QAASrb,KAAKwQ,SAnCtD,qBAuCE,WACExQ,KAAKgb,WAAahb,KAAKib,eAAejb,KAAK8S,UAxC/C,mBA2CU,WACN9S,KAAKsa,MAAQta,KAAKsa,KACdta,KAAKsa,MACPta,KAAKsb,MAAMC,oBAAuBvb,KAAKsb,MAAMC,mBAAmCC,UA9CtF,mBAkDU,WACNxb,KAAKsb,MAAMC,oBAAuBvb,KAAKsb,MAAMC,mBAAmCE,OAChFzb,KAAK+a,QAAU,GACf/a,KAAKsa,MAAO,IArDhB,oBAwDU,SAAOrT,GAAkB,WAC/BjH,KAAK6Y,QAAQtf,KAAK0N,EAAMwQ,MAAxB,UAAoC,SAAAnb,GAClCiD,QAAQuZ,KAAKxc,MAEf0D,KAAKqP,OAAS,GACdrP,KAAK+a,QAAU,GACf/a,KAAK0b,WAAU,WACb,EAAKpB,MAAO,OA/DlB,sBAmEU,SAASqB,GACf3b,KAAK4b,KAAO,IAAI,QAAKD,EAAM,CACzBE,YAAY,EACZC,UAAW,GACXC,SAAU,EACVC,SAAU,IACVC,mBAAoB,EACpBjK,KAAM,CAAC,CACLpU,KAAM,QACNse,OAAQ,IACP,CACDte,KAAM,OACNse,OAAQ,SA/EhB,4BAsFU,SAAepJ,GAAiE,MAA1CqJ,EAA0C,uDAA/B,IAAKC,EAA0B,uDAAF,GAChFrJ,EAAqB,GAD6D,kBAGjED,GAHiE,IAGtF,2BAA6B,KAAlBuJ,EAAkB,QAE3B,IAAIA,EAAOjb,OAAQib,EAAOjb,KAAKkb,OAA/B,CAIA,IAAM7jB,EAAoB,CACxBgf,KAAM,KAAKxc,QAAQkhB,EAAUE,EAAO5E,MACpCrW,KAAM,CACJF,MAAO,gBAAIkb,KAIf,GAAIC,EAAOjb,MAAQib,EAAOjb,KAAKF,MAAO,CAEpC,IAAMqb,EAAY,QAAK3d,EAAL,gBAAgByd,EAAOjb,KAAKF,QAASM,WACvD/I,EAAK2I,KAAKF,MAAV,0BAAsBzI,EAAK2I,KAAKF,OAAhC,CAAuCqb,IACf,eAApBF,EAAOpE,UAGTlF,EAAIxZ,KAAKd,GAKb,GAAI4jB,EAAOrJ,SAAU,CACnB,IAAMwJ,EAAaxc,KAAKib,eAAeoB,EAAOrJ,SAAUva,EAAKgf,KAAMhf,EAAK2I,KAAKF,OACzEsb,EAAWvjB,QAAU,IACvB8Z,EAAM,GAAH,uBAAOA,GAAP,gBAAeyJ,QA/B8D,8BAmCtF,OAAOzJ,IAzHX,yBA4HU,SAAY0J,GACJ,KAAVA,EACEzc,KAAK4b,OACP5b,KAAK+a,QAAU/a,KAAK4b,KAAKvM,OAAOoN,GAAOC,KAAI,SAAC5iB,GAAD,OAAYA,EAAOke,SAGhEhY,KAAK+a,QAAU,OAlIrB,GAA6B,QAgB3B,gBADC,eAAM,S,4BAGN,MAGD,gBADC,eAAM,W,8BAGN,MAGD,gBADC,eAAM,e,kCAGN,MAGD,gBADC,eAAM,S,4BAON,MArCH,mBAHC,eAAU,CACTnd,KAAM,kBAuIP,I,UCjL6hB,MCQ1hB,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,qBCnBX,GAAS,WAAa,IAAImC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,eAAe,CAACH,EAAG,WAAW,CAACG,MAAM,CAAC,KAAOP,EAAI4c,aAAc,kBAAmB,cAAcpc,GAAG,CAAC,MAAQR,EAAIya,UAAU,IAC5O,GAAkB,G,wBCYhBoC,GAAK,KAKX,4G,0BACU,EAAAD,cAAe,EADzB,gDAGE,WACMC,GAAGC,WACLD,GAAGrc,GAAG,SAAUP,KAAKqQ,UAL3B,2BASE,WACMuM,GAAGC,WACLD,GAAGE,IAAI,SAAU9c,KAAKqQ,UAX5B,oBAeU,WACFuM,GAAGC,YACL7c,KAAK2c,aAAeC,GAAGD,gBAjB7B,mBAqBU,WACN,IAAKC,GAAGC,UAKN,OAJA7c,KAAKuB,SAAS,CACZ5D,QAAS,2BACT5B,KAAM,aAED,EAET6gB,GAAGG,aA7BP,GAA6B,QAA7B,mBAHC,eAAU,CACTnf,KAAM,gBAiCP,I,UCjD6hB,MCO1hB,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QClBX,GAAS,WAAa,IAAImC,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,cAAc,CAACG,MAAM,CAAC,GAAK,cAAc,QAAU,SAASC,GAAG,CAAC,QAAUR,EAAIid,gBAAgB,CAAC7c,EAAG,MAAM,CAACA,EAAG,WAAW,CAACE,YAAY,YAAYC,MAAM,CAAC,KAAO,WAAW,GAAGH,EAAG,mBAAmB,CAACG,MAAM,CAAC,KAAO,YAAYG,KAAK,YAAYV,EAAIgY,GAAIhY,EAAe,aAAE,SAASiY,GAAM,OAAO7X,EAAG,mBAAmB,CAAClB,IAAI+Y,EAAKrZ,MAAM2B,MAAM,CAAC,SAAWP,EAAIuG,OAAO0R,EAAKrZ,MAAM,QAAUqZ,EAAKrZ,QAAQ,CAACoB,EAAIY,GAAG,IAAIZ,EAAI4X,GAAGK,EAAKiF,OAAO,UAAS,IAAI,IAC7gB,GAAkB,GCiCtB,I,UAAA,yG,0BACU,EAAAC,YAAc,CACpB,CAAED,MAAO,UAAWte,MAAO,WAC3B,CAAEse,MAAO,SAAUte,MAAO,UAC1B,CAAEse,MAAO,QAASte,MAAO,SACzB,CAAEse,MAAO,OAAQte,MAAO,SAL5B,2CAQE,WACE,OAAO,OAAU2H,OATrB,2BAYU,SAAcA,GACnBtG,KAAamd,SAAS7W,KAAOA,EAC9B,OAAU8W,QAAQ9W,GAClBtG,KAAKqd,cACLrd,KAAKuB,SAAS,CACZ5D,QAAS,sBACT5B,KAAM,cAlBZ,yBAsBU,WAAW,WAEjB,OAAeuhB,oBAFE,IAGTC,EAAavd,KAAKmB,OAAlBoc,SACRvd,KAAK0b,WAAU,WACb,EAAK7C,QAAQ2E,QAAQ,CACnB/F,KAAM,YAAc8F,IADtB,UAES,SAAAjhB,GACPiD,QAAQuZ,KAAKxc,aA9BrB,GAA6B,SAA7B,mBAHC,eAAU,CACTsB,KAAM,gBAoCP,I,UCpE6hB,MCO1hB,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QCyEf,0KACE,WACE,OAAO,OAAUwY,UAFrB,kBAKE,WACE,OAAO,OAAUG,OAAO/U,aAN5B,kBASE,WACE,OAAO,OAAWsS,SAVtB,2BAaU,WACN,OAAU2J,eAAc,KAd5B,6EAiBU,8GACA,OAAWC,SADX,OAEN1d,KAAK6Y,QAAQtf,KAAb,0BAAqCyG,KAAKmB,OAAOoc,WAAjD,UAAmE,SAAAjhB,GACjEiD,QAAQuZ,KAAKxc,MAHT,gDAjBV,8DAA6B,QAA7B,mBAZC,eAAU,CACTsB,KAAM,SACNgK,WAAY,CACV+V,aACAC,SAAA,EACAC,aACAC,gBACAC,cAAA,KACAC,cACAC,kBA0BH,I,UClH+iB,MCQ5iB,I,UAAY,eACd,GACA,EACA,GACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIle,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACF,EAAG,MAAM,CAACA,EAAG,KAAK,CAACE,YAAY,gBAAgB,CAACN,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG5X,EAAIsB,GAAG,mBAAmB,OAAOlB,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,OAAO,CAACJ,EAAIY,GAAGZ,EAAI4X,GAAG5X,EAAIsB,GAAG,sBAAsBlB,EAAG,eAAe,CAAC2X,YAAY,CAAC,MAAQ,QAAQ,OAAS,OAAO,OAAS,gBAAgBvX,GAAG,CAAC,OAASR,EAAIme,gBAAgB,GAAG/d,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,OAAO,CAACJ,EAAIY,GAAGZ,EAAI4X,GAAG5X,EAAIsB,GAAG,6BAA6BlB,EAAG,YAAY,CAACE,YAAY,gBAAgBqa,MAAM,CAAC/b,MAAOoB,EAAgB,aAAE4a,SAAS,SAAUC,GAAM7a,EAAI4Q,aAAaiK,GAAKC,WAAW,mBAAmB,GAAG1a,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,OAAO,CAACJ,EAAIY,GAAGZ,EAAI4X,GAAG5X,EAAIsB,GAAG,gCAAgClB,EAAG,YAAY,CAACE,YAAY,gBAAgBqa,MAAM,CAAC/b,MAAOoB,EAAmB,gBAAE4a,SAAS,SAAUC,GAAM7a,EAAI6Q,gBAAgBgK,GAAKC,WAAW,sBAAsB,GAAG1a,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,OAAO,CAACJ,EAAIY,GAAGZ,EAAI4X,GAAG5X,EAAIsB,GAAG,4BAA4BlB,EAAG,YAAY,CAACE,YAAY,gBAAgBqa,MAAM,CAAC/b,MAAOoB,EAAe,YAAE4a,SAAS,SAAUC,GAAM7a,EAAI8Q,YAAY+J,GAAKC,WAAW,kBAAkB,GAAG1a,EAAG,MAAM,CAACE,YAAY,eAAe,CAACF,EAAG,OAAO,CAACJ,EAAIY,GAAGZ,EAAI4X,GAAG5X,EAAIsB,GAAG,iCAAiClB,EAAG,YAAY,CAACE,YAAY,gBAAgBqa,MAAM,CAAC/b,MAAOoB,EAAoB,iBAAE4a,SAAS,SAAUC,GAAM7a,EAAI+Q,iBAAiB8J,GAAKC,WAAW,uBAAuB,QACp9C,GAAkB,GCDlB,GAAS,WAAa,IAAI9a,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,kBAAkB,CAACE,YAAY,eAAeC,MAAM,CAAC,UAAY,CAAC,UAAW,UAAW,UAAU,UAAU,UAAW,UAAW,UAAW,WAAW,eAAe,yBAAyBoa,MAAM,CAAC/b,MAAOoB,EAAS,MAAE4a,SAAS,SAAUC,GAAM7a,EAAI0K,MAAMmQ,GAAKC,WAAW,YAC3W,GAAkB,GCahBsD,I,gFAAU,EAAQ,QAA2BA,SAC7CC,GAAiB,UAKvB,4G,0BACU,EAAAC,MAAQ,GACR,EAAA5T,MAAQ,GAFlB,mDAIE,WACE,OAAO,OAAeA,QAL1B,kCASU,SAAqB9L,GAC3BqB,KAAKyK,MAAQ9L,IAVjB,oFAcU,WAAoBA,GAApB,+GACDA,EADC,oDAEA2f,EAAWte,KAAKqe,MAAQre,KAAKyK,MAAQ2T,GACrCG,EAAeve,KAAKwe,gBAAgB7f,EAAM6e,QAAQ,IAAK,KACvDiB,EAAkBze,KAAKwe,gBAAgBF,EAASd,QAAQ,IAAK,KAC7D7f,EAAUqC,KAAKuB,SAAS,CAC5B5D,QAAS,wBACT+gB,YAAa,gBACb3iB,KAAM,UACN4iB,SAAU,EACVC,UAAW,oBAGR5e,KAAKqe,MAbJ,wBAcEpK,EAdF,uCAcwCkK,GAdxC,wCAeEne,KAAK6e,aAAa5K,EAAK,SAfzB,QAkBA6K,EAAa,SAACC,EAAkBtP,GACpC,OAAO,WACL,IAAMgP,EAAkB,EAAKD,gBAAgBJ,GAAeZ,QAAQ,IAAK,KACnEwB,EAAW,EAAKC,YAAa,EAAaF,GAAWN,EAAiBF,GAExEW,EAAW5jB,SAAS6jB,eAAe1P,GAClCyP,IACHA,EAAW5jB,SAASQ,cAAc,SAClCojB,EAAS7hB,aAAa,KAAMoS,GAC5BnU,SAASqB,KAAKC,YAAYsiB,IAE5BA,EAASE,UAAYJ,IAGnBK,EAAeP,EAAW,QAAS,eACzCO,IAEIC,EAAwB,GAAG3f,MAAMtG,KAAKiC,SAASikB,iBAAiB,UACpED,EAASA,EACNha,QAAO,SAAAka,GACN,IAAMC,EAAOD,EAAMJ,UACnB,OAAO,IAAIM,OAAOpB,EAAU,KAAKqB,KAAKF,KAAU,kBAAkBE,KAAKF,MAE3EH,EAAOlb,SAAQ,SAAAob,GAAQ,IACbJ,EAAcI,EAAdJ,UACiB,kBAAdA,IACXI,EAAMJ,UAAY,EAAKH,YAAYG,EAAWX,EAAiBF,OAGjEve,KAAKoa,MAAM,SAAUzb,GACrBhB,EAAQ6S,QAhDF,iDAdV,mFAiEU,SAAYgP,EAAeI,EAAsBC,GACvD,IAAIb,EAAWQ,EAIf,OAHAI,EAAWxb,SAAQ,SAAC0b,EAAO/b,GACzBib,EAAWA,EAASxB,QAAQ,IAAIkC,OAAOI,EAAO,MAAOD,EAAW9b,OAE3Dib,IAtEX,0BAyEU,SAAa/K,EAAa8K,GAAgB,WAChD,OAAO,IAAI/jB,SAAc,SAAAC,GACvB,IAAM8kB,EAAM,IAAIC,eAChBD,EAAIE,mBAAqB,WACA,IAAnBF,EAAIG,YAAmC,MAAfH,EAAIlQ,SAC7B,EAAakP,GAAYgB,EAAII,aAAa3C,QAAQ,oBAAqB,IACxEviB,MAGJ8kB,EAAIK,KAAK,MAAOnM,GAChB8L,EAAIM,YAnFV,6BAuFU,SAAgB5V,GA0BtB,IAzBA,IAAM6V,EAAY,SAACR,EAAeS,GAChC,IAAIC,EAAMC,SAASX,EAAMngB,MAAM,EAAG,GAAI,IAClC+gB,EAAQD,SAASX,EAAMngB,MAAM,EAAG,GAAI,IACpCghB,EAAOF,SAASX,EAAMngB,MAAM,EAAG,GAAI,IACvC,OAAa,IAAT4gB,EACK,CAACC,EAAKE,EAAOC,GAAM7F,KAAK,MAE/B0F,GAAO1d,KAAK8d,MAAML,GAAQ,IAAMC,IAChCE,GAAS5d,KAAK8d,MAAML,GAAQ,IAAMG,IAClCC,GAAQ7d,KAAK8d,MAAML,GAAQ,IAAMI,IACjC,WAAWH,EAAIhf,SAAS,KAAxB,OAA8Bkf,EAAMlf,SAAS,KAA7C,OAAmDmf,EAAKnf,SAAS,OAI/Dqf,EAAa,SAACf,EAAegB,GACjC,IAAIN,EAAMC,SAASX,EAAMngB,MAAM,EAAG,GAAI,IAClC+gB,EAAQD,SAASX,EAAMngB,MAAM,EAAG,GAAI,IACpCghB,EAAOF,SAASX,EAAMngB,MAAM,EAAG,GAAI,IAIvC,OAHA6gB,EAAM1d,KAAK8d,OAAO,EAAIE,GAASN,GAC/BE,EAAQ5d,KAAK8d,OAAO,EAAIE,GAASJ,GACjCC,EAAO7d,KAAK8d,OAAO,EAAIE,GAASH,GAChC,WAAWH,EAAIhf,SAAS,KAAxB,OAA8Bkf,EAAMlf,SAAS,KAA7C,OAAmDmf,EAAKnf,SAAS,MAG7Duf,EAAW,CAACtW,GACT1R,EAAI,EAAGA,GAAK,EAAGA,IACtBgoB,EAASxnB,KAAK+mB,EAAU7V,EAAOgM,QAAQ1d,EAAI,IAAIioB,QAAQ,MAGzD,OADAD,EAASxnB,KAAKsnB,EAAWpW,EAAO,KACzBsW,MArHX,GAA6B,QAS3B,gBADC,eAAM,eAAgB,CAAEE,WAAW,K,oCAGnC,MAGD,gBADC,eAAM,U,6BAkDN,MA/DH,mBAHC,eAAU,CACTrjB,KAAM,iBAyHP,I,UC3I6hB,MCQ1hB,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,OAIa,M,QC0Cf,8KACE,WACE,OAAO,OAAeiT,aAF1B,IAKE,SAAgBlS,GACd,OAAeuiB,cAAc,CAAEjiB,IAAK,cAAeN,YANvD,wBASE,WACE,OAAO,OAAegS,cAV1B,IAaE,SAAiBhS,GACf,OAAeuiB,cAAc,CAAEjiB,IAAK,eAAgBN,YAdxD,2BAiBE,WACE,OAAO,OAAeiS,iBAlB1B,IAqBE,SAAoBjS,GAClB,OAAeuiB,cAAc,CAAEjiB,IAAK,kBAAmBN,YAtB3D,4BAyBE,WACE,OAAO,OAAemS,kBA1B1B,IA6BE,SAAqBnS,GACnB,OAAeuiB,cAAc,CAAEjiB,IAAK,mBAAoBN,YA9B5D,yBAiCU,SAAYA,GAClB,OAAeuiB,cAAc,CAAEjiB,IAAK,QAASN,cAlCjD,GAA6B,QAA7B,mBANC,eAAU,CACTf,KAAM,WACNgK,WAAY,CACVuZ,mBAuCH,I,UCjG+iB,MCQ5iB,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCnBX,GAAS,WAAa,IAAIphB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAAC+W,MAAM,CAAC,WAAYnX,EAAIqhB,WAAW,CAAErhB,EAAY,SAAEI,EAAG,eAAe,CAACG,MAAM,CAAC,SAAWP,EAAIshB,cAActhB,EAAIuX,KAAKnX,EAAG,eAAe,CAACG,MAAM,CAAC,aAAa,sBAAsB,CAACH,EAAG,UAAU,CAACG,MAAM,CAAC,iBAAiBP,EAAIuhB,WAAW,SAAWvhB,EAAIshB,WAAW,mBAAmBthB,EAAIwhB,UAAUC,OAAO,aAAazhB,EAAIwhB,UAAUE,SAAS,oBAAoB1hB,EAAI2hB,oBAAoB,iBAAgB,EAAM,uBAAsB,EAAM,KAAO,aAAa3hB,EAAIgY,GAAIhY,EAAU,QAAE,SAASkH,GAAO,OAAO9G,EAAG,eAAe,CAAClB,IAAIgI,EAAMwQ,KAAKnX,MAAM,CAAC,KAAO2G,EAAM,YAAYA,EAAMwQ,KAAK,cAAc1X,EAAIshB,iBAAgB,IAAI,IAAI,IACrsB,GAAkB,GCDlB,GAAS,WAAa,IAAIthB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAASF,EAAIiY,KAAK5W,MAASrB,EAAIiY,KAAK5W,KAAKkb,OAAo/Cvc,EAAIuX,KAAh/CnX,EAAG,MAAM,CAAC+W,MAAM,CAACnX,EAAIshB,WAAa,cAAgB,YAAa,CAAC,cAAethB,EAAI4hB,gBAAgB,CAAG5hB,EAAI6hB,qBAAsB7hB,EAAI8hB,iBAAoB9hB,EAAI8hB,gBAAgB7O,SAAymB7S,EAAG,aAAa,CAACG,MAAM,CAAC,MAAQP,EAAI+hB,YAAY/hB,EAAIiY,KAAKP,MAAM,wBAAwB,KAAK,CAACtX,EAAG,WAAW,CAACM,KAAK,SAAS,CAAEV,EAAIiY,KAAK5W,MAAQrB,EAAIiY,KAAK5W,KAAK2gB,KAAM5hB,EAAG,WAAW,CAACG,MAAM,CAAC,KAAOP,EAAIiY,KAAK5W,KAAK2gB,QAAQhiB,EAAIuX,KAAMvX,EAAIiY,KAAK5W,MAAQrB,EAAIiY,KAAK5W,KAAK4gB,OAAQ7hB,EAAG,IAAI,CAAC+W,MAAMnX,EAAIiY,KAAK5W,KAAK4gB,SAASjiB,EAAIuX,KAAMvX,EAAIiY,KAAK5W,MAAQrB,EAAIiY,KAAK5W,KAAKF,MAAOf,EAAG,OAAO,CAACG,MAAM,CAAC,KAAO,SAASG,KAAK,SAAS,CAACV,EAAIY,GAAGZ,EAAI4X,GAAG5X,EAAIsB,GAAG,SAAWtB,EAAIiY,KAAK5W,KAAKF,WAAWnB,EAAIuX,MAAM,GAAIvX,EAAIiY,KAAa,SAAEjY,EAAIgY,GAAIhY,EAAIiY,KAAa,UAAE,SAASiK,GAAO,OAAO9hB,EAAG,eAAe,CAAClB,IAAIgjB,EAAMxK,KAAKpX,YAAY,YAAYC,MAAM,CAAC,KAAO2hB,EAAM,cAAcliB,EAAIshB,WAAW,kBAAiB,EAAM,YAAYthB,EAAI+hB,YAAYG,EAAMxK,YAAW1X,EAAIuX,MAAM,GAA/yC,CAAEvX,EAAI8hB,gBAAoB,KAAE1hB,EAAG,oBAAoB,CAACG,MAAM,CAAC,GAAKP,EAAI+hB,YAAY/hB,EAAI8hB,gBAAgBpK,QAAQ,CAACtX,EAAG,eAAe,CAAC+W,MAAM,CAAC,2BAA4BnX,EAAI4hB,cAAcrhB,MAAM,CAAC,MAAQP,EAAI+hB,YAAY/hB,EAAI8hB,gBAAgBpK,QAAQ,CAAE1X,EAAI8hB,gBAAgBzgB,KAAS,KAAEjB,EAAG,WAAW,CAACG,MAAM,CAAC,KAAOP,EAAI8hB,gBAAgBzgB,KAAK2gB,QAAQhiB,EAAIuX,KAAMvX,EAAIiY,KAAK5W,MAAQrB,EAAIiY,KAAK5W,KAAK4gB,OAAQ7hB,EAAG,IAAI,CAAC+W,MAAMnX,EAAIiY,KAAK5W,KAAK4gB,SAASjiB,EAAIuX,KAAMvX,EAAI8hB,gBAAgBzgB,KAAU,MAAEjB,EAAG,OAAO,CAACG,MAAM,CAAC,KAAO,SAASG,KAAK,SAAS,CAACV,EAAIY,GAAGZ,EAAI4X,GAAG5X,EAAIsB,GAAG,SAAWtB,EAAI8hB,gBAAgBzgB,KAAKF,WAAWnB,EAAIuX,MAAM,IAAI,GAAGvX,EAAIuX,OAA0tB,IAC/mD,GAAkB,G,aCCT4K,I,oBAAa,SAACzK,GAAD,MAAkB,0BAA0BkI,KAAKlI,KCFvE,GAAS,WAAa,IAAI1X,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAQF,EAAImiB,WAAWniB,EAAIoiB,IAAKhiB,EAAG,IAAI,CAACG,MAAM,CAAC,KAAOP,EAAIoiB,GAAG,OAAS,SAAS,IAAM,aAAa,CAACpiB,EAAIqiB,GAAG,YAAY,GAAGjiB,EAAG,cAAc,CAACG,MAAM,CAAC,GAAKP,EAAIoiB,KAAK,CAACpiB,EAAIqiB,GAAG,YAAY,IACzQ,GAAkB,GCuBtB,4G,0BAGU,EAAAF,WAAaA,GAHvB,YAA6B,QACD,gBAAzB,eAAK,CAAEG,UAAU,K,0BADpB,mBAHC,eAAU,CACTzkB,KAAM,qBAMP,I,UC5ByjB,MCOtjB,GAAY,eACd,GACA,GACA,IACA,EACA,KACA,KACA,MAIa,M,QC0Df,qLAME,WACE,SAAIoC,KAAKgY,KAAK5W,OAAQpB,KAAKgY,KAAK5W,KAAKkhB,cAPzC,8BAaE,WACE,GAAItiB,KAAKgY,KAAKhF,SAAU,CACtB,IAAMuP,EAAkBviB,KAAKgY,KAAKhF,SAAS1N,QAAO,SAAC0S,GACjD,OAAIA,EAAK5W,OAAQ4W,EAAK5W,KAAKkb,UAM7B,OAAOiG,EAAgBtpB,OAEzB,OAAO,IAxBX,2BA2BE,WACE,GAAI+G,KAAKwiB,mBAAqB,EAC5B,OAAO,KAET,GAAIxiB,KAAKgY,KAAKhF,SAAU,yBACFhT,KAAKgY,KAAKhF,UADR,IACtB,2BAAwC,KAA7BiP,EAA6B,QACtC,IAAKA,EAAM7gB,OAAS6gB,EAAM7gB,KAAKkb,OAC7B,OAAO2F,GAHW,+BASxB,0CAAYjiB,KAAKgY,MAAjB,IAAuBP,KAAM,OAxCjC,yBA2CU,SAAYgL,GAClB,OAAIP,GAAWO,GACNA,EAELP,GAAWliB,KAAKmc,UACXnc,KAAKmc,SAEP,KAAKlhB,QAAQ+E,KAAKmc,SAAUsG,OAlDvC,GAA6B,QACD,gBAAzB,eAAK,CAAEJ,UAAU,K,4BACQ,gBAAzB,eAAK,CAAEhI,SAAS,K,kCACQ,gBAAxB,eAAK,CAAEA,SAAS,K,oCACM,gBAAtB,eAAK,CAAEA,QAAS,M,gCAJnB,mBARC,eAAU,CAGTzc,KAAM,cACNgK,WAAY,CACV8a,uBAuDH,I,UChIqjB,MCSljB,I,oBAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCpBX,GAAS,WAAa,IAAI3iB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,yBAAyB6W,MAAM,CAAC,SAAYnX,EAAI4iB,WAAW,CAACxiB,EAAG,aAAa,CAACG,MAAM,CAAC,KAAO,oBAAoB,CAAEP,EAAY,SAAEI,EAAG,cAAc,CAAClB,IAAI,WAAWoB,YAAY,oBAAoBC,MAAM,CAAC,GAAK,MAAM,CAACH,EAAG,MAAM,CAACE,YAAY,eAAeC,MAAM,CAAC,IAAM,mBAAmBH,EAAG,cAAc,CAAClB,IAAI,SAASoB,YAAY,oBAAoBC,MAAM,CAAC,GAAK,MAAM,CAACH,EAAG,MAAM,CAACE,YAAY,eAAeC,MAAM,CAAC,IAAM,iBAAiBH,EAAG,KAAK,CAACE,YAAY,iBAAiB,CAACN,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG5X,EAAImB,OAAO,UAAU,IAAI,IACjnB,GAAkB,G,aCyCtB,4G,0BAGU,EAAAA,MAAQ,QAASA,MAH3B,YAA6B,QACD,gBAAzB,eAAK,CAAEmhB,UAAU,K,gCADpB,mBAHC,eAAU,CACTzkB,KAAM,iBAMP,I,UC9CqjB,MCQljB,I,UAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,gCC0Bf,0KACE,WACE,OAAO,OAAUwY,UAFrB,kBAKE,WACE,OAAO,QAAiBtD,SAN5B,oBASE,WACE,OAAO,OAAelC,kBAV1B,+BAaE,WACE,OAAI,OAAeE,iBACV,OAAerG,MAEf,KAAUmY,iBAjBvB,qBAqBE,WACE,OAAO,OAtBX,sBAyBE,WACE,IAAM3b,EAAQjH,KAAKmB,OACXC,EAAe6F,EAAf7F,KAAMqW,EAASxQ,EAATwQ,KAEd,OAAIrW,EAAKkgB,WACAlgB,EAAKkgB,WAEP7J,IAhCX,sBAmCE,WACE,OAAQzX,KAAKoW,QAAQC,WApCzB,GAA6B,QAA7B,mBAPC,eAAU,CACTzY,KAAM,UACNgK,WAAY,CACVib,eACAC,mBAyCH,I,UCnF+iB,MCS5iB,I,oBAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCpBX,GAAS,WAAa,IAAI/iB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACE,YAAY,sBAAsBC,MAAM,CAAC,GAAK,wBAAwB,CAACH,EAAG,cAAc,CAACmZ,IAAI,aAAajZ,YAAY,oBAAoBE,GAAG,CAAC,OAASR,EAAIgjB,eAAehjB,EAAIgY,GAAIhY,EAAgB,cAAE,SAASvE,GAAK,OAAO2E,EAAG,cAAc,CAAClB,IAAIzD,EAAIic,KAAK6B,IAAI,MAAM0J,UAAS,EAAK3iB,YAAY,iBAAiB6W,MAAMnX,EAAIma,SAAS1e,GAAO,SAAW,GAAG8E,MAAM,CAAC,GAAK,CAACmX,KAAMjc,EAAIic,KAAMgF,MAAOjhB,EAAIihB,MAAOc,SAAU/hB,EAAI+hB,UAAU,IAAM,QAAQ3F,SAAS,CAAC,QAAU,SAASC,GAAQ,GAAG,WAAYA,GAA4B,IAAlBA,EAAOrJ,OAAe,OAAO,MAAQzO,EAAIkjB,QAAQznB,IAAKuE,EAAImjB,iBAAiB1nB,IAAS,YAAc,SAASqc,GAAgC,OAAxBA,EAAOM,iBAAwBpY,EAAIojB,SAAS3nB,EAAKqc,MAAW,CAAC9X,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG5X,EAAIsB,GAAG,SAAW7F,EAAI4F,KAAKF,QAAQ,KAAOnB,EAAIkjB,QAAQznB,GAAgKuE,EAAIuX,KAA9JnX,EAAG,OAAO,CAACE,YAAY,gBAAgBE,GAAG,CAAC,MAAQ,SAASsX,GAAyD,OAAjDA,EAAOM,iBAAiBN,EAAO0C,kBAAyBxa,EAAImjB,iBAAiB1nB,YAAsB,GAAG2E,EAAG,KAAK,CAACijB,WAAW,CAAC,CAACxlB,KAAK,OAAOylB,QAAQ,SAAS1kB,MAAOoB,EAAW,QAAE8a,WAAW,YAAYxa,YAAY,cAAcmf,MAAM,CAAE8D,KAAMvjB,EAAIujB,KAAK,KAAMC,IAAKxjB,EAAIwjB,IAAI,OAAQ,CAACpjB,EAAG,KAAK,CAACI,GAAG,CAAC,MAAQ,SAASsX,GAAQ,OAAO9X,EAAIyjB,mBAAmBzjB,EAAI0jB,gBAAgB,CAAC1jB,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG5X,EAAIsB,GAAG,qBAAqB,OAAStB,EAAIkjB,QAAQljB,EAAI0jB,aAAwJ1jB,EAAIuX,KAA9InX,EAAG,KAAK,CAACI,GAAG,CAAC,MAAQ,SAASsX,GAAQ,OAAO9X,EAAImjB,iBAAiBnjB,EAAI0jB,gBAAgB,CAAC1jB,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG5X,EAAIsB,GAAG,mBAAmB,OAAgBlB,EAAG,KAAK,CAACI,GAAG,CAAC,MAAQR,EAAI2jB,kBAAkB,CAAC3jB,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG5X,EAAIsB,GAAG,yBAAyB,OAAOlB,EAAG,KAAK,CAACI,GAAG,CAAC,MAAQ,SAASsX,GAAQ,OAAO9X,EAAI4jB,aAAa5jB,EAAI0jB,gBAAgB,CAAC1jB,EAAIY,GAAG,IAAIZ,EAAI4X,GAAG5X,EAAIsB,GAAG,sBAAsB,UAAU,IACntD,GAAkB,GCDlB,I,UAAS,WAAa,IAAItB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,eAAe,CAACmZ,IAAI,kBAAkBjZ,YAAY,mBAAmBC,MAAM,CAAC,UAAW,GAAOsX,SAAS,CAAC,MAAQ,SAASC,GAAgC,OAAxBA,EAAOM,iBAAwBpY,EAAIgjB,aAAalL,MAAW,CAAC9X,EAAIqiB,GAAG,YAAY,KAC/S,GAAkB,GCahBwB,I,UAAa,GAKnB,gLACE,WACE,OAAQ5jB,KAAKsb,MAAMuI,gBAAwBvI,MAAMwI,OAFrD,qBAKE,WACE9jB,KAAK+jB,cAAc3I,iBAAiB,SAAUpb,KAAKgkB,YAAY,KANnE,2BASE,WACEhkB,KAAK+jB,cAAc1I,oBAAoB,SAAUrb,KAAKgkB,cAV1D,0BAaU,SAAanpB,GACnB,IAAMopB,EAAcppB,EAAUqpB,YAA0B,IAAXrpB,EAAEspB,OACzCJ,EAAgB/jB,KAAK+jB,cAC3BA,EAAcK,WAAaL,EAAcK,WAAaH,EAAa,IAhBvE,wBAmBU,WACNjkB,KAAKoa,MAAM,YApBf,0BAuBS,SAAaiK,GAClB,IAAMC,EAAatkB,KAAKsb,MAAMuI,gBAAwBU,IAChDC,EAAiBF,EAAUG,YAC3BV,EAAgB/jB,KAAK+jB,cACrBW,EAAU1kB,KAAK2kB,QAAQrJ,MAAM9f,IAE/BopB,EAAW,KACXC,EAAU,KAQd,GALIH,EAAQzrB,OAAS,IACnB2rB,EAAWF,EAAQ,GACnBG,EAAUH,EAAQA,EAAQzrB,OAAS,IAGjC2rB,IAAaP,EACfN,EAAcK,WAAa,OACtB,GAAIS,IAAYR,EACrBN,EAAcK,WAAaL,EAAce,YAAcN,MAClD,CAEL,IAAMO,EAAeL,EAAQM,WAAU,SAAAhN,GAAI,OAAIA,IAASqM,KAClDY,EAAUP,EAAQK,EAAe,GACjCG,EAAUR,EAAQK,EAAe,GAEjCI,EAAyBD,EAAQX,IAAIa,WAAaF,EAAQX,IAAIE,YAAcb,GAE5EyB,EAA0BJ,EAAQV,IAAIa,WAAaxB,GAErDuB,EAAyBpB,EAAcK,WAAaI,EACtDT,EAAcK,WAAae,EAAyBX,EAC3Ca,EAA0BtB,EAAcK,aACjDL,EAAcK,WAAaiB,QAvDnC,GAA6B,QAA7B,mBAHC,eAAU,CACTznB,KAAM,gBA6DP,I,UC9EojB,MCSjjB,I,oBAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCgDf,4G,0BACU,EAAA0nB,SAAU,EACV,EAAA/B,IAAM,EACN,EAAAD,KAAO,EACP,EAAAG,YAAwB,GACxB,EAAA8B,UAAwB,GALlC,mDAOE,WACE,OAAO,OAAeC,eAR1B,kBAWE,WACE,OAAO,QAAiB1S,SAZ5B,2BAgBU,WACN9S,KAAKylB,UACLzlB,KAAK0lB,qBAlBT,6BAsBU,SAAgB/mB,GAClBA,EACFrD,SAAS6f,KAAKC,iBAAiB,QAASpb,KAAK2lB,WAE7CrqB,SAAS6f,KAAKE,oBAAoB,QAASrb,KAAK2lB,aA1BtD,qBA8BE,WACE3lB,KAAK4lB,WACL5lB,KAAKylB,YAhCT,sBAmCU,SAASxe,GACf,OAAOA,EAAMwQ,OAASzX,KAAKmB,OAAOsW,OApCtC,qBAuCU,SAAQjc,GACd,OAAOA,EAAI4F,MAAQ5F,EAAI4F,KAAKykB,QAxChC,6BA2CU,SAAgB/S,GAAqC,WAAdqJ,EAAc,uDAAH,IACpD2J,EAAmB,GAkBvB,OAjBAhT,EAAO1O,SAAQ,SAAA6C,GACb,GAAIA,EAAM7F,MAAQ6F,EAAM7F,KAAKykB,MAAO,CAClC,IAAME,EAAU,KAAK9qB,QAAQkhB,EAAUlV,EAAMwQ,MAC7CqO,EAAKvsB,KAAK,CACRgkB,SAAUwI,EACVtO,KAAMsO,EACNnoB,KAAMqJ,EAAMrJ,KACZwD,KAAM,mBAAK6F,EAAM7F,QAGrB,GAAI6F,EAAM+L,SAAU,CAClB,IAAMgT,EAAY,EAAKC,gBAAgBhf,EAAM+L,SAAU/L,EAAMwQ,MACzDuO,EAAU/sB,QAAU,IACtB6sB,EAAO,GAAH,uBAAOA,GAAP,gBAAgBE,SAInBF,IA9DX,sBAiEU,WACN9lB,KAAKulB,UAAYvlB,KAAKimB,gBAAgBjmB,KAAK8S,QAD7B,wBAEI9S,KAAKulB,WAFT,IAEd,2BAAkC,KAAvB/pB,EAAuB,QAE5BA,EAAIoC,MACN,OAAesoB,eAAe1qB,IALpB,iCAjElB,qBA2EU,WAAO,IACLoC,EAASoC,KAAKmB,OAAdvD,KAIR,OAHIA,GACF,OAAeuoB,QAAQnmB,KAAKmB,SAEvB,IAhFX,8BAmFU,WAAgB,WAChB2kB,EAAO9lB,KAAKsb,MAAM9f,IACxBwE,KAAK0b,WAAU,WAAK,wBACAoK,GADA,IAClB,2BAAwB,KAAbtqB,EAAa,QACtB,GAAKA,EAAI2mB,GAAgB1K,OAAS,EAAKtW,OAAOsW,KAAM,CACjD,EAAK6D,MAAM8K,WAA0BC,aAAa7qB,GAE9CA,EAAI2mB,GAAgB5E,WAAa,EAAKpc,OAAOoc,UAChD,OAAe+I,kBAAkB,EAAKnlB,QAExC,QARc,oCArFxB,gCAmGU,SAAmBolB,GAAc,WACvC,OAAeC,cAAcD,GADU,IAE/BhJ,EAAagJ,EAAbhJ,SACRvd,KAAK0b,WAAU,WACb,EAAK7C,QAAQ2E,QAAQ,CACnB/F,KAAM,YAAc8F,IADtB,UAES,SAAAjhB,GACPiD,QAAQuZ,KAAKxc,WA1GrB,8BA+GU,SAAiBiqB,GACvB,OAAeE,QAAQF,GACnBvmB,KAAKka,SAASqM,IAChBvmB,KAAK0mB,WAAW,OAAelB,aAAce,KAlHnD,6BAsHU,WACFvmB,KAAKyjB,YAAYlG,WAAavd,KAAKmB,OAAOsW,WAAsC5Z,IAA9BmC,KAAKyjB,YAAYlG,UACrEvd,KAAK6Y,QAAQtf,KAAKyG,KAAKyjB,YAAYlG,UAAnC,UAAmD,SAAAjhB,GACjDiD,QAAQuZ,KAAKxc,MAGjB,OAAeqqB,eAAe3mB,KAAKyjB,aACnCzjB,KAAK0lB,qBA7HT,0BAgIU,SAAaa,GAAc,WACjC,OAAevQ,cACXhW,KAAKulB,UAAU9S,MAAK,SAAAjX,GAAG,OAAIA,EAAIic,OAAS,EAAKtW,OAAOsW,SAGxDzX,KAAK0mB,WAAW,OAAelB,aAAce,KArIjD,wBAwIU,SAAWf,EAA0Be,GAC3C,IAAMK,EAAapB,EAAa7lB,OAAO,GAAG,QACvB9B,IAAf+oB,QAAoD/oB,IAAxB+oB,EAAWrJ,SACzCvd,KAAK6Y,QAAQtf,KAAKqtB,EAAWrJ,UAA7B,UAA6C,SAAAjhB,GAC3CiD,QAAQuZ,KAAKxc,MAIG,cAAdiqB,EAAK3oB,KAEPoC,KAAK6Y,QAAQ2E,QAAQ,CAAE/F,KAAM,YAAc8O,EAAKhJ,WAAhD,UAAkE,SAAAjhB,GAChEiD,QAAQuZ,KAAKxc,MAGf0D,KAAK6Y,QAAQtf,KAAK,KAAlB,UAA6B,SAAA+C,GAC3BiD,QAAQuZ,KAAKxc,QAvJvB,sBA6JU,SAASd,EAAeX,GAC9B,IAAMgsB,EAAe,IACfzB,EAAaplB,KAAKukB,IAAIuC,wBAAwBxD,KAC9CmB,EAAezkB,KAAKukB,IAAoBE,YACxCsC,EAAUtC,EAAcoC,EACxBvD,EAAOzoB,EAAEmsB,QAAU5B,EAAa,GAEpCplB,KAAKsjB,KADHA,EAAOyD,EACGA,EAEAzD,EAEdtjB,KAAKujB,IAAM1oB,EAAEosB,QACbjnB,KAAKslB,SAAU,EACftlB,KAAKyjB,YAAcjoB,IA1KvB,uBA6KU,WACNwE,KAAKslB,SAAU,IA9KnB,0BAiLU,WACNtlB,KAAK2lB,gBAlLT,GAA6B,QAgB3B,gBADC,eAAM,W,6BAIN,MAGD,gBADC,eAAM,Y,+BAON,MA5BH,mBANC,eAAU,CACT/nB,KAAM,WACNgK,WAAY,CACVsf,kBAuLH,I,UCxP+iB,MCS5iB,I,oBAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCpBX,GAAS,WAAa,IAAInnB,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACmZ,IAAI,aAAajZ,YAAY,uBAAuB6W,MAAM,CAACoD,KAAMva,EAAIua,OAAO,CAACna,EAAG,MAAM,CAACE,YAAY,0BAA0BF,EAAG,MAAM,CAACijB,WAAW,CAAC,CAACxlB,KAAK,OAAOylB,QAAQ,SAAS1kB,MAAOoB,EAAY,SAAE8a,WAAW,aAAaxa,YAAY,cAAc,CAACF,EAAG,MAAM,CAACE,YAAY,gBAAgBmf,MAAM,CAAE,IAAOzf,EAAIonB,UAAU,KAAK,mBAAoBpnB,EAAI0K,OAAQlK,GAAG,CAAC,MAAQ,SAASsX,GAAQ9X,EAAIua,MAAMva,EAAIua,QAAQ,CAACna,EAAG,IAAI,CAAC+W,MAAMnX,EAAIua,KAAK,gBAAgB,sBAAsBna,EAAG,MAAM,CAACE,YAAY,oBAAoB,CAACN,EAAIqiB,GAAG,YAAY,QACtnB,GAAkB,G,aC8BtB,4G,0BAIU,EAAA9H,MAAO,EAJjB,+CAME,WACE,OAAQ,OAAU5T,OAPtB,iBAUE,WACE,OAAO,OAAe+D,QAX1B,0BAeU,SAAa9L,GACfA,IAAUqB,KAAKonB,eACjBpnB,KAAKqnB,gBAEH1oB,EACF,gBAASrD,SAAS6f,KAAM,kBAExB,gBAAY7f,SAAS6f,KAAM,oBAtBjC,qBA0BE,WACEnb,KAAKsnB,iBA3BT,2BA8BE,WACE,IAAMC,EAAMvnB,KAAKsb,MAAMkM,WACvBD,EAAIvgB,WAhCR,2BAmCU,WACNvH,OAAO2b,iBAAiB,QAASpb,KAAKynB,gBApC1C,0BAuCU,SAAaC,GACnB,IAAMC,EAAUD,EAAGtrB,OAAuBwrB,QAAQ,eAC7CD,IACH3nB,KAAKsa,MAAO,EACZ7a,OAAO4b,oBAAoB,QAASrb,KAAKynB,iBA3C/C,0BA+CU,WACN,IAAMF,EAAMvnB,KAAKsb,MAAMkM,WACjBrM,EAAO7f,SAASusB,cAAc,QAChC1M,GACFA,EAAK2M,aAAaP,EAAKpM,EAAK4M,gBAnDlC,GAA6B,QACD,gBAAzB,eAAK,CAAE1N,SAAS,K,qCACO,gBAAvB,eAAK,CAAEA,QAAS,O,iCAajB,gBADC,eAAM,S,4BAUN,MAxBH,mBAHC,eAAU,CACTzc,KAAM,gBAwDP,I,UCrF6hB,MCS1hB,I,oBAAY,eACd,GACA,GACA,IACA,EACA,KACA,WACA,OAIa,M,QCjBToqB,GAAQ,IAKd,yKACE,WACE,OAAO,OAAUzR,SAFrB,mBAKE,WACE,OAAO,OAAUH,UANrB,2BAUU,WACFpW,KAAKuW,SAAW,OAAW0R,QAAUjoB,KAAKoW,QAAQC,QACpD,OAAUW,cAAa,KAZ7B,yBAgBE,WACEvX,OAAO2b,iBAAiB,SAAUpb,KAAKkoB,iBAjB3C,qBAoBE,WACE,IAAMC,EAAWnoB,KAAKmoB,WAClBA,IACF,OAAUC,aAAa,OAAWH,QAClC,OAAUjR,cAAa,MAxB7B,2BA4BE,WACEvX,OAAO4b,oBAAoB,SAAUrb,KAAKkoB,iBA7B9C,sBAgCU,WACN,IAAMG,EAAO/sB,SAAS6f,KAAK2L,wBAC3B,OAAOuB,EAAKC,MAAQ,EAAIN,KAlC5B,2BAqCU,WACN,IAAK1sB,SAASghB,OAAQ,CACpB,IAAM6L,EAAWnoB,KAAKmoB,WACtB,OAAUC,aAAaD,EAAW,OAAWF,OAAS,OAAWzR,SAC7D2R,GACF,OAAUnR,cAAa,QA1C/B,GAA6B,QAU3B,gBADC,eAAM,W,6BAKN,MAdH,mBAHC,eAAU,CACTpZ,KAAM,iBAgDP,I,UCPD,2KACE,WACE,MAAO,CACL2qB,aAAcvoB,KAAKoW,QAAQC,OAC3BmS,YAAaxoB,KAAKoW,QAAQC,OAC1BC,iBAAkBtW,KAAKoW,QAAQE,iBAC/Bc,OAAQpX,KAAKuW,SAAW,OAAW0R,UANzC,oBAUE,WACE,OAAQ,OAAUvhB,OAXtB,wBAcE,WACE,OAAO,OAAewL,eAf1B,wBAkBE,WACE,OAAO,OAAevB,eAnB1B,uBAsBE,WACE,OAAO,OAAeE,cAvB1B,gCA0BU,WACN,OAAUmG,cAAa,OA3B3B,GAA6B,eAAO,KAApC,mBAXC,eAAU,CACTpZ,KAAM,SACNgK,WAAY,CACV6gB,UACAC,UACAC,cACA1W,YACA2W,WACAC,gBAgCH,I,UC5E2gB,MCQxgB,I,UAAY,eACd,GACA/oB,EACAc,GACA,EACA,KACA,WACA,OAIa,M,QChBTkoB,GAA4B,CAChCrR,KAAM,UACNhW,UAAW,GACXwW,SAAU,eACV7W,KAAM,CACJF,MAAO,SACP6gB,KAAM,YACNngB,YAAa,CAAC,YAAa,eAAgB,UAAW,UACtD0gB,YAAY,GAEdtP,SAAU,CACR,CACEyE,KAAM,aACNhW,UAAW,kBAAM,iDACjB7D,KAAM,aACNwD,KAAM,CACJF,MAAO,aACPU,YAAa,CAAC,mBACdmgB,KAAM,eAGV,CACEtK,KAAM,OACNhW,UAAW,kBAAM,sFACjB7D,KAAM,iBACNwD,KAAM,CACJF,MAAO,iBACPU,YAAa,CAAC,aACdmgB,KAAM,SAGV,CACEtK,KAAM,QACNhW,UAAW,kBAAM,sFACjB7D,KAAM,kBACNwD,KAAM,CACJF,MAAO,YACPU,YAAa,CAAC,cACdmgB,KAAM,UAGV,CACEtK,KAAM,OACNhW,UAAW,kBAAM,iDACjB7D,KAAM,WACNwD,KAAM,CACJF,MAAO,YACPU,YAAa,CAAC,gBACdmgB,KAAM,cAGV,CACEtK,KAAM,SACNhW,UAAW,kBAAM,iDACjB7D,KAAM,aACNwD,KAAM,CACJF,MAAO,cACP6gB,KAAM,OACNzF,QAAQ,EACR1a,YAAa,CAAC,kBAGlB,CACE6V,KAAM,WACNhW,UAAW,kBAAM,iDACjB7D,KAAM,aACNwD,KAAM,CACJF,MAAO,YACPU,YAAa,CAAC,gBACdogB,OAAQ,sBACR1F,QAAQ,IAGZ,CACE7E,KAAM,OACNhW,UAAW,kBAAM,4CACjB7D,KAAM,OACNwD,KAAM,CACJF,MAAO,OACP6gB,KAAM,WACNngB,YAAa,CAAC,mBAGlB,CACE6V,KAAM,QACNhW,UAAW,kBAAM,wCACjB7D,KAAM,QACNwD,KAAM,CACJF,MAAO,QACP6gB,KAAM,QACNngB,YAAa,CAAC,kBAMPuF,GAAA,GChGT4hB,GAA+B,CACnCtR,KAAM,aACNhW,UAAW,GACXL,KAAM,CACJF,MAAO,YACP6gB,KAAM,OACNO,YAAY,EACZ1gB,YAAa,CAAC,aAEhBoR,SAAU,CACR,CACEyE,KAAM,SACNhW,UAAW,kBAAM,iDACjB7D,KAAM,gBACNwD,KAAM,CACJF,MAAO,mBACPU,YAAa,CAAC,eACdmgB,KAAM,WAGV,CACEtK,KAAM,cACNhW,UAAW,kBAAM,4GACjB7D,KAAM,eACNwD,KAAM,CACJF,MAAO,wBACPU,YAAa,CAAC,eACdmgB,KAAM,SACNzF,QAAQ,IAGZ,CACE7E,KAAM,kBACNhW,UAAW,kBAAM,4GACjB7D,KAAM,eACNwD,KAAM,CACJF,MAAO,wBACPU,YAAa,CAAC,eACdmgB,KAAM,SACNzF,QAAQ,MA0BDvR,GAAA,GCjETie,GAA8B,CAClCvR,KAAM,YACNhW,UAAW,GACXL,KAAM,CACJF,MAAO,WACP6gB,KAAM,gBACNngB,YAAa,CAAC,aAAc,qBAC5B0gB,YAAY,GAEdtP,SAAU,CACR,CACEyE,KAAM,SACNhW,UAAW,kBAAM,sFACjB7D,KAAM,iBACNwD,KAAM,CACJF,MAAO,iBACPU,YAAa,CAAC,iBACdmgB,KAAM,OACNzF,QAAQ,IAGZ,CACE7E,KAAM,WACNhW,UAAW,kBAAM,sFACjB7D,KAAM,iBACNwD,KAAM,CACJF,MAAO,mBACPU,YAAa,CAAC,iBACdogB,OAAQ,sBACR1F,QAAQ,IAGZ,CACE7E,KAAM,OACNhW,UAAW,kBAAM,iDACjB7D,KAAM,eACNwD,KAAM,CACJF,MAAO,gBACPU,YAAa,CAAC,iBACdmgB,KAAM,SAGV,CACEtK,KAAM,UACNhW,UAAW,kBAAM,iDACjB7D,KAAM,kBACNwD,KAAM,CACJF,MAAO,mBACPU,YAAa,CAAC,qBACdmgB,KAAM,UAIV,CACEtK,KAAM,cACNhW,UAAW,kBAAM,4GACjB7D,KAAM,cACNwD,KAAM,CACJF,MAAO,eACPU,YAAa,CAAC,mBACdmgB,KAAM,SAGV,CACEtK,KAAM,sBACNhW,UAAW,kBAAM,sFACjB7D,KAAM,eACNwD,KAAM,CACJF,MAAO,iBACPU,YAAa,CAAC,mBACdmgB,KAAM,OACNzF,QAAQ,IAGZ,CACE7E,KAAM,uBACNhW,UAAW,kBAAM,sFACjB7D,KAAM,eACNwD,KAAM,CACJF,MAAO,mBACPU,YAAa,CAAC,mBACdogB,OAAQ,sBACR1F,QAAQ,MAMDlR,GAAA,GCxFT6d,GAA0B,CAC9BxR,KAAM,QACNhW,UAAW,GACXL,KAAM,CACJF,MAAO,OACP6gB,KAAM,OACNO,YAAY,EACZ1gB,YAAa,CAAC,cAAe,oBAAqB,eAEpDoR,SAAU,CACR,CACEyE,KAAM,YACNhW,UAAW,kBAAM,sFACjB7D,KAAM,YACNwD,KAAM,CACJF,MAAO,aACPU,YAAa,CAAC,kBACdmgB,KAAM,UAGV,CACEtK,KAAM,aACNhW,UAAW,kBAAM,sCACjB7D,KAAM,aACNwD,KAAM,CACJF,MAAO,cACPU,YAAa,CAAC,kBACdmgB,KAAM,YAGV,CACEtK,KAAM,UACNhW,UAAW,kBAAM,iDACjB7D,KAAM,cACNwD,KAAM,CACJF,MAAO,eACPU,YAAa,CAAC,qBACdmgB,KAAM,SAGV,CACEtK,KAAM,gBACNhW,UAAW,kBAAM,iDACjB7D,KAAM,eACNwD,KAAM,CACJF,MAAO,gBACPU,YAAa,CAAC,iBACdmgB,KAAM,SAGV,CACEtK,KAAM,eACNhW,UAAW,kBAAM,kIACjB7D,KAAM,iBACNwD,KAAM,CACJF,MAAO,kBACP6gB,KAAM,OACNngB,YAAa,CAAC,iBACd0a,QAAQ,IAGZ,CACE7E,KAAM,oBACNhW,UAAW,kBAAM,kIACjB7D,KAAM,iBACNwD,KAAM,CACJF,MAAO,gBACPU,YAAa,CAAC,iBACdogB,OAAQ,sBACR1F,QAAQ,IAGZ,CACE7E,KAAM,YACNhW,UAAW,kBAAM,iDACjB7D,KAAM,WACNwD,KAAM,CACJF,MAAO,YACPU,YAAa,CAAC,iBACdmgB,KAAM,SAGV,CACEtK,KAAM,WACNhW,UAAW,kBAAM,wJACjB7D,KAAM,aACNwD,KAAM,CACJF,MAAO,cACP6gB,KAAM,OACNngB,YAAa,CAAC,iBACd0a,QAAQ,IAGZ,CACE7E,KAAM,gBACNhW,UAAW,kBAAM,wJACjB7D,KAAM,aACNwD,KAAM,CACJF,MAAO,YACPU,YAAa,CAAC,iBACdogB,OAAQ,sBACR1F,QAAQ,IAGZ,CACE7E,KAAM,kCACNhW,UAAW,kBAAM,4GACjB7D,KAAM,cACNwD,KAAM,CACJF,MAAO,aACPU,YAAa,CAAC,qBACdmgB,KAAM,SACNzF,QAAQ,IAGZ,CACE7E,KAAM,kBACNhW,UAAW,kBAAM,sFACjB7D,KAAM,cACNwD,KAAM,CACJF,MAAO,eACPU,YAAa,CAAC,aACdmgB,KAAM,YAGV,CACEtK,KAAM,gBACNhW,UAAW,kBAAM,sFACjB7D,KAAM,YACNwD,KAAM,CACJF,MAAO,aACPU,YAAa,CAAC,aACdmgB,KAAM,UAGV,CACEtK,KAAM,YACNhW,UAAW,kBAAM,iDACjB7D,KAAM,WACNwD,KAAM,CACJF,MAAO,YACPU,YAAa,CAAC,iBACdmgB,KAAM,SAGV,CACEtK,KAAM,WACNhW,UAAW,kBAAM,sFACjB7D,KAAM,aACNwD,KAAM,CACJF,MAAO,cACP6gB,KAAM,OACNngB,YAAa,CAAC,iBACd0a,QAAQ,IAGZ,CACE7E,KAAM,gBACNhW,UAAW,kBAAM,sFACjB7D,KAAM,aACNwD,KAAM,CACJF,MAAO,YACPU,YAAa,CAAC,iBACdogB,OAAQ,sBACR1F,QAAQ,IAGZ,CACE7E,KAAM,gBACNhW,UAAW,kBAAM,iDACjB7D,KAAM,eACNwD,KAAM,CACJF,MAAO,gBACPU,YAAa,CAAC,qBACdmgB,KAAM,aAGV,CACEtK,KAAM,eACNhW,UAAW,kBAAM,iDACjB7D,KAAM,iBACNwD,KAAM,CACJF,MAAO,kBACP6gB,KAAM,OACNngB,YAAa,CAAC,qBACd0a,QAAQ,IAGZ,CACE7E,KAAM,oBACNhW,UAAW,kBAAM,iDACjB7D,KAAM,iBACNwD,KAAM,CACJF,MAAO,gBACPU,YAAa,CAAC,qBACdogB,OAAQ,sBACR1F,QAAQ,MAMD7Q,GAAA,GC1MTyd,GAA0B,CAC9BzR,KAAM,QACNhW,UAAW,GACXL,KAAM,CACJF,MAAO,OACP6gB,KAAM,OACNO,YAAY,EACZ1gB,YAAa,CAAC,cAEhBoR,SAAU,CACR,CACEyE,KAAM,QACNhW,UAAW,kBAAM,iDACjB7D,KAAM,WACNwD,KAAM,CACJF,MAAO,YACPU,YAAa,CAAC,gBACdmgB,KAAM,SAGV,CACEtK,KAAM,YACNhW,UAAW,kBAAM,iDACjB7D,KAAM,aACNwD,KAAM,CACJF,MAAO,YACPU,YAAa,CAAC,gBACdmgB,KAAM,OACNzF,QAAQ,IAGZ,CACE7E,KAAM,gBACNhW,UAAW,kBAAM,iDACjB7D,KAAM,YACNwD,KAAM,CACJF,MAAO,YACPU,YAAa,CAAC,gBACdmgB,KAAM,OACNzF,QAAQ,MAMDvQ,GAAA,GC7CTod,GAA6B,CACjC1R,KAAM,cACNhW,UAAW,GACXL,KAAM,CACJF,MAAO,kBACP6gB,KAAM,aACNO,YAAY,EACZ1gB,YAAa,CAAC,iBAEhBoR,SAAU,CACR,CACEyE,KAAM,iBACNhW,UAAW,kBAAM,sCACjB7D,KAAM,iBACNwD,KAAM,CACJF,MAAO,kBACPU,YAAa,CAAC,mBACdmgB,KAAM,WAKCqH,GAAA,GCXf,aAAIxpB,IAAI,QA+BD,IAAMypB,GAAgC,CAC3C,CACE5R,KAAM,YACNhW,UAAW,GACXL,KAAM,CAAEkb,QAAQ,GAChBtJ,SAAU,CACR,CACEyE,KAAM,sBACNhW,UAAW,kBAAM,8CAIvB,CACEgW,KAAM,SACNhW,UAAW,kBAAM,wCACjBL,KAAM,CAAEkb,QAAQ,IAElB,CACE7E,KAAM,iBACNhW,UAAW,kBAAM,gDACjBL,KAAM,CAAEkb,QAAQ,IAElB,CACE7E,KAAM,OACNhW,UAAW,kBAAM,sCACjBL,KAAM,CAAEkb,QAAQ,IAElB,CACE7E,KAAM,OACNhW,UAAW,kBAAM,sCACjBL,KAAM,CAAEkb,QAAQ,IAElB,CACE7E,KAAM,IACNhW,UAAW,GACXwW,SAAU,aACVjF,SAAU,CACR,CACEyE,KAAM,YACNhW,UAAW,kBAAM,4CACjB7D,KAAM,YACNwD,KAAM,CACJF,MAAO,YACP6gB,KAAM,YACN8D,OAAO,MAKf,CACEpO,KAAM,WACNhW,UAAW,GACXwW,SAAU,iBACV7W,KAAM,CAAEkb,QAAQ,GAChBtJ,SAAU,CACR,CACEyE,KAAM,QACNhW,UAAW,kBAAM,0CACjB7D,KAAM,UACNwD,KAAM,CACJF,MAAO,UACP6gB,KAAM,OACNuH,SAAS,IAGb,CACE7R,KAAM,WACNhW,UAAW,kBAAM,0CACjB7D,KAAM,WACNwD,KAAM,CACJF,MAAO,WACP6gB,KAAM,OACNuH,SAAS,MAKjB,CACE7R,KAAM,YACNhW,UAAW,GACXwW,SAAU,oBACV7W,KAAM,CAAEkb,QAAQ,GAChBtJ,SAAU,KASDuW,GAA6B,CACxCpiB,GACA4E,GACAN,GAEAV,GACAK,GACAge,GAiBA,CACE3R,KAAM,IACNQ,SAAU,OACV7W,KAAM,CAAEkb,QAAQ,KAId,GAAe,kBAAM,IAAI,OAAU,CAEvCkN,eAAgB,SAACrH,EAAIsH,EAAMC,GACzB,OAAIA,GAGK,CAAEjnB,EAAG,EAAGC,EAAG,IAGtBinB,KAAM,IACN7W,OAAQuW,MAGJ,GAAS,KAGT,SAAUO,KACd,IAAMC,EAAY,KACjB,GAAeC,QAAWD,EAAkBC,QAGhC,W,qBC3LfnvB,EAAOD,QAAU,CAAC,OAAS,UAAU,SAAW,UAAU,eAAiB,Y,6FCGrEqvB,EAAU,EAAA9kB,EAAMjG,OAAO,CAC3BgrB,QAAS,mCACT7sB,QAAS,MAIX4sB,EAAQE,aAAa9tB,QAAQyD,KAC3B,SAACsqB,GAMC,OAJI,OAAWpjB,QACbojB,EAAOC,QAAQC,cAAgB,UAAY,OAAWtjB,OAExDojB,EAAOC,QAAQ,gBAAkB,mBAC1BD,KAET,SAAC5sB,GACCtC,QAAQE,OAAOoC,MAKnBysB,EAAQE,aAAaI,SAASzqB,KAC5B,SAACyqB,GASC,IAAMtX,EAAMsX,EAAS5xB,KACrB,OAAIsa,EAAIvW,MACN,qBAAQ,CACNmB,QAASoV,EAAIuX,KAAO,QACpBvuB,KAAM,QACN4iB,SAAU,MAEK,QAAb5L,EAAIvW,MAA+B,QAAbuW,EAAIvW,MAA+B,QAAbuW,EAAIvW,MAClD,gBAAW6R,QACT,gDACA,UACA,CACEkc,kBAAmB,UACnBC,iBAAkB,SAClBzuB,KAAM,YAERc,MAAK,WACL,OAAW4tB,aACX1O,SAAS2O,YAGN1vB,QAAQE,OAAO,IAAIqB,MAAMwW,EAAIuX,KAAO,WAEpCD,EAAS5xB,QAGpB,SAAC6E,GAMC,OALA,qBAAQ,CACNK,QAASL,EAAMK,QACf5B,KAAM,QACN4iB,SAAU,MAEL3jB,QAAQE,OAAOoC,MAIX,U,kCCvEf,W,kCCAA,W,kCCEA,sCAAMqtB,EAAQ,CACZpsB,IAAK,SAASU,GACZ,IAAM2rB,EAAMC,aAAaC,QAAQ7rB,GACjC,OAAI2rB,EACKG,KAAKC,MAAMJ,GAEX,MAGXjlB,IAAK,SAAS1G,EAAa2rB,GACzBC,aAAaI,QAAQhsB,EAAK8rB,KAAKG,UAAUN,MAG9B,QACbO,QAAS,SAASC,GAChBA,EAAIjyB,UAAUkyB,OAASV,IAOpB,IAAMW,EAAY,kB,kCCxBzB,W,4CCCA3wB,EAAOD,QAAU,CAAC,OAAS,UAAU,SAAW,UAAU,eAAiB,Y,wkBCDvE,G,oBAAS,WAAa,IAAIqF,EAAIC,KAASC,EAAGF,EAAIG,eAAmBC,EAAGJ,EAAIK,MAAMD,IAAIF,EAAG,OAAOE,EAAG,MAAM,CAACG,MAAM,CAAC,GAAK,QAAQ,CAACH,EAAG,gBAAgB,KAC9IS,EAAkB,G,4GCctB,2KACE,WACErB,QAAQsa,IAAI,oBACZ,IAAMnT,GAAQ,eAAa,SAAY,EACjCI,EAAQ,eAAa,SACvBJ,GAAQI,IACVvH,QAAQsa,IAAR,oCAAyC/S,IACzC,OAAUykB,QAAQ,GAClB,OAAWC,gBAAgB1kB,QARjC,GAA6B,QAA7B,kBAHC,eAAU,CACTlJ,KAAM,SAaP,G,QC1Buf,I,YCOpf6D,EAAY,eACd,EACA,EACAb,GACA,EACA,KACA,KACA,MAIa,EAAAa,E,4CCdf,IAAKgqB,SAAS,CACZ,IAAO,CACLnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,2vBCLV,IAAKgzB,SAAS,CACZ,MAAS,CACPnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,4uDCLV,IAAKgzB,SAAS,CACZ,SAAY,CACVnD,MAAO,QACPoD,OAAQ,IACRC,QAAS,gBACTlzB,KAAM,6aCLV,IAAKgzB,SAAS,CACZ,WAAY,CACVnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,8PCLV,IAAKgzB,SAAS,CACZ,IAAO,CACLnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,u0BCLV,IAAKgzB,SAAS,CACZ,MAAS,CACPnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,uGCLV,IAAKgzB,SAAS,CACZ,UAAa,CACXnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,wkBCLV,IAAKgzB,SAAS,CACZ,UAAa,CACXnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,mJCLV,IAAKgzB,SAAS,CACZ,OAAU,CACRnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,+5MCLV,IAAKgzB,SAAS,CACZ,UAAa,CACXnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,8mCCLV,IAAKgzB,SAAS,CACZ,cAAiB,CACfnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,kPCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,oMCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,weCLV,IAAKgzB,SAAS,CACZ,UAAa,CACXnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,mUCLV,IAAKgzB,SAAS,CACZ,MAAS,CACPnD,MAAO,IACPoD,OAAQ,GACRC,QAAS,aACTlzB,KAAM,8OCLV,IAAKgzB,SAAS,CACZ,QAAW,CACTnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,sRCLV,IAAKgzB,SAAS,CACZ,MAAS,CACPnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,0SCLV,IAAKgzB,SAAS,CACZ,kBAAmB,CACjBnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,m8BCLV,IAAKgzB,SAAS,CACZ,UAAW,CACTnD,MAAO,IACPoD,OAAQ,GACRC,QAAS,aACTlzB,KAAM,siBCLV,IAAKgzB,SAAS,CACZ,SAAU,CACRnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,gBACTlzB,KAAM,o1BCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,21CCLV,IAAKgzB,SAAS,CACZ,WAAc,CACZnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,iRCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,68CCLV,IAAKgzB,SAAS,CACZ,UAAW,CACTnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,gBACTlzB,KAAM,gOCLV,IAAKgzB,SAAS,CACZ,MAAS,CACPnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,2KCLV,IAAKgzB,SAAS,CACZ,UAAa,CACXnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,oaCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,ulBCLV,IAAKgzB,SAAS,CACZ,cAAiB,CACfnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,0nBCLV,IAAKgzB,SAAS,CACZ,SAAY,CACVnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,64BCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,YACTlzB,KAAM,yRCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,6LCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,oiBCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,mQCLV,IAAKgzB,SAAS,CACZ,QAAW,CACTnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,gBACTlzB,KAAM,0tDCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,gBACTlzB,KAAM,kiBCLV,IAAKgzB,SAAS,CACZ,QAAW,CACTnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,qWCLV,IAAKgzB,SAAS,CACZ,MAAS,CACPnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,gMCLV,IAAKgzB,SAAS,CACZ,OAAU,CACRnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,6aCLV,IAAKgzB,SAAS,CACZ,SAAY,CACVnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,kbCLV,IAAKgzB,SAAS,CACZ,IAAO,CACLnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,gBACTlzB,KAAM,28BCLV,IAAKgzB,SAAS,CACZ,OAAU,CACRnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,iqBCLV,IAAKgzB,SAAS,CACZ,QAAW,CACTnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,0aCLV,IAAKgzB,SAAS,CACZ,WAAc,CACZnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,42DCLV,IAAKgzB,SAAS,CACZ,OAAU,CACRnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,g7DCLV,IAAKgzB,SAAS,CACZ,MAAS,CACPnD,MAAO,OACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,8sCCLV,IAAKgzB,SAAS,CACZ,GAAM,CACJnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,kkECLV,IAAKgzB,SAAS,CACZ,cAAiB,CACfnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,q/ECLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,8qCCLV,IAAKgzB,SAAS,CACZ,OAAU,CACRnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,+NCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,2qBCLV,IAAKgzB,SAAS,CACZ,MAAS,CACPnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,gBACTlzB,KAAM,wrBCLV,IAAKgzB,SAAS,CACZ,UAAa,CACXnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,glCCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,GACPoD,OAAQ,GACRC,QAAS,gBACTlzB,KAAM,2sBCLV,IAAKgzB,SAAS,CACZ,SAAY,CACVnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,0tCCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,8GCLV,IAAKgzB,SAAS,CACZ,MAAS,CACPnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,wuBCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,qUCLV,IAAKgzB,SAAS,CACZ,WAAc,CACZnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,gBACTlzB,KAAM,+lBCLV,IAAKgzB,SAAS,CACZ,IAAO,CACLnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,sZCLV,IAAKgzB,SAAS,CACZ,MAAS,CACPnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,sXCLV,IAAKgzB,SAAS,CACZ,MAAS,CACPnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,gZCLV,IAAKgzB,SAAS,CACZ,OAAU,CACRnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,gBACTlzB,KAAM,g3BCLV,IAAKgzB,SAAS,CACZ,aAAc,CACZnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,qmBCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,oiCCLV,IAAKgzB,SAAS,CACZ,KAAQ,CACNnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,yRCLV,IAAKgzB,SAAS,CACZ,OAAU,CACRnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,ksBCLV,IAAKgzB,SAAS,CACZ,IAAO,CACLnD,MAAO,IACPoD,OAAQ,IACRC,QAAS,cACTlzB,KAAM,yxB,qHCCV,IAAUmzB,UAAU,CAAEC,aAAa,IAEnC,IAAMC,EAAY,CAAC,SAAU,kBAEvB,EAAe,SAAC7sB,GACpB,IAAM8sB,EAAS,OAAKC,GAAL,gBAAiB/sB,IAChC,GAAI8sB,EAAQ,CACV,IAAME,EAAW,OAAKrtB,EAAL,gBAAgBK,IACjC,gBAAUgtB,EAAV,cAAwB3qB,EAAA,KAASJ,OAEnC,gBAAUI,EAAA,KAASJ,QAGrBmb,EAAA,KAAO6P,WAAP,yDAAkB,WAAM/J,EAAWgK,EAAUC,GAA3B,0FAEhB,IAAUC,SAGN,OAAWvlB,MALC,oBAME,WAAZqb,EAAG1K,KANO,gBAQZ2U,EAAK,CAAE3U,KAAM,MACb,IAAU6U,OATE,0BAYoB,IAA5B,OAAWre,MAAMhV,OAZT,2CAeF,OAAW4c,cAfT,QAgBF5H,EAAQ,OAAWA,MAEzB,OAAiB6H,eAAe7H,GAEhCoO,EAAA,KAAOtG,UAAU,OAAiB7C,eAGlCkZ,EAAK,iCAAKjK,GAAN,IAAU3E,SAAS,KAvBf,qDA0BR,OAAWiN,aACX,aAAQntB,MAAM,MAAO,aACrB8uB,EAAK,mBAAD,OAAoBjK,EAAG1K,OAC3B,IAAU6U,OA7BF,gCAgCVF,IAhCU,iCAqCsB,IAAhCN,EAAUloB,QAAQue,EAAG1K,MAEvB2U,KAGAA,EAAK,mBAAD,OAAoBjK,EAAG1K,OAC3B,IAAU6U,QA3CE,0DAAlB,2DAgDAjQ,EAAA,KAAOkQ,WAAU,SAACpK,GAGhB,IAAUmK,OAGVhxB,SAAS4F,MAAQ,EAAaihB,EAAG/gB,KAAKF,U,ICrEpCsrB,EACAC,EACAC,E,YCPS,EAA+B,CAC1CC,SAD0C,SACjCC,EAAIC,GAAO,IACVluB,EAAUkuB,EAAVluB,MACH,eAAgBA,KACnBiuB,EAAGpN,MAAMsN,QAAU,UCLZC,G,wCAAsC,CACjD7tB,KADiD,SAC5C0tB,EAAIT,EAAGa,GACV,IAAMC,EAAUL,EAAG/E,cAAc,cAC3BqF,EAAiBN,EAAG/E,cAAc,sBACxCoF,EAAQzN,MAAM2N,SAAW,YACzBD,EAAe1N,MAAM2N,SAAW,gBAEhCD,EAAeE,YAAc,SAACvyB,GAC5B,IAkBIwyB,EACAC,EAnBEC,EAAO1yB,EAAEmsB,QAAUkG,EAAe9H,WAClCoI,EAAO3yB,EAAEosB,QAAUiG,EAAeO,UAElCC,EAAeT,EAAQxI,YACvBkJ,EAAgBV,EAAQW,aAExBC,EAAcvyB,SAAS6f,KAAK2S,YAC5BC,EAAezyB,SAAS6f,KAAK6S,aAE7BC,EAAiBhB,EAAQ7H,WACzB8I,EAAiBL,EAAcZ,EAAQ7H,WAAasI,EAEpDS,EAAgBlB,EAAQQ,UACxBW,EAAgBL,EAAed,EAAQQ,UAAYE,EAEnDU,EAAeC,iBAAiBrB,GAAS3J,KACzCiL,EAAcD,iBAAiBrB,GAAS1J,IACzC8K,GAAiBE,IAKlBF,EAAa1b,SAAS,MACxB0a,GAAa/xB,SAAS6f,KAAK2S,cAAgBO,EAAa7Q,QAAQ,KAAM,IAAM,KAC5E8P,GAAYhyB,SAAS6f,KAAK6S,eAAiBO,EAAY/Q,QAAQ,KAAM,IAAM,OAE3E6P,GAAagB,EAAa7Q,QAAQ,MAAO,IACzC8P,GAAYiB,EAAY/Q,QAAQ,MAAO,KAGzCliB,SAASkzB,YAAc,SAAC3zB,GACtB,IAAIyoB,EAAOzoB,EAAEmsB,QAAUuG,EACnBhK,EAAM1oB,EAAEosB,QAAUuG,GAGhBlK,EAAQ2K,EACZ3K,GAAQ2K,EACC3K,EAAO4K,IAChB5K,EAAO4K,IAEH3K,EAAO4K,EACX5K,GAAO4K,EACE5K,EAAM6K,IACf7K,EAAM6K,GAIRnB,EAAQzN,MAAM2N,SAAd,gBAAkC7J,EAAO+J,EAAzC,kBAA4D9J,EAAM+J,EAAlE,OAIIN,EAAMyB,kBACRzB,EAAMyB,kBAAkBrU,MAAM,kBACrB4S,EAAM0B,KACf1B,EAAM0B,IAAIC,cAAc,IAAIC,YAAY,oBAI5CtzB,SAASuzB,UAAY,WACnBvzB,SAASkzB,YAAc,KACvBlzB,SAASuzB,UAAY,WCnEhB,G,UAA0B,CACrC3vB,KADqC,SAChC0tB,EAAIC,GACPD,EAAGxR,iBAAiB,SAAS,SAAAvgB,GAC3B,IAAMi0B,EAAa51B,OAAO61B,OAAO,GAAIlC,EAAQluB,OACvCqwB,EAAO91B,OAAO61B,OAAO,CACzBE,IAAKrC,EACL7wB,KAAM,MACN+jB,MAAO,uBACNgP,GACG1yB,EAAsB4yB,EAAKC,IACjC,GAAI7yB,EAAQ,CACVA,EAAOojB,MAAM0P,SAAW,WACxB9yB,EAAOojB,MAAM2P,SAAW,SACxB,IAAM9G,EAAOjsB,EAAO0qB,wBAChBsI,EAAShzB,EAAOyrB,cAAc,iBASlC,OARKuH,EAMHA,EAAOC,UAAY,gBALnBD,EAAS9zB,SAASQ,cAAc,QAChCszB,EAAOC,UAAY,eACnBD,EAAO5P,MAAMkM,OAAS0D,EAAO5P,MAAM8I,MAAQxlB,KAAKwsB,IAAIjH,EAAKC,MAAOD,EAAKqD,QAAU,KAC/EtvB,EAAOQ,YAAYwyB,IAIbJ,EAAKjzB,MACX,IAAK,SACHqzB,EAAO5P,MAAM+D,IAAM8E,EAAKqD,OAAS,EAAI0D,EAAOxB,aAAe,EAAI,KAC/DwB,EAAO5P,MAAM8D,KAAO+E,EAAKC,MAAQ,EAAI8G,EAAO3K,YAAc,EAAI,KAC9D,MACF,QACE2K,EAAO5P,MAAM+D,KACV1oB,EAAE00B,MAAQlH,EAAK9E,IAAM6L,EAAOxB,aAAe,EAAItyB,SAAS2F,gBAAgBuuB,WACvEl0B,SAAS6f,KAAKqU,WAAa,KAC/BJ,EAAO5P,MAAM8D,MACVzoB,EAAE40B,MAAQpH,EAAK/E,KAAO8L,EAAO3K,YAAc,EAAInpB,SAAS2F,gBAAgBmjB,YACvE9oB,SAAS6f,KAAKiJ,YAAc,KAIpC,OAFAgL,EAAO5P,MAAMkQ,gBAAkBV,EAAKlP,MACpCsP,EAAOC,UAAY,yBACZ,MAER,M,qBHvCP,IAAK,IACH,MAAM,IAAI9yB,MAAM,uDAOX,IAAM,EAA8B,CACzC2C,KADyC,SACpC0tB,EAAIC,GACa,YAAhBA,EAAQ8C,IACVnD,EAAkBK,EAAQluB,MACD,UAAhBkuB,EAAQ8C,IACjBlD,EAAgBI,EAAQluB,OAExB+tB,EAAoB,IAAI,IAAUE,EAAI,CACpCnN,KADoC,WAC3B,OAAOoN,EAAQluB,OACxBixB,OAFoC,WAEzB,MAAuB,QAAhB/C,EAAQ8C,IAAgB,MAAQ,UAEpDjD,EAAkBnsB,GAAG,WAAW,SAAA1F,GAC9B,IAAM8f,EAAW6R,EACjB7R,GAAYA,EAAS9f,MAEvB6xB,EAAkBnsB,GAAG,SAAS,SAAA1F,GAC5B,IAAM8f,EAAW8R,EACjB9R,GAAYA,EAAS9f,QAK3Bg1B,OAtByC,SAsBlCjD,EAAIC,GACW,YAAhBA,EAAQ8C,IACVnD,EAAkBK,EAAQluB,MACD,UAAhBkuB,EAAQ8C,IACjBlD,EAAgBI,EAAQluB,MAExB+tB,EAAoB,IAAI,IAAUE,EAAI,CACpCnN,KADoC,WAC3B,OAAOoN,EAAQluB,OACxBixB,OAFoC,WAEzB,MAAuB,QAAhB/C,EAAQ8C,IAAgB,MAAQ,WAKxDG,OAnCyC,SAmClC3D,EAAGU,GACY,YAAhBA,EAAQ8C,IACVnD,EAAkB,KACO,UAAhBK,EAAQ8C,IACjBlD,EAAgB,MAEZC,GACFA,EAAkBqD,UAEpBrD,EAAoB,QIrDbha,G,UAAyB,CACpCia,SADoC,SAC3BC,EAAIC,GAAO,IACVluB,EAAUkuB,EAAVluB,MACFsP,EAAQ,OAAWA,MACzB,KAAItP,GAASA,aAAiBgD,OAAShD,EAAM1F,OAAS,GASpD,MAAM,IAAIsD,MAAM,kDARhB,IAAMyzB,EAAkBrxB,EAClB6T,EAAUvE,EAAMwE,MAAK,SAAAC,GACzB,OAAOsd,EAAgBrd,SAASD,MAE7BF,IACHoa,EAAGpN,MAAMsN,QAAU,WCTdmD,G,UAAsB,SAACpgB,GAClC,IAAMqgB,EAAuC,CAC3CC,UAAW,UACXlgB,MAAO,OACPmgB,QAAS,UAEX,OAAOF,EAAUrgB,KAINwgB,EAAqB,SAACC,GACjC,OAAOA,EAAIC,OAAO,GAAGC,cAAgBF,EAAI3wB,MAAM,I,sBCOjD,aAAIC,IAAI,IAAW,CACjB0G,KAAM,OAAUA,KAChBqE,KAAM,SAAC1L,EAAaN,GAAd,OAAgC,OAAKC,EAAEK,EAAKN,MAEpD,aAAIiB,IAAI,IAAS,CACf6wB,QAAS,WACTC,aAAc,MACdC,cAAe,QAEjB,aAAI/wB,IAAI,QAER1G,OAAO8Y,KAAK,GAAY5N,SAAQ,SAAAnF,GAC9B,aAAI2xB,UAAU3xB,EAAM,EAAoDA,OAG1E/F,OAAO8Y,KAAK,GAAS5N,SAAQ,SAAAnF,GAC3B,aAAIqG,OAAOrG,EAAM,EAAyCA,OAG5D,aAAIirB,OAAO2G,eAAgB,EAE3B,IAAI,aAAI,CACNxU,SAAA,KACA/J,QAAA,KACA3H,KAAA,OACA7K,OAAQ,SAAC8C,GAAD,OAAOA,EAAEuT,MAChB2a,OAAO,S,oWC/CGC,G,kIAAY,SACvBC,EACAC,GAEA,QAAapzB,IAATmzB,IAAuBA,EACzB,OAAO,KAET,IACIthB,EADEwhB,EAASD,GAAW,0BAEN,WAAhB,eAAOD,GACTthB,EAAOshB,GAEa,kBAATA,GACL,WAAWrR,KAAKqR,KAElBA,EAAOvQ,SAASuQ,IAOA,kBAATA,GAAgD,KAA3BA,EAAKxvB,WAAWvI,SAC9C+3B,GAAc,KAEhBthB,EAAO,IAAIxN,KAAK8uB,IAElB,IAAMG,EAAuC,CAC3CzuB,EAAGgN,EAAK0hB,cACRpzB,EAAG0R,EAAK2hB,WAAa,EACrBnzB,EAAGwR,EAAK4hB,UACR1uB,EAAG8M,EAAK6hB,WACRx4B,EAAG2W,EAAK8hB,aACRn3B,EAAGqV,EAAK+hB,aACRxsB,EAAGyK,EAAKgiB,UAEV,OAAOR,EAAO1T,QAAQ,mBAAmB,SAAC1jB,EAAQmF,GAChD,IAAMN,EAAQwyB,EAAUlyB,GAExB,MAAY,MAARA,EACK,CAAC,IAAK,IAAK,IAAK,IAAK,IAAK,IAAK,KAAKN,GAEtCA,EAAM6C,WAAWmwB,SAAS,EAAG,UAQ3BC,EAAc,SAACC,GAAmC,IAAtBC,IAAsB,yDAC7DA,EAAqC,qBAAhBA,GAA8BA,EACnD,IAAMlzB,EAAIizB,EAAM,GACV94B,GAAK84B,EAAM,KAAOjzB,GAAK,GACvBO,EAAI2D,KAAK2B,MAAMotB,EAAM,MAC3B,OAAIC,GACM3yB,EAAI,EAAI,GAAKA,EAAI,IAAMA,GAAK,KAAOpG,EAAI,EAAIA,EAAI,IAAMA,GAAK,KAAO6F,EAAI,EAAIA,EAAI,IAAMA,IAEnFO,EAAI,EAAI,GAAKA,EAAI,IAAMA,GAAK,KAAOpG,EAAI,EAAIA,EAAI,IAAMA,IAOpDg5B,EAAc,SAACzB,GAC1B,IAAM0B,EAAO1B,EAAItuB,MAAM,KACjBY,EAAIovB,EAAK/4B,OAAS,GAAK+4B,EAAK,GAAK,EACjCh0B,EAAIg0B,EAAK/4B,OAAS,GAAK+4B,EAAK,GAAK,EACjC33B,EAAI23B,EAAK/4B,OAAS,GAAK+4B,EAAK,GAAK,EACvC,OAAW,KAAJpvB,EAAe,GAAJ5E,EAAS3D,GAIhB43B,EAAa,SAACC,EAAiBC,GAAlB,OACxBA,EAASzV,KAAI,SAACjkB,GAAD,OAAey5B,EAAWxV,KAAI,SAACzd,GAC1C,MAAY,cAARA,EACK8xB,EAAUt4B,EAAKwG,IAEfxG,EAAKwG,UAKLmzB,EAAW,SAACnD,EAAkBI,GACzC,QAASJ,EAAII,UAAUgD,MAAM,IAAI3S,OAAO,UAAY2P,EAAY,aAIrDiD,EAAW,SAACrD,EAAkBI,GACpC+C,EAASnD,EAAKI,KAAYJ,EAAII,WAAa,IAAMA,IAI3CkD,EAAc,SAACtD,EAAkBI,GAC5C,GAAI+C,EAASnD,EAAKI,GAAY,CAC5B,IAAMmD,EAAM,IAAI9S,OAAO,UAAY2P,EAAY,WAC/CJ,EAAII,UAAYJ,EAAII,UAAU7R,QAAQgV,EAAK,OAKlCC,EAAc,SAACxD,EAAkBI,GAC5C,GAAKJ,GAAQI,EAAb,CAGA,IAAIqD,EAAczD,EAAII,UAChBsD,EAAYD,EAAY9uB,QAAQyrB,IACnB,IAAfsD,EACFD,GAAe,GAAKrD,EAEpBqD,EACEA,EAAYE,OAAO,EAAGD,GACtBD,EAAYE,OAAOD,EAAYtD,EAAUp2B,QAE7Cg2B,EAAII,UAAYqD,IAGLG,EAAQ,SAAChB,GACpB,OAAO,IAAI72B,SAAQ,SAACC,EAASC,GAC3B4C,YAAW,WACT7C,GAAWA,EAAQ,MACZ,IAAN42B,OAIMiB,EAAe,SAACl0B,GAC3B,IAAM/D,EAAI4E,OAAOsc,SAASgX,MAAQ,GAC5Bh6B,EAAI,IAAI2mB,OAAO9gB,EAAI,YAAa,MACtC,OAAO/D,EAAEw3B,MAAMt5B,GAAK8B,EAAEw3B,MAAMt5B,GAAI,GAAG65B,OAAOh0B,EAAE3F,OAAS,GAAK,O,yDClI5D,W,kCCAA,W,+VCcM4vB,EAAN,yG,0BACS,EAAArD,aAA2B,GAC3B,EAAAhO,YAAsC,GAF/C,yDAKU,SAAiB+O,GACnBvmB,KAAKwlB,aAAa/S,MAAK,SAAAugB,GAAC,OAAIA,EAAEvb,OAAS8O,EAAK9O,SAChDzX,KAAKwlB,aAAajsB,KAChBL,OAAO61B,OAAO,GAAIxI,EAAM,CACtBrlB,MAAOqlB,EAAKnlB,KAAKF,OAAS,eATlC,6BAeU,SAAgBqlB,GACJ,OAAdA,EAAK3oB,OACLoC,KAAKwX,YAAY7E,SAAS4T,EAAK3oB,OAC9B2oB,EAAKnlB,KAAKkoB,SACbtpB,KAAKwX,YAAYje,KAAKgtB,EAAK3oB,SAnBjC,8BAwBU,SAAiB2oB,GAAc,uBAChBvmB,KAAKwlB,aAAayN,WADF,IACrC,2BAAkD,iCAAtCl6B,EAAsC,KAAnCi6B,EAAmC,KAChD,GAAIA,EAAEvb,OAAS8O,EAAK9O,KAAM,CACxBzX,KAAKwlB,aAAarrB,OAAOpB,EAAG,GAC5B,QAJiC,iCAxBzC,6BAkCU,SAAgBwtB,GACtB,GAAkB,OAAdA,EAAK3oB,KAAT,CACA,IAAMmG,EAAQ/D,KAAKwX,YAAY5T,QAAQ2iB,EAAK3oB,MAC5CmG,GAAS,GAAK/D,KAAKwX,YAAYrd,OAAO4J,EAAO,MArCjD,sCAyCU,SAAyBwiB,GAC/BvmB,KAAKwlB,aAAexlB,KAAKwlB,aAAalgB,QAAO,SAAA0tB,GAC3C,OAAOA,EAAE5xB,KAAKykB,OAASmN,EAAEvb,OAAS8O,EAAK9O,UA3C7C,qCAgDU,SAAwB8O,GAC9B,GAAkB,OAAdA,EAAK3oB,KAAT,CACA,IAAMmG,EAAQ/D,KAAKwX,YAAY5T,QAAQ2iB,EAAK3oB,MAE1CoC,KAAKwX,YADHzT,GAAS,EACQ/D,KAAKwX,YAAY7X,MAAMoE,EAAOA,EAAQ,GAGtC,MAvDzB,mCA4DU,WAEN,IAAMwhB,EAAYvlB,KAAKwlB,aAAalgB,QAAO,SAAA9J,GAAG,OAAIA,EAAI4F,KAAKykB,SAC3D7lB,KAAKwlB,aAAeD,IA/DxB,kCAmEU,WACNvlB,KAAKwX,YAAc,KApEvB,iCAwEU,SAAoB+O,GAAc,uBAC1BvmB,KAAKwlB,cADqB,IACxC,2BAAiC,KAAxBwN,EAAwB,QAC/B,GAAIA,EAAEvb,OAAS8O,EAAK9O,KAAM,CACxBub,EAAI95B,OAAO61B,OAAOiE,EAAGzM,GACrB,QAJoC,iCAxE5C,qBAkFS,SAAQA,GACbvmB,KAAKkzB,iBAAiB3M,GACtBvmB,KAAKmzB,gBAAgB5M,KApFzB,4BAwFS,SAAeA,GACpBvmB,KAAKkzB,iBAAiB3M,KAzF1B,qBA6FS,SAAQA,GACbvmB,KAAKozB,iBAAiB7M,GACtBvmB,KAAKqzB,gBAAgB9M,KA/FzB,2BAmGS,SAAcA,GACnBvmB,KAAKqzB,gBAAgB9M,KApGzB,4BAwGS,SAAeA,GACpBvmB,KAAKszB,yBAAyB/M,GAC9BvmB,KAAKuzB,wBAAwBhN,KA1GjC,yBA8GS,WACLvmB,KAAKwzB,wBACLxzB,KAAKyzB,yBAhHT,+BAoHS,WACLzzB,KAAKyzB,yBArHT,+BAyHS,SAAkBlN,GACvBvmB,KAAK0zB,oBAAoBnN,OA1H7B,GAAuB,QAKrB,gBADC,Q,+BAQA,MAGD,gBADC,Q,8BAOA,MAGD,gBADC,Q,+BAQA,MAGD,gBADC,Q,8BAKA,MAGD,gBADC,Q,uCAKA,MAGD,gBADC,Q,sCAUA,MAGD,gBADC,Q,oCAKA,MAGD,gBADC,Q,mCAGA,MAGD,gBADC,Q,kCAQA,MAGD,gBADC,Q,sBAIA,MAGD,gBADC,Q,6BAGA,MAGD,gBADC,Q,sBAIA,MAGD,gBADC,Q,4BAGA,MAGD,gBADC,Q,6BAIA,MAGD,gBADC,Q,0BAIA,MAGD,gBADC,Q,gCAGA,MAGD,gBADC,Q,gCAGA,MA3HGsC,EAAQ,gBADb,eAAO,CAAExW,SAAS,EAAMC,MAAA,OAAO1U,KAAM,cAChCirB,GA8HC,IAAM8K,EAAiB,eAAU9K,I,kCC5IxC,W","file":"js/app.84e7df09.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/\" + ({\"401\":\"401\",\"404\":\"404\",\"auth-redirect\":\"auth-redirect\",\"dashboard\":\"dashboard\",\"i18n-demo\":\"i18n-demo\",\"login\":\"login\",\"profile\":\"profile\",\"redirect\":\"redirect\",\"theme\":\"theme\"}[chunkId]||chunkId) + \".\" + {\"401\":\"c4c44001\",\"404\":\"b1bc2078\",\"auth-redirect\":\"d5b70f0f\",\"chunk-01c0add2\":\"ca1b9d8d\",\"chunk-035792c2\":\"cb14260f\",\"chunk-1426d9f9\":\"cee2e077\",\"chunk-144e8b05\":\"539f7280\",\"chunk-1d3d01ed\":\"80a164f1\",\"chunk-208d8a12\":\"a2a5901a\",\"chunk-21495f61\":\"225b886f\",\"chunk-6b4a5bf1\":\"b1a85584\",\"chunk-d4ad27d8\":\"80e78674\",\"chunk-320254da\":\"6f688d54\",\"chunk-408127e4\":\"9cf97b91\",\"chunk-41e8e32c\":\"baeb9f1f\",\"chunk-4bf5c744\":\"55d43cf1\",\"chunk-746aff6b\":\"40960a53\",\"chunk-01717ca4\":\"abff9986\",\"chunk-4cad52d2\":\"cdf86532\",\"chunk-5337e365\":\"58dbee9b\",\"chunk-551b767f\":\"477d1d4e\",\"chunk-5823cdba\":\"0d8b6252\",\"chunk-83c684a0\":\"49c7c576\",\"chunk-03981715\":\"97a8e9cd\",\"chunk-21871d0b\":\"6151f616\",\"chunk-e3e6e8fe\":\"4fd32f55\",\"chunk-151a93ee\":\"c9e353a9\",\"chunk-fd5993aa\":\"5f4a16bc\",\"chunk-7a4adbf7\":\"ed521c69\",\"chunk-7ee58394\":\"8accd56d\",\"chunk-308db560\":\"aa73643b\",\"chunk-1160da0b\":\"641a624f\",\"chunk-cd008602\":\"48da3f3a\",\"chunk-eccc87f4\":\"c30ff0d8\",\"chunk-facc6e54\":\"964a7b46\",\"dashboard\":\"cecb23a8\",\"i18n-demo\":\"bd145662\",\"login\":\"c7d11a72\",\"profile\":\"be0ab4f3\",\"redirect\":\"7905c4af\",\"theme\":\"4f27f50e\"}[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 = {\"401\":1,\"404\":1,\"chunk-01c0add2\":1,\"chunk-035792c2\":1,\"chunk-1426d9f9\":1,\"chunk-144e8b05\":1,\"chunk-1d3d01ed\":1,\"chunk-208d8a12\":1,\"chunk-21495f61\":1,\"chunk-6b4a5bf1\":1,\"chunk-d4ad27d8\":1,\"chunk-320254da\":1,\"chunk-408127e4\":1,\"chunk-41e8e32c\":1,\"chunk-4bf5c744\":1,\"chunk-01717ca4\":1,\"chunk-4cad52d2\":1,\"chunk-5337e365\":1,\"chunk-551b767f\":1,\"chunk-5823cdba\":1,\"chunk-03981715\":1,\"chunk-21871d0b\":1,\"chunk-151a93ee\":1,\"chunk-fd5993aa\":1,\"chunk-7a4adbf7\":1,\"chunk-7ee58394\":1,\"chunk-308db560\":1,\"chunk-1160da0b\":1,\"chunk-cd008602\":1,\"chunk-eccc87f4\":1,\"chunk-facc6e54\":1,\"dashboard\":1,\"i18n-demo\":1,\"login\":1,\"profile\":1,\"theme\":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/\" + ({\"401\":\"401\",\"404\":\"404\",\"auth-redirect\":\"auth-redirect\",\"dashboard\":\"dashboard\",\"i18n-demo\":\"i18n-demo\",\"login\":\"login\",\"profile\":\"profile\",\"redirect\":\"redirect\",\"theme\":\"theme\"}[chunkId]||chunkId) + \".\" + {\"401\":\"11c016b8\",\"404\":\"96fe1c26\",\"auth-redirect\":\"31d6cfe0\",\"chunk-01c0add2\":\"200293c4\",\"chunk-035792c2\":\"5c7c2651\",\"chunk-1426d9f9\":\"c73fa990\",\"chunk-144e8b05\":\"200293c4\",\"chunk-1d3d01ed\":\"200293c4\",\"chunk-208d8a12\":\"3fc2e519\",\"chunk-21495f61\":\"146db6b7\",\"chunk-6b4a5bf1\":\"1a2de8a5\",\"chunk-d4ad27d8\":\"af60e613\",\"chunk-320254da\":\"7043d55d\",\"chunk-408127e4\":\"5b669c31\",\"chunk-41e8e32c\":\"ab6179cd\",\"chunk-4bf5c744\":\"d25b5fbc\",\"chunk-746aff6b\":\"31d6cfe0\",\"chunk-01717ca4\":\"0461aed2\",\"chunk-4cad52d2\":\"38768785\",\"chunk-5337e365\":\"9011efc0\",\"chunk-551b767f\":\"00048683\",\"chunk-5823cdba\":\"be777eac\",\"chunk-83c684a0\":\"31d6cfe0\",\"chunk-03981715\":\"c22f04b8\",\"chunk-21871d0b\":\"4c0f28ef\",\"chunk-e3e6e8fe\":\"31d6cfe0\",\"chunk-151a93ee\":\"03ae7354\",\"chunk-fd5993aa\":\"0461aed2\",\"chunk-7a4adbf7\":\"38768785\",\"chunk-7ee58394\":\"200293c4\",\"chunk-308db560\":\"6e0a53f0\",\"chunk-1160da0b\":\"0bb21cbe\",\"chunk-cd008602\":\"286b633f\",\"chunk-eccc87f4\":\"200293c4\",\"chunk-facc6e54\":\"3c643e28\",\"dashboard\":\"704ea637\",\"i18n-demo\":\"037e2f6c\",\"login\":\"5da2793e\",\"profile\":\"38768785\",\"redirect\":\"31d6cfe0\",\"theme\":\"4119be69\"}[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","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=f76a8f60&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarLogo.vue?vue&type=style&index=0&id=7847d0d3&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&id=745a2b41&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","import Vue from 'vue'\nimport Vuex from 'vuex'\nimport { IAppState } from './modules/app'\nimport { IUserState } from './modules/user'\n\nVue.use(Vuex)\n\nexport interface IRootState {\n app: IAppState\n user: IUserState\n}\n\n// Declare empty store first, dynamically register all modules later.\nexport default new Vuex.Store({})\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dropdown',{staticClass:\"international\",attrs:{\"trigger\":\"click\"},on:{\"command\":_vm.handleSetLanguage}},[_c('div',[_c('svg-icon',{staticClass:\"international-icon\",attrs:{\"name\":\"language\"}})],1),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='zh',\"command\":\"zh\"}},[_vm._v(\" 中文 \")]),_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='en',\"command\":\"en\"}},[_vm._v(\" English \")]),_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='es',\"command\":\"es\"}},[_vm._v(\" Español \")]),_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='ja',\"command\":\"ja\"}},[_vm._v(\" 日本語 \")]),_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='ko',\"command\":\"ko\"}},[_vm._v(\" 한국어 \")]),_c('el-dropdown-item',{attrs:{\"disabled\":_vm.language==='it',\"command\":\"it\"}},[_vm._v(\" Italiano \")])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { AppModule } from '@/store/modules/app'\nimport settings from '../../settings'\n@Component({\n name: 'Login'\n})\nexport default class extends Vue {\n get language() {\n return AppModule.language\n }\n\n private handleSetLanguage(lang: string) {\n this.$i18n.locale = lang\n AppModule.SetLanguage(lang)\n document.documentElement.lang = lang\n const title = this.$route.meta.title ? `${this.$t(`route.${this.$route.meta.title}`)} - ${settings.title}` : `${settings.title}`\n document.title = title\n this.$message({\n message: this.$t('components.changeLanguageTips').toString(),\n type: 'success'\n })\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7302ef94&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/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 { UserModule } from '@/store/modules/user'\n\nexport const checkRole = (value: string[]): boolean => {\n if (value && value instanceof Array && value.length > 0) {\n const roles = UserModule.roles\n const permissionRoles = value\n const hasPermission = roles.some(role => {\n return permissionRoles.includes(role)\n })\n return hasPermission\n } else {\n console.error('need roles! Like v-permission=\"[\\'admin\\',\\'editor\\']\"')\n return false\n }\n}\n\nexport const checkPermission = (value: string[]): boolean => {\n if (value && value instanceof Array && value.length > 0) {\n const permissions = UserModule.permissions\n let hasPermission = false\n for (const sub of value) {\n if (sub === '*') {\n hasPermission = true\n break\n }\n const subArr = sub.split(':')\n if (subArr[0] === '*') {\n for (const p of permissions) {\n if (p[1] === '*' || p[1] === subArr[1]) {\n hasPermission = true\n break\n }\n }\n } else if (subArr[1] === '*') {\n for (const p of permissions) {\n if (p[0] === '*' || p[0] === subArr[0]) {\n hasPermission = true\n break\n }\n }\n } else {\n for (const p of permissions) {\n if ((p[0] === '*' && p[1] === '*') ||\n (p[0] === '*' && p[1] === subArr[1]) ||\n (p[0] === subArr[0] && p[1] === '*') ||\n (p[0] === subArr[0] && p[1] === subArr[1])) {\n hasPermission = true\n break\n }\n }\n }\n if (hasPermission) {\n break\n }\n }\n return hasPermission\n } else {\n console.error('need roles! Like v-permission=\"[\\'admin\\',\\'editor\\']\"')\n return false\n }\n}\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=style&index=1&id=4712a34c&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\",\"theme\":\"#1890ff\"};","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=style&index=1&id=35bc604c&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=48aca8f5&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=72a28363&lang=scss&scoped=true&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","interface Date {\n /**\n * 增加n天\n * @param {number} days\n * @return {Date}\n */\n addDays(days: number): Date\n}\n// eslint-disable-next-line no-extend-native\nObject.defineProperties(Date.prototype, {\n addDays: {\n value: function(days: number) {\n return new Date(this.getTime() + days * 3600 * 24 * 1000)\n },\n writable: true\n }\n})\ninterface CanvasRenderingContext2D {\n roundRect(x: number, y: number, w: number, h: number, r: number):CanvasRenderingContext2D\n}\nObject.defineProperties(CanvasRenderingContext2D.prototype, {\n roundRect: {\n value: function(x: number, y: number, w: number, h: number, r: number) {\n const minSize = Math.min(w, h)\n if (r > minSize / 2) r = minSize / 2\n // 开始绘制\n this.beginPath()\n this.moveTo(x + r, y)\n this.arcTo(x + w, y, x + w, y + h, r)\n this.arcTo(x + w, y + h, x, y + h, r)\n this.arcTo(x, y + h, x, y, r)\n this.arcTo(x, y, x + w, y, r)\n this.strokeStyle = '#FFF'\n this.stroke()\n this.closePath()\n return this\n },\n writable: true\n }\n})\n\ninterface Array {\n /**\n * 如果数组中没有要放入的对象,则将对象放入数组\n *\n * @param {T} t 要放入的对象\n * @returns {number} 放入的对象,在数组中的索引\n *\n * @member Array\n */\n pushOnce(t: T): number\n\n /**\n *\n * 删除某个数据\n * @param {T} t\n * @returns {boolean} true 有这个数据并且删除成功\n * false 没有这个数据\n */\n zremove(t: T): boolean\n\n /**\n * 将数组克隆到to\n * to的数组长度会和当前数组一致\n *\n * @template T\n * @param {Array} to\n */\n cloneTo(to: Array): void\n\n /**\n * 将数组附加到to中\n *\n * @template T\n * @param {Array} to\n *\n * @member ArrayConstructor\n */\n appendTo(to: Array): void\n\n /**\n * 移除数组index位置的元素, 比slice效率高\n * @param index\n */\n spliceOne(index: number): boolean\n\n /**\n * 随机排序\n */\n randomSort(): void\n\n /**\n * 检查数组中是否含有另外一个object\n * @param obj 与数组同类型的obj | 同类型的数组 | 指定child字段的值 | 指定child字段的数组\n * @param child 比较字段\n */\n contains(obj: T | T[] | {} | {}[], child?: string): boolean\n\n /**\n * 将数组随机插入当前数组中\n * @param arr\n */\n randomInsert(arr: Array): void\n\n /**\n * 随机获取n个元素\n * @param count\n */\n randomGet(count?: number): T[]\n\n /**\n * 随机获取1个元素\n */\n randomOne(): T\n\n /**\n * 随机移除n个元素\n * @param count\n */\n randomRemove(count?: number): T[]\n\n /**\n * 数组移动n位\n * @param n n > 0 右移, n<0 左移\n */\n moveElement(n: number): T[]\n\n /**\n * 两个数组并集\n * @param arr\n */\n union(arr: T[]): T[]\n\n /**\n * 两个数组交集\n * @param arr\n */\n intersect(arr: T[]): T[]\n\n /**\n * 相对于arr的差集\n * @param arr\n */\n difference(arr: T[]): T[]\n\n}\n\n// eslint-disable-next-line no-extend-native\nObject.defineProperties(Array.prototype, {\n cloneTo: {\n value: function (this: T[], b: any[]) {\n b.length = this.length\n const len = this.length\n b.length = len\n for (let i = 0; i < len; i++) {\n b[i] = this[i]\n }\n },\n writable: true\n },\n appendTo: {\n value: function (this: T[], b: any[]) {\n const len = this.length\n for (let i = 0; i < len; i++) {\n b.push(this[i])\n }\n },\n writable: true\n },\n pushOnce: {\n value: function (this: T[], t: T) {\n let idx = this.indexOf(t)\n if (!~idx) {\n idx = this.length\n this.push(t)\n }\n return idx\n },\n writable: true\n },\n zremove: {\n value: function (this: T[], t: T) {\n const idx = this.indexOf(t)\n if (~idx) {\n this.splice(idx, 1)\n return true\n }\n return false\n },\n writable: true\n },\n spliceOne: {\n value: function(index: number): boolean {\n if (index === -1 || index >= this.length) {\n return false\n }\n const len = this.length - 1\n for (let i = index; i < len; i++) {\n this[i] = this[i + 1]\n }\n this.length = len\n return true\n },\n writable: true\n },\n\n randomSort: {\n value: function () {\n for (let j, x, i = this.length; i; j = (Math.random() * i) | 0, x = this[--i], this[i] = this[j], this[j] = x) {}\n },\n writable: true\n },\n randomInsert: {\n value: function (arr: Array) {\n const length = this.length\n arr.forEach(value => {\n this.splice(Math.random() * length, 0, value)\n })\n },\n writable: true\n },\n randomGet: {\n value: function (count = 1): T[] {\n const shuffled: T[] = this.slice(0)\n let i = this.length\n const min = i - count\n let temp\n let index\n if (min < 0) {\n return shuffled\n }\n while (i-- > min) {\n index = Math.floor((i + 1) * Math.random())\n temp = shuffled[index]\n shuffled[index] = shuffled[i]\n shuffled[i] = temp\n }\n return shuffled.slice(min)\n },\n writable: true\n },\n randomOne: {\n value: function (): T|null {\n const results = this.randomGet(1)\n if (results.length > 0) {\n return results[0]\n } else {\n return null\n }\n },\n writable: true\n },\n randomRemove: {\n value: function (count = 1): T[] {\n const result = []\n while (count-- > 0 && this.length > 0) {\n const index = (Math.random() * this.length) | 0\n result.push(...this.splice(index, 1))\n }\n return result\n },\n writable: true\n },\n\n moveElement: {\n value: function (n: number): T[] {\n if (Math.abs(n) > this.length) n = n % this.length\n return this.slice(-n).concat(this.slice(0, -n))\n },\n writable: true\n },\n\n union: {\n value: function (this: T[], b: any[]): T[] {\n const a = this.concat(b)\n return [...new Set(a)]\n },\n writable: true\n },\n\n intersect: {\n value: function (this: T[], b: any[]): T[] {\n const set0 = new Set(b)\n const set1 = new Set(this.filter(x => set0.has(x)))\n return [...set1]\n },\n writable: true\n },\n\n difference: {\n value: function (this: T[], b: any[]): T[] {\n const set0 = new Set(b)\n const set1 = new Set(this.filter(x => !set0.has(x)))\n return [...set1]\n },\n writable: true\n }\n})\n\ninterface Map {\n /**\n * 只针对V为number的Map, 有值的话, 加上V, 没值则直接set\n * V为其他类型时, 直接set\n * @param key\n * @param value\n */\n inc(key: K, value: V): number\n}\n\n// eslint-disable-next-line no-extend-native\nObject.defineProperties(Map.prototype, {\n inc: {\n value: function (key: K, value: V) {\n if (typeof value === 'number') {\n this.set(key, (this.get(key) || 0) + value)\n } else {\n this.set(key, value)\n }\n return this.get(key)\n }\n }\n})\n","import Cookies from 'js-cookie'\n\n// App\nconst sidebarStatusKey = 'sidebar_status'\nexport const getSidebarStatus = () => Cookies.get(sidebarStatusKey)\nexport const setSidebarStatus = (sidebarStatus: string) => Cookies.set(sidebarStatusKey, sidebarStatus)\n\nconst languageKey = 'language'\nexport const getLanguage = () => Cookies.get(languageKey)\nexport const setLanguage = (language: string) => Cookies.set(languageKey, language)\n\nconst sizeKey = 'size'\nexport const getSize = () => Cookies.get(sizeKey)\nexport const setSize = (size: string) => Cookies.set(sizeKey, size)\n\nconst miniKey = 'mini'\nexport const getMini = () => Cookies.get(miniKey)\nexport const setMini = (mini: string) => Cookies.set(miniKey, mini)\n\n// User\nconst tokenKey = 'vue_typescript_admin_access_token'\nexport const getToken = () => Cookies.get(tokenKey)\nexport const setToken = (token: string) => Cookies.set(tokenKey, token)\nexport const removeToken = () => Cookies.remove(tokenKey)\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","export default {\n route: {\n dashboard: 'Dashboard',\n system: 'System',\n adminuser: 'Admin',\n documentation: 'Documentation',\n guide: 'Guide',\n permission: 'Permission',\n pagePermission: 'Page Permission',\n rolePermission: 'Role Permission',\n directivePermission: 'Directive Permission',\n icons: 'Icons',\n components: 'Components',\n tinymce: 'Tinymce',\n markdown: 'Markdown',\n jsonEditor: 'JSON Editor',\n splitPane: 'SplitPane',\n avatarUpload: 'Avatar Upload',\n dropzone: 'Dropzone',\n sticky: 'Sticky',\n countTo: 'Count To',\n componentMixin: 'Mixin',\n backToTop: 'Back To Top',\n draggableDialog: 'Draggable Dialog',\n draggableKanban: 'Draggable Kanban',\n draggableList: 'Draggable List',\n draggableSelect: 'Draggable Select',\n charts: 'Charts',\n barChart: 'Bar Chart',\n lineChart: 'Line Chart',\n mixedChart: 'Mixed Chart',\n example: 'Example',\n nested: 'Nested Routes',\n menu1: 'Menu 1',\n 'menu1-1': 'Menu 1-1',\n 'menu1-2': 'Menu 1-2',\n 'menu1-2-1': 'Menu 1-2-1',\n 'menu1-2-2': 'Menu 1-2-2',\n 'menu1-3': 'Menu 1-3',\n menu2: 'Menu 2',\n table: 'Table',\n dynamicTable: 'Dynamic Table',\n draggableTable: 'Draggable Table',\n inlineEditTable: 'Inline Edit Table',\n complexTable: 'Complex Table',\n tab: 'Tab',\n form: 'Form',\n createArticle: 'Create Article',\n editArticle: 'Edit Article',\n articleList: 'Article List',\n errorPages: 'Error Pages',\n page401: '401',\n page404: '404',\n errorLog: 'Error Log',\n excel: 'Excel',\n exportExcel: 'Export Excel',\n selectExcel: 'Export Selected',\n mergeHeader: 'Merge Header',\n uploadExcel: 'Upload Excel',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: 'Export Zip',\n theme: 'Theme',\n clipboard: 'Clipboard',\n i18n: 'I18n',\n externalLink: 'External Link',\n profile: 'Profile',\n article: 'Article',\n marketing: 'Marketing',\n marketing_coupon: 'Coupon',\n marketing_coupon_info: 'Coupon Info',\n marketing_promo: 'Promo Code',\n marketing_points: 'Points Setting',\n question: 'Question Set',\n question_list: 'Question List',\n question_prepare: 'Question Edit',\n question_setting: 'Question Setting',\n createQuestion: 'Create Question',\n shop: 'Shop Setting',\n shop_list: 'Shop List',\n shop_admin: 'Shop Admins',\n create_shop: 'Create Shop',\n shop_edit: 'Shop Editor',\n game_setting: 'Game Setting',\n game: 'Game',\n game_list: 'Game List',\n game_edit: 'Game Info',\n activity_list: 'Activity List',\n create_activity: 'New Activity',\n edit_activity: 'Edit Activity',\n exam_list: 'Exam List',\n create_exam: 'New Exam',\n edit_exam: 'Edit Exam',\n password: 'Password',\n edit_theme: 'Edit Theme',\n shop_member: 'Member Manage',\n shop_statistics: 'Statistics',\n game_statistics: 'Game Statistics',\n shop_puzzles: 'Custom Puzzles',\n shop_lottery: 'Lottery Setting',\n shop_share: 'Share Setting',\n shop_mail: 'Mails',\n create_mail: 'New Mail',\n edit_mail: 'Edit Mail',\n shop_announce: 'Announce',\n create_announce: 'New Announce',\n edit_announce: 'Edit Announce'\n },\n navbar: {\n logOut: 'Log Out',\n dashboard: 'Dashboard',\n github: 'Github',\n theme: 'Theme',\n size: 'Global Size',\n profile: 'Profile',\n password: 'Password'\n },\n login: {\n title: 'Login Form',\n logIn: 'Login',\n username: 'Username',\n password: 'Password',\n any: 'any',\n thirdparty: 'Or connect with',\n thirdpartyTips: 'Can not be simulated on local, so please combine you own business simulation! ! !'\n },\n documentation: {\n documentation: 'Documentation',\n github: 'Github Repository'\n },\n permission: {\n createRole: 'New Role',\n editPermission: 'Edit',\n roles: 'Your roles',\n switchRoles: 'Switch roles',\n tips: 'In some cases, using v-permission will have no effect. For example: Element-UI el-tab or el-table-column and other scenes that dynamically render dom. You can only do this with v-if.',\n delete: 'Delete',\n confirm: 'Confirm',\n cancel: 'Cancel'\n },\n guide: {\n description: 'The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ',\n button: 'Show Guide'\n },\n components: {\n documentation: 'Documentation',\n tinymceTips: 'Rich text is a core feature of the management backend, but at the same time it is a place with lots of pits. In the process of selecting rich texts, I also took a lot of detours. The common rich texts on the market have been basically used, and I finally chose Tinymce. See the more detailed rich text comparison and introduction.',\n stickyTips: 'when the page is scrolled to the preset position will be sticky on the top.',\n backToTopTips1: 'When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner',\n backToTopTips2: 'You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally',\n imageUploadTips: 'Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.',\n changeLanguageTips: 'Switch Language Success'\n },\n table: {\n dynamicTips1: 'Fixed header, sorted by header order',\n dynamicTips2: 'Not fixed header, sorted by click order',\n dragTips1: 'The default order',\n dragTips2: 'The after dragging order',\n title: 'Title',\n importance: 'Importance',\n type: 'Type',\n remark: 'Remark',\n search: 'Search',\n add: 'Add',\n export: 'Export',\n reviewer: 'Reviewer',\n id: 'ID',\n date: 'Date',\n author: 'Author',\n readings: 'Readings',\n status: 'Status',\n actions: 'Actions',\n edit: 'Edit',\n publish: 'Publish',\n draft: 'Draft',\n delete: 'Delete',\n cancel: 'Cancel',\n confirm: 'Confirm'\n },\n example: {\n warning: 'Creating and editing pages cannot be cached by keep-alive because keep-alive\\'s \\'include\\' currently does not support caching based on routes, so now it\\'s cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or don\\'t use keep-alive\\'s \\'include\\' to cache all pages directly. See details'\n },\n errorLog: {\n tips: 'Please click the bug icon in the upper right corner',\n description: 'Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.',\n documentation: 'Document introduction'\n },\n excel: {\n export: 'Export',\n selectedExport: 'Export Selected Items',\n placeholder: 'Please enter the file name (default excel-list)'\n },\n zip: {\n export: 'Export',\n placeholder: 'Please enter the file name (default file)'\n },\n pdf: {\n tips: 'Here we use window.print() to implement the feature of downloading PDF.'\n },\n theme: {\n change: 'Change Theme',\n documentation: 'Theme documentation',\n tips: 'Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.'\n },\n tagsView: {\n refresh: 'Refresh',\n close: 'Close',\n closeOthers: 'Close Others',\n closeAll: 'Close All'\n },\n settings: {\n title: 'Page style setting',\n theme: 'Theme Color',\n showTagsView: 'Open Tags-View',\n showSidebarLogo: 'Sidebar Logo',\n fixedHeader: 'Fixed Header',\n sidebarTextTheme: 'Sidebar Text Theme'\n },\n admin: {\n addAdmin: 'New Admin',\n editAdmin: 'Edit Admin'\n },\n article: {\n add: 'New Article'\n },\n marketing: {\n\n },\n main: {\n shop: 'shop'\n }\n}\n","export default {\n route: {\n dashboard: '首页',\n documentation: '文档',\n system: '系统',\n adminuser: '管理员',\n guide: '引导页',\n permission: '权限管理',\n rolePermission: '角色权限',\n pagePermission: '页面权限',\n directivePermission: '指令权限',\n icons: '图标',\n components: '组件',\n tinymce: '富文本编辑器',\n markdown: 'Markdown',\n jsonEditor: 'JSON 编辑器',\n splitPane: 'Splitpane',\n avatarUpload: '头像上传',\n dropzone: 'Dropzone',\n sticky: 'Sticky',\n countTo: 'Count To',\n componentMixin: '小组件',\n backToTop: '返回顶部',\n draggableDialog: '可拖拽对话框',\n draggableKanban: '可拖拽看板',\n draggableList: '可拖拽列表',\n draggableSelect: '可拖拽选择',\n charts: '图表',\n barChart: '柱状图表',\n lineChart: '折线图',\n mixedChart: '混合图表',\n example: '综合实例',\n nested: '路由嵌套',\n menu1: '菜单 1',\n 'menu1-1': '菜单 1-1',\n 'menu1-2': '菜单 1-2',\n 'menu1-2-1': '菜单 1-2-1',\n 'menu1-2-2': '菜单 1-2-2',\n 'menu1-3': '菜单 1-3',\n menu2: '菜单 2',\n table: '表格',\n dynamicTable: '动态表格',\n draggableTable: '可拖拽表格',\n inlineEditTable: '表格内编辑',\n complexTable: '综合表格',\n tab: '分栏',\n form: '表单',\n createArticle: '创建文章',\n editArticle: '编辑文章',\n articleList: '文章列表',\n errorPages: '错误页面',\n page401: '401',\n page404: '404',\n errorLog: '错误日志',\n excel: 'Excel',\n exportExcel: '导出 Excel',\n selectExcel: '导出 已选择项',\n mergeHeader: '导出 多级表头',\n uploadExcel: '上传 Excel',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: '导出 Zip',\n theme: '换肤',\n clipboard: '粘贴板',\n i18n: '国际化',\n externalLink: '外链',\n profile: '个人中心',\n article: '资讯管理',\n marketing: '营销管理',\n marketing_coupon: '优惠券设置',\n marketing_coupon_info: '编辑优惠券',\n marketing_promo: '优惠码设置',\n marketing_points: '积分设置',\n question: '题库管理',\n question_list: '题目列表',\n question_prepare: '题目编辑',\n question_setting: '题库设置',\n createQuestion: '创建题目',\n shop: '店铺设置',\n shop_list: '店铺列表',\n shop_admin: '店铺管理员',\n create_shop: '创建店铺',\n shop_edit: '编辑店铺',\n game_setting: '游戏设置',\n game: '游戏信息',\n game_list: '游戏列表',\n game_edit: '编辑游戏',\n activity_list: '活动列表',\n create_activity: '新建活动',\n edit_activity: '编辑活动',\n exam_list: '挑战列表',\n create_exam: '新建挑战',\n edit_exam: '编辑挑战',\n password: '修改密码',\n edit_theme: '订制游戏主题',\n shop_member: '成员管理',\n shop_statistics: '统计',\n game_statistics: '游戏数据',\n shop_puzzles: '自定义题库',\n shop_lottery: '抽奖转盘',\n shop_share: '分享设置',\n shop_mail: '邮件',\n create_mail: '新邮件',\n edit_mail: '编辑邮件',\n shop_announce: '公告',\n create_announce: '新建公告',\n edit_announce: '编辑公告'\n },\n navbar: {\n logOut: '退出登录',\n dashboard: '首页',\n github: '项目地址',\n theme: '换肤',\n size: '布局大小',\n profile: '个人信息',\n password: '修改密码'\n },\n login: {\n title: '系统登录',\n logIn: '登录',\n username: '账号',\n password: '密码',\n any: '随便填',\n thirdparty: '第三方登录',\n thirdpartyTips: '本地不能模拟,请结合自己业务进行模拟!!!'\n },\n documentation: {\n documentation: '文档',\n github: 'Github 地址'\n },\n permission: {\n createRole: '新增角色',\n editPermission: '编辑权限',\n roles: '你的权限',\n switchRoles: '切换权限',\n tips: '在某些情况下,不适合使用 v-permission。例如:Element-UI 的 el-tab 或 el-table-column 以及其它动态渲染 dom 的场景。你只能通过手动设置 v-if 来实现。',\n delete: '删除',\n confirm: '确定',\n cancel: '取消'\n },\n guide: {\n description: '引导页对于一些第一次进入项目的人很有用,你可以简单介绍下项目的功能。本 Demo 是基于',\n button: '打开引导'\n },\n components: {\n documentation: '文档',\n tinymceTips: '富文本是管理后台一个核心的功能,但同时又是一个有很多坑的地方。在选择富文本的过程中我也走了不少的弯路,市面上常见的富文本都基本用过了,最终权衡了一下选择了Tinymce。更详细的富文本比较和介绍见',\n stickyTips: '当页面滚动到预设的位置会吸附在顶部',\n backToTopTips1: '页面滚动到指定位置会在右下角出现返回顶部按钮',\n backToTopTips2: '可自定义按钮的样式、show/hide、出现的高度、返回的位置 如需文字提示,可在外部使用Element的el-tooltip元素',\n imageUploadTips: '由于我在使用时它只有vue@1版本,而且和mockjs不兼容,所以自己改造了一下,如果大家要使用的话,优先还是使用官方版本。',\n changeLanguageTips: '切换语言成功'\n },\n table: {\n dynamicTips1: '固定表头, 按照表头顺序排序',\n dynamicTips2: '不固定表头, 按照点击顺序排序',\n dragTips1: '默认顺序',\n dragTips2: '拖拽后顺序',\n title: '标题',\n importance: '重要性',\n type: '类型',\n remark: '点评',\n search: '搜索',\n add: '添加',\n export: '导出',\n reviewer: '审核人',\n id: '序号',\n date: '时间',\n author: '作者',\n readings: '阅读数',\n status: '状态',\n actions: '操作',\n edit: '编辑',\n publish: '发布',\n draft: '草稿',\n delete: '删除',\n cancel: '取 消',\n confirm: '确 定'\n },\n example: {\n warning: '创建和编辑页面是不能被 keep-alive 缓存的,因为keep-alive 的 include 目前不支持根据路由来缓存,所以目前都是基于 component name 来进行缓存的。如果你想类似的实现缓存效果,可以使用 localStorage 等浏览器缓存方案。或者不要使用 keep-alive 的 include,直接缓存所有页面。详情见'\n },\n errorLog: {\n tips: '请点击右上角bug小图标',\n description: '现在的管理后台基本都是spa的形式了,它增强了用户体验,但同时也会增加页面出问题的可能性,可能一个小小的疏忽就导致整个页面的死锁。好在 Vue 官网提供了一个方法来捕获处理异常,你可以在其中进行错误处理或者异常上报。',\n documentation: '文档介绍'\n },\n excel: {\n export: '导出',\n selectedExport: '导出已选择项',\n placeholder: '请输入文件名(默认excel-list)'\n },\n zip: {\n export: '导出',\n placeholder: '请输入文件名(默认file)'\n },\n pdf: {\n tips: '这里使用 window.print() 来实现下载pdf的功能'\n },\n theme: {\n change: '换肤',\n documentation: '换肤文档',\n tips: 'Tips: 它区别于 navbar 上的 theme-pick, 是两种不同的换肤方法,各自有不同的应用场景,具体请参考文档。'\n },\n tagsView: {\n refresh: '刷新',\n close: '关闭',\n closeOthers: '关闭其它',\n closeAll: '关闭所有'\n },\n settings: {\n title: '系统布局配置',\n theme: '主题色',\n showTagsView: '显示 Tags-View',\n showSidebarLogo: '显示侧边栏 Logo',\n fixedHeader: '固定 Header',\n sidebarTextTheme: '侧边栏文字主题色'\n },\n admin: {\n addAdmin: '新增',\n editAdmin: '编辑'\n },\n article: {\n add: '添加'\n },\n main: {\n shop: '店铺'\n }\n}\n","export default {\n route: {\n dashboard: 'Panel de control',\n documentation: 'Documentación',\n guide: 'Guía',\n permission: 'Permisos',\n rolePermission: 'Permisos de rol',\n pagePermission: 'Permisos de la página',\n directivePermission: 'Permisos de la directiva',\n icons: 'Iconos',\n components: 'Componentes',\n tinymce: 'Tinymce',\n markdown: 'Markdown',\n jsonEditor: 'Editor JSON',\n splitPane: 'Panel dividido',\n avatarUpload: 'Subir avatar',\n dropzone: 'Subir ficheros',\n sticky: 'Sticky',\n countTo: 'Count To',\n componentMixin: 'Mixin',\n backToTop: 'Ir arriba',\n draggableDialog: 'Draggable Dialog',\n draggableKanban: 'Draggable Kanban',\n draggableList: 'Draggable List',\n draggableSelect: 'Draggable Select',\n charts: 'Gráficos',\n barChart: 'Bar Chart',\n lineChart: 'Gráfico de líneas',\n mixedChart: 'Mixed Chart',\n example: 'Ejemplo',\n nested: 'Rutas anidadass',\n menu1: 'Menu 1',\n 'menu1-1': 'Menu 1-1',\n 'menu1-2': 'Menu 1-2',\n 'menu1-2-1': 'Menu 1-2-1',\n 'menu1-2-2': 'Menu 1-2-2',\n 'menu1-3': 'Menu 1-3',\n menu2: 'Menu 2',\n table: 'Tabla',\n dynamicTable: 'Tabla dinámica',\n draggableTable: 'Arrastrar tabla',\n inlineEditTable: 'Editor',\n complexTable: 'Complex Table',\n tab: 'Pestaña',\n form: 'Formulario',\n createArticle: 'Crear artículo',\n editArticle: 'Editar artículo',\n articleList: 'Listado de artículos',\n errorPages: 'Páginas de error',\n page401: '401',\n page404: '404',\n errorLog: 'Registro de errores',\n excel: 'Excel',\n exportExcel: 'Exportar a Excel',\n selectExcel: 'Export seleccionado',\n mergeHeader: 'Merge Header',\n uploadExcel: 'Subir Excel',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: 'Exportar a Zip',\n theme: 'Tema',\n clipboard: 'Clipboard',\n i18n: 'I18n',\n externalLink: 'Enlace externo',\n profile: 'Profile'\n },\n navbar: {\n logOut: 'Salir',\n dashboard: 'Panel de control',\n github: 'Github',\n theme: 'Tema',\n size: 'Tamaño global',\n profile: 'Profile'\n },\n login: {\n title: 'Formulario de acceso',\n logIn: 'Acceso',\n username: 'Usuario',\n password: 'Contraseña',\n any: 'nada',\n thirdparty: 'Conectar con',\n thirdpartyTips: 'No se puede simular en local, así que combine su propia simulación de negocios. ! !'\n },\n documentation: {\n documentation: 'Documentación',\n github: 'Repositorio Github'\n },\n permission: {\n createRole: 'Nuevo rol',\n editPermission: 'Permiso de edición',\n roles: 'Tus permisos',\n switchRoles: 'Cambiar permisos',\n tips: 'In some cases it is not suitable to use v-permission, such as element Tab component or el-table-column and other asynchronous rendering dom cases which can only be achieved by manually setting the v-if.',\n delete: 'Borrar',\n confirm: 'Confirmar',\n cancel: 'Cancelar'\n },\n guide: {\n description: 'The guide page is useful for some people who entered the project for the first time. You can briefly introduce the features of the project. Demo is based on ',\n button: 'Ver guía'\n },\n components: {\n documentation: 'Documentación',\n tinymceTips: 'Rich text editor is a core part of management system, but at the same time is a place with lots of problems. In the process of selecting rich texts, I also walked a lot of detours. The common rich text editors in the market are basically used, and the finally chose Tinymce. See documentation for more detailed rich text editor comparisons and introductions.',\n stickyTips: 'when the page is scrolled to the preset position will be sticky on the top.',\n backToTopTips1: 'When the page is scrolled to the specified position, the Back to Top button appears in the lower right corner',\n backToTopTips2: 'You can customize the style of the button, show / hide, height of appearance, height of the return. If you need a text prompt, you can use element-ui el-tooltip elements externally',\n imageUploadTips: 'Since I was using only the vue@1 version, and it is not compatible with mockjs at the moment, I modified it myself, and if you are going to use it, it is better to use official version.',\n changeLanguageTips: 'Cambiar de idioma correctamente'\n },\n table: {\n dynamicTips1: 'Fixed header, sorted by header order',\n dynamicTips2: 'Not fixed header, sorted by click order',\n dragTips1: 'Orden por defecto',\n dragTips2: 'The after dragging order',\n title: 'Título',\n importance: 'Importancia',\n type: 'Tipo',\n remark: 'Remark',\n search: 'Buscar',\n add: 'Añadir',\n export: 'Exportar',\n reviewer: 'Reviewer',\n id: 'ID',\n date: 'Fecha',\n author: 'Autor',\n readings: 'Lector',\n status: 'Estado',\n actions: 'Acciones',\n edit: 'Editar',\n publish: 'Publicar',\n draft: 'Draft',\n delete: 'Eliminar',\n cancel: 'Cancelar',\n confirm: 'Confirmar'\n },\n example: {\n warning: 'Creating and editing pages cannot be cached by keep-alive because keep-alive include does not currently support caching based on routes, so it is currently cached based on component name. If you want to achieve a similar caching effect, you can use a browser caching scheme such as localStorage. Or do not use keep-alive include to cache all pages directly. See details'\n },\n errorLog: {\n tips: 'Please click the bug icon in the upper right corner',\n description: 'Now the management system are basically the form of the spa, it enhances the user experience, but it also increases the possibility of page problems, a small negligence may lead to the entire page deadlock. Fortunately Vue provides a way to catch handling exceptions, where you can handle errors or report exceptions.',\n documentation: 'Documento de introducción'\n },\n excel: {\n export: 'Exportar',\n selectedExport: 'Exportar seleccionados',\n placeholder: 'Por favor escribe un nombre de fichero'\n },\n zip: {\n export: 'Exportar',\n placeholder: 'Por favor escribe un nombre de fichero'\n },\n pdf: {\n tips: 'Here we use window.print() to implement the feature of downloading PDF.'\n },\n theme: {\n change: 'Cambiar tema',\n documentation: 'Documentación del tema',\n tips: 'Tips: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.'\n },\n tagsView: {\n refresh: 'Actualizar',\n close: 'Cerrar',\n closeOthers: 'Cerrar otros',\n closeAll: 'Cerrar todos'\n },\n settings: {\n title: 'Page style setting',\n theme: 'Theme Color',\n showTagsView: 'Show Tags-View',\n showSidebarLogo: 'Show Sidebar Logo',\n fixedHeader: 'Fixed Header',\n sidebarTextTheme: 'Sidebar Text Theme'\n }\n}\n","export default {\n route: {\n dashboard: 'トップ',\n system: 'システム',\n documentation: 'ドキュメント',\n guide: 'ガイド',\n permission: '権限',\n rolePermission: '権限ロール',\n pagePermission: 'ページ権限',\n directivePermission: 'ディレクティブ権限',\n icons: 'アイコン',\n components: 'コンポーネント',\n tinymce: 'TinyMCE',\n markdown: 'Markdown',\n jsonEditor: 'JSON Editor',\n splitPane: 'パネル',\n avatarUpload: 'アバターアップロード',\n dropzone: 'Dropzone',\n sticky: 'Sticky',\n countTo: 'Count To',\n componentMixin: 'コンポーネントMixin',\n backToTop: 'Back To Top',\n draggableDialog: 'Draggable Dialog',\n draggableKanban: 'Draggable 看板',\n draggableList: 'Draggable List',\n draggableSelect: 'Draggable Select',\n charts: 'チャート',\n barChart: 'Barチャート',\n lineChart: 'Lineチャート',\n mixedChart: 'Mixedチャート',\n example: 'Example',\n nested: 'Nested Routes',\n menu1: 'メニュー1',\n 'menu1-1': 'メニュー 1-1',\n 'menu1-2': 'メニュー 1-2',\n 'menu1-2-1': 'メニュー 1-2-1',\n 'menu1-2-2': 'メニュー 1-2-2',\n 'menu1-3': 'メニュー 1-3',\n menu2: 'メニュー 2',\n table: 'Table',\n dynamicTable: '可変 Table',\n draggableTable: 'Draggable Table',\n inlineEditTable: 'Inline Edit Table',\n complexTable: 'Complex Table',\n tab: 'Tab',\n form: 'フォーム',\n createArticle: '投稿作成',\n editArticle: '投稿編集',\n articleList: '投稿リスト',\n errorPages: 'エラーページ',\n page401: '401',\n page404: '404',\n errorLog: 'エラーログ',\n excel: 'Excel',\n exportExcel: '一括エクスポート',\n selectExcel: '複数選択エクスポート',\n mergeHeader: 'ヘッダーマージ',\n uploadExcel: 'アップロード',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: 'Export Zip',\n theme: 'テーマ変更',\n clipboard: 'Clipboard',\n i18n: '多言語',\n externalLink: '外部リンク',\n profile: 'プロフィール'\n },\n navbar: {\n dashboard: 'トップ',\n github: 'GitHub',\n logOut: 'ログアウト',\n profile: 'プロフィール',\n theme: 'テーマ変更',\n size: '画面サイズ'\n },\n login: {\n title: 'ユーザログイン',\n logIn: 'ログイン',\n username: 'ユーザ名',\n password: 'パスワード',\n any: 'any',\n thirdparty: '外部IDでログイン',\n thirdpartyTips: 'ローカル環境ではログインできません。実装が必要です。'\n },\n documentation: {\n documentation: 'ドキュメント',\n github: 'Github Link'\n },\n permission: {\n createRole: 'ロール追加',\n editPermission: 'ロール変更',\n roles: 'ロール',\n switchRoles: 'ロール切替',\n tips: 'v-permissionは使えない時があります。例えば: Element-UI の el-tab、 el-table-column 及び他の dom。v-ifを使う必要があります。',\n delete: '削除',\n confirm: '確認',\n cancel: 'キャンセル'\n },\n guide: {\n description: 'ガイドは各機能の説明です。',\n button: 'ガイドを見る'\n },\n components: {\n documentation: 'ドキュメント',\n tinymceTips: 'tinymceは管理画面に重要な機能ですが、その同時に落とし穴がありあす。tinymceを使う道のりが大変でした。Tinymceを使う時に各自のプロジェクト状況で判断が必要です。ドキュメントはこちら',\n stickyTips: 'ページの指定位置へスクロールした場合、表示されます。',\n backToTopTips1: 'トップへスクロールが表示されます。',\n backToTopTips2: 'ボタンのスタイルはカスタマイズできます。例えば、show/hide、height、position。 またはElementのel-tooltipを使って、ツールチップを実装できます。',\n imageUploadTips: 'mockjsは使えないため、カスタマイズしています。公式の最新バージョンを使ってください。',\n changeLanguageTips: '言語切り替えの成功'\n },\n table: {\n dynamicTips1: '先頭は固定、最後に追加',\n dynamicTips2: '戦後に追加せず、指定列に追加',\n dragTips1: 'デフォルト順番',\n dragTips2: 'Drag後の順番',\n title: 'タイトル',\n importance: '重要',\n type: 'タイプ',\n remark: '評価',\n search: '検索',\n add: '追加',\n export: 'エクスポート',\n reviewer: 'レビュアー',\n id: '番号',\n date: '日時',\n author: '作成者',\n readings: '閲覧数',\n status: 'ステータス',\n actions: '操作',\n edit: '編集',\n publish: '公開',\n draft: '下書き',\n delete: 'キャンセル',\n cancel: 'キャンセル',\n confirm: '確認'\n },\n example: {\n warning: '新規作成と編集画面は keep-alive を使えないです。keep-alive の include はrouteのキャッシュは使えないです。そのため、component name を使ってキャッシュさせるようにします。このようなキャッシュ機能を作りたい場合,localStorageを使う手があります。もしくは keep-alive の includeを使って、全ページキャッシュする方法はあります。'\n },\n errorLog: {\n tips: '右上のbugアイコンをクリックしてください。',\n description: '管理画面はspaを使う場合が多い、ユーザ体現向上はできますが、想定外エラーが発生する場合があります。Vueはそのエラーハンドリング機能を提供し、エラーレポートができます。',\n documentation: 'ドキュメント'\n },\n excel: {\n export: 'エクスポート',\n selectedExport: 'エクスポート対象を選択してください。',\n placeholder: 'ファイル名を入力してください。'\n },\n zip: {\n export: 'エクスポート',\n placeholder: 'ファイル名を入力してください。'\n },\n pdf: {\n tips: 'window.print() を使ってPDFダウンロードしています。'\n },\n theme: {\n change: 'テーマ切替',\n documentation: 'ドキュメント',\n tips: 'Tips: テーマの切り替え方法はnavbarのtheme-pickと異なります、使い方はドキュメントを確認してください。'\n },\n tagsView: {\n refresh: '更新',\n close: '閉じる',\n closeOthers: 'その他閉じる',\n closeAll: 'すべて閉じる'\n },\n settings: {\n title: 'システムテーマ',\n theme: 'テーマ色',\n showTagsView: 'Tags-View 開く',\n showSidebarLogo: 'Show Sidebar Logo',\n fixedHeader: 'Fixed Header',\n sidebarTextTheme: 'Sidebar Text Theme'\n }\n}\n","export default {\n route: {\n dashboard: '대시보드',\n system: '체계',\n documentation: '문서',\n guide: '가이드',\n permission: '권한',\n rolePermission: '역할 권한',\n pagePermission: '페이지 권한',\n directivePermission: '지시 권한',\n icons: '아이콘',\n components: '구성 요소',\n tinymce: 'TinyMCE',\n markdown: 'Markdown',\n jsonEditor: 'JSON Editor',\n splitPane: '패널',\n avatarUpload: '아바타업로드',\n dropzone: 'Dropzone',\n sticky: 'Sticky',\n countTo: 'Count To',\n componentMixin: '구성 요소 Mixin',\n backToTop: 'Back To Top',\n draggableDialog: '드래그 상자',\n draggableKanban: '드래그 간판',\n draggableList: '드래그 리스트',\n draggableSelect: '드래그 선택',\n charts: '차트',\n barChart: '막대그래프',\n lineChart: '꺽은선그래프',\n mixedChart: '종합차트',\n example: '예시',\n nested: 'Nested Routes',\n menu1: '메뉴1',\n 'menu1-1': '메뉴 1-1',\n 'menu1-2': '메뉴 1-2',\n 'menu1-2-1': '메뉴 1-2-1',\n 'menu1-2-2': '메뉴 1-2-2',\n 'menu1-3': '메뉴 1-3',\n menu2: '메뉴 2',\n table: '표',\n dynamicTable: 'Dynamic 표',\n draggableTable: 'Draggable 표',\n inlineEditTable: 'Inline Edit 표',\n complexTable: 'Complex 표',\n tab: 'Tab',\n form: '형태',\n createArticle: '게시물 작성',\n editArticle: '게시물 편집',\n articleList: '게시물 리스트',\n errorPages: '에러 페이지',\n page401: '401',\n page404: '404',\n errorLog: '에러 로그',\n excel: '엑셀',\n exportExcel: '엑셀 내보내기',\n selectExcel: '엑셀 선택',\n mergeHeader: '헤더 병합',\n uploadExcel: '엑셀 올리기',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: 'Export Zip',\n theme: '테마',\n clipboard: 'Clipboard',\n i18n: '언어',\n externalLink: '외부 링크',\n profile: '프로필'\n },\n navbar: {\n dashboard: '대시보드',\n github: '깃허브',\n logOut: '로그아웃',\n profile: '프로필',\n theme: '테마',\n size: '크기'\n },\n login: {\n title: '타이틀',\n logIn: '로그인',\n username: '이름',\n password: '비밀번호',\n any: 'any',\n thirdparty: '외부 ID로 로그인',\n thirdpartyTips: '로컬 환경에서 로그인 할 수 없습니다.'\n },\n documentation: {\n documentation: '문서',\n github: '깃허브 링크'\n },\n permission: {\n createRole: '역할 추가',\n editPermission: '권한 수정',\n roles: '역할',\n switchRoles: '역할 바꾸기',\n tips: 'v-permission 사용할 때가 있습니다. 예 : Element-UI의 el-tab, el-table-column 및 다른 dom. v-if를 사용해야합니다.',\n delete: '삭제',\n confirm: '확인',\n cancel: '취소'\n },\n guide: {\n description: '각 기능에 대한 설명입니다.',\n button: '버튼'\n },\n components: {\n documentation: '문서',\n tinymceTips: '서식있는 텍스트는 관리 백엔드의 핵심 기능이지만 동시에 문제가 많은 곳입니다. 리치 텍스트를 선택하는 과정에서도 많은 우회가 필요했습니다. 시중에 나와있는 일반적인 서식있는 텍스트는 기본적으로 사용되었으며 마침내 Tinymce를 선택했습니다. 보다 자세한 리치 텍스트 비교 및 소개를 참조하십시오.',\n stickyTips: '페이지의 지정된 위치에 스크롤하면 나타납니다.',\n backToTopTips1: '페이지가 지정된 위치로 스크롤되면 맨 아래 오른쪽 모서리에 맨 위로 이동 단추가 나타납니다.',\n backToTopTips2: '버튼 스타일, 표시 / 숨기기, 모양 높이, 반환 높이를 사용자 정의 할 수 있습니다. 텍스트 프롬프트가 필요한 경우 element-ui el-tooltip 요소를 외부에서 사용할 수 있습니다',\n imageUploadTips: 'vue @ 1 버전 만 사용하고 있었고 현재 mockjs와 호환되지 않기 때문에 직접 수정했으며 사용하려는 경우 공식 버전을 사용하는 것이 좋습니다.',\n changeLanguageTips: '언어 전환 성공'\n },\n table: {\n dynamicTips1: '정렬된 헤더',\n dynamicTips2: '정렬되지 않은 헤더',\n dragTips1: '기본 순서',\n dragTips2: '드래그한 순서',\n title: '타이틀',\n importance: '중요성',\n type: 'Type',\n remark: 'Remark',\n search: '검색',\n add: '추가',\n export: '내보내기',\n reviewer: 'Reviewer',\n id: 'ID',\n date: '날짜',\n author: '글쓴이',\n readings: 'Readings',\n status: '상태',\n actions: 'Actions',\n edit: '수정',\n publish: '게시',\n draft: 'Draft',\n delete: '삭제',\n cancel: '취소',\n confirm: '확인'\n },\n example: {\n warning: 'keep-alive의 \\'include \\'는 (는) 현재 경로 기반 캐싱을 지원하지 않으므로 구성 요소 이름을 기반으로 캐시되기 때문에 keep-alive로 페이지를 만들고 편집 할 수 없습니다. 비슷한 캐싱 효과를 얻으려면 localStorage와 같은 브라우저 캐싱 구성표를 사용할 수 있습니다. 또는 keep-alive \\' include \\'를 사용하여 모든 페이지를 직접 캐시하지 마십시오. 자세히보다'\n },\n errorLog: {\n tips: '오른쪽 상단에있는 버그 아이콘을 클릭하십시오',\n description: '이제 관리 시스템은 기본적으로 스파의 형태이며 사용자 경험을 향상 시키지만 페이지 문제의 가능성을 증가시킵니다. 작은 태만으로 인해 전체 페이지 교착 상태가 발생할 수 있습니다. 다행히 Vue는 오류를 처리하거나 예외를보고 할 수있는 예외 처리를 포착하는 방법을 제공합니다.',\n documentation: '문서 소개'\n },\n excel: {\n export: '내보내기',\n selectedExport: '선택 항목 내보내기',\n placeholder: '파일 이름을 입력하세요.(기본 엑셀 목록)'\n },\n zip: {\n export: '내보내기',\n placeholder: '파일 이름을 입력하세요.(기본 파일)'\n },\n pdf: {\n tips: '여기서는 window.print ()를 사용하여 PDF 다운로드 기능을 구현합니다.'\n },\n theme: {\n change: '테마 바꾸기',\n documentation: '테마 문서',\n tips: 'Tips: 탐색 모음의 테마 선택과는 다른 응용 프로그램 시나리오가있는 두 가지 다른 스키닝 방법입니다. 자세한 내용은 설명서를 참조하십시오.'\n },\n tagsView: {\n refresh: '새로고침',\n close: '닫기',\n closeOthers: '기타 닫기',\n closeAll: '모두 닫기'\n },\n settings: {\n title: '페이지 스타일 설정',\n theme: '테마 색상',\n showTagsView: 'Tags-View 열기',\n showSidebarLogo: '사이드 메뉴 로고',\n fixedHeader: '헤더 고정',\n sidebarTextTheme: '사이드 메뉴 글꼴 테마'\n }\n}\n","export default {\n route: {\n dashboard: 'Dashboard',\n documentation: 'Documentazione',\n guide: 'Guida',\n permission: 'Permessi',\n pagePermission: 'Pagina permessi',\n rolePermission: 'Permessi ruolo',\n directivePermission: 'Direttive Permessi',\n icons: 'Icone',\n components: 'Componenti',\n tinymce: 'Tinymce',\n markdown: 'Markdown',\n jsonEditor: 'Editor JSON',\n splitPane: 'SplitPane',\n avatarUpload: 'Carica Avatar',\n dropzone: 'Dropzone',\n sticky: 'Sticky',\n countTo: 'Conta Fino',\n componentMixin: 'Mixin',\n backToTop: 'Torna su',\n draggableDialog: 'Dialogo Trascinabile',\n draggableKanban: 'Kanban Trascinabile',\n draggableList: 'Lista Trascinabile',\n draggableSelect: 'Select Trascinabile',\n charts: 'Grafici',\n barChart: 'Grafico a Barre',\n lineChart: 'Grafico a Linee',\n mixedChart: 'Grafico Misto',\n example: 'Esempio',\n nested: 'Menu Nidificato',\n menu1: 'Menu 1',\n 'menu1-1': 'Menu 1-1',\n 'menu1-2': 'Menu 1-2',\n 'menu1-2-1': 'Menu 1-2-1',\n 'menu1-2-2': 'Menu 1-2-2',\n 'menu1-3': 'Menu 1-3',\n menu2: 'Menu 2',\n table: 'Tabella',\n dynamicTable: 'Tabella Dinamica',\n draggableTable: 'Tabella Trascinabile',\n inlineEditTable: 'Tabella Modifica in Linea',\n complexTable: 'Tabella Complessa',\n tab: 'Tab',\n form: 'Form',\n createArticle: 'Crea Articolo',\n editArticle: 'Modifica Articolo',\n articleList: 'Lista Articoli',\n errorPages: 'Pagine di Errore',\n page401: '401',\n page404: '404',\n errorLog: 'Registro Errori',\n excel: 'Excel',\n exportExcel: 'Esporta Excel',\n selectExcel: 'Esporta Selezionato',\n mergeHeader: 'Unisci Intestazione',\n uploadExcel: 'Carica Excel',\n zip: 'Zip',\n pdf: 'PDF',\n exportZip: 'Esporta Zip',\n theme: 'Tema',\n clipboard: 'Appunti',\n i18n: 'I18n',\n externalLink: 'Link Esterno',\n profile: 'Profilo'\n },\n navbar: {\n logOut: 'Esci',\n dashboard: 'Dashboard',\n github: 'Github',\n theme: 'Tema',\n size: 'Grandezza Globale',\n profile: 'Profilo'\n },\n login: {\n title: 'Accesso',\n logIn: 'Accedi',\n username: 'Utente',\n password: 'Password',\n any: 'qualunque',\n thirdparty: 'Connetti con',\n thirdpartyTips: 'Non può essere simulato in locale, quindi combina la tua simulazione di business, per favore!!!'\n },\n documentation: {\n documentation: 'Documentazione',\n github: 'Github Repository'\n },\n permission: {\n createRole: 'Nuovo Ruolo',\n editPermission: 'Modifica',\n roles: 'I tuoi ruoli',\n switchRoles: 'Cambia ruoli',\n tips: 'In alcuni casi usare v-permission non ha effetto. Per esempio: Element-UI el-tab o el-table-column e altri componenti che renderizzano il dom dinamicamente. Puoi farlo solo con v-if.',\n delete: 'Elimina',\n confirm: 'Conferma',\n cancel: 'Annulla'\n },\n guide: {\n description: 'La pagina Guida è utile per alcune persone che entrano nel progetto per la prima volta. Puoi introdurre brevemente le funzionalità del progetto. Il demo è basato su ',\n button: 'Mostra guida'\n },\n components: {\n documentation: 'Documentazione',\n stickyTips: 'when the page is scrolled to the preset position will be sticky on the top.',\n tinymceTips: 'Il testo ricco è una funzionalità fondamentale della gestione backend, ma allo stesso tempo è un posto molto scosceso. Nel processo di selezionare un Rich Text editor o fatto molte ricerche. I Rich Text editor comuni sul mercato sono molto usati, per questo alla fine ho scelto Tinymce. Vedi la più dettagliata comparazione e introduzione al Rich text editor.',\n backToTopTips1: 'Quando la pagina viene spostata alla posizione specificata, il bottone \"Torna Su\" compare nell\\'angolo in basso a destra',\n backToTopTips2: 'Puoi personalizzare lo stile dei bottoni, mostra / nascondi, altezza di apparizione, altezza del ritorno a capo. Se hai bisogno di un prompt di testo, puoi utilizzare gli elementi element-ui el-tooltip esternamente',\n imageUploadTips: 'Da quando usavo la verione 1 di Vue che non è compatibile con mockjs, la ho modificata io stesst, e se la userai, è meglio utilizzare versioni ufficiali.',\n changeLanguageTips: 'Cambio lingua riuscito'\n },\n table: {\n dynamicTips1: 'Intestazione Fissa, ordinato dall\\'ordine delle intestazioni',\n dynamicTips2: 'Intestazione non fissa, ordinato dall\\'ordine dei click',\n dragTips1: 'Ordine di default',\n dragTips2: 'Ordine post trascinamento',\n title: 'Titolo',\n importance: 'Importanza',\n type: 'Tipo',\n remark: 'Osservazione',\n search: 'Ricerca',\n add: 'Aggiungi',\n export: 'Esporta',\n reviewer: 'Recensore',\n id: 'ID',\n date: 'Data',\n author: 'Autore',\n readings: 'Lettori',\n status: 'Status',\n actions: 'Azioni',\n edit: 'Modifica',\n publish: 'Pubblica',\n draft: 'Bozza',\n delete: 'Elimina',\n cancel: 'Annulla',\n confirm: 'Conferma'\n },\n example: {\n warning: 'Creare e modificare pagine non può essere tenuto in cache da keep-alive, perchè l\\'include di keep-alive attualmente non supporta la cache basata sugli indirizzi, per questo ora viene utilizzata la cache basandosi sul nome del componente. Se vuoi utilizzare uno schema di caching basato sul browser come localStorage. O non usare l\\'include di keep-alive per mettere le pagine in cache direttamente. Vedi dettagli'\n },\n errorLog: {\n tips: 'Per favore clicca l\\'icona dell\\'insetto nell\\'angolo in alto a sinistra',\n description: 'Ora il sistema di gestione è fondamentalmente il form della spa, aumenta l\\'esperienza utente, ma incrementa anche le possibilità di problemi nelle pagine, una piccola negligenza può portare al blocco della pagina. Fortunatamente Vue offre un modo di catturare le eccezioni, dove puoi manipolare gli errori o riportare un\\'eccezione.',\n documentation: 'Introduzione documentazione'\n },\n excel: {\n export: 'Esporta',\n selectedExport: 'Esporta Elementi Selezionati',\n placeholder: 'Per favore inserisci il nome del file(default: excel-list)'\n },\n zip: {\n export: 'Esporta',\n placeholder: 'Per favore inserisci il nome del file(default: file)'\n },\n pdf: {\n tips: 'Qui usiamo window.print() per implementare la funzionalità del download PDF.'\n },\n theme: {\n change: 'Cambia Tema',\n documentation: 'Documentazione Tema',\n tips: 'Consiglio: It is different from the theme-pick on the navbar is two different skinning methods, each with different application scenarios. Refer to the documentation for details.'\n },\n tagsView: {\n refresh: 'Ricarica',\n close: 'Chiudi',\n closeOthers: 'Chiudi Altri',\n closeAll: 'Chiudi Tutto'\n },\n settings: {\n title: 'Impostazione Stile Pagina',\n theme: 'Colore Tema',\n showTagsView: 'Apri Vista Tag',\n showSidebarLogo: 'Logo Barra Laterale',\n fixedHeader: 'Intestazione Fissa',\n sidebarTextTheme: 'Tema Testo Barra Laterale'\n },\n toasts: {\n switchLanguage: 'Cambio lingua effettuato'\n }\n}\n","import Vue from 'vue'\nimport VueI18n from 'vue-i18n'\n\nimport { getLanguage } from '@/utils/cookies'\n\n// element-ui built-in lang\nimport elementEnLocale from 'element-ui/lib/locale/lang/en'\nimport elementZhLocale from 'element-ui/lib/locale/lang/zh-CN'\nimport elementEsLocale from 'element-ui/lib/locale/lang/es'\nimport elementJaLocale from 'element-ui/lib/locale/lang/ja'\nimport elementKoLocale from 'element-ui/lib/locale/lang/ko'\n\n// User defined lang\nimport enLocale from './en'\nimport zhLocale from './zh'\nimport esLocale from './es'\nimport jaLocale from './ja'\nimport koLocale from './ko'\nimport itLocale from './it'\n\nVue.use(VueI18n)\n\nconst messages = {\n en: {\n ...enLocale,\n ...elementEnLocale\n },\n zh: {\n ...zhLocale,\n ...elementZhLocale\n },\n es: {\n ...esLocale,\n ...elementEsLocale\n },\n ja: {\n ...jaLocale,\n ...elementJaLocale\n },\n ko: {\n ...koLocale,\n ...elementKoLocale\n },\n it: {\n ...itLocale\n }\n}\n\nexport const getLocale = () => {\n const cookieLanguage = getLanguage()\n if (cookieLanguage) {\n document.documentElement.lang = cookieLanguage\n return cookieLanguage\n }\n\n const language = navigator.language.toLowerCase()\n const locales = Object.keys(messages)\n for (const locale of locales) {\n if (language.indexOf(locale) > -1) {\n document.documentElement.lang = locale\n return locale\n }\n }\n\n // Default language is english\n return 'en'\n}\n\nconst i18n = new VueI18n({\n locale: getLocale(),\n messages\n})\n\nexport default i18n\n","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=style&index=0&id=d4c70f86&lang=scss&scoped=true&\"","import {\n Action,\n getModule,\n Module,\n Mutation,\n VuexModule\n} from 'vuex-module-decorators'\nimport store from '@/store'\nimport elementVariables from '@/styles/element-variables.scss'\nimport defaultSettings from '@/settings'\n\nexport interface ISettingsState {\n theme: string\n fixedHeader: boolean\n showSettings: boolean\n showTagsView: boolean\n showSidebarLogo: boolean\n sidebarTextTheme: boolean\n}\n\n@Module({ dynamic: true, store, name: 'settings' })\nclass Settings extends VuexModule implements ISettingsState {\n public theme = elementVariables.theme\n public fixedHeader = defaultSettings.fixedHeader\n public showSettings = defaultSettings.showSettings\n public showTagsView = defaultSettings.showTagsView\n public showSidebarLogo = defaultSettings.showSidebarLogo\n public sidebarTextTheme = defaultSettings.sidebarTextTheme\n\n @Action\n public ChangeSetting(payload: { key: string, value: any }) {\n this.CHANGE_SETTING(payload)\n }\n\n @Mutation\n private CHANGE_SETTING(payload: { key: string, value: any }) {\n const { key, value } = payload\n if (Object.prototype.hasOwnProperty.call(this, key)) {\n (this as any)[key] = value\n }\n }\n}\n\nexport const SettingsModule = getModule(Settings)\n","import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators'\nimport { RouteConfig } from 'vue-router'\nimport { asyncRoutes, constantRoutes } from '@/router'\nimport store from '@/store'\nimport { checkPermission } from '@/utils/permission'\n\nconst hasRole = (roles: string[], route: RouteConfig) => {\n if (route.meta?.roles) {\n return roles.some(role => route.meta.roles.includes(role))\n } else {\n return false\n }\n}\nconst hasPermission = (route: RouteConfig) => {\n if (route.meta?.permissions) {\n return checkPermission(route.meta?.permissions)\n } else {\n return false\n }\n}\nconst defaultPublic = (route: RouteConfig) => {\n return !route.meta?.roles && !route.meta?.permissions\n}\n\nexport const filterAsyncRoutes = (routes: RouteConfig[], roles: string[]) => {\n const res: RouteConfig[] = []\n routes.forEach(route => {\n const r = { ...route }\n if ((hasRole(roles, r) || hasPermission(r)) || defaultPublic(r)) {\n if (r.children) {\n r.children = filterAsyncRoutes(r.children, roles)\n }\n res.push(r)\n }\n })\n return res\n}\n\nexport interface IPermissionState {\n routes: RouteConfig[]\n dynamicRoutes: RouteConfig[]\n}\n\n@Module({ dynamic: true, store, name: 'permission' })\nclass Permission extends VuexModule implements IPermissionState {\n public routes: RouteConfig[] = []\n public dynamicRoutes: RouteConfig[] = []\n\n @Mutation\n private SET_ROUTES(routes: RouteConfig[]) {\n this.routes = constantRoutes.concat(routes)\n this.dynamicRoutes = routes\n }\n\n @Action\n public GenerateRoutes(roles: string[]) {\n let accessedRoutes\n if (roles.includes('admin')) {\n accessedRoutes = asyncRoutes\n } else {\n accessedRoutes = filterAsyncRoutes(asyncRoutes, roles)\n }\n this.SET_ROUTES(accessedRoutes)\n }\n}\n\nexport const PermissionModule = getModule(Permission)\n","interface ISettings {\n title: string // Overrides the default title\n showSettings: boolean // Controls settings panel display\n showTagsView: boolean // Controls tagsview display\n showSidebarLogo: boolean // Controls siderbar logo display\n fixedHeader: boolean // If true, will fix the header component\n errorLog: string[] // The env to enable the errorlog component, default 'production' only\n sidebarTextTheme: boolean // If true, will change active text color for sidebar based on theme\n devServerPort: number // Port number for webpack-dev-server\n mockServerPort: number // Port number for mock server\n}\n\n// You can customize below settings :)\nconst settings: ISettings = {\n title: '管理后台',\n showSettings: true,\n showTagsView: true,\n fixedHeader: false,\n showSidebarLogo: false,\n errorLog: ['production'],\n sidebarTextTheme: true,\n devServerPort: 9527,\n mockServerPort: 9528\n}\n\nexport default settings\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","import request from '@/utils/request'\nimport { UserModule } from '@/store/modules/user'\nexport interface IAdmin {\n id: string\n username: string\n showname: string\n comment: string\n locked: boolean\n roles: string[]\n sex: string\n avatar: string\n password: string\n department: string\n level: number\n}\n\nexport const defaultAdmin: IAdmin = {\n id: '',\n username: '',\n showname: '',\n comment: '',\n locked: false,\n roles: [],\n level: 1,\n sex: '0',\n password: '',\n avatar: '',\n department: ''\n}\nexport const getAdminInfo = (data: any) =>\n request({\n url: '/api/admin/info',\n method: 'post',\n data\n })\n\nexport const login = (data: any) =>\n request({\n url: '/api/admin/login',\n method: 'post',\n data\n })\n\nexport const logout = () =>\n request({\n url: '/api/admin/logout',\n method: 'post'\n })\n\nexport const saveAdmin = (data: any) =>\n request({\n url: '/api/admin/save',\n method: 'post',\n data\n })\n\nexport const deleteAdmin = (uid: string) => {\n return request({\n url: `/api/admin/${uid}/delete`,\n method: 'post'\n })\n}\n\nexport const changeLocker = (uid: string, status: boolean) => {\n return request({\n url: `/api/admin/${uid}/locker`,\n method: 'post',\n data: { lock: status }\n })\n}\n\nexport const getUsers = (params: any) =>\n request({\n url: '/api/admins',\n method: 'get',\n params\n })\n\nexport const changePass = (params: any) =>\n request({\n url: '/api/admin/passwd',\n method: 'post',\n data: params\n })\n\nexport const changeInfo = (params: any) =>\n request({\n url: '/api/admin/update_info',\n method: 'post',\n data: params\n })\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","import {\n Action,\n getModule,\n Module,\n Mutation,\n VuexModule\n} from 'vuex-module-decorators'\nimport { getAdminInfo, login, logout } from '@/api/admins'\nimport { getToken, removeToken, setToken } from '@/utils/cookies'\nimport store from '@/store'\nimport router, { resetRouter } from '@/router'\nimport { PermissionModule } from '@/store/modules/permission'\nimport { TagsViewModule } from '@/store/modules/tags-view'\n\nexport interface IUserState {\n token: string\n name: string\n avatar: string\n introduction: string\n roles: string[]\n email: string\n permissions: string[][]\n department?: string\n deptname?: string\n level: number\n sex?: string\n}\n\n@Module({ dynamic: true, store, name: 'user' })\nclass User extends VuexModule implements IUserState {\n public token = getToken() || ''\n public name = ''\n public avatar = ''\n public introduction = ''\n public roles: string[] = []\n public permissions: string[][] = []\n public email = ''\n public department = ''\n public deptname = ''\n public level = 999\n public sex = '0'\n\n @Action\n public async Login(userInfo: { username: string, password: string }) {\n let { username, password } = userInfo\n username = username.trim()\n const { data } = await login({ username, password })\n setToken(data.token)\n this.SET_TOKEN(data.token)\n }\n\n @Action\n public ResetToken() {\n removeToken()\n this.SET_TOKEN('')\n this.SET_ROLES([])\n this.SET_PERMISSIONS([])\n }\n\n @Action\n public async GetUserInfo() {\n if (this.token === '') {\n throw Error('GetUserInfo: token is undefined!')\n }\n const { data } = await getAdminInfo({ /* Your params here */ })\n if (!data) {\n throw Error('Verification failed, please Login again.')\n }\n const { roles, showname, avatar, introduction, permissions, department, level, deptname, sex } = data\n // roles must be a non-empty array\n if (!roles || roles.length <= 0) {\n throw Error('GetUserInfo: roles must be a non-null array!')\n }\n this.SET_ROLES(roles)\n this.SET_NAME(showname)\n this.SET_AVATAR(avatar)\n this.SET_INTRODUCTION(introduction)\n this.SET_PERMISSIONS(permissions)\n this.SET_DEPARTMENT(department)\n this.SET_LEVEL(level)\n this.SET_DEPTNAME(deptname)\n this.SET_SEX(sex)\n }\n\n @Action\n public async UpdateInfo(data: any) {\n const { showname, sex, avatar } = data\n this.SET_NAME(showname)\n this.SET_SEX(sex)\n this.SET_AVATAR(avatar)\n }\n\n @Action\n public async ChangeRoles(role: string) {\n // Dynamically modify permissions\n const token = role + '-token'\n this.SET_TOKEN(token)\n setToken(token)\n await this.GetUserInfo()\n resetRouter()\n // Generate dynamic accessible routes based on roles\n PermissionModule.GenerateRoutes(this.roles)\n // Add generated routes\n router.addRoutes(PermissionModule.dynamicRoutes)\n // Reset visited views and cached views\n TagsViewModule.delAllViews()\n }\n\n @Action\n public async LogOut() {\n if (this.token === '') {\n throw Error('LogOut: token is undefined!')\n }\n await logout()\n removeToken()\n this.SET_TOKEN('')\n this.SET_ROLES([])\n this.SET_PERMISSIONS([])\n this.SET_DEPARTMENT('')\n }\n\n @Mutation\n private SET_TOKEN(token: string) {\n this.token = token\n }\n\n @Action\n public async updatePageToken(token: string) {\n this.SET_TOKEN(token)\n }\n\n @Mutation\n private SET_NAME(name: string) {\n this.name = name\n }\n\n @Mutation\n private SET_AVATAR(avatar: string) {\n this.avatar = avatar\n }\n\n @Mutation\n private SET_INTRODUCTION(introduction: string) {\n this.introduction = introduction\n }\n\n @Mutation\n private SET_ROLES(roles: string[]) {\n this.roles = roles\n }\n\n @Mutation\n private SET_DEPARTMENT(department: string) {\n this.department = department\n }\n\n @Mutation\n private SET_DEPTNAME(deptname: string) {\n this.deptname = deptname\n }\n\n @Mutation\n private SET_SEX(sex: string) {\n this.sex = sex\n }\n\n @Mutation\n private SET_LEVEL(level: number) {\n this.level = level\n }\n\n @Mutation\n private SET_PERMISSIONS(permissions: string[]) {\n const results: string[][] = []\n for (const permission of permissions) {\n if (permission === '*') {\n results.push(['*', '*'])\n } else {\n results.push(permission.split(':'))\n }\n }\n this.permissions = results\n }\n}\n\nexport const UserModule = getModule(User)\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators'\nimport { getSidebarStatus, getSize, setSidebarStatus, setLanguage, setSize, setMini, getMini } from '@/utils/cookies'\nimport { getLocale } from '@/lang'\nimport store from '@/store'\n\nexport enum DeviceType {\n Mobile,\n Desktop,\n}\n\nexport interface IAppState {\n device: DeviceType\n sidebar: {\n opened: boolean\n withoutAnimation: boolean\n }\n language: string\n size: string\n mini: number\n}\n\n@Module({ dynamic: true, store, name: 'app' })\nclass App extends VuexModule implements IAppState {\n public sidebar = {\n opened: getSidebarStatus() !== 'closed',\n withoutAnimation: false\n }\n\n public device = DeviceType.Desktop\n public language = getLocale()\n public size = getSize() || 'medium'\n public mini = getMini() ? Number(getMini()) : 0\n\n @Mutation\n private TOGGLE_SIDEBAR(withoutAnimation: boolean) {\n this.sidebar.opened = !this.sidebar.opened\n this.sidebar.withoutAnimation = withoutAnimation\n if (this.sidebar.opened) {\n setSidebarStatus('opened')\n } else {\n setSidebarStatus('closed')\n }\n }\n\n @Mutation\n private CLOSE_SIDEBAR(withoutAnimation: boolean) {\n this.sidebar.opened = false\n this.sidebar.withoutAnimation = withoutAnimation\n setSidebarStatus('closed')\n }\n\n @Mutation\n private TOGGLE_DEVICE(device: DeviceType) {\n this.device = device\n }\n\n @Mutation\n private SET_LANGUAGE(language: string) {\n this.language = language\n setLanguage(this.language)\n }\n\n @Mutation\n private SET_SIZE(size: string) {\n this.size = size\n setSize(this.size)\n }\n\n @Mutation\n private SET_MINI(mini: number) {\n this.mini = mini\n setMini(mini + '')\n }\n\n @Action\n public ToggleSideBar(withoutAnimation: boolean) {\n this.TOGGLE_SIDEBAR(withoutAnimation)\n }\n\n @Action\n public CloseSideBar(withoutAnimation: boolean) {\n this.CLOSE_SIDEBAR(withoutAnimation)\n }\n\n @Action\n public ToggleDevice(device: DeviceType) {\n this.TOGGLE_DEVICE(device)\n }\n\n @Action\n public SetLanguage(language: string) {\n this.SET_LANGUAGE(language)\n }\n\n @Action\n public SetSize(size: string) {\n this.SET_SIZE(size)\n }\n\n @Action\n public SetMini(mini: number) {\n this.SET_MINI(mini)\n if (mini) this.CloseSideBar(false)\n }\n}\n\nexport const AppModule = getModule(App)\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=1a173b7f&lang=scss&scoped=true&\"","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=715ce9d0&lang=scss&scoped=true&\"","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"app-wrapper\",class:_vm.classObj},[(_vm.classObj.mobile && _vm.sidebar.opened)?_c('div',{staticClass:\"drawer-bg\",on:{\"click\":_vm.handleClickOutside}}):_vm._e(),(_vm.showMenu)?_c('sidebar',{staticClass:\"sidebar-container\"}):_vm._e(),_c('div',{staticClass:\"main-container\",class:{hasTagsView: _vm.showTagsView}},[(_vm.showMenu)?_c('div',{class:{'fixed-header': _vm.fixedHeader}},[_c('navbar'),(_vm.showTagsView)?_c('tags-view'):_vm._e()],1):_vm._e(),_c('app-main'),(_vm.showSettings)?_c('right-panel',[_c('settings')],1):_vm._e()],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('section',{staticClass:\"app-main\"},[_c('transition',{attrs:{\"name\":\"fade-transform\",\"mode\":\"out-in\"}},[_c('keep-alive',{attrs:{\"include\":_vm.cachedViews}},[_c('router-view',{key:_vm.key})],1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { TagsViewModule } from '@/store/modules/tags-view'\n\n@Component({\n name: 'AppMain'\n})\nexport default class extends Vue {\n get cachedViews() {\n return TagsViewModule.cachedViews\n }\n\n get key() {\n return this.$route.path\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./AppMain.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./AppMain.vue?vue&type=template&id=d4c70f86&scoped=true&\"\nimport script from \"./AppMain.vue?vue&type=script&lang=ts&\"\nexport * from \"./AppMain.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./AppMain.vue?vue&type=style&index=0&id=d4c70f86&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d4c70f86\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"navbar\"},[_c('hamburger',{staticClass:\"hamburger-container\",attrs:{\"id\":\"hamburger-container\",\"is-active\":_vm.sidebar.opened},on:{\"toggle-click\":_vm.toggleSideBar}}),_c('breadcrumb',{staticClass:\"breadcrumb-container\",attrs:{\"id\":\"breadcrumb-container\"}}),_c('div',{staticClass:\"right-menu\"},[(_vm.device!=='mobile')?[_c('header-search',{staticClass:\"right-menu-item\"}),_c('error-log',{staticClass:\"errLog-container right-menu-item hover-effect\"}),_c('screenfull',{staticClass:\"right-menu-item hover-effect\"}),_c('el-tooltip',{attrs:{\"content\":_vm.$t('navbar.size'),\"effect\":\"dark\",\"placement\":\"bottom\"}},[_c('size-select',{staticClass:\"right-menu-item hover-effect\"})],1),_c('lang-select',{staticClass:\"right-menu-item hover-effect\"})]:_vm._e(),_c('el-dropdown',{staticClass:\"avatar-container right-menu-item hover-effect\",attrs:{\"trigger\":\"click\"}},[_c('div',{staticClass:\"avatar-wrapper\"},[_c('img',{staticClass:\"user-avatar\",attrs:{\"src\":_vm.avatar+'?imageView2/1/w/80/h/80'}}),_c('i',{staticClass:\"el-icon-caret-bottom\"})]),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},[_c('router-link',{attrs:{\"to\":\"/\"}},[_c('el-dropdown-item',[_vm._v(\" \"+_vm._s(_vm.$t('navbar.dashboard'))+\" \")])],1),_c('router-link',{attrs:{\"to\":\"/profile/\"}},[_c('el-dropdown-item',[_vm._v(\" \"+_vm._s(_vm.$t('navbar.profile'))+\" \")])],1),_c('router-link',{attrs:{\"to\":\"/password\"}},[_c('el-dropdown-item',[_vm._v(\" \"+_vm._s(_vm.$t('navbar.password'))+\" \")])],1),_c('el-dropdown-item',{attrs:{\"divided\":\"\"},nativeOn:{\"click\":function($event){return _vm.logout($event)}}},[_c('span',{staticStyle:{\"display\":\"block\"}},[_vm._v(\" \"+_vm._s(_vm.$t('navbar.logOut'))+\" \")])])],1)],1)],2)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-breadcrumb',{staticClass:\"app-breadcrumb\",attrs:{\"separator\":\"/\"}},[_c('transition-group',{attrs:{\"name\":\"breadcrumb\"}},_vm._l((_vm.breadcrumbs),function(item,index){return _c('el-breadcrumb-item',{key:item.path},[(item.redirect === 'noredirect' || index === _vm.breadcrumbs.length-1)?_c('span',{staticClass:\"no-redirect\"},[_vm._v(_vm._s(_vm.$t('route.' + item.meta.title)))]):_c('a',{on:{\"click\":function($event){$event.preventDefault();return _vm.handleLink(item)}}},[_vm._v(_vm._s(_vm.$t('route.' + item.meta.title)))])])}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { compile } from 'path-to-regexp'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { RouteRecord, Route } from 'vue-router'\n\n@Component({\n name: 'Breadcrumb'\n})\nexport default class extends Vue {\n private breadcrumbs: RouteRecord[] = []\n\n @Watch('$route')\n private onRouteChange(route: Route) {\n // if you go to the redirect page, do not update the breadcrumbs\n if (route.path.startsWith('/redirect/')) {\n return\n }\n this.getBreadcrumb()\n }\n\n created() {\n this.getBreadcrumb()\n }\n\n private getBreadcrumb() {\n let matched = this.$route.matched.filter((item) => item.meta && item.meta.title)\n const first = matched[0]\n if (!this.isDashboard(first)) {\n matched = [{ path: '/dashboard', meta: { title: 'dashboard' } } as RouteRecord].concat(matched)\n }\n this.breadcrumbs = matched.filter((item) => {\n return item.meta && item.meta.title && item.meta.breadcrumb !== false\n })\n }\n\n private isDashboard(route: RouteRecord) {\n const name = route && route.name\n if (!name) {\n return false\n }\n return name.trim().toLocaleLowerCase() === 'Dashboard'.toLocaleLowerCase()\n }\n\n private pathCompile(path: string) {\n // To solve this problem https://github.com/PanJiaChen/vue-element-admin/issues/561\n const { params } = this.$route\n const toPath = compile(path)\n return toPath(params)\n }\n\n private handleLink(item: any) {\n const { redirect, path } = item\n if (redirect) {\n this.$router.push(redirect).catch(err => {\n console.warn(err)\n })\n return\n }\n this.$router.push(this.pathCompile(path)).catch(err => {\n console.warn(err)\n })\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=48aca8f5&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=48aca8f5&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"48aca8f5\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.errorLogs.length>0)?_c('div',[_c('el-badge',{staticStyle:{\"line-height\":\"25px\",\"margin-top\":\"-5px\"},attrs:{\"is-dot\":true},nativeOn:{\"click\":function($event){_vm.dialogTableVisible=true}}},[_c('el-button',{staticStyle:{\"padding\":\"8px 10px\"},attrs:{\"size\":\"small\",\"type\":\"danger\"}},[_c('svg-icon',{attrs:{\"name\":\"bug\"}})],1)],1),_c('el-dialog',{attrs:{\"visible\":_vm.dialogTableVisible,\"width\":\"80%\",\"append-to-body\":\"\"},on:{\"update:visible\":function($event){_vm.dialogTableVisible=$event}}},[_c('div',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_c('span',{staticStyle:{\"padding-right\":\"10px\"}},[_vm._v(\"Error Log\")]),_c('el-button',{attrs:{\"size\":\"mini\",\"type\":\"primary\",\"icon\":\"el-icon-delete\"},on:{\"click\":_vm.clearAll}},[_vm._v(\" Clear All \")])],1),_c('el-table',{attrs:{\"data\":_vm.errorLogs,\"border\":\"\"}},[_c('el-table-column',{attrs:{\"label\":\"Message\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_c('div',[_c('span',{staticClass:\"message-title\"},[_vm._v(\"Msg:\")]),_c('el-tag',{attrs:{\"type\":\"danger\"}},[_vm._v(\" \"+_vm._s(row.err.message)+\" \")])],1),_c('br'),_c('div',[_c('span',{staticClass:\"message-title\",staticStyle:{\"padding-right\":\"10px\"}},[_vm._v(\"Info: \")]),_c('el-tag',{attrs:{\"type\":\"warning\"}},[_vm._v(\" \"+_vm._s(row.vm.$vnode.tag)+\" error in \"+_vm._s(row.info)+\" \")])],1),_c('br'),_c('div',[_c('span',{staticClass:\"message-title\",staticStyle:{\"padding-right\":\"16px\"}},[_vm._v(\"Url: \")]),_c('el-tag',{attrs:{\"type\":\"success\"}},[_vm._v(\" \"+_vm._s(row.url)+\" \")])],1)]}}],null,false,3134886942)}),_c('el-table-column',{attrs:{\"label\":\"Stack\"},scopedSlots:_vm._u([{key:\"default\",fn:function(ref){\nvar row = ref.row;\nreturn [_vm._v(\" \"+_vm._s(row.err.stack)+\" \")]}}],null,false,284746202)})],1)],1)],1):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators'\nimport store from '@/store'\n\ninterface IErrorLog {\n err: Error\n vm: any\n info: string\n url: string\n}\n\nexport interface IErrorLogState {\n logs: IErrorLog[]\n}\n\n@Module({ dynamic: true, store, name: 'errorLog' })\nclass ErrorLog extends VuexModule implements IErrorLogState {\n public logs: IErrorLog[] = []\n\n @Mutation\n private ADD_ERROR_LOG(log: IErrorLog) {\n this.logs.push(log)\n }\n\n @Mutation\n private CLEAR_ERROR_LOG() {\n this.logs.splice(0)\n }\n\n @Action\n public AddErrorLog(log: IErrorLog) {\n this.ADD_ERROR_LOG(log)\n }\n\n @Action\n public ClearErrorLog() {\n this.CLEAR_ERROR_LOG()\n }\n}\n\nexport const ErrorLogModule = getModule(ErrorLog)\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { ErrorLogModule } from '@/store/modules/error-log'\n\n@Component({\n name: 'ErrorLog'\n})\nexport default class extends Vue {\n private dialogTableVisible = false\n\n get errorLogs() {\n return ErrorLogModule.logs\n }\n\n private clearAll() {\n this.dialogTableVisible = false\n ErrorLogModule.ClearErrorLog()\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=72a28363&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=72a28363&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"72a28363\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:[{'is-active': _vm.isActive}],on:{\"click\":_vm.toggleClick}},[_c('svg-icon',{attrs:{\"name\":\"hamburger\",\"width\":\"20\",\"height\":\"20\"}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\n\n@Component({\n name: 'Hamburger'\n})\nexport default class extends Vue {\n @Prop({ default: false }) private isActive!: boolean\n\n private toggleClick() {\n this.$emit('toggle-click')\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=715ce9d0&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=715ce9d0&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"715ce9d0\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"header-search\",class:{'show': _vm.show},attrs:{\"id\":\"header-search\"}},[_c('svg-icon',{staticClass:\"search-icon\",attrs:{\"name\":\"search\"},on:{\"click\":function($event){$event.stopPropagation();return _vm.click($event)}}}),_c('el-select',{ref:\"headerSearchSelect\",staticClass:\"header-search-select\",attrs:{\"remote-method\":_vm.querySearch,\"filterable\":\"\",\"default-first-option\":\"\",\"remote\":\"\",\"placeholder\":\"Search\"},on:{\"change\":_vm.change},model:{value:(_vm.search),callback:function ($$v) {_vm.search=$$v},expression:\"search\"}},_vm._l((_vm.options),function(item){return _c('el-option',{key:item.path,attrs:{\"value\":item,\"label\":item.meta.title.join(' > ')}})}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport path from 'path'\nimport Fuse from 'fuse.js' // A lightweight fuzzy-search module\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { RouteConfig } from 'vue-router'\nimport { AppModule } from '@/store/modules/app'\nimport { PermissionModule } from '@/store/modules/permission'\nimport i18n from '@/lang' // Internationalization\n\n@Component({\n name: 'HeaderSearch'\n})\nexport default class extends Vue {\n private search = ''\n private show = false\n private options: RouteConfig[] = []\n private searchPool: RouteConfig[] = []\n private fuse?: Fuse\n\n get routes() {\n return PermissionModule.routes\n }\n\n get lang() {\n return AppModule.language\n }\n\n @Watch('lang')\n private onLangChange() {\n this.searchPool = this.generateRoutes(this.routes)\n }\n\n @Watch('routes')\n private onRoutesChange() {\n this.searchPool = this.generateRoutes(this.routes)\n }\n\n @Watch('searchPool')\n private onSearchPoolChange(value: RouteConfig[]) {\n this.initFuse(value)\n }\n\n @Watch('show')\n private onShowChange(value: boolean) {\n if (value) {\n document.body.addEventListener('click', this.close)\n } else {\n document.body.removeEventListener('click', this.close)\n }\n }\n\n mounted() {\n this.searchPool = this.generateRoutes(this.routes)\n }\n\n private click() {\n this.show = !this.show\n if (this.show) {\n this.$refs.headerSearchSelect && (this.$refs.headerSearchSelect as HTMLElement).focus()\n }\n }\n\n private close() {\n this.$refs.headerSearchSelect && (this.$refs.headerSearchSelect as HTMLElement).blur()\n this.options = []\n this.show = false\n }\n\n private change(route: RouteConfig) {\n this.$router.push(route.path).catch(err => {\n console.warn(err)\n })\n this.search = ''\n this.options = []\n this.$nextTick(() => {\n this.show = false\n })\n }\n\n private initFuse(list: RouteConfig[]) {\n this.fuse = new Fuse(list, {\n shouldSort: true,\n threshold: 0.4,\n location: 0,\n distance: 100,\n minMatchCharLength: 1,\n keys: [{\n name: 'title',\n weight: 0.7\n }, {\n name: 'path',\n weight: 0.3\n }]\n })\n }\n\n // Filter out the routes that can be displayed in the sidebar\n // And generate the internationalized title\n private generateRoutes(routes: RouteConfig[], basePath = '/', prefixTitle: string[] = []) {\n let res: RouteConfig[] = []\n\n for (const router of routes) {\n // skip hidden router\n if (router.meta && router.meta.hidden) {\n continue\n }\n\n const data: RouteConfig = {\n path: path.resolve(basePath, router.path),\n meta: {\n title: [...prefixTitle]\n }\n }\n\n if (router.meta && router.meta.title) {\n // generate internationalized title\n const i18ntitle = i18n.t(`route.${router.meta.title}`).toString()\n data.meta.title = [...data.meta.title, i18ntitle]\n if (router.redirect !== 'noRedirect') {\n // only push the routes with title\n // special case: need to exclude parent router without redirect\n res.push(data)\n }\n }\n\n // recursive child routes\n if (router.children) {\n const tempRoutes = this.generateRoutes(router.children, data.path, data.meta.title)\n if (tempRoutes.length >= 1) {\n res = [...res, ...tempRoutes]\n }\n }\n }\n return res\n }\n\n private querySearch(query: string) {\n if (query !== '') {\n if (this.fuse) {\n this.options = this.fuse.search(query).map((result) => result.item)\n }\n } else {\n this.options = []\n }\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=ed2ef868&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=ed2ef868&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"ed2ef868\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"screenfull\"}},[_c('svg-icon',{attrs:{\"name\":_vm.isFullscreen? 'exit-fullscreen': 'fullscreen'},on:{\"click\":_vm.click}})],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport screenfull from 'screenfull'\nimport { Component, Vue } from 'vue-property-decorator'\n\nconst sf = screenfull\n\n@Component({\n name: 'Screenfull'\n})\nexport default class extends Vue {\n private isFullscreen = false\n\n mounted() {\n if (sf.isEnabled) {\n sf.on('change', this.change)\n }\n }\n\n beforeDestory() {\n if (sf.isEnabled) {\n sf.off('change', this.change)\n }\n }\n\n private change() {\n if (sf.isEnabled) {\n this.isFullscreen = sf.isFullscreen\n }\n }\n\n private click() {\n if (!sf.isEnabled) {\n this.$message({\n message: 'you browser can not work',\n type: 'warning'\n })\n return false\n }\n sf.toggle()\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=2bed2e26&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/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 () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-dropdown',{attrs:{\"id\":\"size-select\",\"trigger\":\"click\"},on:{\"command\":_vm.handleSetSize}},[_c('div',[_c('svg-icon',{staticClass:\"size-icon\",attrs:{\"name\":\"size\"}})],1),_c('el-dropdown-menu',{attrs:{\"slot\":\"dropdown\"},slot:\"dropdown\"},_vm._l((_vm.sizeOptions),function(item){return _c('el-dropdown-item',{key:item.value,attrs:{\"disabled\":_vm.size===item.value,\"command\":item.value}},[_vm._v(\" \"+_vm._s(item.label)+\" \")])}),1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { AppModule } from '@/store/modules/app'\nimport { TagsViewModule } from '@/store/modules/tags-view'\n\n@Component({\n name: 'SizeSelect'\n})\nexport default class extends Vue {\n private sizeOptions = [\n { label: 'Default', value: 'default' },\n { label: 'Medium', value: 'medium' },\n { label: 'Small', value: 'small' },\n { label: 'Mini', value: 'mini' }\n ]\n\n get size() {\n return AppModule.size\n }\n\n private handleSetSize(size: string) {\n (this as any).$ELEMENT.size = size\n AppModule.SetSize(size)\n this.refreshView()\n this.$message({\n message: 'Switch Size Success',\n type: 'success'\n })\n }\n\n private refreshView() {\n // In order to make the cached page re-rendered\n TagsViewModule.delAllCachedViews()\n const { fullPath } = this.$route\n this.$nextTick(() => {\n this.$router.replace({\n path: '/redirect' + fullPath\n }).catch(err => {\n console.warn(err)\n })\n })\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=7035045c&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { AppModule } from '@/store/modules/app'\nimport { UserModule } from '@/store/modules/user'\nimport Breadcrumb from '@/components/Breadcrumb/index.vue'\nimport ErrorLog from '@/components/ErrorLog/index.vue'\nimport Hamburger from '@/components/Hamburger/index.vue'\nimport HeaderSearch from '@/components/HeaderSearch/index.vue'\nimport LangSelect from '@/components/LangSelect/index.vue'\nimport Screenfull from '@/components/Screenfull/index.vue'\nimport SizeSelect from '@/components/SizeSelect/index.vue'\n\n@Component({\n name: 'Navbar',\n components: {\n Breadcrumb,\n ErrorLog,\n Hamburger,\n HeaderSearch,\n LangSelect,\n Screenfull,\n SizeSelect\n }\n})\nexport default class extends Vue {\n get sidebar() {\n return AppModule.sidebar\n }\n\n get device() {\n return AppModule.device.toString()\n }\n\n get avatar() {\n return UserModule.avatar\n }\n\n private toggleSideBar() {\n AppModule.ToggleSideBar(false)\n }\n\n private async logout() {\n await UserModule.LogOut()\n this.$router.push(`/login?redirect=${this.$route.fullPath}`).catch(err => {\n console.warn(err)\n })\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=1a173b7f&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=1a173b7f&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"1a173b7f\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"drawer-container\"},[_c('div',[_c('h3',{staticClass:\"drawer-title\"},[_vm._v(\" \"+_vm._s(_vm.$t('settings.title'))+\" \")]),_c('div',{staticClass:\"drawer-item\"},[_c('span',[_vm._v(_vm._s(_vm.$t('settings.theme')))]),_c('theme-picker',{staticStyle:{\"float\":\"right\",\"height\":\"26px\",\"margin\":\"-3px 8px 0 0\"},on:{\"change\":_vm.themeChange}})],1),_c('div',{staticClass:\"drawer-item\"},[_c('span',[_vm._v(_vm._s(_vm.$t('settings.showTagsView')))]),_c('el-switch',{staticClass:\"drawer-switch\",model:{value:(_vm.showTagsView),callback:function ($$v) {_vm.showTagsView=$$v},expression:\"showTagsView\"}})],1),_c('div',{staticClass:\"drawer-item\"},[_c('span',[_vm._v(_vm._s(_vm.$t('settings.showSidebarLogo')))]),_c('el-switch',{staticClass:\"drawer-switch\",model:{value:(_vm.showSidebarLogo),callback:function ($$v) {_vm.showSidebarLogo=$$v},expression:\"showSidebarLogo\"}})],1),_c('div',{staticClass:\"drawer-item\"},[_c('span',[_vm._v(_vm._s(_vm.$t('settings.fixedHeader')))]),_c('el-switch',{staticClass:\"drawer-switch\",model:{value:(_vm.fixedHeader),callback:function ($$v) {_vm.fixedHeader=$$v},expression:\"fixedHeader\"}})],1),_c('div',{staticClass:\"drawer-item\"},[_c('span',[_vm._v(_vm._s(_vm.$t('settings.sidebarTextTheme')))]),_c('el-switch',{staticClass:\"drawer-switch\",model:{value:(_vm.sidebarTextTheme),callback:function ($$v) {_vm.sidebarTextTheme=$$v},expression:\"sidebarTextTheme\"}})],1)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-color-picker',{staticClass:\"theme-picker\",attrs:{\"predefine\":['#409EFF', '#1890ff', '#304156','#212121','#11a983', '#13c2c2', '#6959CD', '#f5222d'],\"popper-class\":\"theme-picker-dropdown\"},model:{value:(_vm.theme),callback:function ($$v) {_vm.theme=$$v},expression:\"theme\"}})}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { SettingsModule } from '@/store/modules/settings'\n\n// eslint-disable-next-line @typescript-eslint/no-var-requires\nconst version = require('element-ui/package.json').version // element-ui version from node_modules\nconst ORIGINAL_THEME = '#409EFF' // default color\n\n@Component({\n name: 'ThemePicker'\n})\nexport default class extends Vue {\n private chalk = '' // The content of theme-chalk css\n private theme = ''\n\n get defaultTheme() {\n return SettingsModule.theme\n }\n\n @Watch('defaultTheme', { immediate: true })\n private onDefaultThemeChange(value: string) {\n this.theme = value\n }\n\n @Watch('theme')\n private async onThemeChange(value: string) {\n if (!value) return\n const oldValue = this.chalk ? this.theme : ORIGINAL_THEME\n const themeCluster = this.getThemeCluster(value.replace('#', ''))\n const originalCluster = this.getThemeCluster(oldValue.replace('#', ''))\n const message = this.$message({\n message: ' Compiling the theme',\n customClass: 'theme-message',\n type: 'success',\n duration: 0,\n iconClass: 'el-icon-loading'\n })\n\n if (!this.chalk) {\n const url = `https://unpkg.com/element-ui@${version}/lib/theme-chalk/index.css`\n await this.getCSSString(url, 'chalk')\n }\n\n const getHandler = (variable: string, id: string) => {\n return () => {\n const originalCluster = this.getThemeCluster(ORIGINAL_THEME.replace('#', ''))\n const newStyle = this.updateStyle((this as any)[variable], originalCluster, themeCluster)\n\n let styleTag = document.getElementById(id)\n if (!styleTag) {\n styleTag = document.createElement('style')\n styleTag.setAttribute('id', id)\n document.head.appendChild(styleTag)\n }\n styleTag.innerText = newStyle\n }\n }\n const chalkHandler = getHandler('chalk', 'chalk-style')\n chalkHandler()\n\n let styles: HTMLElement[] = [].slice.call(document.querySelectorAll('style'))\n styles = styles\n .filter(style => {\n const text = style.innerText\n return new RegExp(oldValue, 'i').test(text) && !/Chalk Variables/.test(text)\n })\n styles.forEach(style => {\n const { innerText } = style\n if (typeof innerText !== 'string') return\n style.innerText = this.updateStyle(innerText, originalCluster, themeCluster)\n })\n\n this.$emit('change', value)\n message.close()\n }\n\n private updateStyle(style: string, oldCluster: string[], newCluster: string[]) {\n let newStyle = style\n oldCluster.forEach((color, index) => {\n newStyle = newStyle.replace(new RegExp(color, 'ig'), newCluster[index])\n })\n return newStyle\n }\n\n private getCSSString(url: string, variable: string) {\n return new Promise(resolve => {\n const xhr = new XMLHttpRequest()\n xhr.onreadystatechange = () => {\n if (xhr.readyState === 4 && xhr.status === 200) {\n (this as any)[variable] = xhr.responseText.replace(/@font-face{[^}]+}/, '')\n resolve()\n }\n }\n xhr.open('GET', url)\n xhr.send()\n })\n }\n\n private getThemeCluster(theme: string) {\n const tintColor = (color: string, tint: number) => {\n let red = parseInt(color.slice(0, 2), 16)\n let green = parseInt(color.slice(2, 4), 16)\n let blue = parseInt(color.slice(4, 6), 16)\n if (tint === 0) { // when primary color is in its rgb space\n return [red, green, blue].join(',')\n } else {\n red += Math.round(tint * (255 - red))\n green += Math.round(tint * (255 - green))\n blue += Math.round(tint * (255 - blue))\n return `#${red.toString(16)}${green.toString(16)}${blue.toString(16)}`\n }\n }\n\n const shadeColor = (color: string, shade: number) => {\n let red = parseInt(color.slice(0, 2), 16)\n let green = parseInt(color.slice(2, 4), 16)\n let blue = parseInt(color.slice(4, 6), 16)\n red = Math.round((1 - shade) * red)\n green = Math.round((1 - shade) * green)\n blue = Math.round((1 - shade) * blue)\n return `#${red.toString(16)}${green.toString(16)}${blue.toString(16)}`\n }\n\n const clusters = [theme]\n for (let i = 0; i <= 9; i++) {\n clusters.push(tintColor(theme, Number((i / 10).toFixed(2))))\n }\n clusters.push(shadeColor(theme, 0.1))\n return clusters\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=70f006ec&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { SettingsModule } from '@/store/modules/settings'\nimport ThemePicker from '@/components/ThemePicker/index.vue'\n\n@Component({\n name: 'Settings',\n components: {\n ThemePicker\n }\n})\nexport default class extends Vue {\n get fixedHeader() {\n return SettingsModule.fixedHeader\n }\n\n set fixedHeader(value) {\n SettingsModule.ChangeSetting({ key: 'fixedHeader', value })\n }\n\n get showTagsView() {\n return SettingsModule.showTagsView\n }\n\n set showTagsView(value) {\n SettingsModule.ChangeSetting({ key: 'showTagsView', value })\n }\n\n get showSidebarLogo() {\n return SettingsModule.showSidebarLogo\n }\n\n set showSidebarLogo(value) {\n SettingsModule.ChangeSetting({ key: 'showSidebarLogo', value })\n }\n\n get sidebarTextTheme() {\n return SettingsModule.sidebarTextTheme\n }\n\n set sidebarTextTheme(value) {\n SettingsModule.ChangeSetting({ key: 'sidebarTextTheme', value })\n }\n\n private themeChange(value: string) {\n SettingsModule.ChangeSetting({ key: 'theme', value })\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=f76a8f60&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=f76a8f60&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"f76a8f60\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{class:{'has-logo': _vm.showLogo}},[(_vm.showLogo)?_c('sidebar-logo',{attrs:{\"collapse\":_vm.isCollapse}}):_vm._e(),_c('el-scrollbar',{attrs:{\"wrap-class\":\"scrollbar-wrapper\"}},[_c('el-menu',{attrs:{\"default-active\":_vm.activeMenu,\"collapse\":_vm.isCollapse,\"background-color\":_vm.variables.menuBg,\"text-color\":_vm.variables.menuText,\"active-text-color\":_vm.menuActiveTextColor,\"unique-opened\":false,\"collapse-transition\":false,\"mode\":\"vertical\"}},_vm._l((_vm.routes),function(route){return _c('sidebar-item',{key:route.path,attrs:{\"item\":route,\"base-path\":route.path,\"is-collapse\":_vm.isCollapse}})}),1)],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (!_vm.item.meta || !_vm.item.meta.hidden)?_c('div',{class:[_vm.isCollapse ? 'simple-mode' : 'full-mode', {'first-level': _vm.isFirstLevel}]},[(!_vm.alwaysShowRootMenu && _vm.theOnlyOneChild && !_vm.theOnlyOneChild.children)?[(_vm.theOnlyOneChild.meta)?_c('sidebar-item-link',{attrs:{\"to\":_vm.resolvePath(_vm.theOnlyOneChild.path)}},[_c('el-menu-item',{class:{'submenu-title-noDropdown': _vm.isFirstLevel},attrs:{\"index\":_vm.resolvePath(_vm.theOnlyOneChild.path)}},[(_vm.theOnlyOneChild.meta.icon)?_c('svg-icon',{attrs:{\"name\":_vm.theOnlyOneChild.meta.icon}}):_vm._e(),(_vm.item.meta && _vm.item.meta.elicon)?_c('i',{class:_vm.item.meta.elicon}):_vm._e(),(_vm.theOnlyOneChild.meta.title)?_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.$t('route.' + _vm.theOnlyOneChild.meta.title)))]):_vm._e()],1)],1):_vm._e()]:_c('el-submenu',{attrs:{\"index\":_vm.resolvePath(_vm.item.path),\"popper-append-to-body\":\"\"}},[_c('template',{slot:\"title\"},[(_vm.item.meta && _vm.item.meta.icon)?_c('svg-icon',{attrs:{\"name\":_vm.item.meta.icon}}):_vm._e(),(_vm.item.meta && _vm.item.meta.elicon)?_c('i',{class:_vm.item.meta.elicon}):_vm._e(),(_vm.item.meta && _vm.item.meta.title)?_c('span',{attrs:{\"slot\":\"title\"},slot:\"title\"},[_vm._v(_vm._s(_vm.$t('route.' + _vm.item.meta.title)))]):_vm._e()],1),(_vm.item.children)?_vm._l((_vm.item.children),function(child){return _c('sidebar-item',{key:child.path,staticClass:\"nest-menu\",attrs:{\"item\":child,\"is-collapse\":_vm.isCollapse,\"is-first-level\":false,\"base-path\":_vm.resolvePath(child.path)}})}):_vm._e()],2)],2):_vm._e()}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","export const isValidUsername = (str: string) => ['admin', 'editor'].indexOf(str.trim()) >= 0\n\nexport const isExternal = (path: string) => /^(https?:|mailto:|tel:)/.test(path)\n\nexport const isArray = (arg: any) => {\n if (typeof Array.isArray === 'undefined') {\n return Object.prototype.toString.call(arg) === '[object Array]'\n }\n return Array.isArray(arg)\n}\n\nexport const isValidURL = (url: string) => {\n const reg = /^(https?|ftp):\\/\\/([a-zA-Z0-9.-]+(:[a-zA-Z0-9.&%$-]+)*@)*((25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9][0-9]?)(\\.(25[0-5]|2[0-4][0-9]|1[0-9]{2}|[1-9]?[0-9])){3}|([a-zA-Z0-9-]+\\.)*[a-zA-Z0-9-]+\\.(com|edu|gov|int|mil|net|org|biz|arpa|info|name|pro|aero|coop|museum|[a-zA-Z]{2}))(:[0-9]+)*(\\/($|[a-zA-Z0-9.,?'\\\\+&%$#=~_-]+))*$/\n return reg.test(url)\n}\n","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return (_vm.isExternal(_vm.to))?_c('a',{attrs:{\"href\":_vm.to,\"target\":\"_blank\",\"rel\":\"noopener\"}},[_vm._t(\"default\")],2):_c('router-link',{attrs:{\"to\":_vm.to}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport { isExternal } from '@/utils/validate'\n\n@Component({\n name: 'SidebarItemLink'\n})\nexport default class extends Vue {\n @Prop({ required: true }) private to!: string\n\n private isExternal = isExternal\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItemLink.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItemLink.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SidebarItemLink.vue?vue&type=template&id=0d65696a&\"\nimport script from \"./SidebarItemLink.vue?vue&type=script&lang=ts&\"\nexport * from \"./SidebarItemLink.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/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","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport path from 'path'\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport { RouteConfig } from 'vue-router'\nimport { isExternal } from '@/utils/validate'\nimport SidebarItemLink from './SidebarItemLink.vue'\n\n@Component({\n // Set 'name' here to prevent uglifyjs from causing recursive component not work\n // See https://medium.com/haiiro-io/element-component-name-with-vue-class-component-f3b435656561 for detail\n name: 'SidebarItem',\n components: {\n SidebarItemLink\n }\n})\nexport default class extends Vue {\n @Prop({ required: true }) private item!: RouteConfig\n @Prop({ default: false }) private isCollapse!: boolean\n @Prop({ default: true }) private isFirstLevel!: boolean\n @Prop({ default: '' }) private basePath!: string\n\n get alwaysShowRootMenu() {\n if (this.item.meta && this.item.meta.alwaysShow) {\n return true\n }\n return false\n }\n\n get showingChildNumber() {\n if (this.item.children) {\n const showingChildren = this.item.children.filter((item) => {\n if (item.meta && item.meta.hidden) {\n return false\n } else {\n return true\n }\n })\n return showingChildren.length\n }\n return 0\n }\n\n get theOnlyOneChild() {\n if (this.showingChildNumber > 1) {\n return null\n }\n if (this.item.children) {\n for (const child of this.item.children) {\n if (!child.meta || !child.meta.hidden) {\n return child\n }\n }\n }\n // If there is no children, return itself with path removed,\n // because this.basePath already conatins item's path information\n return { ...this.item, path: '' }\n }\n\n private resolvePath(routePath: string) {\n if (isExternal(routePath)) {\n return routePath\n }\n if (isExternal(this.basePath)) {\n return this.basePath\n }\n return path.resolve(this.basePath, routePath)\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SidebarItem.vue?vue&type=template&id=35bc604c&scoped=true&\"\nimport script from \"./SidebarItem.vue?vue&type=script&lang=ts&\"\nexport * from \"./SidebarItem.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SidebarItem.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./SidebarItem.vue?vue&type=style&index=1&id=35bc604c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"35bc604c\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"sidebar-logo-container\",class:{'collapse': _vm.collapse}},[_c('transition',{attrs:{\"name\":\"sidebarLogoFade\"}},[(_vm.collapse)?_c('router-link',{key:\"collapse\",staticClass:\"sidebar-logo-link\",attrs:{\"to\":\"/\"}},[_c('img',{staticClass:\"sidebar-logo\",attrs:{\"src\":\"favicon.ico\"}})]):_c('router-link',{key:\"expand\",staticClass:\"sidebar-logo-link\",attrs:{\"to\":\"/\"}},[_c('img',{staticClass:\"sidebar-logo\",attrs:{\"src\":\"favicon.ico\"}}),_c('h1',{staticClass:\"sidebar-title\"},[_vm._v(\" \"+_vm._s(_vm.title)+\" \")])])],1)],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue } from 'vue-property-decorator'\nimport settings from '@/settings'\n\n@Component({\n name: 'SidebarLogo'\n})\nexport default class extends Vue {\n @Prop({ required: true }) private collapse!: boolean\n\n private title = settings.title\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarLogo.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarLogo.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./SidebarLogo.vue?vue&type=template&id=7847d0d3&scoped=true&\"\nimport script from \"./SidebarLogo.vue?vue&type=script&lang=ts&\"\nexport * from \"./SidebarLogo.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./SidebarLogo.vue?vue&type=style&index=0&id=7847d0d3&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"7847d0d3\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { AppModule } from '@/store/modules/app'\nimport { PermissionModule } from '@/store/modules/permission'\nimport { SettingsModule } from '@/store/modules/settings'\nimport SidebarItem from './SidebarItem.vue'\nimport SidebarLogo from './SidebarLogo.vue'\nimport variables from '@/styles/_variables.scss'\n\n@Component({\n name: 'SideBar',\n components: {\n SidebarItem,\n SidebarLogo\n }\n})\nexport default class extends Vue {\n get sidebar() {\n return AppModule.sidebar\n }\n\n get routes() {\n return PermissionModule.routes\n }\n\n get showLogo() {\n return SettingsModule.showSidebarLogo\n }\n\n get menuActiveTextColor() {\n if (SettingsModule.sidebarTextTheme) {\n return SettingsModule.theme\n } else {\n return variables.menuActiveText\n }\n }\n\n get variables() {\n return variables\n }\n\n get activeMenu() {\n const route = this.$route\n const { meta, path } = route\n // if set path, the sidebar will highlight the path you set\n if (meta.activeMenu) {\n return meta.activeMenu\n }\n return path\n }\n\n get isCollapse() {\n return !this.sidebar.opened\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=061fdbbc&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=061fdbbc&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"061fdbbc\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{staticClass:\"tags-view-container\",attrs:{\"id\":\"tags-view-container\"}},[_c('scroll-pane',{ref:\"scrollPane\",staticClass:\"tags-view-wrapper\",on:{\"scroll\":_vm.handleScroll}},_vm._l((_vm.visitedViews),function(tag){return _c('router-link',{key:tag.path,ref:\"tag\",refInFor:true,staticClass:\"tags-view-item\",class:_vm.isActive(tag) ? 'active' : '',attrs:{\"to\":{path: tag.path, query: tag.query, fullPath: tag.fullPath},\"tag\":\"span\"},nativeOn:{\"mouseup\":function($event){if('button' in $event && $event.button !== 1){ return null; }!_vm.isAffix(tag)?_vm.closeSelectedTag(tag):''},\"contextmenu\":function($event){$event.preventDefault();return _vm.openMenu(tag, $event)}}},[_vm._v(\" \"+_vm._s(_vm.$t('route.' + tag.meta.title))+\" \"),(!_vm.isAffix(tag))?_c('span',{staticClass:\"el-icon-close\",on:{\"click\":function($event){$event.preventDefault();$event.stopPropagation();return _vm.closeSelectedTag(tag)}}}):_vm._e()])}),1),_c('ul',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.visible),expression:\"visible\"}],staticClass:\"contextmenu\",style:({left: _vm.left+'px', top: _vm.top+'px'})},[_c('li',{on:{\"click\":function($event){return _vm.refreshSelectedTag(_vm.selectedTag)}}},[_vm._v(\" \"+_vm._s(_vm.$t('tagsView.refresh'))+\" \")]),(!_vm.isAffix(_vm.selectedTag))?_c('li',{on:{\"click\":function($event){return _vm.closeSelectedTag(_vm.selectedTag)}}},[_vm._v(\" \"+_vm._s(_vm.$t('tagsView.close'))+\" \")]):_vm._e(),_c('li',{on:{\"click\":_vm.closeOthersTags}},[_vm._v(\" \"+_vm._s(_vm.$t('tagsView.closeOthers'))+\" \")]),_c('li',{on:{\"click\":function($event){return _vm.closeAllTags(_vm.selectedTag)}}},[_vm._v(\" \"+_vm._s(_vm.$t('tagsView.closeAll'))+\" \")])])],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('el-scrollbar',{ref:\"scrollContainer\",staticClass:\"scroll-container\",attrs:{\"vertical\":false},nativeOn:{\"wheel\":function($event){$event.preventDefault();return _vm.handleScroll($event)}}},[_vm._t(\"default\")],2)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\n\nconst tagSpacing = 4\n\n@Component({\n name: 'ScrollPane'\n})\nexport default class extends Vue {\n get scrollWrapper() {\n return (this.$refs.scrollContainer as Vue).$refs.wrap as HTMLElement\n }\n\n mounted() {\n this.scrollWrapper.addEventListener('scroll', this.emitScroll, true)\n }\n\n beforeDestroy() {\n this.scrollWrapper.removeEventListener('scroll', this.emitScroll)\n }\n\n private handleScroll(e: WheelEvent) {\n const eventDelta = (e as any).wheelDelta || -e.deltaY * 40\n const scrollWrapper = this.scrollWrapper\n scrollWrapper.scrollLeft = scrollWrapper.scrollLeft + eventDelta / 4\n }\n\n private emitScroll() {\n this.$emit('scroll')\n }\n\n public moveToTarget(currentTag: HTMLElement) {\n const container = (this.$refs.scrollContainer as Vue).$el as HTMLElement\n const containerWidth = container.offsetWidth\n const scrollWrapper = this.scrollWrapper\n const tagList = this.$parent.$refs.tag as any[]\n\n let firstTag = null\n let lastTag = null\n\n // find first tag and last tag\n if (tagList.length > 0) {\n firstTag = tagList[0]\n lastTag = tagList[tagList.length - 1]\n }\n\n if (firstTag === currentTag) {\n scrollWrapper.scrollLeft = 0\n } else if (lastTag === currentTag) {\n scrollWrapper.scrollLeft = scrollWrapper.scrollWidth - containerWidth\n } else {\n // find preTag and nextTag\n const currentIndex = tagList.findIndex(item => item === currentTag)\n const prevTag = tagList[currentIndex - 1]\n const nextTag = tagList[currentIndex + 1]\n // the tag's offsetLeft after of nextTag\n const afterNextTagOffsetLeft = nextTag.$el.offsetLeft + nextTag.$el.offsetWidth + tagSpacing\n // the tag's offsetLeft before of prevTag\n const beforePrevTagOffsetLeft = prevTag.$el.offsetLeft - tagSpacing\n\n if (afterNextTagOffsetLeft > scrollWrapper.scrollLeft + containerWidth) {\n scrollWrapper.scrollLeft = afterNextTagOffsetLeft - containerWidth\n } else if (beforePrevTagOffsetLeft < scrollWrapper.scrollLeft) {\n scrollWrapper.scrollLeft = beforePrevTagOffsetLeft\n }\n }\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./ScrollPane.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./ScrollPane.vue?vue&type=template&id=4712a34c&scoped=true&\"\nimport script from \"./ScrollPane.vue?vue&type=script&lang=ts&\"\nexport * from \"./ScrollPane.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./ScrollPane.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./ScrollPane.vue?vue&type=style&index=1&id=4712a34c&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"4712a34c\",\n null\n \n)\n\nexport default component.exports","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport path from 'path'\nimport { Component, Vue, Watch } from 'vue-property-decorator'\nimport { RouteConfig } from 'vue-router'\nimport { PermissionModule } from '@/store/modules/permission'\nimport { TagsViewModule, ITagView } from '@/store/modules/tags-view'\nimport ScrollPane from './ScrollPane.vue'\n\n@Component({\n name: 'TagsView',\n components: {\n ScrollPane\n }\n})\nexport default class extends Vue {\n private visible = false\n private top = 0\n private left = 0\n private selectedTag: ITagView = {}\n private affixTags: ITagView[] = []\n\n get visitedViews() {\n return TagsViewModule.visitedViews\n }\n\n get routes() {\n return PermissionModule.routes\n }\n\n @Watch('$route')\n private onRouteChange() {\n this.addTags()\n this.moveToCurrentTag()\n }\n\n @Watch('visible')\n private onVisibleChange(value: boolean) {\n if (value) {\n document.body.addEventListener('click', this.closeMenu)\n } else {\n document.body.removeEventListener('click', this.closeMenu)\n }\n }\n\n mounted() {\n this.initTags()\n this.addTags()\n }\n\n private isActive(route: ITagView) {\n return route.path === this.$route.path\n }\n\n private isAffix(tag: ITagView) {\n return tag.meta && tag.meta.affix\n }\n\n private filterAffixTags(routes: RouteConfig[], basePath = '/') {\n let tags: ITagView[] = []\n routes.forEach(route => {\n if (route.meta && route.meta.affix) {\n const tagPath = path.resolve(basePath, route.path)\n tags.push({\n fullPath: tagPath,\n path: tagPath,\n name: route.name,\n meta: { ...route.meta }\n })\n }\n if (route.children) {\n const childTags = this.filterAffixTags(route.children, route.path)\n if (childTags.length >= 1) {\n tags = [...tags, ...childTags]\n }\n }\n })\n return tags\n }\n\n private initTags() {\n this.affixTags = this.filterAffixTags(this.routes)\n for (const tag of this.affixTags) {\n // Must have tag name\n if (tag.name) {\n TagsViewModule.addVisitedView(tag)\n }\n }\n }\n\n private addTags() {\n const { name } = this.$route\n if (name) {\n TagsViewModule.addView(this.$route)\n }\n return false\n }\n\n private moveToCurrentTag() {\n const tags = this.$refs.tag as any[] // TODO: better typescript support for router-link\n this.$nextTick(() => {\n for (const tag of tags) {\n if ((tag.to as ITagView).path === this.$route.path) {\n (this.$refs.scrollPane as ScrollPane).moveToTarget(tag as any)\n // When query is different then update\n if ((tag.to as ITagView).fullPath !== this.$route.fullPath) {\n TagsViewModule.updateVisitedView(this.$route)\n }\n break\n }\n }\n })\n }\n\n private refreshSelectedTag(view: ITagView) {\n TagsViewModule.delCachedView(view)\n const { fullPath } = view\n this.$nextTick(() => {\n this.$router.replace({\n path: '/redirect' + fullPath\n }).catch(err => {\n console.warn(err)\n })\n })\n }\n\n private closeSelectedTag(view: ITagView) {\n TagsViewModule.delView(view)\n if (this.isActive(view)) {\n this.toLastView(TagsViewModule.visitedViews, view)\n }\n }\n\n private closeOthersTags() {\n if (this.selectedTag.fullPath !== this.$route.path && this.selectedTag.fullPath !== undefined) {\n this.$router.push(this.selectedTag.fullPath).catch(err => {\n console.warn(err)\n })\n }\n TagsViewModule.delOthersViews(this.selectedTag)\n this.moveToCurrentTag()\n }\n\n private closeAllTags(view: ITagView) {\n TagsViewModule.delAllViews()\n if (this.affixTags.some(tag => tag.path === this.$route.path)) {\n return\n }\n this.toLastView(TagsViewModule.visitedViews, view)\n }\n\n private toLastView(visitedViews: ITagView[], view: ITagView) {\n const latestView = visitedViews.slice(-1)[0]\n if (latestView !== undefined && latestView.fullPath !== undefined) {\n this.$router.push(latestView.fullPath).catch(err => {\n console.warn(err)\n })\n } else {\n // Default redirect to the home page if there is no tags-view, adjust it if you want\n if (view.name === 'Dashboard') {\n // to reload home page\n this.$router.replace({ path: '/redirect' + view.fullPath }).catch(err => {\n console.warn(err)\n })\n } else {\n this.$router.push('/').catch(err => {\n console.warn(err)\n })\n }\n }\n }\n\n private openMenu(tag: ITagView, e: MouseEvent) {\n const menuMinWidth = 105\n const offsetLeft = this.$el.getBoundingClientRect().left // container margin left\n const offsetWidth = (this.$el as HTMLElement).offsetWidth // container width\n const maxLeft = offsetWidth - menuMinWidth // left boundary\n const left = e.clientX - offsetLeft + 15 // 15: margin right\n if (left > maxLeft) {\n this.left = maxLeft\n } else {\n this.left = left\n }\n this.top = e.clientY\n this.visible = true\n this.selectedTag = tag\n }\n\n private closeMenu() {\n this.visible = false\n }\n\n private handleScroll() {\n this.closeMenu()\n }\n}\n","import mod from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../../node_modules/babel-loader/lib/index.js!../../../../node_modules/ts-loader/index.js??ref--13-3!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=31c3d88a&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=31c3d88a&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"31c3d88a\",\n null\n \n)\n\nexport default component.exports","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{ref:\"rightPanel\",staticClass:\"rightPanel-container\",class:{show: _vm.show}},[_c('div',{staticClass:\"rightPanel-background\"}),_c('div',{directives:[{name:\"show\",rawName:\"v-show\",value:(_vm.showMenu),expression:\"showMenu\"}],staticClass:\"rightPanel\"},[_c('div',{staticClass:\"handle-button\",style:({'top': _vm.buttonTop+'px','background-color': _vm.theme}),on:{\"click\":function($event){_vm.show=!_vm.show}}},[_c('i',{class:_vm.show?'el-icon-close':'el-icon-setting'})]),_c('div',{staticClass:\"rightPanel-items\"},[_vm._t(\"default\")],2)])])}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component, Prop, Vue, Watch } from 'vue-property-decorator'\nimport { addClass, removeClass } from '@/utils'\nimport { SettingsModule } from '@/store/modules/settings'\nimport { AppModule } from '@/store/modules/app'\n\n@Component({\n name: 'RightPanel'\n})\nexport default class extends Vue {\n @Prop({ default: false }) private clickNotClose!: boolean\n @Prop({ default: 250 }) private buttonTop!: number\n\n private show = false\n\n get showMenu() {\n return !AppModule.mini\n }\n\n get theme() {\n return SettingsModule.theme\n }\n\n @Watch('show')\n private onShowChange(value: boolean) {\n if (value && !this.clickNotClose) {\n this.addEventClick()\n }\n if (value) {\n addClass(document.body, 'showRightPanel')\n } else {\n removeClass(document.body, 'showRightPanel')\n }\n }\n\n mounted() {\n this.insertToBody()\n }\n\n beforeDestroy() {\n const elx = this.$refs.rightPanel as Element\n elx.remove()\n }\n\n private addEventClick() {\n window.addEventListener('click', this.closeSidebar)\n }\n\n private closeSidebar(ev: MouseEvent) {\n const parent = (ev.target as HTMLElement).closest('.rightPanel')\n if (!parent) {\n this.show = false\n window.removeEventListener('click', this.closeSidebar)\n }\n }\n\n private insertToBody() {\n const elx = this.$refs.rightPanel as Element\n const body = document.querySelector('body')\n if (body) {\n body.insertBefore(elx, body.firstChild)\n }\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=745a2b41&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&lang=scss&\"\nimport style1 from \"./index.vue?vue&type=style&index=1&id=745a2b41&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"745a2b41\",\n null\n \n)\n\nexport default component.exports","import { Component, Vue, Watch } from 'vue-property-decorator'\nimport { AppModule, DeviceType } from '@/store/modules/app'\n\nconst WIDTH = 992 // refer to Bootstrap's responsive design\n\n@Component({\n name: 'ResizeMixin'\n})\nexport default class extends Vue {\n get device() {\n return AppModule.device\n }\n\n get sidebar() {\n return AppModule.sidebar\n }\n\n @Watch('$route')\n private onRouteChange() {\n if (this.device === DeviceType.Mobile && this.sidebar.opened) {\n AppModule.CloseSideBar(false)\n }\n }\n\n beforeMount() {\n window.addEventListener('resize', this.resizeHandler)\n }\n\n mounted() {\n const isMobile = this.isMobile()\n if (isMobile) {\n AppModule.ToggleDevice(DeviceType.Mobile)\n AppModule.CloseSideBar(true)\n }\n }\n\n beforeDestroy() {\n window.removeEventListener('resize', this.resizeHandler)\n }\n\n private isMobile() {\n const rect = document.body.getBoundingClientRect()\n return rect.width - 1 < WIDTH\n }\n\n private resizeHandler() {\n if (!document.hidden) {\n const isMobile = this.isMobile()\n AppModule.ToggleDevice(isMobile ? DeviceType.Mobile : DeviceType.Desktop)\n if (isMobile) {\n AppModule.CloseSideBar(true)\n }\n }\n }\n}\n","\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\n\nimport { Component } from 'vue-property-decorator'\nimport { mixins } from 'vue-class-component'\nimport { AppModule, DeviceType } from '@/store/modules/app'\nimport { SettingsModule } from '@/store/modules/settings'\nimport { AppMain, Navbar, Settings, Sidebar, TagsView } from './components'\nimport RightPanel from '@/components/RightPanel/index.vue'\nimport ResizeMixin from './mixin/resize'\n\n@Component({\n name: 'Layout',\n components: {\n AppMain,\n Navbar,\n RightPanel,\n Settings,\n Sidebar,\n TagsView\n }\n})\nexport default class extends mixins(ResizeMixin) {\n get classObj() {\n return {\n hideSidebar: !this.sidebar.opened,\n openSidebar: this.sidebar.opened,\n withoutAnimation: this.sidebar.withoutAnimation,\n mobile: this.device === DeviceType.Mobile\n }\n }\n\n get showMenu() {\n return !AppModule.mini\n }\n\n get showSettings() {\n return SettingsModule.showSettings\n }\n\n get showTagsView() {\n return SettingsModule.showTagsView\n }\n\n get fixedHeader() {\n return SettingsModule.fixedHeader\n }\n\n private handleClickOutside() {\n AppModule.CloseSideBar(false)\n }\n}\n","import mod from \"-!../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../node_modules/babel-loader/lib/index.js!../../node_modules/ts-loader/index.js??ref--13-3!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./index.vue?vue&type=template&id=d2cc4d70&scoped=true&\"\nimport script from \"./index.vue?vue&type=script&lang=ts&\"\nexport * from \"./index.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./index.vue?vue&type=style&index=0&id=d2cc4d70&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"d2cc4d70\",\n null\n \n)\n\nexport default component.exports","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst systemRoutes: RouteConfig = {\n path: '/system',\n component: Layout,\n redirect: '/system/list',\n meta: {\n title: 'system',\n icon: 'component',\n permissions: ['shopman:*', 'permission:*', 'admin:*', 'role:*'],\n alwaysShow: true\n },\n children: [\n {\n path: 'permission',\n component: () => import('@/views/system/permission.vue'),\n name: 'Permission',\n meta: {\n title: 'permission',\n permissions: ['permission:read'],\n icon: 'permission'\n }\n },\n {\n path: 'role',\n component: () => import('@/views/system/role.vue'),\n name: 'RolePermission',\n meta: {\n title: 'rolePermission',\n permissions: ['role:read'],\n icon: 'role'\n }\n },\n {\n path: 'admin',\n component: () => import('@/views/system/admin.vue'),\n name: 'AdminPermission',\n meta: {\n title: 'adminuser',\n permissions: ['admin:read'],\n icon: 'admin'\n }\n },\n {\n path: 'list',\n component: () => import('@/views/shop/list.vue'),\n name: 'ShopList',\n meta: {\n title: 'shop_list',\n permissions: ['shopman:read'],\n icon: 'shop_list'\n }\n },\n {\n path: 'create',\n component: () => import('@/views/shop/edit.vue'),\n name: 'CreateShop',\n meta: {\n title: 'create_shop',\n icon: 'edit',\n hidden: true,\n permissions: ['shopman:edit']\n }\n },\n {\n path: 'edit/:id',\n component: () => import('@/views/shop/edit.vue'),\n name: 'ShopEditor',\n meta: {\n title: 'shop_edit',\n permissions: ['shopman:edit'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n },\n {\n path: 'i18n',\n component: () => import(/* webpackChunkName: \"i18n-demo\" */ '@/views/i18n-demo/index.vue'),\n name: 'I18n',\n meta: {\n title: 'i18n',\n icon: 'language',\n permissions: ['show:language']\n }\n },\n {\n path: 'theme',\n component: () => import(/* webpackChunkName: \"theme\" */ '@/views/theme/index.vue'),\n name: 'Theme',\n meta: {\n title: 'theme',\n icon: 'theme',\n permissions: ['show:theme']\n }\n }\n ]\n}\n\nexport default systemRoutes\n","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst marketingRoutes: RouteConfig = {\n path: '/marketing',\n component: Layout,\n meta: {\n title: 'marketing',\n icon: 'sell',\n alwaysShow: true,\n permissions: ['coupon:*']\n },\n children: [\n {\n path: 'coupon',\n component: () => import('@/views/marketing/coupon.vue'),\n name: 'CouponSetting',\n meta: {\n title: 'marketing_coupon',\n permissions: ['coupon:read'],\n icon: 'coupon'\n }\n },\n {\n path: 'edit_coupon',\n component: () => import('@/views/marketing/coupon_edit.vue'),\n name: 'CouponDetail',\n meta: {\n title: 'marketing_coupon_info',\n permissions: ['coupon:edit'],\n icon: 'coupon',\n hidden: true\n }\n },\n {\n path: 'edit_coupon/:id',\n component: () => import('@/views/marketing/coupon_edit.vue'),\n name: 'CouponDetail',\n meta: {\n title: 'marketing_coupon_info',\n permissions: ['coupon:edit'],\n icon: 'coupon',\n hidden: true\n }\n }\n // {\n // path: 'promo',\n // component: () => import('@/views/marketing/promo.vue'),\n // name: 'PromoSetting',\n // meta: {\n // title: 'marketing_promo',\n // permissions: ['promo:read'],\n // icon: 'promo'\n // }\n // },\n // {\n // path: 'points',\n // component: () => import('@/views/marketing/points.vue'),\n // name: 'PointsSetting',\n // meta: {\n // title: 'marketing_points',\n // permissions: ['points:read'],\n // icon: 'points'\n // }\n // }\n ]\n}\n\nexport default marketingRoutes\n","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst questionRoutes: RouteConfig = {\n path: '/question',\n component: Layout,\n meta: {\n title: 'question',\n icon: 'question_list',\n permissions: ['question:*', 'shop:tiku_setting'],\n alwaysShow: true\n },\n children: [\n {\n path: 'create',\n component: () => import('@/views/question/editor.vue'),\n name: 'CreateQuestion',\n meta: {\n title: 'createQuestion',\n permissions: ['question:edit'],\n icon: 'edit',\n hidden: true\n }\n },\n {\n path: 'edit/:id',\n component: () => import('@/views/question/editor.vue'),\n name: 'QuestionEditor',\n meta: {\n title: 'question_prepare',\n permissions: ['question:edit'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n },\n {\n path: 'list',\n component: () => import('@/views/question/list.vue'),\n name: 'QuestionList',\n meta: {\n title: 'question_list',\n permissions: ['question:read'],\n icon: 'list'\n }\n },\n {\n path: 'setting',\n component: () => import('@/views/question/setting.vue'),\n name: 'QuestionSetting',\n meta: {\n title: 'question_setting',\n permissions: ['shop:tiku_setting'],\n icon: 'excel'\n }\n },\n\n {\n path: 'shoppuzzles',\n component: () => import('@/views/question/shop_puzzles.vue'),\n name: 'ShopPuzzles',\n meta: {\n title: 'shop_puzzles',\n permissions: ['shoppuzzle:read'],\n icon: 'form'\n }\n },\n {\n path: 'newshoppuzzle/:shop',\n component: () => import('@/views/question/shop_puzzle_editor.vue'),\n name: 'CreatePuzzle',\n meta: {\n title: 'createQuestion',\n permissions: ['shoppuzzle:edit'],\n icon: 'edit',\n hidden: true\n }\n },\n {\n path: 'shoppuzzle/:shop/:id',\n component: () => import('@/views/question/shop_puzzle_editor.vue'),\n name: 'PuzzleEditor',\n meta: {\n title: 'question_prepare',\n permissions: ['shoppuzzle:edit'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n }\n ]\n}\n\nexport default questionRoutes\n","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst shopRoutes: RouteConfig = {\n path: '/shop',\n component: Layout,\n meta: {\n title: 'shop',\n icon: 'shop',\n alwaysShow: true,\n permissions: ['shopadmin:*', 'shop:game_setting', 'activity:*']\n },\n children: [\n {\n path: 'shopadmin',\n component: () => import('@/views/shop/shop_admin.vue'),\n name: 'ShopAdmin',\n meta: {\n title: 'shop_admin',\n permissions: ['shopadmin:read'],\n icon: 'admin'\n }\n },\n {\n path: 'shopmember',\n component: () => import('@/views/error-page/401.vue'),\n name: 'ShopMember',\n meta: {\n title: 'shop_member',\n permissions: ['shopadmin:read'],\n icon: 'peoples'\n }\n },\n {\n path: 'setting',\n component: () => import('@/views/game/game_setting.vue'),\n name: 'ShopSetting',\n meta: {\n title: 'game_setting',\n permissions: ['shop:game_setting'],\n icon: 'game'\n }\n },\n {\n path: 'activity_list',\n component: () => import('@/views/activity/list.vue'),\n name: 'ActivityList',\n meta: {\n title: 'activity_list',\n permissions: ['activity:read'],\n icon: 'list'\n }\n },\n {\n path: 'activity_new',\n component: () => import('@/views/activity/edit.vue'),\n name: 'CreateActivity',\n meta: {\n title: 'create_activity',\n icon: 'edit',\n permissions: ['activity:edit'],\n hidden: true\n }\n },\n {\n path: 'activity_edit/:id',\n component: () => import('@/views/activity/edit.vue'),\n name: 'ActivityEditor',\n meta: {\n title: 'edit_activity',\n permissions: ['activity:read'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n },\n {\n path: 'exam_list',\n component: () => import('@/views/exam/list.vue'),\n name: 'ExamList',\n meta: {\n title: 'exam_list',\n permissions: ['shopexam:read'],\n icon: 'tree'\n }\n },\n {\n path: 'exam_new',\n component: () => import('@/views/exam/edit.vue'),\n name: 'CreateExam',\n meta: {\n title: 'create_exam',\n icon: 'edit',\n permissions: ['shopexam:edit'],\n hidden: true\n }\n },\n {\n path: 'exam_edit/:id',\n component: () => import('@/views/exam/edit.vue'),\n name: 'ExamEditor',\n meta: {\n title: 'edit_exam',\n permissions: ['shopexam:read'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n },\n {\n path: 'theme_edit/:shop/:game/:version',\n component: () => import('@/views/game/game_theme.vue'),\n name: 'ThereEditor',\n meta: {\n title: 'edit_theme',\n permissions: ['shop:game_setting'],\n icon: 'theme2',\n hidden: true\n }\n },\n {\n path: 'lottery_setting',\n component: () => import('@/views/shop/shop_lottery.vue'),\n name: 'ShopLottery',\n meta: {\n title: 'shop_lottery',\n permissions: ['shop:edit'],\n icon: 'lottery'\n }\n },\n {\n path: 'share_setting',\n component: () => import('@/views/shop/shop_share.vue'),\n name: 'ShopShare',\n meta: {\n title: 'shop_share',\n permissions: ['shop:edit'],\n icon: 'share'\n }\n },\n {\n path: 'mail_list',\n component: () => import('@/views/mail/list.vue'),\n name: 'MailList',\n meta: {\n title: 'shop_mail',\n permissions: ['shopmail:read'],\n icon: 'mail'\n }\n },\n {\n path: 'mail_new',\n component: () => import('@/views/mail/edit.vue'),\n name: 'CreateMail',\n meta: {\n title: 'create_mail',\n icon: 'edit',\n permissions: ['shopmail:edit'],\n hidden: true\n }\n },\n {\n path: 'mail_edit/:id',\n component: () => import('@/views/mail/edit.vue'),\n name: 'MailEditor',\n meta: {\n title: 'edit_mail',\n permissions: ['shopmail:read'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n },\n {\n path: 'announce_list',\n component: () => import('@/views/announce/list.vue'),\n name: 'AnnounceList',\n meta: {\n title: 'shop_announce',\n permissions: ['shopannounce:read'],\n icon: 'announce'\n }\n },\n {\n path: 'announce_new',\n component: () => import('@/views/announce/edit.vue'),\n name: 'CreateAnnounce',\n meta: {\n title: 'create_announce',\n icon: 'edit',\n permissions: ['shopannounce:edit'],\n hidden: true\n }\n },\n {\n path: 'announce_edit/:id',\n component: () => import('@/views/announce/edit.vue'),\n name: 'AnnounceEditor',\n meta: {\n title: 'edit_announce',\n permissions: ['shopannounce:read'],\n elicon: 'el-icon-arrow-right',\n hidden: true\n }\n }\n ]\n}\n\nexport default shopRoutes\n","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst gameRoutes: RouteConfig = {\n path: '/game',\n component: Layout,\n meta: {\n title: 'game',\n icon: 'game',\n alwaysShow: true,\n permissions: ['sysgame:*']\n },\n children: [\n {\n path: 'games',\n component: () => import('@/views/game/game_list.vue'),\n name: 'GameList',\n meta: {\n title: 'game_list',\n permissions: ['sysgame:read'],\n icon: 'game'\n }\n },\n {\n path: 'edit_game',\n component: () => import('@/views/game/game_edit.vue'),\n name: 'GameDetail',\n meta: {\n title: 'game_edit',\n permissions: ['sysgame:edit'],\n icon: 'game',\n hidden: true\n }\n },\n {\n path: 'edit_game/:id',\n component: () => import('@/views/game/game_edit.vue'),\n name: 'edit_game',\n meta: {\n title: 'game_edit',\n permissions: ['sysgame:edit'],\n icon: 'game',\n hidden: true\n }\n }\n ]\n}\n\nexport default gameRoutes\n","import { RouteConfig } from 'vue-router'\nimport Layout from '@/layout/index.vue'\n\nconst staticsRoutes: RouteConfig = {\n path: '/statistics',\n component: Layout,\n meta: {\n title: 'shop_statistics',\n icon: 'statistics',\n alwaysShow: true,\n permissions: ['statistics:*']\n },\n children: [\n {\n path: 'gamestatistics',\n component: () => import('@/views/error-page/401.vue'),\n name: 'GameStatistics',\n meta: {\n title: 'game_statistics',\n permissions: ['statistics:read'],\n icon: 'game'\n }\n }\n ]\n}\nexport default staticsRoutes\n","import Vue from 'vue'\nimport VueRouter, { RouteConfig } from 'vue-router'\n\n/* Layout */\nimport Layout from '@/layout/index.vue'\n\n/* Router modules */\nimport systemRoutes from '@/router/modules/system'\nimport marketingRoutes from '@/router/modules/marketing'\nimport questionRoutes from '@/router/modules/question'\nimport shopRoutes from '@/router/modules/shop'\nimport gameRoutes from '@/router/modules/game'\nimport staticsRotuers from '@/router/modules/statics'\n\nVue.use(VueRouter)\n\n/*\n Note: sub-menu only appear when children.length>=1\n Detail see: https://panjiachen.github.io/vue-element-admin-site/guide/essentials/router-and-nav.html\n*/\n\n/*\n name:'router-name' the name field is required when using , it should also match its component's name property\n detail see : https://vuejs.org/v2/guide/components-dynamic-async.html#keep-alive-with-Dynamic-Components\n redirect: if set to 'noredirect', no redirect action will be trigger when clicking the breadcrumb\n meta: {\n roles: ['admin', 'editor'] will control the page roles (allow setting multiple roles)\n permissions: ['app:read'] will control the page permissions (allow setting multiple permissions)\n title: 'title' the name showed in subMenu and breadcrumb (recommend set)\n icon: 'svg-name' the icon showed in the sidebar\n hidden: true if true, this route will not show in the sidebar (default is false)\n alwaysShow: true if true, will always show the root menu (default is false)\n if false, hide the root menu when has less or equal than one children route\n breadcrumb: false if false, the item will be hidden in breadcrumb (default is true)\n noCache: true if true, the page will not be cached (default is false)\n affix: true if true, the tag will affix in the tags-view\n activeMenu: '/example/list' if set path, the sidebar will highlight the path you set\n }\n*/\n\n/**\n ConstantRoutes\n a base page that does not have permission requirements\n all roles can be accessed\n*/\nexport const constantRoutes: RouteConfig[] = [\n {\n path: '/redirect',\n component: Layout,\n meta: { hidden: true },\n children: [\n {\n path: '/redirect/:path(.*)',\n component: () => import(/* webpackChunkName: \"redirect\" */ '@/views/redirect/index.vue')\n }\n ]\n },\n {\n path: '/login',\n component: () => import(/* webpackChunkName: \"login\" */ '@/views/login/index.vue'),\n meta: { hidden: true }\n },\n {\n path: '/auth-redirect',\n component: () => import(/* webpackChunkName: \"auth-redirect\" */ '@/views/login/auth-redirect.vue'),\n meta: { hidden: true }\n },\n {\n path: '/404',\n component: () => import(/* webpackChunkName: \"404\" */ '@/views/error-page/404.vue'),\n meta: { hidden: true }\n },\n {\n path: '/401',\n component: () => import(/* webpackChunkName: \"401\" */ '@/views/error-page/401.vue'),\n meta: { hidden: true }\n },\n {\n path: '/',\n component: Layout,\n redirect: '/dashboard',\n children: [\n {\n path: 'dashboard',\n component: () => import(/* webpackChunkName: \"dashboard\" */ '@/views/dashboard/index.vue'),\n name: 'Dashboard',\n meta: {\n title: 'dashboard',\n icon: 'dashboard',\n affix: true\n }\n }\n ]\n },\n {\n path: '/profile',\n component: Layout,\n redirect: '/profile/index',\n meta: { hidden: true },\n children: [\n {\n path: 'index',\n component: () => import(/* webpackChunkName: \"profile\" */ '@/views/profile/info.vue'),\n name: 'Profile',\n meta: {\n title: 'profile',\n icon: 'user',\n noCache: true\n }\n },\n {\n path: 'password',\n component: () => import(/* webpackChunkName: \"profile\" */ '@/views/profile/password.vue'),\n name: 'Password',\n meta: {\n title: 'password',\n icon: 'user',\n noCache: true\n }\n }\n ]\n },\n {\n path: '/password',\n component: Layout,\n redirect: '/profile/password',\n meta: { hidden: true },\n children: [\n ]\n }\n]\n\n/**\n * asyncRoutes\n * the routes that need to be dynamically loaded based on user roles\n*/\nexport const asyncRoutes: RouteConfig[] = [\n systemRoutes,\n gameRoutes,\n shopRoutes,\n // articleRouters,\n marketingRoutes,\n questionRoutes,\n staticsRotuers,\n // {\n // path: '/error-log',\n // component: Layout,\n // redirect: 'noredirect',\n // children: [\n // {\n // path: 'log',\n // component: () => import(/* webpackChunkName: \"error-log\" */ '@/views/error-log/index.vue'),\n // name: 'ErrorLog',\n // meta: {\n // title: 'errorLog',\n // icon: 'bug'\n // }\n // }\n // ]\n // },\n {\n path: '*',\n redirect: '/404',\n meta: { hidden: true }\n }\n]\n\nconst createRouter = () => new VueRouter({\n // mode: 'history', // Disabled due to Github Pages doesn't support this, enable this if you need.\n scrollBehavior: (to, from, savedPosition) => {\n if (savedPosition) {\n return savedPosition\n } else {\n return { x: 0, y: 0 }\n }\n },\n base: process.env.BASE_URL,\n routes: constantRoutes\n})\n\nconst router = createRouter()\n\n// Detail see: https://github.com/vuejs/vue-router/issues/1234#issuecomment-357941465\nexport function resetRouter() {\n const newRouter = createRouter();\n (router as any).matcher = (newRouter as any).matcher // reset router\n}\n\nexport default router\n","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","import axios from 'axios'\nimport { Message, MessageBox } from 'element-ui'\nimport { UserModule } from '@/store/modules/user'\n\nconst service = axios.create({\n baseURL: process.env.VUE_APP_BASE_API,\n timeout: 5000\n})\n\n// Request interceptors\nservice.interceptors.request.use(\n (config) => {\n // Add X-Access-Token header to every request, you can add other custom headers here\n if (UserModule.token) {\n config.headers.authorization = 'Bearer ' + UserModule.token\n }\n config.headers['Content-Type'] = 'application/json'\n return config\n },\n (error) => {\n Promise.reject(error)\n }\n)\n\n// Response interceptors\nservice.interceptors.response.use(\n (response) => {\n // Some example codes here:\n // code == 0: success\n // code == 50001: invalid access token\n // code == 50002: already login in other place\n // code == 50003: access token expired\n // code == 50004: invalid user (user not exist)\n // code == 10: username or password is incorrect\n // You can change this part for your own usage.\n const res = response.data\n if (res.code) {\n Message({\n message: res.msg || 'Error',\n type: 'error',\n duration: 5 * 1000\n })\n if (res.code === 50008 || res.code === 50012 || res.code === 50014) {\n MessageBox.confirm(\n 'You have been logged out, try to login again.',\n 'Log out',\n {\n confirmButtonText: 'Relogin',\n cancelButtonText: 'Cancel',\n type: 'warning'\n }\n ).then(() => {\n UserModule.ResetToken()\n location.reload() // To prevent bugs from vue-router\n })\n }\n return Promise.reject(new Error(res.msg || 'Error'))\n } else {\n return response.data\n }\n },\n (error) => {\n Message({\n message: error.message,\n type: 'error',\n duration: 5 * 1000\n })\n return Promise.reject(error)\n }\n)\n\nexport default service\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&id=061fdbbc&lang=scss&scoped=true&\"","export * from \"-!../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=d2cc4d70&lang=scss&scoped=true&\"","import Vue from 'vue'\n\nconst local = {\n get: function(key: string) {\n const val = localStorage.getItem(key)\n if (val) {\n return JSON.parse(val)\n } else {\n return null\n }\n },\n set: function(key: string, val: any) {\n localStorage.setItem(key, JSON.stringify(val))\n }\n}\nexport default {\n install: function(vue: typeof Vue) {\n vue.prototype.$local = local\n }\n}\n/**\n * 最后编辑的店铺\n * @type {string}\n */\nexport const LAST_SHOP = 'last_edit_shop'\n","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&lang=scss&\"","// extracted by mini-css-extract-plugin\nmodule.exports = {\"menuBg\":\"#304156\",\"menuText\":\"#bfcbd9\",\"menuActiveText\":\"#409eff\"};","var render = function () {var _vm=this;var _h=_vm.$createElement;var _c=_vm._self._c||_h;return _c('div',{attrs:{\"id\":\"app\"}},[_c('router-view')],1)}\nvar staticRenderFns = []\n\nexport { render, staticRenderFns }","\n\n\n\n\n\n\nimport { Component, Vue } from 'vue-property-decorator'\nimport { getParameter } from '@/utils'\nimport { AppModule } from '@/store/modules/app'\nimport { UserModule } from '@/store/modules/user'\n\n@Component({\n name: 'App'\n})\nexport default class extends Vue {\n created() {\n console.log('main app created')\n const mini = +getParameter('mini')! || 0\n const token = getParameter('token')\n if (mini && token) {\n console.log(`link from partner, token: ${token}`)\n AppModule.SetMini(1)\n UserModule.updatePageToken(token)\n }\n }\n}\n","import mod from \"-!../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../node_modules/babel-loader/lib/index.js!../node_modules/ts-loader/index.js??ref--13-3!../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./App.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./App.vue?vue&type=template&id=0b5ecc7a&\"\nimport script from \"./App.vue?vue&type=script&lang=ts&\"\nexport * from \"./App.vue?vue&type=script&lang=ts&\"\n\n\n/* normalize component */\nimport normalizer from \"!../node_modules/@vue/cli-service/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","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n '404': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'admin': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'announce': {\n width: 125.156,\n height: 120,\n viewBox: '0 0 1068 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'back-top': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'bug': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'chart': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'clipboard': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'component': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'coupon': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'dashboard': {\n width: 128,\n height: 100,\n viewBox: '0 0 128 100',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'documentation': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'drag': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'edit': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'education': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'email': {\n width: 128,\n height: 96,\n viewBox: '0 0 128 96',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'example': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'excel': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'exit-fullscreen': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'eye-off': {\n width: 128,\n height: 64,\n viewBox: '0 0 128 64',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'eye-on': {\n width: 128,\n height: 128,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'form': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'fullscreen': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'game': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'guide-2': {\n width: 1000,\n height: 1000,\n viewBox: '0 0 1000 1000',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'guide': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'hamburger': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'icon': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'international': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'language': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'like': {\n width: 24,\n height: 24,\n viewBox: '0 0 24 24',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'link': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'list': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'lock': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'lottery': {\n width: 120,\n height: 120,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'mail': {\n width: 120,\n height: 120,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'message': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'money': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'nested': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'password': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'pdf': {\n width: 128,\n height: 128,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'people': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'peoples': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'permission': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'points': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'promo': {\n width: 82.625,\n height: 64,\n viewBox: '0 0 1322 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'qq': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'question_list': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'role': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'search': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'sell': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'share': {\n width: 120,\n height: 120,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'shop_list': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'shop': {\n width: 64,\n height: 64,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'shopping': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'size': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'skill': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'star': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'statistics': {\n width: 120,\n height: 120,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'tab': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'table': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'theme': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'theme2': {\n width: 120,\n height: 120,\n viewBox: '0 0 1024 1024',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'tree-table': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'tree': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'user': {\n width: 130,\n height: 130,\n viewBox: '0 0 130 130',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'wechat': {\n width: 128,\n height: 110,\n viewBox: '0 0 128 110',\n data: ''\n }\n})\n","/* eslint-disable */\n/* tslint:disable */\n// @ts-ignore\nimport icon from 'vue-svgicon'\nicon.register({\n 'zip': {\n width: 128,\n height: 128,\n viewBox: '0 0 128 128',\n data: ''\n }\n})\n","import router from './router'\nimport NProgress from 'nprogress'\nimport 'nprogress/nprogress.css'\nimport { Message } from 'element-ui'\nimport { Route } from 'vue-router'\nimport { UserModule } from '@/store/modules/user'\nimport { PermissionModule } from '@/store/modules/permission'\nimport i18n from '@/lang' // Internationalization\nimport settings from './settings'\n\nNProgress.configure({ showSpinner: false })\n\nconst whiteList = ['/login', '/auth-redirect']\n\nconst getPageTitle = (key: string) => {\n const hasKey = i18n.te(`route.${key}`)\n if (hasKey) {\n const pageName = i18n.t(`route.${key}`)\n return `${pageName} - ${settings.title}`\n }\n return `${settings.title}`\n}\n\nrouter.beforeEach(async(to: Route, _: Route, next: any) => {\n // Start progress bar\n NProgress.start()\n\n // Determine whether the user has logged in\n if (UserModule.token) {\n if (to.path === '/login') {\n // If is logged in, redirect to the home page\n next({ path: '/' })\n NProgress.done()\n } else {\n // Check whether the user has obtained his permission roles\n if (UserModule.roles.length === 0) {\n try {\n // Note: roles must be a object array! such as: ['admin'] or ['developer', 'editor']\n await UserModule.GetUserInfo()\n const roles = UserModule.roles\n // Generate accessible routes map based on role\n PermissionModule.GenerateRoutes(roles)\n // Dynamically add accessible routes\n router.addRoutes(PermissionModule.dynamicRoutes)\n // Hack: ensure addRoutes is complete\n // Set the replace: true, so the navigation will not leave a history record\n next({ ...to, replace: true })\n } catch (err) {\n // Remove token and redirect to login page\n UserModule.ResetToken()\n Message.error(err || 'Has Error')\n next(`/login?redirect=${to.path}`)\n NProgress.done()\n }\n } else {\n next()\n }\n }\n } else {\n // Has no token\n if (whiteList.indexOf(to.path) !== -1) {\n // In the free login whitelist, go directly\n next()\n } else {\n // Other pages that do not have permission to access are redirected to the login page.\n next(`/login?redirect=${to.path}`)\n NProgress.done()\n }\n }\n})\n\nrouter.afterEach((to: Route) => {\n // Finish progress bar\n // hack: https://github.com/PanJiaChen/vue-element-admin/pull/2939\n NProgress.done()\n\n // set page title\n document.title = getPageTitle(to.meta.title)\n})\n","// Inspired by https://github.com/Inndy/vue-clipboard2\nimport Clipboard from 'clipboard'\nimport { DirectiveOptions } from 'vue'\n\nif (!Clipboard) {\n throw new Error('you should npm install `clipboard` --save at first ')\n}\n\nlet successCallback: Function | null\nlet errorCallback: Function | null\nlet clipboardInstance: Clipboard | null\n\nexport const clipboard: DirectiveOptions = {\n bind(el, binding) {\n if (binding.arg === 'success') {\n successCallback = binding.value\n } else if (binding.arg === 'error') {\n errorCallback = binding.value\n } else {\n clipboardInstance = new Clipboard(el, {\n text() { return binding.value },\n action() { return binding.arg === 'cut' ? 'cut' : 'copy' }\n })\n clipboardInstance.on('success', e => {\n const callback = successCallback\n callback && callback(e)\n })\n clipboardInstance.on('error', e => {\n const callback = errorCallback\n callback && callback(e)\n })\n }\n },\n\n update(el, binding) {\n if (binding.arg === 'success') {\n successCallback = binding.value\n } else if (binding.arg === 'error') {\n errorCallback = binding.value\n } else {\n clipboardInstance = new Clipboard(el, {\n text() { return binding.value },\n action() { return binding.arg === 'cut' ? 'cut' : 'copy' }\n })\n }\n },\n\n unbind(_, binding) {\n if (binding.arg === 'success') {\n successCallback = null\n } else if (binding.arg === 'error') {\n errorCallback = null\n } else {\n if (clipboardInstance) {\n clipboardInstance.destroy()\n }\n clipboardInstance = null\n }\n }\n}\n","import { DirectiveOptions } from 'vue'\nimport { checkPermission } from '@/utils/permission'\n\nexport const permission: DirectiveOptions = {\n inserted(el, binding) {\n const { value } = binding\n if (!checkPermission(value)) {\n el.style.display = 'none'\n }\n }\n\n}\n","import { DirectiveOptions } from 'vue'\n\nexport const elDraggableDialog: DirectiveOptions = {\n bind(el, _, vnode) {\n const dragDom = el.querySelector('.el-dialog') as HTMLElement\n const dialogHeaderEl = el.querySelector('.el-dialog__header') as HTMLElement\n dragDom.style.cssText += ';top:0px;'\n dialogHeaderEl.style.cssText += ';cursor:move;'\n\n dialogHeaderEl.onmousedown = (e) => {\n const disX = e.clientX - dialogHeaderEl.offsetLeft\n const disY = e.clientY - dialogHeaderEl.offsetTop\n\n const dragDomWidth = dragDom.offsetWidth\n const dragDomHeight = dragDom.offsetHeight\n\n const screenWidth = document.body.clientWidth\n const screenHeight = document.body.clientHeight\n\n const minDragDomLeft = dragDom.offsetLeft\n const maxDragDomLeft = screenWidth - dragDom.offsetLeft - dragDomWidth\n\n const minDragDomTop = dragDom.offsetTop\n const maxDragDomTop = screenHeight - dragDom.offsetTop - dragDomHeight\n\n const styleLeftStr = getComputedStyle(dragDom).left\n const styleTopStr = getComputedStyle(dragDom).top\n if (!styleLeftStr || !styleTopStr) return\n let styleLeft: number\n let styleTop: number\n\n // Format may be \"##%\" or \"##px\"\n if (styleLeftStr.includes('%')) {\n styleLeft = +document.body.clientWidth * (+styleLeftStr.replace(/%/g, '') / 100)\n styleTop = +document.body.clientHeight * (+styleTopStr.replace(/%/g, '') / 100)\n } else {\n styleLeft = +styleLeftStr.replace(/px/g, '')\n styleTop = +styleTopStr.replace(/px/g, '')\n }\n\n document.onmousemove = (e) => {\n let left = e.clientX - disX\n let top = e.clientY - disY\n\n // Handle edge cases\n if (-(left) > minDragDomLeft) {\n left = -minDragDomLeft\n } else if (left > maxDragDomLeft) {\n left = maxDragDomLeft\n }\n if (-(top) > minDragDomTop) {\n top = -minDragDomTop\n } else if (top > maxDragDomTop) {\n top = maxDragDomTop\n }\n\n // Move current element\n dragDom.style.cssText += `;left:${left + styleLeft}px;top:${top + styleTop}px;`\n\n // Emit on-dialog-drag event\n // See https://stackoverflow.com/questions/49264426/vuejs-custom-directive-emit-event\n if (vnode.componentInstance) {\n vnode.componentInstance.$emit('on-dialog-drag')\n } else if (vnode.elm) {\n vnode.elm.dispatchEvent(new CustomEvent('on-dialog-drag'))\n }\n }\n\n document.onmouseup = () => {\n document.onmousemove = null\n document.onmouseup = null\n }\n }\n }\n}\n","import './waves.css'\nimport { DirectiveOptions } from 'vue'\n\nexport const waves: DirectiveOptions = {\n bind(el, binding) {\n el.addEventListener('click', e => {\n const customOpts = Object.assign({}, binding.value)\n const opts = Object.assign({\n ele: el, // 波纹作用元素\n type: 'hit', // hit 点击位置扩散 center中心点扩展\n color: 'rgba(0, 0, 0, 0.15)' // 波纹颜色\n }, customOpts)\n const target: HTMLElement = opts.ele\n if (target) {\n target.style.position = 'relative'\n target.style.overflow = 'hidden'\n const rect = target.getBoundingClientRect()\n let ripple = target.querySelector('.waves-ripple') as HTMLElement\n if (!ripple) {\n ripple = document.createElement('span')\n ripple.className = 'waves-ripple'\n ripple.style.height = ripple.style.width = Math.max(rect.width, rect.height) + 'px'\n target.appendChild(ripple)\n } else {\n ripple.className = 'waves-ripple'\n }\n switch (opts.type) {\n case 'center':\n ripple.style.top = rect.height / 2 - ripple.offsetHeight / 2 + 'px'\n ripple.style.left = rect.width / 2 - ripple.offsetWidth / 2 + 'px'\n break\n default:\n ripple.style.top =\n (e.pageY - rect.top - ripple.offsetHeight / 2 - document.documentElement.scrollTop ||\n document.body.scrollTop) + 'px'\n ripple.style.left =\n (e.pageX - rect.left - ripple.offsetWidth / 2 - document.documentElement.scrollLeft ||\n document.body.scrollLeft) + 'px'\n }\n ripple.style.backgroundColor = opts.color\n ripple.className = 'waves-ripple z-active'\n return false\n }\n }, false)\n }\n}\n","import { DirectiveOptions } from 'vue'\nimport { UserModule } from '@/store/modules/user'\n\nexport const role: DirectiveOptions = {\n inserted(el, binding) {\n const { value } = binding\n const roles = UserModule.roles\n if (value && value instanceof Array && value.length > 0) {\n const permissionRoles = value\n const hasRole = roles.some(role => {\n return permissionRoles.includes(role)\n })\n if (!hasRole) {\n el.style.display = 'none'\n }\n } else {\n throw new Error('need roles! Like v-role=\"[\\'admin\\',\\'editor\\']\"')\n }\n }\n}\n","// Set utils function parseTime to filter\nexport { parseTime } from '@/utils'\n\n// Filter for article status\nexport const articleStatusFilter = (status: string) => {\n const statusMap: { [key: string]: string } = {\n published: 'success',\n draft: 'info',\n deleted: 'danger'\n }\n return statusMap[status]\n}\n\n// Filter to uppercase the first character\nexport const uppercaseFirstChar = (str: string) => {\n return str.charAt(0).toUpperCase() + str.slice(1)\n}\n","import Vue, { DirectiveOptions } from 'vue'\n\nimport 'normalize.css'\nimport ElementUI from 'element-ui'\nimport SvgIcon from 'vue-svgicon'\n\nimport '@/styles/element-variables.scss'\nimport '@/styles/index.scss'\n\nimport App from '@/App.vue'\nimport store from '@/store'\nimport router from '@/router'\nimport i18n from '@/lang'\nimport '@/icons/components'\nimport '@/permission'\nimport { AppModule } from '@/store/modules/app'\nimport * as directives from '@/directives'\nimport * as filters from '@/filters'\nimport local from '@/utils/storage'\n\nimport '@/utils/Extend'\n\nVue.use(ElementUI, {\n size: AppModule.size,\n i18n: (key: string, value: string) => i18n.t(key, value)\n})\nVue.use(SvgIcon, {\n tagName: 'svg-icon',\n defaultWidth: '1em',\n defaultHeight: '1em'\n})\nVue.use(local)\n\nObject.keys(directives).forEach(key => {\n Vue.directive(key, (directives as { [key: string ]: DirectiveOptions })[key])\n})\n// Register global filter functions\nObject.keys(filters).forEach(key => {\n Vue.filter(key, (filters as { [key: string ]: Function })[key])\n})\n// Register global directives\nVue.config.productionTip = false\n\nnew Vue({\n router,\n store,\n i18n,\n render: (h) => h(App)\n}).$mount('#app')\n","// Parse the time to string\nexport const parseTime = (\n time?: object | string | number | null,\n cFormat?: string\n): string | null => {\n if (time === undefined || !time) {\n return null\n }\n const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'\n let date: Date\n if (typeof time === 'object') {\n date = time as Date\n } else {\n if (typeof time === 'string') {\n if (/^[0-9]+$/.test(time)) {\n // support \"1548221490638\"\n time = parseInt(time)\n } else {\n // support safari\n // https://stackoverflow.com/questions/4310953/invalid-date-in-safari\n // time = time.replace(new RegExp(/-/gm), '/')\n }\n }\n if (typeof time === 'number' && time.toString().length === 10) {\n time = time * 1000\n }\n date = new Date(time)\n }\n const formatObj: { [key: string]: number } = {\n y: date.getFullYear(),\n m: date.getMonth() + 1,\n d: date.getDate(),\n h: date.getHours(),\n i: date.getMinutes(),\n s: date.getSeconds(),\n a: date.getDay()\n }\n return format.replace(/{([ymdhisa])+}/g, (result, key) => {\n const value = formatObj[key]\n // Note: getDay() returns 0 on Sunday\n if (key === 'a') {\n return ['日', '一', '二', '三', '四', '五', '六'][value]\n }\n return value.toString().padStart(2, '0')\n })\n}\n/**\n * 将秒数格式化成 小时:分钟:秒\n * @param {number} sec\n * @param showSeconds 是否显示秒\n */\nexport const sec2TimeStr = (sec: number, showSeconds = true) => {\n showSeconds = typeof showSeconds !== 'undefined' ? showSeconds : true\n const t = sec % 60\n const i = (sec % 3600 - t) / 60\n const n = Math.floor(sec / 3600)\n if (showSeconds) {\n return (n > 9 ? '' + n : '0' + n) + ':' + (i > 9 ? i : '0' + i) + ':' + (t > 9 ? t : '0' + t)\n } else {\n return (n > 9 ? '' + n : '0' + n) + ':' + (i > 9 ? i : '0' + i)\n }\n}\n/**\n * 将 小时:分钟:秒 格式的字符串转换为秒数\n * @param {string} str\n */\nexport const timeStr2Sec = (str: string) => {\n const vals = str.split(':')\n const h = vals.length > 0 ? +vals[0] : 0\n const m = vals.length > 1 ? +vals[1] : 0\n const s = vals.length > 2 ? +vals[2] : 0\n return h * 3600 + m * 60 + s\n}\n\n// Format and filter json data using filterKeys array\nexport const formatJson = (filterKeys: any, jsonData: any) =>\n jsonData.map((data: any) => filterKeys.map((key: string) => {\n if (key === 'timestamp') {\n return parseTime(data[key])\n } else {\n return data[key]\n }\n }))\n\n// Check if an element has a class\nexport const hasClass = (ele: HTMLElement, className: string) => {\n return !!ele.className.match(new RegExp('(\\\\s|^)' + className + '(\\\\s|$)'))\n}\n\n// Add class to element\nexport const addClass = (ele: HTMLElement, className: string) => {\n if (!hasClass(ele, className)) ele.className += ' ' + className\n}\n\n// Remove class from element\nexport const removeClass = (ele: HTMLElement, className: string) => {\n if (hasClass(ele, className)) {\n const reg = new RegExp('(\\\\s|^)' + className + '(\\\\s|$)')\n ele.className = ele.className.replace(reg, ' ')\n }\n}\n\n// Toggle class for the selected element\nexport const toggleClass = (ele: HTMLElement, className: string) => {\n if (!ele || !className) {\n return\n }\n let classString = ele.className\n const nameIndex = classString.indexOf(className)\n if (nameIndex === -1) {\n classString += '' + className\n } else {\n classString =\n classString.substr(0, nameIndex) +\n classString.substr(nameIndex + className.length)\n }\n ele.className = classString\n}\n\nexport const delay = (sec: number) => {\n return new Promise((resolve, reject) => {\n setTimeout(function() {\n resolve && resolve('')\n }, sec * 1000)\n })\n}\n\nexport const getParameter = (t: string) => {\n const e = window.location.hash || ''\n const i = new RegExp(t + '=([^&?]*)', 'ig')\n return e.match(i) ? e.match(i)![0].substr(t.length + 1) : null\n}\n","export * from \"-!../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=0&id=ed2ef868&lang=scss&scoped=true&\"","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./SidebarItem.vue?vue&type=style&index=0&lang=scss&\"","import { VuexModule, Module, Mutation, Action, getModule } from 'vuex-module-decorators'\nimport { Route } from 'vue-router'\nimport store from '@/store'\n\nexport interface ITagView extends Partial {\n title?: string\n}\n\nexport interface ITagsViewState {\n visitedViews: ITagView[]\n cachedViews: (string | undefined)[]\n}\n\n@Module({ dynamic: true, store, name: 'tagsView' })\nclass TagsView extends VuexModule implements ITagsViewState {\n public visitedViews: ITagView[] = []\n public cachedViews: (string | undefined)[] = []\n\n @Mutation\n private ADD_VISITED_VIEW(view: ITagView) {\n if (this.visitedViews.some(v => v.path === view.path)) return\n this.visitedViews.push(\n Object.assign({}, view, {\n title: view.meta.title || 'no-name'\n })\n )\n }\n\n @Mutation\n private ADD_CACHED_VIEW(view: ITagView) {\n if (view.name === null) return\n if (this.cachedViews.includes(view.name)) return\n if (!view.meta.noCache) {\n this.cachedViews.push(view.name)\n }\n }\n\n @Mutation\n private DEL_VISITED_VIEW(view: ITagView) {\n for (const [i, v] of this.visitedViews.entries()) {\n if (v.path === view.path) {\n this.visitedViews.splice(i, 1)\n break\n }\n }\n }\n\n @Mutation\n private DEL_CACHED_VIEW(view: ITagView) {\n if (view.name === null) return\n const index = this.cachedViews.indexOf(view.name)\n index > -1 && this.cachedViews.splice(index, 1)\n }\n\n @Mutation\n private DEL_OTHERS_VISITED_VIEWS(view: ITagView) {\n this.visitedViews = this.visitedViews.filter(v => {\n return v.meta.affix || v.path === view.path\n })\n }\n\n @Mutation\n private DEL_OTHERS_CACHED_VIEWS(view: ITagView) {\n if (view.name === null) return\n const index = this.cachedViews.indexOf(view.name)\n if (index > -1) {\n this.cachedViews = this.cachedViews.slice(index, index + 1)\n } else {\n // if index = -1, there is no cached tags\n this.cachedViews = []\n }\n }\n\n @Mutation\n private DEL_ALL_VISITED_VIEWS() {\n // keep affix tags\n const affixTags = this.visitedViews.filter(tag => tag.meta.affix)\n this.visitedViews = affixTags\n }\n\n @Mutation\n private DEL_ALL_CACHED_VIEWS() {\n this.cachedViews = []\n }\n\n @Mutation\n private UPDATE_VISITED_VIEW(view: ITagView) {\n for (let v of this.visitedViews) {\n if (v.path === view.path) {\n v = Object.assign(v, view)\n break\n }\n }\n }\n\n @Action\n public addView(view: ITagView) {\n this.ADD_VISITED_VIEW(view)\n this.ADD_CACHED_VIEW(view)\n }\n\n @Action\n public addVisitedView(view: ITagView) {\n this.ADD_VISITED_VIEW(view)\n }\n\n @Action\n public delView(view: ITagView) {\n this.DEL_VISITED_VIEW(view)\n this.DEL_CACHED_VIEW(view)\n }\n\n @Action\n public delCachedView(view: ITagView) {\n this.DEL_CACHED_VIEW(view)\n }\n\n @Action\n public delOthersViews(view: ITagView) {\n this.DEL_OTHERS_VISITED_VIEWS(view)\n this.DEL_OTHERS_CACHED_VIEWS(view)\n }\n\n @Action\n public delAllViews() {\n this.DEL_ALL_VISITED_VIEWS()\n this.DEL_ALL_CACHED_VIEWS()\n }\n\n @Action\n public delAllCachedViews() {\n this.DEL_ALL_CACHED_VIEWS()\n }\n\n @Action\n public updateVisitedView(view: ITagView) {\n this.UPDATE_VISITED_VIEW(view)\n }\n}\n\nexport const TagsViewModule = getModule(TagsView)\n","export * from \"-!../../../../node_modules/@vue/cli-service/node_modules/mini-css-extract-plugin/dist/loader.js??ref--8-oneOf-1-0!../../../../node_modules/@vue/cli-service/node_modules/css-loader/dist/cjs.js??ref--8-oneOf-1-1!../../../../node_modules/@vue/cli-service/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/style-resources-loader/lib/index.js??ref--8-oneOf-1-4!../../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./index.vue?vue&type=style&index=1&id=31c3d88a&lang=scss&scoped=true&\""],"sourceRoot":""}
\ No newline at end of file
diff --git a/dist/js/chunk-d1a6e4dc.3a898f93.js b/dist/js/chunk-1160da0b.641a624f.js
similarity index 94%
rename from dist/js/chunk-d1a6e4dc.3a898f93.js
rename to dist/js/chunk-1160da0b.641a624f.js
index 2f1c1f5..34f44a1 100644
--- a/dist/js/chunk-d1a6e4dc.3a898f93.js
+++ b/dist/js/chunk-1160da0b.641a624f.js
@@ -1,4 +1,4 @@
-(window["webpackJsonp"]=window["webpackJsonp"]||[]).push([["chunk-d1a6e4dc"],{4735:function(A,e,t){"use strict";t("9ce0")},"5fe5":function(A,e,t){"use strict";t.r(e);var r=function(){var A=this,e=A.$createElement,t=A._self._c||e;return t("div",{staticClass:"app-container"},[t("el-form",{ref:"postForm",staticClass:"form-container",attrs:{model:A.postForm,rules:A.rules,"label-width":"121px"}},[1===A.userLevel?t("el-form-item",{attrs:{label:A.$t("main.shop"),prop:"shop"}},[t("el-select",{staticClass:"w100",attrs:{placeholder:"选择"+A.$t("main.shop"),name:"shop",required:""},model:{value:A.postForm.shop,callback:function(e){A.$set(A.postForm,"shop",e)},expression:"postForm.shop"}},A._l(A.allDepts,(function(A){return t("el-option",{key:A._id,attrs:{label:A.name,value:A._id}})})),1)],1):A._e(),t("el-form-item",{attrs:{label:"优惠券标题",prop:"name"}},[t("el-input",{attrs:{name:"name",required:""},model:{value:A.postForm.name,callback:function(e){A.$set(A.postForm,"name",e)},expression:"postForm.name"}})],1),t("el-form-item",{attrs:{label:"券描述",prop:"comment"}},[t("el-input",{attrs:{name:"comment",placeholder:"只在后台显示, 区分相似券"},model:{value:A.postForm.comment,callback:function(e){A.$set(A.postForm,"comment",e)},expression:"postForm.comment"}})],1),t("el-form-item",{attrs:{label:"已领取",prop:"count"}},[t("el-input",{attrs:{name:"count",placeholder:"",readonly:""},model:{value:A.postForm.count,callback:function(e){A.$set(A.postForm,"count",e)},expression:"postForm.count"}})],1),t("el-form-item",{attrs:{label:"有效天数",prop:"validDays"}},[t("el-input",{attrs:{type:"number",name:"validDays",placeholder:"领取后多少时间过期(单位: 天)"},model:{value:A.postForm.validDays,callback:function(e){A.$set(A.postForm,"validDays",e)},expression:"postForm.validDays"}})],1),t("el-form-item",{attrs:{prop:"content"}},[t("el-row",[t("el-col",{attrs:{span:12}},[A.tinymceActive?t("tinymce",{ref:"editor",attrs:{height:600,width:480},model:{value:A.postForm.content,callback:function(e){A.$set(A.postForm,"content",e)},expression:"postForm.content"}}):A._e()],1),t("el-col",{attrs:{span:12}},[t("el-breadcrumb",{attrs:{separator:"/"}},[t("el-breadcrumb-item",[A._v("预览, 图片尺寸: 480x640")])],1),t("canvas",{attrs:{id:"pre_canvas",width:"480",height:"640"}})],1)],1)],1),t("el-form-item",[t("el-button",{attrs:{type:"primary",loading:A.loading},on:{click:A.submitForm}},[A._v(" 保存 ")]),t("el-tooltip",{staticClass:"item",attrs:{effect:"dark",content:"如果预览没有刷新, 点击此按钮手动刷新",placement:"top"}},[t("el-button",{attrs:{type:"success",loading:A.loading},on:{click:A.generatorImage}},[A._v(" 更新预览 ")])],1),t("el-button",{on:{click:A.onCancel}},[A._v(" 取消 ")])],1)],1)],1)},n=[],B=t("53ca"),o=t("1da1"),s=t("d4ec"),i=t("bee2"),a=t("262e"),c=t("2caf"),Q=(t("96cf"),t("4795"),t("0d03"),t("99af"),t("ac1f"),t("841c"),t("5319"),t("4160"),t("159b"),t("b64b"),t("d3b7"),t("9ab4")),u=t("1b40"),l=t("ac1a"),w=t("e741"),U=t("b804"),g=t("6b45"),h=t("8256"),C=t("db85"),E=t("8960"),F=t("9dba"),d=t("4c9b"),f=t("c0e9"),H=t.n(f),p=t("9f79"),N=function(A){Object(a["a"])(t,A);var e=Object(c["a"])(t);function t(){var A;return Object(s["a"])(this,t),A=e.apply(this,arguments),A.validateRequire=function(e,t,r){""===t?("imageURL"===e.field?A.$message({message:"Upload cover image is required",type:"error"}):A.$message({message:e.field+" 是必填的",type:"error"}),r(new Error(e.field+" 是必填的"))):r()},A.postForm=Object.assign({},E["a"]),A.loading=!1,A.tinymceActive=!0,A.rules={shop:[{validator:A.validateRequire,trigger:["blur","change"]}],name:[{validator:A.validateRequire}]},A.allDepts=[],A.dataRange=[],A.initContent="",A}return Object(i["a"])(t,[{key:"lang",get:function(){return l["a"].language}},{key:"userLevel",get:function(){return F["a"].level}},{key:"created",value:function(){var A,e=this,t=null===(A=this.$route.params)||void 0===A?void 0:A.id;1===F["a"].level?(this.getRemoteDeptList(""),d["k"].$on(d["j"],(function(){e.getRemoteDeptList()}))):this.postForm.shop=F["a"].department,t&&this.fetchData(t),this.tempTagView=Object.assign({},this.$route)}},{key:"beforeDestory",value:function(){1===F["a"].level&&d["k"].$off(d["j"])}},{key:"onDataRangeChange",value:function(A){console.log("onDataRangeChange ".concat(A)),A&&(this.postForm.validBegin=A[0].getTime(),this.postForm.validEnd=A[1].getTime())}},{key:"onContentChange",value:function(A){var e=this;setTimeout((function(){e.generatorImage()}),1e3)}},{key:"fetchData",value:function(){var A=Object(o["a"])(regeneratorRuntime.mark((function A(e){var t,r,n;return regeneratorRuntime.wrap((function(A){while(1)switch(A.prev=A.next){case 0:return A.prev=0,A.next=3,Object(E["c"])(e,{});case 3:t=A.sent,r=t.data,console.log(r),this.postForm=r,this.initContent=this.postForm.content,this.postForm.validBegin&&this.postForm.validEnd&&(this.dataRange=[new Date(this.postForm.validBegin),new Date(this.postForm.validEnd)]),n="zh"===this.lang?"编辑优惠券":"Edit Coupon",this.setTagsViewTitle(n),this.setPageTitle(n),A.next=17;break;case 14:A.prev=14,A.t0=A["catch"](0),console.error(A.t0);case 17:case"end":return A.stop()}}),A,this,[[0,14]])})));function e(e){return A.apply(this,arguments)}return e}()},{key:"setTagsViewTitle",value:function(A){var e=this.tempTagView;e&&(e.title="".concat(A,"-").concat(this.postForm._id),w["a"].updateVisitedView(e))}},{key:"setPageTitle",value:function(A){document.title="".concat(A," - ").concat(this.postForm._id)}},{key:"submitForm",value:function(){var A=Object(o["a"])(regeneratorRuntime.mark((function A(){var e,t,r,n;return regeneratorRuntime.wrap((function(A){while(1)switch(A.prev=A.next){case 0:return A.prev=0,A.next=3,this.$refs.postForm.validate();case 3:if(this.loading=!0,this.postForm.content===this.initContent&&this.postForm.image||!this.postForm.content){A.next=9;break}return A.next=7,this.requestUpload();case 7:e=A.sent,e.errorCode?console.error("upload coupon image error!"):this.postForm.image=e.url_cdn;case 9:return-1===this.postForm.content.search(/meta name=.+?viewport/)&&(t='\n\n',this.postForm.content=this.postForm.content.replace("","".concat(t))),A.next=12,Object(E["e"])(this.postForm);case 12:r=A.sent,n=r.data,this.postForm=n,this.postForm.validBegin&&this.postForm.validEnd&&(this.dataRange=[new Date(this.postForm.validBegin),new Date(this.postForm.validEnd)]),this.loading=!1,this.$notify({title:"Success",message:"优惠券保存成功",type:"success",duration:2e3}),d["k"].$emit(d["c"],{}),A.next=26;break;case 21:return A.prev=21,A.t0=A["catch"](0),console.error("Submit Error!"),this.loading=!1,A.abrupt("return",!1);case 26:case"end":return A.stop()}}),A,this,[[0,21]])})));function e(){return A.apply(this,arguments)}return e}()},{key:"onCancel",value:function(){var A=Object(o["a"])(regeneratorRuntime.mark((function A(){return regeneratorRuntime.wrap((function(A){while(1)switch(A.prev=A.next){case 0:return A.prev=0,A.next=3,this.$confirm("确认不保存当前优惠券信息?","Warning",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"});case 3:this.$store.dispatch("delView",this.$route),this.$router.go(-1),A.next=9;break;case 7:A.prev=7,A.t0=A["catch"](0);case 9:case"end":return A.stop()}}),A,this,[[0,7]])})));function e(){return A.apply(this,arguments)}return e}()},{key:"getRemoteDeptList",value:function(){var A=Object(o["a"])(regeneratorRuntime.mark((function A(e){var t,r;return regeneratorRuntime.wrap((function(A){while(1)switch(A.prev=A.next){case 0:return A.next=2,Object(C["k"])({key:e});case 2:if(t=A.sent,r=t.data,r.records){A.next=6;break}return A.abrupt("return");case 6:this.allDepts=r.records;case 7:case"end":return A.stop()}}),A,this)})));function e(e){return A.apply(this,arguments)}return e}()},{key:"generatorImage",value:function(){var A;console.log("update pre image");var e=document.getElementsByClassName("tox-edit-area__iframe")[0],t=document.getElementById("pre_canvas"),r=t.getContext("2d");r.clearRect(0,0,t.width,t.height);var n=e.contentDocument||(null===(A=e.contentWindow)||void 0===A?void 0:A.document);H()(n.body,{canvas:t,useCORS:!0})}},{key:"requestUpload",value:function(){var A="https://opm.kingsome.cn/api/upload",e="png",t="image/png",r={sub_path:"game",type:"image"},n={},o="image-file",s=!1,i="POST",a=document.getElementById("pre_canvas"),c=a.toDataURL(t),Q=new FormData;return"object"===Object(B["a"])(r)&&r&&Object.keys(r).forEach((function(A){Q.append(A,r[A]+"")})),Q.append(o,Object(p["a"])(c,t),o+"."+e),new Promise((function(e,t){var r=new XMLHttpRequest;r.open(i,A,!0),r.withCredentials=s,r.onreadystatechange=function(){4===this.readyState&&(200===this.status||201===this.status||202===this.status?e(JSON.parse(this.responseText)):t&&t(this.status))},r.upload.addEventListener("progress",(function(A){A.lengthComputable&&console.log("upload progress: "+100*Math.round(A.loaded)/A.total)}),!1),"object"===Object(B["a"])(n)&&n&&Object.keys(n).forEach((function(A){r.setRequestHeader(A,n[A]+"")})),r.send(Q)}))}}]),t}(u["c"]);Object(Q["a"])([Object(u["d"])("dataRange")],N.prototype,"onDataRangeChange",null),Object(Q["a"])([Object(u["d"])("postForm.content")],N.prototype,"onContentChange",null),N=Object(Q["a"])([Object(u["a"])({name:"CouponEditor",components:{Sticky:U["a"],UploadImage:g["a"],Tinymce:h["a"]}})],N);var K=N,m=K,I=(t("4735"),t("0c7c")),T=Object(I["a"])(m,r,n,!1,null,"d0aabc72",null);e["default"]=T.exports},8960:function(A,e,t){"use strict";t.d(e,"a",(function(){return n})),t.d(e,"d",(function(){return B})),t.d(e,"c",(function(){return o})),t.d(e,"e",(function(){return s})),t.d(e,"b",(function(){return i}));var r=t("b32d"),n={shop:"",name:"",content:"",total:0,count:0,limitOne:0,validDays:0},B=function(A){return Object(r["a"])({url:"/api/coupons",method:"post",params:A})},o=function(A,e){return Object(r["a"])({url:"/api/coupon/".concat(A),method:"get",params:e})},s=function(A){return Object(r["a"])({url:"/api/coupon/save",method:"post",data:A})},i=function(A){return Object(r["a"])({url:"/api/coupon/".concat(A,"/delete"),method:"post"})}},"9ce0":function(A,e,t){},"9f79":function(A,e,t){"use strict";t.d(e,"a",(function(){return r}));t("ac1f"),t("1276"),t("ace4"),t("d3b7"),t("5cc6"),t("9a8c"),t("a975"),t("735e"),t("c1ac"),t("d139"),t("3a7b"),t("d5d6"),t("82f8"),t("e91f"),t("60bd"),t("5f96"),t("3280"),t("3fcc"),t("ca91"),t("25a1"),t("cd26"),t("3c5d"),t("2954"),t("649e"),t("219c"),t("170b"),t("b39a"),t("72f7");function r(A,e){A=A.split(",")[1],A=window.atob(A);for(var t=new Uint8Array(A.length),r=0;r\n',this.postForm.content=this.postForm.content.replace("","".concat(t))),A.next=12,Object(E["e"])(this.postForm);case 12:r=A.sent,n=r.data,this.postForm=n,this.postForm.validBegin&&this.postForm.validEnd&&(this.dataRange=[new Date(this.postForm.validBegin),new Date(this.postForm.validEnd)]),this.loading=!1,this.$notify({title:"Success",message:"优惠券保存成功",type:"success",duration:2e3}),d["k"].$emit(d["c"],{}),A.next=26;break;case 21:return A.prev=21,A.t0=A["catch"](0),console.error("Submit Error!"),this.loading=!1,A.abrupt("return",!1);case 26:case"end":return A.stop()}}),A,this,[[0,21]])})));function e(){return A.apply(this,arguments)}return e}()},{key:"onCancel",value:function(){var A=Object(o["a"])(regeneratorRuntime.mark((function A(){return regeneratorRuntime.wrap((function(A){while(1)switch(A.prev=A.next){case 0:return A.prev=0,A.next=3,this.$confirm("确认不保存当前优惠券信息?","Warning",{confirmButtonText:"确定",cancelButtonText:"取消",type:"warning"});case 3:this.$store.dispatch("delView",this.$route),this.$router.go(-1),A.next=9;break;case 7:A.prev=7,A.t0=A["catch"](0);case 9:case"end":return A.stop()}}),A,this,[[0,7]])})));function e(){return A.apply(this,arguments)}return e}()},{key:"getRemoteDeptList",value:function(){var A=Object(o["a"])(regeneratorRuntime.mark((function A(e){var t,r;return regeneratorRuntime.wrap((function(A){while(1)switch(A.prev=A.next){case 0:return A.next=2,Object(C["k"])({key:e});case 2:if(t=A.sent,r=t.data,r.records){A.next=6;break}return A.abrupt("return");case 6:this.allDepts=r.records;case 7:case"end":return A.stop()}}),A,this)})));function e(e){return A.apply(this,arguments)}return e}()},{key:"generatorImage",value:function(){var A;console.log("update pre image");var e=document.getElementsByClassName("tox-edit-area__iframe")[0],t=document.getElementById("pre_canvas"),r=t.getContext("2d");r.clearRect(0,0,t.width,t.height);var n=e.contentDocument||(null===(A=e.contentWindow)||void 0===A?void 0:A.document);n.body.style.margin="0px",H()(n.body,{canvas:t,useCORS:!0,x:0,y:0})}},{key:"requestUpload",value:function(){var A="https://opm.kingsome.cn/api/upload",e="png",t="image/png",r={sub_path:"game",type:"image"},n={},o="image-file",s=!1,i="POST",a=document.getElementById("pre_canvas"),c=a.toDataURL(t),Q=new FormData;return"object"===Object(B["a"])(r)&&r&&Object.keys(r).forEach((function(A){Q.append(A,r[A]+"")})),Q.append(o,Object(p["a"])(c,t),o+"."+e),new Promise((function(e,t){var r=new XMLHttpRequest;r.open(i,A,!0),r.withCredentials=s,r.onreadystatechange=function(){4===this.readyState&&(200===this.status||201===this.status||202===this.status?e(JSON.parse(this.responseText)):t&&t(this.status))},r.upload.addEventListener("progress",(function(A){A.lengthComputable&&console.log("upload progress: "+100*Math.round(A.loaded)/A.total)}),!1),"object"===Object(B["a"])(n)&&n&&Object.keys(n).forEach((function(A){r.setRequestHeader(A,n[A]+"")})),r.send(Q)}))}}]),t}(u["c"]);Object(Q["a"])([Object(u["d"])("dataRange")],N.prototype,"onDataRangeChange",null),Object(Q["a"])([Object(u["d"])("postForm.content")],N.prototype,"onContentChange",null),N=Object(Q["a"])([Object(u["a"])({name:"CouponEditor",components:{Sticky:U["a"],UploadImage:g["a"],Tinymce:h["a"]}})],N);var K=N,m=K,I=(t("5e01"),t("0c7c")),T=Object(I["a"])(m,r,n,!1,null,"09384920",null);e["default"]=T.exports},"6d93":function(A,e,t){},8960:function(A,e,t){"use strict";t.d(e,"a",(function(){return n})),t.d(e,"d",(function(){return B})),t.d(e,"c",(function(){return o})),t.d(e,"e",(function(){return s})),t.d(e,"b",(function(){return i}));var r=t("b32d"),n={shop:"",name:"",content:"",total:0,count:0,limitOne:0,validDays:0},B=function(A){return Object(r["a"])({url:"/api/coupons",method:"post",params:A})},o=function(A,e){return Object(r["a"])({url:"/api/coupon/".concat(A),method:"get",params:e})},s=function(A){return Object(r["a"])({url:"/api/coupon/save",method:"post",data:A})},i=function(A){return Object(r["a"])({url:"/api/coupon/".concat(A,"/delete"),method:"post"})}},"9f79":function(A,e,t){"use strict";t.d(e,"a",(function(){return r}));t("ac1f"),t("1276"),t("ace4"),t("d3b7"),t("5cc6"),t("9a8c"),t("a975"),t("735e"),t("c1ac"),t("d139"),t("3a7b"),t("d5d6"),t("82f8"),t("e91f"),t("60bd"),t("5f96"),t("3280"),t("3fcc"),t("ca91"),t("25a1"),t("cd26"),t("3c5d"),t("2954"),t("649e"),t("219c"),t("170b"),t("b39a"),t("72f7");function r(A,e){A=A.split(",")[1],A=window.atob(A);for(var t=new Uint8Array(A.length),r=0;r
* Copyright (c) 2021 Niklas von Hertzen
@@ -19,4 +19,4 @@
See the Apache Version 2.0 License for specific language governing permissions
and limitations under the License.
***************************************************************************** */var A=function(e,t){return A=Object.setPrototypeOf||{__proto__:[]}instanceof Array&&function(A,e){A.__proto__=e}||function(A,e){for(var t in e)e.hasOwnProperty(t)&&(A[t]=e[t])},A(e,t)};function e(e,t){function r(){this.constructor=e}A(e,t),e.prototype=null===t?Object.create(t):(r.prototype=t.prototype,new r)}var t=function(){return t=Object.assign||function(A){for(var e,t=1,r=arguments.length;t0&&n[n.length-1])&&(6===B[0]||2===B[0])){o=0;continue}if(3===B[0]&&(!n||B[1]>n[0]&&B[1]=55296&&n<=56319&&t>10),o%1024+56320)),(n+1===t||r.length>16384)&&(B+=String.fromCharCode.apply(String,r),r.length=0)}return B},c="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/",Q="undefined"===typeof Uint8Array?[]:new Uint8Array(256),u=0;u>4,c[i++]=(15&r)<<4|n>>2,c[i++]=(3&n)<<6|63&B;return a},U=function(A){for(var e=A.length,t=[],r=0;r>h,f=1<>h,N=d+p,K=N,m=32,I=K+m,T=65536>>C,R=1<=0){if(A<55296||A>56319&&A<=65535)return e=this.index[A>>h],e=(e<>h)],e=(e<>C),e=this.index[e],e+=A>>h&b,e=this.index[e],e=(e<S?(n.push(!0),o-=S):n.push(!1),-1!==["normal","auto","loose"].indexOf(e)&&-1!==[8208,8211,12316,12448].indexOf(A))return r.push(B),t.push(Z);if(o===P||o===J){if(0===B)return r.push(B),t.push(uA);var s=t[B-1];return-1===LA.indexOf(s)?(r.push(r[B-1]),t.push(s)):(r.push(B),t.push(uA))}return r.push(B),o===lA?t.push("strict"===e?rA:EA):o===pA||o===QA?t.push(uA):o===NA?A>=131072&&A<=196605||A>=196608&&A<=262141?t.push(EA):t.push(uA):void t.push(o)})),[r,t,n]},MA=function(A,e,t,r){var n=r[t];if(Array.isArray(A)?-1!==A.indexOf(n):A===n){var B=t;while(B<=r.length){B++;var o=r[B];if(o===e)return!0;if(o!==G)break}}if(n===G){B=t;while(B>0){B--;var s=r[B];if(Array.isArray(A)?-1!==A.indexOf(s):A===s){var i=t;while(i<=r.length){i++;o=r[i];if(o===e)return!0;if(o!==G)break}}if(s!==G)break}}return!1},_A=function(A,e){var t=A;while(t>=0){var r=e[t];if(r!==G)return r;t--}return 0},xA=function(A,e,t,r,n){if(0===t[r])return mA;var B=r-1;if(Array.isArray(n)&&!0===n[B])return mA;var o=B-1,s=B+1,i=e[B],a=o>=0?e[o]:0,c=e[s];if(i===_&&c===x)return mA;if(-1!==bA.indexOf(i))return KA;if(-1!==bA.indexOf(c))return mA;if(-1!==vA.indexOf(c))return mA;if(_A(B,e)===X)return IA;if(TA.get(A[B])===J&&(c===EA||c===wA||c===UA))return mA;if(i===z||c===z)return mA;if(i===k)return mA;if(-1===[G,Y,j].indexOf(i)&&c===k)return mA;if(-1!==[$,AA,eA,oA,cA].indexOf(c))return mA;if(_A(B,e)===nA)return mA;if(MA(BA,nA,B,e))return mA;if(MA([$,AA],rA,B,e))return mA;if(MA(W,W,B,e))return mA;if(i===G)return IA;if(i===BA||c===BA)return mA;if(c===Z||i===Z)return IA;if(-1!==[Y,j,rA].indexOf(c)||i===q)return mA;if(a===CA&&-1!==yA.indexOf(i))return mA;if(i===cA&&c===CA)return mA;if(c===tA&&-1!==RA.concat(tA,eA,sA,EA,wA,UA).indexOf(i))return mA;if(-1!==RA.indexOf(c)&&i===sA||-1!==RA.indexOf(i)&&c===sA)return mA;if(i===aA&&-1!==[EA,wA,UA].indexOf(c)||-1!==[EA,wA,UA].indexOf(i)&&c===iA)return mA;if(-1!==RA.indexOf(i)&&-1!==OA.indexOf(c)||-1!==OA.indexOf(i)&&-1!==RA.indexOf(c))return mA;if(-1!==[aA,iA].indexOf(i)&&(c===sA||-1!==[nA,j].indexOf(c)&&e[s+1]===sA)||-1!==[nA,j].indexOf(i)&&c===sA||i===sA&&-1!==[sA,cA,oA].indexOf(c))return mA;if(-1!==[sA,cA,oA,$,AA].indexOf(c)){var Q=B;while(Q>=0){var u=e[Q];if(u===sA)return mA;if(-1===[cA,oA].indexOf(u))break;Q--}}if(-1!==[aA,iA].indexOf(c)){Q=-1!==[$,AA].indexOf(i)?o:B;while(Q>=0){u=e[Q];if(u===sA)return mA;if(-1===[cA,oA].indexOf(u))break;Q--}}if(FA===i&&-1!==[FA,dA,gA,hA].indexOf(c)||-1!==[dA,gA].indexOf(i)&&-1!==[dA,fA].indexOf(c)||-1!==[fA,hA].indexOf(i)&&c===fA)return mA;if(-1!==DA.indexOf(i)&&-1!==[tA,iA].indexOf(c)||-1!==DA.indexOf(c)&&i===aA)return mA;if(-1!==RA.indexOf(i)&&-1!==RA.indexOf(c))return mA;if(i===oA&&-1!==RA.indexOf(c))return mA;if(-1!==RA.concat(sA).indexOf(i)&&c===nA||-1!==RA.concat(sA).indexOf(c)&&i===AA)return mA;if(i===HA&&c===HA){var l=t[B],w=1;while(l>0){if(l--,e[l]!==HA)break;w++}if(w%2!==0)return mA}return i===wA&&c===UA?mA:IA},PA=function(A,e){e||(e={lineBreak:"normal",wordBreak:"normal"});var t=SA(A,e.lineBreak),r=t[0],n=t[1],B=t[2];"break-all"!==e.wordBreak&&"break-word"!==e.wordBreak||(n=n.map((function(A){return-1!==[sA,uA,pA].indexOf(A)?EA:A})));var o="keep-all"===e.wordBreak?B.map((function(e,t){return e&&A[t]>=19968&&A[t]<=40959})):void 0;return[r,n,o]},VA=function(){function A(A,e,t,r){this.codePoints=A,this.required=e===KA,this.start=t,this.end=r}return A.prototype.slice=function(){return a.apply(void 0,this.codePoints.slice(this.start,this.end))},A}(),zA=function(A,e){var t=i(A),r=PA(t,e),n=r[0],B=r[1],o=r[2],s=t.length,a=0,c=0;return{next:function(){if(c>=s)return{done:!0,value:null};var A=mA;while(c=ye&&A<=57},We=function(A){return A>=55296&&A<=57343},Ye=function(A){return Je(A)||A>=Ve&&A<=Xe||A>=Se&&A<=_e},qe=function(A){return A>=Se&&A<=Pe},je=function(A){return A>=Ve&&A<=Ge},Ze=function(A){return qe(A)||je(A)},$e=function(A){return A>=de},At=function(A){return A===WA||A===jA||A===ZA},et=function(A){return Ze(A)||$e(A)||A===se},tt=function(A){return et(A)||Je(A)||A===ie},rt=function(A){return A>=Te&&A<=Re||A===be||A>=ve&&A<=Oe||A===Le},nt=function(A,e){return A===qA&&e!==WA},Bt=function(A,e,t){return A===ie?et(e)||nt(e,t):!!et(A)||!(A!==qA||!nt(A,e))},ot=function(A,e,t){return A===pe||A===ie?!!Je(e)||e===Ie&&Je(t):Je(A===Ie?e:A)},st=function(A){var e=0,t=1;A[e]!==pe&&A[e]!==ie||(A[e]===ie&&(t=-1),e++);var r=[];while(Je(A[e]))r.push(A[e++]);var n=r.length?parseInt(a.apply(void 0,r),10):0;A[e]===Ie&&e++;var B=[];while(Je(A[e]))B.push(A[e++]);var o=B.length,s=o?parseInt(a.apply(void 0,B),10):0;A[e]!==ze&&A[e]!==Me||e++;var i=1;A[e]!==pe&&A[e]!==ie||(A[e]===ie&&(i=-1),e++);var c=[];while(Je(A[e]))c.push(A[e++]);var Q=c.length?parseInt(a.apply(void 0,c),10):0;return t*(n+s*Math.pow(10,-o))*Math.pow(10,i*Q)},it={type:l.LEFT_PARENTHESIS_TOKEN},at={type:l.RIGHT_PARENTHESIS_TOKEN},ct={type:l.COMMA_TOKEN},Qt={type:l.SUFFIX_MATCH_TOKEN},ut={type:l.PREFIX_MATCH_TOKEN},lt={type:l.COLUMN_TOKEN},wt={type:l.DASH_MATCH_TOKEN},Ut={type:l.INCLUDE_MATCH_TOKEN},gt={type:l.LEFT_CURLY_BRACKET_TOKEN},ht={type:l.RIGHT_CURLY_BRACKET_TOKEN},Ct={type:l.SUBSTRING_MATCH_TOKEN},Et={type:l.BAD_URL_TOKEN},Ft={type:l.BAD_STRING_TOKEN},dt={type:l.CDO_TOKEN},ft={type:l.CDC_TOKEN},Ht={type:l.COLON_TOKEN},pt={type:l.SEMICOLON_TOKEN},Nt={type:l.LEFT_SQUARE_BRACKET_TOKEN},Kt={type:l.RIGHT_SQUARE_BRACKET_TOKEN},mt={type:l.WHITESPACE_TOKEN},It={type:l.EOF_TOKEN},Tt=function(){function A(){this._value=[]}return A.prototype.write=function(A){this._value=this._value.concat(i(A))},A.prototype.read=function(){var A=[],e=this.consumeToken();while(e!==It)A.push(e),e=this.consumeToken();return A},A.prototype.consumeToken=function(){var A=this.consumeCodePoint();switch(A){case $A:return this.consumeStringToken($A);case ee:var e=this.peekCodePoint(0),t=this.peekCodePoint(1),r=this.peekCodePoint(2);if(tt(e)||nt(t,r)){var n=Bt(e,t,r)?kA:XA,B=this.consumeName();return{type:l.HASH_TOKEN,value:B,flags:n}}break;case te:if(this.peekCodePoint(0)===Ae)return this.consumeCodePoint(),Qt;break;case ne:return this.consumeStringToken(ne);case Be:return it;case oe:return at;case He:if(this.peekCodePoint(0)===Ae)return this.consumeCodePoint(),Ct;break;case pe:if(ot(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case Ne:return ct;case ie:var o=A,s=this.peekCodePoint(0),i=this.peekCodePoint(1);if(ot(o,s,i))return this.reconsumeCodePoint(A),this.consumeNumericToken();if(Bt(o,s,i))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();if(s===ie&&i===Qe)return this.consumeCodePoint(),this.consumeCodePoint(),ft;break;case Ie:if(ot(A,this.peekCodePoint(0),this.peekCodePoint(1)))return this.reconsumeCodePoint(A),this.consumeNumericToken();break;case YA:if(this.peekCodePoint(0)===He){this.consumeCodePoint();while(1){var c=this.consumeCodePoint();if(c===He&&(c=this.consumeCodePoint(),c===YA))return this.consumeToken();if(c===De)return this.consumeToken()}}break;case Ke:return Ht;case me:return pt;case ce:if(this.peekCodePoint(0)===ae&&this.peekCodePoint(1)===ie&&this.peekCodePoint(2)===ie)return this.consumeCodePoint(),this.consumeCodePoint(),dt;break;case ue:var Q=this.peekCodePoint(0),u=this.peekCodePoint(1),w=this.peekCodePoint(2);if(Bt(Q,u,w)){B=this.consumeName();return{type:l.AT_KEYWORD_TOKEN,value:B}}break;case le:return Nt;case qA:if(nt(A,this.peekCodePoint(0)))return this.reconsumeCodePoint(A),this.consumeIdentLikeToken();break;case we:return Kt;case Ue:if(this.peekCodePoint(0)===Ae)return this.consumeCodePoint(),ut;break;case ge:return gt;case Ce:return ht;case xe:case ke:var U=this.peekCodePoint(0),g=this.peekCodePoint(1);return U!==pe||!Ye(g)&&g!==he||(this.consumeCodePoint(),this.consumeUnicodeRangeToken()),this.reconsumeCodePoint(A),this.consumeIdentLikeToken();case Ee:if(this.peekCodePoint(0)===Ae)return this.consumeCodePoint(),wt;if(this.peekCodePoint(0)===Ee)return this.consumeCodePoint(),lt;break;case Fe:if(this.peekCodePoint(0)===Ae)return this.consumeCodePoint(),Ut;break;case De:return It}return At(A)?(this.consumeWhiteSpace(),mt):Je(A)?(this.reconsumeCodePoint(A),this.consumeNumericToken()):et(A)?(this.reconsumeCodePoint(A),this.consumeIdentLikeToken()):{type:l.DELIM_TOKEN,value:a(A)}},A.prototype.consumeCodePoint=function(){var A=this._value.shift();return"undefined"===typeof A?-1:A},A.prototype.reconsumeCodePoint=function(A){this._value.unshift(A)},A.prototype.peekCodePoint=function(A){return A>=this._value.length?-1:this._value[A]},A.prototype.consumeUnicodeRangeToken=function(){var A=[],e=this.consumeCodePoint();while(Ye(e)&&A.length<6)A.push(e),e=this.consumeCodePoint();var t=!1;while(e===he&&A.length<6)A.push(e),e=this.consumeCodePoint(),t=!0;if(t){var r=parseInt(a.apply(void 0,A.map((function(A){return A===he?ye:A}))),16),n=parseInt(a.apply(void 0,A.map((function(A){return A===he?Xe:A}))),16);return{type:l.UNICODE_RANGE_TOKEN,start:r,end:n}}var B=parseInt(a.apply(void 0,A),16);if(this.peekCodePoint(0)===ie&&Ye(this.peekCodePoint(1))){this.consumeCodePoint(),e=this.consumeCodePoint();var o=[];while(Ye(e)&&o.length<6)o.push(e),e=this.consumeCodePoint();n=parseInt(a.apply(void 0,o),16);return{type:l.UNICODE_RANGE_TOKEN,start:B,end:n}}return{type:l.UNICODE_RANGE_TOKEN,start:B,end:B}},A.prototype.consumeIdentLikeToken=function(){var A=this.consumeName();return"url"===A.toLowerCase()&&this.peekCodePoint(0)===Be?(this.consumeCodePoint(),this.consumeUrlToken()):this.peekCodePoint(0)===Be?(this.consumeCodePoint(),{type:l.FUNCTION_TOKEN,value:A}):{type:l.IDENT_TOKEN,value:A}},A.prototype.consumeUrlToken=function(){var A=[];if(this.consumeWhiteSpace(),this.peekCodePoint(0)===De)return{type:l.URL_TOKEN,value:""};var e=this.peekCodePoint(0);if(e===ne||e===$A){var t=this.consumeStringToken(this.consumeCodePoint());return t.type===l.STRING_TOKEN&&(this.consumeWhiteSpace(),this.peekCodePoint(0)===De||this.peekCodePoint(0)===oe)?(this.consumeCodePoint(),{type:l.URL_TOKEN,value:t.value}):(this.consumeBadUrlRemnants(),Et)}while(1){var r=this.consumeCodePoint();if(r===De||r===oe)return{type:l.URL_TOKEN,value:a.apply(void 0,A)};if(At(r))return this.consumeWhiteSpace(),this.peekCodePoint(0)===De||this.peekCodePoint(0)===oe?(this.consumeCodePoint(),{type:l.URL_TOKEN,value:a.apply(void 0,A)}):(this.consumeBadUrlRemnants(),Et);if(r===$A||r===ne||r===Be||rt(r))return this.consumeBadUrlRemnants(),Et;if(r===qA){if(!nt(r,this.peekCodePoint(0)))return this.consumeBadUrlRemnants(),Et;A.push(this.consumeEscapedCodePoint())}else A.push(r)}},A.prototype.consumeWhiteSpace=function(){while(At(this.peekCodePoint(0)))this.consumeCodePoint()},A.prototype.consumeBadUrlRemnants=function(){while(1){var A=this.consumeCodePoint();if(A===oe||A===De)return;nt(A,this.peekCodePoint(0))&&this.consumeEscapedCodePoint()}},A.prototype.consumeStringSlice=function(A){var e=6e4,t="";while(A>0){var r=Math.min(e,A);t+=a.apply(void 0,this._value.splice(0,r)),A-=r}return this._value.shift(),t},A.prototype.consumeStringToken=function(A){var e="",t=0;do{var r=this._value[t];if(r===De||void 0===r||r===A)return e+=this.consumeStringSlice(t),{type:l.STRING_TOKEN,value:e};if(r===WA)return this._value.splice(0,t),Ft;if(r===qA){var n=this._value[t+1];n!==De&&void 0!==n&&(n===WA?(e+=this.consumeStringSlice(t),t=-1,this._value.shift()):nt(r,n)&&(e+=this.consumeStringSlice(t),e+=a(this.consumeEscapedCodePoint()),t=-1))}t++}while(1)},A.prototype.consumeNumber=function(){var A=[],e=GA,t=this.peekCodePoint(0);t!==pe&&t!==ie||A.push(this.consumeCodePoint());while(Je(this.peekCodePoint(0)))A.push(this.consumeCodePoint());t=this.peekCodePoint(0);var r=this.peekCodePoint(1);if(t===Ie&&Je(r)){A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=JA;while(Je(this.peekCodePoint(0)))A.push(this.consumeCodePoint())}t=this.peekCodePoint(0),r=this.peekCodePoint(1);var n=this.peekCodePoint(2);if((t===ze||t===Me)&&((r===pe||r===ie)&&Je(n)||Je(r))){A.push(this.consumeCodePoint(),this.consumeCodePoint()),e=JA;while(Je(this.peekCodePoint(0)))A.push(this.consumeCodePoint())}return[st(A),e]},A.prototype.consumeNumericToken=function(){var A=this.consumeNumber(),e=A[0],t=A[1],r=this.peekCodePoint(0),n=this.peekCodePoint(1),B=this.peekCodePoint(2);if(Bt(r,n,B)){var o=this.consumeName();return{type:l.DIMENSION_TOKEN,number:e,flags:t,unit:o}}return r===re?(this.consumeCodePoint(),{type:l.PERCENTAGE_TOKEN,number:e,flags:t}):{type:l.NUMBER_TOKEN,number:e,flags:t}},A.prototype.consumeEscapedCodePoint=function(){var A=this.consumeCodePoint();if(Ye(A)){var e=a(A);while(Ye(this.peekCodePoint(0))&&e.length<6)e+=a(this.consumeCodePoint());At(this.peekCodePoint(0))&&this.consumeCodePoint();var t=parseInt(e,16);return 0===t||We(t)||t>1114111?fe:t}return A===De?fe:A},A.prototype.consumeName=function(){var A="";while(1){var e=this.consumeCodePoint();if(tt(e))A+=a(e);else{if(!nt(e,this.peekCodePoint(0)))return this.reconsumeCodePoint(e),A;A+=a(this.consumeEscapedCodePoint())}}},A}(),Rt=function(){function A(A){this._tokens=A}return A.create=function(e){var t=new Tt;return t.write(e),new A(t.read())},A.parseValue=function(e){return A.create(e).parseComponentValue()},A.parseValues=function(e){return A.create(e).parseComponentValues()},A.prototype.parseComponentValue=function(){var A=this.consumeToken();while(A.type===l.WHITESPACE_TOKEN)A=this.consumeToken();if(A.type===l.EOF_TOKEN)throw new SyntaxError("Error parsing CSS component value, unexpected EOF");this.reconsumeToken(A);var e=this.consumeComponentValue();do{A=this.consumeToken()}while(A.type===l.WHITESPACE_TOKEN);if(A.type===l.EOF_TOKEN)return e;throw new SyntaxError("Error parsing CSS component value, multiple values found when expecting only one")},A.prototype.parseComponentValues=function(){var A=[];while(1){var e=this.consumeComponentValue();if(e.type===l.EOF_TOKEN)return A;A.push(e),A.push()}},A.prototype.consumeComponentValue=function(){var A=this.consumeToken();switch(A.type){case l.LEFT_CURLY_BRACKET_TOKEN:case l.LEFT_SQUARE_BRACKET_TOKEN:case l.LEFT_PARENTHESIS_TOKEN:return this.consumeSimpleBlock(A.type);case l.FUNCTION_TOKEN:return this.consumeFunction(A)}return A},A.prototype.consumeSimpleBlock=function(A){var e={type:A,values:[]},t=this.consumeToken();while(1){if(t.type===l.EOF_TOKEN||_t(t,A))return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue()),t=this.consumeToken()}},A.prototype.consumeFunction=function(A){var e={name:A.value,values:[],type:l.FUNCTION};while(1){var t=this.consumeToken();if(t.type===l.EOF_TOKEN||t.type===l.RIGHT_PARENTHESIS_TOKEN)return e;this.reconsumeToken(t),e.values.push(this.consumeComponentValue())}},A.prototype.consumeToken=function(){var A=this._tokens.shift();return"undefined"===typeof A?It:A},A.prototype.reconsumeToken=function(A){this._tokens.unshift(A)},A}(),bt=function(A){return A.type===l.DIMENSION_TOKEN},vt=function(A){return A.type===l.NUMBER_TOKEN},Ot=function(A){return A.type===l.IDENT_TOKEN},Lt=function(A){return A.type===l.STRING_TOKEN},Dt=function(A,e){return Ot(A)&&A.value===e},yt=function(A){return A.type!==l.WHITESPACE_TOKEN},St=function(A){return A.type!==l.WHITESPACE_TOKEN&&A.type!==l.COMMA_TOKEN},Mt=function(A){var e=[],t=[];return A.forEach((function(A){if(A.type===l.COMMA_TOKEN){if(0===t.length)throw new Error("Error parsing function args, zero tokens for arg");return e.push(t),void(t=[])}A.type!==l.WHITESPACE_TOKEN&&t.push(A)})),t.length&&e.push(t),e},_t=function(A,e){return e===l.LEFT_CURLY_BRACKET_TOKEN&&A.type===l.RIGHT_CURLY_BRACKET_TOKEN||(e===l.LEFT_SQUARE_BRACKET_TOKEN&&A.type===l.RIGHT_SQUARE_BRACKET_TOKEN||e===l.LEFT_PARENTHESIS_TOKEN&&A.type===l.RIGHT_PARENTHESIS_TOKEN)},xt=function(A){return A.type===l.NUMBER_TOKEN||A.type===l.DIMENSION_TOKEN},Pt=function(A){return A.type===l.PERCENTAGE_TOKEN||xt(A)},Vt=function(A){return A.length>1?[A[0],A[1]]:[A[0]]},zt={type:l.NUMBER_TOKEN,number:0,flags:GA},Xt={type:l.PERCENTAGE_TOKEN,number:50,flags:GA},kt={type:l.PERCENTAGE_TOKEN,number:100,flags:GA},Gt=function(A,e,t){var r=A[0],n=A[1];return[Jt(r,e),Jt("undefined"!==typeof n?n:r,t)]},Jt=function(A,e){if(A.type===l.PERCENTAGE_TOKEN)return A.number/100*e;if(bt(A))switch(A.unit){case"rem":case"em":return 16*A.number;case"px":default:return A.number}return A.number},Wt="deg",Yt="grad",qt="rad",jt="turn",Zt={name:"angle",parse:function(A){if(A.type===l.DIMENSION_TOKEN)switch(A.unit){case Wt:return Math.PI*A.number/180;case Yt:return Math.PI/200*A.number;case qt:return A.number;case jt:return 2*Math.PI*A.number}throw new Error("Unsupported angle type")}},$t=function(A){return A.type===l.DIMENSION_TOKEN&&(A.unit===Wt||A.unit===Yt||A.unit===qt||A.unit===jt)},Ar=function(A){var e=A.filter(Ot).map((function(A){return A.value})).join(" ");switch(e){case"to bottom right":case"to right bottom":case"left top":case"top left":return[zt,zt];case"to top":case"bottom":return er(0);case"to bottom left":case"to left bottom":case"right top":case"top right":return[zt,kt];case"to right":case"left":return er(90);case"to top left":case"to left top":case"right bottom":case"bottom right":return[kt,kt];case"to bottom":case"top":return er(180);case"to top right":case"to right top":case"left bottom":case"bottom left":return[kt,zt];case"to left":case"right":return er(270)}return 0},er=function(A){return Math.PI*A/180},tr={name:"color",parse:function(A){if(A.type===l.FUNCTION){var e=ur[A.name];if("undefined"===typeof e)throw new Error('Attempting to parse an unsupported color function "'+A.name+'"');return e(A.values)}if(A.type===l.HASH_TOKEN){if(3===A.value.length){var t=A.value.substring(0,1),r=A.value.substring(1,2),n=A.value.substring(2,3);return Br(parseInt(t+t,16),parseInt(r+r,16),parseInt(n+n,16),1)}if(4===A.value.length){t=A.value.substring(0,1),r=A.value.substring(1,2),n=A.value.substring(2,3);var B=A.value.substring(3,4);return Br(parseInt(t+t,16),parseInt(r+r,16),parseInt(n+n,16),parseInt(B+B,16)/255)}if(6===A.value.length){t=A.value.substring(0,2),r=A.value.substring(2,4),n=A.value.substring(4,6);return Br(parseInt(t,16),parseInt(r,16),parseInt(n,16),1)}if(8===A.value.length){t=A.value.substring(0,2),r=A.value.substring(2,4),n=A.value.substring(4,6),B=A.value.substring(6,8);return Br(parseInt(t,16),parseInt(r,16),parseInt(n,16),parseInt(B,16)/255)}}if(A.type===l.IDENT_TOKEN){var o=lr[A.value.toUpperCase()];if("undefined"!==typeof o)return o}return lr.TRANSPARENT}},rr=function(A){return 0===(255&A)},nr=function(A){var e=255&A,t=255&A>>8,r=255&A>>16,n=255&A>>24;return e<255?"rgba("+n+","+r+","+t+","+e/255+")":"rgb("+n+","+r+","+t+")"},Br=function(A,e,t,r){return(A<<24|e<<16|t<<8|Math.round(255*r)<<0)>>>0},or=function(A,e){if(A.type===l.NUMBER_TOKEN)return A.number;if(A.type===l.PERCENTAGE_TOKEN){var t=3===e?1:255;return 3===e?A.number/100*t:Math.round(A.number/100*t)}return 0},sr=function(A){var e=A.filter(St);if(3===e.length){var t=e.map(or),r=t[0],n=t[1],B=t[2];return Br(r,n,B,1)}if(4===e.length){var o=e.map(or),s=(r=o[0],n=o[1],B=o[2],o[3]);return Br(r,n,B,s)}return 0};function ir(A,e,t){return t<0&&(t+=1),t>=1&&(t-=1),t<1/6?(e-A)*t*6+A:t<.5?e:t<2/3?6*(e-A)*(2/3-t)+A:A}var ar,cr,Qr=function(A){var e=A.filter(St),t=e[0],r=e[1],n=e[2],B=e[3],o=(t.type===l.NUMBER_TOKEN?er(t.number):Zt.parse(t))/(2*Math.PI),s=Pt(r)?r.number/100:0,i=Pt(n)?n.number/100:0,a="undefined"!==typeof B&&Pt(B)?Jt(B,1):1;if(0===s)return Br(255*i,255*i,255*i,1);var c=i<=.5?i*(s+1):i+s-i*s,Q=2*i-c,u=ir(Q,c,o+1/3),w=ir(Q,c,o),U=ir(Q,c,o-1/3);return Br(255*u,255*w,255*U,a)},ur={hsl:Qr,hsla:Qr,rgb:sr,rgba:sr},lr={ALICEBLUE:4042850303,ANTIQUEWHITE:4209760255,AQUA:16777215,AQUAMARINE:2147472639,AZURE:4043309055,BEIGE:4126530815,BISQUE:4293182719,BLACK:255,BLANCHEDALMOND:4293643775,BLUE:65535,BLUEVIOLET:2318131967,BROWN:2771004159,BURLYWOOD:3736635391,CADETBLUE:1604231423,CHARTREUSE:2147418367,CHOCOLATE:3530104575,CORAL:4286533887,CORNFLOWERBLUE:1687547391,CORNSILK:4294499583,CRIMSON:3692313855,CYAN:16777215,DARKBLUE:35839,DARKCYAN:9145343,DARKGOLDENROD:3095837695,DARKGRAY:2846468607,DARKGREEN:6553855,DARKGREY:2846468607,DARKKHAKI:3182914559,DARKMAGENTA:2332068863,DARKOLIVEGREEN:1433087999,DARKORANGE:4287365375,DARKORCHID:2570243327,DARKRED:2332033279,DARKSALMON:3918953215,DARKSEAGREEN:2411499519,DARKSLATEBLUE:1211993087,DARKSLATEGRAY:793726975,DARKSLATEGREY:793726975,DARKTURQUOISE:13554175,DARKVIOLET:2483082239,DEEPPINK:4279538687,DEEPSKYBLUE:12582911,DIMGRAY:1768516095,DIMGREY:1768516095,DODGERBLUE:512819199,FIREBRICK:2988581631,FLORALWHITE:4294635775,FORESTGREEN:579543807,FUCHSIA:4278255615,GAINSBORO:3705462015,GHOSTWHITE:4177068031,GOLD:4292280575,GOLDENROD:3668254975,GRAY:2155905279,GREEN:8388863,GREENYELLOW:2919182335,GREY:2155905279,HONEYDEW:4043305215,HOTPINK:4285117695,INDIANRED:3445382399,INDIGO:1258324735,IVORY:4294963455,KHAKI:4041641215,LAVENDER:3873897215,LAVENDERBLUSH:4293981695,LAWNGREEN:2096890111,LEMONCHIFFON:4294626815,LIGHTBLUE:2916673279,LIGHTCORAL:4034953471,LIGHTCYAN:3774873599,LIGHTGOLDENRODYELLOW:4210742015,LIGHTGRAY:3553874943,LIGHTGREEN:2431553791,LIGHTGREY:3553874943,LIGHTPINK:4290167295,LIGHTSALMON:4288707327,LIGHTSEAGREEN:548580095,LIGHTSKYBLUE:2278488831,LIGHTSLATEGRAY:2005441023,LIGHTSLATEGREY:2005441023,LIGHTSTEELBLUE:2965692159,LIGHTYELLOW:4294959359,LIME:16711935,LIMEGREEN:852308735,LINEN:4210091775,MAGENTA:4278255615,MAROON:2147483903,MEDIUMAQUAMARINE:1724754687,MEDIUMBLUE:52735,MEDIUMORCHID:3126187007,MEDIUMPURPLE:2473647103,MEDIUMSEAGREEN:1018393087,MEDIUMSLATEBLUE:2070474495,MEDIUMSPRINGGREEN:16423679,MEDIUMTURQUOISE:1221709055,MEDIUMVIOLETRED:3340076543,MIDNIGHTBLUE:421097727,MINTCREAM:4127193855,MISTYROSE:4293190143,MOCCASIN:4293178879,NAVAJOWHITE:4292783615,NAVY:33023,OLDLACE:4260751103,OLIVE:2155872511,OLIVEDRAB:1804477439,ORANGE:4289003775,ORANGERED:4282712319,ORCHID:3664828159,PALEGOLDENROD:4008225535,PALEGREEN:2566625535,PALETURQUOISE:2951671551,PALEVIOLETRED:3681588223,PAPAYAWHIP:4293907967,PEACHPUFF:4292524543,PERU:3448061951,PINK:4290825215,PLUM:3718307327,POWDERBLUE:2967529215,PURPLE:2147516671,REBECCAPURPLE:1714657791,RED:4278190335,ROSYBROWN:3163525119,ROYALBLUE:1097458175,SADDLEBROWN:2336560127,SALMON:4202722047,SANDYBROWN:4104413439,SEAGREEN:780883967,SEASHELL:4294307583,SIENNA:2689740287,SILVER:3233857791,SKYBLUE:2278484991,SLATEBLUE:1784335871,SLATEGRAY:1887473919,SLATEGREY:1887473919,SNOW:4294638335,SPRINGGREEN:16744447,STEELBLUE:1182971135,TAN:3535047935,TEAL:8421631,THISTLE:3636451583,TOMATO:4284696575,TRANSPARENT:0,TURQUOISE:1088475391,VIOLET:4001558271,WHEAT:4125012991,WHITE:4294967295,WHITESMOKE:4126537215,YELLOW:4294902015,YELLOWGREEN:2597139199};(function(A){A[A["VALUE"]=0]="VALUE",A[A["LIST"]=1]="LIST",A[A["IDENT_VALUE"]=2]="IDENT_VALUE",A[A["TYPE_VALUE"]=3]="TYPE_VALUE",A[A["TOKEN_VALUE"]=4]="TOKEN_VALUE"})(ar||(ar={})),function(A){A[A["BORDER_BOX"]=0]="BORDER_BOX",A[A["PADDING_BOX"]=1]="PADDING_BOX",A[A["CONTENT_BOX"]=2]="CONTENT_BOX"}(cr||(cr={}));var wr,Ur={name:"background-clip",initialValue:"border-box",prefix:!1,type:ar.LIST,parse:function(A){return A.map((function(A){if(Ot(A))switch(A.value){case"padding-box":return cr.PADDING_BOX;case"content-box":return cr.CONTENT_BOX}return cr.BORDER_BOX}))}},gr={name:"background-color",initialValue:"transparent",prefix:!1,type:ar.TYPE_VALUE,format:"color"},hr=function(A){var e=tr.parse(A[0]),t=A[1];return t&&Pt(t)?{color:e,stop:t}:{color:e,stop:null}},Cr=function(A,e){var t=A[0],r=A[A.length-1];null===t.stop&&(t.stop=zt),null===r.stop&&(r.stop=kt);for(var n=[],B=0,o=0;oB?n.push(i):n.push(B),B=i}else n.push(null)}var a=null;for(o=0;oA.optimumDistance)?{optimumCorner:e,optimumDistance:s}:A}),{optimumDistance:n?1/0:-1/0,optimumCorner:null}).optimumCorner},Hr=function(A,e,t,r,n){var B=0,o=0;switch(A.size){case nn.CLOSEST_SIDE:A.shape===rn.CIRCLE?B=o=Math.min(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):A.shape===rn.ELLIPSE&&(B=Math.min(Math.abs(e),Math.abs(e-r)),o=Math.min(Math.abs(t),Math.abs(t-n)));break;case nn.CLOSEST_CORNER:if(A.shape===rn.CIRCLE)B=o=Math.min(dr(e,t),dr(e,t-n),dr(e-r,t),dr(e-r,t-n));else if(A.shape===rn.ELLIPSE){var s=Math.min(Math.abs(t),Math.abs(t-n))/Math.min(Math.abs(e),Math.abs(e-r)),i=fr(r,n,e,t,!0),a=i[0],c=i[1];B=dr(a-e,(c-t)/s),o=s*B}break;case nn.FARTHEST_SIDE:A.shape===rn.CIRCLE?B=o=Math.max(Math.abs(e),Math.abs(e-r),Math.abs(t),Math.abs(t-n)):A.shape===rn.ELLIPSE&&(B=Math.max(Math.abs(e),Math.abs(e-r)),o=Math.max(Math.abs(t),Math.abs(t-n)));break;case nn.FARTHEST_CORNER:if(A.shape===rn.CIRCLE)B=o=Math.max(dr(e,t),dr(e,t-n),dr(e-r,t),dr(e-r,t-n));else if(A.shape===rn.ELLIPSE){s=Math.max(Math.abs(t),Math.abs(t-n))/Math.max(Math.abs(e),Math.abs(e-r));var Q=fr(r,n,e,t,!1);a=Q[0],c=Q[1];B=dr(a-e,(c-t)/s),o=s*B}break}return Array.isArray(A.size)&&(B=Jt(A.size[0],r),o=2===A.size.length?Jt(A.size[1],n):B),[B,o]},pr=function(A){var e=er(180),t=[];return Mt(A).forEach((function(A,r){if(0===r){var n=A[0];if(n.type===l.IDENT_TOKEN&&"to"===n.value)return void(e=Ar(A));if($t(n))return void(e=Zt.parse(n))}var B=hr(A);t.push(B)})),{angle:e,stops:t,type:wr.LINEAR_GRADIENT}},Nr=function(A){var e=er(180),t=[];return Mt(A).forEach((function(A,r){if(0===r){var n=A[0];if(n.type===l.IDENT_TOKEN&&-1!==["top","left","right","bottom"].indexOf(n.value))return void(e=Ar(A));if($t(n))return void(e=(Zt.parse(n)+er(270))%er(360))}var B=hr(A);t.push(B)})),{angle:e,stops:t,type:wr.LINEAR_GRADIENT}},Kr=function(A){var e=123;if(A.createRange){var t=A.createRange();if(t.getBoundingClientRect){var r=A.createElement("boundtest");r.style.height=e+"px",r.style.display="block",A.body.appendChild(r),t.selectNode(r);var n=t.getBoundingClientRect(),B=Math.round(n.height);if(A.body.removeChild(r),B===e)return!0}}return!1},mr=function(){return"undefined"!==typeof(new Image).crossOrigin},Ir=function(){return"string"===typeof(new XMLHttpRequest).responseType},Tr=function(A){var e=new Image,t=A.createElement("canvas"),r=t.getContext("2d");if(!r)return!1;e.src="data:image/svg+xml,";try{r.drawImage(e,0,0),t.toDataURL()}catch(Me){return!1}return!0},Rr=function(A){return 0===A[0]&&255===A[1]&&0===A[2]&&255===A[3]},br=function(A){var e=A.createElement("canvas"),t=100;e.width=t,e.height=t;var r=e.getContext("2d");if(!r)return Promise.reject(!1);r.fillStyle="rgb(0, 255, 0)",r.fillRect(0,0,t,t);var n=new Image,B=e.toDataURL();n.src=B;var o=vr(t,t,0,0,n);return r.fillStyle="red",r.fillRect(0,0,t,t),Or(o).then((function(e){r.drawImage(e,0,0);var n=r.getImageData(0,0,t,t).data;r.fillStyle="red",r.fillRect(0,0,t,t);var o=A.createElement("div");return o.style.backgroundImage="url("+B+")",o.style.height=t+"px",Rr(n)?Or(vr(t,t,0,0,o)):Promise.reject(!1)})).then((function(A){return r.drawImage(A,0,0),Rr(r.getImageData(0,0,t,t).data)})).catch((function(){return!1}))},vr=function(A,e,t,r,n){var B="http://www.w3.org/2000/svg",o=document.createElementNS(B,"svg"),s=document.createElementNS(B,"foreignObject");return o.setAttributeNS(null,"width",A.toString()),o.setAttributeNS(null,"height",e.toString()),s.setAttributeNS(null,"width","100%"),s.setAttributeNS(null,"height","100%"),s.setAttributeNS(null,"x",t.toString()),s.setAttributeNS(null,"y",r.toString()),s.setAttributeNS(null,"externalResourcesRequired","true"),o.appendChild(s),s.appendChild(n),o},Or=function(A){return new Promise((function(e,t){var r=new Image;r.onload=function(){return e(r)},r.onerror=t,r.src="data:image/svg+xml;charset=utf-8,"+encodeURIComponent((new XMLSerializer).serializeToString(A))}))},Lr={get SUPPORT_RANGE_BOUNDS(){var A=Kr(document);return Object.defineProperty(Lr,"SUPPORT_RANGE_BOUNDS",{value:A}),A},get SUPPORT_SVG_DRAWING(){var A=Tr(document);return Object.defineProperty(Lr,"SUPPORT_SVG_DRAWING",{value:A}),A},get SUPPORT_FOREIGNOBJECT_DRAWING(){var A="function"===typeof Array.from&&"function"===typeof window.fetch?br(document):Promise.resolve(!1);return Object.defineProperty(Lr,"SUPPORT_FOREIGNOBJECT_DRAWING",{value:A}),A},get SUPPORT_CORS_IMAGES(){var A=mr();return Object.defineProperty(Lr,"SUPPORT_CORS_IMAGES",{value:A}),A},get SUPPORT_RESPONSE_TYPE(){var A=Ir();return Object.defineProperty(Lr,"SUPPORT_RESPONSE_TYPE",{value:A}),A},get SUPPORT_CORS_XHR(){var A="withCredentials"in new XMLHttpRequest;return Object.defineProperty(Lr,"SUPPORT_CORS_XHR",{value:A}),A}},Dr=function(){function A(A){var e=A.id,t=A.enabled;this.id=e,this.enabled=t,this.start=Date.now()}return A.prototype.debug=function(){for(var A=[],e=0;e0&&setTimeout((function(){return e("Timed out ("+o._options.imageTimeout+"ms) loading image")}),o._options.imageTimeout)}))];case 3:return[2,n.sent()]}}))}))},A.prototype.has=function(A){return"undefined"!==typeof this._cache[A]},A.prototype.keys=function(){return Promise.resolve(Object.keys(this._cache))},A.prototype.proxy=function(A){var e=this,t=this._options.proxy;if(!t)throw new Error("No proxy defined");var r=A.substring(0,256);return new Promise((function(n,B){var o=Lr.SUPPORT_RESPONSE_TYPE?"blob":"text",s=new XMLHttpRequest;if(s.onload=function(){if(200===s.status)if("text"===o)n(s.response);else{var A=new FileReader;A.addEventListener("load",(function(){return n(A.result)}),!1),A.addEventListener("error",(function(A){return B(A)}),!1),A.readAsDataURL(s.response)}else B("Failed to proxy resource "+r+" with status code "+s.status)},s.onerror=B,s.open("GET",t+"?url="+encodeURIComponent(A)+"&responseType="+o),"text"!==o&&s instanceof XMLHttpRequest&&(s.responseType=o),e._options.imageTimeout){var i=e._options.imageTimeout;s.timeout=i,s.ontimeout=function(){return B("Timed out ("+i+"ms) proxying "+r)}}s.send()}))},A}(),Mr=/^data:image\/svg\+xml/i,_r=/^data:image\/.*;base64,/i,xr=/^data:image\/.*/i,Pr=function(A){return Lr.SUPPORT_SVG_DRAWING||!kr(A)},Vr=function(A){return xr.test(A)},zr=function(A){return _r.test(A)},Xr=function(A){return"blob"===A.substr(0,4)},kr=function(A){return"svg"===A.substr(-3).toLowerCase()||Mr.test(A)},Gr=function(A){var e=er(180),t=[],r=wr.LINEAR_GRADIENT,n=rn.CIRCLE,B=nn.FARTHEST_CORNER,o=[];return Mt(A).forEach((function(A,e){var n=A[0];if(0===e){if(Ot(n)&&"linear"===n.value)return void(r=wr.LINEAR_GRADIENT);if(Ot(n)&&"radial"===n.value)return void(r=wr.RADIAL_GRADIENT)}if(n.type===l.FUNCTION)if("from"===n.name){var B=tr.parse(n.values[0]);t.push({stop:zt,color:B})}else if("to"===n.name){B=tr.parse(n.values[0]);t.push({stop:kt,color:B})}else if("color-stop"===n.name){var o=n.values.filter(St);if(2===o.length){B=tr.parse(o[1]);var s=o[0];vt(s)&&t.push({stop:{type:l.PERCENTAGE_TOKEN,number:100*s.number,flags:s.flags},color:B})}}})),r===wr.LINEAR_GRADIENT?{angle:(e+er(180))%er(360),stops:t,type:r}:{size:B,shape:n,stops:t,position:o,type:r}},Jr="closest-side",Wr="farthest-side",Yr="closest-corner",qr="farthest-corner",jr="circle",Zr="ellipse",$r="cover",An="contain",en=function(A){var e=rn.CIRCLE,t=nn.FARTHEST_CORNER,r=[],n=[];return Mt(A).forEach((function(A,B){var o=!0;if(0===B){var s=!1;o=A.reduce((function(A,r){if(s)if(Ot(r))switch(r.value){case"center":return n.push(Xt),A;case"top":case"left":return n.push(zt),A;case"right":case"bottom":return n.push(kt),A}else(Pt(r)||xt(r))&&n.push(r);else if(Ot(r))switch(r.value){case jr:return e=rn.CIRCLE,!1;case Zr:return e=rn.ELLIPSE,!1;case"at":return s=!0,!1;case Jr:return t=nn.CLOSEST_SIDE,!1;case $r:case Wr:return t=nn.FARTHEST_SIDE,!1;case An:case Yr:return t=nn.CLOSEST_CORNER,!1;case qr:return t=nn.FARTHEST_CORNER,!1}else if(xt(r)||Pt(r))return Array.isArray(t)||(t=[]),t.push(r),!1;return A}),o)}if(o){var i=hr(A);r.push(i)}})),{size:t,shape:e,stops:r,position:n,type:wr.RADIAL_GRADIENT}},tn=function(A){var e=rn.CIRCLE,t=nn.FARTHEST_CORNER,r=[],n=[];return Mt(A).forEach((function(A,B){var o=!0;if(0===B?o=A.reduce((function(A,e){if(Ot(e))switch(e.value){case"center":return n.push(Xt),!1;case"top":case"left":return n.push(zt),!1;case"right":case"bottom":return n.push(kt),!1}else if(Pt(e)||xt(e))return n.push(e),!1;return A}),o):1===B&&(o=A.reduce((function(A,r){if(Ot(r))switch(r.value){case jr:return e=rn.CIRCLE,!1;case Zr:return e=rn.ELLIPSE,!1;case An:case Jr:return t=nn.CLOSEST_SIDE,!1;case Wr:return t=nn.FARTHEST_SIDE,!1;case Yr:return t=nn.CLOSEST_CORNER,!1;case $r:case qr:return t=nn.FARTHEST_CORNER,!1}else if(xt(r)||Pt(r))return Array.isArray(t)||(t=[]),t.push(r),!1;return A}),o)),o){var s=hr(A);r.push(s)}})),{size:t,shape:e,stops:r,position:n,type:wr.RADIAL_GRADIENT}};(function(A){A[A["URL"]=0]="URL",A[A["LINEAR_GRADIENT"]=1]="LINEAR_GRADIENT",A[A["RADIAL_GRADIENT"]=2]="RADIAL_GRADIENT"})(wr||(wr={}));var rn,nn,Bn=function(A){return A.type===wr.LINEAR_GRADIENT},on=function(A){return A.type===wr.RADIAL_GRADIENT};(function(A){A[A["CIRCLE"]=0]="CIRCLE",A[A["ELLIPSE"]=1]="ELLIPSE"})(rn||(rn={})),function(A){A[A["CLOSEST_SIDE"]=0]="CLOSEST_SIDE",A[A["FARTHEST_SIDE"]=1]="FARTHEST_SIDE",A[A["CLOSEST_CORNER"]=2]="CLOSEST_CORNER",A[A["FARTHEST_CORNER"]=3]="FARTHEST_CORNER"}(nn||(nn={}));var sn={name:"image",parse:function(A){if(A.type===l.URL_TOKEN){var e={url:A.value,type:wr.URL};return yr.getInstance().addImage(A.value),e}if(A.type===l.FUNCTION){var t=Qn[A.name];if("undefined"===typeof t)throw new Error('Attempting to parse an unsupported image function "'+A.name+'"');return t(A.values)}throw new Error("Unsupported image type")}};function an(A){return A.type!==l.FUNCTION||Qn[A.name]}var cn,Qn={"linear-gradient":pr,"-moz-linear-gradient":Nr,"-ms-linear-gradient":Nr,"-o-linear-gradient":Nr,"-webkit-linear-gradient":Nr,"radial-gradient":en,"-moz-radial-gradient":tn,"-ms-radial-gradient":tn,"-o-radial-gradient":tn,"-webkit-radial-gradient":tn,"-webkit-gradient":Gr},un={name:"background-image",initialValue:"none",type:ar.LIST,prefix:!1,parse:function(A){if(0===A.length)return[];var e=A[0];return e.type===l.IDENT_TOKEN&&"none"===e.value?[]:A.filter((function(A){return St(A)&&an(A)})).map(sn.parse)}},ln={name:"background-origin",initialValue:"border-box",prefix:!1,type:ar.LIST,parse:function(A){return A.map((function(A){if(Ot(A))switch(A.value){case"padding-box":return 1;case"content-box":return 2}return 0}))}},wn={name:"background-position",initialValue:"0% 0%",type:ar.LIST,prefix:!1,parse:function(A){return Mt(A).map((function(A){return A.filter(Pt)})).map(Vt)}};(function(A){A[A["REPEAT"]=0]="REPEAT",A[A["NO_REPEAT"]=1]="NO_REPEAT",A[A["REPEAT_X"]=2]="REPEAT_X",A[A["REPEAT_Y"]=3]="REPEAT_Y"})(cn||(cn={}));var Un,gn={name:"background-repeat",initialValue:"repeat",prefix:!1,type:ar.LIST,parse:function(A){return Mt(A).map((function(A){return A.filter(Ot).map((function(A){return A.value})).join(" ")})).map(hn)}},hn=function(A){switch(A){case"no-repeat":return cn.NO_REPEAT;case"repeat-x":case"repeat no-repeat":return cn.REPEAT_X;case"repeat-y":case"no-repeat repeat":return cn.REPEAT_Y;case"repeat":default:return cn.REPEAT}};(function(A){A["AUTO"]="auto",A["CONTAIN"]="contain",A["COVER"]="cover"})(Un||(Un={}));var Cn,En={name:"background-size",initialValue:"0",prefix:!1,type:ar.LIST,parse:function(A){return Mt(A).map((function(A){return A.filter(Fn)}))}},Fn=function(A){return Ot(A)||Pt(A)},dn=function(A){return{name:"border-"+A+"-color",initialValue:"transparent",prefix:!1,type:ar.TYPE_VALUE,format:"color"}},fn=dn("top"),Hn=dn("right"),pn=dn("bottom"),Nn=dn("left"),Kn=function(A){return{name:"border-radius-"+A,initialValue:"0 0",prefix:!1,type:ar.LIST,parse:function(A){return Vt(A.filter(Pt))}}},mn=Kn("top-left"),In=Kn("top-right"),Tn=Kn("bottom-right"),Rn=Kn("bottom-left");(function(A){A[A["NONE"]=0]="NONE",A[A["SOLID"]=1]="SOLID",A[A["DASHED"]=2]="DASHED",A[A["DOTTED"]=3]="DOTTED",A[A["DOUBLE"]=4]="DOUBLE"})(Cn||(Cn={}));var bn,vn=function(A){return{name:"border-"+A+"-style",initialValue:"solid",prefix:!1,type:ar.IDENT_VALUE,parse:function(A){switch(A){case"none":return Cn.NONE;case"dashed":return Cn.DASHED;case"dotted":return Cn.DOTTED;case"double":return Cn.DOUBLE}return Cn.SOLID}}},On=vn("top"),Ln=vn("right"),Dn=vn("bottom"),yn=vn("left"),Sn=function(A){return{name:"border-"+A+"-width",initialValue:"0",type:ar.VALUE,prefix:!1,parse:function(A){return bt(A)?A.number:0}}},Mn=Sn("top"),_n=Sn("right"),xn=Sn("bottom"),Pn=Sn("left"),Vn={name:"color",initialValue:"transparent",prefix:!1,type:ar.TYPE_VALUE,format:"color"},zn={name:"display",initialValue:"inline-block",prefix:!1,type:ar.LIST,parse:function(A){return A.filter(Ot).reduce((function(A,e){return A|Xn(e.value)}),0)}},Xn=function(A){switch(A){case"block":case"-webkit-box":return 2;case"inline":return 4;case"run-in":return 8;case"flow":return 16;case"flow-root":return 32;case"table":return 64;case"flex":case"-webkit-flex":return 128;case"grid":case"-ms-grid":return 256;case"ruby":return 512;case"subgrid":return 1024;case"list-item":return 2048;case"table-row-group":return 4096;case"table-header-group":return 8192;case"table-footer-group":return 16384;case"table-row":return 32768;case"table-cell":return 65536;case"table-column-group":return 131072;case"table-column":return 262144;case"table-caption":return 524288;case"ruby-base":return 1048576;case"ruby-text":return 2097152;case"ruby-base-container":return 4194304;case"ruby-text-container":return 8388608;case"contents":return 16777216;case"inline-block":return 33554432;case"inline-list-item":return 67108864;case"inline-table":return 134217728;case"inline-flex":return 268435456;case"inline-grid":return 536870912}return 0};(function(A){A[A["NONE"]=0]="NONE",A[A["LEFT"]=1]="LEFT",A[A["RIGHT"]=2]="RIGHT",A[A["INLINE_START"]=3]="INLINE_START",A[A["INLINE_END"]=4]="INLINE_END"})(bn||(bn={}));var kn,Gn={name:"float",initialValue:"none",prefix:!1,type:ar.IDENT_VALUE,parse:function(A){switch(A){case"left":return bn.LEFT;case"right":return bn.RIGHT;case"inline-start":return bn.INLINE_START;case"inline-end":return bn.INLINE_END}return bn.NONE}},Jn={name:"letter-spacing",initialValue:"0",prefix:!1,type:ar.VALUE,parse:function(A){return A.type===l.IDENT_TOKEN&&"normal"===A.value?0:A.type===l.NUMBER_TOKEN||A.type===l.DIMENSION_TOKEN?A.number:0}};(function(A){A["NORMAL"]="normal",A["STRICT"]="strict"})(kn||(kn={}));var Wn,Yn={name:"line-break",initialValue:"normal",prefix:!1,type:ar.IDENT_VALUE,parse:function(A){switch(A){case"strict":return kn.STRICT;case"normal":default:return kn.NORMAL}}},qn={name:"line-height",initialValue:"normal",prefix:!1,type:ar.TOKEN_VALUE},jn=function(A,e){return Ot(A)&&"normal"===A.value?1.2*e:A.type===l.NUMBER_TOKEN?e*A.number:Pt(A)?Jt(A,e):e},Zn={name:"list-style-image",initialValue:"none",type:ar.VALUE,prefix:!1,parse:function(A){return A.type===l.IDENT_TOKEN&&"none"===A.value?null:sn.parse(A)}};(function(A){A[A["INSIDE"]=0]="INSIDE",A[A["OUTSIDE"]=1]="OUTSIDE"})(Wn||(Wn={}));var $n,AB={name:"list-style-position",initialValue:"outside",prefix:!1,type:ar.IDENT_VALUE,parse:function(A){switch(A){case"inside":return Wn.INSIDE;case"outside":default:return Wn.OUTSIDE}}};(function(A){A[A["NONE"]=-1]="NONE",A[A["DISC"]=0]="DISC",A[A["CIRCLE"]=1]="CIRCLE",A[A["SQUARE"]=2]="SQUARE",A[A["DECIMAL"]=3]="DECIMAL",A[A["CJK_DECIMAL"]=4]="CJK_DECIMAL",A[A["DECIMAL_LEADING_ZERO"]=5]="DECIMAL_LEADING_ZERO",A[A["LOWER_ROMAN"]=6]="LOWER_ROMAN",A[A["UPPER_ROMAN"]=7]="UPPER_ROMAN",A[A["LOWER_GREEK"]=8]="LOWER_GREEK",A[A["LOWER_ALPHA"]=9]="LOWER_ALPHA",A[A["UPPER_ALPHA"]=10]="UPPER_ALPHA",A[A["ARABIC_INDIC"]=11]="ARABIC_INDIC",A[A["ARMENIAN"]=12]="ARMENIAN",A[A["BENGALI"]=13]="BENGALI",A[A["CAMBODIAN"]=14]="CAMBODIAN",A[A["CJK_EARTHLY_BRANCH"]=15]="CJK_EARTHLY_BRANCH",A[A["CJK_HEAVENLY_STEM"]=16]="CJK_HEAVENLY_STEM",A[A["CJK_IDEOGRAPHIC"]=17]="CJK_IDEOGRAPHIC",A[A["DEVANAGARI"]=18]="DEVANAGARI",A[A["ETHIOPIC_NUMERIC"]=19]="ETHIOPIC_NUMERIC",A[A["GEORGIAN"]=20]="GEORGIAN",A[A["GUJARATI"]=21]="GUJARATI",A[A["GURMUKHI"]=22]="GURMUKHI",A[A["HEBREW"]=22]="HEBREW",A[A["HIRAGANA"]=23]="HIRAGANA",A[A["HIRAGANA_IROHA"]=24]="HIRAGANA_IROHA",A[A["JAPANESE_FORMAL"]=25]="JAPANESE_FORMAL",A[A["JAPANESE_INFORMAL"]=26]="JAPANESE_INFORMAL",A[A["KANNADA"]=27]="KANNADA",A[A["KATAKANA"]=28]="KATAKANA",A[A["KATAKANA_IROHA"]=29]="KATAKANA_IROHA",A[A["KHMER"]=30]="KHMER",A[A["KOREAN_HANGUL_FORMAL"]=31]="KOREAN_HANGUL_FORMAL",A[A["KOREAN_HANJA_FORMAL"]=32]="KOREAN_HANJA_FORMAL",A[A["KOREAN_HANJA_INFORMAL"]=33]="KOREAN_HANJA_INFORMAL",A[A["LAO"]=34]="LAO",A[A["LOWER_ARMENIAN"]=35]="LOWER_ARMENIAN",A[A["MALAYALAM"]=36]="MALAYALAM",A[A["MONGOLIAN"]=37]="MONGOLIAN",A[A["MYANMAR"]=38]="MYANMAR",A[A["ORIYA"]=39]="ORIYA",A[A["PERSIAN"]=40]="PERSIAN",A[A["SIMP_CHINESE_FORMAL"]=41]="SIMP_CHINESE_FORMAL",A[A["SIMP_CHINESE_INFORMAL"]=42]="SIMP_CHINESE_INFORMAL",A[A["TAMIL"]=43]="TAMIL",A[A["TELUGU"]=44]="TELUGU",A[A["THAI"]=45]="THAI",A[A["TIBETAN"]=46]="TIBETAN",A[A["TRAD_CHINESE_FORMAL"]=47]="TRAD_CHINESE_FORMAL",A[A["TRAD_CHINESE_INFORMAL"]=48]="TRAD_CHINESE_INFORMAL",A[A["UPPER_ARMENIAN"]=49]="UPPER_ARMENIAN",A[A["DISCLOSURE_OPEN"]=50]="DISCLOSURE_OPEN",A[A["DISCLOSURE_CLOSED"]=51]="DISCLOSURE_CLOSED"})($n||($n={}));var eB,tB={name:"list-style-type",initialValue:"none",prefix:!1,type:ar.IDENT_VALUE,parse:function(A){switch(A){case"disc":return $n.DISC;case"circle":return $n.CIRCLE;case"square":return $n.SQUARE;case"decimal":return $n.DECIMAL;case"cjk-decimal":return $n.CJK_DECIMAL;case"decimal-leading-zero":return $n.DECIMAL_LEADING_ZERO;case"lower-roman":return $n.LOWER_ROMAN;case"upper-roman":return $n.UPPER_ROMAN;case"lower-greek":return $n.LOWER_GREEK;case"lower-alpha":return $n.LOWER_ALPHA;case"upper-alpha":return $n.UPPER_ALPHA;case"arabic-indic":return $n.ARABIC_INDIC;case"armenian":return $n.ARMENIAN;case"bengali":return $n.BENGALI;case"cambodian":return $n.CAMBODIAN;case"cjk-earthly-branch":return $n.CJK_EARTHLY_BRANCH;case"cjk-heavenly-stem":return $n.CJK_HEAVENLY_STEM;case"cjk-ideographic":return $n.CJK_IDEOGRAPHIC;case"devanagari":return $n.DEVANAGARI;case"ethiopic-numeric":return $n.ETHIOPIC_NUMERIC;case"georgian":return $n.GEORGIAN;case"gujarati":return $n.GUJARATI;case"gurmukhi":return $n.GURMUKHI;case"hebrew":return $n.HEBREW;case"hiragana":return $n.HIRAGANA;case"hiragana-iroha":return $n.HIRAGANA_IROHA;case"japanese-formal":return $n.JAPANESE_FORMAL;case"japanese-informal":return $n.JAPANESE_INFORMAL;case"kannada":return $n.KANNADA;case"katakana":return $n.KATAKANA;case"katakana-iroha":return $n.KATAKANA_IROHA;case"khmer":return $n.KHMER;case"korean-hangul-formal":return $n.KOREAN_HANGUL_FORMAL;case"korean-hanja-formal":return $n.KOREAN_HANJA_FORMAL;case"korean-hanja-informal":return $n.KOREAN_HANJA_INFORMAL;case"lao":return $n.LAO;case"lower-armenian":return $n.LOWER_ARMENIAN;case"malayalam":return $n.MALAYALAM;case"mongolian":return $n.MONGOLIAN;case"myanmar":return $n.MYANMAR;case"oriya":return $n.ORIYA;case"persian":return $n.PERSIAN;case"simp-chinese-formal":return $n.SIMP_CHINESE_FORMAL;case"simp-chinese-informal":return $n.SIMP_CHINESE_INFORMAL;case"tamil":return $n.TAMIL;case"telugu":return $n.TELUGU;case"thai":return $n.THAI;case"tibetan":return $n.TIBETAN;case"trad-chinese-formal":return $n.TRAD_CHINESE_FORMAL;case"trad-chinese-informal":return $n.TRAD_CHINESE_INFORMAL;case"upper-armenian":return $n.UPPER_ARMENIAN;case"disclosure-open":return $n.DISCLOSURE_OPEN;case"disclosure-closed":return $n.DISCLOSURE_CLOSED;case"none":default:return $n.NONE}}},rB=function(A){return{name:"margin-"+A,initialValue:"0",prefix:!1,type:ar.TOKEN_VALUE}},nB=rB("top"),BB=rB("right"),oB=rB("bottom"),sB=rB("left");(function(A){A[A["VISIBLE"]=0]="VISIBLE",A[A["HIDDEN"]=1]="HIDDEN",A[A["SCROLL"]=2]="SCROLL",A[A["AUTO"]=3]="AUTO"})(eB||(eB={}));var iB,aB={name:"overflow",initialValue:"visible",prefix:!1,type:ar.LIST,parse:function(A){return A.filter(Ot).map((function(A){switch(A.value){case"hidden":return eB.HIDDEN;case"scroll":return eB.SCROLL;case"auto":return eB.AUTO;case"visible":default:return eB.VISIBLE}}))}};(function(A){A["NORMAL"]="normal",A["BREAK_WORD"]="break-word"})(iB||(iB={}));var cB,QB={name:"overflow-wrap",initialValue:"normal",prefix:!1,type:ar.IDENT_VALUE,parse:function(A){switch(A){case"break-word":return iB.BREAK_WORD;case"normal":default:return iB.NORMAL}}},uB=function(A){return{name:"padding-"+A,initialValue:"0",prefix:!1,type:ar.TYPE_VALUE,format:"length-percentage"}},lB=uB("top"),wB=uB("right"),UB=uB("bottom"),gB=uB("left");(function(A){A[A["LEFT"]=0]="LEFT",A[A["CENTER"]=1]="CENTER",A[A["RIGHT"]=2]="RIGHT"})(cB||(cB={}));var hB,CB={name:"text-align",initialValue:"left",prefix:!1,type:ar.IDENT_VALUE,parse:function(A){switch(A){case"right":return cB.RIGHT;case"center":case"justify":return cB.CENTER;case"left":default:return cB.LEFT}}};(function(A){A[A["STATIC"]=0]="STATIC",A[A["RELATIVE"]=1]="RELATIVE",A[A["ABSOLUTE"]=2]="ABSOLUTE",A[A["FIXED"]=3]="FIXED",A[A["STICKY"]=4]="STICKY"})(hB||(hB={}));var EB,FB={name:"position",initialValue:"static",prefix:!1,type:ar.IDENT_VALUE,parse:function(A){switch(A){case"relative":return hB.RELATIVE;case"absolute":return hB.ABSOLUTE;case"fixed":return hB.FIXED;case"sticky":return hB.STICKY}return hB.STATIC}},dB={name:"text-shadow",initialValue:"none",type:ar.LIST,prefix:!1,parse:function(A){return 1===A.length&&Dt(A[0],"none")?[]:Mt(A).map((function(A){for(var e={color:lr.TRANSPARENT,offsetX:zt,offsetY:zt,blur:zt},t=0,r=0;r1?1:0],this.overflowWrap=eo(QB,A.overflowWrap),this.paddingTop=eo(lB,A.paddingTop),this.paddingRight=eo(wB,A.paddingRight),this.paddingBottom=eo(UB,A.paddingBottom),this.paddingLeft=eo(gB,A.paddingLeft),this.position=eo(FB,A.position),this.textAlign=eo(CB,A.textAlign),this.textDecorationColor=eo(SB,A.textDecorationColor||A.color),this.textDecorationLine=eo(MB,A.textDecorationLine),this.textShadow=eo(dB,A.textShadow),this.textTransform=eo(HB,A.textTransform),this.transform=eo(pB,A.transform),this.transformOrigin=eo(RB,A.transformOrigin),this.visibility=eo(vB,A.visibility),this.wordBreak=eo(LB,A.wordBreak),this.zIndex=eo(DB,A.zIndex)}return A.prototype.isVisible=function(){return this.display>0&&this.opacity>0&&this.visibility===fB.VISIBLE},A.prototype.isTransparent=function(){return rr(this.backgroundColor)},A.prototype.isTransformed=function(){return null!==this.transform},A.prototype.isPositioned=function(){return this.position!==hB.STATIC},A.prototype.isPositionedWithZIndex=function(){return this.isPositioned()&&!this.zIndex.auto},A.prototype.isFloating=function(){return this.float!==bn.NONE},A.prototype.isInlineLevel=function(){return kB(this.display,4)||kB(this.display,33554432)||kB(this.display,268435456)||kB(this.display,536870912)||kB(this.display,67108864)||kB(this.display,134217728)},A}(),$B=function(){function A(A){this.content=eo(GB,A.content),this.quotes=eo(YB,A.quotes)}return A}(),Ao=function(){function A(A){this.counterIncrement=eo(JB,A.counterIncrement),this.counterReset=eo(WB,A.counterReset)}return A}(),eo=function(A,e){var t=new Tt,r=null!==e&&"undefined"!==typeof e?e.toString():A.initialValue;t.write(r);var n=new Rt(t.read());switch(A.type){case ar.IDENT_VALUE:var B=n.parseComponentValue();return A.parse(Ot(B)?B.value:A.initialValue);case ar.VALUE:return A.parse(n.parseComponentValue());case ar.LIST:return A.parse(n.parseComponentValues());case ar.TOKEN_VALUE:return n.parseComponentValue();case ar.TYPE_VALUE:switch(A.format){case"angle":return Zt.parse(n.parseComponentValue());case"color":return tr.parse(n.parseComponentValue());case"image":return sn.parse(n.parseComponentValue());case"length":var o=n.parseComponentValue();return xt(o)?o:zt;case"length-percentage":var s=n.parseComponentValue();return Pt(s)?s:zt}}throw new Error("Attempting to parse unsupported css format type "+A.format)},to=function(){function A(A){this.styles=new ZB(window.getComputedStyle(A,null)),this.textNodes=[],this.elements=[],null!==this.styles.transform&&xo(A)&&(A.style.transform="none"),this.bounds=o(A),this.flags=0}return A}(),ro=function(){function A(A,e){this.text=A,this.bounds=e}return A}(),no=function(A,e,t){var r=so(A,e),n=[],B=0;return r.forEach((function(A){if(e.textDecorationLine.length||A.trim().length>0)if(Lr.SUPPORT_RANGE_BOUNDS)n.push(new ro(A,oo(t,B,A.length)));else{var r=t.splitText(A.length);n.push(new ro(A,Bo(t))),t=r}else Lr.SUPPORT_RANGE_BOUNDS||(t=t.splitText(A.length));B+=A.length})),n},Bo=function(A){var e=A.ownerDocument;if(e){var t=e.createElement("html2canvaswrapper");t.appendChild(A.cloneNode(!0));var r=A.parentNode;if(r){r.replaceChild(t,A);var n=o(t);return t.firstChild&&r.replaceChild(t.firstChild,t),n}}return new B(0,0,0,0)},oo=function(A,e,t){var r=A.ownerDocument;if(!r)throw new Error("Node has no owner document");var n=r.createRange();return n.setStart(A,e),n.setEnd(A,e+t),B.fromClientRect(n.getBoundingClientRect())},so=function(A,e){return 0!==e.letterSpacing?i(A).map((function(A){return a(A)})):io(A,e)},io=function(A,e){var t,r=zA(A,{lineBreak:e.lineBreak,wordBreak:e.overflowWrap===iB.BREAK_WORD?"break-word":e.wordBreak}),n=[];while(!(t=r.next()).done)t.value&&n.push(t.value.slice());return n},ao=function(){function A(A,e){this.text=co(A.data,e.textTransform),this.textBounds=no(this.text,e,A)}return A}(),co=function(A,e){switch(e){case EB.LOWERCASE:return A.toLowerCase();case EB.CAPITALIZE:return A.replace(Qo,uo);case EB.UPPERCASE:return A.toUpperCase();default:return A}},Qo=/(^|\s|:|-|\(|\))([a-z])/g,uo=function(A,e,t){return A.length>0?e+t.toUpperCase():A},lo=function(A){function t(e){var t=A.call(this,e)||this;return t.src=e.currentSrc||e.src,t.intrinsicWidth=e.naturalWidth,t.intrinsicHeight=e.naturalHeight,yr.getInstance().addImage(t.src),t}return e(t,A),t}(to),wo=function(A){function t(e){var t=A.call(this,e)||this;return t.canvas=e,t.intrinsicWidth=e.width,t.intrinsicHeight=e.height,t}return e(t,A),t}(to),Uo=function(A){function t(e){var t=A.call(this,e)||this,r=new XMLSerializer;return t.svg="data:image/svg+xml,"+encodeURIComponent(r.serializeToString(e)),t.intrinsicWidth=e.width.baseVal.value,t.intrinsicHeight=e.height.baseVal.value,yr.getInstance().addImage(t.svg),t}return e(t,A),t}(to),go=function(A){function t(e){var t=A.call(this,e)||this;return t.value=e.value,t}return e(t,A),t}(to),ho=function(A){function t(e){var t=A.call(this,e)||this;return t.start=e.start,t.reversed="boolean"===typeof e.reversed&&!0===e.reversed,t}return e(t,A),t}(to),Co=[{type:l.DIMENSION_TOKEN,flags:0,unit:"px",number:3}],Eo=[{type:l.PERCENTAGE_TOKEN,flags:0,number:50}],Fo=function(A){return A.width>A.height?new B(A.left+(A.width-A.height)/2,A.top,A.height,A.height):A.width0)e.textNodes.push(new ao(r,e.styles));else if(_o(r)){var B=Lo(r);B.styles.isVisible()&&(yo(r,B,t)?B.flags|=4:So(B.styles)&&(B.flags|=2),-1!==vo.indexOf(r.tagName)&&(B.flags|=8),e.elements.push(B),$o(r)||Go(r)||As(r)||Oo(r,B,t))}},Lo=function(A){return Yo(A)?new lo(A):Wo(A)?new wo(A):Go(A)?new Uo(A):Vo(A)?new go(A):zo(A)?new ho(A):Xo(A)?new mo(A):As(A)?new Io(A):$o(A)?new To(A):qo(A)?new bo(A):new to(A)},Do=function(A){var e=Lo(A);return e.flags|=4,Oo(A,e,e),e},yo=function(A,e,t){return e.styles.isPositionedWithZIndex()||e.styles.opacity<1||e.styles.isTransformed()||Jo(A)&&t.styles.isTransparent()},So=function(A){return A.isPositioned()||A.isFloating()},Mo=function(A){return A.nodeType===Node.TEXT_NODE},_o=function(A){return A.nodeType===Node.ELEMENT_NODE},xo=function(A){return _o(A)&&"undefined"!==typeof A.style&&!Po(A)},Po=function(A){return"object"===typeof A.className},Vo=function(A){return"LI"===A.tagName},zo=function(A){return"OL"===A.tagName},Xo=function(A){return"INPUT"===A.tagName},ko=function(A){return"HTML"===A.tagName},Go=function(A){return"svg"===A.tagName},Jo=function(A){return"BODY"===A.tagName},Wo=function(A){return"CANVAS"===A.tagName},Yo=function(A){return"IMG"===A.tagName},qo=function(A){return"IFRAME"===A.tagName},jo=function(A){return"STYLE"===A.tagName},Zo=function(A){return"SCRIPT"===A.tagName},$o=function(A){return"TEXTAREA"===A.tagName},As=function(A){return"SELECT"===A.tagName},es=function(){function A(){this.counters={}}return A.prototype.getCounterValue=function(A){var e=this.counters[A];return e&&e.length?e[e.length-1]:1},A.prototype.getCounterValues=function(A){var e=this.counters[A];return e||[]},A.prototype.pop=function(A){var e=this;A.forEach((function(A){return e.counters[A].pop()}))},A.prototype.parse=function(A){var e=this,t=A.counterIncrement,r=A.counterReset,n=!0;null!==t&&t.forEach((function(A){var t=e.counters[A.counter];t&&0!==A.increment&&(n=!1,t[Math.max(0,t.length-1)]+=A.increment)}));var B=[];return n&&r.forEach((function(A){var t=e.counters[A.counter];B.push(A.counter),t||(t=e.counters[A.counter]=[]),t.push(A.reset)})),B},A}(),ts={integers:[1e3,900,500,400,100,90,50,40,10,9,5,4,1],values:["M","CM","D","CD","C","XC","L","XL","X","IX","V","IV","I"]},rs={integers:[9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["Ք","Փ","Ւ","Ց","Ր","Տ","Վ","Ս","Ռ","Ջ","Պ","Չ","Ո","Շ","Ն","Յ","Մ","Ճ","Ղ","Ձ","Հ","Կ","Ծ","Խ","Լ","Ի","Ժ","Թ","Ը","Է","Զ","Ե","Դ","Գ","Բ","Ա"]},ns={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,400,300,200,100,90,80,70,60,50,40,30,20,19,18,17,16,15,10,9,8,7,6,5,4,3,2,1],values:["י׳","ט׳","ח׳","ז׳","ו׳","ה׳","ד׳","ג׳","ב׳","א׳","ת","ש","ר","ק","צ","פ","ע","ס","נ","מ","ל","כ","יט","יח","יז","טז","טו","י","ט","ח","ז","ו","ה","ד","ג","ב","א"]},Bs={integers:[1e4,9e3,8e3,7e3,6e3,5e3,4e3,3e3,2e3,1e3,900,800,700,600,500,400,300,200,100,90,80,70,60,50,40,30,20,10,9,8,7,6,5,4,3,2,1],values:["ჵ","ჰ","ჯ","ჴ","ხ","ჭ","წ","ძ","ც","ჩ","შ","ყ","ღ","ქ","ფ","ჳ","ტ","ს","რ","ჟ","პ","ო","ჲ","ნ","მ","ლ","კ","ი","თ","ჱ","ზ","ვ","ე","დ","გ","ბ","ა"]},os=function(A,e,t,r,n,B){return At?Es(A,n,B.length>0):r.integers.reduce((function(e,t,n){while(A>=t)A-=t,e+=r.values[n];return e}),"")+B},ss=function(A,e,t,r){var n="";do{t||A--,n=r(A)+n,A/=e}while(A*e>=e);return n},is=function(A,e,t,r,n){var B=t-e+1;return(A<0?"-":"")+(ss(Math.abs(A),B,r,(function(A){return a(Math.floor(A%B)+e)}))+n)},as=function(A,e,t){void 0===t&&(t=". ");var r=e.length;return ss(Math.abs(A),r,!1,(function(A){return e[Math.floor(A%r)]}))+t},cs=1,Qs=2,us=4,ls=8,ws=function(A,e,t,r,n,B){if(A<-9999||A>9999)return Es(A,$n.CJK_DECIMAL,n.length>0);var o=Math.abs(A),s=n;if(0===o)return e[0]+s;for(var i=0;o>0&&i<=4;i++){var a=o%10;0===a&&kB(B,cs)&&""!==s?s=e[a]+s:a>1||1===a&&0===i||1===a&&1===i&&kB(B,Qs)||1===a&&1===i&&kB(B,us)&&A>100||1===a&&i>1&&kB(B,ls)?s=e[a]+(i>0?t[i-1]:"")+s:1===a&&i>0&&(s=t[i-1]+s),o=Math.floor(o/10)}return(A<0?r:"")+s},Us="十百千萬",gs="拾佰仟萬",hs="マイナス",Cs="마이너스",Es=function(A,e,t){var r=t?". ":"",n=t?"、":"",B=t?", ":"",o=t?" ":"";switch(e){case $n.DISC:return"•"+o;case $n.CIRCLE:return"◦"+o;case $n.SQUARE:return"◾"+o;case $n.DECIMAL_LEADING_ZERO:var s=is(A,48,57,!0,r);return s.length<4?"0"+s:s;case $n.CJK_DECIMAL:return as(A,"〇一二三四五六七八九",n);case $n.LOWER_ROMAN:return os(A,1,3999,ts,$n.DECIMAL,r).toLowerCase();case $n.UPPER_ROMAN:return os(A,1,3999,ts,$n.DECIMAL,r);case $n.LOWER_GREEK:return is(A,945,969,!1,r);case $n.LOWER_ALPHA:return is(A,97,122,!1,r);case $n.UPPER_ALPHA:return is(A,65,90,!1,r);case $n.ARABIC_INDIC:return is(A,1632,1641,!0,r);case $n.ARMENIAN:case $n.UPPER_ARMENIAN:return os(A,1,9999,rs,$n.DECIMAL,r);case $n.LOWER_ARMENIAN:return os(A,1,9999,rs,$n.DECIMAL,r).toLowerCase();case $n.BENGALI:return is(A,2534,2543,!0,r);case $n.CAMBODIAN:case $n.KHMER:return is(A,6112,6121,!0,r);case $n.CJK_EARTHLY_BRANCH:return as(A,"子丑寅卯辰巳午未申酉戌亥",n);case $n.CJK_HEAVENLY_STEM:return as(A,"甲乙丙丁戊己庚辛壬癸",n);case $n.CJK_IDEOGRAPHIC:case $n.TRAD_CHINESE_INFORMAL:return ws(A,"零一二三四五六七八九",Us,"負",n,Qs|us|ls);case $n.TRAD_CHINESE_FORMAL:return ws(A,"零壹貳參肆伍陸柒捌玖",gs,"負",n,cs|Qs|us|ls);case $n.SIMP_CHINESE_INFORMAL:return ws(A,"零一二三四五六七八九",Us,"负",n,Qs|us|ls);case $n.SIMP_CHINESE_FORMAL:return ws(A,"零壹贰叁肆伍陆柒捌玖",gs,"负",n,cs|Qs|us|ls);case $n.JAPANESE_INFORMAL:return ws(A,"〇一二三四五六七八九","十百千万",hs,n,0);case $n.JAPANESE_FORMAL:return ws(A,"零壱弐参四伍六七八九","拾百千万",hs,n,cs|Qs|us);case $n.KOREAN_HANGUL_FORMAL:return ws(A,"영일이삼사오육칠팔구","십백천만",Cs,B,cs|Qs|us);case $n.KOREAN_HANJA_INFORMAL:return ws(A,"零一二三四五六七八九","十百千萬",Cs,B,0);case $n.KOREAN_HANJA_FORMAL:return ws(A,"零壹貳參四五六七八九","拾百千",Cs,B,cs|Qs|us);case $n.DEVANAGARI:return is(A,2406,2415,!0,r);case $n.GEORGIAN:return os(A,1,19999,Bs,$n.DECIMAL,r);case $n.GUJARATI:return is(A,2790,2799,!0,r);case $n.GURMUKHI:return is(A,2662,2671,!0,r);case $n.HEBREW:return os(A,1,10999,ns,$n.DECIMAL,r);case $n.HIRAGANA:return as(A,"あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん");case $n.HIRAGANA_IROHA:return as(A,"いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす");case $n.KANNADA:return is(A,3302,3311,!0,r);case $n.KATAKANA:return as(A,"アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン",n);case $n.KATAKANA_IROHA:return as(A,"イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス",n);case $n.LAO:return is(A,3792,3801,!0,r);case $n.MONGOLIAN:return is(A,6160,6169,!0,r);case $n.MYANMAR:return is(A,4160,4169,!0,r);case $n.ORIYA:return is(A,2918,2927,!0,r);case $n.PERSIAN:return is(A,1776,1785,!0,r);case $n.TAMIL:return is(A,3046,3055,!0,r);case $n.TELUGU:return is(A,3174,3183,!0,r);case $n.THAI:return is(A,3664,3673,!0,r);case $n.TIBETAN:return is(A,3872,3881,!0,r);case $n.DECIMAL:default:return is(A,48,57,!0,r)}},Fs="data-html2canvas-ignore",ds=function(){function A(A,e){if(this.options=e,this.scrolledElements=[],this.referenceElement=A,this.counters=new es,this.quoteDepth=0,!A.ownerDocument)throw new Error("Cloned element does not have an owner document");this.documentElement=this.cloneNode(A.ownerDocument.documentElement)}return A.prototype.toIFrame=function(A,e){var t=this,B=Hs(A,e);if(!B.contentWindow)return Promise.reject("Unable to find iframe window");var o=A.defaultView.pageXOffset,s=A.defaultView.pageYOffset,i=B.contentWindow,a=i.document,c=ps(B).then((function(){return r(t,void 0,void 0,(function(){var A;return n(this,(function(t){switch(t.label){case 0:return this.scrolledElements.forEach(Is),i&&(i.scrollTo(e.left,e.top),!/(iPad|iPhone|iPod)/g.test(navigator.userAgent)||i.scrollY===e.top&&i.scrollX===e.left||(a.documentElement.style.top=-e.top+"px",a.documentElement.style.left=-e.left+"px",a.documentElement.style.position="absolute")),A=this.options.onclone,"undefined"===typeof this.clonedReferenceElement?[2,Promise.reject("Error finding the "+this.referenceElement.nodeName+" in the cloned document")]:a.fonts&&a.fonts.ready?[4,a.fonts.ready]:[3,2];case 1:t.sent(),t.label=2;case 2:return"function"===typeof A?[2,Promise.resolve().then((function(){return A(a)})).then((function(){return B}))]:[2,B]}}))}))}));return a.open(),a.write(Ks(document.doctype)+""),ms(this.referenceElement.ownerDocument,o,s),a.replaceChild(a.adoptNode(this.documentElement),a.documentElement),a.close(),c},A.prototype.createElementClone=function(A){if(Wo(A))return this.createCanvasClone(A);if(jo(A))return this.createStyleClone(A);var e=A.cloneNode(!1);return Yo(e)&&"lazy"===e.loading&&(e.loading="eager"),e},A.prototype.createStyleClone=function(A){try{var e=A.sheet;if(e&&e.cssRules){var t=[].slice.call(e.cssRules,0).reduce((function(A,e){return e&&"string"===typeof e.cssText?A+e.cssText:A}),""),r=A.cloneNode(!1);return r.textContent=t,r}}catch(Me){if(Dr.getInstance(this.options.id).error("Unable to access cssRules property",Me),"SecurityError"!==Me.name)throw Me}return A.cloneNode(!1)},A.prototype.createCanvasClone=function(A){if(this.options.inlineImages&&A.ownerDocument){var e=A.ownerDocument.createElement("img");try{return e.src=A.toDataURL(),e}catch(Me){Dr.getInstance(this.options.id).info("Unable to clone canvas contents, canvas is tainted")}}var t=A.cloneNode(!1);try{t.width=A.width,t.height=A.height;var r=A.getContext("2d"),n=t.getContext("2d");return n&&(r?n.putImageData(r.getImageData(0,0,A.width,A.height),0,0):n.drawImage(A,0,0)),t}catch(Me){}return t},A.prototype.cloneNode=function(A){if(Mo(A))return document.createTextNode(A.data);if(!A.ownerDocument)return A.cloneNode(!1);var e=A.ownerDocument.defaultView;if(e&&_o(A)&&(xo(A)||Po(A))){var t=this.createElementClone(A),r=e.getComputedStyle(A),n=e.getComputedStyle(A,":before"),B=e.getComputedStyle(A,":after");this.referenceElement===A&&xo(t)&&(this.clonedReferenceElement=t),Jo(t)&&Ls(t);for(var o=this.counters.parse(new Ao(r)),s=this.resolvePseudoContent(A,t,n,zB.BEFORE),i=A.firstChild;i;i=i.nextSibling)_o(i)&&(Zo(i)||i.hasAttribute(Fs)||"function"===typeof this.options.ignoreElements&&this.options.ignoreElements(i))||this.options.copyStyles&&_o(i)&&jo(i)||t.appendChild(this.cloneNode(i));s&&t.insertBefore(s,t.firstChild);var a=this.resolvePseudoContent(A,t,B,zB.AFTER);return a&&t.appendChild(a),this.counters.pop(o),r&&(this.options.copyStyles||Po(A))&&!qo(A)&&Ns(r,t),0===A.scrollTop&&0===A.scrollLeft||this.scrolledElements.push([t,A.scrollLeft,A.scrollTop]),($o(A)||As(A))&&($o(t)||As(t))&&(t.value=A.value),t}return A.cloneNode(!1)},A.prototype.resolvePseudoContent=function(A,e,t,r){var n=this;if(t){var B=t.content,o=e.ownerDocument;if(o&&B&&"none"!==B&&"-moz-alt-content"!==B&&"none"!==t.display){this.counters.parse(new Ao(t));var s=new $B(t),i=o.createElement("html2canvaspseudoelement");Ns(t,i),s.content.forEach((function(e){if(e.type===l.STRING_TOKEN)i.appendChild(o.createTextNode(e.value));else if(e.type===l.URL_TOKEN){var t=o.createElement("img");t.src=e.value,t.style.opacity="1",i.appendChild(t)}else if(e.type===l.FUNCTION){if("attr"===e.name){var r=e.values.filter(Ot);r.length&&i.appendChild(o.createTextNode(A.getAttribute(r[0].value)||""))}else if("counter"===e.name){var B=e.values.filter(St),a=B[0],c=B[1];if(a&&Ot(a)){var Q=n.counters.getCounterValue(a.value),u=c&&Ot(c)?tB.parse(c.value):$n.DECIMAL;i.appendChild(o.createTextNode(Es(Q,u,!1)))}}else if("counters"===e.name){var w=e.values.filter(St),U=(a=w[0],w[1]);c=w[2];if(a&&Ot(a)){var g=n.counters.getCounterValues(a.value),h=c&&Ot(c)?tB.parse(c.value):$n.DECIMAL,C=U&&U.type===l.STRING_TOKEN?U.value:"",E=g.map((function(A){return Es(A,h,!1)})).join(C);i.appendChild(o.createTextNode(E))}}}else if(e.type===l.IDENT_TOKEN)switch(e.value){case"open-quote":i.appendChild(o.createTextNode(qB(s.quotes,n.quoteDepth++,!0)));break;case"close-quote":i.appendChild(o.createTextNode(qB(s.quotes,--n.quoteDepth,!1)));break;default:i.appendChild(o.createTextNode(e.value))}})),i.className=bs+" "+vs;var a=r===zB.BEFORE?" "+bs:" "+vs;return Po(e)?e.className.baseValue+=a:e.className+=a,i}}},A.destroy=function(A){return!!A.parentNode&&(A.parentNode.removeChild(A),!0)},A}();(function(A){A[A["BEFORE"]=0]="BEFORE",A[A["AFTER"]=1]="AFTER"})(zB||(zB={}));var fs,Hs=function(A,e){var t=A.createElement("iframe");return t.className="html2canvas-container",t.style.visibility="hidden",t.style.position="fixed",t.style.left="-10000px",t.style.top="0px",t.style.border="0",t.width=e.width.toString(),t.height=e.height.toString(),t.scrolling="no",t.setAttribute(Fs,"true"),A.body.appendChild(t),t},ps=function(A){return new Promise((function(e,t){var r=A.contentWindow;if(!r)return t("No window assigned for iframe");var n=r.document;r.onload=A.onload=n.onreadystatechange=function(){r.onload=A.onload=n.onreadystatechange=null;var t=setInterval((function(){n.body.childNodes.length>0&&"complete"===n.readyState&&(clearInterval(t),e(A))}),50)}}))},Ns=function(A,e){for(var t=A.length-1;t>=0;t--){var r=A.item(t);"content"!==r&&e.style.setProperty(r,A.getPropertyValue(r))}return e},Ks=function(A){var e="";return A&&(e+=""),e},ms=function(A,e,t){A&&A.defaultView&&(e!==A.defaultView.pageXOffset||t!==A.defaultView.pageYOffset)&&A.defaultView.scrollTo(e,t)},Is=function(A){var e=A[0],t=A[1],r=A[2];e.scrollLeft=t,e.scrollTop=r},Ts=":before",Rs=":after",bs="___html2canvas___pseudoelement_before",vs="___html2canvas___pseudoelement_after",Os='{\n content: "" !important;\n display: none !important;\n}',Ls=function(A){Ds(A,"."+bs+Ts+Os+"\n ."+vs+Rs+Os)},Ds=function(A,e){var t=A.ownerDocument;if(t){var r=t.createElement("style");r.textContent=e,A.appendChild(r)}};(function(A){A[A["VECTOR"]=0]="VECTOR",A[A["BEZIER_CURVE"]=1]="BEZIER_CURVE"})(fs||(fs={}));var ys,Ss=function(A,e){return A.length===e.length&&A.some((function(A,t){return A===e[t]}))},Ms=function(A,e,t,r,n){return A.map((function(A,B){switch(B){case 0:return A.add(e,t);case 1:return A.add(e+r,t);case 2:return A.add(e+r,t+n);case 3:return A.add(e,t+n)}return A}))},_s=function(){function A(A,e){this.type=fs.VECTOR,this.x=A,this.y=e}return A.prototype.add=function(e,t){return new A(this.x+e,this.y+t)},A}(),xs=function(A,e,t){return new _s(A.x+(e.x-A.x)*t,A.y+(e.y-A.y)*t)},Ps=function(){function A(A,e,t,r){this.type=fs.BEZIER_CURVE,this.start=A,this.startControl=e,this.endControl=t,this.end=r}return A.prototype.subdivide=function(e,t){var r=xs(this.start,this.startControl,e),n=xs(this.startControl,this.endControl,e),B=xs(this.endControl,this.end,e),o=xs(r,n,e),s=xs(n,B,e),i=xs(o,s,e);return t?new A(this.start,r,o,i):new A(i,s,B,this.end)},A.prototype.add=function(e,t){return new A(this.start.add(e,t),this.startControl.add(e,t),this.endControl.add(e,t),this.end.add(e,t))},A.prototype.reverse=function(){return new A(this.end,this.endControl,this.startControl,this.start)},A}(),Vs=function(A){return A.type===fs.BEZIER_CURVE},zs=function(){function A(A){var e=A.styles,t=A.bounds,r=Gt(e.borderTopLeftRadius,t.width,t.height),n=r[0],B=r[1],o=Gt(e.borderTopRightRadius,t.width,t.height),s=o[0],i=o[1],a=Gt(e.borderBottomRightRadius,t.width,t.height),c=a[0],Q=a[1],u=Gt(e.borderBottomLeftRadius,t.width,t.height),l=u[0],w=u[1],U=[];U.push((n+s)/t.width),U.push((l+c)/t.width),U.push((B+w)/t.height),U.push((i+Q)/t.height);var g=Math.max.apply(Math,U);g>1&&(n/=g,B/=g,s/=g,i/=g,c/=g,Q/=g,l/=g,w/=g);var h=t.width-s,C=t.height-Q,E=t.width-c,F=t.height-w,d=e.borderTopWidth,f=e.borderRightWidth,H=e.borderBottomWidth,p=e.borderLeftWidth,N=Jt(e.paddingTop,A.bounds.width),K=Jt(e.paddingRight,A.bounds.width),m=Jt(e.paddingBottom,A.bounds.width),I=Jt(e.paddingLeft,A.bounds.width);this.topLeftBorderDoubleOuterBox=n>0||B>0?Xs(t.left+p/3,t.top+d/3,n-p/3,B-d/3,ys.TOP_LEFT):new _s(t.left+p/3,t.top+d/3),this.topRightBorderDoubleOuterBox=n>0||B>0?Xs(t.left+h,t.top+d/3,s-f/3,i-d/3,ys.TOP_RIGHT):new _s(t.left+t.width-f/3,t.top+d/3),this.bottomRightBorderDoubleOuterBox=c>0||Q>0?Xs(t.left+E,t.top+C,c-f/3,Q-H/3,ys.BOTTOM_RIGHT):new _s(t.left+t.width-f/3,t.top+t.height-H/3),this.bottomLeftBorderDoubleOuterBox=l>0||w>0?Xs(t.left+p/3,t.top+F,l-p/3,w-H/3,ys.BOTTOM_LEFT):new _s(t.left+p/3,t.top+t.height-H/3),this.topLeftBorderDoubleInnerBox=n>0||B>0?Xs(t.left+2*p/3,t.top+2*d/3,n-2*p/3,B-2*d/3,ys.TOP_LEFT):new _s(t.left+2*p/3,t.top+2*d/3),this.topRightBorderDoubleInnerBox=n>0||B>0?Xs(t.left+h,t.top+2*d/3,s-2*f/3,i-2*d/3,ys.TOP_RIGHT):new _s(t.left+t.width-2*f/3,t.top+2*d/3),this.bottomRightBorderDoubleInnerBox=c>0||Q>0?Xs(t.left+E,t.top+C,c-2*f/3,Q-2*H/3,ys.BOTTOM_RIGHT):new _s(t.left+t.width-2*f/3,t.top+t.height-2*H/3),this.bottomLeftBorderDoubleInnerBox=l>0||w>0?Xs(t.left+2*p/3,t.top+F,l-2*p/3,w-2*H/3,ys.BOTTOM_LEFT):new _s(t.left+2*p/3,t.top+t.height-2*H/3),this.topLeftBorderStroke=n>0||B>0?Xs(t.left+p/2,t.top+d/2,n-p/2,B-d/2,ys.TOP_LEFT):new _s(t.left+p/2,t.top+d/2),this.topRightBorderStroke=n>0||B>0?Xs(t.left+h,t.top+d/2,s-f/2,i-d/2,ys.TOP_RIGHT):new _s(t.left+t.width-f/2,t.top+d/2),this.bottomRightBorderStroke=c>0||Q>0?Xs(t.left+E,t.top+C,c-f/2,Q-H/2,ys.BOTTOM_RIGHT):new _s(t.left+t.width-f/2,t.top+t.height-H/2),this.bottomLeftBorderStroke=l>0||w>0?Xs(t.left+p/2,t.top+F,l-p/2,w-H/2,ys.BOTTOM_LEFT):new _s(t.left+p/2,t.top+t.height-H/2),this.topLeftBorderBox=n>0||B>0?Xs(t.left,t.top,n,B,ys.TOP_LEFT):new _s(t.left,t.top),this.topRightBorderBox=s>0||i>0?Xs(t.left+h,t.top,s,i,ys.TOP_RIGHT):new _s(t.left+t.width,t.top),this.bottomRightBorderBox=c>0||Q>0?Xs(t.left+E,t.top+C,c,Q,ys.BOTTOM_RIGHT):new _s(t.left+t.width,t.top+t.height),this.bottomLeftBorderBox=l>0||w>0?Xs(t.left,t.top+F,l,w,ys.BOTTOM_LEFT):new _s(t.left,t.top+t.height),this.topLeftPaddingBox=n>0||B>0?Xs(t.left+p,t.top+d,Math.max(0,n-p),Math.max(0,B-d),ys.TOP_LEFT):new _s(t.left+p,t.top+d),this.topRightPaddingBox=s>0||i>0?Xs(t.left+Math.min(h,t.width-f),t.top+d,h>t.width+f?0:Math.max(0,s-f),Math.max(0,i-d),ys.TOP_RIGHT):new _s(t.left+t.width-f,t.top+d),this.bottomRightPaddingBox=c>0||Q>0?Xs(t.left+Math.min(E,t.width-p),t.top+Math.min(C,t.height-H),Math.max(0,c-f),Math.max(0,Q-H),ys.BOTTOM_RIGHT):new _s(t.left+t.width-f,t.top+t.height-H),this.bottomLeftPaddingBox=l>0||w>0?Xs(t.left+p,t.top+Math.min(F,t.height-H),Math.max(0,l-p),Math.max(0,w-H),ys.BOTTOM_LEFT):new _s(t.left+p,t.top+t.height-H),this.topLeftContentBox=n>0||B>0?Xs(t.left+p+I,t.top+d+N,Math.max(0,n-(p+I)),Math.max(0,B-(d+N)),ys.TOP_LEFT):new _s(t.left+p+I,t.top+d+N),this.topRightContentBox=s>0||i>0?Xs(t.left+Math.min(h,t.width+p+I),t.top+d+N,h>t.width+p+I?0:s-p+I,i-(d+N),ys.TOP_RIGHT):new _s(t.left+t.width-(f+K),t.top+d+N),this.bottomRightContentBox=c>0||Q>0?Xs(t.left+Math.min(E,t.width-(p+I)),t.top+Math.min(C,t.height+d+N),Math.max(0,c-(f+K)),Q-(H+m),ys.BOTTOM_RIGHT):new _s(t.left+t.width-(f+K),t.top+t.height-(H+m)),this.bottomLeftContentBox=l>0||w>0?Xs(t.left+p+I,t.top+F,Math.max(0,l-(p+I)),w-(H+m),ys.BOTTOM_LEFT):new _s(t.left+p+I,t.top+t.height-(H+m))}return A}();(function(A){A[A["TOP_LEFT"]=0]="TOP_LEFT",A[A["TOP_RIGHT"]=1]="TOP_RIGHT",A[A["BOTTOM_RIGHT"]=2]="BOTTOM_RIGHT",A[A["BOTTOM_LEFT"]=3]="BOTTOM_LEFT"})(ys||(ys={}));var Xs=function(A,e,t,r,n){var B=(Math.sqrt(2)-1)/3*4,o=t*B,s=r*B,i=A+t,a=e+r;switch(n){case ys.TOP_LEFT:return new Ps(new _s(A,a),new _s(A,a-s),new _s(i-o,e),new _s(i,e));case ys.TOP_RIGHT:return new Ps(new _s(A,e),new _s(A+o,e),new _s(i,a-s),new _s(i,a));case ys.BOTTOM_RIGHT:return new Ps(new _s(i,e),new _s(i,e+s),new _s(A+o,a),new _s(A,a));case ys.BOTTOM_LEFT:default:return new Ps(new _s(i,a),new _s(i-o,a),new _s(A,e+s),new _s(A,e))}},ks=function(A){return[A.topLeftBorderBox,A.topRightBorderBox,A.bottomRightBorderBox,A.bottomLeftBorderBox]},Gs=function(A){return[A.topLeftContentBox,A.topRightContentBox,A.bottomRightContentBox,A.bottomLeftContentBox]},Js=function(A){return[A.topLeftPaddingBox,A.topRightPaddingBox,A.bottomRightPaddingBox,A.bottomLeftPaddingBox]},Ws=function(){function A(A,e,t){this.type=0,this.target=6,this.offsetX=A,this.offsetY=e,this.matrix=t}return A}(),Ys=function(){function A(A,e){this.type=1,this.target=e,this.path=A}return A}(),qs=function(){function A(A){this.type=2,this.target=6,this.opacity=A}return A}(),js=function(A){return 0===A.type},Zs=function(A){return 1===A.type},$s=function(A){return 2===A.type},Ai=function(){function A(A){this.element=A,this.inlineLevel=[],this.nonInlineLevel=[],this.negativeZIndex=[],this.zeroOrAutoZIndexOrTransformedOrOpacity=[],this.positiveZIndex=[],this.nonPositionedFloats=[],this.nonPositionedInlineLevel=[]}return A}(),ei=function(){function A(A,e){if(this.container=A,this.effects=e.slice(0),this.curves=new zs(A),A.styles.opacity<1&&this.effects.push(new qs(A.styles.opacity)),null!==A.styles.transform){var t=A.bounds.left+A.styles.transformOrigin[0].number,r=A.bounds.top+A.styles.transformOrigin[1].number,n=A.styles.transform;this.effects.push(new Ws(t,r,n))}if(A.styles.overflowX!==eB.VISIBLE){var B=ks(this.curves),o=Js(this.curves);Ss(B,o)?this.effects.push(new Ys(B,6)):(this.effects.push(new Ys(B,2)),this.effects.push(new Ys(o,4)))}}return A.prototype.getParentEffects=function(){var A=this.effects.slice(0);if(this.container.styles.overflowX!==eB.VISIBLE){var e=ks(this.curves),t=Js(this.curves);Ss(e,t)||A.push(new Ys(t,6))}return A},A}(),ti=function(A,e,t,r){A.container.elements.forEach((function(n){var B=kB(n.flags,4),o=kB(n.flags,2),s=new ei(n,A.getParentEffects());kB(n.styles.display,2048)&&r.push(s);var i=kB(n.flags,8)?[]:r;if(B||o){var a=B||n.styles.isPositioned()?t:e,c=new Ai(s);if(n.styles.isPositioned()||n.styles.opacity<1||n.styles.isTransformed()){var Q=n.styles.zIndex.order;if(Q<0){var u=0;a.negativeZIndex.some((function(A,e){return Q>A.element.container.styles.zIndex.order?(u=e,!1):u>0})),a.negativeZIndex.splice(u,0,c)}else if(Q>0){var l=0;a.positiveZIndex.some((function(A,e){return Q>=A.element.container.styles.zIndex.order?(l=e+1,!1):l>0})),a.positiveZIndex.splice(l,0,c)}else a.zeroOrAutoZIndexOrTransformedOrOpacity.push(c)}else n.styles.isFloating()?a.nonPositionedFloats.push(c):a.nonPositionedInlineLevel.push(c);ti(s,c,B?c:t,i)}else n.styles.isInlineLevel()?e.inlineLevel.push(s):e.nonInlineLevel.push(s),ti(s,e,t,i);kB(n.flags,8)&&ri(n,i)}))},ri=function(A,e){for(var t=A instanceof ho?A.start:1,r=A instanceof ho&&A.reversed,n=0;n0&&A.intrinsicHeight>0){var r=ui(A),n=Js(e);this.path(n),this.ctx.save(),this.ctx.clip(),this.ctx.drawImage(t,0,0,A.intrinsicWidth,A.intrinsicHeight,r.left,r.top,r.width,r.height),this.ctx.restore()}},A.prototype.renderNodeContent=function(e){return r(this,void 0,void 0,(function(){var t,r,o,s,i,a,c,Q,u,l,w,U,g,h,C;return n(this,(function(n){switch(n.label){case 0:this.applyEffects(e.effects,4),t=e.container,r=e.curves,o=t.styles,s=0,i=t.textNodes,n.label=1;case 1:return s0&&p>0&&(C=r.ctx.createPattern(U,"repeat"),r.renderRepeat(F,C,K,m))):on(t)&&(E=Ui(A,e,[null,null,null]),F=E[0],d=E[1],f=E[2],H=E[3],p=E[4],N=0===t.position.length?[Xt]:t.position,K=Jt(N[0],H),m=Jt(N[N.length-1],p),I=Hr(t,K,m,H,p),T=I[0],R=I[1],T>0&&T>0&&(b=r.ctx.createRadialGradient(d+K,f+m,0,d+K,f+m,T),Cr(t.stops,2*T).forEach((function(A){return b.addColorStop(A.stop,nr(A.color))})),r.path(F),r.ctx.fillStyle=b,T!==R?(v=A.bounds.left+.5*A.bounds.width,O=A.bounds.top+.5*A.bounds.height,L=R/T,D=1/L,r.ctx.save(),r.ctx.translate(v,O),r.ctx.transform(1,0,0,L,0,0),r.ctx.translate(-v,-O),r.ctx.fillRect(d,D*(f-O)+O,H,p*D),r.ctx.restore()):r.ctx.fill())),n.label=6;case 6:return e--,[2]}}))},r=this,B=0,o=A.styles.backgroundImage.slice(0).reverse(),i.label=1;case 1:return B0?a.style!==Cn.DASHED?[3,5]:[4,this.renderDashedDottedBorder(a.color,a.width,o,A.curves,Cn.DASHED)]:[3,11]):[3,13];case 4:return n.sent(),[3,11];case 5:return a.style!==Cn.DOTTED?[3,7]:[4,this.renderDashedDottedBorder(a.color,a.width,o,A.curves,Cn.DOTTED)];case 6:return n.sent(),[3,11];case 7:return a.style!==Cn.DOUBLE?[3,9]:[4,this.renderDoubleBorder(a.color,a.width,o,A.curves)];case 8:return n.sent(),[3,11];case 9:return[4,this.renderSolidBorder(a.color,o,A.curves)];case 10:n.sent(),n.label=11;case 11:o++,n.label=12;case 12:return s++,[3,3];case 13:return[2]}}))}))},A.prototype.renderDashedDottedBorder=function(A,e,t,B,o){return r(this,void 0,void 0,(function(){var r,s,i,a,c,Q,u,l,w,U,g,h,C,E,F,d;return n(this,(function(n){return this.ctx.save(),r=ii(B,t),s=Bi(B,t),o===Cn.DASHED&&(this.path(s),this.ctx.clip()),Vs(s[0])?(i=s[0].start.x,a=s[0].start.y):(i=s[0].x,a=s[0].y),Vs(s[1])?(c=s[1].end.x,Q=s[1].end.y):(c=s[1].x,Q=s[1].y),u=0===t||2===t?Math.abs(i-c):Math.abs(a-Q),this.ctx.beginPath(),o===Cn.DOTTED?this.formatPath(r):this.formatPath(s.slice(0,2)),l=e<3?3*e:2*e,w=e<3?2*e:e,o===Cn.DOTTED&&(l=e,w=e),U=!0,u<=2*l?U=!1:u<=2*l+w?(g=u/(2*l+w),l*=g,w*=g):(h=Math.floor((u+w)/(l+w)),C=(u-h*l)/(h-1),E=(u-(h+1)*l)/h,w=E<=0||Math.abs(w-C) {\n if (value === '') {\n if (rule.field === 'imageURL') {\n this.$message({\n message: 'Upload cover image is required',\n type: 'error'\n })\n } else {\n this.$message({\n message: rule.field + ' 是必填的',\n type: 'error'\n })\n }\n callback(new Error(rule.field + ' 是必填的'))\n } else {\n callback()\n }\n }\n\n private postForm = Object.assign({}, defaultCouponData)\n private loading = false\n private tinymceActive = true\n private rules = {\n shop: [{ validator: this.validateRequire, trigger: ['blur', 'change'] }],\n name: [{ validator: this.validateRequire }]\n }\n\n private allDepts = []\n\n private tempTagView?: ITagView\n\n private dataRange: Date[] = []\n private initContent = ''\n\n get lang() {\n return AppModule.language\n }\n\n $refs!: {\n postForm: HTMLFormElement\n }\n\n get userLevel() {\n return UserModule.level\n }\n\n created() {\n const id = this.$route.params?.id\n if (UserModule.level === 1) {\n this.getRemoteDeptList('')\n EventBus.$on(EVENT_SHOP_UPDATE, () => {\n this.getRemoteDeptList()\n })\n } else {\n this.postForm.shop = UserModule.department\n }\n if (id) {\n this.fetchData(id)\n }\n this.tempTagView = Object.assign({}, this.$route)\n }\n\n beforeDestory() {\n if (UserModule.level === 1) {\n EventBus.$off(EVENT_SHOP_UPDATE)\n }\n }\n\n @Watch('dataRange')\n private onDataRangeChange(val: Date[]) {\n console.log(`onDataRangeChange ${val}`)\n if (!val) {\n return\n }\n this.postForm.validBegin = val[0].getTime()\n this.postForm.validEnd = val[1].getTime()\n }\n\n @Watch('postForm.content')\n private onContentChange(val: string) {\n setTimeout(() => {\n this.generatorImage()\n }, 1000)\n }\n\n private async fetchData(id: string) {\n try {\n const { data } = await getCoupon(id, { /* Your params here */ })\n console.log(data)\n this.postForm = data\n this.initContent = this.postForm.content\n if (this.postForm.validBegin && this.postForm.validEnd) {\n this.dataRange = [new Date(this.postForm.validBegin), new Date(this.postForm.validEnd)]\n }\n // Just for test\n const title = this.lang === 'zh' ? '编辑优惠券' : 'Edit Coupon'\n // Set tagsview title\n this.setTagsViewTitle(title)\n // Set page title\n this.setPageTitle(title)\n } catch (err) {\n console.error(err)\n }\n }\n\n private setTagsViewTitle(title: string) {\n const tagView = this.tempTagView\n if (tagView) {\n tagView.title = `${title}-${this.postForm._id}`\n TagsViewModule.updateVisitedView(tagView)\n }\n }\n\n private setPageTitle(title: string) {\n document.title = `${title} - ${this.postForm._id}`\n }\n\n private async submitForm() {\n try {\n await this.$refs.postForm.validate()\n this.loading = true\n if (((this.postForm.content !== this.initContent) || !this.postForm.image) && this.postForm.content) {\n const resData: any = await this.requestUpload()\n if (!resData.errorCode) {\n this.postForm.image = resData.url_cdn\n } else {\n console.error('upload coupon image error!')\n }\n }\n if (this.postForm.content.search(/meta name=.+?viewport/) === -1) {\n const metaStr = '\\n\\n'\n this.postForm.content = this.postForm.content.replace('', `${metaStr}`)\n }\n const { data } = await saveCoupon(this.postForm)\n this.postForm = data\n if (this.postForm.validBegin && this.postForm.validEnd) {\n this.dataRange = [new Date(this.postForm.validBegin), new Date(this.postForm.validEnd)]\n }\n this.loading = false\n this.$notify({\n title: 'Success',\n message: '优惠券保存成功',\n type: 'success',\n duration: 2000\n })\n EventBus.$emit(EVENT_COUPON_UPDATE, {})\n } catch (err) {\n console.error('Submit Error!')\n this.loading = false\n return false\n }\n }\n\n private async onCancel() {\n try {\n await this.$confirm('确认不保存当前优惠券信息?', 'Warning', {\n confirmButtonText: '确定',\n cancelButtonText: '取消',\n type: 'warning'\n })\n this.$store.dispatch('delView', this.$route)\n this.$router.go(-1)\n } catch (e) {\n\n }\n }\n\n private async getRemoteDeptList(name?: string) {\n const { data } = await getShops({ key: name })\n if (!data.records) return\n this.allDepts = data.records\n }\n\n private generatorImage() {\n console.log('update pre image')\n const iframe = document.getElementsByClassName('tox-edit-area__iframe')[0] as HTMLIFrameElement\n const canvas = document.getElementById('pre_canvas') as HTMLCanvasElement\n const ctx = canvas.getContext('2d') as CanvasRenderingContext2D\n ctx.clearRect(0, 0, canvas.width, canvas.height)\n var iframedoc = iframe.contentDocument || (iframe.contentWindow?.document as Document)\n iframedoc.body.style.margin = '0px'\n html2canvas(iframedoc.body, {\n canvas,\n useCORS: true,\n x: 0,\n y: 0\n })\n }\n\n private requestUpload() {\n const url = 'https://opm.kingsome.cn/api/upload'\n const imgFormat = 'png'\n const mime = 'image/png'\n const params = { sub_path: 'game', type: 'image' }\n const headers: Object = {}\n const field = 'image-file'\n const withCredentials = false\n const method = 'POST'\n const canvas = document.getElementById('pre_canvas') as HTMLCanvasElement\n const createImgUrl = canvas.toDataURL(mime)\n\n // eslint-disable-next-line @typescript-eslint/no-this-alias\n const self = this\n const fmData = new FormData()\n\n // 添加其他参数\n if (typeof params === 'object' && params) {\n Object.keys(params).forEach((k) => {\n fmData.append(k, (params as any)[k] + '')\n })\n }\n\n // 将field的添加放到表单域的最后,以支持阿里云OSS的表单上传\n fmData.append(field, data2blob(createImgUrl, mime), field + '.' + imgFormat)\n\n // 上传文件\n return new Promise(function(resolve, reject) {\n const client = new XMLHttpRequest()\n client.open(method, url, true)\n client.withCredentials = withCredentials\n client.onreadystatechange = function() {\n if (this.readyState !== 4) {\n return\n }\n if (this.status === 200 || this.status === 201 || this.status === 202) {\n resolve(JSON.parse(this.responseText))\n } else {\n reject && reject(this.status)\n }\n }\n client.upload.addEventListener('progress', function(event: any) {\n if (event.lengthComputable) {\n console.log('upload progress: ' + (100 * Math.round(event.loaded) / event.total))\n }\n }, false) // 监听进度\n // 设置header\n if (typeof headers === 'object' && headers) {\n Object.keys(headers).forEach((k: string) => {\n client.setRequestHeader(k, (headers as any)[k] + '')\n })\n }\n client.send(fmData)\n })\n }\n}\n","import mod from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./coupon_edit.vue?vue&type=script&lang=ts&\"; export default mod; export * from \"-!../../../node_modules/@vue/cli-plugin-typescript/node_modules/cache-loader/dist/cjs.js??ref--13-0!../../../node_modules/@vue/cli-plugin-typescript/node_modules/thread-loader/dist/cjs.js!../../../node_modules/babel-loader/lib/index.js!../../../node_modules/ts-loader/index.js??ref--13-3!../../../node_modules/@vue/cli-service/node_modules/cache-loader/dist/cjs.js??ref--0-0!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/index.js??vue-loader-options!./coupon_edit.vue?vue&type=script&lang=ts&\"","import { render, staticRenderFns } from \"./coupon_edit.vue?vue&type=template&id=09384920&scoped=true&\"\nimport script from \"./coupon_edit.vue?vue&type=script&lang=ts&\"\nexport * from \"./coupon_edit.vue?vue&type=script&lang=ts&\"\nimport style0 from \"./coupon_edit.vue?vue&type=style&index=0&id=09384920&lang=scss&scoped=true&\"\n\n\n/* normalize component */\nimport normalizer from \"!../../../node_modules/@vue/cli-service/node_modules/vue-loader/lib/runtime/componentNormalizer.js\"\nvar component = normalizer(\n script,\n render,\n staticRenderFns,\n false,\n null,\n \"09384920\",\n null\n \n)\n\nexport default component.exports","import request from '@/utils/request'\n\nexport interface ICouponData {\n _id?: string\n name: string\n createdAt?: Date\n shop: string\n content: string\n comment?: string\n total: number\n count: number\n validBegin?: number\n validEnd?: number\n validDays?: number\n limitOne: number\n image?: string\n}\n\nexport const defaultCouponData: ICouponData = {\n shop: '',\n name: '',\n content: '',\n total: 0,\n count: 0,\n limitOne: 0,\n validDays: 0\n}\n\nexport const getCoupons = (params: any) =>\n request({\n url: '/api/coupons',\n method: 'post',\n params\n })\n\nexport const getCoupon = (id: string, params: any) =>\n request({\n url: `/api/coupon/${id}`,\n method: 'get',\n params\n })\n\nexport const saveCoupon = (data: any) =>\n request({\n url: '/api/coupon/save',\n method: 'post',\n data\n })\n\nexport const deleteCoupon = (id: string) =>\n request({\n url: `/api/coupon/${id}/delete`,\n method: 'post'\n })\n","/**\n * database64文件格式转换为2进制\n *\n * @param {[String]} data dataURL 的格式为 “data:image/png;base64,****”,逗号之前都是一些说明性的文字,我们只需要逗号之后的就行了\n * @param {[String]} mime [description]\n * @return {[blob]} [description]\n */\nexport function data2blob(data: any, mime: any) {\n data = data.split(',')[1]\n data = window.atob(data)\n const ia = new Uint8Array(data.length)\n for (let i = 0; i < data.length; i++) {\n ia[i] = data.charCodeAt(i)\n }\n // canvas.toDataURL 返回的默认格式就是 image/png\n return new Blob([ia], {\n type: mime\n })\n}\n","/*!\n * html2canvas 1.0.0 \n * Copyright (c) 2021 Niklas von Hertzen \n * Released under MIT License\n */\n(function (global, factory) {\n typeof exports === 'object' && typeof module !== 'undefined' ? module.exports = factory() :\n typeof define === 'function' && define.amd ? define(factory) :\n (global = global || self, global.html2canvas = factory());\n}(this, function () { 'use strict';\n\n /*! *****************************************************************************\r\n Copyright (c) Microsoft Corporation. All rights reserved.\r\n Licensed under the Apache License, Version 2.0 (the \"License\"); you may not use\r\n this file except in compliance with the License. You may obtain a copy of the\r\n License at http://www.apache.org/licenses/LICENSE-2.0\r\n\r\n THIS CODE IS PROVIDED ON AN *AS IS* BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY\r\n KIND, EITHER EXPRESS OR IMPLIED, INCLUDING WITHOUT LIMITATION ANY IMPLIED\r\n WARRANTIES OR CONDITIONS OF TITLE, FITNESS FOR A PARTICULAR PURPOSE,\r\n MERCHANTABLITY OR NON-INFRINGEMENT.\r\n\r\n See the Apache Version 2.0 License for specific language governing permissions\r\n and limitations under the License.\r\n ***************************************************************************** */\r\n /* global Reflect, Promise */\r\n\r\n var extendStatics = function(d, b) {\r\n extendStatics = Object.setPrototypeOf ||\r\n ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||\r\n function (d, b) { for (var p in b) if (b.hasOwnProperty(p)) d[p] = b[p]; };\r\n return extendStatics(d, b);\r\n };\r\n\r\n function __extends(d, b) {\r\n extendStatics(d, b);\r\n function __() { this.constructor = d; }\r\n d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());\r\n }\r\n\r\n var __assign = function() {\r\n __assign = Object.assign || function __assign(t) {\r\n for (var s, i = 1, n = arguments.length; i < n; i++) {\r\n s = arguments[i];\r\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];\r\n }\r\n return t;\r\n };\r\n return __assign.apply(this, arguments);\r\n };\r\n\r\n function __awaiter(thisArg, _arguments, P, generator) {\r\n return new (P || (P = Promise))(function (resolve, reject) {\r\n function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }\r\n function rejected(value) { try { step(generator[\"throw\"](value)); } catch (e) { reject(e); } }\r\n function step(result) { result.done ? resolve(result.value) : new P(function (resolve) { resolve(result.value); }).then(fulfilled, rejected); }\r\n step((generator = generator.apply(thisArg, _arguments || [])).next());\r\n });\r\n }\r\n\r\n function __generator(thisArg, body) {\r\n var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;\r\n return g = { next: verb(0), \"throw\": verb(1), \"return\": verb(2) }, typeof Symbol === \"function\" && (g[Symbol.iterator] = function() { return this; }), g;\r\n function verb(n) { return function (v) { return step([n, v]); }; }\r\n function step(op) {\r\n if (f) throw new TypeError(\"Generator is already executing.\");\r\n while (_) try {\r\n if (f = 1, y && (t = op[0] & 2 ? y[\"return\"] : op[0] ? y[\"throw\"] || ((t = y[\"return\"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;\r\n if (y = 0, t) op = [op[0] & 2, t.value];\r\n switch (op[0]) {\r\n case 0: case 1: t = op; break;\r\n case 4: _.label++; return { value: op[1], done: false };\r\n case 5: _.label++; y = op[1]; op = [0]; continue;\r\n case 7: op = _.ops.pop(); _.trys.pop(); continue;\r\n default:\r\n if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }\r\n if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }\r\n if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }\r\n if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }\r\n if (t[2]) _.ops.pop();\r\n _.trys.pop(); continue;\r\n }\r\n op = body.call(thisArg, _);\r\n } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }\r\n if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };\r\n }\r\n }\n\n var Bounds = /** @class */ (function () {\r\n function Bounds(x, y, w, h) {\r\n this.left = x;\r\n this.top = y;\r\n this.width = w;\r\n this.height = h;\r\n }\r\n Bounds.prototype.add = function (x, y, w, h) {\r\n return new Bounds(this.left + x, this.top + y, this.width + w, this.height + h);\r\n };\r\n Bounds.fromClientRect = function (clientRect) {\r\n return new Bounds(clientRect.left, clientRect.top, clientRect.width, clientRect.height);\r\n };\r\n return Bounds;\r\n }());\r\n var parseBounds = function (node) {\r\n return Bounds.fromClientRect(node.getBoundingClientRect());\r\n };\r\n var parseDocumentSize = function (document) {\r\n var body = document.body;\r\n var documentElement = document.documentElement;\r\n if (!body || !documentElement) {\r\n throw new Error(\"Unable to get document size\");\r\n }\r\n var width = Math.max(Math.max(body.scrollWidth, documentElement.scrollWidth), Math.max(body.offsetWidth, documentElement.offsetWidth), Math.max(body.clientWidth, documentElement.clientWidth));\r\n var height = Math.max(Math.max(body.scrollHeight, documentElement.scrollHeight), Math.max(body.offsetHeight, documentElement.offsetHeight), Math.max(body.clientHeight, documentElement.clientHeight));\r\n return new Bounds(0, 0, width, height);\r\n };\n\n /*\n * css-line-break 1.1.1 \n * Copyright (c) 2019 Niklas von Hertzen \n * Released under MIT License\n */\n var toCodePoints = function (str) {\r\n var codePoints = [];\r\n var i = 0;\r\n var length = str.length;\r\n while (i < length) {\r\n var value = str.charCodeAt(i++);\r\n if (value >= 0xd800 && value <= 0xdbff && i < length) {\r\n var extra = str.charCodeAt(i++);\r\n if ((extra & 0xfc00) === 0xdc00) {\r\n codePoints.push(((value & 0x3ff) << 10) + (extra & 0x3ff) + 0x10000);\r\n }\r\n else {\r\n codePoints.push(value);\r\n i--;\r\n }\r\n }\r\n else {\r\n codePoints.push(value);\r\n }\r\n }\r\n return codePoints;\r\n };\r\n var fromCodePoint = function () {\r\n var codePoints = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n codePoints[_i] = arguments[_i];\r\n }\r\n if (String.fromCodePoint) {\r\n return String.fromCodePoint.apply(String, codePoints);\r\n }\r\n var length = codePoints.length;\r\n if (!length) {\r\n return '';\r\n }\r\n var codeUnits = [];\r\n var index = -1;\r\n var result = '';\r\n while (++index < length) {\r\n var codePoint = codePoints[index];\r\n if (codePoint <= 0xffff) {\r\n codeUnits.push(codePoint);\r\n }\r\n else {\r\n codePoint -= 0x10000;\r\n codeUnits.push((codePoint >> 10) + 0xd800, codePoint % 0x400 + 0xdc00);\r\n }\r\n if (index + 1 === length || codeUnits.length > 0x4000) {\r\n result += String.fromCharCode.apply(String, codeUnits);\r\n codeUnits.length = 0;\r\n }\r\n }\r\n return result;\r\n };\r\n var chars = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';\r\n // Use a lookup table to find the index.\r\n var lookup = typeof Uint8Array === 'undefined' ? [] : new Uint8Array(256);\r\n for (var i = 0; i < chars.length; i++) {\r\n lookup[chars.charCodeAt(i)] = i;\r\n }\r\n var decode = function (base64) {\r\n var bufferLength = base64.length * 0.75, len = base64.length, i, p = 0, encoded1, encoded2, encoded3, encoded4;\r\n if (base64[base64.length - 1] === '=') {\r\n bufferLength--;\r\n if (base64[base64.length - 2] === '=') {\r\n bufferLength--;\r\n }\r\n }\r\n var buffer = typeof ArrayBuffer !== 'undefined' &&\r\n typeof Uint8Array !== 'undefined' &&\r\n typeof Uint8Array.prototype.slice !== 'undefined'\r\n ? new ArrayBuffer(bufferLength)\r\n : new Array(bufferLength);\r\n var bytes = Array.isArray(buffer) ? buffer : new Uint8Array(buffer);\r\n for (i = 0; i < len; i += 4) {\r\n encoded1 = lookup[base64.charCodeAt(i)];\r\n encoded2 = lookup[base64.charCodeAt(i + 1)];\r\n encoded3 = lookup[base64.charCodeAt(i + 2)];\r\n encoded4 = lookup[base64.charCodeAt(i + 3)];\r\n bytes[p++] = (encoded1 << 2) | (encoded2 >> 4);\r\n bytes[p++] = ((encoded2 & 15) << 4) | (encoded3 >> 2);\r\n bytes[p++] = ((encoded3 & 3) << 6) | (encoded4 & 63);\r\n }\r\n return buffer;\r\n };\r\n var polyUint16Array = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 2) {\r\n bytes.push((buffer[i + 1] << 8) | buffer[i]);\r\n }\r\n return bytes;\r\n };\r\n var polyUint32Array = function (buffer) {\r\n var length = buffer.length;\r\n var bytes = [];\r\n for (var i = 0; i < length; i += 4) {\r\n bytes.push((buffer[i + 3] << 24) | (buffer[i + 2] << 16) | (buffer[i + 1] << 8) | buffer[i]);\r\n }\r\n return bytes;\r\n };\n\n /** Shift size for getting the index-2 table offset. */\r\n var UTRIE2_SHIFT_2 = 5;\r\n /** Shift size for getting the index-1 table offset. */\r\n var UTRIE2_SHIFT_1 = 6 + 5;\r\n /**\r\n * Shift size for shifting left the index array values.\r\n * Increases possible data size with 16-bit index values at the cost\r\n * of compactability.\r\n * This requires data blocks to be aligned by UTRIE2_DATA_GRANULARITY.\r\n */\r\n var UTRIE2_INDEX_SHIFT = 2;\r\n /**\r\n * Difference between the two shift sizes,\r\n * for getting an index-1 offset from an index-2 offset. 6=11-5\r\n */\r\n var UTRIE2_SHIFT_1_2 = UTRIE2_SHIFT_1 - UTRIE2_SHIFT_2;\r\n /**\r\n * The part of the index-2 table for U+D800..U+DBFF stores values for\r\n * lead surrogate code _units_ not code _points_.\r\n * Values for lead surrogate code _points_ are indexed with this portion of the table.\r\n * Length=32=0x20=0x400>>UTRIE2_SHIFT_2. (There are 1024=0x400 lead surrogates.)\r\n */\r\n var UTRIE2_LSCP_INDEX_2_OFFSET = 0x10000 >> UTRIE2_SHIFT_2;\r\n /** Number of entries in a data block. 32=0x20 */\r\n var UTRIE2_DATA_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_2;\r\n /** Mask for getting the lower bits for the in-data-block offset. */\r\n var UTRIE2_DATA_MASK = UTRIE2_DATA_BLOCK_LENGTH - 1;\r\n var UTRIE2_LSCP_INDEX_2_LENGTH = 0x400 >> UTRIE2_SHIFT_2;\r\n /** Count the lengths of both BMP pieces. 2080=0x820 */\r\n var UTRIE2_INDEX_2_BMP_LENGTH = UTRIE2_LSCP_INDEX_2_OFFSET + UTRIE2_LSCP_INDEX_2_LENGTH;\r\n /**\r\n * The 2-byte UTF-8 version of the index-2 table follows at offset 2080=0x820.\r\n * Length 32=0x20 for lead bytes C0..DF, regardless of UTRIE2_SHIFT_2.\r\n */\r\n var UTRIE2_UTF8_2B_INDEX_2_OFFSET = UTRIE2_INDEX_2_BMP_LENGTH;\r\n var UTRIE2_UTF8_2B_INDEX_2_LENGTH = 0x800 >> 6; /* U+0800 is the first code point after 2-byte UTF-8 */\r\n /**\r\n * The index-1 table, only used for supplementary code points, at offset 2112=0x840.\r\n * Variable length, for code points up to highStart, where the last single-value range starts.\r\n * Maximum length 512=0x200=0x100000>>UTRIE2_SHIFT_1.\r\n * (For 0x100000 supplementary code points U+10000..U+10ffff.)\r\n *\r\n * The part of the index-2 table for supplementary code points starts\r\n * after this index-1 table.\r\n *\r\n * Both the index-1 table and the following part of the index-2 table\r\n * are omitted completely if there is only BMP data.\r\n */\r\n var UTRIE2_INDEX_1_OFFSET = UTRIE2_UTF8_2B_INDEX_2_OFFSET + UTRIE2_UTF8_2B_INDEX_2_LENGTH;\r\n /**\r\n * Number of index-1 entries for the BMP. 32=0x20\r\n * This part of the index-1 table is omitted from the serialized form.\r\n */\r\n var UTRIE2_OMITTED_BMP_INDEX_1_LENGTH = 0x10000 >> UTRIE2_SHIFT_1;\r\n /** Number of entries in an index-2 block. 64=0x40 */\r\n var UTRIE2_INDEX_2_BLOCK_LENGTH = 1 << UTRIE2_SHIFT_1_2;\r\n /** Mask for getting the lower bits for the in-index-2-block offset. */\r\n var UTRIE2_INDEX_2_MASK = UTRIE2_INDEX_2_BLOCK_LENGTH - 1;\r\n var slice16 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint16Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var slice32 = function (view, start, end) {\r\n if (view.slice) {\r\n return view.slice(start, end);\r\n }\r\n return new Uint32Array(Array.prototype.slice.call(view, start, end));\r\n };\r\n var createTrieFromBase64 = function (base64) {\r\n var buffer = decode(base64);\r\n var view32 = Array.isArray(buffer) ? polyUint32Array(buffer) : new Uint32Array(buffer);\r\n var view16 = Array.isArray(buffer) ? polyUint16Array(buffer) : new Uint16Array(buffer);\r\n var headerLength = 24;\r\n var index = slice16(view16, headerLength / 2, view32[4] / 2);\r\n var data = view32[5] === 2\r\n ? slice16(view16, (headerLength + view32[4]) / 2)\r\n : slice32(view32, Math.ceil((headerLength + view32[4]) / 4));\r\n return new Trie(view32[0], view32[1], view32[2], view32[3], index, data);\r\n };\r\n var Trie = /** @class */ (function () {\r\n function Trie(initialValue, errorValue, highStart, highValueIndex, index, data) {\r\n this.initialValue = initialValue;\r\n this.errorValue = errorValue;\r\n this.highStart = highStart;\r\n this.highValueIndex = highValueIndex;\r\n this.index = index;\r\n this.data = data;\r\n }\r\n /**\r\n * Get the value for a code point as stored in the Trie.\r\n *\r\n * @param codePoint the code point\r\n * @return the value\r\n */\r\n Trie.prototype.get = function (codePoint) {\r\n var ix;\r\n if (codePoint >= 0) {\r\n if (codePoint < 0x0d800 || (codePoint > 0x0dbff && codePoint <= 0x0ffff)) {\r\n // Ordinary BMP code point, excluding leading surrogates.\r\n // BMP uses a single level lookup. BMP index starts at offset 0 in the Trie2 index.\r\n // 16 bit data is stored in the index array itself.\r\n ix = this.index[codePoint >> UTRIE2_SHIFT_2];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0xffff) {\r\n // Lead Surrogate Code Point. A Separate index section is stored for\r\n // lead surrogate code units and code points.\r\n // The main index has the code unit data.\r\n // For this function, we need the code point data.\r\n // Note: this expression could be refactored for slightly improved efficiency, but\r\n // surrogate code points will be so rare in practice that it's not worth it.\r\n ix = this.index[UTRIE2_LSCP_INDEX_2_OFFSET + ((codePoint - 0xd800) >> UTRIE2_SHIFT_2)];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint < this.highStart) {\r\n // Supplemental code point, use two-level lookup.\r\n ix = UTRIE2_INDEX_1_OFFSET - UTRIE2_OMITTED_BMP_INDEX_1_LENGTH + (codePoint >> UTRIE2_SHIFT_1);\r\n ix = this.index[ix];\r\n ix += (codePoint >> UTRIE2_SHIFT_2) & UTRIE2_INDEX_2_MASK;\r\n ix = this.index[ix];\r\n ix = (ix << UTRIE2_INDEX_SHIFT) + (codePoint & UTRIE2_DATA_MASK);\r\n return this.data[ix];\r\n }\r\n if (codePoint <= 0x10ffff) {\r\n return this.data[this.highValueIndex];\r\n }\r\n }\r\n // Fall through. The code point is outside of the legal range of 0..0x10ffff.\r\n return this.errorValue;\r\n };\r\n return Trie;\r\n }());\n\n var base64 = 'KwAAAAAAAAAACA4AIDoAAPAfAAACAAAAAAAIABAAGABAAEgAUABYAF4AZgBeAGYAYABoAHAAeABeAGYAfACEAIAAiACQAJgAoACoAK0AtQC9AMUAXgBmAF4AZgBeAGYAzQDVAF4AZgDRANkA3gDmAOwA9AD8AAQBDAEUARoBIgGAAIgAJwEvATcBPwFFAU0BTAFUAVwBZAFsAXMBewGDATAAiwGTAZsBogGkAawBtAG8AcIBygHSAdoB4AHoAfAB+AH+AQYCDgIWAv4BHgImAi4CNgI+AkUCTQJTAlsCYwJrAnECeQKBAk0CiQKRApkCoQKoArACuALAAsQCzAIwANQC3ALkAjAA7AL0AvwCAQMJAxADGAMwACADJgMuAzYDPgOAAEYDSgNSA1IDUgNaA1oDYANiA2IDgACAAGoDgAByA3YDfgOAAIQDgACKA5IDmgOAAIAAogOqA4AAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAK8DtwOAAIAAvwPHA88D1wPfAyAD5wPsA/QD/AOAAIAABAQMBBIEgAAWBB4EJgQuBDMEIAM7BEEEXgBJBCADUQRZBGEEaQQwADAAcQQ+AXkEgQSJBJEEgACYBIAAoASoBK8EtwQwAL8ExQSAAIAAgACAAIAAgACgAM0EXgBeAF4AXgBeAF4AXgBeANUEXgDZBOEEXgDpBPEE+QQBBQkFEQUZBSEFKQUxBTUFPQVFBUwFVAVcBV4AYwVeAGsFcwV7BYMFiwWSBV4AmgWgBacFXgBeAF4AXgBeAKsFXgCyBbEFugW7BcIFwgXIBcIFwgXQBdQF3AXkBesF8wX7BQMGCwYTBhsGIwYrBjMGOwZeAD8GRwZNBl4AVAZbBl4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAGMGXgBqBnEGXgBeAF4AXgBeAF4AXgBeAF4AXgB5BoAG4wSGBo4GkwaAAIADHgR5AF4AXgBeAJsGgABGA4AAowarBrMGswagALsGwwbLBjAA0wbaBtoG3QbaBtoG2gbaBtoG2gblBusG8wb7BgMHCwcTBxsHCwcjBysHMAc1BzUHOgdCB9oGSgdSB1oHYAfaBloHaAfaBlIH2gbaBtoG2gbaBtoG2gbaBjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHbQdeAF4ANQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQd1B30HNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B4MH2gaKB68EgACAAIAAgACAAIAAgACAAI8HlwdeAJ8HpweAAIAArwe3B14AXgC/B8UHygcwANAH2AfgB4AA6AfwBz4B+AcACFwBCAgPCBcIogEYAR8IJwiAAC8INwg/CCADRwhPCFcIXwhnCEoDGgSAAIAAgABvCHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIfQh3CHgIeQh6CHsIfAh9CHcIeAh5CHoIewh8CH0Idwh4CHkIegh7CHwIhAiLCI4IMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlggwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAANQc1BzUHNQc1BzUHNQc1BzUHNQc1B54INQc1B6II2gaqCLIIugiAAIAAvgjGCIAAgACAAIAAgACAAIAAgACAAIAAywiHAYAA0wiAANkI3QjlCO0I9Aj8CIAAgACAAAIJCgkSCRoJIgknCTYHLwk3CZYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiWCJYIlgiAAIAAAAFAAXgBeAGAAcABeAHwAQACQAKAArQC9AJ4AXgBeAE0A3gBRAN4A7AD8AMwBGgEAAKcBNwEFAUwBXAF4QkhCmEKnArcCgAHHAsABz4LAAcABwAHAAd+C6ABoAG+C/4LAAcABwAHAAc+DF4MAAcAB54M3gweDV4Nng3eDaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAGgAaABoAEeDqABVg6WDqABoQ6gAaABoAHXDvcONw/3DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DvcO9w73DncPAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcABwAHAAcAB7cPPwlGCU4JMACAAIAAgABWCV4JYQmAAGkJcAl4CXwJgAkwADAAMAAwAIgJgACLCZMJgACZCZ8JowmrCYAAswkwAF4AXgB8AIAAuwkABMMJyQmAAM4JgADVCTAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAqwYWBNkIMAAwADAAMADdCeAJ6AnuCR4E9gkwAP4JBQoNCjAAMACAABUK0wiAAB0KJAosCjQKgAAwADwKQwqAAEsKvQmdCVMKWwowADAAgACAALcEMACAAGMKgABrCjAAMAAwADAAMAAwADAAMAAwADAAMAAeBDAAMAAwADAAMAAwADAAMAAwADAAMAAwAIkEPQFzCnoKiQSCCooKkAqJBJgKoAqkCokEGAGsCrQKvArBCjAAMADJCtEKFQHZCuEK/gHpCvEKMAAwADAAMACAAIwE+QowAIAAPwEBCzAAMAAwADAAMACAAAkLEQswAIAAPwEZCyELgAAOCCkLMAAxCzkLMAAwADAAMAAwADAAXgBeAEELMAAwADAAMAAwADAAMAAwAEkLTQtVC4AAXAtkC4AAiQkwADAAMAAwADAAMAAwADAAbAtxC3kLgAuFC4sLMAAwAJMLlwufCzAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAApwswADAAMACAAIAAgACvC4AAgACAAIAAgACAALcLMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAvwuAAMcLgACAAIAAgACAAIAAyguAAIAAgACAAIAA0QswADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAANkLgACAAIAA4AswADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAIAAgACJCR4E6AswADAAhwHwC4AA+AsADAgMEAwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMACAAIAAGAwdDCUMMAAwAC0MNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQw1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHPQwwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADUHNQc1BzUHNQc1BzUHNQc2BzAAMAA5DDUHNQc1BzUHNQc1BzUHNQc1BzUHNQdFDDAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAgACAAIAATQxSDFoMMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAF4AXgBeAF4AXgBeAF4AYgxeAGoMXgBxDHkMfwxeAIUMXgBeAI0MMAAwADAAMAAwAF4AXgCVDJ0MMAAwADAAMABeAF4ApQxeAKsMswy7DF4Awgy9DMoMXgBeAF4AXgBeAF4AXgBeAF4AXgDRDNkMeQBqCeAM3Ax8AOYM7Az0DPgMXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgBeAF4AXgCgAAANoAAHDQ4NFg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAeDSYNMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAIAAgACAAIAAgACAAC4NMABeAF4ANg0wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwAD4NRg1ODVYNXg1mDTAAbQ0wADAAMAAwADAAMAAwADAA2gbaBtoG2gbaBtoG2gbaBnUNeg3CBYANwgWFDdoGjA3aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gaUDZwNpA2oDdoG2gawDbcNvw3HDdoG2gbPDdYN3A3fDeYN2gbsDfMN2gbaBvoN/g3aBgYODg7aBl4AXgBeABYOXgBeACUG2gYeDl4AJA5eACwO2w3aBtoGMQ45DtoG2gbaBtoGQQ7aBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDjUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B1EO2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQdZDjUHNQc1BzUHNQc1B2EONQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHaA41BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B3AO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gY1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1BzUHNQc1B2EO2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gZJDtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBtoG2gbaBkkOeA6gAKAAoAAwADAAMAAwAKAAoACgAKAAoACgAKAAgA4wADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAAwADAAMAD//wQABAAEAAQABAAEAAQABAAEAA0AAwABAAEAAgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAKABMAFwAeABsAGgAeABcAFgASAB4AGwAYAA8AGAAcAEsASwBLAEsASwBLAEsASwBLAEsAGAAYAB4AHgAeABMAHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAFgAbABIAHgAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYADQARAB4ABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAUABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkAFgAaABsAGwAbAB4AHQAdAB4ATwAXAB4ADQAeAB4AGgAbAE8ATwAOAFAAHQAdAB0ATwBPABcATwBPAE8AFgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAFAATwBAAE8ATwBPAEAATwBQAFAATwBQAB4AHgAeAB4AHgAeAB0AHQAdAB0AHgAdAB4ADgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgBQAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAJAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAkACQAJAAkACQAJAAkABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgAeAFAAHgAeAB4AKwArAFAAUABQAFAAGABQACsAKwArACsAHgAeAFAAHgBQAFAAUAArAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAAQABAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUAAeAB4AHgAeAB4AHgArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwAYAA0AKwArAB4AHgAbACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQADQAEAB4ABAAEAB4ABAAEABMABAArACsAKwArACsAKwArACsAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAKwArACsAKwArAFYAVgBWAB4AHgArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AGgAaABoAGAAYAB4AHgAEAAQABAAEAAQABAAEAAQABAAEAAQAEwAEACsAEwATAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABLAEsASwBLAEsASwBLAEsASwBLABoAGQAZAB4AUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABMAUAAEAAQABAAEAAQABAAEAB4AHgAEAAQABAAEAAQABABQAFAABAAEAB4ABAAEAAQABABQAFAASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUAAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAFAABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQAUABQAB4AHgAYABMAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAFAABAAEAAQABAAEAFAABAAEAAQAUAAEAAQABAAEAAQAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAArACsAHgArAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAAQABAANAA0ASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAKwArACsAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAUAArACsAKwArACsAKwArACsABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAGgAaAFAAUABQAFAAUABMAB4AGwBQAB4AKwArACsABAAEAAQAKwBQAFAAUABQAFAAUAArACsAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUAArAFAAUAArACsABAArAAQABAAEAAQABAArACsAKwArAAQABAArACsABAAEAAQAKwArACsABAArACsAKwArACsAKwArAFAAUABQAFAAKwBQACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwAEAAQAUABQAFAABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUAArAFAAUABQAFAAUAArACsABABQAAQABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQAKwArAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeABsAKwArACsAKwArACsAKwBQAAQABAAEAAQABAAEACsABAAEAAQAKwBQAFAAUABQAFAAUABQAFAAKwArAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArAAQABAArACsABAAEAAQAKwArACsAKwArACsAKwArAAQABAArACsAKwArAFAAUAArAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwAeAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwAEAFAAKwBQAFAAUABQAFAAUAArACsAKwBQAFAAUAArAFAAUABQAFAAKwArACsAUABQACsAUAArAFAAUAArACsAKwBQAFAAKwArACsAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwAEAAQABAAEAAQAKwArACsABAAEAAQAKwAEAAQABAAEACsAKwBQACsAKwArACsAKwArAAQAKwArACsAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAB4AHgAeAB4AHgAeABsAHgArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArAFAAUABQACsAKwArACsAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAB4AUAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQACsAKwAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABAArACsAKwArACsAKwArAAQABAArACsAKwArACsAKwArAFAAKwBQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAFAABAAEAAQABAAEAAQABAArAAQABAAEACsABAAEAAQABABQAB4AKwArACsAKwBQAFAAUAAEAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwBLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQABoAUABQAFAAUABQAFAAKwArAAQABAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQACsAUAArACsAUABQAFAAUABQAFAAUAArACsAKwAEACsAKwArACsABAAEAAQABAAEAAQAKwAEACsABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgAqACsAKwArACsAGwBcAFwAXABcAFwAXABcACoAKgAqACoAKgAqACoAKgAeAEsASwBLAEsASwBLAEsASwBLAEsADQANACsAKwArACsAKwBcAFwAKwBcACsAKwBcAFwAKwBcACsAKwBcACsAKwArACsAKwArAFwAXABcAFwAKwBcAFwAXABcAFwAXABcACsAXABcAFwAKwBcACsAXAArACsAXABcACsAXABcAFwAXAAqAFwAXAAqACoAKgAqACoAKgArACoAKgBcACsAKwBcAFwAXABcAFwAKwBcACsAKgAqACoAKgAqACoAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArAFwAXABcAFwAUAAOAA4ADgAOAB4ADgAOAAkADgAOAA0ACQATABMAEwATABMACQAeABMAHgAeAB4ABAAEAB4AHgAeAB4AHgAeAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAFAAUAANAAQAHgAEAB4ABAAWABEAFgARAAQABABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAAQABAAEAAQABAANAAQABABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsADQANAB4AHgAeAB4AHgAeAAQAHgAeAB4AHgAeAB4AKwAeAB4ADgAOAA0ADgAeAB4AHgAeAB4ACQAJACsAKwArACsAKwBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqAFwASwBLAEsASwBLAEsASwBLAEsASwANAA0AHgAeAB4AHgBcAFwAXABcAFwAXAAqACoAKgAqAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAKgAqACoAKgAqACoAKgBcAFwAXAAqACoAKgAqAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgAqACoAXAAqAEsASwBLAEsASwBLAEsASwBLAEsAKgAqACoAKgAqACoAUABQAFAAUABQAFAAKwBQACsAKwArACsAKwBQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQACsAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwAEAAQABAAeAA0AHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQABYAEQArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAADQANAA0AUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAA0ADQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQACsABAAEACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoADQANABUAXAANAB4ADQAbAFwAKgArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAB4AHgATABMADQANAA4AHgATABMAHgAEAAQABAAJACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAUABQAFAAUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwAeACsAKwArABMAEwBLAEsASwBLAEsASwBLAEsASwBLAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwBcAFwAXABcAFwAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcACsAKwArACsAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBcACsAKwArACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEACsAKwAeAB4AXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAKgAqACoAKgAqACoAKgArACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsABABLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKgAqACoAKgAqACoAKgBcACoAKgAqACoAKgAqACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAUABQAFAAUABQAFAAUAArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsADQANAB4ADQANAA0ADQAeAB4AHgAeAB4AHgAeAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArAAQABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAEsASwBLAEsASwBLAEsASwBLAEsAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAHgAeAB4AHgBQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwANAA0ADQANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwBQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAANAA0AUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsABAAEAAQAHgAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAFAAUABQAFAABABQAFAAUABQAAQABAAEAFAAUAAEAAQABAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAKwBQACsAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAFAAHgAeAB4AUABQAFAAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAKwArAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAKwAeAB4AHgAeAB4AHgAeAA4AHgArAA0ADQANAA0ADQANAA0ACQANAA0ADQAIAAQACwAEAAQADQAJAA0ADQAMAB0AHQAeABcAFwAWABcAFwAXABYAFwAdAB0AHgAeABQAFAAUAA0AAQABAAQABAAEAAQABAAJABoAGgAaABoAGgAaABoAGgAeABcAFwAdABUAFQAeAB4AHgAeAB4AHgAYABYAEQAVABUAFQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgANAB4ADQANAA0ADQAeAA0ADQANAAcAHgAeAB4AHgArAAQABAAEAAQABAAEAAQABAAEAAQAUABQACsAKwBPAFAAUABQAFAAUAAeAB4AHgAWABEATwBQAE8ATwBPAE8AUABQAFAAUABQAB4AHgAeABYAEQArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAaABsAGwAbABsAGgAbABsAGgAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsAGwAbABsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgBQABoAHgAdAB4AUAAeABoAHgAeAB4AHgAeAB4AHgAeAB4ATwAeAFAAGwAeAB4AUABQAFAAUABQAB4AHgAeAB0AHQAeAFAAHgBQAB4AUAAeAFAATwBQAFAAHgAeAB4AHgAeAB4AHgBQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AUABQAFAAUABPAE8AUABQAFAAUABQAE8AUABQAE8AUABPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAFAAUABQAE8ATwBPAE8ATwBPAE8ATwBPAE8AUABQAFAAUABQAFAAUABQAFAAHgAeAFAAUABQAFAATwAeAB4AKwArACsAKwAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB0AHQAeAB4AHgAdAB0AHgAeAB0AHgAeAB4AHQAeAB0AGwAbAB4AHQAeAB4AHgAeAB0AHgAeAB0AHQAdAB0AHgAeAB0AHgAdAB4AHQAdAB0AHQAdAB0AHgAdAB4AHgAeAB4AHgAdAB0AHQAdAB4AHgAeAB4AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAeAB4AHgAdAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHgAdAB0AHQAdAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHQAeAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAFgARAB4AHgAeAB4AHgAeAB0AHgAeAB4AHgAeAB4AHgAlACUAHgAeAB4AHgAeAB4AHgAeAB4AFgARAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBQAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeAB0AHQAdAB0AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAdAB0AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAdAB0AHgAeAB0AHQAeAB4AHgAeAB0AHQAeAB4AHgAeAB0AHQAdAB4AHgAdAB4AHgAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAeAB0AHQAeAB4AHQAeAB4AHgAeAB0AHQAeAB4AHgAeACUAJQAdAB0AJQAeACUAJQAlACAAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAHgAeAB4AHgAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB4AHQAdAB0AHgAdACUAHQAdAB4AHQAdAB4AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB0AHQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAHQAdAB0AHQAlAB4AJQAlACUAHQAlACUAHQAdAB0AJQAlAB0AHQAlAB0AHQAlACUAJQAeAB0AHgAeAB4AHgAdAB0AJQAdAB0AHQAdAB0AHQAlACUAJQAlACUAHQAlACUAIAAlAB0AHQAlACUAJQAlACUAJQAlACUAHgAeAB4AJQAlACAAIAAgACAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAdAB4AHgAeABcAFwAXABcAFwAXAB4AEwATACUAHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAWABEAFgARAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAWABEAFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAFgARABYAEQAWABEAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFgARABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeABYAEQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHQAdAB0AHQAdAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAeAB4AKwArACsAKwArABMADQANAA0AUAATAA0AUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUAANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAA0ADQANAA0ADQANAA0ADQAeAA0AFgANAB4AHgAXABcAHgAeABcAFwAWABEAFgARABYAEQAWABEADQANAA0ADQATAFAADQANAB4ADQANAB4AHgAeAB4AHgAMAAwADQANAA0AHgANAA0AFgANAA0ADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArAA0AEQARACUAJQBHAFcAVwAWABEAFgARABYAEQAWABEAFgARACUAJQAWABEAFgARABYAEQAWABEAFQAWABEAEQAlAFcAVwBXAFcAVwBXAFcAVwBXAAQABAAEAAQABAAEACUAVwBXAFcAVwA2ACUAJQBXAFcAVwBHAEcAJQAlACUAKwBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBRAFcAUQBXAFEAVwBXAFcAVwBXAFcAUQBXAFcAVwBXAFcAVwBRAFEAKwArAAQABAAVABUARwBHAFcAFQBRAFcAUQBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFEAVwBRAFcAUQBXAFcAVwBXAFcAVwBRAFcAVwBXAFcAVwBXAFEAUQBXAFcAVwBXABUAUQBHAEcAVwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACUAJQBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwArACUAJQAlACUAKwArACsAKwArACsAKwArACsAKwArACsAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQBRAFEAUQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAVwBXAFcAVwBXAFcAVwBXAFcAVwAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAE8ATwBPAE8ATwBPAE8ATwAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADQATAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABLAEsASwBLAEsASwBLAEsASwBLAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAABAAEAAQABAAeAAQABAAEAAQABAAEAAQABAAEAAQAHgBQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUABQAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAeAA0ADQANAA0ADQArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAB4AHgAeAB4AHgAeAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAB4AHgAeAB4AHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAAQAUABQAFAABABQAFAAUABQAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAeAB4AHgAeACsAKwArACsAUABQAFAAUABQAFAAHgAeABoAHgArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAADgAOABMAEwArACsAKwArACsAKwArACsABAAEAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwANAA0ASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUAAeAB4AHgBQAA4AUAArACsAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAA0ADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArAB4AWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYAFgAWABYACsAKwArAAQAHgAeAB4AHgAeAB4ADQANAA0AHgAeAB4AHgArAFAASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArAB4AHgBcAFwAXABcAFwAKgBcAFwAXABcAFwAXABcAFwAXABcAEsASwBLAEsASwBLAEsASwBLAEsAXABcAFwAXABcACsAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArAFAAUABQAAQAUABQAFAAUABQAFAAUABQAAQABAArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAHgANAA0ADQBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAKgAqACoAXAAqACoAKgBcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAAqAFwAKgAqACoAXABcACoAKgBcAFwAXABcAFwAKgAqAFwAKgBcACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcACoAKgBQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAA0ADQBQAFAAUAAEAAQAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQADQAEAAQAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAVABVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBUAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVAFUAVQBVACsAKwArACsAKwArACsAKwArACsAKwArAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAWQBZAFkAKwArACsAKwBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAWgBaAFoAKwArACsAKwAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYABgAGAAYAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArACsAKwArAFYABABWAFYAVgBWAFYAVgBWAFYAVgBWAB4AVgBWAFYAVgBWAFYAVgBWAFYAVgBWAFYAVgArAFYAVgBWAFYAVgArAFYAKwBWAFYAKwBWAFYAKwBWAFYAVgBWAFYAVgBWAFYAVgBWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAEQAWAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUAAaAB4AKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAGAARABEAGAAYABMAEwAWABEAFAArACsAKwArACsAKwAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACUAJQAlACUAJQAWABEAFgARABYAEQAWABEAFgARABYAEQAlACUAFgARACUAJQAlACUAJQAlACUAEQAlABEAKwAVABUAEwATACUAFgARABYAEQAWABEAJQAlACUAJQAlACUAJQAlACsAJQAbABoAJQArACsAKwArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAcAKwATACUAJQAbABoAJQAlABYAEQAlACUAEQAlABEAJQBXAFcAVwBXAFcAVwBXAFcAVwBXABUAFQAlACUAJQATACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXABYAJQARACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwAWACUAEQAlABYAEQARABYAEQARABUAVwBRAFEAUQBRAFEAUQBRAFEAUQBRAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAEcARwArACsAVwBXAFcAVwBXAFcAKwArAFcAVwBXAFcAVwBXACsAKwBXAFcAVwBXAFcAVwArACsAVwBXAFcAKwArACsAGgAbACUAJQAlABsAGwArAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwAEAAQABAAQAB0AKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsADQANAA0AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgBQAFAAHgAeAB4AKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQBQAFAAUABQACsAKwArACsAUABQAFAAUABQAFAAUABQAA0AUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAArACsAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArAFAAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAA0AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AHgBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsADQBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwBQAFAAUABQAFAABAAEAAQAKwAEAAQAKwArACsAKwArAAQABAAEAAQAUABQAFAAUAArAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsABAAEAAQAKwArACsAKwAEAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsADQANAA0ADQANAA0ADQANAB4AKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAB4AUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEACsAKwArACsAUABQAFAAUABQAA0ADQANAA0ADQANABQAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwANAA0ADQANAA0ADQANAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAHgAeAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQAeAB4AHgAeAB4AKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQABAAEAAQABAAeAB4AHgANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAKwArAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsASwBLAEsASwBLAEsASwBLAEsASwANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAeAA4AUAArACsAKwArACsAKwArACsAKwAEAFAAUABQAFAADQANAB4ADQAeAAQABAAEAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsAUAAOAFAADQANAA0AKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAANAA0AHgANAA0AHgAEACsAUABQAFAAUABQAFAAUAArAFAAKwBQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAA0AKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsABAAEAAQABAArAFAAUABQAFAAUABQAFAAUAArACsAUABQACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAArACsABAAEACsAKwAEAAQABAArACsAUAArACsAKwArACsAKwAEACsAKwArACsAKwBQAFAAUABQAFAABAAEACsAKwAEAAQABAAEAAQABAAEACsAKwArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABABQAFAAUABQAA0ADQANAA0AHgBLAEsASwBLAEsASwBLAEsASwBLACsADQArAB4AKwArAAQABAAEAAQAUABQAB4AUAArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEACsAKwAEAAQABAAEAAQABAAEAAQABAAOAA0ADQATABMAHgAeAB4ADQANAA0ADQANAA0ADQANAA0ADQANAA0ADQANAA0AUABQAFAAUAAEAAQAKwArAAQADQANAB4AUAArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwAOAA4ADgAOAA4ADgAOAA4ADgAOAA4ADgAOACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXABcAFwAXAArACsAKwAqACoAKgAqACoAKgAqACoAKgAqACoAKgAqACoAKgArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAXABcAA0ADQANACoASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwBQAFAABAAEAAQABAAEAAQABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAFAABAAEAAQABAAOAB4ADQANAA0ADQAOAB4ABAArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQAUABQAFAAUAArACsAUABQAFAAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAA0ADQANACsADgAOAA4ADQANACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAABAAEAAQABAAEAAQABAAEACsABAAEAAQABAAEAAQABAAEAFAADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwAOABMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQACsAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAArACsAKwAEACsABAAEACsABAAEAAQABAAEAAQABABQAAQAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsADQANAA0ADQANACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABIAEgAQwBDAEMAUABQAFAAUABDAFAAUABQAEgAQwBIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAASABDAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABIAEMAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAEsASwBLAEsASwBLAEsASwBLAEsAKwArACsAKwANAA0AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArAAQABAAEAAQABAANACsAKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAEAAQABAAEAAQABAAEAA0ADQANAB4AHgAeAB4AHgAeAFAAUABQAFAADQAeACsAKwArACsAKwArACsAKwArACsASwBLAEsASwBLAEsASwBLAEsASwArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAUAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAEcARwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwArACsAKwArACsAKwArACsAKwArACsAKwArAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwBQAFAAUABQAFAAUABQAFAAUABQACsAKwAeAAQABAANAAQABAAEAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAeAB4AHgArACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAEAAQABAAEAB4AHgAeAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQAHgAeAAQABAAEAAQABAAEAAQAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAEAAQABAAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwArACsAKwArACsAKwArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUAArACsAUAArACsAUABQACsAKwBQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AKwBQACsAUABQAFAAUABQAFAAUAArAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwAeAB4AUABQAFAAUABQACsAUAArACsAKwBQAFAAUABQAFAAUABQACsAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgArACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUAAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAHgAeAB4AHgAeAB4AHgAeAB4AKwArAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsASwBLAEsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4ABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAB4AHgAeAB4AHgAeAB4AHgAEAB4AHgAeAB4AHgAeAB4AHgAeAB4ABAAeAB4ADQANAA0ADQAeACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAArAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsABAAEAAQABAAEAAQABAArAAQABAArAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwBQAFAAUABQAFAAKwArAFAAUABQAFAAUABQAFAAUABQAAQABAAEAAQABAAEAAQAKwArACsAKwArACsAKwArACsAHgAeAB4AHgAEAAQABAAEAAQABAAEACsAKwArACsAKwBLAEsASwBLAEsASwBLAEsASwBLACsAKwArACsAFgAWAFAAUABQAFAAKwBQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUAArAFAAKwBQACsAKwArACsAKwArAFAAKwArACsAKwBQACsAUAArAFAAKwBQAFAAUAArAFAAUAArAFAAKwArAFAAKwBQACsAUAArAFAAKwBQACsAUABQACsAUAArACsAUABQAFAAUAArAFAAUABQAFAAUABQAFAAKwBQAFAAUABQACsAUABQAFAAUAArAFAAKwBQAFAAUABQAFAAUABQAFAAUABQACsAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQACsAKwArACsAKwBQAFAAUAArAFAAUABQAFAAUAArAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUABQAFAAUAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArAB4AHgArACsAKwArACsAKwArACsAKwArACsAKwArACsATwBPAE8ATwBPAE8ATwBPAE8ATwBPAE8ATwAlACUAJQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAeACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHgAeACUAJQAlACUAHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdAB0AHQAdACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQApACkAKQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeACUAJQAlACUAJQAeACUAJQAlACUAJQAgACAAIAAlACUAIAAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIQAhACEAIQAhACUAJQAgACAAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAIAAlACUAJQAlACAAJQAgACAAIAAgACAAIAAgACAAIAAlACUAJQAgACUAJQAlACUAIAAgACAAJQAgACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeACUAHgAlAB4AJQAlACUAJQAlACAAJQAlACUAJQAeACUAHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACAAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAIAAgACAAIAAgAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AFwAXABcAFQAVABUAHgAeAB4AHgAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAIAAgACAAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAIAAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAJQAlAB4AHgAeAB4AHgAeAB4AHgAeAB4AJQAlACUAJQAlACUAHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeAB4AHgAeACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAlACAAIAAlACUAJQAlACUAJQAgACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAIAAgACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACAAIAAgACAAIAAgACAAIAAgACAAIAAgACAAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACsAKwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAVwBXAFcAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQAlACUAJQArAAQAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAAEAAQABAArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsAKwArACsA';\n\n /* @flow */\r\n var LETTER_NUMBER_MODIFIER = 50;\r\n // Non-tailorable Line Breaking Classes\r\n var BK = 1; // Cause a line break (after)\r\n var CR = 2; // Cause a line break (after), except between CR and LF\r\n var LF = 3; // Cause a line break (after)\r\n var CM = 4; // Prohibit a line break between the character and the preceding character\r\n var NL = 5; // Cause a line break (after)\r\n var WJ = 7; // Prohibit line breaks before and after\r\n var ZW = 8; // Provide a break opportunity\r\n var GL = 9; // Prohibit line breaks before and after\r\n var SP = 10; // Enable indirect line breaks\r\n var ZWJ = 11; // Prohibit line breaks within joiner sequences\r\n // Break Opportunities\r\n var B2 = 12; // Provide a line break opportunity before and after the character\r\n var BA = 13; // Generally provide a line break opportunity after the character\r\n var BB = 14; // Generally provide a line break opportunity before the character\r\n var HY = 15; // Provide a line break opportunity after the character, except in numeric context\r\n var CB = 16; // Provide a line break opportunity contingent on additional information\r\n // Characters Prohibiting Certain Breaks\r\n var CL = 17; // Prohibit line breaks before\r\n var CP = 18; // Prohibit line breaks before\r\n var EX = 19; // Prohibit line breaks before\r\n var IN = 20; // Allow only indirect line breaks between pairs\r\n var NS = 21; // Allow only indirect line breaks before\r\n var OP = 22; // Prohibit line breaks after\r\n var QU = 23; // Act like they are both opening and closing\r\n // Numeric Context\r\n var IS = 24; // Prevent breaks after any and before numeric\r\n var NU = 25; // Form numeric expressions for line breaking purposes\r\n var PO = 26; // Do not break following a numeric expression\r\n var PR = 27; // Do not break in front of a numeric expression\r\n var SY = 28; // Prevent a break before; and allow a break after\r\n // Other Characters\r\n var AI = 29; // Act like AL when the resolvedEAW is N; otherwise; act as ID\r\n var AL = 30; // Are alphabetic characters or symbols that are used with alphabetic characters\r\n var CJ = 31; // Treat as NS or ID for strict or normal breaking.\r\n var EB = 32; // Do not break from following Emoji Modifier\r\n var EM = 33; // Do not break from preceding Emoji Base\r\n var H2 = 34; // Form Korean syllable blocks\r\n var H3 = 35; // Form Korean syllable blocks\r\n var HL = 36; // Do not break around a following hyphen; otherwise act as Alphabetic\r\n var ID = 37; // Break before or after; except in some numeric context\r\n var JL = 38; // Form Korean syllable blocks\r\n var JV = 39; // Form Korean syllable blocks\r\n var JT = 40; // Form Korean syllable blocks\r\n var RI = 41; // Keep pairs together. For pairs; break before and after other classes\r\n var SA = 42; // Provide a line break opportunity contingent on additional, language-specific context analysis\r\n var XX = 43; // Have as yet unknown line breaking behavior or unassigned code positions\r\n var BREAK_MANDATORY = '!';\r\n var BREAK_NOT_ALLOWED = '×';\r\n var BREAK_ALLOWED = '÷';\r\n var UnicodeTrie = createTrieFromBase64(base64);\r\n var ALPHABETICS = [AL, HL];\r\n var HARD_LINE_BREAKS = [BK, CR, LF, NL];\r\n var SPACE = [SP, ZW];\r\n var PREFIX_POSTFIX = [PR, PO];\r\n var LINE_BREAKS = HARD_LINE_BREAKS.concat(SPACE);\r\n var KOREAN_SYLLABLE_BLOCK = [JL, JV, JT, H2, H3];\r\n var HYPHEN = [HY, BA];\r\n var codePointsToCharacterClasses = function (codePoints, lineBreak) {\r\n if (lineBreak === void 0) { lineBreak = 'strict'; }\r\n var types = [];\r\n var indicies = [];\r\n var categories = [];\r\n codePoints.forEach(function (codePoint, index) {\r\n var classType = UnicodeTrie.get(codePoint);\r\n if (classType > LETTER_NUMBER_MODIFIER) {\r\n categories.push(true);\r\n classType -= LETTER_NUMBER_MODIFIER;\r\n }\r\n else {\r\n categories.push(false);\r\n }\r\n if (['normal', 'auto', 'loose'].indexOf(lineBreak) !== -1) {\r\n // U+2010, – U+2013, 〜 U+301C, ゠ U+30A0\r\n if ([0x2010, 0x2013, 0x301c, 0x30a0].indexOf(codePoint) !== -1) {\r\n indicies.push(index);\r\n return types.push(CB);\r\n }\r\n }\r\n if (classType === CM || classType === ZWJ) {\r\n // LB10 Treat any remaining combining mark or ZWJ as AL.\r\n if (index === 0) {\r\n indicies.push(index);\r\n return types.push(AL);\r\n }\r\n // LB9 Do not break a combining character sequence; treat it as if it has the line breaking class of\r\n // the base character in all of the following rules. Treat ZWJ as if it were CM.\r\n var prev = types[index - 1];\r\n if (LINE_BREAKS.indexOf(prev) === -1) {\r\n indicies.push(indicies[index - 1]);\r\n return types.push(prev);\r\n }\r\n indicies.push(index);\r\n return types.push(AL);\r\n }\r\n indicies.push(index);\r\n if (classType === CJ) {\r\n return types.push(lineBreak === 'strict' ? NS : ID);\r\n }\r\n if (classType === SA) {\r\n return types.push(AL);\r\n }\r\n if (classType === AI) {\r\n return types.push(AL);\r\n }\r\n // For supplementary characters, a useful default is to treat characters in the range 10000..1FFFD as AL\r\n // and characters in the ranges 20000..2FFFD and 30000..3FFFD as ID, until the implementation can be revised\r\n // to take into account the actual line breaking properties for these characters.\r\n if (classType === XX) {\r\n if ((codePoint >= 0x20000 && codePoint <= 0x2fffd) || (codePoint >= 0x30000 && codePoint <= 0x3fffd)) {\r\n return types.push(ID);\r\n }\r\n else {\r\n return types.push(AL);\r\n }\r\n }\r\n types.push(classType);\r\n });\r\n return [indicies, types, categories];\r\n };\r\n var isAdjacentWithSpaceIgnored = function (a, b, currentIndex, classTypes) {\r\n var current = classTypes[currentIndex];\r\n if (Array.isArray(a) ? a.indexOf(current) !== -1 : a === current) {\r\n var i = currentIndex;\r\n while (i <= classTypes.length) {\r\n i++;\r\n var next = classTypes[i];\r\n if (next === b) {\r\n return true;\r\n }\r\n if (next !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n if (current === SP) {\r\n var i = currentIndex;\r\n while (i > 0) {\r\n i--;\r\n var prev = classTypes[i];\r\n if (Array.isArray(a) ? a.indexOf(prev) !== -1 : a === prev) {\r\n var n = currentIndex;\r\n while (n <= classTypes.length) {\r\n n++;\r\n var next = classTypes[n];\r\n if (next === b) {\r\n return true;\r\n }\r\n if (next !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n if (prev !== SP) {\r\n break;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var previousNonSpaceClassType = function (currentIndex, classTypes) {\r\n var i = currentIndex;\r\n while (i >= 0) {\r\n var type = classTypes[i];\r\n if (type === SP) {\r\n i--;\r\n }\r\n else {\r\n return type;\r\n }\r\n }\r\n return 0;\r\n };\r\n var _lineBreakAtIndex = function (codePoints, classTypes, indicies, index, forbiddenBreaks) {\r\n if (indicies[index] === 0) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n var currentIndex = index - 1;\r\n if (Array.isArray(forbiddenBreaks) && forbiddenBreaks[currentIndex] === true) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n var beforeIndex = currentIndex - 1;\r\n var afterIndex = currentIndex + 1;\r\n var current = classTypes[currentIndex];\r\n // LB4 Always break after hard line breaks.\r\n // LB5 Treat CR followed by LF, as well as CR, LF, and NL as hard line breaks.\r\n var before = beforeIndex >= 0 ? classTypes[beforeIndex] : 0;\r\n var next = classTypes[afterIndex];\r\n if (current === CR && next === LF) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n if (HARD_LINE_BREAKS.indexOf(current) !== -1) {\r\n return BREAK_MANDATORY;\r\n }\r\n // LB6 Do not break before hard line breaks.\r\n if (HARD_LINE_BREAKS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB7 Do not break before spaces or zero width space.\r\n if (SPACE.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB8 Break before any character following a zero-width space, even if one or more spaces intervene.\r\n if (previousNonSpaceClassType(currentIndex, classTypes) === ZW) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB8a Do not break between a zero width joiner and an ideograph, emoji base or emoji modifier.\r\n if (UnicodeTrie.get(codePoints[currentIndex]) === ZWJ && (next === ID || next === EB || next === EM)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB11 Do not break before or after Word joiner and related characters.\r\n if (current === WJ || next === WJ) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB12 Do not break after NBSP and related characters.\r\n if (current === GL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB12a Do not break before NBSP and related characters, except after spaces and hyphens.\r\n if ([SP, BA, HY].indexOf(current) === -1 && next === GL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB13 Do not break before ‘]’ or ‘!’ or ‘;’ or ‘/’, even after spaces.\r\n if ([CL, CP, EX, IS, SY].indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB14 Do not break after ‘[’, even after spaces.\r\n if (previousNonSpaceClassType(currentIndex, classTypes) === OP) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB15 Do not break within ‘”[’, even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored(QU, OP, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB16 Do not break between closing punctuation and a nonstarter (lb=NS), even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored([CL, CP], NS, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB17 Do not break within ‘——’, even with intervening spaces.\r\n if (isAdjacentWithSpaceIgnored(B2, B2, currentIndex, classTypes)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB18 Break after spaces.\r\n if (current === SP) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB19 Do not break before or after quotation marks, such as ‘ ” ’.\r\n if (current === QU || next === QU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB20 Break before and after unresolved CB.\r\n if (next === CB || current === CB) {\r\n return BREAK_ALLOWED;\r\n }\r\n // LB21 Do not break before hyphen-minus, other hyphens, fixed-width spaces, small kana, and other non-starters, or after acute accents.\r\n if ([BA, HY, NS].indexOf(next) !== -1 || current === BB) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB21a Don't break after Hebrew + Hyphen.\r\n if (before === HL && HYPHEN.indexOf(current) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB21b Don’t break between Solidus and Hebrew letters.\r\n if (current === SY && next === HL) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB22 Do not break between two ellipses, or between letters, numbers or exclamations and ellipsis.\r\n if (next === IN && ALPHABETICS.concat(IN, EX, NU, ID, EB, EM).indexOf(current) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB23 Do not break between digits and letters.\r\n if ((ALPHABETICS.indexOf(next) !== -1 && current === NU) || (ALPHABETICS.indexOf(current) !== -1 && next === NU)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB23a Do not break between numeric prefixes and ideographs, or between ideographs and numeric postfixes.\r\n if ((current === PR && [ID, EB, EM].indexOf(next) !== -1) ||\r\n ([ID, EB, EM].indexOf(current) !== -1 && next === PO)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB24 Do not break between numeric prefix/postfix and letters, or between letters and prefix/postfix.\r\n if ((ALPHABETICS.indexOf(current) !== -1 && PREFIX_POSTFIX.indexOf(next) !== -1) ||\r\n (PREFIX_POSTFIX.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB25 Do not break between the following pairs of classes relevant to numbers:\r\n if (\r\n // (PR | PO) × ( OP | HY )? NU\r\n ([PR, PO].indexOf(current) !== -1 &&\r\n (next === NU || ([OP, HY].indexOf(next) !== -1 && classTypes[afterIndex + 1] === NU))) ||\r\n // ( OP | HY ) × NU\r\n ([OP, HY].indexOf(current) !== -1 && next === NU) ||\r\n // NU ×\t(NU | SY | IS)\r\n (current === NU && [NU, SY, IS].indexOf(next) !== -1)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // NU (NU | SY | IS)* × (NU | SY | IS | CL | CP)\r\n if ([NU, SY, IS, CL, CP].indexOf(next) !== -1) {\r\n var prevIndex = currentIndex;\r\n while (prevIndex >= 0) {\r\n var type = classTypes[prevIndex];\r\n if (type === NU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n else if ([SY, IS].indexOf(type) !== -1) {\r\n prevIndex--;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n // NU (NU | SY | IS)* (CL | CP)? × (PO | PR))\r\n if ([PR, PO].indexOf(next) !== -1) {\r\n var prevIndex = [CL, CP].indexOf(current) !== -1 ? beforeIndex : currentIndex;\r\n while (prevIndex >= 0) {\r\n var type = classTypes[prevIndex];\r\n if (type === NU) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n else if ([SY, IS].indexOf(type) !== -1) {\r\n prevIndex--;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n }\r\n // LB26 Do not break a Korean syllable.\r\n if ((JL === current && [JL, JV, H2, H3].indexOf(next) !== -1) ||\r\n ([JV, H2].indexOf(current) !== -1 && [JV, JT].indexOf(next) !== -1) ||\r\n ([JT, H3].indexOf(current) !== -1 && next === JT)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB27 Treat a Korean Syllable Block the same as ID.\r\n if ((KOREAN_SYLLABLE_BLOCK.indexOf(current) !== -1 && [IN, PO].indexOf(next) !== -1) ||\r\n (KOREAN_SYLLABLE_BLOCK.indexOf(next) !== -1 && current === PR)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB28 Do not break between alphabetics (“at”).\r\n if (ALPHABETICS.indexOf(current) !== -1 && ALPHABETICS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB29 Do not break between numeric punctuation and alphabetics (“e.g.”).\r\n if (current === IS && ALPHABETICS.indexOf(next) !== -1) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB30 Do not break between letters, numbers, or ordinary symbols and opening or closing parentheses.\r\n if ((ALPHABETICS.concat(NU).indexOf(current) !== -1 && next === OP) ||\r\n (ALPHABETICS.concat(NU).indexOf(next) !== -1 && current === CP)) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n // LB30a Break between two regional indicator symbols if and only if there are an even number of regional\r\n // indicators preceding the position of the break.\r\n if (current === RI && next === RI) {\r\n var i = indicies[currentIndex];\r\n var count = 1;\r\n while (i > 0) {\r\n i--;\r\n if (classTypes[i] === RI) {\r\n count++;\r\n }\r\n else {\r\n break;\r\n }\r\n }\r\n if (count % 2 !== 0) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n }\r\n // LB30b Do not break between an emoji base and an emoji modifier.\r\n if (current === EB && next === EM) {\r\n return BREAK_NOT_ALLOWED;\r\n }\r\n return BREAK_ALLOWED;\r\n };\r\n var cssFormattedClasses = function (codePoints, options) {\r\n if (!options) {\r\n options = { lineBreak: 'normal', wordBreak: 'normal' };\r\n }\r\n var _a = codePointsToCharacterClasses(codePoints, options.lineBreak), indicies = _a[0], classTypes = _a[1], isLetterNumber = _a[2];\r\n if (options.wordBreak === 'break-all' || options.wordBreak === 'break-word') {\r\n classTypes = classTypes.map(function (type) { return ([NU, AL, SA].indexOf(type) !== -1 ? ID : type); });\r\n }\r\n var forbiddenBreakpoints = options.wordBreak === 'keep-all'\r\n ? isLetterNumber.map(function (letterNumber, i) {\r\n return letterNumber && codePoints[i] >= 0x4e00 && codePoints[i] <= 0x9fff;\r\n })\r\n : undefined;\r\n return [indicies, classTypes, forbiddenBreakpoints];\r\n };\r\n var Break = /** @class */ (function () {\r\n function Break(codePoints, lineBreak, start, end) {\r\n this.codePoints = codePoints;\r\n this.required = lineBreak === BREAK_MANDATORY;\r\n this.start = start;\r\n this.end = end;\r\n }\r\n Break.prototype.slice = function () {\r\n return fromCodePoint.apply(void 0, this.codePoints.slice(this.start, this.end));\r\n };\r\n return Break;\r\n }());\r\n var LineBreaker = function (str, options) {\r\n var codePoints = toCodePoints(str);\r\n var _a = cssFormattedClasses(codePoints, options), indicies = _a[0], classTypes = _a[1], forbiddenBreakpoints = _a[2];\r\n var length = codePoints.length;\r\n var lastEnd = 0;\r\n var nextIndex = 0;\r\n return {\r\n next: function () {\r\n if (nextIndex >= length) {\r\n return { done: true, value: null };\r\n }\r\n var lineBreak = BREAK_NOT_ALLOWED;\r\n while (nextIndex < length &&\r\n (lineBreak = _lineBreakAtIndex(codePoints, classTypes, indicies, ++nextIndex, forbiddenBreakpoints)) ===\r\n BREAK_NOT_ALLOWED) { }\r\n if (lineBreak !== BREAK_NOT_ALLOWED || nextIndex === length) {\r\n var value = new Break(codePoints, lineBreak, lastEnd, nextIndex);\r\n lastEnd = nextIndex;\r\n return { value: value, done: false };\r\n }\r\n return { done: true, value: null };\r\n },\r\n };\r\n };\n\n // https://www.w3.org/TR/css-syntax-3\r\n var TokenType;\r\n (function (TokenType) {\r\n TokenType[TokenType[\"STRING_TOKEN\"] = 0] = \"STRING_TOKEN\";\r\n TokenType[TokenType[\"BAD_STRING_TOKEN\"] = 1] = \"BAD_STRING_TOKEN\";\r\n TokenType[TokenType[\"LEFT_PARENTHESIS_TOKEN\"] = 2] = \"LEFT_PARENTHESIS_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_PARENTHESIS_TOKEN\"] = 3] = \"RIGHT_PARENTHESIS_TOKEN\";\r\n TokenType[TokenType[\"COMMA_TOKEN\"] = 4] = \"COMMA_TOKEN\";\r\n TokenType[TokenType[\"HASH_TOKEN\"] = 5] = \"HASH_TOKEN\";\r\n TokenType[TokenType[\"DELIM_TOKEN\"] = 6] = \"DELIM_TOKEN\";\r\n TokenType[TokenType[\"AT_KEYWORD_TOKEN\"] = 7] = \"AT_KEYWORD_TOKEN\";\r\n TokenType[TokenType[\"PREFIX_MATCH_TOKEN\"] = 8] = \"PREFIX_MATCH_TOKEN\";\r\n TokenType[TokenType[\"DASH_MATCH_TOKEN\"] = 9] = \"DASH_MATCH_TOKEN\";\r\n TokenType[TokenType[\"INCLUDE_MATCH_TOKEN\"] = 10] = \"INCLUDE_MATCH_TOKEN\";\r\n TokenType[TokenType[\"LEFT_CURLY_BRACKET_TOKEN\"] = 11] = \"LEFT_CURLY_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_CURLY_BRACKET_TOKEN\"] = 12] = \"RIGHT_CURLY_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"SUFFIX_MATCH_TOKEN\"] = 13] = \"SUFFIX_MATCH_TOKEN\";\r\n TokenType[TokenType[\"SUBSTRING_MATCH_TOKEN\"] = 14] = \"SUBSTRING_MATCH_TOKEN\";\r\n TokenType[TokenType[\"DIMENSION_TOKEN\"] = 15] = \"DIMENSION_TOKEN\";\r\n TokenType[TokenType[\"PERCENTAGE_TOKEN\"] = 16] = \"PERCENTAGE_TOKEN\";\r\n TokenType[TokenType[\"NUMBER_TOKEN\"] = 17] = \"NUMBER_TOKEN\";\r\n TokenType[TokenType[\"FUNCTION\"] = 18] = \"FUNCTION\";\r\n TokenType[TokenType[\"FUNCTION_TOKEN\"] = 19] = \"FUNCTION_TOKEN\";\r\n TokenType[TokenType[\"IDENT_TOKEN\"] = 20] = \"IDENT_TOKEN\";\r\n TokenType[TokenType[\"COLUMN_TOKEN\"] = 21] = \"COLUMN_TOKEN\";\r\n TokenType[TokenType[\"URL_TOKEN\"] = 22] = \"URL_TOKEN\";\r\n TokenType[TokenType[\"BAD_URL_TOKEN\"] = 23] = \"BAD_URL_TOKEN\";\r\n TokenType[TokenType[\"CDC_TOKEN\"] = 24] = \"CDC_TOKEN\";\r\n TokenType[TokenType[\"CDO_TOKEN\"] = 25] = \"CDO_TOKEN\";\r\n TokenType[TokenType[\"COLON_TOKEN\"] = 26] = \"COLON_TOKEN\";\r\n TokenType[TokenType[\"SEMICOLON_TOKEN\"] = 27] = \"SEMICOLON_TOKEN\";\r\n TokenType[TokenType[\"LEFT_SQUARE_BRACKET_TOKEN\"] = 28] = \"LEFT_SQUARE_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"RIGHT_SQUARE_BRACKET_TOKEN\"] = 29] = \"RIGHT_SQUARE_BRACKET_TOKEN\";\r\n TokenType[TokenType[\"UNICODE_RANGE_TOKEN\"] = 30] = \"UNICODE_RANGE_TOKEN\";\r\n TokenType[TokenType[\"WHITESPACE_TOKEN\"] = 31] = \"WHITESPACE_TOKEN\";\r\n TokenType[TokenType[\"EOF_TOKEN\"] = 32] = \"EOF_TOKEN\";\r\n })(TokenType || (TokenType = {}));\r\n var FLAG_UNRESTRICTED = 1 << 0;\r\n var FLAG_ID = 1 << 1;\r\n var FLAG_INTEGER = 1 << 2;\r\n var FLAG_NUMBER = 1 << 3;\r\n var LINE_FEED = 0x000a;\r\n var SOLIDUS = 0x002f;\r\n var REVERSE_SOLIDUS = 0x005c;\r\n var CHARACTER_TABULATION = 0x0009;\r\n var SPACE$1 = 0x0020;\r\n var QUOTATION_MARK = 0x0022;\r\n var EQUALS_SIGN = 0x003d;\r\n var NUMBER_SIGN = 0x0023;\r\n var DOLLAR_SIGN = 0x0024;\r\n var PERCENTAGE_SIGN = 0x0025;\r\n var APOSTROPHE = 0x0027;\r\n var LEFT_PARENTHESIS = 0x0028;\r\n var RIGHT_PARENTHESIS = 0x0029;\r\n var LOW_LINE = 0x005f;\r\n var HYPHEN_MINUS = 0x002d;\r\n var EXCLAMATION_MARK = 0x0021;\r\n var LESS_THAN_SIGN = 0x003c;\r\n var GREATER_THAN_SIGN = 0x003e;\r\n var COMMERCIAL_AT = 0x0040;\r\n var LEFT_SQUARE_BRACKET = 0x005b;\r\n var RIGHT_SQUARE_BRACKET = 0x005d;\r\n var CIRCUMFLEX_ACCENT = 0x003d;\r\n var LEFT_CURLY_BRACKET = 0x007b;\r\n var QUESTION_MARK = 0x003f;\r\n var RIGHT_CURLY_BRACKET = 0x007d;\r\n var VERTICAL_LINE = 0x007c;\r\n var TILDE = 0x007e;\r\n var CONTROL = 0x0080;\r\n var REPLACEMENT_CHARACTER = 0xfffd;\r\n var ASTERISK = 0x002a;\r\n var PLUS_SIGN = 0x002b;\r\n var COMMA = 0x002c;\r\n var COLON = 0x003a;\r\n var SEMICOLON = 0x003b;\r\n var FULL_STOP = 0x002e;\r\n var NULL = 0x0000;\r\n var BACKSPACE = 0x0008;\r\n var LINE_TABULATION = 0x000b;\r\n var SHIFT_OUT = 0x000e;\r\n var INFORMATION_SEPARATOR_ONE = 0x001f;\r\n var DELETE = 0x007f;\r\n var EOF = -1;\r\n var ZERO = 0x0030;\r\n var a = 0x0061;\r\n var e = 0x0065;\r\n var f = 0x0066;\r\n var u = 0x0075;\r\n var z = 0x007a;\r\n var A = 0x0041;\r\n var E = 0x0045;\r\n var F = 0x0046;\r\n var U = 0x0055;\r\n var Z = 0x005a;\r\n var isDigit = function (codePoint) { return codePoint >= ZERO && codePoint <= 0x0039; };\r\n var isSurrogateCodePoint = function (codePoint) { return codePoint >= 0xd800 && codePoint <= 0xdfff; };\r\n var isHex = function (codePoint) {\r\n return isDigit(codePoint) || (codePoint >= A && codePoint <= F) || (codePoint >= a && codePoint <= f);\r\n };\r\n var isLowerCaseLetter = function (codePoint) { return codePoint >= a && codePoint <= z; };\r\n var isUpperCaseLetter = function (codePoint) { return codePoint >= A && codePoint <= Z; };\r\n var isLetter = function (codePoint) { return isLowerCaseLetter(codePoint) || isUpperCaseLetter(codePoint); };\r\n var isNonASCIICodePoint = function (codePoint) { return codePoint >= CONTROL; };\r\n var isWhiteSpace = function (codePoint) {\r\n return codePoint === LINE_FEED || codePoint === CHARACTER_TABULATION || codePoint === SPACE$1;\r\n };\r\n var isNameStartCodePoint = function (codePoint) {\r\n return isLetter(codePoint) || isNonASCIICodePoint(codePoint) || codePoint === LOW_LINE;\r\n };\r\n var isNameCodePoint = function (codePoint) {\r\n return isNameStartCodePoint(codePoint) || isDigit(codePoint) || codePoint === HYPHEN_MINUS;\r\n };\r\n var isNonPrintableCodePoint = function (codePoint) {\r\n return ((codePoint >= NULL && codePoint <= BACKSPACE) ||\r\n codePoint === LINE_TABULATION ||\r\n (codePoint >= SHIFT_OUT && codePoint <= INFORMATION_SEPARATOR_ONE) ||\r\n codePoint === DELETE);\r\n };\r\n var isValidEscape = function (c1, c2) {\r\n if (c1 !== REVERSE_SOLIDUS) {\r\n return false;\r\n }\r\n return c2 !== LINE_FEED;\r\n };\r\n var isIdentifierStart = function (c1, c2, c3) {\r\n if (c1 === HYPHEN_MINUS) {\r\n return isNameStartCodePoint(c2) || isValidEscape(c2, c3);\r\n }\r\n else if (isNameStartCodePoint(c1)) {\r\n return true;\r\n }\r\n else if (c1 === REVERSE_SOLIDUS && isValidEscape(c1, c2)) {\r\n return true;\r\n }\r\n return false;\r\n };\r\n var isNumberStart = function (c1, c2, c3) {\r\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\r\n if (isDigit(c2)) {\r\n return true;\r\n }\r\n return c2 === FULL_STOP && isDigit(c3);\r\n }\r\n if (c1 === FULL_STOP) {\r\n return isDigit(c2);\r\n }\r\n return isDigit(c1);\r\n };\r\n var stringToNumber = function (codePoints) {\r\n var c = 0;\r\n var sign = 1;\r\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\r\n if (codePoints[c] === HYPHEN_MINUS) {\r\n sign = -1;\r\n }\r\n c++;\r\n }\r\n var integers = [];\r\n while (isDigit(codePoints[c])) {\r\n integers.push(codePoints[c++]);\r\n }\r\n var int = integers.length ? parseInt(fromCodePoint.apply(void 0, integers), 10) : 0;\r\n if (codePoints[c] === FULL_STOP) {\r\n c++;\r\n }\r\n var fraction = [];\r\n while (isDigit(codePoints[c])) {\r\n fraction.push(codePoints[c++]);\r\n }\r\n var fracd = fraction.length;\r\n var frac = fracd ? parseInt(fromCodePoint.apply(void 0, fraction), 10) : 0;\r\n if (codePoints[c] === E || codePoints[c] === e) {\r\n c++;\r\n }\r\n var expsign = 1;\r\n if (codePoints[c] === PLUS_SIGN || codePoints[c] === HYPHEN_MINUS) {\r\n if (codePoints[c] === HYPHEN_MINUS) {\r\n expsign = -1;\r\n }\r\n c++;\r\n }\r\n var exponent = [];\r\n while (isDigit(codePoints[c])) {\r\n exponent.push(codePoints[c++]);\r\n }\r\n var exp = exponent.length ? parseInt(fromCodePoint.apply(void 0, exponent), 10) : 0;\r\n return sign * (int + frac * Math.pow(10, -fracd)) * Math.pow(10, expsign * exp);\r\n };\r\n var LEFT_PARENTHESIS_TOKEN = {\r\n type: TokenType.LEFT_PARENTHESIS_TOKEN\r\n };\r\n var RIGHT_PARENTHESIS_TOKEN = {\r\n type: TokenType.RIGHT_PARENTHESIS_TOKEN\r\n };\r\n var COMMA_TOKEN = { type: TokenType.COMMA_TOKEN };\r\n var SUFFIX_MATCH_TOKEN = { type: TokenType.SUFFIX_MATCH_TOKEN };\r\n var PREFIX_MATCH_TOKEN = { type: TokenType.PREFIX_MATCH_TOKEN };\r\n var COLUMN_TOKEN = { type: TokenType.COLUMN_TOKEN };\r\n var DASH_MATCH_TOKEN = { type: TokenType.DASH_MATCH_TOKEN };\r\n var INCLUDE_MATCH_TOKEN = { type: TokenType.INCLUDE_MATCH_TOKEN };\r\n var LEFT_CURLY_BRACKET_TOKEN = {\r\n type: TokenType.LEFT_CURLY_BRACKET_TOKEN\r\n };\r\n var RIGHT_CURLY_BRACKET_TOKEN = {\r\n type: TokenType.RIGHT_CURLY_BRACKET_TOKEN\r\n };\r\n var SUBSTRING_MATCH_TOKEN = { type: TokenType.SUBSTRING_MATCH_TOKEN };\r\n var BAD_URL_TOKEN = { type: TokenType.BAD_URL_TOKEN };\r\n var BAD_STRING_TOKEN = { type: TokenType.BAD_STRING_TOKEN };\r\n var CDO_TOKEN = { type: TokenType.CDO_TOKEN };\r\n var CDC_TOKEN = { type: TokenType.CDC_TOKEN };\r\n var COLON_TOKEN = { type: TokenType.COLON_TOKEN };\r\n var SEMICOLON_TOKEN = { type: TokenType.SEMICOLON_TOKEN };\r\n var LEFT_SQUARE_BRACKET_TOKEN = {\r\n type: TokenType.LEFT_SQUARE_BRACKET_TOKEN\r\n };\r\n var RIGHT_SQUARE_BRACKET_TOKEN = {\r\n type: TokenType.RIGHT_SQUARE_BRACKET_TOKEN\r\n };\r\n var WHITESPACE_TOKEN = { type: TokenType.WHITESPACE_TOKEN };\r\n var EOF_TOKEN = { type: TokenType.EOF_TOKEN };\r\n var Tokenizer = /** @class */ (function () {\r\n function Tokenizer() {\r\n this._value = [];\r\n }\r\n Tokenizer.prototype.write = function (chunk) {\r\n this._value = this._value.concat(toCodePoints(chunk));\r\n };\r\n Tokenizer.prototype.read = function () {\r\n var tokens = [];\r\n var token = this.consumeToken();\r\n while (token !== EOF_TOKEN) {\r\n tokens.push(token);\r\n token = this.consumeToken();\r\n }\r\n return tokens;\r\n };\r\n Tokenizer.prototype.consumeToken = function () {\r\n var codePoint = this.consumeCodePoint();\r\n switch (codePoint) {\r\n case QUOTATION_MARK:\r\n return this.consumeStringToken(QUOTATION_MARK);\r\n case NUMBER_SIGN:\r\n var c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if (isNameCodePoint(c1) || isValidEscape(c2, c3)) {\r\n var flags = isIdentifierStart(c1, c2, c3) ? FLAG_ID : FLAG_UNRESTRICTED;\r\n var value = this.consumeName();\r\n return { type: TokenType.HASH_TOKEN, value: value, flags: flags };\r\n }\r\n break;\r\n case DOLLAR_SIGN:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return SUFFIX_MATCH_TOKEN;\r\n }\r\n break;\r\n case APOSTROPHE:\r\n return this.consumeStringToken(APOSTROPHE);\r\n case LEFT_PARENTHESIS:\r\n return LEFT_PARENTHESIS_TOKEN;\r\n case RIGHT_PARENTHESIS:\r\n return RIGHT_PARENTHESIS_TOKEN;\r\n case ASTERISK:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return SUBSTRING_MATCH_TOKEN;\r\n }\r\n break;\r\n case PLUS_SIGN:\r\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n break;\r\n case COMMA:\r\n return COMMA_TOKEN;\r\n case HYPHEN_MINUS:\r\n var e1 = codePoint;\r\n var e2 = this.peekCodePoint(0);\r\n var e3 = this.peekCodePoint(1);\r\n if (isNumberStart(e1, e2, e3)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n if (isIdentifierStart(e1, e2, e3)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n if (e2 === HYPHEN_MINUS && e3 === GREATER_THAN_SIGN) {\r\n this.consumeCodePoint();\r\n this.consumeCodePoint();\r\n return CDC_TOKEN;\r\n }\r\n break;\r\n case FULL_STOP:\r\n if (isNumberStart(codePoint, this.peekCodePoint(0), this.peekCodePoint(1))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n break;\r\n case SOLIDUS:\r\n if (this.peekCodePoint(0) === ASTERISK) {\r\n this.consumeCodePoint();\r\n while (true) {\r\n var c = this.consumeCodePoint();\r\n if (c === ASTERISK) {\r\n c = this.consumeCodePoint();\r\n if (c === SOLIDUS) {\r\n return this.consumeToken();\r\n }\r\n }\r\n if (c === EOF) {\r\n return this.consumeToken();\r\n }\r\n }\r\n }\r\n break;\r\n case COLON:\r\n return COLON_TOKEN;\r\n case SEMICOLON:\r\n return SEMICOLON_TOKEN;\r\n case LESS_THAN_SIGN:\r\n if (this.peekCodePoint(0) === EXCLAMATION_MARK &&\r\n this.peekCodePoint(1) === HYPHEN_MINUS &&\r\n this.peekCodePoint(2) === HYPHEN_MINUS) {\r\n this.consumeCodePoint();\r\n this.consumeCodePoint();\r\n return CDO_TOKEN;\r\n }\r\n break;\r\n case COMMERCIAL_AT:\r\n var a1 = this.peekCodePoint(0);\r\n var a2 = this.peekCodePoint(1);\r\n var a3 = this.peekCodePoint(2);\r\n if (isIdentifierStart(a1, a2, a3)) {\r\n var value = this.consumeName();\r\n return { type: TokenType.AT_KEYWORD_TOKEN, value: value };\r\n }\r\n break;\r\n case LEFT_SQUARE_BRACKET:\r\n return LEFT_SQUARE_BRACKET_TOKEN;\r\n case REVERSE_SOLIDUS:\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n break;\r\n case RIGHT_SQUARE_BRACKET:\r\n return RIGHT_SQUARE_BRACKET_TOKEN;\r\n case CIRCUMFLEX_ACCENT:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return PREFIX_MATCH_TOKEN;\r\n }\r\n break;\r\n case LEFT_CURLY_BRACKET:\r\n return LEFT_CURLY_BRACKET_TOKEN;\r\n case RIGHT_CURLY_BRACKET:\r\n return RIGHT_CURLY_BRACKET_TOKEN;\r\n case u:\r\n case U:\r\n var u1 = this.peekCodePoint(0);\r\n var u2 = this.peekCodePoint(1);\r\n if (u1 === PLUS_SIGN && (isHex(u2) || u2 === QUESTION_MARK)) {\r\n this.consumeCodePoint();\r\n this.consumeUnicodeRangeToken();\r\n }\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n case VERTICAL_LINE:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return DASH_MATCH_TOKEN;\r\n }\r\n if (this.peekCodePoint(0) === VERTICAL_LINE) {\r\n this.consumeCodePoint();\r\n return COLUMN_TOKEN;\r\n }\r\n break;\r\n case TILDE:\r\n if (this.peekCodePoint(0) === EQUALS_SIGN) {\r\n this.consumeCodePoint();\r\n return INCLUDE_MATCH_TOKEN;\r\n }\r\n break;\r\n case EOF:\r\n return EOF_TOKEN;\r\n }\r\n if (isWhiteSpace(codePoint)) {\r\n this.consumeWhiteSpace();\r\n return WHITESPACE_TOKEN;\r\n }\r\n if (isDigit(codePoint)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeNumericToken();\r\n }\r\n if (isNameStartCodePoint(codePoint)) {\r\n this.reconsumeCodePoint(codePoint);\r\n return this.consumeIdentLikeToken();\r\n }\r\n return { type: TokenType.DELIM_TOKEN, value: fromCodePoint(codePoint) };\r\n };\r\n Tokenizer.prototype.consumeCodePoint = function () {\r\n var value = this._value.shift();\r\n return typeof value === 'undefined' ? -1 : value;\r\n };\r\n Tokenizer.prototype.reconsumeCodePoint = function (codePoint) {\r\n this._value.unshift(codePoint);\r\n };\r\n Tokenizer.prototype.peekCodePoint = function (delta) {\r\n if (delta >= this._value.length) {\r\n return -1;\r\n }\r\n return this._value[delta];\r\n };\r\n Tokenizer.prototype.consumeUnicodeRangeToken = function () {\r\n var digits = [];\r\n var codePoint = this.consumeCodePoint();\r\n while (isHex(codePoint) && digits.length < 6) {\r\n digits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n }\r\n var questionMarks = false;\r\n while (codePoint === QUESTION_MARK && digits.length < 6) {\r\n digits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n questionMarks = true;\r\n }\r\n if (questionMarks) {\r\n var start_1 = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? ZERO : digit); })), 16);\r\n var end = parseInt(fromCodePoint.apply(void 0, digits.map(function (digit) { return (digit === QUESTION_MARK ? F : digit); })), 16);\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start_1, end: end };\r\n }\r\n var start = parseInt(fromCodePoint.apply(void 0, digits), 16);\r\n if (this.peekCodePoint(0) === HYPHEN_MINUS && isHex(this.peekCodePoint(1))) {\r\n this.consumeCodePoint();\r\n codePoint = this.consumeCodePoint();\r\n var endDigits = [];\r\n while (isHex(codePoint) && endDigits.length < 6) {\r\n endDigits.push(codePoint);\r\n codePoint = this.consumeCodePoint();\r\n }\r\n var end = parseInt(fromCodePoint.apply(void 0, endDigits), 16);\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: end };\r\n }\r\n else {\r\n return { type: TokenType.UNICODE_RANGE_TOKEN, start: start, end: start };\r\n }\r\n };\r\n Tokenizer.prototype.consumeIdentLikeToken = function () {\r\n var value = this.consumeName();\r\n if (value.toLowerCase() === 'url' && this.peekCodePoint(0) === LEFT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return this.consumeUrlToken();\r\n }\r\n else if (this.peekCodePoint(0) === LEFT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.FUNCTION_TOKEN, value: value };\r\n }\r\n return { type: TokenType.IDENT_TOKEN, value: value };\r\n };\r\n Tokenizer.prototype.consumeUrlToken = function () {\r\n var value = [];\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF) {\r\n return { type: TokenType.URL_TOKEN, value: '' };\r\n }\r\n var next = this.peekCodePoint(0);\r\n if (next === APOSTROPHE || next === QUOTATION_MARK) {\r\n var stringToken = this.consumeStringToken(this.consumeCodePoint());\r\n if (stringToken.type === TokenType.STRING_TOKEN) {\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.URL_TOKEN, value: stringToken.value };\r\n }\r\n }\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (codePoint === EOF || codePoint === RIGHT_PARENTHESIS) {\r\n return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) };\r\n }\r\n else if (isWhiteSpace(codePoint)) {\r\n this.consumeWhiteSpace();\r\n if (this.peekCodePoint(0) === EOF || this.peekCodePoint(0) === RIGHT_PARENTHESIS) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.URL_TOKEN, value: fromCodePoint.apply(void 0, value) };\r\n }\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n else if (codePoint === QUOTATION_MARK ||\r\n codePoint === APOSTROPHE ||\r\n codePoint === LEFT_PARENTHESIS ||\r\n isNonPrintableCodePoint(codePoint)) {\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n else if (codePoint === REVERSE_SOLIDUS) {\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n value.push(this.consumeEscapedCodePoint());\r\n }\r\n else {\r\n this.consumeBadUrlRemnants();\r\n return BAD_URL_TOKEN;\r\n }\r\n }\r\n else {\r\n value.push(codePoint);\r\n }\r\n }\r\n };\r\n Tokenizer.prototype.consumeWhiteSpace = function () {\r\n while (isWhiteSpace(this.peekCodePoint(0))) {\r\n this.consumeCodePoint();\r\n }\r\n };\r\n Tokenizer.prototype.consumeBadUrlRemnants = function () {\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (codePoint === RIGHT_PARENTHESIS || codePoint === EOF) {\r\n return;\r\n }\r\n if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n this.consumeEscapedCodePoint();\r\n }\r\n }\r\n };\r\n Tokenizer.prototype.consumeStringSlice = function (count) {\r\n var SLICE_STACK_SIZE = 60000;\r\n var value = '';\r\n while (count > 0) {\r\n var amount = Math.min(SLICE_STACK_SIZE, count);\r\n value += fromCodePoint.apply(void 0, this._value.splice(0, amount));\r\n count -= amount;\r\n }\r\n this._value.shift();\r\n return value;\r\n };\r\n Tokenizer.prototype.consumeStringToken = function (endingCodePoint) {\r\n var value = '';\r\n var i = 0;\r\n do {\r\n var codePoint = this._value[i];\r\n if (codePoint === EOF || codePoint === undefined || codePoint === endingCodePoint) {\r\n value += this.consumeStringSlice(i);\r\n return { type: TokenType.STRING_TOKEN, value: value };\r\n }\r\n if (codePoint === LINE_FEED) {\r\n this._value.splice(0, i);\r\n return BAD_STRING_TOKEN;\r\n }\r\n if (codePoint === REVERSE_SOLIDUS) {\r\n var next = this._value[i + 1];\r\n if (next !== EOF && next !== undefined) {\r\n if (next === LINE_FEED) {\r\n value += this.consumeStringSlice(i);\r\n i = -1;\r\n this._value.shift();\r\n }\r\n else if (isValidEscape(codePoint, next)) {\r\n value += this.consumeStringSlice(i);\r\n value += fromCodePoint(this.consumeEscapedCodePoint());\r\n i = -1;\r\n }\r\n }\r\n }\r\n i++;\r\n } while (true);\r\n };\r\n Tokenizer.prototype.consumeNumber = function () {\r\n var repr = [];\r\n var type = FLAG_INTEGER;\r\n var c1 = this.peekCodePoint(0);\r\n if (c1 === PLUS_SIGN || c1 === HYPHEN_MINUS) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n if (c1 === FULL_STOP && isDigit(c2)) {\r\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\r\n type = FLAG_NUMBER;\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n }\r\n c1 = this.peekCodePoint(0);\r\n c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if ((c1 === E || c1 === e) && (((c2 === PLUS_SIGN || c2 === HYPHEN_MINUS) && isDigit(c3)) || isDigit(c2))) {\r\n repr.push(this.consumeCodePoint(), this.consumeCodePoint());\r\n type = FLAG_NUMBER;\r\n while (isDigit(this.peekCodePoint(0))) {\r\n repr.push(this.consumeCodePoint());\r\n }\r\n }\r\n return [stringToNumber(repr), type];\r\n };\r\n Tokenizer.prototype.consumeNumericToken = function () {\r\n var _a = this.consumeNumber(), number = _a[0], flags = _a[1];\r\n var c1 = this.peekCodePoint(0);\r\n var c2 = this.peekCodePoint(1);\r\n var c3 = this.peekCodePoint(2);\r\n if (isIdentifierStart(c1, c2, c3)) {\r\n var unit = this.consumeName();\r\n return { type: TokenType.DIMENSION_TOKEN, number: number, flags: flags, unit: unit };\r\n }\r\n if (c1 === PERCENTAGE_SIGN) {\r\n this.consumeCodePoint();\r\n return { type: TokenType.PERCENTAGE_TOKEN, number: number, flags: flags };\r\n }\r\n return { type: TokenType.NUMBER_TOKEN, number: number, flags: flags };\r\n };\r\n Tokenizer.prototype.consumeEscapedCodePoint = function () {\r\n var codePoint = this.consumeCodePoint();\r\n if (isHex(codePoint)) {\r\n var hex = fromCodePoint(codePoint);\r\n while (isHex(this.peekCodePoint(0)) && hex.length < 6) {\r\n hex += fromCodePoint(this.consumeCodePoint());\r\n }\r\n if (isWhiteSpace(this.peekCodePoint(0))) {\r\n this.consumeCodePoint();\r\n }\r\n var hexCodePoint = parseInt(hex, 16);\r\n if (hexCodePoint === 0 || isSurrogateCodePoint(hexCodePoint) || hexCodePoint > 0x10ffff) {\r\n return REPLACEMENT_CHARACTER;\r\n }\r\n return hexCodePoint;\r\n }\r\n if (codePoint === EOF) {\r\n return REPLACEMENT_CHARACTER;\r\n }\r\n return codePoint;\r\n };\r\n Tokenizer.prototype.consumeName = function () {\r\n var result = '';\r\n while (true) {\r\n var codePoint = this.consumeCodePoint();\r\n if (isNameCodePoint(codePoint)) {\r\n result += fromCodePoint(codePoint);\r\n }\r\n else if (isValidEscape(codePoint, this.peekCodePoint(0))) {\r\n result += fromCodePoint(this.consumeEscapedCodePoint());\r\n }\r\n else {\r\n this.reconsumeCodePoint(codePoint);\r\n return result;\r\n }\r\n }\r\n };\r\n return Tokenizer;\r\n }());\n\n var Parser = /** @class */ (function () {\r\n function Parser(tokens) {\r\n this._tokens = tokens;\r\n }\r\n Parser.create = function (value) {\r\n var tokenizer = new Tokenizer();\r\n tokenizer.write(value);\r\n return new Parser(tokenizer.read());\r\n };\r\n Parser.parseValue = function (value) {\r\n return Parser.create(value).parseComponentValue();\r\n };\r\n Parser.parseValues = function (value) {\r\n return Parser.create(value).parseComponentValues();\r\n };\r\n Parser.prototype.parseComponentValue = function () {\r\n var token = this.consumeToken();\r\n while (token.type === TokenType.WHITESPACE_TOKEN) {\r\n token = this.consumeToken();\r\n }\r\n if (token.type === TokenType.EOF_TOKEN) {\r\n throw new SyntaxError(\"Error parsing CSS component value, unexpected EOF\");\r\n }\r\n this.reconsumeToken(token);\r\n var value = this.consumeComponentValue();\r\n do {\r\n token = this.consumeToken();\r\n } while (token.type === TokenType.WHITESPACE_TOKEN);\r\n if (token.type === TokenType.EOF_TOKEN) {\r\n return value;\r\n }\r\n throw new SyntaxError(\"Error parsing CSS component value, multiple values found when expecting only one\");\r\n };\r\n Parser.prototype.parseComponentValues = function () {\r\n var values = [];\r\n while (true) {\r\n var value = this.consumeComponentValue();\r\n if (value.type === TokenType.EOF_TOKEN) {\r\n return values;\r\n }\r\n values.push(value);\r\n values.push();\r\n }\r\n };\r\n Parser.prototype.consumeComponentValue = function () {\r\n var token = this.consumeToken();\r\n switch (token.type) {\r\n case TokenType.LEFT_CURLY_BRACKET_TOKEN:\r\n case TokenType.LEFT_SQUARE_BRACKET_TOKEN:\r\n case TokenType.LEFT_PARENTHESIS_TOKEN:\r\n return this.consumeSimpleBlock(token.type);\r\n case TokenType.FUNCTION_TOKEN:\r\n return this.consumeFunction(token);\r\n }\r\n return token;\r\n };\r\n Parser.prototype.consumeSimpleBlock = function (type) {\r\n var block = { type: type, values: [] };\r\n var token = this.consumeToken();\r\n while (true) {\r\n if (token.type === TokenType.EOF_TOKEN || isEndingTokenFor(token, type)) {\r\n return block;\r\n }\r\n this.reconsumeToken(token);\r\n block.values.push(this.consumeComponentValue());\r\n token = this.consumeToken();\r\n }\r\n };\r\n Parser.prototype.consumeFunction = function (functionToken) {\r\n var cssFunction = {\r\n name: functionToken.value,\r\n values: [],\r\n type: TokenType.FUNCTION\r\n };\r\n while (true) {\r\n var token = this.consumeToken();\r\n if (token.type === TokenType.EOF_TOKEN || token.type === TokenType.RIGHT_PARENTHESIS_TOKEN) {\r\n return cssFunction;\r\n }\r\n this.reconsumeToken(token);\r\n cssFunction.values.push(this.consumeComponentValue());\r\n }\r\n };\r\n Parser.prototype.consumeToken = function () {\r\n var token = this._tokens.shift();\r\n return typeof token === 'undefined' ? EOF_TOKEN : token;\r\n };\r\n Parser.prototype.reconsumeToken = function (token) {\r\n this._tokens.unshift(token);\r\n };\r\n return Parser;\r\n }());\r\n var isDimensionToken = function (token) { return token.type === TokenType.DIMENSION_TOKEN; };\r\n var isNumberToken = function (token) { return token.type === TokenType.NUMBER_TOKEN; };\r\n var isIdentToken = function (token) { return token.type === TokenType.IDENT_TOKEN; };\r\n var isStringToken = function (token) { return token.type === TokenType.STRING_TOKEN; };\r\n var isIdentWithValue = function (token, value) {\r\n return isIdentToken(token) && token.value === value;\r\n };\r\n var nonWhiteSpace = function (token) { return token.type !== TokenType.WHITESPACE_TOKEN; };\r\n var nonFunctionArgSeparator = function (token) {\r\n return token.type !== TokenType.WHITESPACE_TOKEN && token.type !== TokenType.COMMA_TOKEN;\r\n };\r\n var parseFunctionArgs = function (tokens) {\r\n var args = [];\r\n var arg = [];\r\n tokens.forEach(function (token) {\r\n if (token.type === TokenType.COMMA_TOKEN) {\r\n if (arg.length === 0) {\r\n throw new Error(\"Error parsing function args, zero tokens for arg\");\r\n }\r\n args.push(arg);\r\n arg = [];\r\n return;\r\n }\r\n if (token.type !== TokenType.WHITESPACE_TOKEN) {\r\n arg.push(token);\r\n }\r\n });\r\n if (arg.length) {\r\n args.push(arg);\r\n }\r\n return args;\r\n };\r\n var isEndingTokenFor = function (token, type) {\r\n if (type === TokenType.LEFT_CURLY_BRACKET_TOKEN && token.type === TokenType.RIGHT_CURLY_BRACKET_TOKEN) {\r\n return true;\r\n }\r\n if (type === TokenType.LEFT_SQUARE_BRACKET_TOKEN && token.type === TokenType.RIGHT_SQUARE_BRACKET_TOKEN) {\r\n return true;\r\n }\r\n return type === TokenType.LEFT_PARENTHESIS_TOKEN && token.type === TokenType.RIGHT_PARENTHESIS_TOKEN;\r\n };\n\n var isLength = function (token) {\r\n return token.type === TokenType.NUMBER_TOKEN || token.type === TokenType.DIMENSION_TOKEN;\r\n };\n\n var isLengthPercentage = function (token) {\r\n return token.type === TokenType.PERCENTAGE_TOKEN || isLength(token);\r\n };\r\n var parseLengthPercentageTuple = function (tokens) {\r\n return tokens.length > 1 ? [tokens[0], tokens[1]] : [tokens[0]];\r\n };\r\n var ZERO_LENGTH = {\r\n type: TokenType.NUMBER_TOKEN,\r\n number: 0,\r\n flags: FLAG_INTEGER\r\n };\r\n var FIFTY_PERCENT = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 50,\r\n flags: FLAG_INTEGER\r\n };\r\n var HUNDRED_PERCENT = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 100,\r\n flags: FLAG_INTEGER\r\n };\r\n var getAbsoluteValueForTuple = function (tuple, width, height) {\r\n var x = tuple[0], y = tuple[1];\r\n return [getAbsoluteValue(x, width), getAbsoluteValue(typeof y !== 'undefined' ? y : x, height)];\r\n };\r\n var getAbsoluteValue = function (token, parent) {\r\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\r\n return (token.number / 100) * parent;\r\n }\r\n if (isDimensionToken(token)) {\r\n switch (token.unit) {\r\n case 'rem':\r\n case 'em':\r\n return 16 * token.number; // TODO use correct font-size\r\n case 'px':\r\n default:\r\n return token.number;\r\n }\r\n }\r\n return token.number;\r\n };\n\n var DEG = 'deg';\r\n var GRAD = 'grad';\r\n var RAD = 'rad';\r\n var TURN = 'turn';\r\n var angle = {\r\n name: 'angle',\r\n parse: function (value) {\r\n if (value.type === TokenType.DIMENSION_TOKEN) {\r\n switch (value.unit) {\r\n case DEG:\r\n return (Math.PI * value.number) / 180;\r\n case GRAD:\r\n return (Math.PI / 200) * value.number;\r\n case RAD:\r\n return value.number;\r\n case TURN:\r\n return Math.PI * 2 * value.number;\r\n }\r\n }\r\n throw new Error(\"Unsupported angle type\");\r\n }\r\n };\r\n var isAngle = function (value) {\r\n if (value.type === TokenType.DIMENSION_TOKEN) {\r\n if (value.unit === DEG || value.unit === GRAD || value.unit === RAD || value.unit === TURN) {\r\n return true;\r\n }\r\n }\r\n return false;\r\n };\r\n var parseNamedSide = function (tokens) {\r\n var sideOrCorner = tokens\r\n .filter(isIdentToken)\r\n .map(function (ident) { return ident.value; })\r\n .join(' ');\r\n switch (sideOrCorner) {\r\n case 'to bottom right':\r\n case 'to right bottom':\r\n case 'left top':\r\n case 'top left':\r\n return [ZERO_LENGTH, ZERO_LENGTH];\r\n case 'to top':\r\n case 'bottom':\r\n return deg(0);\r\n case 'to bottom left':\r\n case 'to left bottom':\r\n case 'right top':\r\n case 'top right':\r\n return [ZERO_LENGTH, HUNDRED_PERCENT];\r\n case 'to right':\r\n case 'left':\r\n return deg(90);\r\n case 'to top left':\r\n case 'to left top':\r\n case 'right bottom':\r\n case 'bottom right':\r\n return [HUNDRED_PERCENT, HUNDRED_PERCENT];\r\n case 'to bottom':\r\n case 'top':\r\n return deg(180);\r\n case 'to top right':\r\n case 'to right top':\r\n case 'left bottom':\r\n case 'bottom left':\r\n return [HUNDRED_PERCENT, ZERO_LENGTH];\r\n case 'to left':\r\n case 'right':\r\n return deg(270);\r\n }\r\n return 0;\r\n };\r\n var deg = function (deg) { return (Math.PI * deg) / 180; };\n\n var color = {\r\n name: 'color',\r\n parse: function (value) {\r\n if (value.type === TokenType.FUNCTION) {\r\n var colorFunction = SUPPORTED_COLOR_FUNCTIONS[value.name];\r\n if (typeof colorFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported color function \\\"\" + value.name + \"\\\"\");\r\n }\r\n return colorFunction(value.values);\r\n }\r\n if (value.type === TokenType.HASH_TOKEN) {\r\n if (value.value.length === 3) {\r\n var r = value.value.substring(0, 1);\r\n var g = value.value.substring(1, 2);\r\n var b = value.value.substring(2, 3);\r\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), 1);\r\n }\r\n if (value.value.length === 4) {\r\n var r = value.value.substring(0, 1);\r\n var g = value.value.substring(1, 2);\r\n var b = value.value.substring(2, 3);\r\n var a = value.value.substring(3, 4);\r\n return pack(parseInt(r + r, 16), parseInt(g + g, 16), parseInt(b + b, 16), parseInt(a + a, 16) / 255);\r\n }\r\n if (value.value.length === 6) {\r\n var r = value.value.substring(0, 2);\r\n var g = value.value.substring(2, 4);\r\n var b = value.value.substring(4, 6);\r\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), 1);\r\n }\r\n if (value.value.length === 8) {\r\n var r = value.value.substring(0, 2);\r\n var g = value.value.substring(2, 4);\r\n var b = value.value.substring(4, 6);\r\n var a = value.value.substring(6, 8);\r\n return pack(parseInt(r, 16), parseInt(g, 16), parseInt(b, 16), parseInt(a, 16) / 255);\r\n }\r\n }\r\n if (value.type === TokenType.IDENT_TOKEN) {\r\n var namedColor = COLORS[value.value.toUpperCase()];\r\n if (typeof namedColor !== 'undefined') {\r\n return namedColor;\r\n }\r\n }\r\n return COLORS.TRANSPARENT;\r\n }\r\n };\r\n var isTransparent = function (color) { return (0xff & color) === 0; };\r\n var asString = function (color) {\r\n var alpha = 0xff & color;\r\n var blue = 0xff & (color >> 8);\r\n var green = 0xff & (color >> 16);\r\n var red = 0xff & (color >> 24);\r\n return alpha < 255 ? \"rgba(\" + red + \",\" + green + \",\" + blue + \",\" + alpha / 255 + \")\" : \"rgb(\" + red + \",\" + green + \",\" + blue + \")\";\r\n };\r\n var pack = function (r, g, b, a) {\r\n return ((r << 24) | (g << 16) | (b << 8) | (Math.round(a * 255) << 0)) >>> 0;\r\n };\r\n var getTokenColorValue = function (token, i) {\r\n if (token.type === TokenType.NUMBER_TOKEN) {\r\n return token.number;\r\n }\r\n if (token.type === TokenType.PERCENTAGE_TOKEN) {\r\n var max = i === 3 ? 1 : 255;\r\n return i === 3 ? (token.number / 100) * max : Math.round((token.number / 100) * max);\r\n }\r\n return 0;\r\n };\r\n var rgb = function (args) {\r\n var tokens = args.filter(nonFunctionArgSeparator);\r\n if (tokens.length === 3) {\r\n var _a = tokens.map(getTokenColorValue), r = _a[0], g = _a[1], b = _a[2];\r\n return pack(r, g, b, 1);\r\n }\r\n if (tokens.length === 4) {\r\n var _b = tokens.map(getTokenColorValue), r = _b[0], g = _b[1], b = _b[2], a = _b[3];\r\n return pack(r, g, b, a);\r\n }\r\n return 0;\r\n };\r\n function hue2rgb(t1, t2, hue) {\r\n if (hue < 0) {\r\n hue += 1;\r\n }\r\n if (hue >= 1) {\r\n hue -= 1;\r\n }\r\n if (hue < 1 / 6) {\r\n return (t2 - t1) * hue * 6 + t1;\r\n }\r\n else if (hue < 1 / 2) {\r\n return t2;\r\n }\r\n else if (hue < 2 / 3) {\r\n return (t2 - t1) * 6 * (2 / 3 - hue) + t1;\r\n }\r\n else {\r\n return t1;\r\n }\r\n }\r\n var hsl = function (args) {\r\n var tokens = args.filter(nonFunctionArgSeparator);\r\n var hue = tokens[0], saturation = tokens[1], lightness = tokens[2], alpha = tokens[3];\r\n var h = (hue.type === TokenType.NUMBER_TOKEN ? deg(hue.number) : angle.parse(hue)) / (Math.PI * 2);\r\n var s = isLengthPercentage(saturation) ? saturation.number / 100 : 0;\r\n var l = isLengthPercentage(lightness) ? lightness.number / 100 : 0;\r\n var a = typeof alpha !== 'undefined' && isLengthPercentage(alpha) ? getAbsoluteValue(alpha, 1) : 1;\r\n if (s === 0) {\r\n return pack(l * 255, l * 255, l * 255, 1);\r\n }\r\n var t2 = l <= 0.5 ? l * (s + 1) : l + s - l * s;\r\n var t1 = l * 2 - t2;\r\n var r = hue2rgb(t1, t2, h + 1 / 3);\r\n var g = hue2rgb(t1, t2, h);\r\n var b = hue2rgb(t1, t2, h - 1 / 3);\r\n return pack(r * 255, g * 255, b * 255, a);\r\n };\r\n var SUPPORTED_COLOR_FUNCTIONS = {\r\n hsl: hsl,\r\n hsla: hsl,\r\n rgb: rgb,\r\n rgba: rgb\r\n };\r\n var COLORS = {\r\n ALICEBLUE: 0xf0f8ffff,\r\n ANTIQUEWHITE: 0xfaebd7ff,\r\n AQUA: 0x00ffffff,\r\n AQUAMARINE: 0x7fffd4ff,\r\n AZURE: 0xf0ffffff,\r\n BEIGE: 0xf5f5dcff,\r\n BISQUE: 0xffe4c4ff,\r\n BLACK: 0x000000ff,\r\n BLANCHEDALMOND: 0xffebcdff,\r\n BLUE: 0x0000ffff,\r\n BLUEVIOLET: 0x8a2be2ff,\r\n BROWN: 0xa52a2aff,\r\n BURLYWOOD: 0xdeb887ff,\r\n CADETBLUE: 0x5f9ea0ff,\r\n CHARTREUSE: 0x7fff00ff,\r\n CHOCOLATE: 0xd2691eff,\r\n CORAL: 0xff7f50ff,\r\n CORNFLOWERBLUE: 0x6495edff,\r\n CORNSILK: 0xfff8dcff,\r\n CRIMSON: 0xdc143cff,\r\n CYAN: 0x00ffffff,\r\n DARKBLUE: 0x00008bff,\r\n DARKCYAN: 0x008b8bff,\r\n DARKGOLDENROD: 0xb886bbff,\r\n DARKGRAY: 0xa9a9a9ff,\r\n DARKGREEN: 0x006400ff,\r\n DARKGREY: 0xa9a9a9ff,\r\n DARKKHAKI: 0xbdb76bff,\r\n DARKMAGENTA: 0x8b008bff,\r\n DARKOLIVEGREEN: 0x556b2fff,\r\n DARKORANGE: 0xff8c00ff,\r\n DARKORCHID: 0x9932ccff,\r\n DARKRED: 0x8b0000ff,\r\n DARKSALMON: 0xe9967aff,\r\n DARKSEAGREEN: 0x8fbc8fff,\r\n DARKSLATEBLUE: 0x483d8bff,\r\n DARKSLATEGRAY: 0x2f4f4fff,\r\n DARKSLATEGREY: 0x2f4f4fff,\r\n DARKTURQUOISE: 0x00ced1ff,\r\n DARKVIOLET: 0x9400d3ff,\r\n DEEPPINK: 0xff1493ff,\r\n DEEPSKYBLUE: 0x00bfffff,\r\n DIMGRAY: 0x696969ff,\r\n DIMGREY: 0x696969ff,\r\n DODGERBLUE: 0x1e90ffff,\r\n FIREBRICK: 0xb22222ff,\r\n FLORALWHITE: 0xfffaf0ff,\r\n FORESTGREEN: 0x228b22ff,\r\n FUCHSIA: 0xff00ffff,\r\n GAINSBORO: 0xdcdcdcff,\r\n GHOSTWHITE: 0xf8f8ffff,\r\n GOLD: 0xffd700ff,\r\n GOLDENROD: 0xdaa520ff,\r\n GRAY: 0x808080ff,\r\n GREEN: 0x008000ff,\r\n GREENYELLOW: 0xadff2fff,\r\n GREY: 0x808080ff,\r\n HONEYDEW: 0xf0fff0ff,\r\n HOTPINK: 0xff69b4ff,\r\n INDIANRED: 0xcd5c5cff,\r\n INDIGO: 0x4b0082ff,\r\n IVORY: 0xfffff0ff,\r\n KHAKI: 0xf0e68cff,\r\n LAVENDER: 0xe6e6faff,\r\n LAVENDERBLUSH: 0xfff0f5ff,\r\n LAWNGREEN: 0x7cfc00ff,\r\n LEMONCHIFFON: 0xfffacdff,\r\n LIGHTBLUE: 0xadd8e6ff,\r\n LIGHTCORAL: 0xf08080ff,\r\n LIGHTCYAN: 0xe0ffffff,\r\n LIGHTGOLDENRODYELLOW: 0xfafad2ff,\r\n LIGHTGRAY: 0xd3d3d3ff,\r\n LIGHTGREEN: 0x90ee90ff,\r\n LIGHTGREY: 0xd3d3d3ff,\r\n LIGHTPINK: 0xffb6c1ff,\r\n LIGHTSALMON: 0xffa07aff,\r\n LIGHTSEAGREEN: 0x20b2aaff,\r\n LIGHTSKYBLUE: 0x87cefaff,\r\n LIGHTSLATEGRAY: 0x778899ff,\r\n LIGHTSLATEGREY: 0x778899ff,\r\n LIGHTSTEELBLUE: 0xb0c4deff,\r\n LIGHTYELLOW: 0xffffe0ff,\r\n LIME: 0x00ff00ff,\r\n LIMEGREEN: 0x32cd32ff,\r\n LINEN: 0xfaf0e6ff,\r\n MAGENTA: 0xff00ffff,\r\n MAROON: 0x800000ff,\r\n MEDIUMAQUAMARINE: 0x66cdaaff,\r\n MEDIUMBLUE: 0x0000cdff,\r\n MEDIUMORCHID: 0xba55d3ff,\r\n MEDIUMPURPLE: 0x9370dbff,\r\n MEDIUMSEAGREEN: 0x3cb371ff,\r\n MEDIUMSLATEBLUE: 0x7b68eeff,\r\n MEDIUMSPRINGGREEN: 0x00fa9aff,\r\n MEDIUMTURQUOISE: 0x48d1ccff,\r\n MEDIUMVIOLETRED: 0xc71585ff,\r\n MIDNIGHTBLUE: 0x191970ff,\r\n MINTCREAM: 0xf5fffaff,\r\n MISTYROSE: 0xffe4e1ff,\r\n MOCCASIN: 0xffe4b5ff,\r\n NAVAJOWHITE: 0xffdeadff,\r\n NAVY: 0x000080ff,\r\n OLDLACE: 0xfdf5e6ff,\r\n OLIVE: 0x808000ff,\r\n OLIVEDRAB: 0x6b8e23ff,\r\n ORANGE: 0xffa500ff,\r\n ORANGERED: 0xff4500ff,\r\n ORCHID: 0xda70d6ff,\r\n PALEGOLDENROD: 0xeee8aaff,\r\n PALEGREEN: 0x98fb98ff,\r\n PALETURQUOISE: 0xafeeeeff,\r\n PALEVIOLETRED: 0xdb7093ff,\r\n PAPAYAWHIP: 0xffefd5ff,\r\n PEACHPUFF: 0xffdab9ff,\r\n PERU: 0xcd853fff,\r\n PINK: 0xffc0cbff,\r\n PLUM: 0xdda0ddff,\r\n POWDERBLUE: 0xb0e0e6ff,\r\n PURPLE: 0x800080ff,\r\n REBECCAPURPLE: 0x663399ff,\r\n RED: 0xff0000ff,\r\n ROSYBROWN: 0xbc8f8fff,\r\n ROYALBLUE: 0x4169e1ff,\r\n SADDLEBROWN: 0x8b4513ff,\r\n SALMON: 0xfa8072ff,\r\n SANDYBROWN: 0xf4a460ff,\r\n SEAGREEN: 0x2e8b57ff,\r\n SEASHELL: 0xfff5eeff,\r\n SIENNA: 0xa0522dff,\r\n SILVER: 0xc0c0c0ff,\r\n SKYBLUE: 0x87ceebff,\r\n SLATEBLUE: 0x6a5acdff,\r\n SLATEGRAY: 0x708090ff,\r\n SLATEGREY: 0x708090ff,\r\n SNOW: 0xfffafaff,\r\n SPRINGGREEN: 0x00ff7fff,\r\n STEELBLUE: 0x4682b4ff,\r\n TAN: 0xd2b48cff,\r\n TEAL: 0x008080ff,\r\n THISTLE: 0xd8bfd8ff,\r\n TOMATO: 0xff6347ff,\r\n TRANSPARENT: 0x00000000,\r\n TURQUOISE: 0x40e0d0ff,\r\n VIOLET: 0xee82eeff,\r\n WHEAT: 0xf5deb3ff,\r\n WHITE: 0xffffffff,\r\n WHITESMOKE: 0xf5f5f5ff,\r\n YELLOW: 0xffff00ff,\r\n YELLOWGREEN: 0x9acd32ff\r\n };\n\n var PropertyDescriptorParsingType;\r\n (function (PropertyDescriptorParsingType) {\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"VALUE\"] = 0] = \"VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"LIST\"] = 1] = \"LIST\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"IDENT_VALUE\"] = 2] = \"IDENT_VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"TYPE_VALUE\"] = 3] = \"TYPE_VALUE\";\r\n PropertyDescriptorParsingType[PropertyDescriptorParsingType[\"TOKEN_VALUE\"] = 4] = \"TOKEN_VALUE\";\r\n })(PropertyDescriptorParsingType || (PropertyDescriptorParsingType = {}));\n\n var BACKGROUND_CLIP;\r\n (function (BACKGROUND_CLIP) {\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"BORDER_BOX\"] = 0] = \"BORDER_BOX\";\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"PADDING_BOX\"] = 1] = \"PADDING_BOX\";\r\n BACKGROUND_CLIP[BACKGROUND_CLIP[\"CONTENT_BOX\"] = 2] = \"CONTENT_BOX\";\r\n })(BACKGROUND_CLIP || (BACKGROUND_CLIP = {}));\r\n var backgroundClip = {\r\n name: 'background-clip',\r\n initialValue: 'border-box',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.map(function (token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'padding-box':\r\n return BACKGROUND_CLIP.PADDING_BOX;\r\n case 'content-box':\r\n return BACKGROUND_CLIP.CONTENT_BOX;\r\n }\r\n }\r\n return BACKGROUND_CLIP.BORDER_BOX;\r\n });\r\n }\r\n };\n\n var backgroundColor = {\r\n name: \"background-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var parseColorStop = function (args) {\r\n var color$1 = color.parse(args[0]);\r\n var stop = args[1];\r\n return stop && isLengthPercentage(stop) ? { color: color$1, stop: stop } : { color: color$1, stop: null };\r\n };\r\n var processColorStops = function (stops, lineLength) {\r\n var first = stops[0];\r\n var last = stops[stops.length - 1];\r\n if (first.stop === null) {\r\n first.stop = ZERO_LENGTH;\r\n }\r\n if (last.stop === null) {\r\n last.stop = HUNDRED_PERCENT;\r\n }\r\n var processStops = [];\r\n var previous = 0;\r\n for (var i = 0; i < stops.length; i++) {\r\n var stop_1 = stops[i].stop;\r\n if (stop_1 !== null) {\r\n var absoluteValue = getAbsoluteValue(stop_1, lineLength);\r\n if (absoluteValue > previous) {\r\n processStops.push(absoluteValue);\r\n }\r\n else {\r\n processStops.push(previous);\r\n }\r\n previous = absoluteValue;\r\n }\r\n else {\r\n processStops.push(null);\r\n }\r\n }\r\n var gapBegin = null;\r\n for (var i = 0; i < processStops.length; i++) {\r\n var stop_2 = processStops[i];\r\n if (stop_2 === null) {\r\n if (gapBegin === null) {\r\n gapBegin = i;\r\n }\r\n }\r\n else if (gapBegin !== null) {\r\n var gapLength = i - gapBegin;\r\n var beforeGap = processStops[gapBegin - 1];\r\n var gapValue = (stop_2 - beforeGap) / (gapLength + 1);\r\n for (var g = 1; g <= gapLength; g++) {\r\n processStops[gapBegin + g - 1] = gapValue * g;\r\n }\r\n gapBegin = null;\r\n }\r\n }\r\n return stops.map(function (_a, i) {\r\n var color = _a.color;\r\n return { color: color, stop: Math.max(Math.min(1, processStops[i] / lineLength), 0) };\r\n });\r\n };\r\n var getAngleFromCorner = function (corner, width, height) {\r\n var centerX = width / 2;\r\n var centerY = height / 2;\r\n var x = getAbsoluteValue(corner[0], width) - centerX;\r\n var y = centerY - getAbsoluteValue(corner[1], height);\r\n return (Math.atan2(y, x) + Math.PI * 2) % (Math.PI * 2);\r\n };\r\n var calculateGradientDirection = function (angle, width, height) {\r\n var radian = typeof angle === 'number' ? angle : getAngleFromCorner(angle, width, height);\r\n var lineLength = Math.abs(width * Math.sin(radian)) + Math.abs(height * Math.cos(radian));\r\n var halfWidth = width / 2;\r\n var halfHeight = height / 2;\r\n var halfLineLength = lineLength / 2;\r\n var yDiff = Math.sin(radian - Math.PI / 2) * halfLineLength;\r\n var xDiff = Math.cos(radian - Math.PI / 2) * halfLineLength;\r\n return [lineLength, halfWidth - xDiff, halfWidth + xDiff, halfHeight - yDiff, halfHeight + yDiff];\r\n };\r\n var distance = function (a, b) { return Math.sqrt(a * a + b * b); };\r\n var findCorner = function (width, height, x, y, closest) {\r\n var corners = [[0, 0], [0, height], [width, 0], [width, height]];\r\n return corners.reduce(function (stat, corner) {\r\n var cx = corner[0], cy = corner[1];\r\n var d = distance(x - cx, y - cy);\r\n if (closest ? d < stat.optimumDistance : d > stat.optimumDistance) {\r\n return {\r\n optimumCorner: corner,\r\n optimumDistance: d\r\n };\r\n }\r\n return stat;\r\n }, {\r\n optimumDistance: closest ? Infinity : -Infinity,\r\n optimumCorner: null\r\n }).optimumCorner;\r\n };\r\n var calculateRadius = function (gradient, x, y, width, height) {\r\n var rx = 0;\r\n var ry = 0;\r\n switch (gradient.size) {\r\n case CSSRadialExtent.CLOSEST_SIDE:\r\n // The ending shape is sized so that that it exactly meets the side of the gradient box closest to the gradient’s center.\r\n // If the shape is an ellipse, it exactly meets the closest side in each dimension.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.min(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n rx = Math.min(Math.abs(x), Math.abs(x - width));\r\n ry = Math.min(Math.abs(y), Math.abs(y - height));\r\n }\r\n break;\r\n case CSSRadialExtent.CLOSEST_CORNER:\r\n // The ending shape is sized so that that it passes through the corner of the gradient box closest to the gradient’s center.\r\n // If the shape is an ellipse, the ending shape is given the same aspect-ratio it would have if closest-side were specified.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.min(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n // Compute the ratio ry/rx (which is to be the same as for \"closest-side\")\r\n var c = Math.min(Math.abs(y), Math.abs(y - height)) / Math.min(Math.abs(x), Math.abs(x - width));\r\n var _a = findCorner(width, height, x, y, true), cx = _a[0], cy = _a[1];\r\n rx = distance(cx - x, (cy - y) / c);\r\n ry = c * rx;\r\n }\r\n break;\r\n case CSSRadialExtent.FARTHEST_SIDE:\r\n // Same as closest-side, except the ending shape is sized based on the farthest side(s)\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.max(Math.abs(x), Math.abs(x - width), Math.abs(y), Math.abs(y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n rx = Math.max(Math.abs(x), Math.abs(x - width));\r\n ry = Math.max(Math.abs(y), Math.abs(y - height));\r\n }\r\n break;\r\n case CSSRadialExtent.FARTHEST_CORNER:\r\n // Same as closest-corner, except the ending shape is sized based on the farthest corner.\r\n // If the shape is an ellipse, the ending shape is given the same aspect ratio it would have if farthest-side were specified.\r\n if (gradient.shape === CSSRadialShape.CIRCLE) {\r\n rx = ry = Math.max(distance(x, y), distance(x, y - height), distance(x - width, y), distance(x - width, y - height));\r\n }\r\n else if (gradient.shape === CSSRadialShape.ELLIPSE) {\r\n // Compute the ratio ry/rx (which is to be the same as for \"farthest-side\")\r\n var c = Math.max(Math.abs(y), Math.abs(y - height)) / Math.max(Math.abs(x), Math.abs(x - width));\r\n var _b = findCorner(width, height, x, y, false), cx = _b[0], cy = _b[1];\r\n rx = distance(cx - x, (cy - y) / c);\r\n ry = c * rx;\r\n }\r\n break;\r\n }\r\n if (Array.isArray(gradient.size)) {\r\n rx = getAbsoluteValue(gradient.size[0], width);\r\n ry = gradient.size.length === 2 ? getAbsoluteValue(gradient.size[1], height) : rx;\r\n }\r\n return [rx, ry];\r\n };\n\n var linearGradient = function (tokens) {\r\n var angle$1 = deg(180);\r\n var stops = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n if (i === 0) {\r\n var firstToken = arg[0];\r\n if (firstToken.type === TokenType.IDENT_TOKEN && firstToken.value === 'to') {\r\n angle$1 = parseNamedSide(arg);\r\n return;\r\n }\r\n else if (isAngle(firstToken)) {\r\n angle$1 = angle.parse(firstToken);\r\n return;\r\n }\r\n }\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n });\r\n return { angle: angle$1, stops: stops, type: CSSImageType.LINEAR_GRADIENT };\r\n };\n\n var prefixLinearGradient = function (tokens) {\r\n var angle$1 = deg(180);\r\n var stops = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n if (i === 0) {\r\n var firstToken = arg[0];\r\n if (firstToken.type === TokenType.IDENT_TOKEN &&\r\n ['top', 'left', 'right', 'bottom'].indexOf(firstToken.value) !== -1) {\r\n angle$1 = parseNamedSide(arg);\r\n return;\r\n }\r\n else if (isAngle(firstToken)) {\r\n angle$1 = (angle.parse(firstToken) + deg(270)) % deg(360);\r\n return;\r\n }\r\n }\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n });\r\n return {\r\n angle: angle$1,\r\n stops: stops,\r\n type: CSSImageType.LINEAR_GRADIENT\r\n };\r\n };\n\n var testRangeBounds = function (document) {\r\n var TEST_HEIGHT = 123;\r\n if (document.createRange) {\r\n var range = document.createRange();\r\n if (range.getBoundingClientRect) {\r\n var testElement = document.createElement('boundtest');\r\n testElement.style.height = TEST_HEIGHT + \"px\";\r\n testElement.style.display = 'block';\r\n document.body.appendChild(testElement);\r\n range.selectNode(testElement);\r\n var rangeBounds = range.getBoundingClientRect();\r\n var rangeHeight = Math.round(rangeBounds.height);\r\n document.body.removeChild(testElement);\r\n if (rangeHeight === TEST_HEIGHT) {\r\n return true;\r\n }\r\n }\r\n }\r\n return false;\r\n };\r\n var testCORS = function () { return typeof new Image().crossOrigin !== 'undefined'; };\r\n var testResponseType = function () { return typeof new XMLHttpRequest().responseType === 'string'; };\r\n var testSVG = function (document) {\r\n var img = new Image();\r\n var canvas = document.createElement('canvas');\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n return false;\r\n }\r\n img.src = \"data:image/svg+xml,\";\r\n try {\r\n ctx.drawImage(img, 0, 0);\r\n canvas.toDataURL();\r\n }\r\n catch (e) {\r\n return false;\r\n }\r\n return true;\r\n };\r\n var isGreenPixel = function (data) {\r\n return data[0] === 0 && data[1] === 255 && data[2] === 0 && data[3] === 255;\r\n };\r\n var testForeignObject = function (document) {\r\n var canvas = document.createElement('canvas');\r\n var size = 100;\r\n canvas.width = size;\r\n canvas.height = size;\r\n var ctx = canvas.getContext('2d');\r\n if (!ctx) {\r\n return Promise.reject(false);\r\n }\r\n ctx.fillStyle = 'rgb(0, 255, 0)';\r\n ctx.fillRect(0, 0, size, size);\r\n var img = new Image();\r\n var greenImageSrc = canvas.toDataURL();\r\n img.src = greenImageSrc;\r\n var svg = createForeignObjectSVG(size, size, 0, 0, img);\r\n ctx.fillStyle = 'red';\r\n ctx.fillRect(0, 0, size, size);\r\n return loadSerializedSVG(svg)\r\n .then(function (img) {\r\n ctx.drawImage(img, 0, 0);\r\n var data = ctx.getImageData(0, 0, size, size).data;\r\n ctx.fillStyle = 'red';\r\n ctx.fillRect(0, 0, size, size);\r\n var node = document.createElement('div');\r\n node.style.backgroundImage = \"url(\" + greenImageSrc + \")\";\r\n node.style.height = size + \"px\";\r\n // Firefox 55 does not render inline
tags\r\n return isGreenPixel(data)\r\n ? loadSerializedSVG(createForeignObjectSVG(size, size, 0, 0, node))\r\n : Promise.reject(false);\r\n })\r\n .then(function (img) {\r\n ctx.drawImage(img, 0, 0);\r\n // Edge does not render background-images\r\n return isGreenPixel(ctx.getImageData(0, 0, size, size).data);\r\n })\r\n .catch(function () { return false; });\r\n };\r\n var createForeignObjectSVG = function (width, height, x, y, node) {\r\n var xmlns = 'http://www.w3.org/2000/svg';\r\n var svg = document.createElementNS(xmlns, 'svg');\r\n var foreignObject = document.createElementNS(xmlns, 'foreignObject');\r\n svg.setAttributeNS(null, 'width', width.toString());\r\n svg.setAttributeNS(null, 'height', height.toString());\r\n foreignObject.setAttributeNS(null, 'width', '100%');\r\n foreignObject.setAttributeNS(null, 'height', '100%');\r\n foreignObject.setAttributeNS(null, 'x', x.toString());\r\n foreignObject.setAttributeNS(null, 'y', y.toString());\r\n foreignObject.setAttributeNS(null, 'externalResourcesRequired', 'true');\r\n svg.appendChild(foreignObject);\r\n foreignObject.appendChild(node);\r\n return svg;\r\n };\r\n var loadSerializedSVG = function (svg) {\r\n return new Promise(function (resolve, reject) {\r\n var img = new Image();\r\n img.onload = function () { return resolve(img); };\r\n img.onerror = reject;\r\n img.src = \"data:image/svg+xml;charset=utf-8,\" + encodeURIComponent(new XMLSerializer().serializeToString(svg));\r\n });\r\n };\r\n var FEATURES = {\r\n get SUPPORT_RANGE_BOUNDS() {\r\n var value = testRangeBounds(document);\r\n Object.defineProperty(FEATURES, 'SUPPORT_RANGE_BOUNDS', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_SVG_DRAWING() {\r\n var value = testSVG(document);\r\n Object.defineProperty(FEATURES, 'SUPPORT_SVG_DRAWING', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_FOREIGNOBJECT_DRAWING() {\r\n var value = typeof Array.from === 'function' && typeof window.fetch === 'function'\r\n ? testForeignObject(document)\r\n : Promise.resolve(false);\r\n Object.defineProperty(FEATURES, 'SUPPORT_FOREIGNOBJECT_DRAWING', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_CORS_IMAGES() {\r\n var value = testCORS();\r\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_IMAGES', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_RESPONSE_TYPE() {\r\n var value = testResponseType();\r\n Object.defineProperty(FEATURES, 'SUPPORT_RESPONSE_TYPE', { value: value });\r\n return value;\r\n },\r\n get SUPPORT_CORS_XHR() {\r\n var value = 'withCredentials' in new XMLHttpRequest();\r\n Object.defineProperty(FEATURES, 'SUPPORT_CORS_XHR', { value: value });\r\n return value;\r\n }\r\n };\n\n var Logger = /** @class */ (function () {\r\n function Logger(_a) {\r\n var id = _a.id, enabled = _a.enabled;\r\n this.id = id;\r\n this.enabled = enabled;\r\n this.start = Date.now();\r\n }\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.debug = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.debug === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.debug.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n else {\r\n this.info.apply(this, args);\r\n }\r\n }\r\n };\r\n Logger.prototype.getTime = function () {\r\n return Date.now() - this.start;\r\n };\r\n Logger.create = function (options) {\r\n Logger.instances[options.id] = new Logger(options);\r\n };\r\n Logger.destroy = function (id) {\r\n delete Logger.instances[id];\r\n };\r\n Logger.getInstance = function (id) {\r\n var instance = Logger.instances[id];\r\n if (typeof instance === 'undefined') {\r\n throw new Error(\"No logger instance found with id \" + id);\r\n }\r\n return instance;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.info = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.info === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.info.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n }\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Logger.prototype.error = function () {\r\n var args = [];\r\n for (var _i = 0; _i < arguments.length; _i++) {\r\n args[_i] = arguments[_i];\r\n }\r\n if (this.enabled) {\r\n // eslint-disable-next-line no-console\r\n if (typeof window !== 'undefined' && window.console && typeof console.error === 'function') {\r\n // eslint-disable-next-line no-console\r\n console.error.apply(console, [this.id, this.getTime() + \"ms\"].concat(args));\r\n }\r\n else {\r\n this.info.apply(this, args);\r\n }\r\n }\r\n };\r\n Logger.instances = {};\r\n return Logger;\r\n }());\n\n var CacheStorage = /** @class */ (function () {\r\n function CacheStorage() {\r\n }\r\n CacheStorage.create = function (name, options) {\r\n return (CacheStorage._caches[name] = new Cache(name, options));\r\n };\r\n CacheStorage.destroy = function (name) {\r\n delete CacheStorage._caches[name];\r\n };\r\n CacheStorage.open = function (name) {\r\n var cache = CacheStorage._caches[name];\r\n if (typeof cache !== 'undefined') {\r\n return cache;\r\n }\r\n throw new Error(\"Cache with key \\\"\" + name + \"\\\" not found\");\r\n };\r\n CacheStorage.getOrigin = function (url) {\r\n var link = CacheStorage._link;\r\n if (!link) {\r\n return 'about:blank';\r\n }\r\n link.href = url;\r\n link.href = link.href; // IE9, LOL! - http://jsfiddle.net/niklasvh/2e48b/\r\n return link.protocol + link.hostname + link.port;\r\n };\r\n CacheStorage.isSameOrigin = function (src) {\r\n return CacheStorage.getOrigin(src) === CacheStorage._origin;\r\n };\r\n CacheStorage.setContext = function (window) {\r\n CacheStorage._link = window.document.createElement('a');\r\n CacheStorage._origin = CacheStorage.getOrigin(window.location.href);\r\n };\r\n CacheStorage.getInstance = function () {\r\n var current = CacheStorage._current;\r\n if (current === null) {\r\n throw new Error(\"No cache instance attached\");\r\n }\r\n return current;\r\n };\r\n CacheStorage.attachInstance = function (cache) {\r\n CacheStorage._current = cache;\r\n };\r\n CacheStorage.detachInstance = function () {\r\n CacheStorage._current = null;\r\n };\r\n CacheStorage._caches = {};\r\n CacheStorage._origin = 'about:blank';\r\n CacheStorage._current = null;\r\n return CacheStorage;\r\n }());\r\n var Cache = /** @class */ (function () {\r\n function Cache(id, options) {\r\n this.id = id;\r\n this._options = options;\r\n this._cache = {};\r\n }\r\n Cache.prototype.addImage = function (src) {\r\n var result = Promise.resolve();\r\n if (this.has(src)) {\r\n return result;\r\n }\r\n if (isBlobImage(src) || isRenderable(src)) {\r\n this._cache[src] = this.loadImage(src);\r\n return result;\r\n }\r\n return result;\r\n };\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n Cache.prototype.match = function (src) {\r\n return this._cache[src];\r\n };\r\n Cache.prototype.loadImage = function (key) {\r\n return __awaiter(this, void 0, void 0, function () {\r\n var isSameOrigin, useCORS, useProxy, src;\r\n var _this = this;\r\n return __generator(this, function (_a) {\r\n switch (_a.label) {\r\n case 0:\r\n isSameOrigin = CacheStorage.isSameOrigin(key);\r\n useCORS = !isInlineImage(key) && this._options.useCORS === true && FEATURES.SUPPORT_CORS_IMAGES && !isSameOrigin;\r\n useProxy = !isInlineImage(key) &&\r\n !isSameOrigin &&\r\n typeof this._options.proxy === 'string' &&\r\n FEATURES.SUPPORT_CORS_XHR &&\r\n !useCORS;\r\n if (!isSameOrigin && this._options.allowTaint === false && !isInlineImage(key) && !useProxy && !useCORS) {\r\n return [2 /*return*/];\r\n }\r\n src = key;\r\n if (!useProxy) return [3 /*break*/, 2];\r\n return [4 /*yield*/, this.proxy(src)];\r\n case 1:\r\n src = _a.sent();\r\n _a.label = 2;\r\n case 2:\r\n Logger.getInstance(this.id).debug(\"Added image \" + key.substring(0, 256));\r\n return [4 /*yield*/, new Promise(function (resolve, reject) {\r\n var img = new Image();\r\n img.onload = function () { return resolve(img); };\r\n img.onerror = reject;\r\n //ios safari 10.3 taints canvas with data urls unless crossOrigin is set to anonymous\r\n if (isInlineBase64Image(src) || useCORS) {\r\n img.crossOrigin = 'anonymous';\r\n }\r\n img.src = src;\r\n if (img.complete === true) {\r\n // Inline XML images may fail to parse, throwing an Error later on\r\n setTimeout(function () { return resolve(img); }, 500);\r\n }\r\n if (_this._options.imageTimeout > 0) {\r\n setTimeout(function () { return reject(\"Timed out (\" + _this._options.imageTimeout + \"ms) loading image\"); }, _this._options.imageTimeout);\r\n }\r\n })];\r\n case 3: return [2 /*return*/, _a.sent()];\r\n }\r\n });\r\n });\r\n };\r\n Cache.prototype.has = function (key) {\r\n return typeof this._cache[key] !== 'undefined';\r\n };\r\n Cache.prototype.keys = function () {\r\n return Promise.resolve(Object.keys(this._cache));\r\n };\r\n Cache.prototype.proxy = function (src) {\r\n var _this = this;\r\n var proxy = this._options.proxy;\r\n if (!proxy) {\r\n throw new Error('No proxy defined');\r\n }\r\n var key = src.substring(0, 256);\r\n return new Promise(function (resolve, reject) {\r\n var responseType = FEATURES.SUPPORT_RESPONSE_TYPE ? 'blob' : 'text';\r\n var xhr = new XMLHttpRequest();\r\n xhr.onload = function () {\r\n if (xhr.status === 200) {\r\n if (responseType === 'text') {\r\n resolve(xhr.response);\r\n }\r\n else {\r\n var reader_1 = new FileReader();\r\n reader_1.addEventListener('load', function () { return resolve(reader_1.result); }, false);\r\n reader_1.addEventListener('error', function (e) { return reject(e); }, false);\r\n reader_1.readAsDataURL(xhr.response);\r\n }\r\n }\r\n else {\r\n reject(\"Failed to proxy resource \" + key + \" with status code \" + xhr.status);\r\n }\r\n };\r\n xhr.onerror = reject;\r\n xhr.open('GET', proxy + \"?url=\" + encodeURIComponent(src) + \"&responseType=\" + responseType);\r\n if (responseType !== 'text' && xhr instanceof XMLHttpRequest) {\r\n xhr.responseType = responseType;\r\n }\r\n if (_this._options.imageTimeout) {\r\n var timeout_1 = _this._options.imageTimeout;\r\n xhr.timeout = timeout_1;\r\n xhr.ontimeout = function () { return reject(\"Timed out (\" + timeout_1 + \"ms) proxying \" + key); };\r\n }\r\n xhr.send();\r\n });\r\n };\r\n return Cache;\r\n }());\r\n var INLINE_SVG = /^data:image\\/svg\\+xml/i;\r\n var INLINE_BASE64 = /^data:image\\/.*;base64,/i;\r\n var INLINE_IMG = /^data:image\\/.*/i;\r\n var isRenderable = function (src) { return FEATURES.SUPPORT_SVG_DRAWING || !isSVG(src); };\r\n var isInlineImage = function (src) { return INLINE_IMG.test(src); };\r\n var isInlineBase64Image = function (src) { return INLINE_BASE64.test(src); };\r\n var isBlobImage = function (src) { return src.substr(0, 4) === 'blob'; };\r\n var isSVG = function (src) { return src.substr(-3).toLowerCase() === 'svg' || INLINE_SVG.test(src); };\n\n var webkitGradient = function (tokens) {\r\n var angle = deg(180);\r\n var stops = [];\r\n var type = CSSImageType.LINEAR_GRADIENT;\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var firstToken = arg[0];\r\n if (i === 0) {\r\n if (isIdentToken(firstToken) && firstToken.value === 'linear') {\r\n type = CSSImageType.LINEAR_GRADIENT;\r\n return;\r\n }\r\n else if (isIdentToken(firstToken) && firstToken.value === 'radial') {\r\n type = CSSImageType.RADIAL_GRADIENT;\r\n return;\r\n }\r\n }\r\n if (firstToken.type === TokenType.FUNCTION) {\r\n if (firstToken.name === 'from') {\r\n var color$1 = color.parse(firstToken.values[0]);\r\n stops.push({ stop: ZERO_LENGTH, color: color$1 });\r\n }\r\n else if (firstToken.name === 'to') {\r\n var color$1 = color.parse(firstToken.values[0]);\r\n stops.push({ stop: HUNDRED_PERCENT, color: color$1 });\r\n }\r\n else if (firstToken.name === 'color-stop') {\r\n var values = firstToken.values.filter(nonFunctionArgSeparator);\r\n if (values.length === 2) {\r\n var color$1 = color.parse(values[1]);\r\n var stop_1 = values[0];\r\n if (isNumberToken(stop_1)) {\r\n stops.push({\r\n stop: { type: TokenType.PERCENTAGE_TOKEN, number: stop_1.number * 100, flags: stop_1.flags },\r\n color: color$1\r\n });\r\n }\r\n }\r\n }\r\n }\r\n });\r\n return type === CSSImageType.LINEAR_GRADIENT\r\n ? {\r\n angle: (angle + deg(180)) % deg(360),\r\n stops: stops,\r\n type: type\r\n }\r\n : { size: size, shape: shape, stops: stops, position: position, type: type };\r\n };\n\n var CLOSEST_SIDE = 'closest-side';\r\n var FARTHEST_SIDE = 'farthest-side';\r\n var CLOSEST_CORNER = 'closest-corner';\r\n var FARTHEST_CORNER = 'farthest-corner';\r\n var CIRCLE = 'circle';\r\n var ELLIPSE = 'ellipse';\r\n var COVER = 'cover';\r\n var CONTAIN = 'contain';\r\n var radialGradient = function (tokens) {\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var stops = [];\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var isColorStop = true;\r\n if (i === 0) {\r\n var isAtPosition_1 = false;\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isAtPosition_1) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'center':\r\n position.push(FIFTY_PERCENT);\r\n return acc;\r\n case 'top':\r\n case 'left':\r\n position.push(ZERO_LENGTH);\r\n return acc;\r\n case 'right':\r\n case 'bottom':\r\n position.push(HUNDRED_PERCENT);\r\n return acc;\r\n }\r\n }\r\n else if (isLengthPercentage(token) || isLength(token)) {\r\n position.push(token);\r\n }\r\n }\r\n else if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case CIRCLE:\r\n shape = CSSRadialShape.CIRCLE;\r\n return false;\r\n case ELLIPSE:\r\n shape = CSSRadialShape.ELLIPSE;\r\n return false;\r\n case 'at':\r\n isAtPosition_1 = true;\r\n return false;\r\n case CLOSEST_SIDE:\r\n size = CSSRadialExtent.CLOSEST_SIDE;\r\n return false;\r\n case COVER:\r\n case FARTHEST_SIDE:\r\n size = CSSRadialExtent.FARTHEST_SIDE;\r\n return false;\r\n case CONTAIN:\r\n case CLOSEST_CORNER:\r\n size = CSSRadialExtent.CLOSEST_CORNER;\r\n return false;\r\n case FARTHEST_CORNER:\r\n size = CSSRadialExtent.FARTHEST_CORNER;\r\n return false;\r\n }\r\n }\r\n else if (isLength(token) || isLengthPercentage(token)) {\r\n if (!Array.isArray(size)) {\r\n size = [];\r\n }\r\n size.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n if (isColorStop) {\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n }\r\n });\r\n return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT };\r\n };\n\n var prefixRadialGradient = function (tokens) {\r\n var shape = CSSRadialShape.CIRCLE;\r\n var size = CSSRadialExtent.FARTHEST_CORNER;\r\n var stops = [];\r\n var position = [];\r\n parseFunctionArgs(tokens).forEach(function (arg, i) {\r\n var isColorStop = true;\r\n if (i === 0) {\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'center':\r\n position.push(FIFTY_PERCENT);\r\n return false;\r\n case 'top':\r\n case 'left':\r\n position.push(ZERO_LENGTH);\r\n return false;\r\n case 'right':\r\n case 'bottom':\r\n position.push(HUNDRED_PERCENT);\r\n return false;\r\n }\r\n }\r\n else if (isLengthPercentage(token) || isLength(token)) {\r\n position.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n else if (i === 1) {\r\n isColorStop = arg.reduce(function (acc, token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case CIRCLE:\r\n shape = CSSRadialShape.CIRCLE;\r\n return false;\r\n case ELLIPSE:\r\n shape = CSSRadialShape.ELLIPSE;\r\n return false;\r\n case CONTAIN:\r\n case CLOSEST_SIDE:\r\n size = CSSRadialExtent.CLOSEST_SIDE;\r\n return false;\r\n case FARTHEST_SIDE:\r\n size = CSSRadialExtent.FARTHEST_SIDE;\r\n return false;\r\n case CLOSEST_CORNER:\r\n size = CSSRadialExtent.CLOSEST_CORNER;\r\n return false;\r\n case COVER:\r\n case FARTHEST_CORNER:\r\n size = CSSRadialExtent.FARTHEST_CORNER;\r\n return false;\r\n }\r\n }\r\n else if (isLength(token) || isLengthPercentage(token)) {\r\n if (!Array.isArray(size)) {\r\n size = [];\r\n }\r\n size.push(token);\r\n return false;\r\n }\r\n return acc;\r\n }, isColorStop);\r\n }\r\n if (isColorStop) {\r\n var colorStop = parseColorStop(arg);\r\n stops.push(colorStop);\r\n }\r\n });\r\n return { size: size, shape: shape, stops: stops, position: position, type: CSSImageType.RADIAL_GRADIENT };\r\n };\n\n var CSSImageType;\r\n (function (CSSImageType) {\r\n CSSImageType[CSSImageType[\"URL\"] = 0] = \"URL\";\r\n CSSImageType[CSSImageType[\"LINEAR_GRADIENT\"] = 1] = \"LINEAR_GRADIENT\";\r\n CSSImageType[CSSImageType[\"RADIAL_GRADIENT\"] = 2] = \"RADIAL_GRADIENT\";\r\n })(CSSImageType || (CSSImageType = {}));\r\n var isLinearGradient = function (background) {\r\n return background.type === CSSImageType.LINEAR_GRADIENT;\r\n };\r\n var isRadialGradient = function (background) {\r\n return background.type === CSSImageType.RADIAL_GRADIENT;\r\n };\r\n var CSSRadialShape;\r\n (function (CSSRadialShape) {\r\n CSSRadialShape[CSSRadialShape[\"CIRCLE\"] = 0] = \"CIRCLE\";\r\n CSSRadialShape[CSSRadialShape[\"ELLIPSE\"] = 1] = \"ELLIPSE\";\r\n })(CSSRadialShape || (CSSRadialShape = {}));\r\n var CSSRadialExtent;\r\n (function (CSSRadialExtent) {\r\n CSSRadialExtent[CSSRadialExtent[\"CLOSEST_SIDE\"] = 0] = \"CLOSEST_SIDE\";\r\n CSSRadialExtent[CSSRadialExtent[\"FARTHEST_SIDE\"] = 1] = \"FARTHEST_SIDE\";\r\n CSSRadialExtent[CSSRadialExtent[\"CLOSEST_CORNER\"] = 2] = \"CLOSEST_CORNER\";\r\n CSSRadialExtent[CSSRadialExtent[\"FARTHEST_CORNER\"] = 3] = \"FARTHEST_CORNER\";\r\n })(CSSRadialExtent || (CSSRadialExtent = {}));\r\n var image = {\r\n name: 'image',\r\n parse: function (value) {\r\n if (value.type === TokenType.URL_TOKEN) {\r\n var image_1 = { url: value.value, type: CSSImageType.URL };\r\n CacheStorage.getInstance().addImage(value.value);\r\n return image_1;\r\n }\r\n if (value.type === TokenType.FUNCTION) {\r\n var imageFunction = SUPPORTED_IMAGE_FUNCTIONS[value.name];\r\n if (typeof imageFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported image function \\\"\" + value.name + \"\\\"\");\r\n }\r\n return imageFunction(value.values);\r\n }\r\n throw new Error(\"Unsupported image type\");\r\n }\r\n };\r\n function isSupportedImage(value) {\r\n return value.type !== TokenType.FUNCTION || SUPPORTED_IMAGE_FUNCTIONS[value.name];\r\n }\r\n var SUPPORTED_IMAGE_FUNCTIONS = {\r\n 'linear-gradient': linearGradient,\r\n '-moz-linear-gradient': prefixLinearGradient,\r\n '-ms-linear-gradient': prefixLinearGradient,\r\n '-o-linear-gradient': prefixLinearGradient,\r\n '-webkit-linear-gradient': prefixLinearGradient,\r\n 'radial-gradient': radialGradient,\r\n '-moz-radial-gradient': prefixRadialGradient,\r\n '-ms-radial-gradient': prefixRadialGradient,\r\n '-o-radial-gradient': prefixRadialGradient,\r\n '-webkit-radial-gradient': prefixRadialGradient,\r\n '-webkit-gradient': webkitGradient\r\n };\n\n var backgroundImage = {\r\n name: 'background-image',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return [];\r\n }\r\n return tokens.filter(function (value) { return nonFunctionArgSeparator(value) && isSupportedImage(value); }).map(image.parse);\r\n }\r\n };\n\n var backgroundOrigin = {\r\n name: 'background-origin',\r\n initialValue: 'border-box',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.map(function (token) {\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'padding-box':\r\n return 1 /* PADDING_BOX */;\r\n case 'content-box':\r\n return 2 /* CONTENT_BOX */;\r\n }\r\n }\r\n return 0 /* BORDER_BOX */;\r\n });\r\n }\r\n };\n\n var backgroundPosition = {\r\n name: 'background-position',\r\n initialValue: '0% 0%',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens)\r\n .map(function (values) { return values.filter(isLengthPercentage); })\r\n .map(parseLengthPercentageTuple);\r\n }\r\n };\n\n var BACKGROUND_REPEAT;\r\n (function (BACKGROUND_REPEAT) {\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT\"] = 0] = \"REPEAT\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"NO_REPEAT\"] = 1] = \"NO_REPEAT\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT_X\"] = 2] = \"REPEAT_X\";\r\n BACKGROUND_REPEAT[BACKGROUND_REPEAT[\"REPEAT_Y\"] = 3] = \"REPEAT_Y\";\r\n })(BACKGROUND_REPEAT || (BACKGROUND_REPEAT = {}));\r\n var backgroundRepeat = {\r\n name: 'background-repeat',\r\n initialValue: 'repeat',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens)\r\n .map(function (values) {\r\n return values\r\n .filter(isIdentToken)\r\n .map(function (token) { return token.value; })\r\n .join(' ');\r\n })\r\n .map(parseBackgroundRepeat);\r\n }\r\n };\r\n var parseBackgroundRepeat = function (value) {\r\n switch (value) {\r\n case 'no-repeat':\r\n return BACKGROUND_REPEAT.NO_REPEAT;\r\n case 'repeat-x':\r\n case 'repeat no-repeat':\r\n return BACKGROUND_REPEAT.REPEAT_X;\r\n case 'repeat-y':\r\n case 'no-repeat repeat':\r\n return BACKGROUND_REPEAT.REPEAT_Y;\r\n case 'repeat':\r\n default:\r\n return BACKGROUND_REPEAT.REPEAT;\r\n }\r\n };\n\n var BACKGROUND_SIZE;\r\n (function (BACKGROUND_SIZE) {\r\n BACKGROUND_SIZE[\"AUTO\"] = \"auto\";\r\n BACKGROUND_SIZE[\"CONTAIN\"] = \"contain\";\r\n BACKGROUND_SIZE[\"COVER\"] = \"cover\";\r\n })(BACKGROUND_SIZE || (BACKGROUND_SIZE = {}));\r\n var backgroundSize = {\r\n name: 'background-size',\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return parseFunctionArgs(tokens).map(function (values) { return values.filter(isBackgroundSizeInfoToken); });\r\n }\r\n };\r\n var isBackgroundSizeInfoToken = function (value) {\r\n return isIdentToken(value) || isLengthPercentage(value);\r\n };\n\n var borderColorForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n }); };\r\n var borderTopColor = borderColorForSide('top');\r\n var borderRightColor = borderColorForSide('right');\r\n var borderBottomColor = borderColorForSide('bottom');\r\n var borderLeftColor = borderColorForSide('left');\n\n var borderRadiusForSide = function (side) { return ({\r\n name: \"border-radius-\" + side,\r\n initialValue: '0 0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) { return parseLengthPercentageTuple(tokens.filter(isLengthPercentage)); }\r\n }); };\r\n var borderTopLeftRadius = borderRadiusForSide('top-left');\r\n var borderTopRightRadius = borderRadiusForSide('top-right');\r\n var borderBottomRightRadius = borderRadiusForSide('bottom-right');\r\n var borderBottomLeftRadius = borderRadiusForSide('bottom-left');\n\n var BORDER_STYLE;\r\n (function (BORDER_STYLE) {\r\n BORDER_STYLE[BORDER_STYLE[\"NONE\"] = 0] = \"NONE\";\r\n BORDER_STYLE[BORDER_STYLE[\"SOLID\"] = 1] = \"SOLID\";\r\n BORDER_STYLE[BORDER_STYLE[\"DASHED\"] = 2] = \"DASHED\";\r\n BORDER_STYLE[BORDER_STYLE[\"DOTTED\"] = 3] = \"DOTTED\";\r\n BORDER_STYLE[BORDER_STYLE[\"DOUBLE\"] = 4] = \"DOUBLE\";\r\n })(BORDER_STYLE || (BORDER_STYLE = {}));\r\n var borderStyleForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-style\",\r\n initialValue: 'solid',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (style) {\r\n switch (style) {\r\n case 'none':\r\n return BORDER_STYLE.NONE;\r\n case 'dashed':\r\n return BORDER_STYLE.DASHED;\r\n case 'dotted':\r\n return BORDER_STYLE.DOTTED;\r\n case 'double':\r\n return BORDER_STYLE.DOUBLE;\r\n }\r\n return BORDER_STYLE.SOLID;\r\n }\r\n }); };\r\n var borderTopStyle = borderStyleForSide('top');\r\n var borderRightStyle = borderStyleForSide('right');\r\n var borderBottomStyle = borderStyleForSide('bottom');\r\n var borderLeftStyle = borderStyleForSide('left');\n\n var borderWidthForSide = function (side) { return ({\r\n name: \"border-\" + side + \"-width\",\r\n initialValue: '0',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isDimensionToken(token)) {\r\n return token.number;\r\n }\r\n return 0;\r\n }\r\n }); };\r\n var borderTopWidth = borderWidthForSide('top');\r\n var borderRightWidth = borderWidthForSide('right');\r\n var borderBottomWidth = borderWidthForSide('bottom');\r\n var borderLeftWidth = borderWidthForSide('left');\n\n var color$1 = {\r\n name: \"color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var display = {\r\n name: 'display',\r\n initialValue: 'inline-block',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).reduce(function (bit, token) {\r\n return bit | parseDisplayValue(token.value);\r\n }, 0 /* NONE */);\r\n }\r\n };\r\n var parseDisplayValue = function (display) {\r\n switch (display) {\r\n case 'block':\r\n case '-webkit-box':\r\n return 2 /* BLOCK */;\r\n case 'inline':\r\n return 4 /* INLINE */;\r\n case 'run-in':\r\n return 8 /* RUN_IN */;\r\n case 'flow':\r\n return 16 /* FLOW */;\r\n case 'flow-root':\r\n return 32 /* FLOW_ROOT */;\r\n case 'table':\r\n return 64 /* TABLE */;\r\n case 'flex':\r\n case '-webkit-flex':\r\n return 128 /* FLEX */;\r\n case 'grid':\r\n case '-ms-grid':\r\n return 256 /* GRID */;\r\n case 'ruby':\r\n return 512 /* RUBY */;\r\n case 'subgrid':\r\n return 1024 /* SUBGRID */;\r\n case 'list-item':\r\n return 2048 /* LIST_ITEM */;\r\n case 'table-row-group':\r\n return 4096 /* TABLE_ROW_GROUP */;\r\n case 'table-header-group':\r\n return 8192 /* TABLE_HEADER_GROUP */;\r\n case 'table-footer-group':\r\n return 16384 /* TABLE_FOOTER_GROUP */;\r\n case 'table-row':\r\n return 32768 /* TABLE_ROW */;\r\n case 'table-cell':\r\n return 65536 /* TABLE_CELL */;\r\n case 'table-column-group':\r\n return 131072 /* TABLE_COLUMN_GROUP */;\r\n case 'table-column':\r\n return 262144 /* TABLE_COLUMN */;\r\n case 'table-caption':\r\n return 524288 /* TABLE_CAPTION */;\r\n case 'ruby-base':\r\n return 1048576 /* RUBY_BASE */;\r\n case 'ruby-text':\r\n return 2097152 /* RUBY_TEXT */;\r\n case 'ruby-base-container':\r\n return 4194304 /* RUBY_BASE_CONTAINER */;\r\n case 'ruby-text-container':\r\n return 8388608 /* RUBY_TEXT_CONTAINER */;\r\n case 'contents':\r\n return 16777216 /* CONTENTS */;\r\n case 'inline-block':\r\n return 33554432 /* INLINE_BLOCK */;\r\n case 'inline-list-item':\r\n return 67108864 /* INLINE_LIST_ITEM */;\r\n case 'inline-table':\r\n return 134217728 /* INLINE_TABLE */;\r\n case 'inline-flex':\r\n return 268435456 /* INLINE_FLEX */;\r\n case 'inline-grid':\r\n return 536870912 /* INLINE_GRID */;\r\n }\r\n return 0 /* NONE */;\r\n };\n\n var FLOAT;\r\n (function (FLOAT) {\r\n FLOAT[FLOAT[\"NONE\"] = 0] = \"NONE\";\r\n FLOAT[FLOAT[\"LEFT\"] = 1] = \"LEFT\";\r\n FLOAT[FLOAT[\"RIGHT\"] = 2] = \"RIGHT\";\r\n FLOAT[FLOAT[\"INLINE_START\"] = 3] = \"INLINE_START\";\r\n FLOAT[FLOAT[\"INLINE_END\"] = 4] = \"INLINE_END\";\r\n })(FLOAT || (FLOAT = {}));\r\n var float = {\r\n name: 'float',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (float) {\r\n switch (float) {\r\n case 'left':\r\n return FLOAT.LEFT;\r\n case 'right':\r\n return FLOAT.RIGHT;\r\n case 'inline-start':\r\n return FLOAT.INLINE_START;\r\n case 'inline-end':\r\n return FLOAT.INLINE_END;\r\n }\r\n return FLOAT.NONE;\r\n }\r\n };\n\n var letterSpacing = {\r\n name: 'letter-spacing',\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'normal') {\r\n return 0;\r\n }\r\n if (token.type === TokenType.NUMBER_TOKEN) {\r\n return token.number;\r\n }\r\n if (token.type === TokenType.DIMENSION_TOKEN) {\r\n return token.number;\r\n }\r\n return 0;\r\n }\r\n };\n\n var LINE_BREAK;\r\n (function (LINE_BREAK) {\r\n LINE_BREAK[\"NORMAL\"] = \"normal\";\r\n LINE_BREAK[\"STRICT\"] = \"strict\";\r\n })(LINE_BREAK || (LINE_BREAK = {}));\r\n var lineBreak = {\r\n name: 'line-break',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (lineBreak) {\r\n switch (lineBreak) {\r\n case 'strict':\r\n return LINE_BREAK.STRICT;\r\n case 'normal':\r\n default:\r\n return LINE_BREAK.NORMAL;\r\n }\r\n }\r\n };\n\n var lineHeight = {\r\n name: 'line-height',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TOKEN_VALUE\r\n };\r\n var computeLineHeight = function (token, fontSize) {\r\n if (isIdentToken(token) && token.value === 'normal') {\r\n return 1.2 * fontSize;\r\n }\r\n else if (token.type === TokenType.NUMBER_TOKEN) {\r\n return fontSize * token.number;\r\n }\r\n else if (isLengthPercentage(token)) {\r\n return getAbsoluteValue(token, fontSize);\r\n }\r\n return fontSize;\r\n };\n\n var listStyleImage = {\r\n name: 'list-style-image',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\r\n return null;\r\n }\r\n return image.parse(token);\r\n }\r\n };\n\n var LIST_STYLE_POSITION;\r\n (function (LIST_STYLE_POSITION) {\r\n LIST_STYLE_POSITION[LIST_STYLE_POSITION[\"INSIDE\"] = 0] = \"INSIDE\";\r\n LIST_STYLE_POSITION[LIST_STYLE_POSITION[\"OUTSIDE\"] = 1] = \"OUTSIDE\";\r\n })(LIST_STYLE_POSITION || (LIST_STYLE_POSITION = {}));\r\n var listStylePosition = {\r\n name: 'list-style-position',\r\n initialValue: 'outside',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (position) {\r\n switch (position) {\r\n case 'inside':\r\n return LIST_STYLE_POSITION.INSIDE;\r\n case 'outside':\r\n default:\r\n return LIST_STYLE_POSITION.OUTSIDE;\r\n }\r\n }\r\n };\n\n var LIST_STYLE_TYPE;\r\n (function (LIST_STYLE_TYPE) {\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"NONE\"] = -1] = \"NONE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISC\"] = 0] = \"DISC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CIRCLE\"] = 1] = \"CIRCLE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SQUARE\"] = 2] = \"SQUARE\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DECIMAL\"] = 3] = \"DECIMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_DECIMAL\"] = 4] = \"CJK_DECIMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DECIMAL_LEADING_ZERO\"] = 5] = \"DECIMAL_LEADING_ZERO\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ROMAN\"] = 6] = \"LOWER_ROMAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ROMAN\"] = 7] = \"UPPER_ROMAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_GREEK\"] = 8] = \"LOWER_GREEK\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ALPHA\"] = 9] = \"LOWER_ALPHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ALPHA\"] = 10] = \"UPPER_ALPHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ARABIC_INDIC\"] = 11] = \"ARABIC_INDIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ARMENIAN\"] = 12] = \"ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"BENGALI\"] = 13] = \"BENGALI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CAMBODIAN\"] = 14] = \"CAMBODIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_EARTHLY_BRANCH\"] = 15] = \"CJK_EARTHLY_BRANCH\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_HEAVENLY_STEM\"] = 16] = \"CJK_HEAVENLY_STEM\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"CJK_IDEOGRAPHIC\"] = 17] = \"CJK_IDEOGRAPHIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DEVANAGARI\"] = 18] = \"DEVANAGARI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ETHIOPIC_NUMERIC\"] = 19] = \"ETHIOPIC_NUMERIC\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GEORGIAN\"] = 20] = \"GEORGIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GUJARATI\"] = 21] = \"GUJARATI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"GURMUKHI\"] = 22] = \"GURMUKHI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HEBREW\"] = 22] = \"HEBREW\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HIRAGANA\"] = 23] = \"HIRAGANA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"HIRAGANA_IROHA\"] = 24] = \"HIRAGANA_IROHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"JAPANESE_FORMAL\"] = 25] = \"JAPANESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"JAPANESE_INFORMAL\"] = 26] = \"JAPANESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KANNADA\"] = 27] = \"KANNADA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KATAKANA\"] = 28] = \"KATAKANA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KATAKANA_IROHA\"] = 29] = \"KATAKANA_IROHA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KHMER\"] = 30] = \"KHMER\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANGUL_FORMAL\"] = 31] = \"KOREAN_HANGUL_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANJA_FORMAL\"] = 32] = \"KOREAN_HANJA_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"KOREAN_HANJA_INFORMAL\"] = 33] = \"KOREAN_HANJA_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LAO\"] = 34] = \"LAO\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"LOWER_ARMENIAN\"] = 35] = \"LOWER_ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MALAYALAM\"] = 36] = \"MALAYALAM\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MONGOLIAN\"] = 37] = \"MONGOLIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"MYANMAR\"] = 38] = \"MYANMAR\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"ORIYA\"] = 39] = \"ORIYA\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"PERSIAN\"] = 40] = \"PERSIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SIMP_CHINESE_FORMAL\"] = 41] = \"SIMP_CHINESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"SIMP_CHINESE_INFORMAL\"] = 42] = \"SIMP_CHINESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TAMIL\"] = 43] = \"TAMIL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TELUGU\"] = 44] = \"TELUGU\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"THAI\"] = 45] = \"THAI\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TIBETAN\"] = 46] = \"TIBETAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TRAD_CHINESE_FORMAL\"] = 47] = \"TRAD_CHINESE_FORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"TRAD_CHINESE_INFORMAL\"] = 48] = \"TRAD_CHINESE_INFORMAL\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"UPPER_ARMENIAN\"] = 49] = \"UPPER_ARMENIAN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISCLOSURE_OPEN\"] = 50] = \"DISCLOSURE_OPEN\";\r\n LIST_STYLE_TYPE[LIST_STYLE_TYPE[\"DISCLOSURE_CLOSED\"] = 51] = \"DISCLOSURE_CLOSED\";\r\n })(LIST_STYLE_TYPE || (LIST_STYLE_TYPE = {}));\r\n var listStyleType = {\r\n name: 'list-style-type',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (type) {\r\n switch (type) {\r\n case 'disc':\r\n return LIST_STYLE_TYPE.DISC;\r\n case 'circle':\r\n return LIST_STYLE_TYPE.CIRCLE;\r\n case 'square':\r\n return LIST_STYLE_TYPE.SQUARE;\r\n case 'decimal':\r\n return LIST_STYLE_TYPE.DECIMAL;\r\n case 'cjk-decimal':\r\n return LIST_STYLE_TYPE.CJK_DECIMAL;\r\n case 'decimal-leading-zero':\r\n return LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO;\r\n case 'lower-roman':\r\n return LIST_STYLE_TYPE.LOWER_ROMAN;\r\n case 'upper-roman':\r\n return LIST_STYLE_TYPE.UPPER_ROMAN;\r\n case 'lower-greek':\r\n return LIST_STYLE_TYPE.LOWER_GREEK;\r\n case 'lower-alpha':\r\n return LIST_STYLE_TYPE.LOWER_ALPHA;\r\n case 'upper-alpha':\r\n return LIST_STYLE_TYPE.UPPER_ALPHA;\r\n case 'arabic-indic':\r\n return LIST_STYLE_TYPE.ARABIC_INDIC;\r\n case 'armenian':\r\n return LIST_STYLE_TYPE.ARMENIAN;\r\n case 'bengali':\r\n return LIST_STYLE_TYPE.BENGALI;\r\n case 'cambodian':\r\n return LIST_STYLE_TYPE.CAMBODIAN;\r\n case 'cjk-earthly-branch':\r\n return LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH;\r\n case 'cjk-heavenly-stem':\r\n return LIST_STYLE_TYPE.CJK_HEAVENLY_STEM;\r\n case 'cjk-ideographic':\r\n return LIST_STYLE_TYPE.CJK_IDEOGRAPHIC;\r\n case 'devanagari':\r\n return LIST_STYLE_TYPE.DEVANAGARI;\r\n case 'ethiopic-numeric':\r\n return LIST_STYLE_TYPE.ETHIOPIC_NUMERIC;\r\n case 'georgian':\r\n return LIST_STYLE_TYPE.GEORGIAN;\r\n case 'gujarati':\r\n return LIST_STYLE_TYPE.GUJARATI;\r\n case 'gurmukhi':\r\n return LIST_STYLE_TYPE.GURMUKHI;\r\n case 'hebrew':\r\n return LIST_STYLE_TYPE.HEBREW;\r\n case 'hiragana':\r\n return LIST_STYLE_TYPE.HIRAGANA;\r\n case 'hiragana-iroha':\r\n return LIST_STYLE_TYPE.HIRAGANA_IROHA;\r\n case 'japanese-formal':\r\n return LIST_STYLE_TYPE.JAPANESE_FORMAL;\r\n case 'japanese-informal':\r\n return LIST_STYLE_TYPE.JAPANESE_INFORMAL;\r\n case 'kannada':\r\n return LIST_STYLE_TYPE.KANNADA;\r\n case 'katakana':\r\n return LIST_STYLE_TYPE.KATAKANA;\r\n case 'katakana-iroha':\r\n return LIST_STYLE_TYPE.KATAKANA_IROHA;\r\n case 'khmer':\r\n return LIST_STYLE_TYPE.KHMER;\r\n case 'korean-hangul-formal':\r\n return LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL;\r\n case 'korean-hanja-formal':\r\n return LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL;\r\n case 'korean-hanja-informal':\r\n return LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL;\r\n case 'lao':\r\n return LIST_STYLE_TYPE.LAO;\r\n case 'lower-armenian':\r\n return LIST_STYLE_TYPE.LOWER_ARMENIAN;\r\n case 'malayalam':\r\n return LIST_STYLE_TYPE.MALAYALAM;\r\n case 'mongolian':\r\n return LIST_STYLE_TYPE.MONGOLIAN;\r\n case 'myanmar':\r\n return LIST_STYLE_TYPE.MYANMAR;\r\n case 'oriya':\r\n return LIST_STYLE_TYPE.ORIYA;\r\n case 'persian':\r\n return LIST_STYLE_TYPE.PERSIAN;\r\n case 'simp-chinese-formal':\r\n return LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL;\r\n case 'simp-chinese-informal':\r\n return LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL;\r\n case 'tamil':\r\n return LIST_STYLE_TYPE.TAMIL;\r\n case 'telugu':\r\n return LIST_STYLE_TYPE.TELUGU;\r\n case 'thai':\r\n return LIST_STYLE_TYPE.THAI;\r\n case 'tibetan':\r\n return LIST_STYLE_TYPE.TIBETAN;\r\n case 'trad-chinese-formal':\r\n return LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL;\r\n case 'trad-chinese-informal':\r\n return LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL;\r\n case 'upper-armenian':\r\n return LIST_STYLE_TYPE.UPPER_ARMENIAN;\r\n case 'disclosure-open':\r\n return LIST_STYLE_TYPE.DISCLOSURE_OPEN;\r\n case 'disclosure-closed':\r\n return LIST_STYLE_TYPE.DISCLOSURE_CLOSED;\r\n case 'none':\r\n default:\r\n return LIST_STYLE_TYPE.NONE;\r\n }\r\n }\r\n };\n\n var marginForSide = function (side) { return ({\r\n name: \"margin-\" + side,\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TOKEN_VALUE\r\n }); };\r\n var marginTop = marginForSide('top');\r\n var marginRight = marginForSide('right');\r\n var marginBottom = marginForSide('bottom');\r\n var marginLeft = marginForSide('left');\n\n var OVERFLOW;\r\n (function (OVERFLOW) {\r\n OVERFLOW[OVERFLOW[\"VISIBLE\"] = 0] = \"VISIBLE\";\r\n OVERFLOW[OVERFLOW[\"HIDDEN\"] = 1] = \"HIDDEN\";\r\n OVERFLOW[OVERFLOW[\"SCROLL\"] = 2] = \"SCROLL\";\r\n OVERFLOW[OVERFLOW[\"AUTO\"] = 3] = \"AUTO\";\r\n })(OVERFLOW || (OVERFLOW = {}));\r\n var overflow = {\r\n name: 'overflow',\r\n initialValue: 'visible',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).map(function (overflow) {\r\n switch (overflow.value) {\r\n case 'hidden':\r\n return OVERFLOW.HIDDEN;\r\n case 'scroll':\r\n return OVERFLOW.SCROLL;\r\n case 'auto':\r\n return OVERFLOW.AUTO;\r\n case 'visible':\r\n default:\r\n return OVERFLOW.VISIBLE;\r\n }\r\n });\r\n }\r\n };\n\n var OVERFLOW_WRAP;\r\n (function (OVERFLOW_WRAP) {\r\n OVERFLOW_WRAP[\"NORMAL\"] = \"normal\";\r\n OVERFLOW_WRAP[\"BREAK_WORD\"] = \"break-word\";\r\n })(OVERFLOW_WRAP || (OVERFLOW_WRAP = {}));\r\n var overflowWrap = {\r\n name: 'overflow-wrap',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (overflow) {\r\n switch (overflow) {\r\n case 'break-word':\r\n return OVERFLOW_WRAP.BREAK_WORD;\r\n case 'normal':\r\n default:\r\n return OVERFLOW_WRAP.NORMAL;\r\n }\r\n }\r\n };\n\n var paddingForSide = function (side) { return ({\r\n name: \"padding-\" + side,\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'length-percentage'\r\n }); };\r\n var paddingTop = paddingForSide('top');\r\n var paddingRight = paddingForSide('right');\r\n var paddingBottom = paddingForSide('bottom');\r\n var paddingLeft = paddingForSide('left');\n\n var TEXT_ALIGN;\r\n (function (TEXT_ALIGN) {\r\n TEXT_ALIGN[TEXT_ALIGN[\"LEFT\"] = 0] = \"LEFT\";\r\n TEXT_ALIGN[TEXT_ALIGN[\"CENTER\"] = 1] = \"CENTER\";\r\n TEXT_ALIGN[TEXT_ALIGN[\"RIGHT\"] = 2] = \"RIGHT\";\r\n })(TEXT_ALIGN || (TEXT_ALIGN = {}));\r\n var textAlign = {\r\n name: 'text-align',\r\n initialValue: 'left',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (textAlign) {\r\n switch (textAlign) {\r\n case 'right':\r\n return TEXT_ALIGN.RIGHT;\r\n case 'center':\r\n case 'justify':\r\n return TEXT_ALIGN.CENTER;\r\n case 'left':\r\n default:\r\n return TEXT_ALIGN.LEFT;\r\n }\r\n }\r\n };\n\n var POSITION;\r\n (function (POSITION) {\r\n POSITION[POSITION[\"STATIC\"] = 0] = \"STATIC\";\r\n POSITION[POSITION[\"RELATIVE\"] = 1] = \"RELATIVE\";\r\n POSITION[POSITION[\"ABSOLUTE\"] = 2] = \"ABSOLUTE\";\r\n POSITION[POSITION[\"FIXED\"] = 3] = \"FIXED\";\r\n POSITION[POSITION[\"STICKY\"] = 4] = \"STICKY\";\r\n })(POSITION || (POSITION = {}));\r\n var position = {\r\n name: 'position',\r\n initialValue: 'static',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (position) {\r\n switch (position) {\r\n case 'relative':\r\n return POSITION.RELATIVE;\r\n case 'absolute':\r\n return POSITION.ABSOLUTE;\r\n case 'fixed':\r\n return POSITION.FIXED;\r\n case 'sticky':\r\n return POSITION.STICKY;\r\n }\r\n return POSITION.STATIC;\r\n }\r\n };\n\n var textShadow = {\r\n name: 'text-shadow',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\r\n return [];\r\n }\r\n return parseFunctionArgs(tokens).map(function (values) {\r\n var shadow = {\r\n color: COLORS.TRANSPARENT,\r\n offsetX: ZERO_LENGTH,\r\n offsetY: ZERO_LENGTH,\r\n blur: ZERO_LENGTH\r\n };\r\n var c = 0;\r\n for (var i = 0; i < values.length; i++) {\r\n var token = values[i];\r\n if (isLength(token)) {\r\n if (c === 0) {\r\n shadow.offsetX = token;\r\n }\r\n else if (c === 1) {\r\n shadow.offsetY = token;\r\n }\r\n else {\r\n shadow.blur = token;\r\n }\r\n c++;\r\n }\r\n else {\r\n shadow.color = color.parse(token);\r\n }\r\n }\r\n return shadow;\r\n });\r\n }\r\n };\n\n var TEXT_TRANSFORM;\r\n (function (TEXT_TRANSFORM) {\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"NONE\"] = 0] = \"NONE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"LOWERCASE\"] = 1] = \"LOWERCASE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"UPPERCASE\"] = 2] = \"UPPERCASE\";\r\n TEXT_TRANSFORM[TEXT_TRANSFORM[\"CAPITALIZE\"] = 3] = \"CAPITALIZE\";\r\n })(TEXT_TRANSFORM || (TEXT_TRANSFORM = {}));\r\n var textTransform = {\r\n name: 'text-transform',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (textTransform) {\r\n switch (textTransform) {\r\n case 'uppercase':\r\n return TEXT_TRANSFORM.UPPERCASE;\r\n case 'lowercase':\r\n return TEXT_TRANSFORM.LOWERCASE;\r\n case 'capitalize':\r\n return TEXT_TRANSFORM.CAPITALIZE;\r\n }\r\n return TEXT_TRANSFORM.NONE;\r\n }\r\n };\n\n var transform = {\r\n name: 'transform',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN && token.value === 'none') {\r\n return null;\r\n }\r\n if (token.type === TokenType.FUNCTION) {\r\n var transformFunction = SUPPORTED_TRANSFORM_FUNCTIONS[token.name];\r\n if (typeof transformFunction === 'undefined') {\r\n throw new Error(\"Attempting to parse an unsupported transform function \\\"\" + token.name + \"\\\"\");\r\n }\r\n return transformFunction(token.values);\r\n }\r\n return null;\r\n }\r\n };\r\n var matrix = function (args) {\r\n var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; });\r\n return values.length === 6 ? values : null;\r\n };\r\n // doesn't support 3D transforms at the moment\r\n var matrix3d = function (args) {\r\n var values = args.filter(function (arg) { return arg.type === TokenType.NUMBER_TOKEN; }).map(function (arg) { return arg.number; });\r\n var a1 = values[0], b1 = values[1], _a = values[2], _b = values[3], a2 = values[4], b2 = values[5], _c = values[6], _d = values[7], _e = values[8], _f = values[9], _g = values[10], _h = values[11], a4 = values[12], b4 = values[13], _j = values[14], _k = values[15];\r\n return values.length === 16 ? [a1, b1, a2, b2, a4, b4] : null;\r\n };\r\n var SUPPORTED_TRANSFORM_FUNCTIONS = {\r\n matrix: matrix,\r\n matrix3d: matrix3d\r\n };\n\n var DEFAULT_VALUE = {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n number: 50,\r\n flags: FLAG_INTEGER\r\n };\r\n var DEFAULT = [DEFAULT_VALUE, DEFAULT_VALUE];\r\n var transformOrigin = {\r\n name: 'transform-origin',\r\n initialValue: '50% 50%',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n var origins = tokens.filter(isLengthPercentage);\r\n if (origins.length !== 2) {\r\n return DEFAULT;\r\n }\r\n return [origins[0], origins[1]];\r\n }\r\n };\n\n var VISIBILITY;\r\n (function (VISIBILITY) {\r\n VISIBILITY[VISIBILITY[\"VISIBLE\"] = 0] = \"VISIBLE\";\r\n VISIBILITY[VISIBILITY[\"HIDDEN\"] = 1] = \"HIDDEN\";\r\n VISIBILITY[VISIBILITY[\"COLLAPSE\"] = 2] = \"COLLAPSE\";\r\n })(VISIBILITY || (VISIBILITY = {}));\r\n var visibility = {\r\n name: 'visible',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (visibility) {\r\n switch (visibility) {\r\n case 'hidden':\r\n return VISIBILITY.HIDDEN;\r\n case 'collapse':\r\n return VISIBILITY.COLLAPSE;\r\n case 'visible':\r\n default:\r\n return VISIBILITY.VISIBLE;\r\n }\r\n }\r\n };\n\n var WORD_BREAK;\r\n (function (WORD_BREAK) {\r\n WORD_BREAK[\"NORMAL\"] = \"normal\";\r\n WORD_BREAK[\"BREAK_ALL\"] = \"break-all\";\r\n WORD_BREAK[\"KEEP_ALL\"] = \"keep-all\";\r\n })(WORD_BREAK || (WORD_BREAK = {}));\r\n var wordBreak = {\r\n name: 'word-break',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (wordBreak) {\r\n switch (wordBreak) {\r\n case 'break-all':\r\n return WORD_BREAK.BREAK_ALL;\r\n case 'keep-all':\r\n return WORD_BREAK.KEEP_ALL;\r\n case 'normal':\r\n default:\r\n return WORD_BREAK.NORMAL;\r\n }\r\n }\r\n };\n\n var zIndex = {\r\n name: 'z-index',\r\n initialValue: 'auto',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.VALUE,\r\n parse: function (token) {\r\n if (token.type === TokenType.IDENT_TOKEN) {\r\n return { auto: true, order: 0 };\r\n }\r\n if (isNumberToken(token)) {\r\n return { auto: false, order: token.number };\r\n }\r\n throw new Error(\"Invalid z-index number parsed\");\r\n }\r\n };\n\n var opacity = {\r\n name: 'opacity',\r\n initialValue: '1',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isNumberToken(token)) {\r\n return token.number;\r\n }\r\n return 1;\r\n }\r\n };\n\n var textDecorationColor = {\r\n name: \"text-decoration-color\",\r\n initialValue: 'transparent',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'color'\r\n };\n\n var textDecorationLine = {\r\n name: 'text-decoration-line',\r\n initialValue: 'none',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n return tokens\r\n .filter(isIdentToken)\r\n .map(function (token) {\r\n switch (token.value) {\r\n case 'underline':\r\n return 1 /* UNDERLINE */;\r\n case 'overline':\r\n return 2 /* OVERLINE */;\r\n case 'line-through':\r\n return 3 /* LINE_THROUGH */;\r\n case 'none':\r\n return 4 /* BLINK */;\r\n }\r\n return 0 /* NONE */;\r\n })\r\n .filter(function (line) { return line !== 0 /* NONE */; });\r\n }\r\n };\n\n var fontFamily = {\r\n name: \"font-family\",\r\n initialValue: '',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n var accumulator = [];\r\n var results = [];\r\n tokens.forEach(function (token) {\r\n switch (token.type) {\r\n case TokenType.IDENT_TOKEN:\r\n case TokenType.STRING_TOKEN:\r\n accumulator.push(token.value);\r\n break;\r\n case TokenType.NUMBER_TOKEN:\r\n accumulator.push(token.number.toString());\r\n break;\r\n case TokenType.COMMA_TOKEN:\r\n results.push(accumulator.join(' '));\r\n accumulator.length = 0;\r\n break;\r\n }\r\n });\r\n if (accumulator.length) {\r\n results.push(accumulator.join(' '));\r\n }\r\n return results.map(function (result) { return (result.indexOf(' ') === -1 ? result : \"'\" + result + \"'\"); });\r\n }\r\n };\n\n var fontSize = {\r\n name: \"font-size\",\r\n initialValue: '0',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.TYPE_VALUE,\r\n format: 'length'\r\n };\n\n var fontWeight = {\r\n name: 'font-weight',\r\n initialValue: 'normal',\r\n type: PropertyDescriptorParsingType.VALUE,\r\n prefix: false,\r\n parse: function (token) {\r\n if (isNumberToken(token)) {\r\n return token.number;\r\n }\r\n if (isIdentToken(token)) {\r\n switch (token.value) {\r\n case 'bold':\r\n return 700;\r\n case 'normal':\r\n default:\r\n return 400;\r\n }\r\n }\r\n return 400;\r\n }\r\n };\n\n var fontVariant = {\r\n name: 'font-variant',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n return tokens.filter(isIdentToken).map(function (token) { return token.value; });\r\n }\r\n };\n\n var FONT_STYLE;\r\n (function (FONT_STYLE) {\r\n FONT_STYLE[\"NORMAL\"] = \"normal\";\r\n FONT_STYLE[\"ITALIC\"] = \"italic\";\r\n FONT_STYLE[\"OBLIQUE\"] = \"oblique\";\r\n })(FONT_STYLE || (FONT_STYLE = {}));\r\n var fontStyle = {\r\n name: 'font-style',\r\n initialValue: 'normal',\r\n prefix: false,\r\n type: PropertyDescriptorParsingType.IDENT_VALUE,\r\n parse: function (overflow) {\r\n switch (overflow) {\r\n case 'oblique':\r\n return FONT_STYLE.OBLIQUE;\r\n case 'italic':\r\n return FONT_STYLE.ITALIC;\r\n case 'normal':\r\n default:\r\n return FONT_STYLE.NORMAL;\r\n }\r\n }\r\n };\n\n var contains = function (bit, value) { return (bit & value) !== 0; };\n\n var content = {\r\n name: 'content',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return [];\r\n }\r\n return tokens;\r\n }\r\n };\n\n var counterIncrement = {\r\n name: 'counter-increment',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return null;\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return null;\r\n }\r\n var increments = [];\r\n var filtered = tokens.filter(nonWhiteSpace);\r\n for (var i = 0; i < filtered.length; i++) {\r\n var counter = filtered[i];\r\n var next = filtered[i + 1];\r\n if (counter.type === TokenType.IDENT_TOKEN) {\r\n var increment = next && isNumberToken(next) ? next.number : 1;\r\n increments.push({ counter: counter.value, increment: increment });\r\n }\r\n }\r\n return increments;\r\n }\r\n };\n\n var counterReset = {\r\n name: 'counter-reset',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return [];\r\n }\r\n var resets = [];\r\n var filtered = tokens.filter(nonWhiteSpace);\r\n for (var i = 0; i < filtered.length; i++) {\r\n var counter = filtered[i];\r\n var next = filtered[i + 1];\r\n if (isIdentToken(counter) && counter.value !== 'none') {\r\n var reset = next && isNumberToken(next) ? next.number : 0;\r\n resets.push({ counter: counter.value, reset: reset });\r\n }\r\n }\r\n return resets;\r\n }\r\n };\n\n var quotes = {\r\n name: 'quotes',\r\n initialValue: 'none',\r\n prefix: true,\r\n type: PropertyDescriptorParsingType.LIST,\r\n parse: function (tokens) {\r\n if (tokens.length === 0) {\r\n return null;\r\n }\r\n var first = tokens[0];\r\n if (first.type === TokenType.IDENT_TOKEN && first.value === 'none') {\r\n return null;\r\n }\r\n var quotes = [];\r\n var filtered = tokens.filter(isStringToken);\r\n if (filtered.length % 2 !== 0) {\r\n return null;\r\n }\r\n for (var i = 0; i < filtered.length; i += 2) {\r\n var open_1 = filtered[i].value;\r\n var close_1 = filtered[i + 1].value;\r\n quotes.push({ open: open_1, close: close_1 });\r\n }\r\n return quotes;\r\n }\r\n };\r\n var getQuote = function (quotes, depth, open) {\r\n if (!quotes) {\r\n return '';\r\n }\r\n var quote = quotes[Math.min(depth, quotes.length - 1)];\r\n if (!quote) {\r\n return '';\r\n }\r\n return open ? quote.open : quote.close;\r\n };\n\n var boxShadow = {\r\n name: 'box-shadow',\r\n initialValue: 'none',\r\n type: PropertyDescriptorParsingType.LIST,\r\n prefix: false,\r\n parse: function (tokens) {\r\n if (tokens.length === 1 && isIdentWithValue(tokens[0], 'none')) {\r\n return [];\r\n }\r\n return parseFunctionArgs(tokens).map(function (values) {\r\n var shadow = {\r\n color: 0x000000ff,\r\n offsetX: ZERO_LENGTH,\r\n offsetY: ZERO_LENGTH,\r\n blur: ZERO_LENGTH,\r\n spread: ZERO_LENGTH,\r\n inset: false\r\n };\r\n var c = 0;\r\n for (var i = 0; i < values.length; i++) {\r\n var token = values[i];\r\n if (isIdentWithValue(token, 'inset')) {\r\n shadow.inset = true;\r\n }\r\n else if (isLength(token)) {\r\n if (c === 0) {\r\n shadow.offsetX = token;\r\n }\r\n else if (c === 1) {\r\n shadow.offsetY = token;\r\n }\r\n else if (c === 2) {\r\n shadow.blur = token;\r\n }\r\n else {\r\n shadow.spread = token;\r\n }\r\n c++;\r\n }\r\n else {\r\n shadow.color = color.parse(token);\r\n }\r\n }\r\n return shadow;\r\n });\r\n }\r\n };\n\n var CSSParsedDeclaration = /** @class */ (function () {\r\n function CSSParsedDeclaration(declaration) {\r\n this.backgroundClip = parse(backgroundClip, declaration.backgroundClip);\r\n this.backgroundColor = parse(backgroundColor, declaration.backgroundColor);\r\n this.backgroundImage = parse(backgroundImage, declaration.backgroundImage);\r\n this.backgroundOrigin = parse(backgroundOrigin, declaration.backgroundOrigin);\r\n this.backgroundPosition = parse(backgroundPosition, declaration.backgroundPosition);\r\n this.backgroundRepeat = parse(backgroundRepeat, declaration.backgroundRepeat);\r\n this.backgroundSize = parse(backgroundSize, declaration.backgroundSize);\r\n this.borderTopColor = parse(borderTopColor, declaration.borderTopColor);\r\n this.borderRightColor = parse(borderRightColor, declaration.borderRightColor);\r\n this.borderBottomColor = parse(borderBottomColor, declaration.borderBottomColor);\r\n this.borderLeftColor = parse(borderLeftColor, declaration.borderLeftColor);\r\n this.borderTopLeftRadius = parse(borderTopLeftRadius, declaration.borderTopLeftRadius);\r\n this.borderTopRightRadius = parse(borderTopRightRadius, declaration.borderTopRightRadius);\r\n this.borderBottomRightRadius = parse(borderBottomRightRadius, declaration.borderBottomRightRadius);\r\n this.borderBottomLeftRadius = parse(borderBottomLeftRadius, declaration.borderBottomLeftRadius);\r\n this.borderTopStyle = parse(borderTopStyle, declaration.borderTopStyle);\r\n this.borderRightStyle = parse(borderRightStyle, declaration.borderRightStyle);\r\n this.borderBottomStyle = parse(borderBottomStyle, declaration.borderBottomStyle);\r\n this.borderLeftStyle = parse(borderLeftStyle, declaration.borderLeftStyle);\r\n this.borderTopWidth = parse(borderTopWidth, declaration.borderTopWidth);\r\n this.borderRightWidth = parse(borderRightWidth, declaration.borderRightWidth);\r\n this.borderBottomWidth = parse(borderBottomWidth, declaration.borderBottomWidth);\r\n this.borderLeftWidth = parse(borderLeftWidth, declaration.borderLeftWidth);\r\n this.boxShadow = parse(boxShadow, declaration.boxShadow);\r\n this.color = parse(color$1, declaration.color);\r\n this.display = parse(display, declaration.display);\r\n this.float = parse(float, declaration.cssFloat);\r\n this.fontFamily = parse(fontFamily, declaration.fontFamily);\r\n this.fontSize = parse(fontSize, declaration.fontSize);\r\n this.fontStyle = parse(fontStyle, declaration.fontStyle);\r\n this.fontVariant = parse(fontVariant, declaration.fontVariant);\r\n this.fontWeight = parse(fontWeight, declaration.fontWeight);\r\n this.letterSpacing = parse(letterSpacing, declaration.letterSpacing);\r\n this.lineBreak = parse(lineBreak, declaration.lineBreak);\r\n this.lineHeight = parse(lineHeight, declaration.lineHeight);\r\n this.listStyleImage = parse(listStyleImage, declaration.listStyleImage);\r\n this.listStylePosition = parse(listStylePosition, declaration.listStylePosition);\r\n this.listStyleType = parse(listStyleType, declaration.listStyleType);\r\n this.marginTop = parse(marginTop, declaration.marginTop);\r\n this.marginRight = parse(marginRight, declaration.marginRight);\r\n this.marginBottom = parse(marginBottom, declaration.marginBottom);\r\n this.marginLeft = parse(marginLeft, declaration.marginLeft);\r\n this.opacity = parse(opacity, declaration.opacity);\r\n var overflowTuple = parse(overflow, declaration.overflow);\r\n this.overflowX = overflowTuple[0];\r\n this.overflowY = overflowTuple[overflowTuple.length > 1 ? 1 : 0];\r\n this.overflowWrap = parse(overflowWrap, declaration.overflowWrap);\r\n this.paddingTop = parse(paddingTop, declaration.paddingTop);\r\n this.paddingRight = parse(paddingRight, declaration.paddingRight);\r\n this.paddingBottom = parse(paddingBottom, declaration.paddingBottom);\r\n this.paddingLeft = parse(paddingLeft, declaration.paddingLeft);\r\n this.position = parse(position, declaration.position);\r\n this.textAlign = parse(textAlign, declaration.textAlign);\r\n this.textDecorationColor = parse(textDecorationColor, declaration.textDecorationColor || declaration.color);\r\n this.textDecorationLine = parse(textDecorationLine, declaration.textDecorationLine);\r\n this.textShadow = parse(textShadow, declaration.textShadow);\r\n this.textTransform = parse(textTransform, declaration.textTransform);\r\n this.transform = parse(transform, declaration.transform);\r\n this.transformOrigin = parse(transformOrigin, declaration.transformOrigin);\r\n this.visibility = parse(visibility, declaration.visibility);\r\n this.wordBreak = parse(wordBreak, declaration.wordBreak);\r\n this.zIndex = parse(zIndex, declaration.zIndex);\r\n }\r\n CSSParsedDeclaration.prototype.isVisible = function () {\r\n return this.display > 0 && this.opacity > 0 && this.visibility === VISIBILITY.VISIBLE;\r\n };\r\n CSSParsedDeclaration.prototype.isTransparent = function () {\r\n return isTransparent(this.backgroundColor);\r\n };\r\n CSSParsedDeclaration.prototype.isTransformed = function () {\r\n return this.transform !== null;\r\n };\r\n CSSParsedDeclaration.prototype.isPositioned = function () {\r\n return this.position !== POSITION.STATIC;\r\n };\r\n CSSParsedDeclaration.prototype.isPositionedWithZIndex = function () {\r\n return this.isPositioned() && !this.zIndex.auto;\r\n };\r\n CSSParsedDeclaration.prototype.isFloating = function () {\r\n return this.float !== FLOAT.NONE;\r\n };\r\n CSSParsedDeclaration.prototype.isInlineLevel = function () {\r\n return (contains(this.display, 4 /* INLINE */) ||\r\n contains(this.display, 33554432 /* INLINE_BLOCK */) ||\r\n contains(this.display, 268435456 /* INLINE_FLEX */) ||\r\n contains(this.display, 536870912 /* INLINE_GRID */) ||\r\n contains(this.display, 67108864 /* INLINE_LIST_ITEM */) ||\r\n contains(this.display, 134217728 /* INLINE_TABLE */));\r\n };\r\n return CSSParsedDeclaration;\r\n }());\r\n var CSSParsedPseudoDeclaration = /** @class */ (function () {\r\n function CSSParsedPseudoDeclaration(declaration) {\r\n this.content = parse(content, declaration.content);\r\n this.quotes = parse(quotes, declaration.quotes);\r\n }\r\n return CSSParsedPseudoDeclaration;\r\n }());\r\n var CSSParsedCounterDeclaration = /** @class */ (function () {\r\n function CSSParsedCounterDeclaration(declaration) {\r\n this.counterIncrement = parse(counterIncrement, declaration.counterIncrement);\r\n this.counterReset = parse(counterReset, declaration.counterReset);\r\n }\r\n return CSSParsedCounterDeclaration;\r\n }());\r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n var parse = function (descriptor, style) {\r\n var tokenizer = new Tokenizer();\r\n var value = style !== null && typeof style !== 'undefined' ? style.toString() : descriptor.initialValue;\r\n tokenizer.write(value);\r\n var parser = new Parser(tokenizer.read());\r\n switch (descriptor.type) {\r\n case PropertyDescriptorParsingType.IDENT_VALUE:\r\n var token = parser.parseComponentValue();\r\n return descriptor.parse(isIdentToken(token) ? token.value : descriptor.initialValue);\r\n case PropertyDescriptorParsingType.VALUE:\r\n return descriptor.parse(parser.parseComponentValue());\r\n case PropertyDescriptorParsingType.LIST:\r\n return descriptor.parse(parser.parseComponentValues());\r\n case PropertyDescriptorParsingType.TOKEN_VALUE:\r\n return parser.parseComponentValue();\r\n case PropertyDescriptorParsingType.TYPE_VALUE:\r\n switch (descriptor.format) {\r\n case 'angle':\r\n return angle.parse(parser.parseComponentValue());\r\n case 'color':\r\n return color.parse(parser.parseComponentValue());\r\n case 'image':\r\n return image.parse(parser.parseComponentValue());\r\n case 'length':\r\n var length_1 = parser.parseComponentValue();\r\n return isLength(length_1) ? length_1 : ZERO_LENGTH;\r\n case 'length-percentage':\r\n var value_1 = parser.parseComponentValue();\r\n return isLengthPercentage(value_1) ? value_1 : ZERO_LENGTH;\r\n }\r\n }\r\n throw new Error(\"Attempting to parse unsupported css format type \" + descriptor.format);\r\n };\n\n var ElementContainer = /** @class */ (function () {\r\n function ElementContainer(element) {\r\n this.styles = new CSSParsedDeclaration(window.getComputedStyle(element, null));\r\n this.textNodes = [];\r\n this.elements = [];\r\n if (this.styles.transform !== null && isHTMLElementNode(element)) {\r\n // getBoundingClientRect takes transforms into account\r\n element.style.transform = 'none';\r\n }\r\n this.bounds = parseBounds(element);\r\n this.flags = 0;\r\n }\r\n return ElementContainer;\r\n }());\n\n var TextBounds = /** @class */ (function () {\r\n function TextBounds(text, bounds) {\r\n this.text = text;\r\n this.bounds = bounds;\r\n }\r\n return TextBounds;\r\n }());\r\n var parseTextBounds = function (value, styles, node) {\r\n var textList = breakText(value, styles);\r\n var textBounds = [];\r\n var offset = 0;\r\n textList.forEach(function (text) {\r\n if (styles.textDecorationLine.length || text.trim().length > 0) {\r\n if (FEATURES.SUPPORT_RANGE_BOUNDS) {\r\n textBounds.push(new TextBounds(text, getRangeBounds(node, offset, text.length)));\r\n }\r\n else {\r\n var replacementNode = node.splitText(text.length);\r\n textBounds.push(new TextBounds(text, getWrapperBounds(node)));\r\n node = replacementNode;\r\n }\r\n }\r\n else if (!FEATURES.SUPPORT_RANGE_BOUNDS) {\r\n node = node.splitText(text.length);\r\n }\r\n offset += text.length;\r\n });\r\n return textBounds;\r\n };\r\n var getWrapperBounds = function (node) {\r\n var ownerDocument = node.ownerDocument;\r\n if (ownerDocument) {\r\n var wrapper = ownerDocument.createElement('html2canvaswrapper');\r\n wrapper.appendChild(node.cloneNode(true));\r\n var parentNode = node.parentNode;\r\n if (parentNode) {\r\n parentNode.replaceChild(wrapper, node);\r\n var bounds = parseBounds(wrapper);\r\n if (wrapper.firstChild) {\r\n parentNode.replaceChild(wrapper.firstChild, wrapper);\r\n }\r\n return bounds;\r\n }\r\n }\r\n return new Bounds(0, 0, 0, 0);\r\n };\r\n var getRangeBounds = function (node, offset, length) {\r\n var ownerDocument = node.ownerDocument;\r\n if (!ownerDocument) {\r\n throw new Error('Node has no owner document');\r\n }\r\n var range = ownerDocument.createRange();\r\n range.setStart(node, offset);\r\n range.setEnd(node, offset + length);\r\n return Bounds.fromClientRect(range.getBoundingClientRect());\r\n };\r\n var breakText = function (value, styles) {\r\n return styles.letterSpacing !== 0 ? toCodePoints(value).map(function (i) { return fromCodePoint(i); }) : breakWords(value, styles);\r\n };\r\n var breakWords = function (str, styles) {\r\n var breaker = LineBreaker(str, {\r\n lineBreak: styles.lineBreak,\r\n wordBreak: styles.overflowWrap === OVERFLOW_WRAP.BREAK_WORD ? 'break-word' : styles.wordBreak\r\n });\r\n var words = [];\r\n var bk;\r\n while (!(bk = breaker.next()).done) {\r\n if (bk.value) {\r\n words.push(bk.value.slice());\r\n }\r\n }\r\n return words;\r\n };\n\n var TextContainer = /** @class */ (function () {\r\n function TextContainer(node, styles) {\r\n this.text = transform$1(node.data, styles.textTransform);\r\n this.textBounds = parseTextBounds(this.text, styles, node);\r\n }\r\n return TextContainer;\r\n }());\r\n var transform$1 = function (text, transform) {\r\n switch (transform) {\r\n case TEXT_TRANSFORM.LOWERCASE:\r\n return text.toLowerCase();\r\n case TEXT_TRANSFORM.CAPITALIZE:\r\n return text.replace(CAPITALIZE, capitalize);\r\n case TEXT_TRANSFORM.UPPERCASE:\r\n return text.toUpperCase();\r\n default:\r\n return text;\r\n }\r\n };\r\n var CAPITALIZE = /(^|\\s|:|-|\\(|\\))([a-z])/g;\r\n var capitalize = function (m, p1, p2) {\r\n if (m.length > 0) {\r\n return p1 + p2.toUpperCase();\r\n }\r\n return m;\r\n };\n\n var ImageElementContainer = /** @class */ (function (_super) {\r\n __extends(ImageElementContainer, _super);\r\n function ImageElementContainer(img) {\r\n var _this = _super.call(this, img) || this;\r\n _this.src = img.currentSrc || img.src;\r\n _this.intrinsicWidth = img.naturalWidth;\r\n _this.intrinsicHeight = img.naturalHeight;\r\n CacheStorage.getInstance().addImage(_this.src);\r\n return _this;\r\n }\r\n return ImageElementContainer;\r\n }(ElementContainer));\n\n var CanvasElementContainer = /** @class */ (function (_super) {\r\n __extends(CanvasElementContainer, _super);\r\n function CanvasElementContainer(canvas) {\r\n var _this = _super.call(this, canvas) || this;\r\n _this.canvas = canvas;\r\n _this.intrinsicWidth = canvas.width;\r\n _this.intrinsicHeight = canvas.height;\r\n return _this;\r\n }\r\n return CanvasElementContainer;\r\n }(ElementContainer));\n\n var SVGElementContainer = /** @class */ (function (_super) {\r\n __extends(SVGElementContainer, _super);\r\n function SVGElementContainer(img) {\r\n var _this = _super.call(this, img) || this;\r\n var s = new XMLSerializer();\r\n _this.svg = \"data:image/svg+xml,\" + encodeURIComponent(s.serializeToString(img));\r\n _this.intrinsicWidth = img.width.baseVal.value;\r\n _this.intrinsicHeight = img.height.baseVal.value;\r\n CacheStorage.getInstance().addImage(_this.svg);\r\n return _this;\r\n }\r\n return SVGElementContainer;\r\n }(ElementContainer));\n\n var LIElementContainer = /** @class */ (function (_super) {\r\n __extends(LIElementContainer, _super);\r\n function LIElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.value = element.value;\r\n return _this;\r\n }\r\n return LIElementContainer;\r\n }(ElementContainer));\n\n var OLElementContainer = /** @class */ (function (_super) {\r\n __extends(OLElementContainer, _super);\r\n function OLElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.start = element.start;\r\n _this.reversed = typeof element.reversed === 'boolean' && element.reversed === true;\r\n return _this;\r\n }\r\n return OLElementContainer;\r\n }(ElementContainer));\n\n var CHECKBOX_BORDER_RADIUS = [\r\n {\r\n type: TokenType.DIMENSION_TOKEN,\r\n flags: 0,\r\n unit: 'px',\r\n number: 3\r\n }\r\n ];\r\n var RADIO_BORDER_RADIUS = [\r\n {\r\n type: TokenType.PERCENTAGE_TOKEN,\r\n flags: 0,\r\n number: 50\r\n }\r\n ];\r\n var reformatInputBounds = function (bounds) {\r\n if (bounds.width > bounds.height) {\r\n return new Bounds(bounds.left + (bounds.width - bounds.height) / 2, bounds.top, bounds.height, bounds.height);\r\n }\r\n else if (bounds.width < bounds.height) {\r\n return new Bounds(bounds.left, bounds.top + (bounds.height - bounds.width) / 2, bounds.width, bounds.width);\r\n }\r\n return bounds;\r\n };\r\n var getInputValue = function (node) {\r\n var value = node.type === PASSWORD ? new Array(node.value.length + 1).join('\\u2022') : node.value;\r\n return value.length === 0 ? node.placeholder || '' : value;\r\n };\r\n var CHECKBOX = 'checkbox';\r\n var RADIO = 'radio';\r\n var PASSWORD = 'password';\r\n var INPUT_COLOR = 0x2a2a2aff;\r\n var InputElementContainer = /** @class */ (function (_super) {\r\n __extends(InputElementContainer, _super);\r\n function InputElementContainer(input) {\r\n var _this = _super.call(this, input) || this;\r\n _this.type = input.type.toLowerCase();\r\n _this.checked = input.checked;\r\n _this.value = getInputValue(input);\r\n if (_this.type === CHECKBOX || _this.type === RADIO) {\r\n _this.styles.backgroundColor = 0xdededeff;\r\n _this.styles.borderTopColor = _this.styles.borderRightColor = _this.styles.borderBottomColor = _this.styles.borderLeftColor = 0xa5a5a5ff;\r\n _this.styles.borderTopWidth = _this.styles.borderRightWidth = _this.styles.borderBottomWidth = _this.styles.borderLeftWidth = 1;\r\n _this.styles.borderTopStyle = _this.styles.borderRightStyle = _this.styles.borderBottomStyle = _this.styles.borderLeftStyle =\r\n BORDER_STYLE.SOLID;\r\n _this.styles.backgroundClip = [BACKGROUND_CLIP.BORDER_BOX];\r\n _this.styles.backgroundOrigin = [0 /* BORDER_BOX */];\r\n _this.bounds = reformatInputBounds(_this.bounds);\r\n }\r\n switch (_this.type) {\r\n case CHECKBOX:\r\n _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = CHECKBOX_BORDER_RADIUS;\r\n break;\r\n case RADIO:\r\n _this.styles.borderTopRightRadius = _this.styles.borderTopLeftRadius = _this.styles.borderBottomRightRadius = _this.styles.borderBottomLeftRadius = RADIO_BORDER_RADIUS;\r\n break;\r\n }\r\n return _this;\r\n }\r\n return InputElementContainer;\r\n }(ElementContainer));\n\n var SelectElementContainer = /** @class */ (function (_super) {\r\n __extends(SelectElementContainer, _super);\r\n function SelectElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n var option = element.options[element.selectedIndex || 0];\r\n _this.value = option ? option.text || '' : '';\r\n return _this;\r\n }\r\n return SelectElementContainer;\r\n }(ElementContainer));\n\n var TextareaElementContainer = /** @class */ (function (_super) {\r\n __extends(TextareaElementContainer, _super);\r\n function TextareaElementContainer(element) {\r\n var _this = _super.call(this, element) || this;\r\n _this.value = element.value;\r\n return _this;\r\n }\r\n return TextareaElementContainer;\r\n }(ElementContainer));\n\n var parseColor = function (value) { return color.parse(Parser.create(value).parseComponentValue()); };\r\n var IFrameElementContainer = /** @class */ (function (_super) {\r\n __extends(IFrameElementContainer, _super);\r\n function IFrameElementContainer(iframe) {\r\n var _this = _super.call(this, iframe) || this;\r\n _this.src = iframe.src;\r\n _this.width = parseInt(iframe.width, 10) || 0;\r\n _this.height = parseInt(iframe.height, 10) || 0;\r\n _this.backgroundColor = _this.styles.backgroundColor;\r\n try {\r\n if (iframe.contentWindow &&\r\n iframe.contentWindow.document &&\r\n iframe.contentWindow.document.documentElement) {\r\n _this.tree = parseTree(iframe.contentWindow.document.documentElement);\r\n // http://www.w3.org/TR/css3-background/#special-backgrounds\r\n var documentBackgroundColor = iframe.contentWindow.document.documentElement\r\n ? parseColor(getComputedStyle(iframe.contentWindow.document.documentElement)\r\n .backgroundColor)\r\n : COLORS.TRANSPARENT;\r\n var bodyBackgroundColor = iframe.contentWindow.document.body\r\n ? parseColor(getComputedStyle(iframe.contentWindow.document.body).backgroundColor)\r\n : COLORS.TRANSPARENT;\r\n _this.backgroundColor = isTransparent(documentBackgroundColor)\r\n ? isTransparent(bodyBackgroundColor)\r\n ? _this.styles.backgroundColor\r\n : bodyBackgroundColor\r\n : documentBackgroundColor;\r\n }\r\n }\r\n catch (e) { }\r\n return _this;\r\n }\r\n return IFrameElementContainer;\r\n }(ElementContainer));\n\n var LIST_OWNERS = ['OL', 'UL', 'MENU'];\r\n var parseNodeTree = function (node, parent, root) {\r\n for (var childNode = node.firstChild, nextNode = void 0; childNode; childNode = nextNode) {\r\n nextNode = childNode.nextSibling;\r\n if (isTextNode(childNode) && childNode.data.trim().length > 0) {\r\n parent.textNodes.push(new TextContainer(childNode, parent.styles));\r\n }\r\n else if (isElementNode(childNode)) {\r\n var container = createContainer(childNode);\r\n if (container.styles.isVisible()) {\r\n if (createsRealStackingContext(childNode, container, root)) {\r\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\r\n }\r\n else if (createsStackingContext(container.styles)) {\r\n container.flags |= 2 /* CREATES_STACKING_CONTEXT */;\r\n }\r\n if (LIST_OWNERS.indexOf(childNode.tagName) !== -1) {\r\n container.flags |= 8 /* IS_LIST_OWNER */;\r\n }\r\n parent.elements.push(container);\r\n if (!isTextareaElement(childNode) && !isSVGElement(childNode) && !isSelectElement(childNode)) {\r\n parseNodeTree(childNode, container, root);\r\n }\r\n }\r\n }\r\n }\r\n };\r\n var createContainer = function (element) {\r\n if (isImageElement(element)) {\r\n return new ImageElementContainer(element);\r\n }\r\n if (isCanvasElement(element)) {\r\n return new CanvasElementContainer(element);\r\n }\r\n if (isSVGElement(element)) {\r\n return new SVGElementContainer(element);\r\n }\r\n if (isLIElement(element)) {\r\n return new LIElementContainer(element);\r\n }\r\n if (isOLElement(element)) {\r\n return new OLElementContainer(element);\r\n }\r\n if (isInputElement(element)) {\r\n return new InputElementContainer(element);\r\n }\r\n if (isSelectElement(element)) {\r\n return new SelectElementContainer(element);\r\n }\r\n if (isTextareaElement(element)) {\r\n return new TextareaElementContainer(element);\r\n }\r\n if (isIFrameElement(element)) {\r\n return new IFrameElementContainer(element);\r\n }\r\n return new ElementContainer(element);\r\n };\r\n var parseTree = function (element) {\r\n var container = createContainer(element);\r\n container.flags |= 4 /* CREATES_REAL_STACKING_CONTEXT */;\r\n parseNodeTree(element, container, container);\r\n return container;\r\n };\r\n var createsRealStackingContext = function (node, container, root) {\r\n return (container.styles.isPositionedWithZIndex() ||\r\n container.styles.opacity < 1 ||\r\n container.styles.isTransformed() ||\r\n (isBodyElement(node) && root.styles.isTransparent()));\r\n };\r\n var createsStackingContext = function (styles) { return styles.isPositioned() || styles.isFloating(); };\r\n var isTextNode = function (node) { return node.nodeType === Node.TEXT_NODE; };\r\n var isElementNode = function (node) { return node.nodeType === Node.ELEMENT_NODE; };\r\n var isHTMLElementNode = function (node) {\r\n return isElementNode(node) && typeof node.style !== 'undefined' && !isSVGElementNode(node);\r\n };\r\n var isSVGElementNode = function (element) {\r\n return typeof element.className === 'object';\r\n };\r\n var isLIElement = function (node) { return node.tagName === 'LI'; };\r\n var isOLElement = function (node) { return node.tagName === 'OL'; };\r\n var isInputElement = function (node) { return node.tagName === 'INPUT'; };\r\n var isHTMLElement = function (node) { return node.tagName === 'HTML'; };\r\n var isSVGElement = function (node) { return node.tagName === 'svg'; };\r\n var isBodyElement = function (node) { return node.tagName === 'BODY'; };\r\n var isCanvasElement = function (node) { return node.tagName === 'CANVAS'; };\r\n var isImageElement = function (node) { return node.tagName === 'IMG'; };\r\n var isIFrameElement = function (node) { return node.tagName === 'IFRAME'; };\r\n var isStyleElement = function (node) { return node.tagName === 'STYLE'; };\r\n var isScriptElement = function (node) { return node.tagName === 'SCRIPT'; };\r\n var isTextareaElement = function (node) { return node.tagName === 'TEXTAREA'; };\r\n var isSelectElement = function (node) { return node.tagName === 'SELECT'; };\n\n var CounterState = /** @class */ (function () {\r\n function CounterState() {\r\n this.counters = {};\r\n }\r\n CounterState.prototype.getCounterValue = function (name) {\r\n var counter = this.counters[name];\r\n if (counter && counter.length) {\r\n return counter[counter.length - 1];\r\n }\r\n return 1;\r\n };\r\n CounterState.prototype.getCounterValues = function (name) {\r\n var counter = this.counters[name];\r\n return counter ? counter : [];\r\n };\r\n CounterState.prototype.pop = function (counters) {\r\n var _this = this;\r\n counters.forEach(function (counter) { return _this.counters[counter].pop(); });\r\n };\r\n CounterState.prototype.parse = function (style) {\r\n var _this = this;\r\n var counterIncrement = style.counterIncrement;\r\n var counterReset = style.counterReset;\r\n var canReset = true;\r\n if (counterIncrement !== null) {\r\n counterIncrement.forEach(function (entry) {\r\n var counter = _this.counters[entry.counter];\r\n if (counter && entry.increment !== 0) {\r\n canReset = false;\r\n counter[Math.max(0, counter.length - 1)] += entry.increment;\r\n }\r\n });\r\n }\r\n var counterNames = [];\r\n if (canReset) {\r\n counterReset.forEach(function (entry) {\r\n var counter = _this.counters[entry.counter];\r\n counterNames.push(entry.counter);\r\n if (!counter) {\r\n counter = _this.counters[entry.counter] = [];\r\n }\r\n counter.push(entry.reset);\r\n });\r\n }\r\n return counterNames;\r\n };\r\n return CounterState;\r\n }());\r\n var ROMAN_UPPER = {\r\n integers: [1000, 900, 500, 400, 100, 90, 50, 40, 10, 9, 5, 4, 1],\r\n values: ['M', 'CM', 'D', 'CD', 'C', 'XC', 'L', 'XL', 'X', 'IX', 'V', 'IV', 'I']\r\n };\r\n var ARMENIAN = {\r\n integers: [\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 900,\r\n 800,\r\n 700,\r\n 600,\r\n 500,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\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 'Ն',\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 'Է',\r\n 'Զ',\r\n 'Ե',\r\n 'Դ',\r\n 'Գ',\r\n 'Բ',\r\n 'Ա'\r\n ]\r\n };\r\n var HEBREW = {\r\n integers: [\r\n 10000,\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 19,\r\n 18,\r\n 17,\r\n 16,\r\n 15,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\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 'צ',\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 'ח',\r\n 'ז',\r\n 'ו',\r\n 'ה',\r\n 'ד',\r\n 'ג',\r\n 'ב',\r\n 'א'\r\n ]\r\n };\r\n var GEORGIAN = {\r\n integers: [\r\n 10000,\r\n 9000,\r\n 8000,\r\n 7000,\r\n 6000,\r\n 5000,\r\n 4000,\r\n 3000,\r\n 2000,\r\n 1000,\r\n 900,\r\n 800,\r\n 700,\r\n 600,\r\n 500,\r\n 400,\r\n 300,\r\n 200,\r\n 100,\r\n 90,\r\n 80,\r\n 70,\r\n 60,\r\n 50,\r\n 40,\r\n 30,\r\n 20,\r\n 10,\r\n 9,\r\n 8,\r\n 7,\r\n 6,\r\n 5,\r\n 4,\r\n 3,\r\n 2,\r\n 1\r\n ],\r\n values: [\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 'ფ',\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 'ჱ',\r\n 'ზ',\r\n 'ვ',\r\n 'ე',\r\n 'დ',\r\n 'გ',\r\n 'ბ',\r\n 'ა'\r\n ]\r\n };\r\n var createAdditiveCounter = function (value, min, max, symbols, fallback, suffix) {\r\n if (value < min || value > max) {\r\n return createCounterText(value, fallback, suffix.length > 0);\r\n }\r\n return (symbols.integers.reduce(function (string, integer, index) {\r\n while (value >= integer) {\r\n value -= integer;\r\n string += symbols.values[index];\r\n }\r\n return string;\r\n }, '') + suffix);\r\n };\r\n var createCounterStyleWithSymbolResolver = function (value, codePointRangeLength, isNumeric, resolver) {\r\n var string = '';\r\n do {\r\n if (!isNumeric) {\r\n value--;\r\n }\r\n string = resolver(value) + string;\r\n value /= codePointRangeLength;\r\n } while (value * codePointRangeLength >= codePointRangeLength);\r\n return string;\r\n };\r\n var createCounterStyleFromRange = function (value, codePointRangeStart, codePointRangeEnd, isNumeric, suffix) {\r\n var codePointRangeLength = codePointRangeEnd - codePointRangeStart + 1;\r\n return ((value < 0 ? '-' : '') +\r\n (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, isNumeric, function (codePoint) {\r\n return fromCodePoint(Math.floor(codePoint % codePointRangeLength) + codePointRangeStart);\r\n }) +\r\n suffix));\r\n };\r\n var createCounterStyleFromSymbols = function (value, symbols, suffix) {\r\n if (suffix === void 0) { suffix = '. '; }\r\n var codePointRangeLength = symbols.length;\r\n return (createCounterStyleWithSymbolResolver(Math.abs(value), codePointRangeLength, false, function (codePoint) { return symbols[Math.floor(codePoint % codePointRangeLength)]; }) + suffix);\r\n };\r\n var CJK_ZEROS = 1 << 0;\r\n var CJK_TEN_COEFFICIENTS = 1 << 1;\r\n var CJK_TEN_HIGH_COEFFICIENTS = 1 << 2;\r\n var CJK_HUNDRED_COEFFICIENTS = 1 << 3;\r\n var createCJKCounter = function (value, numbers, multipliers, negativeSign, suffix, flags) {\r\n if (value < -9999 || value > 9999) {\r\n return createCounterText(value, LIST_STYLE_TYPE.CJK_DECIMAL, suffix.length > 0);\r\n }\r\n var tmp = Math.abs(value);\r\n var string = suffix;\r\n if (tmp === 0) {\r\n return numbers[0] + string;\r\n }\r\n for (var digit = 0; tmp > 0 && digit <= 4; digit++) {\r\n var coefficient = tmp % 10;\r\n if (coefficient === 0 && contains(flags, CJK_ZEROS) && string !== '') {\r\n string = numbers[coefficient] + string;\r\n }\r\n else if (coefficient > 1 ||\r\n (coefficient === 1 && digit === 0) ||\r\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_COEFFICIENTS)) ||\r\n (coefficient === 1 && digit === 1 && contains(flags, CJK_TEN_HIGH_COEFFICIENTS) && value > 100) ||\r\n (coefficient === 1 && digit > 1 && contains(flags, CJK_HUNDRED_COEFFICIENTS))) {\r\n string = numbers[coefficient] + (digit > 0 ? multipliers[digit - 1] : '') + string;\r\n }\r\n else if (coefficient === 1 && digit > 0) {\r\n string = multipliers[digit - 1] + string;\r\n }\r\n tmp = Math.floor(tmp / 10);\r\n }\r\n return (value < 0 ? negativeSign : '') + string;\r\n };\r\n var CHINESE_INFORMAL_MULTIPLIERS = '十百千萬';\r\n var CHINESE_FORMAL_MULTIPLIERS = '拾佰仟萬';\r\n var JAPANESE_NEGATIVE = 'マイナス';\r\n var KOREAN_NEGATIVE = '마이너스';\r\n var createCounterText = function (value, type, appendSuffix) {\r\n var defaultSuffix = appendSuffix ? '. ' : '';\r\n var cjkSuffix = appendSuffix ? '、' : '';\r\n var koreanSuffix = appendSuffix ? ', ' : '';\r\n var spaceSuffix = appendSuffix ? ' ' : '';\r\n switch (type) {\r\n case LIST_STYLE_TYPE.DISC:\r\n return '•' + spaceSuffix;\r\n case LIST_STYLE_TYPE.CIRCLE:\r\n return '◦' + spaceSuffix;\r\n case LIST_STYLE_TYPE.SQUARE:\r\n return '◾' + spaceSuffix;\r\n case LIST_STYLE_TYPE.DECIMAL_LEADING_ZERO:\r\n var string = createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\r\n return string.length < 4 ? \"0\" + string : string;\r\n case LIST_STYLE_TYPE.CJK_DECIMAL:\r\n return createCounterStyleFromSymbols(value, '〇一二三四五六七八九', cjkSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ROMAN:\r\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase();\r\n case LIST_STYLE_TYPE.UPPER_ROMAN:\r\n return createAdditiveCounter(value, 1, 3999, ROMAN_UPPER, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_GREEK:\r\n return createCounterStyleFromRange(value, 945, 969, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ALPHA:\r\n return createCounterStyleFromRange(value, 97, 122, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.UPPER_ALPHA:\r\n return createCounterStyleFromRange(value, 65, 90, false, defaultSuffix);\r\n case LIST_STYLE_TYPE.ARABIC_INDIC:\r\n return createCounterStyleFromRange(value, 1632, 1641, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.ARMENIAN:\r\n case LIST_STYLE_TYPE.UPPER_ARMENIAN:\r\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.LOWER_ARMENIAN:\r\n return createAdditiveCounter(value, 1, 9999, ARMENIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix).toLowerCase();\r\n case LIST_STYLE_TYPE.BENGALI:\r\n return createCounterStyleFromRange(value, 2534, 2543, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.CAMBODIAN:\r\n case LIST_STYLE_TYPE.KHMER:\r\n return createCounterStyleFromRange(value, 6112, 6121, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.CJK_EARTHLY_BRANCH:\r\n return createCounterStyleFromSymbols(value, '子丑寅卯辰巳午未申酉戌亥', cjkSuffix);\r\n case LIST_STYLE_TYPE.CJK_HEAVENLY_STEM:\r\n return createCounterStyleFromSymbols(value, '甲乙丙丁戊己庚辛壬癸', cjkSuffix);\r\n case LIST_STYLE_TYPE.CJK_IDEOGRAPHIC:\r\n case LIST_STYLE_TYPE.TRAD_CHINESE_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.TRAD_CHINESE_FORMAL:\r\n return createCJKCounter(value, '零壹貳參肆伍陸柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '負', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.SIMP_CHINESE_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', CHINESE_INFORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.SIMP_CHINESE_FORMAL:\r\n return createCJKCounter(value, '零壹贰叁肆伍陆柒捌玖', CHINESE_FORMAL_MULTIPLIERS, '负', cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS | CJK_HUNDRED_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.JAPANESE_INFORMAL:\r\n return createCJKCounter(value, '〇一二三四五六七八九', '十百千万', JAPANESE_NEGATIVE, cjkSuffix, 0);\r\n case LIST_STYLE_TYPE.JAPANESE_FORMAL:\r\n return createCJKCounter(value, '零壱弐参四伍六七八九', '拾百千万', JAPANESE_NEGATIVE, cjkSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.KOREAN_HANGUL_FORMAL:\r\n return createCJKCounter(value, '영일이삼사오육칠팔구', '십백천만', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.KOREAN_HANJA_INFORMAL:\r\n return createCJKCounter(value, '零一二三四五六七八九', '十百千萬', KOREAN_NEGATIVE, koreanSuffix, 0);\r\n case LIST_STYLE_TYPE.KOREAN_HANJA_FORMAL:\r\n return createCJKCounter(value, '零壹貳參四五六七八九', '拾百千', KOREAN_NEGATIVE, koreanSuffix, CJK_ZEROS | CJK_TEN_COEFFICIENTS | CJK_TEN_HIGH_COEFFICIENTS);\r\n case LIST_STYLE_TYPE.DEVANAGARI:\r\n return createCounterStyleFromRange(value, 0x966, 0x96f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.GEORGIAN:\r\n return createAdditiveCounter(value, 1, 19999, GEORGIAN, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.GUJARATI:\r\n return createCounterStyleFromRange(value, 0xae6, 0xaef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.GURMUKHI:\r\n return createCounterStyleFromRange(value, 0xa66, 0xa6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.HEBREW:\r\n return createAdditiveCounter(value, 1, 10999, HEBREW, LIST_STYLE_TYPE.DECIMAL, defaultSuffix);\r\n case LIST_STYLE_TYPE.HIRAGANA:\r\n return createCounterStyleFromSymbols(value, 'あいうえおかきくけこさしすせそたちつてとなにぬねのはひふへほまみむめもやゆよらりるれろわゐゑをん');\r\n case LIST_STYLE_TYPE.HIRAGANA_IROHA:\r\n return createCounterStyleFromSymbols(value, 'いろはにほへとちりぬるをわかよたれそつねならむうゐのおくやまけふこえてあさきゆめみしゑひもせす');\r\n case LIST_STYLE_TYPE.KANNADA:\r\n return createCounterStyleFromRange(value, 0xce6, 0xcef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.KATAKANA:\r\n return createCounterStyleFromSymbols(value, 'アイウエオカキクケコサシスセソタチツテトナニヌネノハヒフヘホマミムメモヤユヨラリルレロワヰヱヲン', cjkSuffix);\r\n case LIST_STYLE_TYPE.KATAKANA_IROHA:\r\n return createCounterStyleFromSymbols(value, 'イロハニホヘトチリヌルヲワカヨタレソツネナラムウヰノオクヤマケフコエテアサキユメミシヱヒモセス', cjkSuffix);\r\n case LIST_STYLE_TYPE.LAO:\r\n return createCounterStyleFromRange(value, 0xed0, 0xed9, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.MONGOLIAN:\r\n return createCounterStyleFromRange(value, 0x1810, 0x1819, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.MYANMAR:\r\n return createCounterStyleFromRange(value, 0x1040, 0x1049, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.ORIYA:\r\n return createCounterStyleFromRange(value, 0xb66, 0xb6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.PERSIAN:\r\n return createCounterStyleFromRange(value, 0x6f0, 0x6f9, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TAMIL:\r\n return createCounterStyleFromRange(value, 0xbe6, 0xbef, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TELUGU:\r\n return createCounterStyleFromRange(value, 0xc66, 0xc6f, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.THAI:\r\n return createCounterStyleFromRange(value, 0xe50, 0xe59, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.TIBETAN:\r\n return createCounterStyleFromRange(value, 0xf20, 0xf29, true, defaultSuffix);\r\n case LIST_STYLE_TYPE.DECIMAL:\r\n default:\r\n return createCounterStyleFromRange(value, 48, 57, true, defaultSuffix);\r\n }\r\n };\n\n var IGNORE_ATTRIBUTE = 'data-html2canvas-ignore';\r\n var DocumentCloner = /** @class */ (function () {\r\n function DocumentCloner(element, options) {\r\n this.options = options;\r\n this.scrolledElements = [];\r\n this.referenceElement = element;\r\n this.counters = new CounterState();\r\n this.quoteDepth = 0;\r\n if (!element.ownerDocument) {\r\n throw new Error('Cloned element does not have an owner document');\r\n }\r\n this.documentElement = this.cloneNode(element.ownerDocument.documentElement);\r\n }\r\n DocumentCloner.prototype.toIFrame = function (ownerDocument, windowSize) {\r\n var _this = this;\r\n var iframe = createIFrameContainer(ownerDocument, windowSize);\r\n if (!iframe.contentWindow) {\r\n return Promise.reject(\"Unable to find iframe window\");\r\n }\r\n var scrollX = ownerDocument.defaultView.pageXOffset;\r\n var scrollY = ownerDocument.defaultView.pageYOffset;\r\n var cloneWindow = iframe.contentWindow;\r\n var documentClone = cloneWindow.document;\r\n /* Chrome doesn't detect relative background-images assigned in inline